@vosjs/cli 0.9.1 → 0.10.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
@@ -484,7 +484,7 @@ async function cmdCheck(argv) {
484
484
  return result.ok ? EXIT_OK : EXIT_ERROR;
485
485
  }
486
486
  async function delegate(argv, viaAlias = false) {
487
- const { run } = await import("./run-I2XSZAWI.js");
487
+ const { run } = await import("./run-4LSBJO7N.js");
488
488
  if (viaAlias && argv[0]) {
489
489
  process.stderr.write(
490
490
  `note: "vos voila ${argv[0]}" is now "vos ${argv[0]}".
package/dist/index.d.ts CHANGED
@@ -112,11 +112,20 @@ type ActionStep = ({
112
112
  } | {
113
113
  do: 'click';
114
114
  selector: string;
115
- } | {
115
+ }
116
+ /**
117
+ * Type into `selector`. The recorder clicks the field first, which is what
118
+ * opens the typing zoom on it; `focus: false` types into the field as it is
119
+ * already focused, for a keystroke that follows earlier typing (a submitting
120
+ * Enter) rather than starting it — a second click there rings a click effect
121
+ * on empty space beside the text.
122
+ */
123
+ | {
116
124
  do: 'type';
117
125
  selector: string;
118
126
  text: string;
119
127
  delayMs?: number;
128
+ focus?: boolean;
120
129
  } | {
121
130
  do: 'scroll';
122
131
  dy: number;
package/dist/index.js CHANGED
@@ -32,7 +32,7 @@ import {
32
32
  validateActions,
33
33
  waitForPageDone,
34
34
  writeSyncState
35
- } from "./chunk-74MSNLT2.js";
35
+ } from "./chunk-CJPWZVHQ.js";
36
36
  import {
37
37
  BrowserUnavailableError,
38
38
  launchBrowser
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  run
4
- } from "./chunk-74MSNLT2.js";
4
+ } from "./chunk-CJPWZVHQ.js";
5
5
  import "./chunk-A2VSDK3C.js";
6
6
  export {
7
7
  run
8
8
  };
9
- //# sourceMappingURL=run-I2XSZAWI.js.map
9
+ //# sourceMappingURL=run-4LSBJO7N.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vosjs/cli",
3
- "version": "0.9.1",
3
+ "version": "0.10.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,12 +48,12 @@
48
48
  "dependencies": {
49
49
  "mediabunny": "^1.27.3",
50
50
  "playwright": "^1.49.0",
51
- "@vosjs/core": "^0.23.1",
51
+ "@vosjs/elements": "^0.8.0",
52
52
  "@vosjs/editor": "^1.3.0",
53
53
  "@vosjs/render-core": "^0.1.0",
54
54
  "@vosjs/shared": "^0.1.0",
55
- "@vosjs/elements": "^0.8.0",
56
- "@vosjs/studio-core": "^0.1.0",
55
+ "@vosjs/core": "^0.23.1",
56
+ "@vosjs/studio-core": "^0.2.0",
57
57
  "@vosjs/timeline": "^0.4.0",
58
58
  "@vosjs/tween": "^0.8.1"
59
59
  },
@@ -115,6 +115,11 @@
115
115
  "minimum": 0,
116
116
  "default": 40
117
117
  },
118
+ "focus": {
119
+ "type": "boolean",
120
+ "default": true,
121
+ "description": "The recorder clicks the field before typing, and that click is what opens the typing zoom on it. false types into the field as it is already focused: for a keystroke that finishes earlier typing (a submitting Enter) rather than starting it, where a second click rings a click effect on empty space beside the text."
122
+ },
118
123
  "id": {
119
124
  "type": "string",
120
125
  "minLength": 1,
@@ -222,6 +222,58 @@
222
222
  "enum": ["off", "subtle", "medium", "strong"],
223
223
  "description": "Dynamic-tilt wand intensity: derives source:'auto' tilt spans FROM the zoom spans, leaning toward each zoom's focus (max 5/9/14\u00b0 per axis). 'off'/absent = no auto tilt; manual spans work either way."
224
224
  },
225
+ "rejected": {
226
+ "type": "array",
227
+ "description": "Deleted planner proposals, kept so no re-plan proposes them again (\"not this one\"). Each entry is the lane and the SOURCE extent of an auto span you deleted; a fresh proposal on that lane overlapping the extent by half of the shorter span is dropped by vos plan, by plan --reuse (which re-times these like manual spans) and by the studio's re-plans. Manual spans never need this: a re-plan keeps them by contract. The renderer never reads it.",
228
+ "items": {
229
+ "type": "object",
230
+ "required": ["id", "lane", "in", "out"],
231
+ "properties": {
232
+ "id": {
233
+ "type": "string",
234
+ "description": "stable identity (`r{n}`)"
235
+ },
236
+ "lane": {
237
+ "enum": ["zoom", "tilt", "speed"],
238
+ "description": "which planner's proposals this rejects"
239
+ },
240
+ "in": {
241
+ "type": "number",
242
+ "minimum": 0,
243
+ "description": "SOURCE seconds, the deleted span's start"
244
+ },
245
+ "out": {
246
+ "type": "number",
247
+ "description": "SOURCE seconds, > in"
248
+ },
249
+ "anchor": {
250
+ "type": "object",
251
+ "description": "the deleted span's step anchor, when it had one, so a re-record re-times the rejection the same way",
252
+ "required": ["step"],
253
+ "additionalProperties": false,
254
+ "properties": {
255
+ "step": {
256
+ "type": ["string", "integer"],
257
+ "description": "the actions.json step: its `id` when it has one, else its record-time index (meta.steps)"
258
+ },
259
+ "at": {
260
+ "enum": ["start", "end"],
261
+ "description": "which edge of the step the span's `in` is measured from (default start)"
262
+ },
263
+ "offset": {
264
+ "type": "number",
265
+ "description": "seconds from that edge to `in` (negative = before it)"
266
+ }
267
+ }
268
+ },
269
+ "note": {
270
+ "type": "string",
271
+ "description": "why, in the deleter's words"
272
+ }
273
+ },
274
+ "additionalProperties": false
275
+ }
276
+ },
225
277
  "audio": {
226
278
  "$ref": "#/definitions/audio"
227
279
  },