npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@bevyl-ai/adobe-prgraphic

v0.2.6

Published

Typed contract for the Adobe Premiere project payload embedded in a MOGRT

Readme

Adobe PRGRAPHIC

This package owns the typed contract for the Premiere project XML embedded in a Premiere-authored MOGRT.

schema/adobe-prgraphic.xsd describes the inspected text, media, sequence, and audio-routing object graph. Other Premiere data remains opaque; this is not a second timeline model or a complete Adobe format specification.

Truth boundary

TrackType[] is Truth 1. MogrtRenderGraph is the internal typed Truth 2 representation of one constructed MOGRT:

Truth 1 TrackType[]
  -> MogrtRenderGraph { canvas, capsuleId, frameRate, durationInFrames, layers, project }
  -> definition.json
  -> project.prgraphic

layers is an ordered, non-empty collection. N co-timed canonical text items become one MOGRT with N internal text layers. The definition and project writers consume the same graph, including the layer IDs and resolved fonts allocated during construction. They do not independently reinterpret Truth 1.

A logical text layer may contain multiple Adobe text fragments when faithfully constructing wrapped inline backgrounds requires them. Each fragment may own an Adobe Shape background. Those fragments and shapes are construction details of the same canonical item, not additional logical layers or timeline items.

buildMogrt is the package boundary. It accepts canonical Bevyl tracks plus their sequence and font context, then generates the complete deterministic MOGRT, including definition.json, project.prgraphic, and the embedded project.prproj. No Premiere-authored seed is read or modified at runtime.

The XSD generates both TypeScript interfaces and serializers for filter components, their nested parameter references, the three parameter types, and binary envelopes, and the inspected file-media/source/stream subset. buildImageSource owns still metadata for both local probes; IDs, timeline placement, and master-clip registration remain with the outer builder. buildAvSource handles the inspected normalized H.264 and mono/stereo audio metadata. Images, video, and audio share file registration and source references; clip trims, links, mute, and volume remain outside these source builders. All source, clip, sequence, settings, routing, and media-effect builders return schema values rather than DOM nodes or dispatch envelopes. write-project-graph.ts owns scaffold IDs and ordered project composition, calling the known serializers directly. serialize-project.ts creates and encodes the XML document. There is no global object union or runtime dispatcher. GraphicsComponents describes the filter/parameter collection produced by AdobeProjectBuilder, not a complete Premiere document. project-xml.ts owns final XML encoding (including restoration of explicit empty binary text after parsing) and the small DOM helpers used by the probes. Imported-graphic ID remapping remains fixture-specific.

The XSD's wire: annotations record Adobe's compact version ordering and omitted defaults. New scalar fields are emitted from the schema automatically; unsupported field types fail generation rather than silently disappearing. This is a generator for the owned subset, not a general XSD serializer or validator. Serializer discovery follows the XSD declarations; there are no parallel lists of component and nested types to maintain.

Unsupported Component.Node input is excluded from the type and rejected at runtime rather than silently dropped. The separate graphics-panel parameter Node is typed and constructed by buildGraphicGraph. Binary values use explicit text nodes, including empty payloads required by Premiere. Sequence, media, and component construction remain in the existing project builder.

The workspace patches @abapify/[email protected] with the property-name quoting fix from upstream PR #192 (commit b292c639b09c5d63336ef325fc0329bbf5de19b2). This lets the XSD and typed builders use Adobe's literal dotted names without aliases. Remove the Bun patch when upgrading to an upstream release containing that fix.

buildMediaMotionParameters owns both inspected motion profiles; their differing bounds, controls, and numeric formatting are intentional. Shared parameter class IDs and static keyframe encoding live in parameter-wire.ts. Animated karaoke keyframes retain clip-local timing.

Tests participate in TypeScript checking. Full empty-project fixtures preserve exact XML bytes at integer and fractional frame rates, including attribute order and explicit empty text. A populated graphics fixture also preserves static text, backplates, and later-page karaoke. Native open/render verification remains a separate gate. The probes apply sequence framing to their existing DOM; the public byte-oriented framing API retains compressed and uncompressed support.

Regenerate the interfaces and component serializers after editing the XSD:

bun run generate