@maroonedog/luq 0.1.2-alpha → 2.1.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 +479 -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 +103 -0
- package/dist/chain/create-chain-node.mjs +98 -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 +42 -0
- package/dist/compile/resolve-conditional-presence.mjs +38 -0
- package/dist/compile/resolve-presence.d.ts +6 -0
- package/dist/compile/resolve-presence.js +63 -0
- package/dist/compile/resolve-presence.mjs +59 -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 +123 -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 +63 -0
- package/dist/json-schema/build-from-schema.mjs +56 -0
- package/dist/json-schema/collect-definitions.d.ts +51 -0
- package/dist/json-schema/collect-definitions.js +111 -0
- package/dist/json-schema/collect-definitions.mjs +101 -0
- package/dist/json-schema/collect-sub-schema-rules.d.ts +17 -0
- package/dist/json-schema/collect-sub-schema-rules.js +112 -0
- package/dist/json-schema/collect-sub-schema-rules.mjs +108 -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 +20 -0
- package/dist/json-schema/create-structural-context.js +117 -0
- package/dist/json-schema/create-structural-context.mjs +113 -0
- package/dist/json-schema/declare-additional-properties.d.ts +19 -0
- package/dist/json-schema/declare-additional-properties.js +42 -0
- package/dist/json-schema/declare-additional-properties.mjs +37 -0
- package/dist/json-schema/declare-object-keywords.d.ts +22 -0
- package/dist/json-schema/declare-object-keywords.js +133 -0
- package/dist/json-schema/declare-object-keywords.mjs +126 -0
- package/dist/json-schema/declare-presence.d.ts +18 -0
- package/dist/json-schema/declare-presence.js +52 -0
- package/dist/json-schema/declare-presence.mjs +49 -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 +4 -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 +33 -0
- package/dist/json-schema/extensions/json-schema/json-schema.js +108 -0
- package/dist/json-schema/extensions/json-schema/json-schema.mjs +104 -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 +5 -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 +24 -0
- package/dist/json-schema/extensions/json-schema-full-feature/json-schema-full-feature.js +66 -0
- package/dist/json-schema/extensions/json-schema-full-feature/json-schema-full-feature.mjs +62 -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/follow-json-pointer.d.ts +23 -0
- package/dist/json-schema/follow-json-pointer.js +87 -0
- package/dist/json-schema/follow-json-pointer.mjs +82 -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 +24 -0
- package/dist/json-schema/index.js +65 -0
- package/dist/json-schema/index.mjs +22 -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/ref-resolution-error.d.ts +4 -0
- package/dist/json-schema/ref-resolution-error.js +20 -0
- package/dist/json-schema/ref-resolution-error.mjs +16 -0
- package/dist/json-schema/ref-scope.d.ts +18 -0
- package/dist/json-schema/ref-scope.js +37 -0
- package/dist/json-schema/ref-scope.mjs +33 -0
- package/dist/json-schema/resolve-ref.d.ts +21 -0
- package/dist/json-schema/resolve-ref.js +133 -0
- package/dist/json-schema/resolve-ref.mjs +128 -0
- package/dist/json-schema/schema-registry.d.ts +30 -0
- package/dist/json-schema/schema-registry.js +142 -0
- package/dist/json-schema/schema-registry.mjs +139 -0
- package/dist/json-schema/schema-to-declarations.d.ts +9 -0
- package/dist/json-schema/schema-to-declarations.js +123 -0
- package/dist/json-schema/schema-to-declarations.mjs +117 -0
- package/dist/json-schema/structural-expansion.types.d.ts +90 -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/json-schema/uri-reference.d.ts +29 -0
- package/dist/json-schema/uri-reference.js +118 -0
- package/dist/json-schema/uri-reference.mjs +111 -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 +80 -0
- package/dist/path/create-value-writer.mjs +77 -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 +46 -0
- package/dist/path/reserved-segment.js +88 -0
- package/dist/path/reserved-segment.mjs +82 -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 +112 -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 +59 -0
- package/dist/plugin-kit/create-rule.js +68 -0
- package/dist/plugin-kit/create-rule.mjs +58 -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 +55 -0
- package/dist/plugin-kit/plugin-definition.js +26 -0
- package/dist/plugin-kit/plugin-definition.mjs +21 -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 +58 -0
- package/dist/plugins/object-additional-properties/object-additional-properties-schema.mjs +55 -0
- package/dist/plugins/object-additional-properties/object-additional-properties.d.ts +9 -0
- package/dist/plugins/object-additional-properties/object-additional-properties.js +42 -0
- package/dist/plugins/object-additional-properties/object-additional-properties.mjs +39 -0
- package/dist/plugins/object-additional-properties/select-additional-keys.d.ts +15 -0
- package/dist/plugins/object-additional-properties/select-additional-keys.js +51 -0
- package/dist/plugins/object-additional-properties/select-additional-keys.mjs +47 -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 +48 -0
- package/dist/runtime/decide-presence.mjs +45 -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/standard-schema/index.d.ts +6 -0
- package/dist/standard-schema/index.js +7 -0
- package/dist/standard-schema/index.mjs +2 -0
- package/dist/standard-schema/split-issue-path.d.ts +9 -0
- package/dist/standard-schema/split-issue-path.js +66 -0
- package/dist/standard-schema/split-issue-path.mjs +63 -0
- package/dist/standard-schema/standard-schema.types.d.ts +46 -0
- package/dist/standard-schema/standard-schema.types.js +13 -0
- package/dist/standard-schema/standard-schema.types.mjs +12 -0
- package/dist/standard-schema/to-standard-schema.d.ts +41 -0
- package/dist/standard-schema/to-standard-schema.js +60 -0
- package/dist/standard-schema/to-standard-schema.mjs +57 -0
- package/dist/standard-schema.d.ts +1 -0
- package/dist/standard-schema.js +2 -0
- package/dist/standard-schema.mjs +1 -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 +75 -69
- package/dist/types/index.js +46 -0
- package/dist/types/index.mjs +36 -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 +523 -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,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EACH_STEP = void 0;
|
|
4
|
+
exports.readItemChildren = readItemChildren;
|
|
5
|
+
exports.composeTupleItems = composeTupleItems;
|
|
6
|
+
exports.composeContains = composeContains;
|
|
7
|
+
exports.declareArrayRules = declareArrayRules;
|
|
8
|
+
// ===========================================================================
|
|
9
|
+
// L8 src/json-schema/flatten-array-schema.ts — `items`, `additionalItems`,
|
|
10
|
+
// `contains`.
|
|
11
|
+
//
|
|
12
|
+
// TWO SHAPES, ONE KEYWORD. `items` is either a schema (every element) or an
|
|
13
|
+
// ARRAY of schemas (position i constrains element i). 1.x read only the first
|
|
14
|
+
// shape and guessed the method name `tupleBuilder` for the second, which is not
|
|
15
|
+
// a chain method, so the tuple form silently constrained nothing.
|
|
16
|
+
//
|
|
17
|
+
// single form -> a CHILD DECLARATION at `path[*]`. That is better than
|
|
18
|
+
// `.each()` here: the element gets a real declared path, so
|
|
19
|
+
// its own `properties` become `path[*].name` and an issue
|
|
20
|
+
// renders as `tags[2].name` rather than as a nested cause.
|
|
21
|
+
// tuple form -> ONE composite, built from create-rule.
|
|
22
|
+
//
|
|
23
|
+
// WHY NOT tupleBuilder (measured, not assumed): tupleBuilderPlugin rejects a
|
|
24
|
+
// NON-ARRAY and enforces a LENGTH — exactly `value.length !== positions.length`
|
|
25
|
+
// without a rest chain, and `value.length < positions.length` with one. Draft-07
|
|
26
|
+
// §6.4 / §9.3.1 does neither: a non-array is not an array constraint's business
|
|
27
|
+
// at all, a SHORT array is valid, and a LONG array is `additionalItems`' to
|
|
28
|
+
// judge. Binding the tuple form to `.builder()` would therefore reject
|
|
29
|
+
// documents the schema permits. The composite below is the same rule KIND,
|
|
30
|
+
// with the draft's semantics.
|
|
31
|
+
// ===========================================================================
|
|
32
|
+
const create_chain_node_1 = require("../chain/create-chain-node");
|
|
33
|
+
const create_field_slots_1 = require("../chain/create-field-slots");
|
|
34
|
+
const create_rule_1 = require("../plugin-kit/create-rule");
|
|
35
|
+
const apply_keyword_binding_1 = require("./apply-keyword-binding");
|
|
36
|
+
const keyword_map_array_1 = require("./keyword-map-array");
|
|
37
|
+
const types_1 = require("../types");
|
|
38
|
+
const collect_definitions_1 = require("./collect-definitions");
|
|
39
|
+
/** The declaration step for "every element of this array". */
|
|
40
|
+
exports.EACH_STEP = "[*]";
|
|
41
|
+
const NO_CHILDREN = Object.freeze([]);
|
|
42
|
+
const NO_RULES = Object.freeze([]);
|
|
43
|
+
/** True for the tuple form of `items`, which is an ARRAY of schemas. */
|
|
44
|
+
function isTupleItems(items) {
|
|
45
|
+
return (0, types_1.isArray)(items);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* The single form only. The tuple form gets no child path: element 0 and
|
|
49
|
+
* element 1 obey DIFFERENT schemas, and one declared `[*]` cannot say that.
|
|
50
|
+
*/
|
|
51
|
+
function readItemChildren(schema) {
|
|
52
|
+
const items = schema.items;
|
|
53
|
+
if (items === undefined || isTupleItems(items))
|
|
54
|
+
return NO_CHILDREN;
|
|
55
|
+
return Object.freeze([{ step: exports.EACH_STEP, schema: items, isRequired: false }]);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Element i against position i, extra elements against `additionalItems`.
|
|
59
|
+
* A non-array passes, a short array passes, and `additionalItems: false`
|
|
60
|
+
* becomes the schema that matches nothing (collect-definitions), so the
|
|
61
|
+
* "no extra elements" case needs no fourth branch kind.
|
|
62
|
+
*/
|
|
63
|
+
function applyPositionally(runners, positionCount, hasRest) {
|
|
64
|
+
return (value, ctx) => {
|
|
65
|
+
if (!(0, types_1.isArray)(value))
|
|
66
|
+
return types_1.PASS;
|
|
67
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
68
|
+
const runner = index < positionCount
|
|
69
|
+
? runners[index]
|
|
70
|
+
: hasRest
|
|
71
|
+
? runners[positionCount]
|
|
72
|
+
: undefined;
|
|
73
|
+
if (runner === undefined)
|
|
74
|
+
continue;
|
|
75
|
+
const outcome = runner.run(value[index], ctx);
|
|
76
|
+
if (!outcome.ok)
|
|
77
|
+
return (0, types_1.fail)({ ...outcome.detail, index });
|
|
78
|
+
}
|
|
79
|
+
return types_1.PASS;
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
function describePosition(index) {
|
|
83
|
+
return index < 0
|
|
84
|
+
? "An element does not match the schema declared for its position"
|
|
85
|
+
: `Element ${String(index)} does not match the schema declared for it`;
|
|
86
|
+
}
|
|
87
|
+
function composeTupleItems(schema, context) {
|
|
88
|
+
const items = schema.items;
|
|
89
|
+
if (items === undefined || !isTupleItems(items))
|
|
90
|
+
return NO_RULES;
|
|
91
|
+
const branches = items.map((position, index) => context.toBranch(`position:${String(index)}`, position));
|
|
92
|
+
const rest = schema.additionalItems;
|
|
93
|
+
const hasRest = rest !== undefined;
|
|
94
|
+
if (rest !== undefined)
|
|
95
|
+
branches.push(context.toBranch("rest", rest));
|
|
96
|
+
const positionCount = items.length;
|
|
97
|
+
return Object.freeze([
|
|
98
|
+
(0, create_rule_1.composite)({
|
|
99
|
+
code: "items",
|
|
100
|
+
severity: context.build.config.defaultSeverity,
|
|
101
|
+
branches,
|
|
102
|
+
combine: (runners) => applyPositionally(runners, positionCount, hasRest),
|
|
103
|
+
describe: (detail) => describePosition((0, types_1.isNumber)(detail.index) ? detail.index : -1),
|
|
104
|
+
buildMessageContext: () => ({}),
|
|
105
|
+
}),
|
|
106
|
+
]);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* `contains` is EXISTENTIAL: at least one element matches. arrayContains owns
|
|
110
|
+
* that reduction, and its default bounds (min 1, no max) are exactly the
|
|
111
|
+
* draft's, so this is one call and no arithmetic.
|
|
112
|
+
*/
|
|
113
|
+
function composeContains(schema, context) {
|
|
114
|
+
const contains = schema.contains;
|
|
115
|
+
if (contains === undefined)
|
|
116
|
+
return NO_RULES;
|
|
117
|
+
const element = context.collectSubSchemaRules((0, collect_definitions_1.toSchemaObject)(contains));
|
|
118
|
+
return Object.freeze([
|
|
119
|
+
context.bag.arrayContains.build(context.ruleContextFor(context.bag.arrayContains.name, "contains"), element),
|
|
120
|
+
]);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* The three array keywords that BIND. `minItems` maps to the method `minLength`
|
|
124
|
+
* and `maxItems` to `maxLength`; writing "minItems" as the method name does not
|
|
125
|
+
* compile (keyword-map-array.ts), which is the C2 regression made impossible.
|
|
126
|
+
* `uniqueItems: false` never reaches its binding: §6.4.3 gives it no effect and
|
|
127
|
+
* the binding's value type is `true`.
|
|
128
|
+
*/
|
|
129
|
+
function declareArrayRules(schema, context) {
|
|
130
|
+
let chain = (0, create_field_slots_1.createFieldSlots)(context.bag, context.build).array;
|
|
131
|
+
if (schema.minItems !== undefined) {
|
|
132
|
+
chain = (0, apply_keyword_binding_1.applyKeywordBinding)(chain, keyword_map_array_1.minItemsBinding, schema.minItems);
|
|
133
|
+
}
|
|
134
|
+
if (schema.maxItems !== undefined) {
|
|
135
|
+
chain = (0, apply_keyword_binding_1.applyKeywordBinding)(chain, keyword_map_array_1.maxItemsBinding, schema.maxItems);
|
|
136
|
+
}
|
|
137
|
+
if (schema.uniqueItems === true) {
|
|
138
|
+
chain = (0, apply_keyword_binding_1.applyKeywordBinding)(chain, keyword_map_array_1.uniqueItemsBinding, true);
|
|
139
|
+
}
|
|
140
|
+
return (0, create_chain_node_1.readChainRules)(chain) ?? NO_RULES;
|
|
141
|
+
}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
// ===========================================================================
|
|
2
|
+
// L8 src/json-schema/flatten-array-schema.ts — `items`, `additionalItems`,
|
|
3
|
+
// `contains`.
|
|
4
|
+
//
|
|
5
|
+
// TWO SHAPES, ONE KEYWORD. `items` is either a schema (every element) or an
|
|
6
|
+
// ARRAY of schemas (position i constrains element i). 1.x read only the first
|
|
7
|
+
// shape and guessed the method name `tupleBuilder` for the second, which is not
|
|
8
|
+
// a chain method, so the tuple form silently constrained nothing.
|
|
9
|
+
//
|
|
10
|
+
// single form -> a CHILD DECLARATION at `path[*]`. That is better than
|
|
11
|
+
// `.each()` here: the element gets a real declared path, so
|
|
12
|
+
// its own `properties` become `path[*].name` and an issue
|
|
13
|
+
// renders as `tags[2].name` rather than as a nested cause.
|
|
14
|
+
// tuple form -> ONE composite, built from create-rule.
|
|
15
|
+
//
|
|
16
|
+
// WHY NOT tupleBuilder (measured, not assumed): tupleBuilderPlugin rejects a
|
|
17
|
+
// NON-ARRAY and enforces a LENGTH — exactly `value.length !== positions.length`
|
|
18
|
+
// without a rest chain, and `value.length < positions.length` with one. Draft-07
|
|
19
|
+
// §6.4 / §9.3.1 does neither: a non-array is not an array constraint's business
|
|
20
|
+
// at all, a SHORT array is valid, and a LONG array is `additionalItems`' to
|
|
21
|
+
// judge. Binding the tuple form to `.builder()` would therefore reject
|
|
22
|
+
// documents the schema permits. The composite below is the same rule KIND,
|
|
23
|
+
// with the draft's semantics.
|
|
24
|
+
// ===========================================================================
|
|
25
|
+
import { readChainRules } from "../chain/create-chain-node.mjs";
|
|
26
|
+
import { createFieldSlots } from "../chain/create-field-slots.mjs";
|
|
27
|
+
import { composite } from "../plugin-kit/create-rule.mjs";
|
|
28
|
+
import { applyKeywordBinding } from "./apply-keyword-binding.mjs";
|
|
29
|
+
import { maxItemsBinding, minItemsBinding, uniqueItemsBinding, } from "./keyword-map-array.mjs";
|
|
30
|
+
import { PASS, fail, isArray, isNumber } from "../types/index.mjs";
|
|
31
|
+
import { toSchemaObject } from "./collect-definitions.mjs";
|
|
32
|
+
/** The declaration step for "every element of this array". */
|
|
33
|
+
export const EACH_STEP = "[*]";
|
|
34
|
+
const NO_CHILDREN = Object.freeze([]);
|
|
35
|
+
const NO_RULES = Object.freeze([]);
|
|
36
|
+
/** True for the tuple form of `items`, which is an ARRAY of schemas. */
|
|
37
|
+
function isTupleItems(items) {
|
|
38
|
+
return isArray(items);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The single form only. The tuple form gets no child path: element 0 and
|
|
42
|
+
* element 1 obey DIFFERENT schemas, and one declared `[*]` cannot say that.
|
|
43
|
+
*/
|
|
44
|
+
export function readItemChildren(schema) {
|
|
45
|
+
const items = schema.items;
|
|
46
|
+
if (items === undefined || isTupleItems(items))
|
|
47
|
+
return NO_CHILDREN;
|
|
48
|
+
return Object.freeze([{ step: EACH_STEP, schema: items, isRequired: false }]);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Element i against position i, extra elements against `additionalItems`.
|
|
52
|
+
* A non-array passes, a short array passes, and `additionalItems: false`
|
|
53
|
+
* becomes the schema that matches nothing (collect-definitions), so the
|
|
54
|
+
* "no extra elements" case needs no fourth branch kind.
|
|
55
|
+
*/
|
|
56
|
+
function applyPositionally(runners, positionCount, hasRest) {
|
|
57
|
+
return (value, ctx) => {
|
|
58
|
+
if (!isArray(value))
|
|
59
|
+
return PASS;
|
|
60
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
61
|
+
const runner = index < positionCount
|
|
62
|
+
? runners[index]
|
|
63
|
+
: hasRest
|
|
64
|
+
? runners[positionCount]
|
|
65
|
+
: undefined;
|
|
66
|
+
if (runner === undefined)
|
|
67
|
+
continue;
|
|
68
|
+
const outcome = runner.run(value[index], ctx);
|
|
69
|
+
if (!outcome.ok)
|
|
70
|
+
return fail({ ...outcome.detail, index });
|
|
71
|
+
}
|
|
72
|
+
return PASS;
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
function describePosition(index) {
|
|
76
|
+
return index < 0
|
|
77
|
+
? "An element does not match the schema declared for its position"
|
|
78
|
+
: `Element ${String(index)} does not match the schema declared for it`;
|
|
79
|
+
}
|
|
80
|
+
export function composeTupleItems(schema, context) {
|
|
81
|
+
const items = schema.items;
|
|
82
|
+
if (items === undefined || !isTupleItems(items))
|
|
83
|
+
return NO_RULES;
|
|
84
|
+
const branches = items.map((position, index) => context.toBranch(`position:${String(index)}`, position));
|
|
85
|
+
const rest = schema.additionalItems;
|
|
86
|
+
const hasRest = rest !== undefined;
|
|
87
|
+
if (rest !== undefined)
|
|
88
|
+
branches.push(context.toBranch("rest", rest));
|
|
89
|
+
const positionCount = items.length;
|
|
90
|
+
return Object.freeze([
|
|
91
|
+
composite({
|
|
92
|
+
code: "items",
|
|
93
|
+
severity: context.build.config.defaultSeverity,
|
|
94
|
+
branches,
|
|
95
|
+
combine: (runners) => applyPositionally(runners, positionCount, hasRest),
|
|
96
|
+
describe: (detail) => describePosition(isNumber(detail.index) ? detail.index : -1),
|
|
97
|
+
buildMessageContext: () => ({}),
|
|
98
|
+
}),
|
|
99
|
+
]);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* `contains` is EXISTENTIAL: at least one element matches. arrayContains owns
|
|
103
|
+
* that reduction, and its default bounds (min 1, no max) are exactly the
|
|
104
|
+
* draft's, so this is one call and no arithmetic.
|
|
105
|
+
*/
|
|
106
|
+
export function composeContains(schema, context) {
|
|
107
|
+
const contains = schema.contains;
|
|
108
|
+
if (contains === undefined)
|
|
109
|
+
return NO_RULES;
|
|
110
|
+
const element = context.collectSubSchemaRules(toSchemaObject(contains));
|
|
111
|
+
return Object.freeze([
|
|
112
|
+
context.bag.arrayContains.build(context.ruleContextFor(context.bag.arrayContains.name, "contains"), element),
|
|
113
|
+
]);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* The three array keywords that BIND. `minItems` maps to the method `minLength`
|
|
117
|
+
* and `maxItems` to `maxLength`; writing "minItems" as the method name does not
|
|
118
|
+
* compile (keyword-map-array.ts), which is the C2 regression made impossible.
|
|
119
|
+
* `uniqueItems: false` never reaches its binding: §6.4.3 gives it no effect and
|
|
120
|
+
* the binding's value type is `true`.
|
|
121
|
+
*/
|
|
122
|
+
export function declareArrayRules(schema, context) {
|
|
123
|
+
let chain = createFieldSlots(context.bag, context.build).array;
|
|
124
|
+
if (schema.minItems !== undefined) {
|
|
125
|
+
chain = applyKeywordBinding(chain, minItemsBinding, schema.minItems);
|
|
126
|
+
}
|
|
127
|
+
if (schema.maxItems !== undefined) {
|
|
128
|
+
chain = applyKeywordBinding(chain, maxItemsBinding, schema.maxItems);
|
|
129
|
+
}
|
|
130
|
+
if (schema.uniqueItems === true) {
|
|
131
|
+
chain = applyKeywordBinding(chain, uniqueItemsBinding, true);
|
|
132
|
+
}
|
|
133
|
+
return readChainRules(chain) ?? NO_RULES;
|
|
134
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Draft07Schema, Draft07SchemaObject } from "./draft07.types";
|
|
2
|
+
import type { ChildSchema } from "./structural-expansion.types";
|
|
3
|
+
export interface SchemaFieldDeclaration {
|
|
4
|
+
readonly path: string;
|
|
5
|
+
readonly schema: Draft07SchemaObject;
|
|
6
|
+
readonly isRequired: boolean;
|
|
7
|
+
}
|
|
8
|
+
export type ReadChildSchemas = (schema: Draft07SchemaObject) => readonly ChildSchema[];
|
|
9
|
+
/** `[*]` trails its key; every other step is a `.`-joined property name. */
|
|
10
|
+
export declare function joinDeclaredPath(parent: string, step: string): string;
|
|
11
|
+
/** The root plus every arm of its `allOf`, transitively, all resolved. */
|
|
12
|
+
export declare function collectRootNodes(root: Draft07Schema): readonly Draft07SchemaObject[];
|
|
13
|
+
/**
|
|
14
|
+
* The root declarations come FIRST, one per `allOf` arm that carries a rule of
|
|
15
|
+
* its own, so two arms cannot silently overwrite each other's `minProperties`.
|
|
16
|
+
* `isRequired` is false: the root is always present (create-validator refuses a
|
|
17
|
+
* missing root before the plan runs), and a presence rule there would only add
|
|
18
|
+
* a second answer to a question already settled.
|
|
19
|
+
*/
|
|
20
|
+
export declare function flattenSchema(root: Draft07Schema, readChildren: ReadChildSchemas): readonly SchemaFieldDeclaration[];
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.joinDeclaredPath = joinDeclaredPath;
|
|
4
|
+
exports.collectRootNodes = collectRootNodes;
|
|
5
|
+
exports.flattenSchema = flattenSchema;
|
|
6
|
+
// ===========================================================================
|
|
7
|
+
// L8 src/json-schema/flatten-schema.ts — the document as a list of DECLARED
|
|
8
|
+
// PATHS.
|
|
9
|
+
//
|
|
10
|
+
// `properties` nests; Luq declares. `{properties:{user:{properties:{address:
|
|
11
|
+
// {properties:{street:{}}}}}}}` becomes the declaration `user.address.street`,
|
|
12
|
+
// and `items` becomes `tags[*]`, so an issue renders as `tags[2].name` with the
|
|
13
|
+
// real index rather than as a cause hanging off a parent object.
|
|
14
|
+
//
|
|
15
|
+
// THE ROOT IS A DECLARABLE PATH — as of the stage-27 gate, and it is why
|
|
16
|
+
// `{type:"object", properties:{…}, additionalProperties:false}` converts at all.
|
|
17
|
+
// parse-field-path still rejects "" (a CHILD path may not be empty), but
|
|
18
|
+
// compile-schema maps ROOT_PATH onto the EMPTY TEMPLATE — the shape a composite
|
|
19
|
+
// branch's own rules have always used — so a root keyword becomes a rule.
|
|
20
|
+
//
|
|
21
|
+
// 1.x dropped every root keyword in silence (skipping the `path === ""` entry
|
|
22
|
+
// and calling `.strict()`, which has no runtime effect); step 25 refused them
|
|
23
|
+
// loudly instead. Neither validated them. Now:
|
|
24
|
+
// * `properties` still becomes one DECLARED PATH per key, so an issue reads
|
|
25
|
+
// `user.age`, not "somewhere inside the root object";
|
|
26
|
+
// * `required` still distributes to those children, so a missing property is
|
|
27
|
+
// reported AT the property;
|
|
28
|
+
// * `allOf` is still merged arm by arm, so its children are declared too;
|
|
29
|
+
// * `type` is dropped: fromJsonSchema is object-rooted by construction;
|
|
30
|
+
// * EVERY OTHER rule-bearing keyword becomes a rule on the root declaration.
|
|
31
|
+
// `properties` is kept in that residual node, and only there: it contributes no
|
|
32
|
+
// rule, but createStructuralContext reads `declaredSiblingKeys` from it, which
|
|
33
|
+
// is what a root-level `additionalProperties: false` needs to know.
|
|
34
|
+
// ===========================================================================
|
|
35
|
+
const declared_child_keys_1 = require("../compile/declared-child-keys");
|
|
36
|
+
const reserved_segment_1 = require("../path/reserved-segment");
|
|
37
|
+
const collect_definitions_1 = require("./collect-definitions");
|
|
38
|
+
const flatten_array_schema_1 = require("./flatten-array-schema");
|
|
39
|
+
/** Deep enough for any hand-written schema; a recursive one stops sooner. */
|
|
40
|
+
const MAX_NESTING_DEPTH = 32;
|
|
41
|
+
/**
|
|
42
|
+
* Root keywords that produce NO rule on the root declaration: the ones the
|
|
43
|
+
* flattener distributes itself (and would otherwise apply twice), plus the ones
|
|
44
|
+
* that assert nothing anywhere. Every other keyword stays in the residual node
|
|
45
|
+
* and reaches expandSchemaRules like any other field's schema.
|
|
46
|
+
*/
|
|
47
|
+
const ROOT_KEYWORDS_WITHOUT_A_ROOT_RULE = Object.freeze([
|
|
48
|
+
"$schema",
|
|
49
|
+
"$id",
|
|
50
|
+
"$ref",
|
|
51
|
+
"$comment",
|
|
52
|
+
"definitions",
|
|
53
|
+
"$defs",
|
|
54
|
+
"title",
|
|
55
|
+
"description",
|
|
56
|
+
"default",
|
|
57
|
+
"examples",
|
|
58
|
+
"readOnly",
|
|
59
|
+
"writeOnly",
|
|
60
|
+
"properties",
|
|
61
|
+
"required",
|
|
62
|
+
"allOf",
|
|
63
|
+
"type",
|
|
64
|
+
]);
|
|
65
|
+
/** `[*]` trails its key; every other step is a `.`-joined property name. */
|
|
66
|
+
function joinDeclaredPath(parent, step) {
|
|
67
|
+
if (step === flatten_array_schema_1.EACH_STEP)
|
|
68
|
+
return `${parent}${flatten_array_schema_1.EACH_STEP}`;
|
|
69
|
+
(0, reserved_segment_1.assertDeclarableKey)(step, parent === "" ? step : `${parent}.${step}`);
|
|
70
|
+
return parent === "" ? step : `${parent}.${step}`;
|
|
71
|
+
}
|
|
72
|
+
/** The root plus every arm of its `allOf`, transitively, all resolved. */
|
|
73
|
+
function collectRootNodes(root) {
|
|
74
|
+
const nodes = [];
|
|
75
|
+
const pending = [root];
|
|
76
|
+
while (pending.length > 0 && nodes.length < MAX_NESTING_DEPTH) {
|
|
77
|
+
const next = pending.shift();
|
|
78
|
+
if (next === undefined)
|
|
79
|
+
break;
|
|
80
|
+
const node = (0, collect_definitions_1.resolveSchemaNode)(next, root);
|
|
81
|
+
nodes.push(node);
|
|
82
|
+
for (const arm of node.allOf ?? [])
|
|
83
|
+
pending.push(arm);
|
|
84
|
+
}
|
|
85
|
+
return Object.freeze(nodes);
|
|
86
|
+
}
|
|
87
|
+
/** True when the node says anything the root declaration has to carry. */
|
|
88
|
+
function hasRootRuleKeyword(node) {
|
|
89
|
+
return Object.keys(node).some((keyword) => !ROOT_KEYWORDS_WITHOUT_A_ROOT_RULE.includes(keyword));
|
|
90
|
+
}
|
|
91
|
+
/** The root node MINUS the three keywords the flattener applies itself. A rest
|
|
92
|
+
* destructuring, so the compiler and not a comment keeps the result a schema. */
|
|
93
|
+
function dropDistributedKeywords(node) {
|
|
94
|
+
const { type, required, allOf, ...residual } = node;
|
|
95
|
+
return residual;
|
|
96
|
+
}
|
|
97
|
+
/** Children of the root, merged across the `allOf` arms, first arm winning. */
|
|
98
|
+
function readRootChildren(nodes, readChildren) {
|
|
99
|
+
const merged = new Map();
|
|
100
|
+
for (const node of nodes) {
|
|
101
|
+
// Requiredness is read from the ROOT nodes themselves: readChildSchemas
|
|
102
|
+
// reports every child as not-required, because everywhere else a
|
|
103
|
+
// `required` array becomes a rule on the object that owns it. The root has
|
|
104
|
+
// no such object, so this is the one place it becomes child presence.
|
|
105
|
+
const required = node.required ?? [];
|
|
106
|
+
for (const child of readChildren(node)) {
|
|
107
|
+
const isRequired = required.includes(child.step);
|
|
108
|
+
const seen = merged.get(child.step);
|
|
109
|
+
if (seen === undefined) {
|
|
110
|
+
merged.set(child.step, { ...child, isRequired });
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
if (isRequired && !seen.isRequired) {
|
|
114
|
+
merged.set(child.step, { ...seen, isRequired: true });
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return Object.freeze([...merged.values()]);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* A `$ref` already on this branch is a RECURSIVE definition. Its declared paths
|
|
122
|
+
* are infinite and Luq declares finite ones, so the node's own rules are kept
|
|
123
|
+
* and its children are not expanded. objectRecursively is the plugin for that
|
|
124
|
+
* shape and it is not in the JSON Schema bag.
|
|
125
|
+
*/
|
|
126
|
+
function walkChild(parentPath, child, visitedRefs, depth, state) {
|
|
127
|
+
const path = joinDeclaredPath(parentPath, child.step);
|
|
128
|
+
const pointer = (0, collect_definitions_1.readRefPointer)(child.schema);
|
|
129
|
+
const node = (0, collect_definitions_1.resolveSchemaNode)(child.schema, state.root);
|
|
130
|
+
state.into.push({ path, schema: node, isRequired: child.isRequired });
|
|
131
|
+
const isRepeat = pointer !== undefined && visitedRefs.includes(pointer);
|
|
132
|
+
if (isRepeat || depth >= MAX_NESTING_DEPTH)
|
|
133
|
+
return;
|
|
134
|
+
const seen = pointer === undefined ? visitedRefs : [...visitedRefs, pointer];
|
|
135
|
+
for (const grandChild of state.readChildren(node)) {
|
|
136
|
+
walkChild(path, grandChild, seen, depth + 1, state);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* The root declarations come FIRST, one per `allOf` arm that carries a rule of
|
|
141
|
+
* its own, so two arms cannot silently overwrite each other's `minProperties`.
|
|
142
|
+
* `isRequired` is false: the root is always present (create-validator refuses a
|
|
143
|
+
* missing root before the plan runs), and a presence rule there would only add
|
|
144
|
+
* a second answer to a question already settled.
|
|
145
|
+
*/
|
|
146
|
+
function flattenSchema(root, readChildren) {
|
|
147
|
+
const nodes = collectRootNodes(root);
|
|
148
|
+
const state = { root, readChildren, into: [] };
|
|
149
|
+
for (const node of nodes) {
|
|
150
|
+
if (!hasRootRuleKeyword(node))
|
|
151
|
+
continue;
|
|
152
|
+
state.into.push({
|
|
153
|
+
path: declared_child_keys_1.ROOT_PATH,
|
|
154
|
+
schema: dropDistributedKeywords(node),
|
|
155
|
+
isRequired: false,
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
for (const child of readRootChildren(nodes, readChildren)) {
|
|
159
|
+
walkChild("", child, Object.freeze([]), 0, state);
|
|
160
|
+
}
|
|
161
|
+
return Object.freeze(state.into);
|
|
162
|
+
}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
// ===========================================================================
|
|
2
|
+
// L8 src/json-schema/flatten-schema.ts — the document as a list of DECLARED
|
|
3
|
+
// PATHS.
|
|
4
|
+
//
|
|
5
|
+
// `properties` nests; Luq declares. `{properties:{user:{properties:{address:
|
|
6
|
+
// {properties:{street:{}}}}}}}` becomes the declaration `user.address.street`,
|
|
7
|
+
// and `items` becomes `tags[*]`, so an issue renders as `tags[2].name` with the
|
|
8
|
+
// real index rather than as a cause hanging off a parent object.
|
|
9
|
+
//
|
|
10
|
+
// THE ROOT IS A DECLARABLE PATH — as of the stage-27 gate, and it is why
|
|
11
|
+
// `{type:"object", properties:{…}, additionalProperties:false}` converts at all.
|
|
12
|
+
// parse-field-path still rejects "" (a CHILD path may not be empty), but
|
|
13
|
+
// compile-schema maps ROOT_PATH onto the EMPTY TEMPLATE — the shape a composite
|
|
14
|
+
// branch's own rules have always used — so a root keyword becomes a rule.
|
|
15
|
+
//
|
|
16
|
+
// 1.x dropped every root keyword in silence (skipping the `path === ""` entry
|
|
17
|
+
// and calling `.strict()`, which has no runtime effect); step 25 refused them
|
|
18
|
+
// loudly instead. Neither validated them. Now:
|
|
19
|
+
// * `properties` still becomes one DECLARED PATH per key, so an issue reads
|
|
20
|
+
// `user.age`, not "somewhere inside the root object";
|
|
21
|
+
// * `required` still distributes to those children, so a missing property is
|
|
22
|
+
// reported AT the property;
|
|
23
|
+
// * `allOf` is still merged arm by arm, so its children are declared too;
|
|
24
|
+
// * `type` is dropped: fromJsonSchema is object-rooted by construction;
|
|
25
|
+
// * EVERY OTHER rule-bearing keyword becomes a rule on the root declaration.
|
|
26
|
+
// `properties` is kept in that residual node, and only there: it contributes no
|
|
27
|
+
// rule, but createStructuralContext reads `declaredSiblingKeys` from it, which
|
|
28
|
+
// is what a root-level `additionalProperties: false` needs to know.
|
|
29
|
+
// ===========================================================================
|
|
30
|
+
import { ROOT_PATH } from "../compile/declared-child-keys.mjs";
|
|
31
|
+
import { assertDeclarableKey } from "../path/reserved-segment.mjs";
|
|
32
|
+
import { resolveSchemaNode, readRefPointer } from "./collect-definitions.mjs";
|
|
33
|
+
import { EACH_STEP } from "./flatten-array-schema.mjs";
|
|
34
|
+
/** Deep enough for any hand-written schema; a recursive one stops sooner. */
|
|
35
|
+
const MAX_NESTING_DEPTH = 32;
|
|
36
|
+
/**
|
|
37
|
+
* Root keywords that produce NO rule on the root declaration: the ones the
|
|
38
|
+
* flattener distributes itself (and would otherwise apply twice), plus the ones
|
|
39
|
+
* that assert nothing anywhere. Every other keyword stays in the residual node
|
|
40
|
+
* and reaches expandSchemaRules like any other field's schema.
|
|
41
|
+
*/
|
|
42
|
+
const ROOT_KEYWORDS_WITHOUT_A_ROOT_RULE = Object.freeze([
|
|
43
|
+
"$schema",
|
|
44
|
+
"$id",
|
|
45
|
+
"$ref",
|
|
46
|
+
"$comment",
|
|
47
|
+
"definitions",
|
|
48
|
+
"$defs",
|
|
49
|
+
"title",
|
|
50
|
+
"description",
|
|
51
|
+
"default",
|
|
52
|
+
"examples",
|
|
53
|
+
"readOnly",
|
|
54
|
+
"writeOnly",
|
|
55
|
+
"properties",
|
|
56
|
+
"required",
|
|
57
|
+
"allOf",
|
|
58
|
+
"type",
|
|
59
|
+
]);
|
|
60
|
+
/** `[*]` trails its key; every other step is a `.`-joined property name. */
|
|
61
|
+
export function joinDeclaredPath(parent, step) {
|
|
62
|
+
if (step === EACH_STEP)
|
|
63
|
+
return `${parent}${EACH_STEP}`;
|
|
64
|
+
assertDeclarableKey(step, parent === "" ? step : `${parent}.${step}`);
|
|
65
|
+
return parent === "" ? step : `${parent}.${step}`;
|
|
66
|
+
}
|
|
67
|
+
/** The root plus every arm of its `allOf`, transitively, all resolved. */
|
|
68
|
+
export function collectRootNodes(root) {
|
|
69
|
+
const nodes = [];
|
|
70
|
+
const pending = [root];
|
|
71
|
+
while (pending.length > 0 && nodes.length < MAX_NESTING_DEPTH) {
|
|
72
|
+
const next = pending.shift();
|
|
73
|
+
if (next === undefined)
|
|
74
|
+
break;
|
|
75
|
+
const node = resolveSchemaNode(next, root);
|
|
76
|
+
nodes.push(node);
|
|
77
|
+
for (const arm of node.allOf ?? [])
|
|
78
|
+
pending.push(arm);
|
|
79
|
+
}
|
|
80
|
+
return Object.freeze(nodes);
|
|
81
|
+
}
|
|
82
|
+
/** True when the node says anything the root declaration has to carry. */
|
|
83
|
+
function hasRootRuleKeyword(node) {
|
|
84
|
+
return Object.keys(node).some((keyword) => !ROOT_KEYWORDS_WITHOUT_A_ROOT_RULE.includes(keyword));
|
|
85
|
+
}
|
|
86
|
+
/** The root node MINUS the three keywords the flattener applies itself. A rest
|
|
87
|
+
* destructuring, so the compiler and not a comment keeps the result a schema. */
|
|
88
|
+
function dropDistributedKeywords(node) {
|
|
89
|
+
const { type, required, allOf, ...residual } = node;
|
|
90
|
+
return residual;
|
|
91
|
+
}
|
|
92
|
+
/** Children of the root, merged across the `allOf` arms, first arm winning. */
|
|
93
|
+
function readRootChildren(nodes, readChildren) {
|
|
94
|
+
const merged = new Map();
|
|
95
|
+
for (const node of nodes) {
|
|
96
|
+
// Requiredness is read from the ROOT nodes themselves: readChildSchemas
|
|
97
|
+
// reports every child as not-required, because everywhere else a
|
|
98
|
+
// `required` array becomes a rule on the object that owns it. The root has
|
|
99
|
+
// no such object, so this is the one place it becomes child presence.
|
|
100
|
+
const required = node.required ?? [];
|
|
101
|
+
for (const child of readChildren(node)) {
|
|
102
|
+
const isRequired = required.includes(child.step);
|
|
103
|
+
const seen = merged.get(child.step);
|
|
104
|
+
if (seen === undefined) {
|
|
105
|
+
merged.set(child.step, { ...child, isRequired });
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
if (isRequired && !seen.isRequired) {
|
|
109
|
+
merged.set(child.step, { ...seen, isRequired: true });
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return Object.freeze([...merged.values()]);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* A `$ref` already on this branch is a RECURSIVE definition. Its declared paths
|
|
117
|
+
* are infinite and Luq declares finite ones, so the node's own rules are kept
|
|
118
|
+
* and its children are not expanded. objectRecursively is the plugin for that
|
|
119
|
+
* shape and it is not in the JSON Schema bag.
|
|
120
|
+
*/
|
|
121
|
+
function walkChild(parentPath, child, visitedRefs, depth, state) {
|
|
122
|
+
const path = joinDeclaredPath(parentPath, child.step);
|
|
123
|
+
const pointer = readRefPointer(child.schema);
|
|
124
|
+
const node = resolveSchemaNode(child.schema, state.root);
|
|
125
|
+
state.into.push({ path, schema: node, isRequired: child.isRequired });
|
|
126
|
+
const isRepeat = pointer !== undefined && visitedRefs.includes(pointer);
|
|
127
|
+
if (isRepeat || depth >= MAX_NESTING_DEPTH)
|
|
128
|
+
return;
|
|
129
|
+
const seen = pointer === undefined ? visitedRefs : [...visitedRefs, pointer];
|
|
130
|
+
for (const grandChild of state.readChildren(node)) {
|
|
131
|
+
walkChild(path, grandChild, seen, depth + 1, state);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* The root declarations come FIRST, one per `allOf` arm that carries a rule of
|
|
136
|
+
* its own, so two arms cannot silently overwrite each other's `minProperties`.
|
|
137
|
+
* `isRequired` is false: the root is always present (create-validator refuses a
|
|
138
|
+
* missing root before the plan runs), and a presence rule there would only add
|
|
139
|
+
* a second answer to a question already settled.
|
|
140
|
+
*/
|
|
141
|
+
export function flattenSchema(root, readChildren) {
|
|
142
|
+
const nodes = collectRootNodes(root);
|
|
143
|
+
const state = { root, readChildren, into: [] };
|
|
144
|
+
for (const node of nodes) {
|
|
145
|
+
if (!hasRootRuleKeyword(node))
|
|
146
|
+
continue;
|
|
147
|
+
state.into.push({
|
|
148
|
+
path: ROOT_PATH,
|
|
149
|
+
schema: dropDistributedKeywords(node),
|
|
150
|
+
isRequired: false,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
for (const child of readRootChildren(nodes, readChildren)) {
|
|
154
|
+
walkChild("", child, Object.freeze([]), 0, state);
|
|
155
|
+
}
|
|
156
|
+
return Object.freeze(state.into);
|
|
157
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** `fragment` is what came AFTER the "#", so there is no prefix to strip. */
|
|
2
|
+
export declare function toPointerTokens(fragment: string): readonly string[];
|
|
3
|
+
/**
|
|
4
|
+
* `definitions` and `$defs` are the same container to a pointer: a Draft-07
|
|
5
|
+
* document spells it one way, a 2019-09 document the other, and a schema that
|
|
6
|
+
* mixes them (they exist) must still resolve. A real `definitions` member
|
|
7
|
+
* always wins, so a property literally named "definitions" is unaffected.
|
|
8
|
+
*/
|
|
9
|
+
export declare function stepInto(current: unknown, token: string): unknown;
|
|
10
|
+
/**
|
|
11
|
+
* ポインタを辿りながら、**途中で跨いだ `$id` を数える**。
|
|
12
|
+
*
|
|
13
|
+
* `#/definitions/baz/definitions/bar` の `baz` が `$id: "folder/"` を持つとき、
|
|
14
|
+
* `bar` の中に書かれた相対 `$ref` は folder/ の下で解決されなければならない。
|
|
15
|
+
* 着地したノードの `$id` だけを見ると、通過したノードの分が落ちる。
|
|
16
|
+
*
|
|
17
|
+
* ベースをどう進めるかは呼び出し側が渡す (`advance`)。この関数は「どのノードを
|
|
18
|
+
* どの順に跨いだか」だけを知っていればよく、URI の演算は持たない。
|
|
19
|
+
*/
|
|
20
|
+
export declare function walkPointer<TScope>(fragment: string, document: unknown, scope: TScope, advance: (scope: TScope, node: unknown) => TScope, onMissing: (token: string) => never): {
|
|
21
|
+
readonly node: unknown;
|
|
22
|
+
readonly scope: TScope;
|
|
23
|
+
};
|