@bilig/workbook 0.94.0 → 0.103.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.
Files changed (62) hide show
  1. package/README.md +167 -438
  2. package/dist/command.d.ts +3 -0
  3. package/dist/command.js +4 -0
  4. package/dist/command.js.map +1 -0
  5. package/dist/features-public.d.ts +2 -0
  6. package/dist/features-public.js +3 -0
  7. package/dist/features-public.js.map +1 -0
  8. package/dist/index.d.ts +3 -0
  9. package/dist/index.js +3 -0
  10. package/dist/index.js.map +1 -1
  11. package/dist/model-plan-result.d.ts +1 -0
  12. package/dist/model-plan-result.js +17 -0
  13. package/dist/model-plan-result.js.map +1 -1
  14. package/dist/model.d.ts +1 -0
  15. package/dist/model.js +21 -14
  16. package/dist/model.js.map +1 -1
  17. package/dist/prepare.d.ts +22 -0
  18. package/dist/prepare.js +41 -0
  19. package/dist/prepare.js.map +1 -0
  20. package/dist/readback.d.ts +16 -0
  21. package/dist/readback.js +57 -4
  22. package/dist/readback.js.map +1 -1
  23. package/dist/requirements.d.ts +4 -3
  24. package/dist/requirements.js +50 -7
  25. package/dist/requirements.js.map +1 -1
  26. package/dist/result.d.ts +2 -2
  27. package/dist/result.js +1 -0
  28. package/dist/result.js.map +1 -1
  29. package/dist/run-apply.d.ts +17 -0
  30. package/dist/run-apply.js +274 -0
  31. package/dist/run-apply.js.map +1 -0
  32. package/dist/run-check-verification.d.ts +8 -0
  33. package/dist/run-check-verification.js +174 -0
  34. package/dist/run-check-verification.js.map +1 -0
  35. package/dist/run-data.d.ts +6 -0
  36. package/dist/run-data.js +120 -0
  37. package/dist/run-data.js.map +1 -0
  38. package/dist/run-description.js +12 -9
  39. package/dist/run-description.js.map +1 -1
  40. package/dist/run-runtime-boundary.js +35 -12
  41. package/dist/run-runtime-boundary.js.map +1 -1
  42. package/dist/run.d.ts +2 -2
  43. package/dist/run.js +4 -560
  44. package/dist/run.js.map +1 -1
  45. package/dist/runtime.d.ts +7 -0
  46. package/dist/runtime.js +8 -0
  47. package/dist/runtime.js.map +1 -0
  48. package/dist/schema.d.ts +22 -0
  49. package/dist/schema.js +581 -0
  50. package/dist/schema.js.map +1 -0
  51. package/dist/testing.d.ts +34 -0
  52. package/dist/testing.js +85 -0
  53. package/dist/testing.js.map +1 -0
  54. package/fixtures/command-bundle.json +28 -0
  55. package/fixtures/command-result.json +58 -0
  56. package/fixtures/invalid-plan.json +9 -0
  57. package/fixtures/readback-proof.json +64 -0
  58. package/fixtures/runtime-requirements.json +72 -0
  59. package/fixtures/strict-run-failure.json +11 -0
  60. package/fixtures/strict-run-success.json +118 -0
  61. package/fixtures/valid-plan.json +145 -0
  62. package/package.json +60 -4
