@maroonedog/luq 0.1.2-alpha → 2.0.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/LICENSE +9 -9
- package/README.md +389 -215
- package/dist/async/async-context.d.ts +41 -0
- package/dist/async/async-context.js +84 -0
- package/dist/async/async-context.mjs +79 -0
- package/dist/async/async-validator.d.ts +20 -0
- package/dist/async/async-validator.js +52 -0
- package/dist/async/async-validator.mjs +47 -0
- package/dist/async/index.d.ts +4 -0
- package/dist/async/index.js +25 -0
- package/dist/async/index.mjs +16 -0
- package/dist/async.d.ts +1 -0
- package/dist/async.js +2 -0
- package/dist/async.mjs +1 -0
- package/dist/builder/builder-surface.types.d.ts +39 -0
- package/dist/builder/builder-surface.types.js +2 -0
- package/dist/builder/builder-surface.types.mjs +1 -0
- package/dist/builder/compile-declarations.d.ts +4 -0
- package/dist/builder/compile-declarations.js +40 -0
- package/dist/builder/compile-declarations.mjs +37 -0
- package/dist/builder/create-builder.d.ts +16 -0
- package/dist/builder/create-builder.js +98 -0
- package/dist/builder/create-builder.mjs +92 -0
- package/dist/builder/create-field-builder.d.ts +5 -0
- package/dist/builder/create-field-builder.js +47 -0
- package/dist/builder/create-field-builder.mjs +44 -0
- package/dist/builder/create-plan-validator.d.ts +3 -0
- package/dist/builder/create-plan-validator.js +15 -0
- package/dist/builder/create-plan-validator.mjs +12 -0
- package/dist/builder/create-projection-reader.d.ts +3 -0
- package/dist/builder/create-projection-reader.js +44 -0
- package/dist/builder/create-projection-reader.mjs +41 -0
- package/dist/builder/create-subset-validator.d.ts +3 -0
- package/dist/builder/create-subset-validator.js +40 -0
- package/dist/builder/create-subset-validator.mjs +37 -0
- package/dist/builder/field-builder.types.d.ts +43 -0
- package/dist/builder/field-builder.types.js +11 -0
- package/dist/builder/field-builder.types.mjs +8 -0
- package/dist/builder/field-entry.types.d.ts +10 -0
- package/dist/builder/field-entry.types.js +2 -0
- package/dist/builder/field-entry.types.mjs +1 -0
- package/dist/builder/field-options.types.d.ts +11 -0
- package/dist/builder/field-options.types.js +13 -0
- package/dist/builder/field-options.types.mjs +12 -0
- package/dist/builder/global-config-store.d.ts +4 -0
- package/dist/builder/global-config-store.js +29 -0
- package/dist/builder/global-config-store.mjs +24 -0
- package/dist/builder/index.d.ts +6 -0
- package/dist/builder/index.js +17 -0
- package/dist/builder/index.mjs +8 -0
- package/dist/builder/resolve-field-default.d.ts +14 -0
- package/dist/builder/resolve-field-default.js +50 -0
- package/dist/builder/resolve-field-default.mjs +47 -0
- package/dist/builder/validator.types.d.ts +28 -0
- package/dist/builder/validator.types.js +2 -0
- package/dist/builder/validator.types.mjs +1 -0
- package/dist/chain/attach-slot-methods.d.ts +17 -0
- package/dist/chain/attach-slot-methods.js +47 -0
- package/dist/chain/attach-slot-methods.mjs +42 -0
- package/dist/chain/chain-method.types.d.ts +16 -0
- package/dist/chain/chain-method.types.js +2 -0
- package/dist/chain/chain-method.types.mjs +1 -0
- package/dist/chain/chain-state.types.d.ts +47 -0
- package/dist/chain/chain-state.types.js +2 -0
- package/dist/chain/chain-state.types.mjs +1 -0
- package/dist/chain/collect-branch-rules.d.ts +18 -0
- package/dist/chain/collect-branch-rules.js +71 -0
- package/dist/chain/collect-branch-rules.mjs +65 -0
- package/dist/chain/collect-field-rules.d.ts +10 -0
- package/dist/chain/collect-field-rules.js +22 -0
- package/dist/chain/collect-field-rules.mjs +17 -0
- package/dist/chain/create-chain-node.d.ts +26 -0
- package/dist/chain/create-chain-node.js +82 -0
- package/dist/chain/create-chain-node.mjs +77 -0
- package/dist/chain/create-field-slots.d.ts +6 -0
- package/dist/chain/create-field-slots.js +37 -0
- package/dist/chain/create-field-slots.mjs +33 -0
- package/dist/chain/field-chain.types.d.ts +25 -0
- package/dist/chain/field-chain.types.js +2 -0
- package/dist/chain/field-chain.types.mjs +1 -0
- package/dist/chain/field-slots.types.d.ts +18 -0
- package/dist/chain/field-slots.types.js +2 -0
- package/dist/chain/field-slots.types.mjs +1 -0
- package/dist/chain/index.d.ts +13 -0
- package/dist/chain/index.js +26 -0
- package/dist/chain/index.mjs +9 -0
- package/dist/chain/marker-coverage.types.d.ts +56 -0
- package/dist/chain/marker-coverage.types.js +2 -0
- package/dist/chain/marker-coverage.types.mjs +1 -0
- package/dist/chain/plugin-bag.types.d.ts +9 -0
- package/dist/chain/plugin-bag.types.js +2 -0
- package/dist/chain/plugin-bag.types.mjs +1 -0
- package/dist/chain/refine-methods.types.d.ts +33 -0
- package/dist/chain/refine-methods.types.js +14 -0
- package/dist/chain/refine-methods.types.mjs +11 -0
- package/dist/chain/resolve-args.types.d.ts +28 -0
- package/dist/chain/resolve-args.types.js +2 -0
- package/dist/chain/resolve-args.types.mjs +1 -0
- package/dist/chain/slot-value.types.d.ts +14 -0
- package/dist/chain/slot-value.types.js +2 -0
- package/dist/chain/slot-value.types.mjs +1 -0
- package/dist/compile/branch-executor.port.d.ts +6 -0
- package/dist/compile/branch-executor.port.js +2 -0
- package/dist/compile/branch-executor.port.mjs +1 -0
- package/dist/compile/compile-array-node.d.ts +19 -0
- package/dist/compile/compile-array-node.js +50 -0
- package/dist/compile/compile-array-node.mjs +46 -0
- package/dist/compile/compile-composite.d.ts +18 -0
- package/dist/compile/compile-composite.js +30 -0
- package/dist/compile/compile-composite.mjs +27 -0
- package/dist/compile/compile-field.d.ts +31 -0
- package/dist/compile/compile-field.js +67 -0
- package/dist/compile/compile-field.mjs +62 -0
- package/dist/compile/compile-schema.d.ts +8 -0
- package/dist/compile/compile-schema.js +126 -0
- package/dist/compile/compile-schema.mjs +121 -0
- package/dist/compile/declared-child-keys.d.ts +15 -0
- package/dist/compile/declared-child-keys.js +70 -0
- package/dist/compile/declared-child-keys.mjs +66 -0
- package/dist/compile/group-array-fields.d.ts +39 -0
- package/dist/compile/group-array-fields.js +66 -0
- package/dist/compile/group-array-fields.mjs +63 -0
- package/dist/compile/index.d.ts +18 -0
- package/dist/compile/index.js +33 -0
- package/dist/compile/index.mjs +10 -0
- package/dist/compile/resolve-conditional-presence.d.ts +5 -0
- package/dist/compile/resolve-conditional-presence.js +41 -0
- package/dist/compile/resolve-conditional-presence.mjs +37 -0
- package/dist/compile/resolve-presence.d.ts +6 -0
- package/dist/compile/resolve-presence.js +59 -0
- package/dist/compile/resolve-presence.mjs +55 -0
- package/dist/compile/resolve-recursion.d.ts +10 -0
- package/dist/compile/resolve-recursion.js +33 -0
- package/dist/compile/resolve-recursion.mjs +28 -0
- package/dist/compile/split-rules-by-kind.d.ts +16 -0
- package/dist/compile/split-rules-by-kind.js +61 -0
- package/dist/compile/split-rules-by-kind.mjs +56 -0
- package/dist/compile/validation-plan.types.d.ts +113 -0
- package/dist/compile/validation-plan.types.js +2 -0
- package/dist/compile/validation-plan.types.mjs +1 -0
- package/dist/core/type-erasure.d.ts +42 -0
- package/dist/core/type-erasure.js +63 -0
- package/dist/core/type-erasure.mjs +57 -0
- package/dist/field-rule/create-field-rule.d.ts +11 -0
- package/dist/field-rule/create-field-rule.js +50 -0
- package/dist/field-rule/create-field-rule.mjs +46 -0
- package/dist/field-rule/create-plugin-registry.d.ts +2 -0
- package/dist/field-rule/create-plugin-registry.js +60 -0
- package/dist/field-rule/create-plugin-registry.mjs +57 -0
- package/dist/field-rule/field-rule.types.d.ts +38 -0
- package/dist/field-rule/field-rule.types.js +2 -0
- package/dist/field-rule/field-rule.types.mjs +1 -0
- package/dist/field-rule/index.d.ts +5 -0
- package/dist/field-rule/index.js +13 -0
- package/dist/field-rule/index.mjs +6 -0
- package/dist/field-rule/plugin-registry.types.d.ts +17 -0
- package/dist/field-rule/plugin-registry.types.js +2 -0
- package/dist/field-rule/plugin-registry.types.mjs +1 -0
- package/dist/field-rule/use-field.d.ts +6 -0
- package/dist/field-rule/use-field.js +6 -0
- package/dist/field-rule/use-field.mjs +3 -0
- package/dist/field-rule.d.ts +1 -0
- package/dist/field-rule.js +2 -0
- package/dist/field-rule.mjs +1 -0
- package/dist/index.d.ts +14 -72
- package/dist/index.js +48 -2
- package/dist/index.mjs +18 -2
- package/dist/json-schema/apply-keyword-binding.d.ts +20 -0
- package/dist/json-schema/apply-keyword-binding.js +7 -0
- package/dist/json-schema/apply-keyword-binding.mjs +4 -0
- package/dist/json-schema/bind-keyword.d.ts +7 -0
- package/dist/json-schema/bind-keyword.js +21 -0
- package/dist/json-schema/bind-keyword.mjs +16 -0
- package/dist/json-schema/build-from-schema.d.ts +23 -0
- package/dist/json-schema/build-from-schema.js +64 -0
- package/dist/json-schema/build-from-schema.mjs +57 -0
- package/dist/json-schema/collect-definitions.d.ts +21 -0
- package/dist/json-schema/collect-definitions.js +67 -0
- package/dist/json-schema/collect-definitions.mjs +59 -0
- package/dist/json-schema/collect-sub-schema-rules.d.ts +6 -0
- package/dist/json-schema/collect-sub-schema-rules.js +82 -0
- package/dist/json-schema/collect-sub-schema-rules.mjs +78 -0
- package/dist/json-schema/compose-conditional.d.ts +4 -0
- package/dist/json-schema/compose-conditional.js +17 -0
- package/dist/json-schema/compose-conditional.mjs +14 -0
- package/dist/json-schema/compose-keyword.d.ts +7 -0
- package/dist/json-schema/compose-keyword.js +127 -0
- package/dist/json-schema/compose-keyword.mjs +121 -0
- package/dist/json-schema/create-structural-context.d.ts +10 -0
- package/dist/json-schema/create-structural-context.js +51 -0
- package/dist/json-schema/create-structural-context.mjs +48 -0
- package/dist/json-schema/declare-object-keywords.d.ts +24 -0
- package/dist/json-schema/declare-object-keywords.js +140 -0
- package/dist/json-schema/declare-object-keywords.mjs +132 -0
- package/dist/json-schema/declare-presence.d.ts +12 -0
- package/dist/json-schema/declare-presence.js +46 -0
- package/dist/json-schema/declare-presence.mjs +43 -0
- package/dist/json-schema/declare-required-properties.d.ts +18 -0
- package/dist/json-schema/declare-required-properties.js +58 -0
- package/dist/json-schema/declare-required-properties.mjs +55 -0
- package/dist/json-schema/declare-scalar-keywords.d.ts +11 -0
- package/dist/json-schema/declare-scalar-keywords.js +110 -0
- package/dist/json-schema/declare-scalar-keywords.mjs +105 -0
- package/dist/json-schema/declare-value-keywords.d.ts +23 -0
- package/dist/json-schema/declare-value-keywords.js +120 -0
- package/dist/json-schema/declare-value-keywords.mjs +112 -0
- package/dist/json-schema/draft07-keyword-value.types.d.ts +61 -0
- package/dist/json-schema/draft07-keyword-value.types.js +2 -0
- package/dist/json-schema/draft07-keyword-value.types.mjs +1 -0
- package/dist/json-schema/draft07.types.d.ts +57 -0
- package/dist/json-schema/draft07.types.js +28 -0
- package/dist/json-schema/draft07.types.mjs +24 -0
- package/dist/json-schema/extensions/json-schema/index.d.ts +3 -0
- package/dist/json-schema/extensions/json-schema/index.js +27 -0
- package/dist/json-schema/extensions/json-schema/index.mjs +11 -0
- package/dist/json-schema/extensions/json-schema/json-schema.d.ts +18 -0
- package/dist/json-schema/extensions/json-schema/json-schema.js +100 -0
- package/dist/json-schema/extensions/json-schema/json-schema.mjs +96 -0
- package/dist/json-schema/extensions/json-schema-full-feature/bundle-coverage.d.ts +38 -0
- package/dist/json-schema/extensions/json-schema-full-feature/bundle-coverage.js +96 -0
- package/dist/json-schema/extensions/json-schema-full-feature/bundle-coverage.mjs +89 -0
- package/dist/json-schema/extensions/json-schema-full-feature/bundled-plugins.d.ts +7 -0
- package/dist/json-schema/extensions/json-schema-full-feature/bundled-plugins.js +107 -0
- package/dist/json-schema/extensions/json-schema-full-feature/bundled-plugins.mjs +104 -0
- package/dist/json-schema/extensions/json-schema-full-feature/index.d.ts +4 -0
- package/dist/json-schema/extensions/json-schema-full-feature/index.js +25 -0
- package/dist/json-schema/extensions/json-schema-full-feature/index.mjs +14 -0
- package/dist/json-schema/extensions/json-schema-full-feature/json-schema-full-feature.d.ts +23 -0
- package/dist/json-schema/extensions/json-schema-full-feature/json-schema-full-feature.js +64 -0
- package/dist/json-schema/extensions/json-schema-full-feature/json-schema-full-feature.mjs +60 -0
- package/dist/json-schema/flatten-array-schema.d.ts +25 -0
- package/dist/json-schema/flatten-array-schema.js +141 -0
- package/dist/json-schema/flatten-array-schema.mjs +134 -0
- package/dist/json-schema/flatten-schema.d.ts +20 -0
- package/dist/json-schema/flatten-schema.js +162 -0
- package/dist/json-schema/flatten-schema.mjs +157 -0
- package/dist/json-schema/format-map.d.ts +20 -0
- package/dist/json-schema/format-map.js +89 -0
- package/dist/json-schema/format-map.mjs +84 -0
- package/dist/json-schema/index.d.ts +19 -0
- package/dist/json-schema/index.js +57 -0
- package/dist/json-schema/index.mjs +19 -0
- package/dist/json-schema/json-schema-bag.types.d.ts +124 -0
- package/dist/json-schema/json-schema-bag.types.js +2 -0
- package/dist/json-schema/json-schema-bag.types.mjs +1 -0
- package/dist/json-schema/keyword-binding.types.d.ts +50 -0
- package/dist/json-schema/keyword-binding.types.js +2 -0
- package/dist/json-schema/keyword-binding.types.mjs +1 -0
- package/dist/json-schema/keyword-map-array.d.ts +13 -0
- package/dist/json-schema/keyword-map-array.js +37 -0
- package/dist/json-schema/keyword-map-array.mjs +34 -0
- package/dist/json-schema/keyword-map-core.d.ts +8 -0
- package/dist/json-schema/keyword-map-core.js +54 -0
- package/dist/json-schema/keyword-map-core.mjs +51 -0
- package/dist/json-schema/keyword-map-number.d.ts +13 -0
- package/dist/json-schema/keyword-map-number.js +33 -0
- package/dist/json-schema/keyword-map-number.mjs +30 -0
- package/dist/json-schema/keyword-map-object.d.ts +17 -0
- package/dist/json-schema/keyword-map-object.js +51 -0
- package/dist/json-schema/keyword-map-object.mjs +48 -0
- package/dist/json-schema/keyword-map-string.d.ts +20 -0
- package/dist/json-schema/keyword-map-string.js +44 -0
- package/dist/json-schema/keyword-map-string.mjs +41 -0
- package/dist/json-schema/keyword-map.d.ts +32 -0
- package/dist/json-schema/keyword-map.js +93 -0
- package/dist/json-schema/keyword-map.mjs +84 -0
- package/dist/json-schema/resolve-ref.d.ts +16 -0
- package/dist/json-schema/resolve-ref.js +103 -0
- package/dist/json-schema/resolve-ref.mjs +97 -0
- package/dist/json-schema/schema-to-declarations.d.ts +9 -0
- package/dist/json-schema/schema-to-declarations.js +122 -0
- package/dist/json-schema/schema-to-declarations.mjs +116 -0
- package/dist/json-schema/structural-expansion.types.d.ts +83 -0
- package/dist/json-schema/structural-expansion.types.js +22 -0
- package/dist/json-schema/structural-expansion.types.mjs +18 -0
- package/dist/json-schema/unsupported-keyword-error.d.ts +5 -0
- package/dist/json-schema/unsupported-keyword-error.js +24 -0
- package/dist/json-schema/unsupported-keyword-error.mjs +20 -0
- package/dist/path/create-array-reader.d.ts +13 -0
- package/dist/path/create-array-reader.js +22 -0
- package/dist/path/create-array-reader.mjs +19 -0
- package/dist/path/create-value-reader.d.ts +26 -0
- package/dist/path/create-value-reader.js +71 -0
- package/dist/path/create-value-reader.mjs +65 -0
- package/dist/path/create-value-writer.d.ts +5 -0
- package/dist/path/create-value-writer.js +55 -0
- package/dist/path/create-value-writer.mjs +52 -0
- package/dist/path/element-of.types.d.ts +1 -0
- package/dist/path/element-of.types.js +2 -0
- package/dist/path/element-of.types.mjs +1 -0
- package/dist/path/field-path.types.d.ts +13 -0
- package/dist/path/field-path.types.js +2 -0
- package/dist/path/field-path.types.mjs +1 -0
- package/dist/path/format-issue-path.d.ts +15 -0
- package/dist/path/format-issue-path.js +34 -0
- package/dist/path/format-issue-path.mjs +31 -0
- package/dist/path/index.d.ts +18 -0
- package/dist/path/index.js +26 -0
- package/dist/path/index.mjs +7 -0
- package/dist/path/leaf-path.types.d.ts +16 -0
- package/dist/path/leaf-path.types.js +2 -0
- package/dist/path/leaf-path.types.mjs +1 -0
- package/dist/path/match-path-pattern.d.ts +9 -0
- package/dist/path/match-path-pattern.js +66 -0
- package/dist/path/match-path-pattern.mjs +63 -0
- package/dist/path/opaque-object.types.d.ts +5 -0
- package/dist/path/opaque-object.types.js +2 -0
- package/dist/path/opaque-object.types.mjs +1 -0
- package/dist/path/parse-field-path.d.ts +25 -0
- package/dist/path/parse-field-path.js +75 -0
- package/dist/path/parse-field-path.mjs +69 -0
- package/dist/path/path-depth.types.d.ts +4 -0
- package/dist/path/path-depth.types.js +2 -0
- package/dist/path/path-depth.types.mjs +1 -0
- package/dist/path/path-segment.types.d.ts +27 -0
- package/dist/path/path-segment.types.js +2 -0
- package/dist/path/path-segment.types.mjs +1 -0
- package/dist/path/property-value-of.types.d.ts +2 -0
- package/dist/path/property-value-of.types.js +2 -0
- package/dist/path/property-value-of.types.mjs +1 -0
- package/dist/path/reserved-segment.d.ts +28 -0
- package/dist/path/reserved-segment.js +68 -0
- package/dist/path/reserved-segment.mjs +62 -0
- package/dist/path/value-at-path.types.d.ts +25 -0
- package/dist/path/value-at-path.types.js +2 -0
- package/dist/path/value-at-path.types.mjs +1 -0
- package/dist/plugin-kit/compiled-rule.d.ts +99 -0
- package/dist/plugin-kit/compiled-rule.js +2 -0
- package/dist/plugin-kit/compiled-rule.mjs +1 -0
- package/dist/plugin-kit/create-conditional-presence.d.ts +25 -0
- package/dist/plugin-kit/create-conditional-presence.js +32 -0
- package/dist/plugin-kit/create-conditional-presence.mjs +28 -0
- package/dist/plugin-kit/create-rule.d.ts +48 -0
- package/dist/plugin-kit/create-rule.js +67 -0
- package/dist/plugin-kit/create-rule.mjs +57 -0
- package/dist/plugin-kit/external-context.d.ts +2 -0
- package/dist/plugin-kit/external-context.js +25 -0
- package/dist/plugin-kit/external-context.mjs +22 -0
- package/dist/plugin-kit/index.d.ts +11 -0
- package/dist/plugin-kit/index.js +39 -0
- package/dist/plugin-kit/index.mjs +23 -0
- package/dist/plugin-kit/is-json-value-equal.d.ts +10 -0
- package/dist/plugin-kit/is-json-value-equal.js +81 -0
- package/dist/plugin-kit/is-json-value-equal.mjs +77 -0
- package/dist/plugin-kit/marker.types.d.ts +114 -0
- package/dist/plugin-kit/marker.types.js +2 -0
- package/dist/plugin-kit/marker.types.mjs +1 -0
- package/dist/plugin-kit/plugin-definition.d.ts +40 -0
- package/dist/plugin-kit/plugin-definition.js +25 -0
- package/dist/plugin-kit/plugin-definition.mjs +20 -0
- package/dist/plugin-kit/rule-build-context.d.ts +27 -0
- package/dist/plugin-kit/rule-build-context.js +8 -0
- package/dist/plugin-kit/rule-build-context.mjs +5 -0
- package/dist/plugin-kit/runtime-args.types.d.ts +27 -0
- package/dist/plugin-kit/runtime-args.types.js +2 -0
- package/dist/plugin-kit/runtime-args.types.mjs +1 -0
- package/dist/plugin-kit.d.ts +1 -0
- package/dist/plugin-kit.js +2 -0
- package/dist/plugin-kit.mjs +1 -0
- package/dist/plugins/array-contains/array-contains.d.ts +22 -0
- package/dist/plugins/array-contains/array-contains.js +82 -0
- package/dist/plugins/array-contains/array-contains.mjs +79 -0
- package/dist/plugins/array-contains/index.d.ts +2 -0
- package/dist/plugins/array-contains/index.js +5 -0
- package/dist/plugins/array-contains/index.mjs +1 -0
- package/dist/plugins/array-each/array-each.d.ts +14 -0
- package/dist/plugins/array-each/array-each.js +51 -0
- package/dist/plugins/array-each/array-each.mjs +48 -0
- package/dist/plugins/array-each/index.d.ts +1 -0
- package/dist/plugins/array-each/index.js +5 -0
- package/dist/plugins/array-each/index.mjs +1 -0
- package/dist/plugins/array-includes/array-includes.d.ts +9 -0
- package/dist/plugins/array-includes/array-includes.js +26 -0
- package/dist/plugins/array-includes/array-includes.mjs +23 -0
- package/dist/plugins/array-includes/index.d.ts +2 -0
- package/dist/plugins/array-includes/index.js +5 -0
- package/dist/plugins/array-includes/index.mjs +1 -0
- package/dist/plugins/array-max-length/array-max-length.d.ts +10 -0
- package/dist/plugins/array-max-length/array-max-length.js +29 -0
- package/dist/plugins/array-max-length/array-max-length.mjs +26 -0
- package/dist/plugins/array-max-length/index.d.ts +2 -0
- package/dist/plugins/array-max-length/index.js +5 -0
- package/dist/plugins/array-max-length/index.mjs +1 -0
- package/dist/plugins/array-min-length/array-min-length.d.ts +10 -0
- package/dist/plugins/array-min-length/array-min-length.js +29 -0
- package/dist/plugins/array-min-length/array-min-length.mjs +26 -0
- package/dist/plugins/array-min-length/index.d.ts +2 -0
- package/dist/plugins/array-min-length/index.js +5 -0
- package/dist/plugins/array-min-length/index.mjs +1 -0
- package/dist/plugins/array-unique/array-unique.d.ts +7 -0
- package/dist/plugins/array-unique/array-unique.js +54 -0
- package/dist/plugins/array-unique/array-unique.mjs +51 -0
- package/dist/plugins/array-unique/index.d.ts +1 -0
- package/dist/plugins/array-unique/index.js +5 -0
- package/dist/plugins/array-unique/index.mjs +1 -0
- package/dist/plugins/arrayContains.d.ts +1 -37
- package/dist/plugins/arrayContains.js +2 -1
- package/dist/plugins/arrayContains.mjs +1 -1
- package/dist/plugins/arrayEach.d.ts +1 -0
- package/dist/plugins/arrayEach.js +2 -0
- package/dist/plugins/arrayEach.mjs +1 -0
- package/dist/plugins/arrayIncludes.d.ts +1 -42
- package/dist/plugins/arrayIncludes.js +2 -1
- package/dist/plugins/arrayIncludes.mjs +1 -1
- package/dist/plugins/arrayMaxLength.d.ts +1 -43
- package/dist/plugins/arrayMaxLength.js +2 -1
- package/dist/plugins/arrayMaxLength.mjs +1 -1
- package/dist/plugins/arrayMinLength.d.ts +1 -43
- package/dist/plugins/arrayMinLength.js +2 -1
- package/dist/plugins/arrayMinLength.mjs +1 -1
- package/dist/plugins/arrayUnique.d.ts +1 -41
- package/dist/plugins/arrayUnique.js +2 -1
- package/dist/plugins/arrayUnique.mjs +1 -1
- package/dist/plugins/boolean-falsy/boolean-falsy.d.ts +7 -0
- package/dist/plugins/boolean-falsy/boolean-falsy.js +24 -0
- package/dist/plugins/boolean-falsy/boolean-falsy.mjs +21 -0
- package/dist/plugins/boolean-falsy/index.d.ts +1 -0
- package/dist/plugins/boolean-falsy/index.js +5 -0
- package/dist/plugins/boolean-falsy/index.mjs +1 -0
- package/dist/plugins/boolean-truthy/boolean-truthy.d.ts +7 -0
- package/dist/plugins/boolean-truthy/boolean-truthy.js +24 -0
- package/dist/plugins/boolean-truthy/boolean-truthy.mjs +21 -0
- package/dist/plugins/boolean-truthy/index.d.ts +1 -0
- package/dist/plugins/boolean-truthy/index.js +5 -0
- package/dist/plugins/boolean-truthy/index.mjs +1 -0
- package/dist/plugins/booleanFalsy.d.ts +1 -41
- package/dist/plugins/booleanFalsy.js +2 -1
- package/dist/plugins/booleanFalsy.mjs +1 -1
- package/dist/plugins/booleanTruthy.d.ts +1 -38
- package/dist/plugins/booleanTruthy.js +2 -1
- package/dist/plugins/booleanTruthy.mjs +1 -1
- package/dist/plugins/compare-field/compare-field.d.ts +13 -0
- package/dist/plugins/compare-field/compare-field.js +57 -0
- package/dist/plugins/compare-field/compare-field.mjs +54 -0
- package/dist/plugins/compare-field/index.d.ts +2 -0
- package/dist/plugins/compare-field/index.js +5 -0
- package/dist/plugins/compare-field/index.mjs +1 -0
- package/dist/plugins/compareField.d.ts +1 -58
- package/dist/plugins/compareField.js +2 -1
- package/dist/plugins/compareField.mjs +1 -1
- package/dist/plugins/conditional-schema/conditional-schema.d.ts +17 -0
- package/dist/plugins/conditional-schema/conditional-schema.js +87 -0
- package/dist/plugins/conditional-schema/conditional-schema.mjs +84 -0
- package/dist/plugins/conditional-schema/index.d.ts +2 -0
- package/dist/plugins/conditional-schema/index.js +5 -0
- package/dist/plugins/conditional-schema/index.mjs +1 -0
- package/dist/plugins/conditionalSchema.d.ts +1 -0
- package/dist/plugins/conditionalSchema.js +2 -0
- package/dist/plugins/conditionalSchema.mjs +1 -0
- package/dist/plugins/custom/custom.d.ts +12 -0
- package/dist/plugins/custom/custom.js +82 -0
- package/dist/plugins/custom/custom.mjs +79 -0
- package/dist/plugins/custom/index.d.ts +1 -0
- package/dist/plugins/custom/index.js +5 -0
- package/dist/plugins/custom/index.mjs +1 -0
- package/dist/plugins/custom.d.ts +1 -60
- package/dist/plugins/custom.js +2 -1
- package/dist/plugins/custom.mjs +1 -1
- package/dist/plugins/from-context/from-context.d.ts +28 -0
- package/dist/plugins/from-context/from-context.js +84 -0
- package/dist/plugins/from-context/from-context.mjs +81 -0
- package/dist/plugins/from-context/index.d.ts +2 -0
- package/dist/plugins/from-context/index.js +5 -0
- package/dist/plugins/from-context/index.mjs +1 -0
- package/dist/plugins/fromContext.d.ts +1 -0
- package/dist/plugins/fromContext.js +2 -0
- package/dist/plugins/fromContext.mjs +1 -0
- package/dist/plugins/index.d.ts +1 -0
- package/dist/plugins/index.generated.d.ts +77 -0
- package/dist/plugins/index.generated.js +160 -0
- package/dist/plugins/index.generated.mjs +79 -0
- package/dist/plugins/index.js +2 -0
- package/dist/plugins/index.mjs +1 -0
- package/dist/plugins/jsonSchema.d.ts +1 -11
- package/dist/plugins/jsonSchema.js +2 -1
- package/dist/plugins/jsonSchema.mjs +1 -1
- package/dist/plugins/jsonSchemaFullFeature.d.ts +1 -31
- package/dist/plugins/jsonSchemaFullFeature.js +2 -1
- package/dist/plugins/jsonSchemaFullFeature.mjs +1 -1
- package/dist/plugins/literal/index.d.ts +1 -0
- package/dist/plugins/literal/index.js +5 -0
- package/dist/plugins/literal/index.mjs +1 -0
- package/dist/plugins/literal/literal.d.ts +10 -0
- package/dist/plugins/literal/literal.js +53 -0
- package/dist/plugins/literal/literal.mjs +50 -0
- package/dist/plugins/literal.d.ts +1 -40
- package/dist/plugins/literal.js +2 -1
- package/dist/plugins/literal.mjs +1 -1
- package/dist/plugins/manifest.generated.d.ts +8 -0
- package/dist/plugins/manifest.generated.js +83 -0
- package/dist/plugins/manifest.generated.mjs +80 -0
- package/dist/plugins/nullable/index.d.ts +1 -0
- package/dist/plugins/nullable/index.js +5 -0
- package/dist/plugins/nullable/index.mjs +1 -0
- package/dist/plugins/nullable/nullable.d.ts +7 -0
- package/dist/plugins/nullable/nullable.js +39 -0
- package/dist/plugins/nullable/nullable.mjs +36 -0
- package/dist/plugins/nullable.d.ts +1 -34
- package/dist/plugins/nullable.js +2 -1
- package/dist/plugins/nullable.mjs +1 -1
- package/dist/plugins/number-finite/index.d.ts +1 -0
- package/dist/plugins/number-finite/index.js +5 -0
- package/dist/plugins/number-finite/index.mjs +1 -0
- package/dist/plugins/number-finite/number-finite.d.ts +7 -0
- package/dist/plugins/number-finite/number-finite.js +21 -0
- package/dist/plugins/number-finite/number-finite.mjs +18 -0
- package/dist/plugins/number-integer/index.d.ts +1 -0
- package/dist/plugins/number-integer/index.js +5 -0
- package/dist/plugins/number-integer/index.mjs +1 -0
- package/dist/plugins/number-integer/number-integer.d.ts +7 -0
- package/dist/plugins/number-integer/number-integer.js +21 -0
- package/dist/plugins/number-integer/number-integer.mjs +18 -0
- package/dist/plugins/number-max/index.d.ts +2 -0
- package/dist/plugins/number-max/index.js +5 -0
- package/dist/plugins/number-max/index.mjs +1 -0
- package/dist/plugins/number-max/number-max.d.ts +11 -0
- package/dist/plugins/number-max/number-max.js +36 -0
- package/dist/plugins/number-max/number-max.mjs +33 -0
- package/dist/plugins/number-min/index.d.ts +2 -0
- package/dist/plugins/number-min/index.js +5 -0
- package/dist/plugins/number-min/index.mjs +1 -0
- package/dist/plugins/number-min/number-min.d.ts +11 -0
- package/dist/plugins/number-min/number-min.js +38 -0
- package/dist/plugins/number-min/number-min.mjs +35 -0
- package/dist/plugins/number-multiple-of/index.d.ts +2 -0
- package/dist/plugins/number-multiple-of/index.js +5 -0
- package/dist/plugins/number-multiple-of/index.mjs +1 -0
- package/dist/plugins/number-multiple-of/is-multiple-of.d.ts +7 -0
- package/dist/plugins/number-multiple-of/is-multiple-of.js +61 -0
- package/dist/plugins/number-multiple-of/is-multiple-of.mjs +57 -0
- package/dist/plugins/number-multiple-of/number-multiple-of.d.ts +9 -0
- package/dist/plugins/number-multiple-of/number-multiple-of.js +27 -0
- package/dist/plugins/number-multiple-of/number-multiple-of.mjs +24 -0
- package/dist/plugins/number-negative/index.d.ts +1 -0
- package/dist/plugins/number-negative/index.js +5 -0
- package/dist/plugins/number-negative/index.mjs +1 -0
- package/dist/plugins/number-negative/number-negative.d.ts +7 -0
- package/dist/plugins/number-negative/number-negative.js +21 -0
- package/dist/plugins/number-negative/number-negative.mjs +18 -0
- package/dist/plugins/number-positive/index.d.ts +1 -0
- package/dist/plugins/number-positive/index.js +5 -0
- package/dist/plugins/number-positive/index.mjs +1 -0
- package/dist/plugins/number-positive/number-positive.d.ts +7 -0
- package/dist/plugins/number-positive/number-positive.js +21 -0
- package/dist/plugins/number-positive/number-positive.mjs +18 -0
- package/dist/plugins/number-range/index.d.ts +2 -0
- package/dist/plugins/number-range/index.js +5 -0
- package/dist/plugins/number-range/index.mjs +1 -0
- package/dist/plugins/number-range/number-range.d.ts +11 -0
- package/dist/plugins/number-range/number-range.js +39 -0
- package/dist/plugins/number-range/number-range.mjs +36 -0
- package/dist/plugins/numberFinite.d.ts +1 -0
- package/dist/plugins/numberFinite.js +2 -0
- package/dist/plugins/numberFinite.mjs +1 -0
- package/dist/plugins/numberInteger.d.ts +1 -41
- package/dist/plugins/numberInteger.js +2 -1
- package/dist/plugins/numberInteger.mjs +1 -1
- package/dist/plugins/numberMax.d.ts +1 -49
- package/dist/plugins/numberMax.js +2 -1
- package/dist/plugins/numberMax.mjs +1 -1
- package/dist/plugins/numberMin.d.ts +1 -49
- package/dist/plugins/numberMin.js +2 -1
- package/dist/plugins/numberMin.mjs +1 -1
- package/dist/plugins/numberMultipleOf.d.ts +1 -42
- package/dist/plugins/numberMultipleOf.js +2 -1
- package/dist/plugins/numberMultipleOf.mjs +1 -1
- package/dist/plugins/numberNegative.d.ts +1 -41
- package/dist/plugins/numberNegative.js +2 -1
- package/dist/plugins/numberNegative.mjs +1 -1
- package/dist/plugins/numberPositive.d.ts +1 -41
- package/dist/plugins/numberPositive.js +2 -1
- package/dist/plugins/numberPositive.mjs +1 -1
- package/dist/plugins/numberRange.d.ts +1 -0
- package/dist/plugins/numberRange.js +2 -0
- package/dist/plugins/numberRange.mjs +1 -0
- package/dist/plugins/object/index.d.ts +2 -0
- package/dist/plugins/object/index.js +5 -0
- package/dist/plugins/object/index.mjs +1 -0
- package/dist/plugins/object/object.d.ts +9 -0
- package/dist/plugins/object/object.js +29 -0
- package/dist/plugins/object/object.mjs +26 -0
- package/dist/plugins/object-additional-properties/index.d.ts +3 -0
- package/dist/plugins/object-additional-properties/index.js +11 -0
- package/dist/plugins/object-additional-properties/index.mjs +6 -0
- package/dist/plugins/object-additional-properties/object-additional-properties-schema.d.ts +14 -0
- package/dist/plugins/object-additional-properties/object-additional-properties-schema.js +56 -0
- package/dist/plugins/object-additional-properties/object-additional-properties-schema.mjs +53 -0
- package/dist/plugins/object-additional-properties/object-additional-properties.d.ts +9 -0
- package/dist/plugins/object-additional-properties/object-additional-properties.js +40 -0
- package/dist/plugins/object-additional-properties/object-additional-properties.mjs +37 -0
- package/dist/plugins/object-dependent-required/dependent-required-violation.d.ts +7 -0
- package/dist/plugins/object-dependent-required/dependent-required-violation.js +45 -0
- package/dist/plugins/object-dependent-required/dependent-required-violation.mjs +40 -0
- package/dist/plugins/object-dependent-required/index.d.ts +3 -0
- package/dist/plugins/object-dependent-required/index.js +5 -0
- package/dist/plugins/object-dependent-required/index.mjs +1 -0
- package/dist/plugins/object-dependent-required/object-dependent-required.d.ts +10 -0
- package/dist/plugins/object-dependent-required/object-dependent-required.js +27 -0
- package/dist/plugins/object-dependent-required/object-dependent-required.mjs +24 -0
- package/dist/plugins/object-dependent-schemas/index.d.ts +2 -0
- package/dist/plugins/object-dependent-schemas/index.js +5 -0
- package/dist/plugins/object-dependent-schemas/index.mjs +1 -0
- package/dist/plugins/object-dependent-schemas/object-dependent-schemas.d.ts +16 -0
- package/dist/plugins/object-dependent-schemas/object-dependent-schemas.js +47 -0
- package/dist/plugins/object-dependent-schemas/object-dependent-schemas.mjs +44 -0
- package/dist/plugins/object-max-properties/index.d.ts +2 -0
- package/dist/plugins/object-max-properties/index.js +5 -0
- package/dist/plugins/object-max-properties/index.mjs +1 -0
- package/dist/plugins/object-max-properties/object-max-properties.d.ts +10 -0
- package/dist/plugins/object-max-properties/object-max-properties.js +32 -0
- package/dist/plugins/object-max-properties/object-max-properties.mjs +29 -0
- package/dist/plugins/object-min-properties/index.d.ts +2 -0
- package/dist/plugins/object-min-properties/index.js +5 -0
- package/dist/plugins/object-min-properties/index.mjs +1 -0
- package/dist/plugins/object-min-properties/object-min-properties.d.ts +10 -0
- package/dist/plugins/object-min-properties/object-min-properties.js +32 -0
- package/dist/plugins/object-min-properties/object-min-properties.mjs +29 -0
- package/dist/plugins/object-pattern-properties/index.d.ts +2 -0
- package/dist/plugins/object-pattern-properties/index.js +5 -0
- package/dist/plugins/object-pattern-properties/index.mjs +1 -0
- package/dist/plugins/object-pattern-properties/object-pattern-properties.d.ts +16 -0
- package/dist/plugins/object-pattern-properties/object-pattern-properties.js +57 -0
- package/dist/plugins/object-pattern-properties/object-pattern-properties.mjs +54 -0
- package/dist/plugins/object-property-names/index.d.ts +2 -0
- package/dist/plugins/object-property-names/index.js +5 -0
- package/dist/plugins/object-property-names/index.mjs +1 -0
- package/dist/plugins/object-property-names/object-property-names.d.ts +16 -0
- package/dist/plugins/object-property-names/object-property-names.js +47 -0
- package/dist/plugins/object-property-names/object-property-names.mjs +44 -0
- package/dist/plugins/object-recursively/index.d.ts +2 -0
- package/dist/plugins/object-recursively/index.js +5 -0
- package/dist/plugins/object-recursively/index.mjs +1 -0
- package/dist/plugins/object-recursively/object-recursively.d.ts +11 -0
- package/dist/plugins/object-recursively/object-recursively.js +26 -0
- package/dist/plugins/object-recursively/object-recursively.mjs +23 -0
- package/dist/plugins/object.d.ts +1 -43
- package/dist/plugins/object.js +2 -1
- package/dist/plugins/object.mjs +1 -1
- package/dist/plugins/objectAdditionalProperties.d.ts +1 -51
- package/dist/plugins/objectAdditionalProperties.js +2 -1
- package/dist/plugins/objectAdditionalProperties.mjs +1 -1
- package/dist/plugins/objectDependentRequired.d.ts +1 -42
- package/dist/plugins/objectDependentRequired.js +2 -1
- package/dist/plugins/objectDependentRequired.mjs +1 -1
- package/dist/plugins/objectDependentSchemas.d.ts +1 -40
- package/dist/plugins/objectDependentSchemas.js +2 -1
- package/dist/plugins/objectDependentSchemas.mjs +1 -1
- package/dist/plugins/objectMaxProperties.d.ts +1 -42
- package/dist/plugins/objectMaxProperties.js +2 -1
- package/dist/plugins/objectMaxProperties.mjs +1 -1
- package/dist/plugins/objectMinProperties.d.ts +1 -42
- package/dist/plugins/objectMinProperties.js +2 -1
- package/dist/plugins/objectMinProperties.mjs +1 -1
- package/dist/plugins/objectPatternProperties.d.ts +1 -46
- package/dist/plugins/objectPatternProperties.js +2 -1
- package/dist/plugins/objectPatternProperties.mjs +1 -1
- package/dist/plugins/objectPropertyNames.d.ts +1 -36
- package/dist/plugins/objectPropertyNames.js +2 -1
- package/dist/plugins/objectPropertyNames.mjs +1 -1
- package/dist/plugins/objectRecursively.d.ts +1 -0
- package/dist/plugins/objectRecursively.js +2 -0
- package/dist/plugins/objectRecursively.mjs +1 -0
- package/dist/plugins/one-of/index.d.ts +1 -0
- package/dist/plugins/one-of/index.js +5 -0
- package/dist/plugins/one-of/index.mjs +1 -0
- package/dist/plugins/one-of/one-of.d.ts +7 -0
- package/dist/plugins/one-of/one-of.js +67 -0
- package/dist/plugins/one-of/one-of.mjs +64 -0
- package/dist/plugins/oneOf.d.ts +1 -44
- package/dist/plugins/oneOf.js +2 -1
- package/dist/plugins/oneOf.mjs +1 -1
- package/dist/plugins/optional/index.d.ts +1 -0
- package/dist/plugins/optional/index.js +5 -0
- package/dist/plugins/optional/index.mjs +1 -0
- package/dist/plugins/optional/optional.d.ts +7 -0
- package/dist/plugins/optional/optional.js +42 -0
- package/dist/plugins/optional/optional.mjs +39 -0
- package/dist/plugins/optional-if/index.d.ts +1 -0
- package/dist/plugins/optional-if/index.js +5 -0
- package/dist/plugins/optional-if/index.mjs +1 -0
- package/dist/plugins/optional-if/optional-if.d.ts +11 -0
- package/dist/plugins/optional-if/optional-if.js +31 -0
- package/dist/plugins/optional-if/optional-if.mjs +28 -0
- package/dist/plugins/optional.d.ts +1 -35
- package/dist/plugins/optional.js +2 -1
- package/dist/plugins/optional.mjs +1 -1
- package/dist/plugins/optionalIf.d.ts +1 -0
- package/dist/plugins/optionalIf.js +2 -0
- package/dist/plugins/optionalIf.mjs +1 -0
- package/dist/plugins/or-fail/index.d.ts +1 -0
- package/dist/plugins/or-fail/index.js +5 -0
- package/dist/plugins/or-fail/index.mjs +1 -0
- package/dist/plugins/or-fail/or-fail.d.ts +7 -0
- package/dist/plugins/or-fail/or-fail.js +44 -0
- package/dist/plugins/or-fail/or-fail.mjs +41 -0
- package/dist/plugins/orFail.d.ts +1 -0
- package/dist/plugins/orFail.js +2 -0
- package/dist/plugins/orFail.mjs +1 -0
- package/dist/plugins/read-only/index.d.ts +1 -0
- package/dist/plugins/read-only/index.js +5 -0
- package/dist/plugins/read-only/index.mjs +1 -0
- package/dist/plugins/read-only/read-only.d.ts +7 -0
- package/dist/plugins/read-only/read-only.js +52 -0
- package/dist/plugins/read-only/read-only.mjs +49 -0
- package/dist/plugins/readOnly.d.ts +1 -0
- package/dist/plugins/readOnly.js +2 -0
- package/dist/plugins/readOnly.mjs +1 -0
- package/dist/plugins/readOnlyWriteOnly.d.ts +1 -48
- package/dist/plugins/readOnlyWriteOnly.js +2 -1
- package/dist/plugins/readOnlyWriteOnly.mjs +1 -1
- package/dist/plugins/required/index.d.ts +1 -0
- package/dist/plugins/required/index.js +5 -0
- package/dist/plugins/required/index.mjs +1 -0
- package/dist/plugins/required/required.d.ts +7 -0
- package/dist/plugins/required/required.js +42 -0
- package/dist/plugins/required/required.mjs +39 -0
- package/dist/plugins/required-if/index.d.ts +1 -0
- package/dist/plugins/required-if/index.js +5 -0
- package/dist/plugins/required-if/index.mjs +1 -0
- package/dist/plugins/required-if/required-if.d.ts +11 -0
- package/dist/plugins/required-if/required-if.js +34 -0
- package/dist/plugins/required-if/required-if.mjs +31 -0
- package/dist/plugins/required.d.ts +1 -45
- package/dist/plugins/required.js +2 -1
- package/dist/plugins/required.mjs +1 -1
- package/dist/plugins/requiredIf.d.ts +1 -66
- package/dist/plugins/requiredIf.js +2 -1
- package/dist/plugins/requiredIf.mjs +1 -1
- package/dist/plugins/skip/index.d.ts +1 -0
- package/dist/plugins/skip/index.js +5 -0
- package/dist/plugins/skip/index.mjs +1 -0
- package/dist/plugins/skip/skip.d.ts +7 -0
- package/dist/plugins/skip/skip.js +22 -0
- package/dist/plugins/skip/skip.mjs +19 -0
- package/dist/plugins/skip.d.ts +1 -57
- package/dist/plugins/skip.js +2 -1
- package/dist/plugins/skip.mjs +1 -1
- package/dist/plugins/stitch/index.d.ts +2 -0
- package/dist/plugins/stitch/index.js +5 -0
- package/dist/plugins/stitch/index.mjs +1 -0
- package/dist/plugins/stitch/stitch.d.ts +30 -0
- package/dist/plugins/stitch/stitch.js +72 -0
- package/dist/plugins/stitch/stitch.mjs +69 -0
- package/dist/plugins/stitch.d.ts +1 -0
- package/dist/plugins/stitch.js +2 -0
- package/dist/plugins/stitch.mjs +1 -0
- package/dist/plugins/string-alphanumeric/index.d.ts +1 -0
- package/dist/plugins/string-alphanumeric/index.js +5 -0
- package/dist/plugins/string-alphanumeric/index.mjs +1 -0
- package/dist/plugins/string-alphanumeric/string-alphanumeric.d.ts +8 -0
- package/dist/plugins/string-alphanumeric/string-alphanumeric.js +39 -0
- package/dist/plugins/string-alphanumeric/string-alphanumeric.mjs +36 -0
- package/dist/plugins/string-base64/index.d.ts +1 -0
- package/dist/plugins/string-base64/index.js +5 -0
- package/dist/plugins/string-base64/index.mjs +1 -0
- package/dist/plugins/string-base64/string-base64.d.ts +12 -0
- package/dist/plugins/string-base64/string-base64.js +40 -0
- package/dist/plugins/string-base64/string-base64.mjs +37 -0
- package/dist/plugins/string-content-encoding/content-encoding-checks.d.ts +4 -0
- package/dist/plugins/string-content-encoding/content-encoding-checks.js +67 -0
- package/dist/plugins/string-content-encoding/content-encoding-checks.mjs +64 -0
- package/dist/plugins/string-content-encoding/index.d.ts +2 -0
- package/dist/plugins/string-content-encoding/index.js +5 -0
- package/dist/plugins/string-content-encoding/index.mjs +1 -0
- package/dist/plugins/string-content-encoding/string-content-encoding.d.ts +10 -0
- package/dist/plugins/string-content-encoding/string-content-encoding.js +40 -0
- package/dist/plugins/string-content-encoding/string-content-encoding.mjs +37 -0
- package/dist/plugins/string-content-media-type/index.d.ts +1 -0
- package/dist/plugins/string-content-media-type/index.js +5 -0
- package/dist/plugins/string-content-media-type/index.mjs +1 -0
- package/dist/plugins/string-content-media-type/media-type-checks.d.ts +3 -0
- package/dist/plugins/string-content-media-type/media-type-checks.js +46 -0
- package/dist/plugins/string-content-media-type/media-type-checks.mjs +43 -0
- package/dist/plugins/string-content-media-type/string-content-media-type.d.ts +8 -0
- package/dist/plugins/string-content-media-type/string-content-media-type.js +41 -0
- package/dist/plugins/string-content-media-type/string-content-media-type.mjs +38 -0
- package/dist/plugins/string-date/calendar-date.d.ts +3 -0
- package/dist/plugins/string-date/calendar-date.js +24 -0
- package/dist/plugins/string-date/calendar-date.mjs +20 -0
- package/dist/plugins/string-date/index.d.ts +1 -0
- package/dist/plugins/string-date/index.js +5 -0
- package/dist/plugins/string-date/index.mjs +1 -0
- package/dist/plugins/string-date/string-date.d.ts +7 -0
- package/dist/plugins/string-date/string-date.js +42 -0
- package/dist/plugins/string-date/string-date.mjs +39 -0
- package/dist/plugins/string-datetime/calendar-date.d.ts +2 -0
- package/dist/plugins/string-datetime/calendar-date.js +24 -0
- package/dist/plugins/string-datetime/calendar-date.mjs +20 -0
- package/dist/plugins/string-datetime/index.d.ts +1 -0
- package/dist/plugins/string-datetime/index.js +5 -0
- package/dist/plugins/string-datetime/index.mjs +1 -0
- package/dist/plugins/string-datetime/string-datetime.d.ts +12 -0
- package/dist/plugins/string-datetime/string-datetime.js +67 -0
- package/dist/plugins/string-datetime/string-datetime.mjs +64 -0
- package/dist/plugins/string-duration/index.d.ts +1 -0
- package/dist/plugins/string-duration/index.js +5 -0
- package/dist/plugins/string-duration/index.mjs +1 -0
- package/dist/plugins/string-duration/string-duration.d.ts +7 -0
- package/dist/plugins/string-duration/string-duration.js +31 -0
- package/dist/plugins/string-duration/string-duration.mjs +28 -0
- package/dist/plugins/string-email/index.d.ts +1 -0
- package/dist/plugins/string-email/index.js +5 -0
- package/dist/plugins/string-email/index.mjs +1 -0
- package/dist/plugins/string-email/string-email.d.ts +14 -0
- package/dist/plugins/string-email/string-email.js +58 -0
- package/dist/plugins/string-email/string-email.mjs +55 -0
- package/dist/plugins/string-ends-with/index.d.ts +1 -0
- package/dist/plugins/string-ends-with/index.js +5 -0
- package/dist/plugins/string-ends-with/index.mjs +1 -0
- package/dist/plugins/string-ends-with/string-ends-with.d.ts +8 -0
- package/dist/plugins/string-ends-with/string-ends-with.js +30 -0
- package/dist/plugins/string-ends-with/string-ends-with.mjs +27 -0
- package/dist/plugins/string-exact-length/index.d.ts +1 -0
- package/dist/plugins/string-exact-length/index.js +5 -0
- package/dist/plugins/string-exact-length/index.mjs +1 -0
- package/dist/plugins/string-exact-length/string-exact-length.d.ts +11 -0
- package/dist/plugins/string-exact-length/string-exact-length.js +34 -0
- package/dist/plugins/string-exact-length/string-exact-length.mjs +31 -0
- package/dist/plugins/string-hostname/index.d.ts +1 -0
- package/dist/plugins/string-hostname/index.js +5 -0
- package/dist/plugins/string-hostname/index.mjs +1 -0
- package/dist/plugins/string-hostname/string-hostname.d.ts +7 -0
- package/dist/plugins/string-hostname/string-hostname.js +30 -0
- package/dist/plugins/string-hostname/string-hostname.mjs +27 -0
- package/dist/plugins/string-idn-email/idn-email.d.ts +1 -0
- package/dist/plugins/string-idn-email/idn-email.js +85 -0
- package/dist/plugins/string-idn-email/idn-email.mjs +82 -0
- package/dist/plugins/string-idn-email/index.d.ts +1 -0
- package/dist/plugins/string-idn-email/index.js +5 -0
- package/dist/plugins/string-idn-email/index.mjs +1 -0
- package/dist/plugins/string-idn-email/string-idn-email.d.ts +7 -0
- package/dist/plugins/string-idn-email/string-idn-email.js +29 -0
- package/dist/plugins/string-idn-email/string-idn-email.mjs +26 -0
- package/dist/plugins/string-idn-hostname/idn-hostname.d.ts +1 -0
- package/dist/plugins/string-idn-hostname/idn-hostname.js +72 -0
- package/dist/plugins/string-idn-hostname/idn-hostname.mjs +69 -0
- package/dist/plugins/string-idn-hostname/index.d.ts +1 -0
- package/dist/plugins/string-idn-hostname/index.js +5 -0
- package/dist/plugins/string-idn-hostname/index.mjs +1 -0
- package/dist/plugins/string-idn-hostname/string-idn-hostname.d.ts +7 -0
- package/dist/plugins/string-idn-hostname/string-idn-hostname.js +31 -0
- package/dist/plugins/string-idn-hostname/string-idn-hostname.mjs +28 -0
- package/dist/plugins/string-ipv4/index.d.ts +1 -0
- package/dist/plugins/string-ipv4/index.js +5 -0
- package/dist/plugins/string-ipv4/index.mjs +1 -0
- package/dist/plugins/string-ipv4/string-ipv4.d.ts +7 -0
- package/dist/plugins/string-ipv4/string-ipv4.js +32 -0
- package/dist/plugins/string-ipv4/string-ipv4.mjs +29 -0
- package/dist/plugins/string-ipv6/index.d.ts +1 -0
- package/dist/plugins/string-ipv6/index.js +5 -0
- package/dist/plugins/string-ipv6/index.mjs +1 -0
- package/dist/plugins/string-ipv6/ipv6-address.d.ts +2 -0
- package/dist/plugins/string-ipv6/ipv6-address.js +70 -0
- package/dist/plugins/string-ipv6/ipv6-address.mjs +67 -0
- package/dist/plugins/string-ipv6/string-ipv6.d.ts +7 -0
- package/dist/plugins/string-ipv6/string-ipv6.js +27 -0
- package/dist/plugins/string-ipv6/string-ipv6.mjs +24 -0
- package/dist/plugins/string-iri/control-character.d.ts +1 -0
- package/dist/plugins/string-iri/control-character.js +21 -0
- package/dist/plugins/string-iri/control-character.mjs +18 -0
- package/dist/plugins/string-iri/index.d.ts +1 -0
- package/dist/plugins/string-iri/index.js +5 -0
- package/dist/plugins/string-iri/index.mjs +1 -0
- package/dist/plugins/string-iri/string-iri.d.ts +7 -0
- package/dist/plugins/string-iri/string-iri.js +49 -0
- package/dist/plugins/string-iri/string-iri.mjs +46 -0
- package/dist/plugins/string-iri-reference/control-character.d.ts +1 -0
- package/dist/plugins/string-iri-reference/control-character.js +21 -0
- package/dist/plugins/string-iri-reference/control-character.mjs +18 -0
- package/dist/plugins/string-iri-reference/index.d.ts +1 -0
- package/dist/plugins/string-iri-reference/index.js +5 -0
- package/dist/plugins/string-iri-reference/index.mjs +1 -0
- package/dist/plugins/string-iri-reference/iri-reference.d.ts +1 -0
- package/dist/plugins/string-iri-reference/iri-reference.js +39 -0
- package/dist/plugins/string-iri-reference/iri-reference.mjs +36 -0
- package/dist/plugins/string-iri-reference/string-iri-reference.d.ts +7 -0
- package/dist/plugins/string-iri-reference/string-iri-reference.js +26 -0
- package/dist/plugins/string-iri-reference/string-iri-reference.mjs +23 -0
- package/dist/plugins/string-json-pointer/index.d.ts +1 -0
- package/dist/plugins/string-json-pointer/index.js +5 -0
- package/dist/plugins/string-json-pointer/index.mjs +1 -0
- package/dist/plugins/string-json-pointer/string-json-pointer.d.ts +7 -0
- package/dist/plugins/string-json-pointer/string-json-pointer.js +35 -0
- package/dist/plugins/string-json-pointer/string-json-pointer.mjs +32 -0
- package/dist/plugins/string-max/index.d.ts +1 -0
- package/dist/plugins/string-max/index.js +5 -0
- package/dist/plugins/string-max/index.mjs +1 -0
- package/dist/plugins/string-max/string-max.d.ts +11 -0
- package/dist/plugins/string-max/string-max.js +34 -0
- package/dist/plugins/string-max/string-max.mjs +31 -0
- package/dist/plugins/string-min/index.d.ts +1 -0
- package/dist/plugins/string-min/index.js +5 -0
- package/dist/plugins/string-min/index.mjs +1 -0
- package/dist/plugins/string-min/string-min.d.ts +11 -0
- package/dist/plugins/string-min/string-min.js +37 -0
- package/dist/plugins/string-min/string-min.mjs +34 -0
- package/dist/plugins/string-pattern/index.d.ts +1 -0
- package/dist/plugins/string-pattern/index.js +5 -0
- package/dist/plugins/string-pattern/index.mjs +1 -0
- package/dist/plugins/string-pattern/string-pattern.d.ts +8 -0
- package/dist/plugins/string-pattern/string-pattern.js +49 -0
- package/dist/plugins/string-pattern/string-pattern.mjs +46 -0
- package/dist/plugins/string-regex/index.d.ts +1 -0
- package/dist/plugins/string-regex/index.js +5 -0
- package/dist/plugins/string-regex/index.mjs +1 -0
- package/dist/plugins/string-regex/is-ecma262-regex.d.ts +2 -0
- package/dist/plugins/string-regex/is-ecma262-regex.js +25 -0
- package/dist/plugins/string-regex/is-ecma262-regex.mjs +22 -0
- package/dist/plugins/string-regex/string-regex.d.ts +7 -0
- package/dist/plugins/string-regex/string-regex.js +28 -0
- package/dist/plugins/string-regex/string-regex.mjs +25 -0
- package/dist/plugins/string-relative-json-pointer/index.d.ts +1 -0
- package/dist/plugins/string-relative-json-pointer/index.js +5 -0
- package/dist/plugins/string-relative-json-pointer/index.mjs +1 -0
- package/dist/plugins/string-relative-json-pointer/string-relative-json-pointer.d.ts +7 -0
- package/dist/plugins/string-relative-json-pointer/string-relative-json-pointer.js +42 -0
- package/dist/plugins/string-relative-json-pointer/string-relative-json-pointer.mjs +39 -0
- package/dist/plugins/string-starts-with/index.d.ts +1 -0
- package/dist/plugins/string-starts-with/index.js +5 -0
- package/dist/plugins/string-starts-with/index.mjs +1 -0
- package/dist/plugins/string-starts-with/string-starts-with.d.ts +8 -0
- package/dist/plugins/string-starts-with/string-starts-with.js +30 -0
- package/dist/plugins/string-starts-with/string-starts-with.mjs +27 -0
- package/dist/plugins/string-time/index.d.ts +1 -0
- package/dist/plugins/string-time/index.js +5 -0
- package/dist/plugins/string-time/index.mjs +1 -0
- package/dist/plugins/string-time/string-time.d.ts +12 -0
- package/dist/plugins/string-time/string-time.js +37 -0
- package/dist/plugins/string-time/string-time.mjs +34 -0
- package/dist/plugins/string-uri-reference/index.d.ts +1 -0
- package/dist/plugins/string-uri-reference/index.js +5 -0
- package/dist/plugins/string-uri-reference/index.mjs +1 -0
- package/dist/plugins/string-uri-reference/string-uri-reference.d.ts +7 -0
- package/dist/plugins/string-uri-reference/string-uri-reference.js +28 -0
- package/dist/plugins/string-uri-reference/string-uri-reference.mjs +25 -0
- package/dist/plugins/string-uri-reference/uri-reference.d.ts +1 -0
- package/dist/plugins/string-uri-reference/uri-reference.js +71 -0
- package/dist/plugins/string-uri-reference/uri-reference.mjs +68 -0
- package/dist/plugins/string-uri-template/index.d.ts +1 -0
- package/dist/plugins/string-uri-template/index.js +5 -0
- package/dist/plugins/string-uri-template/index.mjs +1 -0
- package/dist/plugins/string-uri-template/string-uri-template.d.ts +7 -0
- package/dist/plugins/string-uri-template/string-uri-template.js +26 -0
- package/dist/plugins/string-uri-template/string-uri-template.mjs +23 -0
- package/dist/plugins/string-uri-template/uri-template.d.ts +1 -0
- package/dist/plugins/string-uri-template/uri-template.js +59 -0
- package/dist/plugins/string-uri-template/uri-template.mjs +56 -0
- package/dist/plugins/string-url/index.d.ts +1 -0
- package/dist/plugins/string-url/index.js +5 -0
- package/dist/plugins/string-url/index.mjs +1 -0
- package/dist/plugins/string-url/string-url.d.ts +14 -0
- package/dist/plugins/string-url/string-url.js +55 -0
- package/dist/plugins/string-url/string-url.mjs +52 -0
- package/dist/plugins/stringAlphanumeric.d.ts +1 -0
- package/dist/plugins/stringAlphanumeric.js +2 -0
- package/dist/plugins/stringAlphanumeric.mjs +1 -0
- package/dist/plugins/stringBase64.d.ts +1 -119
- package/dist/plugins/stringBase64.js +2 -1
- package/dist/plugins/stringBase64.mjs +1 -1
- package/dist/plugins/stringContentEncoding.d.ts +1 -43
- package/dist/plugins/stringContentEncoding.js +2 -1
- package/dist/plugins/stringContentEncoding.mjs +1 -1
- package/dist/plugins/stringContentMediaType.d.ts +1 -47
- package/dist/plugins/stringContentMediaType.js +2 -1
- package/dist/plugins/stringContentMediaType.mjs +1 -1
- package/dist/plugins/stringDate.d.ts +1 -48
- package/dist/plugins/stringDate.js +2 -1
- package/dist/plugins/stringDate.mjs +1 -1
- package/dist/plugins/stringDatetime.d.ts +1 -108
- package/dist/plugins/stringDatetime.js +2 -1
- package/dist/plugins/stringDatetime.mjs +1 -1
- package/dist/plugins/stringDuration.d.ts +1 -41
- package/dist/plugins/stringDuration.js +2 -1
- package/dist/plugins/stringDuration.mjs +1 -1
- package/dist/plugins/stringEmail.d.ts +1 -81
- package/dist/plugins/stringEmail.js +2 -1
- package/dist/plugins/stringEmail.mjs +1 -1
- package/dist/plugins/stringEndsWith.d.ts +1 -0
- package/dist/plugins/stringEndsWith.js +2 -0
- package/dist/plugins/stringEndsWith.mjs +1 -0
- package/dist/plugins/stringExactLength.d.ts +1 -0
- package/dist/plugins/stringExactLength.js +2 -0
- package/dist/plugins/stringExactLength.mjs +1 -0
- package/dist/plugins/stringHostname.d.ts +1 -104
- package/dist/plugins/stringHostname.js +2 -1
- package/dist/plugins/stringHostname.mjs +1 -1
- package/dist/plugins/stringIdnEmail.d.ts +1 -0
- package/dist/plugins/stringIdnEmail.js +2 -0
- package/dist/plugins/stringIdnEmail.mjs +1 -0
- package/dist/plugins/stringIdnHostname.d.ts +1 -0
- package/dist/plugins/stringIdnHostname.js +2 -0
- package/dist/plugins/stringIdnHostname.mjs +1 -0
- package/dist/plugins/stringIpv4.d.ts +1 -85
- package/dist/plugins/stringIpv4.js +2 -1
- package/dist/plugins/stringIpv4.mjs +1 -1
- package/dist/plugins/stringIpv6.d.ts +1 -104
- package/dist/plugins/stringIpv6.js +2 -1
- package/dist/plugins/stringIpv6.mjs +1 -1
- package/dist/plugins/stringIri.d.ts +1 -117
- package/dist/plugins/stringIri.js +2 -1
- package/dist/plugins/stringIri.mjs +1 -1
- package/dist/plugins/stringIriReference.d.ts +1 -43
- package/dist/plugins/stringIriReference.js +2 -1
- package/dist/plugins/stringIriReference.mjs +1 -1
- package/dist/plugins/stringJsonPointer.d.ts +1 -107
- package/dist/plugins/stringJsonPointer.js +2 -1
- package/dist/plugins/stringJsonPointer.mjs +1 -1
- package/dist/plugins/stringMax.d.ts +1 -43
- package/dist/plugins/stringMax.js +2 -1
- package/dist/plugins/stringMax.mjs +1 -1
- package/dist/plugins/stringMin.d.ts +1 -43
- package/dist/plugins/stringMin.js +2 -1
- package/dist/plugins/stringMin.mjs +1 -1
- package/dist/plugins/stringPattern.d.ts +1 -40
- package/dist/plugins/stringPattern.js +2 -1
- package/dist/plugins/stringPattern.mjs +1 -1
- package/dist/plugins/stringRegex.d.ts +1 -0
- package/dist/plugins/stringRegex.js +2 -0
- package/dist/plugins/stringRegex.mjs +1 -0
- package/dist/plugins/stringRelativeJsonPointer.d.ts +1 -42
- package/dist/plugins/stringRelativeJsonPointer.js +2 -1
- package/dist/plugins/stringRelativeJsonPointer.mjs +1 -1
- package/dist/plugins/stringStartsWith.d.ts +1 -0
- package/dist/plugins/stringStartsWith.js +2 -0
- package/dist/plugins/stringStartsWith.mjs +1 -0
- package/dist/plugins/stringTime.d.ts +1 -39
- package/dist/plugins/stringTime.js +2 -1
- package/dist/plugins/stringTime.mjs +1 -1
- package/dist/plugins/stringUriReference.d.ts +1 -0
- package/dist/plugins/stringUriReference.js +2 -0
- package/dist/plugins/stringUriReference.mjs +1 -0
- package/dist/plugins/stringUriTemplate.d.ts +1 -43
- package/dist/plugins/stringUriTemplate.js +2 -1
- package/dist/plugins/stringUriTemplate.mjs +1 -1
- package/dist/plugins/stringUrl.d.ts +1 -97
- package/dist/plugins/stringUrl.js +2 -1
- package/dist/plugins/stringUrl.mjs +1 -1
- package/dist/plugins/transform/index.d.ts +1 -0
- package/dist/plugins/transform/index.js +5 -0
- package/dist/plugins/transform/index.mjs +1 -0
- package/dist/plugins/transform/transform.d.ts +7 -0
- package/dist/plugins/transform/transform.js +35 -0
- package/dist/plugins/transform/transform.mjs +32 -0
- package/dist/plugins/transform.d.ts +1 -35
- package/dist/plugins/transform.js +2 -1
- package/dist/plugins/transform.mjs +1 -1
- package/dist/plugins/tuple-builder/index.d.ts +2 -0
- package/dist/plugins/tuple-builder/index.js +5 -0
- package/dist/plugins/tuple-builder/index.mjs +1 -0
- package/dist/plugins/tuple-builder/tuple-builder.d.ts +21 -0
- package/dist/plugins/tuple-builder/tuple-builder.js +128 -0
- package/dist/plugins/tuple-builder/tuple-builder.mjs +125 -0
- package/dist/plugins/tupleBuilder.d.ts +1 -66
- package/dist/plugins/tupleBuilder.js +2 -1
- package/dist/plugins/tupleBuilder.mjs +1 -1
- package/dist/plugins/union-guard/index.d.ts +1 -0
- package/dist/plugins/union-guard/index.js +5 -0
- package/dist/plugins/union-guard/index.mjs +1 -0
- package/dist/plugins/union-guard/union-guard.d.ts +14 -0
- package/dist/plugins/union-guard/union-guard.js +56 -0
- package/dist/plugins/union-guard/union-guard.mjs +53 -0
- package/dist/plugins/unionGuard.d.ts +1 -0
- package/dist/plugins/unionGuard.js +2 -0
- package/dist/plugins/unionGuard.mjs +1 -0
- package/dist/plugins/uuid/index.d.ts +1 -0
- package/dist/plugins/uuid/index.js +5 -0
- package/dist/plugins/uuid/index.mjs +1 -0
- package/dist/plugins/uuid/uuid.d.ts +10 -0
- package/dist/plugins/uuid/uuid.js +56 -0
- package/dist/plugins/uuid/uuid.mjs +53 -0
- package/dist/plugins/uuid.d.ts +1 -95
- package/dist/plugins/uuid.js +2 -1
- package/dist/plugins/uuid.mjs +1 -1
- package/dist/plugins/validate-if/index.d.ts +1 -0
- package/dist/plugins/validate-if/index.js +5 -0
- package/dist/plugins/validate-if/index.mjs +1 -0
- package/dist/plugins/validate-if/validate-if.d.ts +7 -0
- package/dist/plugins/validate-if/validate-if.js +22 -0
- package/dist/plugins/validate-if/validate-if.mjs +19 -0
- package/dist/plugins/validateIf.d.ts +1 -57
- package/dist/plugins/validateIf.js +2 -1
- package/dist/plugins/validateIf.mjs +1 -1
- package/dist/plugins/write-only/index.d.ts +1 -0
- package/dist/plugins/write-only/index.js +5 -0
- package/dist/plugins/write-only/index.mjs +1 -0
- package/dist/plugins/write-only/write-only.d.ts +7 -0
- package/dist/plugins/write-only/write-only.js +48 -0
- package/dist/plugins/write-only/write-only.mjs +45 -0
- package/dist/plugins/writeOnly.d.ts +1 -0
- package/dist/plugins/writeOnly.js +2 -0
- package/dist/plugins/writeOnly.mjs +1 -0
- package/dist/result/index.d.ts +18 -0
- package/dist/result/index.js +44 -0
- package/dist/result/index.mjs +36 -0
- package/dist/result.d.ts +1 -0
- package/dist/result.js +2 -0
- package/dist/result.mjs +1 -0
- package/dist/runtime/create-field-validator.d.ts +12 -0
- package/dist/runtime/create-field-validator.js +74 -0
- package/dist/runtime/create-field-validator.mjs +71 -0
- package/dist/runtime/create-issue.d.ts +24 -0
- package/dist/runtime/create-issue.js +34 -0
- package/dist/runtime/create-issue.mjs +30 -0
- package/dist/runtime/create-validator.d.ts +19 -0
- package/dist/runtime/create-validator.js +70 -0
- package/dist/runtime/create-validator.mjs +65 -0
- package/dist/runtime/decide-presence.d.ts +5 -0
- package/dist/runtime/decide-presence.js +47 -0
- package/dist/runtime/decide-presence.mjs +44 -0
- package/dist/runtime/index-stack.d.ts +28 -0
- package/dist/runtime/index-stack.js +68 -0
- package/dist/runtime/index-stack.mjs +63 -0
- package/dist/runtime/index.d.ts +19 -0
- package/dist/runtime/index.js +48 -0
- package/dist/runtime/index.mjs +16 -0
- package/dist/runtime/issue-sink.d.ts +39 -0
- package/dist/runtime/issue-sink.js +61 -0
- package/dist/runtime/issue-sink.mjs +56 -0
- package/dist/runtime/output-writer.d.ts +38 -0
- package/dist/runtime/output-writer.js +59 -0
- package/dist/runtime/output-writer.mjs +52 -0
- package/dist/runtime/run-array-node.d.ts +9 -0
- package/dist/runtime/run-array-node.js +98 -0
- package/dist/runtime/run-array-node.mjs +95 -0
- package/dist/runtime/run-branch.d.ts +14 -0
- package/dist/runtime/run-branch.js +67 -0
- package/dist/runtime/run-branch.mjs +63 -0
- package/dist/runtime/run-field.d.ts +27 -0
- package/dist/runtime/run-field.js +88 -0
- package/dist/runtime/run-field.mjs +84 -0
- package/dist/runtime/run-plan.d.ts +28 -0
- package/dist/runtime/run-plan.js +50 -0
- package/dist/runtime/run-plan.mjs +46 -0
- package/dist/runtime/run-recursion.d.ts +17 -0
- package/dist/runtime/run-recursion.js +119 -0
- package/dist/runtime/run-recursion.mjs +115 -0
- package/dist/subpath-aliases/read-only-write-only.d.ts +2 -0
- package/dist/subpath-aliases/read-only-write-only.js +16 -0
- package/dist/subpath-aliases/read-only-write-only.mjs +11 -0
- package/dist/types/global-config.d.ts +31 -0
- package/dist/types/global-config.js +36 -0
- package/dist/types/global-config.mjs +32 -0
- package/dist/types/index.d.ts +64 -70
- package/dist/types/index.js +28 -0
- package/dist/types/index.mjs +19 -0
- package/dist/types/validation-result.types.d.ts +22 -0
- package/dist/types/validation-result.types.js +2 -0
- package/dist/types/validation-result.types.mjs +1 -0
- package/package.json +516 -353
- package/dist/constants.d.ts +0 -27
- package/dist/core/async.experimental/async-context.d.ts +0 -60
- package/dist/core/builder/array-batch-optimizer.d.ts +0 -66
- package/dist/core/builder/context/field-context.d.ts +0 -31
- package/dist/core/builder/context/field-type-detector.d.ts +0 -19
- package/dist/core/builder/core/builder.d.ts +0 -10
- package/dist/core/builder/core/field-builder.d.ts +0 -13
- package/dist/core/builder/core/index.d.ts +0 -17
- package/dist/core/builder/index.d.ts +0 -24
- package/dist/core/builder/nested-array-processor.d.ts +0 -52
- package/dist/core/builder/plugins/composable-conditional-plugin.d.ts +0 -32
- package/dist/core/builder/plugins/composable-directly-plugin.d.ts +0 -32
- package/dist/core/builder/plugins/composable-plugin.d.ts +0 -242
- package/dist/core/builder/plugins/plugin-creator.d.ts +0 -38
- package/dist/core/builder/plugins/plugin-interfaces.d.ts +0 -343
- package/dist/core/builder/plugins/plugin-types.d.ts +0 -441
- package/dist/core/builder/raw-validator.d.ts +0 -22
- package/dist/core/builder/types/field-options.d.ts +0 -46
- package/dist/core/builder/types/types.d.ts +0 -319
- package/dist/core/builder/ultra-fast-validator.d.ts +0 -30
- package/dist/core/builder/validator-factory.d.ts +0 -29
- package/dist/core/global-config.d.ts +0 -27
- package/dist/core/index.d.ts +0 -36
- package/dist/core/optimization/array-batch-validator.d.ts +0 -68
- package/dist/core/optimization/core/field-utils.d.ts +0 -103
- package/dist/core/optimization/core/strategy-factory.d.ts +0 -84
- package/dist/core/optimization/core/validation-engine.d.ts +0 -107
- package/dist/core/optimization/execution-strategy-selector.d.ts +0 -23
- package/dist/core/optimization/unified-validator.d.ts +0 -45
- package/dist/core/plugin/__tests__/test-utils.d.ts +0 -1
- package/dist/core/plugin/arrayContains.d.ts +0 -37
- package/dist/core/plugin/arrayIncludes.d.ts +0 -42
- package/dist/core/plugin/arrayMaxLength.d.ts +0 -43
- package/dist/core/plugin/arrayMinLength.d.ts +0 -43
- package/dist/core/plugin/arrayUnique.d.ts +0 -41
- package/dist/core/plugin/booleanFalsy.d.ts +0 -41
- package/dist/core/plugin/booleanTruthy.d.ts +0 -38
- package/dist/core/plugin/compareField.d.ts +0 -58
- package/dist/core/plugin/conditionalSchema.d.ts +0 -24
- package/dist/core/plugin/custom.d.ts +0 -60
- package/dist/core/plugin/fromContext.d.ts +0 -150
- package/dist/core/plugin/index.d.ts +0 -71
- package/dist/core/plugin/jsonSchema/dsl-converter.d.ts +0 -22
- package/dist/core/plugin/jsonSchema/error-generation.d.ts +0 -14
- package/dist/core/plugin/jsonSchema/format-validators.d.ts +0 -20
- package/dist/core/plugin/jsonSchema/index.d.ts +0 -11
- package/dist/core/plugin/jsonSchema/plugin.d.ts +0 -35
- package/dist/core/plugin/jsonSchema/ref-resolver.d.ts +0 -14
- package/dist/core/plugin/jsonSchema/types.d.ts +0 -69
- package/dist/core/plugin/jsonSchema/validation-core.d.ts +0 -29
- package/dist/core/plugin/jsonSchemaFullFeature.d.ts +0 -31
- package/dist/core/plugin/literal.d.ts +0 -40
- package/dist/core/plugin/message-factories.d.ts +0 -9
- package/dist/core/plugin/nullable.d.ts +0 -34
- package/dist/core/plugin/numberFinite.d.ts +0 -41
- package/dist/core/plugin/numberInteger.d.ts +0 -41
- package/dist/core/plugin/numberMax.d.ts +0 -49
- package/dist/core/plugin/numberMin.d.ts +0 -49
- package/dist/core/plugin/numberMultipleOf.d.ts +0 -42
- package/dist/core/plugin/numberNegative.d.ts +0 -41
- package/dist/core/plugin/numberPositive.d.ts +0 -41
- package/dist/core/plugin/numberRange.d.ts +0 -48
- package/dist/core/plugin/object.d.ts +0 -43
- package/dist/core/plugin/objectAdditionalProperties.d.ts +0 -51
- package/dist/core/plugin/objectDependentRequired.d.ts +0 -42
- package/dist/core/plugin/objectDependentSchemas.d.ts +0 -40
- package/dist/core/plugin/objectMaxProperties.d.ts +0 -42
- package/dist/core/plugin/objectMinProperties.d.ts +0 -42
- package/dist/core/plugin/objectPatternProperties.d.ts +0 -46
- package/dist/core/plugin/objectPropertyNames.d.ts +0 -36
- package/dist/core/plugin/objectRecursively.d.ts +0 -81
- package/dist/core/plugin/oneOf.d.ts +0 -44
- package/dist/core/plugin/optional.d.ts +0 -35
- package/dist/core/plugin/optionalIf.d.ts +0 -42
- package/dist/core/plugin/orFail.d.ts +0 -132
- package/dist/core/plugin/readOnlyWriteOnly.d.ts +0 -48
- package/dist/core/plugin/required.d.ts +0 -45
- package/dist/core/plugin/requiredIf.d.ts +0 -66
- package/dist/core/plugin/shared-constants.d.ts +0 -45
- package/dist/core/plugin/shared.d.ts +0 -3
- package/dist/core/plugin/skip.d.ts +0 -57
- package/dist/core/plugin/stitch-typed.d.ts +0 -15
- package/dist/core/plugin/stitch.d.ts +0 -1
- package/dist/core/plugin/stitchSimple.d.ts +0 -4
- package/dist/core/plugin/stringAlphanumeric.d.ts +0 -42
- package/dist/core/plugin/stringBase64.d.ts +0 -119
- package/dist/core/plugin/stringContentEncoding.d.ts +0 -43
- package/dist/core/plugin/stringContentMediaType.d.ts +0 -47
- package/dist/core/plugin/stringDate.d.ts +0 -48
- package/dist/core/plugin/stringDatetime.d.ts +0 -108
- package/dist/core/plugin/stringDuration.d.ts +0 -41
- package/dist/core/plugin/stringEmail.d.ts +0 -81
- package/dist/core/plugin/stringEndsWith.d.ts +0 -42
- package/dist/core/plugin/stringExactLength.d.ts +0 -46
- package/dist/core/plugin/stringHostname.d.ts +0 -104
- package/dist/core/plugin/stringIpv4.d.ts +0 -85
- package/dist/core/plugin/stringIpv6.d.ts +0 -104
- package/dist/core/plugin/stringIri.d.ts +0 -117
- package/dist/core/plugin/stringIriReference.d.ts +0 -43
- package/dist/core/plugin/stringJsonPointer.d.ts +0 -107
- package/dist/core/plugin/stringMax.d.ts +0 -43
- package/dist/core/plugin/stringMin.d.ts +0 -43
- package/dist/core/plugin/stringPattern.d.ts +0 -40
- package/dist/core/plugin/stringRelativeJsonPointer.d.ts +0 -42
- package/dist/core/plugin/stringStartsWith.d.ts +0 -42
- package/dist/core/plugin/stringTime.d.ts +0 -39
- package/dist/core/plugin/stringUriTemplate.d.ts +0 -43
- package/dist/core/plugin/stringUrl.d.ts +0 -97
- package/dist/core/plugin/testUtils.d.ts +0 -15
- package/dist/core/plugin/transform-type-restrictions.d.ts +0 -61
- package/dist/core/plugin/transform.d.ts +0 -35
- package/dist/core/plugin/tupleBuilder.d.ts +0 -66
- package/dist/core/plugin/types.d.ts +0 -143
- package/dist/core/plugin/unionGuard.d.ts +0 -50
- package/dist/core/plugin/utils/field-accessor-optimized.d.ts +0 -50
- package/dist/core/plugin/utils/field-accessor.d.ts +0 -107
- package/dist/core/plugin/uuid.d.ts +0 -95
- package/dist/core/plugin/validateIf.d.ts +0 -57
- package/dist/core/registry/plugin-registry.d.ts +0 -116
- package/dist/core/registry.d.ts +0 -6
- package/dist/core/transform/index.d.ts +0 -1
- package/dist/core/transform/string/defaultValue.d.ts +0 -6
- package/dist/core/transform/string/index.d.ts +0 -3
- package/dist/core/transform/string/replace.d.ts +0 -14
- package/dist/core/transform/string/sanitize.d.ts +0 -6
- package/dist/core/utils/type-guards.d.ts +0 -68
- package/dist/index.js.map +0 -7
- package/dist/index.mjs.map +0 -7
- package/dist/types/array-type-analysis.d.ts +0 -115
- package/dist/types/indexed-result.d.ts +0 -44
- package/dist/types/result.d.ts +0 -159
- package/dist/types/stitch-types.d.ts +0 -118
- package/dist/types/util.d.ts +0 -19
- package/dist/types/valitator.d.ts +0 -10
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stringKeywordMap = exports.contentMediaTypeBinding = exports.contentEncodingBinding = exports.patternBinding = exports.maxLengthBinding = exports.minLengthBinding = void 0;
|
|
4
|
+
// ===========================================================================
|
|
5
|
+
// L8 src/json-schema/keyword-map-string.ts — the six string keywords.
|
|
6
|
+
//
|
|
7
|
+
// `format` is the only structural one, and it is structural for a reason worth
|
|
8
|
+
// stating: its VALUE selects the binding. One keyword, twenty possible chain
|
|
9
|
+
// methods. The selection lives in format-map.ts, which is the single format
|
|
10
|
+
// table in this repository — 1.x shipped three of them and they disagreed
|
|
11
|
+
// (docs/legacy-spec/json-schema-mapping.md records the disagreements).
|
|
12
|
+
// ===========================================================================
|
|
13
|
+
const bind_keyword_1 = require("./bind-keyword");
|
|
14
|
+
const string_min_1 = require("../plugins/string-min");
|
|
15
|
+
const string_max_1 = require("../plugins/string-max");
|
|
16
|
+
const string_pattern_1 = require("../plugins/string-pattern");
|
|
17
|
+
const string_content_encoding_1 = require("../plugins/string-content-encoding");
|
|
18
|
+
const string_content_media_type_1 = require("../plugins/string-content-media-type");
|
|
19
|
+
exports.minLengthBinding = (0, bind_keyword_1.bindKeyword)("string", "min", string_min_1.stringMinPlugin, (v) => [v]);
|
|
20
|
+
exports.maxLengthBinding = (0, bind_keyword_1.bindKeyword)("string", "max", string_max_1.stringMaxPlugin, (v) => [v]);
|
|
21
|
+
/**
|
|
22
|
+
* Draft-07 spells `pattern` as an ECMA-262 SOURCE string; the plugin accepts a
|
|
23
|
+
* RegExp and only a RegExp, because 1.x's `new RegExp(source)` at the call site
|
|
24
|
+
* dropped flags silently and gave the caller no compile-time check. Compiling
|
|
25
|
+
* the schema's string therefore happens HERE, once, and nowhere else.
|
|
26
|
+
*/
|
|
27
|
+
exports.patternBinding = (0, bind_keyword_1.bindKeyword)("string", "pattern", string_pattern_1.stringPatternPlugin, (v) => [new RegExp(v)]);
|
|
28
|
+
/**
|
|
29
|
+
* The value type is `ContentEncodingName`, not `string`: an encoding the
|
|
30
|
+
* plugin does not know must be refused by the converter rather than accepted
|
|
31
|
+
* silently, and the compiler is what forces that narrowing to happen.
|
|
32
|
+
*/
|
|
33
|
+
exports.contentEncodingBinding = (0, bind_keyword_1.bindKeyword)("string", "contentEncoding", string_content_encoding_1.stringContentEncodingPlugin, (v) => [v]);
|
|
34
|
+
exports.contentMediaTypeBinding = (0, bind_keyword_1.bindKeyword)("string", "contentMediaType", string_content_media_type_1.stringContentMediaTypePlugin, (v) => [v]);
|
|
35
|
+
exports.stringKeywordMap = {
|
|
36
|
+
maxLength: exports.maxLengthBinding,
|
|
37
|
+
minLength: exports.minLengthBinding,
|
|
38
|
+
pattern: exports.patternBinding,
|
|
39
|
+
format: (0, bind_keyword_1.structural)("the keyword's VALUE selects which of the sixteen format plugins runs; " +
|
|
40
|
+
"see format-map.ts, the only format table in src. An unknown format " +
|
|
41
|
+
"name is an annotation and passes, which is what Draft-07 §7.2 requires"),
|
|
42
|
+
contentEncoding: exports.contentEncodingBinding,
|
|
43
|
+
contentMediaType: exports.contentMediaTypeBinding,
|
|
44
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// ===========================================================================
|
|
2
|
+
// L8 src/json-schema/keyword-map-string.ts — the six string keywords.
|
|
3
|
+
//
|
|
4
|
+
// `format` is the only structural one, and it is structural for a reason worth
|
|
5
|
+
// stating: its VALUE selects the binding. One keyword, twenty possible chain
|
|
6
|
+
// methods. The selection lives in format-map.ts, which is the single format
|
|
7
|
+
// table in this repository — 1.x shipped three of them and they disagreed
|
|
8
|
+
// (docs/legacy-spec/json-schema-mapping.md records the disagreements).
|
|
9
|
+
// ===========================================================================
|
|
10
|
+
import { bindKeyword, structural } from "./bind-keyword.mjs";
|
|
11
|
+
import { stringMinPlugin } from "../plugins/string-min/index.mjs";
|
|
12
|
+
import { stringMaxPlugin } from "../plugins/string-max/index.mjs";
|
|
13
|
+
import { stringPatternPlugin } from "../plugins/string-pattern/index.mjs";
|
|
14
|
+
import { stringContentEncodingPlugin, } from "../plugins/string-content-encoding/index.mjs";
|
|
15
|
+
import { stringContentMediaTypePlugin } from "../plugins/string-content-media-type/index.mjs";
|
|
16
|
+
export const minLengthBinding = bindKeyword("string", "min", stringMinPlugin, (v) => [v]);
|
|
17
|
+
export const maxLengthBinding = bindKeyword("string", "max", stringMaxPlugin, (v) => [v]);
|
|
18
|
+
/**
|
|
19
|
+
* Draft-07 spells `pattern` as an ECMA-262 SOURCE string; the plugin accepts a
|
|
20
|
+
* RegExp and only a RegExp, because 1.x's `new RegExp(source)` at the call site
|
|
21
|
+
* dropped flags silently and gave the caller no compile-time check. Compiling
|
|
22
|
+
* the schema's string therefore happens HERE, once, and nowhere else.
|
|
23
|
+
*/
|
|
24
|
+
export const patternBinding = bindKeyword("string", "pattern", stringPatternPlugin, (v) => [new RegExp(v)]);
|
|
25
|
+
/**
|
|
26
|
+
* The value type is `ContentEncodingName`, not `string`: an encoding the
|
|
27
|
+
* plugin does not know must be refused by the converter rather than accepted
|
|
28
|
+
* silently, and the compiler is what forces that narrowing to happen.
|
|
29
|
+
*/
|
|
30
|
+
export const contentEncodingBinding = bindKeyword("string", "contentEncoding", stringContentEncodingPlugin, (v) => [v]);
|
|
31
|
+
export const contentMediaTypeBinding = bindKeyword("string", "contentMediaType", stringContentMediaTypePlugin, (v) => [v]);
|
|
32
|
+
export const stringKeywordMap = {
|
|
33
|
+
maxLength: maxLengthBinding,
|
|
34
|
+
minLength: minLengthBinding,
|
|
35
|
+
pattern: patternBinding,
|
|
36
|
+
format: structural("the keyword's VALUE selects which of the sixteen format plugins runs; " +
|
|
37
|
+
"see format-map.ts, the only format table in src. An unknown format " +
|
|
38
|
+
"name is an annotation and passes, which is what Draft-07 §7.2 requires"),
|
|
39
|
+
contentEncoding: contentEncodingBinding,
|
|
40
|
+
contentMediaType: contentMediaTypeBinding,
|
|
41
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { AnyKeywordHandling, KeywordTable } from "./keyword-binding.types";
|
|
2
|
+
import type { Draft07Keyword } from "./draft07-keyword-value.types";
|
|
3
|
+
export declare const draft07KeywordMap: KeywordTable<Draft07Keyword>;
|
|
4
|
+
/**
|
|
5
|
+
* Keywords Luq recognises the NAME of but which are not Draft-07. They are
|
|
6
|
+
* listed so that "we did not implement it" and "it is not in this dialect"
|
|
7
|
+
* stay different answers. `$defs` is the one exception that still does
|
|
8
|
+
* something: resolve-ref follows it, because a 2019-09 document's pointers
|
|
9
|
+
* would otherwise dangle.
|
|
10
|
+
*/
|
|
11
|
+
export declare const NON_DRAFT07_KEYWORDS: Readonly<Record<string, string>>;
|
|
12
|
+
export declare function isDraft07Keyword(keyword: string): keyword is Draft07Keyword;
|
|
13
|
+
/** Every keyword the table decides on. No assertion; the guard narrows. */
|
|
14
|
+
export declare function listDraft07Keywords(): readonly Draft07Keyword[];
|
|
15
|
+
/** `undefined` = not a Draft-07 keyword at all. See NON_DRAFT07_KEYWORDS. */
|
|
16
|
+
export declare function findKeywordHandling(keyword: string): AnyKeywordHandling | undefined;
|
|
17
|
+
/** Throws for a keyword the table declares out of scope. Never silent. */
|
|
18
|
+
export declare function assertKeywordSupported(keyword: string): void;
|
|
19
|
+
/**
|
|
20
|
+
* Every plugin the two tables bind, de-duplicated and sorted. Step 26 GENERATES
|
|
21
|
+
* the full-feature bundle's use() list from this, so the bundle cannot name a
|
|
22
|
+
* plugin that is not bound, and cannot omit one that is.
|
|
23
|
+
*/
|
|
24
|
+
export declare function listBoundPluginNames(): readonly string[];
|
|
25
|
+
export interface KeywordHandlingCounts {
|
|
26
|
+
readonly bind: number;
|
|
27
|
+
readonly structural: number;
|
|
28
|
+
readonly unsupported: number;
|
|
29
|
+
readonly total: number;
|
|
30
|
+
}
|
|
31
|
+
/** Counted, never asserted: the published numbers come from this function. */
|
|
32
|
+
export declare function countKeywordHandlings(table: Readonly<Record<string, AnyKeywordHandling>>): KeywordHandlingCounts;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NON_DRAFT07_KEYWORDS = exports.draft07KeywordMap = void 0;
|
|
4
|
+
exports.isDraft07Keyword = isDraft07Keyword;
|
|
5
|
+
exports.listDraft07Keywords = listDraft07Keywords;
|
|
6
|
+
exports.findKeywordHandling = findKeywordHandling;
|
|
7
|
+
exports.assertKeywordSupported = assertKeywordSupported;
|
|
8
|
+
exports.listBoundPluginNames = listBoundPluginNames;
|
|
9
|
+
exports.countKeywordHandlings = countKeywordHandlings;
|
|
10
|
+
const keyword_map_core_1 = require("./keyword-map-core");
|
|
11
|
+
const keyword_map_number_1 = require("./keyword-map-number");
|
|
12
|
+
const keyword_map_string_1 = require("./keyword-map-string");
|
|
13
|
+
const keyword_map_array_1 = require("./keyword-map-array");
|
|
14
|
+
const keyword_map_object_1 = require("./keyword-map-object");
|
|
15
|
+
const format_map_1 = require("./format-map");
|
|
16
|
+
const unsupported_keyword_error_1 = require("./unsupported-keyword-error");
|
|
17
|
+
exports.draft07KeywordMap = {
|
|
18
|
+
...keyword_map_core_1.coreKeywordMap,
|
|
19
|
+
...keyword_map_number_1.numberKeywordMap,
|
|
20
|
+
...keyword_map_string_1.stringKeywordMap,
|
|
21
|
+
...keyword_map_array_1.arrayKeywordMap,
|
|
22
|
+
...keyword_map_object_1.objectKeywordMap,
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Keywords Luq recognises the NAME of but which are not Draft-07. They are
|
|
26
|
+
* listed so that "we did not implement it" and "it is not in this dialect"
|
|
27
|
+
* stay different answers. `$defs` is the one exception that still does
|
|
28
|
+
* something: resolve-ref follows it, because a 2019-09 document's pointers
|
|
29
|
+
* would otherwise dangle.
|
|
30
|
+
*/
|
|
31
|
+
exports.NON_DRAFT07_KEYWORDS = {
|
|
32
|
+
$defs: "2019-09 spelling of `definitions`; resolve-ref follows it anyway",
|
|
33
|
+
$anchor: "2019-09 anchors; resolve-ref resolves JSON Pointers only",
|
|
34
|
+
$dynamicRef: "2020-12 dynamic references",
|
|
35
|
+
$recursiveRef: "2019-09 recursive references",
|
|
36
|
+
dependentRequired: "2019-09 split of `dependencies`; use `dependencies`",
|
|
37
|
+
dependentSchemas: "2019-09 split of `dependencies`; use `dependencies`",
|
|
38
|
+
unevaluatedItems: "2019-09; no annotation-collection model in Luq",
|
|
39
|
+
unevaluatedProperties: "2019-09; no annotation-collection model in Luq",
|
|
40
|
+
contentSchema: "2019-09 companion to contentMediaType",
|
|
41
|
+
deprecated: "2019-09 annotation",
|
|
42
|
+
prefixItems: "2020-12 spelling of the tuple form of `items`",
|
|
43
|
+
};
|
|
44
|
+
function isDraft07Keyword(keyword) {
|
|
45
|
+
return Object.prototype.hasOwnProperty.call(exports.draft07KeywordMap, keyword);
|
|
46
|
+
}
|
|
47
|
+
/** Every keyword the table decides on. No assertion; the guard narrows. */
|
|
48
|
+
function listDraft07Keywords() {
|
|
49
|
+
return Object.keys(exports.draft07KeywordMap).filter(isDraft07Keyword);
|
|
50
|
+
}
|
|
51
|
+
/** `undefined` = not a Draft-07 keyword at all. See NON_DRAFT07_KEYWORDS. */
|
|
52
|
+
function findKeywordHandling(keyword) {
|
|
53
|
+
return isDraft07Keyword(keyword) ? exports.draft07KeywordMap[keyword] : undefined;
|
|
54
|
+
}
|
|
55
|
+
/** Throws for a keyword the table declares out of scope. Never silent. */
|
|
56
|
+
function assertKeywordSupported(keyword) {
|
|
57
|
+
const handling = findKeywordHandling(keyword);
|
|
58
|
+
if (handling === undefined) {
|
|
59
|
+
const note = exports.NON_DRAFT07_KEYWORDS[keyword];
|
|
60
|
+
throw new unsupported_keyword_error_1.UnsupportedKeywordError(keyword, note ?? "not a Draft-07 keyword");
|
|
61
|
+
}
|
|
62
|
+
if (handling.handling === "unsupported") {
|
|
63
|
+
throw new unsupported_keyword_error_1.UnsupportedKeywordError(keyword, handling.reason);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Every plugin the two tables bind, de-duplicated and sorted. Step 26 GENERATES
|
|
68
|
+
* the full-feature bundle's use() list from this, so the bundle cannot name a
|
|
69
|
+
* plugin that is not bound, and cannot omit one that is.
|
|
70
|
+
*/
|
|
71
|
+
function listBoundPluginNames() {
|
|
72
|
+
const names = new Set();
|
|
73
|
+
const handlings = [
|
|
74
|
+
...Object.values(exports.draft07KeywordMap),
|
|
75
|
+
...Object.values(format_map_1.draft07FormatMap),
|
|
76
|
+
];
|
|
77
|
+
for (const handling of handlings) {
|
|
78
|
+
if (handling.handling === "bind")
|
|
79
|
+
names.add(handling.pluginName);
|
|
80
|
+
}
|
|
81
|
+
return [...names].sort();
|
|
82
|
+
}
|
|
83
|
+
/** Counted, never asserted: the published numbers come from this function. */
|
|
84
|
+
function countKeywordHandlings(table) {
|
|
85
|
+
const entries = Object.values(table);
|
|
86
|
+
const countOf = (kind) => entries.filter((handling) => handling.handling === kind).length;
|
|
87
|
+
return {
|
|
88
|
+
bind: countOf("bind"),
|
|
89
|
+
structural: countOf("structural"),
|
|
90
|
+
unsupported: countOf("unsupported"),
|
|
91
|
+
total: entries.length,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { coreKeywordMap } from "./keyword-map-core.mjs";
|
|
2
|
+
import { numberKeywordMap } from "./keyword-map-number.mjs";
|
|
3
|
+
import { stringKeywordMap } from "./keyword-map-string.mjs";
|
|
4
|
+
import { arrayKeywordMap } from "./keyword-map-array.mjs";
|
|
5
|
+
import { objectKeywordMap } from "./keyword-map-object.mjs";
|
|
6
|
+
import { draft07FormatMap } from "./format-map.mjs";
|
|
7
|
+
import { UnsupportedKeywordError } from "./unsupported-keyword-error.mjs";
|
|
8
|
+
export const draft07KeywordMap = {
|
|
9
|
+
...coreKeywordMap,
|
|
10
|
+
...numberKeywordMap,
|
|
11
|
+
...stringKeywordMap,
|
|
12
|
+
...arrayKeywordMap,
|
|
13
|
+
...objectKeywordMap,
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Keywords Luq recognises the NAME of but which are not Draft-07. They are
|
|
17
|
+
* listed so that "we did not implement it" and "it is not in this dialect"
|
|
18
|
+
* stay different answers. `$defs` is the one exception that still does
|
|
19
|
+
* something: resolve-ref follows it, because a 2019-09 document's pointers
|
|
20
|
+
* would otherwise dangle.
|
|
21
|
+
*/
|
|
22
|
+
export const NON_DRAFT07_KEYWORDS = {
|
|
23
|
+
$defs: "2019-09 spelling of `definitions`; resolve-ref follows it anyway",
|
|
24
|
+
$anchor: "2019-09 anchors; resolve-ref resolves JSON Pointers only",
|
|
25
|
+
$dynamicRef: "2020-12 dynamic references",
|
|
26
|
+
$recursiveRef: "2019-09 recursive references",
|
|
27
|
+
dependentRequired: "2019-09 split of `dependencies`; use `dependencies`",
|
|
28
|
+
dependentSchemas: "2019-09 split of `dependencies`; use `dependencies`",
|
|
29
|
+
unevaluatedItems: "2019-09; no annotation-collection model in Luq",
|
|
30
|
+
unevaluatedProperties: "2019-09; no annotation-collection model in Luq",
|
|
31
|
+
contentSchema: "2019-09 companion to contentMediaType",
|
|
32
|
+
deprecated: "2019-09 annotation",
|
|
33
|
+
prefixItems: "2020-12 spelling of the tuple form of `items`",
|
|
34
|
+
};
|
|
35
|
+
export function isDraft07Keyword(keyword) {
|
|
36
|
+
return Object.prototype.hasOwnProperty.call(draft07KeywordMap, keyword);
|
|
37
|
+
}
|
|
38
|
+
/** Every keyword the table decides on. No assertion; the guard narrows. */
|
|
39
|
+
export function listDraft07Keywords() {
|
|
40
|
+
return Object.keys(draft07KeywordMap).filter(isDraft07Keyword);
|
|
41
|
+
}
|
|
42
|
+
/** `undefined` = not a Draft-07 keyword at all. See NON_DRAFT07_KEYWORDS. */
|
|
43
|
+
export function findKeywordHandling(keyword) {
|
|
44
|
+
return isDraft07Keyword(keyword) ? draft07KeywordMap[keyword] : undefined;
|
|
45
|
+
}
|
|
46
|
+
/** Throws for a keyword the table declares out of scope. Never silent. */
|
|
47
|
+
export function assertKeywordSupported(keyword) {
|
|
48
|
+
const handling = findKeywordHandling(keyword);
|
|
49
|
+
if (handling === undefined) {
|
|
50
|
+
const note = NON_DRAFT07_KEYWORDS[keyword];
|
|
51
|
+
throw new UnsupportedKeywordError(keyword, note ?? "not a Draft-07 keyword");
|
|
52
|
+
}
|
|
53
|
+
if (handling.handling === "unsupported") {
|
|
54
|
+
throw new UnsupportedKeywordError(keyword, handling.reason);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Every plugin the two tables bind, de-duplicated and sorted. Step 26 GENERATES
|
|
59
|
+
* the full-feature bundle's use() list from this, so the bundle cannot name a
|
|
60
|
+
* plugin that is not bound, and cannot omit one that is.
|
|
61
|
+
*/
|
|
62
|
+
export function listBoundPluginNames() {
|
|
63
|
+
const names = new Set();
|
|
64
|
+
const handlings = [
|
|
65
|
+
...Object.values(draft07KeywordMap),
|
|
66
|
+
...Object.values(draft07FormatMap),
|
|
67
|
+
];
|
|
68
|
+
for (const handling of handlings) {
|
|
69
|
+
if (handling.handling === "bind")
|
|
70
|
+
names.add(handling.pluginName);
|
|
71
|
+
}
|
|
72
|
+
return [...names].sort();
|
|
73
|
+
}
|
|
74
|
+
/** Counted, never asserted: the published numbers come from this function. */
|
|
75
|
+
export function countKeywordHandlings(table) {
|
|
76
|
+
const entries = Object.values(table);
|
|
77
|
+
const countOf = (kind) => entries.filter((handling) => handling.handling === kind).length;
|
|
78
|
+
return {
|
|
79
|
+
bind: countOf("bind"),
|
|
80
|
+
structural: countOf("structural"),
|
|
81
|
+
unsupported: countOf("unsupported"),
|
|
82
|
+
total: entries.length,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Draft07Schema } from "./draft07.types";
|
|
2
|
+
export declare class RefResolutionError extends Error {
|
|
3
|
+
readonly ref: string;
|
|
4
|
+
constructor(ref: string, reason: string);
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Resolves `ref` against `root`, then keeps following `$ref` until it reaches
|
|
8
|
+
* a schema that is not one. `visited` holds the pointers already entered on
|
|
9
|
+
* THIS chain, so `a -> b -> a` throws instead of looping forever.
|
|
10
|
+
*/
|
|
11
|
+
export declare function resolveRef(ref: string, root: Draft07Schema): Draft07Schema;
|
|
12
|
+
/**
|
|
13
|
+
* True when `ref` resolves without leaving the document and without entering a
|
|
14
|
+
* cycle. It answers the question without making the caller catch to find out.
|
|
15
|
+
*/
|
|
16
|
+
export declare function isResolvableRef(ref: string, root: Draft07Schema): boolean;
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RefResolutionError = void 0;
|
|
4
|
+
exports.resolveRef = resolveRef;
|
|
5
|
+
exports.isResolvableRef = isResolvableRef;
|
|
6
|
+
const draft07_types_1 = require("./draft07.types");
|
|
7
|
+
const types_1 = require("../types");
|
|
8
|
+
class RefResolutionError extends Error {
|
|
9
|
+
constructor(ref, reason) {
|
|
10
|
+
super(`Cannot resolve $ref "${ref}": ${reason}`);
|
|
11
|
+
this.name = "RefResolutionError";
|
|
12
|
+
this.ref = ref;
|
|
13
|
+
// Without this, `instanceof` fails when the package is compiled to ES5.
|
|
14
|
+
Object.setPrototypeOf(this, RefResolutionError.prototype);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.RefResolutionError = RefResolutionError;
|
|
18
|
+
/** No legitimate document chains this many `$ref`s. See resolveRef. */
|
|
19
|
+
const MAX_REF_HOPS = 1000;
|
|
20
|
+
/** RFC 6901: `~1` is "/" and `~0` is "~", decoded in that order. */
|
|
21
|
+
function decodePointerToken(token) {
|
|
22
|
+
return token.replace(/~1/g, "/").replace(/~0/g, "~");
|
|
23
|
+
}
|
|
24
|
+
function toPointerTokens(ref) {
|
|
25
|
+
const pointer = ref.slice(1);
|
|
26
|
+
if (pointer === "" || pointer === "/")
|
|
27
|
+
return [];
|
|
28
|
+
return pointer.split("/").slice(1).map(decodePointerToken);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* `definitions` and `$defs` are the same container to a pointer: a Draft-07
|
|
32
|
+
* document spells it one way, a 2019-09 document the other, and a schema that
|
|
33
|
+
* mixes them (they exist) must still resolve. A real `definitions` member
|
|
34
|
+
* always wins, so a property literally named "definitions" is unaffected.
|
|
35
|
+
*/
|
|
36
|
+
function stepInto(current, token) {
|
|
37
|
+
if ((0, types_1.isArray)(current))
|
|
38
|
+
return current[Number(token)];
|
|
39
|
+
if (!(0, types_1.isPlainObject)(current))
|
|
40
|
+
return undefined;
|
|
41
|
+
if (token === "definitions" || token === "$defs") {
|
|
42
|
+
return current["definitions"] ?? current["$defs"];
|
|
43
|
+
}
|
|
44
|
+
return current[token];
|
|
45
|
+
}
|
|
46
|
+
function followPointer(ref, root) {
|
|
47
|
+
let current = root;
|
|
48
|
+
for (const token of toPointerTokens(ref)) {
|
|
49
|
+
current = stepInto(current, token);
|
|
50
|
+
if (current === undefined) {
|
|
51
|
+
throw new RefResolutionError(ref, `no schema at segment "${token}"`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (!(0, draft07_types_1.isDraft07Schema)(current)) {
|
|
55
|
+
throw new RefResolutionError(ref, "the target is not a schema");
|
|
56
|
+
}
|
|
57
|
+
return current;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Resolves `ref` against `root`, then keeps following `$ref` until it reaches
|
|
61
|
+
* a schema that is not one. `visited` holds the pointers already entered on
|
|
62
|
+
* THIS chain, so `a -> b -> a` throws instead of looping forever.
|
|
63
|
+
*/
|
|
64
|
+
function resolveRef(ref, root) {
|
|
65
|
+
const visited = new Set();
|
|
66
|
+
let currentRef = ref;
|
|
67
|
+
for (let hop = 0;; hop += 1) {
|
|
68
|
+
// The visited set is the real cycle detector and gives the good message.
|
|
69
|
+
// This bound is the SECOND line: a synchronous infinite loop cannot be
|
|
70
|
+
// interrupted by a test timeout, so a defect in the detector above must
|
|
71
|
+
// still terminate. Measured: removing the visited check without this made
|
|
72
|
+
// the resolver hang the whole test process instead of failing it.
|
|
73
|
+
if (hop > MAX_REF_HOPS) {
|
|
74
|
+
throw new RefResolutionError(ref, `more than ${MAX_REF_HOPS} $ref hops`);
|
|
75
|
+
}
|
|
76
|
+
if (!currentRef.startsWith("#")) {
|
|
77
|
+
throw new RefResolutionError(currentRef, "external references are not supported");
|
|
78
|
+
}
|
|
79
|
+
if (visited.has(currentRef)) {
|
|
80
|
+
throw new RefResolutionError(ref, `circular reference: ${[...visited, currentRef].join(" -> ")}`);
|
|
81
|
+
}
|
|
82
|
+
visited.add(currentRef);
|
|
83
|
+
const target = followPointer(currentRef, root);
|
|
84
|
+
if (!(0, draft07_types_1.isSchemaObject)(target) || target.$ref === undefined)
|
|
85
|
+
return target;
|
|
86
|
+
currentRef = target.$ref;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* True when `ref` resolves without leaving the document and without entering a
|
|
91
|
+
* cycle. It answers the question without making the caller catch to find out.
|
|
92
|
+
*/
|
|
93
|
+
function isResolvableRef(ref, root) {
|
|
94
|
+
try {
|
|
95
|
+
resolveRef(ref, root);
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
if (error instanceof RefResolutionError)
|
|
100
|
+
return false;
|
|
101
|
+
throw error;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { isDraft07Schema, isSchemaObject } from "./draft07.types.mjs";
|
|
2
|
+
import { isArray, isPlainObject } from "../types/index.mjs";
|
|
3
|
+
export class RefResolutionError extends Error {
|
|
4
|
+
constructor(ref, reason) {
|
|
5
|
+
super(`Cannot resolve $ref "${ref}": ${reason}`);
|
|
6
|
+
this.name = "RefResolutionError";
|
|
7
|
+
this.ref = ref;
|
|
8
|
+
// Without this, `instanceof` fails when the package is compiled to ES5.
|
|
9
|
+
Object.setPrototypeOf(this, RefResolutionError.prototype);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
/** No legitimate document chains this many `$ref`s. See resolveRef. */
|
|
13
|
+
const MAX_REF_HOPS = 1000;
|
|
14
|
+
/** RFC 6901: `~1` is "/" and `~0` is "~", decoded in that order. */
|
|
15
|
+
function decodePointerToken(token) {
|
|
16
|
+
return token.replace(/~1/g, "/").replace(/~0/g, "~");
|
|
17
|
+
}
|
|
18
|
+
function toPointerTokens(ref) {
|
|
19
|
+
const pointer = ref.slice(1);
|
|
20
|
+
if (pointer === "" || pointer === "/")
|
|
21
|
+
return [];
|
|
22
|
+
return pointer.split("/").slice(1).map(decodePointerToken);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* `definitions` and `$defs` are the same container to a pointer: a Draft-07
|
|
26
|
+
* document spells it one way, a 2019-09 document the other, and a schema that
|
|
27
|
+
* mixes them (they exist) must still resolve. A real `definitions` member
|
|
28
|
+
* always wins, so a property literally named "definitions" is unaffected.
|
|
29
|
+
*/
|
|
30
|
+
function stepInto(current, token) {
|
|
31
|
+
if (isArray(current))
|
|
32
|
+
return current[Number(token)];
|
|
33
|
+
if (!isPlainObject(current))
|
|
34
|
+
return undefined;
|
|
35
|
+
if (token === "definitions" || token === "$defs") {
|
|
36
|
+
return current["definitions"] ?? current["$defs"];
|
|
37
|
+
}
|
|
38
|
+
return current[token];
|
|
39
|
+
}
|
|
40
|
+
function followPointer(ref, root) {
|
|
41
|
+
let current = root;
|
|
42
|
+
for (const token of toPointerTokens(ref)) {
|
|
43
|
+
current = stepInto(current, token);
|
|
44
|
+
if (current === undefined) {
|
|
45
|
+
throw new RefResolutionError(ref, `no schema at segment "${token}"`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (!isDraft07Schema(current)) {
|
|
49
|
+
throw new RefResolutionError(ref, "the target is not a schema");
|
|
50
|
+
}
|
|
51
|
+
return current;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Resolves `ref` against `root`, then keeps following `$ref` until it reaches
|
|
55
|
+
* a schema that is not one. `visited` holds the pointers already entered on
|
|
56
|
+
* THIS chain, so `a -> b -> a` throws instead of looping forever.
|
|
57
|
+
*/
|
|
58
|
+
export function resolveRef(ref, root) {
|
|
59
|
+
const visited = new Set();
|
|
60
|
+
let currentRef = ref;
|
|
61
|
+
for (let hop = 0;; hop += 1) {
|
|
62
|
+
// The visited set is the real cycle detector and gives the good message.
|
|
63
|
+
// This bound is the SECOND line: a synchronous infinite loop cannot be
|
|
64
|
+
// interrupted by a test timeout, so a defect in the detector above must
|
|
65
|
+
// still terminate. Measured: removing the visited check without this made
|
|
66
|
+
// the resolver hang the whole test process instead of failing it.
|
|
67
|
+
if (hop > MAX_REF_HOPS) {
|
|
68
|
+
throw new RefResolutionError(ref, `more than ${MAX_REF_HOPS} $ref hops`);
|
|
69
|
+
}
|
|
70
|
+
if (!currentRef.startsWith("#")) {
|
|
71
|
+
throw new RefResolutionError(currentRef, "external references are not supported");
|
|
72
|
+
}
|
|
73
|
+
if (visited.has(currentRef)) {
|
|
74
|
+
throw new RefResolutionError(ref, `circular reference: ${[...visited, currentRef].join(" -> ")}`);
|
|
75
|
+
}
|
|
76
|
+
visited.add(currentRef);
|
|
77
|
+
const target = followPointer(currentRef, root);
|
|
78
|
+
if (!isSchemaObject(target) || target.$ref === undefined)
|
|
79
|
+
return target;
|
|
80
|
+
currentRef = target.$ref;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* True when `ref` resolves without leaving the document and without entering a
|
|
85
|
+
* cycle. It answers the question without making the caller catch to find out.
|
|
86
|
+
*/
|
|
87
|
+
export function isResolvableRef(ref, root) {
|
|
88
|
+
try {
|
|
89
|
+
resolveRef(ref, root);
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
if (error instanceof RefResolutionError)
|
|
94
|
+
return false;
|
|
95
|
+
throw error;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Rule } from "../plugin-kit/compiled-rule";
|
|
2
|
+
import type { Draft07SchemaObject } from "./draft07.types";
|
|
3
|
+
import type { ChildSchema, StructuralContext, StructuralExpansionTable, StructuralKeyword } from "./structural-expansion.types";
|
|
4
|
+
export declare const STRUCTURAL_EXPANSIONS: StructuralExpansionTable;
|
|
5
|
+
export declare function isStructuralKeyword(name: string): name is StructuralKeyword;
|
|
6
|
+
/** Every child path a schema declares: `properties` keys and `items`' `[*]`. */
|
|
7
|
+
export declare function readChildSchemas(schema: Draft07SchemaObject): readonly ChildSchema[];
|
|
8
|
+
/** The rules a schema imposes ON ITS OWN SUBJECT, children excluded. */
|
|
9
|
+
export declare function expandSchemaRules(schema: Draft07SchemaObject, context: StructuralContext): readonly Rule[];
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.STRUCTURAL_EXPANSIONS = void 0;
|
|
4
|
+
exports.isStructuralKeyword = isStructuralKeyword;
|
|
5
|
+
exports.readChildSchemas = readChildSchemas;
|
|
6
|
+
exports.expandSchemaRules = expandSchemaRules;
|
|
7
|
+
const collect_definitions_1 = require("./collect-definitions");
|
|
8
|
+
const compose_conditional_1 = require("./compose-conditional");
|
|
9
|
+
const compose_keyword_1 = require("./compose-keyword");
|
|
10
|
+
const declare_object_keywords_1 = require("./declare-object-keywords");
|
|
11
|
+
const declare_required_properties_1 = require("./declare-required-properties");
|
|
12
|
+
const declare_scalar_keywords_1 = require("./declare-scalar-keywords");
|
|
13
|
+
const declare_value_keywords_1 = require("./declare-value-keywords");
|
|
14
|
+
const flatten_array_schema_1 = require("./flatten-array-schema");
|
|
15
|
+
const keyword_map_1 = require("./keyword-map");
|
|
16
|
+
const structural_expansion_types_1 = require("./structural-expansion.types");
|
|
17
|
+
const unsupported_keyword_error_1 = require("./unsupported-keyword-error");
|
|
18
|
+
const CONSUMED_BY_IF = "inert without `if` (Draft-07 §6.6.2); composed there";
|
|
19
|
+
exports.STRUCTURAL_EXPANSIONS = {
|
|
20
|
+
$ref: {
|
|
21
|
+
expandsTo: "consumed",
|
|
22
|
+
consumedBy: "resolve-ref",
|
|
23
|
+
reason: "the node is replaced before any keyword is read",
|
|
24
|
+
},
|
|
25
|
+
definitions: {
|
|
26
|
+
expandsTo: "consumed",
|
|
27
|
+
consumedBy: "collect-definitions",
|
|
28
|
+
reason: "a container of schemas, never a constraint",
|
|
29
|
+
},
|
|
30
|
+
type: {
|
|
31
|
+
expandsTo: "rules",
|
|
32
|
+
toRules: (schema, context) => [
|
|
33
|
+
...(0, declare_value_keywords_1.declareTypeRules)(schema, context),
|
|
34
|
+
...(0, declare_value_keywords_1.declareIntegerRules)(schema, context),
|
|
35
|
+
],
|
|
36
|
+
},
|
|
37
|
+
enum: { expandsTo: "rules", toRules: declare_value_keywords_1.declareEnumRules },
|
|
38
|
+
allOf: { expandsTo: "rules", toRules: compose_keyword_1.composeAllOf },
|
|
39
|
+
anyOf: { expandsTo: "rules", toRules: compose_keyword_1.composeAnyOf },
|
|
40
|
+
oneOf: { expandsTo: "rules", toRules: compose_keyword_1.composeOneOf },
|
|
41
|
+
not: { expandsTo: "rules", toRules: compose_keyword_1.composeNot },
|
|
42
|
+
if: { expandsTo: "rules", toRules: compose_conditional_1.composeConditional },
|
|
43
|
+
then: {
|
|
44
|
+
expandsTo: "consumed",
|
|
45
|
+
consumedBy: "compose-conditional",
|
|
46
|
+
reason: CONSUMED_BY_IF,
|
|
47
|
+
},
|
|
48
|
+
else: {
|
|
49
|
+
expandsTo: "consumed",
|
|
50
|
+
consumedBy: "compose-conditional",
|
|
51
|
+
reason: CONSUMED_BY_IF,
|
|
52
|
+
},
|
|
53
|
+
format: { expandsTo: "rules", toRules: declare_scalar_keywords_1.declareFormatRules },
|
|
54
|
+
items: {
|
|
55
|
+
expandsTo: "rules-and-declarations",
|
|
56
|
+
toRules: flatten_array_schema_1.composeTupleItems,
|
|
57
|
+
toChildren: flatten_array_schema_1.readItemChildren,
|
|
58
|
+
},
|
|
59
|
+
additionalItems: {
|
|
60
|
+
expandsTo: "consumed",
|
|
61
|
+
consumedBy: "flatten-array-schema",
|
|
62
|
+
reason: "the rest branch of the tuple form of `items`",
|
|
63
|
+
},
|
|
64
|
+
contains: { expandsTo: "rules", toRules: flatten_array_schema_1.composeContains },
|
|
65
|
+
properties: { expandsTo: "declarations", toChildren: declare_object_keywords_1.readPropertyChildren },
|
|
66
|
+
patternProperties: { expandsTo: "rules", toRules: declare_object_keywords_1.declarePatternProperties },
|
|
67
|
+
dependencies: { expandsTo: "rules", toRules: declare_object_keywords_1.declareDependencies },
|
|
68
|
+
propertyNames: { expandsTo: "rules", toRules: declare_object_keywords_1.declarePropertyNames },
|
|
69
|
+
};
|
|
70
|
+
function isStructuralKeyword(name) {
|
|
71
|
+
return Object.prototype.hasOwnProperty.call(exports.STRUCTURAL_EXPANSIONS, name);
|
|
72
|
+
}
|
|
73
|
+
/** Every child path a schema declares: `properties` keys and `items`' `[*]`. */
|
|
74
|
+
function readChildSchemas(schema) {
|
|
75
|
+
const children = [];
|
|
76
|
+
for (const expansion of Object.values(exports.STRUCTURAL_EXPANSIONS)) {
|
|
77
|
+
const toChildren = (0, structural_expansion_types_1.readChildExpansion)(expansion);
|
|
78
|
+
if (toChildren === undefined)
|
|
79
|
+
continue;
|
|
80
|
+
children.push(...toChildren(schema));
|
|
81
|
+
}
|
|
82
|
+
return Object.freeze(children);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* A name the table does not know is an ANNOTATION and is ignored (Draft-07
|
|
86
|
+
* §4.3.2). A name Luq recognises as belonging to another dialect is not: it
|
|
87
|
+
* would change the meaning of the document, so it is refused by name.
|
|
88
|
+
*/
|
|
89
|
+
function assertKeywordIsConvertible(keyword) {
|
|
90
|
+
if ((0, keyword_map_1.findKeywordHandling)(keyword) !== undefined)
|
|
91
|
+
return;
|
|
92
|
+
if ((0, collect_definitions_1.isDefinitionContainer)(keyword))
|
|
93
|
+
return;
|
|
94
|
+
const note = keyword_map_1.NON_DRAFT07_KEYWORDS[keyword];
|
|
95
|
+
if (note !== undefined)
|
|
96
|
+
throw new unsupported_keyword_error_1.UnsupportedKeywordError(keyword, note);
|
|
97
|
+
}
|
|
98
|
+
/** The rules a schema imposes ON ITS OWN SUBJECT, children excluded. */
|
|
99
|
+
function expandSchemaRules(schema, context) {
|
|
100
|
+
const rules = [
|
|
101
|
+
...(0, declare_scalar_keywords_1.declareStringRules)(schema, context),
|
|
102
|
+
...(0, declare_scalar_keywords_1.declareNumberRules)(schema, context),
|
|
103
|
+
...(0, flatten_array_schema_1.declareArrayRules)(schema, context),
|
|
104
|
+
...(0, declare_object_keywords_1.declareObjectRules)(schema, context),
|
|
105
|
+
...(0, declare_value_keywords_1.declareConstRules)(schema, context),
|
|
106
|
+
...(0, declare_object_keywords_1.declareAdditionalPropertiesSchema)(schema, context),
|
|
107
|
+
...(0, declare_required_properties_1.declareRequiredProperties)(schema, context),
|
|
108
|
+
];
|
|
109
|
+
for (const keyword of Object.keys(schema)) {
|
|
110
|
+
assertKeywordIsConvertible(keyword);
|
|
111
|
+
}
|
|
112
|
+
// Driven by the TABLE, not by the keys somebody remembered to look at: every
|
|
113
|
+
// expansion self-gates on its own keyword, so a structural keyword can never
|
|
114
|
+
// be present in the document and unreached here.
|
|
115
|
+
for (const expansion of Object.values(exports.STRUCTURAL_EXPANSIONS)) {
|
|
116
|
+
const toRules = (0, structural_expansion_types_1.readRuleExpansion)(expansion);
|
|
117
|
+
if (toRules === undefined)
|
|
118
|
+
continue;
|
|
119
|
+
rules.push(...toRules(schema, context));
|
|
120
|
+
}
|
|
121
|
+
return Object.freeze(rules);
|
|
122
|
+
}
|