@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
package/dist/app.d.ts CHANGED
@@ -14,7 +14,13 @@ export interface ElectronHubApi {
14
14
  triggerUpdate: (latestVersion: string) => void;
15
15
  controlDownloadItem: (id: string, action: "pause" | "resume" | "cancel") => void;
16
16
  openInApp: (...args: unknown[]) => void;
17
- installDavinciPlugin: (url: string) => Promise<void>;
17
+ installDavinciPlugin: (url: string) => Promise<{
18
+ davinciPath: string;
19
+ pluginsPath: string;
20
+ zipSize: number;
21
+ } | {
22
+ message: string;
23
+ }>;
18
24
  downloadFile: (options: DownloadFileOptions) => void;
19
25
  showItemInFolder: (fullPath: string) => void;
20
26
  openPath: (path: string) => void;
@@ -22,6 +22,7 @@ export * from './subtitle-style.ts';
22
22
  export * from './subtitle.ts';
23
23
  export * from './error.ts';
24
24
  export * from './user-notification.ts';
25
+ export * from './widget.ts';
25
26
  export interface Message {
26
27
  level: number;
27
28
  code: string;
@@ -22,3 +22,4 @@ export * from "./subtitle-style.js";
22
22
  export * from "./subtitle.js";
23
23
  export * from "./error.js";
24
24
  export * from "./user-notification.js";
25
+ export * from "./widget.js";
@@ -1,29 +1,2 @@
1
- import type { Nxtpression } from './nxtpression.ts';
2
- export interface PanelProperty<Value = unknown> {
3
- /** Specifying what type of data will be entered into the field. */
4
- type: "array" | "asset" | "boolean" | "datetime" | "number" | "string" | "object" | "rpc";
5
- /** User-friendly title of the property. This will be used as the field's label in the UI. */
6
- title?: string;
7
- description?: string;
8
- domain?: string;
9
- path?: string;
10
- computed?: Nxtpression<Value>;
11
- /** An object specifying where to index the data. Adding this will effectively make the data searchable. */
12
- index?: {
13
- /** A string specifying the user-friendly title of the search property. This is what users will see when creating search filters and bookmarks. */
14
- label: string;
15
- /** 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 */
16
- path: string;
17
- };
18
- /** If present, indicates that the user must specify a value for the asset to be treated as valid. */
19
- required?: boolean;
20
- oneOf?: Array<{
21
- const?: Value;
22
- title?: string;
23
- }>;
24
- anyOf?: Array<{
25
- const?: Value;
26
- title?: string;
27
- }>;
28
- enum?: Value[];
29
- }
1
+ import type { BaseSchemaProperty } from './schema-property.ts';
2
+ export type PanelProperty<Value = unknown> = BaseSchemaProperty<Value>;
@@ -6,22 +6,30 @@ export interface RenderSceneObject {
6
6
  input?: {
7
7
  type?: string;
8
8
  file?: string | null;
9
+ video?: {
10
+ alpha?: RenderSceneAlpha | null;
11
+ interlaced?: RenderSceneInterlaced | null;
12
+ };
13
+ proxy?: string | null;
14
+ proxyManifest?: string | null;
15
+ proxyFile?: string | null;
16
+ manifest?: string | null;
9
17
  } | null;
10
18
  lang?: string;
11
19
  subtitle?: string;
12
- subtitleTracks?: {
13
- [trackId: string]: {
14
- style?: string | null;
15
- styleOverrides?: SubtitleStyle;
16
- };
17
- };
20
+ graphics?: string;
21
+ subtitleTracks?: RenderSceneSubtitleTracks;
18
22
  video?: {
19
- crop?: {
20
- x?: number;
21
- y?: number;
22
- width?: number;
23
- height?: number;
24
- };
23
+ filters?: RenderSceneFilters;
24
+ crop?: RenderSceneCrop;
25
+ orientation?: number;
26
+ /** @deprecated Use input.video.interlaced */
27
+ interlaced?: RenderSceneInterlaced | null;
28
+ /** @deprecated Use input.video.alpha */
29
+ alpha?: RenderSceneAlpha | null;
30
+ };
31
+ audio?: {
32
+ pan?: number[][];
25
33
  };
26
34
  start?: number;
27
35
  end?: number;
@@ -29,4 +37,56 @@ export interface RenderSceneObject {
29
37
  language?: string;
30
38
  pan?: number[];
31
39
  };
40
+ /** @deprecated Use video.crop instead */
41
+ crop?: RenderSceneCrop;
42
+ /** @deprecated Use video.filters instead */
43
+ filters?: RenderSceneFilters;
44
+ /** @deprecated Use video.orientation instead */
45
+ orientation?: number;
46
+ /** @deprecated Use video.orientation instead */
47
+ rotate?: number;
48
+ /** @deprecated Use input.video.interlaced instead */
49
+ interlaced?: RenderSceneInterlaced | null;
50
+ /** @deprecated Use input.video.alpha instead */
51
+ alpha?: RenderSceneAlpha | null;
52
+ }
53
+ export interface RenderSceneCrop {
54
+ x?: number;
55
+ y?: number;
56
+ width?: number;
57
+ height?: number;
58
+ }
59
+ export type RenderSceneInterlaced = false | "tff" | "bff";
60
+ /** true = premultiplied alpha, 'straight' = straight alpha, null/undefined = auto */
61
+ export type RenderSceneAlpha = boolean | "straight";
62
+ export interface RenderSceneFilters {
63
+ eq?: {
64
+ brightness?: number;
65
+ contrast?: number;
66
+ gamma?: number;
67
+ saturation?: number;
68
+ };
69
+ hue?: {
70
+ h?: number;
71
+ s?: number;
72
+ b?: number;
73
+ };
74
+ colorbalance?: {
75
+ rs?: number;
76
+ gs?: number;
77
+ bs?: number;
78
+ rm?: number;
79
+ gm?: number;
80
+ bm?: number;
81
+ rh?: number;
82
+ gh?: number;
83
+ bh?: number;
84
+ };
85
+ }
86
+ export type RenderSceneSubtitleTracks = {
87
+ [trackId: string]: RenderSceneSubtitleTrack;
88
+ };
89
+ export interface RenderSceneSubtitleTrack {
90
+ style?: string | null;
91
+ styleOverrides?: SubtitleStyle;
32
92
  }
@@ -1,5 +1,37 @@
1
- import type { PanelProperty, Nxtpression } from '../';
2
- export interface SchemaProperty extends PanelProperty {
1
+ import type { Nxtpression } from './nxtpression.ts';
2
+ import type { WidgetOptions, WidgetType } from './widget.ts';
3
+ export interface BaseSchemaProperty<Value = unknown> {
4
+ domain?: string;
5
+ path?: string;
6
+ /** Specifying what type of data will be entered into the field. */
7
+ type?: "array" | "asset" | "boolean" | "datetime" | "number" | "string" | "object" | "rpc" | undefined;
8
+ /** User-friendly title of the property. This will be used as the field's label in the UI. */
9
+ title?: string;
10
+ description?: string;
11
+ /** If present, indicates that the user must specify a value for the asset to be treated as valid. */
12
+ required?: boolean;
13
+ oneOf?: Array<BaseSchemaProperty>;
14
+ anyOf?: Array<BaseSchemaProperty>;
15
+ enum?: ReadonlyArray<Value>;
16
+ widget?: WidgetType | WidgetOptions;
17
+ placeholder?: string;
18
+ helpText?: string;
19
+ invalid?: boolean;
20
+ emptyValue?: Value;
21
+ minItems?: number;
22
+ maxItems?: number;
23
+ items?: BaseSchemaProperty<Value>;
24
+ properties?: Record<string, BaseSchemaProperty<unknown>>;
25
+ computed?: Nxtpression<Value>;
26
+ /** An object specifying where to index the data. Adding this will effectively make the data searchable. */
27
+ index?: {
28
+ /** A string specifying the user-friendly title of the search property. This is what users will see when creating search filters and bookmarks. */
29
+ label: string;
30
+ /** 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 */
31
+ path: string;
32
+ };
33
+ }
34
+ export interface SchemaProperty<Value = unknown> extends BaseSchemaProperty<Value> {
3
35
  recordName?: Nxtpression<string, {
4
36
  id: string;
5
37
  }>;
@@ -7,6 +39,6 @@ export interface SchemaProperty extends PanelProperty {
7
39
  id: string;
8
40
  value: unknown;
9
41
  }>;
10
- default?: unknown;
11
- const?: unknown;
42
+ default?: Value;
43
+ const?: Value;
12
44
  }
@@ -9,6 +9,18 @@ export interface Settings {
9
9
  overrideUserContact?: boolean;
10
10
  overrideUserLogin?: boolean;
11
11
  };
12
+ graphics?: {
13
+ width?: number;
14
+ height?: number;
15
+ };
16
+ googleWhitelist?: Array<{
17
+ domain?: string;
18
+ }>;
19
+ googleUserRoles?: string[];
20
+ azureWhitelist?: Array<{
21
+ domain?: string;
22
+ }>;
23
+ azureUserRoles?: string[];
12
24
  module?: {
13
25
  editor?: string;
14
26
  tabs?: ModuleTabs;
@@ -30,10 +42,10 @@ export interface Settings {
30
42
  map?: {
31
43
  clustering?: boolean;
32
44
  zoom?: number;
33
- center?: {
34
- lat?: number;
35
- lon?: number;
36
- };
45
+ center?: [
46
+ number,
47
+ number
48
+ ];
37
49
  };
38
50
  createMenu?: {
39
51
  sortOrder?: string[];
@@ -118,44 +130,20 @@ export interface Settings {
118
130
  countFloatedDuration?: boolean;
119
131
  };
120
132
  history?: boolean;
121
- keymap?: {
122
- display?: {
123
- [actionKey: string]: KeymapSetting;
124
- };
125
- browser?: {
126
- [actionKey: string]: KeymapSetting;
127
- };
128
- gallery?: {
129
- [actionKey: string]: KeymapSetting;
130
- };
131
- global?: {
132
- [actionKey: string]: KeymapSetting;
133
- };
134
- player?: {
135
- [actionKey: string]: KeymapSetting;
136
- };
137
- script?: {
138
- [actionKey: string]: KeymapSetting;
139
- };
140
- codeEditor?: {
141
- [actionKey: string]: KeymapSetting;
142
- };
143
- bookmarks?: {
144
- [actionKey: string]: KeymapSetting;
145
- };
146
- edit?: {
147
- [actionKey: string]: KeymapSetting;
148
- };
149
- rundown?: {
150
- [actionKey: string]: KeymapSetting;
151
- };
152
- segment?: {
153
- [actionKey: string]: KeymapSetting;
154
- };
155
- };
133
+ keymap?: SettingsKeymap;
156
134
  media?: {
135
+ volume?: number;
136
+ muted?: boolean;
137
+ graphics?: boolean;
138
+ waveform?: boolean;
157
139
  defaultFrameRate?: number;
140
+ dropFrame?: boolean;
158
141
  placeholder?: string;
142
+ warnSubclipDuration?: number;
143
+ displayAspectRatioPresets?: Array<{
144
+ label?: string;
145
+ value?: string;
146
+ }>;
159
147
  guide?: {
160
148
  mask?: boolean;
161
149
  actionSafe?: boolean;
@@ -302,7 +290,23 @@ export interface Settings {
302
290
  }>;
303
291
  plugins?: {
304
292
  adobe?: {
293
+ videoBin?: string;
294
+ imageBin?: string;
295
+ audioBin?: string;
296
+ timelineBin?: string;
297
+ clipBin?: string;
298
+ downloadPath?: string;
299
+ renderPath?: string;
300
+ renderPresetPath?: string;
301
+ videoRenderPreset?: string;
302
+ imageRenderPreset?: string;
303
+ audioRenderPreset?: string;
304
+ forceRender?: boolean;
305
305
  useProxies?: boolean;
306
+ deleteIntermediateFiles?: boolean;
307
+ bodymovin?: {
308
+ template?: string;
309
+ };
306
310
  };
307
311
  rive?: {
308
312
  template?: string;
@@ -312,6 +316,7 @@ export interface Settings {
312
316
  debug?: boolean;
313
317
  featurePreview?: {
314
318
  collections?: boolean;
319
+ aiMetadata?: boolean;
315
320
  semanticSearch?: boolean;
316
321
  ameRemoteRendering?: boolean;
317
322
  };
@@ -333,8 +338,11 @@ export interface Settings {
333
338
  hideInAssetMenu?: boolean;
334
339
  assetRoute?: boolean;
335
340
  devWarnings?: boolean;
341
+ downloadFiles?: boolean;
342
+ supportPortal?: boolean;
336
343
  multiplexWebSockets?: boolean;
337
344
  systemHealth?: boolean;
345
+ systemHealthIgnore?: boolean;
338
346
  };
339
347
  notifications?: {
340
348
  events?: {
@@ -374,6 +382,14 @@ export interface Settings {
374
382
  shotbox?: {
375
383
  layout?: string;
376
384
  };
385
+ performance?: {
386
+ /** List of message identifiers to ignore in overall health aggregation (format: "serviceName:messageText") */
387
+ ignoredMessages?: string[];
388
+ };
389
+ app?: {
390
+ enableUpdate?: boolean;
391
+ autoUpdate?: boolean;
392
+ };
377
393
  }
378
394
  export type SettingsPaths = Paths<Settings>;
379
395
  interface ModuleTabs {
@@ -388,10 +404,19 @@ interface ModuleTabsSettingsValue {
388
404
  interface SettingsPanelStoreTab extends ModuleTabsSettingsValue {
389
405
  activeSectionIndex?: number;
390
406
  }
391
- interface KeymapSetting {
407
+ export type SettingsKeymap = Record<string, SettingsKeymapScope>;
408
+ export interface SettingsKeymapEntry {
392
409
  title?: string;
393
- sequence?: string;
410
+ sequence?: string | (string | [
411
+ string,
412
+ unknown
413
+ ])[] | null | undefined;
414
+ schema?: Record<string, any>;
415
+ stopCallback?: boolean;
394
416
  }
417
+ export declare const isSettingsKeymapEntry: (input: unknown) => input is SettingsKeymapEntry;
418
+ export type SettingsKeymapScope = Record<string, SettingsKeymapEntry>;
419
+ export declare const isSettingsKeymapScope: (input: unknown) => input is SettingsKeymapScope;
395
420
  export interface AudioMappingPreset {
396
421
  id: string;
397
422
  title: string;
@@ -1 +1,18 @@
1
- export {};
1
+ import typia from 'typia';
2
+ export const isSettingsKeymapEntry = (() => { const _io0 = input => (undefined === input.title || "string" === typeof input.title) && (null === input.sequence || undefined === input.sequence || "string" === typeof input.sequence || Array.isArray(input.sequence) && input.sequence.every(elem => null !== elem && undefined !== elem && ("string" === typeof elem || Array.isArray(elem) && (elem.length === 2 && "string" === typeof elem[0] && true)))) && (undefined === input.schema || "object" === typeof input.schema && null !== input.schema && false === Array.isArray(input.schema) && _io1(input.schema)) && (undefined === input.stopCallback || "boolean" === typeof input.stopCallback); const _io1 = input => Object.keys(input).every(key => {
3
+ const value = input[key];
4
+ if (undefined === value)
5
+ return true;
6
+ return true;
7
+ }); return input => "object" === typeof input && null !== input && false === Array.isArray(input) && _io0(input); })();
8
+ export const isSettingsKeymapScope = (() => { const _io0 = input => Object.keys(input).every(key => {
9
+ const value = input[key];
10
+ if (undefined === value)
11
+ return true;
12
+ return "object" === typeof value && null !== value && false === Array.isArray(value) && _io1(value);
13
+ }); const _io1 = input => (undefined === input.title || "string" === typeof input.title) && (null === input.sequence || undefined === input.sequence || "string" === typeof input.sequence || Array.isArray(input.sequence) && input.sequence.every(elem => null !== elem && undefined !== elem && ("string" === typeof elem || Array.isArray(elem) && (elem.length === 2 && "string" === typeof elem[0] && true)))) && (undefined === input.schema || "object" === typeof input.schema && null !== input.schema && false === Array.isArray(input.schema) && _io2(input.schema)) && (undefined === input.stopCallback || "boolean" === typeof input.stopCallback); const _io2 = input => Object.keys(input).every(key => {
14
+ const value = input[key];
15
+ if (undefined === value)
16
+ return true;
17
+ return true;
18
+ }); return input => "object" === typeof input && null !== input && false === Array.isArray(input) && _io0(input); })();
@@ -0,0 +1,16 @@
1
+ export type WidgetType = string;
2
+ export interface WidgetOptions {
3
+ type?: WidgetType;
4
+ readOnly?: boolean;
5
+ [key: string]: unknown;
6
+ }
7
+ export type WidgetLayout = string | WidgetLayoutDivider | WidgetLayoutItem | WidgetLayout[];
8
+ export interface WidgetLayoutItem {
9
+ property: string;
10
+ width?: string | number;
11
+ widget?: WidgetType | WidgetOptions;
12
+ }
13
+ export interface WidgetLayoutDivider {
14
+ type: "divider";
15
+ title?: string;
16
+ }
@@ -0,0 +1 @@
1
+ export {};