@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
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,6 +338,8 @@ 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;
338
345
  systemHealthIgnore?: boolean;
@@ -379,6 +386,10 @@ export interface Settings {
379
386
  /** List of message identifiers to ignore in overall health aggregation (format: "serviceName:messageText") */
380
387
  ignoredMessages?: string[];
381
388
  };
389
+ app?: {
390
+ enableUpdate?: boolean;
391
+ autoUpdate?: boolean;
392
+ };
382
393
  }
383
394
  export type SettingsPaths = Paths<Settings>;
384
395
  interface ModuleTabs {
@@ -393,10 +404,19 @@ interface ModuleTabsSettingsValue {
393
404
  interface SettingsPanelStoreTab extends ModuleTabsSettingsValue {
394
405
  activeSectionIndex?: number;
395
406
  }
396
- interface KeymapSetting {
407
+ export type SettingsKeymap = Record<string, SettingsKeymapScope>;
408
+ export interface SettingsKeymapEntry {
397
409
  title?: string;
398
- sequence?: string;
410
+ sequence?: string | (string | [
411
+ string,
412
+ unknown
413
+ ])[] | null | undefined;
414
+ schema?: Record<string, any>;
415
+ stopCallback?: boolean;
399
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;
400
420
  export interface AudioMappingPreset {
401
421
  id: string;
402
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 {};