@toolproof-npm/schema 0.1.44 → 0.1.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/dist/_lib/test.js +38 -31
  2. package/dist/genesis/generated/resources/Genesis.json +742 -452
  3. package/dist/genesis/generated/schemas/Genesis.json +441 -166
  4. package/dist/genesis/generated/schemas/Job.json +26 -26
  5. package/dist/genesis/generated/schemas/ResourceFormat.json +9 -9
  6. package/dist/genesis/generated/schemas/ResourceType.json +317 -42
  7. package/dist/genesis/generated/schemas/StatefulStrategy.json +76 -76
  8. package/dist/genesis/generated/schemas/StatelessStrategy.json +40 -40
  9. package/dist/{_lib → genesis/generated}/types/Resource_Job.d.ts +16 -16
  10. package/dist/{_lib → genesis/generated}/types/Resource_ResourceFormat.d.ts +10 -10
  11. package/dist/{_lib → genesis/generated}/types/Resource_ResourceType.d.ts +15 -15
  12. package/dist/{_lib → genesis/generated}/types/Resource_StatelessStrategy.d.ts +16 -16
  13. package/dist/{_lib → genesis/generated}/types/types.d.ts +289 -261
  14. package/dist/genesis/resourceTypes/Genesis.json +530 -250
  15. package/dist/index.d.ts +6 -6
  16. package/dist/index.js +2 -2
  17. package/dist/scripts/_lib/config.js +2 -2
  18. package/dist/scripts/brandFactories.d.ts +37 -23
  19. package/dist/scripts/brandFactories.js +26 -29
  20. package/dist/scripts/extractSchemas.js +1 -1
  21. package/dist/scripts/generateResourceEnvelopes.js +6 -6
  22. package/dist/scripts/generateTypes.js +38 -26
  23. package/package.json +1 -1
  24. /package/dist/{_lib → genesis/generated}/types/Resource_Job.js +0 -0
  25. /package/dist/{_lib → genesis/generated}/types/Resource_ResourceFormat.js +0 -0
  26. /package/dist/{_lib → genesis/generated}/types/Resource_ResourceType.js +0 -0
  27. /package/dist/{_lib → genesis/generated}/types/Resource_StatelessStrategy.js +0 -0
  28. /package/dist/{_lib → genesis/generated}/types/types.js +0 -0
@@ -9,8 +9,8 @@ export type BranchStep =
9
9
  /**
10
10
  * @minItems 1
11
11
  */
12
- cases: [ConditionalWrapper, ...ConditionalWrapper[]];
13
- identity: BranchStepId;
12
+ cases: [Conditional, ...Conditional[]];
13
+ identity: BranchStepIdentity;
14
14
  kind: "branch";
15
15
  };
16
16
  /**
@@ -20,7 +20,7 @@ export type BranchStep =
20
20
  export type WorkStep =
21
21
  StepKind & {
22
22
  execution: Execution;
23
- identity: WorkStepId;
23
+ identity: WorkStepIdentity;
24
24
  kind: "work";
25
25
  };
26
26
  /**
@@ -29,66 +29,66 @@ export type WorkStep =
29
29
  */
30
30
  export type Execution =
31
31
  {
32
- identity: ExecutionId;
33
- jobId: JobId;
34
- } & RoleBindingsOuter;
32
+ identity: ExecutionIdentity;
33
+ jobRef: JobIdentity;
34
+ } & RoleBindingsWrapper;
35
35
  /**
36
36
  * This interface was referenced by `GenesisJson`'s JSON-Schema
37
- * via the `definition` "ExecutionId".
37
+ * via the `definition` "ExecutionIdentity".
38
38
  */
39
- export type ExecutionId =
40
- string;
39
+ export type ExecutionIdentity =
40
+ `EXECUTION-${string}`;
41
41
  /**
42
42
  * This interface was referenced by `GenesisJson`'s JSON-Schema
43
- * via the `definition` "JobId".
43
+ * via the `definition` "JobIdentity".
44
44
  */
45
- export type JobId =
46
- string;
45
+ export type JobIdentity =
46
+ `JOB-${string}`;
47
47
  /**
48
48
  * This interface was referenced by `GenesisJson`'s JSON-Schema
49
- * via the `definition` "ResourceId".
49
+ * via the `definition` "ResourceIdentity".
50
50
  */
51
- export type ResourceId =
52
- string;
51
+ export type ResourceIdentity =
52
+ `RESOURCE-${string}`;
53
53
  /**
54
54
  * This interface was referenced by `GenesisJson`'s JSON-Schema
55
- * via the `definition` "WorkStepId".
55
+ * via the `definition` "WorkStepIdentity".
56
56
  */
57
- export type WorkStepId =
58
- string;
57
+ export type WorkStepIdentity =
58
+ `WORKSTEP-${string}`;
59
59
  /**
60
60
  * This interface was referenced by `GenesisJson`'s JSON-Schema
61
- * via the `definition` "BranchStepId".
61
+ * via the `definition` "BranchStepIdentity".
62
62
  */
