@osmo.inc/cli-linux-arm64 0.1.22 → 0.1.24

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.
Files changed (69) hide show
  1. package/dist/studio.js +11834 -7989
  2. package/package.json +1 -1
  3. package/release.json +32 -32
  4. package/runtime/apps/native/tools/compile.mjs +20 -2
  5. package/runtime/packages/render-protocol/src/film-catalog.json +2543 -0
  6. package/runtime/packages/render-protocol/src/film-resources.mjs +91 -0
  7. package/runtime/packages/render-protocol/src/film-store.node.mjs +220 -0
  8. package/runtime/packages/scene/scripts/sync-film.mjs +8 -0
  9. package/runtime/packages/scene/scripts/validate-strict.mjs +14 -4
  10. package/runtime/packages/scene/scripts/verify-export-resolution.mjs +67 -0
  11. package/runtime/packages/scene/scripts/verify-film.mjs +66 -0
  12. package/runtime/packages/scene/src/effect-schemas.d.mts +246 -0
  13. package/runtime/packages/scene/src/effect-schemas.mjs +136 -0
  14. package/runtime/packages/scene/src/effects.ts +23 -6
  15. package/runtime/packages/scene/src/elements.ts +15 -3
  16. package/runtime/packages/scene/src/evaluate.ts +88 -12
  17. package/runtime/packages/scene/src/film-catalog.generated.ts +3 -0
  18. package/runtime/packages/scene/src/film.ts +39 -0
  19. package/runtime/packages/scene/src/index.ts +6 -2
  20. package/runtime/packages/scene/src/knob-schema.ts +5 -2
  21. package/runtime/packages/scene/src/metadata.d.mts +2 -1
  22. package/runtime/packages/scene/src/metadata.mjs +4 -4
  23. package/runtime/packages/scene/src/motion-blur.ts +30 -0
  24. package/src/starter/scene.tsx +1 -1
  25. package/studio/src/app.css +1 -1
  26. package/studio/src/app.js +236 -176
  27. package/studio/src/engine_bg.wasm +0 -0
  28. package/studio/src/preview-worker.js +33 -0
  29. package/third-party/braw/BlackmagicRawAPI.h +1137 -0
  30. package/third-party/braw/README.md +7 -0
  31. package/third-party/cargo/block-buffer@0.10.4/Cargo.toml +32 -0
  32. package/third-party/cargo/block-buffer@0.10.4/LICENSE-APACHE +201 -0
  33. package/third-party/cargo/block-buffer@0.10.4/LICENSE-MIT +25 -0
  34. package/third-party/cargo/cc@1.4.5/Cargo.toml +89 -0
  35. package/third-party/cargo/cc@1.4.5/LICENSE-APACHE +201 -0
  36. package/third-party/cargo/cc@1.4.5/LICENSE-MIT +25 -0
  37. package/third-party/cargo/cpufeatures@0.2.17/Cargo.toml +71 -0
  38. package/third-party/cargo/cpufeatures@0.2.17/LICENSE-APACHE +201 -0
  39. package/third-party/cargo/cpufeatures@0.2.17/LICENSE-MIT +25 -0
  40. package/third-party/cargo/crypto-common@0.1.7/Cargo.toml +62 -0
  41. package/third-party/cargo/crypto-common@0.1.7/LICENSE-APACHE +201 -0
  42. package/third-party/cargo/crypto-common@0.1.7/LICENSE-MIT +25 -0
  43. package/third-party/cargo/digest@0.10.7/Cargo.toml +70 -0
  44. package/third-party/cargo/digest@0.10.7/LICENSE-APACHE +201 -0
  45. package/third-party/cargo/digest@0.10.7/LICENSE-MIT +25 -0
  46. package/third-party/cargo/find-msvc-tools@0.1.12/Cargo.toml +49 -0
  47. package/third-party/cargo/find-msvc-tools@0.1.12/LICENSE-APACHE +201 -0
  48. package/third-party/cargo/find-msvc-tools@0.1.12/LICENSE-MIT +25 -0
  49. package/third-party/cargo/generic-array@0.14.7/Cargo.toml +75 -0
  50. package/third-party/cargo/generic-array@0.14.7/LICENSE +21 -0
  51. package/third-party/cargo/sha2@0.10.9/Cargo.toml +90 -0
  52. package/third-party/cargo/sha2@0.10.9/LICENSE-APACHE +201 -0
  53. package/third-party/cargo/sha2@0.10.9/LICENSE-MIT +27 -0
  54. package/third-party/cargo/shlex@2.0.1/Cargo.toml +51 -0
  55. package/third-party/cargo/shlex@2.0.1/LICENSE-APACHE +13 -0
  56. package/third-party/cargo/shlex@2.0.1/LICENSE-MIT +21 -0
  57. package/third-party/cargo/typenum@1.20.1/Cargo.toml +75 -0
  58. package/third-party/cargo/typenum@1.20.1/LICENSE +1 -0
  59. package/third-party/cargo/typenum@1.20.1/LICENSE-APACHE +201 -0
  60. package/third-party/cargo/typenum@1.20.1/LICENSE-MIT +21 -0
  61. package/third-party/film/camera-COLOUR-LICENSE +11 -0
  62. package/third-party/film/camera-CONFIG-LICENSE +26 -0
  63. package/third-party/film/camera-LICENSE +26 -0
  64. package/third-party/film/camera-metadata.json +344 -0
  65. package/third-party/film/provenance.json +7 -0
  66. package/third-party/inventory.json +140 -0
  67. package/vendor/osmo-lite +0 -0
  68. package/vendor/osmo-scene-0.1.0.tgz +0 -0
  69. package/vendor/platform.json +1 -1
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.22",
2
+ "version": "0.1.24",
3
3
  "type": "module",
