@onmark/cli 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +202 -0
- package/onmark-release.json +388 -0
- package/package.json +52 -0
- package/packages/authoring/dist/src/index.d.ts +3 -0
- package/packages/authoring/dist/src/index.js +4 -0
- package/packages/authoring/dist/src/motion.d.ts +23 -0
- package/packages/authoring/dist/src/motion.js +81 -0
- package/packages/authoring/dist/src/presentation.d.ts +12 -0
- package/packages/authoring/dist/src/presentation.js +226 -0
- package/packages/authoring/dist/src/resource.d.ts +32 -0
- package/packages/authoring/dist/src/resource.js +86 -0
- package/packages/authoring/dist/src/types.d.ts +1 -0
- package/packages/authoring/dist/src/types.js +2 -0
- package/packages/bundler/dist/src/authored_html.d.ts +41 -0
- package/packages/bundler/dist/src/authored_html.js +387 -0
- package/packages/bundler/dist/src/command.d.ts +2 -0
- package/packages/bundler/dist/src/command.js +138 -0
- package/packages/bundler/dist/src/generated/bundle-manifest.d.ts +65 -0
- package/packages/bundler/dist/src/generated/bundle-manifest.js +18 -0
- package/packages/bundler/dist/src/html_image.d.ts +20 -0
- package/packages/bundler/dist/src/html_image.js +337 -0
- package/packages/bundler/dist/src/image_admission.d.ts +2 -0
- package/packages/bundler/dist/src/image_admission.js +217 -0
- package/packages/bundler/dist/src/index.d.ts +2 -0
- package/packages/bundler/dist/src/index.js +3 -0
- package/packages/bundler/dist/src/presentation.d.ts +41 -0
- package/packages/bundler/dist/src/presentation.js +492 -0
- package/packages/launcher/dist/desktop-release.json +21 -0
- package/packages/launcher/dist/src/browser-command.d.ts +2 -0
- package/packages/launcher/dist/src/browser-command.js +43 -0
- package/packages/launcher/dist/src/browser.d.ts +14 -0
- package/packages/launcher/dist/src/browser.js +280 -0
- package/packages/launcher/dist/src/cache.d.ts +8 -0
- package/packages/launcher/dist/src/cache.js +21 -0
- package/packages/launcher/dist/src/capture-environment.d.ts +15 -0
- package/packages/launcher/dist/src/capture-environment.js +145 -0
- package/packages/launcher/dist/src/command.d.ts +2 -0
- package/packages/launcher/dist/src/command.js +58 -0
- package/packages/launcher/dist/src/native.d.ts +20 -0
- package/packages/launcher/dist/src/native.js +31 -0
- package/packages/launcher/dist/src/platform.d.ts +13 -0
- package/packages/launcher/dist/src/platform.js +29 -0
- package/packages/launcher/dist/src/release.d.ts +16 -0
- package/packages/launcher/dist/src/release.js +49 -0
- package/packages/motion-gsap/dist/src/index.d.ts +16 -0
- package/packages/motion-gsap/dist/src/index.js +139 -0
- package/packages/runtime/dist/src/clock.d.ts +10 -0
- package/packages/runtime/dist/src/clock.js +19 -0
- package/packages/runtime/dist/src/generated/browser-request.d.ts +143 -0
- package/packages/runtime/dist/src/generated/browser-request.js +2 -0
- package/packages/runtime/dist/src/generated/browser-response.d.ts +58 -0
- package/packages/runtime/dist/src/generated/browser-response.js +2 -0
- package/packages/runtime/dist/src/generated/bundle-layout.d.ts +7 -0
- package/packages/runtime/dist/src/generated/bundle-layout.js +14 -0
- package/packages/runtime/dist/src/generated/codec.d.ts +8 -0
- package/packages/runtime/dist/src/generated/codec.js +22 -0
- package/packages/runtime/dist/src/generated/runtime-contract.d.ts +7 -0
- package/packages/runtime/dist/src/generated/runtime-contract.js +8 -0
- package/packages/runtime/dist/src/generated/validators.d.ts +13 -0
- package/packages/runtime/dist/src/generated/validators.js +3327 -0
- package/packages/runtime/dist/src/host.d.ts +11 -0
- package/packages/runtime/dist/src/host.js +25 -0
- package/packages/runtime/dist/src/index.d.ts +13 -0
- package/packages/runtime/dist/src/index.js +12 -0
- package/packages/runtime/dist/src/media.d.ts +13 -0
- package/packages/runtime/dist/src/media.js +28 -0
- package/packages/runtime/dist/src/presentation.d.ts +66 -0
- package/packages/runtime/dist/src/presentation.js +379 -0
- package/packages/runtime/dist/src/resource.d.ts +23 -0
- package/packages/runtime/dist/src/resource.js +150 -0
- package/packages/runtime/dist/src/session.d.ts +43 -0
- package/packages/runtime/dist/src/session.js +450 -0
- package/packages/runtime/dist/src/types.d.ts +6 -0
- package/packages/runtime/dist/src/types.js +2 -0
- package/packages/runtime/dist/src/video.d.ts +40 -0
- package/packages/runtime/dist/src/video.js +343 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Onmark contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
# Onmark
|
|
2
|
+
|
|
3
|
+
Onmark is a screenplay-first video compiler and rendering engine for people and
|
|
4
|
+
agents.
|
|
5
|
+
|
|
6
|
+
```text
|
|
7
|
+
screenplay → deterministic Timeline IR → browser frames + audio plan → MP4
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
Delivery gates one through seven and distributed incremental reuse are
|
|
11
|
+
complete. No later delivery gate is currently active. Gate one renders and
|
|
12
|
+
independently verifies one real screenplay through the compiler, browser
|
|
13
|
+
protocol, Chromium, and FFmpeg. Gate two partitions one media-bearing two-shot
|
|
14
|
+
film into two local Render Units and
|
|
15
|
+
proves that their assembled decoded video and audio match the whole-film
|
|
16
|
+
baseline. Gate three sends those
|
|
17
|
+
same portable units to two concurrent arm64 Lambda workers, verifies their
|
|
18
|
+
immutable S3 frame artifacts against a remote whole-film capture by canonical
|
|
19
|
+
raw-RGBA pixels, and assembles the partitions through the shared H.264/AAC
|
|
20
|
+
path. Gate four carries authored music, shot-local effects, voice-over, and
|
|
21
|
+
imported SRT/WebVTT/ASS captions through the same local whole-film and
|
|
22
|
+
partitioned paths, with both canonical raw-RGBA frames and decoded audio
|
|
23
|
+
checked for equivalence.
|
|
24
|
+
|
|
25
|
+
Gate five admits exact-frame effects and a closed presentation temporal
|
|
26
|
+
capability after bounded WAAPI, GSAP, and Three.js experiments. Its exit
|
|
27
|
+
conformance proves that the effect-bearing presentation produces identical
|
|
28
|
+
canonical pixels as one whole-film unit or two independent units. Unknown
|
|
29
|
+
presentation code remains sequential. Deployment work remains frozen.
|
|
30
|
+
|
|
31
|
+
Gate six carries content-addressed local image, SVG, and font resources through
|
|
32
|
+
bounded browser readiness that names the resource still pending. It also gives
|
|
33
|
+
film, scene, shot, and content facts Rust-owned node identity and ownership.
|
|
34
|
+
Authored IDs retain semantic identity across unit projections. Its Linux exit
|
|
35
|
+
conformance proves equal pixels across cold browsers and whole-film versus
|
|
36
|
+
partitioned execution without adding a general props channel, new screenplay
|
|
37
|
+
spelling, or a second timing system.
|
|
38
|
+
|
|
39
|
+
Gate seven admits transparent browser presentation over persistent native media
|
|
40
|
+
decode and composition for an explicitly separable visual capability. Its
|
|
41
|
+
locked experiment passes at 4.18× the Chromium-media baseline speed and 79.73%
|
|
42
|
+
of its peak RSS. The production executor preserves a bounded stream, exact
|
|
43
|
+
whole-film/partition equivalence, declared color conformance, and the existing
|
|
44
|
+
Chromium-media path for presentations without the capability. The real-process
|
|
45
|
+
exit fixture passes; this is neither new screenplay syntax nor a hidden
|
|
46
|
+
fallback.
|
|
47
|
+
|
|
48
|
+
The executor now also carries an independent, proved browser-frame behavior.
|
|
49
|
+
For placement-bounded foregrounds it captures only the first frame and solved
|
|
50
|
+
placement changes, then shares the immutable PNG between intervening output
|
|
51
|
+
frames. The real-process layered control reduces browser evaluation from 75
|
|
52
|
+
authored frames to one while retaining exact canonical raw-RGBA output;
|
|
53
|
+
browser-owned video and unknown authored effects remain per-frame.
|
|
54
|
+
|
|
55
|
+
The completed foundation includes the pure compiler and versioned wire types in
|
|
56
|
+
`onmark-core`; bounded ffprobe and strict SubRip/WebVTT/ASS normalization in
|
|
57
|
+
`onmark-media`; deterministic video and overlay presentation in
|
|
58
|
+
`@onmark/runtime`; authored-HTML bindings in `@onmark/authoring`; immutable
|
|
59
|
+
presentation artifacts in `@onmark/bundler`; the typed Chromium-to-FFmpeg
|
|
60
|
+
executor in `onmark-render`; and the `onmark-cli` composition root. A production
|
|
61
|
+
deployment workflow and infrastructure definition remain deliberately absent;
|
|
62
|
+
there is still no queue, lease system, scheduler, or coordinator.
|
|
63
|
+
|
|
64
|
+
## Render
|
|
65
|
+
|
|
66
|
+
The native command needs one authored HTML document and writes a no-clobber
|
|
67
|
+
`renders/<name>.mp4` by default. Onmark custom elements carry screenplay intent;
|
|
68
|
+
ordinary HTML and inline CSS carry presentation. An optional inline
|
|
69
|
+
`type="module" data-om-motion` script exports vendor-neutral motion
|
|
70
|
+
assembled from adapters such as `onmark/motion/gsap`:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
npm install --global @onmark/cli
|
|
74
|
+
onmark render film.html
|
|
75
|
+
onmark render film.html --output review.mp4
|
|
76
|
+
onmark render film.html --fps 30000/1001 --width 1920 --height 1080
|
|
77
|
+
onmark render film.html --subtitle captions.vtt
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
`--subtitle` imports strict UTF-8 `.srt`, `.vtt`, or `.ass` files without adding
|
|
81
|
+
external-format syntax to the screenplay. Invalid files produce diagnostics
|
|
82
|
+
against their own path and byte spans before browser or media processes start.
|
|
83
|
+
|
|
84
|
+
Presentation capabilities are not inferred from source text or observed pixel
|
|
85
|
+
equality. The production authored-HTML adapter is admitted as random-access,
|
|
86
|
+
browser-composited, and per-frame; unknown future components remain sequential
|
|
87
|
+
until their own conformance proves otherwise. Immutable bundle metadata carries
|
|
88
|
+
the admitted facts into Render Graph planning.
|
|
89
|
+
|
|
90
|
+
The desktop command projects each shot into an isolated browser region and
|
|
91
|
+
reuses verified contract-addressed frame artifacts across processes. Editing one
|
|
92
|
+
shot leaves unrelated region artifacts intact; final encoding and audio mixing
|
|
93
|
+
still use the same assembler as a cold render. Every completed command reports
|
|
94
|
+
the exact reused region and frame counts plus pipeline phase timings, so
|
|
95
|
+
incremental work is visible without inspecting the cache.
|
|
96
|
+
|
|
97
|
+
The Lambda adapter applies the same artifact identity before materializing
|
|
98
|
+
inputs or preparing Chromium. A verified S3 hit skips capture; a corrupt object
|
|
99
|
+
is conditionally repaired through the ordinary worker path. This closes
|
|
100
|
+
distributed incremental reuse without adding a coordinator or durable progress
|
|
101
|
+
service.
|
|
102
|
+
|
|
103
|
+
## Showcases
|
|
104
|
+
|
|
105
|
+
[`showcases/`](showcases/) contains twenty self-contained films rendered through
|
|
106
|
+
the public CLI. They cover native media, imported captions, audio, GSAP, Canvas
|
|
107
|
+
2D, raw WebGL, Three.js, spatial CSS, editorial typography, and continuous
|
|
108
|
+
brand motion without relying on a shared visual template or remote assets.
|
|
109
|
+
Rendered outputs remain untracked; each checked-in source and exact render
|
|
110
|
+
command stays reproducible.
|
|
111
|
+
|
|
112
|
+
The desktop artifact is admitted on macOS arm64, Linux x64, and Windows x64. It
|
|
113
|
+
exposes one `@onmark/cli` package and `onmark` command, carries the native CLI,
|
|
114
|
+
`ffmpeg`, and `ffprobe` in a platform sidecar, and installs the pinned browser
|
|
115
|
+
into a verified private cache. Linux uses Chrome for Testing's
|
|
116
|
+
`chrome-headless-shell` with CDP BeginFrameControl; macOS and Windows use
|
|
117
|
+
ordinary Chrome's portable screenshot backend. macOS selects Metal and verifies
|
|
118
|
+
the active renderer through CDP; Linux and Windows retain `SwiftShader`. Every
|
|
119
|
+
target renders the same admitted screenplay twice in an empty consumer before
|
|
120
|
+
release artifacts are retained. After the initial package bootstrap, merging a
|
|
121
|
+
`release/vX.Y.Z` pull request admits and publishes the same archives through npm
|
|
122
|
+
Trusted Publishing, then creates the matching GitHub Release. Execution
|
|
123
|
+
overrides remain explicit:
|
|
124
|
+
`--graphics software` selects the canonical software control, and
|
|
125
|
+
`--video-encoder-threads` can replace the stable four-thread local default with
|
|
126
|
+
a bounded value from 1 through 64.
|
|
127
|
+
Deterministic comparisons apply within the same locked browser environment,
|
|
128
|
+
capture mode, and graphics backend.
|
|
129
|
+
|
|
130
|
+
## Worker capture
|
|
131
|
+
|
|
132
|
+
Gate three introduced a narrow local worker entry point for already-composed
|
|
133
|
+
visual work:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
onmark worker capture --input worker-input --output opening.onmark-frames \
|
|
137
|
+
--browser /path/to/chrome-headless-shell --ffmpeg /path/to/ffmpeg
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
`worker-input` contains a versioned `request.json`, including the locked
|
|
141
|
+
capture-environment identity, the `bundle/` payload files named by that
|
|
142
|
+
request's manifest, and any frozen `assets/sha256/` bytes. The worker accepts no
|
|
143
|
+
screenplay and does not compile source. It publishes one checksum-verified,
|
|
144
|
+
no-clobber frame artifact; retry reuse requires both the planned unit and the
|
|
145
|
+
declared capture environment to match. This is the same portable interchange
|
|
146
|
+
used by the Lambda adapter; it is not a cloud coordinator or a replacement for
|
|
147
|
+
`onmark render`.
|
|
148
|
+
|
|
149
|
+
## Lambda capture adapter
|
|
150
|
+
|
|
151
|
+
`deploy/aws-lambda` wraps that same worker contract with a bounded S3 download
|
|
152
|
+
and conditional artifact publication. Its V1 invocation and result schemas are
|
|
153
|
+
checked in under `schemas/`; its required environment, IAM scope, limits, and
|
|
154
|
+
intentional non-goals are documented in
|
|
155
|
+
[its deployment README](deploy/aws-lambda/README.md). The real arm64 Lambda ZIP
|
|
156
|
+
experiment and deterministic package command are recorded there. Infrastructure
|
|
157
|
+
provisioning remains outside this gate; desktop npm publication is a separate
|
|
158
|
+
release boundary.
|
|
159
|
+
|
|
160
|
+
## Repository map
|
|
161
|
+
|
|
162
|
+
- `crates/` contains Rust product code.
|
|
163
|
+
- `packages/` contains browser and Node product packages.
|
|
164
|
+
- `conformance/` groups compiler, media, browser, CLI, wire, and admission evidence.
|
|
165
|
+
- `evals/` contains frozen language-admission experiments and raw model output.
|
|
166
|
+
- `schemas/` contains the five generated, versioned wire contracts.
|
|
167
|
+
- `scripts/` contains the `xtask` entry point plus evaluation, schema,
|
|
168
|
+
TypeScript-quality, and release tooling; release npm and media toolchains have
|
|
169
|
+
separate process-owned subdirectories.
|
|
170
|
+
|
|
171
|
+
## Development
|
|
172
|
+
|
|
173
|
+
Rust 1.97.0, Node.js 26.4.0, and pnpm 11.9.0 are pinned for reproducible
|
|
174
|
+
development.
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
cargo test --workspace
|
|
178
|
+
cargo clippy --workspace --all-targets --all-features
|
|
179
|
+
cargo fmt --all -- --check
|
|
180
|
+
pnpm install --frozen-lockfile
|
|
181
|
+
pnpm format:check
|
|
182
|
+
pnpm lint
|
|
183
|
+
pnpm typecheck
|
|
184
|
+
pnpm test
|
|
185
|
+
cargo xtask schema --check
|
|
186
|
+
cargo xtask eval audio
|
|
187
|
+
cargo xtask eval html
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Design documents
|
|
191
|
+
|
|
192
|
+
- [Architecture](docs/en/architecture.md)
|
|
193
|
+
- [Language specification](docs/en/language-specification.md)
|
|
194
|
+
- [Presentation contract](docs/en/presentation-contract.md)
|
|
195
|
+
- [Competitive pipeline review](docs/en/competitive-pipeline-review.md)
|
|
196
|
+
- [Rust style guide](docs/en/rust-style-guide.md)
|
|
197
|
+
- [TypeScript style guide](docs/en/typescript-style-guide.md)
|
|
198
|
+
- [中文文档](docs/zh-CN/)
|
|
199
|
+
|
|
200
|
+
The design documents remain the project contract. Code and documentation
|
|
201
|
+
disagreements must be resolved explicitly rather than silently choosing one
|
|
202
|
+
side.
|
|
@@ -0,0 +1,388 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"packageName": "@onmark/cli",
|
|
4
|
+
"version": "0.1.3",
|
|
5
|
+
"sourceRevision": "25000b2f44d6b2463083ed977ead461b198b9f8b",
|
|
6
|
+
"files": [
|
|
7
|
+
{
|
|
8
|
+
"path": "LICENSE",
|
|
9
|
+
"bytes": 1076,
|
|
10
|
+
"sha256": "5188917373727ad6df0f95a431a4ff217d41c8a949648955fa196d3a4c1a6110"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"path": "README.md",
|
|
14
|
+
"bytes": 9972,
|
|
15
|
+
"sha256": "60000f53e551fea49368f36a68d71933423f314e6dd5bbf1cec495cad84f6c60"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"path": "package.json",
|
|
19
|
+
"bytes": 1406,
|
|
20
|
+
"sha256": "93a60078967eb56474b3bcca33115c037432399df91908a161983a3e699d203d"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"path": "packages/authoring/dist/src/index.d.ts",
|
|
24
|
+
"bytes": 444,
|
|
25
|
+
"sha256": "04a987076863ba1a11fabea37a8c15878abbffa12b4942c28d9b26da1e98f8f3"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"path": "packages/authoring/dist/src/index.js",
|
|
29
|
+
"bytes": 266,
|
|
30
|
+
"sha256": "bdff297aee92136a3304af030c07f1b03ee386feee9435deb22b0993ceaf19bb"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"path": "packages/authoring/dist/src/motion.d.ts",
|
|
34
|
+
"bytes": 1411,
|
|
35
|
+
"sha256": "39e2ece580c2161b742ca183193d73765ba2a61a82fe88f336a38c63ed69de53"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"path": "packages/authoring/dist/src/motion.js",
|
|
39
|
+
"bytes": 2701,
|
|
40
|
+
"sha256": "1f3cef1e6756bb05fbf292324e8c28764ffe854de717ab03b392708b2b3a5fc1"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"path": "packages/authoring/dist/src/presentation.d.ts",
|
|
44
|
+
"bytes": 725,
|
|
45
|
+
"sha256": "417401dfea78e1b8a93126267166027ae49d77edb54c32496dd3296c22bab8c4"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"path": "packages/authoring/dist/src/presentation.js",
|
|
49
|
+
"bytes": 9235,
|
|
50
|
+
"sha256": "4d507543fbc671d6d3ad5c7868369dc892983765ce4ac6965b9cdc848339bf14"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"path": "packages/authoring/dist/src/resource.d.ts",
|
|
54
|
+
"bytes": 1514,
|
|
55
|
+
"sha256": "2ae73d745ce65193007f36d7a96102effc882e54190db12d7f7a0ac199e5dec2"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"path": "packages/authoring/dist/src/resource.js",
|
|
59
|
+
"bytes": 2544,
|
|
60
|
+
"sha256": "6f1d471c95678c4b0b4493c704771a59098e5d1d0c7ef81145901f7d86ad31b1"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"path": "packages/authoring/dist/src/types.d.ts",
|
|
64
|
+
"bytes": 133,
|
|
65
|
+
"sha256": "815630d36c644dd50b36a183bc6f5071c6b6550a5f8967e6a53994899811b311"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"path": "packages/authoring/dist/src/types.js",
|
|
69
|
+
"bytes": 78,
|
|
70
|
+
"sha256": "d4010927313e03e84d25e63d9359f90d7af2c676ee5ad4f253928ac983b2e903"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"path": "packages/bundler/dist/src/authored_html.d.ts",
|
|
74
|
+
"bytes": 1791,
|
|
75
|
+
"sha256": "a7620bed8f4dea8d6f5e1909311b5b87e126cbb90cc75a063ad10da7dfcc768e"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"path": "packages/bundler/dist/src/authored_html.js",
|
|
79
|
+
"bytes": 13942,
|
|
80
|
+
"sha256": "5c58e2bb952df7657fcdcbcb3bf5abf9831485aaca2c492ba2518b4948dd6027"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"path": "packages/bundler/dist/src/command.d.ts",
|
|
84
|
+
"bytes": 31,
|
|
85
|
+
"sha256": "43e818adf60173644896298637f47b01d5819b17eda46eaa32d0c7d64724d012"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"path": "packages/bundler/dist/src/command.js",
|
|
89
|
+
"bytes": 5078,
|
|
90
|
+
"sha256": "833f9cab8d0e5b31494fd57ea7cd5720cc5b10977d48421c2d9c723605cb454e"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"path": "packages/bundler/dist/src/generated/bundle-manifest.d.ts",
|
|
94
|
+
"bytes": 2515,
|
|
95
|
+
"sha256": "8aa6f33d79f9269da7d5d766d69f1d1037aee3141d76d380ea301b8b6c0d5002"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"path": "packages/bundler/dist/src/generated/bundle-manifest.js",
|
|
99
|
+
"bytes": 621,
|
|
100
|
+
"sha256": "d3f7d430ebbc045db575d648e61f459848bac3c936acf9a6ec5f825260ef2458"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"path": "packages/bundler/dist/src/html_image.d.ts",
|
|
104
|
+
"bytes": 967,
|
|
105
|
+
"sha256": "a830adac29b2170732ae6dbd6cd9950fcf6dd56e34e34315a527c8bd9f5b8dd2"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"path": "packages/bundler/dist/src/html_image.js",
|
|
109
|
+
"bytes": 11885,
|
|
110
|
+
"sha256": "ac35ee0bf4ea563bcd3f937b5bac00042493a20a61b7ab7439e90bbdaca4f528"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"path": "packages/bundler/dist/src/image_admission.d.ts",
|
|
114
|
+
"bytes": 180,
|
|
115
|
+
"sha256": "26a5da9a224b6e973f89cfa9d140fac8d8f2c2fe29213bbde541eef7fc3651f8"
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"path": "packages/bundler/dist/src/image_admission.js",
|
|
119
|
+
"bytes": 6896,
|
|
120
|
+
"sha256": "71c067a6776640ac0ed58e7a25234efd052e8ab7aee7eeea8985110014f994b9"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"path": "packages/bundler/dist/src/index.d.ts",
|
|
124
|
+
"bytes": 358,
|
|
125
|
+
"sha256": "f491e5e0c254c855b212e7950c9a315a806497c448994e9daf7fc9ecbacbfed4"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"path": "packages/bundler/dist/src/index.js",
|
|
129
|
+
"bytes": 315,
|
|
130
|
+
"sha256": "ac807d0961fbe8cac6ae12a587c4b7856f1ed31096a1de89f428c663fa43443b"
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"path": "packages/bundler/dist/src/presentation.d.ts",
|
|
134
|
+
"bytes": 2116,
|
|
135
|
+
"sha256": "e97d532cda1f86933d452e109d80f38928fe02352e7af006b43bcc078efd999d"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"path": "packages/bundler/dist/src/presentation.js",
|
|
139
|
+
"bytes": 19114,
|
|
140
|
+
"sha256": "8f26c61eedaf249e46e05c2af5ad4593d596e7875dd65de3388a3a23ea60b25c"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"path": "packages/launcher/dist/desktop-release.json",
|
|
144
|
+
"bytes": 609,
|
|
145
|
+
"sha256": "6f6b454607f43522f3a673590b112c66267c958a1ab5b13ebd206f2fa3f2e6f8"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"path": "packages/launcher/dist/src/browser-command.d.ts",
|
|
149
|
+
"bytes": 31,
|
|
150
|
+
"sha256": "43e818adf60173644896298637f47b01d5819b17eda46eaa32d0c7d64724d012"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"path": "packages/launcher/dist/src/browser-command.js",
|
|
154
|
+
"bytes": 1543,
|
|
155
|
+
"sha256": "036c67f92ffc5e3ba3260419bb83272c013f1310629b403a493941826ac9f2ae"
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"path": "packages/launcher/dist/src/browser.d.ts",
|
|
159
|
+
"bytes": 596,
|
|
160
|
+
"sha256": "7839eb4ea0a11dd075b6daca27beb6d0a3c15e5b160076c61bfdc672c977a5c3"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"path": "packages/launcher/dist/src/browser.js",
|
|
164
|
+
"bytes": 10129,
|
|
165
|
+
"sha256": "432b5b22ee2717baa0f3d8f1b05d053dd58d80dffca7eee05146ba7ec9ef2b16"
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"path": "packages/launcher/dist/src/cache.d.ts",
|
|
169
|
+
"bytes": 453,
|
|
170
|
+
"sha256": "2efbcf939f13d31cc9ed1ed32bbc9fbf1be86a41a12dcf7f1409df1cd07a9039"
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"path": "packages/launcher/dist/src/cache.js",
|
|
174
|
+
"bytes": 998,
|
|
175
|
+
"sha256": "20617762ae1d94a9d05b9df90465451d66559ed534c692eb48ef2d196e8a75fa"
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"path": "packages/launcher/dist/src/capture-environment.d.ts",
|
|
179
|
+
"bytes": 650,
|
|
180
|
+
"sha256": "70c23f0d1663f6ad2c2796d8c23ccebd074a38725d13f0701c3de277d784d479"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"path": "packages/launcher/dist/src/capture-environment.js",
|
|
184
|
+
"bytes": 5031,
|
|
185
|
+
"sha256": "b4e9a9937b2f1c328b6435fd72bf9947abba5a75e6a317026cbc1400b4194862"
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"path": "packages/launcher/dist/src/command.d.ts",
|
|
189
|
+
"bytes": 31,
|
|
190
|
+
"sha256": "43e818adf60173644896298637f47b01d5819b17eda46eaa32d0c7d64724d012"
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"path": "packages/launcher/dist/src/command.js",
|
|
194
|
+
"bytes": 2236,
|
|
195
|
+
"sha256": "8a63ba0ef5d93b6c1e77a7f889dd9aa1aed34d2c6f0880af0b1cbdec791eba3c"
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"path": "packages/launcher/dist/src/native.d.ts",
|
|
199
|
+
"bytes": 824,
|
|
200
|
+
"sha256": "a31c271ba65614640a1e70dd648b94485d4439be54e409662603f3c29e7a9855"
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"path": "packages/launcher/dist/src/native.js",
|
|
204
|
+
"bytes": 1168,
|
|
205
|
+
"sha256": "662a30122f6cb780a9c5fcee1db0a0d24f9f1d5e938b50e047dc051a9cb19313"
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"path": "packages/launcher/dist/src/platform.d.ts",
|
|
209
|
+
"bytes": 562,
|
|
210
|
+
"sha256": "760ce90e9e5b84047bd31118484db73a3412e2330417b19b25d7aecff35b756c"
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"path": "packages/launcher/dist/src/platform.js",
|
|
214
|
+
"bytes": 1259,
|
|
215
|
+
"sha256": "2a73189232b0ef037184f963a3b60fd19a0747b13566f4bebfa6531bc440dcf3"
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"path": "packages/launcher/dist/src/release.d.ts",
|
|
219
|
+
"bytes": 575,
|
|
220
|
+
"sha256": "1c7fe3f72b79772b3747bfe946c640a2edd9650f0f4c949d1b270fae4ae36162"
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"path": "packages/launcher/dist/src/release.js",
|
|
224
|
+
"bytes": 1759,
|
|
225
|
+
"sha256": "d4c7854adcb2652599efcdccaf54a20b98f0f252d940c79692c00e58fc90f014"
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
"path": "packages/motion-gsap/dist/src/index.d.ts",
|
|
229
|
+
"bytes": 940,
|
|
230
|
+
"sha256": "526d9a01e5c0fe0b215d7319e14eef31fa8beb628e1aed9cd7078e412f42ed01"
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"path": "packages/motion-gsap/dist/src/index.js",
|
|
234
|
+
"bytes": 4920,
|
|
235
|
+
"sha256": "acf1389c0de9101725705fd13b949c209dd98533f41ea22851fdfde35bfbdf08"
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
"path": "packages/runtime/dist/src/clock.d.ts",
|
|
239
|
+
"bytes": 551,
|
|
240
|
+
"sha256": "c0bc2a42feaabfec0bb56da48dac913a281d551be724edeef21904e8b69770cc"
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
"path": "packages/runtime/dist/src/clock.js",
|
|
244
|
+
"bytes": 1108,
|
|
245
|
+
"sha256": "02b386cd9a6c8ea3c00fd3d039160bd9604ef02b8f96b82d3e9595c73db78792"
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
"path": "packages/runtime/dist/src/generated/browser-request.d.ts",
|
|
249
|
+
"bytes": 3353,
|
|
250
|
+
"sha256": "1dea1c9bafb7be477b2d86ecaf30b26e7ee64e25203d3a31d8975ecfbcb9c1d5"
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
"path": "packages/runtime/dist/src/generated/browser-request.js",
|
|
254
|
+
"bytes": 83,
|
|
255
|
+
"sha256": "edf68d2007e1ca8c5aa32394cd7c3131e37265fef1c71bf390f2cc02ff02f559"
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
"path": "packages/runtime/dist/src/generated/browser-response.d.ts",
|
|
259
|
+
"bytes": 1368,
|
|
260
|
+
"sha256": "ec32071435ada70f7837db7855fee95fecf79433e62aeb1736f35a0b868825bc"
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
"path": "packages/runtime/dist/src/generated/browser-response.js",
|
|
264
|
+
"bytes": 83,
|
|
265
|
+
"sha256": "edf68d2007e1ca8c5aa32394cd7c3131e37265fef1c71bf390f2cc02ff02f559"
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"path": "packages/runtime/dist/src/generated/bundle-layout.d.ts",
|
|
269
|
+
"bytes": 639,
|
|
270
|
+
"sha256": "1e5aee7947ce8d4c09de4e05a7e729b31d868c47640963cfe120b1ebb1af69ca"
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
"path": "packages/runtime/dist/src/generated/bundle-layout.js",
|
|
274
|
+
"bytes": 455,
|
|
275
|
+
"sha256": "1807eab2041ee935b3bde12f12402b06d0dd3328e3fb6cb9fc0282699b311f9e"
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
"path": "packages/runtime/dist/src/generated/codec.d.ts",
|
|
279
|
+
"bytes": 440,
|
|
280
|
+
"sha256": "eb1413e8d1c05083b2c5e2246c39d87f8e644e8fc6d0c29c760fa41fba448a7a"
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
"path": "packages/runtime/dist/src/generated/codec.js",
|
|
284
|
+
"bytes": 811,
|
|
285
|
+
"sha256": "8002d86240809b29ad7a6cf7d101cf657734966ee5c76e55e23550f13834bfec"
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
"path": "packages/runtime/dist/src/generated/runtime-contract.d.ts",
|
|
289
|
+
"bytes": 393,
|
|
290
|
+
"sha256": "9cacb81eec65ee8af41097d0efbadaad889cb47e6f4e73d682c2edd5b9bfb7fa"
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"path": "packages/runtime/dist/src/generated/runtime-contract.js",
|
|
294
|
+
"bytes": 416,
|
|
295
|
+
"sha256": "5f2c643535d159fb735d393fa3c53fade154d6c306a272e98cb3408f3abbbdf0"
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
"path": "packages/runtime/dist/src/generated/validators.d.ts",
|
|
299
|
+
"bytes": 594,
|
|
300
|
+
"sha256": "c9e92297fdc9cc1f2c79ec3a7972a0e7d76b496f52a1dd8a1c4889fde34b366b"
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
"path": "packages/runtime/dist/src/generated/validators.js",
|
|
304
|
+
"bytes": 179613,
|
|
305
|
+
"sha256": "1a80bd7d7995a4b9da29f697b86c41d36dd2bb6996288aa94fd99e3185e37e2c"
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
"path": "packages/runtime/dist/src/host.d.ts",
|
|
309
|
+
"bytes": 617,
|
|
310
|
+
"sha256": "ec5ded70f97f0351cd82db9c741e77325e7a8b1e02f2dd2913c5605befab1c8d"
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
"path": "packages/runtime/dist/src/host.js",
|
|
314
|
+
"bytes": 1015,
|
|
315
|
+
"sha256": "6f987b97c0842666111b000e556845ea2447b658f985f550966cbaccaad22d0f"
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
"path": "packages/runtime/dist/src/index.d.ts",
|
|
319
|
+
"bytes": 1652,
|
|
320
|
+
"sha256": "9c3109342edd6cc989488f9d69bb4a8b56a53314671739ec838f76d7fc8404ef"
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
"path": "packages/runtime/dist/src/index.js",
|
|
324
|
+
"bytes": 1043,
|
|
325
|
+
"sha256": "8181e47ed8b71d7f6eefdad1ecf2d1590f63ce35737a5b58cf0a2567a9336dc6"
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
"path": "packages/runtime/dist/src/media.d.ts",
|
|
329
|
+
"bytes": 688,
|
|
330
|
+
"sha256": "260fdabfa1f0787faf81dbaf3ab6a60ff6e60a119a85bc4e0f014c4f9d1fbde5"
|
|
331
|
+
},
|
|
332
|
+
{
|
|
333
|
+
"path": "packages/runtime/dist/src/media.js",
|
|
334
|
+
"bytes": 1385,
|
|
335
|
+
"sha256": "4d0a3e4a6c2399e915d208284057d0d36bc913e2c4a456a4a7403ecf6cd58b98"
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
"path": "packages/runtime/dist/src/presentation.d.ts",
|
|
339
|
+
"bytes": 3092,
|
|
340
|
+
"sha256": "10f476b8f54f7e13bf46a1fdeccef3ebc0829cc62d0dede85fae802c54b65fc1"
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
"path": "packages/runtime/dist/src/presentation.js",
|
|
344
|
+
"bytes": 13840,
|
|
345
|
+
"sha256": "f1b840aa86a1fe6e4fea89b63a95f7a215eb8e341641450270e1a3a2c63db350"
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
"path": "packages/runtime/dist/src/resource.d.ts",
|
|
349
|
+
"bytes": 1716,
|
|
350
|
+
"sha256": "d44907aabdfb2482ca938d5819162dcd9dc822fdc98281dec9812e642bf05d50"
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
"path": "packages/runtime/dist/src/resource.js",
|
|
354
|
+
"bytes": 6114,
|
|
355
|
+
"sha256": "d0fdabe79e26da8e3684eb326cc370e4d4386835f3f5da0eab91f435b9388d96"
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
"path": "packages/runtime/dist/src/session.d.ts",
|
|
359
|
+
"bytes": 2057,
|
|
360
|
+
"sha256": "628ebe74134f71f4d05642c8bf878ae89da57360e3eca34b0317e2f7d371a88c"
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
"path": "packages/runtime/dist/src/session.js",
|
|
364
|
+
"bytes": 17136,
|
|
365
|
+
"sha256": "199a3289f50bfdd282d0ef2c83f7bd03ba53a8a2f373fefd8e081b38b18757a7"
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
"path": "packages/runtime/dist/src/types.d.ts",
|
|
369
|
+
"bytes": 593,
|
|
370
|
+
"sha256": "691beeffdca9bbe045cd09550a1946d9f61ff37340f5d01fead41ff4c4e278c8"
|
|
371
|
+
},
|
|
372
|
+
{
|
|
373
|
+
"path": "packages/runtime/dist/src/types.js",
|
|
374
|
+
"bytes": 84,
|
|
375
|
+
"sha256": "3c2f5c526f9ba7d5191b9b42194fd3c91024b57bf2f4653f5f237a6544d8d203"
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
"path": "packages/runtime/dist/src/video.d.ts",
|
|
379
|
+
"bytes": 1860,
|
|
380
|
+
"sha256": "b18dc3c6cd8eef13054b9f9335d82afccdbfd49a42eda4e02d491202aeadefee"
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
"path": "packages/runtime/dist/src/video.js",
|
|
384
|
+
"bytes": 12092,
|
|
385
|
+
"sha256": "9e0398c678eb15bea90982b7cf418dd438f9f621b83684722a2c5dba6400227b"
|
|
386
|
+
}
|
|
387
|
+
]
|
|
388
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@onmark/cli",
|
|
3
|
+
"version": "0.1.3",
|
|
4
|
+
"description": "Screenplay-first deterministic browser video compiler",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/varo-yang/onmark.git"
|
|
9
|
+
},
|
|
10
|
+
"type": "module",
|
|
11
|
+
"engines": {
|
|
12
|
+
"node": ">=22.12"
|
|
13
|
+
},
|
|
14
|
+
"bin": {
|
|
15
|
+
"onmark": "./packages/launcher/dist/src/command.js"
|
|
16
|
+
},
|
|
17
|
+
"exports": {
|
|
18
|
+
"./authoring": {
|
|
19
|
+
"types": "./packages/authoring/dist/src/index.d.ts",
|
|
20
|
+
"default": "./packages/authoring/dist/src/index.js"
|
|
21
|
+
},
|
|
22
|
+
"./motion/gsap": {
|
|
23
|
+
"types": "./packages/motion-gsap/dist/src/index.d.ts",
|
|
24
|
+
"default": "./packages/motion-gsap/dist/src/index.js"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"imports": {
|
|
28
|
+
"#onmark-authoring": "./packages/authoring/dist/src/index.js",
|
|
29
|
+
"#onmark-bundler-command": "./packages/bundler/dist/src/command.js",
|
|
30
|
+
"#onmark-motion-gsap": "./packages/motion-gsap/dist/src/index.js",
|
|
31
|
+
"#onmark-runtime": "./packages/runtime/dist/src/index.js"
|
|
32
|
+
},
|
|
33
|
+
"files": [
|
|
34
|
+
"packages",
|
|
35
|
+
"LICENSE",
|
|
36
|
+
"README.md",
|
|
37
|
+
"onmark-release.json"
|
|
38
|
+
],
|
|
39
|
+
"dependencies": {
|
|
40
|
+
"@puppeteer/browsers": "3.0.6",
|
|
41
|
+
"esbuild": "0.28.1",
|
|
42
|
+
"gsap": "3.15.0",
|
|
43
|
+
"parse5": "8.0.1",
|
|
44
|
+
"proxy-agent": "8.0.2",
|
|
45
|
+
"yauzl": "3.4.0"
|
|
46
|
+
},
|
|
47
|
+
"optionalDependencies": {
|
|
48
|
+
"@onmark/cli-darwin-arm64": "0.1.3",
|
|
49
|
+
"@onmark/cli-linux-x64": "0.1.3",
|
|
50
|
+
"@onmark/cli-win32-x64": "0.1.3"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { combineMotion, type PresentationExtension, type PresentationExtensionContext, type PresentationTarget, type PresentationTargetKind, } from "./motion.js";
|
|
2
|
+
export { createDomPresentationBindings, type DomPresentationOptions, type VideoSource, } from "./presentation.js";
|
|
3
|
+
export { createFontResource, createImageResource, type FontResource, type FontResourceOptions, type ImageResource, type ImageResourceOptions, } from "./resource.js";
|