@onmark/cli 0.2.3 → 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,9 +1,9 @@
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": 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" }, "sourceFrameRate": { "$ref": "#/$defs/WireFrameRate" } }, "required": ["node", "shotId", "assetId", "interval", "sourceFrameRate", "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" }, "naturalEndNanoseconds": { "maxLength": 20, "minLength": 1, "pattern": "^(0|[1-9][0-9]*)$", "type": "string" }, "playbackRate": { "$ref": "#/$defs/WirePlaybackRate" }, "startNanoseconds": { "maxLength": 20, "minLength": 1, "pattern": "^(0|[1-9][0-9]*)$", "type": "string" } }, "required": ["startNanoseconds", "endNanoseconds", "naturalEndNanoseconds", "playbackRate"], "type": "object" }, "ProtocolVersion": { "const": 2, "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" }, "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-v2.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 schema54 = { "description": "Correlation identity shared by one request and its response events.", "format": "uint32", "maximum": 4294967295, "minimum": 0, "type": "integer" };
6
- const schema55 = { "const": 2, "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
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" };
@@ -733,9 +733,9 @@ 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" }, "source": { "$ref": "#/$defs/BrowserVideoSource" }, "sourceFrameRate": { "$ref": "#/$defs/WireFrameRate" } }, "required": ["node", "shotId", "assetId", "interval", "sourceFrameRate", "source"], "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
- 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" }, "naturalEndNanoseconds": { "maxLength": 20, "minLength": 1, "pattern": "^(0|[1-9][0-9]*)$", "type": "string" }, "playbackRate": { "$ref": "#/$defs/WirePlaybackRate" }, "startNanoseconds": { "maxLength": 20, "minLength": 1, "pattern": "^(0|[1-9][0-9]*)$", "type": "string" } }, "required": ["startNanoseconds", "endNanoseconds", "naturalEndNanoseconds", "playbackRate"], "type": "object" };
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
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
740
  const pattern5 = new RegExp("^(0|[1-9][0-9]*)$", "u");
741
741
  function validate44(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
@@ -789,208 +789,796 @@ function validate44(data, { instancePath = "", parentData, parentDataProperty, r
789
789
  }
790
790
  errors++;
791
791
  }
792
+ if (data.plays === undefined) {
793
+ const err4 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "plays" }, message: "must have required property '" + "plays" + "'" };
794
+ if (vErrors === null) {
795
+ vErrors = [err4];
796
+ }
797
+ else {
798
+ vErrors.push(err4);
799
+ }
800
+ errors++;
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
+ }
792
812
  for (const key0 in data) {
793
- if (!((((key0 === "endNanoseconds") || (key0 === "naturalEndNanoseconds")) || (key0 === "playbackRate")) || (key0 === "startNanoseconds"))) {
794
- const err4 = { 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" };
815
+ if (vErrors === null) {
816
+ vErrors = [err6];
817
+ }
818
+ else {
819
+ vErrors.push(err6);
820
+ }
821
+ errors++;
822
+ }
823
+ }
824
+ if (data.endNanoseconds !== undefined) {
825
+ let data0 = data.endNanoseconds;
826
+ if (typeof data0 === "string") {
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" };
829
+ if (vErrors === null) {
830
+ vErrors = [err7];
831
+ }
832
+ else {
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);
854
+ }
855
+ errors++;
856
+ }
857
+ }
858
+ else {
859
+ const err10 = { instancePath: instancePath + "/endNanoseconds", schemaPath: "#/properties/endNanoseconds/type", keyword: "type", params: { type: "string" }, message: "must be string" };
860
+ if (vErrors === null) {
861
+ vErrors = [err10];
862
+ }
863
+ else {
864
+ vErrors.push(err10);
865
+ }
866
+ errors++;
867
+ }
868
+ }
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
+ }
902
+ }
903
+ else {
904
+ const err14 = { instancePath: instancePath + "/holdLastNanoseconds", schemaPath: "#/properties/holdLastNanoseconds/type", keyword: "type", params: { type: "string" }, message: "must be string" };
905
+ if (vErrors === null) {
906
+ vErrors = [err14];
907
+ }
908
+ else {
909
+ vErrors.push(err14);
910
+ }
911
+ errors++;
912
+ }
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" };
919
+ if (vErrors === null) {
920
+ vErrors = [err15];
921
+ }
922
+ else {
923
+ vErrors.push(err15);
924
+ }
925
+ errors++;
926
+ }
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" };
929
+ if (vErrors === null) {
930
+ vErrors = [err16];
931
+ }
932
+ else {
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);
944
+ }
945
+ errors++;
946
+ }
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
+ }
958
+ }
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" + "'" };
964
+ if (vErrors === null) {
965
+ vErrors = [err19];
966
+ }
967
+ else {
968
+ vErrors.push(err19);
969
+ }
970
+ errors++;
971
+ }
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" + "'" };
974
+ if (vErrors === null) {
975
+ vErrors = [err20];
976
+ }
977
+ else {
978
+ vErrors.push(err20);
979
+ }
980
+ errors++;
981
+ }
982
+ for (const key1 in data3) {
983
+ if (!((key1 === "denominator") || (key1 === "numerator"))) {
984
+ const err21 = { instancePath: instancePath + "/playbackRate", schemaPath: "#/$defs/WirePlaybackRate/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key1 }, message: "must NOT have additional properties" };
985
+ if (vErrors === null) {
986
+ vErrors = [err21];
987
+ }
988
+ else {
989
+ vErrors.push(err21);
990
+ }
991
+ errors++;
992
+ }
993
+ }
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" };
998
+ if (vErrors === null) {
999
+ vErrors = [err22];
1000
+ }
1001
+ else {
1002
+ vErrors.push(err22);
1003
+ }
1004
+ errors++;
1005
+ }
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" };
1009
+ if (vErrors === null) {
1010
+ vErrors = [err23];
1011
+ }
1012
+ else {
1013
+ vErrors.push(err23);
1014
+ }
1015
+ errors++;
1016
+ }
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" };
1019
+ if (vErrors === null) {
1020
+ vErrors = [err24];
1021
+ }
1022
+ else {
1023
+ vErrors.push(err24);
1024
+ }
1025
+ errors++;
1026
+ }
1027
+ }
1028
+ }
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" };
1033
+ if (vErrors === null) {
1034
+ vErrors = [err25];
1035
+ }
1036
+ else {
1037
+ vErrors.push(err25);
1038
+ }
1039
+ errors++;
1040
+ }
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" };
1044
+ if (vErrors === null) {
1045
+ vErrors = [err26];
1046
+ }
1047
+ else {
1048
+ vErrors.push(err26);
1049
+ }
1050
+ errors++;
1051
+ }
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" };
1054
+ if (vErrors === null) {
1055
+ vErrors = [err27];
1056
+ }
1057
+ else {
1058
+ vErrors.push(err27);
1059
+ }
1060
+ errors++;
1061
+ }
1062
+ }
1063
+ }
1064
+ }
1065
+ else {
1066
+ const err28 = { instancePath: instancePath + "/playbackRate", schemaPath: "#/$defs/WirePlaybackRate/type", keyword: "type", params: { type: "object" }, message: "must be object" };
1067
+ if (vErrors === null) {
1068
+ vErrors = [err28];
1069
+ }
1070
+ else {
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);
1142
+ }
1143
+ errors++;
1144
+ }
1145
+ }
1146
+ }
1147
+ else {
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" };
795
1402
  if (vErrors === null) {
796
- vErrors = [err4];
1403
+ vErrors = [err19];
797
1404
  }
798
1405
  else {
799
- vErrors.push(err4);
1406
+ vErrors.push(err19);
800
1407
  }
801
1408
  errors++;
802
1409
  }
