@nxtedition/types 23.1.1 → 23.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/app.d.ts +7 -1
  2. package/dist/common/index.d.ts +1 -0
  3. package/dist/common/index.js +1 -0
  4. package/dist/common/panel-property.d.ts +2 -29
  5. package/dist/common/render-scene.d.ts +72 -12
  6. package/dist/common/schema-property.d.ts +36 -4
  7. package/dist/common/settings.d.ts +66 -41
  8. package/dist/common/settings.js +18 -1
  9. package/dist/common/widget.d.ts +16 -0
  10. package/dist/common/widget.js +1 -0
  11. package/dist/nxtpression.d.ts +439 -139
  12. package/dist/records/domains/condition.d.ts +1 -1
  13. package/dist/records/domains/event.d.ts +4 -3
  14. package/dist/records/domains/index.d.ts +5 -1
  15. package/dist/records/domains/index.js +2 -0
  16. package/dist/records/domains/ingestschedule.d.ts +1 -1
  17. package/dist/records/domains/media.d.ts +10 -0
  18. package/dist/records/domains/panel.d.ts +7 -19
  19. package/dist/records/domains/publish/facebook.d.ts +1 -2
  20. package/dist/records/domains/publish/file-legacy.d.ts +1 -1
  21. package/dist/records/domains/render.d.ts +54 -3
  22. package/dist/records/domains/schema.d.ts +21 -0
  23. package/dist/records/domains/schema.js +1 -0
  24. package/dist/records/domains/search.d.ts +1 -1
  25. package/dist/records/domains/stream.d.ts +80 -0
  26. package/dist/records/domains/stream.js +1 -0
  27. package/dist/records/domains/template.d.ts +2 -0
  28. package/dist/records/exact/asset.d.ts +17 -7
  29. package/dist/records/exact/media.d.ts +2 -0
  30. package/dist/records/exact/monitor.d.ts +14 -8
  31. package/dist/records/index.d.ts +1 -1
  32. package/dist/records/utils.d.ts +5 -1
  33. package/dist/records/validate/assert-guard.js +9039 -5236
  34. package/dist/records/validate/assert.js +9011 -5200
  35. package/dist/records/validate/is.js +165 -115
  36. package/dist/records/validate/schemas.js +5065 -1812
  37. package/dist/records/validate/stringify.js +776 -180
  38. package/dist/records/validate/utils.d.ts +1 -1
  39. package/dist/records/validate/utils.js +2 -2
  40. package/dist/records/validate/validate-equals.js +11304 -6466
  41. package/dist/records/validate/validate.js +8164 -4980
  42. package/package.json +1 -1
@@ -173,6 +173,12 @@ declare interface AssetFileRefsProvidedRecord {
173
173
  value?: string[];
174
174
  }
175
175
 
