@nxtedition/types 23.1.2 → 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 (39) 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 +61 -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 +409 -129
  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 +4 -0
  18. package/dist/records/domains/panel.d.ts +7 -19
  19. package/dist/records/domains/publish/file-legacy.d.ts +1 -1
  20. package/dist/records/domains/render.d.ts +54 -3
  21. package/dist/records/domains/schema.d.ts +21 -0
  22. package/dist/records/domains/schema.js +1 -0
  23. package/dist/records/domains/search.d.ts +1 -1
  24. package/dist/records/domains/stream.d.ts +80 -0
  25. package/dist/records/domains/stream.js +1 -0
  26. package/dist/records/domains/template.d.ts +2 -0
  27. package/dist/records/exact/asset.d.ts +17 -7
  28. package/dist/records/index.d.ts +1 -1
  29. package/dist/records/utils.d.ts +5 -1
  30. package/dist/records/validate/assert-guard.js +8967 -5235
  31. package/dist/records/validate/assert.js +8924 -5185
  32. package/dist/records/validate/is.js +153 -104
  33. package/dist/records/validate/schemas.js +4983 -1786
  34. package/dist/records/validate/stringify.js +748 -163
  35. package/dist/records/validate/utils.d.ts +1 -1
  36. package/dist/records/validate/utils.js +2 -2
  37. package/dist/records/validate/validate-equals.js +12609 -7864
  38. package/dist/records/validate/validate.js +8193 -5081
  39. 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;
@@ -1114,14 +1167,14 @@ declare interface FolderItemsDomainRecord {
1114
1167
  value: string[];
1115
1168
  }
1116
1169
 