803
1410
  }
804
- if (data.endNanoseconds !== undefined) {
805
- let data0 = data.endNanoseconds;
806
- if (typeof data0 === "string") {
807
- if (func2(data0) > 20) {
808
- const err5 = { instancePath: instancePath + "/endNanoseconds", schemaPath: "#/properties/endNanoseconds/maxLength", keyword: "maxLength", params: { limit: 20 }, message: "must NOT have more than 20 characters" };
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" };
809
1416
  if (vErrors === null) {
810
- vErrors = [err5];
1417
+ vErrors = [err20];
811
1418
  }
812
1419
  else {
813
- vErrors.push(err5);
1420
+ vErrors.push(err20);
814
1421
  }
815
1422
  errors++;
816
1423
  }
817
- if (func2(data0) < 1) {
818
- const err6 = { instancePath: instancePath + "/endNanoseconds", schemaPath: "#/properties/endNanoseconds/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
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" };
819
1426
  if (vErrors === null) {
820
- vErrors = [err6];
1427
+ vErrors = [err21];
821
1428
  }
822
1429
  else {
823
- vErrors.push(err6);
1430
+ vErrors.push(err21);
824
1431
  }
825
1432
  errors++;
826
1433
  }
827
- if (!pattern5.test(data0)) {
828
- const err7 = { 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]*)$" + "\"" };
829
- if (vErrors === null) {
830
- vErrors = [err7];
831
- }
832
- else {
833
- vErrors.push(err7);
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++;
834
1445
  }
835
- errors++;
836
1446
  }
837
1447
  }