4
4
  "files": [
5
5
  "dist",
package/release.json CHANGED
@@ -1,37 +1,37 @@
1
1
  {
2
- "version": "0.1.22",
2
+ "version": "0.1.24",
3
3
  "package": "@osmo.inc/cli-linux-arm64",
4
4
  "platform": "linux-arm64",
5
5
  "channel": "latest",
6
- "sourceCommit": "dc5a0ab0dc8f153ac47f88ec6f5207d38e1408a0",
6
+ "sourceCommit": "b56598df0b36200ac57715d4282924ec5bf931cd",
7
7
  "sourceDirty": false,
8
8
  "signing": "unsigned",
9
9
  "licenseFileIncluded": false,
10
- "dependencyCount": 298,
10
+ "dependencyCount": 308,
11
11
  "nativeDefaultFeatures": false,
12
12
  "contents": {
13
- "totalBytes": 62212690,
14
- "fileCount": 1929,
13
+ "totalBytes": 63522234,
14
+ "fileCount": 1978,
15
15
  "groups": {
16
- "studio": 19564052,
17
- "vendor": 18527757,
16
+ "studio": 20080257,
17
+ "vendor": 18779297,
18
18
  "node_modules/typescript": 9913238,
19
19
  "node_modules/zod": 6140311,
20
- "third-party": 4941579,
21
- "src": 2622428,
22
- "dist": 344229,
23
- "runtime": 157161,
20
+ "third-party": 5144253,
21
+ "src": 2622446,
22
+ "dist": 486515,
23
+ "runtime": 353982,
24
24
  "THIRD_PARTY_NOTICES.md": 1090,
25
25
  "package.json": 845
26
26
  },
27
27
  "largestFiles": [
28
28
  {
29
29
  "path": "vendor/osmo-lite",
30
- "bytes": 18486984
30
+ "bytes": 18708168
31
31
  },
32
32
  {
33
33
  "path": "studio/src/engine_bg.wasm",
34
- "bytes": 12109447
34
+ "bytes": 12156529
35
35
  },
36
36
  {
37
37
  "path": "node_modules/typescript/lib/typescript.js",
@@ -39,7 +39,7 @@
39
39
  },
40
40
  {
41
41
  "path": "studio/src/app.js",
42
- "bytes": 5298780
42
+ "bytes": 5469526
43
43
  },
44
44
  {
45
45
  "path": "node_modules/typescript/lib/lib.dom.d.ts",
@@ -57,6 +57,10 @@
57
57
  "path": "src/starter/animations/osmo/shape8-62.tsx",
58
58
  "bytes": 505710
59
59
  },
60
+ {
61
+ "path": "dist/studio.js",
62
+ "bytes": 486515
63
+ },
60
64
  {
61
65
  "path": "src/starter/animations/osmo/shape26-0.tsx",
62
66
  "bytes": 421037
@@ -81,43 +85,39 @@
81
85
  "path": "src/resource-examples/example-video/ambient.mp4",
82
86
  "bytes": 370430
83
87
  },
84
- {
85
- "path": "dist/studio.js",
86
- "bytes": 344229
87
- },
88
88
  {
89
89
  "path": "third-party/rust-standard-library/COPYRIGHT-library.html",
90
90
  "bytes": 279302
91
91
  },
92
+ {
93
+ "path": "studio/src/preview-worker.js",
94
+ "bytes": 273134
95
+ },
92
96
  {
93
97
  "path": "node_modules/typescript/lib/lib.es5.d.ts",
94
98
  "bytes": 218439
95
99
  },
96
100
  {
97
101
  "path": "studio/src/app.css",
98
- "bytes": 179737
102
+ "bytes": 204980
99
103
  },
100
104
  {
101
105
  "path": "node_modules/zod/src/v4/core/schemas.ts",
102
106
  "bytes": 175664
103
- },
104
- {
105
- "path": "node_modules/zod/src/v3/types.ts",
106
- "bytes": 160442
107
107
  }
108
108
  ]
109
109
  },
110
110
  "hashes": {
111
- "dist/studio.js": "e71a0b00653fc27cb9ff304f8d1b72fb298c6237f7e5ecdebade29e3f832865a",
112
- "vendor/osmo-lite": "f222c6e4f861cf219af736545e66d03cc35bb16b240d1bd64d224f364042fbeb",
113
- "studio/src/engine_bg.wasm": "fadf7cc6517dc6b4e78b0e1df6d0f58b3eee19174bf0fc7348d30bd55524e0af",
114
- "studio/src/app.js": "f2c70ad6723efea752c9f240d6d56a5e4c1d6557f7b0f1bf9f3dfd79388e6e3a",
115
- "studio/src/app.css": "ec4c1046e1610fdb33706ef218c749b1fcadbc72fc899928932de4e2eea9702d",
116
- "third-party/inventory.json": "49062ad067631946356ecb120f0b461beb5fd75e16c660cec42b19de31f62502"
111
+ "dist/studio.js": "d1f6235523b4ab90f6c9b31700049709ebc5b024d5a34344dec76c63363e279a",
112
+ "vendor/osmo-lite": "8320c18e2152c0d573751799b1380851ced26ceb2d5d8fb1ffcf218ce426fb66",
113
+ "studio/src/engine_bg.wasm": "a4e257f97e0d15c2847151aae0e88f46e9eb886ef0ab7e06b240aaf78e0c8c75",
114
+ "studio/src/app.js": "ccb3024ef41c9e28dd3e188fc3dd76cf025c9cbd7228d15d45c1bb5e8abc3e19",
115
+ "studio/src/app.css": "78a3715ee6200db6b0c23aff27bb7b10201350fce7a6629f616f0117878965a1",
116
+ "third-party/inventory.json": "27e4179ecd43b63625f1e61e29c3b5ed87f6ceb48b1cd932688975b950bbe1d0"
117
117
  },
118
118
  "lockfiles": {
119
- "package-lock.json": "50769688a12227eb1bafbaf2f7e4e995013cdb0d8b4277ef79ef3a6e5c6856d2",
120
- "apps/native/Cargo.lock": "cf31d67cf167c5f32438abfeb42159eb50da61d36e4e482bae50ed3d71241373",
121
- "packages/render-engine/Cargo.lock": "a1a68051e1eea30ef0fa46bf17cd0685bb2c6a327defed0405e0d63dd61017a7"
119
+ "package-lock.json": "38d15ffdc2dc9321ff5e21109c392069da8e9693f9eb2f6c71d0cb8f952c6aa8",
120
+ "apps/native/Cargo.lock": "109e3160fc6f68a71b18c9098af6ac3e7d13a9f2457354d0dc4585ada1ad1bf2",
121
+ "packages/render-engine/Cargo.lock": "582dea5c95112000f6e1f10f2805a22943e584a3a4c6e02ad23ae992053e151a"
122
122
  }
123
123
  }
@@ -1,3 +1,5 @@
1
+ import { collectFilmKeys } from "../../../packages/render-protocol/src/film-resources.mjs";
2
+ import { createFilmStore } from "../../../packages/render-protocol/src/film-store.node.mjs";
1
3
  import { build } from "esbuild";
2
4
  import ts from "typescript";
3
5
  import { open, readFile, stat } from "node:fs/promises";
@@ -25,7 +27,7 @@ const api = path.join(repo, "packages/scene/src/index.ts");
25
27
  const runtime = path.join(repo, "packages/scene/src/jsx-runtime.ts");
26
28
  const result = await build({
27
29
  stdin: {
28
- contents: `import scene from ${JSON.stringify(source)}; export {scene}; export {EFFECT_INPUT} from ${JSON.stringify(path.join(repo, "packages/scene/src/effects.ts"))}; export {Scene, Group, evaluateFrame} from ${JSON.stringify(api)}; export {prepareShader} from ${JSON.stringify(path.join(repo, "packages/scene/src/shader.ts"))};`,
30
+ contents: `import scene from ${JSON.stringify(source)}; export {scene}; export {EFFECT_INPUT} from ${JSON.stringify(path.join(repo, "packages/scene/src/effects.ts"))}; export {Scene, Group, evaluateMotionFrame as evaluateFrame} from ${JSON.stringify(api)}; export {prepareShader} from ${JSON.stringify(path.join(repo, "packages/scene/src/shader.ts"))};`,
29
31
  resolveDir: path.dirname(source),
30
32
  },
31
33
  plugins: [{ name: "effect-source", setup(build) {
@@ -106,6 +108,7 @@ if (first.width > 8192 || first.height > 8192 || first.totalFrames > 18000) {
106
108
  }
107
109
  if (!Number.isInteger(first.width) || !Number.isInteger(first.height))
108
110
  throw new Error("Native composition dimensions must be whole pixels");
111
+ const filmKeys = new Set();
109
112
  const fonts = new Map();
110
113
  const dependencies = new Set([
111
114
  source,
@@ -116,6 +119,7 @@ const dependencies = new Set([
116
119
  const shaders = new Map();
117
120
  async function collectEffects(target) {
118
121
  for (const effect of target.effects ?? []) {
122
+ if (effect.film) continue;
119
123
  let key = "effect:" + effect.code;
120
124
  if (effect.src) {
121
125
  effect.src = path.resolve(path.dirname(path.resolve(repo, effect.sourceFile ?? source)), effect.src);
@@ -139,7 +143,14 @@ async function collectFonts(nodes) {
139
143
  if(node.type === "composition") { await collectEffects(node.scene); await collectFonts(node.scene.children); }
140
144
  if (["group","model","surface"].includes(node.type)) await collectFonts(node.children);
141
145
  if (["image", "video", "audio", "model"].includes(node.type)) {
142
- node.src = path.resolve(
146
+ if (node.type === "video" && node.originalSrc && process.env.OSMO_MEDIA_SOURCE === "original") {
147
+ const original = path.resolve(path.dirname(path.resolve(repo, node.originalSourceFile ?? node.sourceFile ?? source)), node.originalSrc);
148
+ if (!(await stat(original).catch(() => null))?.isFile()) throw new Error(`Original video is unavailable: ${original}`);
149
+ node.src = original;
150
+ }
151
+ delete node.originalSrc;
152
+ delete node.originalSourceFile;
153
+ node.src = path.resolve(
143
154
  path.dirname(path.resolve(repo, node.sourceFile ?? source)),
144
155
  node.src,
145
156
  );
@@ -202,8 +213,12 @@ try {
202
213
  });
203
214
  for (let frame = 0; frame < first.totalFrames; frame++) {
204
215
  const evaluated = frame === 0 ? first : evaluateFrame(scene, frame);
216
+ for (const sample of evaluated.motionSamples ?? []) {
217
+ await collectEffects(sample); await collectFonts(sample.children);
218
+ }
205
219
  await collectEffects(evaluated);
206
220
  await collectFonts(evaluated.children);
221
+ collectFilmKeys(evaluated, filmKeys);
207
222
  await line(evaluated);
208
223
  }
209
224
  const assets = [];
@@ -216,6 +231,9 @@ try {
216
231
  bytes: (await readFile(font)).toString("base64"),
217
232
  });
218
233
  }
234
+ // Installed CLI sets OSMO_FILM_TABLES to the shared resource directory.
235
+ // Direct desktop/check-out renderers retain their existing asset location.
236
+ await createFilmStore({directory: process.env.OSMO_FILM_TABLES ?? path.join(repo, "packages/render-engine/assets/film")}).ensureAll(filmKeys);
219
237
  await line({ assets, dependencies: [...dependencies] });
220
238
  } finally {
221
239
  await file.close();