@graphite-sports/sdk 0.2.0 → 0.3.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 +385 -191
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ChangeEventHandler } from 'react';
|
|
2
2
|
import { ColumnDef } from '@tanstack/react-table';
|
|
3
3
|
import { ColumnHelper } from '@tanstack/table-core';
|
|
4
|
+
import { ColumnVisibilityState } from '@tanstack/react-table';
|
|
4
5
|
import { ComponentProps } from 'react';
|
|
5
6
|
import { CSSProperties } from 'react';
|
|
6
7
|
import type { DataTag } from '@tanstack/react-query';
|
|
@@ -9,6 +10,7 @@ import { FocusEventHandler } from 'react';
|
|
|
9
10
|
import { HTMLInputTypeAttribute } from 'react';
|
|
10
11
|
import { JSX } from 'react/jsx-runtime';
|
|
11
12
|
import { KeyboardEventHandler } from 'react';
|
|
13
|
+
import { OnChangeFn } from '@tanstack/react-table';
|
|
12
14
|
import { default as React_2 } from 'react';
|
|
13
15
|
import * as React_3 from 'react';
|
|
14
16
|
import { ReactNode } from 'react';
|
|
@@ -29,7 +31,7 @@ import type { UnusedSkipTokenOptions } from '@tanstack/react-query';
|
|
|
29
31
|
|
|
30
32
|
export declare type AnyQuerySchema = QuerySchema<QueryFields>;
|
|
31
33
|
|
|
32
|
-
export declare function AppButton({ type, onClick, disabled: disabledProp, mutates, children, submit, className, loading, value, ref, href, }: AppButtonProps): JSX.Element;
|
|
34
|
+
export declare function AppButton({ type, onClick, disabled: disabledProp, mutates, children, submit, className, loading, value, ref, href, autoFocus, }: AppButtonProps): JSX.Element;
|
|
33
35
|
|
|
34
36
|
export declare type AppButtonProps = {
|
|
35
37
|
type?: AppButtonType;
|
|
@@ -43,6 +45,8 @@ export declare type AppButtonProps = {
|
|
|
43
45
|
loading?: boolean;
|
|
44
46
|
value?: string;
|
|
45
47
|
ref?: RefObject<HTMLButtonElement | null>;
|
|
48
|
+
/** Focuses the button on mount, and with `href` also when this turns true later. */
|
|
49
|
+
autoFocus?: boolean;
|
|
46
50
|
/** Makes the button a link to this route, so it can also be opened in a new tab. `onClick` runs before routing. */
|
|
47
51
|
href?: string;
|
|
48
52
|
};
|
|
@@ -162,7 +166,7 @@ export declare function AppTab({ className, ...props }: ComponentProps<typeof Ta
|
|
|
162
166
|
|
|
163
167
|
export declare function AppTabGroup(props: ComponentProps<typeof TabGroup>): JSX.Element;
|
|
164
168
|
|
|
165
|
-
export declare function AppTable<TData extends RowData>({ data, columns, actions, allowSelect, getRowId, getRowState, rowClicked, rowHref, initialPageSize, initialSorting, pageSizes, enableSorting, autoResetPageIndex, emptyTableText,
|
|
169
|
+
export declare function AppTable<TData extends RowData>({ data, columns, actions, allowSelect, getRowId, getRowState, rowClicked, rowHref, initialPageSize, initialSorting, pageSizes, enableSorting, autoResetPageIndex, emptyTableText, columnVisibility: columnVisibilityState, }: TableProps<TData>): JSX.Element;
|
|
166
170
|
|
|
167
171
|
export declare type AppTableFeatures = typeof appTableFeatures;
|
|
168
172
|
|
|
@@ -233,7 +237,9 @@ export declare function buildCompetitorsMapped(competitors: CompetitorDAO[]): Co
|
|
|
233
237
|
export declare const buildRoute: <Path extends "*" | "/" | "/workspace/:workspaceId" | "/workspace/:workspaceId/event/:eventId" | "/download" | "/login" | "/register" | "/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/lineage" | "/workspace/:workspaceId/event/:eventId/create-game" | "/workspace/:workspaceId/event/:eventId/game/:gameId" | "/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: {
|
|
234
238
|
'/': undefined;
|
|
235
239
|
'/download': undefined;
|
|
236
|
-
'/login':
|
|
240
|
+
'/login': QuerySchema< {
|
|
241
|
+
readonly returnTo: OptionalQueryField<ReturnPath>;
|
|
242
|
+
}>;
|
|
237
243
|
'/register': undefined;
|
|
238
244
|
'/preferences': undefined;
|
|
239
245
|
'/crate-workspace': undefined;
|
|
@@ -248,11 +254,11 @@ export declare const buildRoute: <Path extends "*" | "/" | "/workspace/:workspac
|
|
|
248
254
|
'/workspace/:workspaceId/event/:eventId/competitor/:competitorId': undefined;
|
|
249
255
|
'/workspace/:workspaceId/event/:eventId/create-format': QuerySchema< {
|
|
250
256
|
readonly focusNode: RepeatedQueryField<FormatNodeId>;
|
|
251
|
-
readonly formatInstance: OptionalQueryField<
|
|
257
|
+
readonly formatInstance: OptionalQueryField<FormatInstanceHash>;
|
|
252
258
|
}>;
|
|
253
259
|
'/workspace/:workspaceId/event/:eventId/format/:formatId': QuerySchema< {
|
|
254
260
|
readonly focusNode: RepeatedQueryField<FormatNodeId>;
|
|
255
|
-
readonly formatInstance: OptionalQueryField<
|
|
261
|
+
readonly formatInstance: OptionalQueryField<FormatInstanceHash>;
|
|
256
262
|
}>;
|
|
257
263
|
'/workspace/:workspaceId/event/:eventId/format/:formatId/tests': undefined;
|
|
258
264
|
'/workspace/:workspaceId/event/:eventId/format/:formatId/tests/:formatTestId': undefined;
|
|
@@ -267,7 +273,7 @@ export declare const buildRoute: <Path extends "*" | "/" | "/workspace/:workspac
|
|
|
267
273
|
/** Picks what these nodes own, or the steps they did. */
|
|
268
274
|
readonly node: RepeatedQueryField<FormatNodeId>;
|
|
269
275
|
/** Narrows `node` down to its instances in these format instances. */
|
|
270
|
-
readonly formatInstance: RepeatedQueryField<
|
|
276
|
+
readonly formatInstance: RepeatedQueryField<FormatInstanceHash>;
|
|
271
277
|
}>;
|
|
272
278
|
'/workspace/:workspaceId/event/:eventId/create-game': undefined;
|
|
273
279
|
'/workspace/:workspaceId/event/:eventId/game/:gameId': undefined;
|
|
@@ -281,7 +287,9 @@ export declare const buildRoute: <Path extends "*" | "/" | "/workspace/:workspac
|
|
|
281
287
|
}[Path] extends infer T ? T extends {
|
|
282
288
|
'/': undefined;
|
|
283
289
|
'/download': undefined;
|
|
284
|
-
'/login':
|
|
290
|
+
'/login': QuerySchema< {
|
|
291
|
+
readonly returnTo: OptionalQueryField<ReturnPath>;
|
|
292
|
+
}>;
|
|
285
293
|
'/register': undefined;
|
|
286
294
|
'/preferences': undefined;
|
|
287
295
|
'/crate-workspace': undefined;
|
|
@@ -296,11 +304,11 @@ export declare const buildRoute: <Path extends "*" | "/" | "/workspace/:workspac
|
|
|
296
304
|
'/workspace/:workspaceId/event/:eventId/competitor/:competitorId': undefined;
|
|
297
305
|
'/workspace/:workspaceId/event/:eventId/create-format': QuerySchema< {
|
|
298
306
|
readonly focusNode: RepeatedQueryField<FormatNodeId>;
|
|
299
|
-
readonly formatInstance: OptionalQueryField<
|
|
307
|
+
readonly formatInstance: OptionalQueryField<FormatInstanceHash>;
|
|
300
308
|
}>;
|
|
301
309
|
'/workspace/:workspaceId/event/:eventId/format/:formatId': QuerySchema< {
|
|
302
310
|
readonly focusNode: RepeatedQueryField<FormatNodeId>;
|
|
303
|
-
readonly formatInstance: OptionalQueryField<
|
|
311
|
+
readonly formatInstance: OptionalQueryField<FormatInstanceHash>;
|
|
304
312
|
}>;
|
|
305
313
|
'/workspace/:workspaceId/event/:eventId/format/:formatId/tests': undefined;
|
|
306
314
|
'/workspace/:workspaceId/event/:eventId/format/:formatId/tests/:formatTestId': undefined;
|
|
@@ -315,7 +323,7 @@ export declare const buildRoute: <Path extends "*" | "/" | "/workspace/:workspac
|
|
|
315
323
|
/** Picks what these nodes own, or the steps they did. */
|
|
316
324
|
readonly node: RepeatedQueryField<FormatNodeId>;
|
|
317
325
|
/** Narrows `node` down to its instances in these format instances. */
|
|
318
|
-
readonly formatInstance: RepeatedQueryField<
|
|
326
|
+
readonly formatInstance: RepeatedQueryField<FormatInstanceHash>;
|
|
319
327
|
}>;
|
|
320
328
|
'/workspace/:workspaceId/event/:eventId/create-game': undefined;
|
|
321
329
|
'/workspace/:workspaceId/event/:eventId/game/:gameId': undefined;
|
|
@@ -330,7 +338,7 @@ export declare const buildRoute: <Path extends "*" | "/" | "/workspace/:workspac
|
|
|
330
338
|
|
|
331
339
|
export declare type ClassDAO = components['schemas']['ClassDAO'];
|
|
332
340
|
|
|
333
|
-
export declare type ClassId = Brand<
|
|
341
|
+
export declare type ClassId = Brand<string, 'classId'>;
|
|
334
342
|
|
|
335
343
|
export declare type ClassResponse = components['schemas']['ClassResponse'];
|
|
336
344
|
|
|
@@ -396,15 +404,24 @@ declare interface components {
|
|
|
396
404
|
APIVersion: {
|
|
397
405
|
/** Format: uint32 */
|
|
398
406
|
engineVersion: number;
|
|
407
|
+
/** @description Base URL of the web app that uses this server, configured with `GRAPHITE_UI_URL`. */
|
|
408
|
+
uiUrl: string;
|
|
399
409
|
version: components["schemas"]["SemVer"];
|
|
400
410
|
};
|
|
401
411
|
AddClassMutation: {
|
|
402
412
|
classDto: components["schemas"]["ClassDTO"];
|
|
413
|
+
/** @description The id of the new class, see [ClassId::new_random]. It must not exist yet. */
|
|
414
|
+
classId: components["schemas"]["ClassId"];
|
|
403
415
|
eventId: components["schemas"]["EventId"];
|
|
404
416
|
};
|
|
405
417
|
AddClassesMutation: {
|
|
406
418
|
classDtos: components["schemas"]["ClassDTO"][];
|
|
407
419
|
eventId: components["schemas"]["EventId"];
|
|
420
|
+
/**
|
|
421
|
+
* @description The classes get ids derived from it, see [ClassId::nth_of_seed]. Random, picked by the endpoint; reusing a seed
|
|
422
|
+
* reproduces the same ids.
|
|
423
|
+
*/
|
|
424
|
+
idSeed: components["schemas"]["Seed"];
|
|
408
425
|
};
|
|
409
426
|
/** @description <C extends {}, P extends Primitive, S extends Sorted|Unsorted>(Table<C, S>, P) -> (Table<C & {<self.key>: P}, S>) */
|
|
410
427
|
AddColumnsNode: {
|
|
@@ -414,37 +431,53 @@ declare interface components {
|
|
|
414
431
|
competitorDtos: components["schemas"]["CompetitorDTO"][];
|
|
415
432
|
competitorType: components["schemas"]["CompetitorType"];
|
|
416
433
|
eventId: components["schemas"]["EventId"];
|
|
434
|
+
/** @description The competitors get consecutive ids starting here. The endpoint picks [CompetitorDAO::next_id] inside [GraphiteEngine::mutate_with](crate::graphite_engine::GraphiteEngine::mutate_with). */
|
|
435
|
+
firstCompetitorId: components["schemas"]["CompetitorId"];
|
|
417
436
|
};
|
|
418
437
|
AddEventMutation: {
|
|
419
438
|
eventDto: components["schemas"]["EventDTO"];
|
|
439
|
+
/** @description The id of the new event, see [EventId::new_random]. It must not exist yet. */
|
|
440
|
+
eventId: components["schemas"]["EventId"];
|
|
420
441
|
};
|
|
421
442
|
AddFormatGroupMutation: {
|
|
422
443
|
eventId: components["schemas"]["EventId"];
|
|
423
444
|
formatGroup: components["schemas"]["FormatGroupDTO"];
|
|
445
|
+
/** @description The id of the new format group, see [FormatGroupId::new_random]. It must not exist yet. */
|
|
446
|
+
formatGroupId: components["schemas"]["FormatGroupId"];
|
|
424
447
|
};
|
|
425
448
|
AddFormatMutation: {
|
|
426
449
|
format: components["schemas"]["FormatDTO"];
|
|
427
450
|
eventId: components["schemas"]["EventId"];
|
|
428
451
|
force: boolean;
|
|
452
|
+
/** @description The id of the new format, see [FormatId::new_random]. It must not exist yet. */
|
|
453
|
+
formatId: components["schemas"]["FormatId"];
|
|
429
454
|
};
|
|
430
455
|
AddFormatTestMutation: {
|
|
431
456
|
/** @default */
|
|
432
457
|
description: string;
|
|
433
458
|
formatId: components["schemas"]["FormatId"];
|
|
459
|
+
/** @description The id of the new format test, see [FormatTestId::new_random]. It must not exist yet. */
|
|
460
|
+
formatTestId: components["schemas"]["FormatTestId"];
|
|
434
461
|
name: string;
|
|
435
462
|
test: components["schemas"]["FormatTestDefinition"];
|
|
436
463
|
};
|
|
437
464
|
AddGameFormatMutation: {
|
|
438
465
|
eventId: components["schemas"]["EventId"];
|
|
439
466
|
gameFormat: components["schemas"]["GameFormatDTO"];
|
|
467
|
+
/** @description The id of the new game format, see [GameFormatId::new_random]. It must not exist yet. */
|
|
468
|
+
gameFormatId: components["schemas"]["GameFormatId"];
|
|
440
469
|
};
|
|
441
470
|
AddGameMutation: {
|
|
442
471
|
eventId: components["schemas"]["EventId"];
|
|
443
472
|
game: components["schemas"]["GameDTO"];
|
|
473
|
+
/** @description The id of the new game, see [GameId::new_random]. It must not exist yet. */
|
|
474
|
+
gameId: components["schemas"]["GameId"];
|
|
444
475
|
};
|
|
445
476
|
AddGameTableMutation: {
|
|
446
477
|
eventId: components["schemas"]["EventId"];
|
|
447
478
|
gameTable: components["schemas"]["TableDTO"];
|
|
479
|
+
/** @description The id of the new table, see [TableId::new_random]. It must not exist yet. */
|
|
480
|
+
tableId: components["schemas"]["TableId"];
|
|
448
481
|
variant: components["schemas"]["TableVariant"];
|
|
449
482
|
};
|
|
450
483
|
/** @description <#0 extends {}, #1>(#0, #1) -> (#0 & {<self.key>: #1}) */
|
|
@@ -473,6 +506,15 @@ declare interface components {
|
|
|
473
506
|
type: "at-date";
|
|
474
507
|
date: string;
|
|
475
508
|
};
|
|
509
|
+
/** @description Query of every endpoint with write access to a workspace. */
|
|
510
|
+
AllowNewGraphErrorsQuery: {
|
|
511
|
+
/**
|
|
512
|
+
* @description Applies mutations even if they cause node errors that did not exist before.
|
|
513
|
+
* Without it such mutations are rolled back with HTTP 409 and the new node errors.
|
|
514
|
+
* @default false
|
|
515
|
+
*/
|
|
516
|
+
allowNewGraphErrors: boolean;
|
|
517
|
+
};
|
|
476
518
|
AlterTeamCompetitorsMutation: {
|
|
477
519
|
additions: components["schemas"]["CompetitorId"][];
|
|
478
520
|
removals: components["schemas"]["CompetitorId"][];
|
|
@@ -667,7 +709,12 @@ declare interface components {
|
|
|
667
709
|
};
|
|
668
710
|
/** @enum {string} */
|
|
669
711
|
ClassGender: "female-only" | "male-only" | "all-genders";
|
|
670
|
-
/**
|
|
712
|
+
/**
|
|
713
|
+
* Format: uuid
|
|
714
|
+
* @description Identifies a class. Random ([Self::new_random]) from the endpoint, [Self::nth_of_seed] for `AddClassesMutation`,
|
|
715
|
+
* or derived by `ImportArchiveMutation`.
|
|
716
|
+
* Deserializing one only yields a reference to an existing class; it does not check that it exists.
|
|
717
|
+
*/
|
|
671
718
|
ClassId: ClassId;
|
|
672
719
|
ClassPathVariables_for_CommonWorkspaceId: {
|
|
673
720
|
classId: components["schemas"]["ClassId"];
|
|
@@ -722,7 +769,12 @@ declare interface components {
|
|
|
722
769
|
lastName?: string | null;
|
|
723
770
|
teamName?: string | null;
|
|
724
771
|
};
|
|
725
|
-
/**
|
|
772
|
+
/**
|
|
773
|
+
* Format: int64
|
|
774
|
+
* @description Identifies a competitor in the workspace, at least [Self::FIRST]. Not autoincrement: the endpoint picks
|
|
775
|
+
* [CompetitorDAO::next_id] inside `GraphiteEngine::mutate_with` and `AddCompetitorsMutation` carries it. The ids of deleted competitors can come back,
|
|
776
|
+
* so don't hold on to the id of a deleted competitor.
|
|
777
|
+
*/
|
|
726
778
|
CompetitorId: CompetitorId;
|
|
727
779
|
CompetitorInClassDTO: {
|
|
728
780
|
classId: components["schemas"]["ClassId"];
|
|
@@ -730,19 +782,14 @@ declare interface components {
|
|
|
730
782
|
/** Format: int64 */
|
|
731
783
|
place: number;
|
|
732
784
|
};
|
|
733
|
-
/** Format: int64 */
|
|
734
|
-
CompetitorInClassId: number;
|
|
735
785
|
CompetitorInTeamDAO: {
|
|
736
786
|
competitorId: components["schemas"]["CompetitorId"];
|
|
737
787
|
from: string;
|
|
738
|
-
id: components["schemas"]["CompetitorInTeamId"];
|
|
739
788
|
/** @description Id of competitor */
|
|
740
789
|
teamId: components["schemas"]["CompetitorId"];
|
|
741
790
|
to?: string | null;
|
|
742
791
|
};
|
|
743
792
|
/** Format: int64 */
|
|
744
|
-
CompetitorInTeamId: number;
|
|
745
|
-
/** Format: int64 */
|
|
746
793
|
CompetitorNotUniqueError: number;
|
|
747
794
|
CompetitorPathVariables_for_CommonWorkspaceId: {
|
|
748
795
|
competitorId: components["schemas"]["CompetitorId"];
|
|
@@ -886,12 +933,27 @@ declare interface components {
|
|
|
886
933
|
ContentInEventFolderDTO: {
|
|
887
934
|
classIds: components["schemas"]["ClassId"][];
|
|
888
935
|
eventId: components["schemas"]["EventId"];
|
|
936
|
+
/** @description Exactly one of `game_id` and `game_table_id` is set (SQL CHECK). */
|
|
889
937
|
gameId?: components["schemas"]["GameId"] | null;
|
|
938
|
+
/** @description Any table, not only tables of games. */
|
|
890
939
|
gameTableId?: components["schemas"]["TableId"] | null;
|
|
891
|
-
/** Format: int64 */
|
|
892
|
-
id: number;
|
|
893
940
|
path: components["schemas"]["FolderPath"];
|
|
894
941
|
};
|
|
942
|
+
/** @description Who created a game or a table. Encodes the columns `format_instance_id`, `format_node_id` and `node_key`. */
|
|
943
|
+
ContentOwner: {
|
|
944
|
+
/** @constant */
|
|
945
|
+
type: "user";
|
|
946
|
+
} | {
|
|
947
|
+
/** @constant */
|
|
948
|
+
type: "node";
|
|
949
|
+
data: {
|
|
950
|
+
nodeInstance: components["schemas"]["FormatNodeInstanceId"];
|
|
951
|
+
/** Format: int64 */
|
|
952
|
+
nodeKey: number;
|
|
953
|
+
};
|
|
954
|
+
};
|
|
955
|
+
/** @description Whether the content a node owns is the output of its last execution. */
|
|
956
|
+
ContentState: "ok" | "stale" | "node-error";
|
|
895
957
|
/** @enum {string} */
|
|
896
958
|
CookieStyle: "form";
|
|
897
959
|
CreateApiKeyBody: {
|
|
@@ -959,38 +1021,6 @@ declare interface components {
|
|
|
959
1021
|
/** @constant */
|
|
960
1022
|
type: "unknown";
|
|
961
1023
|
};
|
|
962
|
-
DefaultChangeEvent_for_CompetitorInClassId: {
|
|
963
|
-
/** @constant */
|
|
964
|
-
type: "created";
|
|
965
|
-
data: components["schemas"]["CompetitorInClassId"];
|
|
966
|
-
} | {
|
|
967
|
-
/** @constant */
|
|
968
|
-
type: "updated";
|
|
969
|
-
data: components["schemas"]["CompetitorInClassId"];
|
|
970
|
-
} | {
|
|
971
|
-
/** @constant */
|
|
972
|
-
type: "deleted";
|
|
973
|
-
data: components["schemas"]["CompetitorInClassId"];
|
|
974
|
-
} | {
|
|
975
|
-
/** @constant */
|
|
976
|
-
type: "unknown";
|
|
977
|
-
};
|
|
978
|
-
DefaultChangeEvent_for_CompetitorInTeamId: {
|
|
979
|
-
/** @constant */
|
|
980
|
-
type: "created";
|
|
981
|
-
data: components["schemas"]["CompetitorInTeamId"];
|
|
982
|
-
} | {
|
|
983
|
-
/** @constant */
|
|
984
|
-
type: "updated";
|
|
985
|
-
data: components["schemas"]["CompetitorInTeamId"];
|
|
986
|
-
} | {
|
|
987
|
-
/** @constant */
|
|
988
|
-
type: "deleted";
|
|
989
|
-
data: components["schemas"]["CompetitorInTeamId"];
|
|
990
|
-
} | {
|
|
991
|
-
/** @constant */
|
|
992
|
-
type: "unknown";
|
|
993
|
-
};
|
|
994
1024
|
DefaultChangeEvent_for_EventId: {
|
|
995
1025
|
/** @constant */
|
|
996
1026
|
type: "created";
|
|
@@ -1168,7 +1198,7 @@ declare interface components {
|
|
|
1168
1198
|
DeleteGameMutation: {
|
|
1169
1199
|
id: components["schemas"]["GameId"];
|
|
1170
1200
|
};
|
|
1171
|
-
/** @
|
|
1201
|
+
/** @description What happens to the games and tables of node instances that get deleted. */
|
|
1172
1202
|
DeleteInstanceSettings: "errorOnContent" | "keepContentAsCopy" | "deleteContent";
|
|
1173
1203
|
DeleteTableMutation: {
|
|
1174
1204
|
id: components["schemas"]["TableId"];
|
|
@@ -1205,12 +1235,14 @@ declare interface components {
|
|
|
1205
1235
|
DuplicateFormatShallowMutation: {
|
|
1206
1236
|
formatId: components["schemas"]["FormatId"];
|
|
1207
1237
|
/**
|
|
1208
|
-
*
|
|
1209
|
-
*
|
|
1238
|
+
* @description Random, picked when the mutation is built. The node ids of the copy and its id ([FormatId::of_copy]) derive
|
|
1239
|
+
* from it, so reusing a seed reproduces the same ids.
|
|
1210
1240
|
*/
|
|
1211
|
-
nodeUuidSeed:
|
|
1241
|
+
nodeUuidSeed: components["schemas"]["Seed"];
|
|
1212
1242
|
};
|
|
1213
1243
|
DuplicateGameFormatMutation: {
|
|
1244
|
+
/** @description The id of the new copy, see [GameFormatId::new_random]. It must not exist yet. */
|
|
1245
|
+
copyId: components["schemas"]["GameFormatId"];
|
|
1214
1246
|
gameFormatId: components["schemas"]["GameFormatId"];
|
|
1215
1247
|
};
|
|
1216
1248
|
/** @description A single encoding definition applied to a single schema property. */
|
|
@@ -1324,11 +1356,11 @@ declare interface components {
|
|
|
1324
1356
|
} | {
|
|
1325
1357
|
/** @constant */
|
|
1326
1358
|
type: "competitor-in-team";
|
|
1327
|
-
data: components["schemas"]["
|
|
1359
|
+
data: components["schemas"]["DefaultChangeEvent_for_CompetitorId"];
|
|
1328
1360
|
} | {
|
|
1329
1361
|
/** @constant */
|
|
1330
1362
|
type: "competitor-in-class";
|
|
1331
|
-
data: components["schemas"]["
|
|
1363
|
+
data: components["schemas"]["DefaultChangeEvent_for_ClassId"];
|
|
1332
1364
|
} | {
|
|
1333
1365
|
/** @constant */
|
|
1334
1366
|
type: "format-test";
|
|
@@ -1341,11 +1373,8 @@ declare interface components {
|
|
|
1341
1373
|
/** @constant */
|
|
1342
1374
|
type: "content-in-event-folder";
|
|
1343
1375
|
};
|
|
1344
|
-
/**
|
|
1345
|
-
|
|
1346
|
-
* @enum {string}
|
|
1347
|
-
*/
|
|
1348
|
-
EntityChangeEventDiscriminants: "Event" | "Game" | "Table" | "GameFormat" | "FormatGroup" | "Row" | "RowMutation" | "FormatNode" | "Format" | "Class" | "Extension" | "Competitor" | "CompetitorInTeam" | "CompetitorInClass" | "FormatTest" | "Log" | "ContentInEventFolder";
|
|
1376
|
+
/** @description Auto-generated discriminant enum variants */
|
|
1377
|
+
EntityChangeEventDiscriminants: ("Event" | "Game" | "Table" | "GameFormat" | "FormatGroup" | "Row" | "RowMutation" | "FormatNode" | "Format" | "Class" | "Extension" | "Competitor" | "FormatTest" | "Log" | "ContentInEventFolder") | "CompetitorInTeam" | "CompetitorInClass";
|
|
1349
1378
|
/** @description A scope portal that used to be there but got removed in order to be serializable */
|
|
1350
1379
|
ErasedScopedTypeRef_for_Type: {
|
|
1351
1380
|
/** @constant */
|
|
@@ -1411,7 +1440,11 @@ declare interface components {
|
|
|
1411
1440
|
*/
|
|
1412
1441
|
testMode: boolean;
|
|
1413
1442
|
};
|
|
1414
|
-
/**
|
|
1443
|
+
/**
|
|
1444
|
+
* Format: uuid
|
|
1445
|
+
* @description Identifies an event. Random ([Self::new_random]): the endpoint picks it and `AddEventMutation` carries it.
|
|
1446
|
+
* Deserializing one only yields a reference to an existing event; it does not check that it exists.
|
|
1447
|
+
*/
|
|
1415
1448
|
EventId: EventId;
|
|
1416
1449
|
/**
|
|
1417
1450
|
* @description Everything needed to draw how the tables of an event come from each other, without their rows (see
|
|
@@ -1428,7 +1461,7 @@ declare interface components {
|
|
|
1428
1461
|
/** @description Without stale tables. */
|
|
1429
1462
|
tables: components["schemas"]["EventLineageTable"][];
|
|
1430
1463
|
};
|
|
1431
|
-
/** @description A way from `parent_table_id` into `table_id`. */
|
|
1464
|
+
/** @description A way from `parent_table_id` into `id.table_id`. */
|
|
1432
1465
|
EventLineageEdge: {
|
|
1433
1466
|
/** @description Referenced by [EventRowLineageEdge::id]. */
|
|
1434
1467
|
id: components["schemas"]["TableLineageId"];
|
|
@@ -1444,22 +1477,22 @@ declare interface components {
|
|
|
1444
1477
|
* @description How many rows took this way.
|
|
1445
1478
|
*/
|
|
1446
1479
|
rowCount: number;
|
|
1447
|
-
tableId: components["schemas"]["TableId"];
|
|
1448
1480
|
};
|
|
1449
1481
|
EventLineageGame: {
|
|
1450
1482
|
entryTableId?: components["schemas"]["TableId"] | null;
|
|
1451
1483
|
id: components["schemas"]["GameId"];
|
|
1452
1484
|
name: string;
|
|
1453
|
-
owningFormatNodeInstanceId?: components["schemas"]["
|
|
1485
|
+
owningFormatNodeInstanceId?: components["schemas"]["NodeInstanceHash"] | null;
|
|
1454
1486
|
resultTableId?: components["schemas"]["TableId"] | null;
|
|
1455
1487
|
};
|
|
1456
1488
|
EventLineageNode: {
|
|
1457
1489
|
/** @description Set for class nodes, the rows they create are the competitors of the class. */
|
|
1458
1490
|
classId?: components["schemas"]["ClassId"] | null;
|
|
1459
1491
|
formatId: components["schemas"]["FormatId"];
|
|
1460
|
-
formatInstanceId: components["schemas"]["
|
|
1492
|
+
formatInstanceId: components["schemas"]["FormatInstanceHash"];
|
|
1461
1493
|
formatNodeId: components["schemas"]["FormatNodeId"];
|
|
1462
|
-
|
|
1494
|
+
/** @description Referenced by [Step::node]. */
|
|
1495
|
+
id: components["schemas"]["NodeInstanceHash"];
|
|
1463
1496
|
nodeType: components["schemas"]["NodeTypeDiscriminants"];
|
|
1464
1497
|
};
|
|
1465
1498
|
EventLineageRow: {
|
|
@@ -1472,7 +1505,7 @@ declare interface components {
|
|
|
1472
1505
|
gameId?: components["schemas"]["GameId"] | null;
|
|
1473
1506
|
id: components["schemas"]["TableId"];
|
|
1474
1507
|
name: string;
|
|
1475
|
-
owningNodeInstanceId?: components["schemas"]["
|
|
1508
|
+
owningNodeInstanceId?: components["schemas"]["NodeInstanceHash"] | null;
|
|
1476
1509
|
/** Format: uint */
|
|
1477
1510
|
rowCount: number;
|
|
1478
1511
|
state: components["schemas"]["TableState"];
|
|
@@ -1723,14 +1756,27 @@ declare interface components {
|
|
|
1723
1756
|
category: components["schemas"]["NodeCategory"];
|
|
1724
1757
|
name: string;
|
|
1725
1758
|
};
|
|
1726
|
-
/**
|
|
1759
|
+
/**
|
|
1760
|
+
* Format: uuid
|
|
1761
|
+
* @description Identifies a format group. Random ([Self::new_random]) from the endpoint, or derived by `ImportArchiveMutation`.
|
|
1762
|
+
* Deserializing one only yields a reference to an existing format group; it does not check that it exists.
|
|
1763
|
+
*/
|
|
1727
1764
|
FormatGroupId: FormatGroupId;
|
|
1728
1765
|
FormatGroupPathVariables_for_CommonWorkspaceId: {
|
|
1729
1766
|
eventId: components["schemas"]["EventId"];
|
|
1730
1767
|
formatGroupId: components["schemas"]["FormatGroupId"];
|
|
1731
1768
|
workspaceId: components["schemas"]["CommonWorkspaceId"];
|
|
1732
1769
|
};
|
|
1733
|
-
/**
|
|
1770
|
+
/**
|
|
1771
|
+
* Format: uuid
|
|
1772
|
+
* @description Identifies a format. Comes from one of:
|
|
1773
|
+
* - [Self::new_random]: the endpoint picks it and `AddFormatMutation` carries it.
|
|
1774
|
+
* - [Self::root_of]: the root format of an event.
|
|
1775
|
+
* - [Self::of_copy]: the copy a mutation makes with a seed.
|
|
1776
|
+
* - `ImportArchiveMutation`: derived from the seed, the event and the archive entry.
|
|
1777
|
+
*
|
|
1778
|
+
* Deserializing one only yields a reference to an existing format; it does not check that it exists.
|
|
1779
|
+
*/
|
|
1734
1780
|
FormatId: FormatId;
|
|
1735
1781
|
FormatInstanceDAO: {
|
|
1736
1782
|
/** @description Temporary solution. Needed to know the event of an invalidated node instance. */
|
|
@@ -1744,14 +1790,19 @@ declare interface components {
|
|
|
1744
1790
|
* additionally need some sort of closure key.
|
|
1745
1791
|
*/
|
|
1746
1792
|
formatNodeId?: components["schemas"]["FormatNodeId"] | null;
|
|
1747
|
-
|
|
1793
|
+
/**
|
|
1794
|
+
* @description Always [Self::derived_id]. Private so that it can only come from [Self::root], [Self::new_child] or the DB, and
|
|
1795
|
+
* [Self::update_with_new_id] re-derives it when the parent changes.
|
|
1796
|
+
*/
|
|
1797
|
+
id: components["schemas"]["FormatInstanceHash"];
|
|
1748
1798
|
/**
|
|
1749
1799
|
* Format: int64
|
|
1750
1800
|
* @description Same concept as keys in react
|
|
1751
1801
|
*/
|
|
1752
1802
|
key: number;
|
|
1753
|
-
/** @description None if root format */
|
|
1754
|
-
|
|
1803
|
+
/** @description None if root format. See [Self::parent]. */
|
|
1804
|
+
parentId?: components["schemas"]["FormatInstanceHash"] | null;
|
|
1805
|
+
parentNodeId?: components["schemas"]["FormatNodeId"] | null;
|
|
1755
1806
|
/**
|
|
1756
1807
|
* @description True if this instance was not hit the last time it should
|
|
1757
1808
|
* have gotten executed. Example: Map node maps 10 times (creates
|
|
@@ -1763,12 +1814,23 @@ declare interface components {
|
|
|
1763
1814
|
*/
|
|
1764
1815
|
stale: boolean;
|
|
1765
1816
|
};
|
|
1766
|
-
/**
|
|
1767
|
-
|
|
1817
|
+
/**
|
|
1818
|
+
* Format: uuid
|
|
1819
|
+
* @description Identifies a format instance, the primary key of `format_instances`.
|
|
1820
|
+
*
|
|
1821
|
+
* Derived from where the instance sits in the tree of instances: the root instance of an event from its root format,
|
|
1822
|
+
* every other instance from the [NodeInstanceHash] of the node that instantiated it and the key the node gave it.
|
|
1823
|
+
* So executing a graph creates the same hashes every time.
|
|
1824
|
+
*
|
|
1825
|
+
* New hashes only come from these derivations. Deserializing one (client requests, the DB) only yields a reference to
|
|
1826
|
+
* an existing instance; it does not check that it exists or how it was made. Changing a derivation changes what
|
|
1827
|
+
* replaying a log produces and needs an `ENGINE_VERSION` increment.
|
|
1828
|
+
*/
|
|
1829
|
+
FormatInstanceHash: FormatInstanceHash;
|
|
1768
1830
|
FormatInstancePathVariables_for_CommonWorkspaceId: {
|
|
1769
1831
|
eventId: components["schemas"]["EventId"];
|
|
1770
1832
|
formatId: components["schemas"]["FormatId"];
|
|
1771
|
-
formatInstanceId: components["schemas"]["
|
|
1833
|
+
formatInstanceId: components["schemas"]["FormatInstanceHash"];
|
|
1772
1834
|
workspaceId: components["schemas"]["CommonWorkspaceId"];
|
|
1773
1835
|
};
|
|
1774
1836
|
FormatInstanceTestResult: {
|
|
@@ -1776,8 +1838,6 @@ declare interface components {
|
|
|
1776
1838
|
nodeStates: components["schemas"]["NodeInstanceStateDTO"][];
|
|
1777
1839
|
};
|
|
1778
1840
|
FormatNodeConnectionDAO: {
|
|
1779
|
-
/** Format: int64 */
|
|
1780
|
-
id: number;
|
|
1781
1841
|
pins: components["schemas"]["ConnectionPin"][];
|
|
1782
1842
|
sourceFormatNodeId: components["schemas"]["FormatNodeId"];
|
|
1783
1843
|
sourceOutput: components["schemas"]["OutputIdx"];
|
|
@@ -1842,8 +1902,11 @@ declare interface components {
|
|
|
1842
1902
|
outputVargsToArray: boolean;
|
|
1843
1903
|
parentNodeId?: components["schemas"]["FormatNodeId"] | null;
|
|
1844
1904
|
settings: components["schemas"]["RecordValue_for_Primitive"];
|
|
1845
|
-
/**
|
|
1846
|
-
|
|
1905
|
+
/**
|
|
1906
|
+
* @description Ignored for existing nodes, because a node's test id never changes. Defaults to the node id.
|
|
1907
|
+
* @default null
|
|
1908
|
+
*/
|
|
1909
|
+
testId: components["schemas"]["FormatNodeTestId"] | null;
|
|
1847
1910
|
typeHints: components["schemas"]["TypeHints_for_Type_and_ParamRef"];
|
|
1848
1911
|
/** Format: int64 */
|
|
1849
1912
|
xPos: number;
|
|
@@ -1852,14 +1915,11 @@ declare interface components {
|
|
|
1852
1915
|
};
|
|
1853
1916
|
/** Format: uuid */
|
|
1854
1917
|
FormatNodeId: FormatNodeId;
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1918
|
+
/** @description The node `format_node_id` in the format instance `format_instance_id`. */
|
|
1919
|
+
FormatNodeInstanceId: {
|
|
1920
|
+
formatInstanceId: components["schemas"]["FormatInstanceHash"];
|
|
1858
1921
|
formatNodeId: components["schemas"]["FormatNodeId"];
|
|
1859
|
-
id: components["schemas"]["FormatNodeInstanceId"];
|
|
1860
1922
|
};
|
|
1861
|
-
/** Format: int64 */
|
|
1862
|
-
FormatNodeInstanceId: FormatNodeInstanceId;
|
|
1863
1923
|
/** Format: uuid */
|
|
1864
1924
|
FormatNodeTestId: FormatNodeTestId;
|
|
1865
1925
|
FormatPathVariables_for_CommonWorkspaceId: {
|
|
@@ -1878,6 +1938,14 @@ declare interface components {
|
|
|
1878
1938
|
/** @constant */
|
|
1879
1939
|
type: "non-unique-node-id";
|
|
1880
1940
|
data: components["schemas"]["FormatNodeId"];
|
|
1941
|
+
} | {
|
|
1942
|
+
/** @constant */
|
|
1943
|
+
type: "non-unique-test-id";
|
|
1944
|
+
data: components["schemas"]["FormatNodeTestId"];
|
|
1945
|
+
} | {
|
|
1946
|
+
/** @constant */
|
|
1947
|
+
type: "non-unique-connection";
|
|
1948
|
+
data: components["schemas"]["FormatConnectionDTO"];
|
|
1881
1949
|
} | {
|
|
1882
1950
|
/** @constant */
|
|
1883
1951
|
type: "parent-does-not-exist";
|
|
@@ -1923,10 +1991,6 @@ declare interface components {
|
|
|
1923
1991
|
FormatRevalidationError: {
|
|
1924
1992
|
invalidatedFormats: components["schemas"]["FormatId"][];
|
|
1925
1993
|
};
|
|
1926
|
-
FormatRuntimeError: {
|
|
1927
|
-
location: components["schemas"]["FormatNodeInstanceDAO"];
|
|
1928
|
-
nodeError: components["schemas"]["NodeRuntimeError"];
|
|
1929
|
-
};
|
|
1930
1994
|
FormatTest: {
|
|
1931
1995
|
description: string;
|
|
1932
1996
|
formatId: components["schemas"]["FormatId"];
|
|
@@ -2011,8 +2075,8 @@ declare interface components {
|
|
|
2011
2075
|
data: components["schemas"]["ImportArchiveError"];
|
|
2012
2076
|
} | {
|
|
2013
2077
|
/** @constant */
|
|
2014
|
-
type: "
|
|
2015
|
-
data: components["schemas"]["
|
|
2078
|
+
type: "node-error";
|
|
2079
|
+
data: components["schemas"]["LocatedNodeError"];
|
|
2016
2080
|
} | {
|
|
2017
2081
|
/** @constant */
|
|
2018
2082
|
type: "outputs-do-not-match";
|
|
@@ -2090,7 +2154,12 @@ declare interface components {
|
|
|
2090
2154
|
name: string;
|
|
2091
2155
|
};
|
|
2092
2156
|
};
|
|
2093
|
-
/**
|
|
2157
|
+
/**
|
|
2158
|
+
* Format: uuid
|
|
2159
|
+
* @description Identifies a format test. Random ([Self::new_random]) from the endpoint, or [Self::nth_imported] for the tests
|
|
2160
|
+
* of an imported format.
|
|
2161
|
+
* Deserializing one only yields a reference to an existing format test; it does not check that it exists.
|
|
2162
|
+
*/
|
|
2094
2163
|
FormatTestId: FormatTestId;
|
|
2095
2164
|
FormatTestPathVariables_for_CommonWorkspaceId: {
|
|
2096
2165
|
eventId: components["schemas"]["EventId"];
|
|
@@ -2115,7 +2184,7 @@ declare interface components {
|
|
|
2115
2184
|
* @description The id of the root format instance that for the tests.
|
|
2116
2185
|
* The results of this format instance are in [Self::format_instance_states]
|
|
2117
2186
|
*/
|
|
2118
|
-
testFormatInstanceId: components["schemas"]["
|
|
2187
|
+
testFormatInstanceId: components["schemas"]["FormatInstanceHash"];
|
|
2119
2188
|
};
|
|
2120
2189
|
/** @description Represents a state in which the format is not valid for execution but can be stored in the db. */
|
|
2121
2190
|
FormatValidationError: {
|
|
@@ -2236,12 +2305,11 @@ declare interface components {
|
|
|
2236
2305
|
*/
|
|
2237
2306
|
parentFormatNodeFolderPath: string[];
|
|
2238
2307
|
};
|
|
2308
|
+
/** @description The node `format_node_id` in the format instance `format_instance_id`. */
|
|
2239
2309
|
FullNodeInstance: {
|
|
2240
2310
|
formatId: components["schemas"]["FormatId"];
|
|
2241
|
-
formatInstanceId: components["schemas"]["
|
|
2242
|
-
/** @description Set if the node instance is a child of at least one NodeFolderNode */
|
|
2311
|
+
formatInstanceId: components["schemas"]["FormatInstanceHash"];
|
|
2243
2312
|
formatNodeId: components["schemas"]["FormatNodeId"];
|
|
2244
|
-
id: components["schemas"]["FormatNodeInstanceId"];
|
|
2245
2313
|
};
|
|
2246
2314
|
GTFilterKind: {
|
|
2247
2315
|
/** @constant */
|
|
@@ -2271,15 +2339,8 @@ declare interface components {
|
|
|
2271
2339
|
gameFormatId: components["schemas"]["GameFormatId"];
|
|
2272
2340
|
id: components["schemas"]["GameId"];
|
|
2273
2341
|
name: string;
|
|
2274
|
-
|
|
2275
|
-
|
|
2276
|
-
owningFormatNodeInstanceId?: components["schemas"]["FormatNodeInstanceId"] | null;
|
|
2277
|
-
/**
|
|
2278
|
-
* @description True if
|
|
2279
|
-
* - created by a node but the last execution of the node did not touch this game.
|
|
2280
|
-
* - Or the owning node was deleted.
|
|
2281
|
-
*/
|
|
2282
|
-
stale: boolean;
|
|
2342
|
+
owner: components["schemas"]["ContentOwner"];
|
|
2343
|
+
state: components["schemas"]["ContentState"];
|
|
2283
2344
|
};
|
|
2284
2345
|
GameDTO: {
|
|
2285
2346
|
attributes: components["schemas"]["RecordValue_for_Primitive"];
|
|
@@ -2330,7 +2391,11 @@ declare interface components {
|
|
|
2330
2391
|
postProcessingSteps: components["schemas"]["GameFormatPostProcessingStep"][];
|
|
2331
2392
|
resultListColumns: components["schemas"]["RecordTypeWithDefaults"];
|
|
2332
2393
|
};
|
|
2333
|
-
/**
|
|
2394
|
+
/**
|
|
2395
|
+
* Format: uuid
|
|
2396
|
+
* @description Identifies a game format. Random ([Self::new_random]) from the endpoint, or derived by `ImportArchiveMutation`.
|
|
2397
|
+
* Deserializing one only yields a reference to an existing game format; it does not check that it exists.
|
|
2398
|
+
*/
|
|
2334
2399
|
GameFormatId: GameFormatId;
|
|
2335
2400
|
GameFormatPathVariables_for_CommonWorkspaceId: {
|
|
2336
2401
|
eventId: components["schemas"]["EventId"];
|
|
@@ -2358,7 +2423,16 @@ declare interface components {
|
|
|
2358
2423
|
expression: string;
|
|
2359
2424
|
};
|
|
2360
2425
|
};
|
|
2361
|
-
/**
|
|
2426
|
+
/**
|
|
2427
|
+
* Format: uuid
|
|
2428
|
+
* @description Identifies a game, the primary key of `games`. Comes from one of:
|
|
2429
|
+
* - [Self::new_random]: a game of the user. The endpoint picks the id and the mutation carries it.
|
|
2430
|
+
* - [Self::of_node]: a game of a node, see [GameDAO::derived_id]. Executing a graph creates the same ids every time.
|
|
2431
|
+
* - [GameDAO::keep_as_user_copy]: a game of a node that the user kept when the node instance got deleted.
|
|
2432
|
+
*
|
|
2433
|
+
* Deserializing one only yields a reference to an existing game; it does not check that it exists or how it was made.
|
|
2434
|
+
* Changing a derivation changes what replaying a log produces and needs an `ENGINE_VERSION` increment.
|
|
2435
|
+
*/
|
|
2362
2436
|
GameId: GameId;
|
|
2363
2437
|
GameNodeDTO: {
|
|
2364
2438
|
/**
|
|
@@ -2420,7 +2494,7 @@ declare interface components {
|
|
|
2420
2494
|
/** @enum {string} */
|
|
2421
2495
|
GenderGuess: "male" | "female" | "may-be-male" | "may-be-female" | "both-male-female" | "not-sure" | "not-found";
|
|
2422
2496
|
GetFormatInstancesStateQuery: {
|
|
2423
|
-
formatInstanceIds: components["schemas"]["
|
|
2497
|
+
formatInstanceIds: components["schemas"]["FormatInstanceHash"][];
|
|
2424
2498
|
};
|
|
2425
2499
|
GetIsBibUniqueQuery: {
|
|
2426
2500
|
bib: components["schemas"]["BIB"];
|
|
@@ -2529,11 +2603,12 @@ declare interface components {
|
|
|
2529
2603
|
*/
|
|
2530
2604
|
linkTemplate: boolean;
|
|
2531
2605
|
/**
|
|
2532
|
-
* Format: uint64
|
|
2533
2606
|
* @description When `Some`, regenerates format node ids from this seed (deterministic log replay).
|
|
2534
2607
|
* When `None`, preserves archive node ids — for one-shot imports such as format tests.
|
|
2608
|
+
* Mixed with the event, the ids of the imported entities derive from it too. Random, picked when the mutation is
|
|
2609
|
+
* built; reusing a seed in the same event reproduces the same ids.
|
|
2535
2610
|
*/
|
|
2536
|
-
nodeUuidSeed?:
|
|
2611
|
+
nodeUuidSeed?: components["schemas"]["Seed"] | null;
|
|
2537
2612
|
/** @default as-format */
|
|
2538
2613
|
rootFormat: components["schemas"]["RootFormatImport"];
|
|
2539
2614
|
};
|
|
@@ -2698,6 +2773,14 @@ declare interface components {
|
|
|
2698
2773
|
* Can be created from a single character (e.g. `'T'`) or a string (hashed for multi-char names).
|
|
2699
2774
|
*/
|
|
2700
2775
|
LocalParamID: number;
|
|
2776
|
+
/** @description An error that originated in a node, identified independently of the unstable `NodeIndex`. */
|
|
2777
|
+
LocatedNodeError: {
|
|
2778
|
+
error: components["schemas"]["NodeRuntimeError"];
|
|
2779
|
+
eventId: components["schemas"]["EventId"];
|
|
2780
|
+
formatId: components["schemas"]["FormatId"];
|
|
2781
|
+
formatInstanceId: components["schemas"]["FormatInstanceHash"];
|
|
2782
|
+
formatNodeId: components["schemas"]["FormatNodeId"];
|
|
2783
|
+
};
|
|
2701
2784
|
/** Format: uuid */
|
|
2702
2785
|
LogBatchId: string;
|
|
2703
2786
|
LogEntry: {
|
|
@@ -2852,6 +2935,10 @@ declare interface components {
|
|
|
2852
2935
|
/** @constant */
|
|
2853
2936
|
type: "update-full-resolved-game-table-layer-one";
|
|
2854
2937
|
data: components["schemas"]["UpdateTableRowsLayerOneMutation"];
|
|
2938
|
+
} | {
|
|
2939
|
+
/** @constant */
|
|
2940
|
+
type: "remove-hidden-row";
|
|
2941
|
+
data: components["schemas"]["RemoveHiddenRowMutation"];
|
|
2855
2942
|
} | {
|
|
2856
2943
|
/** @constant */
|
|
2857
2944
|
type: "add-extension";
|
|
@@ -2916,10 +3003,10 @@ declare interface components {
|
|
|
2916
3003
|
name: string;
|
|
2917
3004
|
nodeId: components["schemas"]["FormatNodeId"];
|
|
2918
3005
|
/**
|
|
2919
|
-
*
|
|
2920
|
-
*
|
|
3006
|
+
* @description Persist the seed so later log entries can refer to the same copied node IDs on replay. Random, picked when the
|
|
3007
|
+
* mutation is built; the id of the copied format derives from it too ([FormatId::of_copy]).
|
|
2921
3008
|
*/
|
|
2922
|
-
nodeUuidSeed:
|
|
3009
|
+
nodeUuidSeed: components["schemas"]["Seed"];
|
|
2923
3010
|
};
|
|
2924
3011
|
MakeNodeSingleUserRequest: {
|
|
2925
3012
|
/** @description The exact name to give the copied format. */
|
|
@@ -2992,7 +3079,40 @@ declare interface components {
|
|
|
2992
3079
|
nodeType: components["schemas"]["NodeType"];
|
|
2993
3080
|
test: components["schemas"]["FormatTestDefinition"];
|
|
2994
3081
|
};
|
|
3082
|
+
NodeErrorState_for_NodeRuntimeError: {
|
|
3083
|
+
/** @constant */
|
|
3084
|
+
type: "ok";
|
|
3085
|
+
} | {
|
|
3086
|
+
/** @constant */
|
|
3087
|
+
type: "partial-errors";
|
|
3088
|
+
data: {
|
|
3089
|
+
errorPorts: {
|
|
3090
|
+
[key: string]: components["schemas"]["NodeRuntimeError"];
|
|
3091
|
+
};
|
|
3092
|
+
};
|
|
3093
|
+
} | {
|
|
3094
|
+
/** @constant */
|
|
3095
|
+
type: "full-error";
|
|
3096
|
+
data: components["schemas"]["NodeRuntimeError"];
|
|
3097
|
+
} | {
|
|
3098
|
+
/** @constant */
|
|
3099
|
+
type: "skipped";
|
|
3100
|
+
data: components["schemas"]["NodeRuntimeError"];
|
|
3101
|
+
};
|
|
2995
3102
|
NodeHasContentError: null;
|
|
3103
|
+
/**
|
|
3104
|
+
* Format: uuid
|
|
3105
|
+
* @description Identifies a node instance: a node of a format within one [FormatInstanceHash].
|
|
3106
|
+
*
|
|
3107
|
+
* Derived from the format instance and the node id, see [Self::of]. It is the parent of the format instances the node
|
|
3108
|
+
* creates ([FormatInstanceHash::new_child]) and the origin that table lineage attributes the steps of the node to. Like
|
|
3109
|
+
* [FormatInstanceHash], new hashes only come from the derivation, deserializing only yields a reference, and changing
|
|
3110
|
+
* the derivation needs an `ENGINE_VERSION` increment.
|
|
3111
|
+
*
|
|
3112
|
+
* A node that gets a new id, like the nodes copied by `MakeNodeSingleUserMutation`, gets new node instance hashes.
|
|
3113
|
+
* Everything derived from them has to move along.
|
|
3114
|
+
*/
|
|
3115
|
+
NodeInstanceHash: NodeInstanceHash;
|
|
2996
3116
|
NodeInstanceStateDTO: {
|
|
2997
3117
|
/** @description Effective execution folder of this node, used as the root of its owned-content tree. */
|
|
2998
3118
|
folderPath: components["schemas"]["FolderPath"];
|
|
@@ -3032,6 +3152,10 @@ declare interface components {
|
|
|
3032
3152
|
name: string;
|
|
3033
3153
|
};
|
|
3034
3154
|
};
|
|
3155
|
+
/**
|
|
3156
|
+
* @description Error that happened while executing a node. Caused by invalid input to
|
|
3157
|
+
* the node or other factors caused by invalid use of the node.
|
|
3158
|
+
*/
|
|
3035
3159
|
NodeRuntimeError: {
|
|
3036
3160
|
/** @constant */
|
|
3037
3161
|
type: "table-kind-mismatch";
|
|
@@ -3067,15 +3191,6 @@ declare interface components {
|
|
|
3067
3191
|
} | {
|
|
3068
3192
|
/** @constant */
|
|
3069
3193
|
type: "integer-overflow";
|
|
3070
|
-
} | {
|
|
3071
|
-
/** @constant */
|
|
3072
|
-
type: "mux-invalid-multiplexing-strategy";
|
|
3073
|
-
} | {
|
|
3074
|
-
/** @constant */
|
|
3075
|
-
type: "mux-competitor-not-unique";
|
|
3076
|
-
data: {
|
|
3077
|
-
competitorId: components["schemas"]["CompetitorId"];
|
|
3078
|
-
};
|
|
3079
3194
|
} | {
|
|
3080
3195
|
/** @constant */
|
|
3081
3196
|
type: "record-field-does-not-exist";
|
|
@@ -3100,10 +3215,6 @@ declare interface components {
|
|
|
3100
3215
|
/** Format: uint */
|
|
3101
3216
|
rowIndex: number;
|
|
3102
3217
|
};
|
|
3103
|
-
} | {
|
|
3104
|
-
/** @constant */
|
|
3105
|
-
type: "closure-failed";
|
|
3106
|
-
data: components["schemas"]["FormatRuntimeError"];
|
|
3107
3218
|
} | {
|
|
3108
3219
|
/** @constant */
|
|
3109
3220
|
type: "invalid-row-types";
|
|
@@ -4175,12 +4286,7 @@ declare interface components {
|
|
|
4175
4286
|
QueryStyle: "form" | "spaceDelimited" | "pipeDelimited" | "deepObject";
|
|
4176
4287
|
RandomizeClassPlacesMutation: {
|
|
4177
4288
|
classId: components["schemas"]["ClassId"];
|
|
4178
|
-
|
|
4179
|
-
* Format: uint64
|
|
4180
|
-
* @description Defaults so log entries written before the seed existed still deserialize.
|
|
4181
|
-
* @default 0
|
|
4182
|
-
*/
|
|
4183
|
-
seed: number;
|
|
4289
|
+
seed: components["schemas"]["Seed"];
|
|
4184
4290
|
};
|
|
4185
4291
|
/** @enum {string} */
|
|
4186
4292
|
RecordFieldOp: "read-field" | "write-field";
|
|
@@ -4416,6 +4522,11 @@ declare interface components {
|
|
|
4416
4522
|
eventId: components["schemas"]["EventId"];
|
|
4417
4523
|
identifier: string;
|
|
4418
4524
|
};
|
|
4525
|
+
/** @description Removes a row nodes don't see, see [ResolvedTable::hidden_rows]. */
|
|
4526
|
+
RemoveHiddenRowMutation: {
|
|
4527
|
+
competitorId: components["schemas"]["CompetitorId"];
|
|
4528
|
+
tableId: components["schemas"]["TableId"];
|
|
4529
|
+
};
|
|
4419
4530
|
RemoveTargetQuery: {
|
|
4420
4531
|
/**
|
|
4421
4532
|
* @description Only forget the target, without pushing the remaining rows and resetting the remote.
|
|
@@ -4447,6 +4558,8 @@ declare interface components {
|
|
|
4447
4558
|
id: components["schemas"]["LogId"];
|
|
4448
4559
|
/** Format: date-time */
|
|
4449
4560
|
timestamp: string;
|
|
4561
|
+
/** Format: uint32 */
|
|
4562
|
+
version: number;
|
|
4450
4563
|
};
|
|
4451
4564
|
ReplicationConflict: {
|
|
4452
4565
|
/** @constant */
|
|
@@ -4456,6 +4569,12 @@ declare interface components {
|
|
|
4456
4569
|
/** @constant */
|
|
4457
4570
|
type: "hash-mismatch";
|
|
4458
4571
|
head: components["schemas"]["LogHead"];
|
|
4572
|
+
} | {
|
|
4573
|
+
/** @constant */
|
|
4574
|
+
type: "unsupported-version";
|
|
4575
|
+
id: components["schemas"]["LogId"];
|
|
4576
|
+
/** Format: uint32 */
|
|
4577
|
+
version: number;
|
|
4459
4578
|
};
|
|
4460
4579
|
ReplicationHead: {
|
|
4461
4580
|
/** Format: uuid */
|
|
@@ -4500,6 +4619,13 @@ declare interface components {
|
|
|
4500
4619
|
Resolve: {
|
|
4501
4620
|
keep: components["schemas"]["Side"];
|
|
4502
4621
|
};
|
|
4622
|
+
/** @description A table as nodes see it, without the results whose competitor is not in the entry of their game. */
|
|
4623
|
+
ResolvedTable: {
|
|
4624
|
+
/** @description The results whose competitor is not in the entry of their game. Nodes don't see them. */
|
|
4625
|
+
hiddenRows: components["schemas"]["Row"][];
|
|
4626
|
+
rows: components["schemas"]["Rows_for_Sorted"];
|
|
4627
|
+
state: components["schemas"]["TableState"];
|
|
4628
|
+
};
|
|
4503
4629
|
Response: {
|
|
4504
4630
|
/**
|
|
4505
4631
|
* @description REQUIRED. A description of the response.
|
|
@@ -4551,7 +4677,7 @@ declare interface components {
|
|
|
4551
4677
|
RootFormatResponse: {
|
|
4552
4678
|
rootFormat: components["schemas"]["FullFormatDAO"];
|
|
4553
4679
|
/** @description None if the format was never executed */
|
|
4554
|
-
rootFormatInstanceId?: components["schemas"]["
|
|
4680
|
+
rootFormatInstanceId?: components["schemas"]["FormatInstanceHash"] | null;
|
|
4555
4681
|
};
|
|
4556
4682
|
/** @description Rows can only be created and moved by this crate, so that their [Origin] stays truthful. */
|
|
4557
4683
|
Row: Row;
|
|
@@ -4573,10 +4699,6 @@ declare interface components {
|
|
|
4573
4699
|
steps: components["schemas"]["Step"][];
|
|
4574
4700
|
tableId: components["schemas"]["TableId"];
|
|
4575
4701
|
};
|
|
4576
|
-
RowLineageQuery: {
|
|
4577
|
-
/** @description The competitor of the row */
|
|
4578
|
-
competitorId: components["schemas"]["CompetitorId"];
|
|
4579
|
-
};
|
|
4580
4702
|
RowMutationChangeEvent: {
|
|
4581
4703
|
gameTableId: components["schemas"]["TableId"];
|
|
4582
4704
|
};
|
|
@@ -4589,11 +4711,12 @@ declare interface components {
|
|
|
4589
4711
|
batch: number;
|
|
4590
4712
|
competitorId: components["schemas"]["CompetitorId"];
|
|
4591
4713
|
gameTableId: components["schemas"]["TableId"];
|
|
4592
|
-
|
|
4714
|
+
/** @description Counts per table, so it is unique only together with `game_table_id`. */
|
|
4715
|
+
idx: components["schemas"]["RowMutationIdx"];
|
|
4593
4716
|
kind: components["schemas"]["RowMutationKind"];
|
|
4594
4717
|
};
|
|
4595
4718
|
/** Format: int64 */
|
|
4596
|
-
|
|
4719
|
+
RowMutationIdx: RowMutationIdx;
|
|
4597
4720
|
RowMutationKind: {
|
|
4598
4721
|
/** @constant */
|
|
4599
4722
|
type: "set-record-field";
|
|
@@ -4635,6 +4758,10 @@ declare interface components {
|
|
|
4635
4758
|
competitorId: number;
|
|
4636
4759
|
kind: components["schemas"]["RowMutationKind"];
|
|
4637
4760
|
};
|
|
4761
|
+
RowQuery: {
|
|
4762
|
+
/** @description The competitor of the row */
|
|
4763
|
+
competitorId: components["schemas"]["CompetitorId"];
|
|
4764
|
+
};
|
|
4638
4765
|
RowSummary: {
|
|
4639
4766
|
description: string;
|
|
4640
4767
|
hash: number[];
|
|
@@ -4758,8 +4885,18 @@ declare interface components {
|
|
|
4758
4885
|
} & {
|
|
4759
4886
|
[key: string]: unknown;
|
|
4760
4887
|
});
|
|
4888
|
+
/**
|
|
4889
|
+
* Format: uuid
|
|
4890
|
+
* @description The random seed a log entry stores so that replaying it derives the same ids, see [IdSeed].
|
|
4891
|
+
*
|
|
4892
|
+
* A uuid instead of a `u64` (as it used to be): JSON clients like the frontend read numbers as JavaScript doubles,
|
|
4893
|
+
* which round integers above 2^53, so a seed that went through them derived different ids on replay. A uuid is
|
|
4894
|
+
* serialized as a string and survives that unchanged.
|
|
4895
|
+
*/
|
|
4896
|
+
Seed: string;
|
|
4761
4897
|
SemVer: string;
|
|
4762
4898
|
SerializableNodeResult: {
|
|
4899
|
+
errorState: components["schemas"]["NodeErrorState_for_NodeRuntimeError"];
|
|
4763
4900
|
values: components["schemas"]["SerializablePortValues_for_OutputIdx"];
|
|
4764
4901
|
};
|
|
4765
4902
|
SerializableNonPrimitiveValue: {
|
|
@@ -4777,8 +4914,8 @@ declare interface components {
|
|
|
4777
4914
|
} | {
|
|
4778
4915
|
/** @constant */
|
|
4779
4916
|
type: "class";
|
|
4780
|
-
/** Format:
|
|
4781
|
-
data:
|
|
4917
|
+
/** Format: uuid */
|
|
4918
|
+
data: string;
|
|
4782
4919
|
} | {
|
|
4783
4920
|
/** @constant */
|
|
4784
4921
|
type: "closure";
|
|
@@ -4970,10 +5107,11 @@ declare interface components {
|
|
|
4970
5107
|
};
|
|
4971
5108
|
Step: {
|
|
4972
5109
|
/**
|
|
4973
|
-
* Format:
|
|
4974
|
-
* @description Whoever ran the operation, see [Origin::attributed]
|
|
5110
|
+
* Format: uuid
|
|
5111
|
+
* @description Whoever ran the operation, see [Origin::attributed]: the engine's `NodeInstanceHash`, a raw uuid because this
|
|
5112
|
+
* crate doesn't know engine types. None until it is attributed.
|
|
4975
5113
|
*/
|
|
4976
|
-
node?:
|
|
5114
|
+
node?: string | null;
|
|
4977
5115
|
op: components["schemas"]["StepOp"];
|
|
4978
5116
|
};
|
|
4979
5117
|
/** @description An operation that moved rows between or within tables. */
|
|
@@ -5009,19 +5147,8 @@ declare interface components {
|
|
|
5009
5147
|
/** @description The owner of the tables data (items, attributes and state) */
|
|
5010
5148
|
layerOneOwner: components["schemas"]["TableOwner"];
|
|
5011
5149
|
name: string;
|
|
5012
|
-
|
|
5013
|
-
|
|
5014
|
-
* @description The key provided by the creating node. None if not created by a node.
|
|
5015
|
-
*/
|
|
5016
|
-
nodeKey?: number | null;
|
|
5017
|
-
/** @description Set only if the table is owned by a node and is not part of a game. */
|
|
5018
|
-
owningNodeInstanceId?: components["schemas"]["FormatNodeInstanceId"] | null;
|
|
5019
|
-
/**
|
|
5020
|
-
* @description True if
|
|
5021
|
-
* - created by a node but the last execution of the node did not touch this table.
|
|
5022
|
-
* - Or the owning node was deleted.
|
|
5023
|
-
*/
|
|
5024
|
-
stale: boolean;
|
|
5150
|
+
owner: components["schemas"]["ContentOwner"];
|
|
5151
|
+
state: components["schemas"]["ContentState"];
|
|
5025
5152
|
/** @description Set by nodes. */
|
|
5026
5153
|
stateLayerOne: components["schemas"]["TableState"];
|
|
5027
5154
|
/** @description Overwrites layer one if Some */
|
|
@@ -5035,7 +5162,18 @@ declare interface components {
|
|
|
5035
5162
|
state?: components["schemas"]["TableState"] | null;
|
|
5036
5163
|
tableKind: components["schemas"]["TableKind"];
|
|
5037
5164
|
};
|
|
5038
|
-
/**
|
|
5165
|
+
/**
|
|
5166
|
+
* Format: uuid
|
|
5167
|
+
* @description Identifies a table, the primary key of `tables`. Comes from one of:
|
|
5168
|
+
* - [Self::new_random]: a table the user adds. The endpoint picks the id and the mutation carries it.
|
|
5169
|
+
* - [Self::of_user_game]: the entry and result table of a game of the user.
|
|
5170
|
+
* - [Self::of_game] and [Self::of_node]: a table of a node, see [TableDAO::derived_id]. Executing a graph creates the
|
|
5171
|
+
* same ids every time.
|
|
5172
|
+
* - [TableDAO::keep_as_user_copy]: a table of a node that the user kept when the node instance got deleted.
|
|
5173
|
+
*
|
|
5174
|
+
* Deserializing one only yields a reference to an existing table; it does not check that it exists or how it was
|
|
5175
|
+
* made. Changing a derivation changes what replaying a log produces and needs an `ENGINE_VERSION` increment.
|
|
5176
|
+
*/
|
|
5039
5177
|
TableId: TableId;
|
|
5040
5178
|
TableItemsMutationDTO: {
|
|
5041
5179
|
challenge: components["schemas"]["TableMutationChallenge"];
|
|
@@ -5046,8 +5184,12 @@ declare interface components {
|
|
|
5046
5184
|
* @enum {string}
|
|
5047
5185
|
*/
|
|
5048
5186
|
TableKind: "entry-list" | "result-list" | "other";
|
|
5049
|
-
/**
|
|
5050
|
-
TableLineageId:
|
|
5187
|
+
/** @description The way number `idx` into `table_id`. */
|
|
5188
|
+
TableLineageId: {
|
|
5189
|
+
/** Format: int64 */
|
|
5190
|
+
idx: number;
|
|
5191
|
+
tableId: components["schemas"]["TableId"];
|
|
5192
|
+
};
|
|
5051
5193
|
TableMutationChallenge: {
|
|
5052
5194
|
/** @constant */
|
|
5053
5195
|
type: "force-push";
|
|
@@ -5056,9 +5198,9 @@ declare interface components {
|
|
|
5056
5198
|
type: "controlled-push";
|
|
5057
5199
|
/**
|
|
5058
5200
|
* @description If None, expect this mutation to be the first one.
|
|
5059
|
-
* Otherwise expect `head` to be the id of the currently most recent mutation.
|
|
5201
|
+
* Otherwise expect `head` to be the id of the currently most recent mutation of the table.
|
|
5060
5202
|
*/
|
|
5061
|
-
head?: components["schemas"]["
|
|
5203
|
+
head?: components["schemas"]["RowMutationIdx"] | null;
|
|
5062
5204
|
};
|
|
5063
5205
|
/**
|
|
5064
5206
|
* @description Overwrites a table. See [`TableOverwrite::for_game_result`]/[`TableOverwrite::for_game_entry`]
|
|
@@ -5152,17 +5294,20 @@ declare interface components {
|
|
|
5152
5294
|
/** Format: uuid */
|
|
5153
5295
|
id: string;
|
|
5154
5296
|
remoteWorkspaceId: components["schemas"]["CommonWorkspaceId"];
|
|
5155
|
-
|
|
5156
|
-
|
|
5157
|
-
|
|
5297
|
+
status: components["schemas"]["TargetStatusDTO"];
|
|
5298
|
+
/** @description Base URL of the web app of the target server, as it last reported it. */
|
|
5299
|
+
uiUrl?: string | null;
|
|
5158
5300
|
};
|
|
5159
5301
|
TargetPath: {
|
|
5160
5302
|
/** Format: uuid */
|
|
5161
5303
|
targetId: string;
|
|
5162
5304
|
};
|
|
5163
|
-
|
|
5305
|
+
/** @description The status of a target as clients see it, so up-to-date can not have rows behind. */
|
|
5306
|
+
TargetStatusDTO: {
|
|
5164
5307
|
/** @constant */
|
|
5165
5308
|
type: "pushing";
|
|
5309
|
+
/** Format: int64 */
|
|
5310
|
+
rowsBehind?: number | null;
|
|
5166
5311
|
} | {
|
|
5167
5312
|
/** @constant */
|
|
5168
5313
|
type: "up-to-date";
|
|
@@ -5170,6 +5315,8 @@ declare interface components {
|
|
|
5170
5315
|
/** @constant */
|
|
5171
5316
|
type: "retrying";
|
|
5172
5317
|
lastError: components["schemas"]["SourceError"];
|
|
5318
|
+
/** Format: int64 */
|
|
5319
|
+
rowsBehind?: number | null;
|
|
5173
5320
|
} | {
|
|
5174
5321
|
/** @constant */
|
|
5175
5322
|
type: "conflicted";
|
|
@@ -5622,8 +5769,20 @@ declare interface components {
|
|
|
5622
5769
|
ValidationErrorKind_for_Type: ValidationErrorKind<Type>;
|
|
5623
5770
|
/** @description A validation error with its location and kind. */
|
|
5624
5771
|
ValidationError_for_Type: ValidationError<Type>;
|
|
5772
|
+
/**
|
|
5773
|
+
* Important
|
|
5774
|
+
* @description Changes in here are breaking changes for logs
|
|
5775
|
+
*/
|
|
5625
5776
|
Value_for_Primitive: Value<Primitive>;
|
|
5777
|
+
/**
|
|
5778
|
+
* Important
|
|
5779
|
+
* @description Changes in here are breaking changes for logs
|
|
5780
|
+
*/
|
|
5626
5781
|
Value_for_SerializableNonPrimitiveValue: Value<SerializableNonPrimitiveValue>;
|
|
5782
|
+
/**
|
|
5783
|
+
* @description The ids inside an archive (in its format DTO and here) are archive-local join keys, not ids of a workspace: each
|
|
5784
|
+
* maps to the [Archive::uuid] of the dependency it refers to. Importing gives the entities new ids.
|
|
5785
|
+
*/
|
|
5627
5786
|
Wiring: {
|
|
5628
5787
|
classes: {
|
|
5629
5788
|
[key: string]: string;
|
|
@@ -5655,6 +5814,16 @@ declare interface components {
|
|
|
5655
5814
|
WorkspacePathVariables_for_CommonWorkspaceId: {
|
|
5656
5815
|
workspaceId: components["schemas"]["CommonWorkspaceId"];
|
|
5657
5816
|
};
|
|
5817
|
+
/** @enum {string} */
|
|
5818
|
+
WorkspaceState: "normal" | "checked-out" | "replication-target";
|
|
5819
|
+
/** @description The state of a workspace that clients display live. More workspace state goes here. */
|
|
5820
|
+
WorkspaceStateDTO: {
|
|
5821
|
+
/** @description All errors that originated in a node, sorted by their location. */
|
|
5822
|
+
nodeErrors: components["schemas"]["LocatedNodeError"][];
|
|
5823
|
+
replicationTargets: components["schemas"]["TargetDTO"][];
|
|
5824
|
+
/** @description Anything but normal makes the workspace read-only. */
|
|
5825
|
+
state: components["schemas"]["WorkspaceState"];
|
|
5826
|
+
};
|
|
5658
5827
|
};
|
|
5659
5828
|
responses: never;
|
|
5660
5829
|
parameters: never;
|
|
@@ -5728,6 +5897,8 @@ export declare const DateTimeText: FC<DateTimeTextProps>;
|
|
|
5728
5897
|
export declare interface DateTimeTextProps {
|
|
5729
5898
|
value: Date | number | string;
|
|
5730
5899
|
className?: string;
|
|
5900
|
+
/** Shows the time passed since `value` ("5 minutes ago") instead of the timestamp. */
|
|
5901
|
+
relative?: boolean;
|
|
5731
5902
|
}
|
|
5732
5903
|
|
|
5733
5904
|
declare interface DetailedSupertypeDiagnostics<T> {
|
|
@@ -5736,7 +5907,7 @@ declare interface DetailedSupertypeDiagnostics<T> {
|
|
|
5736
5907
|
|
|
5737
5908
|
export declare interface DialogButton<T> {
|
|
5738
5909
|
value: T;
|
|
5739
|
-
label:
|
|
5910
|
+
label: ReactNode;
|
|
5740
5911
|
theme?: 'primary' | 'default' | 'danger';
|
|
5741
5912
|
}
|
|
5742
5913
|
|
|
@@ -5750,7 +5921,7 @@ export declare type EngineQueryOptions<T> = UnusedSkipTokenOptions<T, Error, T,
|
|
|
5750
5921
|
*/
|
|
5751
5922
|
declare type ErasedScopedTypeRef<T> = { type: "Param"; data: ParamRef } | { type: "ScopedExpr"; data: { expr: TypeExpr<T, ErasedScopedTypeRef<T>> } };
|
|
5752
5923
|
|
|
5753
|
-
export declare type EventId = Brand<
|
|
5924
|
+
export declare type EventId = Brand<string, 'eventId'>;
|
|
5754
5925
|
|
|
5755
5926
|
export declare interface EventPath {
|
|
5756
5927
|
workspaceId: CommonWorkspaceId;
|
|
@@ -5852,19 +6023,17 @@ declare interface FieldTypeWithDefault {
|
|
|
5852
6023
|
*/
|
|
5853
6024
|
export declare function formatCompetitorName(competitor: CompetitorDAO): string;
|
|
5854
6025
|
|
|
5855
|
-
declare type FormatGroupId = Brand<
|
|
6026
|
+
declare type FormatGroupId = Brand<string, 'formatGroupId'>;
|
|
5856
6027
|
|
|
5857
|
-
declare type FormatId = Brand<
|
|
6028
|
+
declare type FormatId = Brand<string, 'formatId'>;
|
|
5858
6029
|
|
|
5859
|
-
export declare type
|
|
6030
|
+
export declare type FormatInstanceHash = Brand<string, 'formatInstanceHash'>;
|
|
5860
6031
|
|
|
5861
6032
|
export declare type FormatNodeId = Brand<string, 'formatNodeId'>;
|
|
5862
6033
|
|
|
5863
|
-
declare type FormatNodeInstanceId = Brand<number, 'formatNodeInstanceId'>;
|
|
5864
|
-
|
|
5865
6034
|
declare type FormatNodeTestId = Brand<string, 'formatNodeTestId'>;
|
|
5866
6035
|
|
|
5867
|
-
declare type FormatTestId = Brand<
|
|
6036
|
+
declare type FormatTestId = Brand<string, 'formatTestId'>;
|
|
5868
6037
|
|
|
5869
6038
|
export declare type FormContribution<Props, DTO> = FC<Props & {
|
|
5870
6039
|
formFieldRegistry: FormFieldRegistry;
|
|
@@ -5942,7 +6111,7 @@ export declare type GameDTO = components['schemas']['GameDTO'];
|
|
|
5942
6111
|
|
|
5943
6112
|
export declare type GameFormatDTO = components['schemas']['GameFormatDTO'];
|
|
5944
6113
|
|
|
5945
|
-
export declare type GameFormatId = Brand<
|
|
6114
|
+
export declare type GameFormatId = Brand<string, 'gameFormatId'>;
|
|
5946
6115
|
|
|
5947
6116
|
export declare type GameFormatPageContribution = FormContribution<GameFormatPageProps & {
|
|
5948
6117
|
gameFormat: GameFormatDTO;
|
|
@@ -5952,7 +6121,7 @@ export declare type GameFormatPageProps = EventPath & {
|
|
|
5952
6121
|
gameFormatId: GameFormatId | null;
|
|
5953
6122
|
};
|
|
5954
6123
|
|
|
5955
|
-
export declare type GameId = Brand<
|
|
6124
|
+
export declare type GameId = Brand<string, 'gameId'>;
|
|
5956
6125
|
|
|
5957
6126
|
export declare type GamePageContribution = FormContribution<GamePageProps & {
|
|
5958
6127
|
game: WorkingGameDTO;
|
|
@@ -5975,7 +6144,7 @@ export declare const getCompetitorInTeamMappingAtQueryOptions: (workspaceId: Com
|
|
|
5975
6144
|
*/
|
|
5976
6145
|
export declare const getCompetitorsQO: (workspaceId: CommonWorkspaceId, eventId: EventId, competitorTypeFilter?: CompetitorType) => EngineQueryOptions<CompetitorDAO[]>;
|
|
5977
6146
|
|
|
5978
|
-
export declare const getGameTableResolvedByGameQO: (workspaceId: CommonWorkspaceId, eventId: EventId, gameID: GameId, tableKind: "EntryList" | "ResultList") => EngineQueryOptions<
|
|
6147
|
+
export declare const getGameTableResolvedByGameQO: (workspaceId: CommonWorkspaceId, eventId: EventId, gameID: GameId, tableKind: "EntryList" | "ResultList") => EngineQueryOptions<ResolvedTableDTO>;
|
|
5979
6148
|
|
|
5980
6149
|
/**
|
|
5981
6150
|
* Location of a validation error in the graph.
|
|
@@ -6015,6 +6184,12 @@ export declare enum InputLayout {
|
|
|
6015
6184
|
Fill = 2
|
|
6016
6185
|
}
|
|
6017
6186
|
|
|
6187
|
+
/** Loads graphite-script from the host's wasm on demand, a static import would make this entry an async module. */
|
|
6188
|
+
export declare const loadGraphiteScript: () => Promise<{
|
|
6189
|
+
primValueToTypeExpr: typeof primValueToTypeExpr;
|
|
6190
|
+
validateExpression: typeof validateExpression;
|
|
6191
|
+
}>;
|
|
6192
|
+
|
|
6018
6193
|
export declare const LoadingOverlay: FC<LoadingOverlayProps>;
|
|
6019
6194
|
|
|
6020
6195
|
export declare type LoadingOverlayProps = {
|
|
@@ -6082,6 +6257,8 @@ export declare interface ModalProps {
|
|
|
6082
6257
|
blockBackground?: boolean;
|
|
6083
6258
|
}
|
|
6084
6259
|
|
|
6260
|
+
declare type NodeInstanceHash = Brand<string, 'nodeInstanceHash'>;
|
|
6261
|
+
|
|
6085
6262
|
/**
|
|
6086
6263
|
* Function-like type for a node: generic parameters, inputs, outputs, and defaults.
|
|
6087
6264
|
* Written in notation as `<T>(T) -> (T)` for the identity node.
|
|
@@ -6201,7 +6378,7 @@ export declare interface ParsedQuery<Values> {
|
|
|
6201
6378
|
export declare type PathParams<Path extends string> = Path extends `${infer Base}/*` ? PathParams<Base> : Path extends `${infer _}/${infer Rest}` ? MergePathParams<PathSegmentParam<_>, PathParams<Rest>> : PathSegmentParam<Path>;
|
|
6202
6379
|
|
|
6203
6380
|
export declare type PathSegmentParam<S extends string> = S extends `:${infer P}` ? {
|
|
6204
|
-
[K in P]: number;
|
|
6381
|
+
[K in P]: K extends keyof UuidPathParams ? UuidPathParams[K] : number;
|
|
6205
6382
|
} : S extends `$${infer P}` ? {
|
|
6206
6383
|
[K in P]: string;
|
|
6207
6384
|
} : Record<never, never>;
|
|
@@ -6231,7 +6408,7 @@ export declare interface PortTypes<T, R = ParamRef> {
|
|
|
6231
6408
|
*/
|
|
6232
6409
|
export declare type Primitive = never;
|
|
6233
6410
|
|
|
6234
|
-
|
|
6411
|
+
declare function primValueToTypeExpr(value: Value<Primitive>): TypeExpr<Type, ParamRef>;
|
|
6235
6412
|
|
|
6236
6413
|
export declare interface QueryCodec<T> {
|
|
6237
6414
|
parse(value: string): T | null;
|
|
@@ -6307,6 +6484,14 @@ export declare interface ResizablePanelProps {
|
|
|
6307
6484
|
|
|
6308
6485
|
export declare type ResizeEdge = 'left' | 'right' | 'top' | 'bottom';
|
|
6309
6486
|
|
|
6487
|
+
export declare type ResolvedTableDTO = components['schemas']['ResolvedTable'];
|
|
6488
|
+
|
|
6489
|
+
/** A path on this origin, so navigating to it can never leave the app. */
|
|
6490
|
+
export declare type ReturnPath = Brand<string, 'returnPath'>;
|
|
6491
|
+
|
|
6492
|
+
/** The only way to get a {@link ReturnPath}. Rejects URLs leaving the origin like `//evil.com` or `/\evil.com`. */
|
|
6493
|
+
export declare const returnPath: QueryCodec<ReturnPath>;
|
|
6494
|
+
|
|
6310
6495
|
export declare interface RouterContextType {
|
|
6311
6496
|
/** The pathname used for route matching and persistence keys. */
|
|
6312
6497
|
path: string;
|
|
@@ -6355,7 +6540,7 @@ export declare interface RowAction<T> {
|
|
|
6355
6540
|
readOnlySafe?: boolean;
|
|
6356
6541
|
}
|
|
6357
6542
|
|
|
6358
|
-
declare type
|
|
6543
|
+
declare type RowMutationIdx = Brand<number, 'rowMutationIdx'>;
|
|
6359
6544
|
|
|
6360
6545
|
declare interface Rows<SortingState> {
|
|
6361
6546
|
/**
|
|
@@ -6385,7 +6570,7 @@ export declare type SearchInputProps = {
|
|
|
6385
6570
|
className?: string;
|
|
6386
6571
|
};
|
|
6387
6572
|
|
|
6388
|
-
declare type SerializableNonPrimitiveValue = { type: "game-table"; data: Table<Unsorted_2, StateMetadata> } | { type: "game-table-sorted"; data: Table<Sorted_2, StateMetadata> } | { type: "row"; data: Row } | { type: "class"; data:
|
|
6573
|
+
declare type SerializableNonPrimitiveValue = { type: "game-table"; data: Table<Unsorted_2, StateMetadata> } | { type: "game-table-sorted"; data: Table<Sorted_2, StateMetadata> } | { type: "row"; data: Row } | { type: "class"; data: string } | { type: "closure" };
|
|
6389
6574
|
|
|
6390
6575
|
/**
|
|
6391
6576
|
* A keyboard shortcut as the keys to press together, e.g. `['Mod', 'Shift', 'Z']`. `Mod` is Ctrl, or
|
|
@@ -6428,9 +6613,7 @@ export declare enum StorageType {
|
|
|
6428
6613
|
*/
|
|
6429
6614
|
declare type Table<SortingState, M = NoMetadata> = { rows: Rows<SortingState> } & M;
|
|
6430
6615
|
|
|
6431
|
-
export declare type TableId = Brand<
|
|
6432
|
-
|
|
6433
|
-
declare type TableLineageId = Brand<number, 'tableLineageId'>;
|
|
6616
|
+
export declare type TableId = Brand<string, 'tableId'>;
|
|
6434
6617
|
|
|
6435
6618
|
export declare interface TableProps<TData extends RowData> {
|
|
6436
6619
|
data: TData[];
|
|
@@ -6462,10 +6645,10 @@ export declare interface TableProps<TData extends RowData> {
|
|
|
6462
6645
|
/** Text to be displayed when there is no data */
|
|
6463
6646
|
emptyTableText?: ReactNode;
|
|
6464
6647
|
/**
|
|
6465
|
-
* When provided, shows a "Columns" toggle button above the table
|
|
6466
|
-
*
|
|
6648
|
+
* When provided, shows a "Columns" toggle button above the table, e.g. with the state of `usePersistedState`.
|
|
6649
|
+
* Columns with `enableHiding: false` are excluded.
|
|
6467
6650
|
*/
|
|
6468
|
-
|
|
6651
|
+
columnVisibility?: [ColumnVisibilityState, OnChangeFn<ColumnVisibilityState>];
|
|
6469
6652
|
}
|
|
6470
6653
|
|
|
6471
6654
|
export declare type TableSortedDTO = components['schemas']['Table_for_Sorted_and_StateMetadata'];
|
|
@@ -6578,11 +6761,22 @@ export declare function usePersistedState<S>(storageKey: string, initialState: S
|
|
|
6578
6761
|
/** Hook to use the router context. Must be called within a <Router> provider. */
|
|
6579
6762
|
export declare function useRouter(): RouterContextType;
|
|
6580
6763
|
|
|
6764
|
+
/** The `:` params that are uuids, by name. All other `:` params are numbers. */
|
|
6765
|
+
declare type UuidPathParams = {
|
|
6766
|
+
classId: ClassId;
|
|
6767
|
+
eventId: EventId;
|
|
6768
|
+
formatId: FormatId;
|
|
6769
|
+
formatTestId: FormatTestId;
|
|
6770
|
+
gameFormatId: GameFormatId;
|
|
6771
|
+
gameId: GameId;
|
|
6772
|
+
tableId: TableId;
|
|
6773
|
+
};
|
|
6774
|
+
|
|
6581
6775
|
/**
|
|
6582
6776
|
* Validates the expression and returns a `ExpressionInContextWasm` if the expression is valid.
|
|
6583
6777
|
* @throws {ValidateExpressionError} if the expression is not valid.
|
|
6584
6778
|
*/
|
|
6585
|
-
|
|
6779
|
+
declare function validateExpression(expression: string, context: TypeContext): ExpressionInContextWasm;
|
|
6586
6780
|
|
|
6587
6781
|
/**
|
|
6588
6782
|
* A validation error with its location and kind.
|