@onmark/cli 0.2.1 → 0.3.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.
@@ -1,12 +1,12 @@
1
1
  // Generated by `cargo xtask schema`; do not edit.
2
2
  "use strict";
3
3
  export const validateBrowserRequest = validate20;
4
- const schema31 = { "$defs": { "BrowserCommand": { "description": "Closed commands understood by the browser runtime.", "oneOf": [{ "additionalProperties": false, "description": "Install one immutable browser plan.", "properties": { "plan": { "$ref": "#/$defs/BrowserPlan", "description": "Solved frame facts consumed by the runtime clock." }, "type": { "const": "load", "type": "string" } }, "required": ["type", "plan"], "type": "object" }, { "additionalProperties": false, "description": "Stabilize resources at the evaluation start frame.", "properties": { "evaluationStart": { "$ref": "#/$defs/WireFrame", "description": "First frame that may be evaluated by this unit." }, "type": { "const": "prepare", "type": "string" } }, "required": ["type", "evaluationStart"], "type": "object" }, { "additionalProperties": false, "description": "Evaluate one exact absolute frame.", "properties": { "frame": { "$ref": "#/$defs/WireFrame", "description": "Frame selected by the native executor." }, "type": { "const": "seek", "type": "string" } }, "required": ["type", "frame"], "type": "object" }, { "additionalProperties": false, "description": "Confirm staged media reached the compositor before accepting capture.", "properties": { "frame": { "$ref": "#/$defs/WireFrame", "description": "Frame whose staged media must be compositor-confirmed." }, "type": { "const": "confirm", "type": "string" } }, "required": ["type", "frame"], "type": "object" }, { "additionalProperties": false, "description": "Release page-owned resources for this session.", "properties": { "type": { "const": "dispose", "type": "string" } }, "required": ["type"], "type": "object" }] }, "BrowserNode": { "additionalProperties": false, "description": "Browser-facing identity retained from one Timeline element.", "properties": { "authoredId": { "type": ["string", "null"] }, "nodeId": { "$ref": "#/$defs/BrowserNodeId" } }, "required": ["nodeId"], "type": "object" }, "BrowserNodeId": { "description": "Browser identity for one Timeline element or imported caption.\n\nIDs form dense renderable-semantic preorder within one Browser Plan.\n\nAuthored IDs, rather than this unit-local key, retain cross-projection\nsemantic identity.", "format": "uint32", "maximum": 4294967295, "minimum": 0, "type": "integer" }, "BrowserOverlay": { "additionalProperties": false, "description": "One solved overlay placement consumed by the browser presentation.", "properties": { "interval": { "$ref": "#/$defs/WireInterval" }, "kind": { "$ref": "#/$defs/BrowserOverlayKind" }, "node": { "$ref": "#/$defs/BrowserNode" }, "shotId": { "anyOf": [{ "$ref": "#/$defs/BrowserNodeId" }, { "type": "null" }] }, "text": { "maxLength": 65536, "type": "string" } }, "required": ["node", "kind", "text", "interval"], "type": "object" }, "BrowserOverlayKind": { "description": "Closed overlay roles understood by the browser presentation.", "oneOf": [{ "const": "title", "description": "Authored title content.", "type": "string" }, { "const": "callToAction", "description": "Authored call-to-action content.", "type": "string" }, { "const": "caption", "description": "Imported caption text.", "type": "string" }] }, "BrowserPlan": { "additionalProperties": false, "description": "Timeline facts consumed by the browser clock and presentation.", "properties": { "evaluation": { "$ref": "#/$defs/WireInterval" }, "film": { "$ref": "#/$defs/BrowserNode" }, "frameRate": { "$ref": "#/$defs/WireFrameRate" }, "output": { "$ref": "#/$defs/WireInterval" }, "overlays": { "items": { "$ref": "#/$defs/BrowserOverlay" }, "maxItems": 10000, "type": "array" }, "scenes": { "items": { "$ref": "#/$defs/BrowserScene" }, "maxItems": 10000, "type": "array" }, "shots": { "items": { "$ref": "#/$defs/BrowserShot" }, "maxItems": 10000, "type": "array" }, "timeline": { "$ref": "#/$defs/WireInterval" }, "timelineVersion": { "const": 1, "format": "uint16", "maximum": 65535, "minimum": 0, "type": "integer" }, "videos": { "items": { "$ref": "#/$defs/BrowserVideo" }, "maxItems": 10000, "type": "array" } }, "required": ["timelineVersion", "frameRate", "timeline", "evaluation", "output", "film", "scenes", "shots", "videos", "overlays"], "type": "object" }, "BrowserScene": { "additionalProperties": false, "description": "One scene container intersecting this unit, with its complete Timeline interval.", "properties": { "interval": { "$ref": "#/$defs/WireInterval" }, "node": { "$ref": "#/$defs/BrowserNode" } }, "required": ["node", "interval"], "type": "object" }, "BrowserShot": { "additionalProperties": false, "description": "One shot container intersecting this unit, with its complete Timeline interval.", "properties": { "interval": { "$ref": "#/$defs/WireInterval" }, "node": { "$ref": "#/$defs/BrowserNode" }, "sceneId": { "$ref": "#/$defs/BrowserNodeId" } }, "required": ["node", "sceneId", "interval"], "type": "object" }, "BrowserVideo": { "additionalProperties": false, "description": "One primary video placement consumed by the browser presentation adapter.", "properties": { "assetId": { "pattern": "^sha256:[0-9a-f]{64}$", "type": "string" }, "interval": { "$ref": "#/$defs/WireInterval" }, "node": { "$ref": "#/$defs/BrowserNode" }, "shotId": { "$ref": "#/$defs/BrowserNodeId" }, "sourceFrameRate": { "$ref": "#/$defs/WireFrameRate" } }, "required": ["node", "shotId", "assetId", "interval", "sourceFrameRate"], "type": "object" }, "ProtocolVersion": { "const": 1, "description": "Version of the native-to-browser message contract.", "format": "uint16", "maximum": 65535, "minimum": 0, "type": "integer" }, "RequestId": { "description": "Correlation identity shared by one request and its response events.", "format": "uint32", "maximum": 4294967295, "minimum": 0, "type": "integer" }, "WireFrame": { "description": "Exact frame integer accepted by JavaScript without rounding.", "format": "uint64", "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "WireFrameRate": { "additionalProperties": false, "description": "Exact rational frame rate represented with browser-safe integers.", "properties": { "denominator": { "format": "uint32", "maximum": 4294967295, "minimum": 1, "type": "integer" }, "numerator": { "format": "uint32", "maximum": 4294967295, "minimum": 1, "type": "integer" } }, "required": ["numerator", "denominator"], "type": "object" }, "WireInterval": { "additionalProperties": false, "description": "One half-open browser frame interval.", "properties": { "end": { "$ref": "#/$defs/WireFrame" }, "start": { "$ref": "#/$defs/WireFrame" } }, "required": ["start", "end"], "type": "object" } }, "$id": "https://onmark.dev/schemas/browser-request-v1.schema.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "One versioned command sent from the native executor to the browser.", "properties": { "command": { "$ref": "#/$defs/BrowserCommand" }, "requestId": { "$ref": "#/$defs/RequestId" }, "version": { "$ref": "#/$defs/ProtocolVersion" } }, "required": ["version", "requestId", "command"], "title": "BrowserRequest", "type": "object", "x-onmark-runtime-host": "__ONMARK_RUNTIME__" };
5
- const schema52 = { "description": "Correlation identity shared by one request and its response events.", "format": "uint32", "maximum": 4294967295, "minimum": 0, "type": "integer" };
6
- const schema53 = { "const": 1, "description": "Version of the native-to-browser message contract.", "format": "uint16", "maximum": 65535, "minimum": 0, "type": "integer" };
4
+ const schema31 = { "$defs": { "BrowserCommand": { "description": "Closed commands understood by the browser runtime.", "oneOf": [{ "additionalProperties": false, "description": "Install one immutable browser plan.", "properties": { "plan": { "$ref": "#/$defs/BrowserPlan", "description": "Solved frame facts consumed by the runtime clock." }, "type": { "const": "load", "type": "string" } }, "required": ["type", "plan"], "type": "object" }, { "additionalProperties": false, "description": "Stabilize resources at the evaluation start frame.", "properties": { "evaluationStart": { "$ref": "#/$defs/WireFrame", "description": "First frame that may be evaluated by this unit." }, "type": { "const": "prepare", "type": "string" } }, "required": ["type", "evaluationStart"], "type": "object" }, { "additionalProperties": false, "description": "Evaluate one exact absolute frame.", "properties": { "frame": { "$ref": "#/$defs/WireFrame", "description": "Frame selected by the native executor." }, "type": { "const": "seek", "type": "string" } }, "required": ["type", "frame"], "type": "object" }, { "additionalProperties": false, "description": "Confirm staged media reached the compositor before accepting capture.", "properties": { "frame": { "$ref": "#/$defs/WireFrame", "description": "Frame whose staged media must be compositor-confirmed." }, "type": { "const": "confirm", "type": "string" } }, "required": ["type", "frame"], "type": "object" }, { "additionalProperties": false, "description": "Release page-owned resources for this session.", "properties": { "type": { "const": "dispose", "type": "string" } }, "required": ["type"], "type": "object" }] }, "BrowserNode": { "additionalProperties": false, "description": "Browser-facing identity retained from one Timeline element.", "properties": { "authoredId": { "type": ["string", "null"] }, "nodeId": { "$ref": "#/$defs/BrowserNodeId" } }, "required": ["nodeId"], "type": "object" }, "BrowserNodeId": { "description": "Browser identity for one Timeline element or imported caption.\n\nIDs form dense renderable-semantic preorder within one Browser Plan.\n\nAuthored IDs, rather than this unit-local key, retain cross-projection\nsemantic identity.", "format": "uint32", "maximum": 4294967295, "minimum": 0, "type": "integer" }, "BrowserOverlay": { "additionalProperties": false, "description": "One solved overlay placement consumed by the browser presentation.", "properties": { "interval": { "$ref": "#/$defs/WireInterval" }, "kind": { "$ref": "#/$defs/BrowserOverlayKind" }, "node": { "$ref": "#/$defs/BrowserNode" }, "shotId": { "anyOf": [{ "$ref": "#/$defs/BrowserNodeId" }, { "type": "null" }] }, "text": { "maxLength": 65536, "type": "string" } }, "required": ["node", "kind", "text", "interval"], "type": "object" }, "BrowserOverlayKind": { "description": "Closed overlay roles understood by the browser presentation.", "oneOf": [{ "const": "title", "description": "Authored title content.", "type": "string" }, { "const": "callToAction", "description": "Authored call-to-action content.", "type": "string" }, { "const": "caption", "description": "Imported caption text.", "type": "string" }] }, "BrowserPlan": { "additionalProperties": false, "description": "Timeline facts consumed by the browser clock and presentation.", "properties": { "evaluation": { "$ref": "#/$defs/WireInterval" }, "film": { "$ref": "#/$defs/BrowserNode" }, "frameRate": { "$ref": "#/$defs/WireFrameRate" }, "output": { "$ref": "#/$defs/WireInterval" }, "overlays": { "items": { "$ref": "#/$defs/BrowserOverlay" }, "maxItems": 10000, "type": "array" }, "scenes": { "items": { "$ref": "#/$defs/BrowserScene" }, "maxItems": 10000, "type": "array" }, "shots": { "items": { "$ref": "#/$defs/BrowserShot" }, "maxItems": 10000, "type": "array" }, "timeline": { "$ref": "#/$defs/WireInterval" }, "timelineVersion": { "const": 2, "format": "uint16", "maximum": 65535, "minimum": 0, "type": "integer" }, "videos": { "items": { "$ref": "#/$defs/BrowserVideo" }, "maxItems": 10000, "type": "array" } }, "required": ["timelineVersion", "frameRate", "timeline", "evaluation", "output", "film", "scenes", "shots", "videos", "overlays"], "type": "object" }, "BrowserScene": { "additionalProperties": false, "description": "One scene container intersecting this unit, with its complete Timeline interval.", "properties": { "interval": { "$ref": "#/$defs/WireInterval" }, "node": { "$ref": "#/$defs/BrowserNode" } }, "required": ["node", "interval"], "type": "object" }, "BrowserShot": { "additionalProperties": false, "description": "One shot container intersecting this unit, with its complete Timeline interval.", "properties": { "interval": { "$ref": "#/$defs/WireInterval" }, "node": { "$ref": "#/$defs/BrowserNode" }, "sceneId": { "$ref": "#/$defs/BrowserNodeId" } }, "required": ["node", "sceneId", "interval"], "type": "object" }, "BrowserVideo": { "additionalProperties": false, "description": "One primary video placement consumed by the browser presentation adapter.", "properties": { "assetId": { "pattern": "^sha256:[0-9a-f]{64}$", "type": "string" }, "interval": { "$ref": "#/$defs/WireInterval" }, "node": { "$ref": "#/$defs/BrowserNode" }, "shotId": { "$ref": "#/$defs/BrowserNodeId" }, "source": { "$ref": "#/$defs/BrowserVideoSource" }, "sourceTiming": { "$ref": "#/$defs/BrowserVideoTiming" } }, "required": ["node", "shotId", "assetId", "interval", "sourceTiming", "source"], "type": "object" }, "BrowserVideoSource": { "additionalProperties": false, "description": "Exact source-time mapping for one browser video placement.", "properties": { "endNanoseconds": { "maxLength": 20, "minLength": 1, "pattern": "^(0|[1-9][0-9]*)$", "type": "string" }, "holdLastNanoseconds": { "maxLength": 20, "minLength": 1, "pattern": "^(0|[1-9][0-9]*)$", "type": "string" }, "naturalEndNanoseconds": { "maxLength": 20, "minLength": 1, "pattern": "^(0|[1-9][0-9]*)$", "type": "string" }, "playbackRate": { "$ref": "#/$defs/WirePlaybackRate" }, "plays": { "format": "uint32", "minimum": 1, "type": "integer" }, "startNanoseconds": { "maxLength": 20, "minLength": 1, "pattern": "^(0|[1-9][0-9]*)$", "type": "string" } }, "required": ["startNanoseconds", "endNanoseconds", "naturalEndNanoseconds", "playbackRate", "plays", "holdLastNanoseconds"], "type": "object" }, "BrowserVideoTiming": { "description": "Exact source-frame timing projected into the browser runtime.", "oneOf": [{ "additionalProperties": false, "description": "Every source frame has one exact rational rate.", "properties": { "frameRate": { "$ref": "#/$defs/WireFrameRate", "description": "Exact source frames per second." }, "kind": { "const": "constant", "type": "string" } }, "required": ["kind", "frameRate"], "type": "object" }, { "additionalProperties": false, "description": "Every source frame carries one half-open timestamp interval.", "properties": { "boundaries": { "description": "Canonical decimal ticks from source zero through terminal end.", "items": { "type": "string" }, "maxItems": 100000, "minItems": 3, "type": "array" }, "kind": { "const": "variable", "type": "string" }, "timebase": { "$ref": "#/$defs/WireMediaTimebase", "description": "Exact seconds represented by one source timestamp tick." } }, "required": ["kind", "timebase", "boundaries"], "type": "object" }] }, "ProtocolVersion": { "const": 3, "description": "Version of the native-to-browser message contract.", "format": "uint16", "maximum": 65535, "minimum": 0, "type": "integer" }, "RequestId": { "description": "Correlation identity shared by one request and its response events.", "format": "uint32", "maximum": 4294967295, "minimum": 0, "type": "integer" }, "WireFrame": { "description": "Exact frame integer accepted by JavaScript without rounding.", "format": "uint64", "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "WireFrameRate": { "additionalProperties": false, "description": "Exact rational frame rate represented with browser-safe integers.", "properties": { "denominator": { "format": "uint32", "maximum": 4294967295, "minimum": 1, "type": "integer" }, "numerator": { "format": "uint32", "maximum": 4294967295, "minimum": 1, "type": "integer" } }, "required": ["numerator", "denominator"], "type": "object" }, "WireInterval": { "additionalProperties": false, "description": "One half-open browser frame interval.", "properties": { "end": { "$ref": "#/$defs/WireFrame" }, "start": { "$ref": "#/$defs/WireFrame" } }, "required": ["start", "end"], "type": "object" }, "WireMediaTimebase": { "additionalProperties": false, "description": "Exact media timestamp unit represented with browser-safe integers.", "properties": { "denominator": { "format": "uint32", "maximum": 4294967295, "minimum": 1, "type": "integer" }, "numerator": { "format": "uint32", "maximum": 4294967295, "minimum": 1, "type": "integer" } }, "required": ["numerator", "denominator"], "type": "object" }, "WirePlaybackRate": { "additionalProperties": false, "description": "Exact canonical playback ratio represented with browser-safe integers.", "properties": { "denominator": { "format": "uint32", "maximum": 4294967295, "minimum": 1, "type": "integer" }, "numerator": { "format": "uint32", "maximum": 4294967295, "minimum": 1, "type": "integer" } }, "required": ["numerator", "denominator"], "type": "object" } }, "$id": "https://onmark.dev/schemas/browser-request-v3.schema.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "One versioned command sent from the native executor to the browser.", "properties": { "command": { "$ref": "#/$defs/BrowserCommand" }, "requestId": { "$ref": "#/$defs/RequestId" }, "version": { "$ref": "#/$defs/ProtocolVersion" } }, "required": ["version", "requestId", "command"], "title": "BrowserRequest", "type": "object", "x-onmark-runtime-host": "__ONMARK_RUNTIME__" };
5
+ const schema56 = { "description": "Correlation identity shared by one request and its response events.", "format": "uint32", "maximum": 4294967295, "minimum": 0, "type": "integer" };
6
+ const schema57 = { "const": 3, "description": "Version of the native-to-browser message contract.", "format": "uint16", "maximum": 65535, "minimum": 0, "type": "integer" };
7
7
  const schema32 = { "description": "Closed commands understood by the browser runtime.", "oneOf": [{ "additionalProperties": false, "description": "Install one immutable browser plan.", "properties": { "plan": { "$ref": "#/$defs/BrowserPlan", "description": "Solved frame facts consumed by the runtime clock." }, "type": { "const": "load", "type": "string" } }, "required": ["type", "plan"], "type": "object" }, { "additionalProperties": false, "description": "Stabilize resources at the evaluation start frame.", "properties": { "evaluationStart": { "$ref": "#/$defs/WireFrame", "description": "First frame that may be evaluated by this unit." }, "type": { "const": "prepare", "type": "string" } }, "required": ["type", "evaluationStart"], "type": "object" }, { "additionalProperties": false, "description": "Evaluate one exact absolute frame.", "properties": { "frame": { "$ref": "#/$defs/WireFrame", "description": "Frame selected by the native executor." }, "type": { "const": "seek", "type": "string" } }, "required": ["type", "frame"], "type": "object" }, { "additionalProperties": false, "description": "Confirm staged media reached the compositor before accepting capture.", "properties": { "frame": { "$ref": "#/$defs/WireFrame", "description": "Frame whose staged media must be compositor-confirmed." }, "type": { "const": "confirm", "type": "string" } }, "required": ["type", "frame"], "type": "object" }, { "additionalProperties": false, "description": "Release page-owned resources for this session.", "properties": { "type": { "const": "dispose", "type": "string" } }, "required": ["type"], "type": "object" }] };
8
8
  const schema35 = { "description": "Exact frame integer accepted by JavaScript without rounding.", "format": "uint64", "maximum": 9007199254740991, "minimum": 0, "type": "integer" };
9
- const schema33 = { "additionalProperties": false, "description": "Timeline facts consumed by the browser clock and presentation.", "properties": { "evaluation": { "$ref": "#/$defs/WireInterval" }, "film": { "$ref": "#/$defs/BrowserNode" }, "frameRate": { "$ref": "#/$defs/WireFrameRate" }, "output": { "$ref": "#/$defs/WireInterval" }, "overlays": { "items": { "$ref": "#/$defs/BrowserOverlay" }, "maxItems": 10000, "type": "array" }, "scenes": { "items": { "$ref": "#/$defs/BrowserScene" }, "maxItems": 10000, "type": "array" }, "shots": { "items": { "$ref": "#/$defs/BrowserShot" }, "maxItems": 10000, "type": "array" }, "timeline": { "$ref": "#/$defs/WireInterval" }, "timelineVersion": { "const": 1, "format": "uint16", "maximum": 65535, "minimum": 0, "type": "integer" }, "videos": { "items": { "$ref": "#/$defs/BrowserVideo" }, "maxItems": 10000, "type": "array" } }, "required": ["timelineVersion", "frameRate", "timeline", "evaluation", "output", "film", "scenes", "shots", "videos", "overlays"], "type": "object" };
9
+ const schema33 = { "additionalProperties": false, "description": "Timeline facts consumed by the browser clock and presentation.", "properties": { "evaluation": { "$ref": "#/$defs/WireInterval" }, "film": { "$ref": "#/$defs/BrowserNode" }, "frameRate": { "$ref": "#/$defs/WireFrameRate" }, "output": { "$ref": "#/$defs/WireInterval" }, "overlays": { "items": { "$ref": "#/$defs/BrowserOverlay" }, "maxItems": 10000, "type": "array" }, "scenes": { "items": { "$ref": "#/$defs/BrowserScene" }, "maxItems": 10000, "type": "array" }, "shots": { "items": { "$ref": "#/$defs/BrowserShot" }, "maxItems": 10000, "type": "array" }, "timeline": { "$ref": "#/$defs/WireInterval" }, "timelineVersion": { "const": 2, "format": "uint16", "maximum": 65535, "minimum": 0, "type": "integer" }, "videos": { "items": { "$ref": "#/$defs/BrowserVideo" }, "maxItems": 10000, "type": "array" } }, "required": ["timelineVersion", "frameRate", "timeline", "evaluation", "output", "film", "scenes", "shots", "videos", "overlays"], "type": "object" };
10
10
  const schema39 = { "additionalProperties": false, "description": "Exact rational frame rate represented with browser-safe integers.", "properties": { "denominator": { "format": "uint32", "maximum": 4294967295, "minimum": 1, "type": "integer" }, "numerator": { "format": "uint32", "maximum": 4294967295, "minimum": 1, "type": "integer" } }, "required": ["numerator", "denominator"], "type": "object" };
11
11
  const func1 = Object.prototype.hasOwnProperty;
12
12
  const schema34 = { "additionalProperties": false, "description": "One half-open browser frame interval.", "properties": { "end": { "$ref": "#/$defs/WireFrame" }, "start": { "$ref": "#/$defs/WireFrame" } }, "required": ["start", "end"], "type": "object" };
@@ -733,12 +733,15 @@ function validate36(data, { instancePath = "", parentData, parentDataProperty, r
733
733
  return errors === 0;
734
734
  }
735
735
  validate36.evaluated = { "props": true, "dynamicProps": false, "dynamicItems": false };
736
- const schema46 = { "additionalProperties": false, "description": "One primary video placement consumed by the browser presentation adapter.", "properties": { "assetId": { "pattern": "^sha256:[0-9a-f]{64}$", "type": "string" }, "interval": { "$ref": "#/$defs/WireInterval" }, "node": { "$ref": "#/$defs/BrowserNode" }, "shotId": { "$ref": "#/$defs/BrowserNodeId" }, "sourceFrameRate": { "$ref": "#/$defs/WireFrameRate" } }, "required": ["node", "shotId", "assetId", "interval", "sourceFrameRate"], "type": "object" };
736
+ const schema46 = { "additionalProperties": false, "description": "One primary video placement consumed by the browser presentation adapter.", "properties": { "assetId": { "pattern": "^sha256:[0-9a-f]{64}$", "type": "string" }, "interval": { "$ref": "#/$defs/WireInterval" }, "node": { "$ref": "#/$defs/BrowserNode" }, "shotId": { "$ref": "#/$defs/BrowserNodeId" }, "source": { "$ref": "#/$defs/BrowserVideoSource" }, "sourceTiming": { "$ref": "#/$defs/BrowserVideoTiming" } }, "required": ["node", "shotId", "assetId", "interval", "sourceTiming", "source"], "type": "object" };
737
737
  const pattern4 = new RegExp("^sha256:[0-9a-f]{64}$", "u");
738
- function validate41(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
738
+ const schema48 = { "additionalProperties": false, "description": "Exact source-time mapping for one browser video placement.", "properties": { "endNanoseconds": { "maxLength": 20, "minLength": 1, "pattern": "^(0|[1-9][0-9]*)$", "type": "string" }, "holdLastNanoseconds": { "maxLength": 20, "minLength": 1, "pattern": "^(0|[1-9][0-9]*)$", "type": "string" }, "naturalEndNanoseconds": { "maxLength": 20, "minLength": 1, "pattern": "^(0|[1-9][0-9]*)$", "type": "string" }, "playbackRate": { "$ref": "#/$defs/WirePlaybackRate" }, "plays": { "format": "uint32", "minimum": 1, "type": "integer" }, "startNanoseconds": { "maxLength": 20, "minLength": 1, "pattern": "^(0|[1-9][0-9]*)$", "type": "string" } }, "required": ["startNanoseconds", "endNanoseconds", "naturalEndNanoseconds", "playbackRate", "plays", "holdLastNanoseconds"], "type": "object" };
739
+ const schema49 = { "additionalProperties": false, "description": "Exact canonical playback ratio represented with browser-safe integers.", "properties": { "denominator": { "format": "uint32", "maximum": 4294967295, "minimum": 1, "type": "integer" }, "numerator": { "format": "uint32", "maximum": 4294967295, "minimum": 1, "type": "integer" } }, "required": ["numerator", "denominator"], "type": "object" };
740
+ const pattern5 = new RegExp("^(0|[1-9][0-9]*)$", "u");
741
+ function validate44(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
739
742
  let vErrors = null;
740
743
  let errors = 0;
741
- const evaluated0 = validate41.evaluated;
744
+ const evaluated0 = validate44.evaluated;
742
745
  if (evaluated0.dynamicProps) {
743
746
  evaluated0.props = undefined;
744
747
  }
@@ -746,8 +749,8 @@ function validate41(data, { instancePath = "", parentData, parentDataProperty, r
746
749
  evaluated0.items = undefined;
747
750
  }
748
751
  if (data && typeof data == "object" && !Array.isArray(data)) {
749
- if (data.node === undefined) {
750
- const err0 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "node" }, message: "must have required property '" + "node" + "'" };
752
+ if (data.startNanoseconds === undefined) {
753
+ const err0 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "startNanoseconds" }, message: "must have required property '" + "startNanoseconds" + "'" };
751
754
  if (vErrors === null) {
752
755
  vErrors = [err0];
753
756
  }
@@ -756,8 +759,8 @@ function validate41(data, { instancePath = "", parentData, parentDataProperty, r
756
759
  }
757
760
  errors++;
758
761
  }
759
- if (data.shotId === undefined) {
760
- const err1 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "shotId" }, message: "must have required property '" + "shotId" + "'" };
762
+ if (data.endNanoseconds === undefined) {
763
+ const err1 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "endNanoseconds" }, message: "must have required property '" + "endNanoseconds" + "'" };
761
764
  if (vErrors === null) {
762
765
  vErrors = [err1];
763
766
  }
@@ -766,8 +769,8 @@ function validate41(data, { instancePath = "", parentData, parentDataProperty, r
766
769
  }
767
770
  errors++;
768
771
  }
769
- if (data.assetId === undefined) {
770
- const err2 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "assetId" }, message: "must have required property '" + "assetId" + "'" };
772
+ if (data.naturalEndNanoseconds === undefined) {
773
+ const err2 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "naturalEndNanoseconds" }, message: "must have required property '" + "naturalEndNanoseconds" + "'" };
771
774
  if (vErrors === null) {
772
775
  vErrors = [err2];
773
776
  }
@@ -776,8 +779,8 @@ function validate41(data, { instancePath = "", parentData, parentDataProperty, r
776
779
  }
777
780
  errors++;
778
781
  }
779
- if (data.interval === undefined) {
780
- const err3 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "interval" }, message: "must have required property '" + "interval" + "'" };
782
+ if (data.playbackRate === undefined) {
783
+ const err3 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "playbackRate" }, message: "must have required property '" + "playbackRate" + "'" };
781
784
  if (vErrors === null) {
782
785
  vErrors = [err3];
783
786
  }
@@ -786,8 +789,8 @@ function validate41(data, { instancePath = "", parentData, parentDataProperty, r
786
789
  }
787
790
  errors++;
788
791
  }
789
- if (data.sourceFrameRate === undefined) {
790
- const err4 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "sourceFrameRate" }, message: "must have required property '" + "sourceFrameRate" + "'" };
792
+ if (data.plays === undefined) {
793
+ const err4 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "plays" }, message: "must have required property '" + "plays" + "'" };
791
794
  if (vErrors === null) {
792
795
  vErrors = [err4];
793
796
  }
@@ -796,190 +799,263 @@ function validate41(data, { instancePath = "", parentData, parentDataProperty, r
796
799
  }
797
800
  errors++;
798
801
  }
802
+ if (data.holdLastNanoseconds === undefined) {
803
+ const err5 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "holdLastNanoseconds" }, message: "must have required property '" + "holdLastNanoseconds" + "'" };
804
+ if (vErrors === null) {
805
+ vErrors = [err5];
806
+ }
807
+ else {
808
+ vErrors.push(err5);
809
+ }
810
+ errors++;
811
+ }
799
812
  for (const key0 in data) {
800
- if (!(((((key0 === "assetId") || (key0 === "interval")) || (key0 === "node")) || (key0 === "shotId")) || (key0 === "sourceFrameRate"))) {
801
- const err5 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key0 }, message: "must NOT have additional properties" };
813
+ if (!((((((key0 === "endNanoseconds") || (key0 === "holdLastNanoseconds")) || (key0 === "naturalEndNanoseconds")) || (key0 === "playbackRate")) || (key0 === "plays")) || (key0 === "startNanoseconds"))) {
814
+ const err6 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key0 }, message: "must NOT have additional properties" };
802
815
  if (vErrors === null) {
803
- vErrors = [err5];
816
+ vErrors = [err6];
804
817
  }
