@nxtedition/types 23.1.2 → 23.1.4

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 (53) hide show
  1. package/dist/app.d.ts +7 -1
  2. package/dist/common/index.d.ts +3 -0
  3. package/dist/common/index.js +3 -0
  4. package/dist/common/json-schema.d.ts +95 -0
  5. package/dist/common/json-schema.js +1 -0
  6. package/dist/common/nxtpression.d.ts +1 -1
  7. package/dist/common/panel-property.d.ts +2 -29
  8. package/dist/common/print.d.ts +30 -0
  9. package/dist/common/print.js +1 -0
  10. package/dist/common/render-scene.d.ts +73 -12
  11. package/dist/common/schema-property.d.ts +36 -4
  12. package/dist/common/settings.d.ts +72 -43
  13. package/dist/common/settings.js +18 -1
  14. package/dist/common/widget.d.ts +16 -0
  15. package/dist/common/widget.js +1 -0
  16. package/dist/nxtpression.d.ts +745 -170
  17. package/dist/records/domains/condition.d.ts +1 -1
  18. package/dist/records/domains/connection/file/smb.d.ts +2 -0
  19. package/dist/records/domains/event.d.ts +10 -3
  20. package/dist/records/domains/gallery.d.ts +8 -0
  21. package/dist/records/domains/gallery.js +1 -0
  22. package/dist/records/domains/index.d.ts +9 -1
  23. package/dist/records/domains/index.js +4 -0
  24. package/dist/records/domains/ingestschedule.d.ts +1 -1
  25. package/dist/records/domains/media.d.ts +4 -0
  26. package/dist/records/domains/panel.d.ts +7 -19
  27. package/dist/records/domains/publish/file-legacy.d.ts +1 -1
  28. package/dist/records/domains/render.d.ts +54 -3
  29. package/dist/records/domains/role.d.ts +8 -0
  30. package/dist/records/domains/schema.d.ts +21 -0
  31. package/dist/records/domains/schema.js +1 -0
  32. package/dist/records/domains/search.d.ts +1 -1
  33. package/dist/records/domains/storage.d.ts +87 -0
  34. package/dist/records/domains/storage.js +1 -0
  35. package/dist/records/domains/stream.d.ts +80 -0
  36. package/dist/records/domains/stream.js +1 -0
  37. package/dist/records/domains/template.d.ts +34 -0
  38. package/dist/records/exact/asset.d.ts +17 -7
  39. package/dist/records/exact/index.d.ts +6 -0
  40. package/dist/records/exact/monitor.d.ts +1 -0
  41. package/dist/records/index.d.ts +1 -1
  42. package/dist/records/utils.d.ts +5 -1
  43. package/dist/records/validate/assert-guard.js +9235 -4387
  44. package/dist/records/validate/assert.js +9359 -4496
  45. package/dist/records/validate/is.js +224 -115
  46. package/dist/records/validate/schemas.d.ts +3 -10
  47. package/dist/records/validate/schemas.js +5652 -1454
  48. package/dist/records/validate/stringify.js +853 -180
  49. package/dist/records/validate/utils.d.ts +1 -1
  50. package/dist/records/validate/utils.js +2 -2
  51. package/dist/records/validate/validate-equals.js +11393 -5018
  52. package/dist/records/validate/validate.js +10257 -6113
  53. 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;
@@ -3,12 +3,14 @@ export * from './block.ts';
3
3
  export * from './clone.ts';
4
4
  export * from './date.ts';
5
5
  export * from './file.ts';
6
+ export * from './json-schema.ts';
6
7
  export * from './location.ts';
7
8
  export * from './nxtpression.ts';
8
9
  export * from './lock.ts';
9
10
  export * from './media.ts';
10
11
  export * from './panel-property.ts';
11
12
  export * from './pipeline.ts';
13
+ export * from './print.ts';
12
14
  export * from './promoted-tag.ts';
13
15
  export * from './render-preset.ts';
14
16
  export * from './render-profile.ts';
