@powerlines/schema 0.11.76 → 0.11.78

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/dist/index.cjs CHANGED
@@ -205,10 +205,9 @@ function getPrimarySchemaType(schema) {
205
205
  //#endregion
206
206
  //#region src/type-checks.ts
207
207
  const isSetNumber = (value) => typeof value === "number" && Number.isFinite(value);
208
- const isSetBoolean = (value) => typeof value === "boolean";
209
- const isSchemaLikeValue = (value) => (0, _stryke_type_checks.isSetObject)(value) || isSetBoolean(value);
208
+ const isSchemaLikeValue = (value) => (0, _stryke_type_checks.isSetObject)(value) || (0, _stryke_type_checks.isBoolean)(value);
210
209
  const isRecordOfSchemaLike = (value) => (0, _stryke_type_checks.isSetObject)(value) && Object.values(value).every((item) => isSchemaLikeValue(item));
211
- const isVocabularyMap = (value) => (0, _stryke_type_checks.isSetObject)(value) && Object.values(value).every((item) => isSetBoolean(item));
210
+ const isVocabularyMap = (value) => (0, _stryke_type_checks.isSetObject)(value) && Object.values(value).every((item) => (0, _stryke_type_checks.isBoolean)(item));
212
211
  const isStringArray = (value) => Array.isArray(value) && value.every((item) => (0, _stryke_type_checks.isSetString)(item));
213
212
  const isRecordOfStringArrays = (value) => (0, _stryke_type_checks.isSetObject)(value) && Object.values(value).every((item) => isStringArray(item));
214
213
  const JSON_SCHEMA_PRIMITIVE_TYPE_SET = new Set(JSON_SCHEMA_PRIMITIVE_TYPES);
@@ -270,8 +269,8 @@ const isUntypedFunctionArg = (value) => {
270
269
  const isRecordOfUntypedSchema = (value) => (0, _stryke_type_checks.isSetObject)(value) && Object.values(value).every((item) => isUntypedSchema(item));
271
270
  const isArrayOf = (value, predicate) => Array.isArray(value) && value.every((item) => predicate(item));
272
271
  const isTupleOfTwo = (value, aPredicate, bPredicate) => Array.isArray(value) && value.length === 2 && aPredicate(value[0]) && bPredicate(value[1]);
273
- const isOptionalString = (value) => value === void 0 || (0, _stryke_type_checks.isSetString)(value);
274
- const isOptionalBoolean = (value) => value === void 0 || isSetBoolean(value);
272
+ const isOptionalString = (value, allowEmpty = false) => value === void 0 || (0, _stryke_type_checks.isString)(value) && (allowEmpty || value.length > 0);
273
+ const isOptionalBoolean = (value) => value === void 0 || (0, _stryke_type_checks.isBoolean)(value);
275
274
  const isOptionalNumber = (value) => value === void 0 || isSetNumber(value);
276
275
  const isOptionalBigint = (value) => value === void 0 || isSetBigint(value);
277
276
  const isOptionalJsonSchema = (value) => value === void 0 || isJsonSchema(value);
@@ -282,15 +281,15 @@ const hasValidJsonSchemaKeywords = (schema) => {
282
281
  if (!isOptionalString(schema.$id)) return false;
283
282
  if (!isOptionalString(schema.$schema)) return false;
284
283
  if (schema.$vocabulary !== void 0 && !isVocabularyMap(schema.$vocabulary)) return false;
285
- if (!isOptionalString(schema.$comment)) return false;
284
+ if (!isOptionalString(schema.$comment, true)) return false;
286
285
  if (!isOptionalString(schema.$anchor)) return false;
287
286
  if (schema.$defs !== void 0 && !isRecordOfSchemaLike(schema.$defs)) return false;
288
287
  if (!isOptionalString(schema.$dynamicRef)) return false;
289
288
  if (!isOptionalString(schema.$dynamicAnchor)) return false;
290
289
  if (!isOptionalString(schema.name)) return false;
291
- if (!isOptionalString(schema.title)) return false;
292
- if (!isOptionalString(schema.description)) return false;
293
- if (!isOptionalString(schema.docs)) return false;
290
+ if (!isOptionalString(schema.title, true)) return false;
291
+ if (!isOptionalString(schema.description, true)) return false;
292
+ if (!isOptionalString(schema.docs, true)) return false;
294
293
  if (schema.examples !== void 0 && !Array.isArray(schema.examples)) return false;
295
294
  if (schema.alias !== void 0 && !isStringArray(schema.alias)) return false;
296
295
  if (schema.tags !== void 0 && !isStringArray(schema.tags)) return false;
@@ -341,7 +340,7 @@ function isJsonSchemaArray(input) {
341
340
  if (!(0, _stryke_type_checks.isSetObject)(input)) return false;
342
341
  const schema = input;
343
342
  if (!hasValidJsonSchemaKeywords(schema) || schema.type !== "array") return false;
344
- return isOptionalJsonSchemaArray(schema.prefixItems) && isOptionalJsonSchema(schema.items) && isOptionalJsonSchema(schema.contains) && isOptionalNumber(schema.minItems) && isOptionalNumber(schema.maxItems) && isOptionalBoolean(schema.uniqueItems) && isOptionalNumber(schema.minContains) && isOptionalNumber(schema.maxContains) && (schema.unevaluatedItems === void 0 || isSetBoolean(schema.unevaluatedItems) || isJsonSchema(schema.unevaluatedItems));
343
+ return isOptionalJsonSchemaArray(schema.prefixItems) && isOptionalJsonSchema(schema.items) && isOptionalJsonSchema(schema.contains) && isOptionalNumber(schema.minItems) && isOptionalNumber(schema.maxItems) && isOptionalBoolean(schema.uniqueItems) && isOptionalNumber(schema.minContains) && isOptionalNumber(schema.maxContains) && (schema.unevaluatedItems === void 0 || (0, _stryke_type_checks.isBoolean)(schema.unevaluatedItems) || isJsonSchema(schema.unevaluatedItems));
345
344
  }
346
345
  /**
347
346
  * Type guard for bigint-backed integer schemas.
@@ -396,7 +395,7 @@ function isJsonSchemaEnum(input) {
396
395
  const defaultValue = schema.default;
397
396
  if (typeName === "string") return enumValues.every((value) => (0, _stryke_type_checks.isSetString)(value)) && (defaultValue === void 0 || (0, _stryke_type_checks.isSetString)(defaultValue));
398
397
  if (typeName === "number" || typeName === "integer") return enumValues.every((value) => isSetNumber(value)) && (defaultValue === void 0 || isSetNumber(defaultValue));
399
- if (typeName === "boolean") return enumValues.every((value) => isSetBoolean(value)) && (defaultValue === void 0 || isSetBoolean(defaultValue));
398
+ if (typeName === "boolean") return enumValues.every((value) => (0, _stryke_type_checks.isBoolean)(value)) && (defaultValue === void 0 || (0, _stryke_type_checks.isBoolean)(defaultValue));
400
399
  return typeName === "null" && enumValues.every((value) => value === null) && (defaultValue === void 0 || defaultValue === null);
401
400
  }
402
401
  /**
@@ -409,7 +408,7 @@ function isJsonSchemaAllOf(input) {
409
408
  if (!(0, _stryke_type_checks.isSetObject)(input)) return false;
410
409
  const schema = input;
411
410
  if (!hasValidJsonSchemaKeywords(schema) || !isArrayOf(schema.allOf, isJsonSchema)) return false;
412
- return schema.unevaluatedProperties === void 0 || isSetBoolean(schema.unevaluatedProperties) || isJsonSchema(schema.unevaluatedProperties);
411
+ return schema.unevaluatedProperties === void 0 || (0, _stryke_type_checks.isBoolean)(schema.unevaluatedProperties) || isJsonSchema(schema.unevaluatedProperties);
413
412
  }
414
413
  /**
415
414
  * Type guard for literal-value schemas.
@@ -523,7 +522,7 @@ function isJsonSchemaDecimal(input) {
523
522
  function isJsonSchemaObject(input) {
524
523
  if (!(0, _stryke_type_checks.isSetObject)(input)) return false;
525
524
  const schema = input;
526
- return hasValidJsonSchemaKeywords(schema) && schema.type === "object" && (schema.properties === void 0 || isRecordOfSchemaLike(schema.properties)) && (schema.patternProperties === void 0 || isRecordOfSchemaLike(schema.patternProperties)) && (schema.additionalProperties === void 0 || isSetBoolean(schema.additionalProperties) || isJsonSchema(schema.additionalProperties)) && (schema.required === void 0 || isStringArray(schema.required)) && (schema.unevaluatedProperties === void 0 || isSetBoolean(schema.unevaluatedProperties) || isJsonSchema(schema.unevaluatedProperties)) && (schema.dependencies === void 0 || (0, _stryke_type_checks.isSetObject)(schema.dependencies) && Object.values(schema.dependencies).every((item) => isStringArray(item) || isJsonSchema(item))) && (schema.dependentRequired === void 0 || isRecordOfStringArrays(schema.dependentRequired)) && (schema.dependentSchemas === void 0 || isRecordOfSchemaLike(schema.dependentSchemas)) && isOptionalNumber(schema.minProperties) && isOptionalNumber(schema.maxProperties) && (schema.primaryKey === void 0 || isStringArray(schema.primaryKey)) && isOptionalString(schema.databaseSchema);
525
+ return hasValidJsonSchemaKeywords(schema) && schema.type === "object" && (schema.properties === void 0 || isRecordOfSchemaLike(schema.properties)) && (schema.patternProperties === void 0 || isRecordOfSchemaLike(schema.patternProperties)) && (schema.additionalProperties === void 0 || (0, _stryke_type_checks.isBoolean)(schema.additionalProperties) || isJsonSchema(schema.additionalProperties)) && (schema.required === void 0 || isStringArray(schema.required)) && (schema.unevaluatedProperties === void 0 || (0, _stryke_type_checks.isBoolean)(schema.unevaluatedProperties) || isJsonSchema(schema.unevaluatedProperties)) && (schema.dependencies === void 0 || (0, _stryke_type_checks.isSetObject)(schema.dependencies) && Object.values(schema.dependencies).every((item) => isStringArray(item) || isJsonSchema(item))) && (schema.dependentRequired === void 0 || isRecordOfStringArrays(schema.dependentRequired)) && (schema.dependentSchemas === void 0 || isRecordOfSchemaLike(schema.dependentSchemas)) && isOptionalNumber(schema.minProperties) && isOptionalNumber(schema.maxProperties) && (schema.primaryKey === void 0 || isStringArray(schema.primaryKey)) && isOptionalString(schema.databaseSchema);
527
526
  }
528
527
  /**
529
528
  * Type guard for string schemas.
@@ -545,7 +544,7 @@ function isJsonSchemaString(input) {
545
544
  function isJsonSchemaSet(input) {
546
545
  if (!(0, _stryke_type_checks.isSetObject)(input)) return false;
547
546
  const schema = input;
548
- return hasValidJsonSchemaKeywords(schema) && schema.type === "array" && schema.uniqueItems === true && isOptionalJsonSchemaArray(schema.prefixItems) && isOptionalJsonSchema(schema.items) && isOptionalJsonSchema(schema.contains) && isOptionalNumber(schema.minItems) && isOptionalNumber(schema.maxItems) && isOptionalNumber(schema.minContains) && isOptionalNumber(schema.maxContains) && (schema.unevaluatedItems === void 0 || isSetBoolean(schema.unevaluatedItems) || isJsonSchema(schema.unevaluatedItems));
547
+ return hasValidJsonSchemaKeywords(schema) && schema.type === "array" && schema.uniqueItems === true && isOptionalJsonSchemaArray(schema.prefixItems) && isOptionalJsonSchema(schema.items) && isOptionalJsonSchema(schema.contains) && isOptionalNumber(schema.minItems) && isOptionalNumber(schema.maxItems) && isOptionalNumber(schema.minContains) && isOptionalNumber(schema.maxContains) && (schema.unevaluatedItems === void 0 || (0, _stryke_type_checks.isBoolean)(schema.unevaluatedItems) || isJsonSchema(schema.unevaluatedItems));
549
548
  }
550
549
  /**
551
550
  * Type guard for record schemas.
@@ -556,7 +555,7 @@ function isJsonSchemaSet(input) {
556
555
  function isJsonSchemaRecord(input) {
557
556
  if (!(0, _stryke_type_checks.isSetObject)(input)) return false;
558
557
  const schema = input;
559
- return hasValidJsonSchemaKeywords(schema) && schema.type === "object" && (schema.patternProperties === void 0 || isRecordOfSchemaLike(schema.patternProperties)) && (schema.additionalProperties === void 0 || isSetBoolean(schema.additionalProperties) || isJsonSchema(schema.additionalProperties)) && isOptionalJsonSchema(schema.propertyNames);
558
+ return hasValidJsonSchemaKeywords(schema) && schema.type === "object" && (schema.patternProperties === void 0 || isRecordOfSchemaLike(schema.patternProperties)) && (schema.additionalProperties === void 0 || (0, _stryke_type_checks.isBoolean)(schema.additionalProperties) || isJsonSchema(schema.additionalProperties)) && isOptionalJsonSchema(schema.propertyNames);
560
559
  }
561
560
  /**
562
561
  * Type guard for tuple schemas.
@@ -567,7 +566,7 @@ function isJsonSchemaRecord(input) {
567
566
  function isJsonSchemaTuple(input) {
568
567
  if (!(0, _stryke_type_checks.isSetObject)(input)) return false;
569
568
  const schema = input;
570
- return hasValidJsonSchemaKeywords(schema) && schema.type === "array" && isArrayOf(schema.prefixItems, isJsonSchema) && isOptionalNumber(schema.minItems) && isOptionalNumber(schema.maxItems) && isOptionalJsonSchema(schema.items) && isOptionalJsonSchema(schema.contains) && isOptionalBoolean(schema.uniqueItems) && isOptionalNumber(schema.minContains) && isOptionalNumber(schema.maxContains) && (schema.unevaluatedItems === void 0 || isSetBoolean(schema.unevaluatedItems) || isJsonSchema(schema.unevaluatedItems));
569
+ return hasValidJsonSchemaKeywords(schema) && schema.type === "array" && isArrayOf(schema.prefixItems, isJsonSchema) && isOptionalNumber(schema.minItems) && isOptionalNumber(schema.maxItems) && isOptionalJsonSchema(schema.items) && isOptionalJsonSchema(schema.contains) && isOptionalBoolean(schema.uniqueItems) && isOptionalNumber(schema.minContains) && isOptionalNumber(schema.maxContains) && (schema.unevaluatedItems === void 0 || (0, _stryke_type_checks.isBoolean)(schema.unevaluatedItems) || isJsonSchema(schema.unevaluatedItems));
571
570
  }
572
571
  /**
573
572
  * Type guard for undefined-representing schemas.
@@ -595,7 +594,7 @@ function isJsonSchemaPrimitiveUnion(input) {
595
594
  if (!Array.isArray(schema.enum)) return false;
596
595
  if (schema.type === "string") return schema.enum.every((value) => (0, _stryke_type_checks.isSetString)(value)) && (schema.default === void 0 || (0, _stryke_type_checks.isSetString)(schema.default));
597
596
  if (schema.type === "number") return schema.enum.every((value) => isSetNumber(value)) && (schema.default === void 0 || isSetNumber(schema.default));
598
- if (schema.type === "boolean") return schema.enum.every((value) => isSetBoolean(value)) && (schema.default === void 0 || isSetBoolean(schema.default));
597
+ if (schema.type === "boolean") return schema.enum.every((value) => (0, _stryke_type_checks.isBoolean)(value)) && (schema.default === void 0 || (0, _stryke_type_checks.isBoolean)(schema.default));
599
598
  if (schema.type === "integer") {
600
599
  if (schema.format !== "int64") return false;
601
600
  return schema.enum.every((value) => isSetBigint(value)) && (schema.default === void 0 || isSetBigint(schema.default));
@@ -668,7 +667,7 @@ function isStandardSchema(input) {
668
667
  function isValibotSchema(input) {
669
668
  if (!(0, _stryke_type_checks.isSetObject)(input) || !isStandardSchema(input)) return false;
670
669
  const schema = input;
671
- return schema.kind === "schema" && (0, _stryke_type_checks.isSetString)(schema.type) && isSetBoolean(schema.async) && (0, _stryke_type_checks.isFunction)(schema.reference) && (0, _stryke_type_checks.isSetString)(schema.expects) && (0, _stryke_type_checks.isFunction)(schema["~run"]);
670
+ return schema.kind === "schema" && (0, _stryke_type_checks.isSetString)(schema.type) && (0, _stryke_type_checks.isBoolean)(schema.async) && (0, _stryke_type_checks.isFunction)(schema.reference) && (0, _stryke_type_checks.isSetString)(schema.expects) && (0, _stryke_type_checks.isFunction)(schema["~run"]);
672
671
  }
673
672
  /**
674
673
  * Type guard for JSON Schema types.
@@ -806,7 +805,7 @@ function isSchemaObject(input) {
806
805
  */
807
806
  function getJsonSchema(input) {
808
807
  const schema = isSchema(input) ? input.schema : input;
809
- if (!isJsonSchema(schema)) throw new TypeError(`The provided input is not a valid JSON Schema: ${JSON.stringify(schema, null, 2)}`);
808
+ if (!isJsonSchema(schema)) throw new TypeError(`The provided input is not a valid JSON Schema`);
810
809
  return schema;
811
810
  }
812
811
  /**
@@ -821,7 +820,7 @@ function getJsonSchema(input) {
821
820
  */
822
821
  function getJsonSchemaObject(input) {
823
822
  const schema = getJsonSchema(input);
824
- if (!isJsonSchemaObject(schema)) throw new TypeError(`The provided input is not a valid JSON Schema object: ${JSON.stringify(schema, null, 2)}`);
823
+ if (!isJsonSchemaObject(schema)) throw new TypeError(`The provided input is not a valid JSON Schema object`);
825
824
  return schema;
826
825
  }
827
826
  /**
@@ -1060,7 +1059,7 @@ function stringifyType(schema) {
1060
1059
  }
1061
1060
  if (objectSchema.type === "array" && Array.isArray(objectSchema.enum)) return objectSchema.enum.map((value) => JSON.stringify(value)).join(" | ");
1062
1061
  if (objectSchema.const !== void 0) return JSON.stringify(objectSchema.const);
1063
- if (objectSchema.type === "array" || objectSchema.items) return `${stringifyType(objectSchema.items)}[]`;
1062
+ if (objectSchema.type === "array" || objectSchema.items) return `${stringifyType(Array.isArray(objectSchema.items) ? objectSchema.items[0] : objectSchema.items)}[]`;
1064
1063
  if (objectSchema.type === "object" || objectSchema.properties || objectSchema.additionalProperties) {
1065
1064
  if (isJsonSchema(objectSchema.additionalProperties)) return `{ [key: string]: ${stringifyType(objectSchema.additionalProperties)} }`;
1066
1065
  if (isJsonSchemaObject(objectSchema)) {
@@ -1085,10 +1084,262 @@ function getJsonSchemaType(value) {
1085
1084
  return (0, _stryke_type_checks_is_null.isNull)(value) ? "null" : (0, _stryke_type_checks_is_boolean.isBoolean)(value) ? "boolean" : (0, _stryke_type_checks.isInteger)(value) ? "integer" : (0, _stryke_type_checks_is_number.isNumber)(value) ? "number" : (0, _stryke_type_checks.isString)(value) ? "string" : (0, _stryke_type_checks.isObject)(value) ? "object" : Array.isArray(value) ? "array" : void 0;
1086
1085
  }
1087
1086
  /**
1087
+ * Resolves a local JSON Schema `$ref` (e.g. `#/$defs/Name`) to the referenced definition name.
1088
+ */
1089
+ function resolveLocalRefName(ref) {
1090
+ return /^#\/(?:definitions|\$defs)\/(.+)$/.exec(ref)?.[1];
1091
+ }
1092
+ /**
1093
+ * Converts an arbitrary definition name into a safe JavaScript identifier suffix.
1094
+ */
1095
+ function toParserIdentifier(name) {
1096
+ const cleaned = name.replace(/[^\w$]/gu, "_");
1097
+ return `parse_${/^\d/u.test(cleaned) ? `_${cleaned}` : cleaned}`;
1098
+ }
1099
+ /**
1100
+ * Returns the list of JSON Schema `type` keyword values declared on a fragment,
1101
+ * preserving `object` and `array` (which {@link readSchemaTypes} intentionally drops).
1102
+ */
1103
+ function readDeclaredTypes(schema) {
1104
+ const type = schema.type;
1105
+ if (Array.isArray(type)) return [...type];
1106
+ return type ? [type] : [];
1107
+ }
1108
+ /**
1109
+ * Generates a JavaScript expression that builds a path string for a child element.
1110
+ */
1111
+ function childPath(pathExpr, segment) {
1112
+ return `${pathExpr} + ${JSON.stringify(segment)}`;
1113
+ }
1114
+ /**
1115
+ * Generates standalone parser code for a JSON Schema.
1116
+ *
1117
+ * @remarks
1118
+ * The generated `parse` function reads an arbitrary input value and converts it
1119
+ * into the shape described by the schema. It walks the schema recursively to:
1120
+ *
1121
+ * - resolve local `$ref` pointers (`#/$defs/*` and `#/definitions/*`) into
1122
+ * dedicated parser functions so recursive schemas are supported,
1123
+ * - apply `default` values for object properties (and root/array values) that
1124
+ * are missing from the input,
1125
+ * - coerce primitive values to the declared type (for example `"42"` to `42`
1126
+ * for an `integer` schema, or `1` to `true` for a `boolean` schema),
1127
+ * - validate `const`, `enum`, `oneOf`/`anyOf` and `allOf` constraints, and
1128
+ * - collect detailed, path-aware errors and throw a `ParserError` when the
1129
+ * input cannot be converted into a valid value.
1130
+ *
1131
+ * @param schema - The JSON Schema to generate parser code for.
1132
+ * @returns The generated standalone parser code as a string.
1133
+ */
1134
+ function generateParserCode(schema) {
1135
+ const rootSchema = typeof schema === "boolean" ? schema : schema;
1136
+ const definitions = typeof rootSchema === "boolean" ? {} : {
1137
+ ...rootSchema.definitions,
1138
+ ...rootSchema.$defs
1139
+ };
1140
+ /**
1141
+ * Generates a JavaScript expression that parses `valueExpr` against `fragment`.
1142
+ * The expression has access to an in-scope mutable `errors` array.
1143
+ */
1144
+ function generateExpression(fragment, valueExpr, pathExpr) {
1145
+ if (typeof fragment === "boolean") return fragment ? valueExpr : `((value, path) => { errors.push({ path, message: "No value is allowed at this location" }); return value; })(${valueExpr}, ${pathExpr})`;
1146
+ const view = fragment;
1147
+ if ((0, _stryke_type_checks_is_set_string.isSetString)(view.$ref)) {
1148
+ const refName = resolveLocalRefName(view.$ref);
1149
+ if (refName && refName in definitions) return `${toParserIdentifier(refName)}(${valueExpr}, ${pathExpr}, errors)`;
1150
+ return valueExpr;
1151
+ }
1152
+ return `((value, path) => {\n${generateBody(view)}\n})(${valueExpr}, ${pathExpr})`;
1153
+ }
1154
+ /**
1155
+ * Generates the body statements (including a terminating `return`) for the
1156
+ * arrow function produced by {@link generateExpression}.
1157
+ */
1158
+ function generateBody(view) {
1159
+ const lines = [];
1160
+ const nullable = isSchemaNullable(view);
1161
+ if (view.default !== void 0) lines.push(`if (value === undefined) { return ${JSON.stringify(view.default)}; }`);
1162
+ else lines.push(`if (value === undefined) { errors.push({ path, message: "A value is required" }); return value; }`);
1163
+ if (nullable) lines.push(`if (value === null) { return null; }`);
1164
+ if (view.const !== void 0) {
1165
+ const constValue = JSON.stringify(view.const);
1166
+ lines.push(`if (JSON.stringify(value) !== ${JSON.stringify(constValue)}) { errors.push({ path, message: "Expected the constant value " + ${JSON.stringify(constValue)} }); }`, `return ${constValue};`);
1167
+ return lines.join("\n");
1168
+ }
1169
+ if (Array.isArray(view.enum)) {
1170
+ const enumValues = JSON.stringify(view.enum);
1171
+ lines.push(`if (!${enumValues}.some(allowed => JSON.stringify(allowed) === JSON.stringify(value))) { errors.push({ path, message: "Expected one of " + ${JSON.stringify(enumValues)} }); }`, `return value;`);
1172
+ return lines.join("\n");
1173
+ }
1174
+ if (Array.isArray(view.oneOf) || Array.isArray(view.anyOf)) {
1175
+ const branchFns = (view.oneOf ?? view.anyOf ?? []).map((branch) => `(value, path, errors) => (${generateExpression(branch, "value", "path")})`).join(",\n");
1176
+ lines.push(`const branches = [\n${branchFns}\n];`, `for (const branch of branches) {`, ` const branchErrors = [];`, ` const branchResult = branch(value, path, branchErrors);`, ` if (branchErrors.length === 0) { return branchResult; }`, `}`, `errors.push({ path, message: "Value does not match any of the allowed schemas" });`, `return value;`);
1177
+ return lines.join("\n");
1178
+ }
1179
+ if (Array.isArray(view.allOf)) {
1180
+ const { allOf, ...rest } = view;
1181
+ const merged = merge(rest, ...allOf);
1182
+ lines.push(`return ${generateExpression(merged, "value", "path")};`);
1183
+ return lines.join("\n");
1184
+ }
1185
+ const declaredTypes = readDeclaredTypes(view);
1186
+ switch (getPrimarySchemaType(view) ?? declaredTypes.find((type) => type !== "null") ?? (view.properties ? "object" : view.items ? "array" : void 0)) {
1187
+ case "object":
1188
+ lines.push(generateObjectBody(view));
1189
+ break;
1190
+ case "array":
1191
+ lines.push(generateArrayBody(view));
1192
+ break;
1193
+ case "string":
1194
+ lines.push(`if (typeof value === "string") { return value; }`, `if (typeof value === "number" || typeof value === "boolean") { return String(value); }`, `errors.push({ path, message: "Expected a string value" });`, `return value;`);
1195
+ break;
1196
+ case "integer":
1197
+ lines.push(`if (typeof value === "number" && Number.isInteger(value)) { return value; }`, `if (typeof value === "string" && value.trim() !== "" && Number.isInteger(Number(value))) { return Number(value); }`, `if (typeof value === "boolean") { return value ? 1 : 0; }`, `errors.push({ path, message: "Expected an integer value" });`, `return value;`);
1198
+ break;
1199
+ case "number":
1200
+ lines.push(`if (typeof value === "number") { return value; }`, `if (typeof value === "string" && value.trim() !== "" && !Number.isNaN(Number(value))) { return Number(value); }`, `if (typeof value === "boolean") { return value ? 1 : 0; }`, `errors.push({ path, message: "Expected a number value" });`, `return value;`);
1201
+ break;
1202
+ case "boolean":
1203
+ lines.push(`if (typeof value === "boolean") { return value; }`, `if (value === "true" || value === 1) { return true; }`, `if (value === "false" || value === 0) { return false; }`, `errors.push({ path, message: "Expected a boolean value" });`, `return value;`);
1204
+ break;
1205
+ case "null":
1206
+ lines.push(`if (value === null) { return null; }`, `errors.push({ path, message: "Expected a null value" });`, `return value;`);
1207
+ break;
1208
+ case void 0:
1209
+ default:
1210
+ lines.push(`return value;`);
1211
+ break;
1212
+ }
1213
+ return lines.join("\n");
1214
+ }
1215
+ /**
1216
+ * Generates the parsing statements for an `object` schema, applying property
1217
+ * defaults and recursing into each declared property.
1218
+ */
1219
+ function generateObjectBody(view) {
1220
+ const lines = [`if (typeof value !== "object" || value === null || Array.isArray(value)) { errors.push({ path, message: "Expected an object value" }); return value; }`, `const result = {};`];
1221
+ const properties = isJsonSchemaObject(view) ? getPropertiesList(view) : [];
1222
+ const propertyNames = /* @__PURE__ */ new Set();
1223
+ for (const property of properties) {
1224
+ const name = property.name;
1225
+ propertyNames.add(name);
1226
+ const accessor = `value[${JSON.stringify(name)}]`;
1227
+ const propertyPath = childPath("path", `.${name}`);
1228
+ const propertyExpression = generateExpression(property, accessor, propertyPath);
1229
+ const missingBranch = property.default !== void 0 ? `result[${JSON.stringify(name)}] = ${JSON.stringify(property.default)};` : property.required ? `errors.push({ path: ${propertyPath}, message: "Required property is missing" });` : ``;
1230
+ lines.push(`if (${accessor} !== undefined) {`, ` result[${JSON.stringify(name)}] = ${propertyExpression};`, `}${missingBranch ? ` else { ${missingBranch} }` : ``}`);
1231
+ }
1232
+ const additional = view.additionalProperties;
1233
+ if (isJsonSchema(additional)) {
1234
+ const additionalExpression = generateExpression(additional, `value[key]`, `path + "." + key`);
1235
+ lines.push(`for (const key of Object.keys(value)) {`, ` if (${JSON.stringify([...propertyNames])}.includes(key)) { continue; }`, ` result[key] = ${additionalExpression};`, `}`);
1236
+ } else if (additional !== false) lines.push(`for (const key of Object.keys(value)) {`, ` if (${JSON.stringify([...propertyNames])}.includes(key)) { continue; }`, ` result[key] = value[key];`, `}`);
1237
+ lines.push(`return result;`);
1238
+ return lines.join("\n");
1239
+ }
1240
+ /**
1241
+ * Generates the parsing statements for an `array` schema, recursing into each
1242
+ * item (supporting both list and tuple `items`/`prefixItems` forms).
1243
+ */
1244
+ function generateArrayBody(view) {
1245
+ const lines = [`if (!Array.isArray(value)) { errors.push({ path, message: "Expected an array value" }); return value; }`];
1246
+ const tupleItems = view.prefixItems ?? (Array.isArray(view.items) ? view.items : void 0);
1247
+ if (tupleItems) {
1248
+ const listItems = !Array.isArray(view.items) ? view.items : void 0;
1249
+ const itemExpressions = tupleItems.map((item, index) => `index === ${index} ? (${generateExpression(item, "item", childPath("path", `[${index}]`))})`);
1250
+ const fallbackExpression = listItems ? generateExpression(listItems, "item", `path + "[" + index + "]"`) : "item";
1251
+ lines.push(`return value.map((item, index) => ${itemExpressions.join(" : ")}${itemExpressions.length > 0 ? " : " : ""}${fallbackExpression});`);
1252
+ return lines.join("\n");
1253
+ }
1254
+ const itemExpression = generateExpression(view.items ?? true, "item", `path + "[" + index + "]"`);
1255
+ lines.push(`return value.map((item, index) => ${itemExpression});`);
1256
+ return lines.join("\n");
1257
+ }
1258
+ const parserFunctions = Object.entries(definitions).map(([name, definition]) => `function ${toParserIdentifier(name)}(value, path, errors) {\n return ${generateExpression(definition, "value", "path")};\n}`);
1259
+ const rootExpression = generateExpression(schema, "value", "\"$\"");
1260
+ return `/**
1261
+ * Error thrown when an input value cannot be parsed into the type described by the JSON Schema.
1262
+ */
1263
+ export class ParserError extends Error {
1264
+ constructor(errors) {
1265
+ super(
1266
+ "Failed to parse the provided value against the JSON Schema:\\n" +
1267
+ errors.map(error => " - " + error.path + ": " + error.message).join("\\n")
1268
+ );
1269
+
1270
+ this.name = "ParserError";
1271
+ this.errors = errors;
1272
+ }
1273
+ }
1274
+
1275
+ ${parserFunctions.join("\n\n")}
1276
+
1277
+ /**
1278
+ * Parses an input value into the type described by the JSON Schema.
1279
+ *
1280
+ * @remarks
1281
+ * The parser applies default values for missing properties, coerces primitive
1282
+ * values to the declared type, and throws a {@link ParserError} (containing
1283
+ * a detailed list of validation errors) when the value cannot be converted into
1284
+ * a valid result.
1285
+ *
1286
+ * @param value - The input value to parse.
1287
+ * @returns The parsed value conforming to the schema.
1288
+ */
1289
+ export function parse(value) {
1290
+ const errors = [];
1291
+ const result = ${rootExpression};
1292
+ if (errors.length > 0) {
1293
+ throw new ParserError(errors);
1294
+ }
1295
+
1296
+ return result;
1297
+ }`;
1298
+ }
1299
+ /**
1088
1300
  * Generates standalone JSON Schema validation code using Ajv.
1301
+ *
1302
+ * @remarks
1303
+ * The generated code includes a validation function that can be used to validate data against the provided JSON Schema at runtime. The validation function will throw an error if the data does not conform to the schema, providing detailed information about the validation errors.
1304
+ *
1305
+ * @param schema - The JSON Schema to generate validation code for.
1306
+ * @param refsOrFuncts - Optional additional references or functions for Ajv's standalone code generation.
1307
+ * @returns The generated standalone validation code as a string.
1308
+ */
1309
+ function generateValidationCode(schema, refsOrFuncts) {
1310
+ return (0, ajv_dist_standalone_index_js.default)(getValidator(schema), refsOrFuncts);
1311
+ }
1312
+ /**
1313
+ * Generates standalone JavaScript code for validating and parsing data according to a JSON Schema.
1314
+ *
1315
+ * @remarks
1316
+ * The generated code includes:
1317
+ * - Validation code generated by Ajv for the provided JSON Schema, which can be used to validate data against the schema at runtime. The validation function will throw an error if the data does not conform to the schema, providing detailed information about the validation errors.
1318
+ * - Parsing code generated for the provided JSON Schema, which can be used to parse and validate data against the schema at runtime. The parsing function will apply default values specified in the schema if they are not present in the input data, throw an error if the input data does not conform to the schema (providing detailed information about the validation errors), and return the parsed data if it is valid according to the schema.
1319
+ *
1320
+ * @param schema - The JSON Schema to generate code for.
1321
+ * @param refsOrFuncts - Optional additional references or functions for Ajv's standalone code generation.
1322
+ * @returns The generated standalone validation and parsing code as a string.
1089
1323
  */
1090
- async function generateCode(schemas, refsOrFuncts) {
1091
- return (0, ajv_dist_standalone_index_js.default)(getValidator(schemas), refsOrFuncts);
1324
+ function generateCode(schema, refsOrFuncts) {
1325
+ return `
1326
+ /**
1327
+ * Validation code generated by Ajv for the provided JSON Schema. This code can be used to validate data against the schema at runtime. The validation function will throw an error if the data does not conform to the schema, providing detailed information about the validation errors.
1328
+ *
1329
+ * @see https://ajv.js.org/standalone.html
1330
+ */
1331
+
1332
+ ${generateValidationCode(schema, refsOrFuncts)}
1333
+
1334
+ /**
1335
+ * Parsing code generated for the provided JSON Schema. This code can be used to parse and validate data against the schema at runtime. The parsing function will do the following:
1336
+ * - Apply default values specified in the schema if they are not present in the input data
1337
+ * - Throw an error if the input data does not conform to the schema, providing detailed information about the validation errors
1338
+ * - Return the parsed data if it is valid according to the schema
1339
+ */
1340
+
1341
+ ${generateParserCode(schema)}
1342
+ `;
1092
1343
  }
1093
1344
 
1094
1345
  //#endregion
@@ -2132,6 +2383,8 @@ exports.extractSchemaWithSource = extractSchemaWithSource;
2132
2383
  exports.extractSource = extractSource;
2133
2384
  exports.extractVariant = extractVariant;
2134
2385
  exports.generateCode = generateCode;
2386
+ exports.generateParserCode = generateParserCode;
2387
+ exports.generateValidationCode = generateValidationCode;
2135
2388
  exports.getCacheDirectory = getCacheDirectory;
2136
2389
  exports.getCacheFilePath = getCacheFilePath;
2137
2390
  exports.getJsonSchema = getJsonSchema;
package/dist/index.d.cts CHANGED
@@ -1197,10 +1197,51 @@ declare function stringifyType(schema?: JsonSchema): string;
1197
1197
  * @returns A string representation of the value's type, which may be influenced by the provided JSON Schema primitive type hint. The function handles various JavaScript types and formats them accordingly, including special handling for `undefined`, `null`, booleans, numbers (with formatting), strings, objects, and arrays. If a specific type hint is provided, it will take precedence in determining the string representation of the value.
1198
1198
  */
1199
1199
  declare function getJsonSchemaType(value?: unknown): JsonSchemaType | undefined;
1200
+ /**
1201
+ * Generates standalone parser code for a JSON Schema.
1202
+ *
1203
+ * @remarks
1204
+ * The generated `parse` function reads an arbitrary input value and converts it
1205
+ * into the shape described by the schema. It walks the schema recursively to:
1206
+ *
1207
+ * - resolve local `$ref` pointers (`#/$defs/*` and `#/definitions/*`) into
1208
+ * dedicated parser functions so recursive schemas are supported,
1209
+ * - apply `default` values for object properties (and root/array values) that
1210
+ * are missing from the input,
1211
+ * - coerce primitive values to the declared type (for example `"42"` to `42`
1212
+ * for an `integer` schema, or `1` to `true` for a `boolean` schema),
1213
+ * - validate `const`, `enum`, `oneOf`/`anyOf` and `allOf` constraints, and
1214
+ * - collect detailed, path-aware errors and throw a `ParserError` when the
1215
+ * input cannot be converted into a valid value.
1216
+ *
1217
+ * @param schema - The JSON Schema to generate parser code for.
1218
+ * @returns The generated standalone parser code as a string.
1219
+ */
1220
+ declare function generateParserCode(schema: JsonSchema): string;
1200
1221
  /**
1201
1222
  * Generates standalone JSON Schema validation code using Ajv.
1223
+ *
1224
+ * @remarks
1225
+ * The generated code includes a validation function that can be used to validate data against the provided JSON Schema at runtime. The validation function will throw an error if the data does not conform to the schema, providing detailed information about the validation errors.
1226
+ *
1227
+ * @param schema - The JSON Schema to generate validation code for.
1228
+ * @param refsOrFuncts - Optional additional references or functions for Ajv's standalone code generation.
1229
+ * @returns The generated standalone validation code as a string.
1230
+ */
1231
+ declare function generateValidationCode(schema: JsonSchema, refsOrFuncts?: Parameters<typeof standaloneCode>[1]): string;
1232
+ /**
1233
+ * Generates standalone JavaScript code for validating and parsing data according to a JSON Schema.
1234
+ *
1235
+ * @remarks
1236
+ * The generated code includes:
1237
+ * - Validation code generated by Ajv for the provided JSON Schema, which can be used to validate data against the schema at runtime. The validation function will throw an error if the data does not conform to the schema, providing detailed information about the validation errors.
1238
+ * - Parsing code generated for the provided JSON Schema, which can be used to parse and validate data against the schema at runtime. The parsing function will apply default values specified in the schema if they are not present in the input data, throw an error if the input data does not conform to the schema (providing detailed information about the validation errors), and return the parsed data if it is valid according to the schema.
1239
+ *
1240
+ * @param schema - The JSON Schema to generate code for.
1241
+ * @param refsOrFuncts - Optional additional references or functions for Ajv's standalone code generation.
1242
+ * @returns The generated standalone validation and parsing code as a string.
1202
1243
  */
1203
- declare function generateCode(schemas: JsonSchema, refsOrFuncts?: Parameters<typeof standaloneCode>[1]): Promise<string>;
1244
+ declare function generateCode(schema: JsonSchema, refsOrFuncts?: Parameters<typeof standaloneCode>[1]): string;
1204
1245
  //#endregion
1205
1246
  //#region src/extract.d.ts
1206
1247
  /**
@@ -1874,5 +1915,5 @@ declare module "zod" {
1874
1915
  }
1875
1916
  }
1876
1917
  //#endregion
1877
- export { BaseSchemaSource, BundleOptions, ExtractedSchema, GetPropertiesResult, JSON_SCHEMA_METADATA_KEYS, JSON_SCHEMA_PRIMITIVE_TYPES, JSON_SCHEMA_TYPES, JsonSchema, JsonSchemaAllOf, JsonSchemaAny, JsonSchemaAnyOf, JsonSchemaArray, JsonSchemaBigint, JsonSchemaBoolean, JsonSchemaConditionalKeywords, JsonSchemaDate, JsonSchemaDecimal, JsonSchemaDecimalFormat, JsonSchemaEnum, JsonSchemaInteger, JsonSchemaIntegerFormat, JsonSchemaKeywords, JsonSchemaLike, JsonSchemaLiteral, JsonSchemaLogicKeywords, JsonSchemaMap, JsonSchemaMetadataKeywords, JsonSchemaNativeEnum, JsonSchemaNever, JsonSchemaNull, JsonSchemaNullable, JsonSchemaNumber, JsonSchemaNumberFormat, JsonSchemaObject, JsonSchemaPrimitiveType, JsonSchemaPrimitiveUnion, JsonSchemaRecord, JsonSchemaRecordPropertyNames, JsonSchemaRef, JsonSchemaSchemaSource, JsonSchemaSet, JsonSchemaString, JsonSchemaStringFormat, JsonSchemaTuple, JsonSchemaType, JsonSchemaTypeNames, JsonSchemaUndefined, JsonSchemaUnion, JsonSchemaUnknown, ReflectionSchemaSource, Schema, SchemaInput, SchemaInputVariant, SchemaSource, SchemaSourceInput, SchemaSourceVariant, StandardSchemaSchemaSource, UntypedInputObject, UntypedSchema, UntypedSchemaSource, VALID_SOURCE_FILE_EXTENSIONS, ValibotSchema, ValibotSchemaSource, Zod3SchemaSource, addProperty, applyJsonSchemaMetadata, bundle, bundleReferences, extract, extractHash, extractJsonSchema, extractReflection, extractResolvedVariant, extractSchema, extractSchemaWithSource, extractSource, extractVariant, generateCode, getCacheDirectory, getCacheFilePath, getJsonSchema, getJsonSchemaObject, getJsonSchemaType, getPrimarySchemaType, getProperties, getPropertiesList, isJsonSchema, isJsonSchemaAllOf, isJsonSchemaAny, isJsonSchemaAnyOf, isJsonSchemaArray, isJsonSchemaBigint, isJsonSchemaBoolean, isJsonSchemaDate, isJsonSchemaDecimal, isJsonSchemaEnum, isJsonSchemaInteger, isJsonSchemaKeywords, isJsonSchemaLiteral, isJsonSchemaMap, isJsonSchemaNativeEnum, isJsonSchemaNever, isJsonSchemaNull, isJsonSchemaNullable, isJsonSchemaNumber, isJsonSchemaObject, isJsonSchemaPrimitiveType, isJsonSchemaPrimitiveUnion, isJsonSchemaRecord, isJsonSchemaRef, isJsonSchemaSet, isJsonSchemaString, isJsonSchemaTuple, isJsonSchemaType, isJsonSchemaUndefined, isJsonSchemaUnion, isJsonSchemaUnknown, isNullOnlyJsonSchema, isPropertyOptional, isSchema, isSchemaNullable, isSchemaObject, isSchemaWithSource, isStandardSchema, isUntypedInput, isUntypedInputStrict, isUntypedSchema, isUntypedSchemaStrict, isValibotSchema, isValidSchemaInputFile, merge, readSchema, readSchemaSafe, readSchemaTypes, reflectionToJsonSchema, resolve, resolveModule, resolveReflection, stringifyType, stringifyValue, writeSchema };
1918
+ export { BaseSchemaSource, BundleOptions, ExtractedSchema, GetPropertiesResult, JSON_SCHEMA_METADATA_KEYS, JSON_SCHEMA_PRIMITIVE_TYPES, JSON_SCHEMA_TYPES, JsonSchema, JsonSchemaAllOf, JsonSchemaAny, JsonSchemaAnyOf, JsonSchemaArray, JsonSchemaBigint, JsonSchemaBoolean, JsonSchemaConditionalKeywords, JsonSchemaDate, JsonSchemaDecimal, JsonSchemaDecimalFormat, JsonSchemaEnum, JsonSchemaInteger, JsonSchemaIntegerFormat, JsonSchemaKeywords, JsonSchemaLike, JsonSchemaLiteral, JsonSchemaLogicKeywords, JsonSchemaMap, JsonSchemaMetadataKeywords, JsonSchemaNativeEnum, JsonSchemaNever, JsonSchemaNull, JsonSchemaNullable, JsonSchemaNumber, JsonSchemaNumberFormat, JsonSchemaObject, JsonSchemaPrimitiveType, JsonSchemaPrimitiveUnion, JsonSchemaRecord, JsonSchemaRecordPropertyNames, JsonSchemaRef, JsonSchemaSchemaSource, JsonSchemaSet, JsonSchemaString, JsonSchemaStringFormat, JsonSchemaTuple, JsonSchemaType, JsonSchemaTypeNames, JsonSchemaUndefined, JsonSchemaUnion, JsonSchemaUnknown, ReflectionSchemaSource, Schema, SchemaInput, SchemaInputVariant, SchemaSource, SchemaSourceInput, SchemaSourceVariant, StandardSchemaSchemaSource, UntypedInputObject, UntypedSchema, UntypedSchemaSource, VALID_SOURCE_FILE_EXTENSIONS, ValibotSchema, ValibotSchemaSource, Zod3SchemaSource, addProperty, applyJsonSchemaMetadata, bundle, bundleReferences, extract, extractHash, extractJsonSchema, extractReflection, extractResolvedVariant, extractSchema, extractSchemaWithSource, extractSource, extractVariant, generateCode, generateParserCode, generateValidationCode, getCacheDirectory, getCacheFilePath, getJsonSchema, getJsonSchemaObject, getJsonSchemaType, getPrimarySchemaType, getProperties, getPropertiesList, isJsonSchema, isJsonSchemaAllOf, isJsonSchemaAny, isJsonSchemaAnyOf, isJsonSchemaArray, isJsonSchemaBigint, isJsonSchemaBoolean, isJsonSchemaDate, isJsonSchemaDecimal, isJsonSchemaEnum, isJsonSchemaInteger, isJsonSchemaKeywords, isJsonSchemaLiteral, isJsonSchemaMap, isJsonSchemaNativeEnum, isJsonSchemaNever, isJsonSchemaNull, isJsonSchemaNullable, isJsonSchemaNumber, isJsonSchemaObject, isJsonSchemaPrimitiveType, isJsonSchemaPrimitiveUnion, isJsonSchemaRecord, isJsonSchemaRef, isJsonSchemaSet, isJsonSchemaString, isJsonSchemaTuple, isJsonSchemaType, isJsonSchemaUndefined, isJsonSchemaUnion, isJsonSchemaUnknown, isNullOnlyJsonSchema, isPropertyOptional, isSchema, isSchemaNullable, isSchemaObject, isSchemaWithSource, isStandardSchema, isUntypedInput, isUntypedInputStrict, isUntypedSchema, isUntypedSchemaStrict, isValibotSchema, isValidSchemaInputFile, merge, readSchema, readSchemaSafe, readSchemaTypes, reflectionToJsonSchema, resolve, resolveModule, resolveReflection, stringifyType, stringifyValue, writeSchema };
1878
1919
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/bundle.ts","../src/constants.ts","../src/types.ts","../src/codegen.ts","../src/extract.ts","../src/helpers.ts","../src/metadata.ts","../src/persistence.ts","../src/reflection.ts","../src/resolve.ts","../src/type-checks.ts","../src/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/bundle.ts","../src/constants.ts","../src/types.ts","../src/codegen.ts","../src/extract.ts","../src/helpers.ts","../src/metadata.ts","../src/persistence.ts","../src/reflection.ts","../src/resolve.ts","../src/type-checks.ts","../src/index.ts"],"mappings":";;;;;;;;;;;;KA6BY,aAAA,GAAgB,WAAA,CAAY,YAAA;EACtC,IAAA;EACA,OAAA,GAAU,WAAA,CAAY,cAAA;AAAA;;;;;AAFxB;;;;iBAasB,MAAA,kBAAwB,iBAAA,EAC5C,OAAA,EAAS,QAAA,EACT,IAAA,UACA,OAAA,GAAS,aAAA,GACR,OAAA,CAAQ,UAAA;;;cC1BE,4BAAA;AAAA,cAiBA,mBAAA;EAAA;;;;;;;;cAUA,2BAAA;AAAA,cAQA,iBAAA;AAAA,cAMA,yBAAA;;;;;;KChCD,kBAAA,GAAqB,WAAW;;AFA5C;;KEKY,aAAA,GAAgB,QAAO;;;;;;;;KASvB,aAAA,qDAGK,SAAA,YAAqB,SAAA,aAClC,UAAA,CAAW,MAAA,EAAQ,OAAA,EAAS,MAAA;;;;;;KAOpB,uBAAA,WACF,2BAA2B;AFbrC;;;;;AAAA,KEoBY,cAAA,WAAyB,iBAAiB;;;;KAK1C,uBAAA;;;;KAaA,uBAAA;;;;KAKA,sBAAA,GACR,uBAAA,GACA,uBAAuB;;;AFzCN;KE8CT,sBAAA;;;ADxEZ;;;UCqGiB,0BAAA;EDtFK;AAEtB;;;;;EC2FE,GAAA;;;;;;;EAQA,OAAA;EDzFW;;;;AAMH;AAEV;ECyFE,WAAA,GAAc,MAAA;;;ADrFN;AAEV;;;EC2FE,QAAA;ED7EyD;;;;AC9C3D;EAkIE,OAAA;;;AAlI0C;AAK5C;;;;AAAmC;EAuIjC,KAAA,GAAQ,MAAA,SAAe,UAAA;EA9HA;;;;;;;EAuIvB,WAAA;EAnIY;;;;;;EA2IZ,cAAA;EA3IE;;;EAgJF,IAAA;EAhJoC;AAAA;AAOtC;EA8IE,KAAA;;;AA7ImC;EAkJnC,WAAA;EA3IwB;;;EAgJxB,IAAA;EA3IU;;;EAgJV,QAAA;EAhJiC;AAanC;;EAwIE,KAAA;EAxIiC;AAAA;AAKnC;EAwIE,IAAA;;;AAtIyB;EA2IzB,UAAA;IAGM,OAAA;IAAkB,KAAA;IAAgB,WAAA;EAAA;EA5GzB;;;EAiHf,MAAA;EAjEuB;;;EAsEvB,MAAA;EA/GA;;;;;EAsHA,QAAA;EA7EA;;;EAkFA,OAAA;EAjEA;;;EAsEA,QAAA;EAlDA;;;EAuDA,SAAA;AAAA;;;;;;;UASe,uBAAA;EAdf;;;AAKS;AASX;;;;EASE,KAAA,GAAQ,UAAA;EAoBA;;;;;;;;EAVR,KAAA,GAAQ,UAAA;EAUA;;;;AAUQ;AASlB;;;EAnBE,KAAA,GAAQ,UAAA;EAsCD;;;;;;;;EA5BP,GAAA,GAAM,UAAA;AAAA;;AAsCW;AAMnB;;;;UAnCiB,6BAAA;EAqCf;;;;;;;AAA6B;EA5B7B,EAAA,GAAK,UAAA;EAiCwB;;;AAMzB;AAQN;;;;EArCE,IAAA,GAAO,UAAA;EA8DI;;;;;;;;EApDX,IAAA,GAAO,UAAA;AAAA;;;;KAMG,kBAAA,GAAqB,0BAAA,GAC/B,uBAAA,GACA,6BAAA;;;;UAKe,aAAA,SAAsB,kBAAkB;EAuEvD;;;AAAuC;AAMzC;EAvEE,IAAI;AAAA;;;;;;UAQW,eAAA,SAAwB,kBAAA;EAuFvC;;;EAnFA,IAAA;EAyGA;;AAAI;AAMN;;EAxGE,WAAA,GAAc,UAAA;EAwG6C;;;;;EAjG3D,KAAA,GAAQ,UAAA;EAuHE;;;;;EAhHV,QAAA,GAAW,UAAA;EA2HL;;;EAtHN,QAAA;EAmJM;;;EA9IN,QAAA;EAuJe;;;EAlJf,WAAA;EAkKM;;;EA7JN,WAAA;EAoJ0B;;;EA/I1B,WAAA;EAmJM;;;;;EA5IN,gBAAA,aAA6B,UAAA;AAAA;AA2J/B;;;AAAA,UArJiB,gBAAA,SAAyB,kBAAkB;EA8JxB;;;EA1JlC,IAAA;EAiJuC;;;EA5IvC,MAAA;EAqJkC;;AAAU;EAhJ5C,OAAA;EAsJiC;;;EAjJjC,gBAAA;EAiJyC;;;EA5IzC,OAAA;EAgJA;;;EA3IA,gBAAA;EAgJsC;AAAA;AAMxC;EAjJE,UAAA;;;;;;EAOA,OAAA;EA0IqC;;;EArIrC,IAAA;AAAA;;;;UAMe,iBAAA,SAA0B,kBAAkB;EAgKzD;;;EA5JF,IAAA;EAwKe;;;;;EAjKf,OAAA;AAAA;;AA0KI;AAMN;;;;;;KArKY,cAAA,GAAiB,kBAAA;EAyKT;AAAA;AAMpB;EAzKQ,IAAA;;;;EAKA,MAAA;EA6KN;;;EAlKM,OAAA;EA8KC;AAMT;;EA/KQ,OAAA;EA+KyB;;;;;EAxKzB,OAAA;AAAA;EAsLoB;;;EAhLpB,KAAA,EAAO,cAAc;AAAA;;;;;;UASZ,cAAA,0GAOP,kBAAA;EAgKiC;AAAA;AAS3C;EArKE,IAAA,EAAM,uBAAA;;;;EAKN,IAAA,EAAM,CAAA;EAyKN;;;;;EAlKA,OAAA,GAAU,CAAA;AAAA;AAAA,UAGK,eAAA,SAAwB,kBAAA;EAoMvC;;AAAI;EAhMJ,KAAA,EAAO,UAAA;EAsM0B;;;EAjMjC,qBAAA,aAAkC,UAAA;AAAA;;;;UAMnB,iBAAA,SAA0B,kBAAA;EA0M1B;;;EAtMf,KAAA;EAsMyC;;;EAjMzC,IAAA,GAAO,cAAA,GAAiB,cAAA;AAAA;AA0MQ;AAQlC;;AARkC,UApMjB,aAAA,SAAsB,kBAAA;EAuNT;;;EAnN5B,IAAA;EAoOiC;;;EA/NjC,QAAA;EAqPe;;;EAhPf,KAAA;IA8LwC;;;IA1LtC,IAAA;IA8LF;;;IAzLE,WAAA,GAAc,UAAA,EAAY,UAAA;IA0M5B;;;IArME,KAAA;IA4M+B;;;IAvM/B,QAAA;IAwNF;;;IAnNE,QAAA;EAAA;AAAA;;;;UAOa,oBAAA,SAA6B,kBAAkB;EAqO9D;;;EAjOA,IAAA;EAgPc;AAAA;AAGhB;EA9OE,IAAA;AAAA;;;;UAMe,eAAA,SAAwB,kBAAkB;EAsPzD;;;EAlPA,GAAA,EAAK,aAAA;AAAA;;;;UAMU,cAAA,SAAuB,kBAAkB;EA4R3C;AAAA;AAMf;EA9RE,IAAA;;;;EAKA,KAAA;EA0U6B;;;EArU7B,IAAA;EAoRqC;;;;;EA7QrC,OAAA;AAAA;;;;KAMU,kBAAA,GAAqB,kBAAA;EA8S/B;;;EAxSM,KAAA,GAAQ,UAAA,EAAY,cAAA;AAAA;EAkTa;AAMzC;;EAlTQ,IAAA,GACK,OAAA,CAAQ,cAAA,8BACA,OAAA,CAAQ,cAAA;AAAA;AAgTyB;AAKtD;;;;AALsD,UAvSrC,gBAAA,SAAyB,kBAAkB;EAiUzB;;;EA7TjC,IAAA;EAwS0D;;;EAnS1D,MAAA,GAAS,sBAAA;EAiTT;;;EA5SA,OAAA;EAmTiC;;;EA9SjC,gBAAA;EA0TU;;AAAM;EArThB,OAAA;EA2TyB;;;EAtTzB,gBAAA;EAqVQ;;;EAhVR,UAAA;EAyWuC;;;;;EAlWvC,OAAA;EA6Ta;;;EAxTb,IAAA;AAAA;;;;UAMe,iBAAA,SAA0B,gBAAgB;EAuV5B;;AAAU;EAnVvC,IAAA;EAyVmC;;;EApVnC,MAAA,GAAS,uBAAA;AAAA;;;;UAMM,iBAAA,SAA0B,gBAAgB;EA+V/C;;;EA3VV,IAAA;EA4VC;;;EAvVD,MAAA,GAAS,uBAAA;AAAA;;;;AAuVkC;AAK7C;UApViB,gBAAA,SAAyB,kBAAA;;;;EAIxC,IAAA;EAsV6D;;;;;EA/U7D,UAAA,GAAa,MAAA,SAAe,UAAA;EAqVtB;;AAAI;AAOZ;;;;AAAkE;EAlVhE,iBAAA,GAAoB,MAAA,SAAe,UAAA;EAuVJ;;;;;EAhV/B,oBAAA,aAAiC,UAAA;EAoVhB;AAAA;AAMnB;EArVE,QAAA;;;AAyVI;AASN;;EA3VE,OAAA,GAAU,MAAA;EA4VR;;;EAvVF,qBAAA,aAAkC,UAAA;EA2VhC;;;EAtVF,YAAA,GAAe,MAAA,oBAA0B,UAAA;EA0VvC;;;EArVF,iBAAA,GAAoB,MAAA;EAyVlB;;;;;;;;EA/UF,gBAAA,GAAmB,MAAA,SAAe,UAAA;EAwVhC;;;EAnVF,aAAA;EAqVe;;;EAhVf,aAAA;EA4TE;;;EAvTF,UAAA;EA2TE;;;EAtTF,cAAA;AAAA;AAAA,UAGe,gBAAA,SAAyB,kBAAkB;EAyTxD;;;EArTF,IAAA;EAyTE;;;EApTF,SAAA;EAwTE;;;EAnTF,SAAA;EAqTe;AAKjB;;EArTE,OAAA;EAwTc;;;;;;;;EA9Sd,MAAA,GAAS,sBAAA;EA8UY;;;;;EAvUrB,OAAA;EA+UQ;;;EA1UR,IAAA;EA8UO;;;;;EAvUP,gBAAA;EA6UgB;;;;;EAtUhB,eAAA;EA8UkC;;;;;EAvUlC,aAAA;AAAA;;;;UAMe,aAAA,SAAsB,kBAAA;EAsQrC;;;EAlQA,IAAA;EAqQA;;;EAhQA,WAAA;EAkQA;;;EA7PA,WAAA,GAAc,UAAA;EAkQd;;;EA7PA,KAAA,GAAQ,UAAA;EAiQR;;;EA5PA,QAAA,GAAW,UAAA;EAiQa;;;EA5PxB,QAAA;EA+PA;;;EA1PA,QAAA;EA+PA;;;EA1PA,WAAA;EA8PI;;;EAzPJ,WAAA;EA2PqB;;;EAtPrB,gBAAA,aAA6B,UAAA;AAAA;;;;KAMnB,6BAAA,GAAgC,UAAU;;;;UAKrC,gBAAA,SAAyB,kBAAA;EAoPxC;;;EAhPA,IAAA;EAkPA;;;;;;;;EAxOA,iBAAA,GAAoB,MAAA,SAAe,UAAA;EA4OA;;;;;EArOnC,oBAAA,aAAiC,UAAA;EAyOjC;;;EApOA,aAAA,GAAgB,6BAAA;EAqOI;;;;;EA9NpB,OAAA,GAAU,MAAA;AAAA;;;;KAMA,eAAA,GAAkB,kBAAA;EAgOd;;;EA5Nd,IAAA;EA8NA;;;EAzNA,QAAA;EA4NA;;;EAvNA,QAAA;EA0N6B;;;EArN7B,WAAA,EAAa,UAAA;EAyNb;;;;;;;;;AAOU;EApNV,KAAA,GAAQ,UAAA;EA0NqB;;;EArN7B,QAAA,GAAW,UAAA;EAgOD;;;EA3NV,WAAA;EA2NkD;AAKpD;;EA3NE,WAAA;EA4NE;;;EAvNF,WAAA;EA2NE;;;EAtNF,gBAAA,aAA6B,UAAA;AAAA;;;;UAMd,mBAAA,SAA4B,kBAAkB;EA+M3D;;;EA3MF,GAAA,EAAK,aAAA;EA8MC;AAAA;AAKR;;;EA5ME,OAAA;AAAA;;;;KAMU,eAAA,GAAkB,kBAAA,IAC3B,wBAAA,GAA2B,eAAA;;;;KAKlB,wBAAA,GAA2B,kBAAA;EAqMtB;;;EA/LT,IAAA,EAAM,uBAAA,GAA0B,uBAAA;AAAA;EAoM7B;;;EA9LH,IAAA;AAAA;;;;KAOI,iBAAA,GAAoB,kBAAA,GAAqB,aAAa;;;;UAKjD,eAAA,SAAwB,kBAAkB;EAqLtC;AAMrB;;EAvLE,KAAA,EAAO,UAAA;AAAA;;;;UAMQ,aAAA,SAAsB,kBAAkB;EAyL/C;;AAAiB;EArLzB,IAAI;AAAA;;;;;;;KASM,UAAA,GACR,gBAAA,GACA,iBAAA,GACA,iBAAA,GACA,gBAAA,GACA,iBAAA,GACA,cAAA,GACA,cAAA,GACA,iBAAA,GACA,oBAAA,GACA,cAAA,GACA,eAAA,GACA,gBAAA,GACA,gBAAA,GACA,eAAA,GACA,eAAA,GACA,mBAAA,GACA,aAAA,GACA,eAAA,GACA,aAAA,GACA,aAAA,GACA,kBAAA,GACA,eAAA,GACA,iBAAA,GACA,aAAA;AA+JgB;AAMpB;;AANoB,UA1JH,cAAA,SAAuB,kBAAA;EACtC,GAAA;EACA,OAAA;EACA,WAAA,GAAc,MAAA;EACd,QAAA;EACA,OAAA;EACA,KAAA,GAAQ,MAAA,SAAe,UAAA;EACvB,WAAA;EACA,cAAA;EACA,IAAA;EAEA,IAAA;EACA,KAAA;EACA,WAAA;EACA,IAAA;EACA,QAAA;EACA,KAAA;EACA,IAAA;EACA,UAAA;IAGM,OAAA;IAAkB,KAAA;IAAgB,WAAA;EAAA;EACxC,MAAA;EACA,MAAA;EACA,QAAA;EACA,OAAA;EACA,QAAA;EACA,SAAA;EAEA,IAAA,GACI,cAAA,GACA,cAAA,KACA,uBAAA,GACA,uBAAA,MACC,OAAA,CAAQ,cAAA,8BACA,OAAA,CAAQ,cAAA;EACrB,KAAA;EACA,IAAA;EACA,MAAA;EACA,OAAA;EAEA,KAAA,GAAQ,UAAA;EACR,KAAA,GAAQ,UAAA,MAAgB,UAAA,EAAY,cAAA;EACpC,KAAA,GAAQ,UAAA;EACR,GAAA,GAAM,UAAA;EACN,EAAA,GAAK,UAAA;EACL,IAAA,GAAO,UAAA;EACP,IAAA,GAAO,UAAA;EAEP,UAAA,GAAa,MAAA,SAAe,UAAA;EAC5B,iBAAA,GAAoB,MAAA,SAAe,UAAA;EACnC,oBAAA,aAAiC,UAAA;EACjC,QAAA;EACA,aAAA,GAAgB,6BAAA;EAChB,YAAA,GAAe,MAAA,oBAA0B,UAAA;EACzC,iBAAA,GAAoB,MAAA;EACpB,gBAAA,GAAmB,MAAA,SAAe,UAAA;EAClC,aAAA;EACA,aAAA;EACA,UAAA;EACA,cAAA;EACA,qBAAA,aAAkC,UAAA;EAElC,WAAA,GAAc,UAAA;EACd,KAAA,GAAQ,UAAA,GAAa,aAAA;EACrB,QAAA,GAAW,UAAA;EACX,QAAA;EACA,QAAA;EACA,WAAA;EACA,WAAA;EACA,WAAA;EACA,gBAAA,aAA6B,UAAA;EAC7B,SAAA;EACA,SAAA;EACA,OAAA;EACA,gBAAA;EACA,eAAA;EACA,aAAA;EACA,OAAA;EACA,gBAAA;EACA,OAAA;EACA,gBAAA;EACA,UAAA;AAAA;;;;KAMU,mBAAA;;;;KAWA,kBAAA,GAAqB,mBAAmB;;;;KAKxC,iBAAA,GACR,oBAAA,GACA,UAAA,GACA,EAAA,CAAG,UAAA,GACH,kBAAA,GACA,aAAA,GACA,aAAA,GACA,IAAA;;;;KAKQ,WAAA,GAAc,iBAAA,GAAoB,MAAA,GAAS,kBAAA;;;;UAKtC,MAAA,qBAA2B,UAAA,GAAa,UAAA;EChwCzC;EDkwCd,IAAA;;EAGA,OAAA,EAAS,kBAAA;ECrwCsC;EDwwC/C,MAAA,EAAQ,WAAA;AAAA;;;AC9qCwD;UDorCjD,gBAAA;EC1mCiB;ED4mChC,IAAA;EC5mCyC;ED+mCzC,OAAA,EAAS,mBAAA;EC1xBK;ED6xBd,MAAA,EAAQ,iBAAiB;AAAA;;;;UAMV,sBAAA,SAA+B,gBAAgB;ECjyBrC;EDmyBzB,OAAA;ECpyBA;EDuyBA,MAAA,EAAQ,UAAA;AAAA;;;ACtyB2C;UD4yBpC,0BAAA,SAAmC,gBAAgB;EC3xBxC;ED6xB1B,OAAA;EC5xBQ;ED+xBR,MAAA,EAAQ,oBAAA;AAAA;;;;UAMO,gBAAA,SAAyB,gBAAgB;ECpyBzC;EDsyBf,OAAA;ECtyBA;EDyyBA,MAAA,EAAQ,EAAA,CAAG,UAAA;AAAA;;;;UAMI,sBAAA,SAA+B,gBAAgB;EExpChC;EF0pC9B,OAAA;EE1pC8D;EF6pC9D,MAAA,EAAQ,IAAA;AAAA;;;AE7pCsD;UFmqC/C,mBAAA,SAA4B,gBAAA;EEn+BlB;EFq+BzB,OAAA;EEn+BkB;EFs+BlB,MAAA,EAAQ,kBAAA,GAAqB,aAAA;AAAA;;;;UAMd,mBAAA,SAA4B,gBAAgB;EEn8B7C;EFq8Bd,OAAA;;EAGA,MAAA,EAAQ,aAAA;AAAA;;;;KAME,YAAA,GACR,sBAAA,GACA,0BAAA,GACA,gBAAA,GACA,mBAAA,GACA,mBAAA,GACA,sBAAA;AEt8BJ;;;AAAA,UF28BiB,eAAA,SAAwB,MAAM;EE38Be;AAoC9D;;EF26BE,MAAA,EAAQ,YAAA;AAAA;;;;;;iBCr4CM,cAAA,CACd,KAAA,YACA,IAAA,GAAO,cAAc;;;;iBAsBP,aAAA,CAAc,MAAmB,GAAV,UAAU;;;AHhDjD;;;;iBG0IgB,iBAAA,CAAkB,KAAA,aAAkB,cAAc;;;;;;;;;;;;AHxI5B;AAWtC;;;;;;;;iBGuMgB,kBAAA,CAAmB,MAAkB,EAAV,UAAU;;;;;;;;;;;iBAqVrC,sBAAA,CACd,MAAA,EAAQ,UAAA,EACR,YAAA,GAAe,UAAA,QAAkB,cAAA;AH1hBd;;;;AC1BrB;;;;AAesB;AAEtB;;;ADSqB,iBG2iBL,YAAA,CACd,MAAA,EAAQ,UAAA,EACR,YAAA,GAAe,UAAA,QAAkB,cAAA;;;;;;;;;iBCzWnB,gBAAA,CAAiB,MAAA,EAAQ,UAAA,GAAa,UAAU;;AJrNhE;;iBIqZgB,WAAA,CACd,OAAA,EAAS,kBAAA,EACT,KAAA,EAAO,WAAW;;;;iBAyCJ,iBAAA,CAAkB,UAAA,EAAY,IAAA,GAAO,UAAU;;;;;;;iBAc/C,iBAAA,CAAkB,MAAA,YAAkB,UAAU;;;AJ5cxB;AAWtC;;;;iBIqegB,sBAAA,CACd,KAAA,EAAO,iBAAA,GACN,mBAAmB;;;;;;;iBA4BN,cAAA,CAAe,KAAA,EAAO,WAAA,GAAc,kBAAkB;;;;;;;;;iBAgBhD,aAAA,CACpB,KAAA,EAAO,iBAAA,EACP,OAAA,GAAU,kBAAA,GACT,OAAA,CAAQ,UAAA;;;;AH5iBX;;;;AAesB;iBGkkBN,aAAA,CACd,OAAA,EAAS,mBAAA,EACT,KAAA,EAAO,iBAAA,GACN,YAAA;;;;;;;;;;;;;AHzjBH;;;;AAMU;AAEV;;;;AAIU;AAEV;;;;AAc2D;iBGomBrC,uBAAA,CACpB,OAAA,EAAS,OAAA,EACT,KAAA,EAAO,WAAA,EACP,OAAA,GAAS,aAAA,GACR,OAAA,CAAQ,eAAA;;;AFtpBX;;;;AAA4C;AAK5C;;;;AAAmC;AASnC;;;;;;;;;;;;;;;;;;;;iBEuwBsB,OAAA,CACpB,OAAA,EAAS,OAAA,EACT,KAAA,EAAO,WAAA,EACP,OAAA,GAAS,aAAA,GACR,OAAA,CAAQ,MAAA;;;KC5xBC,mBAAA,GAAsB,UAAU;EAC1C,IAAA;EACA,QAAA;EACA,OAAA;AAAA;;;;;;;ALAF;;;;iBKagB,aAAA,CAAc,KAAA,EAAO,MAAA,GAAS,UAAA,GAAa,UAAA;;;;;;;;;;;iBAmB3C,mBAAA,CACd,KAAA,EAAO,MAAA,GAAS,UAAA,GACf,gBAAA;ALhCmC;AAWtC;;;;;;;;AAXsC,iBKkDtB,aAAA,CACd,GAAA,EAAK,MAAA,GAAS,gBAAA,GACb,MAAA,SAED,UAAA;EAAe,IAAA;EAAc,QAAA;EAAmB,OAAA;AAAA;;;;;;;;ALvC7B;;iBK8EL,iBAAA,CAAkB,GAAA,EAAK,MAAA,GAAS,gBAAA,IAAgB,UAAA;;;;;;AJzF1C;AAEtB;;;;;;;;;iBIsGgB,WAAA,CACd,GAAA,EAAK,MAAA,GAAS,gBAAA,EACd,IAAA,UACA,QAAA,EAAU,UAAA;;;;AJ/FZ;;;;AAMU;AAEV;;;;AAIU;AAEV;;;;AAc2D;;iBI8M3C,KAAA,IAAS,OAAA,GAAU,UAAA,GAAa,MAAA,MAAY,UAAA;;AH5P5D;;;;AAA4C;AAK5C;;;iBGmRgB,gBAAA,CAAiB,MAAmB,GAAV,UAAU;AHnRjB;AASnC;;;;;;;;;AATmC,iBGySnB,kBAAA,CACd,MAAA,EAAQ,gBAAgB,EACxB,YAAA;;;;;;;iBAiBc,sBAAA,CAAuB,QAAgB;;;;;;;;;;iBCvTvC,uBAAA,CACd,MAAA,EAAQ,UAAA,EACR,QAAA,EAAU,0BAAA,eACT,UAAA;;;;ANbH;;;;;;iBMuCgB,eAAA,CACd,MAAA,GAAS,UAAA,GACR,uBAAuB;;;;;;;iBA6BV,oBAAA,CACd,MAAA,GAAS,UAAA,GACR,uBAAuB;;;;;;;;;iBCvEV,iBAAA,CAAkB,OAAgB,EAAP,OAAO;;;;APDlD;;;;iBOYgB,gBAAA,CAAiB,OAAA,EAAS,OAAA,EAAS,KAAA,EAAO,WAAW;;;;;;;;iBAc/C,WAAA,CAAY,OAAA,EAAS,OAAA,EAAS,MAAA,EAAQ,MAAA,GAAM,OAAA;;;;APxB5B;AAWtC;;;iBOiCsB,cAAA,CACpB,OAAA,EAAS,OAAA,EACT,KAAA,EAAO,WAAA,GACN,OAAA,CAAQ,MAAA;;;;;;;;;iBAsBW,UAAA,CACpB,OAAA,EAAS,OAAA,EACT,KAAA,EAAO,WAAA,GACN,OAAA,CAAQ,MAAA;;;;;;iBCyDK,sBAAA,CACd,UAAA,EAAY,IAAA,GACX,UAAU;;;;;;;;;;;iBC5HS,aAAA,2BAEH,iBAAA,GAAoB,iBAAA,EAErC,OAAA,EAAS,QAAA,EACT,KAAA,EAAO,kBAAA,EACP,SAAA,GAAY,aAAA,GACX,OAAA,CAAQ,OAAA;;;;;;;;;iBAuEW,OAAA,2BAEH,iBAAA,GAAoB,iBAAA,EAErC,OAAA,EAAS,QAAA,EACT,KAAA,EAAO,kBAAA,EACP,OAAA,GAAU,aAAA,GACT,OAAA,CAAQ,OAAA;;;;;;;AT5F2B;AAWtC;iBSkLsB,iBAAA,kBACH,aAAA,GAAgB,aAAA,EAEjC,OAAA,EAAS,QAAA,EACT,KAAA,EAAO,aAAA,EACP,OAAA,GAAU,aAAA,GACT,OAAA,CAAQ,IAAA;;;;;;;;;iBC1HK,yBAAA,CACd,KAAA,YACC,KAAA,IAAS,uBAAuB;;AV7EnC;;;;;iBU0FgB,gBAAA,CAAiB,KAAA,YAAiB,KAAA,IAAS,cAAc;;;;;;;iBAiRzD,oBAAA,CACd,KAAA,YACC,KAAA,IAAS,kBAAkB;;;;AV3WQ;AAWtC;;iBU8WgB,eAAA,CAAgB,KAAA,YAAiB,KAAA,IAAS,aAAa;;;;;;;iBAgBvD,iBAAA,CAAkB,KAAA,YAAiB,KAAA,IAAS,eAAe;;;;;;;iBA+B3D,kBAAA,CAAmB,KAAA,YAAiB,KAAA,IAAS,gBAAgB;;;;AVzZxD;;;iBUwbL,mBAAA,CACd,KAAA,YACC,KAAA,IAAS,iBAAiB;ATpd7B;;;;AAesB;AAEtB;AAjBA,iBSwegB,gBAAA,CAAiB,KAAA,YAAiB,KAAA,IAAS,cAAc;;;;;;;iBAqCzD,gBAAA,CAAiB,KAAA,YAAiB,KAAA,IAAS,cAAc;;;;;ATlfzE;;iBSyiBgB,iBAAA,CAAkB,KAAA,YAAiB,KAAA,IAAS,eAAe;;ATniBjE;AAEV;;;;iBS2jBgB,mBAAA,CACd,KAAA,YACC,KAAA,IAAS,iBAAiB;ATvjB7B;;;;AAc2D;;AAd3D,iBS8kBgB,eAAA,CAAgB,KAAA,YAAiB,KAAA,IAAS,aAAa;;AR9mBvE;;;;AAA4C;iBQ8oB5B,sBAAA,CACd,KAAA,YACC,KAAA,IAAS,oBAAoB;;;;AR3oBG;AASnC;;iBQ8pBgB,iBAAA,CAAkB,KAAA,YAAiB,KAAA,IAAS,eAAe;;;;;;;iBAgB3D,gBAAA,CAAiB,KAAA,YAAiB,KAAA,IAAS,cAAc;;;;;;;iBAuBzD,oBAAA,CACd,KAAA,YACC,KAAA,IAAS,kBAAkB;;;;;ARnsBQ;AAOtC;iBQkuBgB,kBAAA,CAAmB,KAAA,YAAiB,KAAA,IAAS,gBAAgB;;;ARjuBxC;AAOrC;;;iBQyvBgB,mBAAA,CACd,KAAA,YACC,KAAA,IAAS,iBAAiB;AR3vByB;AAKtD;;;;AAAmC;AALmB,iBQqwBtC,mBAAA,CACd,KAAA,YACC,KAAA,IAAS,iBAAiB;;;;ARrvBM;AAKnC;;iBQ0vBgB,kBAAA,CAAmB,KAAA,YAAiB,KAAA,IAAS,gBAAgB;;ARxvBlD;AAK3B;;;;iBQ8xBgB,kBAAA,CAAmB,KAAA,YAAiB,KAAA,IAAS,gBAAgB;ARjwB7E;;;;;;AAAA,iBQ6xBgB,eAAA,CAAgB,KAAA,YAAiB,KAAA,IAAS,aAAa;;;;;;;iBA8BvD,kBAAA,CAAmB,KAAA,YAAiB,KAAA,IAAS,gBAAgB;;;;;;;iBAyB7D,iBAAA,CAAkB,KAAA,YAAiB,KAAA,IAAS,eAAe;;;;;;;iBA8B3D,qBAAA,CACd,KAAA,YACC,KAAA,IAAS,mBAAmB;;;;;;;iBAoBf,0BAAA,CACd,KAAA,YACC,KAAA,IAAS,wBAAwB;;;AR9vBzB;AASX;;;iBQ2zBgB,iBAAA,CAAkB,KAAA,YAAiB,KAAA,IAAS,eAAe;;;;;;;iBAmB3D,mBAAA,CACd,KAAA,YACC,KAAA,IAAS,iBAAiB;;;;;;;iBAUb,iBAAA,CAAkB,KAAA,YAAiB,KAAA,IAAS,eAAe;ARnzBzD;AASlB;;;;;AATkB,iBQq0BF,eAAA,CAAgB,KAAA,YAAiB,KAAA,IAAS,aAAa;;;;;;;iBAgBvD,gBAAA,CAAiB,KAAA,YAAiB,KAAA,IAAS,gBAAgB;;;AR/yBxD;AAMnB;;;iBQ8zBgB,eAAA,CACd,KAAA,YACC,KAAA,IAAS,UAAU;;;;;;;;;AR9zBS;iBQw1Bf,YAAA,CAAa,KAAA,YAAiB,KAAA,IAAS,UAAU;;;;AR70B3D;AAQN;;;;;iBQ22BgB,oBAAA,CAAqB,KAAA,YAAiB,KAAA,IAAS,cAAc;;;;;;;;;;iBAa7D,eAAA,CAAgB,KAAA,YAAiB,KAAA,IAAS,QAAa;;;;;;;;;;;iBAyDvD,qBAAA,CAAsB,KAAA,YAAiB,KAAA,IAAS,QAAa;ARl3B7E;;;;;;;;;AAAA,iBQ+3BgB,cAAA,CAAe,KAAA,YAAiB,KAAA,IAAS,WAAkB;;;;;;ARj1BrE;AAMN;;;;iBQq2BgB,oBAAA,CACd,KAAA,YACC,KAAA,IAAS,WAAkB;;;;AR51BrB;AAWT;;iBQw2BgB,QAAA,CAAS,KAAA,YAAiB,KAAA,IAAS,MAAM;;;;;;;iBAkBzC,kBAAA,CAAmB,KAAA,YAAiB,KAAA,IAAS,eAAgB;;;;ARl1BhD;AAS7B;;iBQ01BgB,cAAA,CACd,KAAA,YACC,KAAA,IAAS,MAAM,CAAC,gBAAA;;;;YCz3CP,UAAA;IACR,EAAA;IACA,KAAA;IACA,WAAA;IACA,IAAA;IACA,KAAA;IACA,IAAA;IACA,UAAA;IACA,MAAA;IACA,MAAA;IACA,QAAA;IACA,OAAA;IACA,QAAA;IACA,QAAA;IACA,SAAA;IACA,eAAA;IACA,gBAAA;IACA,aAAA;IAAA,CACC,OAAA;EAAA;AAAA"}