63
- export type BranchStepId =
64
- string;
63
+ export type BranchStepIdentity =
64
+ `BRANCHSTEP-${string}`;
65
65
  /**
66
66
  * This interface was referenced by `GenesisJson`'s JSON-Schema
67
- * via the `definition` "ResourceRoleId".
67
+ * via the `definition` "ResourceRoleIdentity".
68
68
  */
69
- export type ResourceRoleId =
70
- string;
69
+ export type ResourceRoleIdentity =
70
+ `ROLE-${string}`;
71
71
  /**
72
72
  * This interface was referenced by `GenesisJson`'s JSON-Schema
73
73
  * via the `definition` "Documented".
74
74
  */
75
75
  export type Documented =
76
- Name & Description;
76
+ Named & Described;
77
77
  /**
78
78
  * This interface was referenced by `GenesisJson`'s JSON-Schema
79
- * via the `definition` "ExtractionSchemaValue".
79
+ * via the `definition` "ExtractionSchema".
80
80
  */
81
- export type ExtractionSchemaValue =
81
+ export type ExtractionSchema =
82
82
  {
83
83
  } & {
84
84
  $schema: "https://json-schema.org/draft/2020-12/schema";
85
85
  $defs?: {
86
- };
86
+ };
87
87
  type: "object";
88
- allOf?: Array<{[k: string]: unknown}>;
88
+ allOf?: [{type: "array"; items: {type: "object"}}];
89
89
  properties?: {
90
- };
91
- required?: string[];
90
+ };
91
+ required?: [{type: "array"; items: {type: "string"}; uniqueItems: true}];
92
92
  additionalProperties?: false;
93
93
  unevaluatedProperties?: false;
94
94
  $anchor: string;
@@ -99,58 +99,95 @@ export type ExtractionSchemaValue =
99
99
  */
100
100
  export type ForStep =
101
101
  StepKind & {
102
- case: ConditionalWrapper;
103
- identity: ForStepId;
102
+ case: Conditional;
103
+ identity: ForStepIdentity;
104
104
  kind: "for";
105
105
  };
106
106
  /**
107
107
  * This interface was referenced by `GenesisJson`'s JSON-Schema
108
- * via the `definition` "ForStepId".
108
+ * via the `definition` "ForStepIdentity".
109
109
  */
110
- export type ForStepId =
111
- string;
110
+ export type ForStepIdentity =
111
+ `FORSTEP-${string}`;
112
+ /**
113
+ * This interface was referenced by `undefined`'s JSON-Schema definition
114
+ * via the `patternProperty` "^[A-Za-z][A-Za-z0-9._-]*Identity$".
115
+ *
116
+ * This interface was referenced by `GenesisJson`'s JSON-Schema
117
+ * via the `definition` "IdentitySchema".
118
+ */
119
+ export type IdentitySchema =
120
+ {
121
+ } & {
122
+ $schema?: "https://json-schema.org/draft/2020-12/schema";
123
+ type: "string" | "number" | "integer" | "boolean";
124
+ $anchor?: string;
125
+ $comment?: string;
126
+ enum?: [{type: "array"; minItems: 1; uniqueItems: true}];
127
+ format?: string;
128
+ maxLength?: number;
129
+ minLength?: number;
130
+ pattern?: string;
131
+ };
112
132
  /**
113
133
  * This interface was referenced by `GenesisJson`'s JSON-Schema
114
134
  * via the `definition` "Job".
115
135
  */
116
136
  export type Job =
117
137
  {
118
- identity: JobId;
119
- implementation: string;
138
+ identity: JobIdentity;
139
+ implementationUri: string;
120
140
  } & Documented &
121
- RolesOuter;
141
+ RolesWrapper;
122
142
  /**
123
143
  * This interface was referenced by `GenesisJson`'s JSON-Schema
124
144
  * via the `definition` "ResourceRoleValue".
125
145
  */
126
146
  export type ResourceRoleValue =
127
147
  {
128
- resourceTypeId: ResourceTypeId;
148
+ resourceTypeRef: ResourceTypeIdentity;
129
149
  } & Documented;
130
150
  /**
131
151
  * This interface was referenced by `GenesisJson`'s JSON-Schema
132
- * via the `definition` "ResourceTypeId".
152
+ * via the `definition` "ResourceTypeIdentity".
133
153
  */
134
- export type ResourceTypeId =
135
- string;
154
+ export type ResourceTypeIdentity =
155
+ `TYPE-${string}`;
136
156
  /**
137
157
  * This interface was referenced by `GenesisJson`'s JSON-Schema
138
- * via the `definition` "JsonValue".
158
+ * via the `definition` "JsonData".
139
159
  */
140
- export type JsonValue =
160
+ export type JsonData =
141
161
  | null
142
162
  | boolean
143
163
  | number
144
164
  | string
145
- | JsonValue
165
+ | JsonData
146
166
  | {
147
- [k: string]: JsonValue;
167
+ [k: string]: JsonData;
148
168
  };