@@ -22,6 +24,7 @@ export * from './subtitle-style.ts';
22
24
  export * from './subtitle.ts';
23
25
  export * from './error.ts';
24
26
  export * from './user-notification.ts';
27
+ export * from './widget.ts';
25
28
  export interface Message {
26
29
  level: number;
27
30
  code: string;
@@ -3,12 +3,14 @@ export * from "./block.js";
3
3
  export * from "./clone.js";
4
4
  export * from "./date.js";
5
5
  export * from "./file.js";
6
+ export * from "./json-schema.js";
6
7
  export * from "./location.js";
7
8
  export * from "./nxtpression.js";
8
9
  export * from "./lock.js";
9
10
  export * from "./media.js";
10
11
  export * from "./panel-property.js";
11
12
  export * from "./pipeline.js";
13
+ export * from "./print.js";
12
14
  export * from "./promoted-tag.js";
13
15
  export * from "./render-preset.js";
14
16
  export * from "./render-profile.js";
@@ -22,3 +24,4 @@ export * from "./subtitle-style.js";
22
24
  export * from "./subtitle.js";
23
25
  export * from "./error.js";
24
26
  export * from "./user-notification.js";
27
+ export * from "./widget.js";
@@ -0,0 +1,95 @@
1
+ import type { JsonValue } from 'type-fest';
2
+ declare const __jsonSchemaType: unique symbol;
3
+ export type TypedJsonSchema<T> = JsonSchema & {
4
+ [__jsonSchemaType]?: T;
5
+ };
6
+ export type JsonSchema = JsonSchemaBoolean | JsonSchemaNumber | JsonSchemaInteger | JsonSchemaString | JsonSchemaArray | JsonSchemaTuple | JsonSchemaObject | JsonSchemaReference | JsonSchemaOneOf | JsonSchemaAnyOf | JsonSchemaEnum | JsonSchemaConst | JsonSchemaNull | JsonSchemaUnknown;
7
+ export interface JsonSchemaBase {
8
+ title?: string;
9
+ description?: string;
10
+ /**
11
+ * Normal JSON schemas use either 'definitions' (older versions) or '$defs' (newer versions).
12
+ * However, OpenAPI and Typia instead uses 'components'. Since we use typia to generate JSON schemas,
13
+ * we use 'components' as well.
14
+ *
15
+ * In the case of OpenAPI and Typia the 'components' schemas are supplied outside the actual
16
+ * JSON schema. For better compatibility with other JSON schema tooling, we instead include it
17
+ * inside the JSON schema itself.
18
+ */
19
+ components?: {
20
+ schemas?: Record<string, JsonSchema>;
21
+ };
22
+ }
23
+ export interface JsonSchemaBoolean extends JsonSchemaBase {
24
+ type: "boolean";
25
+ default?: boolean;
26
+ }
27
+ export interface JsonSchemaInteger extends JsonSchemaBase {
28
+ type: "integer";
29
+ default?: number;
30
+ minimum?: number;
31
+ maximum?: number;
32
+ exclusiveMinimum?: number;
33
+ exclusiveMaximum?: number;
34
+ multipleOf?: number;
35
+ }
36
+ export interface JsonSchemaNumber extends JsonSchemaBase {
37
+ type: "number";
38
+ default?: number;
39
+ minimum?: number;
40
+ maximum?: number;
41
+ exclusiveMinimum?: number;
42
+ exclusiveMaximum?: number;
43
+ multipleOf?: number;
44
+ }
45
+ export interface JsonSchemaString extends JsonSchemaBase {
46
+ type: "string";
47
+ default?: string;
48
+ format?: string;
49
+ pattern?: string;
50
+ minLength?: number;
51
+ maxLength?: number;
52
+ }
53
+ export interface JsonSchemaArray extends JsonSchemaBase {
54
+ type: "array";
55
+ items: JsonSchema;
56
+ minItems?: number;
57
+ maxItems?: number;
58
+ uniqueItems?: boolean;
59
+ }
60
+ export interface JsonSchemaTuple extends JsonSchemaBase {
61
+ type: "array";
62
+ prefixItems: JsonSchema[];
63
+ additionalItems?: boolean | JsonSchema;
64
+ minItems?: number;
65
+ maxItems?: number;
66
+ uniqueItems?: boolean;
67
+ }
68
+ export interface JsonSchemaObject extends JsonSchemaBase {
69
+ type: "object";
70
+ properties?: Record<string, JsonSchema>;
71
+ additionalProperties?: boolean | JsonSchema;
72
+ required?: string[];
73
+ }
74
+ export interface JsonSchemaReference extends JsonSchemaBase {
75
+ $ref: string;
76
+ }
77
+ export interface JsonSchemaOneOf extends JsonSchemaBase {
78
+ oneOf: JsonSchema[];
79
+ }
80
+ export interface JsonSchemaAnyOf extends JsonSchemaBase {
81
+ anyOf: JsonSchema[];
82
+ }
83
+ export interface JsonSchemaEnum extends JsonSchemaBase {
84
+ enum: JsonValue[];
85
+ }
86
+ export interface JsonSchemaConst extends JsonSchemaBase {
87
+ const: JsonValue;
88
+ }
89
+ export interface JsonSchemaNull extends JsonSchemaBase {
90
+ type: "null";
91
+ }
92
+ export interface JsonSchemaUnknown extends JsonSchemaBase {
93
+ type?: undefined;
94
+ }
95
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -1,4 +1,4 @@
1
- export type Nxtpression<ReturnValue = unknown, Context extends object = object> = {
1
+ export type Nxtpression<ReturnValue = unknown, Context extends Record<string, unknown> = Record<string, unknown>> = {
2
2
  /**
3
3
  * TS-HACK: this property doesn't really exist on the nxtpression string,
4
4
  * it is only here to make sure the generic Context won't get stripped.
@@ -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>;
@@ -0,0 +1,30 @@
1
+ export type PrintOptions = PrintScriptOptions | PrintRundownOptions;
2
+ export type PageSize = "A5" | "A4" | "A3";
3
+ export type PageOrientation = "landscape" | "portrait";
4
+ export type PrintOptionalScriptNodes = "event" | "event-data" | "comment" | "heading" | "list" | "quote" | "paragraph" | "horizontalrule";
5
+ interface PrintOptionsBase {
6
+ title: string;
7
+ horizontalMargin: number;
8
+ pageSize: PageSize;
9
+ orientation: PageOrientation;
10
+ fontSize: number;
11
+ fontFamily?: string;
12
+ hide: PrintOptionalScriptNodes[];
13
+ }
14
+ export interface PrintScriptOptions extends PrintOptionsBase {
15
+ type: "script";
16
+ }
17
+ export interface PrintRundownOptions extends PrintOptionsBase {
18
+ type: "rundown";
19
+ columns: PrintRundownColumn[];
20
+ rangeStart?: number;
21
+ rangeEnd?: number;
22
+ hide: Exclude<PrintOptionalScriptNodes, "event-data">[];
23
+ }
24
+ export interface PrintRundownColumn {
25
+ key: "id" | "title" | "time" | "duration" | "position" | "accDuration" | "type";
26
+ label: string;
27
+ width: string;
28
+ textAlign: "right" | "left" | "center";
29
+ }
30
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -6,27 +6,88 @@ 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;
28
36
  transcribe?: {
29
37
  language?: string;
30
38
  pan?: number[];
39
+ diarization?: boolean;
31
40
  };
41
+ /** @deprecated Use video.crop instead */
42
+ crop?: RenderSceneCrop;
43
+ /** @deprecated Use video.filters instead */
44
+ filters?: RenderSceneFilters;
45
+ /** @deprecated Use video.orientation instead */
46
+ orientation?: number;
47
+ /** @deprecated Use video.orientation instead */
48
+ rotate?: number;
49
+ /** @deprecated Use input.video.interlaced instead */
50
+ interlaced?: RenderSceneInterlaced | null;
51
+ /** @deprecated Use input.video.alpha instead */
52
+ alpha?: RenderSceneAlpha | null;
53
+ }
54
+ export interface RenderSceneCrop {
55
+ x?: number;
56
+ y?: number;
57
+ width?: number;
58
+ height?: number;
59
+ }
60
+ export type RenderSceneInterlaced = false | "tff" | "bff";
61
+ /** true = premultiplied alpha, 'straight' = straight alpha, null/undefined = auto */
62
+ export type RenderSceneAlpha = boolean | "straight";
63
+ export interface RenderSceneFilters {
64
+ eq?: {
65
+ brightness?: number;
66
+ contrast?: number;
67
+ gamma?: number;
68
+ saturation?: number;
69
+ };
70
+ hue?: {
71
+ h?: number;
72
+ s?: number;
73
+ b?: number;
74
+ };
75
+ colorbalance?: {
76
+ rs?: number;
77
+ gs?: number;
78
+ bs?: number;
79
+ rm?: number;
80
+ gm?: number;
81
+ bm?: number;
82
+ rh?: number;
83
+ gh?: number;
84
+ bh?: number;
85
+ };
86
+ }
87
+ export type RenderSceneSubtitleTracks = {
88
+ [trackId: string]: RenderSceneSubtitleTrack;
89
+ };
90
+ export interface RenderSceneSubtitleTrack {
91
+ style?: string | null;
92
+ styleOverrides?: SubtitleStyle;
32
93
  }
@@ -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
  }
@@ -3,12 +3,25 @@ import type { PipelineSortMode } from './pipeline.ts';
3
3
  import type { PromotedTag } from './promoted-tag.ts';
4
4
  import type { NotificationReason } from './user-notification.ts';
5
5
  import type { SubtitleStyle } from './subtitle-style.ts';
6
+ import type { PrintOptions } from './print.ts';
6
7
  export interface Settings {
7
8
  autoLogoutTime?: number;
8
9
  permission?: {
9
10
  overrideUserContact?: boolean;
10
11
  overrideUserLogin?: boolean;
11
12
  };
13
+ graphics?: {
14
+ width?: number;
15
+ height?: number;
16
+ };
17
+ googleWhitelist?: Array<{
18
+ domain?: string;
19
+ }>;
20
+ googleUserRoles?: string[];
21
+ azureWhitelist?: Array<{
22
+ domain?: string;
23
+ }>;
24
+ azureUserRoles?: string[];
12
25
  module?: {
13
26
  editor?: string;
14
27
  tabs?: ModuleTabs;
@@ -30,10 +43,10 @@ export interface Settings {
30
43
  map?: {
31
44
  clustering?: boolean;
32
45
  zoom?: number;
33
- center?: {
34
- lat?: number;
35
- lon?: number;
36
- };
46
+ center?: [
47
+ number,
48
+ number
49
+ ];
37
50
  };
38
51
  createMenu?: {
39
52
  sortOrder?: string[];
@@ -86,6 +99,7 @@ export interface Settings {
86
99
  sortBy?: "index" | "title";
87
100
  showPreview?: boolean;
88
101
  };
102
+ contentMaxWidth?: number;
89
103
  colorTags?: PromotedTag[];
90
104
  readType?: "characters" | "words" | "wordsPerMinute";
91
105
  readRate?: number;
@@ -118,44 +132,20 @@ export interface Settings {
118
132
  countFloatedDuration?: boolean;
119
133
  };
120
134
  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
- };
135
+ keymap?: SettingsKeymap;
156
136
  media?: {
137
+ volume?: number;
138
+ muted?: boolean;
139
+ graphics?: boolean;
140
+ waveform?: boolean;
157
141
  defaultFrameRate?: number;
142
+ dropFrame?: boolean;
158
143
  placeholder?: string;
144
+ warnSubclipDuration?: number;
145
+ displayAspectRatioPresets?: Array<{
146
+ label?: string;
147
+ value?: string;
148
+ }>;
159
149
  guide?: {
160
150
  mask?: boolean;
161
151
  actionSafe?: boolean;
@@ -295,6 +285,7 @@ export interface Settings {
295
285
  };
296
286
  print?: {
297
287
  fontFamilies?: string[];
288
+ presets?: Array<PrintOptions>;
298
289
  };
299
290
  hiddenPreviews?: Array<{
300
291
  id?: string;
@@ -302,7 +293,27 @@ export interface Settings {
302
293
  }>;
303
294
  plugins?: {
304
295
  adobe?: {
296
+ videoBin?: string;
297
+ imageBin?: string;
298
+ audioBin?: string;
299
+ timelineBin?: string;
300
+ clipBin?: string;
301
+ downloadPath?: string;
302
+ renderPath?: string;
303
+ renderPresetPath?: string;
304
+ renderPresets?: string[];
305
+ videoRenderPreset?: string;
306
+ imageRenderPreset?: string;
307
+ audioRenderPreset?: string;
308
+ forceRender?: boolean;
305
309
  useProxies?: boolean;
310
+ deleteIntermediateFiles?: boolean;
311
+ bodymovin?: {
312
+ template?: string;
313
+ };
314
+ };
315
+ ograf?: {
316
+ template?: string;
306
317
  };
307
318
  rive?: {
308
319
  template?: string;
@@ -312,6 +323,7 @@ export interface Settings {
312
323
  debug?: boolean;
313
324
  featurePreview?: {
314
325
  collections?: boolean;
326
+ aiMetadata?: boolean;
315
327
  semanticSearch?: boolean;
316
328
  ameRemoteRendering?: boolean;
317
329
  };
@@ -333,6 +345,8 @@ export interface Settings {
333
345
  hideInAssetMenu?: boolean;
334
346
  assetRoute?: boolean;
335
347
  devWarnings?: boolean;
348
+ downloadFiles?: boolean;
349
+ supportPortal?: boolean;
336
350
  multiplexWebSockets?: boolean;
337
351
  systemHealth?: boolean;
338
352
  systemHealthIgnore?: boolean;
@@ -376,8 +390,14 @@ export interface Settings {
376
390
  layout?: string;
377
391
  };
378
392
  performance?: {
379
- /** List of message identifiers to ignore in overall health aggregation (format: "serviceName:messageText") */
380
- ignoredMessages?: string[];
393
+ /** List of message identifiers to ignore warnings (format: "serviceName:messageText") */
394
+ ignoredWarnings?: string[];
395
+ /** List of message identifiers to ignore errors (format: "serviceName:messageText") */
396
+ ignoredErrors?: string[];
397
+ };
398
+ app?: {
399
+ enableUpdate?: boolean;
400
+ autoUpdate?: boolean;
381
401
  };
382
402
  }
383
403
  export type SettingsPaths = Paths<Settings>;
@@ -393,10 +413,19 @@ interface ModuleTabsSettingsValue {
393
413
  interface SettingsPanelStoreTab extends ModuleTabsSettingsValue {
394
414
  activeSectionIndex?: number;
395
415
  }
396
- interface KeymapSetting {
416
+ export type SettingsKeymap = Record<string, SettingsKeymapScope>;
417
+ export interface SettingsKeymapEntry {
397
418
  title?: string;
398
- sequence?: string;
419
+ sequence?: string | (string | [
420
+ string,
421
+ unknown
422
+ ])[] | null | undefined;
423
+ schema?: Record<string, any>;
424
+ stopCallback?: boolean;
399
425
  }
426
+ export declare const isSettingsKeymapEntry: (input: unknown) => input is SettingsKeymapEntry;
427
+ export type SettingsKeymapScope = Record<string, SettingsKeymapEntry>;
428
+ export declare const isSettingsKeymapScope: (input: unknown) => input is SettingsKeymapScope;
400
429
  export interface AudioMappingPreset {
401
430
  id: string;
402
431
  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 {};