@bilig/workbook 0.103.0 → 0.107.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/README.md +4 -4
- package/dist/command-ops.d.ts +2 -1
- package/dist/command-ops.js +156 -13
- package/dist/command-ops.js.map +1 -1
- package/dist/describe.d.ts +2 -2
- package/dist/describe.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/input.d.ts +12 -1
- package/dist/input.js +242 -5
- package/dist/input.js.map +1 -1
- package/dist/model-description.d.ts +17 -0
- package/dist/model-description.js +252 -0
- package/dist/model-description.js.map +1 -0
- package/dist/result.d.ts +10 -2
- package/dist/result.js.map +1 -1
- package/dist/run-command-receipts.js +60 -11
- package/dist/run-command-receipts.js.map +1 -1
- package/dist/run-description.js +67 -0
- package/dist/run-description.js.map +1 -1
- package/dist/run-runtime-boundary.js +41 -13
- package/dist/run-runtime-boundary.js.map +1 -1
- package/dist/schema.d.ts +3 -2
- package/dist/schema.js +104 -1
- package/dist/schema.js.map +1 -1
- package/fixtures/model-description.json +29 -0
- package/fixtures/strict-run-success.json +24 -12
- package/package.json +3 -3
package/dist/input.js
CHANGED
|
@@ -85,6 +85,86 @@ function normalizeDescriptionText(value, path) {
|
|
|
85
85
|
}
|
|
86
86
|
return text;
|
|
87
87
|
}
|
|
88
|
+
function normalizeDescriptionBoolean(value, path) {
|
|
89
|
+
if (value === undefined) {
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
if (typeof value !== 'boolean') {
|
|
93
|
+
throw inputError(path, `Action input description at ${path} must be a boolean`);
|
|
94
|
+
}
|
|
95
|
+
return value;
|
|
96
|
+
}
|
|
97
|
+
function normalizeFiniteDescriptionNumber(value, path) {
|
|
98
|
+
if (value === undefined) {
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
if (typeof value !== 'number' || !Number.isFinite(value)) {
|
|
102
|
+
throw inputError(path, `Action input description at ${path} must be a finite number`);
|
|
103
|
+
}
|
|
104
|
+
return value;
|
|
105
|
+
}
|
|
106
|
+
function normalizeNonNegativeInteger(value, path) {
|
|
107
|
+
if (value === undefined) {
|
|
108
|
+
return undefined;
|
|
109
|
+
}
|
|
110
|
+
if (typeof value !== 'number' || !Number.isSafeInteger(value) || value < 0) {
|
|
111
|
+
throw inputError(path, `Action input description at ${path} must be a non-negative safe integer`);
|
|
112
|
+
}
|
|
113
|
+
return value;
|
|
114
|
+
}
|
|
115
|
+
function normalizePattern(value, path) {
|
|
116
|
+
if (value === undefined) {
|
|
117
|
+
return undefined;
|
|
118
|
+
}
|
|
119
|
+
if (typeof value !== 'string') {
|
|
120
|
+
throw inputError(path, `Action input description at ${path} must be a string`);
|
|
121
|
+
}
|
|
122
|
+
try {
|
|
123
|
+
RegExp(value);
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
throw inputError(path, `Action input description at ${path} must be a valid regular expression: ${errorMessage(error)}`);
|
|
127
|
+
}
|
|
128
|
+
return value;
|
|
129
|
+
}
|
|
130
|
+
function normalizeDescriptionInputArray(value, path) {
|
|
131
|
+
if (value === undefined) {
|
|
132
|
+
return undefined;
|
|
133
|
+
}
|
|
134
|
+
if (!Array.isArray(value)) {
|
|
135
|
+
throw inputError(path, `Action input description at ${path} must be an array`);
|
|
136
|
+
}
|
|
137
|
+
if (value.length === 0) {
|
|
138
|
+
throw inputError(path, `Action input description at ${path} cannot be empty`);
|
|
139
|
+
}
|
|
140
|
+
const output = [];
|
|
141
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
142
|
+
const entryPath = `${path}[${String(index)}]`;
|
|
143
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, String(index));
|
|
144
|
+
if (descriptor === undefined || !descriptor.enumerable) {
|
|
145
|
+
throw inputError(entryPath, `Action input description at ${entryPath} must be a data property`);
|
|
146
|
+
}
|
|
147
|
+
if (!('value' in descriptor)) {
|
|
148
|
+
throw inputError(entryPath, `Action input description at ${entryPath} must be a data property`);
|
|
149
|
+
}
|
|
150
|
+
output.push(normalizeInput(descriptor.value, entryPath, new WeakSet()));
|
|
151
|
+
}
|
|
152
|
+
return Object.freeze(output);
|
|
153
|
+
}
|
|
154
|
+
function assertUniqueAllowedValues(values, path) {
|
|
155
|
+
if (values === undefined) {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
const seen = new Map();
|
|
159
|
+
values.forEach((value, index) => {
|
|
160
|
+
const key = canonicalInputJson(value);
|
|
161
|
+
const firstIndex = seen.get(key);
|
|
162
|
+
if (firstIndex !== undefined) {
|
|
163
|
+
throw inputError(`${path}.values[${String(index)}]`, `Action input description at ${path}.values[${String(index)}] duplicates ${path}.values[${String(firstIndex)}]`);
|
|
164
|
+
}
|
|
165
|
+
seen.set(key, index);
|
|
166
|
+
});
|
|
167
|
+
}
|
|
88
168
|
function normalizeInputDescription(value, path, seen) {
|
|
89
169
|
if (!isPlainObject(value)) {
|
|
90
170
|
throw inputError(path, `Action input description at ${path} must be a plain object`);
|
|
@@ -97,7 +177,24 @@ function normalizeInputDescription(value, path, seen) {
|
|
|
97
177
|
if (Object.getOwnPropertySymbols(value).length > 0) {
|
|
98
178
|
throw inputError(path, `Action input description at ${path} must not contain symbol keys`);
|
|
99
179
|
}
|
|
100
|
-
const allowedKeys = new Set([
|
|
180
|
+
const allowedKeys = new Set([
|
|
181
|
+
'kind',
|
|
182
|
+
'description',
|
|
183
|
+
'required',
|
|
184
|
+
'fields',
|
|
185
|
+
'items',
|
|
186
|
+
'values',
|
|
187
|
+
'min',
|
|
188
|
+
'max',
|
|
189
|
+
'minLength',
|
|
190
|
+
'maxLength',
|
|
191
|
+
'pattern',
|
|
192
|
+
'minItems',
|
|
193
|
+
'maxItems',
|
|
194
|
+
'additionalProperties',
|
|
195
|
+
'default',
|
|
196
|
+
'examples',
|
|
197
|
+
]);
|
|
101
198
|
const unknownKey = Object.keys(value).find((key) => !allowedKeys.has(key));
|
|
102
199
|
if (unknownKey !== undefined) {
|
|
103
200
|
const unknownPath = childPath(path, unknownKey);
|
|
@@ -109,11 +206,8 @@ function normalizeInputDescription(value, path, seen) {
|
|
|
109
206
|
if (description !== undefined) {
|
|
110
207
|
output.description = description;
|
|
111
208
|
}
|
|
112
|
-
const required = ownDataValue(value, 'required', `${path}.required`, 'Action input description');
|
|
209
|
+
const required = normalizeDescriptionBoolean(ownDataValue(value, 'required', `${path}.required`, 'Action input description'), `${path}.required`);
|
|
113
210
|
if (required !== undefined) {
|
|
114
|
-
if (typeof required !== 'boolean') {
|
|
115
|
-
throw inputError(`${path}.required`, `Action input description at ${path}.required must be a boolean`);
|
|
116
|
-
}
|
|
117
211
|
output.required = required;
|
|
118
212
|
}
|
|
119
213
|
const fieldsValue = ownDataValue(value, 'fields', `${path}.fields`, 'Action input description');
|
|
@@ -140,6 +234,79 @@ function normalizeInputDescription(value, path, seen) {
|
|
|
140
234
|
}
|
|
141
235
|
output.items = normalizeInputDescription(items, `${path}.items`, seen);
|
|
142
236
|
}
|
|
237
|
+
const min = normalizeFiniteDescriptionNumber(ownDataValue(value, 'min', `${path}.min`, 'Action input description'), `${path}.min`);
|
|
238
|
+
const max = normalizeFiniteDescriptionNumber(ownDataValue(value, 'max', `${path}.max`, 'Action input description'), `${path}.max`);
|
|
239
|
+
if (min !== undefined || max !== undefined) {
|
|
240
|
+
if (kind !== 'number') {
|
|
241
|
+
throw inputError(`${path}.min`, `Action input description number bounds can only be used when kind is number`);
|
|
242
|
+
}
|
|
243
|
+
if (min !== undefined) {
|
|
244
|
+
output.min = min;
|
|
245
|
+
}
|
|
246
|
+
if (max !== undefined) {
|
|
247
|
+
output.max = max;
|
|
248
|
+
}
|
|
249
|
+
if (min !== undefined && max !== undefined && min > max) {
|
|
250
|
+
throw inputError(`${path}.min`, `Action input description at ${path}.min must be less than or equal to ${path}.max`);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
const minLength = normalizeNonNegativeInteger(ownDataValue(value, 'minLength', `${path}.minLength`, 'Action input description'), `${path}.minLength`);
|
|
254
|
+
const maxLength = normalizeNonNegativeInteger(ownDataValue(value, 'maxLength', `${path}.maxLength`, 'Action input description'), `${path}.maxLength`);
|
|
255
|
+
const pattern = normalizePattern(ownDataValue(value, 'pattern', `${path}.pattern`, 'Action input description'), `${path}.pattern`);
|
|
256
|
+
if (minLength !== undefined || maxLength !== undefined || pattern !== undefined) {
|
|
257
|
+
if (kind !== 'string') {
|
|
258
|
+
throw inputError(`${path}.minLength`, `Action input description string constraints can only be used when kind is string`);
|
|
259
|
+
}
|
|
260
|
+
if (minLength !== undefined) {
|
|
261
|
+
output.minLength = minLength;
|
|
262
|
+
}
|
|
263
|
+
if (maxLength !== undefined) {
|
|
264
|
+
output.maxLength = maxLength;
|
|
265
|
+
}
|
|
266
|
+
if (pattern !== undefined) {
|
|
267
|
+
output.pattern = pattern;
|
|
268
|
+
}
|
|
269
|
+
if (minLength !== undefined && maxLength !== undefined && minLength > maxLength) {
|
|
270
|
+
throw inputError(`${path}.minLength`, `Action input description at ${path}.minLength must be less than or equal to ${path}.maxLength`);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
const minItems = normalizeNonNegativeInteger(ownDataValue(value, 'minItems', `${path}.minItems`, 'Action input description'), `${path}.minItems`);
|
|
274
|
+
const maxItems = normalizeNonNegativeInteger(ownDataValue(value, 'maxItems', `${path}.maxItems`, 'Action input description'), `${path}.maxItems`);
|
|
275
|
+
if (minItems !== undefined || maxItems !== undefined) {
|
|
276
|
+
if (kind !== 'array') {
|
|
277
|
+
throw inputError(`${path}.minItems`, `Action input description array constraints can only be used when kind is array`);
|
|
278
|
+
}
|
|
279
|
+
if (minItems !== undefined) {
|
|
280
|
+
output.minItems = minItems;
|
|
281
|
+
}
|
|
282
|
+
if (maxItems !== undefined) {
|
|
283
|
+
output.maxItems = maxItems;
|
|
284
|
+
}
|
|
285
|
+
if (minItems !== undefined && maxItems !== undefined && minItems > maxItems) {
|
|
286
|
+
throw inputError(`${path}.minItems`, `Action input description at ${path}.minItems must be less than or equal to ${path}.maxItems`);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
const additionalProperties = normalizeDescriptionBoolean(ownDataValue(value, 'additionalProperties', `${path}.additionalProperties`, 'Action input description'), `${path}.additionalProperties`);
|
|
290
|
+
if (additionalProperties !== undefined) {
|
|
291
|
+
if (kind !== 'object') {
|
|
292
|
+
throw inputError(`${path}.additionalProperties`, `Action input description at ${path}.additionalProperties can only be used when kind is object`);
|
|
293
|
+
}
|
|
294
|
+
output.additionalProperties = additionalProperties;
|
|
295
|
+
}
|
|
296
|
+
const values = normalizeDescriptionInputArray(ownDataValue(value, 'values', `${path}.values`, 'Action input description'), `${path}.values`);
|
|
297
|
+
if (values !== undefined) {
|
|
298
|
+
output.values = values;
|
|
299
|
+
}
|
|
300
|
+
assertUniqueAllowedValues(values, path);
|
|
301
|
+
const defaultValue = ownDataValue(value, 'default', `${path}.default`, 'Action input description');
|
|
302
|
+
if (defaultValue !== undefined) {
|
|
303
|
+
output.default = normalizeInput(defaultValue, `${path}.default`, new WeakSet());
|
|
304
|
+
}
|
|
305
|
+
const examples = normalizeDescriptionInputArray(ownDataValue(value, 'examples', `${path}.examples`, 'Action input description'), `${path}.examples`);
|
|
306
|
+
if (examples !== undefined) {
|
|
307
|
+
output.examples = examples;
|
|
308
|
+
}
|
|
309
|
+
assertDescriptionPayloads(output, path);
|
|
143
310
|
return Object.freeze(output);
|
|
144
311
|
}
|
|
145
312
|
finally {
|
|
@@ -267,6 +434,47 @@ function matchesDescriptionKind(kind, value) {
|
|
|
267
434
|
function isInputObject(value) {
|
|
268
435
|
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
269
436
|
}
|
|
437
|
+
function canonicalInputJson(value) {
|
|
438
|
+
return JSON.stringify(value);
|
|
439
|
+
}
|
|
440
|
+
function pushConstraintIssue(path, message, issues) {
|
|
441
|
+
issues.push(inputIssue('input_constraint_failed', path, message));
|
|
442
|
+
}
|
|
443
|
+
function validateInputConstraints(description, value, path, issues) {
|
|
444
|
+
if (description.values !== undefined) {
|
|
445
|
+
const allowed = new Set(description.values.map(canonicalInputJson));
|
|
446
|
+
if (!allowed.has(canonicalInputJson(value))) {
|
|
447
|
+
pushConstraintIssue(path, `Action input at ${path} must be one of the allowed values`, issues);
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
if (description.kind === 'number' && typeof value === 'number') {
|
|
451
|
+
if (description.min !== undefined && value < description.min) {
|
|
452
|
+
pushConstraintIssue(path, `Action input at ${path} must be greater than or equal to ${String(description.min)}`, issues);
|
|
453
|
+
}
|
|
454
|
+
if (description.max !== undefined && value > description.max) {
|
|
455
|
+
pushConstraintIssue(path, `Action input at ${path} must be less than or equal to ${String(description.max)}`, issues);
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
if (description.kind === 'string' && typeof value === 'string') {
|
|
459
|
+
if (description.minLength !== undefined && value.length < description.minLength) {
|
|
460
|
+
pushConstraintIssue(path, `Action input at ${path} must be at least ${String(description.minLength)} characters`, issues);
|
|
461
|
+
}
|
|
462
|
+
if (description.maxLength !== undefined && value.length > description.maxLength) {
|
|
463
|
+
pushConstraintIssue(path, `Action input at ${path} must be at most ${String(description.maxLength)} characters`, issues);
|
|
464
|
+
}
|
|
465
|
+
if (description.pattern !== undefined && !new RegExp(description.pattern).test(value)) {
|
|
466
|
+
pushConstraintIssue(path, `Action input at ${path} must match pattern ${description.pattern}`, issues);
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
if (description.kind === 'array' && Array.isArray(value)) {
|
|
470
|
+
if (description.minItems !== undefined && value.length < description.minItems) {
|
|
471
|
+
pushConstraintIssue(path, `Action input at ${path} must contain at least ${String(description.minItems)} items`, issues);
|
|
472
|
+
}
|
|
473
|
+
if (description.maxItems !== undefined && value.length > description.maxItems) {
|
|
474
|
+
pushConstraintIssue(path, `Action input at ${path} must contain at most ${String(description.maxItems)} items`, issues);
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
}
|
|
270
478
|
function validateInputDescription(description, value, path, issues) {
|
|
271
479
|
if (value === undefined) {
|
|
272
480
|
if (description.required === true) {
|
|
@@ -278,12 +486,22 @@ function validateInputDescription(description, value, path, issues) {
|
|
|
278
486
|
issues.push(inputIssue('wrong_input_type', path, `Action input at ${path} must be ${typeLabel(description.kind)}`));
|
|
279
487
|
return;
|
|
280
488
|
}
|
|
489
|
+
validateInputConstraints(description, value, path, issues);
|
|
281
490
|
if (description.kind === 'object' && description.fields !== undefined && isInputObject(value)) {
|
|
282
491
|
Object.entries(description.fields).forEach(([key, fieldDescription]) => {
|
|
283
492
|
const fieldPath = childPath(path, key);
|
|
284
493
|
validateInputDescription(fieldDescription, Object.hasOwn(value, key) ? value[key] : undefined, fieldPath, issues);
|
|
285
494
|
});
|
|
286
495
|
}
|
|
496
|
+
if (description.kind === 'object' && description.additionalProperties === false && isInputObject(value)) {
|
|
497
|
+
const fieldNames = new Set(Object.keys(description.fields ?? {}));
|
|
498
|
+
Object.keys(value).forEach((key) => {
|
|
499
|
+
if (!fieldNames.has(key)) {
|
|
500
|
+
const fieldPath = childPath(path, key);
|
|
501
|
+
issues.push(inputIssue('unknown_input_field', fieldPath, `Action input at ${fieldPath} is not allowed`));
|
|
502
|
+
}
|
|
503
|
+
});
|
|
504
|
+
}
|
|
287
505
|
if (description.kind === 'array' && description.items !== undefined && Array.isArray(value)) {
|
|
288
506
|
const itemDescription = description.items;
|
|
289
507
|
value.forEach((entry, index) => {
|
|
@@ -291,6 +509,25 @@ function validateInputDescription(description, value, path, issues) {
|
|
|
291
509
|
});
|
|
292
510
|
}
|
|
293
511
|
}
|
|
512
|
+
function assertDescriptionValue(description, value, path) {
|
|
513
|
+
const issues = [];
|
|
514
|
+
validateInputDescription(description, value, path, issues);
|
|
515
|
+
const [firstIssue] = issues;
|
|
516
|
+
if (firstIssue !== undefined) {
|
|
517
|
+
throw inputError(path, `Action input description at ${path} is invalid: ${firstIssue.message}`);
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
function assertDescriptionPayloads(description, path) {
|
|
521
|
+
description.values?.forEach((value, index) => {
|
|
522
|
+
assertDescriptionValue(description, value, `${path}.values[${String(index)}]`);
|
|
523
|
+
});
|
|
524
|
+
if (description.default !== undefined) {
|
|
525
|
+
assertDescriptionValue(description, description.default, `${path}.default`);
|
|
526
|
+
}
|
|
527
|
+
description.examples?.forEach((value, index) => {
|
|
528
|
+
assertDescriptionValue(description, value, `${path}.examples[${String(index)}]`);
|
|
529
|
+
});
|
|
530
|
+
}
|
|
294
531
|
function errorMessage(error) {
|
|
295
532
|
return error instanceof Error ? error.message : String(error);
|
|
296
533
|
}
|
package/dist/input.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,mCAAmC,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/D,MAAM;IACN,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,MAAM;CACiD,CAAC,CAAA;AAkC1D,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACxC,IAAI,CAAQ;IAErB,YAAY,OAAe,EAAE,IAAI,GAAG,OAAO;QACzC,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAA;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;CACF;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,OAAe;IAC/C,OAAO,IAAI,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AACpD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC7B,OAAO,KAAK,CAAC,WAAW,EAAE,IAAI,IAAI,QAAQ,CAAA;AAC5C,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,GAAW;IAC1C,OAAO,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAA;AACtG,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IAC9C,OAAO,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI,CAAA;AAC7D,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc,EAAE,GAAW,EAAE,KAAc;IACxE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;QACjC,KAAK;QACL,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,IAAI;KACf,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,GAAW,EAAE,IAAY,EAAE,KAAa;IAC3E,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAC9D,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,CAAC,CAAC,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC;QAC7B,MAAM,UAAU,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,IAAI,0BAA0B,CAAC,CAAA;IACvE,CAAC;IACD,OAAO,UAAU,CAAC,KAAK,CAAA;AACzB,CAAC;AAED,SAAS,8BAA8B,CAAC,KAAa,EAAE,IAAY,EAAE,KAAa;IAChF,MAAM,OAAO,GAAwB,EAAE,CAAA;IACvC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE;QACpF,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAC3B,OAAM;QACR,CAAC;QACD,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACtC,IAAI,CAAC,CAAC,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC;YAC7B,MAAM,UAAU,CAAC,SAAS,EAAE,GAAG,KAAK,OAAO,SAAS,0BAA0B,CAAC,CAAA;QACjF,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IACF,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;AACzE,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc,EAAE,IAAY;IACxD,IAAI,oCAAoC,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,UAAU,CAAC,GAAG,IAAI,OAAO,EAAE,+BAA+B,IAAI,gCAAgC,CAAC,CAAA;AACvG,CAAC;AAED,MAAM,UAAU,oCAAoC,CAAC,KAAc;IACjE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,mCAAmC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,CAAA;AACxG,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc,EAAE,IAAY;IAC5D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,UAAU,CAAC,IAAI,EAAE,+BAA+B,IAAI,mBAAmB,CAAC,CAAA;IAChF,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IACzB,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChB,MAAM,UAAU,CAAC,IAAI,EAAE,+BAA+B,IAAI,kBAAkB,CAAC,CAAA;IAC/E,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAc,EAAE,IAAY,EAAE,IAAqB;IACpF,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,UAAU,CAAC,IAAI,EAAE,+BAA+B,IAAI,yBAAyB,CAAC,CAAA;IACtF,CAAC;IAED,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,UAAU,CAAC,IAAI,EAAE,+BAA+B,IAAI,0BAA0B,CAAC,CAAA;IACvF,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAEf,IAAI,CAAC;QACH,IAAI,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnD,MAAM,UAAU,CAAC,IAAI,EAAE,+BAA+B,IAAI,+BAA+B,CAAC,CAAA;QAC5F,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;QACnF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QAC1E,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;YAC/C,MAAM,UAAU,CAAC,WAAW,EAAE,+BAA+B,WAAW,mBAAmB,CAAC,CAAA;QAC9F,CAAC;QAED,MAAM,IAAI,GAAG,oBAAoB,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,OAAO,EAAE,0BAA0B,CAAC,EAAE,IAAI,CAAC,CAAA;QAChH,MAAM,MAAM,GAMR,EAAE,IAAI,EAAE,CAAA;QAEZ,MAAM,WAAW,GAAG,wBAAwB,CAC1C,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI,cAAc,EAAE,0BAA0B,CAAC,EACrF,GAAG,IAAI,cAAc,CACtB,CAAA;QACD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;QAClC,CAAC;QAED,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,WAAW,EAAE,0BAA0B,CAAC,CAAA;QAChG,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,OAAO,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,UAAU,CAAC,GAAG,IAAI,WAAW,EAAE,+BAA+B,IAAI,6BAA6B,CAAC,CAAA;YACxG,CAAC;YACD,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAC5B,CAAC;QAED,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,SAAS,EAAE,0BAA0B,CAAC,CAAA;QAC/F,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,MAAM,UAAU,CAAC,GAAG,IAAI,SAAS,EAAE,+BAA+B,IAAI,8CAA8C,CAAC,CAAA;YACvH,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChC,MAAM,UAAU,CAAC,GAAG,IAAI,SAAS,EAAE,+BAA+B,IAAI,gCAAgC,CAAC,CAAA;YACzG,CAAC;YACD,MAAM,MAAM,GAAmD,EAAE,CAAA;YACjE,8BAA8B,CAAC,WAAW,EAAE,GAAG,IAAI,SAAS,EAAE,0BAA0B,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACjH,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBACtB,MAAM,UAAU,CAAC,GAAG,IAAI,SAAS,EAAE,+BAA+B,IAAI,4CAA4C,CAAC,CAAA;gBACrH,CAAC;gBACD,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,yBAAyB,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,IAAI,SAAS,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;YAC9G,CAAC,CAAC,CAAA;YACF,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACvC,CAAC;QAED,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,QAAQ,EAAE,0BAA0B,CAAC,CAAA;QACvF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrB,MAAM,UAAU,CAAC,GAAG,IAAI,QAAQ,EAAE,+BAA+B,IAAI,4CAA4C,CAAC,CAAA;YACpH,CAAC;YACD,MAAM,CAAC,KAAK,GAAG,yBAAyB,CAAC,KAAK,EAAE,GAAG,IAAI,QAAQ,EAAE,IAAI,CAAC,CAAA;QACxE,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACpB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uCAAuC,CAAC,KAAc;IACpE,OAAO,yBAAyB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,CAAC,CAAA;AACjE,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,KAAc;IAC7D,IAAI,CAAC;QACH,uCAAuC,CAAC,KAAK,CAAC,CAAA;QAC9C,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,KAAc,EAAE,IAAY,EAAE,IAAqB;IACzE,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC9E,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,UAAU,CAAC,IAAI,EAAE,mBAAmB,IAAI,0BAA0B,CAAC,CAAA;QAC3E,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,UAAU,CAAC,IAAI,EAAE,mBAAmB,IAAI,wBAAwB,CAAC,CAAA;IACzE,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC1F,MAAM,UAAU,CAAC,IAAI,EAAE,mBAAmB,IAAI,2BAA2B,OAAO,KAAK,EAAE,CAAC,CAAA;IAC1F,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,UAAU,CAAC,IAAI,EAAE,mBAAmB,IAAI,oBAAoB,CAAC,CAAA;IACrE,CAAC;IAED,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,UAAU,CAAC,IAAI,EAAE,mBAAmB,IAAI,0BAA0B,CAAC,CAAA;IAC3E,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAEf,IAAI,CAAC;QACH,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,MAAM,GAA0B,EAAE,CAAA;YACxC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;gBACrD,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAI,KAAK,GAAG,CAAA;gBACpC,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;gBACxE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBAC7B,MAAM,UAAU,CAAC,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,mBAAmB,IAAI,IAAI,KAAK,mCAAmC,CAAC,CAAA;gBAC5G,CAAC;gBACD,IAAI,CAAC,CAAC,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC;oBAC7B,MAAM,UAAU,CAAC,QAAQ,EAAE,mBAAmB,QAAQ,0BAA0B,CAAC,CAAA;gBACnF,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;YAC/D,CAAC;YACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC9B,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,UAAU,CAAC,IAAI,EAAE,mBAAmB,IAAI,qCAAqC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACvG,CAAC;QAED,IAAI,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnD,MAAM,UAAU,CAAC,IAAI,EAAE,mBAAmB,IAAI,+BAA+B,CAAC,CAAA;QAChF,CAAC;QAED,MAAM,MAAM,GAA2C,EAAE,CAAA;QACzD,8BAA8B,CAAC,KAAK,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACnF,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;QACvF,CAAC,CAAC,CAAA;QACF,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACpB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,KAAc;IACzD,OAAO,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,CAAC,CAAA;AACtD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,IAAI,CAAC;QACH,4BAA4B,CAAC,KAAK,CAAC,CAAA;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,IAAkC,EAAE,IAAY,EAAE,OAAe;IACnF,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;AAC/C,CAAC;AAED,SAAS,SAAS,CAAC,IAAwC;IACzD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,OAAO,iBAAiB,CAAA;QAC1B,KAAK,QAAQ;YACX,OAAO,WAAW,CAAA;QACpB,KAAK,OAAO;YACV,OAAO,UAAU,CAAA;QACnB,KAAK,QAAQ;YACX,OAAO,UAAU,CAAA;QACnB,KAAK,QAAQ;YACX,OAAO,UAAU,CAAA;QACnB,KAAK,SAAS;YACZ,OAAO,WAAW,CAAA;QACpB,KAAK,MAAM;YACT,OAAO,MAAM,CAAA;IACjB,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAwC,EAAE,KAA0B;IAClG,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,OAAO,IAAI,CAAA;QACb,KAAK,QAAQ;YACX,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC7E,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC7B,KAAK,QAAQ;YACX,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAA;QAClC,KAAK,QAAQ;YACX,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAA;QAClC,KAAK,SAAS;YACZ,OAAO,OAAO,KAAK,KAAK,SAAS,CAAA;QACnC,KAAK,MAAM;YACT,OAAO,KAAK,KAAK,IAAI,CAAA;IACzB,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAA0B;IAC/C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC;AAED,SAAS,wBAAwB,CAC/B,WAA2C,EAC3C,KAAsC,EACtC,IAAY,EACZ,MAAkC;IAElC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,IAAI,WAAW,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,EAAE,IAAI,EAAE,mBAAmB,IAAI,cAAc,CAAC,CAAC,CAAA;QAChG,CAAC;QACD,OAAM;IACR,CAAC;IAED,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,IAAI,EAAE,mBAAmB,IAAI,YAAY,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;QACnH,OAAM;IACR,CAAC;IAED,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,KAAK,SAAS,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9F,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,gBAAgB,CAAC,EAAE,EAAE;YACrE,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YACtC,wBAAwB,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;QACnH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5F,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,CAAA;QACzC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC7B,wBAAwB,CAAC,eAAe,EAAE,KAAK,EAAE,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,MAAM,CAAC,CAAA;QAC/E,CAAC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC/D,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,KAAK,YAAY,wBAAwB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAA;AACzE,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,WAAoB,EAAE,KAAc;IAC7D,IAAI,qBAAqD,CAAA;IACzD,IAAI,CAAC;QACH,qBAAqB,GAAG,uCAAuC,CAAC,WAAW,CAAC,CAAA;IAC9E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,kCAAkC,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC/G,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,MAAM,GAA+B,EAAE,CAAA;QAC7C,wBAAwB,CAAC,qBAAqB,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QAC3E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,MAAM,CAAC,MAAM,CAAC;gBACnB,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;aAC9B,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAW,CAAC;SACnC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,eAAoC,CAAA;IACxC,IAAI,CAAC;QACH,eAAe,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAA;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,sBAAsB,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACnG,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,MAAM,GAA+B,EAAE,CAAA;IAC7C,wBAAwB,CAAC,qBAAqB,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;IACjF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;SAC9B,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,MAAM,EAAE,OAAO;QACf,KAAK,EAAE,eAAe;QACtB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAW,CAAC;KACnC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,oCAAoC,CAAC,KAAsC;IACzF,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAA;AAC9E,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;AAC7D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,KAAK,CAAA;AAC/D,CAAC"}
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { WorkbookModelDescription } from './describe.js';
|
|
2
|
+
export type WorkbookModelDescriptionIssueCode = 'invalid_type' | 'missing_field' | 'unexpected_field' | 'invalid_field' | 'duplicate_action' | 'action_mismatch';
|
|
3
|
+
export interface WorkbookModelDescriptionIssue {
|
|
4
|
+
readonly code: WorkbookModelDescriptionIssueCode;
|
|
5
|
+
readonly path: string;
|
|
6
|
+
readonly message: string;
|
|
7
|
+
}
|
|
8
|
+
export type WorkbookModelDescriptionCheckResult = {
|
|
9
|
+
readonly status: 'valid';
|
|
10
|
+
readonly description: WorkbookModelDescription;
|
|
11
|
+
readonly issues: readonly [];
|
|
12
|
+
} | {
|
|
13
|
+
readonly status: 'invalid';
|
|
14
|
+
readonly issues: readonly WorkbookModelDescriptionIssue[];
|
|
15
|
+
};
|
|
16
|
+
export declare function checkWorkbookModelDescription(value: unknown): WorkbookModelDescriptionCheckResult;
|
|
17
|
+
export declare function isWorkbookModelDescription(value: unknown): value is WorkbookModelDescription;
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
import { WorkbookActionInputError, normalizeWorkbookActionInputDescription } from './input.js';
|
|
2
|
+
function modelDescriptionIssue(code, path, message) {
|
|
3
|
+
return Object.freeze({ code, path, message });
|
|
4
|
+
}
|
|
5
|
+
function freezeModelDescriptionData(value, seen = new WeakSet()) {
|
|
6
|
+
if (typeof value !== 'object' || value === null || seen.has(value)) {
|
|
7
|
+
return value;
|
|
8
|
+
}
|
|
9
|
+
seen.add(value);
|
|
10
|
+
Object.values(Object.getOwnPropertyDescriptors(value)).forEach((descriptor) => {
|
|
11
|
+
if ('value' in descriptor) {
|
|
12
|
+
freezeModelDescriptionData(descriptor.value, seen);
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
return Object.freeze(value);
|
|
16
|
+
}
|
|
17
|
+
function isPlainObject(value) {
|
|
18
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value)) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
const prototype = Object.getPrototypeOf(value);
|
|
22
|
+
return prototype === Object.prototype || prototype === null;
|
|
23
|
+
}
|
|
24
|
+
function dataValue(issues, value, key, path, required) {
|
|
25
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, key);
|
|
26
|
+
if (descriptor === undefined) {
|
|
27
|
+
if (required) {
|
|
28
|
+
issues.push(modelDescriptionIssue('missing_field', path, `Workbook model description ${path} is required`));
|
|
29
|
+
}
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
if (!('value' in descriptor)) {
|
|
33
|
+
issues.push(modelDescriptionIssue('invalid_field', path, `Workbook model description ${path} must be a data property`));
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
return descriptor.value;
|
|
37
|
+
}
|
|
38
|
+
function pushUnexpectedFields(issues, value, path, allowed) {
|
|
39
|
+
if (Object.getOwnPropertySymbols(value).length > 0) {
|
|
40
|
+
issues.push(modelDescriptionIssue('unexpected_field', path, `Workbook model description ${path} must not contain symbol keys`));
|
|
41
|
+
}
|
|
42
|
+
Object.keys(value).forEach((key) => {
|
|
43
|
+
if (!allowed.has(key)) {
|
|
44
|
+
const fieldPath = path === 'description' ? key : `${path}.${key}`;
|
|
45
|
+
issues.push(modelDescriptionIssue('unexpected_field', fieldPath, `Workbook model description ${fieldPath} is not supported`));
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function normalizeRequiredName(issues, value, path, label) {
|
|
50
|
+
if (typeof value !== 'string') {
|
|
51
|
+
issues.push(modelDescriptionIssue('invalid_field', path, `${label} must be a string`));
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
const normalized = value.trim();
|
|
55
|
+
if (normalized === '') {
|
|
56
|
+
issues.push(modelDescriptionIssue('invalid_field', path, `${label} cannot be empty`));
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
if (normalized !== value) {
|
|
60
|
+
issues.push(modelDescriptionIssue('invalid_field', path, `${label} must not have leading or trailing whitespace`));
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
return normalized;
|
|
64
|
+
}
|
|
65
|
+
function normalizeOptionalDescription(issues, value, path, label) {
|
|
66
|
+
if (value === undefined) {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
if (typeof value !== 'string') {
|
|
70
|
+
issues.push(modelDescriptionIssue('invalid_field', path, `${label} must be a string`));
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
const normalized = value.trim();
|
|
74
|
+
if (normalized === '') {
|
|
75
|
+
issues.push(modelDescriptionIssue('invalid_field', path, `${label} cannot be empty`));
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
return normalized;
|
|
79
|
+
}
|
|
80
|
+
function inputDescriptionPath(basePath, error) {
|
|
81
|
+
if (!(error instanceof WorkbookActionInputError)) {
|
|
82
|
+
return basePath;
|
|
83
|
+
}
|
|
84
|
+
if (error.path === 'input') {
|
|
85
|
+
return basePath;
|
|
86
|
+
}
|
|
87
|
+
if (error.path.startsWith('input.')) {
|
|
88
|
+
return `${basePath}${error.path.slice('input'.length)}`;
|
|
89
|
+
}
|
|
90
|
+
if (error.path.startsWith('input[')) {
|
|
91
|
+
return `${basePath}${error.path.slice('input'.length)}`;
|
|
92
|
+
}
|
|
93
|
+
return basePath;
|
|
94
|
+
}
|
|
95
|
+
function errorMessage(error) {
|
|
96
|
+
return error instanceof Error ? error.message : String(error);
|
|
97
|
+
}
|
|
98
|
+
function normalizeInputDescription(issues, value, path) {
|
|
99
|
+
if (value === undefined) {
|
|
100
|
+
return undefined;
|
|
101
|
+
}
|
|
102
|
+
try {
|
|
103
|
+
return normalizeWorkbookActionInputDescription(value);
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
issues.push(modelDescriptionIssue('invalid_field', inputDescriptionPath(path, error), `Workbook model description ${path} input is invalid: ${errorMessage(error)}`));
|
|
107
|
+
return undefined;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
function buildStringArray(issues, value, path, label) {
|
|
111
|
+
if (!Array.isArray(value)) {
|
|
112
|
+
issues.push(modelDescriptionIssue('invalid_field', path, `Workbook model description ${path} must be an array`));
|
|
113
|
+
return Object.freeze([]);
|
|
114
|
+
}
|
|
115
|
+
const output = [];
|
|
116
|
+
const seen = new Set();
|
|
117
|
+
const descriptors = Object.getOwnPropertyDescriptors(value);
|
|
118
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
119
|
+
const entryPath = `${path}[${String(index)}]`;
|
|
120
|
+
const descriptor = descriptors[String(index)];
|
|
121
|
+
if (descriptor === undefined || !descriptor.enumerable || !('value' in descriptor)) {
|
|
122
|
+
issues.push(modelDescriptionIssue('invalid_field', entryPath, `Workbook model description ${entryPath} must be a data property`));
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
const name = normalizeRequiredName(issues, descriptor.value, entryPath, label);
|
|
126
|
+
if (name === undefined) {
|
|
127
|
+
continue;
|
|
128
|
+
}
|
|
129
|
+
if (seen.has(name)) {
|
|
130
|
+
issues.push(modelDescriptionIssue('duplicate_action', entryPath, `Workbook model description ${entryPath} duplicates ${name}`));
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
seen.add(name);
|
|
134
|
+
output.push(name);
|
|
135
|
+
}
|
|
136
|
+
return Object.freeze(output);
|
|
137
|
+
}
|
|
138
|
+
function buildActionDescription(issues, value, path) {
|
|
139
|
+
if (!isPlainObject(value)) {
|
|
140
|
+
issues.push(modelDescriptionIssue('invalid_type', path, `Workbook model description ${path} must be a plain object`));
|
|
141
|
+
return {};
|
|
142
|
+
}
|
|
143
|
+
pushUnexpectedFields(issues, value, path, new Set(['name', 'description', 'input']));
|
|
144
|
+
const name = normalizeRequiredName(issues, dataValue(issues, value, 'name', `${path}.name`, true), `${path}.name`, `Workbook model description ${path}.name`);
|
|
145
|
+
const description = normalizeOptionalDescription(issues, dataValue(issues, value, 'description', `${path}.description`, false), `${path}.description`, `Workbook model description ${path}.description`);
|
|
146
|
+
const input = normalizeInputDescription(issues, dataValue(issues, value, 'input', `${path}.input`, false), `${path}.input`);
|
|
147
|
+
if (name === undefined) {
|
|
148
|
+
return {};
|
|
149
|
+
}
|
|
150
|
+
return {
|
|
151
|
+
name,
|
|
152
|
+
action: freezeModelDescriptionData({
|
|
153
|
+
name,
|
|
154
|
+
...(description !== undefined ? { description } : {}),
|
|
155
|
+
...(input !== undefined ? { input } : {}),
|
|
156
|
+
}),
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
function buildActionDescriptions(issues, value, path) {
|
|
160
|
+
if (!Array.isArray(value)) {
|
|
161
|
+
issues.push(modelDescriptionIssue('invalid_field', path, `Workbook model description ${path} must be an array`));
|
|
162
|
+
return { actions: Object.freeze([]), names: Object.freeze([]) };
|
|
163
|
+
}
|
|
164
|
+
const actions = [];
|
|
165
|
+
const names = [];
|
|
166
|
+
const seen = new Set();
|
|
167
|
+
const descriptors = Object.getOwnPropertyDescriptors(value);
|
|
168
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
169
|
+
const entryPath = `${path}[${String(index)}]`;
|
|
170
|
+
const descriptor = descriptors[String(index)];
|
|
171
|
+
if (descriptor === undefined || !descriptor.enumerable || !('value' in descriptor)) {
|
|
172
|
+
issues.push(modelDescriptionIssue('invalid_field', entryPath, `Workbook model description ${entryPath} must be a data property`));
|
|
173
|
+
continue;
|
|
174
|
+
}
|
|
175
|
+
const built = buildActionDescription(issues, descriptor.value, entryPath);
|
|
176
|
+
if (built.name === undefined || built.action === undefined) {
|
|
177
|
+
continue;
|
|
178
|
+
}
|
|
179
|
+
if (seen.has(built.name)) {
|
|
180
|
+
issues.push(modelDescriptionIssue('duplicate_action', `${entryPath}.name`, `Workbook model description ${entryPath}.name duplicates ${built.name}`));
|
|
181
|
+
continue;
|
|
182
|
+
}
|
|
183
|
+
seen.add(built.name);
|
|
184
|
+
names.push(built.name);
|
|
185
|
+
actions.push(built.action);
|
|
186
|
+
}
|
|
187
|
+
return {
|
|
188
|
+
actions: freezeModelDescriptionData(actions),
|
|
189
|
+
names: Object.freeze(names),
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
function actionNamesMatch(left, right) {
|
|
193
|
+
return left.length === right.length && left.every((name, index) => right[index] === name);
|
|
194
|
+
}
|
|
195
|
+
function buildModelDescription(value, issues) {
|
|
196
|
+
if (!isPlainObject(value)) {
|
|
197
|
+
issues.push(modelDescriptionIssue('invalid_type', 'description', 'Workbook model description must be a plain object'));
|
|
198
|
+
return {
|
|
199
|
+
actionNames: Object.freeze([]),
|
|
200
|
+
actionDetailNames: Object.freeze([]),
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
pushUnexpectedFields(issues, value, 'description', new Set(['name', 'description', 'actions', 'actionDetails', 'hasChecks']));
|
|
204
|
+
const name = normalizeRequiredName(issues, dataValue(issues, value, 'name', 'name', true), 'name', 'Workbook model description name');
|
|
205
|
+
const description = normalizeOptionalDescription(issues, dataValue(issues, value, 'description', 'description', false), 'description', 'Workbook model description description');
|
|
206
|
+
const actionNames = buildStringArray(issues, dataValue(issues, value, 'actions', 'actions', true), 'actions', 'Workbook model description action name');
|
|
207
|
+
const actionDetails = buildActionDescriptions(issues, dataValue(issues, value, 'actionDetails', 'actionDetails', true), 'actionDetails');
|
|
208
|
+
const hasChecksValue = dataValue(issues, value, 'hasChecks', 'hasChecks', true);
|
|
209
|
+
const hasChecks = typeof hasChecksValue === 'boolean' ? hasChecksValue : undefined;
|
|
210
|
+
if (hasChecksValue !== undefined && typeof hasChecksValue !== 'boolean') {
|
|
211
|
+
issues.push(modelDescriptionIssue('invalid_field', 'hasChecks', 'Workbook model description hasChecks must be a boolean'));
|
|
212
|
+
}
|
|
213
|
+
if (!actionNamesMatch(actionNames, actionDetails.names)) {
|
|
214
|
+
issues.push(modelDescriptionIssue('action_mismatch', 'actionDetails', 'Workbook model description actionDetails names must exactly match actions'));
|
|
215
|
+
}
|
|
216
|
+
if (name === undefined || hasChecks === undefined) {
|
|
217
|
+
return {
|
|
218
|
+
actionNames,
|
|
219
|
+
actionDetailNames: actionDetails.names,
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
return {
|
|
223
|
+
actionNames,
|
|
224
|
+
actionDetailNames: actionDetails.names,
|
|
225
|
+
description: freezeModelDescriptionData({
|
|
226
|
+
name,
|
|
227
|
+
...(description !== undefined ? { description } : {}),
|
|
228
|
+
actions: actionNames,
|
|
229
|
+
actionDetails: actionDetails.actions,
|
|
230
|
+
hasChecks,
|
|
231
|
+
}),
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
export function checkWorkbookModelDescription(value) {
|
|
235
|
+
const issues = [];
|
|
236
|
+
const built = buildModelDescription(value, issues);
|
|
237
|
+
if (issues.length > 0 || built.description === undefined) {
|
|
238
|
+
return freezeModelDescriptionData({
|
|
239
|
+
status: 'invalid',
|
|
240
|
+
issues,
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
return freezeModelDescriptionData({
|
|
244
|
+
status: 'valid',
|
|
245
|
+
description: built.description,
|
|
246
|
+
issues: [],
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
export function isWorkbookModelDescription(value) {
|
|
250
|
+
return checkWorkbookModelDescription(value).status === 'valid';
|
|
251
|
+
}
|
|
252
|
+
//# sourceMappingURL=model-description.js.map
|