@vosjs/cli 0.31.1 → 0.33.0

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/dist/cli.js CHANGED
@@ -495,7 +495,7 @@ async function cmdCheck(argv) {
495
495
  return result.ok ? EXIT_OK : EXIT_ERROR;
496
496
  }
497
497
  async function delegate(argv, viaAlias = false) {
498
- const { run } = await import("./run-ULH2OMJM.js");
498
+ const { run } = await import("./run-X6XJCMIZ.js");
499
499
  if (viaAlias && argv[0]) {
500
500
  process.stderr.write(
501
501
  `note: "vos voila ${argv[0]}" is now "vos ${argv[0]}".
package/dist/index.js CHANGED
@@ -30,7 +30,7 @@ import {
30
30
  validateActions,
31
31
  waitForPageDone,
32
32
  writeSyncState
33
- } from "./chunk-APVJ4MDJ.js";
33
+ } from "./chunk-6O55OD6D.js";
34
34
  import {
35
35
  BrowserUnavailableError,
36
36
  configDuration,
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  run
4
- } from "./chunk-APVJ4MDJ.js";
4
+ } from "./chunk-6O55OD6D.js";
5
5
  import "./chunk-NHKHTIDR.js";
6
6
  export {
7
7
  run
8
8
  };
9
- //# sourceMappingURL=run-ULH2OMJM.js.map
9
+ //# sourceMappingURL=run-X6XJCMIZ.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vosjs/cli",
3
- "version": "0.31.1",
3
+ "version": "0.33.0",
4
4
  "description": "The vos CLI: record the real product from a scripted browser flow, auto-zoom from the cursor track, cut as data in doc.json, render deterministic video and stills, deliver a release's media per destination spec, and sync with vos.so. One binary, every verb, MIT.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -48,14 +48,14 @@
48
48
  "dependencies": {
49
49
  "mediabunny": "^1.55.7",
50
50
  "playwright": "^1.49.0",
51
- "@vosjs/editor": "^1.3.1",
52
51
  "@vosjs/core": "^0.24.1",
53
- "@vosjs/elements": "^0.8.1",
52
+ "@vosjs/editor": "^1.3.1",
54
53
  "@vosjs/render-core": "^0.2.8",
54
+ "@vosjs/studio-core": "^0.25.0",
55
55
  "@vosjs/shared": "^0.4.1",
56
- "@vosjs/studio-core": "^0.23.0",
57
- "@vosjs/tween": "^0.8.2",
58
- "@vosjs/timeline": "^0.4.1"
56
+ "@vosjs/elements": "^0.8.1",
57
+ "@vosjs/timeline": "^0.4.1",
58
+ "@vosjs/tween": "^0.8.2"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@types/node": "^22",
@@ -824,7 +824,7 @@
824
824
  },
825
825
  "overlays": {
826
826
  "type": "array",
827
- "description": "Compositor v2 (V1): screen-space text clips drawn ABOVE the card, outside the zoom transform. OUTPUT-anchored (start is final-cut seconds \u2014 trims/speed never retime a title). Optional; absent = none.",
827
+ "description": "Screen-space layers drawn ABOVE the card, outside the zoom transform. OUTPUT-anchored (start is final-cut seconds \u2014 trims/speed never retime a title). A layer about something on the page names it with `pin` and is placed beside it, following it as the camera moves; a layer with no referent is a caption and sits in the margin. Optional; absent = none.",
828
828
  "items": {
829
829
  "type": "object",
830
830
  "required": ["id", "kind", "start", "duration", "transform"],
@@ -836,6 +836,54 @@
836
836
  "kind": {
837
837
  "enum": ["text", "image", "video", "html"]
838
838
  },
839
+ "pin": {
840
+ "type": "object",
841
+ "additionalProperties": false,
842
+ "description": "The layer's REFERENT: the thing on the page it is about. Exactly one of step, press or rect names it. The lowering places the layer a gap off one side of the referent and carries it with the referent through the camera (the layer keeps its screen size), so the statement and its subject stay bound; transform.x/y stay the fallback when the pin cannot resolve (validate says why). Not the re-record `anchor` on spans.",
843
+ "properties": {
844
+ "step": {
845
+ "type": ["string", "integer"],
846
+ "description": "a recorder step (actions.json `id`, else its index in meta.steps) whose element rect is the referent \u2014 hover, click, type and drag steps carry one; an older take resolves it from the presses inside the step's window"
847
+ },
848
+ "press": {
849
+ "type": "number",
850
+ "description": "SOURCE seconds: the press nearest this moment (within 0.5 s) names the referent \u2014 for a human recording, which has no steps"
851
+ },
852
+ "rect": {
853
+ "type": "object",
854
+ "required": ["x", "y", "w", "h"],
855
+ "additionalProperties": false,
856
+ "properties": {
857
+ "x": { "type": "number" },
858
+ "y": { "type": "number" },
859
+ "w": { "type": "number", "exclusiveMinimum": 0 },
860
+ "h": { "type": "number", "exclusiveMinimum": 0 }
861
+ },
862
+ "description": "the referent itself, in FRACTIONS of the video frame [0..1] (the zoom cx/cy convention; NOT pixels)"
863
+ },
864
+ "side": {
865
+ "enum": ["auto", "right", "left", "below", "above"],
866
+ "description": "which side of the referent the layer sits on; auto (the default) takes the first of right, left, below, above whose box fits inside the frame through the layer's life, else the roomiest"
867
+ },
868
+ "gap": {
869
+ "type": "number",
870
+ "minimum": 0,
871
+ "description": "design px between the referent and the layer's visible box (default 24)"
872
+ },
873
+ "mark": {
874
+ "enum": ["none", "ring", "underline"],
875
+ "description": "a standing mark on the referent for the layer's life: a rounded ring around it, or a bar under it (default none)"
876
+ },
877
+ "leader": {
878
+ "type": "boolean",
879
+ "description": "a hairline from the layer's near edge to the referent, with a dot at the referent"
880
+ },
881
+ "color": {
882
+ "type": "string",
883
+ "description": "the mark's and the leader's ink (CSS colour; default white over a dark rim, legible on any ground)"
884
+ }
885
+ }
886
+ },
839
887
  "html": {
840
888
  "type": "string",
841
889
  "description": "html kind: the layer's MARKUP, well-formed XML (foreignObject is XML, not HTML: <br />, &amp;, quoted attributes). A UI component authored as DOM, laid out and painted by the browser and composited over the footage sharp at any export size. Required for html. No script runs. An image it names by URL is inlined for you when the URL is on https://assets.vos.so/ (upload it with vos asset upload); any other host paints blank, so inline it as a data: URI. Faces are found from the CSS"