package/dist/schema.js ADDED
@@ -0,0 +1,581 @@
1
+ import { workbookRunErrorCodes } from './result.js';
2
+ export const workbookJsonSchemaVersion = 'bilig-workbook-json-schema-v1';
3
+ export const workbookJsonSchemaNames = Object.freeze([
4
+ 'refData',
5
+ 'planData',
6
+ 'runtimeRequirements',
7
+ 'commandBundle',
8
+ 'commandResult',
9
+ 'runResult',
10
+ 'readbackProof',
11
+ ]);
12
+ const jsonValue = Object.freeze({ $ref: '#/$defs/jsonValue' });
13
+ const refData = Object.freeze({ $ref: '#/$defs/refData' });
14
+ const cellRange = Object.freeze({ $ref: '#/$defs/cellRange' });
15
+ const engineOp = Object.freeze({ $ref: '#/$defs/engineOp' });
16
+ const actionInput = Object.freeze({ $ref: '#/$defs/actionInput' });
17
+ function defs(extra = {}) {
18
+ return {
19
+ jsonValue: {
20
+ oneOf: [
21
+ { type: 'null' },
22
+ { type: 'boolean' },
23
+ { type: 'number' },
24
+ { type: 'string' },
25
+ { type: 'array', items: { $ref: '#/$defs/jsonValue' } },
26
+ { type: 'object', additionalProperties: { $ref: '#/$defs/jsonValue' } },
27
+ ],
28
+ },
29
+ actionInput: { $ref: '#/$defs/jsonValue' },
30
+ cellRange: {
31
+ type: 'object',
32
+ required: ['sheetName', 'startAddress', 'endAddress'],
33
+ additionalProperties: false,
34
+ properties: {
35
+ sheetName: { type: 'string', minLength: 1 },
36
+ startAddress: { type: 'string', minLength: 1 },
37
+ endAddress: { type: 'string', minLength: 1 },
38
+ },
39
+ },
40
+ engineOp: {
41
+ type: 'object',
42
+ required: ['kind'],
43
+ properties: {
44
+ kind: { type: 'string', minLength: 1 },
45
+ },
46
+ additionalProperties: true,
47
+ },
48
+ refData: {
49
+ oneOf: [
50
+ {
51
+ type: 'object',
52
+ required: ['kind', 'id', 'label', 'range'],
53
+ additionalProperties: false,
54
+ properties: {
55
+ kind: { const: 'range' },
56
+ id: { type: 'string', minLength: 1 },
57
+ label: { type: 'string', minLength: 1 },
58
+ range: { $ref: '#/$defs/cellRange' },
59
+ },
60
+ },
61
+ {
62
+ type: 'object',
63
+ required: ['kind', 'id', 'label', 'name'],
64
+ additionalProperties: false,
65
+ properties: {
66
+ kind: { const: 'name' },
67
+ id: { type: 'string', minLength: 1 },
68
+ label: { type: 'string', minLength: 1 },
69
+ name: { type: 'string', minLength: 1 },
70
+ },
71
+ },
72
+ {
73
+ type: 'object',
74
+ required: ['kind', 'id', 'label'],
75
+ additionalProperties: false,
76
+ properties: {
77
+ kind: { const: 'table' },
78
+ id: { type: 'string', minLength: 1 },
79
+ label: { type: 'string', minLength: 1 },
80
+ name: { type: 'string', minLength: 1 },
81
+ sheetName: { type: 'string', minLength: 1 },
82
+ headers: { type: 'array', items: { type: 'string' } },
83
+ },
84
+ },
85
+ {
86
+ type: 'object',
87
+ required: ['kind', 'id', 'label', 'table', 'name'],
88
+ additionalProperties: false,
89
+ properties: {
90
+ kind: { const: 'column' },
91
+ id: { type: 'string', minLength: 1 },
92
+ label: { type: 'string', minLength: 1 },
93
+ table: { $ref: '#/$defs/refData' },
94
+ rows: { $ref: '#/$defs/refData' },
95
+ name: { type: 'string', minLength: 1 },
96
+ },
97
+ },
98
+ {
99
+ type: 'object',
100
+ required: ['kind', 'id', 'label', 'where'],
101
+ additionalProperties: false,
102
+ properties: {
103
+ kind: { const: 'rows' },
104
+ id: { type: 'string', minLength: 1 },
105
+ label: { type: 'string', minLength: 1 },
106
+ sheetName: { type: 'string', minLength: 1 },
107
+ table: { $ref: '#/$defs/refData' },
108
+ where: {
109
+ type: 'object',
110
+ required: ['column', 'op', 'value'],
111
+ additionalProperties: false,
112
+ properties: {
113
+ column: { type: 'string', minLength: 1 },
114
+ op: { enum: ['eq', 'neq', 'contains', 'startsWith', 'gt', 'gte', 'lt', 'lte'] },
115
+ value: { $ref: '#/$defs/jsonValue' },
116
+ },
117
+ },
118
+ },
119
+ },
120
+ ],
121
+ },
122
+ ...extra,
123
+ };
124
+ }
125
+ function schema(name, value) {
126
+ return deepFreeze({
127
+ $schema: 'https://json-schema.org/draft/2020-12/schema',
128
+ $id: `https://bilig.proompteng.ai/schemas/workbook/${workbookJsonSchemaVersion}/${name}.schema.json`,
129
+ title: `@bilig/workbook ${name}`,
130
+ ...value,
131
+ });
132
+ }
133
+ const checkDataSchema = {
134
+ type: 'object',
135
+ required: ['status', 'kind', 'message'],
136
+ properties: {
137
+ status: { enum: ['planned', 'passed', 'failed'] },
138
+ kind: { type: 'string', minLength: 1 },
139
+ target: refData,
140
+ refs: { type: 'array', items: refData },
141
+ message: { type: 'string', minLength: 1 },
142
+ expectation: { type: 'object', additionalProperties: true },
143
+ proof: actionInput,
144
+ },
145
+ additionalProperties: false,
146
+ };
147
+ const changeDataSchema = {
148
+ type: 'object',
149
+ required: ['kind', 'message'],
150
+ additionalProperties: false,
151
+ properties: {
152
+ kind: { type: 'string', minLength: 1 },
153
+ target: refData,
154
+ message: { type: 'string', minLength: 1 },
155
+ },
156
+ };
157
+ const undoDataSchema = {
158
+ type: 'object',
159
+ required: ['id'],
160
+ additionalProperties: false,
161
+ properties: {
162
+ id: { type: 'string', minLength: 1 },
163
+ ops: { type: 'array', items: engineOp },
164
+ },
165
+ };
166
+ const unverifiedDataSchema = {
167
+ type: 'object',
168
+ required: ['kind', 'message'],
169
+ additionalProperties: false,
170
+ properties: {
171
+ kind: { enum: ['apply', 'plan'] },
172
+ message: { type: 'string', minLength: 1 },
173
+ },
174
+ };
175
+ const runtimeRequirementSchema = {
176
+ type: 'object',
177
+ required: ['kind', 'capability', 'message'],
178
+ additionalProperties: false,
179
+ properties: {
180
+ kind: { enum: ['apply', 'read', 'verify'] },
181
+ capability: { enum: ['writeFormula', 'writeValue', 'format', 'clear', 'applyOp', 'read', 'verifyCheck'] },
182
+ commandIndex: { type: 'integer', minimum: 0 },
183
+ checkIndex: { type: 'integer', minimum: 0 },
184
+ opIndex: { type: 'integer', minimum: 0 },
185
+ opKind: { type: 'string', minLength: 1 },
186
+ checkKind: { type: 'string', minLength: 1 },
187
+ target: refData,
188
+ refs: { type: 'array', items: refData },
189
+ message: { type: 'string', minLength: 1 },
190
+ },
191
+ allOf: [
192
+ {
193
+ if: { properties: { kind: { const: 'apply' } }, required: ['kind'] },
194
+ // oxlint-disable-next-line eslint-plugin-unicorn(no-thenable) -- JSON Schema conditional schemas use the standard "then" keyword.
195
+ then: { properties: { capability: { enum: ['writeFormula', 'writeValue', 'format', 'clear', 'applyOp'] } } },
196
+ },
197
+ {
198
+ if: { properties: { kind: { const: 'read' } }, required: ['kind'] },
199
+ // oxlint-disable-next-line eslint-plugin-unicorn(no-thenable) -- JSON Schema conditional schemas use the standard "then" keyword.
200
+ then: { properties: { capability: { const: 'read' } } },
201
+ },
202
+ {
203
+ if: { properties: { kind: { const: 'verify' } }, required: ['kind'] },
204
+ // oxlint-disable-next-line eslint-plugin-unicorn(no-thenable) -- JSON Schema conditional schemas use the standard "then" keyword.
205
+ then: { properties: { capability: { const: 'verifyCheck' } } },
206
+ },
207
+ ],
208
+ };
209
+ const applySummarySchema = {
210
+ type: 'object',
211
+ required: ['matched'],
212
+ additionalProperties: false,
213
+ properties: {
214
+ matched: { oneOf: [{ type: 'boolean' }, { type: 'null' }] },
215
+ planId: { type: 'string', minLength: 1 },
216
+ baseRevision: { type: 'integer', minimum: 0 },
217
+ revision: { type: 'integer', minimum: 0 },
218
+ previewOps: { type: 'array', items: engineOp },
219
+ appliedOps: { type: 'array', items: engineOp },
220
+ commandReceipts: { type: 'array', items: { $ref: '#/$defs/applyCommandReceipt' } },
221
+ proof: actionInput,
222
+ },
223
+ };
224
+ const applyCommandReceiptSchema = {
225
+ type: 'object',
226
+ required: ['commandIndex', 'commandKind', 'commandDigest', 'previewOps', 'appliedOps'],
227
+ additionalProperties: false,
228
+ properties: {
229
+ commandIndex: { type: 'integer', minimum: 0 },
230
+ commandKind: { type: 'string', minLength: 1 },
231
+ commandDigest: { type: 'string', minLength: 1 },
232
+ previewOps: { type: 'array', items: engineOp },
233
+ appliedOps: { type: 'array', items: engineOp },
234
+ resolvedRefs: actionInput,
235
+ formulaLabels: {
236
+ type: 'array',
237
+ items: {
238
+ type: 'object',
239
+ required: ['name', 'source'],
240
+ additionalProperties: false,
241
+ properties: {
242
+ name: { type: 'string', minLength: 1 },
243
+ source: { type: 'string', minLength: 1 },
244
+ },
245
+ },
246
+ },
247
+ proof: actionInput,
248
+ },
249
+ };
250
+ export const workbookJsonSchemas = deepFreeze({
251
+ refData: schema('refData', {
252
+ $defs: defs(),
253
+ ...refData,
254
+ }),
255
+ planData: schema('planData', {
256
+ $defs: defs({
257
+ formulaLabel: {
258
+ type: 'object',
259
+ required: ['name', 'ref'],
260
+ additionalProperties: false,
261
+ properties: {
262
+ name: { type: 'string', minLength: 1 },
263
+ ref: refData,
264
+ },
265
+ },
266
+ check: checkDataSchema,
267
+ command: {
268
+ oneOf: [
269
+ {
270
+ type: 'object',
271
+ required: ['kind', 'target', 'formula', 'inputs', 'labels'],
272
+ additionalProperties: false,
273
+ properties: {
274
+ kind: { const: 'writeFormula' },
275
+ target: refData,
276
+ formula: { type: 'string' },
277
+ inputs: { type: 'array', items: refData },
278
+ labels: { type: 'array', items: { $ref: '#/$defs/formulaLabel' } },
279
+ },
280
+ },
281
+ {
282
+ type: 'object',
283
+ required: ['kind', 'target', 'value'],
284
+ additionalProperties: false,
285
+ properties: { kind: { const: 'writeValue' }, target: refData, value: jsonValue },
286
+ },
287
+ {
288
+ type: 'object',
289
+ required: ['kind', 'target'],
290
+ additionalProperties: false,
291
+ properties: {
292
+ kind: { const: 'format' },
293
+ target: refData,
294
+ style: { type: 'object', additionalProperties: true },
295
+ numberFormat: { oneOf: [{ type: 'string' }, { type: 'null' }] },
296
+ },
297
+ },
298
+ {
299
+ type: 'object',
300
+ required: ['kind', 'target'],
301
+ additionalProperties: false,
302
+ properties: { kind: { const: 'clear' }, target: refData },
303
+ },
304
+ {
305
+ type: 'object',
306
+ required: ['kind', 'op'],
307
+ additionalProperties: false,
308
+ properties: {
309
+ kind: { const: 'op' },
310
+ op: engineOp,
311
+ target: refData,
312
+ message: { type: 'string' },
313
+ },
314
+ },
315
+ ],
316
+ },
317
+ change: changeDataSchema,
318
+ }),
319
+ type: 'object',
320
+ required: ['modelName', 'actionName', 'refsUsed', 'commands', 'ops', 'changed', 'checks'],
321
+ additionalProperties: false,
322
+ properties: {
323
+ modelName: { type: 'string', minLength: 1 },
324
+ actionName: { type: 'string', minLength: 1 },
325
+ input: actionInput,
326
+ refsUsed: { type: 'array', items: refData },
327
+ commands: { type: 'array', items: { $ref: '#/$defs/command' } },
328
+ ops: { type: 'array', items: engineOp },
329
+ changed: { type: 'array', items: { $ref: '#/$defs/change' } },
330
+ checks: { type: 'array', items: { $ref: '#/$defs/check' } },
331
+ },
332
+ }),
333
+ runtimeRequirements: schema('runtimeRequirements', {
334
+ $defs: defs({
335
+ runtimeRequirement: runtimeRequirementSchema,
336
+ }),
337
+ type: 'object',
338
+ required: ['modelName', 'actionName', 'requirements'],
339
+ additionalProperties: false,
340
+ properties: {
341
+ modelName: { type: 'string', minLength: 1 },
342
+ actionName: { type: 'string', minLength: 1 },
343
+ requirements: { type: 'array', items: { $ref: '#/$defs/runtimeRequirement' } },
344
+ },
345
+ }),
346
+ commandBundle: schema('commandBundle', {
347
+ $defs: defs({
348
+ commandRequest: {
349
+ type: 'object',
350
+ required: ['featureId', 'commandId'],
351
+ additionalProperties: false,
352
+ properties: {
353
+ featureId: { type: 'string', minLength: 1 },
354
+ commandId: { type: 'string', minLength: 1 },
355
+ category: { enum: ['command', 'operation', 'mutation'] },
356
+ mode: { enum: ['preview', 'apply', 'applyAndVerify'] },
357
+ input: actionInput,
358
+ },
359
+ },
360
+ bundleCommand: {
361
+ oneOf: [
362
+ {
363
+ type: 'object',
364
+ required: ['kind', 'request'],
365
+ additionalProperties: false,
366
+ properties: {
367
+ kind: { const: 'request' },
368
+ id: { type: 'string', minLength: 1 },
369
+ touchedRanges: { type: 'array', items: cellRange },
370
+ destructive: { type: 'boolean' },
371
+ request: { $ref: '#/$defs/commandRequest' },
372
+ },
373
+ },
374
+ {
375
+ type: 'object',
376
+ required: ['kind', 'op'],
377
+ additionalProperties: false,
378
+ properties: {
379
+ kind: { const: 'op' },
380
+ id: { type: 'string', minLength: 1 },
381
+ touchedRanges: { type: 'array', items: cellRange },
382
+ destructive: { type: 'boolean' },
383
+ op: engineOp,
384
+ },
385
+ },
386
+ ],
387
+ },
388
+ }),
389
+ type: 'object',
390
+ required: ['targetRevision', 'idempotencyKey', 'commands'],
391
+ additionalProperties: false,
392
+ properties: {
393
+ id: { type: 'string', minLength: 1 },
394
+ targetRevision: { type: 'integer', minimum: 0 },
395
+ idempotencyKey: { type: 'string', minLength: 1 },
396
+ scope: {
397
+ type: 'object',
398
+ additionalProperties: false,
399
+ properties: { maxTouchedCells: { type: 'integer', minimum: 0 } },
400
+ },
401
+ commands: { type: 'array', minItems: 1, items: { $ref: '#/$defs/bundleCommand' } },
402
+ },
403
+ }),
404
+ commandResult: schema('commandResult', {
405
+ $defs: defs({
406
+ receipt: {
407
+ type: 'object',
408
+ required: ['status', 'featureId', 'commandId', 'category'],
409
+ properties: {
410
+ status: { enum: ['previewed', 'applied', 'rejected', 'noop'] },
411
+ featureId: { type: 'string', minLength: 1 },
412
+ commandId: { type: 'string', minLength: 1 },
413
+ category: { enum: ['command', 'operation', 'mutation'] },
414
+ previewOps: { type: 'array', items: engineOp },
415
+ appliedOps: { type: 'array', items: engineOp },
416
+ undo: { type: 'object', additionalProperties: true },
417
+ changedRanges: { type: 'array', items: cellRange },
418
+ proof: actionInput,
419
+ message: { type: 'string' },
420
+ metadata: actionInput,
421
+ errors: { type: 'array', items: { type: 'string' } },
422
+ },
423
+ additionalProperties: false,
424
+ },
425
+ }),
426
+ type: 'object',
427
+ required: ['status', 'targetRevision', 'idempotencyKey', 'commandCount', 'touchedRanges', 'touchedCellCount'],
428
+ additionalProperties: false,
429
+ properties: {
430
+ status: { enum: ['accepted', 'previewed', 'applied', 'rejected', 'noop'] },
431
+ bundleId: { type: 'string', minLength: 1 },
432
+ targetRevision: { type: 'integer', minimum: 0 },
433
+ idempotencyKey: { type: 'string', minLength: 1 },
434
+ commandCount: { type: 'integer', minimum: 0 },
435
+ touchedRanges: { type: 'array', items: cellRange },
436
+ touchedCellCount: { type: 'integer', minimum: 0 },
437
+ receipts: { type: 'array', items: { $ref: '#/$defs/receipt' } },
438
+ matched: { oneOf: [{ type: 'boolean' }, { type: 'null' }] },
439
+ changedRanges: { type: 'array', items: cellRange },
440
+ revision: { type: 'integer', minimum: 0 },
441
+ undo: { type: 'object', additionalProperties: true },
442
+ errors: { type: 'array', items: { type: 'string' } },
443
+ },
444
+ }),
445
+ runResult: schema('runResult', {
446
+ $defs: defs({
447
+ apply: applySummarySchema,
448
+ applyCommandReceipt: applyCommandReceiptSchema,
449
+ check: checkDataSchema,
450
+ change: changeDataSchema,
451
+ error: {
452
+ type: 'object',
453
+ required: ['code', 'message'],
454
+ additionalProperties: false,
455
+ properties: {
456
+ code: { enum: workbookRunErrorCodes },
457
+ message: { type: 'string', minLength: 1 },
458
+ path: { type: 'string' },
459
+ issueCode: { type: 'string' },
460
+ },
461
+ },
462
+ undo: undoDataSchema,
463
+ unverified: unverifiedDataSchema,
464
+ }),
465
+ oneOf: [
466
+ {
467
+ type: 'object',
468
+ required: ['status', 'changed', 'checks'],
469
+ properties: {
470
+ status: { const: 'done' },
471
+ apply: { $ref: '#/$defs/apply' },
472
+ changed: { type: 'array', items: { $ref: '#/$defs/change' } },
473
+ checks: { type: 'array', items: { $ref: '#/$defs/check' } },
474
+ undo: { $ref: '#/$defs/undo' },
475
+ unverified: { type: 'array', items: { $ref: '#/$defs/unverified' } },
476
+ },
477
+ additionalProperties: false,
478
+ },
479
+ {
480
+ type: 'object',
481
+ required: ['status', 'errors', 'changed', 'checks'],
482
+ properties: {
483
+ status: { const: 'failed' },
484
+ errors: { type: 'array', items: { $ref: '#/$defs/error' } },
485
+ apply: { $ref: '#/$defs/apply' },
486
+ changed: { type: 'array', items: { $ref: '#/$defs/change' } },
487
+ checks: { type: 'array', items: { $ref: '#/$defs/check' } },
488
+ undo: { $ref: '#/$defs/undo' },
489
+ unverified: { type: 'array', items: { $ref: '#/$defs/unverified' } },
490
+ },
491
+ additionalProperties: false,
492
+ },
493
+ ],
494
+ }),
495
+ readbackProof: schema('readbackProof', {
496
+ $defs: defs({
497
+ check: checkDataSchema,
498
+ readback: {
499
+ type: 'object',
500
+ required: ['target'],
501
+ additionalProperties: false,
502
+ properties: {
503
+ target: refData,
504
+ value: jsonValue,
505
+ formula: { oneOf: [{ type: 'string' }, { type: 'null' }] },
506
+ formulaLabels: {
507
+ type: 'array',
508
+ items: {
509
+ type: 'object',
510
+ required: ['name', 'source'],
511
+ additionalProperties: false,
512
+ properties: {
513
+ name: { type: 'string', minLength: 1 },
514
+ source: { type: 'string' },
515
+ },
516
+ },
517
+ },
518
+ },
519
+ },
520
+ }),
521
+ type: 'object',
522
+ required: ['checks', 'readbacks'],
523
+ additionalProperties: false,
524
+ properties: {
525
+ checks: { type: 'array', items: { $ref: '#/$defs/check' } },
526
+ readbacks: { type: 'array', items: { $ref: '#/$defs/readback' } },
527
+ },
528
+ }),
529
+ });
530
+ export const workbookJsonSchemaHashes = createSchemaHashes();
531
+ export const workbookJsonSchemaBundleHash = workbookJsonSchemaHash({
532
+ version: workbookJsonSchemaVersion,
533
+ schemas: workbookJsonSchemas,
534
+ });
535
+ export function workbookJsonSchemaHash(schemaValue) {
536
+ const json = JSON.stringify(canonicalValue(schemaValue));
537
+ return `bilig-schema-v1:${fnv1a64(json, 0xcbf29ce484222325n)}${fnv1a64(json, 0x84222325cbf29cen)}`;
538
+ }
539
+ function canonicalValue(value) {
540
+ if (Array.isArray(value)) {
541
+ return value.map(canonicalValue);
542
+ }
543
+ if (typeof value === 'object' && value !== null) {
544
+ return Object.fromEntries(Object.entries(value)
545
+ .toSorted(([left], [right]) => left.localeCompare(right))
546
+ .map(([key, entry]) => [key, canonicalValue(entry)]));
547
+ }
548
+ return value;
549
+ }
550
+ function createSchemaHashes() {
551
+ return deepFreeze({
552
+ refData: workbookJsonSchemaHash(workbookJsonSchemas.refData),
553
+ planData: workbookJsonSchemaHash(workbookJsonSchemas.planData),
554
+ runtimeRequirements: workbookJsonSchemaHash(workbookJsonSchemas.runtimeRequirements),
555
+ commandBundle: workbookJsonSchemaHash(workbookJsonSchemas.commandBundle),
556
+ commandResult: workbookJsonSchemaHash(workbookJsonSchemas.commandResult),
557
+ runResult: workbookJsonSchemaHash(workbookJsonSchemas.runResult),
558
+ readbackProof: workbookJsonSchemaHash(workbookJsonSchemas.readbackProof),
559
+ });
560
+ }
561
+ function fnv1a64(input, seed) {
562
+ let hash = seed;
563
+ for (let index = 0; index < input.length; index += 1) {
564
+ hash ^= BigInt(input.charCodeAt(index));
565
+ hash = BigInt.asUintN(64, hash * 0x100000001b3n);
566
+ }
567
+ return hash.toString(16).padStart(16, '0');
568
+ }
569
+ function deepFreeze(value, seen = new WeakSet()) {
570
+ if (typeof value !== 'object' || value === null || seen.has(value)) {
571
+ return value;
572
+ }
573
+ seen.add(value);
574
+ for (const descriptor of Object.values(Object.getOwnPropertyDescriptors(value))) {
575
+ if ('value' in descriptor) {
576
+ deepFreeze(descriptor.value, seen);
577
+ }
578
+ }
579
+ return Object.freeze(value);
580
+ }
581
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAuBnD,MAAM,CAAC,MAAM,yBAAyB,GAAG,+BAA+B,CAAA;AAExE,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC;IACnD,SAAS;IACT,UAAU;IACV,qBAAqB;IACrB,eAAe;IACf,eAAe;IACf,WAAW;IACX,eAAe;CACqC,CAAC,CAAA;AAEvD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAA;AAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAA;AAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAA;AAC9D,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAA;AAC5D,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAA;AAElE,SAAS,IAAI,CAAC,QAAiD,EAAE;IAC/D,OAAO;QACL,SAAS,EAAE;YACT,KAAK,EAAE;gBACL,EAAE,IAAI,EAAE,MAAM,EAAE;gBAChB,EAAE,IAAI,EAAE,SAAS,EAAE;gBACnB,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAClB,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAClB,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE;gBACvD,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE;aACxE;SACF;QACD,WAAW,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE;QAC1C,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,YAAY,CAAC;YACrD,oBAAoB,EAAE,KAAK;YAC3B,UAAU,EAAE;gBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;gBAC3C,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;gBAC9C,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;aAC7C;SACF;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,CAAC,MAAM,CAAC;YAClB,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;aACvC;YACD,oBAAoB,EAAE,IAAI;SAC3B;QACD,OAAO,EAAE;YACP,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC;oBAC1C,oBAAoB,EAAE,KAAK;oBAC3B,UAAU,EAAE;wBACV,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;wBACxB,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;wBACpC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;wBACvC,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE;qBACrC;iBACF;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC;oBACzC,oBAAoB,EAAE,KAAK;oBAC3B,UAAU,EAAE;wBACV,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;wBACvB,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;wBACpC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;wBACvC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;qBACvC;iBACF;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC;oBACjC,oBAAoB,EAAE,KAAK;oBAC3B,UAAU,EAAE;wBACV,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;wBACxB,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;wBACpC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;wBACvC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;wBACtC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC3C,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;qBACtD;iBACF;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC;oBAClD,oBAAoB,EAAE,KAAK;oBAC3B,UAAU,EAAE;wBACV,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;wBACzB,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;wBACpC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;wBACvC,KAAK,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;wBAClC,IAAI,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;wBACjC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;qBACvC;iBACF;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC;oBAC1C,oBAAoB,EAAE,KAAK;oBAC3B,UAAU,EAAE;wBACV,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;wBACvB,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;wBACpC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;wBACvC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;wBAC3C,KAAK,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;wBAClC,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC;4BACnC,oBAAoB,EAAE,KAAK;4BAC3B,UAAU,EAAE;gCACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;gCACxC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE;gCAC/E,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE;6BACrC;yBACF;qBACF;iBACF;aACF;SACF;QACD,GAAG,KAAK;KACT,CAAA;AACH,CAAC;AAED,SAAS,MAAM,CAAC,IAA4B,EAAE,KAAyB;IACrE,OAAO,UAAU,CAAC;QAChB,OAAO,EAAE,8CAA8C;QACvD,GAAG,EAAE,gDAAgD,yBAAyB,IAAI,IAAI,cAAc;QACpG,KAAK,EAAE,mBAAmB,IAAI,EAAE;QAChC,GAAG,KAAK;KACT,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,eAAe,GAA4B;IAC/C,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC;IACvC,UAAU,EAAE;QACV,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE;QACjD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;QACtC,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;QACvC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;QACzC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE;QAC3D,KAAK,EAAE,WAAW;KACnB;IACD,oBAAoB,EAAE,KAAK;CAC5B,CAAA;AAED,MAAM,gBAAgB,GAA4B;IAChD,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;IAC7B,oBAAoB,EAAE,KAAK;IAC3B,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;QACtC,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;KAC1C;CACF,CAAA;AAED,MAAM,cAAc,GAA4B;IAC9C,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,CAAC,IAAI,CAAC;IAChB,oBAAoB,EAAE,KAAK;IAC3B,UAAU,EAAE;QACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;QACpC,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE;KACxC;CACF,CAAA;AAED,MAAM,oBAAoB,GAA4B;IACpD,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;IAC7B,oBAAoB,EAAE,KAAK;IAC3B,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;QACjC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;KAC1C;CACF,CAAA;AAED,MAAM,wBAAwB,GAA4B;IACxD,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC;IAC3C,oBAAoB,EAAE,KAAK;IAC3B,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE;QAC3C,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE;QACzG,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;QAC7C,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;QAC3C,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;QACxC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;QACxC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;QAC3C,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;QACvC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;KAC1C;IACD,KAAK,EAAE;QACL;YACE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE;YACpE,kIAAkI;YAClI,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE;SAC7G;QACD;YACE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE;YACnE,kIAAkI;YAClI,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;SACxD;QACD;YACE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE;YACrE,kIAAkI;YAClI,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE;SAC/D;KACF;CACF,CAAA;AAED,MAAM,kBAAkB,GAA4B;IAClD,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,CAAC,SAAS,CAAC;IACrB,oBAAoB,EAAE,KAAK;IAC3B,UAAU,EAAE;QACV,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE;QAC3D,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;QACxC,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;QAC7C,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;QACzC,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE;QAC9C,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE;QAC9C,eAAe,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,EAAE;QAClF,KAAK,EAAE,WAAW;KACnB;CACF,CAAA;AAED,MAAM,yBAAyB,GAA4B;IACzD,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,CAAC;IACtF,oBAAoB,EAAE,KAAK;IAC3B,UAAU,EAAE;QACV,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;QAC7C,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;QAC7C,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;QAC/C,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE;QAC9C,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE;QAC9C,YAAY,EAAE,WAAW;QACzB,aAAa,EAAE;YACb,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;gBAC5B,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;oBACtC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;iBACzC;aACF;SACF;QACD,KAAK,EAAE,WAAW;KACnB;CACF,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC;IAC5C,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE;QACzB,KAAK,EAAE,IAAI,EAAE;QACb,GAAG,OAAO;KACX,CAAC;IAEF,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE;QAC3B,KAAK,EAAE,IAAI,CAAC;YACV,YAAY,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;gBACzB,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;oBACtC,GAAG,EAAE,OAAO;iBACb;aACF;YACD,KAAK,EAAE,eAAe;YACtB,OAAO,EAAE;gBACP,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC;wBAC3D,oBAAoB,EAAE,KAAK;wBAC3B,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE;4BAC/B,MAAM,EAAE,OAAO;4BACf,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC3B,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;4BACzC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE;yBACnE;qBACF;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;wBACrC,oBAAoB,EAAE,KAAK;wBAC3B,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE;qBACjF;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;wBAC5B,oBAAoB,EAAE,KAAK;wBAC3B,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;4BACzB,MAAM,EAAE,OAAO;4BACf,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE;4BACrD,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE;yBAChE;qBACF;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;wBAC5B,oBAAoB,EAAE,KAAK;wBAC3B,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;qBAC1D;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;wBACxB,oBAAoB,EAAE,KAAK;wBAC3B,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;4BACrB,EAAE,EAAE,QAAQ;4BACZ,MAAM,EAAE,OAAO;4BACf,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAC5B;qBACF;iBACF;aACF;YACD,MAAM,EAAE,gBAAgB;SACzB,CAAC;QACF,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC;QACzF,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE;YACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;YAC3C,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;YAC5C,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;YAC3C,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE;YAC/D,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE;YACvC,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE;YAC7D,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE;SAC5D;KACF,CAAC;IAEF,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,EAAE;QACjD,KAAK,EAAE,IAAI,CAAC;YACV,kBAAkB,EAAE,wBAAwB;SAC7C,CAAC;QACF,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC;QACrD,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE;YACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;YAC3C,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;YAC5C,YAAY,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,EAAE;SAC/E;KACF,CAAC;IAEF,aAAa,EAAE,MAAM,CAAC,eAAe,EAAE;QACrC,KAAK,EAAE,IAAI,CAAC;YACV,cAAc,EAAE;gBACd,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC;gBACpC,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;oBAC3C,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;oBAC3C,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE;oBACxD,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAAE;oBACtD,KAAK,EAAE,WAAW;iBACnB;aACF;YACD,aAAa,EAAE;gBACb,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;wBAC7B,oBAAoB,EAAE,KAAK;wBAC3B,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;4BAC1B,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;4BACpC,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE;4BAClD,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;4BAChC,OAAO,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE;yBAC5C;qBACF;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;wBACxB,oBAAoB,EAAE,KAAK;wBAC3B,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;4BACrB,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;4BACpC,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE;4BAClD,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;4BAChC,EAAE,EAAE,QAAQ;yBACb;qBACF;iBACF;aACF;SACF,CAAC;QACF,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,CAAC;QAC1D,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE;YACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;YACpC,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;YAC/C,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;YAChD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE;aACjE;YACD,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE;SACnF;KACF,CAAC;IAEF,aAAa,EAAE,MAAM,CAAC,eAAe,EAAE;QACrC,KAAK,EAAE,IAAI,CAAC;YACV,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,CAAC;gBAC1D,UAAU,EAAE;oBACV,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE;oBAC9D,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;oBAC3C,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;oBAC3C,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE;oBACxD,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE;oBAC9C,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE;oBAC9C,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE;oBACpD,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE;oBAClD,KAAK,EAAE,WAAW;oBAClB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC3B,QAAQ,EAAE,WAAW;oBACrB,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;iBACrD;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF,CAAC;QACF,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,kBAAkB,CAAC;QAC7G,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE;YACV,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE;YAC1E,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;YAC1C,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;YAC/C,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;YAChD,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;YAC7C,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE;YAClD,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;YACjD,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE;YAC/D,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE;YAC3D,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE;YAClD,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;YACzC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACpD,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;SACrD;KACF,CAAC;IAEF,SAAS,EAAE,MAAM,CAAC,WAAW,EAAE;QAC7B,KAAK,EAAE,IAAI,CAAC;YACV,KAAK,EAAE,kBAAkB;YACzB,mBAAmB,EAAE,yBAAyB;YAC9C,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,gBAAgB;YACxB,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;gBAC7B,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,IAAI,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE;oBACrC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;oBACzC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACxB,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC9B;aACF;YACD,IAAI,EAAE,cAAc;YACpB,UAAU,EAAE,oBAAoB;SACjC,CAAC;QACF,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC;gBACzC,UAAU,EAAE;oBACV,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;oBACzB,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;oBAChC,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE;oBAC7D,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE;oBAC3D,IAAI,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;oBAC9B,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE;iBACrE;gBACD,oBAAoB,EAAE,KAAK;aAC5B;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC;gBACnD,UAAU,EAAE;oBACV,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;oBAC3B,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE;oBAC3D,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;oBAChC,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE;oBAC7D,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE;oBAC3D,IAAI,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;oBAC9B,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE;iBACrE;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF;KACF,CAAC;IAEF,aAAa,EAAE,MAAM,CAAC,eAAe,EAAE;QACrC,KAAK,EAAE,IAAI,CAAC;YACV,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,QAAQ,CAAC;gBACpB,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,MAAM,EAAE,OAAO;oBACf,KAAK,EAAE,SAAS;oBAChB,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE;oBAC1D,aAAa,EAAE;wBACb,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;4BAC5B,oBAAoB,EAAE,KAAK;4BAC3B,UAAU,EAAE;gCACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;gCACtC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;6BAC3B;yBACF;qBACF;iBACF;aACF;SACF,CAAC;QACF,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;QACjC,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE;YACV,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE;YAC3D,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE;SAClE;KACF,CAAC;CAC0D,CAAC,CAAA;AAE/D,MAAM,CAAC,MAAM,wBAAwB,GAAG,kBAAkB,EAAE,CAAA;AAE5D,MAAM,CAAC,MAAM,4BAA4B,GAAG,sBAAsB,CAAC;IACjE,OAAO,EAAE,yBAAyB;IAClC,OAAO,EAAE,mBAAmB;CAC7B,CAAC,CAAA;AAEF,MAAM,UAAU,sBAAsB,CAAC,WAAoC;IACzE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAA;IACxD,OAAO,mBAAmB,OAAO,CAAC,IAAI,EAAE,mBAAmB,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,kBAAkB,CAAC,EAAE,CAAA;AACpG,CAAC;AAED,SAAS,cAAc,CAAC,KAA8B;IACpD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IAClC,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;aAClB,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;aACxD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CACvD,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,kBAAkB;IACzB,OAAO,UAAU,CAAC;QAChB,OAAO,EAAE,sBAAsB,CAAC,mBAAmB,CAAC,OAAO,CAAC;QAC5D,QAAQ,EAAE,sBAAsB,CAAC,mBAAmB,CAAC,QAAQ,CAAC;QAC9D,mBAAmB,EAAE,sBAAsB,CAAC,mBAAmB,CAAC,mBAAmB,CAAC;QACpF,aAAa,EAAE,sBAAsB,CAAC,mBAAmB,CAAC,aAAa,CAAC;QACxE,aAAa,EAAE,sBAAsB,CAAC,mBAAmB,CAAC,aAAa,CAAC;QACxE,SAAS,EAAE,sBAAsB,CAAC,mBAAmB,CAAC,SAAS,CAAC;QAChE,aAAa,EAAE,sBAAsB,CAAC,mBAAmB,CAAC,aAAa,CAAC;KACzE,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,KAAa,EAAE,IAAY;IAC1C,IAAI,IAAI,GAAG,IAAI,CAAA;IACf,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;QACvC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,GAAG,cAAc,CAAC,CAAA;IAClD,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;AAC5C,CAAC;AAED,SAAS,UAAU,CAAI,KAAQ,EAAE,OAAO,IAAI,OAAO,EAAU;IAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACnE,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACf,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAChF,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;YAC1B,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC7B,CAAC"}
@@ -0,0 +1,34 @@
1
+ import type { WorkbookRunResultDescription } from './describe.js';
2
+ import type { WorkbookActionPlan } from './model.js';
3
+ import type { WorkbookPlanData, WorkbookPlanDataRefs } from './plan-data.js';
4
+ import type { WorkbookRunError, WorkbookRunErrorCode, WorkbookRunResult } from './result.js';
5
+ import { type WorkbookRunAdapter, type WorkbookRunOptions } from './run.js';
6
+ export type WorkbookRunAdapterCheckIssueCode = WorkbookRunErrorCode | 'invalid_run_result_description';
7
+ export interface WorkbookRunAdapterCheckIssue {
8
+ readonly code: WorkbookRunAdapterCheckIssueCode;
9
+ readonly path: string;
10
+ readonly message: string;
11
+ }
12
+ export type WorkbookRunAdapterCheckOptions = Omit<WorkbookRunOptions, 'strict'>;
13
+ export type WorkbookRunAdapterPassedResult = {
14
+ readonly status: 'passed';
15
+ readonly result: Extract<WorkbookRunResult, {
16
+ readonly status: 'done';
17
+ }>;
18
+ readonly description: Extract<WorkbookRunResultDescription, {
19
+ readonly status: 'done';
20
+ }>;
21
+ readonly issues: readonly [];
22
+ };
23
+ export type WorkbookRunAdapterFailedResult = {
24
+ readonly status: 'failed';
25
+ readonly result?: WorkbookRunResult;
26
+ readonly description?: WorkbookRunResultDescription;
27
+ readonly errors: readonly WorkbookRunError[];
28
+ readonly issues: readonly WorkbookRunAdapterCheckIssue[];
29
+ };
30
+ export type WorkbookRunAdapterCheckResult = WorkbookRunAdapterPassedResult | WorkbookRunAdapterFailedResult;
31
+ export declare function checkWorkbookRunAdapter<Refs>(plan: WorkbookActionPlan<Refs>, adapter: WorkbookRunAdapter<Refs>, options?: WorkbookRunAdapterCheckOptions): Promise<WorkbookRunAdapterCheckResult>;
32
+ export declare function checkWorkbookRunAdapter(plan: WorkbookPlanData, adapter: WorkbookRunAdapter<WorkbookPlanDataRefs>, options?: WorkbookRunAdapterCheckOptions): Promise<WorkbookRunAdapterCheckResult>;
33
+ export declare function assertWorkbookRunAdapter<Refs>(plan: WorkbookActionPlan<Refs>, adapter: WorkbookRunAdapter<Refs>, options?: WorkbookRunAdapterCheckOptions): Promise<WorkbookRunAdapterPassedResult['description']>;
34
+ export declare function assertWorkbookRunAdapter(plan: WorkbookPlanData, adapter: WorkbookRunAdapter<WorkbookPlanDataRefs>, options?: WorkbookRunAdapterCheckOptions): Promise<WorkbookRunAdapterPassedResult['description']>;