1117
- declare interface FontFace_2 {
1170
+ declare interface FontFace {
1118
1171
  name: string;
1119
1172
  family: string;
1120
1173
  asset: string;
1121
1174
  url: string;
1122
1175
  weight: number;
1123
1176
  style: "normal" | "italic";
1124
- ranges: Range_2[];
1177
+ ranges: Range[];
1125
1178
  }
1126
1179
 
1127
1180
  declare interface FormattedTextNodeContent {
@@ -1457,7 +1510,7 @@ declare type InternalIsUnion<T, U = T> =
1457
1510
  @see EmptyObject
1458
1511
  @category Object
1459
1512
  */
1460
- declare type IsEmptyObject<T> = T extends EmptyObject ? true : false;
1513
+ declare type IsEmptyObject<T> = T extends EmptyObject_2 ? true : false;
1461
1514
 
1462
1515
  /**
1463
1516
  Returns a boolean for whether the given type is `never`.
@@ -1534,13 +1587,6 @@ declare type KeyedProvidedDomainRecords = {
1534
1587
  [Domain in ProvidedDomainKeys as `${string}${Domain}${string}`]: GettablePossibleEmpty<DomainRecords[Domain]>;
1535
1588
  };
1536
1589
 
1537
- declare interface KeymapSetting {
1538
- title?: string;
1539
- sequence?: string;
1540
- }
1541
-
1542
- declare type LayoutWidget = WidgetType | WidgetItem;
1543
-
1544
1590
  declare interface LinkNodeContent {
1545
1591
  type: "link" | "autolink";
1546
1592
  children: FormattedTextNodeContent[];
@@ -1623,6 +1669,11 @@ declare interface MediaDomainRecords {
1623
1669
  ":media.probe?": MediaProbeRecord;
1624
1670
  ":media.updateSubtitles?": MediaDomainUpdateSubtitlesRecord;
1625
1671
  ":media.updateGraphics?": MediaDomainUpdateGraphicsRecord;
1672
+ ":media.revisions": MediaDomainRevisionsRecord;
1673
+ }
1674
+
1675
+ declare interface MediaDomainRevisionsRecord {
1676
+ [revisionId: string]: RenderSceneObject;
1626
1677
  }
1627
1678
 
1628
1679
  declare interface MediaDomainUpdateGraphicsRecord {
@@ -1638,8 +1689,8 @@ declare interface MediaFontRecord {
1638
1689
  }
1639
1690
 
1640
1691
  declare interface MediaFonts {
1641
- fontFaces?: FontFace_2[];
1642
- fontFamilyNames?: Array<FontFace_2["family"]>;
1692
+ fontFaces?: FontFace[];
1693
+ fontFamilyNames?: Array<FontFace["family"]>;
1643
1694
  }
1644
1695
 
1645
1696
  declare interface MediaProbeRecord {
@@ -2229,6 +2280,10 @@ declare interface OperatorFunction<T, R> extends UnaryFunction<Observable<T>, Ob
2229
2280
 
2230
2281
  declare interface PanelDomainPanelRecord {
2231
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
+ */
2232
2287
  supports?: string[] | string;
2233
2288
  priority?: number;
2234
2289
  editorPriority?: number;
@@ -2236,8 +2291,8 @@ declare interface PanelDomainPanelRecord {
2236
2291
  [key: string]: PanelProperty;
2237
2292
  };
2238
2293
  layout?: {
2239
- panel?: PanelLayout;
2240
- editor?: PanelLayout;
2294
+ panel?: WidgetLayout;
2295
+ editor?: WidgetLayout;
2241
2296
  };
2242
2297
  filter?: Nxtpression;
2243
2298
  expand?: Nxtpression;
@@ -2247,47 +2302,7 @@ declare interface PanelDomainRecords {
2247
2302
  ":panel": PanelDomainPanelRecord;
2248
2303
  }
2249
2304
 
2250
- declare type PanelLayout = string | PanelLayoutDivider | PanelLayoutItem | PanelLayout[];
2251
-
2252
- declare interface PanelLayoutDivider {
2253
- type: "divider";
2254
- title?: string;
2255
- }
2256
-
2257
- declare interface PanelLayoutItem {
2258
- property: string;
2259
- width?: string | number;
2260
- widget?: LayoutWidget;
2261
- }
2262
-
2263
- declare interface PanelProperty<Value = unknown> {
2264
- /** Specifying what type of data will be entered into the field. */
2265
- type: "array" | "asset" | "boolean" | "datetime" | "number" | "string" | "object" | "rpc";
2266
- /** User-friendly title of the property. This will be used as the field's label in the UI. */
2267
- title?: string;
2268
- description?: string;
2269
- domain?: string;
2270
- path?: string;
2271
- computed?: Nxtpression<Value>;
2272
- /** An object specifying where to index the data. Adding this will effectively make the data searchable. */
2273
- index?: {
2274
- /** A string specifying the user-friendly title of the search property. This is what users will see when creating search filters and bookmarks. */
2275
- label: string;
2276
- /** 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 */
2277
- path: string;
2278
- };
2279
- /** If present, indicates that the user must specify a value for the asset to be treated as valid. */
2280
- required?: boolean;
2281
- oneOf?: Array<{
2282
- const?: Value;
2283
- title?: string;
2284
- }>;
2285
- anyOf?: Array<{
2286
- const?: Value;
2287
- title?: string;
2288
- }>;
2289
- enum?: Value[];
2290
- }
2305
+ declare type PanelProperty<Value = unknown> = BaseSchemaProperty<Value>;
2291
2306
 
2292
2307
  declare interface ParagraphNodeContent extends ElementNodeContent {
2293
2308
  type: "paragraph";
@@ -2507,7 +2522,7 @@ declare interface QuoteNodeContent extends ElementNodeContent {
2507
2522
  type: "quote";
2508
2523
  }
2509
2524
 
2510
- declare type Range_2 = [
2525
+ declare type Range = [
2511
2526
  number,
2512
2527
  number
2513
2528
  ];
@@ -2574,10 +2589,60 @@ declare interface RenderDomainRecords {
2574
2589
  }
2575
2590
 
2576
2591
  declare interface RenderDomainResultRecord {
2577
- [key: string]: unknown;
2592
+ id?: string;
2578
2593
  url?: string;
2594
+ files?: string[];
2595
+ refs?: Array<{
2596
+ file?: string;
2597
+ offset?: number;
2598
+ start?: number | null;
2599
+ end?: number | null;
2600
+ }>;
2579
2601
  result?: unknown;
2580
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;
2581
2646
  }
2582
2647
 
2583
2648
  declare interface RenderDomainSchedulersRecord {
@@ -2640,13 +2705,14 @@ declare interface RenderDomainStatsRecord {
2640
2705
  netTransferTotal?: number | null;
2641
2706
  cpu?: number | null;
2642
2707
  memory?: number | null;
2643
- activeCount: number | null;
2644
- totalCount: number | null;
2708
+ activeCount?: number | null;
2709
+ totalCount?: number | null;
2645
2710
  gpuStat?: RenderDomainGpuStats | null;
2646
2711
  cpuStat?: RenderDomainCpuStats | null;
2647
2712
  netStat?: RenderDomainNetStats | null;
2648
2713
  limits?: unknown;
2649
2714
  taskset?: string;
2715
+ end?: number | null;
2650
2716
  }
2651
2717
 
2652
2718
  declare type RenderPreset = RenderPresetObject | string;
@@ -2695,28 +2761,73 @@ declare interface RenderQuery {
2695
2761
 
2696
2762
  declare type RenderScene = (RenderSceneObject | string) | (RenderSceneObject | string)[];
2697
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
+
2698
2801
  declare interface RenderSceneObject {
2699
2802
  id?: string;
2700
2803
  preset?: string;
2701
2804
  input?: {
2702
2805
  type?: string;
2703
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;
2704
2815
  } | null;
2705
2816
  lang?: string;
2706
2817
  subtitle?: string;
2707
- subtitleTracks?: {
2708
- [trackId: string]: {
2709
- style?: string | null;
2710
- styleOverrides?: SubtitleStyle;
2711
- };
2712
- };
2818
+ graphics?: string;
2819
+ subtitleTracks?: RenderSceneSubtitleTracks;
2713
2820
  video?: {
2714
- crop?: {
2715
- x?: number;
2716
- y?: number;
2717
- width?: number;
2718
- height?: number;
2719
- };
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[][];
2720
2831
  };
2721
2832
  start?: number;
2722
2833
  end?: number;
@@ -2724,7 +2835,28 @@ declare interface RenderSceneObject {
2724
2835
  language?: string;
2725
2836
  pan?: number[];
2726
2837
  };
2727
- }
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
+ };
2728
2860
 
2729
2861
  /**
2730
2862
  * 0 = Monthly
@@ -2779,7 +2911,29 @@ declare interface RpcPermission {
2779
2911
  tags?: undefined;
2780
2912
  }
2781
2913
 
2782
- 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> {
2783
2937
  recordName?: Nxtpression<string, {
2784
2938
  id: string;
2785
2939
  }>;
@@ -2787,8 +2941,8 @@ declare interface SchemaProperty extends PanelProperty {
2787
2941
  id: string;
2788
2942
  value: unknown;
2789
2943
  }>;
2790
- default?: unknown;
2791
- const?: unknown;
2944
+ default?: Value;
2945
+ const?: Value;
2792
2946
  }
2793
2947
 
2794
2948
  /**
@@ -3008,6 +3162,18 @@ declare interface Settings {
3008
3162
  overrideUserContact?: boolean;
3009
3163
  overrideUserLogin?: boolean;
3010
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[];
3011
3177
  module?: {
3012
3178
  editor?: string;
3013
3179
  tabs?: ModuleTabs;
@@ -3029,10 +3195,10 @@ declare interface Settings {
3029
3195
  map?: {
3030
3196
  clustering?: boolean;
3031
3197
  zoom?: number;
3032
- center?: {
3033
- lat?: number;
3034
- lon?: number;
3035
- };
3198
+ center?: [
3199
+ number,
3200
+ number
3201
+ ];
3036
3202
  };
3037
3203
  createMenu?: {
3038
3204
  sortOrder?: string[];
@@ -3117,44 +3283,20 @@ declare interface Settings {
3117
3283
  countFloatedDuration?: boolean;
3118
3284
  };
3119
3285
  history?: boolean;
3120
- keymap?: {
3121
- display?: {
3122
- [actionKey: string]: KeymapSetting;
3123
- };
3124
- browser?: {
3125
- [actionKey: string]: KeymapSetting;
3126
- };
3127
- gallery?: {
3128
- [actionKey: string]: KeymapSetting;
3129
- };
3130
- global?: {
3131
- [actionKey: string]: KeymapSetting;
3132
- };
3133
- player?: {
3134
- [actionKey: string]: KeymapSetting;
3135
- };
3136
- script?: {
3137
- [actionKey: string]: KeymapSetting;
3138
- };
3139
- codeEditor?: {
3140
- [actionKey: string]: KeymapSetting;
3141
- };
3142
- bookmarks?: {
3143
- [actionKey: string]: KeymapSetting;
3144
- };
3145
- edit?: {
3146
- [actionKey: string]: KeymapSetting;
3147
- };
3148
- rundown?: {
3149
- [actionKey: string]: KeymapSetting;
3150
- };
3151
- segment?: {
3152
- [actionKey: string]: KeymapSetting;
3153
- };
3154
- };
3286
+ keymap?: SettingsKeymap;
3155
3287
  media?: {
3288
+ volume?: number;
3289
+ muted?: boolean;
3290
+ graphics?: boolean;
3291
+ waveform?: boolean;
3156
3292
  defaultFrameRate?: number;
3293
+ dropFrame?: boolean;
3157
3294
  placeholder?: string;
3295
+ warnSubclipDuration?: number;
3296
+ displayAspectRatioPresets?: Array<{
3297
+ label?: string;
3298
+ value?: string;
3299
+ }>;
3158
3300
  guide?: {
3159
3301
  mask?: boolean;
3160
3302
  actionSafe?: boolean;
@@ -3301,7 +3443,23 @@ declare interface Settings {
3301
3443
  }>;
3302
3444
  plugins?: {
3303
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;
3304
3458
  useProxies?: boolean;
3459
+ deleteIntermediateFiles?: boolean;
3460
+ bodymovin?: {
3461
+ template?: string;
3462
+ };
3305
3463
  };
3306
3464
  rive?: {
3307
3465
  template?: string;
@@ -3311,6 +3469,7 @@ declare interface Settings {
3311
3469
  debug?: boolean;
3312
3470
  featurePreview?: {
3313
3471
  collections?: boolean;
3472
+ aiMetadata?: boolean;
3314
3473
  semanticSearch?: boolean;
3315
3474
  ameRemoteRendering?: boolean;
3316
3475
  };
@@ -3332,6 +3491,8 @@ declare interface Settings {
3332
3491
  hideInAssetMenu?: boolean;
3333
3492
  assetRoute?: boolean;
3334
3493
  devWarnings?: boolean;
3494
+ downloadFiles?: boolean;
3495
+ supportPortal?: boolean;
3335
3496
  multiplexWebSockets?: boolean;
3336
3497
  systemHealth?: boolean;
3337
3498
  systemHealthIgnore?: boolean;
@@ -3378,6 +3539,10 @@ declare interface Settings {
3378
3539
  /** List of message identifiers to ignore in overall health aggregation (format: "serviceName:messageText") */
3379
3540
  ignoredMessages?: string[];
3380
3541
  };
3542
+ app?: {
3543
+ enableUpdate?: boolean;
3544
+ autoUpdate?: boolean;
3545
+ };
3381
3546
  }
3382
3547
 
3383
3548
  declare interface SettingsDomainRecords {
@@ -3385,6 +3550,20 @@ declare interface SettingsDomainRecords {
3385
3550
  ":settings.node": SettingsNodeRecord;
3386
3551
  }
3387
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
+
3388
3567
  declare type SettingsNodeRecord = Record<string, {
3389
3568
  collapsed: boolean;
3390
3569
  hidden: boolean;
@@ -3526,6 +3705,91 @@ declare interface StoryboardDomainRecords {
3526
3705
  ":storyboard.ancestors?": StoryboardAncestorsRecord;
3527
3706
  }
3528
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
+
3529
3793
  /** OBSERVABLE INTERFACES */
3530
3794
  declare interface Subscribable<T> {
3531
3795
  subscribe(observer: Partial<Observer<T>>): Unsubscribable;
@@ -3898,7 +4162,9 @@ declare interface TemplateProperty {
3898
4162
  }
3899
4163
 
3900
4164
  declare interface TemplateRecord {
4165
+ source?: string;
3901
4166
  controller?: string;
4167
+ type?: string;
3902
4168
  mixin?: string[];
3903
4169
  properties?: Record<string, TemplateProperty>;
3904
4170
  }
@@ -4201,12 +4467,26 @@ declare interface UserNotificationUnassigned extends UserNotificationCommon {
4201
4467
  };
4202
4468
  }
4203
4469
 
4204
- declare interface WidgetItem {
4205
- 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;
4206
4485
  readOnly?: boolean;
4486
+ [key: string]: unknown;
4207
4487
  }
4208
4488
 
4209
- declare type WidgetType = "default" | "assetTypes" | "assetTags" | "geopoint" | "poster" | "textarea" | "tags";
4489
+ declare type WidgetType = string;
4210
4490
 
4211
4491
  /**
4212
4492
  * A base64 encoded string representing a complete Yjs document state.