838
1448
  else {
839
- const err8 = { instancePath: instancePath + "/endNanoseconds", schemaPath: "#/properties/endNanoseconds/type", keyword: "type", params: { type: "string" }, message: "must be string" };
1449
+ const err23 = { instancePath: instancePath + "/boundaries", schemaPath: "#/oneOf/1/properties/boundaries/type", keyword: "type", params: { type: "array" }, message: "must be array" };
840
1450
  if (vErrors === null) {
841
- vErrors = [err8];
1451
+ vErrors = [err23];
842
1452
  }
843
1453
  else {
844
- vErrors.push(err8);
1454
+ vErrors.push(err23);
845
1455
  }
846
1456
  errors++;
847
1457
  }
848
1458
  }
849
- if (data.naturalEndNanoseconds !== undefined) {
850
- let data1 = data.naturalEndNanoseconds;
851
- if (typeof data1 === "string") {
852
- if (func2(data1) > 20) {
853
- const err9 = { instancePath: instancePath + "/naturalEndNanoseconds", schemaPath: "#/properties/naturalEndNanoseconds/maxLength", keyword: "maxLength", params: { limit: 20 }, message: "must NOT have more than 20 characters" };
854
- if (vErrors === null) {
855
- vErrors = [err9];
856
- }
857
- else {
858
- vErrors.push(err9);
859
- }
860
- errors++;
861
- }
862
- if (func2(data1) < 1) {
863
- const err10 = { instancePath: instancePath + "/naturalEndNanoseconds", schemaPath: "#/properties/naturalEndNanoseconds/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
864
- if (vErrors === null) {
865
- vErrors = [err10];
866
- }
867
- else {
868
- vErrors.push(err10);
869
- }
870
- errors++;
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];
871
1465
  }
872
- if (!pattern5.test(data1)) {
873
- const err11 = { 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]*)$" + "\"" };
874
- if (vErrors === null) {
875
- vErrors = [err11];
876
- }
877
- else {
878
- vErrors.push(err11);
879
- }
880
- errors++;
1466
+ else {
1467
+ vErrors.push(err24);
881
1468
  }
1469
+ errors++;
882
1470
  }
883
- else {
884
- const err12 = { instancePath: instancePath + "/naturalEndNanoseconds", schemaPath: "#/properties/naturalEndNanoseconds/type", keyword: "type", params: { type: "string" }, message: "must be string" };
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" };
885
1473
  if (vErrors === null) {
886
- vErrors = [err12];
1474
+ vErrors = [err25];
887
1475
  }
888
1476
  else {
889
- vErrors.push(err12);
1477
+ vErrors.push(err25);
890
1478
  }
891
1479
  errors++;
892
1480
  }
893
1481
  }
