@graphite-sports/sdk 0.5.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 +1378 -1167
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ import { FC } from 'react';
|
|
|
10
10
|
import { FocusEventHandler } from 'react';
|
|
11
11
|
import { HTMLInputTypeAttribute } from 'react';
|
|
12
12
|
import { JSX } from 'react/jsx-runtime';
|
|
13
|
+
import type { KeyboardEvent as KeyboardEvent_2 } from 'react';
|
|
13
14
|
import { KeyboardEventHandler } from 'react';
|
|
14
15
|
import { OnChangeFn } from '@tanstack/react-table';
|
|
15
16
|
import { default as React_2 } from 'react';
|
|
@@ -32,6 +33,46 @@ import { TabPanels } from '@headlessui/react';
|
|
|
32
33
|
import { toast } from 'react-hot-toast';
|
|
33
34
|
import type { UnusedSkipTokenOptions } from '@tanstack/react-query';
|
|
34
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
|
+
|
|
35
76
|
export declare type AnyQuerySchema = QuerySchema<QueryFields>;
|
|
36
77
|
|
|
37
78
|
export declare function AppButton({ type, onClick, disabled: disabledProp, mutates, children, submit, className, loading, value, ref, href, autoFocus, }: AppButtonProps): JSX.Element;
|
|
@@ -48,7 +89,10 @@ export declare type AppButtonProps = {
|
|
|
48
89
|
loading?: boolean;
|
|
49
90
|
value?: string;
|
|
50
91
|
ref?: RefObject<HTMLButtonElement | null>;
|
|
51
|
-
/**
|
|
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
|
+
*/
|
|
52
96
|
autoFocus?: boolean;
|
|
53
97
|
/** Makes the button a link to this route, so it can also be opened in a new tab. `onClick` runs before routing. */
|
|
54
98
|
href?: string;
|
|
@@ -97,6 +141,8 @@ export declare type AppInputProps = {
|
|
|
97
141
|
onFocus?: FocusEventHandler<HTMLInputElement>;
|
|
98
142
|
onKeyDown?: KeyboardEventHandler<HTMLInputElement>;
|
|
99
143
|
type?: HTMLInputTypeAttribute;
|
|
144
|
+
min?: number;
|
|
145
|
+
step?: number;
|
|
100
146
|
placeholder?: string;
|
|
101
147
|
required?: boolean;
|
|
102
148
|
maxLength?: number;
|
|
@@ -169,7 +215,7 @@ export declare function AppTab({ className, ...props }: ComponentProps<typeof Ta
|
|
|
169
215
|
|
|
170
216
|
export declare function AppTabGroup(props: ComponentProps<typeof TabGroup>): JSX.Element;
|
|
171
217
|
|
|
172
|
-
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;
|
|
173
219
|
|
|
174
220
|
export declare type AppTableFeatures = typeof appTableFeatures;
|
|
175
221
|
|
|
@@ -224,11 +270,14 @@ export declare type ArrayValue<T = Primitive> = Value<T>[];
|
|
|
224
270
|
|
|
225
271
|
export declare type BIB = Brand<number, 'bib'>;
|
|
226
272
|
|
|
273
|
+
declare type BooleanOp = "and" | "or" | "xor" | "not";
|
|
274
|
+
|
|
227
275
|
/**
|
|
228
|
-
* Mirrors the backend's `domain_id!` newtype IDs
|
|
229
|
-
*
|
|
230
|
-
*
|
|
231
|
-
*
|
|
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.
|
|
232
281
|
*/
|
|
233
282
|
export declare type Brand<T, B> = T & {
|
|
234
283
|
readonly __brand: B;
|
|
@@ -237,13 +286,15 @@ export declare type Brand<T, B> = T & {
|
|
|
237
286
|
/** Stable reference — a new inline `select` on every `queryOptions()` call makes React Query re-select each render. */
|
|
238
287
|
export declare function buildCompetitorsMapped(competitors: CompetitorDAO[]): CompetitorsMapped;
|
|
239
288
|
|
|
240
|
-
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: {
|
|
241
290
|
'/': undefined;
|
|
242
291
|
'/download': undefined;
|
|
243
292
|
'/login': QuerySchema< {
|
|
244
293
|
readonly returnTo: OptionalQueryField<ReturnPath>;
|
|
245
294
|
}>;
|
|
246
|
-
'/register':
|
|
295
|
+
'/register': QuerySchema< {
|
|
296
|
+
readonly returnTo: OptionalQueryField<ReturnPath>;
|
|
297
|
+
}>;
|
|
247
298
|
'/preferences': undefined;
|
|
248
299
|
'/crate-workspace': undefined;
|
|
249
300
|
'/workspace/:workspaceId': undefined;
|
|
@@ -256,6 +307,9 @@ export declare const buildRoute: <Path extends "*" | "/" | "/workspace/:workspac
|
|
|
256
307
|
'/workspace/:workspaceId/event/:eventId/create-team': undefined;
|
|
257
308
|
'/workspace/:workspaceId/event/:eventId/competitor/:competitorId': undefined;
|
|
258
309
|
'/workspace/:workspaceId/event/:eventId/create-format': QuerySchema< {
|
|
310
|
+
readonly name: OptionalQueryField<string>;
|
|
311
|
+
readonly template: OptionalQueryField<FormatId>;
|
|
312
|
+
readonly place: OptionalQueryField<GamePlace>;
|
|
259
313
|
readonly focusNode: RepeatedQueryField<FormatNodeId>;
|
|
260
314
|
readonly formatInstance: OptionalQueryField<FormatInstanceHash>;
|
|
261
315
|
}>;
|
|
@@ -268,6 +322,12 @@ export declare const buildRoute: <Path extends "*" | "/" | "/workspace/:workspac
|
|
|
268
322
|
'/workspace/:workspaceId/event/:eventId/graph': QuerySchema< {
|
|
269
323
|
readonly focusNode: RepeatedQueryField<FormatNodeId>;
|
|
270
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
|
+
}>;
|
|
271
331
|
'/workspace/:workspaceId/event/:eventId/lineage': QuerySchema< {
|
|
272
332
|
readonly game: OptionalQueryField<GameId>;
|
|
273
333
|
readonly table: OptionalQueryField<TableId>;
|
|
@@ -280,6 +340,7 @@ export declare const buildRoute: <Path extends "*" | "/" | "/workspace/:workspac
|
|
|
280
340
|
}>;
|
|
281
341
|
'/workspace/:workspaceId/event/:eventId/create-game': undefined;
|
|
282
342
|
'/workspace/:workspaceId/event/:eventId/game/:gameId': undefined;
|
|
343
|
+
'/workspace/:workspaceId/event/:eventId/create-table': undefined;
|
|
283
344
|
'/workspace/:workspaceId/event/:eventId/table/:tableId': undefined;
|
|
284
345
|
'/workspace/:workspaceId/event/:eventId/create-game-format': undefined;
|
|
285
346
|
'/workspace/:workspaceId/event/:eventId/game-format/:gameFormatId': undefined;
|
|
@@ -293,7 +354,9 @@ export declare const buildRoute: <Path extends "*" | "/" | "/workspace/:workspac
|
|
|
293
354
|
'/login': QuerySchema< {
|
|
294
355
|
readonly returnTo: OptionalQueryField<ReturnPath>;
|
|
295
356
|
}>;
|
|
296
|
-
'/register':
|
|
357
|
+
'/register': QuerySchema< {
|
|
358
|
+
readonly returnTo: OptionalQueryField<ReturnPath>;
|
|
359
|
+
}>;
|
|
297
360
|
'/preferences': undefined;
|
|
298
361
|
'/crate-workspace': undefined;
|
|
299
362
|
'/workspace/:workspaceId': undefined;
|
|
@@ -306,6 +369,9 @@ export declare const buildRoute: <Path extends "*" | "/" | "/workspace/:workspac
|
|
|
306
369
|
'/workspace/:workspaceId/event/:eventId/create-team': undefined;
|
|
307
370
|
'/workspace/:workspaceId/event/:eventId/competitor/:competitorId': undefined;
|
|
308
371
|
'/workspace/:workspaceId/event/:eventId/create-format': QuerySchema< {
|
|
372
|
+
readonly name: OptionalQueryField<string>;
|
|
373
|
+
readonly template: OptionalQueryField<FormatId>;
|
|
374
|
+
readonly place: OptionalQueryField<GamePlace>;
|
|
309
375
|
readonly focusNode: RepeatedQueryField<FormatNodeId>;
|
|
310
376
|
readonly formatInstance: OptionalQueryField<FormatInstanceHash>;
|
|
311
377
|
}>;
|
|
@@ -318,6 +384,12 @@ export declare const buildRoute: <Path extends "*" | "/" | "/workspace/:workspac
|
|
|
318
384
|
'/workspace/:workspaceId/event/:eventId/graph': QuerySchema< {
|
|
319
385
|
readonly focusNode: RepeatedQueryField<FormatNodeId>;
|
|
320
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
|
+
}>;
|
|
321
393
|
'/workspace/:workspaceId/event/:eventId/lineage': QuerySchema< {
|
|
322
394
|
readonly game: OptionalQueryField<GameId>;
|
|
323
395
|
readonly table: OptionalQueryField<TableId>;
|
|
@@ -330,6 +402,7 @@ export declare const buildRoute: <Path extends "*" | "/" | "/workspace/:workspac
|
|
|
330
402
|
}>;
|
|
331
403
|
'/workspace/:workspaceId/event/:eventId/create-game': undefined;
|
|
332
404
|
'/workspace/:workspaceId/event/:eventId/game/:gameId': undefined;
|
|
405
|
+
'/workspace/:workspaceId/event/:eventId/create-table': undefined;
|
|
333
406
|
'/workspace/:workspaceId/event/:eventId/table/:tableId': undefined;
|
|
334
407
|
'/workspace/:workspaceId/event/:eventId/create-game-format': undefined;
|
|
335
408
|
'/workspace/:workspaceId/event/:eventId/game-format/:gameFormatId': undefined;
|
|
@@ -339,9 +412,27 @@ export declare const buildRoute: <Path extends "*" | "/" | "/workspace/:workspac
|
|
|
339
412
|
'*': undefined;
|
|
340
413
|
}[Path] ? T extends AnyQuerySchema ? [query?: QueryInput<T> | undefined] : [] : never : never) => string;
|
|
341
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
|
+
|
|
342
420
|
export declare type ClassDAO = components['schemas']['ClassDAO'];
|
|
343
421
|
|
|
344
|
-
|
|
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' };
|
|
345
436
|
|
|
346
437
|
export declare type ClassResponse = components['schemas']['ClassResponse'];
|
|
347
438
|
|
|
@@ -349,6 +440,8 @@ declare type CommonApiKeyId = Brand<number, 'commonApiKeyId'>;
|
|
|
349
440
|
|
|
350
441
|
export declare type CommonWorkspaceId = WorkspaceRootId | WorkspaceSelfHostedId;
|
|
351
442
|
|
|
443
|
+
declare type ComparisonOp = "greater" | "less" | "greater-equals" | "less-equals" | "equals" | "not-equals";
|
|
444
|
+
|
|
352
445
|
export declare type CompetitorDAO = components['schemas']['CompetitorDAO'];
|
|
353
446
|
|
|
354
447
|
export declare type CompetitorId = Brand<number, 'competitorId'>;
|
|
@@ -361,6 +454,22 @@ export declare const CompetitorNameLineSpacer: FC<{
|
|
|
361
454
|
className?: string;
|
|
362
455
|
}>;
|
|
363
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
|
+
|
|
364
473
|
/**
|
|
365
474
|
* Shows which competitor is picked and lets the user pick another one.
|
|
366
475
|
*/
|
|
@@ -385,11 +494,14 @@ export declare type CompetitorSelectorProps<IsRequired extends boolean = false>
|
|
|
385
494
|
|
|
386
495
|
export declare interface CompetitorsMapped {
|
|
387
496
|
byId: Map<CompetitorId, CompetitorDAO>;
|
|
497
|
+
/** Leaves out the competitors without a bib. */
|
|
388
498
|
byBib: Map<BIB, CompetitorDAO>;
|
|
389
499
|
}
|
|
390
500
|
|
|
391
501
|
export declare type CompetitorType = components['schemas']['CompetitorType'];
|
|
392
502
|
|
|
503
|
+
declare type CompetitorType_2 = "individual" | "team";
|
|
504
|
+
|
|
393
505
|
declare interface components {
|
|
394
506
|
schemas: {
|
|
395
507
|
APIKeyPathVariables: {
|
|
@@ -418,9 +530,7 @@ declare interface components {
|
|
|
418
530
|
eventId: components["schemas"]["EventId"];
|
|
419
531
|
};
|
|
420
532
|
/** @description <C extends {}, P extends Primitive, S extends Sorted|Unsorted>(Table<C, S>, P) -> (Table<C & {<self.key>: P}, S>) */
|
|
421
|
-
AddColumnsNode:
|
|
422
|
-
columns: string[];
|
|
423
|
-
};
|
|
533
|
+
AddColumnsNode: AddColumnsNode;
|
|
424
534
|
AddCompetitorsMutation: {
|
|
425
535
|
competitorDtos: components["schemas"]["CompetitorDTO"][];
|
|
426
536
|
competitorType: components["schemas"]["CompetitorType"];
|
|
@@ -475,9 +585,7 @@ declare interface components {
|
|
|
475
585
|
variant: components["schemas"]["TableVariant"];
|
|
476
586
|
};
|
|
477
587
|
/** @description <#0 extends {}, #1>(#0, #1) -> (#0 & {<self.key>: #1}) */
|
|
478
|
-
AddRecordFieldsNode:
|
|
479
|
-
fields: string[];
|
|
480
|
-
};
|
|
588
|
+
AddRecordFieldsNode: AddRecordFieldsNode;
|
|
481
589
|
AddTarget: {
|
|
482
590
|
backendUrl: string;
|
|
483
591
|
/** @description Replicate into this existing remote workspace instead of creating a new one. */
|
|
@@ -580,9 +688,9 @@ declare interface components {
|
|
|
580
688
|
type: "group";
|
|
581
689
|
};
|
|
582
690
|
/** @enum {string} */
|
|
583
|
-
ArithmeticOperator:
|
|
691
|
+
ArithmeticOperator: ArithmeticOperator;
|
|
584
692
|
ArrayValue_for_Primitive: ArrayValue<Primitive>;
|
|
585
|
-
ArrayValue_for_SerializableNonPrimitiveValue:
|
|
693
|
+
ArrayValue_for_SerializableNonPrimitiveValue: ArrayValue<SerializableNonPrimitiveValue>;
|
|
586
694
|
AuthScope: {
|
|
587
695
|
/** @constant */
|
|
588
696
|
type: "general";
|
|
@@ -607,28 +715,10 @@ declare interface components {
|
|
|
607
715
|
BIB: BIB;
|
|
608
716
|
BibNotUniqueError: components["schemas"]["BIB"];
|
|
609
717
|
/** @enum {string} */
|
|
610
|
-
BooleanOp:
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
* caught tables of the same key get merged.
|
|
615
|
-
*/
|
|
616
|
-
catches: {
|
|
617
|
-
[key: string]: components["schemas"]["MultiplexingStrategy"];
|
|
618
|
-
};
|
|
619
|
-
};
|
|
620
|
-
ChildrenSpec: {
|
|
621
|
-
/** @constant */
|
|
622
|
-
type: "disallowed";
|
|
623
|
-
} | {
|
|
624
|
-
/** @constant */
|
|
625
|
-
type: "allowed";
|
|
626
|
-
} | {
|
|
627
|
-
/** @constant */
|
|
628
|
-
type: "closure";
|
|
629
|
-
/** @description The signature that the inner closure must adhere to. */
|
|
630
|
-
signature: components["schemas"]["NodeSignature_for_Type_and_ParamRef"];
|
|
631
|
-
};
|
|
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;
|
|
632
722
|
ClassAutomationDTO: {
|
|
633
723
|
/** @constant */
|
|
634
724
|
type: "age";
|
|
@@ -661,7 +751,7 @@ declare interface components {
|
|
|
661
751
|
ClassAutomationScriptError: {
|
|
662
752
|
/** @constant */
|
|
663
753
|
type: "parse-error";
|
|
664
|
-
data: components["schemas"]["
|
|
754
|
+
data: components["schemas"]["ExpressionParseError"];
|
|
665
755
|
} | {
|
|
666
756
|
/** @constant */
|
|
667
757
|
type: "type-errors";
|
|
@@ -676,6 +766,9 @@ declare interface components {
|
|
|
676
766
|
attributes: components["schemas"]["RecordValue_for_Primitive"];
|
|
677
767
|
automationScript?: components["schemas"]["ClassAutomationScript"] | null;
|
|
678
768
|
automationScriptError?: components["schemas"]["ClassAutomationScriptError"] | null;
|
|
769
|
+
customData: {
|
|
770
|
+
[key: string]: string;
|
|
771
|
+
};
|
|
679
772
|
eventId: components["schemas"]["EventId"];
|
|
680
773
|
gender: components["schemas"]["ClassGender"];
|
|
681
774
|
id: components["schemas"]["ClassId"];
|
|
@@ -689,6 +782,9 @@ declare interface components {
|
|
|
689
782
|
description: string;
|
|
690
783
|
attributes: components["schemas"]["RecordValue_for_Primitive"];
|
|
691
784
|
automation?: components["schemas"]["ClassAutomationDTO"] | null;
|
|
785
|
+
customData?: {
|
|
786
|
+
[key: string]: string;
|
|
787
|
+
};
|
|
692
788
|
gender: components["schemas"]["ClassGender"];
|
|
693
789
|
name: string;
|
|
694
790
|
state: components["schemas"]["TableState"];
|
|
@@ -743,19 +839,27 @@ declare interface components {
|
|
|
743
839
|
* multiple: ('roundrobin' | 'serpentine' | 'concat', ...Class) -> (Table<{}, Sorted>)
|
|
744
840
|
* ```
|
|
745
841
|
*/
|
|
746
|
-
ClassesCompetitorsNode:
|
|
842
|
+
ClassesCompetitorsNode: ClassesCompetitorsNode;
|
|
747
843
|
/** Format: int64 */
|
|
748
844
|
CommonApiKeyId: CommonApiKeyId;
|
|
749
|
-
/** Format: int64 */
|
|
750
845
|
CommonWorkspaceId: CommonWorkspaceId;
|
|
751
846
|
/** @enum {string} */
|
|
752
|
-
ComparisonOp:
|
|
847
|
+
ComparisonOp: ComparisonOp;
|
|
753
848
|
CompetitorDAO: {
|
|
754
849
|
attributes: components["schemas"]["RecordValue_for_Primitive"];
|
|
755
|
-
|
|
850
|
+
/** @description Unique among the competitors of the event that have one. */
|
|
851
|
+
bib?: components["schemas"]["BIB"] | null;
|
|
756
852
|
birthdate?: string | null;
|
|
757
853
|
/** @description The competitor_type MUST NEVER be altered after creation. */
|
|
758
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;
|
|
759
863
|
eventId: components["schemas"]["EventId"];
|
|
760
864
|
firstName?: string | null;
|
|
761
865
|
/** @description Genders are `"f"`, `"m"`, or any other string stored in SQLite. */
|
|
@@ -768,8 +872,14 @@ declare interface components {
|
|
|
768
872
|
};
|
|
769
873
|
CompetitorDTO: {
|
|
770
874
|
attributes: components["schemas"]["RecordValue_for_Primitive"];
|
|
771
|
-
|
|
875
|
+
/** @description See [CompetitorDAO::bib]. */
|
|
876
|
+
bib?: components["schemas"]["BIB"] | null;
|
|
772
877
|
birthdate?: string | null;
|
|
878
|
+
customData?: {
|
|
879
|
+
[key: string]: string;
|
|
880
|
+
};
|
|
881
|
+
/** @description See [CompetitorDAO::enabled]. Missing means enabled. */
|
|
882
|
+
enabled?: boolean;
|
|
773
883
|
firstName?: string | null;
|
|
774
884
|
gender?: components["schemas"]["Gender"] | null;
|
|
775
885
|
lastName?: string | null;
|
|
@@ -785,6 +895,7 @@ declare interface components {
|
|
|
785
895
|
CompetitorInClassDTO: {
|
|
786
896
|
classId: components["schemas"]["ClassId"];
|
|
787
897
|
competitorId: components["schemas"]["CompetitorId"];
|
|
898
|
+
managedState: components["schemas"]["CICMembershipState"];
|
|
788
899
|
/** Format: int64 */
|
|
789
900
|
place: number;
|
|
790
901
|
};
|
|
@@ -795,15 +906,15 @@ declare interface components {
|
|
|
795
906
|
teamId: components["schemas"]["CompetitorId"];
|
|
796
907
|
to?: string | null;
|
|
797
908
|
};
|
|
798
|
-
/**
|
|
799
|
-
CompetitorNotUniqueError:
|
|
909
|
+
/** @description Two rows of the same competitor met in one table. */
|
|
910
|
+
CompetitorNotUniqueError: CompetitorNotUniqueError;
|
|
800
911
|
CompetitorPathVariables_for_CommonWorkspaceId: {
|
|
801
912
|
competitorId: components["schemas"]["CompetitorId"];
|
|
802
913
|
eventId: components["schemas"]["EventId"];
|
|
803
914
|
workspaceId: components["schemas"]["CommonWorkspaceId"];
|
|
804
915
|
};
|
|
805
916
|
/** @enum {string} */
|
|
806
|
-
CompetitorType:
|
|
917
|
+
CompetitorType: CompetitorType_2;
|
|
807
918
|
CompetitorTypeQuery: {
|
|
808
919
|
competitorType: components["schemas"]["CompetitorType"];
|
|
809
920
|
};
|
|
@@ -878,14 +989,7 @@ declare interface components {
|
|
|
878
989
|
* Besides the infer keyword, works almost exactly like conditional types in typescript.
|
|
879
990
|
* Checkout [this doc](https://www.typescriptlang.org/docs/handbook/2/conditional-types.html) for a good guide on the ts conditionals.
|
|
880
991
|
*/
|
|
881
|
-
Conditional_for_Type_and_ErasedScopedTypeRef_for_Type:
|
|
882
|
-
/** @description @todo */
|
|
883
|
-
infer: components["schemas"]["LocalParamID"][];
|
|
884
|
-
tElse: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
885
|
-
tTest: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
886
|
-
tTestBound: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
887
|
-
tThen: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
888
|
-
};
|
|
992
|
+
Conditional_for_Type_and_ErasedScopedTypeRef_for_Type: Conditional<Type, components["schemas"]["ErasedScopedTypeRef_for_Type"]>;
|
|
889
993
|
/**
|
|
890
994
|
* @description Represents the following: `t_test` extends `t_test_bound` ? `t_then` : `t_else`
|
|
891
995
|
* Besides the infer keyword, works almost exactly like conditional types in typescript.
|
|
@@ -912,12 +1016,7 @@ declare interface components {
|
|
|
912
1016
|
data: string;
|
|
913
1017
|
};
|
|
914
1018
|
/** @description A pin that reroutes a connection */
|
|
915
|
-
ConnectionPin:
|
|
916
|
-
/** Format: int64 */
|
|
917
|
-
x: number;
|
|
918
|
-
/** Format: int64 */
|
|
919
|
-
y: number;
|
|
920
|
-
};
|
|
1019
|
+
ConnectionPin: ConnectionPin;
|
|
921
1020
|
/** @description Contact information for the exposed API. */
|
|
922
1021
|
Contact: {
|
|
923
1022
|
/**
|
|
@@ -982,6 +1081,52 @@ declare interface components {
|
|
|
982
1081
|
};
|
|
983
1082
|
/** @enum {string} */
|
|
984
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
|
+
};
|
|
985
1130
|
DayAndMonth: {
|
|
986
1131
|
/**
|
|
987
1132
|
* Format: uint8
|
|
@@ -1212,11 +1357,9 @@ declare interface components {
|
|
|
1212
1357
|
DetailedSupertypeDiagnostics_for_Type: DetailedSupertypeDiagnostics<Type>;
|
|
1213
1358
|
/**
|
|
1214
1359
|
* @description Disqualifies every row of the table it receives, throwing them all under `key` so that a
|
|
1215
|
-
* [`
|
|
1360
|
+
* [`GroupNode`](super::group_node::GroupNode) further up the graph can collect them.
|
|
1216
1361
|
*/
|
|
1217
|
-
DisqualifyNode:
|
|
1218
|
-
key: components["schemas"]["DqKey"];
|
|
1219
|
-
};
|
|
1362
|
+
DisqualifyNode: DisqualifyNode;
|
|
1220
1363
|
/** @description The rows of one side after the common row. */
|
|
1221
1364
|
DivergedRows: {
|
|
1222
1365
|
/** Format: int64 */
|
|
@@ -1230,9 +1373,13 @@ declare interface components {
|
|
|
1230
1373
|
source: components["schemas"]["DivergedRows"];
|
|
1231
1374
|
target: components["schemas"]["DivergedRows"];
|
|
1232
1375
|
};
|
|
1233
|
-
|
|
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;
|
|
1234
1381
|
/** @description Decides how caught disqualifications are surfaced. */
|
|
1235
|
-
DqStrategy:
|
|
1382
|
+
DqStrategy: DqStrategy;
|
|
1236
1383
|
/**
|
|
1237
1384
|
* @description How functions that combine tables from multiple competitor sources (e.g. merging or
|
|
1238
1385
|
* concatenating) should treat a competitor that appears in more than one of them.
|
|
@@ -1377,27 +1524,14 @@ declare interface components {
|
|
|
1377
1524
|
/** @description Auto-generated discriminant enum variants */
|
|
1378
1525
|
EntityChangeEventDiscriminants: ("Event" | "Game" | "Table" | "GameFormat" | "FormatGroup" | "Row" | "RowMutation" | "FormatNode" | "Format" | "Class" | "Extension" | "Competitor" | "FormatTest" | "Log" | "ContentInEventFolder") | "CompetitorInTeam" | "CompetitorInClass";
|
|
1379
1526
|
/** @description A scope portal that used to be there but got removed in order to be serializable */
|
|
1380
|
-
ErasedScopedTypeRef_for_Type:
|
|
1381
|
-
|
|
1382
|
-
type: "Param";
|
|
1383
|
-
data: components["schemas"]["ParamRef"];
|
|
1384
|
-
} | {
|
|
1385
|
-
/** @constant */
|
|
1386
|
-
type: "ScopedExpr";
|
|
1387
|
-
data: {
|
|
1388
|
-
expr: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
1389
|
-
};
|
|
1390
|
-
};
|
|
1391
|
-
EventCompetitorsNode: components["schemas"]["CompetitorType"];
|
|
1527
|
+
ErasedScopedTypeRef_for_Type: ErasedScopedTypeRef<Type>;
|
|
1528
|
+
EventCompetitorsNode: EventCompetitorsNode;
|
|
1392
1529
|
EventDAO: {
|
|
1393
1530
|
description: string;
|
|
1394
1531
|
attributes: components["schemas"]["RecordValue_for_Primitive"];
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
* more than once.
|
|
1399
|
-
*/
|
|
1400
|
-
duplicateCompetitorPolicy: components["schemas"]["DuplicateCompetitorPolicy"];
|
|
1532
|
+
customData: {
|
|
1533
|
+
[key: string]: string;
|
|
1534
|
+
};
|
|
1401
1535
|
/** Format: date */
|
|
1402
1536
|
endDate?: string | null;
|
|
1403
1537
|
id: components["schemas"]["EventId"];
|
|
@@ -1409,37 +1543,38 @@ declare interface components {
|
|
|
1409
1543
|
* action should always be to create and set the root format.
|
|
1410
1544
|
*/
|
|
1411
1545
|
rootFormatId?: components["schemas"]["FormatId"] | null;
|
|
1546
|
+
settings: components["schemas"]["EventSettings"];
|
|
1412
1547
|
/**
|
|
1413
1548
|
* Format: date
|
|
1414
1549
|
* @description Updating this requires updating classes as well.
|
|
1415
1550
|
*/
|
|
1416
1551
|
startDate: string;
|
|
1417
1552
|
teamCompetitorTypes: components["schemas"]["RecordTypeWithDefaults"];
|
|
1418
|
-
/** @description Enables tooling for trying out an event with generated data. */
|
|
1419
|
-
testMode: boolean;
|
|
1420
1553
|
};
|
|
1421
1554
|
EventDTO: {
|
|
1422
1555
|
/** @default */
|
|
1423
1556
|
description: string;
|
|
1424
1557
|
attributes: components["schemas"]["RecordValue_for_Primitive"];
|
|
1425
1558
|
/**
|
|
1426
|
-
* @description
|
|
1427
|
-
*
|
|
1428
|
-
* more than once.
|
|
1429
|
-
* @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.
|
|
1430
1561
|
*/
|
|
1431
|
-
|
|
1562
|
+
customData?: {
|
|
1563
|
+
[key: string]: string;
|
|
1564
|
+
};
|
|
1432
1565
|
endDate?: string | null;
|
|
1433
1566
|
individualCompetitorTypes: components["schemas"]["RecordTypeWithDefaults"];
|
|
1434
1567
|
name: string;
|
|
1568
|
+
/**
|
|
1569
|
+
* @default {
|
|
1570
|
+
* "duplicateCompetitorPolicy": "error",
|
|
1571
|
+
* "invalidLinkedFormatPolicy": "last-known-table"
|
|
1572
|
+
* }
|
|
1573
|
+
*/
|
|
1574
|
+
settings: components["schemas"]["EventSettings"];
|
|
1435
1575
|
/** @description The start date might be used for calculating the competitors age. */
|
|
1436
1576
|
startDate: string;
|
|
1437
1577
|
teamCompetitorTypes: components["schemas"]["RecordTypeWithDefaults"];
|
|
1438
|
-
/**
|
|
1439
|
-
* @description Enables tooling for trying out an event with generated data.
|
|
1440
|
-
* @default false
|
|
1441
|
-
*/
|
|
1442
|
-
testMode: boolean;
|
|
1443
1578
|
};
|
|
1444
1579
|
/**
|
|
1445
1580
|
* Format: uuid
|
|
@@ -1534,6 +1669,21 @@ declare interface components {
|
|
|
1534
1669
|
rows: components["schemas"]["EventLineageRow"][];
|
|
1535
1670
|
tableId: components["schemas"]["TableId"];
|
|
1536
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
|
+
};
|
|
1537
1687
|
Example: {
|
|
1538
1688
|
/**
|
|
1539
1689
|
* @description Long description for the example.
|
|
@@ -1560,6 +1710,10 @@ declare interface components {
|
|
|
1560
1710
|
} & {
|
|
1561
1711
|
[key: string]: unknown;
|
|
1562
1712
|
};
|
|
1713
|
+
ExpressionParseError: {
|
|
1714
|
+
kind: components["schemas"]["ParseErrorKind"];
|
|
1715
|
+
location: components["schemas"]["SourceLocation"];
|
|
1716
|
+
};
|
|
1563
1717
|
ExtensionChangeEvent: ({
|
|
1564
1718
|
/** @constant */
|
|
1565
1719
|
type: "added";
|
|
@@ -1625,18 +1779,7 @@ declare interface components {
|
|
|
1625
1779
|
} & {
|
|
1626
1780
|
[key: string]: unknown;
|
|
1627
1781
|
};
|
|
1628
|
-
ExtractRecordFieldError_for_Primitive:
|
|
1629
|
-
/** @constant */
|
|
1630
|
-
type: "field-does-not-exist";
|
|
1631
|
-
data: string;
|
|
1632
|
-
} | {
|
|
1633
|
-
/** @constant */
|
|
1634
|
-
type: "invalid-type";
|
|
1635
|
-
data: {
|
|
1636
|
-
field: string;
|
|
1637
|
-
value?: components["schemas"]["Value_for_Primitive"] | null;
|
|
1638
|
-
};
|
|
1639
|
-
};
|
|
1782
|
+
ExtractRecordFieldError_for_Primitive: ExtractRecordFieldError<Primitive>;
|
|
1640
1783
|
FieldTypeWithDefault: FieldTypeWithDefault;
|
|
1641
1784
|
FolderContent: {
|
|
1642
1785
|
classIds: components["schemas"]["ClassId"][];
|
|
@@ -1652,18 +1795,22 @@ declare interface components {
|
|
|
1652
1795
|
data: components["schemas"]["GameWithTables"];
|
|
1653
1796
|
});
|
|
1654
1797
|
FolderPath: string[];
|
|
1655
|
-
FormatConnectionDTO:
|
|
1656
|
-
pins: components["schemas"]["ConnectionPin"][];
|
|
1657
|
-
sourceFormatNodeId: components["schemas"]["FormatNodeId"];
|
|
1658
|
-
sourceOutput: components["schemas"]["OutputIdx"];
|
|
1659
|
-
targetFormatNodeId: components["schemas"]["FormatNodeId"];
|
|
1660
|
-
targetInput: components["schemas"]["InputIdx"];
|
|
1661
|
-
};
|
|
1798
|
+
FormatConnectionDTO: FormatConnectionDTO;
|
|
1662
1799
|
FormatDAO: {
|
|
1663
1800
|
description: string;
|
|
1664
1801
|
category: components["schemas"]["NodeCategory"];
|
|
1665
|
-
/**
|
|
1666
|
-
|
|
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
|
+
};
|
|
1667
1814
|
/** @description The default values in here are not guaranteed to be valid for the signature. */
|
|
1668
1815
|
docs: components["schemas"]["NodeVariantDoc"];
|
|
1669
1816
|
errors: components["schemas"]["FormatValidationError"][];
|
|
@@ -1672,6 +1819,13 @@ declare interface components {
|
|
|
1672
1819
|
id: components["schemas"]["FormatId"];
|
|
1673
1820
|
name: string;
|
|
1674
1821
|
signature: components["schemas"]["NodeSignature_for_Type_and_ParamRef"];
|
|
1822
|
+
/**
|
|
1823
|
+
* @default {
|
|
1824
|
+
* "nodes": {},
|
|
1825
|
+
* "sections": []
|
|
1826
|
+
* }
|
|
1827
|
+
*/
|
|
1828
|
+
simplifiedView: components["schemas"]["SimplifiedView"];
|
|
1675
1829
|
/** Format: uuid */
|
|
1676
1830
|
templateOrigin?: string | null;
|
|
1677
1831
|
valid: components["schemas"]["FormatValidity"];
|
|
@@ -1684,12 +1838,18 @@ declare interface components {
|
|
|
1684
1838
|
/** @default */
|
|
1685
1839
|
description: string;
|
|
1686
1840
|
connections: components["schemas"]["FormatConnectionDTO"][];
|
|
1841
|
+
customData?: {
|
|
1842
|
+
[key: string]: string;
|
|
1843
|
+
};
|
|
1687
1844
|
/**
|
|
1688
1845
|
* @description All disqualifications that can escape this format. Like checked exceptions, every
|
|
1689
1846
|
* uncaught disqualification has to be declared and every declared one has to be throwable.
|
|
1690
|
-
*
|
|
1847
|
+
* Accepts the plain list of keys of older versions.
|
|
1848
|
+
* @default {}
|
|
1691
1849
|
*/
|
|
1692
|
-
disqualificationKinds:
|
|
1850
|
+
disqualificationKinds: {
|
|
1851
|
+
[key: string]: components["schemas"]["DqSettings"];
|
|
1852
|
+
};
|
|
1693
1853
|
/** @description There must be docs for every input and output. Otherwise formats get rejected. */
|
|
1694
1854
|
docs: components["schemas"]["NodeVariantDoc"];
|
|
1695
1855
|
formatGroupId?: components["schemas"]["FormatGroupId"] | null;
|
|
@@ -1700,6 +1860,7 @@ declare interface components {
|
|
|
1700
1860
|
* Otherwise the signature will get inferred.
|
|
1701
1861
|
*/
|
|
1702
1862
|
signature: components["schemas"]["NodeSignature_for_Type_and_ParamRef"];
|
|
1863
|
+
simplifiedView?: components["schemas"]["SimplifiedView"];
|
|
1703
1864
|
};
|
|
1704
1865
|
FormatError: {
|
|
1705
1866
|
/** @constant */
|
|
@@ -1749,6 +1910,9 @@ declare interface components {
|
|
|
1749
1910
|
};
|
|
1750
1911
|
FormatGroupDAO: {
|
|
1751
1912
|
category: components["schemas"]["NodeCategory"];
|
|
1913
|
+
customData: {
|
|
1914
|
+
[key: string]: string;
|
|
1915
|
+
};
|
|
1752
1916
|
eventId: components["schemas"]["EventId"];
|
|
1753
1917
|
id: components["schemas"]["FormatGroupId"];
|
|
1754
1918
|
name: string;
|
|
@@ -1757,6 +1921,9 @@ declare interface components {
|
|
|
1757
1921
|
};
|
|
1758
1922
|
FormatGroupDTO: {
|
|
1759
1923
|
category: components["schemas"]["NodeCategory"];
|
|
1924
|
+
customData?: {
|
|
1925
|
+
[key: string]: string;
|
|
1926
|
+
};
|
|
1760
1927
|
name: string;
|
|
1761
1928
|
};
|
|
1762
1929
|
/**
|
|
@@ -1853,6 +2020,9 @@ declare interface components {
|
|
|
1853
2020
|
controlValues: {
|
|
1854
2021
|
[key: string]: components["schemas"]["Value_for_Primitive"];
|
|
1855
2022
|
};
|
|
2023
|
+
customData: {
|
|
2024
|
+
[key: string]: string;
|
|
2025
|
+
};
|
|
1856
2026
|
formatId: components["schemas"]["FormatId"];
|
|
1857
2027
|
/** @description When not yet persisted, this is a negative number unique to the graph */
|
|
1858
2028
|
id: components["schemas"]["FormatNodeId"];
|
|
@@ -1865,7 +2035,6 @@ declare interface components {
|
|
|
1865
2035
|
* be the array varg type input.
|
|
1866
2036
|
*/
|
|
1867
2037
|
inputVargsToArray: boolean;
|
|
1868
|
-
/** @description Must always be formatted as serde formats in the db, because [Self::find_by_event_and_type] relies on that. */
|
|
1869
2038
|
nodeType: components["schemas"]["NodeType"];
|
|
1870
2039
|
/**
|
|
1871
2040
|
* @description Only legal if the nodes outputs are variadic.
|
|
@@ -1891,31 +2060,7 @@ declare interface components {
|
|
|
1891
2060
|
yPos: number;
|
|
1892
2061
|
};
|
|
1893
2062
|
/** @description For documentation about the node struct, checkout the docs for FormatNodeDAO. */
|
|
1894
|
-
FormatNodeDTO:
|
|
1895
|
-
controlValues: {
|
|
1896
|
-
[key: string]: components["schemas"]["Value_for_Primitive"];
|
|
1897
|
-
};
|
|
1898
|
-
/**
|
|
1899
|
-
* @description Any unique id works, including for new nodes: whether the id refers to a new or an
|
|
1900
|
-
* existing node is determined by whether it already exists on the format, not by its value.
|
|
1901
|
-
*/
|
|
1902
|
-
id: components["schemas"]["FormatNodeId"];
|
|
1903
|
-
inputVargsToArray: boolean;
|
|
1904
|
-
nodeType: components["schemas"]["NodeType"];
|
|
1905
|
-
outputVargsToArray: boolean;
|
|
1906
|
-
parentNodeId?: components["schemas"]["FormatNodeId"] | null;
|
|
1907
|
-
settings: components["schemas"]["RecordValue_for_Primitive"];
|
|
1908
|
-
/**
|
|
1909
|
-
* @description Ignored for existing nodes, because a node's test id never changes. Defaults to the node id.
|
|
1910
|
-
* @default null
|
|
1911
|
-
*/
|
|
1912
|
-
testId: components["schemas"]["FormatNodeTestId"] | null;
|
|
1913
|
-
typeHints: components["schemas"]["TypeHints_for_Type_and_ParamRef"];
|
|
1914
|
-
/** Format: int64 */
|
|
1915
|
-
xPos: number;
|
|
1916
|
-
/** Format: int64 */
|
|
1917
|
-
yPos: number;
|
|
1918
|
-
};
|
|
2063
|
+
FormatNodeDTO: FormatNodeDTO;
|
|
1919
2064
|
/** Format: uuid */
|
|
1920
2065
|
FormatNodeId: FormatNodeId;
|
|
1921
2066
|
/** @description The node `format_node_id` in the format instance `format_instance_id`. */
|
|
@@ -1979,6 +2124,10 @@ declare interface components {
|
|
|
1979
2124
|
} | {
|
|
1980
2125
|
/** @constant */
|
|
1981
2126
|
type: "portal-has-input-connection";
|
|
2127
|
+
} | {
|
|
2128
|
+
/** @constant */
|
|
2129
|
+
type: "invalid-comment-link";
|
|
2130
|
+
data: components["schemas"]["FormatNodeId"];
|
|
1982
2131
|
} | {
|
|
1983
2132
|
/** @constant */
|
|
1984
2133
|
type: "parent-creates-cycle";
|
|
@@ -2190,150 +2339,38 @@ declare interface components {
|
|
|
2190
2339
|
testFormatInstanceId: components["schemas"]["FormatInstanceHash"];
|
|
2191
2340
|
};
|
|
2192
2341
|
/** @description Represents a state in which the format is not valid for execution but can be stored in the db. */
|
|
2193
|
-
FormatValidationError:
|
|
2194
|
-
|
|
2195
|
-
|
|
2196
|
-
|
|
2197
|
-
|
|
2342
|
+
FormatValidationError: FormatValidationError;
|
|
2343
|
+
/** @enum {string} */
|
|
2344
|
+
FormatValidity: FormatValidity;
|
|
2345
|
+
FullFormatDAO: {
|
|
2346
|
+
format: components["schemas"]["FormatDAO"];
|
|
2347
|
+
connections: components["schemas"]["FormatNodeConnectionDAO"][];
|
|
2348
|
+
nodes: components["schemas"]["FormatNodeDAO"][];
|
|
2349
|
+
};
|
|
2350
|
+
FullFormatInstanceDTO: {
|
|
2351
|
+
format: components["schemas"]["FormatDAO"];
|
|
2352
|
+
formatInstance: components["schemas"]["FormatInstanceDAO"];
|
|
2353
|
+
parent?: components["schemas"]["FullFormatInstanceDTO"] | null;
|
|
2354
|
+
parentFormatNode?: components["schemas"]["FormatNodeDAO"] | null;
|
|
2355
|
+
/**
|
|
2356
|
+
* @description The folder names [Self::parent_format_node] sits in, outermost first.
|
|
2357
|
+
* Empty when that node is not inside a folder or when there is no such node.
|
|
2358
|
+
*/
|
|
2359
|
+
parentFormatNodeFolderPath: string[];
|
|
2360
|
+
};
|
|
2361
|
+
/** @description The node `format_node_id` in the format instance `format_instance_id`. */
|
|
2362
|
+
FullNodeInstance: {
|
|
2363
|
+
formatId: components["schemas"]["FormatId"];
|
|
2364
|
+
formatInstanceId: components["schemas"]["FormatInstanceHash"];
|
|
2365
|
+
formatNodeId: components["schemas"]["FormatNodeId"];
|
|
2366
|
+
};
|
|
2367
|
+
GTFilterKind: GTFilterKind;
|
|
2368
|
+
GameDAO: {
|
|
2369
|
+
attributes: components["schemas"]["RecordValue_for_Primitive"];
|
|
2370
|
+
customData: {
|
|
2371
|
+
[key: string]: string;
|
|
2198
2372
|
};
|
|
2199
|
-
} | {
|
|
2200
|
-
/** @constant */
|
|
2201
|
-
type: "unthrown-disqualification-kinds";
|
|
2202
|
-
data: components["schemas"]["DqKey"][];
|
|
2203
|
-
} | {
|
|
2204
|
-
/** @constant */
|
|
2205
|
-
type: "root-format-with-disqualification-kinds";
|
|
2206
|
-
} | {
|
|
2207
|
-
/** @constant */
|
|
2208
|
-
type: "graph-is-cyclic";
|
|
2209
|
-
} | {
|
|
2210
|
-
/** @constant */
|
|
2211
|
-
type: "too-many-inputs";
|
|
2212
|
-
data: components["schemas"]["ParentType"];
|
|
2213
|
-
} | {
|
|
2214
|
-
/** @constant */
|
|
2215
|
-
type: "too-many-outputs";
|
|
2216
|
-
data: components["schemas"]["ParentType"];
|
|
2217
|
-
} | {
|
|
2218
|
-
/** @constant */
|
|
2219
|
-
type: "invalid-node";
|
|
2220
|
-
data: [
|
|
2221
|
-
components["schemas"]["FormatNodeId"],
|
|
2222
|
-
components["schemas"]["InvalidNodeReason"]
|
|
2223
|
-
];
|
|
2224
|
-
} | {
|
|
2225
|
-
/** @constant */
|
|
2226
|
-
type: "too-many-closure-inputs";
|
|
2227
|
-
} | {
|
|
2228
|
-
/** @constant */
|
|
2229
|
-
type: "root-format-with-input-or-output";
|
|
2230
|
-
} | {
|
|
2231
|
-
/** @constant */
|
|
2232
|
-
type: "child-format-is-invalid";
|
|
2233
|
-
data: components["schemas"]["FormatId"];
|
|
2234
|
-
} | {
|
|
2235
|
-
/** @constant */
|
|
2236
|
-
type: "root-format-referenced";
|
|
2237
|
-
data: components["schemas"]["FormatId"];
|
|
2238
|
-
} | {
|
|
2239
|
-
/** @constant */
|
|
2240
|
-
type: "cyclic-parent-relation";
|
|
2241
|
-
data: components["schemas"]["FormatNodeId"][];
|
|
2242
|
-
} | {
|
|
2243
|
-
/** @constant */
|
|
2244
|
-
type: "illegal-child";
|
|
2245
|
-
data: components["schemas"]["FormatNodeId"];
|
|
2246
|
-
} | {
|
|
2247
|
-
/** @constant */
|
|
2248
|
-
type: "parent-connected-to-child";
|
|
2249
|
-
data: {
|
|
2250
|
-
child: components["schemas"]["FormatNodeId"];
|
|
2251
|
-
parent: components["schemas"]["FormatNodeId"];
|
|
2252
|
-
};
|
|
2253
|
-
} | {
|
|
2254
|
-
/** @constant */
|
|
2255
|
-
type: "connection-escapes-scope";
|
|
2256
|
-
data: {
|
|
2257
|
-
scope: components["schemas"]["FormatNodeId"];
|
|
2258
|
-
source: components["schemas"]["FormatNodeId"];
|
|
2259
|
-
target: components["schemas"]["FormatNodeId"];
|
|
2260
|
-
};
|
|
2261
|
-
} | {
|
|
2262
|
-
/** @constant */
|
|
2263
|
-
type: "input-or-output-node-with-parent";
|
|
2264
|
-
} | {
|
|
2265
|
-
/** @constant */
|
|
2266
|
-
type: "node-configuration-error";
|
|
2267
|
-
data: components["schemas"]["NodeConfigurationError"];
|
|
2268
|
-
} | {
|
|
2269
|
-
/** @constant */
|
|
2270
|
-
type: "cyclic-format-dependency";
|
|
2271
|
-
} | {
|
|
2272
|
-
/** @constant */
|
|
2273
|
-
type: "type-validation-errors";
|
|
2274
|
-
data: components["schemas"]["ValidationError_for_Type"][];
|
|
2275
|
-
} | {
|
|
2276
|
-
/** @constant */
|
|
2277
|
-
type: "static-input-received-non-static-connection";
|
|
2278
|
-
} | {
|
|
2279
|
-
/** @constant */
|
|
2280
|
-
type: "nodety-error";
|
|
2281
|
-
data: components["schemas"]["NodetyError"];
|
|
2282
|
-
} | {
|
|
2283
|
-
/** @constant */
|
|
2284
|
-
type: "format-of-other-event-referenced";
|
|
2285
|
-
data: components["schemas"]["FormatId"];
|
|
2286
|
-
} | {
|
|
2287
|
-
/** @constant */
|
|
2288
|
-
type: "invalid-signature";
|
|
2289
|
-
} | {
|
|
2290
|
-
/** @constant */
|
|
2291
|
-
type: "missing-output-node";
|
|
2292
|
-
};
|
|
2293
|
-
/** @enum {string} */
|
|
2294
|
-
FormatValidity: "invalid" | "valid";
|
|
2295
|
-
FullFormatDAO: {
|
|
2296
|
-
format: components["schemas"]["FormatDAO"];
|
|
2297
|
-
connections: components["schemas"]["FormatNodeConnectionDAO"][];
|
|
2298
|
-
nodes: components["schemas"]["FormatNodeDAO"][];
|
|
2299
|
-
};
|
|
2300
|
-
FullFormatInstanceDTO: {
|
|
2301
|
-
format: components["schemas"]["FormatDAO"];
|
|
2302
|
-
formatInstance: components["schemas"]["FormatInstanceDAO"];
|
|
2303
|
-
parent?: components["schemas"]["FullFormatInstanceDTO"] | null;
|
|
2304
|
-
parentFormatNode?: components["schemas"]["FormatNodeDAO"] | null;
|
|
2305
|
-
/**
|
|
2306
|
-
* @description The folder names [Self::parent_format_node] sits in, outermost first.
|
|
2307
|
-
* Empty when that node is not inside a folder or when there is no such node.
|
|
2308
|
-
*/
|
|
2309
|
-
parentFormatNodeFolderPath: string[];
|
|
2310
|
-
};
|
|
2311
|
-
/** @description The node `format_node_id` in the format instance `format_instance_id`. */
|
|
2312
|
-
FullNodeInstance: {
|
|
2313
|
-
formatId: components["schemas"]["FormatId"];
|
|
2314
|
-
formatInstanceId: components["schemas"]["FormatInstanceHash"];
|
|
2315
|
-
formatNodeId: components["schemas"]["FormatNodeId"];
|
|
2316
|
-
};
|
|
2317
|
-
GTFilterKind: {
|
|
2318
|
-
/** @constant */
|
|
2319
|
-
type: "class-filter";
|
|
2320
|
-
} | {
|
|
2321
|
-
/** @constant */
|
|
2322
|
-
type: "gender";
|
|
2323
|
-
} | {
|
|
2324
|
-
/** @constant */
|
|
2325
|
-
type: "comparison-filter";
|
|
2326
|
-
data: components["schemas"]["ComparisonOp"];
|
|
2327
|
-
} | {
|
|
2328
|
-
/** @constant */
|
|
2329
|
-
type: "custom";
|
|
2330
|
-
};
|
|
2331
|
-
GameDAO: {
|
|
2332
|
-
attributes: components["schemas"]["RecordValue_for_Primitive"];
|
|
2333
2373
|
eventId: components["schemas"]["EventId"];
|
|
2334
|
-
extensionData: {
|
|
2335
|
-
[key: string]: string;
|
|
2336
|
-
};
|
|
2337
2374
|
/**
|
|
2338
2375
|
* Format: uint32
|
|
2339
2376
|
* @description The game depth of the game's entry table.
|
|
@@ -2347,7 +2384,7 @@ declare interface components {
|
|
|
2347
2384
|
};
|
|
2348
2385
|
GameDTO: {
|
|
2349
2386
|
attributes: components["schemas"]["RecordValue_for_Primitive"];
|
|
2350
|
-
|
|
2387
|
+
customData?: {
|
|
2351
2388
|
[key: string]: string;
|
|
2352
2389
|
};
|
|
2353
2390
|
gameFormatId: components["schemas"]["GameFormatId"];
|
|
@@ -2362,11 +2399,18 @@ declare interface components {
|
|
|
2362
2399
|
GameFormatDAO: {
|
|
2363
2400
|
description: string;
|
|
2364
2401
|
attributesType: components["schemas"]["RecordTypeWithDefaults"];
|
|
2365
|
-
|
|
2366
|
-
eventId: components["schemas"]["EventId"];
|
|
2367
|
-
extensionData: {
|
|
2402
|
+
customData: {
|
|
2368
2403
|
[key: string]: string;
|
|
2369
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"];
|
|
2370
2414
|
id: components["schemas"]["GameFormatId"];
|
|
2371
2415
|
name: string;
|
|
2372
2416
|
/** @description Run in order on every result row. */
|
|
@@ -2385,10 +2429,17 @@ declare interface components {
|
|
|
2385
2429
|
/** @default */
|
|
2386
2430
|
description: string;
|
|
2387
2431
|
attributesType: components["schemas"]["RecordTypeWithDefaults"];
|
|
2388
|
-
|
|
2389
|
-
extensionData: {
|
|
2432
|
+
customData?: {
|
|
2390
2433
|
[key: string]: string;
|
|
2391
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"];
|
|
2392
2443
|
name: string;
|
|
2393
2444
|
/** @description Run in order on every result row. */
|
|
2394
2445
|
postProcessingSteps: components["schemas"]["GameFormatPostProcessingStep"][];
|
|
@@ -2410,22 +2461,7 @@ declare interface components {
|
|
|
2410
2461
|
* result, after the result has been entered. They never change the stored result of the game, only
|
|
2411
2462
|
* the result table the game node outputs.
|
|
2412
2463
|
*/
|
|
2413
|
-
GameFormatPostProcessingStep:
|
|
2414
|
-
/** @constant */
|
|
2415
|
-
type: "disqualify";
|
|
2416
|
-
data: {
|
|
2417
|
-
expression: string;
|
|
2418
|
-
key: components["schemas"]["DqKey"];
|
|
2419
|
-
};
|
|
2420
|
-
} | {
|
|
2421
|
-
/** @constant */
|
|
2422
|
-
type: "set-output-column";
|
|
2423
|
-
data: {
|
|
2424
|
-
column: string;
|
|
2425
|
-
columnType: components["schemas"]["TypeExpr_for_Type_and_ParamRef"];
|
|
2426
|
-
expression: string;
|
|
2427
|
-
};
|
|
2428
|
-
};
|
|
2464
|
+
GameFormatPostProcessingStep: GameFormatPostProcessingStep;
|
|
2429
2465
|
/**
|
|
2430
2466
|
* Format: uuid
|
|
2431
2467
|
* @description Identifies a game, the primary key of `games`. Comes from one of:
|
|
@@ -2437,32 +2473,9 @@ declare interface components {
|
|
|
2437
2473
|
* Changing a derivation changes what replaying a log produces and needs an `ENGINE_VERSION` increment.
|
|
2438
2474
|
*/
|
|
2439
2475
|
GameId: GameId;
|
|
2440
|
-
GameNodeDTO:
|
|
2441
|
-
/**
|
|
2442
|
-
* @description Caught disqualifications are not thrown. [DqStrategy] decides how they are surfaced.
|
|
2443
|
-
* @default {}
|
|
2444
|
-
*/
|
|
2445
|
-
catchDqs: {
|
|
2446
|
-
[key: string]: components["schemas"]["DqStrategy"];
|
|
2447
|
-
};
|
|
2448
|
-
gameFormatId: components["schemas"]["GameFormatId"];
|
|
2449
|
-
variant: components["schemas"]["GameNodeVariant"];
|
|
2450
|
-
};
|
|
2476
|
+
GameNodeDTO: GameNodeDTO;
|
|
2451
2477
|
/** @description How many games a game node plays and how they depend on each other. */
|
|
2452
|
-
GameNodeVariant:
|
|
2453
|
-
/** @constant */
|
|
2454
|
-
type: "single";
|
|
2455
|
-
} | {
|
|
2456
|
-
/** @constant */
|
|
2457
|
-
type: "parallel";
|
|
2458
|
-
} | {
|
|
2459
|
-
/** @constant */
|
|
2460
|
-
type: "sequential";
|
|
2461
|
-
data: {
|
|
2462
|
-
/** Format: uint */
|
|
2463
|
-
gameCount: number;
|
|
2464
|
-
};
|
|
2465
|
-
};
|
|
2478
|
+
GameNodeVariant: GameNodeVariant;
|
|
2466
2479
|
GamePathVariables_for_CommonWorkspaceId: {
|
|
2467
2480
|
eventId: components["schemas"]["EventId"];
|
|
2468
2481
|
gameId: components["schemas"]["GameId"];
|
|
@@ -2510,21 +2523,12 @@ declare interface components {
|
|
|
2510
2523
|
strategy: components["schemas"]["UniqueBibStrategy"];
|
|
2511
2524
|
};
|
|
2512
2525
|
/** @description Location of a validation error in the graph. */
|
|
2513
|
-
GraphLocation:
|
|
2514
|
-
|
|
2515
|
-
|
|
2516
|
-
|
|
2517
|
-
|
|
2518
|
-
|
|
2519
|
-
/** @constant */
|
|
2520
|
-
type: "InputPort";
|
|
2521
|
-
data: {
|
|
2522
|
-
/** Format: uint */
|
|
2523
|
-
inputIdx: number;
|
|
2524
|
-
/** Format: uint */
|
|
2525
|
-
nodeIdx: number;
|
|
2526
|
-
};
|
|
2527
|
-
};
|
|
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;
|
|
2528
2532
|
/**
|
|
2529
2533
|
* @description The Header Object follows the structure of the Parameter Object with the
|
|
2530
2534
|
* following changes:
|
|
@@ -2657,28 +2661,8 @@ declare interface components {
|
|
|
2657
2661
|
/** @constant */
|
|
2658
2662
|
type: "missing-dependency";
|
|
2659
2663
|
};
|
|
2660
|
-
|
|
2661
|
-
|
|
2662
|
-
type: "invalid-node";
|
|
2663
|
-
} | {
|
|
2664
|
-
/** @constant */
|
|
2665
|
-
type: "node-is-not-variadic-but-vargs-to-array-set";
|
|
2666
|
-
} | {
|
|
2667
|
-
/** @constant */
|
|
2668
|
-
type: "illegal-control-values";
|
|
2669
|
-
} | ({
|
|
2670
|
-
/** @constant */
|
|
2671
|
-
type: "node-configuration-error";
|
|
2672
|
-
} & components["schemas"]["NodeConfigurationError"]) | {
|
|
2673
|
-
/** @constant */
|
|
2674
|
-
type: "catching-disqualifications-of-variadic-format";
|
|
2675
|
-
} | {
|
|
2676
|
-
/** @constant */
|
|
2677
|
-
type: "appending-disqualifications-to-incompatible-output";
|
|
2678
|
-
} | {
|
|
2679
|
-
/** @constant */
|
|
2680
|
-
type: "game-result-not-assignable-to-entry";
|
|
2681
|
-
};
|
|
2664
|
+
InvalidLinkedFormatPolicy: "empty-table" | "node-error" | "last-known-table";
|
|
2665
|
+
InvalidNodeReason: InvalidNodeReason;
|
|
2682
2666
|
/** @description License information for the exposed API. */
|
|
2683
2667
|
License: {
|
|
2684
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. */
|
|
@@ -2762,7 +2746,7 @@ declare interface components {
|
|
|
2762
2746
|
* @description Identifies a type parameter within a type expression or node signature.
|
|
2763
2747
|
* Can be created from a single character (e.g. `'T'`) or a string (hashed for multi-char names).
|
|
2764
2748
|
*/
|
|
2765
|
-
LocalParamID:
|
|
2749
|
+
LocalParamID: LocalParamID;
|
|
2766
2750
|
/** @description An error that originated in a node, identified independently of the unstable `NodeIndex`. */
|
|
2767
2751
|
LocatedNodeError: {
|
|
2768
2752
|
error: components["schemas"]["NodeRuntimeError"];
|
|
@@ -2770,6 +2754,21 @@ declare interface components {
|
|
|
2770
2754
|
formatId: components["schemas"]["FormatId"];
|
|
2771
2755
|
formatInstanceId: components["schemas"]["FormatInstanceHash"];
|
|
2772
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"];
|
|
2773
2772
|
};
|
|
2774
2773
|
/** Format: uuid */
|
|
2775
2774
|
LogBatchId: string;
|
|
@@ -2845,6 +2844,10 @@ declare interface components {
|
|
|
2845
2844
|
/** @constant */
|
|
2846
2845
|
type: "update-game-table";
|
|
2847
2846
|
data: components["schemas"]["UpdateTableMutation"];
|
|
2847
|
+
} | {
|
|
2848
|
+
/** @constant */
|
|
2849
|
+
type: "update-standalone-table";
|
|
2850
|
+
data: components["schemas"]["UpdateStandaloneTableMutation"];
|
|
2848
2851
|
} | {
|
|
2849
2852
|
/** @constant */
|
|
2850
2853
|
type: "delete-game-table";
|
|
@@ -2961,6 +2964,10 @@ declare interface components {
|
|
|
2961
2964
|
/** @constant */
|
|
2962
2965
|
type: "link-to-template";
|
|
2963
2966
|
data: components["schemas"]["LinkToTemplateMutation"];
|
|
2967
|
+
} | {
|
|
2968
|
+
/** @constant */
|
|
2969
|
+
type: "set-custom-data";
|
|
2970
|
+
data: components["schemas"]["SetCustomDataMutation"];
|
|
2964
2971
|
};
|
|
2965
2972
|
LogEntrySmall: {
|
|
2966
2973
|
description: string;
|
|
@@ -2998,9 +3005,7 @@ declare interface components {
|
|
|
2998
3005
|
/** @description The exact name to give the copied format. */
|
|
2999
3006
|
name: string;
|
|
3000
3007
|
};
|
|
3001
|
-
MakeValidError:
|
|
3002
|
-
missingDefaultField: string;
|
|
3003
|
-
};
|
|
3008
|
+
MakeValidError: MakeValidError;
|
|
3004
3009
|
Map_of_TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type: {
|
|
3005
3010
|
[key: string]: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
3006
3011
|
};
|
|
@@ -3008,7 +3013,7 @@ declare interface components {
|
|
|
3008
3013
|
[key: string]: components["schemas"]["TypeExpr_for_Type_and_ParamRef"];
|
|
3009
3014
|
};
|
|
3010
3015
|
/** @enum {string} */
|
|
3011
|
-
MathNodeOp:
|
|
3016
|
+
MathNodeOp: MathNodeOp;
|
|
3012
3017
|
MediaType: {
|
|
3013
3018
|
encoding?: {
|
|
3014
3019
|
[key: string]: components["schemas"]["Encoding"];
|
|
@@ -3021,43 +3026,21 @@ declare interface components {
|
|
|
3021
3026
|
} & {
|
|
3022
3027
|
[key: string]: unknown;
|
|
3023
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;
|
|
3024
3034
|
/** @enum {string} */
|
|
3025
|
-
MultiplexingStrategy:
|
|
3035
|
+
MultiplexingStrategy: MultiplexingStrategy;
|
|
3026
3036
|
NameQuery: {
|
|
3027
3037
|
name: string;
|
|
3028
3038
|
};
|
|
3029
|
-
NoSupertypeLayerReason:
|
|
3039
|
+
NoSupertypeLayerReason: NoSupertypeLayerReason;
|
|
3030
3040
|
NoSupertypeLayer_for_Type: NoSupertypeLayer<Type>;
|
|
3031
3041
|
/** @enum {string} */
|
|
3032
3042
|
NodeCategory: "logic" | "game" | "tables" | "arrays" | "math" | "class" | "input-output" | "invalid" | "other" | "root";
|
|
3033
|
-
NodeConfigurationError:
|
|
3034
|
-
/** @constant */
|
|
3035
|
-
type: "extract-record-field-error";
|
|
3036
|
-
data: components["schemas"]["ExtractRecordFieldError_for_Primitive"];
|
|
3037
|
-
} | {
|
|
3038
|
-
/** @constant */
|
|
3039
|
-
type: "invalid-value";
|
|
3040
|
-
data: {
|
|
3041
|
-
givenValue: components["schemas"]["Value_for_SerializableNonPrimitiveValue"];
|
|
3042
|
-
identifier: string;
|
|
3043
|
-
message: string;
|
|
3044
|
-
};
|
|
3045
|
-
} | {
|
|
3046
|
-
/** @constant */
|
|
3047
|
-
type: "node-is-not-variadic-but-vargs-to-array-set";
|
|
3048
|
-
} | {
|
|
3049
|
-
/** @constant */
|
|
3050
|
-
type: "found-closure-input-node-in-non-closure";
|
|
3051
|
-
} | {
|
|
3052
|
-
/** @constant */
|
|
3053
|
-
type: "invalid-node";
|
|
3054
|
-
} | {
|
|
3055
|
-
/** @constant */
|
|
3056
|
-
type: "illegal-vargs-to-array";
|
|
3057
|
-
} | {
|
|
3058
|
-
/** @constant */
|
|
3059
|
-
type: "illegal-control-values";
|
|
3060
|
-
};
|
|
3043
|
+
NodeConfigurationError: NodeConfigurationError;
|
|
3061
3044
|
NodeDocTest: {
|
|
3062
3045
|
description?: string | null;
|
|
3063
3046
|
format: components["schemas"]["FormatDTO"];
|
|
@@ -3107,12 +3090,22 @@ declare interface components {
|
|
|
3107
3090
|
result: components["schemas"]["SerializableNodeResult"];
|
|
3108
3091
|
testId: components["schemas"]["FormatNodeTestId"];
|
|
3109
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;
|
|
3110
3098
|
NodePathVariables_for_CommonWorkspaceId: {
|
|
3111
3099
|
eventId: components["schemas"]["EventId"];
|
|
3112
3100
|
formatId: components["schemas"]["FormatId"];
|
|
3113
3101
|
nodeId: components["schemas"]["FormatNodeId"];
|
|
3114
3102
|
workspaceId: components["schemas"]["CommonWorkspaceId"];
|
|
3115
3103
|
};
|
|
3104
|
+
NodePlacement: {
|
|
3105
|
+
group?: components["schemas"]["SimplifiedGroupId"] | null;
|
|
3106
|
+
link?: components["schemas"]["NodeLinkId"] | null;
|
|
3107
|
+
section: components["schemas"]["SimplifiedSectionId"];
|
|
3108
|
+
};
|
|
3116
3109
|
NodePrototype: {
|
|
3117
3110
|
/**
|
|
3118
3111
|
* @description If there is only one variant, the node should not display a select for the variants.
|
|
@@ -3214,289 +3207,15 @@ declare interface components {
|
|
|
3214
3207
|
* @description Function-like type for a node: generic parameters, inputs, outputs, and defaults.
|
|
3215
3208
|
* Written in notation as `<T>(T) -> (T)` for the identity node.
|
|
3216
3209
|
*/
|
|
3217
|
-
NodeSignature_for_Type_and_ErasedScopedTypeRef_for_Type:
|
|
3218
|
-
/**
|
|
3219
|
-
* @description Types that get used when there is no connection to the input.
|
|
3220
|
-
* These get ignored for nested NodeSignatures.
|
|
3221
|
-
*/
|
|
3222
|
-
defaultInputTypes: {
|
|
3223
|
-
[key: string]: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
3224
|
-
};
|
|
3225
|
-
/**
|
|
3226
|
-
* @description inputs and outputs are no PortTypes because having them TypeExpr
|
|
3227
|
-
* Enables one to express `() -> Never` which is the node signature
|
|
3228
|
-
* assignable to all other node signatures. Useful for inferring what
|
|
3229
|
-
* type a closure should be.
|
|
3230
|
-
*/
|
|
3231
|
-
inputs: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
3232
|
-
outputs: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
3233
|
-
/** @description Generic parameters with their bounds and defaults. */
|
|
3234
|
-
parameters: components["schemas"]["TypeParameters_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
3235
|
-
/**
|
|
3236
|
-
* @description Tags this node *requires* from every incoming edge.
|
|
3237
|
-
*
|
|
3238
|
-
* During validation, each incoming edge's source tags are checked against
|
|
3239
|
-
* this set. Any tag present here but missing from an incoming edge
|
|
3240
|
-
* produces a [`TagMissing`](crate::validation::ValidationErrorKind::TagMissing)
|
|
3241
|
-
* error.
|
|
3242
|
-
*
|
|
3243
|
-
* Defaults to `∅` (no requirements).
|
|
3244
|
-
*/
|
|
3245
|
-
requiredTags: number[];
|
|
3246
|
-
/**
|
|
3247
|
-
* @description Tags this node *provides* to downstream consumers.
|
|
3248
|
-
*
|
|
3249
|
-
* - `Some(set)` — the node carries exactly the listed tags.
|
|
3250
|
-
* - `None` — the node carries *every* tag (universal set), making it a
|
|
3251
|
-
* supertype of all other tag sets.
|
|
3252
|
-
*
|
|
3253
|
-
* Tags propagate forward through the graph: a node's effective tag set
|
|
3254
|
-
* is the intersection of its own `tags` with every incoming edge's tags.
|
|
3255
|
-
*
|
|
3256
|
-
* Defaults to `Some(∅)` (no tags).
|
|
3257
|
-
*
|
|
3258
|
-
* `u32` is used instead of `usize` for wasm compatibility (JS has 32-bit
|
|
3259
|
-
* integers).
|
|
3260
|
-
*/
|
|
3261
|
-
tags?: number[] | null;
|
|
3262
|
-
};
|
|
3210
|
+
NodeSignature_for_Type_and_ErasedScopedTypeRef_for_Type: NodeSignature<Type, components["schemas"]["ErasedScopedTypeRef_for_Type"]>;
|
|
3263
3211
|
/**
|
|
3264
3212
|
* @description Function-like type for a node: generic parameters, inputs, outputs, and defaults.
|
|
3265
3213
|
* Written in notation as `<T>(T) -> (T)` for the identity node.
|
|
3266
3214
|
*/
|
|
3267
3215
|
NodeSignature_for_Type_and_ParamRef: NodeSignature<Type, ParamRef>;
|
|
3268
|
-
NodeType:
|
|
3269
|
-
/** @constant */
|
|
3270
|
-
type: "input";
|
|
3271
|
-
} | {
|
|
3272
|
-
/** @constant */
|
|
3273
|
-
type: "output";
|
|
3274
|
-
} | {
|
|
3275
|
-
/** @constant */
|
|
3276
|
-
type: "format";
|
|
3277
|
-
data: {
|
|
3278
|
-
/**
|
|
3279
|
-
* @description Each of these get caught and handled according to [`DqStrategy`].
|
|
3280
|
-
* @default {}
|
|
3281
|
-
*/
|
|
3282
|
-
catchDqs: {
|
|
3283
|
-
[key: string]: components["schemas"]["DqStrategy"];
|
|
3284
|
-
};
|
|
3285
|
-
formatId: components["schemas"]["FormatId"];
|
|
3286
|
-
};
|
|
3287
|
-
} | {
|
|
3288
|
-
/** @constant */
|
|
3289
|
-
type: "math";
|
|
3290
|
-
data: {
|
|
3291
|
-
op: components["schemas"]["MathNodeOp"];
|
|
3292
|
-
};
|
|
3293
|
-
} | {
|
|
3294
|
-
/** @constant */
|
|
3295
|
-
type: "game";
|
|
3296
|
-
data: components["schemas"]["GameNodeDTO"];
|
|
3297
|
-
} | {
|
|
3298
|
-
/** @constant */
|
|
3299
|
-
type: "output-table";
|
|
3300
|
-
} | {
|
|
3301
|
-
/** @constant */
|
|
3302
|
-
type: "input-table";
|
|
3303
|
-
data: {
|
|
3304
|
-
tableId: components["schemas"]["TableId"];
|
|
3305
|
-
};
|
|
3306
|
-
} | {
|
|
3307
|
-
/** @constant */
|
|
3308
|
-
type: "portal";
|
|
3309
|
-
data: {
|
|
3310
|
-
sourceNodeId: components["schemas"]["FormatNodeId"];
|
|
3311
|
-
sourceOutput: components["schemas"]["OutputIdx"];
|
|
3312
|
-
};
|
|
3313
|
-
} | {
|
|
3314
|
-
/** @constant */
|
|
3315
|
-
type: "class";
|
|
3316
|
-
data: {
|
|
3317
|
-
classId: components["schemas"]["ClassId"];
|
|
3318
|
-
};
|
|
3319
|
-
} | {
|
|
3320
|
-
/** @constant */
|
|
3321
|
-
type: "catch-dq";
|
|
3322
|
-
data: components["schemas"]["CatchDqNode"];
|
|
3323
|
-
} | {
|
|
3324
|
-
/** @constant */
|
|
3325
|
-
type: "disqualify";
|
|
3326
|
-
data: components["schemas"]["DisqualifyNode"];
|
|
3327
|
-
} | {
|
|
3328
|
-
/** @constant */
|
|
3329
|
-
type: "folder";
|
|
3330
|
-
data: {
|
|
3331
|
-
folderName: string;
|
|
3332
|
-
};
|
|
3333
|
-
} | {
|
|
3334
|
-
/** @constant */
|
|
3335
|
-
type: "group";
|
|
3336
|
-
data: {
|
|
3337
|
-
name: string;
|
|
3338
|
-
};
|
|
3339
|
-
} | {
|
|
3340
|
-
/** @constant */
|
|
3341
|
-
type: "string-concat";
|
|
3342
|
-
} | {
|
|
3343
|
-
/** @constant */
|
|
3344
|
-
type: "string-format";
|
|
3345
|
-
} | {
|
|
3346
|
-
/** @constant */
|
|
3347
|
-
type: "sort-node";
|
|
3348
|
-
} | {
|
|
3349
|
-
/** @constant */
|
|
3350
|
-
type: "constant";
|
|
3351
|
-
} | {
|
|
3352
|
-
/** @constant */
|
|
3353
|
-
type: "merge-tables";
|
|
3354
|
-
} | {
|
|
3355
|
-
/** @constant */
|
|
3356
|
-
type: "divide-table";
|
|
3357
|
-
} | {
|
|
3358
|
-
/** @constant */
|
|
3359
|
-
type: "distribute-table";
|
|
3360
|
-
} | {
|
|
3361
|
-
/** @constant */
|
|
3362
|
-
type: "split-table";
|
|
3363
|
-
data: components["schemas"]["SplitTableNode"];
|
|
3364
|
-
} | {
|
|
3365
|
-
/** @constant */
|
|
3366
|
-
type: "concat";
|
|
3367
|
-
data: {
|
|
3368
|
-
sorted: boolean;
|
|
3369
|
-
};
|
|
3370
|
-
} | {
|
|
3371
|
-
/** @constant */
|
|
3372
|
-
type: "remove-places";
|
|
3373
|
-
} | {
|
|
3374
|
-
/** @constant */
|
|
3375
|
-
type: "table-map";
|
|
3376
|
-
} | {
|
|
3377
|
-
/** @constant */
|
|
3378
|
-
type: "length";
|
|
3379
|
-
} | {
|
|
3380
|
-
/** @constant */
|
|
3381
|
-
type: "boolean-op";
|
|
3382
|
-
data: {
|
|
3383
|
-
op: components["schemas"]["BooleanOp"];
|
|
3384
|
-
};
|
|
3385
|
-
} | {
|
|
3386
|
-
/** @constant */
|
|
3387
|
-
type: "record-field";
|
|
3388
|
-
data: {
|
|
3389
|
-
op: components["schemas"]["RecordFieldOp"];
|
|
3390
|
-
};
|
|
3391
|
-
} | {
|
|
3392
|
-
/** @constant */
|
|
3393
|
-
type: "add-record-fields";
|
|
3394
|
-
data: components["schemas"]["AddRecordFieldsNode"];
|
|
3395
|
-
} | {
|
|
3396
|
-
/** @constant */
|
|
3397
|
-
type: "fallback";
|
|
3398
|
-
} | {
|
|
3399
|
-
/** @constant */
|
|
3400
|
-
type: "gt-row";
|
|
3401
|
-
data: {
|
|
3402
|
-
errorOnNotFound: boolean;
|
|
3403
|
-
};
|
|
3404
|
-
} | {
|
|
3405
|
-
/** @constant */
|
|
3406
|
-
type: "filter-gt";
|
|
3407
|
-
data: {
|
|
3408
|
-
filter: components["schemas"]["GTFilterKind"];
|
|
3409
|
-
};
|
|
3410
|
-
} | {
|
|
3411
|
-
/** @constant */
|
|
3412
|
-
type: "comparison";
|
|
3413
|
-
data: {
|
|
3414
|
-
op: components["schemas"]["ComparisonOp"];
|
|
3415
|
-
};
|
|
3416
|
-
} | {
|
|
3417
|
-
/** @constant */
|
|
3418
|
-
type: "comment";
|
|
3419
|
-
data: {
|
|
3420
|
-
comment: string;
|
|
3421
|
-
};
|
|
3422
|
-
} | {
|
|
3423
|
-
/** @constant */
|
|
3424
|
-
type: "ternary";
|
|
3425
|
-
} | {
|
|
3426
|
-
/** @constant */
|
|
3427
|
-
type: "separate-row";
|
|
3428
|
-
} | {
|
|
3429
|
-
/** @constant */
|
|
3430
|
-
type: "update-row";
|
|
3431
|
-
} | {
|
|
3432
|
-
/** @constant */
|
|
3433
|
-
type: "array-map";
|
|
3434
|
-
} | {
|
|
3435
|
-
/** @constant */
|
|
3436
|
-
type: "create-array";
|
|
3437
|
-
} | {
|
|
3438
|
-
/** @constant */
|
|
3439
|
-
type: "create-table";
|
|
3440
|
-
} | {
|
|
3441
|
-
/** @constant */
|
|
3442
|
-
type: "array-access";
|
|
3443
|
-
data: {
|
|
3444
|
-
errorOnNotFound: boolean;
|
|
3445
|
-
};
|
|
3446
|
-
} | {
|
|
3447
|
-
/** @constant */
|
|
3448
|
-
type: "unpack-array";
|
|
3449
|
-
data: {
|
|
3450
|
-
errorOnNotFound: boolean;
|
|
3451
|
-
};
|
|
3452
|
-
} | {
|
|
3453
|
-
/** @constant */
|
|
3454
|
-
type: "promotion-relegation";
|
|
3455
|
-
data: {
|
|
3456
|
-
/** Format: uint */
|
|
3457
|
-
finalCount?: number | null;
|
|
3458
|
-
};
|
|
3459
|
-
} | {
|
|
3460
|
-
/** @constant */
|
|
3461
|
-
type: "age-at";
|
|
3462
|
-
} | {
|
|
3463
|
-
/** @constant */
|
|
3464
|
-
type: "split-by-class";
|
|
3465
|
-
data: {
|
|
3466
|
-
/** Format: uint */
|
|
3467
|
-
classCount: number;
|
|
3468
|
-
};
|
|
3469
|
-
} | {
|
|
3470
|
-
/** @constant */
|
|
3471
|
-
type: "invalid";
|
|
3472
|
-
data: {
|
|
3473
|
-
nodeType: components["schemas"]["NodeType"];
|
|
3474
|
-
};
|
|
3475
|
-
} | {
|
|
3476
|
-
/** @constant */
|
|
3477
|
-
type: "empty-record";
|
|
3478
|
-
} | {
|
|
3479
|
-
/** @constant */
|
|
3480
|
-
type: "event-competitors";
|
|
3481
|
-
data: components["schemas"]["EventCompetitorsNode"];
|
|
3482
|
-
} | {
|
|
3483
|
-
/** @constant */
|
|
3484
|
-
type: "add-columns";
|
|
3485
|
-
data: components["schemas"]["AddColumnsNode"];
|
|
3486
|
-
} | {
|
|
3487
|
-
/** @constant */
|
|
3488
|
-
type: "matrix-transpose";
|
|
3489
|
-
} | {
|
|
3490
|
-
/** @constant */
|
|
3491
|
-
type: "simple-scoring";
|
|
3492
|
-
data: components["schemas"]["SimpleScoringNode"];
|
|
3493
|
-
} | {
|
|
3494
|
-
/** @constant */
|
|
3495
|
-
type: "classes-competitors";
|
|
3496
|
-
data: components["schemas"]["ClassesCompetitorsNode"];
|
|
3497
|
-
};
|
|
3216
|
+
NodeType: NodeType;
|
|
3498
3217
|
/** @description Auto-generated discriminant enum variants */
|
|
3499
|
-
NodeTypeDiscriminants: ("input" | "output" | "format" | "math" | "game" | "
|
|
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";
|
|
3500
3219
|
NodeVariantDoc: {
|
|
3501
3220
|
description?: string | null;
|
|
3502
3221
|
/** @default other */
|
|
@@ -3532,23 +3251,7 @@ declare interface components {
|
|
|
3532
3251
|
/** @description For the docs of format nodes */
|
|
3533
3252
|
userDefinedDocs?: components["schemas"]["NodeVariantDoc"] | null;
|
|
3534
3253
|
};
|
|
3535
|
-
NodetyError:
|
|
3536
|
-
/** @constant */
|
|
3537
|
-
type: "NodeHasChildren";
|
|
3538
|
-
} | {
|
|
3539
|
-
/** @constant */
|
|
3540
|
-
type: "ParentNotFound";
|
|
3541
|
-
} | {
|
|
3542
|
-
/** @constant */
|
|
3543
|
-
type: "NodeNotFound";
|
|
3544
|
-
} | {
|
|
3545
|
-
/** @constant */
|
|
3546
|
-
type: "CycleDetected";
|
|
3547
|
-
} | {
|
|
3548
|
-
/** @constant */
|
|
3549
|
-
type: "TypeExprValidationError";
|
|
3550
|
-
error: components["schemas"]["TypeExprValidationError"];
|
|
3551
|
-
};
|
|
3254
|
+
NodetyError: NodetyError;
|
|
3552
3255
|
OAuth2Flows: ({
|
|
3553
3256
|
implicit: {
|
|
3554
3257
|
authorizationUrl: string;
|
|
@@ -3845,14 +3548,7 @@ declare interface components {
|
|
|
3845
3548
|
/** Format: uint16 */
|
|
3846
3549
|
OutputIdx: OutputIdx;
|
|
3847
3550
|
/** @description References a local type parameter. This is context sensitive because parameters are scoped. */
|
|
3848
|
-
ParamRef:
|
|
3849
|
-
/**
|
|
3850
|
-
* @description If false, this reference will not be used to collect candidates for the parameter.
|
|
3851
|
-
* In the notation this is written as `!T`.
|
|
3852
|
-
*/
|
|
3853
|
-
infer: boolean;
|
|
3854
|
-
paramId: components["schemas"]["LocalParamID"];
|
|
3855
|
-
};
|
|
3551
|
+
ParamRef: ParamRef;
|
|
3856
3552
|
Parameter: (({
|
|
3857
3553
|
/**
|
|
3858
3554
|
* @description A brief description of the parameter. This could
|
|
@@ -4101,37 +3797,8 @@ declare interface components {
|
|
|
4101
3797
|
[key: string]: components["schemas"]["MediaType"];
|
|
4102
3798
|
};
|
|
4103
3799
|
}));
|
|
4104
|
-
ParentType:
|
|
4105
|
-
|
|
4106
|
-
type: "format-root";
|
|
4107
|
-
} | {
|
|
4108
|
-
/** @constant */
|
|
4109
|
-
type: "closure-node";
|
|
4110
|
-
data: components["schemas"]["FormatNodeId"];
|
|
4111
|
-
};
|
|
4112
|
-
ParseError: {
|
|
4113
|
-
kind: components["schemas"]["ParseErrorKind"];
|
|
4114
|
-
location: components["schemas"]["SourceLocation"];
|
|
4115
|
-
};
|
|
4116
|
-
ParseErrorKind: {
|
|
4117
|
-
/** @constant */
|
|
4118
|
-
type: "invalid-token";
|
|
4119
|
-
} | {
|
|
4120
|
-
/** @constant */
|
|
4121
|
-
type: "unexpected-token";
|
|
4122
|
-
} | {
|
|
4123
|
-
/** @constant */
|
|
4124
|
-
type: "expected-token";
|
|
4125
|
-
data: {
|
|
4126
|
-
expected: string;
|
|
4127
|
-
};
|
|
4128
|
-
} | {
|
|
4129
|
-
/** @constant */
|
|
4130
|
-
type: "invalid-number";
|
|
4131
|
-
} | {
|
|
4132
|
-
/** @constant */
|
|
4133
|
-
type: "unterminated-string";
|
|
4134
|
-
};
|
|
3800
|
+
ParentType: ParentType;
|
|
3801
|
+
ParseErrorKind: ParseErrorKind;
|
|
4135
3802
|
PatchTableStateMutation: {
|
|
4136
3803
|
/** @description None resets the table state */
|
|
4137
3804
|
state?: components["schemas"]["TableState"] | null;
|
|
@@ -4231,10 +3898,7 @@ declare interface components {
|
|
|
4231
3898
|
data: string;
|
|
4232
3899
|
};
|
|
4233
3900
|
/** @description A list of port types, optionally with a variadic type (`...T`). */
|
|
4234
|
-
PortTypes_for_Type_and_ErasedScopedTypeRef_for_Type:
|
|
4235
|
-
ports: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"][];
|
|
4236
|
-
varg?: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"] | null;
|
|
4237
|
-
};
|
|
3901
|
+
PortTypes_for_Type_and_ErasedScopedTypeRef_for_Type: PortTypes<Type, components["schemas"]["ErasedScopedTypeRef_for_Type"]>;
|
|
4238
3902
|
/** @description A list of port types, optionally with a variadic type (`...T`). */
|
|
4239
3903
|
PortTypes_for_Type_and_ParamRef: PortTypes<Type, ParamRef>;
|
|
4240
3904
|
PortsDoc: {
|
|
@@ -4253,7 +3917,7 @@ declare interface components {
|
|
|
4253
3917
|
minAge: number;
|
|
4254
3918
|
};
|
|
4255
3919
|
/** @description Crate local version of [std::convert::Infallible] */
|
|
4256
|
-
Primitive:
|
|
3920
|
+
Primitive: Primitive;
|
|
4257
3921
|
PushTableRowMutationsMutation: {
|
|
4258
3922
|
/**
|
|
4259
3923
|
* @description Challenge for a client to prevent accidentally
|
|
@@ -4275,11 +3939,8 @@ declare interface components {
|
|
|
4275
3939
|
seed: components["schemas"]["Seed"];
|
|
4276
3940
|
};
|
|
4277
3941
|
/** @enum {string} */
|
|
4278
|
-
RecordFieldOp:
|
|
4279
|
-
RecordMakeValidMutation:
|
|
4280
|
-
columnName: string;
|
|
4281
|
-
newValue: components["schemas"]["Value_for_Primitive"];
|
|
4282
|
-
};
|
|
3942
|
+
RecordFieldOp: RecordFieldOp;
|
|
3943
|
+
RecordMakeValidMutation: RecordMakeValidMutation;
|
|
4283
3944
|
RecordModifications: {
|
|
4284
3945
|
/**
|
|
4285
3946
|
* Format: uint
|
|
@@ -4311,9 +3972,7 @@ declare interface components {
|
|
|
4311
3972
|
};
|
|
4312
3973
|
};
|
|
4313
3974
|
RecordValue_for_Primitive: RecordValue<Primitive>;
|
|
4314
|
-
RecordValue_for_SerializableNonPrimitiveValue:
|
|
4315
|
-
[key: string]: components["schemas"]["Value_for_SerializableNonPrimitiveValue"];
|
|
4316
|
-
};
|
|
3975
|
+
RecordValue_for_SerializableNonPrimitiveValue: RecordValue<SerializableNonPrimitiveValue>;
|
|
4317
3976
|
ReferenceOr_for_Example: {
|
|
4318
3977
|
/**
|
|
4319
3978
|
* @description A description which by default SHOULD override that of the
|
|
@@ -4568,6 +4227,8 @@ declare interface components {
|
|
|
4568
4227
|
hash: number[];
|
|
4569
4228
|
id: components["schemas"]["LogId"];
|
|
4570
4229
|
};
|
|
4230
|
+
/** @enum {string} */
|
|
4231
|
+
ReplicationSide: "source" | "target";
|
|
4571
4232
|
ReplicationTargetMultipart: {
|
|
4572
4233
|
/** Format: binary */
|
|
4573
4234
|
file: Blob;
|
|
@@ -4599,7 +4260,7 @@ declare interface components {
|
|
|
4599
4260
|
[key: string]: unknown;
|
|
4600
4261
|
};
|
|
4601
4262
|
Resolve: {
|
|
4602
|
-
keep: components["schemas"]["
|
|
4263
|
+
keep: components["schemas"]["ReplicationSide"];
|
|
4603
4264
|
};
|
|
4604
4265
|
/** @description A table as nodes see it, without the results whose competitor is not in the entry of their game. */
|
|
4605
4266
|
ResolvedTable: {
|
|
@@ -4679,67 +4340,28 @@ declare interface components {
|
|
|
4679
4340
|
parentTableId?: components["schemas"]["TableId"] | null;
|
|
4680
4341
|
/** @description The operations between the parent row and this one, in order. */
|
|
4681
4342
|
steps: components["schemas"]["Step"][];
|
|
4682
|
-
tableId: components["schemas"]["TableId"];
|
|
4683
|
-
};
|
|
4684
|
-
RowMutationChangeEvent: {
|
|
4685
|
-
gameTableId: components["schemas"]["TableId"];
|
|
4686
|
-
};
|
|
4687
|
-
RowMutationDAO: {
|
|
4688
|
-
/**
|
|
4689
|
-
* Format: int64
|
|
4690
|
-
* @description When performing batch actions like delete all, then all these will have the same batch id.
|
|
4691
|
-
* Otherwise it will get incremented. Used for undo & redo.
|
|
4692
|
-
*/
|
|
4693
|
-
batch: number;
|
|
4694
|
-
competitorId: components["schemas"]["CompetitorId"];
|
|
4695
|
-
gameTableId: components["schemas"]["TableId"];
|
|
4696
|
-
/** @description Counts per table, so it is unique only together with `game_table_id`. */
|
|
4697
|
-
idx: components["schemas"]["RowMutationIdx"];
|
|
4698
|
-
kind: components["schemas"]["RowMutationKind"];
|
|
4699
|
-
};
|
|
4700
|
-
/** Format: int64 */
|
|
4701
|
-
RowMutationIdx: RowMutationIdx;
|
|
4702
|
-
RowMutationKind: {
|
|
4703
|
-
/** @constant */
|
|
4704
|
-
type: "set-record-field";
|
|
4705
|
-
field: string;
|
|
4706
|
-
value: components["schemas"]["Value_for_Primitive"];
|
|
4707
|
-
} | {
|
|
4708
|
-
/** @constant */
|
|
4709
|
-
type: "push-unranked";
|
|
4710
|
-
columns: components["schemas"]["RecordValue_for_Primitive"];
|
|
4711
|
-
} | {
|
|
4712
|
-
/** @constant */
|
|
4713
|
-
type: "remove";
|
|
4714
|
-
} | {
|
|
4715
|
-
/** @constant */
|
|
4716
|
-
type: "set-place";
|
|
4717
|
-
/** Format: uint */
|
|
4718
|
-
place: number;
|
|
4719
|
-
} | {
|
|
4720
|
-
/** @constant */
|
|
4721
|
-
type: "set-unranked";
|
|
4722
|
-
/** Format: uint */
|
|
4723
|
-
tiebraker: number;
|
|
4724
|
-
} | {
|
|
4725
|
-
/** @constant */
|
|
4726
|
-
type: "set-place-and-tie-braker";
|
|
4727
|
-
/** Format: uint */
|
|
4728
|
-
place: number;
|
|
4729
|
-
/** Format: uint */
|
|
4730
|
-
tiebraker: number;
|
|
4343
|
+
tableId: components["schemas"]["TableId"];
|
|
4344
|
+
};
|
|
4345
|
+
RowMutationChangeEvent: {
|
|
4346
|
+
gameTableId: components["schemas"]["TableId"];
|
|
4731
4347
|
};
|
|
4732
|
-
|
|
4348
|
+
RowMutationDAO: {
|
|
4733
4349
|
/**
|
|
4734
4350
|
* Format: int64
|
|
4735
4351
|
* @description When performing batch actions like delete all, then all these will have the same batch id.
|
|
4736
4352
|
* Otherwise it will get incremented. Used for undo & redo.
|
|
4737
4353
|
*/
|
|
4738
4354
|
batch: number;
|
|
4739
|
-
|
|
4740
|
-
|
|
4355
|
+
competitorId: components["schemas"]["CompetitorId"];
|
|
4356
|
+
gameTableId: components["schemas"]["TableId"];
|
|
4357
|
+
/** @description Counts per table, so it is unique only together with `game_table_id`. */
|
|
4358
|
+
idx: components["schemas"]["RowMutationIdx"];
|
|
4741
4359
|
kind: components["schemas"]["RowMutationKind"];
|
|
4742
4360
|
};
|
|
4361
|
+
/** Format: int64 */
|
|
4362
|
+
RowMutationIdx: RowMutationIdx;
|
|
4363
|
+
RowMutationKind: RowMutationKind;
|
|
4364
|
+
RowMutationWithBatch: RowMutationWithBatch;
|
|
4743
4365
|
RowQuery: {
|
|
4744
4366
|
/** @description The competitor of the row */
|
|
4745
4367
|
competitorId: components["schemas"]["CompetitorId"];
|
|
@@ -4752,52 +4374,10 @@ declare interface components {
|
|
|
4752
4374
|
timestamp: string;
|
|
4753
4375
|
};
|
|
4754
4376
|
/** @description GameTableTypes types should **only** be manipulated though this helper to have a single source of truth for the structure. */
|
|
4755
|
-
RowTypeHelper_for_ParamRef:
|
|
4756
|
-
columns: components["schemas"]["RecordTypeHelper_for_ParamRef"];
|
|
4757
|
-
};
|
|
4377
|
+
RowTypeHelper_for_ParamRef: RowTypeHelper<ParamRef>;
|
|
4758
4378
|
Rows_for_Sorted: Rows<Sorted>;
|
|
4759
4379
|
Rows_for_Unsorted: Rows<Unsorted>;
|
|
4760
|
-
RuntimeErrorKind:
|
|
4761
|
-
/** @constant */
|
|
4762
|
-
type: "division-by-zero";
|
|
4763
|
-
} | {
|
|
4764
|
-
/** @constant */
|
|
4765
|
-
type: "variable-not-found";
|
|
4766
|
-
data: {
|
|
4767
|
-
name: string;
|
|
4768
|
-
};
|
|
4769
|
-
} | {
|
|
4770
|
-
/** @constant */
|
|
4771
|
-
type: "function-not-found";
|
|
4772
|
-
data: {
|
|
4773
|
-
name: string;
|
|
4774
|
-
};
|
|
4775
|
-
} | {
|
|
4776
|
-
/** @constant */
|
|
4777
|
-
type: "index-out-of-bounds";
|
|
4778
|
-
} | {
|
|
4779
|
-
/** @constant */
|
|
4780
|
-
type: "invalid-index";
|
|
4781
|
-
} | {
|
|
4782
|
-
/** @constant */
|
|
4783
|
-
type: "invalid-math-operands";
|
|
4784
|
-
} | {
|
|
4785
|
-
/** @constant */
|
|
4786
|
-
type: "non-boolean-condition";
|
|
4787
|
-
} | {
|
|
4788
|
-
/** @constant */
|
|
4789
|
-
type: "non-boolean-operand";
|
|
4790
|
-
} | {
|
|
4791
|
-
/** @constant */
|
|
4792
|
-
type: "invalid-comparison-operands";
|
|
4793
|
-
} | {
|
|
4794
|
-
/** @constant */
|
|
4795
|
-
type: "argument";
|
|
4796
|
-
data: {
|
|
4797
|
-
expected: string;
|
|
4798
|
-
got: string;
|
|
4799
|
-
};
|
|
4800
|
-
};
|
|
4380
|
+
RuntimeErrorKind: RuntimeErrorKind;
|
|
4801
4381
|
SchemaObject: {
|
|
4802
4382
|
/**
|
|
4803
4383
|
* @description A free-form property to include an example of an instance for this
|
|
@@ -4881,27 +4461,7 @@ declare interface components {
|
|
|
4881
4461
|
errorState: components["schemas"]["NodeErrorState_for_NodeRuntimeError"];
|
|
4882
4462
|
values: components["schemas"]["SerializablePortValues_for_OutputIdx"];
|
|
4883
4463
|
};
|
|
4884
|
-
SerializableNonPrimitiveValue:
|
|
4885
|
-
/** @constant */
|
|
4886
|
-
type: "game-table";
|
|
4887
|
-
data: components["schemas"]["Table_for_Unsorted_and_StateMetadata"];
|
|
4888
|
-
} | {
|
|
4889
|
-
/** @constant */
|
|
4890
|
-
type: "game-table-sorted";
|
|
4891
|
-
data: components["schemas"]["Table_for_Sorted_and_StateMetadata"];
|
|
4892
|
-
} | {
|
|
4893
|
-
/** @constant */
|
|
4894
|
-
type: "row";
|
|
4895
|
-
data: components["schemas"]["Row"];
|
|
4896
|
-
} | {
|
|
4897
|
-
/** @constant */
|
|
4898
|
-
type: "class";
|
|
4899
|
-
/** Format: uuid */
|
|
4900
|
-
data: string;
|
|
4901
|
-
} | {
|
|
4902
|
-
/** @constant */
|
|
4903
|
-
type: "closure";
|
|
4904
|
-
};
|
|
4464
|
+
SerializableNonPrimitiveValue: SerializableNonPrimitiveValue;
|
|
4905
4465
|
SerializablePortValues_for_InputIdx: {
|
|
4906
4466
|
values: {
|
|
4907
4467
|
[key: string]: components["schemas"]["Value_for_SerializableNonPrimitiveValue"];
|
|
@@ -4965,6 +4525,12 @@ declare interface components {
|
|
|
4965
4525
|
} & {
|
|
4966
4526
|
[key: string]: unknown;
|
|
4967
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
|
+
};
|
|
4968
4534
|
/** @description Adds or sets the extension to the given version */
|
|
4969
4535
|
SetExtensionMutation: {
|
|
4970
4536
|
eventId: components["schemas"]["EventId"];
|
|
@@ -4978,8 +4544,6 @@ declare interface components {
|
|
|
4978
4544
|
SetFormatsFormatGroupQuery: {
|
|
4979
4545
|
formatGroupId?: components["schemas"]["FormatGroupId"] | null;
|
|
4980
4546
|
};
|
|
4981
|
-
/** @enum {string} */
|
|
4982
|
-
Side: "source" | "target";
|
|
4983
4547
|
/**
|
|
4984
4548
|
* @description Place 1 = 1 point, Place 2 = 2 points, etc.
|
|
4985
4549
|
* On tie, whoever won the part with the highest priority wins.
|
|
@@ -4993,20 +4557,43 @@ declare interface components {
|
|
|
4993
4557
|
* Competitors are the union of all parts: a competitor without a place in a part
|
|
4994
4558
|
* (missing from the table of that part, or in it without a place) scores one point
|
|
4995
4559
|
* more than that part has rows, so not finishing a part is always worse than
|
|
4996
|
-
* 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.
|
|
4997
4566
|
*/
|
|
4998
|
-
SimpleScoringNode:
|
|
4999
|
-
parts: components["schemas"]["SimpleScoringPart"][];
|
|
5000
|
-
};
|
|
4567
|
+
SimpleScoringNode: SimpleScoringNode;
|
|
5001
4568
|
/** @description One scored part, e.g. a single race of a series. */
|
|
5002
|
-
SimpleScoringPart:
|
|
5003
|
-
|
|
4569
|
+
SimpleScoringPart: SimpleScoringPart;
|
|
4570
|
+
SimplifiedGroup: {
|
|
4571
|
+
id: components["schemas"]["SimplifiedGroupId"];
|
|
5004
4572
|
name: string;
|
|
5005
|
-
|
|
5006
|
-
|
|
5007
|
-
|
|
5008
|
-
|
|
5009
|
-
|
|
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"][];
|
|
5010
4597
|
};
|
|
5011
4598
|
SnapshotMultipart: {
|
|
5012
4599
|
/** Format: binary */
|
|
@@ -5051,12 +4638,7 @@ declare interface components {
|
|
|
5051
4638
|
type: "internal";
|
|
5052
4639
|
};
|
|
5053
4640
|
/** @description 1-based line and column at the start of a token. */
|
|
5054
|
-
SourceLocation:
|
|
5055
|
-
/** Format: uint */
|
|
5056
|
-
column: number;
|
|
5057
|
-
/** Format: uint */
|
|
5058
|
-
line: number;
|
|
5059
|
-
};
|
|
4641
|
+
SourceLocation: SourceLocation;
|
|
5060
4642
|
/**
|
|
5061
4643
|
* @description Splits a sorted table at the given places, see `Table::split_n`.
|
|
5062
4644
|
*
|
|
@@ -5069,35 +4651,15 @@ declare interface components {
|
|
|
5069
4651
|
* <C extends {}>(Table<C, Sorted>, Array<Integer>) -> (Array<Table<C, Sorted>>)
|
|
5070
4652
|
* ```
|
|
5071
4653
|
*/
|
|
5072
|
-
SplitTableNode:
|
|
5073
|
-
|
|
5074
|
-
type: "static";
|
|
5075
|
-
data: {
|
|
5076
|
-
/** Format: uint16 */
|
|
5077
|
-
splitCount: number;
|
|
5078
|
-
};
|
|
5079
|
-
} | {
|
|
5080
|
-
/** @constant */
|
|
5081
|
-
type: "dynamic";
|
|
5082
|
-
};
|
|
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. */
|
|
5083
4656
|
StandaloneTableDTO: {
|
|
5084
4657
|
columnTypes: components["schemas"]["RecordTypeWithDefaults"];
|
|
5085
4658
|
name: string;
|
|
5086
|
-
/** @description If Some, sets either layer one or layer two state depending on who issues the request. */
|
|
5087
|
-
state?: components["schemas"]["TableState"] | null;
|
|
5088
|
-
tableKind: components["schemas"]["TableKind"];
|
|
5089
|
-
};
|
|
5090
|
-
Step: {
|
|
5091
|
-
/**
|
|
5092
|
-
* Format: uuid
|
|
5093
|
-
* @description Whoever ran the operation, see [Origin::attributed]: the engine's `NodeInstanceHash`, a raw uuid because this
|
|
5094
|
-
* crate doesn't know engine types. None until it is attributed.
|
|
5095
|
-
*/
|
|
5096
|
-
node?: string | null;
|
|
5097
|
-
op: components["schemas"]["StepOp"];
|
|
5098
4659
|
};
|
|
4660
|
+
Step: Step;
|
|
5099
4661
|
/** @description An operation that moved rows between or within tables. */
|
|
5100
|
-
StepOp:
|
|
4662
|
+
StepOp: StepOp;
|
|
5101
4663
|
StoreExtensionValueMutation: {
|
|
5102
4664
|
eventId: components["schemas"]["EventId"];
|
|
5103
4665
|
extension: string;
|
|
@@ -5216,9 +4778,9 @@ declare interface components {
|
|
|
5216
4778
|
rows: components["schemas"]["Row"][];
|
|
5217
4779
|
};
|
|
5218
4780
|
/** @enum {string} */
|
|
5219
|
-
TableSorting:
|
|
4781
|
+
TableSorting: TableSorting;
|
|
5220
4782
|
/** Format: int64 */
|
|
5221
|
-
TableState:
|
|
4783
|
+
TableState: TableState;
|
|
5222
4784
|
/** @description Encodes the two columns `game_id` and `column_types` (exactly one of which must be NON NULL). */
|
|
5223
4785
|
TableVariant: {
|
|
5224
4786
|
/** @constant */
|
|
@@ -5238,15 +4800,9 @@ declare interface components {
|
|
|
5238
4800
|
table: components["schemas"]["TableDAO"];
|
|
5239
4801
|
};
|
|
5240
4802
|
/** @description Combines rows with table attributes and state */
|
|
5241
|
-
Table_for_Sorted_and_StateMetadata:
|
|
5242
|
-
rows: components["schemas"]["Rows_for_Sorted"];
|
|
5243
|
-
state: components["schemas"]["TableState"];
|
|
5244
|
-
};
|
|
4803
|
+
Table_for_Sorted_and_StateMetadata: Table<Sorted, StateMetadata>;
|
|
5245
4804
|
/** @description Combines rows with table attributes and state */
|
|
5246
|
-
Table_for_Unsorted_and_StateMetadata:
|
|
5247
|
-
rows: components["schemas"]["Rows_for_Unsorted"];
|
|
5248
|
-
state: components["schemas"]["TableState"];
|
|
5249
|
-
};
|
|
4805
|
+
Table_for_Unsorted_and_StateMetadata: Table<Unsorted, StateMetadata>;
|
|
5250
4806
|
/**
|
|
5251
4807
|
* @description Adds metadata to a single tag that is used by the
|
|
5252
4808
|
* Operation Object. It is not mandatory to have a
|
|
@@ -5391,6 +4947,8 @@ declare interface components {
|
|
|
5391
4947
|
number,
|
|
5392
4948
|
number
|
|
5393
4949
|
];
|
|
4950
|
+
/** @description One way a row got to where it is. */
|
|
4951
|
+
Trail: Trail;
|
|
5394
4952
|
Type: Type;
|
|
5395
4953
|
/**
|
|
5396
4954
|
* @description Can be parsed from string with the following syntax:
|
|
@@ -5401,67 +4959,11 @@ declare interface components {
|
|
|
5401
4959
|
* - `{a: Integer} -> Float`
|
|
5402
4960
|
* - `{} -> Any`
|
|
5403
4961
|
*/
|
|
5404
|
-
TypeContext:
|
|
5405
|
-
|
|
5406
|
-
|
|
5407
|
-
|
|
5408
|
-
|
|
5409
|
-
};
|
|
5410
|
-
TypeError: {
|
|
5411
|
-
kind: components["schemas"]["TypeErrorKind"];
|
|
5412
|
-
location: components["schemas"]["SourceLocation"];
|
|
5413
|
-
};
|
|
5414
|
-
TypeErrorKind: {
|
|
5415
|
-
/** @constant */
|
|
5416
|
-
type: "unknown-variable";
|
|
5417
|
-
data: {
|
|
5418
|
-
name: string;
|
|
5419
|
-
};
|
|
5420
|
-
} | {
|
|
5421
|
-
/** @constant */
|
|
5422
|
-
type: "unknown-function";
|
|
5423
|
-
data: {
|
|
5424
|
-
name: string;
|
|
5425
|
-
};
|
|
5426
|
-
} | {
|
|
5427
|
-
/** @constant */
|
|
5428
|
-
type: "wrong-arity";
|
|
5429
|
-
data: {
|
|
5430
|
-
/** Format: uint */
|
|
5431
|
-
expected: number;
|
|
5432
|
-
/** Format: uint */
|
|
5433
|
-
got: number;
|
|
5434
|
-
name: string;
|
|
5435
|
-
};
|
|
5436
|
-
} | {
|
|
5437
|
-
/** @constant */
|
|
5438
|
-
type: "type-mismatch";
|
|
5439
|
-
data: {
|
|
5440
|
-
expected: string;
|
|
5441
|
-
got: string;
|
|
5442
|
-
};
|
|
5443
|
-
} | {
|
|
5444
|
-
/** @constant */
|
|
5445
|
-
type: "non-integer-index";
|
|
5446
|
-
} | {
|
|
5447
|
-
/** @constant */
|
|
5448
|
-
type: "non-record-property-access";
|
|
5449
|
-
} | {
|
|
5450
|
-
/** @constant */
|
|
5451
|
-
type: "nodety";
|
|
5452
|
-
data: {
|
|
5453
|
-
message: string;
|
|
5454
|
-
};
|
|
5455
|
-
};
|
|
5456
|
-
TypeErrors: components["schemas"]["TypeError"][];
|
|
5457
|
-
TypeExprValidationError: {
|
|
5458
|
-
/** @constant */
|
|
5459
|
-
type: "UnknownVar";
|
|
5460
|
-
var: components["schemas"]["LocalParamID"];
|
|
5461
|
-
} | {
|
|
5462
|
-
/** @constant */
|
|
5463
|
-
type: "CyclicReference";
|
|
5464
|
-
};
|
|
4962
|
+
TypeContext: TypeContext;
|
|
4963
|
+
TypeError: TypeError_2;
|
|
4964
|
+
TypeErrorKind: TypeErrorKind;
|
|
4965
|
+
TypeErrors: TypeErrors;
|
|
4966
|
+
TypeExprValidationError: TypeExprValidationError;
|
|
5465
4967
|
/**
|
|
5466
4968
|
* @description Type expression—the core type representation in nodety.
|
|
5467
4969
|
*
|
|
@@ -5471,74 +4973,7 @@ declare interface components {
|
|
|
5471
4973
|
* [`PartialEq`], [`Eq`] and [`Hash`] are structural: `A | B` is not equal to `B | A`.
|
|
5472
4974
|
* [`Eq`] and [`Hash`] are available when `T: Eq + Hash`.
|
|
5473
4975
|
*/
|
|
5474
|
-
TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type:
|
|
5475
|
-
/** @constant */
|
|
5476
|
-
type: "Type";
|
|
5477
|
-
data: components["schemas"]["Type"];
|
|
5478
|
-
} | {
|
|
5479
|
-
/** @constant */
|
|
5480
|
-
type: "Constructor";
|
|
5481
|
-
data: {
|
|
5482
|
-
inner: components["schemas"]["Type"];
|
|
5483
|
-
/** @description Type arguments / record fields. Iterates in insertion order; equality ignores order. */
|
|
5484
|
-
parameters: components["schemas"]["Map_of_TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
5485
|
-
};
|
|
5486
|
-
} | {
|
|
5487
|
-
/** @constant */
|
|
5488
|
-
type: "Operation";
|
|
5489
|
-
data: {
|
|
5490
|
-
a: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
5491
|
-
b: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
5492
|
-
operator: components["schemas"]["ArithmeticOperator"];
|
|
5493
|
-
};
|
|
5494
|
-
} | {
|
|
5495
|
-
/** @constant */
|
|
5496
|
-
type: "NodeSignature";
|
|
5497
|
-
data: components["schemas"]["NodeSignature_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
5498
|
-
} | {
|
|
5499
|
-
/** @constant */
|
|
5500
|
-
type: "PortTypes";
|
|
5501
|
-
data: components["schemas"]["PortTypes_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
5502
|
-
} | {
|
|
5503
|
-
/** @constant */
|
|
5504
|
-
type: "Union";
|
|
5505
|
-
data: [
|
|
5506
|
-
components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"],
|
|
5507
|
-
components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"]
|
|
5508
|
-
];
|
|
5509
|
-
} | {
|
|
5510
|
-
/** @constant */
|
|
5511
|
-
type: "KeyOf";
|
|
5512
|
-
data: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
5513
|
-
} | {
|
|
5514
|
-
/** @constant */
|
|
5515
|
-
type: "Index";
|
|
5516
|
-
data: {
|
|
5517
|
-
expr: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
5518
|
-
index: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
5519
|
-
};
|
|
5520
|
-
} | {
|
|
5521
|
-
/** @constant */
|
|
5522
|
-
type: "Intersection";
|
|
5523
|
-
data: [
|
|
5524
|
-
components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"],
|
|
5525
|
-
components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"]
|
|
5526
|
-
];
|
|
5527
|
-
} | {
|
|
5528
|
-
/** @constant */
|
|
5529
|
-
type: "Conditional";
|
|
5530
|
-
data: components["schemas"]["Conditional_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
5531
|
-
} | {
|
|
5532
|
-
/** @constant */
|
|
5533
|
-
type: "Any";
|
|
5534
|
-
} | {
|
|
5535
|
-
/** @constant */
|
|
5536
|
-
type: "Never";
|
|
5537
|
-
} | {
|
|
5538
|
-
/** @constant */
|
|
5539
|
-
type: "Ref";
|
|
5540
|
-
data: components["schemas"]["ErasedScopedTypeRef_for_Type"];
|
|
5541
|
-
};
|
|
4976
|
+
TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type: TypeExpr<Type, components["schemas"]["ErasedScopedTypeRef_for_Type"]>;
|
|
5542
4977
|
/**
|
|
5543
4978
|
* @description Type expression—the core type representation in nodety.
|
|
5544
4979
|
*
|
|
@@ -5548,108 +4983,25 @@ declare interface components {
|
|
|
5548
4983
|
* [`PartialEq`], [`Eq`] and [`Hash`] are structural: `A | B` is not equal to `B | A`.
|
|
5549
4984
|
* [`Eq`] and [`Hash`] are available when `T: Eq + Hash`.
|
|
5550
4985
|
*/
|
|
5551
|
-
TypeExpr_for_Type_and_ParamRef:
|
|
5552
|
-
/** @constant */
|
|
5553
|
-
type: "Type";
|
|
5554
|
-
data: components["schemas"]["Type"];
|
|
5555
|
-
} | {
|
|
5556
|
-
/** @constant */
|
|
5557
|
-
type: "Constructor";
|
|
5558
|
-
data: {
|
|
5559
|
-
inner: components["schemas"]["Type"];
|
|
5560
|
-
/** @description Type arguments / record fields. Iterates in insertion order; equality ignores order. */
|
|
5561
|
-
parameters: components["schemas"]["Map_of_TypeExpr_for_Type_and_ParamRef"];
|
|
5562
|
-
};
|
|
5563
|
-
} | {
|
|
5564
|
-
/** @constant */
|
|
5565
|
-
type: "Operation";
|
|
5566
|
-
data: {
|
|
5567
|
-
a: components["schemas"]["TypeExpr_for_Type_and_ParamRef"];
|
|
5568
|
-
b: components["schemas"]["TypeExpr_for_Type_and_ParamRef"];
|
|
5569
|
-
operator: components["schemas"]["ArithmeticOperator"];
|
|
5570
|
-
};
|
|
5571
|
-
} | {
|
|
5572
|
-
/** @constant */
|
|
5573
|
-
type: "NodeSignature";
|
|
5574
|
-
data: components["schemas"]["NodeSignature_for_Type_and_ParamRef"];
|
|
5575
|
-
} | {
|
|
5576
|
-
/** @constant */
|
|
5577
|
-
type: "PortTypes";
|
|
5578
|
-
data: components["schemas"]["PortTypes_for_Type_and_ParamRef"];
|
|
5579
|
-
} | {
|
|
5580
|
-
/** @constant */
|
|
5581
|
-
type: "Union";
|
|
5582
|
-
data: [
|
|
5583
|
-
components["schemas"]["TypeExpr_for_Type_and_ParamRef"],
|
|
5584
|
-
components["schemas"]["TypeExpr_for_Type_and_ParamRef"]
|
|
5585
|
-
];
|
|
5586
|
-
} | {
|
|
5587
|
-
/** @constant */
|
|
5588
|
-
type: "KeyOf";
|
|
5589
|
-
data: components["schemas"]["TypeExpr_for_Type_and_ParamRef"];
|
|
5590
|
-
} | {
|
|
5591
|
-
/** @constant */
|
|
5592
|
-
type: "Index";
|
|
5593
|
-
data: {
|
|
5594
|
-
expr: components["schemas"]["TypeExpr_for_Type_and_ParamRef"];
|
|
5595
|
-
index: components["schemas"]["TypeExpr_for_Type_and_ParamRef"];
|
|
5596
|
-
};
|
|
5597
|
-
} | {
|
|
5598
|
-
/** @constant */
|
|
5599
|
-
type: "Intersection";
|
|
5600
|
-
data: [
|
|
5601
|
-
components["schemas"]["TypeExpr_for_Type_and_ParamRef"],
|
|
5602
|
-
components["schemas"]["TypeExpr_for_Type_and_ParamRef"]
|
|
5603
|
-
];
|
|
5604
|
-
} | {
|
|
5605
|
-
/** @constant */
|
|
5606
|
-
type: "Conditional";
|
|
5607
|
-
data: components["schemas"]["Conditional_for_Type_and_ParamRef"];
|
|
5608
|
-
} | {
|
|
5609
|
-
/** @constant */
|
|
5610
|
-
type: "Any";
|
|
5611
|
-
} | {
|
|
5612
|
-
/** @constant */
|
|
5613
|
-
type: "Never";
|
|
5614
|
-
} | {
|
|
5615
|
-
/** @constant */
|
|
5616
|
-
type: "Ref";
|
|
5617
|
-
data: components["schemas"]["ParamRef"];
|
|
5618
|
-
};
|
|
4986
|
+
TypeExpr_for_Type_and_ParamRef: TypeExpr<Type, ParamRef>;
|
|
5619
4987
|
/** @description Type hints for pre-inference annotations (e.g. `T = Integer, U = String`). */
|
|
5620
|
-
TypeHints_for_Type_and_ParamRef:
|
|
5621
|
-
[key: string]: components["schemas"]["TypeExpr_for_Type_and_ParamRef"];
|
|
5622
|
-
};
|
|
4988
|
+
TypeHints_for_Type_and_ParamRef: TypeHints<Type, ParamRef>;
|
|
5623
4989
|
/** @description A generic type parameter with optional bound and default. */
|
|
5624
|
-
TypeParameter_for_Type_and_ErasedScopedTypeRef_for_Type:
|
|
5625
|
-
/** @description Upper bound (e.g. `T extends Comparable`). */
|
|
5626
|
-
bound?: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"] | null;
|
|
5627
|
-
/** @description Default when not inferred (e.g. `T = Any`). */
|
|
5628
|
-
default?: components["schemas"]["TypeExpr_for_Type_and_ErasedScopedTypeRef_for_Type"] | null;
|
|
5629
|
-
};
|
|
4990
|
+
TypeParameter_for_Type_and_ErasedScopedTypeRef_for_Type: TypeParameter<Type, components["schemas"]["ErasedScopedTypeRef_for_Type"]>;
|
|
5630
4991
|
/** @description A generic type parameter with optional bound and default. */
|
|
5631
|
-
TypeParameter_for_Type_and_ParamRef:
|
|
5632
|
-
/** @description Upper bound (e.g. `T extends Comparable`). */
|
|
5633
|
-
bound?: components["schemas"]["TypeExpr_for_Type_and_ParamRef"] | null;
|
|
5634
|
-
/** @description Default when not inferred (e.g. `T = Any`). */
|
|
5635
|
-
default?: components["schemas"]["TypeExpr_for_Type_and_ParamRef"] | null;
|
|
5636
|
-
};
|
|
4992
|
+
TypeParameter_for_Type_and_ParamRef: TypeParameter<Type, ParamRef>;
|
|
5637
4993
|
/**
|
|
5638
4994
|
* @description Wrapper for BtreeMap
|
|
5639
4995
|
*
|
|
5640
4996
|
* Exists so that it can implement traits like [std::str::FromStr]
|
|
5641
4997
|
*/
|
|
5642
|
-
TypeParameters_for_Type_and_ErasedScopedTypeRef_for_Type:
|
|
5643
|
-
[key: string]: components["schemas"]["TypeParameter_for_Type_and_ErasedScopedTypeRef_for_Type"];
|
|
5644
|
-
};
|
|
4998
|
+
TypeParameters_for_Type_and_ErasedScopedTypeRef_for_Type: TypeParameters<Type, components["schemas"]["ErasedScopedTypeRef_for_Type"]>;
|
|
5645
4999
|
/**
|
|
5646
5000
|
* @description Wrapper for BtreeMap
|
|
5647
5001
|
*
|
|
5648
5002
|
* Exists so that it can implement traits like [std::str::FromStr]
|
|
5649
5003
|
*/
|
|
5650
|
-
TypeParameters_for_Type_and_ParamRef:
|
|
5651
|
-
[key: string]: components["schemas"]["TypeParameter_for_Type_and_ParamRef"];
|
|
5652
|
-
};
|
|
5004
|
+
TypeParameters_for_Type_and_ParamRef: TypeParameters<Type, ParamRef>;
|
|
5653
5005
|
UninstalledExtensionPath: {
|
|
5654
5006
|
extensionIdent: components["schemas"]["ExtensionIdentifier"];
|
|
5655
5007
|
};
|
|
@@ -5750,6 +5102,24 @@ declare interface components {
|
|
|
5750
5102
|
game: components["schemas"]["GameDTO"];
|
|
5751
5103
|
id: components["schemas"]["GameId"];
|
|
5752
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
|
+
};
|
|
5753
5123
|
UpdateTableMutation: {
|
|
5754
5124
|
table: components["schemas"]["TableDTO"];
|
|
5755
5125
|
tableId: components["schemas"]["TableId"];
|
|
@@ -5856,6 +5226,14 @@ export declare interface Conditional<T, R> {
|
|
|
5856
5226
|
|
|
5857
5227
|
export declare function confirmDeleteItem(modalControls: ModalControls, itemName: string): Promise<boolean>;
|
|
5858
5228
|
|
|
5229
|
+
/**
|
|
5230
|
+
* A pin that reroutes a connection
|
|
5231
|
+
*/
|
|
5232
|
+
declare interface ConnectionPin {
|
|
5233
|
+
x: number;
|
|
5234
|
+
y: number;
|
|
5235
|
+
}
|
|
5236
|
+
|
|
5859
5237
|
/**
|
|
5860
5238
|
* Named type arguments of a [`TypeExpr::Constructor`](crate::TypeExpr::Constructor).
|
|
5861
5239
|
*
|
|
@@ -5919,8 +5297,73 @@ export declare interface DialogButton<T> {
|
|
|
5919
5297
|
theme?: 'primary' | 'default' | 'danger';
|
|
5920
5298
|
}
|
|
5921
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
|
+
|
|
5922
5355
|
export declare type DraggableChildProps = React_2.HTMLAttributes<HTMLElement> & React_2.RefAttributes<HTMLElement>;
|
|
5923
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
|
+
|
|
5924
5367
|
/** Spelled out because the inferred `queryOptions` type references TanStack's unexported `dataTagSymbol`, which breaks the SDK's declaration rollup. */
|
|
5925
5368
|
export declare type EngineQueryOptions<T> = UnusedSkipTokenOptions<T, Error, T, readonly unknown[]> & {
|
|
5926
5369
|
queryKey: DataTag<readonly unknown[], T, Error>;
|
|
@@ -5931,9 +5374,15 @@ export declare type EngineQueryOptions<T> = UnusedSkipTokenOptions<T, Error, T,
|
|
|
5931
5374
|
*/
|
|
5932
5375
|
declare type ErasedScopedTypeRef<T> = { type: "Param"; data: ParamRef } | { type: "ScopedExpr"; data: { expr: TypeExpr<T, ErasedScopedTypeRef<T>> } };
|
|
5933
5376
|
|
|
5377
|
+
declare type EventCompetitorsNode = CompetitorType_2;
|
|
5378
|
+
|
|
5934
5379
|
export declare const eventFoldersByEventQueryOptions: (workspaceId: CommonWorkspaceId, eventId: EventId) => EngineQueryOptions<ContentInEventFolderDTO[]>;
|
|
5935
5380
|
|
|
5936
|
-
|
|
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' };
|
|
5937
5386
|
|
|
5938
5387
|
export declare interface EventPath {
|
|
5939
5388
|
workspaceId: CommonWorkspaceId;
|
|
@@ -6039,6 +5488,8 @@ export declare interface ExtensionSidebarContribution {
|
|
|
6039
5488
|
|
|
6040
5489
|
export declare type ExtensionSidebarProps = EventPath;
|
|
6041
5490
|
|
|
5491
|
+
declare type ExtractRecordFieldError<T> = { type: "field-does-not-exist"; data: string } | { type: "invalid-type"; data: { field: string; value: Value<T> | null } };
|
|
5492
|
+
|
|
6042
5493
|
export declare interface FieldTypeWithDefault {
|
|
6043
5494
|
fieldType: TypeExpr<Type>;
|
|
6044
5495
|
/**
|
|
@@ -6047,24 +5498,89 @@ export declare interface FieldTypeWithDefault {
|
|
|
6047
5498
|
default: Value | null;
|
|
6048
5499
|
}
|
|
6049
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
|
+
|
|
6050
5512
|
/**
|
|
6051
5513
|
* How a competitor is written out. Kept apart from the components that show competitors so both
|
|
6052
5514
|
* the picker and the selector can reach it without importing each other.
|
|
6053
5515
|
*/
|
|
6054
5516
|
export declare function formatCompetitorName(competitor: CompetitorDAO): string;
|
|
6055
5517
|
|
|
5518
|
+
declare interface FormatConnectionDTO {
|
|
5519
|
+
sourceFormatNodeId: FormatNodeId;
|
|
5520
|
+
targetFormatNodeId: FormatNodeId;
|
|
5521
|
+
sourceOutput: OutputIdx;
|
|
5522
|
+
targetInput: InputIdx;
|
|
5523
|
+
pins: ConnectionPin[];
|
|
5524
|
+
}
|
|
5525
|
+
|
|
6056
5526
|
declare type FormatGroupId = Brand<string, 'formatGroupId'>;
|
|
6057
5527
|
|
|
6058
|
-
|
|
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' };
|
|
6059
5538
|
|
|
6060
5539
|
export declare type FormatInstanceHash = Brand<string, 'formatInstanceHash'>;
|
|
6061
5540
|
|
|
6062
|
-
|
|
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
|
+
}
|
|
5565
|
+
|
|
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' };
|
|
6063
5572
|
|
|
6064
|
-
declare type FormatNodeTestId =
|
|
5573
|
+
declare type FormatNodeTestId = string & { readonly __brand: 'formatNodeTestId' };
|
|
6065
5574
|
|
|
6066
5575
|
declare type FormatTestId = Brand<string, 'formatTestId'>;
|
|
6067
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
|
+
|
|
6068
5584
|
export declare type FormContribution<Props, DTO> = FC<Props & {
|
|
6069
5585
|
formFieldRegistry: FormFieldRegistry;
|
|
6070
5586
|
ref: Ref<ContributionHandle<DTO>>;
|
|
@@ -6111,6 +5627,11 @@ export declare interface FormFieldProps<I, O = I> {
|
|
|
6111
5627
|
isNew?: boolean;
|
|
6112
5628
|
registry?: FormFieldRegistry;
|
|
6113
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;
|
|
6114
5635
|
}
|
|
6115
5636
|
|
|
6116
5637
|
export declare interface FormFieldRegistry {
|
|
@@ -6137,11 +5658,26 @@ export declare type FormFieldState<T> = [value: T, setValue: (value: T | ((oldVa
|
|
|
6137
5658
|
|
|
6138
5659
|
export declare type GameDAO = components['schemas']['GameDAO'];
|
|
6139
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
|
+
|
|
6140
5672
|
export declare type GameDTO = components['schemas']['GameDTO'];
|
|
6141
5673
|
|
|
6142
5674
|
export declare type GameFormatDTO = components['schemas']['GameFormatDTO'];
|
|
6143
5675
|
|
|
6144
|
-
|
|
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' };
|
|
6145
5681
|
|
|
6146
5682
|
export declare type GameFormatPageContribution = FormContribution<GameFormatPageProps & {
|
|
6147
5683
|
gameFormat: GameFormatDTO;
|
|
@@ -6151,8 +5687,40 @@ export declare type GameFormatPageProps = EventPath & {
|
|
|
6151
5687
|
gameFormatId: GameFormatId | null;
|
|
6152
5688
|
};
|
|
6153
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
|
+
|
|
6154
5697
|
export declare type GameId = Brand<string, 'gameId'>;
|
|
6155
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
|
+
|
|
6156
5724
|
export declare type GamePageContribution = FormContribution<GamePageProps & {
|
|
6157
5725
|
game: WorkingGameDTO;
|
|
6158
5726
|
}, WorkingGameDTO>;
|
|
@@ -6161,6 +5729,9 @@ export declare type GamePageProps = EventPath & {
|
|
|
6161
5729
|
gameId: GameId | null;
|
|
6162
5730
|
};
|
|
6163
5731
|
|
|
5732
|
+
/** Where a game goes in the simplified view of the root format. */
|
|
5733
|
+
declare type GamePlace = Omit<AddGameEdit, 'type' | 'game' | 'division'>;
|
|
5734
|
+
|
|
6164
5735
|
export declare const gamesWithTablesMappedByEventQO: (workspaceId: CommonWorkspaceId, eventId: EventId) => EngineQueryOptions<Map<GameId, GameWithTables>>;
|
|
6165
5736
|
|
|
6166
5737
|
export declare type GameWithTables = components['schemas']['GameWithTables'];
|
|
@@ -6192,6 +5763,39 @@ export declare const getTableByIdQueryOptions: (workspaceId: CommonWorkspaceId,
|
|
|
6192
5763
|
*/
|
|
6193
5764
|
declare type GraphLocation = { type: "Edge"; data: number } | { type: "InputPort"; data: { nodeIdx: number; inputIdx: number } };
|
|
6194
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
|
+
|
|
6195
5799
|
export declare const H1: FC<H1Props>;
|
|
6196
5800
|
|
|
6197
5801
|
export declare interface H1Props {
|
|
@@ -6213,7 +5817,7 @@ export declare type HRProps = {
|
|
|
6213
5817
|
className?: string;
|
|
6214
5818
|
};
|
|
6215
5819
|
|
|
6216
|
-
declare type InputIdx =
|
|
5820
|
+
declare type InputIdx = number & { readonly __brand: 'inputIdx' };
|
|
6217
5821
|
|
|
6218
5822
|
export declare enum InputLayout {
|
|
6219
5823
|
Normal = 0,
|
|
@@ -6225,6 +5829,23 @@ export declare enum InputLayout {
|
|
|
6225
5829
|
Fill = 2
|
|
6226
5830
|
}
|
|
6227
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
|
+
|
|
6228
5849
|
/** Loads graphite-script from the host's wasm on demand, a static import would make this entry an async module. */
|
|
6229
5850
|
export declare const loadGraphiteScript: () => Promise<{
|
|
6230
5851
|
primValueToTypeExpr: typeof primValueToTypeExpr;
|
|
@@ -6261,10 +5882,320 @@ export declare interface LogOperation {
|
|
|
6261
5882
|
entries: LogEntry[];
|
|
6262
5883
|
}
|
|
6263
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
|
+
|
|
6264
6189
|
export declare type MergePathParams<A, B> = {
|
|
6265
6190
|
[K in keyof A | keyof B]: K extends keyof B ? B[K] : K extends keyof A ? A[K] : never;
|
|
6266
6191
|
};
|
|
6267
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
|
+
|
|
6268
6199
|
export declare function Modal({ children, isOpen, onClose, closable, height, width, verticalPosition, horizontalPosition, lightbox, blockBackground, }: ModalProps): null;
|
|
6269
6200
|
|
|
6270
6201
|
/** Modal inner body: explicit width; shell uses `width: 'fit'` and shrink-wraps to this. */
|
|
@@ -6280,6 +6211,14 @@ export declare interface ModalConfig {
|
|
|
6280
6211
|
horizontalPosition?: 'center' | 'left' | 'right';
|
|
6281
6212
|
lightbox?: boolean;
|
|
6282
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
|
+
};
|
|
6283
6222
|
onClose?: () => void;
|
|
6284
6223
|
}
|
|
6285
6224
|
|
|
@@ -6307,8 +6246,38 @@ export declare interface ModalProps {
|
|
|
6307
6246
|
blockBackground?: boolean;
|
|
6308
6247
|
}
|
|
6309
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
|
+
|
|
6310
6274
|
declare type NodeInstanceHash = Brand<string, 'nodeInstanceHash'>;
|
|
6311
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
|
+
|
|
6312
6281
|
/**
|
|
6313
6282
|
* Function-like type for a node: generic parameters, inputs, outputs, and defaults.
|
|
6314
6283
|
* Written in notation as `<T>(T) -> (T)` for the identity node.
|
|
@@ -6360,6 +6329,13 @@ export declare interface NodeSignature<T, R = ParamRef> {
|
|
|
6360
6329
|
requiredTags: number[];
|
|
6361
6330
|
}
|
|
6362
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
|
+
|
|
6363
6339
|
declare type NoMetadata = Record<never, never>;
|
|
6364
6340
|
|
|
6365
6341
|
declare interface NoSupertypeLayer<T> {
|
|
@@ -6409,7 +6385,7 @@ export declare interface OptionalQueryField<T> {
|
|
|
6409
6385
|
codec: QueryCodec<T>;
|
|
6410
6386
|
}
|
|
6411
6387
|
|
|
6412
|
-
declare type OutputIdx =
|
|
6388
|
+
declare type OutputIdx = number & { readonly __brand: 'outputIdx' };
|
|
6413
6389
|
|
|
6414
6390
|
export declare const Page: FC<PageProps>;
|
|
6415
6391
|
|
|
@@ -6433,6 +6409,8 @@ export declare interface ParamRef {
|
|
|
6433
6409
|
infer: boolean;
|
|
6434
6410
|
}
|
|
6435
6411
|
|
|
6412
|
+
declare type ParentType = { type: "format-root" } | { type: "closure-node"; data: FormatNodeId };
|
|
6413
|
+
|
|
6436
6414
|
export declare interface ParsedQuery<Values> {
|
|
6437
6415
|
values: Values;
|
|
6438
6416
|
/** The original search with malformed known values removed and valid values normalized. */
|
|
@@ -6440,6 +6418,8 @@ export declare interface ParsedQuery<Values> {
|
|
|
6440
6418
|
malformedKeys: string[];
|
|
6441
6419
|
}
|
|
6442
6420
|
|
|
6421
|
+
declare type ParseErrorKind = { type: "invalid-token" } | { type: "unexpected-token" } | { type: "expected-token"; data: { expected: string } } | { type: "invalid-number" } | { type: "unterminated-string" };
|
|
6422
|
+
|
|
6443
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>;
|
|
6444
6424
|
|
|
6445
6425
|
export declare type PathSegmentParam<S extends string> = S extends `:${infer P}` ? {
|
|
@@ -6507,6 +6487,12 @@ export declare function putTableRows(workspaceId: CommonWorkspaceId, eventId: Ev
|
|
|
6507
6487
|
} | {
|
|
6508
6488
|
type: "row-not-hidden";
|
|
6509
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"];
|
|
6510
6496
|
};
|
|
6511
6497
|
}>;
|
|
6512
6498
|
|
|
@@ -6540,6 +6526,13 @@ export declare interface QuerySchema<Fields extends QueryFields> {
|
|
|
6540
6526
|
set<Key extends keyof Fields>(search: string, key: Key, value: QueryFieldValue<Fields[Key]>): string;
|
|
6541
6527
|
}
|
|
6542
6528
|
|
|
6529
|
+
declare type RecordFieldOp = "read-field" | "write-field";
|
|
6530
|
+
|
|
6531
|
+
declare interface RecordMakeValidMutation {
|
|
6532
|
+
columnName: string;
|
|
6533
|
+
newValue: Value;
|
|
6534
|
+
}
|
|
6535
|
+
|
|
6543
6536
|
/**
|
|
6544
6537
|
* RecordTypes should **only** be manipulated though this helper to have a single source of truth for the structure.
|
|
6545
6538
|
*/
|
|
@@ -6600,9 +6593,10 @@ export declare interface RouterContextType {
|
|
|
6600
6593
|
/** The complete reactive browser location. */
|
|
6601
6594
|
location: RouterLocation;
|
|
6602
6595
|
/**
|
|
6603
|
-
* 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.
|
|
6604
6598
|
*/
|
|
6605
|
-
navigate: (to: string) => void;
|
|
6599
|
+
navigate: (to: string, onArrive?: (location: RouterLocation) => void) => void;
|
|
6606
6600
|
/**
|
|
6607
6601
|
* Programmatic redirect replacing the current history entry. Bypasses route guards.
|
|
6608
6602
|
*/
|
|
@@ -6644,6 +6638,18 @@ export declare interface RowAction<T> {
|
|
|
6644
6638
|
|
|
6645
6639
|
declare type RowMutationIdx = Brand<number, 'rowMutationIdx'>;
|
|
6646
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
|
+
|
|
6647
6653
|
declare interface Rows<SortingState> {
|
|
6648
6654
|
/**
|
|
6649
6655
|
* Competitors are guaranteed to be unique per game table.
|
|
@@ -6663,16 +6669,50 @@ export declare enum RowState {
|
|
|
6663
6669
|
Added = 3
|
|
6664
6670
|
}
|
|
6665
6671
|
|
|
6666
|
-
|
|
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;
|
|
6667
6698
|
|
|
6668
6699
|
export declare type SearchInputProps = {
|
|
6669
6700
|
value: string;
|
|
6670
6701
|
onChange: (value: string) => void;
|
|
6671
6702
|
placeholder?: string;
|
|
6672
6703
|
className?: string;
|
|
6704
|
+
autoFocus?: boolean;
|
|
6705
|
+
ref?: Ref<HTMLInputElement>;
|
|
6706
|
+
onKeyDown?: (event: KeyboardEvent_2<HTMLInputElement>) => void;
|
|
6673
6707
|
};
|
|
6674
6708
|
|
|
6675
|
-
|
|
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" };
|
|
6676
6716
|
|
|
6677
6717
|
/**
|
|
6678
6718
|
* A keyboard shortcut as the keys to press together, e.g. `['Mod', 'Shift', 'Z']`. `Mod` is Ctrl, or
|
|
@@ -6682,10 +6722,10 @@ declare type SerializableNonPrimitiveValue = { type: "game-table"; data: Table<U
|
|
|
6682
6722
|
export declare type Shortcut = readonly string[];
|
|
6683
6723
|
|
|
6684
6724
|
/**
|
|
6685
|
-
* 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)
|
|
6686
6726
|
* Returns the selected value or null if dismissed
|
|
6687
6727
|
*/
|
|
6688
|
-
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>;
|
|
6689
6729
|
|
|
6690
6730
|
/**
|
|
6691
6731
|
* A panel as a column of its own, next to the content. Keeping it out of the content gives toolbars the whole
|
|
@@ -6746,7 +6786,69 @@ export declare type SidePanelIcon = ComponentType<SVGProps<SVGSVGElement>>;
|
|
|
6746
6786
|
|
|
6747
6787
|
export declare type SidePanelVariant = 'dock' | 'drawer';
|
|
6748
6788
|
|
|
6749
|
-
|
|
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' };
|
|
6839
|
+
|
|
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
|
+
};
|
|
6750
6852
|
|
|
6751
6853
|
/**
|
|
6752
6854
|
* Sorted game tables have the following guarantees:
|
|
@@ -6758,12 +6860,64 @@ declare type Sorted = Brand<'sorted', 'sorted'>;
|
|
|
6758
6860
|
* - 1, 2, 2, 2, 5, None, None
|
|
6759
6861
|
* - None, None
|
|
6760
6862
|
*/
|
|
6761
|
-
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'>>;
|
|
6762
6902
|
|
|
6763
6903
|
declare interface StateMetadata {
|
|
6764
6904
|
state: TableState;
|
|
6765
6905
|
}
|
|
6766
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
|
+
|
|
6767
6921
|
export declare enum StorageType {
|
|
6768
6922
|
Session = 0,
|
|
6769
6923
|
Local = 1
|
|
@@ -6793,7 +6947,18 @@ export declare type TableDropTarget = EventPath & {
|
|
|
6793
6947
|
table: TableDAO;
|
|
6794
6948
|
};
|
|
6795
6949
|
|
|
6796
|
-
|
|
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' };
|
|
6797
6962
|
|
|
6798
6963
|
export declare interface TableProps<TData extends RowData> {
|
|
6799
6964
|
data: TData[];
|
|
@@ -6802,6 +6967,7 @@ export declare interface TableProps<TData extends RowData> {
|
|
|
6802
6967
|
allowSelect?: boolean;
|
|
6803
6968
|
getRowId?: (row: TData, index: number) => string;
|
|
6804
6969
|
getRowState?: (row: TData) => RowState;
|
|
6970
|
+
getRowClassName?: (row: TData) => string | undefined;
|
|
6805
6971
|
rowClicked?: (row: TData) => void;
|
|
6806
6972
|
/**
|
|
6807
6973
|
* Route a row leads to. Clicking the row routes there (after `rowClicked`); a middle or Ctrl click
|
|
@@ -6829,6 +6995,11 @@ export declare interface TableProps<TData extends RowData> {
|
|
|
6829
6995
|
* Columns with `enableHiding: false` are excluded.
|
|
6830
6996
|
*/
|
|
6831
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;
|
|
6832
7003
|
}
|
|
6833
7004
|
|
|
6834
7005
|
export declare type TableSortedDTO = components['schemas']['Table_for_Sorted_and_StateMetadata'];
|
|
@@ -6853,6 +7024,21 @@ export declare interface TimeDeltaInputProps {
|
|
|
6853
7024
|
|
|
6854
7025
|
export { toast }
|
|
6855
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
|
+
|
|
6856
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" };
|
|
6857
7043
|
|
|
6858
7044
|
/**
|
|
@@ -6869,6 +7055,15 @@ export declare interface TypeContext {
|
|
|
6869
7055
|
returnType: TypeExpr<Type, ParamRef>;
|
|
6870
7056
|
}
|
|
6871
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
|
+
|
|
6872
7067
|
/**
|
|
6873
7068
|
* Type expression—the core type representation in nodety.
|
|
6874
7069
|
*
|
|
@@ -6882,6 +7077,11 @@ export declare type TypeExpr<T, R = ParamRef> = { type: "Type"; data: T } | { ty
|
|
|
6882
7077
|
|
|
6883
7078
|
declare type TypeExprValidationError = { type: "UnknownVar"; var: LocalParamID } | { type: "CyclicReference" };
|
|
6884
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
|
+
|
|
6885
7085
|
export declare interface TypeOperators { graphite: [Type, ArithmeticOperator] }
|
|
6886
7086
|
|
|
6887
7087
|
export declare interface TypeOperators {}
|
|
@@ -6907,13 +7107,11 @@ export declare interface TypeParameter<T, R = ParamRef> {
|
|
|
6907
7107
|
*/
|
|
6908
7108
|
export declare type TypeParameters<T, R = ParamRef> = Record<LocalParamID, TypeParameter<T, R>>;
|
|
6909
7109
|
|
|
6910
|
-
declare type Unsorted = Brand<'unsorted', 'unsorted'>;
|
|
6911
|
-
|
|
6912
7110
|
/**
|
|
6913
7111
|
* The places of unsorted game can be arbitrary values in arbitrary order.
|
|
6914
7112
|
* Dublicated places are allowed. However competitors must still be unique.
|
|
6915
7113
|
*/
|
|
6916
|
-
declare type
|
|
7114
|
+
declare type Unsorted = null;
|
|
6917
7115
|
|
|
6918
7116
|
/** The engine's active locale. Extensions ship their own dictionaries and select them by it. */
|
|
6919
7117
|
export declare function useEngineLocale(): Locales;
|
|
@@ -6921,9 +7119,16 @@ export declare function useEngineLocale(): Locales;
|
|
|
6921
7119
|
/** Returns a `fetch` for `path` (relative, e.g. `"items"`) on the calling extension's own backend in the current event. */
|
|
6922
7120
|
export declare function useExtensionBackend(): ExtensionHost['backend'];
|
|
6923
7121
|
|
|
6924
|
-
/** 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`. */
|
|
6925
7123
|
export declare function useExtensionIdentifier(): string;
|
|
6926
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
|
+
|
|
6927
7132
|
export declare function useMediaQuery(query: string): boolean;
|
|
6928
7133
|
|
|
6929
7134
|
export declare function useModal(): ModalControls;
|
|
@@ -6936,9 +7141,10 @@ export declare function useModal(): ModalControls;
|
|
|
6936
7141
|
*
|
|
6937
7142
|
* @param storageKey Key used for persisting the state. Only the key passed
|
|
6938
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.
|
|
6939
7145
|
* @param initialState The initial state. Equal to useStates initial value
|
|
6940
7146
|
*/
|
|
6941
|
-
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];
|
|
6942
7148
|
|
|
6943
7149
|
/** Hook to use the router context. Must be called within a <Router> provider. */
|
|
6944
7150
|
export declare function useRouter(): RouterContextType;
|
|
@@ -6949,8 +7155,9 @@ export declare function useRouter(): RouterContextType;
|
|
|
6949
7155
|
*/
|
|
6950
7156
|
export declare function useRunLogBatch(): (workspaceId: CommonWorkspaceId, operations: LogOperation[], label: ReactNode) => Promise<boolean | null>;
|
|
6951
7157
|
|
|
6952
|
-
/** The `:` params that are uuids, by name. All other `:` params are numbers. */
|
|
7158
|
+
/** The `:` params that are uuids, by name. All other `:` params are numbers. Workspace ids are uuids on root only. */
|
|
6953
7159
|
declare type UuidPathParams = {
|
|
7160
|
+
workspaceId: CommonWorkspaceId;
|
|
6954
7161
|
classId: ClassId;
|
|
6955
7162
|
eventId: EventId;
|
|
6956
7163
|
formatId: FormatId;
|
|
@@ -6976,6 +7183,10 @@ declare interface ValidationError<T> {
|
|
|
6976
7183
|
|
|
6977
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> };
|
|
6978
7185
|
|
|
7186
|
+
/**
|
|
7187
|
+
* # Important
|
|
7188
|
+
* Changes in here are breaking changes for logs
|
|
7189
|
+
*/
|
|
6979
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 };
|
|
6980
7191
|
|
|
6981
7192
|
/**
|
|
@@ -6997,7 +7208,7 @@ export declare type WorkingGameDTO = Omit<GameDTO, 'gameFormatId'> & {
|
|
|
6997
7208
|
gameFormatId: GameFormatId | null;
|
|
6998
7209
|
};
|
|
6999
7210
|
|
|
7000
|
-
export declare type WorkspaceRootId = Brand<
|
|
7211
|
+
export declare type WorkspaceRootId = Brand<string, 'workspaceRootId'>;
|
|
7001
7212
|
|
|
7002
7213
|
export declare type WorkspaceSelfHostedId = Brand<number, 'workspaceSelfHostedId'>;
|
|
7003
7214
|
|