805
818
  else {
806
- vErrors.push(err5);
819
+ vErrors.push(err6);
807
820
  }
808
821
  errors++;
809
822
  }
810
823
  }
811
- if (data.assetId !== undefined) {
812
- let data0 = data.assetId;
824
+ if (data.endNanoseconds !== undefined) {
825
+ let data0 = data.endNanoseconds;
813
826
  if (typeof data0 === "string") {
814
- if (!pattern4.test(data0)) {
815
- const err6 = { instancePath: instancePath + "/assetId", schemaPath: "#/properties/assetId/pattern", keyword: "pattern", params: { pattern: "^sha256:[0-9a-f]{64}$" }, message: "must match pattern \"" + "^sha256:[0-9a-f]{64}$" + "\"" };
827
+ if (func2(data0) > 20) {
828
+ const err7 = { instancePath: instancePath + "/endNanoseconds", schemaPath: "#/properties/endNanoseconds/maxLength", keyword: "maxLength", params: { limit: 20 }, message: "must NOT have more than 20 characters" };
816
829
  if (vErrors === null) {
817
- vErrors = [err6];
830
+ vErrors = [err7];
818
831
  }
819
832
  else {
820
- vErrors.push(err6);
833
+ vErrors.push(err7);
834
+ }
835
+ errors++;
836
+ }
837
+ if (func2(data0) < 1) {
838
+ const err8 = { instancePath: instancePath + "/endNanoseconds", schemaPath: "#/properties/endNanoseconds/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
839
+ if (vErrors === null) {
840
+ vErrors = [err8];
841
+ }
842
+ else {
843
+ vErrors.push(err8);
844
+ }
845
+ errors++;
846
+ }
847
+ if (!pattern5.test(data0)) {
848
+ const err9 = { instancePath: instancePath + "/endNanoseconds", schemaPath: "#/properties/endNanoseconds/pattern", keyword: "pattern", params: { pattern: "^(0|[1-9][0-9]*)$" }, message: "must match pattern \"" + "^(0|[1-9][0-9]*)$" + "\"" };
849
+ if (vErrors === null) {
850
+ vErrors = [err9];
851
+ }
852
+ else {
853
+ vErrors.push(err9);
821
854
  }
822
855
  errors++;
823
856
  }
824
857
  }
825
858
  else {
826
- const err7 = { instancePath: instancePath + "/assetId", schemaPath: "#/properties/assetId/type", keyword: "type", params: { type: "string" }, message: "must be string" };
859
+ const err10 = { instancePath: instancePath + "/endNanoseconds", schemaPath: "#/properties/endNanoseconds/type", keyword: "type", params: { type: "string" }, message: "must be string" };
827
860
  if (vErrors === null) {
828
- vErrors = [err7];
861
+ vErrors = [err10];
829
862
  }
830
863
  else {
831
- vErrors.push(err7);
864
+ vErrors.push(err10);
832
865
  }
833
866
  errors++;
834
867
  }
835
868
  }
836
- if (data.interval !== undefined) {
837
- if (!(validate23(data.interval, { instancePath: instancePath + "/interval", parentData: data, parentDataProperty: "interval", rootData, dynamicAnchors }))) {
838
- vErrors = vErrors === null ? validate23.errors : vErrors.concat(validate23.errors);
839
- errors = vErrors.length;
840
- }
841
- }
842
- if (data.node !== undefined) {
843
- if (!(validate25(data.node, { instancePath: instancePath + "/node", parentData: data, parentDataProperty: "node", rootData, dynamicAnchors }))) {
844
- vErrors = vErrors === null ? validate25.errors : vErrors.concat(validate25.errors);
845
- errors = vErrors.length;
869
+ if (data.holdLastNanoseconds !== undefined) {
870
+ let data1 = data.holdLastNanoseconds;
871
+ if (typeof data1 === "string") {
872
+ if (func2(data1) > 20) {
873
+ const err11 = { instancePath: instancePath + "/holdLastNanoseconds", schemaPath: "#/properties/holdLastNanoseconds/maxLength", keyword: "maxLength", params: { limit: 20 }, message: "must NOT have more than 20 characters" };
874
+ if (vErrors === null) {
875
+ vErrors = [err11];
876
+ }
877
+ else {
878
+ vErrors.push(err11);
879
+ }
880
+ errors++;
881
+ }
882
+ if (func2(data1) < 1) {
883
+ const err12 = { instancePath: instancePath + "/holdLastNanoseconds", schemaPath: "#/properties/holdLastNanoseconds/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
884
+ if (vErrors === null) {
885
+ vErrors = [err12];
886
+ }
887
+ else {
888
+ vErrors.push(err12);
889
+ }
890
+ errors++;
891
+ }
892
+ if (!pattern5.test(data1)) {
893
+ const err13 = { instancePath: instancePath + "/holdLastNanoseconds", schemaPath: "#/properties/holdLastNanoseconds/pattern", keyword: "pattern", params: { pattern: "^(0|[1-9][0-9]*)$" }, message: "must match pattern \"" + "^(0|[1-9][0-9]*)$" + "\"" };
894
+ if (vErrors === null) {
895
+ vErrors = [err13];
896
+ }
897
+ else {
898
+ vErrors.push(err13);
899
+ }
900
+ errors++;
901
+ }
846
902
  }
847
- }
848
- if (data.shotId !== undefined) {
849
- let data3 = data.shotId;
850
- if (!(((typeof data3 == "number") && (!(data3 % 1) && !isNaN(data3))) && (isFinite(data3)))) {
851
- const err8 = { instancePath: instancePath + "/shotId", schemaPath: "#/$defs/BrowserNodeId/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
903
+ else {
904
+ const err14 = { instancePath: instancePath + "/holdLastNanoseconds", schemaPath: "#/properties/holdLastNanoseconds/type", keyword: "type", params: { type: "string" }, message: "must be string" };
852
905
  if (vErrors === null) {
853
- vErrors = [err8];
906
+ vErrors = [err14];
854
907
  }
855
908
  else {
856
- vErrors.push(err8);
909
+ vErrors.push(err14);
857
910
  }
858
911
  errors++;
859
912
  }
860
- if ((typeof data3 == "number") && (isFinite(data3))) {
861
- if (data3 > 4294967295 || isNaN(data3)) {
862
- const err9 = { instancePath: instancePath + "/shotId", schemaPath: "#/$defs/BrowserNodeId/maximum", keyword: "maximum", params: { comparison: "<=", limit: 4294967295 }, message: "must be <= 4294967295" };
913
+ }
914
+ if (data.naturalEndNanoseconds !== undefined) {
915
+ let data2 = data.naturalEndNanoseconds;
916
+ if (typeof data2 === "string") {
917
+ if (func2(data2) > 20) {
918
+ const err15 = { instancePath: instancePath + "/naturalEndNanoseconds", schemaPath: "#/properties/naturalEndNanoseconds/maxLength", keyword: "maxLength", params: { limit: 20 }, message: "must NOT have more than 20 characters" };
863
919
  if (vErrors === null) {
864
- vErrors = [err9];
920
+ vErrors = [err15];
865
921
  }
866
922
  else {
867
- vErrors.push(err9);
923
+ vErrors.push(err15);
868
924
  }
869
925
  errors++;
870
926
  }
871
- if (data3 < 0 || isNaN(data3)) {
872
- const err10 = { instancePath: instancePath + "/shotId", schemaPath: "#/$defs/BrowserNodeId/minimum", keyword: "minimum", params: { comparison: ">=", limit: 0 }, message: "must be >= 0" };
927
+ if (func2(data2) < 1) {
928
+ const err16 = { instancePath: instancePath + "/naturalEndNanoseconds", schemaPath: "#/properties/naturalEndNanoseconds/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
873
929
  if (vErrors === null) {
874
- vErrors = [err10];
930
+ vErrors = [err16];
875
931
  }
876
932
  else {
877
- vErrors.push(err10);
933
+ vErrors.push(err16);
934
+ }
935
+ errors++;
936
+ }
937
+ if (!pattern5.test(data2)) {
938
+ const err17 = { instancePath: instancePath + "/naturalEndNanoseconds", schemaPath: "#/properties/naturalEndNanoseconds/pattern", keyword: "pattern", params: { pattern: "^(0|[1-9][0-9]*)$" }, message: "must match pattern \"" + "^(0|[1-9][0-9]*)$" + "\"" };
939
+ if (vErrors === null) {
940
+ vErrors = [err17];
941
+ }
942
+ else {
943
+ vErrors.push(err17);
878
944
  }
879
945
  errors++;
880
946
  }
881
947
  }
948
+ else {
949
+ const err18 = { instancePath: instancePath + "/naturalEndNanoseconds", schemaPath: "#/properties/naturalEndNanoseconds/type", keyword: "type", params: { type: "string" }, message: "must be string" };
950
+ if (vErrors === null) {
951
+ vErrors = [err18];
952
+ }
953
+ else {
954
+ vErrors.push(err18);
955
+ }
956
+ errors++;
957
+ }
882
958
  }
883
- if (data.sourceFrameRate !== undefined) {
884
- let data4 = data.sourceFrameRate;
885
- if (data4 && typeof data4 == "object" && !Array.isArray(data4)) {
886
- if (data4.numerator === undefined) {
887
- const err11 = { instancePath: instancePath + "/sourceFrameRate", schemaPath: "#/$defs/WireFrameRate/required", keyword: "required", params: { missingProperty: "numerator" }, message: "must have required property '" + "numerator" + "'" };
959
+ if (data.playbackRate !== undefined) {
960
+ let data3 = data.playbackRate;
961
+ if (data3 && typeof data3 == "object" && !Array.isArray(data3)) {
962
+ if (data3.numerator === undefined) {
963
+ const err19 = { instancePath: instancePath + "/playbackRate", schemaPath: "#/$defs/WirePlaybackRate/required", keyword: "required", params: { missingProperty: "numerator" }, message: "must have required property '" + "numerator" + "'" };
888
964
  if (vErrors === null) {
889
- vErrors = [err11];
965
+ vErrors = [err19];
890
966
  }
891
967
  else {
892
- vErrors.push(err11);
968
+ vErrors.push(err19);
893
969
  }
894
970
  errors++;
895
971
  }
896
- if (data4.denominator === undefined) {
897
- const err12 = { instancePath: instancePath + "/sourceFrameRate", schemaPath: "#/$defs/WireFrameRate/required", keyword: "required", params: { missingProperty: "denominator" }, message: "must have required property '" + "denominator" + "'" };
972
+ if (data3.denominator === undefined) {
973
+ const err20 = { instancePath: instancePath + "/playbackRate", schemaPath: "#/$defs/WirePlaybackRate/required", keyword: "required", params: { missingProperty: "denominator" }, message: "must have required property '" + "denominator" + "'" };
898
974
  if (vErrors === null) {
899
- vErrors = [err12];
975
+ vErrors = [err20];
900
976
  }
901
977
  else {
902
- vErrors.push(err12);
978
+ vErrors.push(err20);
903
979
  }
904
980
  errors++;
905
981
  }
906
- for (const key1 in data4) {
982
+ for (const key1 in data3) {
907
983
  if (!((key1 === "denominator") || (key1 === "numerator"))) {
908
- const err13 = { instancePath: instancePath + "/sourceFrameRate", schemaPath: "#/$defs/WireFrameRate/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key1 }, message: "must NOT have additional properties" };
984
+ const err21 = { instancePath: instancePath + "/playbackRate", schemaPath: "#/$defs/WirePlaybackRate/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key1 }, message: "must NOT have additional properties" };
909
985
  if (vErrors === null) {
910
- vErrors = [err13];
986
+ vErrors = [err21];
911
987
  }
912
988
  else {
913
- vErrors.push(err13);
989
+ vErrors.push(err21);
914
990
  }
915
991
  errors++;
916
992
  }
917
993
  }
918
- if (data4.denominator !== undefined) {
919
- let data5 = data4.denominator;
920
- if (!(((typeof data5 == "number") && (!(data5 % 1) && !isNaN(data5))) && (isFinite(data5)))) {
921
- const err14 = { instancePath: instancePath + "/sourceFrameRate/denominator", schemaPath: "#/$defs/WireFrameRate/properties/denominator/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
994
+ if (data3.denominator !== undefined) {
995
+ let data4 = data3.denominator;
996
+ if (!(((typeof data4 == "number") && (!(data4 % 1) && !isNaN(data4))) && (isFinite(data4)))) {
997
+ const err22 = { instancePath: instancePath + "/playbackRate/denominator", schemaPath: "#/$defs/WirePlaybackRate/properties/denominator/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
922
998
  if (vErrors === null) {
923
- vErrors = [err14];
999
+ vErrors = [err22];
924
1000
  }
925
1001
  else {
926
- vErrors.push(err14);
1002
+ vErrors.push(err22);
927
1003
  }
928
1004
  errors++;
929
1005
  }
930
- if ((typeof data5 == "number") && (isFinite(data5))) {
931
- if (data5 > 4294967295 || isNaN(data5)) {
932
- const err15 = { instancePath: instancePath + "/sourceFrameRate/denominator", schemaPath: "#/$defs/WireFrameRate/properties/denominator/maximum", keyword: "maximum", params: { comparison: "<=", limit: 4294967295 }, message: "must be <= 4294967295" };
1006
+ if ((typeof data4 == "number") && (isFinite(data4))) {
1007
+ if (data4 > 4294967295 || isNaN(data4)) {
1008
+ const err23 = { instancePath: instancePath + "/playbackRate/denominator", schemaPath: "#/$defs/WirePlaybackRate/properties/denominator/maximum", keyword: "maximum", params: { comparison: "<=", limit: 4294967295 }, message: "must be <= 4294967295" };
933
1009
  if (vErrors === null) {
934
- vErrors = [err15];
1010
+ vErrors = [err23];
935
1011
  }
936
1012
  else {
937
- vErrors.push(err15);
1013
+ vErrors.push(err23);
938
1014
  }
939
1015
  errors++;
940
1016
  }
941
- if (data5 < 1 || isNaN(data5)) {
942
- const err16 = { instancePath: instancePath + "/sourceFrameRate/denominator", schemaPath: "#/$defs/WireFrameRate/properties/denominator/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
1017
+ if (data4 < 1 || isNaN(data4)) {
1018
+ const err24 = { instancePath: instancePath + "/playbackRate/denominator", schemaPath: "#/$defs/WirePlaybackRate/properties/denominator/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
943
1019
  if (vErrors === null) {
944
- vErrors = [err16];
1020
+ vErrors = [err24];
945
1021
  }
946
1022
  else {
947
- vErrors.push(err16);
1023
+ vErrors.push(err24);
948
1024
  }
949
1025
  errors++;
950
1026
  }
951
1027
  }
952
1028
  }
953
- if (data4.numerator !== undefined) {
954
- let data6 = data4.numerator;
955
- if (!(((typeof data6 == "number") && (!(data6 % 1) && !isNaN(data6))) && (isFinite(data6)))) {
956
- const err17 = { instancePath: instancePath + "/sourceFrameRate/numerator", schemaPath: "#/$defs/WireFrameRate/properties/numerator/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
1029
+ if (data3.numerator !== undefined) {
1030
+ let data5 = data3.numerator;
1031
+ if (!(((typeof data5 == "number") && (!(data5 % 1) && !isNaN(data5))) && (isFinite(data5)))) {
1032
+ const err25 = { instancePath: instancePath + "/playbackRate/numerator", schemaPath: "#/$defs/WirePlaybackRate/properties/numerator/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
957
1033
  if (vErrors === null) {
958
- vErrors = [err17];
1034
+ vErrors = [err25];
959
1035
  }
960
1036
  else {
961
- vErrors.push(err17);
1037
+ vErrors.push(err25);
962
1038
  }
963
1039
  errors++;
964
1040
  }
965
- if ((typeof data6 == "number") && (isFinite(data6))) {
966
- if (data6 > 4294967295 || isNaN(data6)) {
967
- const err18 = { instancePath: instancePath + "/sourceFrameRate/numerator", schemaPath: "#/$defs/WireFrameRate/properties/numerator/maximum", keyword: "maximum", params: { comparison: "<=", limit: 4294967295 }, message: "must be <= 4294967295" };
1041
+ if ((typeof data5 == "number") && (isFinite(data5))) {
1042
+ if (data5 > 4294967295 || isNaN(data5)) {
1043
+ const err26 = { instancePath: instancePath + "/playbackRate/numerator", schemaPath: "#/$defs/WirePlaybackRate/properties/numerator/maximum", keyword: "maximum", params: { comparison: "<=", limit: 4294967295 }, message: "must be <= 4294967295" };
968
1044
  if (vErrors === null) {
969
- vErrors = [err18];
1045
+ vErrors = [err26];
970
1046
  }
971
1047
  else {
972
- vErrors.push(err18);
1048
+ vErrors.push(err26);
973
1049
  }
974
1050
  errors++;
975
1051
  }
976
- if (data6 < 1 || isNaN(data6)) {
977
- const err19 = { instancePath: instancePath + "/sourceFrameRate/numerator", schemaPath: "#/$defs/WireFrameRate/properties/numerator/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
1052
+ if (data5 < 1 || isNaN(data5)) {
1053
+ const err27 = { instancePath: instancePath + "/playbackRate/numerator", schemaPath: "#/$defs/WirePlaybackRate/properties/numerator/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
978
1054
  if (vErrors === null) {
979
- vErrors = [err19];
1055
+ vErrors = [err27];
980
1056
  }
981
1057
  else {
982
- vErrors.push(err19);
1058
+ vErrors.push(err27);
983
1059
  }
984
1060
  errors++;
985
1061
  }
@@ -987,24 +1063,765 @@ function validate41(data, { instancePath = "", parentData, parentDataProperty, r
987
1063
  }
988
1064
  }
989
1065
  else {
990
- const err20 = { instancePath: instancePath + "/sourceFrameRate", schemaPath: "#/$defs/WireFrameRate/type", keyword: "type", params: { type: "object" }, message: "must be object" };
1066
+ const err28 = { instancePath: instancePath + "/playbackRate", schemaPath: "#/$defs/WirePlaybackRate/type", keyword: "type", params: { type: "object" }, message: "must be object" };
991
1067
  if (vErrors === null) {
992
- vErrors = [err20];
1068
+ vErrors = [err28];
993
1069
  }
994
1070
  else {
995
- vErrors.push(err20);
1071
+ vErrors.push(err28);
1072
+ }
1073
+ errors++;
1074
+ }
1075
+ }
1076
+ if (data.plays !== undefined) {
1077
+ let data6 = data.plays;
1078
+ if (!(((typeof data6 == "number") && (!(data6 % 1) && !isNaN(data6))) && (isFinite(data6)))) {
1079
+ const err29 = { instancePath: instancePath + "/plays", schemaPath: "#/properties/plays/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
1080
+ if (vErrors === null) {
1081
+ vErrors = [err29];
1082
+ }
1083
+ else {
1084
+ vErrors.push(err29);
1085
+ }
1086
+ errors++;
1087
+ }
1088
+ if ((typeof data6 == "number") && (isFinite(data6))) {
1089
+ if (data6 < 1 || isNaN(data6)) {
1090
+ const err30 = { instancePath: instancePath + "/plays", schemaPath: "#/properties/plays/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
1091
+ if (vErrors === null) {
1092
+ vErrors = [err30];
1093
+ }
1094
+ else {
1095
+ vErrors.push(err30);
1096
+ }
1097
+ errors++;
1098
+ }
1099
+ }
1100
+ }
1101
+ if (data.startNanoseconds !== undefined) {
1102
+ let data7 = data.startNanoseconds;
1103
+ if (typeof data7 === "string") {
1104
+ if (func2(data7) > 20) {
1105
+ const err31 = { instancePath: instancePath + "/startNanoseconds", schemaPath: "#/properties/startNanoseconds/maxLength", keyword: "maxLength", params: { limit: 20 }, message: "must NOT have more than 20 characters" };
1106
+ if (vErrors === null) {
1107
+ vErrors = [err31];
1108
+ }
1109
+ else {
1110
+ vErrors.push(err31);
1111
+ }
1112
+ errors++;
1113
+ }
1114
+ if (func2(data7) < 1) {
1115
+ const err32 = { instancePath: instancePath + "/startNanoseconds", schemaPath: "#/properties/startNanoseconds/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
1116
+ if (vErrors === null) {
1117
+ vErrors = [err32];
1118
+ }
1119
+ else {
1120
+ vErrors.push(err32);
1121
+ }
1122
+ errors++;
1123
+ }
1124
+ if (!pattern5.test(data7)) {
1125
+ const err33 = { instancePath: instancePath + "/startNanoseconds", schemaPath: "#/properties/startNanoseconds/pattern", keyword: "pattern", params: { pattern: "^(0|[1-9][0-9]*)$" }, message: "must match pattern \"" + "^(0|[1-9][0-9]*)$" + "\"" };
1126
+ if (vErrors === null) {
1127
+ vErrors = [err33];
1128
+ }
1129
+ else {
1130
+ vErrors.push(err33);
1131
+ }
1132
+ errors++;
1133
+ }
1134
+ }
1135
+ else {
1136
+ const err34 = { instancePath: instancePath + "/startNanoseconds", schemaPath: "#/properties/startNanoseconds/type", keyword: "type", params: { type: "string" }, message: "must be string" };
1137
+ if (vErrors === null) {
1138
+ vErrors = [err34];
1139
+ }
1140
+ else {
1141
+ vErrors.push(err34);
996
1142
  }
997
1143
  errors++;
998
1144
  }
999
1145
  }
1000
1146
  }
1001
1147
  else {
1002
- const err21 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
1148
+ const err35 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
1149
+ if (vErrors === null) {
1150
+ vErrors = [err35];
1151
+ }
1152
+ else {
1153
+ vErrors.push(err35);
1154
+ }
1155
+ errors++;
1156
+ }
1157
+ validate44.errors = vErrors;
1158
+ return errors === 0;
1159
+ }
1160
+ validate44.evaluated = { "props": true, "dynamicProps": false, "dynamicItems": false };
1161
+ const schema50 = { "description": "Exact source-frame timing projected into the browser runtime.", "oneOf": [{ "additionalProperties": false, "description": "Every source frame has one exact rational rate.", "properties": { "frameRate": { "$ref": "#/$defs/WireFrameRate", "description": "Exact source frames per second." }, "kind": { "const": "constant", "type": "string" } }, "required": ["kind", "frameRate"], "type": "object" }, { "additionalProperties": false, "description": "Every source frame carries one half-open timestamp interval.", "properties": { "boundaries": { "description": "Canonical decimal ticks from source zero through terminal end.", "items": { "type": "string" }, "maxItems": 100000, "minItems": 3, "type": "array" }, "kind": { "const": "variable", "type": "string" }, "timebase": { "$ref": "#/$defs/WireMediaTimebase", "description": "Exact seconds represented by one source timestamp tick." } }, "required": ["kind", "timebase", "boundaries"], "type": "object" }] };
1162
+ const schema52 = { "additionalProperties": false, "description": "Exact media timestamp unit represented with browser-safe integers.", "properties": { "denominator": { "format": "uint32", "maximum": 4294967295, "minimum": 1, "type": "integer" }, "numerator": { "format": "uint32", "maximum": 4294967295, "minimum": 1, "type": "integer" } }, "required": ["numerator", "denominator"], "type": "object" };
1163
+ function validate46(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
1164
+ let vErrors = null;
1165
+ let errors = 0;
1166
+ const evaluated0 = validate46.evaluated;
1167
+ if (evaluated0.dynamicProps) {
1168
+ evaluated0.props = undefined;
1169
+ }
1170
+ if (evaluated0.dynamicItems) {
1171
+ evaluated0.items = undefined;
1172
+ }
1173
+ const _errs0 = errors;
1174
+ let valid0 = false;
1175
+ let passing0 = null;
1176
+ const _errs1 = errors;
1177
+ if (data && typeof data == "object" && !Array.isArray(data)) {
1178
+ if (data.kind === undefined) {
1179
+ const err0 = { instancePath, schemaPath: "#/oneOf/0/required", keyword: "required", params: { missingProperty: "kind" }, message: "must have required property '" + "kind" + "'" };
1180
+ if (vErrors === null) {
1181
+ vErrors = [err0];
1182
+ }
1183
+ else {
1184
+ vErrors.push(err0);
1185
+ }
1186
+ errors++;
1187
+ }
1188
+ if (data.frameRate === undefined) {
1189
+ const err1 = { instancePath, schemaPath: "#/oneOf/0/required", keyword: "required", params: { missingProperty: "frameRate" }, message: "must have required property '" + "frameRate" + "'" };
1190
+ if (vErrors === null) {
1191
+ vErrors = [err1];
1192
+ }
1193
+ else {
1194
+ vErrors.push(err1);
1195
+ }
1196
+ errors++;
1197
+ }
1198
+ for (const key0 in data) {
1199
+ if (!((key0 === "frameRate") || (key0 === "kind"))) {
1200
+ const err2 = { instancePath, schemaPath: "#/oneOf/0/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key0 }, message: "must NOT have additional properties" };
1201
+ if (vErrors === null) {
1202
+ vErrors = [err2];
1203
+ }
1204
+ else {
1205
+ vErrors.push(err2);
1206
+ }
1207
+ errors++;
1208
+ }
1209
+ }
1210
+ if (data.frameRate !== undefined) {
1211
+ let data0 = data.frameRate;
1212
+ if (data0 && typeof data0 == "object" && !Array.isArray(data0)) {
1213
+ if (data0.numerator === undefined) {
1214
+ const err3 = { instancePath: instancePath + "/frameRate", schemaPath: "#/$defs/WireFrameRate/required", keyword: "required", params: { missingProperty: "numerator" }, message: "must have required property '" + "numerator" + "'" };
1215
+ if (vErrors === null) {
1216
+ vErrors = [err3];
1217
+ }
1218
+ else {
1219
+ vErrors.push(err3);
1220
+ }
1221
+ errors++;
1222
+ }
1223
+ if (data0.denominator === undefined) {
1224
+ const err4 = { instancePath: instancePath + "/frameRate", schemaPath: "#/$defs/WireFrameRate/required", keyword: "required", params: { missingProperty: "denominator" }, message: "must have required property '" + "denominator" + "'" };
1225
+ if (vErrors === null) {
1226
+ vErrors = [err4];
1227
+ }
1228
+ else {
1229
+ vErrors.push(err4);
1230
+ }
1231
+ errors++;
1232
+ }
1233
+ for (const key1 in data0) {
1234
+ if (!((key1 === "denominator") || (key1 === "numerator"))) {
1235
+ const err5 = { instancePath: instancePath + "/frameRate", schemaPath: "#/$defs/WireFrameRate/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key1 }, message: "must NOT have additional properties" };
1236
+ if (vErrors === null) {
1237
+ vErrors = [err5];
1238
+ }
1239
+ else {
1240
+ vErrors.push(err5);
1241
+ }
1242
+ errors++;
1243
+ }
1244
+ }
1245
+ if (data0.denominator !== undefined) {
1246
+ let data1 = data0.denominator;
1247
+ if (!(((typeof data1 == "number") && (!(data1 % 1) && !isNaN(data1))) && (isFinite(data1)))) {
1248
+ const err6 = { instancePath: instancePath + "/frameRate/denominator", schemaPath: "#/$defs/WireFrameRate/properties/denominator/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
1249
+ if (vErrors === null) {
1250
+ vErrors = [err6];
1251
+ }
1252
+ else {
1253
+ vErrors.push(err6);
1254
+ }
1255
+ errors++;
1256
+ }
1257
+ if ((typeof data1 == "number") && (isFinite(data1))) {
1258
+ if (data1 > 4294967295 || isNaN(data1)) {
1259
+ const err7 = { instancePath: instancePath + "/frameRate/denominator", schemaPath: "#/$defs/WireFrameRate/properties/denominator/maximum", keyword: "maximum", params: { comparison: "<=", limit: 4294967295 }, message: "must be <= 4294967295" };
1260
+ if (vErrors === null) {
1261
+ vErrors = [err7];
1262
+ }
1263
+ else {
1264
+ vErrors.push(err7);
1265
+ }
1266
+ errors++;
1267
+ }
1268
+ if (data1 < 1 || isNaN(data1)) {
1269
+ const err8 = { instancePath: instancePath + "/frameRate/denominator", schemaPath: "#/$defs/WireFrameRate/properties/denominator/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
1270
+ if (vErrors === null) {
1271
+ vErrors = [err8];
1272
+ }
1273
+ else {
1274
+ vErrors.push(err8);
1275
+ }
1276
+ errors++;
1277
+ }
1278
+ }
1279
+ }
1280
+ if (data0.numerator !== undefined) {
1281
+ let data2 = data0.numerator;
1282
+ if (!(((typeof data2 == "number") && (!(data2 % 1) && !isNaN(data2))) && (isFinite(data2)))) {
1283
+ const err9 = { instancePath: instancePath + "/frameRate/numerator", schemaPath: "#/$defs/WireFrameRate/properties/numerator/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
1284
+ if (vErrors === null) {
1285
+ vErrors = [err9];
1286
+ }
1287
+ else {
1288
+ vErrors.push(err9);
1289
+ }
1290
+ errors++;
1291
+ }
1292
+ if ((typeof data2 == "number") && (isFinite(data2))) {
1293
+ if (data2 > 4294967295 || isNaN(data2)) {
1294
+ const err10 = { instancePath: instancePath + "/frameRate/numerator", schemaPath: "#/$defs/WireFrameRate/properties/numerator/maximum", keyword: "maximum", params: { comparison: "<=", limit: 4294967295 }, message: "must be <= 4294967295" };
1295
+ if (vErrors === null) {
1296
+ vErrors = [err10];
1297
+ }
1298
+ else {
1299
+ vErrors.push(err10);
1300
+ }
1301
+ errors++;
1302
+ }
1303
+ if (data2 < 1 || isNaN(data2)) {
1304
+ const err11 = { instancePath: instancePath + "/frameRate/numerator", schemaPath: "#/$defs/WireFrameRate/properties/numerator/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
1305
+ if (vErrors === null) {
1306
+ vErrors = [err11];
1307
+ }
1308
+ else {
1309
+ vErrors.push(err11);
1310
+ }
1311
+ errors++;
1312
+ }
1313
+ }
1314
+ }
1315
+ }
1316
+ else {
1317
+ const err12 = { instancePath: instancePath + "/frameRate", schemaPath: "#/$defs/WireFrameRate/type", keyword: "type", params: { type: "object" }, message: "must be object" };
1318
+ if (vErrors === null) {
1319
+ vErrors = [err12];
1320
+ }
1321
+ else {
1322
+ vErrors.push(err12);
1323
+ }
1324
+ errors++;
1325
+ }
1326
+ }
1327
+ if (data.kind !== undefined) {
1328
+ let data3 = data.kind;
1329
+ if (typeof data3 !== "string") {
1330
+ const err13 = { instancePath: instancePath + "/kind", schemaPath: "#/oneOf/0/properties/kind/type", keyword: "type", params: { type: "string" }, message: "must be string" };
1331
+ if (vErrors === null) {
1332
+ vErrors = [err13];
1333
+ }
1334
+ else {
1335
+ vErrors.push(err13);
1336
+ }
1337
+ errors++;
1338
+ }
1339
+ if ("constant" !== data3) {
1340
+ const err14 = { instancePath: instancePath + "/kind", schemaPath: "#/oneOf/0/properties/kind/const", keyword: "const", params: { allowedValue: "constant" }, message: "must be equal to constant" };
1341
+ if (vErrors === null) {
1342
+ vErrors = [err14];
1343
+ }
1344
+ else {
1345
+ vErrors.push(err14);
1346
+ }
1347
+ errors++;
1348
+ }
1349
+ }
1350
+ }
1351
+ else {
1352
+ const err15 = { instancePath, schemaPath: "#/oneOf/0/type", keyword: "type", params: { type: "object" }, message: "must be object" };
1353
+ if (vErrors === null) {
1354
+ vErrors = [err15];
1355
+ }
1356
+ else {
1357
+ vErrors.push(err15);
1358
+ }
1359
+ errors++;
1360
+ }
1361
+ var _valid0 = _errs1 === errors;
1362
+ if (_valid0) {
1363
+ valid0 = true;
1364
+ passing0 = 0;
1365
+ var props0 = true;
1366
+ }
1367
+ const _errs14 = errors;
1368
+ if (data && typeof data == "object" && !Array.isArray(data)) {
1369
+ if (data.kind === undefined) {
1370
+ const err16 = { instancePath, schemaPath: "#/oneOf/1/required", keyword: "required", params: { missingProperty: "kind" }, message: "must have required property '" + "kind" + "'" };
1371
+ if (vErrors === null) {
1372
+ vErrors = [err16];
1373
+ }
1374
+ else {
1375
+ vErrors.push(err16);
1376
+ }
1377
+ errors++;
1378
+ }
1379
+ if (data.timebase === undefined) {
1380
+ const err17 = { instancePath, schemaPath: "#/oneOf/1/required", keyword: "required", params: { missingProperty: "timebase" }, message: "must have required property '" + "timebase" + "'" };
1381
+ if (vErrors === null) {
1382
+ vErrors = [err17];
1383
+ }
1384
+ else {
1385
+ vErrors.push(err17);
1386
+ }
1387
+ errors++;
1388
+ }
1389
+ if (data.boundaries === undefined) {
1390
+ const err18 = { instancePath, schemaPath: "#/oneOf/1/required", keyword: "required", params: { missingProperty: "boundaries" }, message: "must have required property '" + "boundaries" + "'" };
1391
+ if (vErrors === null) {
1392
+ vErrors = [err18];
1393
+ }
1394
+ else {
1395
+ vErrors.push(err18);
1396
+ }
1397
+ errors++;
1398
+ }
1399
+ for (const key2 in data) {
1400
+ if (!(((key2 === "boundaries") || (key2 === "kind")) || (key2 === "timebase"))) {
1401
+ const err19 = { instancePath, schemaPath: "#/oneOf/1/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key2 }, message: "must NOT have additional properties" };
1402
+ if (vErrors === null) {
1403
+ vErrors = [err19];
1404
+ }
1405
+ else {
1406
+ vErrors.push(err19);
1407
+ }
1408
+ errors++;
1409
+ }
1410
+ }
1411
+ if (data.boundaries !== undefined) {
1412
+ let data4 = data.boundaries;
1413
+ if (Array.isArray(data4)) {
1414
+ if (data4.length > 100000) {
1415
+ const err20 = { instancePath: instancePath + "/boundaries", schemaPath: "#/oneOf/1/properties/boundaries/maxItems", keyword: "maxItems", params: { limit: 100000 }, message: "must NOT have more than 100000 items" };
1416
+ if (vErrors === null) {
1417
+ vErrors = [err20];
1418
+ }
1419
+ else {
1420
+ vErrors.push(err20);
1421
+ }
1422
+ errors++;
1423
+ }
1424
+ if (data4.length < 3) {
1425
+ const err21 = { instancePath: instancePath + "/boundaries", schemaPath: "#/oneOf/1/properties/boundaries/minItems", keyword: "minItems", params: { limit: 3 }, message: "must NOT have fewer than 3 items" };
1426
+ if (vErrors === null) {
1427
+ vErrors = [err21];
1428
+ }
1429
+ else {
1430
+ vErrors.push(err21);
1431
+ }
1432
+ errors++;
1433
+ }
1434
+ const len0 = data4.length;
1435
+ for (let i0 = 0; i0 < len0; i0++) {
1436
+ if (typeof data4[i0] !== "string") {
1437
+ const err22 = { instancePath: instancePath + "/boundaries/" + i0, schemaPath: "#/oneOf/1/properties/boundaries/items/type", keyword: "type", params: { type: "string" }, message: "must be string" };
1438
+ if (vErrors === null) {
1439
+ vErrors = [err22];
1440
+ }
1441
+ else {
1442
+ vErrors.push(err22);
1443
+ }
1444
+ errors++;
1445
+ }
1446
+ }
1447
+ }
1448
+ else {
1449
+ const err23 = { instancePath: instancePath + "/boundaries", schemaPath: "#/oneOf/1/properties/boundaries/type", keyword: "type", params: { type: "array" }, message: "must be array" };
1450
+ if (vErrors === null) {
1451
+ vErrors = [err23];
1452
+ }
1453
+ else {
1454
+ vErrors.push(err23);
1455
+ }
1456
+ errors++;
1457
+ }
1458
+ }
1459
+ if (data.kind !== undefined) {
1460
+ let data6 = data.kind;
1461
+ if (typeof data6 !== "string") {
1462
+ const err24 = { instancePath: instancePath + "/kind", schemaPath: "#/oneOf/1/properties/kind/type", keyword: "type", params: { type: "string" }, message: "must be string" };
1463
+ if (vErrors === null) {
1464
+ vErrors = [err24];
1465
+ }
1466
+ else {
1467
+ vErrors.push(err24);
1468
+ }
1469
+ errors++;
1470
+ }
1471
+ if ("variable" !== data6) {
1472
+ const err25 = { instancePath: instancePath + "/kind", schemaPath: "#/oneOf/1/properties/kind/const", keyword: "const", params: { allowedValue: "variable" }, message: "must be equal to constant" };
1473
+ if (vErrors === null) {
1474
+ vErrors = [err25];
1475
+ }
1476
+ else {
1477
+ vErrors.push(err25);
1478
+ }
1479
+ errors++;
1480
+ }
1481
+ }
1482
+ if (data.timebase !== undefined) {
1483
+ let data7 = data.timebase;
1484
+ if (data7 && typeof data7 == "object" && !Array.isArray(data7)) {
1485
+ if (data7.numerator === undefined) {
1486
+ const err26 = { instancePath: instancePath + "/timebase", schemaPath: "#/$defs/WireMediaTimebase/required", keyword: "required", params: { missingProperty: "numerator" }, message: "must have required property '" + "numerator" + "'" };
1487
+ if (vErrors === null) {
1488
+ vErrors = [err26];
1489
+ }
1490
+ else {
1491
+ vErrors.push(err26);
1492
+ }
1493
+ errors++;
1494
+ }
1495
+ if (data7.denominator === undefined) {
1496
+ const err27 = { instancePath: instancePath + "/timebase", schemaPath: "#/$defs/WireMediaTimebase/required", keyword: "required", params: { missingProperty: "denominator" }, message: "must have required property '" + "denominator" + "'" };
1497
+ if (vErrors === null) {
1498
+ vErrors = [err27];
1499
+ }
1500
+ else {
1501
+ vErrors.push(err27);
1502
+ }
1503
+ errors++;
1504
+ }
1505
+ for (const key3 in data7) {
1506
+ if (!((key3 === "denominator") || (key3 === "numerator"))) {
1507
+ const err28 = { instancePath: instancePath + "/timebase", schemaPath: "#/$defs/WireMediaTimebase/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key3 }, message: "must NOT have additional properties" };
1508
+ if (vErrors === null) {
1509
+ vErrors = [err28];
1510
+ }
1511
+ else {
1512
+ vErrors.push(err28);
1513
+ }
1514
+ errors++;
1515
+ }
1516
+ }
1517
+ if (data7.denominator !== undefined) {
1518
+ let data8 = data7.denominator;
1519
+ if (!(((typeof data8 == "number") && (!(data8 % 1) && !isNaN(data8))) && (isFinite(data8)))) {
1520
+ const err29 = { instancePath: instancePath + "/timebase/denominator", schemaPath: "#/$defs/WireMediaTimebase/properties/denominator/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
1521
+ if (vErrors === null) {
1522
+ vErrors = [err29];
1523
+ }
1524
+ else {
1525
+ vErrors.push(err29);
1526
+ }
1527
+ errors++;
1528
+ }
1529
+ if ((typeof data8 == "number") && (isFinite(data8))) {
1530
+ if (data8 > 4294967295 || isNaN(data8)) {
1531
+ const err30 = { instancePath: instancePath + "/timebase/denominator", schemaPath: "#/$defs/WireMediaTimebase/properties/denominator/maximum", keyword: "maximum", params: { comparison: "<=", limit: 4294967295 }, message: "must be <= 4294967295" };
1532
+ if (vErrors === null) {
1533
+ vErrors = [err30];
1534
+ }
1535
+ else {
1536
+ vErrors.push(err30);
1537
+ }
1538
+ errors++;
1539
+ }
1540
+ if (data8 < 1 || isNaN(data8)) {
1541
+ const err31 = { instancePath: instancePath + "/timebase/denominator", schemaPath: "#/$defs/WireMediaTimebase/properties/denominator/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
1542
+ if (vErrors === null) {
1543
+ vErrors = [err31];
1544
+ }
1545
+ else {
1546
+ vErrors.push(err31);
1547
+ }
1548
+ errors++;
1549
+ }
1550
+ }
1551
+ }
1552
+ if (data7.numerator !== undefined) {
1553
+ let data9 = data7.numerator;
1554
+ if (!(((typeof data9 == "number") && (!(data9 % 1) && !isNaN(data9))) && (isFinite(data9)))) {
1555
+ const err32 = { instancePath: instancePath + "/timebase/numerator", schemaPath: "#/$defs/WireMediaTimebase/properties/numerator/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
1556
+ if (vErrors === null) {
1557
+ vErrors = [err32];
1558
+ }
1559
+ else {
1560
+ vErrors.push(err32);
1561
+ }
1562
+ errors++;
1563
+ }
1564
+ if ((typeof data9 == "number") && (isFinite(data9))) {
1565
+ if (data9 > 4294967295 || isNaN(data9)) {
1566
+ const err33 = { instancePath: instancePath + "/timebase/numerator", schemaPath: "#/$defs/WireMediaTimebase/properties/numerator/maximum", keyword: "maximum", params: { comparison: "<=", limit: 4294967295 }, message: "must be <= 4294967295" };
1567
+ if (vErrors === null) {
1568
+ vErrors = [err33];
1569
+ }
1570
+ else {
1571
+ vErrors.push(err33);
1572
+ }
1573
+ errors++;
1574
+ }
1575
+ if (data9 < 1 || isNaN(data9)) {
1576
+ const err34 = { instancePath: instancePath + "/timebase/numerator", schemaPath: "#/$defs/WireMediaTimebase/properties/numerator/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
1577
+ if (vErrors === null) {
1578
+ vErrors = [err34];
1579
+ }
1580
+ else {
1581
+ vErrors.push(err34);
1582
+ }
1583
+ errors++;
1584
+ }
1585
+ }
1586
+ }
1587
+ }
1588
+ else {
1589
+ const err35 = { instancePath: instancePath + "/timebase", schemaPath: "#/$defs/WireMediaTimebase/type", keyword: "type", params: { type: "object" }, message: "must be object" };
1590
+ if (vErrors === null) {
1591
+ vErrors = [err35];
1592
+ }
1593
+ else {
1594
+ vErrors.push(err35);
1595
+ }
1596
+ errors++;
1597
+ }
1598
+ }
1599
+ }
1600
+ else {
1601
+ const err36 = { instancePath, schemaPath: "#/oneOf/1/type", keyword: "type", params: { type: "object" }, message: "must be object" };
1602
+ if (vErrors === null) {
1603
+ vErrors = [err36];
1604
+ }
1605
+ else {
1606
+ vErrors.push(err36);
1607
+ }
1608
+ errors++;
1609
+ }
1610
+ var _valid0 = _errs14 === errors;
1611
+ if (_valid0 && valid0) {
1612
+ valid0 = false;
1613
+ passing0 = [passing0, 1];
1614
+ }
1615
+ else {
1616
+ if (_valid0) {
1617
+ valid0 = true;
1618
+ passing0 = 1;
1619
+ if (props0 !== true) {
1620
+ props0 = true;
1621
+ }
1622
+ }
1623
+ }
1624
+ if (!valid0) {
1625
+ const err37 = { instancePath, schemaPath: "#/oneOf", keyword: "oneOf", params: { passingSchemas: passing0 }, message: "must match exactly one schema in oneOf" };
1626
+ if (vErrors === null) {
1627
+ vErrors = [err37];
1628
+ }
1629
+ else {
1630
+ vErrors.push(err37);
1631
+ }
1632
+ errors++;
1633
+ }
1634
+ else {
1635
+ errors = _errs0;
1636
+ if (vErrors !== null) {
1637
+ if (_errs0) {
1638
+ vErrors.length = _errs0;
1639
+ }
1640
+ else {
1641
+ vErrors = null;
1642
+ }
1643
+ }
1644
+ }
1645
+ validate46.errors = vErrors;
1646
+ evaluated0.props = props0;
1647
+ return errors === 0;
1648
+ }
1649
+ validate46.evaluated = { "dynamicProps": true, "dynamicItems": false };
1650
+ function validate41(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
1651
+ let vErrors = null;
1652
+ let errors = 0;
1653
+ const evaluated0 = validate41.evaluated;
1654
+ if (evaluated0.dynamicProps) {
1655
+ evaluated0.props = undefined;
1656
+ }
1657
+ if (evaluated0.dynamicItems) {
1658
+ evaluated0.items = undefined;
1659
+ }
1660
+ if (data && typeof data == "object" && !Array.isArray(data)) {
1661
+ if (data.node === undefined) {
1662
+ const err0 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "node" }, message: "must have required property '" + "node" + "'" };
1663
+ if (vErrors === null) {
1664
+ vErrors = [err0];
1665
+ }
1666
+ else {
1667
+ vErrors.push(err0);
1668
+ }
1669
+ errors++;
1670
+ }
1671
+ if (data.shotId === undefined) {
1672
+ const err1 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "shotId" }, message: "must have required property '" + "shotId" + "'" };
1673
+ if (vErrors === null) {
1674
+ vErrors = [err1];
1675
+ }
1676
+ else {
1677
+ vErrors.push(err1);
1678
+ }
1679
+ errors++;
1680
+ }
1681
+ if (data.assetId === undefined) {
1682
+ const err2 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "assetId" }, message: "must have required property '" + "assetId" + "'" };
1683
+ if (vErrors === null) {
1684
+ vErrors = [err2];
1685
+ }
1686
+ else {
1687
+ vErrors.push(err2);
1688
+ }
1689
+ errors++;
1690
+ }
1691
+ if (data.interval === undefined) {
1692
+ const err3 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "interval" }, message: "must have required property '" + "interval" + "'" };
1693
+ if (vErrors === null) {
1694
+ vErrors = [err3];
1695
+ }
1696
+ else {
1697
+ vErrors.push(err3);
1698
+ }
1699
+ errors++;
1700
+ }
1701
+ if (data.sourceTiming === undefined) {
1702
+ const err4 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "sourceTiming" }, message: "must have required property '" + "sourceTiming" + "'" };
1703
+ if (vErrors === null) {
1704
+ vErrors = [err4];
1705
+ }
1706
+ else {
1707
+ vErrors.push(err4);
1708
+ }
1709
+ errors++;
1710
+ }
1711
+ if (data.source === undefined) {
1712
+ const err5 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "source" }, message: "must have required property '" + "source" + "'" };
1713
+ if (vErrors === null) {
1714
+ vErrors = [err5];
1715
+ }
1716
+ else {
1717
+ vErrors.push(err5);
1718
+ }
1719
+ errors++;
1720
+ }
1721
+ for (const key0 in data) {
1722
+ if (!((((((key0 === "assetId") || (key0 === "interval")) || (key0 === "node")) || (key0 === "shotId")) || (key0 === "source")) || (key0 === "sourceTiming"))) {
1723
+ const err6 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key0 }, message: "must NOT have additional properties" };
1724
+ if (vErrors === null) {
1725
+ vErrors = [err6];
1726
+ }
1727
+ else {
1728
+ vErrors.push(err6);
1729
+ }
1730
+ errors++;
1731
+ }
1732
+ }
1733
+ if (data.assetId !== undefined) {
1734
+ let data0 = data.assetId;
1735
+ if (typeof data0 === "string") {
1736
+ if (!pattern4.test(data0)) {
1737
+ const err7 = { instancePath: instancePath + "/assetId", schemaPath: "#/properties/assetId/pattern", keyword: "pattern", params: { pattern: "^sha256:[0-9a-f]{64}$" }, message: "must match pattern \"" + "^sha256:[0-9a-f]{64}$" + "\"" };
1738
+ if (vErrors === null) {
1739
+ vErrors = [err7];
1740
+ }
1741
+ else {
1742
+ vErrors.push(err7);
1743
+ }
1744
+ errors++;
1745
+ }
1746
+ }
1747
+ else {
1748
+ const err8 = { instancePath: instancePath + "/assetId", schemaPath: "#/properties/assetId/type", keyword: "type", params: { type: "string" }, message: "must be string" };
1749
+ if (vErrors === null) {
1750
+ vErrors = [err8];
1751
+ }
1752
+ else {
1753
+ vErrors.push(err8);
1754
+ }
1755
+ errors++;
1756
+ }
1757
+ }
1758
+ if (data.interval !== undefined) {
1759
+ if (!(validate23(data.interval, { instancePath: instancePath + "/interval", parentData: data, parentDataProperty: "interval", rootData, dynamicAnchors }))) {
1760
+ vErrors = vErrors === null ? validate23.errors : vErrors.concat(validate23.errors);
1761
+ errors = vErrors.length;
1762
+ }
1763
+ }
1764
+ if (data.node !== undefined) {
1765
+ if (!(validate25(data.node, { instancePath: instancePath + "/node", parentData: data, parentDataProperty: "node", rootData, dynamicAnchors }))) {
1766
+ vErrors = vErrors === null ? validate25.errors : vErrors.concat(validate25.errors);
1767
+ errors = vErrors.length;
1768
+ }
1769
+ }
1770
+ if (data.shotId !== undefined) {
1771
+ let data3 = data.shotId;
1772
+ if (!(((typeof data3 == "number") && (!(data3 % 1) && !isNaN(data3))) && (isFinite(data3)))) {
1773
+ const err9 = { instancePath: instancePath + "/shotId", schemaPath: "#/$defs/BrowserNodeId/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
1774
+ if (vErrors === null) {
1775
+ vErrors = [err9];
1776
+ }
1777
+ else {
1778
+ vErrors.push(err9);
1779
+ }
1780
+ errors++;
1781
+ }
1782
+ if ((typeof data3 == "number") && (isFinite(data3))) {
1783
+ if (data3 > 4294967295 || isNaN(data3)) {
1784
+ const err10 = { instancePath: instancePath + "/shotId", schemaPath: "#/$defs/BrowserNodeId/maximum", keyword: "maximum", params: { comparison: "<=", limit: 4294967295 }, message: "must be <= 4294967295" };
1785
+ if (vErrors === null) {
1786
+ vErrors = [err10];
1787
+ }
1788
+ else {
1789
+ vErrors.push(err10);
1790
+ }
1791
+ errors++;
1792
+ }
1793
+ if (data3 < 0 || isNaN(data3)) {
1794
+ const err11 = { instancePath: instancePath + "/shotId", schemaPath: "#/$defs/BrowserNodeId/minimum", keyword: "minimum", params: { comparison: ">=", limit: 0 }, message: "must be >= 0" };
1795
+ if (vErrors === null) {
1796
+ vErrors = [err11];
1797
+ }
1798
+ else {
1799
+ vErrors.push(err11);
1800
+ }
1801
+ errors++;
1802
+ }
1803
+ }
1804
+ }
1805
+ if (data.source !== undefined) {
1806
+ if (!(validate44(data.source, { instancePath: instancePath + "/source", parentData: data, parentDataProperty: "source", rootData, dynamicAnchors }))) {
1807
+ vErrors = vErrors === null ? validate44.errors : vErrors.concat(validate44.errors);
1808
+ errors = vErrors.length;
1809
+ }
1810
+ }
1811
+ if (data.sourceTiming !== undefined) {
1812
+ if (!(validate46(data.sourceTiming, { instancePath: instancePath + "/sourceTiming", parentData: data, parentDataProperty: "sourceTiming", rootData, dynamicAnchors }))) {
1813
+ vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);
1814
+ errors = vErrors.length;
1815
+ }
1816
+ }
1817
+ }
1818
+ else {
1819
+ const err12 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
1003
1820
  if (vErrors === null) {
1004
- vErrors = [err21];
1821
+ vErrors = [err12];
1005
1822
  }
1006
1823
  else {
1007
- vErrors.push(err21);
1824
+ vErrors.push(err12);
1008
1825
  }
1009
1826
  errors++;
1010
1827
  }
@@ -1384,8 +2201,8 @@ function validate22(data, { instancePath = "", parentData, parentDataProperty, r
1384
2201
  }
1385
2202
  errors++;
1386
2203
  }
1387
- if (1 !== data13) {
1388
- const err28 = { instancePath: instancePath + "/timelineVersion", schemaPath: "#/properties/timelineVersion/const", keyword: "const", params: { allowedValue: 1 }, message: "must be equal to constant" };
2204
+ if (2 !== data13) {
2205
+ const err28 = { instancePath: instancePath + "/timelineVersion", schemaPath: "#/properties/timelineVersion/const", keyword: "const", params: { allowedValue: 2 }, message: "must be equal to constant" };
1389
2206
  if (vErrors === null) {
1390
2207
  vErrors = [err28];
1391
2208
  }
@@ -2007,7 +2824,7 @@ function validate21(data, { instancePath = "", parentData, parentDataProperty, r
2007
2824
  }
2008
2825
  validate21.evaluated = { "dynamicProps": true, "dynamicItems": false };
2009
2826
  function validate20(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
2010
- /*# sourceURL="https://onmark.dev/schemas/browser-request-v1.schema.json" */ ;
2827
+ /*# sourceURL="https://onmark.dev/schemas/browser-request-v3.schema.json" */ ;
2011
2828
  let vErrors = null;
2012
2829
  let errors = 0;
2013
2830
  const evaluated0 = validate20.evaluated;
@@ -2113,8 +2930,8 @@ function validate20(data, { instancePath = "", parentData, parentDataProperty, r
2113
2930
  }
2114
2931
  errors++;
2115
2932
  }
2116
- if (1 !== data2) {
2117
- const err8 = { instancePath: instancePath + "/version", schemaPath: "#/$defs/ProtocolVersion/const", keyword: "const", params: { allowedValue: 1 }, message: "must be equal to constant" };
2933
+ if (3 !== data2) {
2934
+ const err8 = { instancePath: instancePath + "/version", schemaPath: "#/$defs/ProtocolVersion/const", keyword: "const", params: { allowedValue: 3 }, message: "must be equal to constant" };
2118
2935
  if (vErrors === null) {
2119
2936
  vErrors = [err8];
2120
2937
  }
@@ -2161,18 +2978,18 @@ function validate20(data, { instancePath = "", parentData, parentDataProperty, r
2161
2978
  return errors === 0;
2162
2979
  }
2163
2980
  validate20.evaluated = { "props": true, "dynamicProps": false, "dynamicItems": false };
2164
- export const validateBrowserResponse = validate47;
2165
- const schema54 = { "$defs": { "BrowserEvent": { "description": "Closed events emitted by the browser runtime.", "oneOf": [{ "additionalProperties": false, "description": "The immutable browser plan was accepted.", "properties": { "type": { "const": "loaded", "type": "string" } }, "required": ["type"], "type": "object" }, { "additionalProperties": false, "description": "Resources required at the evaluation start are stable.", "properties": { "evaluationStart": { "$ref": "#/$defs/WireFrame", "description": "Frame at which preparation completed." }, "type": { "const": "prepared", "type": "string" } }, "required": ["type", "evaluationStart"], "type": "object" }, { "additionalProperties": false, "description": "One requested frame has been staged for the compositor.", "properties": { "frame": { "$ref": "#/$defs/WireFrame", "description": "Exact frame represented by staged browser state." }, "type": { "const": "frameStaged", "type": "string" } }, "required": ["type", "frame"], "type": "object" }, { "additionalProperties": false, "description": "The captured payload's staged media passed compositor confirmation.", "properties": { "frame": { "$ref": "#/$defs/WireFrame", "description": "Exact frame confirmed by browser media state." }, "type": { "const": "frameReady", "type": "string" } }, "required": ["type", "frame"], "type": "object" }, { "additionalProperties": false, "description": "The browser rejected a command or could not reach readiness.", "properties": { "code": { "$ref": "#/$defs/ProtocolFailureCode", "description": "Stable machine-readable failure category." }, "message": { "description": "Direct explanation in browser/runtime terms.", "maxLength": 4096, "pattern": "\\S", "type": "string" }, "pendingResources": { "description": "Resources that prevented readiness, in caller-owned deterministic order.", "items": { "maxLength": 1024, "pattern": "\\S", "type": "string" }, "maxItems": 256, "type": "array" }, "type": { "const": "failed", "type": "string" } }, "required": ["type", "code", "message", "pendingResources"], "type": "object" }, { "additionalProperties": false, "description": "The browser session released its resources.", "properties": { "type": { "const": "disposed", "type": "string" } }, "required": ["type"], "type": "object" }] }, "ProtocolFailureCode": { "description": "Stable browser protocol failure category.", "oneOf": [{ "const": "protocolMismatch", "description": "The envelope version is unsupported.", "type": "string" }, { "const": "invalidRequest", "description": "The command violates its wire contract.", "type": "string" }, { "const": "loadFailed", "description": "The immutable plan could not be installed.", "type": "string" }, { "const": "prepareFailed", "description": "Preparation could not stabilize required resources.", "type": "string" }, { "const": "seekFailed", "description": "The requested frame could not be evaluated.", "type": "string" }, { "const": "confirmFailed", "description": "The staged frame could not be confirmed after compositor capture.", "type": "string" }, { "const": "readinessTimeout", "description": "One or more resources missed the readiness deadline.", "type": "string" }, { "const": "internal", "description": "The runtime violated an internal invariant.", "type": "string" }] }, "ProtocolVersion": { "const": 1, "description": "Version of the native-to-browser message contract.", "format": "uint16", "maximum": 65535, "minimum": 0, "type": "integer" }, "RequestId": { "description": "Correlation identity shared by one request and its response events.", "format": "uint32", "maximum": 4294967295, "minimum": 0, "type": "integer" }, "WireFrame": { "description": "Exact frame integer accepted by JavaScript without rounding.", "format": "uint64", "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "$id": "https://onmark.dev/schemas/browser-response-v1.schema.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "One versioned event returned by the browser runtime.", "properties": { "event": { "$ref": "#/$defs/BrowserEvent" }, "requestId": { "$ref": "#/$defs/RequestId" }, "version": { "$ref": "#/$defs/ProtocolVersion" } }, "required": ["version", "requestId", "event"], "title": "BrowserResponse", "type": "object", "x-onmark-max-failure-message-characters": 4096, "x-onmark-max-pending-resource-characters": 1024, "x-onmark-max-pending-resources": 256 };
2166
- const schema60 = { "description": "Correlation identity shared by one request and its response events.", "format": "uint32", "maximum": 4294967295, "minimum": 0, "type": "integer" };
2167
- const schema61 = { "const": 1, "description": "Version of the native-to-browser message contract.", "format": "uint16", "maximum": 65535, "minimum": 0, "type": "integer" };
2168
- const schema55 = { "description": "Closed events emitted by the browser runtime.", "oneOf": [{ "additionalProperties": false, "description": "The immutable browser plan was accepted.", "properties": { "type": { "const": "loaded", "type": "string" } }, "required": ["type"], "type": "object" }, { "additionalProperties": false, "description": "Resources required at the evaluation start are stable.", "properties": { "evaluationStart": { "$ref": "#/$defs/WireFrame", "description": "Frame at which preparation completed." }, "type": { "const": "prepared", "type": "string" } }, "required": ["type", "evaluationStart"], "type": "object" }, { "additionalProperties": false, "description": "One requested frame has been staged for the compositor.", "properties": { "frame": { "$ref": "#/$defs/WireFrame", "description": "Exact frame represented by staged browser state." }, "type": { "const": "frameStaged", "type": "string" } }, "required": ["type", "frame"], "type": "object" }, { "additionalProperties": false, "description": "The captured payload's staged media passed compositor confirmation.", "properties": { "frame": { "$ref": "#/$defs/WireFrame", "description": "Exact frame confirmed by browser media state." }, "type": { "const": "frameReady", "type": "string" } }, "required": ["type", "frame"], "type": "object" }, { "additionalProperties": false, "description": "The browser rejected a command or could not reach readiness.", "properties": { "code": { "$ref": "#/$defs/ProtocolFailureCode", "description": "Stable machine-readable failure category." }, "message": { "description": "Direct explanation in browser/runtime terms.", "maxLength": 4096, "pattern": "\\S", "type": "string" }, "pendingResources": { "description": "Resources that prevented readiness, in caller-owned deterministic order.", "items": { "maxLength": 1024, "pattern": "\\S", "type": "string" }, "maxItems": 256, "type": "array" }, "type": { "const": "failed", "type": "string" } }, "required": ["type", "code", "message", "pendingResources"], "type": "object" }, { "additionalProperties": false, "description": "The browser session released its resources.", "properties": { "type": { "const": "disposed", "type": "string" } }, "required": ["type"], "type": "object" }] };
2169
- const schema56 = { "description": "Exact frame integer accepted by JavaScript without rounding.", "format": "uint64", "maximum": 9007199254740991, "minimum": 0, "type": "integer" };
2170
- const schema59 = { "description": "Stable browser protocol failure category.", "oneOf": [{ "const": "protocolMismatch", "description": "The envelope version is unsupported.", "type": "string" }, { "const": "invalidRequest", "description": "The command violates its wire contract.", "type": "string" }, { "const": "loadFailed", "description": "The immutable plan could not be installed.", "type": "string" }, { "const": "prepareFailed", "description": "Preparation could not stabilize required resources.", "type": "string" }, { "const": "seekFailed", "description": "The requested frame could not be evaluated.", "type": "string" }, { "const": "confirmFailed", "description": "The staged frame could not be confirmed after compositor capture.", "type": "string" }, { "const": "readinessTimeout", "description": "One or more resources missed the readiness deadline.", "type": "string" }, { "const": "internal", "description": "The runtime violated an internal invariant.", "type": "string" }] };
2171
- const pattern5 = new RegExp("\\S", "u");
2172
- function validate48(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
2981
+ export const validateBrowserResponse = validate51;
2982
+ const schema58 = { "$defs": { "BrowserEvent": { "description": "Closed events emitted by the browser runtime.", "oneOf": [{ "additionalProperties": false, "description": "The immutable browser plan was accepted.", "properties": { "type": { "const": "loaded", "type": "string" } }, "required": ["type"], "type": "object" }, { "additionalProperties": false, "description": "Resources required at the evaluation start are stable.", "properties": { "evaluationStart": { "$ref": "#/$defs/WireFrame", "description": "Frame at which preparation completed." }, "type": { "const": "prepared", "type": "string" } }, "required": ["type", "evaluationStart"], "type": "object" }, { "additionalProperties": false, "description": "One requested frame has been staged for the compositor.", "properties": { "frame": { "$ref": "#/$defs/WireFrame", "description": "Exact frame represented by staged browser state." }, "type": { "const": "frameStaged", "type": "string" } }, "required": ["type", "frame"], "type": "object" }, { "additionalProperties": false, "description": "The captured payload's staged media passed compositor confirmation.", "properties": { "frame": { "$ref": "#/$defs/WireFrame", "description": "Exact frame confirmed by browser media state." }, "type": { "const": "frameReady", "type": "string" } }, "required": ["type", "frame"], "type": "object" }, { "additionalProperties": false, "description": "The browser rejected a command or could not reach readiness.", "properties": { "code": { "$ref": "#/$defs/ProtocolFailureCode", "description": "Stable machine-readable failure category." }, "message": { "description": "Direct explanation in browser/runtime terms.", "maxLength": 4096, "pattern": "\\S", "type": "string" }, "pendingResources": { "description": "Resources that prevented readiness, in caller-owned deterministic order.", "items": { "maxLength": 1024, "pattern": "\\S", "type": "string" }, "maxItems": 256, "type": "array" }, "type": { "const": "failed", "type": "string" } }, "required": ["type", "code", "message", "pendingResources"], "type": "object" }, { "additionalProperties": false, "description": "The browser session released its resources.", "properties": { "type": { "const": "disposed", "type": "string" } }, "required": ["type"], "type": "object" }] }, "ProtocolFailureCode": { "description": "Stable browser protocol failure category.", "oneOf": [{ "const": "protocolMismatch", "description": "The envelope version is unsupported.", "type": "string" }, { "const": "invalidRequest", "description": "The command violates its wire contract.", "type": "string" }, { "const": "loadFailed", "description": "The immutable plan could not be installed.", "type": "string" }, { "const": "prepareFailed", "description": "Preparation could not stabilize required resources.", "type": "string" }, { "const": "seekFailed", "description": "The requested frame could not be evaluated.", "type": "string" }, { "const": "confirmFailed", "description": "The staged frame could not be confirmed after compositor capture.", "type": "string" }, { "const": "readinessTimeout", "description": "One or more resources missed the readiness deadline.", "type": "string" }, { "const": "internal", "description": "The runtime violated an internal invariant.", "type": "string" }] }, "ProtocolVersion": { "const": 3, "description": "Version of the native-to-browser message contract.", "format": "uint16", "maximum": 65535, "minimum": 0, "type": "integer" }, "RequestId": { "description": "Correlation identity shared by one request and its response events.", "format": "uint32", "maximum": 4294967295, "minimum": 0, "type": "integer" }, "WireFrame": { "description": "Exact frame integer accepted by JavaScript without rounding.", "format": "uint64", "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "$id": "https://onmark.dev/schemas/browser-response-v3.schema.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "description": "One versioned event returned by the browser runtime.", "properties": { "event": { "$ref": "#/$defs/BrowserEvent" }, "requestId": { "$ref": "#/$defs/RequestId" }, "version": { "$ref": "#/$defs/ProtocolVersion" } }, "required": ["version", "requestId", "event"], "title": "BrowserResponse", "type": "object", "x-onmark-max-failure-message-characters": 4096, "x-onmark-max-pending-resource-characters": 1024, "x-onmark-max-pending-resources": 256 };
2983
+ const schema64 = { "description": "Correlation identity shared by one request and its response events.", "format": "uint32", "maximum": 4294967295, "minimum": 0, "type": "integer" };
2984
+ const schema65 = { "const": 3, "description": "Version of the native-to-browser message contract.", "format": "uint16", "maximum": 65535, "minimum": 0, "type": "integer" };
2985
+ const schema59 = { "description": "Closed events emitted by the browser runtime.", "oneOf": [{ "additionalProperties": false, "description": "The immutable browser plan was accepted.", "properties": { "type": { "const": "loaded", "type": "string" } }, "required": ["type"], "type": "object" }, { "additionalProperties": false, "description": "Resources required at the evaluation start are stable.", "properties": { "evaluationStart": { "$ref": "#/$defs/WireFrame", "description": "Frame at which preparation completed." }, "type": { "const": "prepared", "type": "string" } }, "required": ["type", "evaluationStart"], "type": "object" }, { "additionalProperties": false, "description": "One requested frame has been staged for the compositor.", "properties": { "frame": { "$ref": "#/$defs/WireFrame", "description": "Exact frame represented by staged browser state." }, "type": { "const": "frameStaged", "type": "string" } }, "required": ["type", "frame"], "type": "object" }, { "additionalProperties": false, "description": "The captured payload's staged media passed compositor confirmation.", "properties": { "frame": { "$ref": "#/$defs/WireFrame", "description": "Exact frame confirmed by browser media state." }, "type": { "const": "frameReady", "type": "string" } }, "required": ["type", "frame"], "type": "object" }, { "additionalProperties": false, "description": "The browser rejected a command or could not reach readiness.", "properties": { "code": { "$ref": "#/$defs/ProtocolFailureCode", "description": "Stable machine-readable failure category." }, "message": { "description": "Direct explanation in browser/runtime terms.", "maxLength": 4096, "pattern": "\\S", "type": "string" }, "pendingResources": { "description": "Resources that prevented readiness, in caller-owned deterministic order.", "items": { "maxLength": 1024, "pattern": "\\S", "type": "string" }, "maxItems": 256, "type": "array" }, "type": { "const": "failed", "type": "string" } }, "required": ["type", "code", "message", "pendingResources"], "type": "object" }, { "additionalProperties": false, "description": "The browser session released its resources.", "properties": { "type": { "const": "disposed", "type": "string" } }, "required": ["type"], "type": "object" }] };
2986
+ const schema60 = { "description": "Exact frame integer accepted by JavaScript without rounding.", "format": "uint64", "maximum": 9007199254740991, "minimum": 0, "type": "integer" };
2987
+ const schema63 = { "description": "Stable browser protocol failure category.", "oneOf": [{ "const": "protocolMismatch", "description": "The envelope version is unsupported.", "type": "string" }, { "const": "invalidRequest", "description": "The command violates its wire contract.", "type": "string" }, { "const": "loadFailed", "description": "The immutable plan could not be installed.", "type": "string" }, { "const": "prepareFailed", "description": "Preparation could not stabilize required resources.", "type": "string" }, { "const": "seekFailed", "description": "The requested frame could not be evaluated.", "type": "string" }, { "const": "confirmFailed", "description": "The staged frame could not be confirmed after compositor capture.", "type": "string" }, { "const": "readinessTimeout", "description": "One or more resources missed the readiness deadline.", "type": "string" }, { "const": "internal", "description": "The runtime violated an internal invariant.", "type": "string" }] };
2988
+ const pattern9 = new RegExp("\\S", "u");
2989
+ function validate52(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
2173
2990
  let vErrors = null;
2174
2991
  let errors = 0;
2175
- const evaluated0 = validate48.evaluated;
2992
+ const evaluated0 = validate52.evaluated;
2176
2993
  if (evaluated0.dynamicProps) {
2177
2994
  evaluated0.props = undefined;
2178
2995
  }
@@ -2938,7 +3755,7 @@ function validate48(data, { instancePath = "", parentData, parentDataProperty, r
2938
3755
  }
2939
3756
  errors++;
2940
3757
  }
2941
- if (!pattern5.test(data8)) {
3758
+ if (!pattern9.test(data8)) {
2942
3759
  const err55 = { instancePath: instancePath + "/message", schemaPath: "#/oneOf/4/properties/message/pattern", keyword: "pattern", params: { pattern: "\\S" }, message: "must match pattern \"" + "\\S" + "\"" };
2943
3760
  if (vErrors === null) {
2944
3761
  vErrors = [err55];
@@ -2987,7 +3804,7 @@ function validate48(data, { instancePath = "", parentData, parentDataProperty, r
2987
3804
  }
2988
3805
  errors++;
2989
3806
  }
2990
- if (!pattern5.test(data10)) {
3807
+ if (!pattern9.test(data10)) {
2991
3808
  const err59 = { instancePath: instancePath + "/pendingResources/" + i0, schemaPath: "#/oneOf/4/properties/pendingResources/items/pattern", keyword: "pattern", params: { pattern: "\\S" }, message: "must match pattern \"" + "\\S" + "\"" };
2992
3809
  if (vErrors === null) {
2993
3810
  vErrors = [err59];
@@ -3165,16 +3982,16 @@ function validate48(data, { instancePath = "", parentData, parentDataProperty, r
3165
3982
  }
3166
3983
  }
3167
3984
  }
3168
- validate48.errors = vErrors;
3985
+ validate52.errors = vErrors;
3169
3986
  evaluated0.props = props0;
3170
3987
  return errors === 0;
3171
3988
  }
3172
- validate48.evaluated = { "dynamicProps": true, "dynamicItems": false };
3173
- function validate47(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
3174
- /*# sourceURL="https://onmark.dev/schemas/browser-response-v1.schema.json" */ ;
3989
+ validate52.evaluated = { "dynamicProps": true, "dynamicItems": false };
3990
+ function validate51(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
3991
+ /*# sourceURL="https://onmark.dev/schemas/browser-response-v3.schema.json" */ ;
3175
3992
  let vErrors = null;
3176
3993
  let errors = 0;
3177
- const evaluated0 = validate47.evaluated;
3994
+ const evaluated0 = validate51.evaluated;
3178
3995
  if (evaluated0.dynamicProps) {
3179
3996
  evaluated0.props = undefined;
3180
3997
  }
@@ -3225,8 +4042,8 @@ function validate47(data, { instancePath = "", parentData, parentDataProperty, r
3225
4042
  }
3226
4043
  }
3227
4044
  if (data.event !== undefined) {
3228
- if (!(validate48(data.event, { instancePath: instancePath + "/event", parentData: data, parentDataProperty: "event", rootData, dynamicAnchors }))) {
3229
- vErrors = vErrors === null ? validate48.errors : vErrors.concat(validate48.errors);
4045
+ if (!(validate52(data.event, { instancePath: instancePath + "/event", parentData: data, parentDataProperty: "event", rootData, dynamicAnchors }))) {
4046
+ vErrors = vErrors === null ? validate52.errors : vErrors.concat(validate52.errors);
3230
4047
  errors = vErrors.length;
3231
4048
  }
3232
4049
  }
@@ -3277,8 +4094,8 @@ function validate47(data, { instancePath = "", parentData, parentDataProperty, r
3277
4094
  }
3278
4095
  errors++;
3279
4096
  }
3280
- if (1 !== data2) {
3281
- const err8 = { instancePath: instancePath + "/version", schemaPath: "#/$defs/ProtocolVersion/const", keyword: "const", params: { allowedValue: 1 }, message: "must be equal to constant" };
4097
+ if (3 !== data2) {
4098
+ const err8 = { instancePath: instancePath + "/version", schemaPath: "#/$defs/ProtocolVersion/const", keyword: "const", params: { allowedValue: 3 }, message: "must be equal to constant" };
3282
4099
  if (vErrors === null) {
3283
4100
  vErrors = [err8];
3284
4101
  }
@@ -3321,7 +4138,7 @@ function validate47(data, { instancePath = "", parentData, parentDataProperty, r
3321
4138
  }
3322
4139
  errors++;
3323
4140
  }
3324
- validate47.errors = vErrors;
4141
+ validate51.errors = vErrors;
3325
4142
  return errors === 0;
3326
4143
  }
3327
- validate47.evaluated = { "props": true, "dynamicProps": false, "dynamicItems": false };
4144
+ validate51.evaluated = { "props": true, "dynamicProps": false, "dynamicItems": false };