894
- if (data.playbackRate !== undefined) {
895
- let data2 = data.playbackRate;
896
- if (data2 && typeof data2 == "object" && !Array.isArray(data2)) {
897
- if (data2.numerator === undefined) {
898
- const err13 = { instancePath: instancePath + "/playbackRate", schemaPath: "#/$defs/WirePlaybackRate/required", keyword: "required", params: { missingProperty: "numerator" }, message: "must have required property '" + "numerator" + "'" };
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" + "'" };
899
1487
  if (vErrors === null) {
900
- vErrors = [err13];
1488
+ vErrors = [err26];
901
1489
  }
902
1490
  else {
903
- vErrors.push(err13);
1491
+ vErrors.push(err26);
904
1492
  }
905
1493
  errors++;
906
1494
  }
907
- if (data2.denominator === undefined) {
908
- const err14 = { instancePath: instancePath + "/playbackRate", schemaPath: "#/$defs/WirePlaybackRate/required", keyword: "required", params: { missingProperty: "denominator" }, message: "must have required property '" + "denominator" + "'" };
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" + "'" };
909
1497
  if (vErrors === null) {
910
- vErrors = [err14];
1498
+ vErrors = [err27];
911
1499
  }
912
1500
  else {
913
- vErrors.push(err14);
1501
+ vErrors.push(err27);
914
1502
  }
915
1503
  errors++;
916
1504
  }
917
- for (const key1 in data2) {
918
- if (!((key1 === "denominator") || (key1 === "numerator"))) {
919
- const err15 = { instancePath: instancePath + "/playbackRate", schemaPath: "#/$defs/WirePlaybackRate/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key1 }, message: "must NOT have additional properties" };
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" };
920
1508
  if (vErrors === null) {
921
- vErrors = [err15];
1509
+ vErrors = [err28];
922
1510
  }
923
1511
  else {
924
- vErrors.push(err15);
1512
+ vErrors.push(err28);
925
1513
  }
926
1514
  errors++;
927
1515
  }
928
1516
  }
929
- if (data2.denominator !== undefined) {
930
- let data3 = data2.denominator;
931
- if (!(((typeof data3 == "number") && (!(data3 % 1) && !isNaN(data3))) && (isFinite(data3)))) {
932
- const err16 = { instancePath: instancePath + "/playbackRate/denominator", schemaPath: "#/$defs/WirePlaybackRate/properties/denominator/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
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" };
933
1521
  if (vErrors === null) {
934
- vErrors = [err16];
1522
+ vErrors = [err29];
935
1523
  }
936
1524
  else {
937
- vErrors.push(err16);
1525
+ vErrors.push(err29);
938
1526
  }
939
1527
  errors++;
940
1528
  }
941
- if ((typeof data3 == "number") && (isFinite(data3))) {
942
- if (data3 > 4294967295 || isNaN(data3)) {
943
- const err17 = { instancePath: instancePath + "/playbackRate/denominator", schemaPath: "#/$defs/WirePlaybackRate/properties/denominator/maximum", keyword: "maximum", params: { comparison: "<=", limit: 4294967295 }, message: "must be <= 4294967295" };
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" };
944
1532
  if (vErrors === null) {
945
- vErrors = [err17];
1533
+ vErrors = [err30];
946
1534
  }
947
1535
  else {
948
- vErrors.push(err17);
1536
+ vErrors.push(err30);
949
1537
  }
950
1538
  errors++;
951
1539
  }
952
- if (data3 < 1 || isNaN(data3)) {
953
- const err18 = { instancePath: instancePath + "/playbackRate/denominator", schemaPath: "#/$defs/WirePlaybackRate/properties/denominator/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
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" };
954
1542
  if (vErrors === null) {
955
- vErrors = [err18];
1543
+ vErrors = [err31];
956
1544
  }
957
1545
  else {
958
- vErrors.push(err18);
1546
+ vErrors.push(err31);
959
1547
  }
960
1548
  errors++;
961
1549
  }
962
1550
  }
963
1551
  }
964
- if (data2.numerator !== undefined) {
965
- let data4 = data2.numerator;
966
- if (!(((typeof data4 == "number") && (!(data4 % 1) && !isNaN(data4))) && (isFinite(data4)))) {
967
- const err19 = { instancePath: instancePath + "/playbackRate/numerator", schemaPath: "#/$defs/WirePlaybackRate/properties/numerator/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
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" };
968
1556
  if (vErrors === null) {
969
- vErrors = [err19];
1557
+ vErrors = [err32];
970
1558
  }
971
1559
  else {
972
- vErrors.push(err19);
1560
+ vErrors.push(err32);
973
1561
  }
974
1562
  errors++;
975
1563
  }
976
- if ((typeof data4 == "number") && (isFinite(data4))) {
977
- if (data4 > 4294967295 || isNaN(data4)) {
978
- const err20 = { instancePath: instancePath + "/playbackRate/numerator", schemaPath: "#/$defs/WirePlaybackRate/properties/numerator/maximum", keyword: "maximum", params: { comparison: "<=", limit: 4294967295 }, message: "must be <= 4294967295" };
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" };
979
1567
  if (vErrors === null) {
980
- vErrors = [err20];
1568
+ vErrors = [err33];
981
1569
  }
982
1570
  else {
983
- vErrors.push(err20);
1571
+ vErrors.push(err33);
984
1572
  }
985
1573
  errors++;
986
1574
  }
987
- if (data4 < 1 || isNaN(data4)) {
988
- const err21 = { instancePath: instancePath + "/playbackRate/numerator", schemaPath: "#/$defs/WirePlaybackRate/properties/numerator/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
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" };
989
1577
  if (vErrors === null) {
990
- vErrors = [err21];
1578
+ vErrors = [err34];
991
1579
  }
992
1580
  else {
993
- vErrors.push(err21);
1581
+ vErrors.push(err34);
994
1582
  }
995
1583
  errors++;
996
1584
  }
@@ -998,76 +1586,67 @@ function validate44(data, { instancePath = "", parentData, parentDataProperty, r
998
1586
  }
999
1587
  }
1000
1588
  else {
1001
- const err22 = { instancePath: instancePath + "/playbackRate", schemaPath: "#/$defs/WirePlaybackRate/type", keyword: "type", params: { type: "object" }, message: "must be object" };
1589
+ const err35 = { instancePath: instancePath + "/timebase", schemaPath: "#/$defs/WireMediaTimebase/type", keyword: "type", params: { type: "object" }, message: "must be object" };
1002
1590
  if (vErrors === null) {
1003
- vErrors = [err22];
1591
+ vErrors = [err35];
1004
1592
  }
1005
1593
  else {
1006
- vErrors.push(err22);
1594
+ vErrors.push(err35);
1007
1595
  }
1008
1596
  errors++;
1009
1597
  }
1010
1598
  }
1011
- if (data.startNanoseconds !== undefined) {
1012
- let data5 = data.startNanoseconds;
1013
- if (typeof data5 === "string") {
1014
- if (func2(data5) > 20) {
1015
- const err23 = { instancePath: instancePath + "/startNanoseconds", schemaPath: "#/properties/startNanoseconds/maxLength", keyword: "maxLength", params: { limit: 20 }, message: "must NOT have more than 20 characters" };
1016
- if (vErrors === null) {
1017
- vErrors = [err23];
1018
- }
1019
- else {
1020
- vErrors.push(err23);
1021
- }
1022
- errors++;
1023
- }
1024
- if (func2(data5) < 1) {
1025
- const err24 = { instancePath: instancePath + "/startNanoseconds", schemaPath: "#/properties/startNanoseconds/minLength", keyword: "minLength", params: { limit: 1 }, message: "must NOT have fewer than 1 characters" };
1026
- if (vErrors === null) {
1027
- vErrors = [err24];
1028
- }
1029
- else {
1030
- vErrors.push(err24);
1031
- }
1032
- errors++;
1033
- }
1034
- if (!pattern5.test(data5)) {
1035
- const err25 = { 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]*)$" + "\"" };
1036
- if (vErrors === null) {
1037
- vErrors = [err25];
1038
- }
1039
- else {
1040
- vErrors.push(err25);
1041
- }
1042
- errors++;
1043
- }
1044
- }
1045
- else {
1046
- const err26 = { instancePath: instancePath + "/startNanoseconds", schemaPath: "#/properties/startNanoseconds/type", keyword: "type", params: { type: "string" }, message: "must be string" };
1047
- if (vErrors === null) {
1048
- vErrors = [err26];
1049
- }
1050
- else {
1051
- vErrors.push(err26);
1052
- }
1053
- errors++;
1054
- }
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];
1055
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];
1056
1614
  }
1057
1615
  else {
1058
- const err27 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
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" };
1059
1626
  if (vErrors === null) {
1060
- vErrors = [err27];
1627
+ vErrors = [err37];
1061
1628
  }
1062
1629
  else {
1063
- vErrors.push(err27);
1630
+ vErrors.push(err37);
1064
1631
  }
1065
1632
  errors++;
1066
1633
  }
1067
- validate44.errors = vErrors;
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;
1068
1647
  return errors === 0;
1069
1648
  }
1070
- validate44.evaluated = { "props": true, "dynamicProps": false, "dynamicItems": false };
1649
+ validate46.evaluated = { "dynamicProps": true, "dynamicItems": false };
1071
1650
  function validate41(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
1072
1651
  let vErrors = null;
1073
1652
  let errors = 0;
@@ -1119,8 +1698,8 @@ function validate41(data, { instancePath = "", parentData, parentDataProperty, r
1119
1698
  }
1120
1699
  errors++;
1121
1700
  }
1122
- if (data.sourceFrameRate === undefined) {
1123
- const err4 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "sourceFrameRate" }, message: "must have required property '" + "sourceFrameRate" + "'" };
1701
+ if (data.sourceTiming === undefined) {
1702
+ const err4 = { instancePath, schemaPath: "#/required", keyword: "required", params: { missingProperty: "sourceTiming" }, message: "must have required property '" + "sourceTiming" + "'" };
1124
1703
  if (vErrors === null) {
1125
1704
  vErrors = [err4];
1126
1705
  }
@@ -1140,7 +1719,7 @@ function validate41(data, { instancePath = "", parentData, parentDataProperty, r
1140
1719
  errors++;
1141
1720
  }
1142
1721
  for (const key0 in data) {
1143
- if (!((((((key0 === "assetId") || (key0 === "interval")) || (key0 === "node")) || (key0 === "shotId")) || (key0 === "source")) || (key0 === "sourceFrameRate"))) {
1722
+ if (!((((((key0 === "assetId") || (key0 === "interval")) || (key0 === "node")) || (key0 === "shotId")) || (key0 === "source")) || (key0 === "sourceTiming"))) {
1144
1723
  const err6 = { instancePath, schemaPath: "#/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key0 }, message: "must NOT have additional properties" };
1145
1724
  if (vErrors === null) {
1146
1725
  vErrors = [err6];
@@ -1229,131 +1808,20 @@ function validate41(data, { instancePath = "", parentData, parentDataProperty, r
1229
1808
  errors = vErrors.length;
1230
1809
  }
1231
1810
  }
1232
- if (data.sourceFrameRate !== undefined) {
1233
- let data5 = data.sourceFrameRate;
1234
- if (data5 && typeof data5 == "object" && !Array.isArray(data5)) {
1235
- if (data5.numerator === undefined) {
1236
- const err12 = { instancePath: instancePath + "/sourceFrameRate", schemaPath: "#/$defs/WireFrameRate/required", keyword: "required", params: { missingProperty: "numerator" }, message: "must have required property '" + "numerator" + "'" };
1237
- if (vErrors === null) {
1238
- vErrors = [err12];
1239
- }
1240
- else {
1241
- vErrors.push(err12);
1242
- }
1243
- errors++;
1244
- }
1245
- if (data5.denominator === undefined) {
1246
- const err13 = { instancePath: instancePath + "/sourceFrameRate", schemaPath: "#/$defs/WireFrameRate/required", keyword: "required", params: { missingProperty: "denominator" }, message: "must have required property '" + "denominator" + "'" };
1247
- if (vErrors === null) {
1248
- vErrors = [err13];
1249
- }
1250
- else {
1251
- vErrors.push(err13);
1252
- }
1253
- errors++;
1254
- }
1255
- for (const key1 in data5) {
1256
- if (!((key1 === "denominator") || (key1 === "numerator"))) {
1257
- const err14 = { instancePath: instancePath + "/sourceFrameRate", schemaPath: "#/$defs/WireFrameRate/additionalProperties", keyword: "additionalProperties", params: { additionalProperty: key1 }, message: "must NOT have additional properties" };
1258
- if (vErrors === null) {
1259
- vErrors = [err14];
1260
- }
1261
- else {
1262
- vErrors.push(err14);
1263
- }
1264
- errors++;
1265
- }
1266
- }
1267
- if (data5.denominator !== undefined) {
1268
- let data6 = data5.denominator;
1269
- if (!(((typeof data6 == "number") && (!(data6 % 1) && !isNaN(data6))) && (isFinite(data6)))) {
1270
- const err15 = { instancePath: instancePath + "/sourceFrameRate/denominator", schemaPath: "#/$defs/WireFrameRate/properties/denominator/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
1271
- if (vErrors === null) {
1272
- vErrors = [err15];
1273
- }
1274
- else {
1275
- vErrors.push(err15);
1276
- }
1277
- errors++;
1278
- }
1279
- if ((typeof data6 == "number") && (isFinite(data6))) {
1280
- if (data6 > 4294967295 || isNaN(data6)) {
1281
- const err16 = { instancePath: instancePath + "/sourceFrameRate/denominator", schemaPath: "#/$defs/WireFrameRate/properties/denominator/maximum", keyword: "maximum", params: { comparison: "<=", limit: 4294967295 }, message: "must be <= 4294967295" };
1282
- if (vErrors === null) {
1283
- vErrors = [err16];
1284
- }
1285
- else {
1286
- vErrors.push(err16);
1287
- }
1288
- errors++;
1289
- }
1290
- if (data6 < 1 || isNaN(data6)) {
1291
- const err17 = { instancePath: instancePath + "/sourceFrameRate/denominator", schemaPath: "#/$defs/WireFrameRate/properties/denominator/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
1292
- if (vErrors === null) {
1293
- vErrors = [err17];
1294
- }
1295
- else {
1296
- vErrors.push(err17);
1297
- }
1298
- errors++;
1299
- }
1300
- }
1301
- }
1302
- if (data5.numerator !== undefined) {
1303
- let data7 = data5.numerator;
1304
- if (!(((typeof data7 == "number") && (!(data7 % 1) && !isNaN(data7))) && (isFinite(data7)))) {
1305
- const err18 = { instancePath: instancePath + "/sourceFrameRate/numerator", schemaPath: "#/$defs/WireFrameRate/properties/numerator/type", keyword: "type", params: { type: "integer" }, message: "must be integer" };
1306
- if (vErrors === null) {
1307
- vErrors = [err18];
1308
- }
1309
- else {
1310
- vErrors.push(err18);
1311
- }
1312
- errors++;
1313
- }
1314
- if ((typeof data7 == "number") && (isFinite(data7))) {
1315
- if (data7 > 4294967295 || isNaN(data7)) {
1316
- const err19 = { instancePath: instancePath + "/sourceFrameRate/numerator", schemaPath: "#/$defs/WireFrameRate/properties/numerator/maximum", keyword: "maximum", params: { comparison: "<=", limit: 4294967295 }, message: "must be <= 4294967295" };
1317
- if (vErrors === null) {
1318
- vErrors = [err19];
1319
- }
1320
- else {
1321
- vErrors.push(err19);
1322
- }
1323
- errors++;
1324
- }
1325
- if (data7 < 1 || isNaN(data7)) {
1326
- const err20 = { instancePath: instancePath + "/sourceFrameRate/numerator", schemaPath: "#/$defs/WireFrameRate/properties/numerator/minimum", keyword: "minimum", params: { comparison: ">=", limit: 1 }, message: "must be >= 1" };
1327
- if (vErrors === null) {
1328
- vErrors = [err20];
1329
- }
1330
- else {
1331
- vErrors.push(err20);
1332
- }
1333
- errors++;
1334
- }
1335
- }
1336
- }
1337
- }
1338
- else {
1339
- const err21 = { instancePath: instancePath + "/sourceFrameRate", schemaPath: "#/$defs/WireFrameRate/type", keyword: "type", params: { type: "object" }, message: "must be object" };
1340
- if (vErrors === null) {
1341
- vErrors = [err21];
1342
- }
1343
- else {
1344
- vErrors.push(err21);
1345
- }
1346
- errors++;
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;
1347
1815
  }
1348
1816
  }
1349
1817
  }
1350
1818
  else {
1351
- const err22 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
1819
+ const err12 = { instancePath, schemaPath: "#/type", keyword: "type", params: { type: "object" }, message: "must be object" };
1352
1820
  if (vErrors === null) {
1353
- vErrors = [err22];
1821
+ vErrors = [err12];
1354
1822
  }
1355
1823
  else {
1356
- vErrors.push(err22);
1824
+ vErrors.push(err12);
1357
1825
  }
1358
1826
  errors++;
1359
1827
  }
@@ -2356,7 +2824,7 @@ function validate21(data, { instancePath = "", parentData, parentDataProperty, r
2356
2824
  }
2357
2825
  validate21.evaluated = { "dynamicProps": true, "dynamicItems": false };
2358
2826
  function validate20(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
2359
- /*# sourceURL="https://onmark.dev/schemas/browser-request-v2.schema.json" */ ;
2827
+ /*# sourceURL="https://onmark.dev/schemas/browser-request-v3.schema.json" */ ;
2360
2828
  let vErrors = null;
2361
2829
  let errors = 0;
2362
2830
  const evaluated0 = validate20.evaluated;
@@ -2462,8 +2930,8 @@ function validate20(data, { instancePath = "", parentData, parentDataProperty, r
2462
2930
  }
2463
2931
  errors++;
2464
2932
  }
2465
- if (2 !== data2) {
2466
- const err8 = { instancePath: instancePath + "/version", schemaPath: "#/$defs/ProtocolVersion/const", keyword: "const", params: { allowedValue: 2 }, 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" };
2467
2935
  if (vErrors === null) {
2468
2936
  vErrors = [err8];
2469
2937
  }
@@ -2510,18 +2978,18 @@ function validate20(data, { instancePath = "", parentData, parentDataProperty, r
2510
2978
  return errors === 0;
2511
2979
  }
2512
2980
  validate20.evaluated = { "props": true, "dynamicProps": false, "dynamicItems": false };
2513
- export const validateBrowserResponse = validate49;
2514
- const schema56 = { "$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": 2, "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-v2.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 };
2515
- const schema62 = { "description": "Correlation identity shared by one request and its response events.", "format": "uint32", "maximum": 4294967295, "minimum": 0, "type": "integer" };
2516
- const schema63 = { "const": 2, "description": "Version of the native-to-browser message contract.", "format": "uint16", "maximum": 65535, "minimum": 0, "type": "integer" };
2517
- const schema57 = { "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" }] };
2518
- const schema58 = { "description": "Exact frame integer accepted by JavaScript without rounding.", "format": "uint64", "maximum": 9007199254740991, "minimum": 0, "type": "integer" };
2519
- const schema61 = { "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" }] };
2520
- const pattern8 = new RegExp("\\S", "u");
2521
- function validate50(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 = {} } = {}) {
2522
2990
  let vErrors = null;
2523
2991
  let errors = 0;
2524
- const evaluated0 = validate50.evaluated;
2992
+ const evaluated0 = validate52.evaluated;
2525
2993
  if (evaluated0.dynamicProps) {
2526
2994
  evaluated0.props = undefined;
2527
2995
  }
@@ -3287,7 +3755,7 @@ function validate50(data, { instancePath = "", parentData, parentDataProperty, r
3287
3755
  }
3288
3756
  errors++;
3289
3757
  }
3290
- if (!pattern8.test(data8)) {
3758
+ if (!pattern9.test(data8)) {
3291
3759
  const err55 = { instancePath: instancePath + "/message", schemaPath: "#/oneOf/4/properties/message/pattern", keyword: "pattern", params: { pattern: "\\S" }, message: "must match pattern \"" + "\\S" + "\"" };
3292
3760
  if (vErrors === null) {
3293
3761
  vErrors = [err55];
@@ -3336,7 +3804,7 @@ function validate50(data, { instancePath = "", parentData, parentDataProperty, r
3336
3804
  }
3337
3805
  errors++;
3338
3806
  }
3339
- if (!pattern8.test(data10)) {
3807
+ if (!pattern9.test(data10)) {
3340
3808
  const err59 = { instancePath: instancePath + "/pendingResources/" + i0, schemaPath: "#/oneOf/4/properties/pendingResources/items/pattern", keyword: "pattern", params: { pattern: "\\S" }, message: "must match pattern \"" + "\\S" + "\"" };
3341
3809
  if (vErrors === null) {
3342
3810
  vErrors = [err59];
@@ -3514,16 +3982,16 @@ function validate50(data, { instancePath = "", parentData, parentDataProperty, r
3514
3982
  }
3515
3983
  }
3516
3984
  }
3517
- validate50.errors = vErrors;
3985
+ validate52.errors = vErrors;
3518
3986
  evaluated0.props = props0;
3519
3987
  return errors === 0;
3520
3988
  }
3521
- validate50.evaluated = { "dynamicProps": true, "dynamicItems": false };
3522
- function validate49(data, { instancePath = "", parentData, parentDataProperty, rootData = data, dynamicAnchors = {} } = {}) {
3523
- /*# sourceURL="https://onmark.dev/schemas/browser-response-v2.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" */ ;
3524
3992
  let vErrors = null;
3525
3993
  let errors = 0;
3526
- const evaluated0 = validate49.evaluated;
3994
+ const evaluated0 = validate51.evaluated;
3527
3995
  if (evaluated0.dynamicProps) {
3528
3996
  evaluated0.props = undefined;
3529
3997
  }
@@ -3574,8 +4042,8 @@ function validate49(data, { instancePath = "", parentData, parentDataProperty, r
3574
4042
  }
3575
4043
  }
3576
4044
  if (data.event !== undefined) {
3577
- if (!(validate50(data.event, { instancePath: instancePath + "/event", parentData: data, parentDataProperty: "event", rootData, dynamicAnchors }))) {
3578
- vErrors = vErrors === null ? validate50.errors : vErrors.concat(validate50.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);
3579
4047
  errors = vErrors.length;
3580
4048
  }
3581
4049
  }
@@ -3626,8 +4094,8 @@ function validate49(data, { instancePath = "", parentData, parentDataProperty, r
3626
4094
  }
3627
4095
  errors++;
3628
4096
  }
3629
- if (2 !== data2) {
3630
- const err8 = { instancePath: instancePath + "/version", schemaPath: "#/$defs/ProtocolVersion/const", keyword: "const", params: { allowedValue: 2 }, 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" };
3631
4099
  if (vErrors === null) {
3632
4100
  vErrors = [err8];
3633
4101
  }
@@ -3670,7 +4138,7 @@ function validate49(data, { instancePath = "", parentData, parentDataProperty, r
3670
4138
  }
3671
4139
  errors++;
3672
4140
  }
3673
- validate49.errors = vErrors;
4141
+ validate51.errors = vErrors;
3674
4142
  return errors === 0;
3675
4143
  }
3676
- validate49.evaluated = { "props": true, "dynamicProps": false, "dynamicItems": false };
4144
+ validate51.evaluated = { "props": true, "dynamicProps": false, "dynamicItems": false };