149
169
  /**
170
+ * This interface was referenced by `undefined`'s JSON-Schema definition
171
+ * via the `patternProperty` "^[A-Za-z][A-Za-z0-9._-]*Merit$".
172
+ *
150
173
  * This interface was referenced by `GenesisJson`'s JSON-Schema
151
- * via the `definition` "MeritValue".
174
+ * via the `definition` "MeritSchema".
152
175
  */
153
- export type MeritValue =
176
+ export type MeritSchema =
177
+ {
178
+ } & {
179
+ $schema?: "https://json-schema.org/draft/2020-12/schema";
180
+ type?: "number" | "integer";
181
+ $anchor?: string;
182
+ $comment?: string;
183
+ enum?: [{type: "array"; items: {type: "number"}; minItems: 1; uniqueItems: true}];
184
+ exclusiveMaximum?: number;
185
+ exclusiveMinimum?: number;
186
+ maximum?: number;
187
+ minimum?: number;
188
+ multipleOf?: number;
189
+ } & MeritSchema1;
190
+ export type MeritSchema1 =
154
191
  | {
155
192
  type: "number" | "integer";
156
193
  }
@@ -164,7 +201,7 @@ export type MeritValue =
164
201
  export type Resource =
165
202
  ResourceMetaBase & {
166
203
  extractedData: {
167
- [k: string]: JsonValue;
204
+ [k: string]: JsonData;
168
205
  };
169
206
  };
170
207
  /**
@@ -173,7 +210,7 @@ export type Resource =
173
210
  */
174
211
  export type ResourceMetaBase =
175
212
  ResourceBase &
176
- CreationContext &
213
+ CreationContextWrapper &
177
214
  ResourceKind & {
178
215
  kind: "materialized";
179
216
  } & Timestamp &
@@ -184,8 +221,8 @@ export type ResourceMetaBase =
184
221
  */
185
222
  export type ResourceBase =
186
223
  {
187
- identity: ResourceId;
188
- resourceTypeId: ResourceTypeId;
224
+ identity: ResourceIdentity;
225
+ resourceTypeRef: ResourceTypeIdentity;
189
226
  };
190
227
  /**
191
228
  * This interface was referenced by `GenesisJson`'s JSON-Schema
@@ -193,21 +230,21 @@ export type ResourceBase =
193
230
  */
194
231
  export type ResourceFormat =
195
232
  {
196
- identity: ResourceFormatId;
233
+ identity: ResourceFormatIdentity;
197
234
  } & Documented;
198
235
  /**
199
236
  * This interface was referenced by `GenesisJson`'s JSON-Schema
200
- * via the `definition` "ResourceFormatId".
237
+ * via the `definition` "ResourceFormatIdentity".
201
238
  */
202
- export type ResourceFormatId =
203
- string;
239
+ export type ResourceFormatIdentity =
240
+ `FORMAT-${string}`;
204
241
  /**
205
242
  * This interface was referenced by `GenesisJson`'s JSON-Schema
206
243
  * via the `definition` "ResourceMeta".
207
244
  */
208
245
  export type ResourceMetaBase1 =
209
246
  ResourceBase &
210
- CreationContext &
247
+ CreationContextWrapper &
211
248
  ResourceKind & {
212
249
  kind: "materialized";
213
250
  } & Timestamp &
@@ -227,7 +264,7 @@ export type ResourceMissing =
227
264
  */
228
265
  export type ResourcePotentialInput =
229
266
  ResourceBase &
230
- CreationContext &
267
+ CreationContextWrapper &
231
268
  ResourceKind & {
232
269
  kind: "potential-input";
233
270
  };
@@ -237,7 +274,7 @@ export type ResourcePotentialInput =
237
274
  */
238
275
  export type ResourcePotentialOutput =
239
276
  ResourceBase &
240
- CreationContext &
277
+ CreationContextWrapper &
241
278
  ResourceKind & {
242
279
  kind: "potential-output";
243
280
  };
@@ -247,10 +284,10 @@ export type ResourcePotentialOutput =
247
284
  */
248
285
  export type ResourceType =
249
286
  {
250
- identity: ResourceTypeId;
251
- resourceFormatId: ResourceFormatId;
287
+ identity: ResourceTypeIdentity;
288
+ resourceFormatRef: ResourceFormatIdentity;
252
289
  } & Documented &
253
- ExtractionSchema & {
290
+ ExtractionSchemaWrapper & {
254
291
  };
255
292
  /**
256
293
  * This interface was referenced by `GenesisJson`'s JSON-Schema
@@ -258,30 +295,30 @@ export type ResourceType =
258
295
  */
259
296
  export type StatefulStrategy =
260
297
  {
261
- identity: StatefulStrategyId;
298
+ identity: StatefulStrategyIdentity;
262
299
  statelessStrategy: StatelessStrategy;
263
- } & StrategyState;
300
+ } & StrategyStateWrapper;
264
301
  /**
265
302
  * This interface was referenced by `GenesisJson`'s JSON-Schema
266
- * via the `definition` "StatefulStrategyId".
303
+ * via the `definition` "StatefulStrategyIdentity".
267
304
  */
