@graphite-sports/sdk 0.4.0 → 0.6.0
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.
- package/index.d.ts +1585 -1233
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -3,22 +3,26 @@ import { ColumnDef } from '@tanstack/react-table';
|
|
|
3
3
|
import { ColumnHelper } from '@tanstack/table-core';
|
|
4
4
|
import { ColumnVisibilityState } from '@tanstack/react-table';
|
|
5
5
|
import { ComponentProps } from 'react';
|
|
6
|
+
import { ComponentType } from 'react';
|
|
6
7
|
import { CSSProperties } from 'react';
|
|
7
8
|
import type { DataTag } from '@tanstack/react-query';
|
|
8
9
|
import { FC } from 'react';
|
|
9
10
|
import { FocusEventHandler } from 'react';
|
|
10
11
|
import { HTMLInputTypeAttribute } from 'react';
|
|
11
12
|
import { JSX } from 'react/jsx-runtime';
|
|
13
|
+
import type { KeyboardEvent as KeyboardEvent_2 } from 'react';
|
|
12
14
|
import { KeyboardEventHandler } from 'react';
|
|
13
15
|
import { OnChangeFn } from '@tanstack/react-table';
|
|
14
16
|
import { default as React_2 } from 'react';
|
|
15
17
|
import * as React_3 from 'react';
|
|
18
|
+
import type { ReactElement } from 'react';
|
|
16
19
|
import { ReactNode } from 'react';
|
|
17
20
|
import type { Ref } from 'react';
|
|
18
21
|
import { RefObject } from 'react';
|
|
19
22
|
import { RowData } from '@tanstack/react-table';
|
|
20
23
|
import { RowModel } from '@tanstack/table-core';
|
|
21
24
|
import { SortingState } from '@tanstack/react-table';
|
|
25
|
+
import { SVGProps } from 'react';
|
|
22
26
|
import { Tab } from '@headlessui/react';
|
|
23
27
|
import { TabGroup } from '@headlessui/react';
|
|
24
28
|
import { Table as Table_2 } from '@tanstack/table-core';
|
|
@@ -29,6 +33,46 @@ import { TabPanels } from '@headlessui/react';
|
|
|
29
33
|
import { toast } from 'react-hot-toast';
|
|
30
34
|
import type { UnusedSkipTokenOptions } from '@tanstack/react-query';
|
|
31
35
|
|
|
36
|
+
/**
|
|
37
|
+
* <C extends {}, P extends Primitive, S extends Sorted|Unsorted>(Table<C, S>, P) -> (Table<C & {<self.key>: P}, S>)
|
|
38
|
+
*/
|
|
39
|
+
declare interface AddColumnsNode {
|
|
40
|
+
columns: string[];
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
declare type AddGameEdit = Extract<LoweredFormatEdit, {
|
|
44
|
+
type: 'add-game';
|
|
45
|
+
}>;
|
|
46
|
+
|
|
47
|
+
declare type AddGameEdit_2 = {
|
|
48
|
+
type: 'add-game';
|
|
49
|
+
section: SectionId;
|
|
50
|
+
at: MoveTarget;
|
|
51
|
+
} & ({
|
|
52
|
+
game: GameKind;
|
|
53
|
+
connectFrom?: ElementPortRef;
|
|
54
|
+
division?: never;
|
|
55
|
+
} | {
|
|
56
|
+
game: Extract<GameKind, {
|
|
57
|
+
type: 'game-node';
|
|
58
|
+
}> & {
|
|
59
|
+
variant: {
|
|
60
|
+
type: 'parallel';
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
connectFrom: ElementPortRef;
|
|
64
|
+
division: GameDivision;
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* <#0 extends {}, #1>(#0, #1) -> (#0 & {<self.key>: #1})
|
|
69
|
+
*/
|
|
70
|
+
declare interface AddRecordFieldsNode {
|
|
71
|
+
fields: string[];
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
declare type AgeGroupClasses = Record<'female' | 'male', ClassId>;
|
|
75
|
+
|
|
32
76
|
export declare type AnyQuerySchema = QuerySchema<QueryFields>;
|
|
33
77
|
|
|
34
78
|
export declare function AppButton({ type, onClick, disabled: disabledProp, mutates, children, submit, className, loading, value, ref, href, autoFocus, }: AppButtonProps): JSX.Element;
|
|
@@ -45,7 +89,10 @@ export declare type AppButtonProps = {
|
|
|
45
89
|
loading?: boolean;
|
|
46
90
|
value?: string;
|
|
47
91
|
ref?: RefObject<HTMLButtonElement | null>;
|
|
48
|
-
/**
|
|
92
|
+
/**
|
|
93
|
+
* Focuses the button as soon as it is enabled while this is set, which can be after mount, unless a text field has the
|
|
94
|
+
* focus. Again only after this was false.
|
|
95
|
+
*/
|
|
49
96
|
autoFocus?: boolean;
|
|
50
97
|
/** Makes the button a link to this route, so it can also be opened in a new tab. `onClick` runs before routing. */
|
|
51
98
|
href?: string;
|
|
@@ -94,6 +141,8 @@ export declare type AppInputProps = {
|
|
|
94
141
|
onFocus?: FocusEventHandler<HTMLInputElement>;
|
|
95
142
|
onKeyDown?: KeyboardEventHandler<HTMLInputElement>;
|
|
96
143
|
type?: HTMLInputTypeAttribute;
|
|
144
|
+
min?: number;
|
|
145
|
+
step?: number;
|
|
97
146
|
placeholder?: string;
|
|
98
147
|
required?: boolean;
|
|
99
148
|
maxLength?: number;
|
|
@@ -166,7 +215,7 @@ export declare function AppTab({ className, ...props }: ComponentProps<typeof Ta
|
|
|
166
215
|
|
|
167
216
|
export declare function AppTabGroup(props: ComponentProps<typeof TabGroup>): JSX.Element;
|
|
168
217
|
|
|
169
|
-
export declare function AppTable<TData extends RowData>({ data, columns, actions, allowSelect, getRowId, getRowState, rowClicked, rowHref, initialPageSize, initialSorting, pageSizes, enableSorting, autoResetPageIndex, emptyTableText, columnVisibility: columnVisibilityState, }: TableProps<TData>): JSX.Element;
|
|
218
|
+
export declare function AppTable<TData extends RowData>({ data, columns, actions, allowSelect, getRowId, getRowState, getRowClassName, rowClicked, rowHref, initialPageSize, initialSorting, pageSizes, enableSorting, autoResetPageIndex, emptyTableText, columnVisibility: columnVisibilityState, enableSearch, }: TableProps<TData>): JSX.Element;
|
|
170
219
|
|
|
171
220
|
export declare type AppTableFeatures = typeof appTableFeatures;
|
|
172
221
|
|
|
@@ -221,11 +270,14 @@ export declare type ArrayValue<T = Primitive> = Value<T>[];
|
|
|
221
270
|
|
|
222
271
|
export declare type BIB = Brand<number, 'bib'>;
|
|
223
272
|
|
|
273
|
+
declare type BooleanOp = "and" | "or" | "xor" | "not";
|
|
274
|
+
|
|
224
275
|
/**
|
|
225
|
-
* Mirrors the backend's `domain_id!` newtype IDs
|
|
226
|
-
*
|
|
227
|
-
*
|
|
228
|
-
*
|
|
276
|
+
* Mirrors the backend's `domain_id!` newtype IDs so distinct ID kinds can't be mixed up on the frontend either. Every
|
|
277
|
+
* type here must match the name of a `#/components/schemas/<Name>` entry in the OpenAPI schema - see the
|
|
278
|
+
* `DOMAIN_ID_NAMES` redirect in generate-openapi-types.js, which points the generated schema types at these instead of
|
|
279
|
+
* `number`/`string`. The ids graphite-wasm exports (EventId, FormatId, ...) are not here: they come from
|
|
280
|
+
* graphite_wasm.d.ts, branded the same way.
|
|
229
281
|
*/
|
|
230
282
|
export declare type Brand<T, B> = T & {
|
|
231
283
|
readonly __brand: B;
|
|
@@ -234,13 +286,15 @@ export declare type Brand<T, B> = T & {
|
|
|
234
286
|
/** Stable reference — a new inline `select` on every `queryOptions()` call makes React Query re-select each render. */
|
|
235
287
|
export declare function buildCompetitorsMapped(competitors: CompetitorDAO[]): CompetitorsMapped;
|
|
236
288
|
|
|
237
|
-
export declare const buildRoute: <Path extends "*" | "/" | "/workspace/:workspaceId" | "/workspace/:workspaceId/event/:eventId" | "/
|
|
289
|
+
export declare const buildRoute: <Path extends "*" | "/" | "/workspace/:workspaceId" | "/workspace/:workspaceId/event/:eventId" | "/login" | "/register" | "/download" | "/preferences" | "/crate-workspace" | "/workspace/:workspaceId/create-event" | "/workspace/:workspaceId/event/:eventId/dashboard" | "/workspace/:workspaceId/event/:eventId/create-class" | "/workspace/:workspaceId/event/:eventId/class/:classId" | "/workspace/:workspaceId/event/:eventId/create-competitor" | "/workspace/:workspaceId/event/:eventId/create-team" | "/workspace/:workspaceId/event/:eventId/competitor/:competitorId" | "/workspace/:workspaceId/event/:eventId/create-format" | "/workspace/:workspaceId/event/:eventId/format/:formatId" | "/workspace/:workspaceId/event/:eventId/format/:formatId/tests" | "/workspace/:workspaceId/event/:eventId/format/:formatId/tests/:formatTestId" | "/workspace/:workspaceId/event/:eventId/graph" | "/workspace/:workspaceId/event/:eventId/simplified" | "/workspace/:workspaceId/event/:eventId/lineage" | "/workspace/:workspaceId/event/:eventId/create-game" | "/workspace/:workspaceId/event/:eventId/game/:gameId" | "/workspace/:workspaceId/event/:eventId/create-table" | "/workspace/:workspaceId/event/:eventId/table/:tableId" | "/workspace/:workspaceId/event/:eventId/create-game-format" | "/workspace/:workspaceId/event/:eventId/game-format/:gameFormatId" | "/workspace/:workspaceId/event/:eventId/create-template" | "/workspace/:workspaceId/event/:eventId/template/:templateId" | "/workspace/:workspaceId/event/:eventId/extension/$extensionIdentifier">(path: Path, params: PathParams<Path>, ...query: {
|
|
238
290
|
'/': undefined;
|
|
239
291
|
'/download': undefined;
|
|
240
292
|
'/login': QuerySchema< {
|
|
241
293
|
readonly returnTo: OptionalQueryField<ReturnPath>;
|
|
242
294
|
}>;
|
|
243
|
-
'/register':
|
|
295
|
+
'/register': QuerySchema< {
|
|
296
|
+
readonly returnTo: OptionalQueryField<ReturnPath>;
|
|
297
|
+
}>;
|
|
244
298
|
'/preferences': undefined;
|
|
245
299
|
'/crate-workspace': undefined;
|
|
246
300
|
'/workspace/:workspaceId': undefined;
|
|
@@ -253,6 +307,9 @@ export declare const buildRoute: <Path extends "*" | "/" | "/workspace/:workspac
|
|
|
253
307
|
'/workspace/:workspaceId/event/:eventId/create-team': undefined;
|
|
254
308
|
'/workspace/:workspaceId/event/:eventId/competitor/:competitorId': undefined;
|
|
255
309
|
'/workspace/:workspaceId/event/:eventId/create-format': QuerySchema< {
|
|
310
|
+
readonly name: OptionalQueryField<string>;
|
|
311
|
+
readonly template: OptionalQueryField<FormatId>;
|
|
312
|
+
readonly place: OptionalQueryField<GamePlace>;
|
|
256
313
|
readonly focusNode: RepeatedQueryField<FormatNodeId>;
|
|
257
314
|
readonly formatInstance: OptionalQueryField<FormatInstanceHash>;
|
|
258
315
|
}>;
|
|
@@ -265,6 +322,12 @@ export declare const buildRoute: <Path extends "*" | "/" | "/workspace/:workspac
|
|
|
265
322
|
'/workspace/:workspaceId/event/:eventId/graph': QuerySchema< {
|
|
266
323
|
readonly focusNode: RepeatedQueryField<FormatNodeId>;
|
|
267
324
|
}>;
|
|
325
|
+
'/workspace/:workspaceId/event/:eventId/simplified': QuerySchema< {
|
|
326
|
+
/** Applied once, e.g. for a format just created to be used as a game. */
|
|
327
|
+
readonly addGame: OptionalQueryField<AddGameEdit>;
|
|
328
|
+
readonly focusNode: RepeatedQueryField<FormatNodeId>;
|
|
329
|
+
readonly formatInstance: OptionalQueryField<FormatInstanceHash>;
|
|
330
|
+
}>;
|
|
268
331
|
'/workspace/:workspaceId/event/:eventId/lineage': QuerySchema< {
|
|
269
332
|
readonly game: OptionalQueryField<GameId>;
|
|
270
333
|
readonly table: OptionalQueryField<TableId>;
|
|
@@ -277,6 +340,7 @@ export declare const buildRoute: <Path extends "*" | "/" | "/workspace/:workspac
|
|
|
277
340
|
}>;
|
|
278
341
|
'/workspace/:workspaceId/event/:eventId/create-game': undefined;
|
|
279
342
|
'/workspace/:workspaceId/event/:eventId/game/:gameId': undefined;
|
|
343
|
+
'/workspace/:workspaceId/event/:eventId/create-table': undefined;
|
|
280
344
|
'/workspace/:workspaceId/event/:eventId/table/:tableId': undefined;
|
|
281
345
|
'/workspace/:workspaceId/event/:eventId/create-game-format': undefined;
|
|
282
346
|
'/workspace/:workspaceId/event/:eventId/game-format/:gameFormatId': undefined;
|
|
@@ -290,7 +354,9 @@ export declare const buildRoute: <Path extends "*" | "/" | "/workspace/:workspac
|
|
|
290
354
|
'/login': QuerySchema< {
|
|
291
355
|
readonly returnTo: OptionalQueryField<ReturnPath>;
|
|
292
356
|
}>;
|
|
293
|
-
'/register':
|
|
357
|
+
'/register': QuerySchema< {
|
|
358
|
+
readonly returnTo: OptionalQueryField<ReturnPath>;
|
|
359
|
+
}>;
|
|
294
360
|
'/preferences': undefined;
|
|
295
361
|
'/crate-workspace': undefined;
|
|
296
362
|
'/workspace/:workspaceId': undefined;
|
|
@@ -303,6 +369,9 @@ export declare const buildRoute: <Path extends "*" | "/" | "/workspace/:workspac
|
|
|
303
369
|
'/workspace/:workspaceId/event/:eventId/create-team': undefined;
|
|
304
370
|
'/workspace/:workspaceId/event/:eventId/competitor/:competitorId': undefined;
|
|
305
371
|
'/workspace/:workspaceId/event/:eventId/create-format': QuerySchema< {
|
|
372
|
+
readonly name: OptionalQueryField<string>;
|
|
373
|
+
readonly template: OptionalQueryField<FormatId>;
|
|
374
|
+
readonly place: OptionalQueryField<GamePlace>;
|
|
306
375
|
readonly focusNode: RepeatedQueryField<FormatNodeId>;
|
|
307
376
|
readonly formatInstance: OptionalQueryField<FormatInstanceHash>;
|
|
308
377
|
}>;
|
|
@@ -315,6 +384,12 @@ export declare const buildRoute: <Path extends "*" | "/" | "/workspace/:workspac
|
|
|
315
384
|
'/workspace/:workspaceId/event/:eventId/graph': QuerySchema< {
|
|
316
385
|
readonly focusNode: RepeatedQueryField<FormatNodeId>;
|
|
317
386
|
}>;
|
|
387
|
+
'/workspace/:workspaceId/event/:eventId/simplified': QuerySchema< {
|
|
388
|
+
/** Applied once, e.g. for a format just created to be used as a game. */
|
|
389
|
+
readonly addGame: OptionalQueryField<AddGameEdit>;
|
|
390
|
+
readonly focusNode: RepeatedQueryField<FormatNodeId>;
|
|
391
|
+
readonly formatInstance: OptionalQueryField<FormatInstanceHash>;
|
|
392
|
+
}>;
|
|
318
393
|
'/workspace/:workspaceId/event/:eventId/lineage': QuerySchema< {
|
|
319
394
|
readonly game: OptionalQueryField<GameId>;
|
|
320
395
|
readonly table: OptionalQueryField<TableId>;
|
|
@@ -327,6 +402,7 @@ export declare const buildRoute: <Path extends "*" | "/" | "/workspace/:workspac
|
|
|
327
402
|
}>;
|
|
328
403
|
'/workspace/:workspaceId/event/:eventId/create-game': undefined;
|
|
329
404
|
'/workspace/:workspaceId/event/:eventId/game/:gameId': undefined;
|
|
405
|
+
'/workspace/:workspaceId/event/:eventId/create-table': undefined;
|
|
330
406
|
'/workspace/:workspaceId/event/:eventId/table/:tableId': undefined;
|
|
331
407
|
'/workspace/:workspaceId/event/:eventId/create-game-format': undefined;
|
|
332
408
|
'/workspace/:workspaceId/event/:eventId/game-format/:gameFormatId': undefined;
|
|
@@ -336,9 +412,27 @@ export declare const buildRoute: <Path extends "*" | "/" | "/workspace/:workspac
|
|
|
336
412
|
'*': undefined;
|
|
337
413
|
}[Path] ? T extends AnyQuerySchema ? [query?: QueryInput<T> | undefined] : [] : never : never) => string;
|
|
338
414
|
|
|
415
|
+
/** How to handle a disqualification: one of the strategies to catch it, or "throw" - not catching it at all. */
|
|
416
|
+
declare type CatchDqChoice = DqStrategy_2 | 'throw';
|
|
417
|
+
|
|
418
|
+
declare type ChildrenSpec = { type: "disallowed" } | { type: "allowed" } | { type: "closure"; signature: NodeSignature<Type> };
|
|
419
|
+
|
|
339
420
|
export declare type ClassDAO = components['schemas']['ClassDAO'];
|
|
340
421
|
|
|
341
|
-
|
|
422
|
+
/**
|
|
423
|
+
* Outputs the competitors of classes as a table.
|
|
424
|
+
*
|
|
425
|
+
* ```text
|
|
426
|
+
* multiple: ('roundrobin' | 'serpentine' | 'concat', ...Class) -> (Table<{}, Sorted>)
|
|
427
|
+
* ```
|
|
428
|
+
*/
|
|
429
|
+
declare type ClassesCompetitorsNode = null;
|
|
430
|
+
|
|
431
|
+
/**
|
|
432
|
+
* Identifies a class. Random ([Self::new_random]) from the endpoint, or derived by `ImportArchiveMutation`.
|
|
433
|
+
* Deserializing one only yields a reference to an existing class; it does not check that it exists.
|
|
434
|
+
*/
|
|
435
|
+
export declare type ClassId = string & { readonly __brand: 'classId' };
|
|
342
436
|
|
|
343
437
|
export declare type ClassResponse = components['schemas']['ClassResponse'];
|
|
344
438
|
|
|
@@ -346,6 +440,8 @@ declare type CommonApiKeyId = Brand<number, 'commonApiKeyId'>;
|
|
|
346
440
|
|
|
347
441
|
export declare type CommonWorkspaceId = WorkspaceRootId | WorkspaceSelfHostedId;
|
|
348
442
|
|
|
443
|
+
declare type ComparisonOp = "greater" | "less" | "greater-equals" | "less-equals" | "equals" | "not-equals";
|
|
444
|
+
|
|
349
445
|
export declare type CompetitorDAO = components['schemas']['CompetitorDAO'];
|
|
350
446
|
|
|
351
447
|
export declare type CompetitorId = Brand<number, 'competitorId'>;
|
|
@@ -358,6 +454,22 @@ export declare const CompetitorNameLineSpacer: FC<{
|
|
|
358
454
|
className?: string;
|
|
359
455
|
}>;
|
|
360
456
|
|
|
457
|
+
/**
|
|
458
|
+
* Two rows of the same competitor met in one table.
|
|
459
|
+
*/
|
|
460
|
+
declare interface CompetitorNotUniqueError {
|
|
461
|
+
competitorId: number;
|
|
462
|
+
/**
|
|
463
|
+
* Where the row that came first comes from, see [crate::Origin::trails]. The steps of the node that failed are not
|
|
464
|
+
* attributed yet.
|
|
465
|
+
*/
|
|
466
|
+
first: Trail[];
|
|
467
|
+
/**
|
|
468
|
+
* Where the row that clashed with it comes from.
|
|
469
|
+
*/
|
|
470
|
+
second: Trail[];
|
|
471
|
+
}
|
|
472
|
+
|
|
361
473
|
/**
|
|
362
474
|
* Shows which competitor is picked and lets the user pick another one.
|
|
363
475
|
*/
|
|
@@ -382,11 +494,14 @@ export declare type CompetitorSelectorProps<IsRequired extends boolean = false>
|
|
|
382
494
|
|
|
383
495
|
export declare interface CompetitorsMapped {
|
|
384
496
|
byId: Map<CompetitorId, CompetitorDAO>;
|
|
497
|
+
/** Leaves out the competitors without a bib. */
|
|
385
498
|
byBib: Map<BIB, CompetitorDAO>;
|
|
386
499
|
}
|
|
387
500
|
|
|
388
501
|
export declare type CompetitorType = components['schemas']['CompetitorType'];
|
|
389
502
|
|
|
503
|
+
declare type CompetitorType_2 = "individual" | "team";
|
|
504
|
+
|
|
390
505
|
declare interface components {
|
|
391
506
|
schemas: {
|
|
392
507
|
APIKeyPathVariables: {
|
|
@@ -414,19 +529,8 @@ declare interface components {
|
|
|
414
529
|
classId: components["schemas"]["ClassId"];
|
|
415
530
|
eventId: components["schemas"]["EventId"];
|
|
416
531
|
};
|
|
417
|
-
AddClassesMutation: {
|
|
418
|
-
classDtos: components["schemas"]["ClassDTO"][];
|
|
419
|
-
eventId: components["schemas"]["EventId"];
|
|
420
|
-
/**
|
|
421
|
-
* @description The classes get ids derived from it, see [ClassId::nth_of_seed]. Random, picked by the endpoint; reusing a seed
|
|
422
|
-
* reproduces the same ids.
|
|
423
|
-
*/
|
|
424
|
-
idSeed: components["schemas"]["Seed"];
|
|
425
|
-
};
|
|
426
532
|
/** @description <C extends {}, P extends Primitive, S extends Sorted|Unsorted>(Table<C, S>, P) -> (Table<C & {<self.key>: P}, S>) */
|
|
427
|
-
AddColumnsNode:
|
|
428
|
-
columns: string[];
|
|
429
|
-
};
|
|
533
|
+
AddColumnsNode: AddColumnsNode;
|
|
430
534
|
AddCompetitorsMutation: {
|
|
431
535
|
competitorDtos: components["schemas"]["CompetitorDTO"][];
|
|
432
536
|
competitorType: components["schemas"]["CompetitorType"];
|
|
@@ -481,9 +585,7 @@ declare interface components {
|
|
|
481
585
|
variant: components["schemas"]["TableVariant"];
|
|
482
586
|
};
|
|
483
587
|
/** @description <#0 extends {}, #1>(#0, #1) -> (#0 & {<self.key>: #1}) */
|
|
484
|
-
AddRecordFieldsNode:
|
|
485
|
-
fields: string[];
|
|
486
|
-
};
|
|
588
|
+
AddRecordFieldsNode: AddRecordFieldsNode;
|
|
487
589
|
AddTarget: {
|
|
488
590
|
backendUrl: string;
|
|
489
591
|
/** @description Replicate into this existing remote workspace instead of creating a new one. */
|
|
@@ -532,10 +634,23 @@ declare interface components {
|
|
|
532
634
|
* Later dependencies expect earlier ones to exist.
|
|
533
635
|
*/
|
|
534
636
|
dependencies: components["schemas"]["Archive"][];
|
|
535
|
-
/**
|
|
637
|
+
/**
|
|
638
|
+
* Format: uint32
|
|
639
|
+
* @description Always [ENGINE_VERSION]: deserializing migrates older archives.
|
|
640
|
+
*/
|
|
641
|
+
engineVersion: number;
|
|
642
|
+
/**
|
|
643
|
+
* Format: uuid
|
|
644
|
+
* @description The template the entry belongs to: installing it links the entity to it and reuses the entity of the event
|
|
645
|
+
* installed from it before, see [template_origin](crate::graphite_engine::template_origin). Without one, the entity
|
|
646
|
+
* is installed as a plain editable entity. Ignored for [ArchiveData::Group].
|
|
647
|
+
*/
|
|
648
|
+
templateOrigin?: string | null;
|
|
649
|
+
/**
|
|
650
|
+
* Format: uuid
|
|
651
|
+
* @description Identifies the entry within the archive, see [Wiring]. Importing derives the ids of the entities from it.
|
|
652
|
+
*/
|
|
536
653
|
uuid: string;
|
|
537
|
-
/** @description The version of the archive system at time of creation of this archive. */
|
|
538
|
-
writtenWithVersion: components["schemas"]["SemVer"];
|
|
539
654
|
};
|
|
540
655
|
ArchiveData: {
|
|
541
656
|
/** @constant */
|
|
@@ -573,9 +688,9 @@ declare interface components {
|
|
|
573
688
|
type: "group";
|
|
574
689
|
};
|
|
575
690
|
/** @enum {string} */
|
|
576
|
-
ArithmeticOperator:
|
|
691
|
+
ArithmeticOperator: ArithmeticOperator;
|
|
577
692
|
ArrayValue_for_Primitive: ArrayValue<Primitive>;
|
|
578
|
-
ArrayValue_for_SerializableNonPrimitiveValue:
|
|
693
|
+
ArrayValue_for_SerializableNonPrimitiveValue: ArrayValue<SerializableNonPrimitiveValue>;
|
|
579
694
|
AuthScope: {
|
|
580
695
|
/** @constant */
|
|
581
696
|
type: "general";
|
|
@@ -600,28 +715,10 @@ declare interface components {
|
|
|
600
715
|
BIB: BIB;
|
|
601
716
|
BibNotUniqueError: components["schemas"]["BIB"];
|
|
602
717
|
/** @enum {string} */
|
|
603
|
-
BooleanOp:
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
* caught tables of the same key get merged.
|
|
608
|
-
*/
|
|
609
|
-
catches: {
|
|
610
|
-
[key: string]: components["schemas"]["MultiplexingStrategy"];
|
|
611
|
-
};
|
|
612
|
-
};
|
|
613
|
-
ChildrenSpec: {
|
|
614
|
-
/** @constant */
|
|
615
|
-
type: "disallowed";
|
|
616
|
-
} | {
|
|
617
|
-
/** @constant */
|
|
618
|
-
type: "allowed";
|
|
619
|
-
} | {
|
|
620
|
-
/** @constant */
|
|
621
|
-
type: "closure";
|
|
622
|
-
/** @description The signature that the inner closure must adhere to. */
|
|
623
|
-
signature: components["schemas"]["NodeSignature_for_Type_and_ParamRef"];
|
|
624
|
-
};
|
|
718
|
+
BooleanOp: BooleanOp;
|
|
719
|
+
/** @description The [CICManagedState] of a relation that is a membership, so all but `DeletedByUser`. */
|
|
720
|
+
CICMembershipState: "added-by-user" | "automation";
|
|
721
|
+
ChildrenSpec: ChildrenSpec;
|
|
625
722
|
ClassAutomationDTO: {
|
|
626
723
|
/** @constant */
|
|
627
724
|
type: "age";
|
|
@@ -654,7 +751,7 @@ declare interface components {
|
|
|
654
751
|
ClassAutomationScriptError: {
|
|
655
752
|
/** @constant */
|
|
656
753
|
type: "parse-error";
|
|
657
|
-
data: components["schemas"]["
|
|
754
|
+
data: components["schemas"]["ExpressionParseError"];
|
|
658
755
|
} | {
|
|
659
756
|
/** @constant */
|
|
660
757
|
type: "type-errors";
|
|
@@ -669,6 +766,9 @@ declare interface components {
|
|
|
669
766
|
attributes: components["schemas"]["RecordValue_for_Primitive"];
|
|
670
767
|
automationScript?: components["schemas"]["ClassAutomationScript"] | null;
|
|
671
768
|
automationScriptError?: components["schemas"]["ClassAutomationScriptError"] | null;
|
|
769
|
+
customData: {
|
|
770
|
+
[key: string]: string;
|
|
771
|
+
};
|
|
672
772
|
eventId: components["schemas"]["EventId"];
|
|
673
773
|
gender: components["schemas"]["ClassGender"];
|
|
674
774
|
id: components["schemas"]["ClassId"];
|
|
@@ -682,6 +782,9 @@ declare interface components {
|
|
|
682
782
|
description: string;
|
|
683
783
|
attributes: components["schemas"]["RecordValue_for_Primitive"];
|
|
684
784
|
automation?: components["schemas"]["ClassAutomationDTO"] | null;
|
|
785
|
+
customData?: {
|
|
786
|
+
[key: string]: string;
|
|
787
|
+
};
|
|
685
788
|
gender: components["schemas"]["ClassGender"];
|
|
686
789
|
name: string;
|
|
687
790
|
state: components["schemas"]["TableState"];
|
|
@@ -711,8 +814,7 @@ declare interface components {
|
|
|
711
814
|
ClassGender: "female-only" | "male-only" | "all-genders";
|
|
712
815
|
/**
|
|
713
816
|
* Format: uuid
|
|
714
|
-
* @description Identifies a class. Random ([Self::new_random]) from the endpoint,
|
|
715
|
-
* or derived by `ImportArchiveMutation`.
|
|
817
|
+
* @description Identifies a class. Random ([Self::new_random]) from the endpoint, or derived by `ImportArchiveMutation`.
|
|
716
818
|
* Deserializing one only yields a reference to an existing class; it does not check that it exists.
|
|
717
819
|
*/
|
|
718
820
|
ClassId: ClassId;
|
|
@@ -737,19 +839,27 @@ declare interface components {
|
|
|
737
839
|
* multiple: ('roundrobin' | 'serpentine' | 'concat', ...Class) -> (Table<{}, Sorted>)
|
|
738
840
|
* ```
|
|
739
841
|
*/
|
|
740
|
-
ClassesCompetitorsNode:
|
|
842
|
+
ClassesCompetitorsNode: ClassesCompetitorsNode;
|
|
741
843
|
/** Format: int64 */
|
|
742
844
|
CommonApiKeyId: CommonApiKeyId;
|
|
743
|
-
/** Format: int64 */
|
|
744
845
|
CommonWorkspaceId: CommonWorkspaceId;
|
|
745
846
|
/** @enum {string} */
|
|
746
|
-
ComparisonOp:
|
|
847
|
+
ComparisonOp: ComparisonOp;
|
|
747
848
|
CompetitorDAO: {
|
|
748
849
|
attributes: components["schemas"]["RecordValue_for_Primitive"];
|
|
749
|
-
|
|
850
|
+
/** @description Unique among the competitors of the event that have one. */
|
|
851
|
+
bib?: components["schemas"]["BIB"] | null;
|
|
750
852
|
birthdate?: string | null;
|
|
751
853
|
/** @description The competitor_type MUST NEVER be altered after creation. */
|
|
752
854
|
competitorType: components["schemas"]["CompetitorType"];
|
|
855
|
+
customData: {
|
|
856
|
+
[key: string]: string;
|
|
857
|
+
};
|
|
858
|
+
/**
|
|
859
|
+
* @description Nodes that bring the competitors of the event into the graph (event competitors, classes) leave disabled
|
|
860
|
+
* competitors out, everything else treats them as usual.
|
|
861
|
+
*/
|
|
862
|
+
enabled: boolean;
|
|
753
863
|
eventId: components["schemas"]["EventId"];
|
|
754
864
|
firstName?: string | null;
|
|
755
865
|
/** @description Genders are `"f"`, `"m"`, or any other string stored in SQLite. */
|
|
@@ -762,8 +872,14 @@ declare interface components {
|
|
|
762
872
|
};
|
|
763
873
|
CompetitorDTO: {
|
|
764
874
|
attributes: components["schemas"]["RecordValue_for_Primitive"];
|
|
765
|
-
|
|
875
|
+
/** @description See [CompetitorDAO::bib]. */
|
|
876
|
+
bib?: components["schemas"]["BIB"] | null;
|
|
766
877
|
birthdate?: string | null;
|
|
878
|
+
customData?: {
|
|
879
|
+
[key: string]: string;
|
|
880
|
+
};
|
|
881
|
+
/** @description See [CompetitorDAO::enabled]. Missing means enabled. */
|
|
882
|
+
enabled?: boolean;
|
|
767
883
|
firstName?: string | null;
|
|
768
884
|
gender?: components["schemas"]["Gender"] | null;
|
|
769
885
|
lastName?: string | null;
|
|
@@ -779,6 +895,7 @@ declare interface components {
|
|
|
779
895
|
CompetitorInClassDTO: {
|
|
780
896
|
classId: components["schemas"]["ClassId"];
|
|
781
897
|
competitorId: components["schemas"]["CompetitorId"];
|
|
898
|
+
managedState: components["schemas"]["CICMembershipState"];
|
|
782
899
|
/** Format: int64 */
|
|
783
900
|
place: number;
|
|
784
901
|
};
|
|
@@ -789,15 +906,15 @@ declare interface components {
|
|
|
789
906
|
teamId: components["schemas"]["CompetitorId"];
|
|
790
907
|
to?: string | null;
|
|
791
908
|
};
|
|
792
|
-
/**
|
|
793
|
-
CompetitorNotUniqueError:
|
|
909
|
+
/** @description Two rows of the same competitor met in one table. */
|
|
910
|
+
CompetitorNotUniqueError: CompetitorNotUniqueError;
|
|
794
911
|
CompetitorPathVariables_for_CommonWorkspaceId: {
|
|
795
912
|
competitorId: components["schemas"]["CompetitorId"];
|
|
796
913
|
eventId: components["schemas"]["EventId"];
|
|
797
914
|
workspaceId: components["schemas"]["CommonWorkspaceId"];
|
|
798
915
|
};
|
|
799
916
|
/** @enum {string} */
|
|
800
|
-
CompetitorType:
|
|
917
|
+
CompetitorType: CompetitorType_2;
|
|
801
918
|
CompetitorTypeQuery: {
|
|
802
919
|
competitorType: components["schemas"]["CompetitorType"];
|
|
803
920
|
};
|
|
@@ -872,14 +989,7 @@ declare interface components {
|
|
|
872
989
|
* Besides the infer keyword, works almost exactly like conditional types in typescript.
|
|
873
990
|
* Checkout [this doc](https://www.typescriptlang.org/docs/handbook/2/conditional-types.html) for a good guide on the ts conditionals.
|
|
874
991
|
*/
|
|
875
|
-
Conditional_for_Type_and_ErasedScopedTypeRef_for_Type:
|
|
876
|
-
/** @description @todo */
|
|
877
|
-
infer: components["schemas"]["LocalParamID"][];
|
|
878
|
-
tElse: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
879
|
-
tTest: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
880
|
-
tTestBound: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
881
|
-
tThen: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
882
|
-
};
|
|
992
|
+
Conditional_for_Type_and_ErasedScopedTypeRef_for_Type: Conditional<Type, components["schemas"]["ErasedScopedTypeRef_for_Type"]>;
|
|
883
993
|
/**
|
|
884
994
|
* @description Represents the following: `t_test` extends `t_test_bound` ? `t_then` : `t_else`
|
|
885
995
|
* Besides the infer keyword, works almost exactly like conditional types in typescript.
|
|
@@ -906,12 +1016,7 @@ declare interface components {
|
|
|
906
1016
|
data: string;
|
|
907
1017
|
};
|
|
908
1018
|
/** @description A pin that reroutes a connection */
|
|
909
|
-
ConnectionPin:
|
|
910
|
-
/** Format: int64 */
|
|
911
|
-
x: number;
|
|
912
|
-
/** Format: int64 */
|
|
913
|
-
y: number;
|
|
914
|
-
};
|
|
1019
|
+
ConnectionPin: ConnectionPin;
|
|
915
1020
|
/** @description Contact information for the exposed API. */
|
|
916
1021
|
Contact: {
|
|
917
1022
|
/**
|
|
@@ -976,6 +1081,52 @@ declare interface components {
|
|
|
976
1081
|
};
|
|
977
1082
|
/** @enum {string} */
|
|
978
1083
|
CustomControl: "sort-criterion";
|
|
1084
|
+
CustomDataEntity: {
|
|
1085
|
+
/** @constant */
|
|
1086
|
+
type: "game";
|
|
1087
|
+
id: components["schemas"]["GameId"];
|
|
1088
|
+
} | {
|
|
1089
|
+
/** @constant */
|
|
1090
|
+
type: "game-format";
|
|
1091
|
+
id: components["schemas"]["GameFormatId"];
|
|
1092
|
+
} | {
|
|
1093
|
+
/** @constant */
|
|
1094
|
+
type: "format";
|
|
1095
|
+
id: components["schemas"]["FormatId"];
|
|
1096
|
+
} | {
|
|
1097
|
+
/** @constant */
|
|
1098
|
+
type: "event";
|
|
1099
|
+
id: components["schemas"]["EventId"];
|
|
1100
|
+
} | {
|
|
1101
|
+
/** @constant */
|
|
1102
|
+
type: "competitor";
|
|
1103
|
+
id: components["schemas"]["CompetitorId"];
|
|
1104
|
+
} | {
|
|
1105
|
+
/** @constant */
|
|
1106
|
+
type: "class";
|
|
1107
|
+
id: components["schemas"]["ClassId"];
|
|
1108
|
+
} | {
|
|
1109
|
+
/** @constant */
|
|
1110
|
+
type: "format-group";
|
|
1111
|
+
id: components["schemas"]["FormatGroupId"];
|
|
1112
|
+
} | {
|
|
1113
|
+
/** @constant */
|
|
1114
|
+
type: "format-node";
|
|
1115
|
+
id: components["schemas"]["FormatNodeId"];
|
|
1116
|
+
};
|
|
1117
|
+
/**
|
|
1118
|
+
* @description Auto-generated discriminant enum variants
|
|
1119
|
+
* @enum {string}
|
|
1120
|
+
*/
|
|
1121
|
+
CustomDataEntityType: "game" | "game-format" | "format" | "event" | "competitor" | "class" | "format-group" | "format-node";
|
|
1122
|
+
CustomDataPathVariables_for_CommonWorkspaceId: {
|
|
1123
|
+
entity: components["schemas"]["CustomDataEntityType"];
|
|
1124
|
+
eventId: components["schemas"]["EventId"];
|
|
1125
|
+
/** @description The id of the entity, which belongs to the event of the path. For `event`, the id of that event. */
|
|
1126
|
+
id: string;
|
|
1127
|
+
key: string;
|
|
1128
|
+
workspaceId: components["schemas"]["CommonWorkspaceId"];
|
|
1129
|
+
};
|
|
979
1130
|
DayAndMonth: {
|
|
980
1131
|
/**
|
|
981
1132
|
* Format: uint8
|
|
@@ -1206,11 +1357,9 @@ declare interface components {
|
|
|
1206
1357
|
DetailedSupertypeDiagnostics_for_Type: DetailedSupertypeDiagnostics<Type>;
|
|
1207
1358
|
/**
|
|
1208
1359
|
* @description Disqualifies every row of the table it receives, throwing them all under `key` so that a
|
|
1209
|
-
* [`
|
|
1360
|
+
* [`GroupNode`](super::group_node::GroupNode) further up the graph can collect them.
|
|
1210
1361
|
*/
|
|
1211
|
-
DisqualifyNode:
|
|
1212
|
-
key: components["schemas"]["DqKey"];
|
|
1213
|
-
};
|
|
1362
|
+
DisqualifyNode: DisqualifyNode;
|
|
1214
1363
|
/** @description The rows of one side after the common row. */
|
|
1215
1364
|
DivergedRows: {
|
|
1216
1365
|
/** Format: int64 */
|
|
@@ -1224,9 +1373,13 @@ declare interface components {
|
|
|
1224
1373
|
source: components["schemas"]["DivergedRows"];
|
|
1225
1374
|
target: components["schemas"]["DivergedRows"];
|
|
1226
1375
|
};
|
|
1227
|
-
|
|
1376
|
+
/** @description What a node does by default with a disqualification it can throw. */
|
|
1377
|
+
DqDefaultStrategy: DqDefaultStrategy;
|
|
1378
|
+
DqKey: DqKey;
|
|
1379
|
+
/** @description What a format or game format says about one of its disqualification kinds. */
|
|
1380
|
+
DqSettings: DqSettings;
|
|
1228
1381
|
/** @description Decides how caught disqualifications are surfaced. */
|
|
1229
|
-
DqStrategy:
|
|
1382
|
+
DqStrategy: DqStrategy;
|
|
1230
1383
|
/**
|
|
1231
1384
|
* @description How functions that combine tables from multiple competitor sources (e.g. merging or
|
|
1232
1385
|
* concatenating) should treat a competitor that appears in more than one of them.
|
|
@@ -1240,11 +1393,6 @@ declare interface components {
|
|
|
1240
1393
|
*/
|
|
1241
1394
|
nodeUuidSeed: components["schemas"]["Seed"];
|
|
1242
1395
|
};
|
|
1243
|
-
DuplicateGameFormatMutation: {
|
|
1244
|
-
/** @description The id of the new copy, see [GameFormatId::new_random]. It must not exist yet. */
|
|
1245
|
-
copyId: components["schemas"]["GameFormatId"];
|
|
1246
|
-
gameFormatId: components["schemas"]["GameFormatId"];
|
|
1247
|
-
};
|
|
1248
1396
|
/** @description A single encoding definition applied to a single schema property. */
|
|
1249
1397
|
Encoding: {
|
|
1250
1398
|
/**
|
|
@@ -1376,27 +1524,14 @@ declare interface components {
|
|
|
1376
1524
|
/** @description Auto-generated discriminant enum variants */
|
|
1377
1525
|
EntityChangeEventDiscriminants: ("Event" | "Game" | "Table" | "GameFormat" | "FormatGroup" | "Row" | "RowMutation" | "FormatNode" | "Format" | "Class" | "Extension" | "Competitor" | "FormatTest" | "Log" | "ContentInEventFolder") | "CompetitorInTeam" | "CompetitorInClass";
|
|
1378
1526
|
/** @description A scope portal that used to be there but got removed in order to be serializable */
|
|
1379
|
-
ErasedScopedTypeRef_for_Type:
|
|
1380
|
-
|
|
1381
|
-
type: "Param";
|
|
1382
|
-
data: components["schemas"]["ParamRef"];
|
|
1383
|
-
} | {
|
|
1384
|
-
/** @constant */
|
|
1385
|
-
type: "ScopedExpr";
|
|
1386
|
-
data: {
|
|
1387
|
-
expr: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
1388
|
-
};
|
|
1389
|
-
};
|
|
1390
|
-
EventCompetitorsNode: components["schemas"]["CompetitorType"];
|
|
1527
|
+
ErasedScopedTypeRef_for_Type: ErasedScopedTypeRef<Type>;
|
|
1528
|
+
EventCompetitorsNode: EventCompetitorsNode;
|
|
1391
1529
|
EventDAO: {
|
|
1392
1530
|
description: string;
|
|
1393
1531
|
attributes: components["schemas"]["RecordValue_for_Primitive"];
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
* more than once.
|
|
1398
|
-
*/
|
|
1399
|
-
duplicateCompetitorPolicy: components["schemas"]["DuplicateCompetitorPolicy"];
|
|
1532
|
+
customData: {
|
|
1533
|
+
[key: string]: string;
|
|
1534
|
+
};
|
|
1400
1535
|
/** Format: date */
|
|
1401
1536
|
endDate?: string | null;
|
|
1402
1537
|
id: components["schemas"]["EventId"];
|
|
@@ -1408,37 +1543,38 @@ declare interface components {
|
|
|
1408
1543
|
* action should always be to create and set the root format.
|
|
1409
1544
|
*/
|
|
1410
1545
|
rootFormatId?: components["schemas"]["FormatId"] | null;
|
|
1546
|
+
settings: components["schemas"]["EventSettings"];
|
|
1411
1547
|
/**
|
|
1412
1548
|
* Format: date
|
|
1413
1549
|
* @description Updating this requires updating classes as well.
|
|
1414
1550
|
*/
|
|
1415
1551
|
startDate: string;
|
|
1416
1552
|
teamCompetitorTypes: components["schemas"]["RecordTypeWithDefaults"];
|
|
1417
|
-
/** @description Enables tooling for trying out an event with generated data. */
|
|
1418
|
-
testMode: boolean;
|
|
1419
1553
|
};
|
|
1420
1554
|
EventDTO: {
|
|
1421
1555
|
/** @default */
|
|
1422
1556
|
description: string;
|
|
1423
1557
|
attributes: components["schemas"]["RecordValue_for_Primitive"];
|
|
1424
1558
|
/**
|
|
1425
|
-
* @description
|
|
1426
|
-
*
|
|
1427
|
-
* more than once.
|
|
1428
|
-
* @default error
|
|
1559
|
+
* @description The key `ui:test-mode` ([TEST_MODE_KEY]) set to `"true"` enables tooling for trying out the event with
|
|
1560
|
+
* generated data.
|
|
1429
1561
|
*/
|
|
1430
|
-
|
|
1562
|
+
customData?: {
|
|
1563
|
+
[key: string]: string;
|
|
1564
|
+
};
|
|
1431
1565
|
endDate?: string | null;
|
|
1432
1566
|
individualCompetitorTypes: components["schemas"]["RecordTypeWithDefaults"];
|
|
1433
1567
|
name: string;
|
|
1568
|
+
/**
|
|
1569
|
+
* @default {
|
|
1570
|
+
* "duplicateCompetitorPolicy": "error",
|
|
1571
|
+
* "invalidLinkedFormatPolicy": "last-known-table"
|
|
1572
|
+
* }
|
|
1573
|
+
*/
|
|
1574
|
+
settings: components["schemas"]["EventSettings"];
|
|
1434
1575
|
/** @description The start date might be used for calculating the competitors age. */
|
|
1435
1576
|
startDate: string;
|
|
1436
1577
|
teamCompetitorTypes: components["schemas"]["RecordTypeWithDefaults"];
|
|
1437
|
-
/**
|
|
1438
|
-
* @description Enables tooling for trying out an event with generated data.
|
|
1439
|
-
* @default false
|
|
1440
|
-
*/
|
|
1441
|
-
testMode: boolean;
|
|
1442
1578
|
};
|
|
1443
1579
|
/**
|
|
1444
1580
|
* Format: uuid
|
|
@@ -1533,6 +1669,21 @@ declare interface components {
|
|
|
1533
1669
|
rows: components["schemas"]["EventLineageRow"][];
|
|
1534
1670
|
tableId: components["schemas"]["TableId"];
|
|
1535
1671
|
};
|
|
1672
|
+
/** @description Settings of an event that change how its formats execute. Missing fields get their defaults. */
|
|
1673
|
+
EventSettings: {
|
|
1674
|
+
/**
|
|
1675
|
+
* @description Whether nodes that combine tables from multiple competitor sources (e.g. merging or
|
|
1676
|
+
* concatenating) should error or silently drop rows when they encounter the same competitor
|
|
1677
|
+
* more than once.
|
|
1678
|
+
* @default error
|
|
1679
|
+
*/
|
|
1680
|
+
duplicateCompetitorPolicy: components["schemas"]["DuplicateCompetitorPolicy"];
|
|
1681
|
+
/**
|
|
1682
|
+
* @description What an InputTableNode returns when the format of its linked result table node is invalid.
|
|
1683
|
+
* @default last-known-table
|
|
1684
|
+
*/
|
|
1685
|
+
invalidLinkedFormatPolicy: components["schemas"]["InvalidLinkedFormatPolicy"];
|
|
1686
|
+
};
|
|
1536
1687
|
Example: {
|
|
1537
1688
|
/**
|
|
1538
1689
|
* @description Long description for the example.
|
|
@@ -1559,6 +1710,10 @@ declare interface components {
|
|
|
1559
1710
|
} & {
|
|
1560
1711
|
[key: string]: unknown;
|
|
1561
1712
|
};
|
|
1713
|
+
ExpressionParseError: {
|
|
1714
|
+
kind: components["schemas"]["ParseErrorKind"];
|
|
1715
|
+
location: components["schemas"]["SourceLocation"];
|
|
1716
|
+
};
|
|
1562
1717
|
ExtensionChangeEvent: ({
|
|
1563
1718
|
/** @constant */
|
|
1564
1719
|
type: "added";
|
|
@@ -1607,6 +1762,8 @@ declare interface components {
|
|
|
1607
1762
|
/** Format: date-time */
|
|
1608
1763
|
updatedAt?: string | null;
|
|
1609
1764
|
};
|
|
1765
|
+
/** @description A value of the local store or the extension store, at most 64 KiB. */
|
|
1766
|
+
ExtensionValue: string;
|
|
1610
1767
|
/** @description Allows referencing an external resource for extended documentation. */
|
|
1611
1768
|
ExternalDocumentation: {
|
|
1612
1769
|
/**
|
|
@@ -1622,18 +1779,7 @@ declare interface components {
|
|
|
1622
1779
|
} & {
|
|
1623
1780
|
[key: string]: unknown;
|
|
1624
1781
|
};
|
|
1625
|
-
ExtractRecordFieldError_for_Primitive:
|
|
1626
|
-
/** @constant */
|
|
1627
|
-
type: "field-does-not-exist";
|
|
1628
|
-
data: string;
|
|
1629
|
-
} | {
|
|
1630
|
-
/** @constant */
|
|
1631
|
-
type: "invalid-type";
|
|
1632
|
-
data: {
|
|
1633
|
-
field: string;
|
|
1634
|
-
value?: components["schemas"]["Value_for_Primitive"] | null;
|
|
1635
|
-
};
|
|
1636
|
-
};
|
|
1782
|
+
ExtractRecordFieldError_for_Primitive: ExtractRecordFieldError<Primitive>;
|
|
1637
1783
|
FieldTypeWithDefault: FieldTypeWithDefault;
|
|
1638
1784
|
FolderContent: {
|
|
1639
1785
|
classIds: components["schemas"]["ClassId"][];
|
|
@@ -1649,18 +1795,22 @@ declare interface components {
|
|
|
1649
1795
|
data: components["schemas"]["GameWithTables"];
|
|
1650
1796
|
});
|
|
1651
1797
|
FolderPath: string[];
|
|
1652
|
-
FormatConnectionDTO:
|
|
1653
|
-
pins: components["schemas"]["ConnectionPin"][];
|
|
1654
|
-
sourceFormatNodeId: components["schemas"]["FormatNodeId"];
|
|
1655
|
-
sourceOutput: components["schemas"]["OutputIdx"];
|
|
1656
|
-
targetFormatNodeId: components["schemas"]["FormatNodeId"];
|
|
1657
|
-
targetInput: components["schemas"]["InputIdx"];
|
|
1658
|
-
};
|
|
1798
|
+
FormatConnectionDTO: FormatConnectionDTO;
|
|
1659
1799
|
FormatDAO: {
|
|
1660
1800
|
description: string;
|
|
1661
1801
|
category: components["schemas"]["NodeCategory"];
|
|
1662
|
-
/**
|
|
1663
|
-
|
|
1802
|
+
/**
|
|
1803
|
+
* @description Whether the format or a child format at any depth contains a game node. Derived from the nodes, not stored.
|
|
1804
|
+
* @default false
|
|
1805
|
+
*/
|
|
1806
|
+
containsGames: boolean;
|
|
1807
|
+
customData: {
|
|
1808
|
+
[key: string]: string;
|
|
1809
|
+
};
|
|
1810
|
+
/** @default {} */
|
|
1811
|
+
disqualificationKinds: {
|
|
1812
|
+
[key: string]: components["schemas"]["DqSettings"];
|
|
1813
|
+
};
|
|
1664
1814
|
/** @description The default values in here are not guaranteed to be valid for the signature. */
|
|
1665
1815
|
docs: components["schemas"]["NodeVariantDoc"];
|
|
1666
1816
|
errors: components["schemas"]["FormatValidationError"][];
|
|
@@ -1669,6 +1819,13 @@ declare interface components {
|
|
|
1669
1819
|
id: components["schemas"]["FormatId"];
|
|
1670
1820
|
name: string;
|
|
1671
1821
|
signature: components["schemas"]["NodeSignature_for_Type_and_ParamRef"];
|
|
1822
|
+
/**
|
|
1823
|
+
* @default {
|
|
1824
|
+
* "nodes": {},
|
|
1825
|
+
* "sections": []
|
|
1826
|
+
* }
|
|
1827
|
+
*/
|
|
1828
|
+
simplifiedView: components["schemas"]["SimplifiedView"];
|
|
1672
1829
|
/** Format: uuid */
|
|
1673
1830
|
templateOrigin?: string | null;
|
|
1674
1831
|
valid: components["schemas"]["FormatValidity"];
|
|
@@ -1681,12 +1838,18 @@ declare interface components {
|
|
|
1681
1838
|
/** @default */
|
|
1682
1839
|
description: string;
|
|
1683
1840
|
connections: components["schemas"]["FormatConnectionDTO"][];
|
|
1841
|
+
customData?: {
|
|
1842
|
+
[key: string]: string;
|
|
1843
|
+
};
|
|
1684
1844
|
/**
|
|
1685
1845
|
* @description All disqualifications that can escape this format. Like checked exceptions, every
|
|
1686
1846
|
* uncaught disqualification has to be declared and every declared one has to be throwable.
|
|
1687
|
-
*
|
|
1847
|
+
* Accepts the plain list of keys of older versions.
|
|
1848
|
+
* @default {}
|
|
1688
1849
|
*/
|
|
1689
|
-
disqualificationKinds:
|
|
1850
|
+
disqualificationKinds: {
|
|
1851
|
+
[key: string]: components["schemas"]["DqSettings"];
|
|
1852
|
+
};
|
|
1690
1853
|
/** @description There must be docs for every input and output. Otherwise formats get rejected. */
|
|
1691
1854
|
docs: components["schemas"]["NodeVariantDoc"];
|
|
1692
1855
|
formatGroupId?: components["schemas"]["FormatGroupId"] | null;
|
|
@@ -1697,6 +1860,7 @@ declare interface components {
|
|
|
1697
1860
|
* Otherwise the signature will get inferred.
|
|
1698
1861
|
*/
|
|
1699
1862
|
signature: components["schemas"]["NodeSignature_for_Type_and_ParamRef"];
|
|
1863
|
+
simplifiedView?: components["schemas"]["SimplifiedView"];
|
|
1700
1864
|
};
|
|
1701
1865
|
FormatError: {
|
|
1702
1866
|
/** @constant */
|
|
@@ -1746,6 +1910,9 @@ declare interface components {
|
|
|
1746
1910
|
};
|
|
1747
1911
|
FormatGroupDAO: {
|
|
1748
1912
|
category: components["schemas"]["NodeCategory"];
|
|
1913
|
+
customData: {
|
|
1914
|
+
[key: string]: string;
|
|
1915
|
+
};
|
|
1749
1916
|
eventId: components["schemas"]["EventId"];
|
|
1750
1917
|
id: components["schemas"]["FormatGroupId"];
|
|
1751
1918
|
name: string;
|
|
@@ -1754,6 +1921,9 @@ declare interface components {
|
|
|
1754
1921
|
};
|
|
1755
1922
|
FormatGroupDTO: {
|
|
1756
1923
|
category: components["schemas"]["NodeCategory"];
|
|
1924
|
+
customData?: {
|
|
1925
|
+
[key: string]: string;
|
|
1926
|
+
};
|
|
1757
1927
|
name: string;
|
|
1758
1928
|
};
|
|
1759
1929
|
/**
|
|
@@ -1850,6 +2020,9 @@ declare interface components {
|
|
|
1850
2020
|
controlValues: {
|
|
1851
2021
|
[key: string]: components["schemas"]["Value_for_Primitive"];
|
|
1852
2022
|
};
|
|
2023
|
+
customData: {
|
|
2024
|
+
[key: string]: string;
|
|
2025
|
+
};
|
|
1853
2026
|
formatId: components["schemas"]["FormatId"];
|
|
1854
2027
|
/** @description When not yet persisted, this is a negative number unique to the graph */
|
|
1855
2028
|
id: components["schemas"]["FormatNodeId"];
|
|
@@ -1862,7 +2035,6 @@ declare interface components {
|
|
|
1862
2035
|
* be the array varg type input.
|
|
1863
2036
|
*/
|
|
1864
2037
|
inputVargsToArray: boolean;
|
|
1865
|
-
/** @description Must always be formatted as serde formats in the db, because [Self::find_by_event_and_type] relies on that. */
|
|
1866
2038
|
nodeType: components["schemas"]["NodeType"];
|
|
1867
2039
|
/**
|
|
1868
2040
|
* @description Only legal if the nodes outputs are variadic.
|
|
@@ -1888,31 +2060,7 @@ declare interface components {
|
|
|
1888
2060
|
yPos: number;
|
|
1889
2061
|
};
|
|
1890
2062
|
/** @description For documentation about the node struct, checkout the docs for FormatNodeDAO. */
|
|
1891
|
-
FormatNodeDTO:
|
|
1892
|
-
controlValues: {
|
|
1893
|
-
[key: string]: components["schemas"]["Value_for_Primitive"];
|
|
1894
|
-
};
|
|
1895
|
-
/**
|
|
1896
|
-
* @description Any unique id works, including for new nodes: whether the id refers to a new or an
|
|
1897
|
-
* existing node is determined by whether it already exists on the format, not by its value.
|
|
1898
|
-
*/
|
|
1899
|
-
id: components["schemas"]["FormatNodeId"];
|
|
1900
|
-
inputVargsToArray: boolean;
|
|
1901
|
-
nodeType: components["schemas"]["NodeType"];
|
|
1902
|
-
outputVargsToArray: boolean;
|
|
1903
|
-
parentNodeId?: components["schemas"]["FormatNodeId"] | null;
|
|
1904
|
-
settings: components["schemas"]["RecordValue_for_Primitive"];
|
|
1905
|
-
/**
|
|
1906
|
-
* @description Ignored for existing nodes, because a node's test id never changes. Defaults to the node id.
|
|
1907
|
-
* @default null
|
|
1908
|
-
*/
|
|
1909
|
-
testId: components["schemas"]["FormatNodeTestId"] | null;
|
|
1910
|
-
typeHints: components["schemas"]["TypeHints_for_Type_and_ParamRef"];
|
|
1911
|
-
/** Format: int64 */
|
|
1912
|
-
xPos: number;
|
|
1913
|
-
/** Format: int64 */
|
|
1914
|
-
yPos: number;
|
|
1915
|
-
};
|
|
2063
|
+
FormatNodeDTO: FormatNodeDTO;
|
|
1916
2064
|
/** Format: uuid */
|
|
1917
2065
|
FormatNodeId: FormatNodeId;
|
|
1918
2066
|
/** @description The node `format_node_id` in the format instance `format_instance_id`. */
|
|
@@ -1976,6 +2124,10 @@ declare interface components {
|
|
|
1976
2124
|
} | {
|
|
1977
2125
|
/** @constant */
|
|
1978
2126
|
type: "portal-has-input-connection";
|
|
2127
|
+
} | {
|
|
2128
|
+
/** @constant */
|
|
2129
|
+
type: "invalid-comment-link";
|
|
2130
|
+
data: components["schemas"]["FormatNodeId"];
|
|
1979
2131
|
} | {
|
|
1980
2132
|
/** @constant */
|
|
1981
2133
|
type: "parent-creates-cycle";
|
|
@@ -2187,108 +2339,9 @@ declare interface components {
|
|
|
2187
2339
|
testFormatInstanceId: components["schemas"]["FormatInstanceHash"];
|
|
2188
2340
|
};
|
|
2189
2341
|
/** @description Represents a state in which the format is not valid for execution but can be stored in the db. */
|
|
2190
|
-
FormatValidationError:
|
|
2191
|
-
/** @constant */
|
|
2192
|
-
type: "uncaught-throw";
|
|
2193
|
-
data: {
|
|
2194
|
-
[key: string]: components["schemas"]["RowTypeHelper_for_ParamRef"][];
|
|
2195
|
-
};
|
|
2196
|
-
} | {
|
|
2197
|
-
/** @constant */
|
|
2198
|
-
type: "unthrown-disqualification-kinds";
|
|
2199
|
-
data: components["schemas"]["DqKey"][];
|
|
2200
|
-
} | {
|
|
2201
|
-
/** @constant */
|
|
2202
|
-
type: "root-format-with-disqualification-kinds";
|
|
2203
|
-
} | {
|
|
2204
|
-
/** @constant */
|
|
2205
|
-
type: "graph-is-cyclic";
|
|
2206
|
-
} | {
|
|
2207
|
-
/** @constant */
|
|
2208
|
-
type: "too-many-inputs";
|
|
2209
|
-
data: components["schemas"]["ParentType"];
|
|
2210
|
-
} | {
|
|
2211
|
-
/** @constant */
|
|
2212
|
-
type: "too-many-outputs";
|
|
2213
|
-
data: components["schemas"]["ParentType"];
|
|
2214
|
-
} | {
|
|
2215
|
-
/** @constant */
|
|
2216
|
-
type: "invalid-node";
|
|
2217
|
-
data: [
|
|
2218
|
-
components["schemas"]["FormatNodeId"],
|
|
2219
|
-
components["schemas"]["InvalidNodeReason"]
|
|
2220
|
-
];
|
|
2221
|
-
} | {
|
|
2222
|
-
/** @constant */
|
|
2223
|
-
type: "too-many-closure-inputs";
|
|
2224
|
-
} | {
|
|
2225
|
-
/** @constant */
|
|
2226
|
-
type: "root-format-with-input-or-output";
|
|
2227
|
-
} | {
|
|
2228
|
-
/** @constant */
|
|
2229
|
-
type: "child-format-is-invalid";
|
|
2230
|
-
data: components["schemas"]["FormatId"];
|
|
2231
|
-
} | {
|
|
2232
|
-
/** @constant */
|
|
2233
|
-
type: "root-format-referenced";
|
|
2234
|
-
data: components["schemas"]["FormatId"];
|
|
2235
|
-
} | {
|
|
2236
|
-
/** @constant */
|
|
2237
|
-
type: "cyclic-parent-relation";
|
|
2238
|
-
data: components["schemas"]["FormatNodeId"][];
|
|
2239
|
-
} | {
|
|
2240
|
-
/** @constant */
|
|
2241
|
-
type: "illegal-child";
|
|
2242
|
-
data: components["schemas"]["FormatNodeId"];
|
|
2243
|
-
} | {
|
|
2244
|
-
/** @constant */
|
|
2245
|
-
type: "parent-connected-to-child";
|
|
2246
|
-
data: {
|
|
2247
|
-
child: components["schemas"]["FormatNodeId"];
|
|
2248
|
-
parent: components["schemas"]["FormatNodeId"];
|
|
2249
|
-
};
|
|
2250
|
-
} | {
|
|
2251
|
-
/** @constant */
|
|
2252
|
-
type: "connection-escapes-scope";
|
|
2253
|
-
data: {
|
|
2254
|
-
scope: components["schemas"]["FormatNodeId"];
|
|
2255
|
-
source: components["schemas"]["FormatNodeId"];
|
|
2256
|
-
target: components["schemas"]["FormatNodeId"];
|
|
2257
|
-
};
|
|
2258
|
-
} | {
|
|
2259
|
-
/** @constant */
|
|
2260
|
-
type: "input-or-output-node-with-parent";
|
|
2261
|
-
} | {
|
|
2262
|
-
/** @constant */
|
|
2263
|
-
type: "node-configuration-error";
|
|
2264
|
-
data: components["schemas"]["NodeConfigurationError"];
|
|
2265
|
-
} | {
|
|
2266
|
-
/** @constant */
|
|
2267
|
-
type: "cyclic-format-dependency";
|
|
2268
|
-
} | {
|
|
2269
|
-
/** @constant */
|
|
2270
|
-
type: "type-validation-errors";
|
|
2271
|
-
data: components["schemas"]["ValidationError_for_Type"][];
|
|
2272
|
-
} | {
|
|
2273
|
-
/** @constant */
|
|
2274
|
-
type: "static-input-received-non-static-connection";
|
|
2275
|
-
} | {
|
|
2276
|
-
/** @constant */
|
|
2277
|
-
type: "nodety-error";
|
|
2278
|
-
data: components["schemas"]["NodetyError"];
|
|
2279
|
-
} | {
|
|
2280
|
-
/** @constant */
|
|
2281
|
-
type: "format-of-other-event-referenced";
|
|
2282
|
-
data: components["schemas"]["FormatId"];
|
|
2283
|
-
} | {
|
|
2284
|
-
/** @constant */
|
|
2285
|
-
type: "invalid-signature";
|
|
2286
|
-
} | {
|
|
2287
|
-
/** @constant */
|
|
2288
|
-
type: "missing-output-node";
|
|
2289
|
-
};
|
|
2342
|
+
FormatValidationError: FormatValidationError;
|
|
2290
2343
|
/** @enum {string} */
|
|
2291
|
-
FormatValidity:
|
|
2344
|
+
FormatValidity: FormatValidity;
|
|
2292
2345
|
FullFormatDAO: {
|
|
2293
2346
|
format: components["schemas"]["FormatDAO"];
|
|
2294
2347
|
connections: components["schemas"]["FormatNodeConnectionDAO"][];
|
|
@@ -2311,26 +2364,13 @@ declare interface components {
|
|
|
2311
2364
|
formatInstanceId: components["schemas"]["FormatInstanceHash"];
|
|
2312
2365
|
formatNodeId: components["schemas"]["FormatNodeId"];
|
|
2313
2366
|
};
|
|
2314
|
-
GTFilterKind:
|
|
2315
|
-
/** @constant */
|
|
2316
|
-
type: "class-filter";
|
|
2317
|
-
} | {
|
|
2318
|
-
/** @constant */
|
|
2319
|
-
type: "gender";
|
|
2320
|
-
} | {
|
|
2321
|
-
/** @constant */
|
|
2322
|
-
type: "comparison-filter";
|
|
2323
|
-
data: components["schemas"]["ComparisonOp"];
|
|
2324
|
-
} | {
|
|
2325
|
-
/** @constant */
|
|
2326
|
-
type: "custom";
|
|
2327
|
-
};
|
|
2367
|
+
GTFilterKind: GTFilterKind;
|
|
2328
2368
|
GameDAO: {
|
|
2329
2369
|
attributes: components["schemas"]["RecordValue_for_Primitive"];
|
|
2330
|
-
|
|
2331
|
-
extensionData: {
|
|
2370
|
+
customData: {
|
|
2332
2371
|
[key: string]: string;
|
|
2333
2372
|
};
|
|
2373
|
+
eventId: components["schemas"]["EventId"];
|
|
2334
2374
|
/**
|
|
2335
2375
|
* Format: uint32
|
|
2336
2376
|
* @description The game depth of the game's entry table.
|
|
@@ -2344,7 +2384,7 @@ declare interface components {
|
|
|
2344
2384
|
};
|
|
2345
2385
|
GameDTO: {
|
|
2346
2386
|
attributes: components["schemas"]["RecordValue_for_Primitive"];
|
|
2347
|
-
|
|
2387
|
+
customData?: {
|
|
2348
2388
|
[key: string]: string;
|
|
2349
2389
|
};
|
|
2350
2390
|
gameFormatId: components["schemas"]["GameFormatId"];
|
|
@@ -2359,11 +2399,18 @@ declare interface components {
|
|
|
2359
2399
|
GameFormatDAO: {
|
|
2360
2400
|
description: string;
|
|
2361
2401
|
attributesType: components["schemas"]["RecordTypeWithDefaults"];
|
|
2362
|
-
|
|
2363
|
-
eventId: components["schemas"]["EventId"];
|
|
2364
|
-
extensionData: {
|
|
2402
|
+
customData: {
|
|
2365
2403
|
[key: string]: string;
|
|
2366
2404
|
};
|
|
2405
|
+
/**
|
|
2406
|
+
* @description Settings by disqualification kind. May hold kinds no automation disqualifies under. Kinds without an entry have
|
|
2407
|
+
* the default settings.
|
|
2408
|
+
*/
|
|
2409
|
+
disqualifications?: {
|
|
2410
|
+
[key: string]: components["schemas"]["DqSettings"];
|
|
2411
|
+
};
|
|
2412
|
+
entryListColumns: components["schemas"]["RecordTypeWithDefaults"];
|
|
2413
|
+
eventId: components["schemas"]["EventId"];
|
|
2367
2414
|
id: components["schemas"]["GameFormatId"];
|
|
2368
2415
|
name: string;
|
|
2369
2416
|
/** @description Run in order on every result row. */
|
|
@@ -2382,10 +2429,17 @@ declare interface components {
|
|
|
2382
2429
|
/** @default */
|
|
2383
2430
|
description: string;
|
|
2384
2431
|
attributesType: components["schemas"]["RecordTypeWithDefaults"];
|
|
2385
|
-
|
|
2386
|
-
extensionData: {
|
|
2432
|
+
customData?: {
|
|
2387
2433
|
[key: string]: string;
|
|
2388
2434
|
};
|
|
2435
|
+
/**
|
|
2436
|
+
* @description Settings by disqualification kind. May hold kinds no automation disqualifies under. Kinds without an entry have
|
|
2437
|
+
* the default settings.
|
|
2438
|
+
*/
|
|
2439
|
+
disqualifications?: {
|
|
2440
|
+
[key: string]: components["schemas"]["DqSettings"];
|
|
2441
|
+
};
|
|
2442
|
+
entryListColumns: components["schemas"]["RecordTypeWithDefaults"];
|
|
2389
2443
|
name: string;
|
|
2390
2444
|
/** @description Run in order on every result row. */
|
|
2391
2445
|
postProcessingSteps: components["schemas"]["GameFormatPostProcessingStep"][];
|
|
@@ -2407,22 +2461,7 @@ declare interface components {
|
|
|
2407
2461
|
* result, after the result has been entered. They never change the stored result of the game, only
|
|
2408
2462
|
* the result table the game node outputs.
|
|
2409
2463
|
*/
|
|
2410
|
-
GameFormatPostProcessingStep:
|
|
2411
|
-
/** @constant */
|
|
2412
|
-
type: "disqualify";
|
|
2413
|
-
data: {
|
|
2414
|
-
expression: string;
|
|
2415
|
-
key: components["schemas"]["DqKey"];
|
|
2416
|
-
};
|
|
2417
|
-
} | {
|
|
2418
|
-
/** @constant */
|
|
2419
|
-
type: "set-output-column";
|
|
2420
|
-
data: {
|
|
2421
|
-
column: string;
|
|
2422
|
-
columnType: components["schemas"]["TypeExpr_for_Type_and_ParamRef"];
|
|
2423
|
-
expression: string;
|
|
2424
|
-
};
|
|
2425
|
-
};
|
|
2464
|
+
GameFormatPostProcessingStep: GameFormatPostProcessingStep;
|
|
2426
2465
|
/**
|
|
2427
2466
|
* Format: uuid
|
|
2428
2467
|
* @description Identifies a game, the primary key of `games`. Comes from one of:
|
|
@@ -2434,32 +2473,9 @@ declare interface components {
|
|
|
2434
2473
|
* Changing a derivation changes what replaying a log produces and needs an `ENGINE_VERSION` increment.
|
|
2435
2474
|
*/
|
|
2436
2475
|
GameId: GameId;
|
|
2437
|
-
GameNodeDTO:
|
|
2438
|
-
/**
|
|
2439
|
-
* @description Caught disqualifications are not thrown. [DqStrategy] decides how they are surfaced.
|
|
2440
|
-
* @default {}
|
|
2441
|
-
*/
|
|
2442
|
-
catchDqs: {
|
|
2443
|
-
[key: string]: components["schemas"]["DqStrategy"];
|
|
2444
|
-
};
|
|
2445
|
-
gameFormatId: components["schemas"]["GameFormatId"];
|
|
2446
|
-
variant: components["schemas"]["GameNodeVariant"];
|
|
2447
|
-
};
|
|
2476
|
+
GameNodeDTO: GameNodeDTO;
|
|
2448
2477
|
/** @description How many games a game node plays and how they depend on each other. */
|
|
2449
|
-
GameNodeVariant:
|
|
2450
|
-
/** @constant */
|
|
2451
|
-
type: "single";
|
|
2452
|
-
} | {
|
|
2453
|
-
/** @constant */
|
|
2454
|
-
type: "parallel";
|
|
2455
|
-
} | {
|
|
2456
|
-
/** @constant */
|
|
2457
|
-
type: "sequential";
|
|
2458
|
-
data: {
|
|
2459
|
-
/** Format: uint */
|
|
2460
|
-
gameCount: number;
|
|
2461
|
-
};
|
|
2462
|
-
};
|
|
2478
|
+
GameNodeVariant: GameNodeVariant;
|
|
2463
2479
|
GamePathVariables_for_CommonWorkspaceId: {
|
|
2464
2480
|
eventId: components["schemas"]["EventId"];
|
|
2465
2481
|
gameId: components["schemas"]["GameId"];
|
|
@@ -2507,21 +2523,12 @@ declare interface components {
|
|
|
2507
2523
|
strategy: components["schemas"]["UniqueBibStrategy"];
|
|
2508
2524
|
};
|
|
2509
2525
|
/** @description Location of a validation error in the graph. */
|
|
2510
|
-
GraphLocation:
|
|
2511
|
-
|
|
2512
|
-
|
|
2513
|
-
|
|
2514
|
-
|
|
2515
|
-
|
|
2516
|
-
/** @constant */
|
|
2517
|
-
type: "InputPort";
|
|
2518
|
-
data: {
|
|
2519
|
-
/** Format: uint */
|
|
2520
|
-
inputIdx: number;
|
|
2521
|
-
/** Format: uint */
|
|
2522
|
-
nodeIdx: number;
|
|
2523
|
-
};
|
|
2524
|
-
};
|
|
2526
|
+
GraphLocation: GraphLocation;
|
|
2527
|
+
/**
|
|
2528
|
+
* @description Contains other nodes. It can add its name to the folder path of its descendants and catch the disqualifications
|
|
2529
|
+
* they throw.
|
|
2530
|
+
*/
|
|
2531
|
+
GroupNode: GroupNode;
|
|
2525
2532
|
/**
|
|
2526
2533
|
* @description The Header Object follows the structure of the Parameter Object with the
|
|
2527
2534
|
* following changes:
|
|
@@ -2571,13 +2578,6 @@ declare interface components {
|
|
|
2571
2578
|
/** @enum {string} */
|
|
2572
2579
|
HeaderStyle: "simple";
|
|
2573
2580
|
ImportArchiveError: {
|
|
2574
|
-
/** @constant */
|
|
2575
|
-
type: "incompatible-version";
|
|
2576
|
-
data: {
|
|
2577
|
-
got: components["schemas"]["SemVer"];
|
|
2578
|
-
required: string;
|
|
2579
|
-
};
|
|
2580
|
-
} | {
|
|
2581
2581
|
/** @constant */
|
|
2582
2582
|
type: "invalid-archive";
|
|
2583
2583
|
data: components["schemas"]["InvalidArchiveError"];
|
|
@@ -2596,12 +2596,6 @@ declare interface components {
|
|
|
2596
2596
|
ImportArchiveMutation: {
|
|
2597
2597
|
archive: components["schemas"]["Archive"];
|
|
2598
2598
|
eventId: components["schemas"]["EventId"];
|
|
2599
|
-
/**
|
|
2600
|
-
* @description Links the installed entities to their archive entries and reuses entries installed before, see
|
|
2601
|
-
* [template_origin](crate::graphite_engine::template_origin). False for log entries written before linking existed.
|
|
2602
|
-
* @default false
|
|
2603
|
-
*/
|
|
2604
|
-
linkTemplate: boolean;
|
|
2605
2599
|
/**
|
|
2606
2600
|
* @description When `Some`, regenerates format node ids from this seed (deterministic log replay).
|
|
2607
2601
|
* When `None`, preserves archive node ids — for one-shot imports such as format tests.
|
|
@@ -2667,28 +2661,8 @@ declare interface components {
|
|
|
2667
2661
|
/** @constant */
|
|
2668
2662
|
type: "missing-dependency";
|
|
2669
2663
|
};
|
|
2670
|
-
|
|
2671
|
-
|
|
2672
|
-
type: "invalid-node";
|
|
2673
|
-
} | {
|
|
2674
|
-
/** @constant */
|
|
2675
|
-
type: "node-is-not-variadic-but-vargs-to-array-set";
|
|
2676
|
-
} | {
|
|
2677
|
-
/** @constant */
|
|
2678
|
-
type: "illegal-control-values";
|
|
2679
|
-
} | ({
|
|
2680
|
-
/** @constant */
|
|
2681
|
-
type: "node-configuration-error";
|
|
2682
|
-
} & components["schemas"]["NodeConfigurationError"]) | {
|
|
2683
|
-
/** @constant */
|
|
2684
|
-
type: "catching-disqualifications-of-variadic-format";
|
|
2685
|
-
} | {
|
|
2686
|
-
/** @constant */
|
|
2687
|
-
type: "appending-disqualifications-to-incompatible-output";
|
|
2688
|
-
} | {
|
|
2689
|
-
/** @constant */
|
|
2690
|
-
type: "game-result-not-assignable-to-entry";
|
|
2691
|
-
};
|
|
2664
|
+
InvalidLinkedFormatPolicy: "empty-table" | "node-error" | "last-known-table";
|
|
2665
|
+
InvalidNodeReason: InvalidNodeReason;
|
|
2692
2666
|
/** @description License information for the exposed API. */
|
|
2693
2667
|
License: {
|
|
2694
2668
|
/** @description An [SPDX](https://spdx.org/spdx-specification-21-web-version#h.jxpfx0ykyb60) license expression for the API. The `identifier` field is mutually exclusive of the `url` field. */
|
|
@@ -2772,7 +2746,7 @@ declare interface components {
|
|
|
2772
2746
|
* @description Identifies a type parameter within a type expression or node signature.
|
|
2773
2747
|
* Can be created from a single character (e.g. `'T'`) or a string (hashed for multi-char names).
|
|
2774
2748
|
*/
|
|
2775
|
-
LocalParamID:
|
|
2749
|
+
LocalParamID: LocalParamID;
|
|
2776
2750
|
/** @description An error that originated in a node, identified independently of the unstable `NodeIndex`. */
|
|
2777
2751
|
LocatedNodeError: {
|
|
2778
2752
|
error: components["schemas"]["NodeRuntimeError"];
|
|
@@ -2780,6 +2754,21 @@ declare interface components {
|
|
|
2780
2754
|
formatId: components["schemas"]["FormatId"];
|
|
2781
2755
|
formatInstanceId: components["schemas"]["FormatInstanceHash"];
|
|
2782
2756
|
formatNodeId: components["schemas"]["FormatNodeId"];
|
|
2757
|
+
nodeType: components["schemas"]["NodeTypeDiscriminants"];
|
|
2758
|
+
/**
|
|
2759
|
+
* @description The executed node instances that the steps in the lineage of the rows of `error` name, see
|
|
2760
|
+
* [graphite_table::Step::node]. Resolved here because the nodes may be gone by the time the error is shown, like
|
|
2761
|
+
* the ones of a rolled back mutation.
|
|
2762
|
+
*/
|
|
2763
|
+
nodes: components["schemas"]["LocatedNodeInstance"][];
|
|
2764
|
+
};
|
|
2765
|
+
/** @description A node instance that the lineage of a [LocatedNodeError] names, see [LocatedNodeError::nodes]. */
|
|
2766
|
+
LocatedNodeInstance: {
|
|
2767
|
+
formatId: components["schemas"]["FormatId"];
|
|
2768
|
+
formatInstanceId: components["schemas"]["FormatInstanceHash"];
|
|
2769
|
+
formatNodeId: components["schemas"]["FormatNodeId"];
|
|
2770
|
+
id: components["schemas"]["NodeInstanceHash"];
|
|
2771
|
+
nodeType: components["schemas"]["NodeTypeDiscriminants"];
|
|
2783
2772
|
};
|
|
2784
2773
|
/** Format: uuid */
|
|
2785
2774
|
LogBatchId: string;
|
|
@@ -2791,10 +2780,6 @@ declare interface components {
|
|
|
2791
2780
|
/** @constant */
|
|
2792
2781
|
type: "rename-game-format";
|
|
2793
2782
|
data: components["schemas"]["RenameGameFormatMutation"];
|
|
2794
|
-
} | {
|
|
2795
|
-
/** @constant */
|
|
2796
|
-
type: "duplicate-game-format";
|
|
2797
|
-
data: components["schemas"]["DuplicateGameFormatMutation"];
|
|
2798
2783
|
} | {
|
|
2799
2784
|
/** @constant */
|
|
2800
2785
|
type: "delete-game-format";
|
|
@@ -2807,10 +2792,6 @@ declare interface components {
|
|
|
2807
2792
|
/** @constant */
|
|
2808
2793
|
type: "add-class";
|
|
2809
2794
|
data: components["schemas"]["AddClassMutation"];
|
|
2810
|
-
} | {
|
|
2811
|
-
/** @constant */
|
|
2812
|
-
type: "add-classes";
|
|
2813
|
-
data: components["schemas"]["AddClassesMutation"];
|
|
2814
2795
|
} | {
|
|
2815
2796
|
/** @constant */
|
|
2816
2797
|
type: "rename-class";
|
|
@@ -2819,6 +2800,10 @@ declare interface components {
|
|
|
2819
2800
|
/** @constant */
|
|
2820
2801
|
type: "update-class";
|
|
2821
2802
|
data: components["schemas"]["UpdateClassMutation"];
|
|
2803
|
+
} | {
|
|
2804
|
+
/** @constant */
|
|
2805
|
+
type: "update-class-state";
|
|
2806
|
+
data: components["schemas"]["UpdateClassStateMutation"];
|
|
2822
2807
|
} | {
|
|
2823
2808
|
/** @constant */
|
|
2824
2809
|
type: "delete-class";
|
|
@@ -2859,6 +2844,10 @@ declare interface components {
|
|
|
2859
2844
|
/** @constant */
|
|
2860
2845
|
type: "update-game-table";
|
|
2861
2846
|
data: components["schemas"]["UpdateTableMutation"];
|
|
2847
|
+
} | {
|
|
2848
|
+
/** @constant */
|
|
2849
|
+
type: "update-standalone-table";
|
|
2850
|
+
data: components["schemas"]["UpdateStandaloneTableMutation"];
|
|
2862
2851
|
} | {
|
|
2863
2852
|
/** @constant */
|
|
2864
2853
|
type: "delete-game-table";
|
|
@@ -2975,6 +2964,10 @@ declare interface components {
|
|
|
2975
2964
|
/** @constant */
|
|
2976
2965
|
type: "link-to-template";
|
|
2977
2966
|
data: components["schemas"]["LinkToTemplateMutation"];
|
|
2967
|
+
} | {
|
|
2968
|
+
/** @constant */
|
|
2969
|
+
type: "set-custom-data";
|
|
2970
|
+
data: components["schemas"]["SetCustomDataMutation"];
|
|
2978
2971
|
};
|
|
2979
2972
|
LogEntrySmall: {
|
|
2980
2973
|
description: string;
|
|
@@ -2991,7 +2984,7 @@ declare interface components {
|
|
|
2991
2984
|
LogId: LogId;
|
|
2992
2985
|
LogsQuery: {
|
|
2993
2986
|
after: components["schemas"]["LogId"];
|
|
2994
|
-
/** Format:
|
|
2987
|
+
/** Format: uint32 */
|
|
2995
2988
|
limit: number;
|
|
2996
2989
|
};
|
|
2997
2990
|
/**
|
|
@@ -3012,9 +3005,7 @@ declare interface components {
|
|
|
3012
3005
|
/** @description The exact name to give the copied format. */
|
|
3013
3006
|
name: string;
|
|
3014
3007
|
};
|
|
3015
|
-
MakeValidError:
|
|
3016
|
-
missingDefaultField: string;
|
|
3017
|
-
};
|
|
3008
|
+
MakeValidError: MakeValidError;
|
|
3018
3009
|
Map_of_TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type: {
|
|
3019
3010
|
[key: string]: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
3020
3011
|
};
|
|
@@ -3022,7 +3013,7 @@ declare interface components {
|
|
|
3022
3013
|
[key: string]: components["schemas"]["TypeExpr_for_Type_and_ParamRef"];
|
|
3023
3014
|
};
|
|
3024
3015
|
/** @enum {string} */
|
|
3025
|
-
MathNodeOp:
|
|
3016
|
+
MathNodeOp: MathNodeOp;
|
|
3026
3017
|
MediaType: {
|
|
3027
3018
|
encoding?: {
|
|
3028
3019
|
[key: string]: components["schemas"]["Encoding"];
|
|
@@ -3035,43 +3026,21 @@ declare interface components {
|
|
|
3035
3026
|
} & {
|
|
3036
3027
|
[key: string]: unknown;
|
|
3037
3028
|
};
|
|
3029
|
+
/**
|
|
3030
|
+
* @description What a continuation does with competitors of its parts that are missing from the previous result.
|
|
3031
|
+
* If the previous result is empty, nobody is missing: everyone's previous total is 0.
|
|
3032
|
+
*/
|
|
3033
|
+
MissingFromPrevious: MissingFromPrevious;
|
|
3038
3034
|
/** @enum {string} */
|
|
3039
|
-
MultiplexingStrategy:
|
|
3035
|
+
MultiplexingStrategy: MultiplexingStrategy;
|
|
3040
3036
|
NameQuery: {
|
|
3041
3037
|
name: string;
|
|
3042
3038
|
};
|
|
3043
|
-
NoSupertypeLayerReason:
|
|
3039
|
+
NoSupertypeLayerReason: NoSupertypeLayerReason;
|
|
3044
3040
|
NoSupertypeLayer_for_Type: NoSupertypeLayer<Type>;
|
|
3045
3041
|
/** @enum {string} */
|
|
3046
3042
|
NodeCategory: "logic" | "game" | "tables" | "arrays" | "math" | "class" | "input-output" | "invalid" | "other" | "root";
|
|
3047
|
-
NodeConfigurationError:
|
|
3048
|
-
/** @constant */
|
|
3049
|
-
type: "extract-record-field-error";
|
|
3050
|
-
data: components["schemas"]["ExtractRecordFieldError_for_Primitive"];
|
|
3051
|
-
} | {
|
|
3052
|
-
/** @constant */
|
|
3053
|
-
type: "invalid-value";
|
|
3054
|
-
data: {
|
|
3055
|
-
givenValue: components["schemas"]["Value_for_SerializableNonPrimitiveValue"];
|
|
3056
|
-
identifier: string;
|
|
3057
|
-
message: string;
|
|
3058
|
-
};
|
|
3059
|
-
} | {
|
|
3060
|
-
/** @constant */
|
|
3061
|
-
type: "node-is-not-variadic-but-vargs-to-array-set";
|
|
3062
|
-
} | {
|
|
3063
|
-
/** @constant */
|
|
3064
|
-
type: "found-closure-input-node-in-non-closure";
|
|
3065
|
-
} | {
|
|
3066
|
-
/** @constant */
|
|
3067
|
-
type: "invalid-node";
|
|
3068
|
-
} | {
|
|
3069
|
-
/** @constant */
|
|
3070
|
-
type: "illegal-vargs-to-array";
|
|
3071
|
-
} | {
|
|
3072
|
-
/** @constant */
|
|
3073
|
-
type: "illegal-control-values";
|
|
3074
|
-
};
|
|
3043
|
+
NodeConfigurationError: NodeConfigurationError;
|
|
3075
3044
|
NodeDocTest: {
|
|
3076
3045
|
description?: string | null;
|
|
3077
3046
|
format: components["schemas"]["FormatDTO"];
|
|
@@ -3121,12 +3090,22 @@ declare interface components {
|
|
|
3121
3090
|
result: components["schemas"]["SerializableNodeResult"];
|
|
3122
3091
|
testId: components["schemas"]["FormatNodeTestId"];
|
|
3123
3092
|
};
|
|
3093
|
+
/**
|
|
3094
|
+
* Format: uuid
|
|
3095
|
+
* @description Shared by the variants of one node, each in another group of the same section.
|
|
3096
|
+
*/
|
|
3097
|
+
NodeLinkId: NodeLinkId;
|
|
3124
3098
|
NodePathVariables_for_CommonWorkspaceId: {
|
|
3125
3099
|
eventId: components["schemas"]["EventId"];
|
|
3126
3100
|
formatId: components["schemas"]["FormatId"];
|
|
3127
3101
|
nodeId: components["schemas"]["FormatNodeId"];
|
|
3128
3102
|
workspaceId: components["schemas"]["CommonWorkspaceId"];
|
|
3129
3103
|
};
|
|
3104
|
+
NodePlacement: {
|
|
3105
|
+
group?: components["schemas"]["SimplifiedGroupId"] | null;
|
|
3106
|
+
link?: components["schemas"]["NodeLinkId"] | null;
|
|
3107
|
+
section: components["schemas"]["SimplifiedSectionId"];
|
|
3108
|
+
};
|
|
3130
3109
|
NodePrototype: {
|
|
3131
3110
|
/**
|
|
3132
3111
|
* @description If there is only one variant, the node should not display a select for the variants.
|
|
@@ -3228,367 +3207,77 @@ declare interface components {
|
|
|
3228
3207
|
* @description Function-like type for a node: generic parameters, inputs, outputs, and defaults.
|
|
3229
3208
|
* Written in notation as `<T>(T) -> (T)` for the identity node.
|
|
3230
3209
|
*/
|
|
3231
|
-
NodeSignature_for_Type_and_ErasedScopedTypeRef_for_Type:
|
|
3232
|
-
/**
|
|
3233
|
-
* @description Types that get used when there is no connection to the input.
|
|
3234
|
-
* These get ignored for nested NodeSignatures.
|
|
3235
|
-
*/
|
|
3236
|
-
defaultInputTypes: {
|
|
3237
|
-
[key: string]: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
3238
|
-
};
|
|
3239
|
-
/**
|
|
3240
|
-
* @description inputs and outputs are no PortTypes because having them TypeExpr
|
|
3241
|
-
* Enables one to express `() -> Never` which is the node signature
|
|
3242
|
-
* assignable to all other node signatures. Useful for inferring what
|
|
3243
|
-
* type a closure should be.
|
|
3244
|
-
*/
|
|
3245
|
-
inputs: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
3246
|
-
outputs: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
3247
|
-
/** @description Generic parameters with their bounds and defaults. */
|
|
3248
|
-
parameters: components["schemas"]["TypeParameters_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
3249
|
-
/**
|
|
3250
|
-
* @description Tags this node *requires* from every incoming edge.
|
|
3251
|
-
*
|
|
3252
|
-
* During validation, each incoming edge's source tags are checked against
|
|
3253
|
-
* this set. Any tag present here but missing from an incoming edge
|
|
3254
|
-
* produces a [`TagMissing`](crate::validation::ValidationErrorKind::TagMissing)
|
|
3255
|
-
* error.
|
|
3256
|
-
*
|
|
3257
|
-
* Defaults to `∅` (no requirements).
|
|
3258
|
-
*/
|
|
3259
|
-
requiredTags: number[];
|
|
3260
|
-
/**
|
|
3261
|
-
* @description Tags this node *provides* to downstream consumers.
|
|
3262
|
-
*
|
|
3263
|
-
* - `Some(set)` — the node carries exactly the listed tags.
|
|
3264
|
-
* - `None` — the node carries *every* tag (universal set), making it a
|
|
3265
|
-
* supertype of all other tag sets.
|
|
3266
|
-
*
|
|
3267
|
-
* Tags propagate forward through the graph: a node's effective tag set
|
|
3268
|
-
* is the intersection of its own `tags` with every incoming edge's tags.
|
|
3269
|
-
*
|
|
3270
|
-
* Defaults to `Some(∅)` (no tags).
|
|
3271
|
-
*
|
|
3272
|
-
* `u32` is used instead of `usize` for wasm compatibility (JS has 32-bit
|
|
3273
|
-
* integers).
|
|
3274
|
-
*/
|
|
3275
|
-
tags?: number[] | null;
|
|
3276
|
-
};
|
|
3210
|
+
NodeSignature_for_Type_and_ErasedScopedTypeRef_for_Type: NodeSignature<Type, components["schemas"]["ErasedScopedTypeRef_for_Type"]>;
|
|
3277
3211
|
/**
|
|
3278
3212
|
* @description Function-like type for a node: generic parameters, inputs, outputs, and defaults.
|
|
3279
3213
|
* Written in notation as `<T>(T) -> (T)` for the identity node.
|
|
3280
3214
|
*/
|
|
3281
3215
|
NodeSignature_for_Type_and_ParamRef: NodeSignature<Type, ParamRef>;
|
|
3282
|
-
NodeType:
|
|
3283
|
-
|
|
3284
|
-
|
|
3285
|
-
|
|
3286
|
-
|
|
3287
|
-
|
|
3288
|
-
|
|
3289
|
-
/** @
|
|
3290
|
-
|
|
3291
|
-
|
|
3292
|
-
|
|
3293
|
-
|
|
3294
|
-
|
|
3295
|
-
|
|
3296
|
-
|
|
3297
|
-
|
|
3216
|
+
NodeType: NodeType;
|
|
3217
|
+
/** @description Auto-generated discriminant enum variants */
|
|
3218
|
+
NodeTypeDiscriminants: ("input" | "output" | "format" | "math" | "game" | "input-table" | "portal" | "class" | "disqualify" | "group" | "string-concat" | "string-format" | "sort-node" | "constant" | "merge-tables" | "divide-table" | "distribute-table" | "split-table" | "concat" | "remove-places" | "table-map" | "length" | "boolean-op" | "record-field" | "add-record-fields" | "fallback" | "gt-row" | "filter-gt" | "comparison" | "comment" | "ternary" | "separate-row" | "update-row" | "array-map" | "create-array" | "create-table" | "array-access" | "unpack-array" | "promotion-relegation" | "age-at" | "split-by-class" | "empty-record" | "event-competitors" | "add-columns" | "matrix-transpose" | "simple-scoring" | "classes-competitors") | "output-table" | "invalid";
|
|
3219
|
+
NodeVariantDoc: {
|
|
3220
|
+
description?: string | null;
|
|
3221
|
+
/** @default other */
|
|
3222
|
+
category: components["schemas"]["NodeCategory"];
|
|
3223
|
+
/** @description If the node has `children_spec` set to `Closure`, this documents that closure */
|
|
3224
|
+
closureDocs?: components["schemas"]["NodeVariantDoc"] | null;
|
|
3225
|
+
inputVargsToArrayArrayLabel: components["schemas"]["PortLabelPart"][];
|
|
3226
|
+
inputs: components["schemas"]["PortsDoc"];
|
|
3227
|
+
/** @description The label for the new output when vargs_to_array is enabled. */
|
|
3228
|
+
outputVargsToArrayArrayLabel: components["schemas"]["PortLabelPart"][];
|
|
3229
|
+
/** @description The label for the new input when vargs_to_array is enabled. */
|
|
3230
|
+
outputVargsToArrayCountLabel: components["schemas"]["PortLabelPart"][];
|
|
3231
|
+
outputs: components["schemas"]["PortsDoc"];
|
|
3232
|
+
variantLabel: string;
|
|
3233
|
+
};
|
|
3234
|
+
NodeVariantPrototype: {
|
|
3235
|
+
childrenSpec: components["schemas"]["ChildrenSpec"];
|
|
3236
|
+
/**
|
|
3237
|
+
* Format: uint32
|
|
3238
|
+
* @description The number of vargs to add when creating this node
|
|
3239
|
+
*/
|
|
3240
|
+
defaultInputVargCount: number;
|
|
3241
|
+
/** Format: uint32 */
|
|
3242
|
+
defaultOutputVargCount: number;
|
|
3243
|
+
includeInSearch: boolean;
|
|
3244
|
+
/** @description These outputs emit warnings when not used */
|
|
3245
|
+
mustUseOutputs: components["schemas"]["OutputIdx"][];
|
|
3246
|
+
/** @description Uniquely identifies a node variant */
|
|
3247
|
+
nodeType: components["schemas"]["NodeType"];
|
|
3248
|
+
/** @description Type of settings excluding the variant property. */
|
|
3249
|
+
settingsType: components["schemas"]["RecordTypeHelper_for_ParamRef"];
|
|
3250
|
+
signature: components["schemas"]["NodeSignature_for_Type_and_ParamRef"];
|
|
3251
|
+
/** @description For the docs of format nodes */
|
|
3252
|
+
userDefinedDocs?: components["schemas"]["NodeVariantDoc"] | null;
|
|
3253
|
+
};
|
|
3254
|
+
NodetyError: NodetyError;
|
|
3255
|
+
OAuth2Flows: ({
|
|
3256
|
+
implicit: {
|
|
3257
|
+
authorizationUrl: string;
|
|
3258
|
+
refreshUrl?: string | null;
|
|
3259
|
+
/** @default {} */
|
|
3260
|
+
scopes: {
|
|
3261
|
+
[key: string]: string;
|
|
3298
3262
|
};
|
|
3299
|
-
formatId: components["schemas"]["FormatId"];
|
|
3300
|
-
};
|
|
3301
|
-
} | {
|
|
3302
|
-
/** @constant */
|
|
3303
|
-
type: "math";
|
|
3304
|
-
data: {
|
|
3305
|
-
op: components["schemas"]["MathNodeOp"];
|
|
3306
3263
|
};
|
|
3307
3264
|
} | {
|
|
3308
|
-
|
|
3309
|
-
|
|
3310
|
-
|
|
3311
|
-
|
|
3312
|
-
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
/** @constant */
|
|
3316
|
-
type: "input-table";
|
|
3317
|
-
data: {
|
|
3318
|
-
tableId: components["schemas"]["TableId"];
|
|
3265
|
+
password: {
|
|
3266
|
+
refreshUrl?: string | null;
|
|
3267
|
+
/** @default {} */
|
|
3268
|
+
scopes: {
|
|
3269
|
+
[key: string]: string;
|
|
3270
|
+
};
|
|
3271
|
+
tokenUrl: string;
|
|
3319
3272
|
};
|
|
3320
3273
|
} | {
|
|
3321
|
-
|
|
3322
|
-
|
|
3323
|
-
|
|
3324
|
-
|
|
3325
|
-
|
|
3326
|
-
|
|
3327
|
-
|
|
3328
|
-
/** @constant */
|
|
3329
|
-
type: "class";
|
|
3330
|
-
data: {
|
|
3331
|
-
classId: components["schemas"]["ClassId"];
|
|
3332
|
-
};
|
|
3333
|
-
} | {
|
|
3334
|
-
/** @constant */
|
|
3335
|
-
type: "catch-dq";
|
|
3336
|
-
data: components["schemas"]["CatchDqNode"];
|
|
3337
|
-
} | {
|
|
3338
|
-
/** @constant */
|
|
3339
|
-
type: "disqualify";
|
|
3340
|
-
data: components["schemas"]["DisqualifyNode"];
|
|
3341
|
-
} | {
|
|
3342
|
-
/** @constant */
|
|
3343
|
-
type: "folder";
|
|
3344
|
-
data: {
|
|
3345
|
-
folderName: string;
|
|
3346
|
-
};
|
|
3347
|
-
} | {
|
|
3348
|
-
/** @constant */
|
|
3349
|
-
type: "group";
|
|
3350
|
-
data: {
|
|
3351
|
-
name: string;
|
|
3352
|
-
};
|
|
3353
|
-
} | {
|
|
3354
|
-
/** @constant */
|
|
3355
|
-
type: "string-concat";
|
|
3356
|
-
} | {
|
|
3357
|
-
/** @constant */
|
|
3358
|
-
type: "string-format";
|
|
3359
|
-
} | {
|
|
3360
|
-
/** @constant */
|
|
3361
|
-
type: "sort-node";
|
|
3362
|
-
} | {
|
|
3363
|
-
/** @constant */
|
|
3364
|
-
type: "constant";
|
|
3365
|
-
} | {
|
|
3366
|
-
/** @constant */
|
|
3367
|
-
type: "merge-tables";
|
|
3368
|
-
} | {
|
|
3369
|
-
/** @constant */
|
|
3370
|
-
type: "divide-table";
|
|
3371
|
-
} | {
|
|
3372
|
-
/** @constant */
|
|
3373
|
-
type: "distribute-table";
|
|
3374
|
-
} | {
|
|
3375
|
-
/** @constant */
|
|
3376
|
-
type: "split-table";
|
|
3377
|
-
data: components["schemas"]["SplitTableNode"];
|
|
3378
|
-
} | {
|
|
3379
|
-
/** @constant */
|
|
3380
|
-
type: "concat";
|
|
3381
|
-
data: {
|
|
3382
|
-
sorted: boolean;
|
|
3383
|
-
};
|
|
3384
|
-
} | {
|
|
3385
|
-
/** @constant */
|
|
3386
|
-
type: "remove-places";
|
|
3387
|
-
} | {
|
|
3388
|
-
/** @constant */
|
|
3389
|
-
type: "table-map";
|
|
3390
|
-
} | {
|
|
3391
|
-
/** @constant */
|
|
3392
|
-
type: "length";
|
|
3393
|
-
} | {
|
|
3394
|
-
/** @constant */
|
|
3395
|
-
type: "boolean-op";
|
|
3396
|
-
data: {
|
|
3397
|
-
op: components["schemas"]["BooleanOp"];
|
|
3398
|
-
};
|
|
3399
|
-
} | {
|
|
3400
|
-
/** @constant */
|
|
3401
|
-
type: "record-field";
|
|
3402
|
-
data: {
|
|
3403
|
-
op: components["schemas"]["RecordFieldOp"];
|
|
3404
|
-
};
|
|
3405
|
-
} | {
|
|
3406
|
-
/** @constant */
|
|
3407
|
-
type: "add-record-fields";
|
|
3408
|
-
data: components["schemas"]["AddRecordFieldsNode"];
|
|
3409
|
-
} | {
|
|
3410
|
-
/** @constant */
|
|
3411
|
-
type: "fallback";
|
|
3412
|
-
} | {
|
|
3413
|
-
/** @constant */
|
|
3414
|
-
type: "gt-row";
|
|
3415
|
-
data: {
|
|
3416
|
-
errorOnNotFound: boolean;
|
|
3417
|
-
};
|
|
3418
|
-
} | {
|
|
3419
|
-
/** @constant */
|
|
3420
|
-
type: "filter-gt";
|
|
3421
|
-
data: {
|
|
3422
|
-
filter: components["schemas"]["GTFilterKind"];
|
|
3423
|
-
};
|
|
3424
|
-
} | {
|
|
3425
|
-
/** @constant */
|
|
3426
|
-
type: "comparison";
|
|
3427
|
-
data: {
|
|
3428
|
-
op: components["schemas"]["ComparisonOp"];
|
|
3429
|
-
};
|
|
3430
|
-
} | {
|
|
3431
|
-
/** @constant */
|
|
3432
|
-
type: "comment";
|
|
3433
|
-
data: {
|
|
3434
|
-
comment: string;
|
|
3435
|
-
};
|
|
3436
|
-
} | {
|
|
3437
|
-
/** @constant */
|
|
3438
|
-
type: "ternary";
|
|
3439
|
-
} | {
|
|
3440
|
-
/** @constant */
|
|
3441
|
-
type: "separate-row";
|
|
3442
|
-
} | {
|
|
3443
|
-
/** @constant */
|
|
3444
|
-
type: "update-row";
|
|
3445
|
-
} | {
|
|
3446
|
-
/** @constant */
|
|
3447
|
-
type: "array-map";
|
|
3448
|
-
} | {
|
|
3449
|
-
/** @constant */
|
|
3450
|
-
type: "create-array";
|
|
3451
|
-
} | {
|
|
3452
|
-
/** @constant */
|
|
3453
|
-
type: "create-table";
|
|
3454
|
-
} | {
|
|
3455
|
-
/** @constant */
|
|
3456
|
-
type: "array-access";
|
|
3457
|
-
data: {
|
|
3458
|
-
errorOnNotFound: boolean;
|
|
3459
|
-
};
|
|
3460
|
-
} | {
|
|
3461
|
-
/** @constant */
|
|
3462
|
-
type: "unpack-array";
|
|
3463
|
-
data: {
|
|
3464
|
-
errorOnNotFound: boolean;
|
|
3465
|
-
};
|
|
3466
|
-
} | {
|
|
3467
|
-
/** @constant */
|
|
3468
|
-
type: "promotion-relegation";
|
|
3469
|
-
data: {
|
|
3470
|
-
/** Format: uint */
|
|
3471
|
-
finalCount?: number | null;
|
|
3472
|
-
};
|
|
3473
|
-
} | {
|
|
3474
|
-
/** @constant */
|
|
3475
|
-
type: "age-at";
|
|
3476
|
-
} | {
|
|
3477
|
-
/** @constant */
|
|
3478
|
-
type: "split-by-class";
|
|
3479
|
-
data: {
|
|
3480
|
-
/** Format: uint */
|
|
3481
|
-
classCount: number;
|
|
3482
|
-
};
|
|
3483
|
-
} | {
|
|
3484
|
-
/** @constant */
|
|
3485
|
-
type: "invalid";
|
|
3486
|
-
data: {
|
|
3487
|
-
nodeType: components["schemas"]["NodeType"];
|
|
3488
|
-
};
|
|
3489
|
-
} | {
|
|
3490
|
-
/** @constant */
|
|
3491
|
-
type: "empty-record";
|
|
3492
|
-
} | {
|
|
3493
|
-
/** @constant */
|
|
3494
|
-
type: "event-competitors";
|
|
3495
|
-
data: components["schemas"]["EventCompetitorsNode"];
|
|
3496
|
-
} | {
|
|
3497
|
-
/** @constant */
|
|
3498
|
-
type: "add-columns";
|
|
3499
|
-
data: components["schemas"]["AddColumnsNode"];
|
|
3500
|
-
} | {
|
|
3501
|
-
/** @constant */
|
|
3502
|
-
type: "matrix-transpose";
|
|
3503
|
-
} | {
|
|
3504
|
-
/** @constant */
|
|
3505
|
-
type: "simple-scoring";
|
|
3506
|
-
data: components["schemas"]["SimpleScoringNode"];
|
|
3507
|
-
} | {
|
|
3508
|
-
/** @constant */
|
|
3509
|
-
type: "classes-competitors";
|
|
3510
|
-
data: components["schemas"]["ClassesCompetitorsNode"];
|
|
3511
|
-
};
|
|
3512
|
-
/** @description Auto-generated discriminant enum variants */
|
|
3513
|
-
NodeTypeDiscriminants: ("input" | "output" | "format" | "math" | "game" | "output-table" | "input-table" | "portal" | "class" | "catch-dq" | "disqualify" | "folder" | "group" | "string-concat" | "string-format" | "sort-node" | "constant" | "merge-tables" | "divide-table" | "distribute-table" | "split-table" | "concat" | "remove-places" | "table-map" | "length" | "boolean-op" | "record-field" | "add-record-fields" | "fallback" | "gt-row" | "filter-gt" | "comparison" | "comment" | "ternary" | "separate-row" | "update-row" | "array-map" | "create-array" | "create-table" | "array-access" | "unpack-array" | "promotion-relegation" | "age-at" | "split-by-class" | "empty-record" | "event-competitors" | "add-columns" | "matrix-transpose" | "simple-scoring" | "classes-competitors") | "invalid";
|
|
3514
|
-
NodeVariantDoc: {
|
|
3515
|
-
description?: string | null;
|
|
3516
|
-
/** @default other */
|
|
3517
|
-
category: components["schemas"]["NodeCategory"];
|
|
3518
|
-
/** @description If the node has `children_spec` set to `Closure`, this documents that closure */
|
|
3519
|
-
closureDocs?: components["schemas"]["NodeVariantDoc"] | null;
|
|
3520
|
-
inputVargsToArrayArrayLabel: components["schemas"]["PortLabelPart"][];
|
|
3521
|
-
inputs: components["schemas"]["PortsDoc"];
|
|
3522
|
-
/** @description The label for the new output when vargs_to_array is enabled. */
|
|
3523
|
-
outputVargsToArrayArrayLabel: components["schemas"]["PortLabelPart"][];
|
|
3524
|
-
/** @description The label for the new input when vargs_to_array is enabled. */
|
|
3525
|
-
outputVargsToArrayCountLabel: components["schemas"]["PortLabelPart"][];
|
|
3526
|
-
outputs: components["schemas"]["PortsDoc"];
|
|
3527
|
-
variantLabel: string;
|
|
3528
|
-
};
|
|
3529
|
-
NodeVariantPrototype: {
|
|
3530
|
-
childrenSpec: components["schemas"]["ChildrenSpec"];
|
|
3531
|
-
/**
|
|
3532
|
-
* Format: uint32
|
|
3533
|
-
* @description The number of vargs to add when creating this node
|
|
3534
|
-
*/
|
|
3535
|
-
defaultInputVargCount: number;
|
|
3536
|
-
/** Format: uint32 */
|
|
3537
|
-
defaultOutputVargCount: number;
|
|
3538
|
-
includeInSearch: boolean;
|
|
3539
|
-
/** @description These outputs emit warnings when not used */
|
|
3540
|
-
mustUseOutputs: components["schemas"]["OutputIdx"][];
|
|
3541
|
-
/** @description Uniquely identifies a node variant */
|
|
3542
|
-
nodeType: components["schemas"]["NodeType"];
|
|
3543
|
-
/** @description Type of settings excluding the variant property. */
|
|
3544
|
-
settingsType: components["schemas"]["RecordTypeHelper_for_ParamRef"];
|
|
3545
|
-
signature: components["schemas"]["NodeSignature_for_Type_and_ParamRef"];
|
|
3546
|
-
/** @description For the docs of format nodes */
|
|
3547
|
-
userDefinedDocs?: components["schemas"]["NodeVariantDoc"] | null;
|
|
3548
|
-
};
|
|
3549
|
-
NodetyError: {
|
|
3550
|
-
/** @constant */
|
|
3551
|
-
type: "NodeHasChildren";
|
|
3552
|
-
} | {
|
|
3553
|
-
/** @constant */
|
|
3554
|
-
type: "ParentNotFound";
|
|
3555
|
-
} | {
|
|
3556
|
-
/** @constant */
|
|
3557
|
-
type: "NodeNotFound";
|
|
3558
|
-
} | {
|
|
3559
|
-
/** @constant */
|
|
3560
|
-
type: "CycleDetected";
|
|
3561
|
-
} | {
|
|
3562
|
-
/** @constant */
|
|
3563
|
-
type: "TypeExprValidationError";
|
|
3564
|
-
error: components["schemas"]["TypeExprValidationError"];
|
|
3565
|
-
};
|
|
3566
|
-
OAuth2Flows: ({
|
|
3567
|
-
implicit: {
|
|
3568
|
-
authorizationUrl: string;
|
|
3569
|
-
refreshUrl?: string | null;
|
|
3570
|
-
/** @default {} */
|
|
3571
|
-
scopes: {
|
|
3572
|
-
[key: string]: string;
|
|
3573
|
-
};
|
|
3574
|
-
};
|
|
3575
|
-
} | {
|
|
3576
|
-
password: {
|
|
3577
|
-
refreshUrl?: string | null;
|
|
3578
|
-
/** @default {} */
|
|
3579
|
-
scopes: {
|
|
3580
|
-
[key: string]: string;
|
|
3581
|
-
};
|
|
3582
|
-
tokenUrl: string;
|
|
3583
|
-
};
|
|
3584
|
-
} | {
|
|
3585
|
-
clientCredentials: {
|
|
3586
|
-
refreshUrl?: string | null;
|
|
3587
|
-
/** @default {} */
|
|
3588
|
-
scopes: {
|
|
3589
|
-
[key: string]: string;
|
|
3590
|
-
};
|
|
3591
|
-
tokenUrl: string;
|
|
3274
|
+
clientCredentials: {
|
|
3275
|
+
refreshUrl?: string | null;
|
|
3276
|
+
/** @default {} */
|
|
3277
|
+
scopes: {
|
|
3278
|
+
[key: string]: string;
|
|
3279
|
+
};
|
|
3280
|
+
tokenUrl: string;
|
|
3592
3281
|
};
|
|
3593
3282
|
} | {
|
|
3594
3283
|
authorizationCode: {
|
|
@@ -3859,14 +3548,7 @@ declare interface components {
|
|
|
3859
3548
|
/** Format: uint16 */
|
|
3860
3549
|
OutputIdx: OutputIdx;
|
|
3861
3550
|
/** @description References a local type parameter. This is context sensitive because parameters are scoped. */
|
|
3862
|
-
ParamRef:
|
|
3863
|
-
/**
|
|
3864
|
-
* @description If false, this reference will not be used to collect candidates for the parameter.
|
|
3865
|
-
* In the notation this is written as `!T`.
|
|
3866
|
-
*/
|
|
3867
|
-
infer: boolean;
|
|
3868
|
-
paramId: components["schemas"]["LocalParamID"];
|
|
3869
|
-
};
|
|
3551
|
+
ParamRef: ParamRef;
|
|
3870
3552
|
Parameter: (({
|
|
3871
3553
|
/**
|
|
3872
3554
|
* @description A brief description of the parameter. This could
|
|
@@ -4115,37 +3797,8 @@ declare interface components {
|
|
|
4115
3797
|
[key: string]: components["schemas"]["MediaType"];
|
|
4116
3798
|
};
|
|
4117
3799
|
}));
|
|
4118
|
-
ParentType:
|
|
4119
|
-
|
|
4120
|
-
type: "format-root";
|
|
4121
|
-
} | {
|
|
4122
|
-
/** @constant */
|
|
4123
|
-
type: "closure-node";
|
|
4124
|
-
data: components["schemas"]["FormatNodeId"];
|
|
4125
|
-
};
|
|
4126
|
-
ParseError: {
|
|
4127
|
-
kind: components["schemas"]["ParseErrorKind"];
|
|
4128
|
-
location: components["schemas"]["SourceLocation"];
|
|
4129
|
-
};
|
|
4130
|
-
ParseErrorKind: {
|
|
4131
|
-
/** @constant */
|
|
4132
|
-
type: "invalid-token";
|
|
4133
|
-
} | {
|
|
4134
|
-
/** @constant */
|
|
4135
|
-
type: "unexpected-token";
|
|
4136
|
-
} | {
|
|
4137
|
-
/** @constant */
|
|
4138
|
-
type: "expected-token";
|
|
4139
|
-
data: {
|
|
4140
|
-
expected: string;
|
|
4141
|
-
};
|
|
4142
|
-
} | {
|
|
4143
|
-
/** @constant */
|
|
4144
|
-
type: "invalid-number";
|
|
4145
|
-
} | {
|
|
4146
|
-
/** @constant */
|
|
4147
|
-
type: "unterminated-string";
|
|
4148
|
-
};
|
|
3800
|
+
ParentType: ParentType;
|
|
3801
|
+
ParseErrorKind: ParseErrorKind;
|
|
4149
3802
|
PatchTableStateMutation: {
|
|
4150
3803
|
/** @description None resets the table state */
|
|
4151
3804
|
state?: components["schemas"]["TableState"] | null;
|
|
@@ -4245,10 +3898,7 @@ declare interface components {
|
|
|
4245
3898
|
data: string;
|
|
4246
3899
|
};
|
|
4247
3900
|
/** @description A list of port types, optionally with a variadic type (`...T`). */
|
|
4248
|
-
PortTypes_for_Type_and_ErasedScopedTypeRef_for_Type:
|
|
4249
|
-
ports: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"][];
|
|
4250
|
-
varg?: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"] | null;
|
|
4251
|
-
};
|
|
3901
|
+
PortTypes_for_Type_and_ErasedScopedTypeRef_for_Type: PortTypes<Type, components["schemas"]["ErasedScopedTypeRef_for_Type"]>;
|
|
4252
3902
|
/** @description A list of port types, optionally with a variadic type (`...T`). */
|
|
4253
3903
|
PortTypes_for_Type_and_ParamRef: PortTypes<Type, ParamRef>;
|
|
4254
3904
|
PortsDoc: {
|
|
@@ -4267,7 +3917,7 @@ declare interface components {
|
|
|
4267
3917
|
minAge: number;
|
|
4268
3918
|
};
|
|
4269
3919
|
/** @description Crate local version of [std::convert::Infallible] */
|
|
4270
|
-
Primitive:
|
|
3920
|
+
Primitive: Primitive;
|
|
4271
3921
|
PushTableRowMutationsMutation: {
|
|
4272
3922
|
/**
|
|
4273
3923
|
* @description Challenge for a client to prevent accidentally
|
|
@@ -4289,11 +3939,8 @@ declare interface components {
|
|
|
4289
3939
|
seed: components["schemas"]["Seed"];
|
|
4290
3940
|
};
|
|
4291
3941
|
/** @enum {string} */
|
|
4292
|
-
RecordFieldOp:
|
|
4293
|
-
RecordMakeValidMutation:
|
|
4294
|
-
columnName: string;
|
|
4295
|
-
newValue: components["schemas"]["Value_for_Primitive"];
|
|
4296
|
-
};
|
|
3942
|
+
RecordFieldOp: RecordFieldOp;
|
|
3943
|
+
RecordMakeValidMutation: RecordMakeValidMutation;
|
|
4297
3944
|
RecordModifications: {
|
|
4298
3945
|
/**
|
|
4299
3946
|
* Format: uint
|
|
@@ -4325,9 +3972,7 @@ declare interface components {
|
|
|
4325
3972
|
};
|
|
4326
3973
|
};
|
|
4327
3974
|
RecordValue_for_Primitive: RecordValue<Primitive>;
|
|
4328
|
-
RecordValue_for_SerializableNonPrimitiveValue:
|
|
4329
|
-
[key: string]: components["schemas"]["Value_for_SerializableNonPrimitiveValue"];
|
|
4330
|
-
};
|
|
3975
|
+
RecordValue_for_SerializableNonPrimitiveValue: RecordValue<SerializableNonPrimitiveValue>;
|
|
4331
3976
|
ReferenceOr_for_Example: {
|
|
4332
3977
|
/**
|
|
4333
3978
|
* @description A description which by default SHOULD override that of the
|
|
@@ -4582,10 +4227,8 @@ declare interface components {
|
|
|
4582
4227
|
hash: number[];
|
|
4583
4228
|
id: components["schemas"]["LogId"];
|
|
4584
4229
|
};
|
|
4585
|
-
|
|
4586
|
-
|
|
4587
|
-
taskId: string;
|
|
4588
|
-
};
|
|
4230
|
+
/** @enum {string} */
|
|
4231
|
+
ReplicationSide: "source" | "target";
|
|
4589
4232
|
ReplicationTargetMultipart: {
|
|
4590
4233
|
/** Format: binary */
|
|
4591
4234
|
file: Blob;
|
|
@@ -4617,7 +4260,7 @@ declare interface components {
|
|
|
4617
4260
|
[key: string]: unknown;
|
|
4618
4261
|
};
|
|
4619
4262
|
Resolve: {
|
|
4620
|
-
keep: components["schemas"]["
|
|
4263
|
+
keep: components["schemas"]["ReplicationSide"];
|
|
4621
4264
|
};
|
|
4622
4265
|
/** @description A table as nodes see it, without the results whose competitor is not in the entry of their game. */
|
|
4623
4266
|
ResolvedTable: {
|
|
@@ -4717,47 +4360,8 @@ declare interface components {
|
|
|
4717
4360
|
};
|
|
4718
4361
|
/** Format: int64 */
|
|
4719
4362
|
RowMutationIdx: RowMutationIdx;
|
|
4720
|
-
RowMutationKind:
|
|
4721
|
-
|
|
4722
|
-
type: "set-record-field";
|
|
4723
|
-
field: string;
|
|
4724
|
-
value: components["schemas"]["Value_for_Primitive"];
|
|
4725
|
-
} | {
|
|
4726
|
-
/** @constant */
|
|
4727
|
-
type: "push-unranked";
|
|
4728
|
-
columns: components["schemas"]["RecordValue_for_Primitive"];
|
|
4729
|
-
} | {
|
|
4730
|
-
/** @constant */
|
|
4731
|
-
type: "remove";
|
|
4732
|
-
} | {
|
|
4733
|
-
/** @constant */
|
|
4734
|
-
type: "set-place";
|
|
4735
|
-
/** Format: uint */
|
|
4736
|
-
place: number;
|
|
4737
|
-
} | {
|
|
4738
|
-
/** @constant */
|
|
4739
|
-
type: "set-unranked";
|
|
4740
|
-
/** Format: uint */
|
|
4741
|
-
tiebraker: number;
|
|
4742
|
-
} | {
|
|
4743
|
-
/** @constant */
|
|
4744
|
-
type: "set-place-and-tie-braker";
|
|
4745
|
-
/** Format: uint */
|
|
4746
|
-
place: number;
|
|
4747
|
-
/** Format: uint */
|
|
4748
|
-
tiebraker: number;
|
|
4749
|
-
};
|
|
4750
|
-
RowMutationWithBatch: {
|
|
4751
|
-
/**
|
|
4752
|
-
* Format: int64
|
|
4753
|
-
* @description When performing batch actions like delete all, then all these will have the same batch id.
|
|
4754
|
-
* Otherwise it will get incremented. Used for undo & redo.
|
|
4755
|
-
*/
|
|
4756
|
-
batch: number;
|
|
4757
|
-
/** Format: int64 */
|
|
4758
|
-
competitorId: number;
|
|
4759
|
-
kind: components["schemas"]["RowMutationKind"];
|
|
4760
|
-
};
|
|
4363
|
+
RowMutationKind: RowMutationKind;
|
|
4364
|
+
RowMutationWithBatch: RowMutationWithBatch;
|
|
4761
4365
|
RowQuery: {
|
|
4762
4366
|
/** @description The competitor of the row */
|
|
4763
4367
|
competitorId: components["schemas"]["CompetitorId"];
|
|
@@ -4770,52 +4374,10 @@ declare interface components {
|
|
|
4770
4374
|
timestamp: string;
|
|
4771
4375
|
};
|
|
4772
4376
|
/** @description GameTableTypes types should **only** be manipulated though this helper to have a single source of truth for the structure. */
|
|
4773
|
-
RowTypeHelper_for_ParamRef:
|
|
4774
|
-
columns: components["schemas"]["RecordTypeHelper_for_ParamRef"];
|
|
4775
|
-
};
|
|
4377
|
+
RowTypeHelper_for_ParamRef: RowTypeHelper<ParamRef>;
|
|
4776
4378
|
Rows_for_Sorted: Rows<Sorted>;
|
|
4777
4379
|
Rows_for_Unsorted: Rows<Unsorted>;
|
|
4778
|
-
RuntimeErrorKind:
|
|
4779
|
-
/** @constant */
|
|
4780
|
-
type: "division-by-zero";
|
|
4781
|
-
} | {
|
|
4782
|
-
/** @constant */
|
|
4783
|
-
type: "variable-not-found";
|
|
4784
|
-
data: {
|
|
4785
|
-
name: string;
|
|
4786
|
-
};
|
|
4787
|
-
} | {
|
|
4788
|
-
/** @constant */
|
|
4789
|
-
type: "function-not-found";
|
|
4790
|
-
data: {
|
|
4791
|
-
name: string;
|
|
4792
|
-
};
|
|
4793
|
-
} | {
|
|
4794
|
-
/** @constant */
|
|
4795
|
-
type: "index-out-of-bounds";
|
|
4796
|
-
} | {
|
|
4797
|
-
/** @constant */
|
|
4798
|
-
type: "invalid-index";
|
|
4799
|
-
} | {
|
|
4800
|
-
/** @constant */
|
|
4801
|
-
type: "invalid-math-operands";
|
|
4802
|
-
} | {
|
|
4803
|
-
/** @constant */
|
|
4804
|
-
type: "non-boolean-condition";
|
|
4805
|
-
} | {
|
|
4806
|
-
/** @constant */
|
|
4807
|
-
type: "non-boolean-operand";
|
|
4808
|
-
} | {
|
|
4809
|
-
/** @constant */
|
|
4810
|
-
type: "invalid-comparison-operands";
|
|
4811
|
-
} | {
|
|
4812
|
-
/** @constant */
|
|
4813
|
-
type: "argument";
|
|
4814
|
-
data: {
|
|
4815
|
-
expected: string;
|
|
4816
|
-
got: string;
|
|
4817
|
-
};
|
|
4818
|
-
};
|
|
4380
|
+
RuntimeErrorKind: RuntimeErrorKind;
|
|
4819
4381
|
SchemaObject: {
|
|
4820
4382
|
/**
|
|
4821
4383
|
* @description A free-form property to include an example of an instance for this
|
|
@@ -4899,27 +4461,7 @@ declare interface components {
|
|
|
4899
4461
|
errorState: components["schemas"]["NodeErrorState_for_NodeRuntimeError"];
|
|
4900
4462
|
values: components["schemas"]["SerializablePortValues_for_OutputIdx"];
|
|
4901
4463
|
};
|
|
4902
|
-
SerializableNonPrimitiveValue:
|
|
4903
|
-
/** @constant */
|
|
4904
|
-
type: "game-table";
|
|
4905
|
-
data: components["schemas"]["Table_for_Unsorted_and_StateMetadata"];
|
|
4906
|
-
} | {
|
|
4907
|
-
/** @constant */
|
|
4908
|
-
type: "game-table-sorted";
|
|
4909
|
-
data: components["schemas"]["Table_for_Sorted_and_StateMetadata"];
|
|
4910
|
-
} | {
|
|
4911
|
-
/** @constant */
|
|
4912
|
-
type: "row";
|
|
4913
|
-
data: components["schemas"]["Row"];
|
|
4914
|
-
} | {
|
|
4915
|
-
/** @constant */
|
|
4916
|
-
type: "class";
|
|
4917
|
-
/** Format: uuid */
|
|
4918
|
-
data: string;
|
|
4919
|
-
} | {
|
|
4920
|
-
/** @constant */
|
|
4921
|
-
type: "closure";
|
|
4922
|
-
};
|
|
4464
|
+
SerializableNonPrimitiveValue: SerializableNonPrimitiveValue;
|
|
4923
4465
|
SerializablePortValues_for_InputIdx: {
|
|
4924
4466
|
values: {
|
|
4925
4467
|
[key: string]: components["schemas"]["Value_for_SerializableNonPrimitiveValue"];
|
|
@@ -4983,6 +4525,12 @@ declare interface components {
|
|
|
4983
4525
|
} & {
|
|
4984
4526
|
[key: string]: unknown;
|
|
4985
4527
|
};
|
|
4528
|
+
/** @description Sets one key of the `custom_data` of an entity, `None` deletes it. */
|
|
4529
|
+
SetCustomDataMutation: {
|
|
4530
|
+
entity: components["schemas"]["CustomDataEntity"];
|
|
4531
|
+
key: string;
|
|
4532
|
+
value?: string | null;
|
|
4533
|
+
};
|
|
4986
4534
|
/** @description Adds or sets the extension to the given version */
|
|
4987
4535
|
SetExtensionMutation: {
|
|
4988
4536
|
eventId: components["schemas"]["EventId"];
|
|
@@ -4996,8 +4544,6 @@ declare interface components {
|
|
|
4996
4544
|
SetFormatsFormatGroupQuery: {
|
|
4997
4545
|
formatGroupId?: components["schemas"]["FormatGroupId"] | null;
|
|
4998
4546
|
};
|
|
4999
|
-
/** @enum {string} */
|
|
5000
|
-
Side: "source" | "target";
|
|
5001
4547
|
/**
|
|
5002
4548
|
* @description Place 1 = 1 point, Place 2 = 2 points, etc.
|
|
5003
4549
|
* On tie, whoever won the part with the highest priority wins.
|
|
@@ -5011,20 +4557,43 @@ declare interface components {
|
|
|
5011
4557
|
* Competitors are the union of all parts: a competitor without a place in a part
|
|
5012
4558
|
* (missing from the table of that part, or in it without a place) scores one point
|
|
5013
4559
|
* more than that part has rows, so not finishing a part is always worse than
|
|
5014
|
-
* finishing it last.
|
|
4560
|
+
* finishing it last. An empty part has not taken place yet and scores 0 for everyone.
|
|
4561
|
+
*
|
|
4562
|
+
* With `continues_previous`, the first input is the result of a previous scoring,
|
|
4563
|
+
* `Table<{total_points: Integer}, Sorted>`, and the totals add this node's parts to the previous `total_points`.
|
|
4564
|
+
* The previous result's other columns are carried over, those named like a part are replaced. Ties keep the
|
|
4565
|
+
* previous result's order.
|
|
5015
4566
|
*/
|
|
5016
|
-
SimpleScoringNode:
|
|
5017
|
-
parts: components["schemas"]["SimpleScoringPart"][];
|
|
5018
|
-
};
|
|
4567
|
+
SimpleScoringNode: SimpleScoringNode;
|
|
5019
4568
|
/** @description One scored part, e.g. a single race of a series. */
|
|
5020
|
-
SimpleScoringPart:
|
|
5021
|
-
|
|
4569
|
+
SimpleScoringPart: SimpleScoringPart;
|
|
4570
|
+
SimplifiedGroup: {
|
|
4571
|
+
id: components["schemas"]["SimplifiedGroupId"];
|
|
5022
4572
|
name: string;
|
|
5023
|
-
|
|
5024
|
-
|
|
5025
|
-
|
|
5026
|
-
|
|
5027
|
-
|
|
4573
|
+
};
|
|
4574
|
+
/**
|
|
4575
|
+
* Format: uuid
|
|
4576
|
+
* @description Unique per format, not only per section.
|
|
4577
|
+
*/
|
|
4578
|
+
SimplifiedGroupId: SimplifiedGroupId;
|
|
4579
|
+
SimplifiedSection: {
|
|
4580
|
+
/** @description In display order. */
|
|
4581
|
+
groups: components["schemas"]["SimplifiedGroup"][];
|
|
4582
|
+
id: components["schemas"]["SimplifiedSectionId"];
|
|
4583
|
+
name: string;
|
|
4584
|
+
};
|
|
4585
|
+
/** Format: uuid */
|
|
4586
|
+
SimplifiedSectionId: SimplifiedSectionId;
|
|
4587
|
+
/**
|
|
4588
|
+
* @description How the simplified view arranges the format's nodes. Only the simplified view interprets it: the backend stores it,
|
|
4589
|
+
* keeps its references consistent ([Self::repaired]) and carries it over to copies with new node ids.
|
|
4590
|
+
*/
|
|
4591
|
+
SimplifiedView: {
|
|
4592
|
+
nodes: {
|
|
4593
|
+
[key: string]: components["schemas"]["NodePlacement"];
|
|
4594
|
+
};
|
|
4595
|
+
/** @description In display order. */
|
|
4596
|
+
sections: components["schemas"]["SimplifiedSection"][];
|
|
5028
4597
|
};
|
|
5029
4598
|
SnapshotMultipart: {
|
|
5030
4599
|
/** Format: binary */
|
|
@@ -5069,12 +4638,7 @@ declare interface components {
|
|
|
5069
4638
|
type: "internal";
|
|
5070
4639
|
};
|
|
5071
4640
|
/** @description 1-based line and column at the start of a token. */
|
|
5072
|
-
SourceLocation:
|
|
5073
|
-
/** Format: uint */
|
|
5074
|
-
column: number;
|
|
5075
|
-
/** Format: uint */
|
|
5076
|
-
line: number;
|
|
5077
|
-
};
|
|
4641
|
+
SourceLocation: SourceLocation;
|
|
5078
4642
|
/**
|
|
5079
4643
|
* @description Splits a sorted table at the given places, see `Table::split_n`.
|
|
5080
4644
|
*
|
|
@@ -5087,35 +4651,15 @@ declare interface components {
|
|
|
5087
4651
|
* <C extends {}>(Table<C, Sorted>, Array<Integer>) -> (Array<Table<C, Sorted>>)
|
|
5088
4652
|
* ```
|
|
5089
4653
|
*/
|
|
5090
|
-
SplitTableNode:
|
|
5091
|
-
|
|
5092
|
-
type: "static";
|
|
5093
|
-
data: {
|
|
5094
|
-
/** Format: uint16 */
|
|
5095
|
-
splitCount: number;
|
|
5096
|
-
};
|
|
5097
|
-
} | {
|
|
5098
|
-
/** @constant */
|
|
5099
|
-
type: "dynamic";
|
|
5100
|
-
};
|
|
4654
|
+
SplitTableNode: SplitTableNode;
|
|
4655
|
+
/** @description A standalone table of the user. Its kind is always [TableKind::Other], its state is set like the state of any table. */
|
|
5101
4656
|
StandaloneTableDTO: {
|
|
5102
4657
|
columnTypes: components["schemas"]["RecordTypeWithDefaults"];
|
|
5103
4658
|
name: string;
|
|
5104
|
-
/** @description If Some, sets either layer one or layer two state depending on who issues the request. */
|
|
5105
|
-
state?: components["schemas"]["TableState"] | null;
|
|
5106
|
-
tableKind: components["schemas"]["TableKind"];
|
|
5107
|
-
};
|
|
5108
|
-
Step: {
|
|
5109
|
-
/**
|
|
5110
|
-
* Format: uuid
|
|
5111
|
-
* @description Whoever ran the operation, see [Origin::attributed]: the engine's `NodeInstanceHash`, a raw uuid because this
|
|
5112
|
-
* crate doesn't know engine types. None until it is attributed.
|
|
5113
|
-
*/
|
|
5114
|
-
node?: string | null;
|
|
5115
|
-
op: components["schemas"]["StepOp"];
|
|
5116
4659
|
};
|
|
4660
|
+
Step: Step;
|
|
5117
4661
|
/** @description An operation that moved rows between or within tables. */
|
|
5118
|
-
StepOp:
|
|
4662
|
+
StepOp: StepOp;
|
|
5119
4663
|
StoreExtensionValueMutation: {
|
|
5120
4664
|
eventId: components["schemas"]["EventId"];
|
|
5121
4665
|
extension: string;
|
|
@@ -5234,9 +4778,9 @@ declare interface components {
|
|
|
5234
4778
|
rows: components["schemas"]["Row"][];
|
|
5235
4779
|
};
|
|
5236
4780
|
/** @enum {string} */
|
|
5237
|
-
TableSorting:
|
|
4781
|
+
TableSorting: TableSorting;
|
|
5238
4782
|
/** Format: int64 */
|
|
5239
|
-
TableState:
|
|
4783
|
+
TableState: TableState;
|
|
5240
4784
|
/** @description Encodes the two columns `game_id` and `column_types` (exactly one of which must be NON NULL). */
|
|
5241
4785
|
TableVariant: {
|
|
5242
4786
|
/** @constant */
|
|
@@ -5256,15 +4800,9 @@ declare interface components {
|
|
|
5256
4800
|
table: components["schemas"]["TableDAO"];
|
|
5257
4801
|
};
|
|
5258
4802
|
/** @description Combines rows with table attributes and state */
|
|
5259
|
-
Table_for_Sorted_and_StateMetadata:
|
|
5260
|
-
rows: components["schemas"]["Rows_for_Sorted"];
|
|
5261
|
-
state: components["schemas"]["TableState"];
|
|
5262
|
-
};
|
|
4803
|
+
Table_for_Sorted_and_StateMetadata: Table<Sorted, StateMetadata>;
|
|
5263
4804
|
/** @description Combines rows with table attributes and state */
|
|
5264
|
-
Table_for_Unsorted_and_StateMetadata:
|
|
5265
|
-
rows: components["schemas"]["Rows_for_Unsorted"];
|
|
5266
|
-
state: components["schemas"]["TableState"];
|
|
5267
|
-
};
|
|
4805
|
+
Table_for_Unsorted_and_StateMetadata: Table<Unsorted, StateMetadata>;
|
|
5268
4806
|
/**
|
|
5269
4807
|
* @description Adds metadata to a single tag that is used by the
|
|
5270
4808
|
* Operation Object. It is not mandatory to have a
|
|
@@ -5325,6 +4863,10 @@ declare interface components {
|
|
|
5325
4863
|
/** @constant */
|
|
5326
4864
|
type: "detached";
|
|
5327
4865
|
};
|
|
4866
|
+
TaskPathVariables: {
|
|
4867
|
+
/** Format: uuid */
|
|
4868
|
+
taskId: string;
|
|
4869
|
+
};
|
|
5328
4870
|
TaskProgressDTO: {
|
|
5329
4871
|
/** @constant */
|
|
5330
4872
|
type: "in-progress";
|
|
@@ -5355,6 +4897,11 @@ declare interface components {
|
|
|
5355
4897
|
/** @constant */
|
|
5356
4898
|
type: "failed";
|
|
5357
4899
|
data: {
|
|
4900
|
+
/**
|
|
4901
|
+
* Format: uint
|
|
4902
|
+
* @description The index of the log entry that failed, for tasks that apply log entries.
|
|
4903
|
+
*/
|
|
4904
|
+
entry?: number | null;
|
|
5358
4905
|
error: string;
|
|
5359
4906
|
};
|
|
5360
4907
|
};
|
|
@@ -5400,6 +4947,8 @@ declare interface components {
|
|
|
5400
4947
|
number,
|
|
5401
4948
|
number
|
|
5402
4949
|
];
|
|
4950
|
+
/** @description One way a row got to where it is. */
|
|
4951
|
+
Trail: Trail;
|
|
5403
4952
|
Type: Type;
|
|
5404
4953
|
/**
|
|
5405
4954
|
* @description Can be parsed from string with the following syntax:
|
|
@@ -5410,67 +4959,11 @@ declare interface components {
|
|
|
5410
4959
|
* - `{a: Integer} -> Float`
|
|
5411
4960
|
* - `{} -> Any`
|
|
5412
4961
|
*/
|
|
5413
|
-
TypeContext:
|
|
5414
|
-
|
|
5415
|
-
|
|
5416
|
-
|
|
5417
|
-
|
|
5418
|
-
};
|
|
5419
|
-
TypeError: {
|
|
5420
|
-
kind: components["schemas"]["TypeErrorKind"];
|
|
5421
|
-
location: components["schemas"]["SourceLocation"];
|
|
5422
|
-
};
|
|
5423
|
-
TypeErrorKind: {
|
|
5424
|
-
/** @constant */
|
|
5425
|
-
type: "unknown-variable";
|
|
5426
|
-
data: {
|
|
5427
|
-
name: string;
|
|
5428
|
-
};
|
|
5429
|
-
} | {
|
|
5430
|
-
/** @constant */
|
|
5431
|
-
type: "unknown-function";
|
|
5432
|
-
data: {
|
|
5433
|
-
name: string;
|
|
5434
|
-
};
|
|
5435
|
-
} | {
|
|
5436
|
-
/** @constant */
|
|
5437
|
-
type: "wrong-arity";
|
|
5438
|
-
data: {
|
|
5439
|
-
/** Format: uint */
|
|
5440
|
-
expected: number;
|
|
5441
|
-
/** Format: uint */
|
|
5442
|
-
got: number;
|
|
5443
|
-
name: string;
|
|
5444
|
-
};
|
|
5445
|
-
} | {
|
|
5446
|
-
/** @constant */
|
|
5447
|
-
type: "type-mismatch";
|
|
5448
|
-
data: {
|
|
5449
|
-
expected: string;
|
|
5450
|
-
got: string;
|
|
5451
|
-
};
|
|
5452
|
-
} | {
|
|
5453
|
-
/** @constant */
|
|
5454
|
-
type: "non-integer-index";
|
|
5455
|
-
} | {
|
|
5456
|
-
/** @constant */
|
|
5457
|
-
type: "non-record-property-access";
|
|
5458
|
-
} | {
|
|
5459
|
-
/** @constant */
|
|
5460
|
-
type: "nodety";
|
|
5461
|
-
data: {
|
|
5462
|
-
message: string;
|
|
5463
|
-
};
|
|
5464
|
-
};
|
|
5465
|
-
TypeErrors: components["schemas"]["TypeError"][];
|
|
5466
|
-
TypeExprValidationError: {
|
|
5467
|
-
/** @constant */
|
|
5468
|
-
type: "UnknownVar";
|
|
5469
|
-
var: components["schemas"]["LocalParamID"];
|
|
5470
|
-
} | {
|
|
5471
|
-
/** @constant */
|
|
5472
|
-
type: "CyclicReference";
|
|
5473
|
-
};
|
|
4962
|
+
TypeContext: TypeContext;
|
|
4963
|
+
TypeError: TypeError_2;
|
|
4964
|
+
TypeErrorKind: TypeErrorKind;
|
|
4965
|
+
TypeErrors: TypeErrors;
|
|
4966
|
+
TypeExprValidationError: TypeExprValidationError;
|
|
5474
4967
|
/**
|
|
5475
4968
|
* @description Type expression—the core type representation in nodety.
|
|
5476
4969
|
*
|
|
@@ -5480,74 +4973,7 @@ declare interface components {
|
|
|
5480
4973
|
* [`PartialEq`], [`Eq`] and [`Hash`] are structural: `A | B` is not equal to `B | A`.
|
|
5481
4974
|
* [`Eq`] and [`Hash`] are available when `T: Eq + Hash`.
|
|
5482
4975
|
*/
|
|
5483
|
-
TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type:
|
|
5484
|
-
/** @constant */
|
|
5485
|
-
type: "Type";
|
|
5486
|
-
data: components["schemas"]["Type"];
|
|
5487
|
-
} | {
|
|
5488
|
-
/** @constant */
|
|
5489
|
-
type: "Constructor";
|
|
5490
|
-
data: {
|
|
5491
|
-
inner: components["schemas"]["Type"];
|
|
5492
|
-
/** @description Type arguments / record fields. Iterates in insertion order; equality ignores order. */
|
|
5493
|
-
parameters: components["schemas"]["Map_of_TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
5494
|
-
};
|
|
5495
|
-
} | {
|
|
5496
|
-
/** @constant */
|
|
5497
|
-
type: "Operation";
|
|
5498
|
-
data: {
|
|
5499
|
-
a: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
5500
|
-
b: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
5501
|
-
operator: components["schemas"]["ArithmeticOperator"];
|
|
5502
|
-
};
|
|
5503
|
-
} | {
|
|
5504
|
-
/** @constant */
|
|
5505
|
-
type: "NodeSignature";
|
|
5506
|
-
data: components["schemas"]["NodeSignature_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
5507
|
-
} | {
|
|
5508
|
-
/** @constant */
|
|
5509
|
-
type: "PortTypes";
|
|
5510
|
-
data: components["schemas"]["PortTypes_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
5511
|
-
} | {
|
|
5512
|
-
/** @constant */
|
|
5513
|
-
type: "Union";
|
|
5514
|
-
data: [
|
|
5515
|
-
components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"],
|
|
5516
|
-
components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"]
|
|
5517
|
-
];
|
|
5518
|
-
} | {
|
|
5519
|
-
/** @constant */
|
|
5520
|
-
type: "KeyOf";
|
|
5521
|
-
data: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
5522
|
-
} | {
|
|
5523
|
-
/** @constant */
|
|
5524
|
-
type: "Index";
|
|
5525
|
-
data: {
|
|
5526
|
-
expr: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
5527
|
-
index: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
5528
|
-
};
|
|
5529
|
-
} | {
|
|
5530
|
-
/** @constant */
|
|
5531
|
-
type: "Intersection";
|
|
5532
|
-
data: [
|
|
5533
|
-
components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"],
|
|
5534
|
-
components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"]
|
|
5535
|
-
];
|
|
5536
|
-
} | {
|
|
5537
|
-
/** @constant */
|
|
5538
|
-
type: "Conditional";
|
|
5539
|
-
data: components["schemas"]["Conditional_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
5540
|
-
} | {
|
|
5541
|
-
/** @constant */
|
|
5542
|
-
type: "Any";
|
|
5543
|
-
} | {
|
|
5544
|
-
/** @constant */
|
|
5545
|
-
type: "Never";
|
|
5546
|
-
} | {
|
|
5547
|
-
/** @constant */
|
|
5548
|
-
type: "Ref";
|
|
5549
|
-
data: components["schemas"]["ErasedScopedTypeRef_for_Type"];
|
|
5550
|
-
};
|
|
4976
|
+
TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type: TypeExpr<Type, components["schemas"]["ErasedScopedTypeRef_for_Type"]>;
|
|
5551
4977
|
/**
|
|
5552
4978
|
* @description Type expression—the core type representation in nodety.
|
|
5553
4979
|
*
|
|
@@ -5557,107 +4983,27 @@ declare interface components {
|
|
|
5557
4983
|
* [`PartialEq`], [`Eq`] and [`Hash`] are structural: `A | B` is not equal to `B | A`.
|
|
5558
4984
|
* [`Eq`] and [`Hash`] are available when `T: Eq + Hash`.
|
|
5559
4985
|
*/
|
|
5560
|
-
TypeExpr_for_Type_and_ParamRef:
|
|
5561
|
-
/** @constant */
|
|
5562
|
-
type: "Type";
|
|
5563
|
-
data: components["schemas"]["Type"];
|
|
5564
|
-
} | {
|
|
5565
|
-
/** @constant */
|
|
5566
|
-
type: "Constructor";
|
|
5567
|
-
data: {
|
|
5568
|
-
inner: components["schemas"]["Type"];
|
|
5569
|
-
/** @description Type arguments / record fields. Iterates in insertion order; equality ignores order. */
|
|
5570
|
-
parameters: components["schemas"]["Map_of_TypeExpr_for_Type_and_ParamRef"];
|
|
5571
|
-
};
|
|
5572
|
-
} | {
|
|
5573
|
-
/** @constant */
|
|
5574
|
-
type: "Operation";
|
|
5575
|
-
data: {
|
|
5576
|
-
a: components["schemas"]["TypeExpr_for_Type_and_ParamRef"];
|
|
5577
|
-
b: components["schemas"]["TypeExpr_for_Type_and_ParamRef"];
|
|
5578
|
-
operator: components["schemas"]["ArithmeticOperator"];
|
|
5579
|
-
};
|
|
5580
|
-
} | {
|
|
5581
|
-
/** @constant */
|
|
5582
|
-
type: "NodeSignature";
|
|
5583
|
-
data: components["schemas"]["NodeSignature_for_Type_and_ParamRef"];
|
|
5584
|
-
} | {
|
|
5585
|
-
/** @constant */
|
|
5586
|
-
type: "PortTypes";
|
|
5587
|
-
data: components["schemas"]["PortTypes_for_Type_and_ParamRef"];
|
|
5588
|
-
} | {
|
|
5589
|
-
/** @constant */
|
|
5590
|
-
type: "Union";
|
|
5591
|
-
data: [
|
|
5592
|
-
components["schemas"]["TypeExpr_for_Type_and_ParamRef"],
|
|
5593
|
-
components["schemas"]["TypeExpr_for_Type_and_ParamRef"]
|
|
5594
|
-
];
|
|
5595
|
-
} | {
|
|
5596
|
-
/** @constant */
|
|
5597
|
-
type: "KeyOf";
|
|
5598
|
-
data: components["schemas"]["TypeExpr_for_Type_and_ParamRef"];
|
|
5599
|
-
} | {
|
|
5600
|
-
/** @constant */
|
|
5601
|
-
type: "Index";
|
|
5602
|
-
data: {
|
|
5603
|
-
expr: components["schemas"]["TypeExpr_for_Type_and_ParamRef"];
|
|
5604
|
-
index: components["schemas"]["TypeExpr_for_Type_and_ParamRef"];
|
|
5605
|
-
};
|
|
5606
|
-
} | {
|
|
5607
|
-
/** @constant */
|
|
5608
|
-
type: "Intersection";
|
|
5609
|
-
data: [
|
|
5610
|
-
components["schemas"]["TypeExpr_for_Type_and_ParamRef"],
|
|
5611
|
-
components["schemas"]["TypeExpr_for_Type_and_ParamRef"]
|
|
5612
|
-
];
|
|
5613
|
-
} | {
|
|
5614
|
-
/** @constant */
|
|
5615
|
-
type: "Conditional";
|
|
5616
|
-
data: components["schemas"]["Conditional_for_Type_and_ParamRef"];
|
|
5617
|
-
} | {
|
|
5618
|
-
/** @constant */
|
|
5619
|
-
type: "Any";
|
|
5620
|
-
} | {
|
|
5621
|
-
/** @constant */
|
|
5622
|
-
type: "Never";
|
|
5623
|
-
} | {
|
|
5624
|
-
/** @constant */
|
|
5625
|
-
type: "Ref";
|
|
5626
|
-
data: components["schemas"]["ParamRef"];
|
|
5627
|
-
};
|
|
4986
|
+
TypeExpr_for_Type_and_ParamRef: TypeExpr<Type, ParamRef>;
|
|
5628
4987
|
/** @description Type hints for pre-inference annotations (e.g. `T = Integer, U = String`). */
|
|
5629
|
-
TypeHints_for_Type_and_ParamRef:
|
|
5630
|
-
[key: string]: components["schemas"]["TypeExpr_for_Type_and_ParamRef"];
|
|
5631
|
-
};
|
|
4988
|
+
TypeHints_for_Type_and_ParamRef: TypeHints<Type, ParamRef>;
|
|
5632
4989
|
/** @description A generic type parameter with optional bound and default. */
|
|
5633
|
-
TypeParameter_for_Type_and_ErasedScopedTypeRef_for_Type:
|
|
5634
|
-
/** @description Upper bound (e.g. `T extends Comparable`). */
|
|
5635
|
-
bound?: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"] | null;
|
|
5636
|
-
/** @description Default when not inferred (e.g. `T = Any`). */
|
|
5637
|
-
default?: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"] | null;
|
|
5638
|
-
};
|
|
4990
|
+
TypeParameter_for_Type_and_ErasedScopedTypeRef_for_Type: TypeParameter<Type, components["schemas"]["ErasedScopedTypeRef_for_Type"]>;
|
|
5639
4991
|
/** @description A generic type parameter with optional bound and default. */
|
|
5640
|
-
TypeParameter_for_Type_and_ParamRef:
|
|
5641
|
-
/** @description Upper bound (e.g. `T extends Comparable`). */
|
|
5642
|
-
bound?: components["schemas"]["TypeExpr_for_Type_and_ParamRef"] | null;
|
|
5643
|
-
/** @description Default when not inferred (e.g. `T = Any`). */
|
|
5644
|
-
default?: components["schemas"]["TypeExpr_for_Type_and_ParamRef"] | null;
|
|
5645
|
-
};
|
|
4992
|
+
TypeParameter_for_Type_and_ParamRef: TypeParameter<Type, ParamRef>;
|
|
5646
4993
|
/**
|
|
5647
4994
|
* @description Wrapper for BtreeMap
|
|
5648
4995
|
*
|
|
5649
4996
|
* Exists so that it can implement traits like [std::str::FromStr]
|
|
5650
4997
|
*/
|
|
5651
|
-
TypeParameters_for_Type_and_ErasedScopedTypeRef_for_Type:
|
|
5652
|
-
[key: string]: components["schemas"]["TypeParameter_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
5653
|
-
};
|
|
4998
|
+
TypeParameters_for_Type_and_ErasedScopedTypeRef_for_Type: TypeParameters<Type, components["schemas"]["ErasedScopedTypeRef_for_Type"]>;
|
|
5654
4999
|
/**
|
|
5655
5000
|
* @description Wrapper for BtreeMap
|
|
5656
5001
|
*
|
|
5657
5002
|
* Exists so that it can implement traits like [std::str::FromStr]
|
|
5658
5003
|
*/
|
|
5659
|
-
TypeParameters_for_Type_and_ParamRef:
|
|
5660
|
-
|
|
5004
|
+
TypeParameters_for_Type_and_ParamRef: TypeParameters<Type, ParamRef>;
|
|
5005
|
+
UninstalledExtensionPath: {
|
|
5006
|
+
extensionIdent: components["schemas"]["ExtensionIdentifier"];
|
|
5661
5007
|
};
|
|
5662
5008
|
/** @enum {string} */
|
|
5663
5009
|
UniqueBibStrategy: "increment" | "lowest-free";
|
|
@@ -5673,6 +5019,11 @@ declare interface components {
|
|
|
5673
5019
|
classDto: components["schemas"]["ClassDTO"];
|
|
5674
5020
|
id: components["schemas"]["ClassId"];
|
|
5675
5021
|
};
|
|
5022
|
+
/** @description Changes only the state of a class, which is event data and so also changes on classes linked to a template. */
|
|
5023
|
+
UpdateClassStateMutation: {
|
|
5024
|
+
classId: components["schemas"]["ClassId"];
|
|
5025
|
+
state: components["schemas"]["TableState"];
|
|
5026
|
+
};
|
|
5676
5027
|
UpdateCompetitorMutation: {
|
|
5677
5028
|
competitorDto: components["schemas"]["CompetitorDTO"];
|
|
5678
5029
|
competitorId: components["schemas"]["CompetitorId"];
|
|
@@ -5751,6 +5102,24 @@ declare interface components {
|
|
|
5751
5102
|
game: components["schemas"]["GameDTO"];
|
|
5752
5103
|
id: components["schemas"]["GameId"];
|
|
5753
5104
|
};
|
|
5105
|
+
/** @description Renames a standalone table of the user and sets its column types. */
|
|
5106
|
+
UpdateStandaloneTableMutation: {
|
|
5107
|
+
/**
|
|
5108
|
+
* @description Makes the rows and row mutations valid for changed column types, see [RecordTypeWithDefaults::make_valid].
|
|
5109
|
+
* Without it, the update fails if that would change any of them.
|
|
5110
|
+
*/
|
|
5111
|
+
modifyRows: boolean;
|
|
5112
|
+
table: components["schemas"]["StandaloneTableDTO"];
|
|
5113
|
+
tableId: components["schemas"]["TableId"];
|
|
5114
|
+
};
|
|
5115
|
+
UpdateStandaloneTableQuery: {
|
|
5116
|
+
/**
|
|
5117
|
+
* @description If true, makes the rows and row mutations valid for changed column types (missing or mistyped columns get the
|
|
5118
|
+
* column's default). Otherwise the update fails with `change-would-modify-rows` if that would change any of them.
|
|
5119
|
+
* @default false
|
|
5120
|
+
*/
|
|
5121
|
+
modifyRows: boolean;
|
|
5122
|
+
};
|
|
5754
5123
|
UpdateTableMutation: {
|
|
5755
5124
|
table: components["schemas"]["TableDTO"];
|
|
5756
5125
|
tableId: components["schemas"]["TableId"];
|
|
@@ -5769,6 +5138,13 @@ declare interface components {
|
|
|
5769
5138
|
ValidationErrorKind_for_Type: ValidationErrorKind<Type>;
|
|
5770
5139
|
/** @description A validation error with its location and kind. */
|
|
5771
5140
|
ValidationError_for_Type: ValidationError<Type>;
|
|
5141
|
+
ValueBody: {
|
|
5142
|
+
value: components["schemas"]["ExtensionValue"];
|
|
5143
|
+
};
|
|
5144
|
+
ValuePath: {
|
|
5145
|
+
extensionIdent: components["schemas"]["ExtensionIdentifier"];
|
|
5146
|
+
key: string;
|
|
5147
|
+
};
|
|
5772
5148
|
/**
|
|
5773
5149
|
* Important
|
|
5774
5150
|
* @description Changes in here are breaking changes for logs
|
|
@@ -5850,6 +5226,14 @@ export declare interface Conditional<T, R> {
|
|
|
5850
5226
|
|
|
5851
5227
|
export declare function confirmDeleteItem(modalControls: ModalControls, itemName: string): Promise<boolean>;
|
|
5852
5228
|
|
|
5229
|
+
/**
|
|
5230
|
+
* A pin that reroutes a connection
|
|
5231
|
+
*/
|
|
5232
|
+
declare interface ConnectionPin {
|
|
5233
|
+
x: number;
|
|
5234
|
+
y: number;
|
|
5235
|
+
}
|
|
5236
|
+
|
|
5853
5237
|
/**
|
|
5854
5238
|
* Named type arguments of a [`TypeExpr::Constructor`](crate::TypeExpr::Constructor).
|
|
5855
5239
|
*
|
|
@@ -5913,6 +5297,73 @@ export declare interface DialogButton<T> {
|
|
|
5913
5297
|
theme?: 'primary' | 'default' | 'danger';
|
|
5914
5298
|
}
|
|
5915
5299
|
|
|
5300
|
+
declare interface DialogOptions {
|
|
5301
|
+
/** Shows it in a window (see `ModalConfig.window`), for content with links that the user may follow first. */
|
|
5302
|
+
window?: {
|
|
5303
|
+
title: ReactNode;
|
|
5304
|
+
};
|
|
5305
|
+
}
|
|
5306
|
+
|
|
5307
|
+
/**
|
|
5308
|
+
* Greys out a disabled competitor wherever it is shown. Nodes don't spawn disabled competitors, but they can still be
|
|
5309
|
+
* in classes and tables.
|
|
5310
|
+
*/
|
|
5311
|
+
export declare function disabledCompetitorClassName(competitor: Pick<CompetitorDAO, 'enabled'> | undefined): string | undefined;
|
|
5312
|
+
|
|
5313
|
+
/**
|
|
5314
|
+
* Disqualifies every row of the table it receives, throwing them all under `key` so that a
|
|
5315
|
+
* [`GroupNode`](super::group_node::GroupNode) further up the graph can collect them.
|
|
5316
|
+
*/
|
|
5317
|
+
declare interface DisqualifyNode {
|
|
5318
|
+
key: DqKey;
|
|
5319
|
+
}
|
|
5320
|
+
|
|
5321
|
+
/**
|
|
5322
|
+
* What a node does by default with a disqualification it can throw.
|
|
5323
|
+
*/
|
|
5324
|
+
declare type DqDefaultStrategy = "throw" | "output-placed" | "output-unplaced" | "append-placed" | "append-unplaced";
|
|
5325
|
+
|
|
5326
|
+
/** A caught disqualification. The strategy decides how multiple caught tables of the key get merged. */
|
|
5327
|
+
declare interface DqEntry {
|
|
5328
|
+
key: DqKey_2;
|
|
5329
|
+
mergeStrategy: MultiplexingStrategy_2;
|
|
5330
|
+
}
|
|
5331
|
+
|
|
5332
|
+
declare type DqKey = string;
|
|
5333
|
+
|
|
5334
|
+
declare type DqKey_2 = components['schemas']['DqKey'];
|
|
5335
|
+
|
|
5336
|
+
/**
|
|
5337
|
+
* What a format or game format says about one of its disqualification kinds.
|
|
5338
|
+
*/
|
|
5339
|
+
declare interface DqSettings {
|
|
5340
|
+
description: string;
|
|
5341
|
+
/**
|
|
5342
|
+
* Initialises `catch_dqs` of new nodes.
|
|
5343
|
+
*/
|
|
5344
|
+
defaultStrategy: DqDefaultStrategy;
|
|
5345
|
+
}
|
|
5346
|
+
|
|
5347
|
+
/**
|
|
5348
|
+
* Decides how caught disqualifications are surfaced.
|
|
5349
|
+
*/
|
|
5350
|
+
declare type DqStrategy = "output-placed" | "output-unplaced" | "append-placed" | "append-unplaced";
|
|
5351
|
+
|
|
5352
|
+
/** How a game or format node surfaces a disqualification it catches. */
|
|
5353
|
+
declare type DqStrategy_2 = components['schemas']['DqStrategy'];
|
|
5354
|
+
|
|
5355
|
+
export declare type DraggableChildProps = React_2.HTMLAttributes<HTMLElement> & React_2.RefAttributes<HTMLElement>;
|
|
5356
|
+
|
|
5357
|
+
/** An element is identified by its primary node: the source, game or result table node, or the first node of a stage. */
|
|
5358
|
+
declare type ElementId = FormatNodeId;
|
|
5359
|
+
|
|
5360
|
+
/** A port of an element, or the output of a group that catches disqualifications (`element` is the group's id then). */
|
|
5361
|
+
declare interface ElementPortRef {
|
|
5362
|
+
element: ElementId | FolderId;
|
|
5363
|
+
/** Index into the element's `inputs` (target) or `outputs` (source). */
|
|
5364
|
+
port: number;
|
|
5365
|
+
}
|
|
5366
|
+
|
|
5916
5367
|
/** Spelled out because the inferred `queryOptions` type references TanStack's unexported `dataTagSymbol`, which breaks the SDK's declaration rollup. */
|
|
5917
5368
|
export declare type EngineQueryOptions<T> = UnusedSkipTokenOptions<T, Error, T, readonly unknown[]> & {
|
|
5918
5369
|
queryKey: DataTag<readonly unknown[], T, Error>;
|
|
@@ -5923,9 +5374,15 @@ export declare type EngineQueryOptions<T> = UnusedSkipTokenOptions<T, Error, T,
|
|
|
5923
5374
|
*/
|
|
5924
5375
|
declare type ErasedScopedTypeRef<T> = { type: "Param"; data: ParamRef } | { type: "ScopedExpr"; data: { expr: TypeExpr<T, ErasedScopedTypeRef<T>> } };
|
|
5925
5376
|
|
|
5377
|
+
declare type EventCompetitorsNode = CompetitorType_2;
|
|
5378
|
+
|
|
5926
5379
|
export declare const eventFoldersByEventQueryOptions: (workspaceId: CommonWorkspaceId, eventId: EventId) => EngineQueryOptions<ContentInEventFolderDTO[]>;
|
|
5927
5380
|
|
|
5928
|
-
|
|
5381
|
+
/**
|
|
5382
|
+
* Identifies an event. Random ([Self::new_random]): the endpoint picks it and `AddEventMutation` carries it.
|
|
5383
|
+
* Deserializing one only yields a reference to an existing event; it does not check that it exists.
|
|
5384
|
+
*/
|
|
5385
|
+
export declare type EventId = string & { readonly __brand: 'eventId' };
|
|
5929
5386
|
|
|
5930
5387
|
export declare interface EventPath {
|
|
5931
5388
|
workspaceId: CommonWorkspaceId;
|
|
@@ -5964,8 +5421,26 @@ export declare function extensionContribution<K extends keyof ExtensionContribut
|
|
|
5964
5421
|
export declare type ExtensionContributions = {
|
|
5965
5422
|
'game-format-page-bottom': GameFormatPageContribution;
|
|
5966
5423
|
'game-page': GamePageContribution;
|
|
5424
|
+
'table-drop': TableDropContribution;
|
|
5967
5425
|
};
|
|
5968
5426
|
|
|
5427
|
+
/**
|
|
5428
|
+
* Makes `children` draggable with `payload`. Dropping it onto a table hands `payload` to the `table-drop`
|
|
5429
|
+
* contributions of the calling extension, and to no other extension's.
|
|
5430
|
+
*/
|
|
5431
|
+
export declare function ExtensionDraggable({ payload, children }: {
|
|
5432
|
+
payload: string;
|
|
5433
|
+
children: ReactElement<DraggableChildProps>;
|
|
5434
|
+
}): JSX.Element;
|
|
5435
|
+
|
|
5436
|
+
/** What the host lends to extension callbacks that run outside of the extension's components. */
|
|
5437
|
+
export declare interface ExtensionHost {
|
|
5438
|
+
/** Same as {@link useExtensionBackend}. */
|
|
5439
|
+
backend: (path: string, init?: RequestInit) => Promise<Response>;
|
|
5440
|
+
/** Modals whose content can use the extension's hooks, like {@link useExtensionBackend}. */
|
|
5441
|
+
modal: ModalControls;
|
|
5442
|
+
}
|
|
5443
|
+
|
|
5969
5444
|
export declare type ExtensionInjectPlaceKey = keyof ExtensionContributions;
|
|
5970
5445
|
|
|
5971
5446
|
/**
|
|
@@ -6013,6 +5488,8 @@ export declare interface ExtensionSidebarContribution {
|
|
|
6013
5488
|
|
|
6014
5489
|
export declare type ExtensionSidebarProps = EventPath;
|
|
6015
5490
|
|
|
5491
|
+
declare type ExtractRecordFieldError<T> = { type: "field-does-not-exist"; data: string } | { type: "invalid-type"; data: { field: string; value: Value<T> | null } };
|
|
5492
|
+
|
|
6016
5493
|
export declare interface FieldTypeWithDefault {
|
|
6017
5494
|
fieldType: TypeExpr<Type>;
|
|
6018
5495
|
/**
|
|
@@ -6021,24 +5498,89 @@ export declare interface FieldTypeWithDefault {
|
|
|
6021
5498
|
default: Value | null;
|
|
6022
5499
|
}
|
|
6023
5500
|
|
|
5501
|
+
/** Games and result tables live in folders, and folders in folders. */
|
|
5502
|
+
declare type FolderContentRef = {
|
|
5503
|
+
type: 'element';
|
|
5504
|
+
id: ElementId;
|
|
5505
|
+
} | {
|
|
5506
|
+
type: 'folder';
|
|
5507
|
+
id: FolderId;
|
|
5508
|
+
};
|
|
5509
|
+
|
|
5510
|
+
declare type FolderId = FormatNodeId;
|
|
5511
|
+
|
|
6024
5512
|
/**
|
|
6025
5513
|
* How a competitor is written out. Kept apart from the components that show competitors so both
|
|
6026
5514
|
* the picker and the selector can reach it without importing each other.
|
|
6027
5515
|
*/
|
|
6028
5516
|
export declare function formatCompetitorName(competitor: CompetitorDAO): string;
|
|
6029
5517
|
|
|
5518
|
+
declare interface FormatConnectionDTO {
|
|
5519
|
+
sourceFormatNodeId: FormatNodeId;
|
|
5520
|
+
targetFormatNodeId: FormatNodeId;
|
|
5521
|
+
sourceOutput: OutputIdx;
|
|
5522
|
+
targetInput: InputIdx;
|
|
5523
|
+
pins: ConnectionPin[];
|
|
5524
|
+
}
|
|
5525
|
+
|
|
6030
5526
|
declare type FormatGroupId = Brand<string, 'formatGroupId'>;
|
|
6031
5527
|
|
|
6032
|
-
|
|
5528
|
+
/**
|
|
5529
|
+
* Identifies a format. Comes from one of:
|
|
5530
|
+
* - [Self::new_random]: the endpoint picks it and `AddFormatMutation` carries it.
|
|
5531
|
+
* - [Self::root_of]: the root format of an event.
|
|
5532
|
+
* - [Self::of_copy]: the copy a mutation makes with a seed.
|
|
5533
|
+
* - `ImportArchiveMutation`: derived from the seed, the event and the archive entry.
|
|
5534
|
+
*
|
|
5535
|
+
* Deserializing one only yields a reference to an existing format; it does not check that it exists.
|
|
5536
|
+
*/
|
|
5537
|
+
declare type FormatId = string & { readonly __brand: 'formatId' };
|
|
6033
5538
|
|
|
6034
5539
|
export declare type FormatInstanceHash = Brand<string, 'formatInstanceHash'>;
|
|
6035
5540
|
|
|
6036
|
-
|
|
5541
|
+
/**
|
|
5542
|
+
* For documentation about the node struct, checkout the docs for FormatNodeDAO.
|
|
5543
|
+
*/
|
|
5544
|
+
declare interface FormatNodeDTO {
|
|
5545
|
+
/**
|
|
5546
|
+
* Any unique id works, including for new nodes: whether the id refers to a new or an
|
|
5547
|
+
* existing node is determined by whether it already exists on the format, not by its value.
|
|
5548
|
+
*/
|
|
5549
|
+
id: FormatNodeId;
|
|
5550
|
+
/**
|
|
5551
|
+
* Ignored for existing nodes, because a node's test id never changes. Defaults to the node id.
|
|
5552
|
+
*/
|
|
5553
|
+
testId?: FormatNodeTestId | null;
|
|
5554
|
+
xPos: number;
|
|
5555
|
+
yPos: number;
|
|
5556
|
+
nodeType: NodeType;
|
|
5557
|
+
parentNodeId: FormatNodeId | null;
|
|
5558
|
+
settings: RecordValue<Primitive>;
|
|
5559
|
+
controlValues: Record<number, Value>;
|
|
5560
|
+
typeHints: TypeHints<Type>;
|
|
5561
|
+
inputVargsToArray: boolean;
|
|
5562
|
+
outputVargsToArray: boolean;
|
|
5563
|
+
customData?: Record<string, string>;
|
|
5564
|
+
}
|
|
6037
5565
|
|
|
6038
|
-
declare type
|
|
5566
|
+
declare type FormatNodeDTO_2 = components['schemas']['FormatNodeDTO'] & {
|
|
5567
|
+
addedInputVargs?: number;
|
|
5568
|
+
addedOutputVargs?: number;
|
|
5569
|
+
};
|
|
5570
|
+
|
|
5571
|
+
export declare type FormatNodeId = string & { readonly __brand: 'formatNodeId' };
|
|
5572
|
+
|
|
5573
|
+
declare type FormatNodeTestId = string & { readonly __brand: 'formatNodeTestId' };
|
|
6039
5574
|
|
|
6040
5575
|
declare type FormatTestId = Brand<string, 'formatTestId'>;
|
|
6041
5576
|
|
|
5577
|
+
/**
|
|
5578
|
+
* Represents a state in which the format is not valid for execution but can be stored in the db.
|
|
5579
|
+
*/
|
|
5580
|
+
declare type FormatValidationError = { type: "uncaught-throw"; data: Record<DqKey, RowTypeHelper[]> } | { type: "unthrown-disqualification-kinds"; data: DqKey[] } | { type: "root-format-with-disqualification-kinds" } | { type: "graph-is-cyclic" } | { type: "too-many-inputs"; data: ParentType } | { type: "too-many-outputs"; data: ParentType } | { type: "invalid-node"; data: [FormatNodeId, InvalidNodeReason] } | { type: "too-many-closure-inputs" } | { type: "root-format-with-input-or-output" } | { type: "child-format-is-invalid"; data: FormatId } | { type: "root-format-referenced"; data: FormatId } | { type: "cyclic-parent-relation"; data: FormatNodeId[] } | { type: "illegal-child"; data: FormatNodeId } | { type: "parent-connected-to-child"; data: { parent: FormatNodeId; child: FormatNodeId } } | { type: "connection-escapes-scope"; data: { source: FormatNodeId; target: FormatNodeId; scope: FormatNodeId } } | { type: "input-or-output-node-with-parent" } | { type: "node-configuration-error"; data: NodeConfigurationError } | { type: "cyclic-format-dependency" } | { type: "type-validation-errors"; data: ValidationError<Type>[] } | { type: "static-input-received-non-static-connection" } | { type: "nodety-error"; data: NodetyError } | { type: "format-of-other-event-referenced"; data: FormatId } | { type: "invalid-signature" } | { type: "missing-output-node" };
|
|
5581
|
+
|
|
5582
|
+
declare type FormatValidity = "invalid" | "valid";
|
|
5583
|
+
|
|
6042
5584
|
export declare type FormContribution<Props, DTO> = FC<Props & {
|
|
6043
5585
|
formFieldRegistry: FormFieldRegistry;
|
|
6044
5586
|
ref: Ref<ContributionHandle<DTO>>;
|
|
@@ -6085,6 +5627,11 @@ export declare interface FormFieldProps<I, O = I> {
|
|
|
6085
5627
|
isNew?: boolean;
|
|
6086
5628
|
registry?: FormFieldRegistry;
|
|
6087
5629
|
map?: (value: I) => O;
|
|
5630
|
+
/**
|
|
5631
|
+
* Persists the overwritten value under this key (see `usePersistedState`), so that it survives leaving the page.
|
|
5632
|
+
* Only the key passed in first is used.
|
|
5633
|
+
*/
|
|
5634
|
+
persistenceKey?: string | null;
|
|
6088
5635
|
}
|
|
6089
5636
|
|
|
6090
5637
|
export declare interface FormFieldRegistry {
|
|
@@ -6111,11 +5658,26 @@ export declare type FormFieldState<T> = [value: T, setValue: (value: T | ((oldVa
|
|
|
6111
5658
|
|
|
6112
5659
|
export declare type GameDAO = components['schemas']['GameDAO'];
|
|
6113
5660
|
|
|
5661
|
+
declare type GameDivision = {
|
|
5662
|
+
type: 'fixed';
|
|
5663
|
+
strategy: 'serpentine' | 'roundrobin';
|
|
5664
|
+
count: number;
|
|
5665
|
+
} | {
|
|
5666
|
+
type: 'dynamic';
|
|
5667
|
+
strategy: 'serpentine' | 'roundrobin';
|
|
5668
|
+
maxSize: number;
|
|
5669
|
+
allowBackfill: boolean;
|
|
5670
|
+
};
|
|
5671
|
+
|
|
6114
5672
|
export declare type GameDTO = components['schemas']['GameDTO'];
|
|
6115
5673
|
|
|
6116
5674
|
export declare type GameFormatDTO = components['schemas']['GameFormatDTO'];
|
|
6117
5675
|
|
|
6118
|
-
|
|
5676
|
+
/**
|
|
5677
|
+
* Identifies a game format. Random ([Self::new_random]) from the endpoint, or derived by `ImportArchiveMutation`.
|
|
5678
|
+
* Deserializing one only yields a reference to an existing game format; it does not check that it exists.
|
|
5679
|
+
*/
|
|
5680
|
+
export declare type GameFormatId = string & { readonly __brand: 'gameFormatId' };
|
|
6119
5681
|
|
|
6120
5682
|
export declare type GameFormatPageContribution = FormContribution<GameFormatPageProps & {
|
|
6121
5683
|
gameFormat: GameFormatDTO;
|
|
@@ -6125,8 +5687,40 @@ export declare type GameFormatPageProps = EventPath & {
|
|
|
6125
5687
|
gameFormatId: GameFormatId | null;
|
|
6126
5688
|
};
|
|
6127
5689
|
|
|
5690
|
+
/**
|
|
5691
|
+
* One step of a game format's post processing. Automations run in order on every row of a game's
|
|
5692
|
+
* result, after the result has been entered. They never change the stored result of the game, only
|
|
5693
|
+
* the result table the game node outputs.
|
|
5694
|
+
*/
|
|
5695
|
+
declare type GameFormatPostProcessingStep = { type: "disqualify"; data: { key: DqKey; expression: string } } | { type: "set-output-column"; data: { column: string; columnType: TypeExpr<Type>; expression: string } };
|
|
5696
|
+
|
|
6128
5697
|
export declare type GameId = Brand<string, 'gameId'>;
|
|
6129
5698
|
|
|
5699
|
+
declare type GameKind = {
|
|
5700
|
+
type: 'game-node';
|
|
5701
|
+
gameFormatId: GameFormatId;
|
|
5702
|
+
variant: GameNodeVariant_2;
|
|
5703
|
+
} | {
|
|
5704
|
+
type: 'gamified-format';
|
|
5705
|
+
formatId: FormatId;
|
|
5706
|
+
};
|
|
5707
|
+
|
|
5708
|
+
declare interface GameNodeDTO {
|
|
5709
|
+
variant: GameNodeVariant;
|
|
5710
|
+
gameFormatId: GameFormatId;
|
|
5711
|
+
/**
|
|
5712
|
+
* Caught disqualifications are not thrown. [DqStrategy] decides how they are surfaced.
|
|
5713
|
+
*/
|
|
5714
|
+
catchDqs?: Record<DqKey, DqStrategy>;
|
|
5715
|
+
}
|
|
5716
|
+
|
|
5717
|
+
/**
|
|
5718
|
+
* How many games a game node plays and how they depend on each other.
|
|
5719
|
+
*/
|
|
5720
|
+
declare type GameNodeVariant = { type: "single" } | { type: "parallel" } | { type: "sequential"; data: { gameCount: number } };
|
|
5721
|
+
|
|
5722
|
+
declare type GameNodeVariant_2 = components['schemas']['GameNodeVariant'];
|
|
5723
|
+
|
|
6130
5724
|
export declare type GamePageContribution = FormContribution<GamePageProps & {
|
|
6131
5725
|
game: WorkingGameDTO;
|
|
6132
5726
|
}, WorkingGameDTO>;
|
|
@@ -6135,6 +5729,9 @@ export declare type GamePageProps = EventPath & {
|
|
|
6135
5729
|
gameId: GameId | null;
|
|
6136
5730
|
};
|
|
6137
5731
|
|
|
5732
|
+
/** Where a game goes in the simplified view of the root format. */
|
|
5733
|
+
declare type GamePlace = Omit<AddGameEdit, 'type' | 'game' | 'division'>;
|
|
5734
|
+
|
|
6138
5735
|
export declare const gamesWithTablesMappedByEventQO: (workspaceId: CommonWorkspaceId, eventId: EventId) => EngineQueryOptions<Map<GameId, GameWithTables>>;
|
|
6139
5736
|
|
|
6140
5737
|
export declare type GameWithTables = components['schemas']['GameWithTables'];
|
|
@@ -6150,6 +5747,15 @@ export declare const getCompetitorsQO: (workspaceId: CommonWorkspaceId, eventId:
|
|
|
6150
5747
|
|
|
6151
5748
|
export declare const getGameTableResolvedByGameQO: (workspaceId: CommonWorkspaceId, eventId: EventId, gameID: GameId, tableKind: "EntryList" | "ResultList") => EngineQueryOptions<ResolvedTableDTO>;
|
|
6152
5749
|
|
|
5750
|
+
/**
|
|
5751
|
+
* The table as nodes see it, with the rows they don't see in `hiddenRows`.
|
|
5752
|
+
*/
|
|
5753
|
+
export declare const getGameTableResolvedQueryOptions: (workspaceId: CommonWorkspaceId, eventId: EventId, tableId: TableId) => EngineQueryOptions<ResolvedTableDTO>;
|
|
5754
|
+
|
|
5755
|
+
export declare const getGameTablesByEventQueryOptions: (workspaceId: CommonWorkspaceId, eventId: EventId) => EngineQueryOptions<Map<TableId, TableDAO>>;
|
|
5756
|
+
|
|
5757
|
+
export declare const getStandaloneTablesByEventQueryOptions: (workspaceId: CommonWorkspaceId, eventId: EventId) => EngineQueryOptions<Map<TableId, TableDAO>>;
|
|
5758
|
+
|
|
6153
5759
|
export declare const getTableByIdQueryOptions: (workspaceId: CommonWorkspaceId, eventId: EventId, tableId: TableId) => EngineQueryOptions<TableWithType>;
|
|
6154
5760
|
|
|
6155
5761
|
/**
|
|
@@ -6157,6 +5763,39 @@ export declare const getTableByIdQueryOptions: (workspaceId: CommonWorkspaceId,
|
|
|
6157
5763
|
*/
|
|
6158
5764
|
declare type GraphLocation = { type: "Edge"; data: number } | { type: "InputPort"; data: { nodeIdx: number; inputIdx: number } };
|
|
6159
5765
|
|
|
5766
|
+
/**
|
|
5767
|
+
* Contains other nodes. It can add its name to the folder path of its descendants and catch the disqualifications
|
|
5768
|
+
* they throw.
|
|
5769
|
+
*/
|
|
5770
|
+
declare interface GroupNode {
|
|
5771
|
+
name: string;
|
|
5772
|
+
/**
|
|
5773
|
+
* Whether the name is appended to the folder path of the descendants.
|
|
5774
|
+
*/
|
|
5775
|
+
folder: boolean;
|
|
5776
|
+
/**
|
|
5777
|
+
* The node has one output per catch key, in order. The strategy decides how multiple
|
|
5778
|
+
* caught tables of the same key get merged.
|
|
5779
|
+
*/
|
|
5780
|
+
catches: Record<DqKey, MultiplexingStrategy>;
|
|
5781
|
+
}
|
|
5782
|
+
|
|
5783
|
+
/** The settings of a group node: BE-C's unified folder, group and catch-dq node. */
|
|
5784
|
+
declare interface GroupSettings {
|
|
5785
|
+
/**
|
|
5786
|
+
* `null` for an unnamed group that is no folder (an empty name in the node), which only catches. With `folder` the
|
|
5787
|
+
* name is added to the path of the content.
|
|
5788
|
+
*/
|
|
5789
|
+
name: {
|
|
5790
|
+
text: string;
|
|
5791
|
+
folder: boolean;
|
|
5792
|
+
} | null;
|
|
5793
|
+
/** In the order of the group's outputs, one per caught key. */
|
|
5794
|
+
catches: DqEntry[];
|
|
5795
|
+
}
|
|
5796
|
+
|
|
5797
|
+
declare type GTFilterKind = { type: "class-filter" } | { type: "gender" } | { type: "comparison-filter"; data: ComparisonOp } | { type: "custom" };
|
|
5798
|
+
|
|
6160
5799
|
export declare const H1: FC<H1Props>;
|
|
6161
5800
|
|
|
6162
5801
|
export declare interface H1Props {
|
|
@@ -6178,7 +5817,7 @@ export declare type HRProps = {
|
|
|
6178
5817
|
className?: string;
|
|
6179
5818
|
};
|
|
6180
5819
|
|
|
6181
|
-
declare type InputIdx =
|
|
5820
|
+
declare type InputIdx = number & { readonly __brand: 'inputIdx' };
|
|
6182
5821
|
|
|
6183
5822
|
export declare enum InputLayout {
|
|
6184
5823
|
Normal = 0,
|
|
@@ -6190,6 +5829,23 @@ export declare enum InputLayout {
|
|
|
6190
5829
|
Fill = 2
|
|
6191
5830
|
}
|
|
6192
5831
|
|
|
5832
|
+
declare type InvalidNodeReason = { type: "invalid-node" } | { type: "node-is-not-variadic-but-vargs-to-array-set" } | { type: "illegal-control-values" } | ({ type: "node-configuration-error" } & NodeConfigurationError) | { type: "catching-disqualifications-of-variadic-format" } | { type: "appending-disqualifications-to-incompatible-output" } | { type: "game-result-not-assignable-to-entry" };
|
|
5833
|
+
|
|
5834
|
+
/** Anything that can be selected and removed. A connection is identified by its target port: inputs take one connection. */
|
|
5835
|
+
declare type ItemRef = {
|
|
5836
|
+
type: 'element';
|
|
5837
|
+
id: ElementId;
|
|
5838
|
+
} | {
|
|
5839
|
+
type: 'connection';
|
|
5840
|
+
target: ElementPortRef;
|
|
5841
|
+
} | {
|
|
5842
|
+
type: 'folder';
|
|
5843
|
+
id: FolderId;
|
|
5844
|
+
} | {
|
|
5845
|
+
type: 'comment';
|
|
5846
|
+
id: FormatNodeId;
|
|
5847
|
+
};
|
|
5848
|
+
|
|
6193
5849
|
/** Loads graphite-script from the host's wasm on demand, a static import would make this entry an async module. */
|
|
6194
5850
|
export declare const loadGraphiteScript: () => Promise<{
|
|
6195
5851
|
primValueToTypeExpr: typeof primValueToTypeExpr;
|
|
@@ -6215,12 +5871,331 @@ export declare type Locales = 'de' | 'en';
|
|
|
6215
5871
|
*/
|
|
6216
5872
|
export declare type LocalParamID = number;
|
|
6217
5873
|
|
|
5874
|
+
export declare type LogEntry = components['schemas']['LogEntry'];
|
|
5875
|
+
|
|
6218
5876
|
declare type LogId = Brand<number, 'logId'>;
|
|
6219
5877
|
|
|
5878
|
+
/** One step of a log batch: its entries stay together and in order. */
|
|
5879
|
+
export declare interface LogOperation {
|
|
5880
|
+
/** Names the operation when one of its entries fails. */
|
|
5881
|
+
name: string;
|
|
5882
|
+
entries: LogEntry[];
|
|
5883
|
+
}
|
|
5884
|
+
|
|
5885
|
+
/**
|
|
5886
|
+
* A change to the lowered view. Nodeification turns it into one change of the node graph. The output `connectFrom` is
|
|
5887
|
+
* connected to the first input of the new game or result table that its kind and type fit.
|
|
5888
|
+
*/
|
|
5889
|
+
declare type LoweredFormatEdit =
|
|
5890
|
+
/**
|
|
5891
|
+
* Into `section`, or into a new section of its own with null; connected into the input `connectTo` if given, replacing
|
|
5892
|
+
* its connection like `connect` does.
|
|
5893
|
+
*/
|
|
5894
|
+
{
|
|
5895
|
+
type: 'add-source';
|
|
5896
|
+
source: SourceKind;
|
|
5897
|
+
section: SectionId | null;
|
|
5898
|
+
connectTo?: ElementPortRef;
|
|
5899
|
+
}
|
|
5900
|
+
/** A new game or result table goes where `at` points, e.g. first, or where a connection was dropped. */
|
|
5901
|
+
| AddGameEdit_2 | {
|
|
5902
|
+
type: 'add-result';
|
|
5903
|
+
section: SectionId;
|
|
5904
|
+
at: MoveTarget;
|
|
5905
|
+
name: string;
|
|
5906
|
+
connectFrom?: ElementPortRef;
|
|
5907
|
+
}
|
|
5908
|
+
/**
|
|
5909
|
+
* Settings of a node, e.g. a game's variant or the values of unconnected inputs. Drops connections at lost ports. With
|
|
5910
|
+
* `groups`, the changed values reach the node's siblings in these groups only, instead of those visible.
|
|
5911
|
+
*/
|
|
5912
|
+
| {
|
|
5913
|
+
type: 'update-node';
|
|
5914
|
+
node: FormatNodeId;
|
|
5915
|
+
update: NodeUpdate;
|
|
5916
|
+
groups?: SimplifiedGroupId[];
|
|
5917
|
+
}
|
|
5918
|
+
/**
|
|
5919
|
+
* Replaces the connection that currently ends at `target`, if any. With `movedFrom`, also removes the one ending there.
|
|
5920
|
+
* A stage that fed nothing else goes with a replaced connection, and with it the connection into it.
|
|
5921
|
+
* With `stage`, connects through a new stage node: into its first input that fits `source`, out of its first output
|
|
5922
|
+
* that fits `target`.
|
|
5923
|
+
*/
|
|
5924
|
+
/** A stage fed by `connectFrom`, its output left open, e.g. to connect a game to later. */
|
|
5925
|
+
| {
|
|
5926
|
+
type: 'add-stage';
|
|
5927
|
+
section: SectionId;
|
|
5928
|
+
stage: StageSpec;
|
|
5929
|
+
connectFrom: ElementPortRef;
|
|
5930
|
+
} | {
|
|
5931
|
+
type: 'connect';
|
|
5932
|
+
source: ElementPortRef;
|
|
5933
|
+
target: ElementPortRef;
|
|
5934
|
+
movedFrom?: ElementPortRef;
|
|
5935
|
+
stage?: StageSpec;
|
|
5936
|
+
}
|
|
5937
|
+
/** Connects each of the `sources`, each a group's own, into the copy of the shared `target` in its group. */
|
|
5938
|
+
| {
|
|
5939
|
+
type: 'connect-groups';
|
|
5940
|
+
sources: ElementPortRef[];
|
|
5941
|
+
target: ElementPortRef;
|
|
5942
|
+
}
|
|
5943
|
+
/** Connects the `sources`, one per group, through a new `merger` into `target`, in their order (see `mergers`). */
|
|
5944
|
+
| {
|
|
5945
|
+
type: 'merge';
|
|
5946
|
+
section: SectionId;
|
|
5947
|
+
sources: ElementPortRef[];
|
|
5948
|
+
target: ElementPortRef;
|
|
5949
|
+
merger: StageSpec;
|
|
5950
|
+
} | {
|
|
5951
|
+
type: 'remove';
|
|
5952
|
+
items: ItemRef[];
|
|
5953
|
+
}
|
|
5954
|
+
/**
|
|
5955
|
+
* Gives a result table a scoring of `parts` (see `ResultScoring`), changes it, or with null takes it away. Each part
|
|
5956
|
+
* keeps what came into the input it had before (`from`: of the parts before, or 0 for the table's own input without a
|
|
5957
|
+
* scoring); without a scoring the table keeps what came into the first part. What the overall standing fed, the new
|
|
5958
|
+
* overall standing feeds. What a sequential standing after a part fed, the standing after that part feeds when the
|
|
5959
|
+
* scoring stays sequential and the part isn't the last. Other standings' consumers lose their connection.
|
|
5960
|
+
*/
|
|
5961
|
+
| {
|
|
5962
|
+
type: 'set-result-scoring';
|
|
5963
|
+
result: ElementId;
|
|
5964
|
+
scoring: ScoringEdit | null;
|
|
5965
|
+
}
|
|
5966
|
+
/**
|
|
5967
|
+
* Copies elements, and folders with their content, each right after itself, the first into `section`: with what comes
|
|
5968
|
+
* into them and the connections among them, but not into what they feed.
|
|
5969
|
+
*/
|
|
5970
|
+
| {
|
|
5971
|
+
type: 'duplicate';
|
|
5972
|
+
items: FolderContentRef[];
|
|
5973
|
+
section: SectionId;
|
|
5974
|
+
}
|
|
5975
|
+
/** Adds an empty group to the section: its nodes outside the groups are the new group's as well as the others'. */
|
|
5976
|
+
| {
|
|
5977
|
+
type: 'add-group';
|
|
5978
|
+
section: SectionId;
|
|
5979
|
+
name: string;
|
|
5980
|
+
}
|
|
5981
|
+
/**
|
|
5982
|
+
* Adds copies of the group: copies of its shared nodes as their siblings, of its own nodes as the copy's own. With a
|
|
5983
|
+
* `classId`, the copy's class source (of the group's own) is of that class. The copies come after the groups, or in
|
|
5984
|
+
* `order`, all the section's groups then.
|
|
5985
|
+
*/
|
|
5986
|
+
| {
|
|
5987
|
+
type: 'duplicate-group';
|
|
5988
|
+
section: SectionId;
|
|
5989
|
+
group: SimplifiedGroupId;
|
|
5990
|
+
copies: {
|
|
5991
|
+
group: SimplifiedGroupId;
|
|
5992
|
+
name: string;
|
|
5993
|
+
classId?: ClassId;
|
|
5994
|
+
}[];
|
|
5995
|
+
order?: SimplifiedGroupId[];
|
|
5996
|
+
}
|
|
5997
|
+
/** Copies the section with all its nodes into a new one right after it, linked among themselves only. */
|
|
5998
|
+
| {
|
|
5999
|
+
type: 'copy-section';
|
|
6000
|
+
section: SectionId;
|
|
6001
|
+
} | {
|
|
6002
|
+
type: 'rename-section';
|
|
6003
|
+
section: SectionId;
|
|
6004
|
+
name: string;
|
|
6005
|
+
}
|
|
6006
|
+
/**
|
|
6007
|
+
* A new, last section. An age group section starts with its groups, each with a class source of its class, and goes
|
|
6008
|
+
* among the others (see `withAgeGroupsInSync`).
|
|
6009
|
+
*/
|
|
6010
|
+
| {
|
|
6011
|
+
type: 'add-section';
|
|
6012
|
+
section: SectionId;
|
|
6013
|
+
kind: NewSectionKind;
|
|
6014
|
+
}
|
|
6015
|
+
/** Makes the class sources of the age group section's groups those of another age group. */
|
|
6016
|
+
| {
|
|
6017
|
+
type: 'set-age-group';
|
|
6018
|
+
section: SectionId;
|
|
6019
|
+
classes: AgeGroupClasses;
|
|
6020
|
+
}
|
|
6021
|
+
/**
|
|
6022
|
+
* Turns the section into one of the kinds it can be (see `sectionConversions`). A layered section with one group
|
|
6023
|
+
* becomes simple without it: the group's nodes are the section's.
|
|
6024
|
+
*/
|
|
6025
|
+
| {
|
|
6026
|
+
type: 'set-section-kind';
|
|
6027
|
+
section: SectionId;
|
|
6028
|
+
kind: SimplifiedSectionKind['type'];
|
|
6029
|
+
}
|
|
6030
|
+
/**
|
|
6031
|
+
* Moves the section one place up (-1) or down (1) in the order of sections, over all age group sections at once. Age
|
|
6032
|
+
* group sections go youngest first and aren't moved.
|
|
6033
|
+
*/
|
|
6034
|
+
| {
|
|
6035
|
+
type: 'move-section';
|
|
6036
|
+
section: SectionId;
|
|
6037
|
+
step: -1 | 1;
|
|
6038
|
+
}
|
|
6039
|
+
/** Removes the section with all its nodes. */
|
|
6040
|
+
| {
|
|
6041
|
+
type: 'delete-section';
|
|
6042
|
+
section: SectionId;
|
|
6043
|
+
} | {
|
|
6044
|
+
type: 'rename-group';
|
|
6045
|
+
section: SectionId;
|
|
6046
|
+
group: SimplifiedGroupId;
|
|
6047
|
+
name: string;
|
|
6048
|
+
}
|
|
6049
|
+
/** Moves the group one place left (-1) or right (1) in the order of the section's groups. */
|
|
6050
|
+
| {
|
|
6051
|
+
type: 'move-group';
|
|
6052
|
+
section: SectionId;
|
|
6053
|
+
group: SimplifiedGroupId;
|
|
6054
|
+
step: -1 | 1;
|
|
6055
|
+
}
|
|
6056
|
+
/** Removes the group with its nodes; their siblings in the other groups stay. */
|
|
6057
|
+
| {
|
|
6058
|
+
type: 'delete-group';
|
|
6059
|
+
section: SectionId;
|
|
6060
|
+
group: SimplifiedGroupId;
|
|
6061
|
+
}
|
|
6062
|
+
/**
|
|
6063
|
+
* Moves a group's own element into another group of its section: it then connects to that group's copies of shared
|
|
6064
|
+
* nodes, replacing what those inputs had; connections to the old group's own nodes go. A shared element becomes its
|
|
6065
|
+
* copy in the group alone, as that group's own: its other copies go.
|
|
6066
|
+
*/
|
|
6067
|
+
| {
|
|
6068
|
+
type: 'move-to-group';
|
|
6069
|
+
element: ElementId;
|
|
6070
|
+
group: SimplifiedGroupId;
|
|
6071
|
+
}
|
|
6072
|
+
/**
|
|
6073
|
+
* Gives the element a copy in each of `groups` it isn't in yet: a group's own element becomes shared with them (see
|
|
6074
|
+
* `share`), a shared one gets more copies, each connected like its siblings to its group's copies of shared neighbours.
|
|
6075
|
+
* What a group's own nodes give it, e.g. its class source, is left to connect.
|
|
6076
|
+
*/
|
|
6077
|
+
| {
|
|
6078
|
+
type: 'add-to-group';
|
|
6079
|
+
element: ElementId;
|
|
6080
|
+
groups: SimplifiedGroupId[];
|
|
6081
|
+
}
|
|
6082
|
+
/**
|
|
6083
|
+
* Makes the element of all groups one per group: a copy in each, connected like it, with what it feeds outside the
|
|
6084
|
+
* groups (see `splitByGroups`). A copy fed by a merger of the groups' outputs gets its group's output instead, and the
|
|
6085
|
+
* merger goes once it feeds nothing.
|
|
6086
|
+
*/
|
|
6087
|
+
| {
|
|
6088
|
+
type: 'one-per-group';
|
|
6089
|
+
element: ElementId;
|
|
6090
|
+
}
|
|
6091
|
+
/**
|
|
6092
|
+
* Makes the element one for all groups: a group's own element leaves its group, of a shared one the copy `element`
|
|
6093
|
+
* stays outside the groups and feeds what all copies fed. What came into the copies comes into it, through a new
|
|
6094
|
+
* `merger` where they got different things (one is picked when not given, see `LoweredFormatEditor.apply`).
|
|
6095
|
+
*/
|
|
6096
|
+
| {
|
|
6097
|
+
type: 'one-for-all-groups';
|
|
6098
|
+
element: ElementId;
|
|
6099
|
+
merger?: StageSpec;
|
|
6100
|
+
}
|
|
6101
|
+
/** Removes the shared element's copy in `group`; the last copy left is its group's own. */
|
|
6102
|
+
| {
|
|
6103
|
+
type: 'remove-from-group';
|
|
6104
|
+
element: ElementId;
|
|
6105
|
+
group: SimplifiedGroupId;
|
|
6106
|
+
}
|
|
6107
|
+
/** Takes a group's own element out of its group: it is every group's then, one node for all of them. */
|
|
6108
|
+
| {
|
|
6109
|
+
type: 'ungroup';
|
|
6110
|
+
element: ElementId;
|
|
6111
|
+
}
|
|
6112
|
+
/** The elements' nodes leave their siblings: each copy stays in its group as that group's own. */
|
|
6113
|
+
| {
|
|
6114
|
+
type: 'unshare';
|
|
6115
|
+
elements: ElementId[];
|
|
6116
|
+
}
|
|
6117
|
+
/**
|
|
6118
|
+
* Shares the elements' nodes, which are the groups' own: with one node of the same type per group, in the same order,
|
|
6119
|
+
* those become siblings; the nodes of one group get copies in the other `groups`, connected like them.
|
|
6120
|
+
*/
|
|
6121
|
+
| {
|
|
6122
|
+
type: 'share';
|
|
6123
|
+
elements: ElementId[];
|
|
6124
|
+
groups: SimplifiedGroupId[];
|
|
6125
|
+
} | {
|
|
6126
|
+
type: 'add-folder';
|
|
6127
|
+
settings: GroupSettings;
|
|
6128
|
+
parent: FolderId | null;
|
|
6129
|
+
content: FolderContentRef[];
|
|
6130
|
+
} | {
|
|
6131
|
+
type: 'update-folder';
|
|
6132
|
+
folder: FolderId;
|
|
6133
|
+
settings: GroupSettings;
|
|
6134
|
+
} | {
|
|
6135
|
+
type: 'move';
|
|
6136
|
+
item: FolderContentRef;
|
|
6137
|
+
to: MoveTarget;
|
|
6138
|
+
}
|
|
6139
|
+
/**
|
|
6140
|
+
* Makes the game another one, in place: what came into it goes into the new game's inputs that fit, what it fed stays
|
|
6141
|
+
* connected where its outputs still are, and it keeps how it handles the disqualifications both games have.
|
|
6142
|
+
*/
|
|
6143
|
+
| {
|
|
6144
|
+
type: 'change-game';
|
|
6145
|
+
game: ElementId;
|
|
6146
|
+
to: GameKind;
|
|
6147
|
+
}
|
|
6148
|
+
/** For game nodes and gamified formats alike; appending on gamified formats adds or updates their `Concat`. */
|
|
6149
|
+
| {
|
|
6150
|
+
type: 'set-game-dq';
|
|
6151
|
+
game: ElementId;
|
|
6152
|
+
key: DqKey_2;
|
|
6153
|
+
choice: CatchDqChoice;
|
|
6154
|
+
}
|
|
6155
|
+
/**
|
|
6156
|
+
* The steps of a stage's pipeline are the nodes of its chain. A new step goes in before the node at `index`, or after
|
|
6157
|
+
* the last with the chain's length. Taking a step out connects what it got to what it fed, where the types fit.
|
|
6158
|
+
*/
|
|
6159
|
+
| {
|
|
6160
|
+
type: 'add-stage-step';
|
|
6161
|
+
stage: ElementId;
|
|
6162
|
+
index: number;
|
|
6163
|
+
step: StageSpec;
|
|
6164
|
+
} | {
|
|
6165
|
+
type: 'remove-stage-step';
|
|
6166
|
+
stage: ElementId;
|
|
6167
|
+
index: number;
|
|
6168
|
+
} | {
|
|
6169
|
+
type: 'move-stage-step';
|
|
6170
|
+
stage: ElementId;
|
|
6171
|
+
index: number;
|
|
6172
|
+
step: -1 | 1;
|
|
6173
|
+
} | {
|
|
6174
|
+
type: 'add-comment';
|
|
6175
|
+
target: ElementId;
|
|
6176
|
+
text: string;
|
|
6177
|
+
} | {
|
|
6178
|
+
type: 'update-comment';
|
|
6179
|
+
comment: FormatNodeId;
|
|
6180
|
+
text: string;
|
|
6181
|
+
};
|
|
6182
|
+
|
|
6183
|
+
declare interface MakeValidError {
|
|
6184
|
+
missingDefaultField: string;
|
|
6185
|
+
}
|
|
6186
|
+
|
|
6187
|
+
declare type MathNodeOp = "addition" | "subtraction" | "multiplication" | "division-float" | "division-integer" | "modulo" | "power" | "logarithm" | "sqrt" | "absolute" | "minimum" | "maximum" | "ceil" | "floor" | "round";
|
|
6188
|
+
|
|
6220
6189
|
export declare type MergePathParams<A, B> = {
|
|
6221
6190
|
[K in keyof A | keyof B]: K extends keyof B ? B[K] : K extends keyof A ? A[K] : never;
|
|
6222
6191
|
};
|
|
6223
6192
|
|
|
6193
|
+
/**
|
|
6194
|
+
* What a continuation does with competitors of its parts that are missing from the previous result.
|
|
6195
|
+
* If the previous result is empty, nobody is missing: everyone's previous total is 0.
|
|
6196
|
+
*/
|
|
6197
|
+
declare type MissingFromPrevious = "leave-out" | "worst-total-plus-one";
|
|
6198
|
+
|
|
6224
6199
|
export declare function Modal({ children, isOpen, onClose, closable, height, width, verticalPosition, horizontalPosition, lightbox, blockBackground, }: ModalProps): null;
|
|
6225
6200
|
|
|
6226
6201
|
/** Modal inner body: explicit width; shell uses `width: 'fit'` and shrink-wraps to this. */
|
|
@@ -6236,6 +6211,14 @@ export declare interface ModalConfig {
|
|
|
6236
6211
|
horizontalPosition?: 'center' | 'left' | 'right';
|
|
6237
6212
|
lightbox?: boolean;
|
|
6238
6213
|
blockBackground?: boolean;
|
|
6214
|
+
/**
|
|
6215
|
+
* Opens it as a window instead: one that the user drags around by this title, that leaves the page behind it usable
|
|
6216
|
+
* and that only its X closes. It stays open across navigation, so it suits content with links, such as errors
|
|
6217
|
+
* pointing at what caused them. Ignores the options about size, position and background.
|
|
6218
|
+
*/
|
|
6219
|
+
window?: {
|
|
6220
|
+
title: ReactNode;
|
|
6221
|
+
};
|
|
6239
6222
|
onClose?: () => void;
|
|
6240
6223
|
}
|
|
6241
6224
|
|
|
@@ -6263,8 +6246,38 @@ export declare interface ModalProps {
|
|
|
6263
6246
|
blockBackground?: boolean;
|
|
6264
6247
|
}
|
|
6265
6248
|
|
|
6249
|
+
/**
|
|
6250
|
+
* Where a moved item goes: right before another item, into that item's folder, or last into a folder. The view orders
|
|
6251
|
+
* items by their position, so the moved nodes get a position between their new neighbours.
|
|
6252
|
+
*/
|
|
6253
|
+
declare type MoveTarget = {
|
|
6254
|
+
type: 'before';
|
|
6255
|
+
item: FolderContentRef;
|
|
6256
|
+
} | {
|
|
6257
|
+
type: 'first' | 'last';
|
|
6258
|
+
folder: FolderId | null;
|
|
6259
|
+
};
|
|
6260
|
+
|
|
6261
|
+
declare type MultiplexingStrategy = "serpentine" | "round-robin";
|
|
6262
|
+
|
|
6263
|
+
declare type MultiplexingStrategy_2 = components['schemas']['MultiplexingStrategy'];
|
|
6264
|
+
|
|
6265
|
+
declare type NewSectionKind = {
|
|
6266
|
+
type: 'simple' | 'layered';
|
|
6267
|
+
} | {
|
|
6268
|
+
type: 'age-group';
|
|
6269
|
+
classes: AgeGroupClasses;
|
|
6270
|
+
};
|
|
6271
|
+
|
|
6272
|
+
declare type NodeConfigurationError = { type: "extract-record-field-error"; data: ExtractRecordFieldError<Primitive> } | { type: "invalid-value"; data: { identifier: string; message: string; givenValue: Value<SerializableNonPrimitiveValue> } } | { type: "node-is-not-variadic-but-vargs-to-array-set" } | { type: "found-closure-input-node-in-non-closure" } | { type: "invalid-node" } | { type: "illegal-vargs-to-array" } | { type: "illegal-control-values" };
|
|
6273
|
+
|
|
6266
6274
|
declare type NodeInstanceHash = Brand<string, 'nodeInstanceHash'>;
|
|
6267
6275
|
|
|
6276
|
+
/**
|
|
6277
|
+
* Shared by the variants of one node, each in another group of the same section.
|
|
6278
|
+
*/
|
|
6279
|
+
declare type NodeLinkId = string & { readonly __brand: 'nodeLinkId' };
|
|
6280
|
+
|
|
6268
6281
|
/**
|
|
6269
6282
|
* Function-like type for a node: generic parameters, inputs, outputs, and defaults.
|
|
6270
6283
|
* Written in notation as `<T>(T) -> (T)` for the identity node.
|
|
@@ -6316,6 +6329,13 @@ export declare interface NodeSignature<T, R = ParamRef> {
|
|
|
6316
6329
|
requiredTags: number[];
|
|
6317
6330
|
}
|
|
6318
6331
|
|
|
6332
|
+
declare type NodetyError = { type: "NodeHasChildren" } | { type: "ParentNotFound" } | { type: "NodeNotFound" } | { type: "CycleDetected" } | { type: "TypeExprValidationError"; error: TypeExprValidationError };
|
|
6333
|
+
|
|
6334
|
+
declare type NodeType = { type: "input" } | { type: "output" } | { type: "format"; data: { formatId: FormatId; catchDqs?: Record<DqKey, DqStrategy> } } | { type: "math"; data: { op: MathNodeOp } } | { type: "game"; data: GameNodeDTO } | { type: "output-table" } | { type: "input-table"; data: { tableId: TableId } } | { type: "portal"; data: { sourceNodeId: FormatNodeId; sourceOutput: OutputIdx } } | { type: "class"; data: { classId: ClassId } } | { type: "disqualify"; data: DisqualifyNode } | { type: "group"; data: GroupNode } | { type: "string-concat" } | { type: "string-format" } | { type: "sort-node" } | { type: "constant" } | { type: "merge-tables" } | { type: "divide-table" } | { type: "distribute-table" } | { type: "split-table"; data: SplitTableNode } | { type: "concat"; data: { sorted: boolean } } | { type: "remove-places" } | { type: "table-map" } | { type: "length" } | { type: "boolean-op"; data: { op: BooleanOp } } | { type: "record-field"; data: { op: RecordFieldOp } } | { type: "add-record-fields"; data: AddRecordFieldsNode } | { type: "fallback" } | { type: "gt-row"; data: { errorOnNotFound: boolean } } | { type: "filter-gt"; data: { filter: GTFilterKind } } | { type: "comparison"; data: { op: ComparisonOp } } | { type: "comment"; data: { comment: string; linkedNodeId?: FormatNodeId } } | { type: "ternary" } | { type: "separate-row" } | { type: "update-row" } | { type: "array-map" } | { type: "create-array" } | { type: "create-table" } | { type: "array-access"; data: { errorOnNotFound: boolean } } | { type: "unpack-array"; data: { errorOnNotFound: boolean } } | { type: "promotion-relegation"; data: { finalCount: number | null } } | { type: "age-at" } | { type: "split-by-class"; data: { classCount: number } } | { type: "invalid"; data: { nodeType: NodeType } } | { type: "empty-record" } | { type: "event-competitors"; data: EventCompetitorsNode } | { type: "add-columns"; data: AddColumnsNode } | { type: "matrix-transpose" } | { type: "simple-scoring"; data: SimpleScoringNode } | { type: "classes-competitors"; data: ClassesCompetitorsNode };
|
|
6335
|
+
|
|
6336
|
+
/** A change of a node's settings: its node type and its data, the values of its inputs or its number of variadic ports. */
|
|
6337
|
+
declare type NodeUpdate = Partial<Pick<FormatNodeDTO_2, 'nodeType' | 'controlValues' | 'addedInputVargs' | 'addedOutputVargs'>>;
|
|
6338
|
+
|
|
6319
6339
|
declare type NoMetadata = Record<never, never>;
|
|
6320
6340
|
|
|
6321
6341
|
declare interface NoSupertypeLayer<T> {
|
|
@@ -6326,6 +6346,21 @@ declare interface NoSupertypeLayer<T> {
|
|
|
6326
6346
|
|
|
6327
6347
|
declare type NoSupertypeLayerReason = "UnknownTypeParam" | "NodeSignatureInputsVarg" | "NodeSignatureInputs" | "NodeSignatureOutputs" | "NodeSignatureTags" | "NodeSignatureRequiredTags" | "PortTypesVarg" | "PortTypesArity" | "PortTypesPort" | "Index" | "ConstructorArity" | "ConstructorParam";
|
|
6328
6348
|
|
|
6349
|
+
/**
|
|
6350
|
+
* The handle sticking out of the west edge of a panel, vertically centered. It is also the only thing left of the
|
|
6351
|
+
* panel once it is hidden.
|
|
6352
|
+
*/
|
|
6353
|
+
export declare function NotchButton({ direction, label, onClick, className, children }: NotchButtonProps): JSX.Element;
|
|
6354
|
+
|
|
6355
|
+
export declare interface NotchButtonProps {
|
|
6356
|
+
/** Where the chevron points: out of the panel to hide it, back into it to bring it in. */
|
|
6357
|
+
direction: 'left' | 'right';
|
|
6358
|
+
label: string;
|
|
6359
|
+
onClick: () => void;
|
|
6360
|
+
className?: string;
|
|
6361
|
+
children?: ReactNode;
|
|
6362
|
+
}
|
|
6363
|
+
|
|
6329
6364
|
export declare function Note({ children, className }: NoteProps): JSX.Element;
|
|
6330
6365
|
|
|
6331
6366
|
export declare interface NoteProps {
|
|
@@ -6350,7 +6385,7 @@ export declare interface OptionalQueryField<T> {
|
|
|
6350
6385
|
codec: QueryCodec<T>;
|
|
6351
6386
|
}
|
|
6352
6387
|
|
|
6353
|
-
declare type OutputIdx =
|
|
6388
|
+
declare type OutputIdx = number & { readonly __brand: 'outputIdx' };
|
|
6354
6389
|
|
|
6355
6390
|
export declare const Page: FC<PageProps>;
|
|
6356
6391
|
|
|
@@ -6374,6 +6409,8 @@ export declare interface ParamRef {
|
|
|
6374
6409
|
infer: boolean;
|
|
6375
6410
|
}
|
|
6376
6411
|
|
|
6412
|
+
declare type ParentType = { type: "format-root" } | { type: "closure-node"; data: FormatNodeId };
|
|
6413
|
+
|
|
6377
6414
|
export declare interface ParsedQuery<Values> {
|
|
6378
6415
|
values: Values;
|
|
6379
6416
|
/** The original search with malformed known values removed and valid values normalized. */
|
|
@@ -6381,6 +6418,8 @@ export declare interface ParsedQuery<Values> {
|
|
|
6381
6418
|
malformedKeys: string[];
|
|
6382
6419
|
}
|
|
6383
6420
|
|
|
6421
|
+
declare type ParseErrorKind = { type: "invalid-token" } | { type: "unexpected-token" } | { type: "expected-token"; data: { expected: string } } | { type: "invalid-number" } | { type: "unterminated-string" };
|
|
6422
|
+
|
|
6384
6423
|
export declare type PathParams<Path extends string> = Path extends `${infer Base}/*` ? PathParams<Base> : Path extends `${infer _}/${infer Rest}` ? MergePathParams<PathSegmentParam<_>, PathParams<Rest>> : PathSegmentParam<Path>;
|
|
6385
6424
|
|
|
6386
6425
|
export declare type PathSegmentParam<S extends string> = S extends `:${infer P}` ? {
|
|
@@ -6448,6 +6487,12 @@ export declare function putTableRows(workspaceId: CommonWorkspaceId, eventId: Ev
|
|
|
6448
6487
|
} | {
|
|
6449
6488
|
type: "row-not-hidden";
|
|
6450
6489
|
data: [components["schemas"]["TableId"], components["schemas"]["CompetitorId"]];
|
|
6490
|
+
} | {
|
|
6491
|
+
type: "incompatible-row";
|
|
6492
|
+
data: components["schemas"]["MakeValidError"];
|
|
6493
|
+
} | {
|
|
6494
|
+
type: "change-would-modify-rows";
|
|
6495
|
+
data: components["schemas"]["RecordModifications"];
|
|
6451
6496
|
};
|
|
6452
6497
|
}>;
|
|
6453
6498
|
|
|
@@ -6481,6 +6526,13 @@ export declare interface QuerySchema<Fields extends QueryFields> {
|
|
|
6481
6526
|
set<Key extends keyof Fields>(search: string, key: Key, value: QueryFieldValue<Fields[Key]>): string;
|
|
6482
6527
|
}
|
|
6483
6528
|
|
|
6529
|
+
declare type RecordFieldOp = "read-field" | "write-field";
|
|
6530
|
+
|
|
6531
|
+
declare interface RecordMakeValidMutation {
|
|
6532
|
+
columnName: string;
|
|
6533
|
+
newValue: Value;
|
|
6534
|
+
}
|
|
6535
|
+
|
|
6484
6536
|
/**
|
|
6485
6537
|
* RecordTypes should **only** be manipulated though this helper to have a single source of truth for the structure.
|
|
6486
6538
|
*/
|
|
@@ -6541,9 +6593,10 @@ export declare interface RouterContextType {
|
|
|
6541
6593
|
/** The complete reactive browser location. */
|
|
6542
6594
|
location: RouterLocation;
|
|
6543
6595
|
/**
|
|
6544
|
-
* User initiated routing. Asks route guards before leaving (see `useGuardRoute`).
|
|
6596
|
+
* User initiated routing. Asks route guards before leaving (see `useGuardRoute`). `onArrive` runs once the location
|
|
6597
|
+
* is `to`, also when it already was, and not when the user stays on a guarded route.
|
|
6545
6598
|
*/
|
|
6546
|
-
navigate: (to: string) => void;
|
|
6599
|
+
navigate: (to: string, onArrive?: (location: RouterLocation) => void) => void;
|
|
6547
6600
|
/**
|
|
6548
6601
|
* Programmatic redirect replacing the current history entry. Bypasses route guards.
|
|
6549
6602
|
*/
|
|
@@ -6585,6 +6638,18 @@ export declare interface RowAction<T> {
|
|
|
6585
6638
|
|
|
6586
6639
|
declare type RowMutationIdx = Brand<number, 'rowMutationIdx'>;
|
|
6587
6640
|
|
|
6641
|
+
declare type RowMutationKind = { type: "set-record-field"; field: string; value: Value } | { type: "push-unranked"; columns: RecordValue<Primitive> } | { type: "remove" } | { type: "set-place"; place: number } | { type: "set-unranked"; tiebraker: number } | { type: "set-place-and-tie-braker"; place: number; tiebraker: number };
|
|
6642
|
+
|
|
6643
|
+
declare interface RowMutationWithBatch {
|
|
6644
|
+
kind: RowMutationKind;
|
|
6645
|
+
competitorId: number;
|
|
6646
|
+
/**
|
|
6647
|
+
* When performing batch actions like delete all, then all these will have the same batch id.
|
|
6648
|
+
* Otherwise it will get incremented. Used for undo & redo.
|
|
6649
|
+
*/
|
|
6650
|
+
batch: number;
|
|
6651
|
+
}
|
|
6652
|
+
|
|
6588
6653
|
declare interface Rows<SortingState> {
|
|
6589
6654
|
/**
|
|
6590
6655
|
* Competitors are guaranteed to be unique per game table.
|
|
@@ -6604,16 +6669,50 @@ export declare enum RowState {
|
|
|
6604
6669
|
Added = 3
|
|
6605
6670
|
}
|
|
6606
6671
|
|
|
6607
|
-
|
|
6672
|
+
/**
|
|
6673
|
+
* GameTableTypes types should **only** be manipulated though this helper to have a single source of truth for the structure.
|
|
6674
|
+
*/
|
|
6675
|
+
declare interface RowTypeHelper<R = ParamRef> {
|
|
6676
|
+
columns: RecordTypeHelper<R>;
|
|
6677
|
+
}
|
|
6678
|
+
|
|
6679
|
+
declare type RuntimeErrorKind = { type: "division-by-zero" } | { type: "variable-not-found"; data: { name: string } } | { type: "function-not-found"; data: { name: string } } | { type: "index-out-of-bounds" } | { type: "invalid-index" } | { type: "invalid-math-operands" } | { type: "non-boolean-condition" } | { type: "non-boolean-operand" } | { type: "invalid-comparison-operands" } | { type: "argument"; data: { expected: string; got: string } };
|
|
6680
|
+
|
|
6681
|
+
/** A sequential scoring of fewer than two parts is a parallel one (see `ResultScoring`). */
|
|
6682
|
+
declare interface ScoringEdit {
|
|
6683
|
+
mode: ScoringMode;
|
|
6684
|
+
parts: {
|
|
6685
|
+
part: SimpleScoringPart_2;
|
|
6686
|
+
from: number | null;
|
|
6687
|
+
}[];
|
|
6688
|
+
}
|
|
6689
|
+
|
|
6690
|
+
declare type ScoringMode = {
|
|
6691
|
+
type: 'parallel';
|
|
6692
|
+
} | {
|
|
6693
|
+
type: 'sequential';
|
|
6694
|
+
missing: MissingFromPrevious;
|
|
6695
|
+
};
|
|
6696
|
+
|
|
6697
|
+
export declare function SearchInput({ value, onChange, placeholder, className, autoFocus, ref, onKeyDown }: SearchInputProps): JSX.Element;
|
|
6608
6698
|
|
|
6609
6699
|
export declare type SearchInputProps = {
|
|
6610
6700
|
value: string;
|
|
6611
6701
|
onChange: (value: string) => void;
|
|
6612
6702
|
placeholder?: string;
|
|
6613
6703
|
className?: string;
|
|
6704
|
+
autoFocus?: boolean;
|
|
6705
|
+
ref?: Ref<HTMLInputElement>;
|
|
6706
|
+
onKeyDown?: (event: KeyboardEvent_2<HTMLInputElement>) => void;
|
|
6614
6707
|
};
|
|
6615
6708
|
|
|
6616
|
-
|
|
6709
|
+
/**
|
|
6710
|
+
* A section of the simplified view (see `SimplifiedView`). Until it is stored, a section is identified by the lowest
|
|
6711
|
+
* node id of its island, which is a uuid like the ids of stored sections.
|
|
6712
|
+
*/
|
|
6713
|
+
declare type SectionId = SimplifiedSectionId;
|
|
6714
|
+
|
|
6715
|
+
declare type SerializableNonPrimitiveValue = { type: "game-table"; data: Table<Unsorted, StateMetadata> } | { type: "game-table-sorted"; data: Table<Sorted, StateMetadata> } | { type: "row"; data: Row } | { type: "class"; data: string } | { type: "closure" };
|
|
6617
6716
|
|
|
6618
6717
|
/**
|
|
6619
6718
|
* A keyboard shortcut as the keys to press together, e.g. `['Mod', 'Shift', 'Z']`. `Mod` is Ctrl, or
|
|
@@ -6623,12 +6722,133 @@ declare type SerializableNonPrimitiveValue = { type: "game-table"; data: Table<U
|
|
|
6623
6722
|
export declare type Shortcut = readonly string[];
|
|
6624
6723
|
|
|
6625
6724
|
/**
|
|
6626
|
-
* Shows a dialog that can be dismissed (ESC, click outside, or X button)
|
|
6725
|
+
* Shows a dialog that can be dismissed (ESC, click outside, or X button; only X for a window)
|
|
6627
6726
|
* Returns the selected value or null if dismissed
|
|
6628
6727
|
*/
|
|
6629
|
-
export declare function showDialog<T>(modal: ModalControls, buttons: DialogButton<T>[], content: ReactNode): Promise<T | null>;
|
|
6728
|
+
export declare function showDialog<T>(modal: ModalControls, buttons: DialogButton<T>[], content: ReactNode, { window }?: DialogOptions): Promise<T | null>;
|
|
6729
|
+
|
|
6730
|
+
/**
|
|
6731
|
+
* A panel as a column of its own, next to the content. Keeping it out of the content gives toolbars the whole
|
|
6732
|
+
* width, and collapsing it hands the space back. Hidden on mobile, see {@link SidePanelDrawer}.
|
|
6733
|
+
*/
|
|
6734
|
+
export declare function SidePanelDock({ storageKey, icon: Icon, badge, expandLabel, children }: SidePanelDockProps): JSX.Element;
|
|
6735
|
+
|
|
6736
|
+
export declare interface SidePanelDockProps {
|
|
6737
|
+
/** Remembers whether the panel is open. */
|
|
6738
|
+
storageKey: string;
|
|
6739
|
+
icon: SidePanelIcon;
|
|
6740
|
+
/** Shown on the notch while the panel is hidden. */
|
|
6741
|
+
badge?: ReactNode;
|
|
6742
|
+
expandLabel: string;
|
|
6743
|
+
children: (onClose: () => void) => ReactNode;
|
|
6744
|
+
}
|
|
6745
|
+
|
|
6746
|
+
/** On mobile a panel has no room of its own, so it waits behind a button and slides in over the content. */
|
|
6747
|
+
export declare function SidePanelDrawer({ icon: Icon, label, title, badge, closeLabel, buttonClassName, children, }: SidePanelDrawerProps): JSX.Element;
|
|
6748
|
+
|
|
6749
|
+
export declare interface SidePanelDrawerProps {
|
|
6750
|
+
icon: SidePanelIcon;
|
|
6751
|
+
label: string;
|
|
6752
|
+
title: string;
|
|
6753
|
+
badge?: ReactNode;
|
|
6754
|
+
closeLabel: string;
|
|
6755
|
+
/** Where the button opening the drawer sits. */
|
|
6756
|
+
buttonClassName?: string;
|
|
6757
|
+
children: (onClose: () => void) => ReactNode;
|
|
6758
|
+
}
|
|
6759
|
+
|
|
6760
|
+
export declare function SidePanelFooterButton({ onClick, disabled, children }: SidePanelFooterButtonProps): JSX.Element;
|
|
6761
|
+
|
|
6762
|
+
export declare interface SidePanelFooterButtonProps {
|
|
6763
|
+
onClick: () => void;
|
|
6764
|
+
disabled: boolean;
|
|
6765
|
+
children: string;
|
|
6766
|
+
}
|
|
6767
|
+
|
|
6768
|
+
/** A panel with a title, a scrolling body and an optional footer. The notch on its west edge closes it. */
|
|
6769
|
+
export declare function SidePanelFrame({ variant, icon: Icon, title, meta, closeLabel, onClose, footer, className, children, }: SidePanelFrameProps): JSX.Element;
|
|
6770
|
+
|
|
6771
|
+
export declare interface SidePanelFrameProps {
|
|
6772
|
+
/** Docked next to the content, or floating above it as the mobile drawer. */
|
|
6773
|
+
variant: SidePanelVariant;
|
|
6774
|
+
icon: SidePanelIcon;
|
|
6775
|
+
title: string;
|
|
6776
|
+
/** Shown at the right of the title, like how many items are selected. */
|
|
6777
|
+
meta?: ReactNode;
|
|
6778
|
+
closeLabel: string;
|
|
6779
|
+
onClose: () => void;
|
|
6780
|
+
footer?: ReactNode;
|
|
6781
|
+
className?: string;
|
|
6782
|
+
children: ReactNode;
|
|
6783
|
+
}
|
|
6784
|
+
|
|
6785
|
+
export declare type SidePanelIcon = ComponentType<SVGProps<SVGSVGElement>>;
|
|
6786
|
+
|
|
6787
|
+
export declare type SidePanelVariant = 'dock' | 'drawer';
|
|
6788
|
+
|
|
6789
|
+
/**
|
|
6790
|
+
* Place 1 = 1 point, Place 2 = 2 points, etc.
|
|
6791
|
+
* On tie, whoever won the part with the highest priority wins.
|
|
6792
|
+
* If still tied, the next lower priority part is considered etc.
|
|
6793
|
+
*
|
|
6794
|
+
* ```text
|
|
6795
|
+
* (Table<{}, Sorted>, ...) -> (Table<{total_points: Integer, <part name>: Integer, ...}, Sorted>)
|
|
6796
|
+
* ```
|
|
6797
|
+
*
|
|
6798
|
+
* One input per part and one output table, sorted by ascending total points.
|
|
6799
|
+
* Competitors are the union of all parts: a competitor without a place in a part
|
|
6800
|
+
* (missing from the table of that part, or in it without a place) scores one point
|
|
6801
|
+
* more than that part has rows, so not finishing a part is always worse than
|
|
6802
|
+
* finishing it last. An empty part has not taken place yet and scores 0 for everyone.
|
|
6803
|
+
*
|
|
6804
|
+
* With `continues_previous`, the first input is the result of a previous scoring,
|
|
6805
|
+
* `Table<{total_points: Integer}, Sorted>`, and the totals add this node's parts to the previous `total_points`.
|
|
6806
|
+
* The previous result's other columns are carried over, those named like a part are replaced. Ties keep the
|
|
6807
|
+
* previous result's order.
|
|
6808
|
+
*/
|
|
6809
|
+
declare interface SimpleScoringNode {
|
|
6810
|
+
parts: SimpleScoringPart[];
|
|
6811
|
+
/**
|
|
6812
|
+
* Missing means a scoring that continues none, so that nodes written before keep their serialization.
|
|
6813
|
+
*/
|
|
6814
|
+
continuesPrevious?: MissingFromPrevious;
|
|
6815
|
+
}
|
|
6816
|
+
|
|
6817
|
+
/**
|
|
6818
|
+
* One scored part, e.g. a single race of a series.
|
|
6819
|
+
*/
|
|
6820
|
+
declare interface SimpleScoringPart {
|
|
6821
|
+
/**
|
|
6822
|
+
* Used as the name of the output column holding the points of this part.
|
|
6823
|
+
*/
|
|
6824
|
+
name: string;
|
|
6825
|
+
/**
|
|
6826
|
+
* Higher priority parts break ties first.
|
|
6827
|
+
*/
|
|
6828
|
+
priority: number;
|
|
6829
|
+
}
|
|
6830
|
+
|
|
6831
|
+
declare type SimpleScoringPart_2 = components['schemas']['SimpleScoringPart'];
|
|
6832
|
+
|
|
6833
|
+
/**
|
|
6834
|
+
* Unique per format, not only per section.
|
|
6835
|
+
*/
|
|
6836
|
+
declare type SimplifiedGroupId = string & { readonly __brand: 'simplifiedGroupId' };
|
|
6837
|
+
|
|
6838
|
+
declare type SimplifiedSectionId = string & { readonly __brand: 'simplifiedSectionId' };
|
|
6630
6839
|
|
|
6631
|
-
|
|
6840
|
+
/** A `simple` section has no groups. An age group's classes are the values of its two groups' class sources, see `ageGroupOf`. */
|
|
6841
|
+
declare type SimplifiedSectionKind = {
|
|
6842
|
+
type: 'layered';
|
|
6843
|
+
} | {
|
|
6844
|
+
type: 'simple';
|
|
6845
|
+
} | {
|
|
6846
|
+
type: 'age-group';
|
|
6847
|
+
data: {
|
|
6848
|
+
female: SimplifiedGroupId;
|
|
6849
|
+
male: SimplifiedGroupId;
|
|
6850
|
+
};
|
|
6851
|
+
};
|
|
6632
6852
|
|
|
6633
6853
|
/**
|
|
6634
6854
|
* Sorted game tables have the following guarantees:
|
|
@@ -6640,12 +6860,64 @@ declare type Sorted = Brand<'sorted', 'sorted'>;
|
|
|
6640
6860
|
* - 1, 2, 2, 2, 5, None, None
|
|
6641
6861
|
* - None, None
|
|
6642
6862
|
*/
|
|
6643
|
-
declare type
|
|
6863
|
+
declare type Sorted = null;
|
|
6864
|
+
|
|
6865
|
+
declare type SourceKind = {
|
|
6866
|
+
type: 'class';
|
|
6867
|
+
classId: ClassId;
|
|
6868
|
+
} | {
|
|
6869
|
+
type: 'event-competitors';
|
|
6870
|
+
competitorType: CompetitorType;
|
|
6871
|
+
} | {
|
|
6872
|
+
type: 'classes-competitors';
|
|
6873
|
+
} | {
|
|
6874
|
+
type: 'input-table';
|
|
6875
|
+
tableId: TableId;
|
|
6876
|
+
};
|
|
6877
|
+
|
|
6878
|
+
/**
|
|
6879
|
+
* 1-based line and column at the start of a token.
|
|
6880
|
+
*/
|
|
6881
|
+
declare interface SourceLocation {
|
|
6882
|
+
line: number;
|
|
6883
|
+
column: number;
|
|
6884
|
+
}
|
|
6885
|
+
|
|
6886
|
+
/**
|
|
6887
|
+
* Splits a sorted table at the given places, see `Table::split_n`.
|
|
6888
|
+
*
|
|
6889
|
+
* for `Static { split_count }`:
|
|
6890
|
+
* ```text
|
|
6891
|
+
* <C extends {}>(Table<C, Sorted>, Integer * split_count) -> (Table<C, Sorted> * (split_count + 1))
|
|
6892
|
+
* ```
|
|
6893
|
+
* for `Dynamic`:
|
|
6894
|
+
* ```text
|
|
6895
|
+
* <C extends {}>(Table<C, Sorted>, Array<Integer>) -> (Array<Table<C, Sorted>>)
|
|
6896
|
+
* ```
|
|
6897
|
+
*/
|
|
6898
|
+
declare type SplitTableNode = { type: "static"; data: { splitCount: number } } | { type: "dynamic" };
|
|
6899
|
+
|
|
6900
|
+
/** The node of a new stage. Inputs without a value get their default. */
|
|
6901
|
+
declare type StageSpec = Pick<FormatNodeDTO_2, 'nodeType'> & Partial<Pick<FormatNodeDTO_2, 'inputVargsToArray' | 'outputVargsToArray' | 'controlValues'>>;
|
|
6644
6902
|
|
|
6645
6903
|
declare interface StateMetadata {
|
|
6646
6904
|
state: TableState;
|
|
6647
6905
|
}
|
|
6648
6906
|
|
|
6907
|
+
declare interface Step {
|
|
6908
|
+
/**
|
|
6909
|
+
* Whoever ran the operation, see [Origin::attributed]: the engine's `NodeInstanceHash`, a raw uuid because this
|
|
6910
|
+
* crate doesn't know engine types. None until it is attributed.
|
|
6911
|
+
*/
|
|
6912
|
+
node: string | null;
|
|
6913
|
+
op: StepOp;
|
|
6914
|
+
}
|
|
6915
|
+
|
|
6916
|
+
/**
|
|
6917
|
+
* An operation that moved rows between or within tables.
|
|
6918
|
+
*/
|
|
6919
|
+
declare type StepOp = "create" | "sort" | "split" | "concat" | "merge" | "divide" | "filter" | "remove-places" | "set-places" | "promote-relegate" | "score";
|
|
6920
|
+
|
|
6649
6921
|
export declare enum StorageType {
|
|
6650
6922
|
Session = 0,
|
|
6651
6923
|
Local = 1
|
|
@@ -6658,7 +6930,35 @@ declare type Table<SortingState, M = NoMetadata> = { rows: Rows<SortingState> }
|
|
|
6658
6930
|
|
|
6659
6931
|
export declare type TableDAO = components['schemas']['TableDAO'];
|
|
6660
6932
|
|
|
6661
|
-
|
|
6933
|
+
/**
|
|
6934
|
+
* Accepts payloads dragged with {@link ExtensionDraggable} of the same extension onto tables: standalone tables,
|
|
6935
|
+
* and the entry and result tables of games. The first contribution whose `canDrop` accepts a payload takes it;
|
|
6936
|
+
* payloads that none accepts can't be dropped.
|
|
6937
|
+
*/
|
|
6938
|
+
export declare interface TableDropContribution {
|
|
6939
|
+
canDrop(payload: string, target: TableDropTarget): boolean;
|
|
6940
|
+
onDrop(payload: string, target: TableDropTarget, host: ExtensionHost): void | Promise<void>;
|
|
6941
|
+
/** Shown on the highlighted drop area. */
|
|
6942
|
+
label?: Record<Locales, string>;
|
|
6943
|
+
}
|
|
6944
|
+
|
|
6945
|
+
/** `table.variant` tells standalone and game tables apart, `table.tableKind` entry and result tables. */
|
|
6946
|
+
export declare type TableDropTarget = EventPath & {
|
|
6947
|
+
table: TableDAO;
|
|
6948
|
+
};
|
|
6949
|
+
|
|
6950
|
+
/**
|
|
6951
|
+
* Identifies a table, the primary key of `tables`. Comes from one of:
|
|
6952
|
+
* - [Self::new_random]: a table the user adds. The endpoint picks the id and the mutation carries it.
|
|
6953
|
+
* - [Self::of_user_game]: the entry and result table of a game of the user.
|
|
6954
|
+
* - [Self::of_game] and [Self::of_node]: a table of a node, see [TableDAO::derived_id]. Executing a graph creates the
|
|
6955
|
+
* same ids every time.
|
|
6956
|
+
* - [TableDAO::keep_as_user_copy]: a table of a node that the user kept when the node instance got deleted.
|
|
6957
|
+
*
|
|
6958
|
+
* Deserializing one only yields a reference to an existing table; it does not check that it exists or how it was
|
|
6959
|
+
* made. Changing a derivation changes what replaying a log produces and needs an `ENGINE_VERSION` increment.
|
|
6960
|
+
*/
|
|
6961
|
+
export declare type TableId = string & { readonly __brand: 'tableId' };
|
|
6662
6962
|
|
|
6663
6963
|
export declare interface TableProps<TData extends RowData> {
|
|
6664
6964
|
data: TData[];
|
|
@@ -6667,6 +6967,7 @@ export declare interface TableProps<TData extends RowData> {
|
|
|
6667
6967
|
allowSelect?: boolean;
|
|
6668
6968
|
getRowId?: (row: TData, index: number) => string;
|
|
6669
6969
|
getRowState?: (row: TData) => RowState;
|
|
6970
|
+
getRowClassName?: (row: TData) => string | undefined;
|
|
6670
6971
|
rowClicked?: (row: TData) => void;
|
|
6671
6972
|
/**
|
|
6672
6973
|
* Route a row leads to. Clicking the row routes there (after `rowClicked`); a middle or Ctrl click
|
|
@@ -6694,6 +6995,11 @@ export declare interface TableProps<TData extends RowData> {
|
|
|
6694
6995
|
* Columns with `enableHiding: false` are excluded.
|
|
6695
6996
|
*/
|
|
6696
6997
|
columnVisibility?: [ColumnVisibilityState, OnChangeFn<ColumnVisibilityState>];
|
|
6998
|
+
/**
|
|
6999
|
+
* Shows a search box above the table that finds rows by the text of their visible columns, and a search per
|
|
7000
|
+
* column in its header. See `AppTableColumnMeta.searchText`.
|
|
7001
|
+
*/
|
|
7002
|
+
enableSearch?: boolean;
|
|
6697
7003
|
}
|
|
6698
7004
|
|
|
6699
7005
|
export declare type TableSortedDTO = components['schemas']['Table_for_Sorted_and_StateMetadata'];
|
|
@@ -6718,6 +7024,21 @@ export declare interface TimeDeltaInputProps {
|
|
|
6718
7024
|
|
|
6719
7025
|
export { toast }
|
|
6720
7026
|
|
|
7027
|
+
/**
|
|
7028
|
+
* One way a row got to where it is.
|
|
7029
|
+
*/
|
|
7030
|
+
declare interface Trail {
|
|
7031
|
+
/**
|
|
7032
|
+
* The persisted table the row was read from: the engine's `TableId`, a raw uuid like [Step::node]. None for rows
|
|
7033
|
+
* that were created from scratch.
|
|
7034
|
+
*/
|
|
7035
|
+
checkpoint: string | null;
|
|
7036
|
+
/**
|
|
7037
|
+
* The operations since the checkpoint, in order.
|
|
7038
|
+
*/
|
|
7039
|
+
steps: Step[];
|
|
7040
|
+
}
|
|
7041
|
+
|
|
6721
7042
|
export declare type Type = { type: "integer"; data: { min: number | null; max: number | null } } | { type: "float" } | { type: "string"; data: string | null } | { type: "boolean" } | { type: "iterable" } | { type: "countable" } | { type: "comparable" } | { type: "sortable" } | { type: "unit" } | { type: "time-delta" } | { type: "date-time" } | { type: "date" } | { type: "primitive" } | { type: "competitor-id" } | { type: "array" } | { type: "record" } | { type: "table" } | { type: "row" } | { type: "table-sorting"; data: TableSorting } | { type: "class" };
|
|
6722
7043
|
|
|
6723
7044
|
/**
|
|
@@ -6734,6 +7055,15 @@ export declare interface TypeContext {
|
|
|
6734
7055
|
returnType: TypeExpr<Type, ParamRef>;
|
|
6735
7056
|
}
|
|
6736
7057
|
|
|
7058
|
+
declare interface TypeError_2 {
|
|
7059
|
+
kind: TypeErrorKind;
|
|
7060
|
+
location: SourceLocation;
|
|
7061
|
+
}
|
|
7062
|
+
|
|
7063
|
+
declare type TypeErrorKind = { type: "unknown-variable"; data: { name: string } } | { type: "unknown-function"; data: { name: string } } | { type: "wrong-arity"; data: { name: string; expected: number; got: number } } | { type: "type-mismatch"; data: { expected: string; got: string } } | { type: "non-integer-index" } | { type: "non-record-property-access" } | { type: "nodety"; data: { message: string } };
|
|
7064
|
+
|
|
7065
|
+
declare type TypeErrors = TypeError_2[];
|
|
7066
|
+
|
|
6737
7067
|
/**
|
|
6738
7068
|
* Type expression—the core type representation in nodety.
|
|
6739
7069
|
*
|
|
@@ -6747,6 +7077,11 @@ export declare type TypeExpr<T, R = ParamRef> = { type: "Type"; data: T } | { ty
|
|
|
6747
7077
|
|
|
6748
7078
|
declare type TypeExprValidationError = { type: "UnknownVar"; var: LocalParamID } | { type: "CyclicReference" };
|
|
6749
7079
|
|
|
7080
|
+
/**
|
|
7081
|
+
* Type hints for pre-inference annotations (e.g. `T = Integer, U = String`).
|
|
7082
|
+
*/
|
|
7083
|
+
declare type TypeHints<T, R = ParamRef> = Record<LocalParamID, TypeExpr<T, R>>;
|
|
7084
|
+
|
|
6750
7085
|
export declare interface TypeOperators { graphite: [Type, ArithmeticOperator] }
|
|
6751
7086
|
|
|
6752
7087
|
export declare interface TypeOperators {}
|
|
@@ -6772,23 +7107,28 @@ export declare interface TypeParameter<T, R = ParamRef> {
|
|
|
6772
7107
|
*/
|
|
6773
7108
|
export declare type TypeParameters<T, R = ParamRef> = Record<LocalParamID, TypeParameter<T, R>>;
|
|
6774
7109
|
|
|
6775
|
-
declare type Unsorted = Brand<'unsorted', 'unsorted'>;
|
|
6776
|
-
|
|
6777
7110
|
/**
|
|
6778
7111
|
* The places of unsorted game can be arbitrary values in arbitrary order.
|
|
6779
7112
|
* Dublicated places are allowed. However competitors must still be unique.
|
|
6780
7113
|
*/
|
|
6781
|
-
declare type
|
|
7114
|
+
declare type Unsorted = null;
|
|
6782
7115
|
|
|
6783
7116
|
/** The engine's active locale. Extensions ship their own dictionaries and select them by it. */
|
|
6784
7117
|
export declare function useEngineLocale(): Locales;
|
|
6785
7118
|
|
|
6786
7119
|
/** Returns a `fetch` for `path` (relative, e.g. `"items"`) on the calling extension's own backend in the current event. */
|
|
6787
|
-
export declare function useExtensionBackend():
|
|
7120
|
+
export declare function useExtensionBackend(): ExtensionHost['backend'];
|
|
6788
7121
|
|
|
6789
|
-
/** The identifier the calling extension is installed under, e.g. the key of its `
|
|
7122
|
+
/** The identifier the calling extension is installed under, e.g. the key of its `customData`. */
|
|
6790
7123
|
export declare function useExtensionIdentifier(): string;
|
|
6791
7124
|
|
|
7125
|
+
/**
|
|
7126
|
+
* A preference of the calling extension, stored as `ext:<identifier>/<key>` like the engine's own: per user on root,
|
|
7127
|
+
* per server on self-hosted. The value is stored as JSON; `isValid` checks what was stored, `defaultValue` is used
|
|
7128
|
+
* until the preferences are loaded and when the key is unset or the stored value isn't valid.
|
|
7129
|
+
*/
|
|
7130
|
+
export declare function useExtensionPreference<T>(key: string, defaultValue: T, isValid: (stored: unknown) => stored is T): [T, (value: T) => void];
|
|
7131
|
+
|
|
6792
7132
|
export declare function useMediaQuery(query: string): boolean;
|
|
6793
7133
|
|
|
6794
7134
|
export declare function useModal(): ModalControls;
|
|
@@ -6801,15 +7141,23 @@ export declare function useModal(): ModalControls;
|
|
|
6801
7141
|
*
|
|
6802
7142
|
* @param storageKey Key used for persisting the state. Only the key passed
|
|
6803
7143
|
* in the to the first call of usePersistedState is used. Consequent keys are discarded.
|
|
7144
|
+
* Null keeps the state in memory only, like useState.
|
|
6804
7145
|
* @param initialState The initial state. Equal to useStates initial value
|
|
6805
7146
|
*/
|
|
6806
|
-
export declare function usePersistedState<S>(storageKey: string, initialState: S | (() => S), { storage: storageType, version }?: PersistedStateOptions): [S, (newState: S | ((prev: S) => S)) => void];
|
|
7147
|
+
export declare function usePersistedState<S>(storageKey: string | null, initialState: S | (() => S), { storage: storageType, version }?: PersistedStateOptions): [S, (newState: S | ((prev: S) => S)) => void];
|
|
6807
7148
|
|
|
6808
7149
|
/** Hook to use the router context. Must be called within a <Router> provider. */
|
|
6809
7150
|
export declare function useRouter(): RouterContextType;
|
|
6810
7151
|
|
|
6811
|
-
/**
|
|
7152
|
+
/**
|
|
7153
|
+
* Returns a function that applies the entries of all operations in one all-or-nothing `POST /log` with a progress modal
|
|
7154
|
+
* and reports a failure, like `runLogBatch`, with the modals and translations of the calling component.
|
|
7155
|
+
*/
|
|
7156
|
+
export declare function useRunLogBatch(): (workspaceId: CommonWorkspaceId, operations: LogOperation[], label: ReactNode) => Promise<boolean | null>;
|
|
7157
|
+
|
|
7158
|
+
/** The `:` params that are uuids, by name. All other `:` params are numbers. Workspace ids are uuids on root only. */
|
|
6812
7159
|
declare type UuidPathParams = {
|
|
7160
|
+
workspaceId: CommonWorkspaceId;
|
|
6813
7161
|
classId: ClassId;
|
|
6814
7162
|
eventId: EventId;
|
|
6815
7163
|
formatId: FormatId;
|
|
@@ -6835,6 +7183,10 @@ declare interface ValidationError<T> {
|
|
|
6835
7183
|
|
|
6836
7184
|
declare type ValidationErrorKind<T> = { type: "TypeParameterBoundsExceeded" } | { type: "TagMissing"; data: number[] } | { type: "MultipleEdgesOnOneInput" } | { type: "EdgeMissingOnInput" } | { type: "EdgeHasNoSourceOutput" } | { type: "InsufficientlyInferredTypes" } | { type: "NonPortTypesIO" } | { type: "TypeExprValidationError"; data: TypeExprValidationError } | { type: "TypeMismatch"; data: DetailedSupertypeDiagnostics<T> };
|
|
6837
7185
|
|
|
7186
|
+
/**
|
|
7187
|
+
* # Important
|
|
7188
|
+
* Changes in here are breaking changes for logs
|
|
7189
|
+
*/
|
|
6838
7190
|
export declare type Value<T = Primitive> = { type: "unit" } | { type: "float"; data: number } | { type: "integer"; data: number } | { type: "string"; data: string } | { type: "boolean"; data: boolean } | { type: "array"; data: ArrayValue<T> } | { type: "record"; data: RecordValue<T> } | { type: "time-delta"; data: [number, number] } | { type: "date-time"; data: string } | { type: "date"; data: string } | { type: "non-primitive"; data: T };
|
|
6839
7191
|
|
|
6840
7192
|
/**
|
|
@@ -6856,7 +7208,7 @@ export declare type WorkingGameDTO = Omit<GameDTO, 'gameFormatId'> & {
|
|
|
6856
7208
|
gameFormatId: GameFormatId | null;
|
|
6857
7209
|
};
|
|
6858
7210
|
|
|
6859
|
-
export declare type WorkspaceRootId = Brand<
|
|
7211
|
+
export declare type WorkspaceRootId = Brand<string, 'workspaceRootId'>;
|
|
6860
7212
|
|
|
6861
7213
|
export declare type WorkspaceSelfHostedId = Brand<number, 'workspaceSelfHostedId'>;
|
|
6862
7214
|
|