176
+ declare interface AssetHttpRecord {
177
+ whitelist?: string[] | null;
178
+ blacklist?: string[] | null;
179
+ allowImport?: boolean;
180
+ }
181
+
176
182
  declare interface AssetIconRecord {
177
183
  value?: Nxtpression<string, {
178
184
  id: string;
@@ -333,6 +339,7 @@ declare interface AssetRecords {
333
339
  "asset.tags": AssetTagsRecord;
334
340
  "asset.title": AssetTitleRecord;
335
341
  "asset.types": AssetTypesRecord;
342
+ "asset.http": AssetHttpRecord;
336
343
  }
337
344
 
338
345
  declare interface AssetRef {
@@ -399,6 +406,38 @@ declare interface AuthDomainRecords {
399
406
  ":auth": AuthDomainRecord;
400
407
  }
401
408
 
409
+ declare interface BaseSchemaProperty<Value = unknown> {
410
+ domain?: string;
411
+ path?: string;
412
+ /** Specifying what type of data will be entered into the field. */
413
+ type?: "array" | "asset" | "boolean" | "datetime" | "number" | "string" | "object" | "rpc" | undefined;
414
+ /** User-friendly title of the property. This will be used as the field's label in the UI. */
415
+ title?: string;
416
+ description?: string;
417
+ /** If present, indicates that the user must specify a value for the asset to be treated as valid. */
418
+ required?: boolean;
419
+ oneOf?: Array<BaseSchemaProperty>;
420
+ anyOf?: Array<BaseSchemaProperty>;
421
+ enum?: ReadonlyArray<Value>;
422
+ widget?: WidgetType | WidgetOptions;
423
+ placeholder?: string;
424
+ helpText?: string;
425
+ invalid?: boolean;
426
+ emptyValue?: Value;
427
+ minItems?: number;
428
+ maxItems?: number;
429
+ items?: BaseSchemaProperty<Value>;
430
+ properties?: Record<string, BaseSchemaProperty<unknown>>;
431
+ computed?: Nxtpression<Value>;
432
+ /** An object specifying where to index the data. Adding this will effectively make the data searchable. */
433
+ index?: {
434
+ /** A string specifying the user-friendly title of the search property. This is what users will see when creating search filters and bookmarks. */
435
+ label: string;
436
+ /** A string specifying where to store the data in the search index. Note that this should be a globally unique value in the system. Typically you'd use `{domain}.{path}` and you should prefer English in camel case */
437
+ path: string;
438
+ };
439
+ }
440
+
402
441
  declare interface BundleDomainRecords {
403
442
  [":bundle"]: BundleRecord;
404
443
  [":bundle.revisions"]: BundleRevisionsRecord;
@@ -648,23 +687,30 @@ declare interface DeviceDomainStatusRecord {
648
687
  version?: string;
649
688
  }
650
689
 
651
- declare interface DomainRecords extends AssetDomainRecords, AuthDomainRecords, BundleDomainRecords, CalendarEventDomainRecords, CloneDomainRecords, CommentReactionDomainRecords, CommentReadMarkDomainRecords, CommentDomainRecords, ConditionDomainRecords, ConnectionDomainRecords, ContactDomainRecords, DeepstreamDomainRecords, DesignDomainRecords, DeviceDomainRecords, EditDomainRecords, EventDomainRecords, FileDomainRecords, FolderDomainRecords, GeneralDomainRecords, HarvestDomainRecords, IngestclipDomainRecords, IngestScheduleDomainRecords, MediaDomainRecords, MonitorDomainRecords, NoteDomainRecords, PanelDomainRecords, PermissionDomainRecords, PipelinePresetDomainRecords, PipelineDomainRecords, PlanningDomainRecords, PrompterDomainRecords, PublishDomainRecords, PublishedDomainRecords, RenderPresetDomainRecords, RenderDomainRecords, RevsDomainRecords, RoleDomainRecords, ScriptDomainRecords, SearchDomainRecords, SettingsDomainRecords, ShotboxDomainRecords, StoryboardDomainRecords, SubtitleStyleDomainRecords, SubtitleDomainRecords, TemplateDomainRecords, UserNotificationStatusDomainRecords, UserNotificationDomainRecords, UserDomainRecords, UsernameDomainRecords {
690
+ declare interface DomainRecords extends AssetDomainRecords, AuthDomainRecords, BundleDomainRecords, CalendarEventDomainRecords, CloneDomainRecords, CommentReactionDomainRecords, CommentReadMarkDomainRecords, CommentDomainRecords, ConditionDomainRecords, ConnectionDomainRecords, ContactDomainRecords, DeepstreamDomainRecords, DesignDomainRecords, DeviceDomainRecords, EditDomainRecords, EventDomainRecords, FileDomainRecords, FolderDomainRecords, GeneralDomainRecords, HarvestDomainRecords, IngestclipDomainRecords, IngestScheduleDomainRecords, MediaDomainRecords, MonitorDomainRecords, NoteDomainRecords, PanelDomainRecords, PermissionDomainRecords, PipelinePresetDomainRecords, PipelineDomainRecords, PlanningDomainRecords, PrompterDomainRecords, PublishDomainRecords, PublishedDomainRecords, RenderPresetDomainRecords, RenderDomainRecords, RevsDomainRecords, RoleDomainRecords, SchemaDomainRecords, ScriptDomainRecords, SearchDomainRecords, SettingsDomainRecords, ShotboxDomainRecords, StoryboardDomainRecords, StreamDomainRecords, SubtitleStyleDomainRecords, SubtitleDomainRecords, TemplateDomainRecords, UserNotificationStatusDomainRecords, UserNotificationDomainRecords, UserDomainRecords, UsernameDomainRecords {
652
691
  }
653
692
 
654
693
  declare type Dynamic = false | string[];
655
694
 
695
+ declare interface DynamicPanelProperty extends DynamicPropertyBase, Omit<PanelProperty, "path" | "domain"> {
696
+ /** ID of the panel asset that defines this property */
697
+ panel: string;
698
+ }
699
+
656
700
  /**
657
701
  * Dynamic property definition.
658
702
  * Properties come from :panel assets or :schema assets.
659
703
  */
660
- declare interface DynamicProperty extends Omit<PanelProperty, "path">, Omit<SchemaProperty, "path"> {
661
- /** ID of the panel asset that defines this property (for panel-sourced properties) */
662
- panel?: string;
663
- /** ID of the schema asset that defines this property (for schema-sourced properties) */
664
- schema?: string;
665
- /** List of asset types this property supports */
666
- supports: string[];
704
+ declare type DynamicProperty = DynamicPanelProperty | DynamicSchemaProperty;
705
+
706
+ declare interface DynamicPropertyBase {
667
707
  path: string;
708
+ domain: string;
709
+ }
710
+
711
+ declare interface DynamicSchemaProperty extends DynamicPropertyBase, Omit<SchemaProperty, "path" | "domain"> {
712
+ /** ID of the schema asset that defines this property */
713
+ schema: string;
668
714
  }
669
715
 
670
716
  declare interface EditDomainRecords {
@@ -694,6 +740,10 @@ declare interface EmptyConnectionRecord extends ConnectionBase {
694
740
  type?: null;
695
741
  }
696
742
 
743
+ declare type EmptyObject = {
744
+ [emptyObjectSymbol]?: never;
745
+ };
746
+
697
747
  /**
698
748
  Represents a strictly empty plain object, the `{}` value.
699
749
 
@@ -720,10 +770,12 @@ declare interface EmptyConnectionRecord extends ConnectionBase {
720
770
 
721
771
  @category Object
722
772
  */
723
- declare type EmptyObject = {[emptyObjectSymbol]?: never};
773
+ declare type EmptyObject_2 = {[emptyObjectSymbol_2]?: never};
724
774
 
725
775
  declare const emptyObjectSymbol: unique symbol;
726
776
 
777
+ declare const emptyObjectSymbol_2: unique symbol;
778
+
727
779
  declare interface EmptyPublishDef extends PublishDef<null> {
728
780
  publish: EmptyPublishRecord;
729
781
  }
@@ -788,9 +840,9 @@ declare type EventProps = {
788
840
  declare type EventPropsRecord = EventProps & Record<Exclude<string, keyof EventProps>, JsonValue>;
789
841
 
790
842
  declare interface EventRecord {
791
- start?: number;
792
- end?: number;
793
- duration?: number;
843
+ start?: number | null;
844
+ end?: number | null;
845
+ duration?: number | null;
794
846
  text?: string;
795
847
  lang?: string;
796
848
  style?: string;
@@ -803,6 +855,7 @@ declare interface EventTemplateRecord {
803
855
  layout?: {
804
856
  title?: string;
805
857
  };
858
+ controller?: string;
806
859
  }
807
860
 
808
861
  declare type ExactRecords = MiscRecords & MediaRecords & AssetRecords & MonitorRecords & StorageRecords;
@@ -826,8 +879,7 @@ declare interface FacebookPublishRecord extends PublishRecordBase {
826
879
  pageId?: string;
827
880
  }
828
881
 
829
- declare interface FacebookPublishStatsRecord extends PublishStatsRecordBase {
830
- }
882
+ declare type FacebookPublishStatsRecord = PublishStatsRecordBase;
831
883
 
832
884
  declare interface File_2 {
833
885
  id: string & Pattern<'^[0-9A-Za-z~][0-9A-Za-z~._: -]*$'>;
@@ -1115,14 +1167,14 @@ declare interface FolderItemsDomainRecord {
1115
1167
  value: string[];
1116
1168
  }
1117
1169
 
1118
- declare interface FontFace_2 {
1170
+ declare interface FontFace {
1119
1171
  name: string;
1120
1172
  family: string;
1121
1173
  asset: string;
1122
1174
  url: string;
1123
1175
  weight: number;
1124
1176
  style: "normal" | "italic";
1125
- ranges: Range_2[];
1177
+ ranges: Range[];
1126
1178
  }
1127
1179
 
1128
1180
  declare interface FormattedTextNodeContent {
@@ -1458,7 +1510,7 @@ declare type InternalIsUnion<T, U = T> =
1458
1510
  @see EmptyObject
1459
1511
  @category Object
1460
1512
  */
1461
- declare type IsEmptyObject<T> = T extends EmptyObject ? true : false;
1513
+ declare type IsEmptyObject<T> = T extends EmptyObject_2 ? true : false;
1462
1514
 
1463
1515
  /**
1464
1516
  Returns a boolean for whether the given type is `never`.
@@ -1535,13 +1587,6 @@ declare type KeyedProvidedDomainRecords = {
1535
1587
  [Domain in ProvidedDomainKeys as `${string}${Domain}${string}`]: GettablePossibleEmpty<DomainRecords[Domain]>;
1536
1588
  };
1537
1589
 
1538
- declare interface KeymapSetting {
1539
- title?: string;
1540
- sequence?: string;
1541
- }
1542
-
1543
- declare type LayoutWidget = WidgetType | WidgetItem;
1544
-
1545
1590
  declare interface LinkNodeContent {
1546
1591
  type: "link" | "autolink";
1547
1592
  children: FormattedTextNodeContent[];
@@ -1607,9 +1652,16 @@ declare interface MediaDomainConsolidateRecord {
1607
1652
  error?: unknown;
1608
1653
  }
1609
1654
 
1655
+ declare interface MediaDomainConsolidateRecordProvided {
1656
+ status: "idle" | "pending" | "completed" | "error" | "source_mismatch";
1657
+ progress?: number;
1658
+ error?: unknown;
1659
+ }
1660
+
1610
1661
  declare interface MediaDomainRecords {
1611
1662
  ":media.source": MediaSourceRecord;
1612
1663
  ":media.consolidate": MediaDomainConsolidateRecord;
1664
+ ":media.consolidate?": MediaDomainConsolidateRecordProvided;
1613
1665
  ":media.renders?": MediaRendersRecord;
1614
1666
  ":media.transcriptChanges": MediaTranscriptChangesRecord;
1615
1667
  ":media.font": MediaFontRecord;
@@ -1617,6 +1669,11 @@ declare interface MediaDomainRecords {
1617
1669
  ":media.probe?": MediaProbeRecord;
1618
1670
  ":media.updateSubtitles?": MediaDomainUpdateSubtitlesRecord;
1619
1671
  ":media.updateGraphics?": MediaDomainUpdateGraphicsRecord;
1672
+ ":media.revisions": MediaDomainRevisionsRecord;
1673
+ }
1674
+
1675
+ declare interface MediaDomainRevisionsRecord {
1676
+ [revisionId: string]: RenderSceneObject;
1620
1677
  }
1621
1678
 
1622
1679
  declare interface MediaDomainUpdateGraphicsRecord {
@@ -1632,8 +1689,8 @@ declare interface MediaFontRecord {
1632
1689
  }
1633
1690
 
1634
1691
  declare interface MediaFonts {
1635
- fontFaces?: FontFace_2[];
1636
- fontFamilyNames?: Array<FontFace_2["family"]>;
1692
+ fontFaces?: FontFace[];
1693
+ fontFamilyNames?: Array<FontFace["family"]>;
1637
1694
  }
1638
1695
 
1639
1696
  declare interface MediaProbeRecord {
@@ -1681,11 +1738,13 @@ declare interface MediaRestrictionsRecord {
1681
1738
  declare type MediaSourceRecord = RenderSceneObject;
1682
1739
 
1683
1740
  declare interface MediaSubtitlesProvidedRecord {
1741
+ defaultLanguage?: string;
1684
1742
  languages?: Record<string, string>;
1685
1743
  fontFaces?: SubtitleFontFace[];
1686
1744
  }
1687
1745
 
1688
1746
  declare interface MediaSubtitlesRecord {
1747
+ defaultLanguage?: string;
1689
1748
  languages?: Record<string, string>;
1690
1749
  fontFaces?: SubtitleFontFace[];
1691
1750
  }
@@ -1991,6 +2050,18 @@ export declare interface NxtpressionNxt {
1991
2050
  hash(value: unknown): string;
1992
2051
  }
1993
2052
 
2053
+ declare interface NxtStatusMessage {
2054
+ id: string;
2055
+ msg: string;
2056
+ level: number;
2057
+ ignored?: boolean;
2058
+ title?: string;
2059
+ url?: string | {
2060
+ title: string;
2061
+ url: string;
2062
+ };
2063
+ }
2064
+
1994
2065
  declare interface NxtStatusNode extends NxtStatusObject {
1995
2066
  state?: string;
1996
2067
  role?: string;
@@ -2003,10 +2074,7 @@ declare interface NxtStatusNode extends NxtStatusObject {
2003
2074
  declare interface NxtStatusObject {
2004
2075
  level: number;
2005
2076
  status: string;
2006
- messages: Array<{
2007
- msg: string;
2008
- level: number;
2009
- }>;
2077
+ messages: NxtStatusMessage[];
2010
2078
  }
2011
2079
 
2012
2080
  declare interface NxtStatusRecord {
@@ -2025,16 +2093,14 @@ declare interface NxtStatusService extends NxtStatusObject {
2025
2093
  running?: number;
2026
2094
  mode?: string;
2027
2095
  total?: number;
2096
+ ignored?: boolean;
2028
2097
  tasks?: Array<{
2029
2098
  id: string;
2030
2099
  node: string;
2031
2100
  container: string;
2032
2101
  level?: number;
2033
2102
  status?: string;
2034
- messages: Array<{
2035
- msg: string;
2036
- level: number;
2037
- }>;
2103
+ messages: NxtStatusMessage[];
2038
2104
  }>;
2039
2105
  }
2040
2106
 
@@ -2214,6 +2280,10 @@ declare interface OperatorFunction<T, R> extends UnaryFunction<Observable<T>, Ob
2214
2280
 
2215
2281
  declare interface PanelDomainPanelRecord {
2216
2282
  title?: string;
2283
+ /**
2284
+ * - If an array: interpreted as a list of supported asset types
2285
+ * - If a string: interpreted as the ID of a search which contains supported assets
2286
+ */
2217
2287
  supports?: string[] | string;
2218
2288
  priority?: number;
2219
2289
  editorPriority?: number;
@@ -2221,8 +2291,8 @@ declare interface PanelDomainPanelRecord {
2221
2291
  [key: string]: PanelProperty;
2222
2292
  };
2223
2293
  layout?: {
2224
- panel?: PanelLayout;
2225
- editor?: PanelLayout;
2294
+ panel?: WidgetLayout;
2295
+ editor?: WidgetLayout;
2226
2296
  };
2227
2297
  filter?: Nxtpression;
2228
2298
  expand?: Nxtpression;
@@ -2232,47 +2302,7 @@ declare interface PanelDomainRecords {
2232
2302
  ":panel": PanelDomainPanelRecord;
2233
2303
  }
2234
2304
 
2235
- declare type PanelLayout = string | PanelLayoutDivider | PanelLayoutItem | PanelLayout[];
2236
-
2237
- declare interface PanelLayoutDivider {
2238
- type: "divider";
2239
- title?: string;
2240
- }
2241
-
2242
- declare interface PanelLayoutItem {
2243
- property: string;
2244
- width?: string | number;
2245
- widget?: LayoutWidget;
2246
- }
2247
-
2248
- declare interface PanelProperty<Value = unknown> {
2249
- /** Specifying what type of data will be entered into the field. */
2250
- type: "array" | "asset" | "boolean" | "datetime" | "number" | "string" | "object" | "rpc";
2251
- /** User-friendly title of the property. This will be used as the field's label in the UI. */
2252
- title?: string;
2253
- description?: string;
2254
- domain?: string;
2255
- path?: string;
2256
- computed?: Nxtpression<Value>;
2257
- /** An object specifying where to index the data. Adding this will effectively make the data searchable. */
2258
- index?: {
2259
- /** A string specifying the user-friendly title of the search property. This is what users will see when creating search filters and bookmarks. */
2260
- label: string;
2261
- /** A string specifying where to store the data in the search index. Note that this should be a globally unique value in the system. Typically you'd use `{domain}.{path}` and you should prefer English in camel case */
2262
- path: string;
2263
- };
2264
- /** If present, indicates that the user must specify a value for the asset to be treated as valid. */
2265
- required?: boolean;
2266
- oneOf?: Array<{
2267
- const?: Value;
2268
- title?: string;
2269
- }>;
2270
- anyOf?: Array<{
2271
- const?: Value;
2272
- title?: string;
2273
- }>;
2274
- enum?: Value[];
2275
- }
2305
+ declare type PanelProperty<Value = unknown> = BaseSchemaProperty<Value>;
2276
2306
 
2277
2307
  declare interface ParagraphNodeContent extends ElementNodeContent {
2278
2308
  type: "paragraph";
@@ -2492,7 +2522,7 @@ declare interface QuoteNodeContent extends ElementNodeContent {
2492
2522
  type: "quote";
2493
2523
  }
2494
2524
 
2495
- declare type Range_2 = [
2525
+ declare type Range = [
2496
2526
  number,
2497
2527
  number
2498
2528
  ];
@@ -2559,10 +2589,60 @@ declare interface RenderDomainRecords {
2559
2589
  }
2560
2590
 
2561
2591
  declare interface RenderDomainResultRecord {
2562
- [key: string]: unknown;
2592
+ id?: string;
2563
2593
  url?: string;
2594
+ files?: string[];
2595
+ refs?: Array<{
2596
+ file?: string;
2597
+ offset?: number;
2598
+ start?: number | null;
2599
+ end?: number | null;
2600
+ }>;
2564
2601
  result?: unknown;
2565
2602
  error?: null | Record<string, unknown> | Array<Record<string, unknown>>;
2603
+ extension?: string;
2604
+ extensions?: string[];
2605
+ type?: string;
2606
+ format?: string;
2607
+ formatName?: string;
2608
+ mimeType?: string;
2609
+ duration?: number;
2610
+ estimatedDuration?: number | null;
2611
+ video?: {
2612
+ codec?: string;
2613
+ width?: number;
2614
+ height?: number;
2615
+ interlaced?: boolean;
2616
+ alpha?: boolean | string;
2617
+ sar?: string | null;
2618
+ dar?: string;
2619
+ framerate?: number;
2620
+ format?: string;
2621
+ encoder?: string;
2622
+ codecName?: string;
2623
+ } | null;
2624
+ audio?: {
2625
+ codec?: string;
2626
+ codecName?: string;
2627
+ format?: string;
2628
+ channels?: number;
2629
+ samplerate?: number;
2630
+ peaksPerSecond?: number;
2631
+ streams?: number;
2632
+ encoder?: string;
2633
+ } | null;
2634
+ language?: string;
2635
+ transcribe?: {
2636
+ engine?: string;
2637
+ version?: string;
2638
+ language?: string;
2639
+ } | null;
2640
+ pan?: number[];
2641
+ translate?: {
2642
+ engine?: string;
2643
+ source?: string;
2644
+ target?: string;
2645
+ } | null;
2566
2646
  }
2567
2647
 
2568
2648
  declare interface RenderDomainSchedulersRecord {
@@ -2625,13 +2705,14 @@ declare interface RenderDomainStatsRecord {
2625
2705
  netTransferTotal?: number | null;
2626
2706
  cpu?: number | null;
2627
2707
  memory?: number | null;
2628
- activeCount: number | null;
2629
- totalCount: number | null;
2708
+ activeCount?: number | null;
2709
+ totalCount?: number | null;
2630
2710
  gpuStat?: RenderDomainGpuStats | null;
2631
2711
  cpuStat?: RenderDomainCpuStats | null;
2632
2712
  netStat?: RenderDomainNetStats | null;
2633
2713
  limits?: unknown;
2634
2714
  taskset?: string;
2715
+ end?: number | null;
2635
2716
  }
2636
2717
 
2637
2718
  declare type RenderPreset = RenderPresetObject | string;
@@ -2680,28 +2761,73 @@ declare interface RenderQuery {
2680
2761
 
2681
2762
  declare type RenderScene = (RenderSceneObject | string) | (RenderSceneObject | string)[];
2682
2763
 
2764
+ /** true = premultiplied alpha, 'straight' = straight alpha, null/undefined = auto */
2765
+ declare type RenderSceneAlpha = boolean | "straight";
2766
+
2767
+ declare interface RenderSceneCrop {
2768
+ x?: number;
2769
+ y?: number;
2770
+ width?: number;
2771
+ height?: number;
2772
+ }
2773
+
2774
+ declare interface RenderSceneFilters {
2775
+ eq?: {
2776
+ brightness?: number;
2777
+ contrast?: number;
2778
+ gamma?: number;
2779
+ saturation?: number;
2780
+ };
2781
+ hue?: {
2782
+ h?: number;
2783
+ s?: number;
2784
+ b?: number;
2785
+ };
2786
+ colorbalance?: {
2787
+ rs?: number;
2788
+ gs?: number;
2789
+ bs?: number;
2790
+ rm?: number;
2791
+ gm?: number;
2792
+ bm?: number;
2793
+ rh?: number;
2794
+ gh?: number;
2795
+ bh?: number;
2796
+ };
2797
+ }
2798
+
2799
+ declare type RenderSceneInterlaced = false | "tff" | "bff";
2800
+
2683
2801
  declare interface RenderSceneObject {
2684
2802
  id?: string;
2685
2803
  preset?: string;
2686
2804
  input?: {
2687
2805
  type?: string;
2688
2806
  file?: string | null;
2807
+ video?: {
2808
+ alpha?: RenderSceneAlpha | null;
2809
+ interlaced?: RenderSceneInterlaced | null;
2810
+ };
2811
+ proxy?: string | null;
2812
+ proxyManifest?: string | null;
2813
+ proxyFile?: string | null;
2814
+ manifest?: string | null;
2689
2815
  } | null;
2690
2816
  lang?: string;
2691
2817
  subtitle?: string;
2692
- subtitleTracks?: {
2693
- [trackId: string]: {
2694
- style?: string | null;
2695
- styleOverrides?: SubtitleStyle;
2696
- };
2697
- };
2818
+ graphics?: string;
2819
+ subtitleTracks?: RenderSceneSubtitleTracks;
2698
2820
  video?: {
2699
- crop?: {
2700
- x?: number;
2701
- y?: number;
2702
- width?: number;
2703
- height?: number;
2704
- };
2821
+ filters?: RenderSceneFilters;
2822
+ crop?: RenderSceneCrop;
2823
+ orientation?: number;
2824
+ /** @deprecated Use input.video.interlaced */
2825
+ interlaced?: RenderSceneInterlaced | null;
2826
+ /** @deprecated Use input.video.alpha */
2827
+ alpha?: RenderSceneAlpha | null;
2828
+ };
2829
+ audio?: {
2830
+ pan?: number[][];
2705
2831
  };
2706
2832
  start?: number;
2707
2833
  end?: number;
@@ -2709,7 +2835,28 @@ declare interface RenderSceneObject {
2709
2835
  language?: string;
2710
2836
  pan?: number[];
2711
2837
  };
2712
- }
2838
+ /** @deprecated Use video.crop instead */
2839
+ crop?: RenderSceneCrop;
2840
+ /** @deprecated Use video.filters instead */
2841
+ filters?: RenderSceneFilters;
2842
+ /** @deprecated Use video.orientation instead */
2843
+ orientation?: number;
2844
+ /** @deprecated Use video.orientation instead */
2845
+ rotate?: number;
2846
+ /** @deprecated Use input.video.interlaced instead */
2847
+ interlaced?: RenderSceneInterlaced | null;
2848
+ /** @deprecated Use input.video.alpha instead */
2849
+ alpha?: RenderSceneAlpha | null;
2850
+ }
2851
+
2852
+ declare interface RenderSceneSubtitleTrack {
2853
+ style?: string | null;
2854
+ styleOverrides?: SubtitleStyle;
2855
+ }
2856
+
2857
+ declare type RenderSceneSubtitleTracks = {
2858
+ [trackId: string]: RenderSceneSubtitleTrack;
2859
+ };
2713
2860
 
2714
2861
  /**
2715
2862
  * 0 = Monthly
@@ -2764,7 +2911,29 @@ declare interface RpcPermission {
2764
2911
  tags?: undefined;
2765
2912
  }
2766
2913
 
2767
- declare interface SchemaProperty extends PanelProperty {
2914
+ declare interface SchemaDomainPanelRecord {
2915
+ title?: string;
2916
+ /**
2917
+ * - If an array: interpreted as a list of supported asset types
2918
+ * - If a string: interpreted as the ID of a search which contains supported assets
2919
+ */
2920
+ supports?: string[] | string;
2921
+ domain?: string;
2922
+ priority?: number;
2923
+ properties?: {
2924
+ [key: string]: SchemaProperty;
2925
+ };
2926
+ layout?: {
2927
+ panel?: WidgetLayout;
2928
+ editor?: WidgetLayout;
2929
+ };
2930
+ }
2931
+
2932
+ declare interface SchemaDomainRecords {
2933
+ ":schema": SchemaDomainPanelRecord;
2934
+ }
2935
+
2936
+ declare interface SchemaProperty<Value = unknown> extends BaseSchemaProperty<Value> {
2768
2937
  recordName?: Nxtpression<string, {
2769
2938
  id: string;
2770
2939
  }>;
@@ -2772,8 +2941,8 @@ declare interface SchemaProperty extends PanelProperty {
2772
2941
  id: string;
2773
2942
  value: unknown;
2774
2943
  }>;
2775
- default?: unknown;
2776
- const?: unknown;
2944
+ default?: Value;
2945
+ const?: Value;
2777
2946
  }
2778
2947
 
2779
2948
  /**
@@ -2993,6 +3162,18 @@ declare interface Settings {
2993
3162
  overrideUserContact?: boolean;
2994
3163
  overrideUserLogin?: boolean;
2995
3164
  };
3165
+ graphics?: {
3166
+ width?: number;
3167
+ height?: number;
3168
+ };
3169
+ googleWhitelist?: Array<{
3170
+ domain?: string;
3171
+ }>;
3172
+ googleUserRoles?: string[];
3173
+ azureWhitelist?: Array<{
3174
+ domain?: string;
3175
+ }>;
3176
+ azureUserRoles?: string[];
2996
3177
  module?: {
2997
3178
  editor?: string;
2998
3179
  tabs?: ModuleTabs;
@@ -3014,10 +3195,10 @@ declare interface Settings {
3014
3195
  map?: {
3015
3196
  clustering?: boolean;
3016
3197
  zoom?: number;
3017
- center?: {
3018
- lat?: number;
3019
- lon?: number;
3020
- };
3198
+ center?: [
3199
+ number,
3200
+ number
3201
+ ];
3021
3202
  };
3022
3203
  createMenu?: {
3023
3204
  sortOrder?: string[];
@@ -3102,44 +3283,20 @@ declare interface Settings {
3102
3283
  countFloatedDuration?: boolean;
3103
3284
  };
3104
3285
  history?: boolean;
3105
- keymap?: {
3106
- display?: {
3107
- [actionKey: string]: KeymapSetting;
3108
- };
3109
- browser?: {
3110
- [actionKey: string]: KeymapSetting;
3111
- };
3112
- gallery?: {
3113
- [actionKey: string]: KeymapSetting;
3114
- };
3115
- global?: {
3116
- [actionKey: string]: KeymapSetting;
3117
- };
3118
- player?: {
3119
- [actionKey: string]: KeymapSetting;
3120
- };
3121
- script?: {
3122
- [actionKey: string]: KeymapSetting;
3123
- };
3124
- codeEditor?: {
3125
- [actionKey: string]: KeymapSetting;
3126
- };
3127
- bookmarks?: {
3128
- [actionKey: string]: KeymapSetting;
3129
- };
3130
- edit?: {
3131
- [actionKey: string]: KeymapSetting;
3132
- };
3133
- rundown?: {
3134
- [actionKey: string]: KeymapSetting;
3135
- };
3136
- segment?: {
3137
- [actionKey: string]: KeymapSetting;
3138
- };
3139
- };
3286
+ keymap?: SettingsKeymap;
3140
3287
  media?: {
3288
+ volume?: number;
3289
+ muted?: boolean;
3290
+ graphics?: boolean;
3291
+ waveform?: boolean;
3141
3292
  defaultFrameRate?: number;
3293
+ dropFrame?: boolean;
3142
3294
  placeholder?: string;
3295
+ warnSubclipDuration?: number;
3296
+ displayAspectRatioPresets?: Array<{
3297
+ label?: string;
3298
+ value?: string;
3299
+ }>;
3143
3300
  guide?: {
3144
3301
  mask?: boolean;
3145
3302
  actionSafe?: boolean;
@@ -3286,7 +3443,23 @@ declare interface Settings {
3286
3443
  }>;
3287
3444
  plugins?: {
3288
3445
  adobe?: {
3446
+ videoBin?: string;
3447
+ imageBin?: string;
3448
+ audioBin?: string;
3449
+ timelineBin?: string;
3450
+ clipBin?: string;
3451
+ downloadPath?: string;
3452
+ renderPath?: string;
3453
+ renderPresetPath?: string;
3454
+ videoRenderPreset?: string;
3455
+ imageRenderPreset?: string;
3456
+ audioRenderPreset?: string;
3457
+ forceRender?: boolean;
3289
3458
  useProxies?: boolean;
3459
+ deleteIntermediateFiles?: boolean;
3460
+ bodymovin?: {
3461
+ template?: string;
3462
+ };
3290
3463
  };
3291
3464
  rive?: {
3292
3465
  template?: string;
@@ -3296,6 +3469,7 @@ declare interface Settings {
3296
3469
  debug?: boolean;
3297
3470
  featurePreview?: {
3298
3471
  collections?: boolean;
3472
+ aiMetadata?: boolean;
3299
3473
  semanticSearch?: boolean;
3300
3474
  ameRemoteRendering?: boolean;
3301
3475
  };
@@ -3317,8 +3491,11 @@ declare interface Settings {
3317
3491
  hideInAssetMenu?: boolean;
3318
3492
  assetRoute?: boolean;
3319
3493
  devWarnings?: boolean;
3494
+ downloadFiles?: boolean;
3495
+ supportPortal?: boolean;
3320
3496
  multiplexWebSockets?: boolean;
3321
3497
  systemHealth?: boolean;
3498
+ systemHealthIgnore?: boolean;
3322
3499
  };
3323
3500
  notifications?: {
3324
3501
  events?: {
@@ -3358,6 +3535,14 @@ declare interface Settings {
3358
3535
  shotbox?: {
3359
3536
  layout?: string;
3360
3537
  };
3538
+ performance?: {
3539
+ /** List of message identifiers to ignore in overall health aggregation (format: "serviceName:messageText") */
3540
+ ignoredMessages?: string[];
3541
+ };
3542
+ app?: {
3543
+ enableUpdate?: boolean;
3544
+ autoUpdate?: boolean;
3545
+ };
3361
3546
  }
3362
3547
 
3363
3548
  declare interface SettingsDomainRecords {
@@ -3365,6 +3550,20 @@ declare interface SettingsDomainRecords {
3365
3550
  ":settings.node": SettingsNodeRecord;
3366
3551
  }
3367
3552
 
3553
+ declare type SettingsKeymap = Record<string, SettingsKeymapScope>;
3554
+
3555
+ declare interface SettingsKeymapEntry {
3556
+ title?: string;
3557
+ sequence?: string | (string | [
3558
+ string,
3559
+ unknown
3560
+ ])[] | null | undefined;
3561
+ schema?: Record<string, any>;
3562
+ stopCallback?: boolean;
3563
+ }
3564
+
3565
+ declare type SettingsKeymapScope = Record<string, SettingsKeymapEntry>;
3566
+
3368
3567
  declare type SettingsNodeRecord = Record<string, {
3369
3568
  collapsed: boolean;
3370
3569
  hidden: boolean;
@@ -3506,6 +3705,91 @@ declare interface StoryboardDomainRecords {
3506
3705
  ":storyboard.ancestors?": StoryboardAncestorsRecord;
3507
3706
  }
3508
3707
 
3708
+ declare interface StreamDomainIngestRecord {
3709
+ server?: string;
3710
+ enabled?: boolean;
3711
+ input?: {
3712
+ raw_format?: string;
3713
+ video_format?: string;
3714
+ };
3715
+ encoding?: {
3716
+ [preset: string]: Record<string, unknown>;
3717
+ };
3718
+ record?: {
3719
+ hls_time?: number;
3720
+ hls_list_size?: number;
3721
+ mainPreset?: string | {
3722
+ video: string;
3723
+ audio: string;
3724
+ };
3725
+ proxyPreset?: string | {
3726
+ video: string;
3727
+ audio: string;
3728
+ };
3729
+ main?: Record<string, unknown>;
3730
+ proxy?: Record<string, unknown>;
3731
+ };
3732
+ stream?: {
3733
+ mainPreset?: {
3734
+ video: string;
3735
+ audio: string;
3736
+ };
3737
+ proxyPreset?: {
3738
+ video: string;
3739
+ audio: string;
3740
+ };
3741
+ main?: Record<string, unknown>;
3742
+ proxy?: Record<string, unknown>;
3743
+ };
3744
+ subtitle?: {
3745
+ driver?: string;
3746
+ template?: string;
3747
+ };
3748
+ video?: string;
3749
+ audio?: string;
3750
+ channels?: number;
3751
+ audioDelay?: number;
3752
+ interlaced?: boolean;
3753
+ }
3754
+
3755
+ declare interface StreamDomainIngestStatsRecord {
3756
+ status?: "starting" | "recording" | "streaming" | "stopping" | "stopped" | "restarting" | "stalled" | "deleted" | "exited" | "not configured" | "initializing" | "error";
3757
+ server?: string;
3758
+ hostname?: string;
3759
+ port?: number;
3760
+ error?: string;
3761
+ }
3762
+
3763
+ declare interface StreamDomainRecord {
3764
+ input?: "webcam" | "screen" | "url" | "push" | `ingest:${string}` | "srt-listener" | "srt-caller";
3765
+ url?: string;
3766
+ enabled?: boolean;
3767
+ endpoints?: {
3768
+ enabled?: boolean;
3769
+ url?: string;
3770
+ asset?: string;
3771
+ }[];
3772
+ }
3773
+
3774
+ declare interface StreamDomainRecords {
3775
+ ":stream": StreamDomainRecord;
3776
+ ":stream.stats?": StreamDomainStatsRecord;
3777
+ ":stream.ingest": StreamDomainIngestRecord;
3778
+ ":stream.ingest.stats?": StreamDomainIngestStatsRecord;
3779
+ }
3780
+
3781
+ declare interface StreamDomainStatsRecord {
3782
+ status?: "stopped" | "broadcasting" | "error";
3783
+ proxyStatus?: "stopped" | "broadcasting" | "error";
3784
+ rtmpUrl?: string;
3785
+ rtmpPublishUrl?: string;
3786
+ endpoints?: {
3787
+ rtmpUrl?: string;
3788
+ status?: "broadcasting" | "failed" | "created" | "stopped" | "finished";
3789
+ }[];
3790
+ error?: string;
3791
+ }
3792
+
3509
3793
  /** OBSERVABLE INTERFACES */
3510
3794
  declare interface Subscribable<T> {
3511
3795
  subscribe(observer: Partial<Observer<T>>): Unsubscribable;
@@ -3878,7 +4162,9 @@ declare interface TemplateProperty {
3878
4162
  }
3879
4163
 
3880
4164
  declare interface TemplateRecord {
4165
+ source?: string;
3881
4166
  controller?: string;
4167
+ type?: string;
3882
4168
  mixin?: string[];
3883
4169
  properties?: Record<string, TemplateProperty>;
3884
4170
  }
@@ -4181,12 +4467,26 @@ declare interface UserNotificationUnassigned extends UserNotificationCommon {
4181
4467
  };
4182
4468
  }
4183
4469
 
4184
- declare interface WidgetItem {
4185
- type: WidgetType;
4470
+ declare type WidgetLayout = string | WidgetLayoutDivider | WidgetLayoutItem | WidgetLayout[];
4471
+
4472
+ declare interface WidgetLayoutDivider {
4473
+ type: "divider";
4474
+ title?: string;
4475
+ }
4476
+
4477
+ declare interface WidgetLayoutItem {
4478
+ property: string;
4479
+ width?: string | number;
4480
+ widget?: WidgetType | WidgetOptions;
4481
+ }
4482
+
4483
+ declare interface WidgetOptions {
4484
+ type?: WidgetType;
4186
4485
  readOnly?: boolean;
4486
+ [key: string]: unknown;
4187
4487
  }
4188
4488
 
4189
- declare type WidgetType = "default" | "assetTypes" | "assetTags" | "geopoint" | "poster" | "textarea" | "tags";
4489
+ declare type WidgetType = string;
4190
4490
 
4191
4491
  /**
4192
4492
  * A base64 encoded string representing a complete Yjs document state.