268
- export type StatefulStrategyId =
269
- string;
305
+ export type StatefulStrategyIdentity =
306
+ `STATEFUL_STRATEGY-${string}`;
270
307
  /**
271
308
  * This interface was referenced by `GenesisJson`'s JSON-Schema
272
309
  * via the `definition` "StatelessStrategy".
273
310
  */
274
311
  export type StatelessStrategy =
275
312
  {
276
- identity: StatelessStrategyId;
313
+ identity: StatelessStrategyIdentity;
277
314
  steps: Step[];
278
315
  };
279
316
  /**
280
317
  * This interface was referenced by `GenesisJson`'s JSON-Schema
281
- * via the `definition` "StatelessStrategyId".
318
+ * via the `definition` "StatelessStrategyIdentity".
282
319
  */
283
- export type StatelessStrategyId =
284
- string;
320
+ export type StatelessStrategyIdentity =
321
+ `STATELESS_STRATEGY-${string}`;
285
322
  /**
286
323
  * This interface was referenced by `GenesisJson`'s JSON-Schema
287
324
  * via the `definition` "Step".
@@ -294,16 +331,16 @@ export type Step =
294
331
  */
295
332
  export type WhileStep =
296
333
  StepKind & {
297
- case: ConditionalWrapper;
298
- identity: WhileStepId;
334
+ case: Conditional;
335
+ identity: WhileStepIdentity;
299
336
  kind: "while";
300
337
  };
301
338
  /**
302
339
  * This interface was referenced by `GenesisJson`'s JSON-Schema
303
- * via the `definition` "WhileStepId".
340
+ * via the `definition` "WhileStepIdentity".
304
341
  */
305
- export type WhileStepId =
306
- string;
342
+ export type WhileStepIdentity =
343
+ `WHILESTEP-${string}`;
307
344
 
308
345
  export interface GenesisJson {
309
346
  }
@@ -316,20 +353,20 @@ export interface StepKind {
316
353
  }
317
354
  /**
318
355
  * This interface was referenced by `GenesisJson`'s JSON-Schema
319
- * via the `definition` "ConditionalWrapper".
356
+ * via the `definition` "Conditional".
320
357
  */
321
- export interface ConditionalWrapper {
358
+ export interface Conditional {
322
359
  what: WorkStep;
323
360
  when: WorkStep;
324
361
  }
325
- export interface RoleBindingsOuter {
326
- roleBindings: RoleBindingsInner;
362
+ export interface RoleBindingsWrapper {
363
+ roleBindings: RoleBindings;
327
364
  }
328
365
  /**
329
366
  * This interface was referenced by `GenesisJson`'s JSON-Schema
330
- * via the `definition` "RoleBindingsInner".
367
+ * via the `definition` "RoleBindings".
331
368
  */
332
- export interface RoleBindingsInner {
369
+ export interface RoleBindings {
333
370
  inputBindingMap: RoleBindingMap;
334
371
  outputBindingMap: RoleBindingMap;
335
372
  }
@@ -337,52 +374,42 @@ export interface RoleBindingsInner {
337
374
  * This interface was referenced by `GenesisJson`'s JSON-Schema
338
375
  * via the `definition` "RoleBindingMap".
339
376
  */
340
- export type RoleBindingMap = Record<ResourceRoleId, ResourceId>;
377
+ export type RoleBindingMap = Record<ResourceRoleIdentity, ResourceIdentity>;
341
378
  /**
342
379
  * This interface was referenced by `GenesisJson`'s JSON-Schema
343
380
  * via the `definition` "CreationContext".
344
381
  */
345
382
  export interface CreationContext {
346
- creationContext: CreationContextValue;
383
+ executionRef: ExecutionIdentity;
384
+ resourceRoleRef: ResourceRoleIdentity;
347
385
  }
348
386
  /**
349
387
  * This interface was referenced by `GenesisJson`'s JSON-Schema
350
- * via the `definition` "CreationContextValue".
388
+ * via the `definition` "CreationContextWrapper".
351
389
  */
352
- export interface CreationContextValue {
353
- executionId: ExecutionId;
354
- resourceRoleId: ResourceRoleId;
390
+ export interface CreationContextWrapper {
391
+ creationContext: CreationContext;
355
392
  }
356
393
  /**
357
394
  * This interface was referenced by `GenesisJson`'s JSON-Schema
358
- * via the `definition` "Description".
395
+ * via the `definition` "Described".
359
396
  */
360
- export interface Description {
397
+ export interface Described {
361
398
  description: string;
362
399
  }
363
400
  /**
364
401
  * This interface was referenced by `GenesisJson`'s JSON-Schema
365
- * via the `definition` "Name".
402
+ * via the `definition` "Named".
366
403
  */
367
- export interface Name {
404
+ export interface Named {
368
405
  name: string;
369
406
  }
370
407
  /**
371
408
  * This interface was referenced by `GenesisJson`'s JSON-Schema
372
- * via the `definition` "ExtractionSchema".
409
+ * via the `definition` "ExtractionSchemaWrapper".
373
410
  */
374
- export interface ExtractionSchema {
375
- extractionSchema: ExtractionSchemaValue;
376
- }
377
- /**
378
- * This interface was referenced by `GenesisJson`'s JSON-Schema
379
- * via the `definition` "IdSchemaValue".
380
- *
381
- * This interface was referenced by `undefined`'s JSON-Schema definition
382
- * via the `patternProperty` "^[A-Za-z][A-Za-z0-9._-]*Id$".
383
- */
384
- export interface IdSchemaValue {
385
- type: "string" | "number" | "integer" | "boolean";
411
+ export interface ExtractionSchemaWrapper {
412
+ extractionSchema: ExtractionSchema;
386
413
  }
387
414
  /**
388
415
  * This interface was referenced by `GenesisJson`'s JSON-Schema
@@ -392,30 +419,30 @@ export interface IdentityProp {
392
419
  $defs: {
393
420
  };
394
421
  properties: {
395
- identity: IdentityValue;
422
+ identity: IdentitySchemaRef;
396
423
  };
397
424
  required?: string[];
398
425
  additionalProperties?: unknown;
399
426
  }
400
427
  /**
401
428
  * This interface was referenced by `GenesisJson`'s JSON-Schema
402
- * via the `definition` "IdentityValue".
429
+ * via the `definition` "IdentitySchemaRef".
403
430
  */
404
- export interface IdentityValue {
431
+ export interface IdentitySchemaRef {
405
432
  $ref: string;
406
433
  }
407
434
  /**
408
435
  * This interface was referenced by `GenesisJson`'s JSON-Schema
409
- * via the `definition` "RolesOuter".
436
+ * via the `definition` "RolesWrapper".
410
437
  */
411
- export interface RolesOuter {
412
- roles: RolesInner;
438
+ export interface RolesWrapper {
439
+ roles: Roles;
413
440
  }
414
441
  /**
415
442
  * This interface was referenced by `GenesisJson`'s JSON-Schema
416
- * via the `definition` "RolesInner".
443
+ * via the `definition` "Roles".
417
444
  */
418
- export interface RolesInner {
445
+ export interface Roles {
419
446
  inputMap: RoleMap;
420
447
  outputMap: RoleMap;
421
448
  }
@@ -423,18 +450,27 @@ export interface RolesInner {
423
450
  * This interface was referenced by `GenesisJson`'s JSON-Schema
424
451
  * via the `definition` "RoleMap".
425
452
  */
426
- export type RoleMap = Record<ResourceRoleId, ResourceRoleValue>;
453
+ export type RoleMap = Record<ResourceRoleIdentity, ResourceRoleValue>;
427
454
  /**
428
455
  * This interface was referenced by `GenesisJson`'s JSON-Schema
429
456
  * via the `definition` "MeritProp".
430
457
  */
431
458
  export interface MeritProp {
432
- properties?: {
433
- merit?: MeritValue;
459
+ $defs: {
460
+ };
461
+ properties: {
462
+ merit: MeritSchemaRef;
434
463
  };
435
- required?: [];
464
+ required: [{type: "array"; items: {type: "string"}; uniqueItems: true}];
436
465
  additionalProperties?: unknown;
437
466
  }
467
+ /**
468
+ * This interface was referenced by `GenesisJson`'s JSON-Schema
469
+ * via the `definition` "MeritSchemaRef".
470
+ */
471
+ export interface MeritSchemaRef {
472
+ $ref: string;
473
+ }
438
474
  /**
439
475
  * This interface was referenced by `GenesisJson`'s JSON-Schema
440
476
  * via the `definition` "Path".
@@ -458,177 +494,173 @@ export interface Timestamp {
458
494
  }
459
495
  /**
460
496
  * This interface was referenced by `GenesisJson`'s JSON-Schema
461
- * via the `definition` "RoleBindingsOuter".
497
+ * via the `definition` "RoleBindingsWrapper".
462
498
  */
463
- export interface RoleBindingsOuter1 {
464
- roleBindings: RoleBindingsInner;
499
+ export interface RoleBindingsWrapper1 {
500
+ roleBindings: RoleBindings;
465
501
  }
466
502
  /**
467
503
  * This interface was referenced by `GenesisJson`'s JSON-Schema
468
- * via the `definition` "StrategyState".
504
+ * via the `definition` "StrategyStateWrapper".
469
505
  */
470
- export interface StrategyState {
471
- strategyState: StrategyStateValue;
506
+ export interface StrategyStateWrapper {
507
+ strategyState: StrategyState;
472
508
  }
473
509
  /**
474
510
  * This interface was referenced by `GenesisJson`'s JSON-Schema
475
- * via the `definition` "StrategyStateValue".
511
+ * via the `definition` "StrategyState".
476
512
  */
477
- export interface StrategyStateValue {
478
- [k: string]: {
479
- [k: string]: ResourceMissing | ResourcePotentialInput | ResourcePotentialOutput | Resource;
480
- };
481
- }
513
+ export type StrategyState = Record<ExecutionIdentity, Record<ResourceRoleIdentity, ResourcePotentialInput | ResourcePotentialOutput | Resource>>;
482
514
 
483
515
  export type Normalized =
484
516
  {
485
- identity: JobId;
486
- implementation: string;
517
+ identity: JobIdentity;
518
+ implementationUri: string;
487
519
  } & Documented &
488
- RolesOuter;
489
- export type JobId =
490
- string;
520
+ RolesWrapper;
521
+ export type JobIdentity =
522
+ `JOB-${string}`;
491
523
  export type Documented =
492
- Name & Description;
524
+ Named & Described;
493
525
  export type ResourceRoleValue =
494
526
  {
495
- resourceTypeId: ResourceTypeId;
527
+ resourceTypeRef: ResourceTypeIdentity;
496
528
  } & Documented;
497
- export type ResourceTypeId =
498
- string;
529
+ export type ResourceTypeIdentity =
530
+ `TYPE-${string}`;
499
531
 
500
- export interface Name {
532
+ export interface Named {
501
533
  name: string;
502
534
  }
503
- export interface Description {
535
+ export interface Described {
504
536
  description: string;
505
537
  }
506
- export interface RolesOuter {
507
- roles: RolesInner;
538
+ export interface RolesWrapper {
539
+ roles: Roles;
508
540
  }
509
- export interface RolesInner {
541
+ export interface Roles {
510
542
  inputMap: RoleMap;
511
543
  outputMap: RoleMap;
512
544
  }
513
- export type RoleMap = Record<ResourceRoleId, ResourceRoleValue>;
545
+ export type RoleMap = Record<ResourceRoleIdentity, ResourceRoleValue>;
514
546
 
515
547
  export type Normalized =
516
548
  {
517
- identity: ResourceFormatId;
549
+ identity: ResourceFormatIdentity;
518
550
  } & Documented;
519
- export type ResourceFormatId =
520
- string;
551
+ export type ResourceFormatIdentity =
552
+ `FORMAT-${string}`;
521
553
  export type Documented =
522
- Name & Description;
554
+ Named & Described;
523
555
 
524
- export interface Name {
556
+ export interface Named {
525
557
  name: string;
526
558
  }
527
- export interface Description {
559
+ export interface Described {
528
560
  description: string;
529
561
  }
530
562
 
531
563
  export type Normalized =
532
564
  {
533
- identity: ResourceTypeId;
534
- resourceFormatId: ResourceFormatId;
565
+ identity: ResourceTypeIdentity;
566
+ resourceFormatRef: ResourceFormatIdentity;
535
567
  } & Documented &
536
- ExtractionSchema & {
568
+ ExtractionSchemaWrapper & {
537
569
  };
538
- export type ResourceTypeId =
539
- string;
540
- export type ResourceFormatId =
541
- string;
570
+ export type ResourceTypeIdentity =
571
+ `TYPE-${string}`;
572
+ export type ResourceFormatIdentity =
573
+ `FORMAT-${string}`;
542
574
  export type Documented =
543
- Name & Description;
544
- export type ExtractionSchemaValue =
575
+ Named & Described;
576
+ export type ExtractionSchema =
545
577
  {
546
578
  } & {
547
579
  $schema: "https://json-schema.org/draft/2020-12/schema";
548
580
  $defs?: {
549
- };
581
+ };
550
582
  type: "object";
551
- allOf?: Array<{[k: string]: unknown}>;
583
+ allOf?: [{type: "array"; items: {type: "object"}}];
552
584
  properties?: {
553
- };
554
- required?: string[];
585
+ };
586
+ required?: [{type: "array"; items: {type: "string"}; uniqueItems: true}];
555
587
  additionalProperties?: false;
556
588
  unevaluatedProperties?: false;
557
589
  $anchor: string;
558
590
  };
559
591
 
560
- export interface Name {
592
+ export interface Named {
561
593
  name: string;
562
594
  }
563
- export interface Description {
595
+ export interface Described {
564
596
  description: string;
565
597
  }
566
- export interface ExtractionSchema {
567
- extractionSchema: ExtractionSchemaValue;
598
+ export interface ExtractionSchemaWrapper {
599
+ extractionSchema: ExtractionSchema;
568
600
  }
569
601
 
570
602
  export type Normalized =
571
603
  {
572
- identity: StatefulStrategyId;
604
+ identity: StatefulStrategyIdentity;
573
605
  statelessStrategy: StatelessStrategy;
574
- } & StrategyState;
575
- export type StatefulStrategyId =
576
- string;
606
+ } & StrategyStateWrapper;
607
+ export type StatefulStrategyIdentity =
608
+ `STATEFUL_STRATEGY-${string}`;
577
609
  export type StatelessStrategy =
578
610
  {
579
- identity: StatelessStrategyId;
611
+ identity: StatelessStrategyIdentity;
580
612
  steps: Step[];
581
613
  };
582
- export type StatelessStrategyId =
583
- string;
614
+ export type StatelessStrategyIdentity =
615
+ `STATELESS_STRATEGY-${string}`;
584
616
  export type Step =
585
617
  WorkStep | BranchStep | WhileStep | ForStep;
586
618
  export type WorkStep =
587
619
  StepKind & {
588
620
  execution: Execution;
589
- identity: WorkStepId;
621
+ identity: WorkStepIdentity;
590
622
  kind: "work";
591
623
  };
592
624
  export type Execution =
593
625
  {
594
- identity: ExecutionId;
595
- jobId: JobId;
596
- } & RoleBindingsOuter;
597
- export type ExecutionId =
598
- string;
599
- export type JobId =
600
- string;
601
- export type ResourceId =
602
- string;
603
- export type WorkStepId =
604
- string;
626
+ identity: ExecutionIdentity;
627
+ jobRef: JobIdentity;
628
+ } & RoleBindingsWrapper;
629
+ export type ExecutionIdentity =
630
+ `EXECUTION-${string}`;
631
+ export type JobIdentity =
632
+ `JOB-${string}`;
633
+ export type ResourceIdentity =
634
+ `RESOURCE-${string}`;
635
+ export type WorkStepIdentity =
636
+ `WORKSTEP-${string}`;
605
637
  export type BranchStep =
606
638
  StepKind & {
607
639
  /**
608
640
  * @minItems 1
609
641
  */
610
- cases: [ConditionalWrapper, ...ConditionalWrapper[]];
611
- identity: BranchStepId;
642
+ cases: [Conditional, ...Conditional[]];
643
+ identity: BranchStepIdentity;
612
644
  kind: "branch";
613
645
  };
614
- export type BranchStepId =
615
- string;
646
+ export type BranchStepIdentity =
647
+ `BRANCHSTEP-${string}`;
616
648
  export type WhileStep =
617
649
  StepKind & {
618
- case: ConditionalWrapper;
619
- identity: WhileStepId;
650
+ case: Conditional;
651
+ identity: WhileStepIdentity;
620
652
  kind: "while";
621
653
  };
622
- export type WhileStepId =
623
- string;
654
+ export type WhileStepIdentity =
655
+ `WHILESTEP-${string}`;
624
656
  export type ForStep =
625
657
  StepKind & {
626
- case: ConditionalWrapper;
627
- identity: ForStepId;
658
+ case: Conditional;
659
+ identity: ForStepIdentity;
628
660
  kind: "for";
629
661
  };
630
- export type ForStepId =
631
- string;
662
+ export type ForStepIdentity =
663
+ `FORSTEP-${string}`;
632
664
  export type ResourceMissing =
633
665
  ResourceBase &
634
666
  ResourceKind & {
@@ -636,80 +668,76 @@ export type ResourceMissing =
636
668
  };
637
669
  export type ResourceBase =
638
670
  {
639
- identity: ResourceId;
640
- resourceTypeId: ResourceTypeId;
671
+ identity: ResourceIdentity;
672
+ resourceTypeRef: ResourceTypeIdentity;
641
673
  };
642
- export type ResourceTypeId =
643
- string;
674
+ export type ResourceTypeIdentity =
675
+ `TYPE-${string}`;
644
676
  export type ResourcePotentialInput =
645
677
  ResourceBase &
646
- CreationContext &
678
+ CreationContextWrapper &
647
679
  ResourceKind & {
648
680
  kind: "potential-input";
649
681
  };
650
- export type ResourceRoleId =
651
- string;
682
+ export type ResourceRoleIdentity =
683
+ `ROLE-${string}`;
652
684
  export type ResourcePotentialOutput =
653
685
  ResourceBase &
654
- CreationContext &
686
+ CreationContextWrapper &
655
687
  ResourceKind & {
656
688
  kind: "potential-output";
657
689
  };
658
690
  export type Resource =
659
691
  ResourceMetaBase & {
660
692
  extractedData: {
661
- [k: string]: JsonValue;
693
+ [k: string]: JsonData;
662
694
  };
663
695
  };
664
696
  export type ResourceMetaBase =
665
697
  ResourceBase &
666
- CreationContext &
698
+ CreationContextWrapper &
667
699
  ResourceKind & {
668
700
  kind: "materialized";
669
701
  } & Timestamp &
670
702
  Path;
671
- export type JsonValue =
703
+ export type JsonData =
672
704
  | null
673
705
  | boolean
674
706
  | number
675
707
  | string
676
- | JsonValue
708
+ | JsonData
677
709
  | {
678
- [k: string]: JsonValue;
710
+ [k: string]: JsonData;
679
711
  };
680
712
 
681
713
  export interface StepKind {
682
714
  kind: "work" | "branch" | "while" | "for";
683
715
  }
684
- export interface RoleBindingsOuter {
685
- roleBindings: RoleBindingsInner;
716
+ export interface RoleBindingsWrapper {
717
+ roleBindings: RoleBindings;
686
718
  }
687
- export interface RoleBindingsInner {
719
+ export interface RoleBindings {
688
720
  inputBindingMap: RoleBindingMap;
689
721
  outputBindingMap: RoleBindingMap;
690
722
  }
691
- export type RoleBindingMap = Record<ResourceRoleId, ResourceId>;
692
- export interface ConditionalWrapper {
723
+ export type RoleBindingMap = Record<ResourceRoleIdentity, ResourceIdentity>;
724
+ export interface Conditional {
693
725
  what: WorkStep;
694
726
  when: WorkStep;
695
727
  }
696
- export interface StrategyState {
697
- strategyState: StrategyStateValue;
698
- }
699
- export interface StrategyStateValue {
700
- [k: string]: {
701
- [k: string]: ResourceMissing | ResourcePotentialInput | ResourcePotentialOutput | Resource;
702
- };
728
+ export interface StrategyStateWrapper {
729
+ strategyState: StrategyState;
703
730
  }
731
+ export type StrategyState = Record<ExecutionIdentity, Record<ResourceRoleIdentity, ResourcePotentialInput | ResourcePotentialOutput | Resource>>;
704
732
  export interface ResourceKind {
705
733
  kind: "missing" | "potential-input" | "potential-output" | "materialized";
706
734
  }
707
- export interface CreationContext {
708
- creationContext: CreationContextValue;
735
+ export interface CreationContextWrapper {
736
+ creationContext: CreationContext;
709
737
  }
710
- export interface CreationContextValue {
711
- executionId: ExecutionId;
712
- resourceRoleId: ResourceRoleId;
738
+ export interface CreationContext {
739
+ executionRef: ExecutionIdentity;
740
+ resourceRoleRef: ResourceRoleIdentity;
713
741
  }
714
742
  export interface Timestamp {
715
743
  timestamp: string;
@@ -720,72 +748,72 @@ export interface Path {
720
748
 
721
749
  export type Normalized =
722
750
  {
723
- identity: StatelessStrategyId;
751
+ identity: StatelessStrategyIdentity;
724
752
  steps: Step[];
725
753
  };
726
- export type StatelessStrategyId =
727
- string;
754
+ export type StatelessStrategyIdentity =
755
+ `STATELESS_STRATEGY-${string}`;
728
756
  export type Step =
729
757
  WorkStep | BranchStep | WhileStep | ForStep;
730
758
  export type WorkStep =
731
759
  StepKind & {
732
760
  execution: Execution;
733
- identity: WorkStepId;
761
+ identity: WorkStepIdentity;
734
762
  kind: "work";
735
763
  };
736
764
  export type Execution =
737
765
  {
738
- identity: ExecutionId;
739
- jobId: JobId;
740
- } & RoleBindingsOuter;
741
- export type ExecutionId =
742
- string;
743
- export type JobId =
744
- string;
745
- export type ResourceId =
746
- string;
747
- export type WorkStepId =
748
- string;
766
+ identity: ExecutionIdentity;
767
+ jobRef: JobIdentity;
768
+ } & RoleBindingsWrapper;
769
+ export type ExecutionIdentity =
770
+ `EXECUTION-${string}`;
771
+ export type JobIdentity =
772
+ `JOB-${string}`;
773
+ export type ResourceIdentity =
774
+ `RESOURCE-${string}`;
775
+ export type WorkStepIdentity =
776
+ `WORKSTEP-${string}`;
749
777
  export type BranchStep =
750
778
  StepKind & {
751
779
  /**
752
780
  * @minItems 1
753
781
  */
754
- cases: [ConditionalWrapper, ...ConditionalWrapper[]];
755
- identity: BranchStepId;
782
+ cases: [Conditional, ...Conditional[]];
783
+ identity: BranchStepIdentity;
756
784
  kind: "branch";
757
785
  };
758
- export type BranchStepId =
759
- string;
786
+ export type BranchStepIdentity =
787
+ `BRANCHSTEP-${string}`;
760
788
  export type WhileStep =
761
789
  StepKind & {
762
- case: ConditionalWrapper;
763
- identity: WhileStepId;
790
+ case: Conditional;
791
+ identity: WhileStepIdentity;
764
792
  kind: "while";
765
793
  };
766
- export type WhileStepId =
767
- string;
794
+ export type WhileStepIdentity =
795
+ `WHILESTEP-${string}`;
768
796
  export type ForStep =
769
797
  StepKind & {
770
- case: ConditionalWrapper;
771
- identity: ForStepId;
798
+ case: Conditional;
799
+ identity: ForStepIdentity;
772
800
  kind: "for";
773
801
  };
774
- export type ForStepId =
775
- string;
802
+ export type ForStepIdentity =
803
+ `FORSTEP-${string}`;
776
804
 
777
805
  export interface StepKind {
778
806
  kind: "work" | "branch" | "while" | "for";
779
807
  }
780
- export interface RoleBindingsOuter {
781
- roleBindings: RoleBindingsInner;
808
+ export interface RoleBindingsWrapper {
809
+ roleBindings: RoleBindings;
782
810
  }
783
- export interface RoleBindingsInner {
811
+ export interface RoleBindings {
784
812
  inputBindingMap: RoleBindingMap;
785
813
  outputBindingMap: RoleBindingMap;
786
814
  }
787
- export type RoleBindingMap = Record<ResourceRoleId, ResourceId>;
788
- export interface ConditionalWrapper {
815
+ export type RoleBindingMap = Record<ResourceRoleIdentity, ResourceIdentity>;
816
+ export interface Conditional {
789
817
  what: WorkStep;
790
818
  when: WorkStep;
791
819
  }