@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,112 @@
|
|
|
1
|
+
// ===========================================================================
|
|
2
|
+
// L8 src/json-schema/declare-value-keywords.ts — the keywords
|
|
3
|
+
// that judge the VALUE ITSELF: `type`, `enum` and `const`.
|
|
4
|
+
//
|
|
5
|
+
// The keyword table calls `type` structural because it "chooses the slot".
|
|
6
|
+
// Choosing a slot is a TYPE-LEVEL act and asserts nothing at run time, so a
|
|
7
|
+
// converter that only chose a slot would accept `42` for `{"type":"string"}` —
|
|
8
|
+
// which is precisely what 1.x did (docs/legacy-spec/json-schema-mapping.md).
|
|
9
|
+
// The slot choice is still made, in declare-scalar-keywords; the RULE is made
|
|
10
|
+
// here, from create-rule, because no plugin in JsonSchemaBag asserts a
|
|
11
|
+
// primitive type (`object` is the only type plugin in the catalogue and it is
|
|
12
|
+
// not in the bag).
|
|
13
|
+
//
|
|
14
|
+
// `null` never reaches a check — src/runtime/decide-presence.ts settles absence
|
|
15
|
+
// first — so `type: "null"` reads as "every value that got this far is wrong",
|
|
16
|
+
// which is exactly right: the only null-shaped value was already accepted by
|
|
17
|
+
// the nullable presence rule this module's neighbour declares.
|
|
18
|
+
// ===========================================================================
|
|
19
|
+
import { readChainRules } from "../chain/create-chain-node.mjs";
|
|
20
|
+
import { createFieldSlots } from "../chain/create-field-slots.mjs";
|
|
21
|
+
import { check } from "../plugin-kit/create-rule.mjs";
|
|
22
|
+
import { PASS, fail, isArray, isPlainObject, isString } from "../types/index.mjs";
|
|
23
|
+
import { applyKeywordBinding } from "./apply-keyword-binding.mjs";
|
|
24
|
+
import { constBinding } from "./keyword-map-core.mjs";
|
|
25
|
+
const NO_RULES = Object.freeze([]);
|
|
26
|
+
/** Every Draft-07 `type` name, so an unknown one is a build-time refusal. */
|
|
27
|
+
const JSON_TYPE_TESTS = {
|
|
28
|
+
string: isString,
|
|
29
|
+
number: (value) => typeof value === "number",
|
|
30
|
+
integer: (value) => typeof value === "number" && Number.isInteger(value),
|
|
31
|
+
boolean: (value) => typeof value === "boolean",
|
|
32
|
+
array: isArray,
|
|
33
|
+
object: isPlainObject,
|
|
34
|
+
null: (value) => value === null,
|
|
35
|
+
};
|
|
36
|
+
function isTypeKeyword(name) {
|
|
37
|
+
return Object.prototype.hasOwnProperty.call(JSON_TYPE_TESTS, name);
|
|
38
|
+
}
|
|
39
|
+
/** The declared names, always as a list, with unknown names rejected loudly. */
|
|
40
|
+
export function readDeclaredTypes(schema) {
|
|
41
|
+
const declared = schema.type;
|
|
42
|
+
if (declared === undefined)
|
|
43
|
+
return Object.freeze([]);
|
|
44
|
+
const names = isArray(declared) ? declared : [declared];
|
|
45
|
+
return Object.freeze(names.filter((name) => isTypeKeyword(name)));
|
|
46
|
+
}
|
|
47
|
+
/** True when the document permits an explicit null at this position. */
|
|
48
|
+
export function permitsNull(schema) {
|
|
49
|
+
const declared = readDeclaredTypes(schema);
|
|
50
|
+
return declared.length === 0 || declared.includes("null");
|
|
51
|
+
}
|
|
52
|
+
function describeActual(value) {
|
|
53
|
+
if (value === null)
|
|
54
|
+
return "null";
|
|
55
|
+
if (isArray(value))
|
|
56
|
+
return "array";
|
|
57
|
+
return typeof value;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* One check for the whole list: `type: ["string","number"]` is a union, and
|
|
61
|
+
* running one rule per member would report a failure per member for a value
|
|
62
|
+
* that fails all of them.
|
|
63
|
+
*/
|
|
64
|
+
export function declareTypeRules(schema, context) {
|
|
65
|
+
const declared = readDeclaredTypes(schema);
|
|
66
|
+
if (declared.length === 0)
|
|
67
|
+
return NO_RULES;
|
|
68
|
+
const tests = declared.map((name) => JSON_TYPE_TESTS[name]);
|
|
69
|
+
const rendered = declared.join(" or ");
|
|
70
|
+
return Object.freeze([
|
|
71
|
+
check({
|
|
72
|
+
code: "type",
|
|
73
|
+
severity: context.build.config.defaultSeverity,
|
|
74
|
+
run: (value) => tests.some((test) => test(value))
|
|
75
|
+
? PASS
|
|
76
|
+
: fail({ expected: rendered, actual: describeActual(value) }),
|
|
77
|
+
describe: (detail) => `Value must be of type ${rendered}, but got ${String(detail.actual)}`,
|
|
78
|
+
buildMessageContext: () => ({}),
|
|
79
|
+
}),
|
|
80
|
+
]);
|
|
81
|
+
}
|
|
82
|
+
/** `type: "integer"` is the only `type` member that adds a chain method. */
|
|
83
|
+
export function declareIntegerRules(schema, context) {
|
|
84
|
+
if (!readDeclaredTypes(schema).includes("integer"))
|
|
85
|
+
return NO_RULES;
|
|
86
|
+
const plugin = context.bag.numberInteger;
|
|
87
|
+
return Object.freeze([
|
|
88
|
+
plugin.build(context.ruleContextFor(plugin.name, "type")),
|
|
89
|
+
]);
|
|
90
|
+
}
|
|
91
|
+
export function declareConstRules(schema, context) {
|
|
92
|
+
if (!Object.prototype.hasOwnProperty.call(schema, "const"))
|
|
93
|
+
return NO_RULES;
|
|
94
|
+
const chain = createFieldSlots(context.bag, context.build).any;
|
|
95
|
+
const applied = applyKeywordBinding(chain, constBinding, schema.const);
|
|
96
|
+
return readChainRules(applied) ?? NO_RULES;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* `enum` drives the `.oneOf()` METHOD, which is a different thing from the
|
|
100
|
+
* `oneOf` KEYWORD. The list is typed against the FIELD (readonly SelfValue[]),
|
|
101
|
+
* so it carries a marker and can never be a keyword binding; the converter
|
|
102
|
+
* resolves the list and calls the plugin itself, exactly as the table says.
|
|
103
|
+
*/
|
|
104
|
+
export function declareEnumRules(schema, context) {
|
|
105
|
+
const allowed = schema.enum;
|
|
106
|
+
if (allowed === undefined || allowed.length === 0)
|
|
107
|
+
return NO_RULES;
|
|
108
|
+
const plugin = context.bag.oneOf;
|
|
109
|
+
return Object.freeze([
|
|
110
|
+
plugin.build(context.ruleContextFor(plugin.name, "enum"), allowed),
|
|
111
|
+
]);
|
|
112
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { ContentEncodingName } from "../plugins/string-content-encoding";
|
|
2
|
+
import type { Draft07Schema, Draft07TypeKeyword } from "./draft07.types";
|
|
3
|
+
export type Draft07CoreKeyword = "$schema" | "$id" | "$ref" | "$comment" | "definitions" | "title" | "description" | "default" | "examples" | "readOnly" | "writeOnly" | "type" | "enum" | "const" | "allOf" | "anyOf" | "oneOf" | "not" | "if" | "then" | "else";
|
|
4
|
+
export type Draft07NumberKeyword = "multipleOf" | "maximum" | "exclusiveMaximum" | "minimum" | "exclusiveMinimum";
|
|
5
|
+
export type Draft07StringKeyword = "maxLength" | "minLength" | "pattern" | "format" | "contentEncoding" | "contentMediaType";
|
|
6
|
+
export type Draft07ArrayKeyword = "items" | "additionalItems" | "maxItems" | "minItems" | "uniqueItems" | "contains";
|
|
7
|
+
export type Draft07ObjectKeyword = "maxProperties" | "minProperties" | "required" | "properties" | "patternProperties" | "additionalProperties" | "dependencies" | "propertyNames";
|
|
8
|
+
/** All 46 Draft-07 keywords. Written by hand; checked against the record. */
|
|
9
|
+
export type Draft07Keyword = Draft07CoreKeyword | Draft07NumberKeyword | Draft07StringKeyword | Draft07ArrayKeyword | Draft07ObjectKeyword;
|
|
10
|
+
export interface Draft07KeywordValues {
|
|
11
|
+
readonly $schema: string;
|
|
12
|
+
readonly $id: string;
|
|
13
|
+
readonly $ref: string;
|
|
14
|
+
readonly $comment: string;
|
|
15
|
+
readonly definitions: Readonly<Record<string, Draft07Schema>>;
|
|
16
|
+
readonly title: string;
|
|
17
|
+
readonly description: string;
|
|
18
|
+
readonly default: unknown;
|
|
19
|
+
readonly examples: readonly unknown[];
|
|
20
|
+
readonly readOnly: boolean;
|
|
21
|
+
readonly writeOnly: boolean;
|
|
22
|
+
readonly type: Draft07TypeKeyword | readonly Draft07TypeKeyword[];
|
|
23
|
+
readonly enum: readonly unknown[];
|
|
24
|
+
readonly const: unknown;
|
|
25
|
+
readonly allOf: readonly Draft07Schema[];
|
|
26
|
+
readonly anyOf: readonly Draft07Schema[];
|
|
27
|
+
readonly oneOf: readonly Draft07Schema[];
|
|
28
|
+
readonly not: Draft07Schema;
|
|
29
|
+
readonly if: Draft07Schema;
|
|
30
|
+
readonly then: Draft07Schema;
|
|
31
|
+
readonly else: Draft07Schema;
|
|
32
|
+
readonly multipleOf: number;
|
|
33
|
+
readonly maximum: number;
|
|
34
|
+
readonly exclusiveMaximum: number;
|
|
35
|
+
readonly minimum: number;
|
|
36
|
+
readonly exclusiveMinimum: number;
|
|
37
|
+
readonly maxLength: number;
|
|
38
|
+
readonly minLength: number;
|
|
39
|
+
readonly pattern: string;
|
|
40
|
+
readonly format: string;
|
|
41
|
+
/** Normalised: an unknown encoding name never reaches the binding. */
|
|
42
|
+
readonly contentEncoding: ContentEncodingName;
|
|
43
|
+
readonly contentMediaType: string;
|
|
44
|
+
readonly items: Draft07Schema | readonly Draft07Schema[];
|
|
45
|
+
readonly additionalItems: Draft07Schema;
|
|
46
|
+
readonly maxItems: number;
|
|
47
|
+
readonly minItems: number;
|
|
48
|
+
/** Normalised: `uniqueItems: false` is a no-op and is dropped first. */
|
|
49
|
+
readonly uniqueItems: true;
|
|
50
|
+
readonly contains: Draft07Schema;
|
|
51
|
+
readonly maxProperties: number;
|
|
52
|
+
readonly minProperties: number;
|
|
53
|
+
/** Normalised: the parent's array, resolved to one flag per child. */
|
|
54
|
+
readonly required: true;
|
|
55
|
+
readonly properties: Readonly<Record<string, Draft07Schema>>;
|
|
56
|
+
readonly patternProperties: Readonly<Record<string, Draft07Schema>>;
|
|
57
|
+
/** Normalised: only the boolean form binds; the schema form is structural. */
|
|
58
|
+
readonly additionalProperties: boolean;
|
|
59
|
+
readonly dependencies: Readonly<Record<string, Draft07Schema | readonly string[]>>;
|
|
60
|
+
readonly propertyNames: Draft07Schema;
|
|
61
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/** The seven values Draft-07 allows in `type`. `integer` is NOT a Luq slot. */
|
|
2
|
+
export type Draft07TypeKeyword = "string" | "number" | "integer" | "boolean" | "array" | "object" | "null";
|
|
3
|
+
export type Draft07Schema = boolean | Draft07SchemaObject;
|
|
4
|
+
export interface Draft07SchemaObject {
|
|
5
|
+
readonly $id?: string;
|
|
6
|
+
readonly $schema?: string;
|
|
7
|
+
readonly $ref?: string;
|
|
8
|
+
readonly $comment?: string;
|
|
9
|
+
readonly definitions?: Readonly<Record<string, Draft07Schema>>;
|
|
10
|
+
/** 2019-09 spelling. Not a Draft-07 keyword; only the RESOLVER accepts it. */
|
|
11
|
+
readonly $defs?: Readonly<Record<string, Draft07Schema>>;
|
|
12
|
+
readonly title?: string;
|
|
13
|
+
readonly description?: string;
|
|
14
|
+
readonly default?: unknown;
|
|
15
|
+
readonly readOnly?: boolean;
|
|
16
|
+
readonly writeOnly?: boolean;
|
|
17
|
+
readonly examples?: readonly unknown[];
|
|
18
|
+
readonly type?: Draft07TypeKeyword | readonly Draft07TypeKeyword[];
|
|
19
|
+
readonly enum?: readonly unknown[];
|
|
20
|
+
readonly const?: unknown;
|
|
21
|
+
readonly format?: string;
|
|
22
|
+
readonly multipleOf?: number;
|
|
23
|
+
readonly maximum?: number;
|
|
24
|
+
readonly exclusiveMaximum?: number;
|
|
25
|
+
readonly minimum?: number;
|
|
26
|
+
readonly exclusiveMinimum?: number;
|
|
27
|
+
readonly maxLength?: number;
|
|
28
|
+
readonly minLength?: number;
|
|
29
|
+
readonly pattern?: string;
|
|
30
|
+
readonly contentMediaType?: string;
|
|
31
|
+
readonly contentEncoding?: string;
|
|
32
|
+
readonly items?: Draft07Schema | readonly Draft07Schema[];
|
|
33
|
+
readonly additionalItems?: Draft07Schema;
|
|
34
|
+
readonly maxItems?: number;
|
|
35
|
+
readonly minItems?: number;
|
|
36
|
+
readonly uniqueItems?: boolean;
|
|
37
|
+
readonly contains?: Draft07Schema;
|
|
38
|
+
readonly maxProperties?: number;
|
|
39
|
+
readonly minProperties?: number;
|
|
40
|
+
readonly required?: readonly string[];
|
|
41
|
+
readonly properties?: Readonly<Record<string, Draft07Schema>>;
|
|
42
|
+
readonly patternProperties?: Readonly<Record<string, Draft07Schema>>;
|
|
43
|
+
readonly additionalProperties?: Draft07Schema;
|
|
44
|
+
readonly dependencies?: Readonly<Record<string, Draft07Schema | readonly string[]>>;
|
|
45
|
+
readonly propertyNames?: Draft07Schema;
|
|
46
|
+
readonly allOf?: readonly Draft07Schema[];
|
|
47
|
+
readonly anyOf?: readonly Draft07Schema[];
|
|
48
|
+
readonly oneOf?: readonly Draft07Schema[];
|
|
49
|
+
readonly not?: Draft07Schema;
|
|
50
|
+
readonly if?: Draft07Schema;
|
|
51
|
+
readonly then?: Draft07Schema;
|
|
52
|
+
readonly else?: Draft07Schema;
|
|
53
|
+
}
|
|
54
|
+
/** Narrows away the boolean form of §4.4 without an assertion. */
|
|
55
|
+
export declare function isSchemaObject(schema: Draft07Schema): schema is Draft07SchemaObject;
|
|
56
|
+
/** The one entry gate for untyped JSON. `null` is NOT a schema. */
|
|
57
|
+
export declare function isDraft07Schema(value: unknown): value is Draft07Schema;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isSchemaObject = isSchemaObject;
|
|
4
|
+
exports.isDraft07Schema = isDraft07Schema;
|
|
5
|
+
// ===========================================================================
|
|
6
|
+
// L8 src/json-schema/draft07.types.ts — the DOCUMENT shape.
|
|
7
|
+
//
|
|
8
|
+
// This is what a Draft-07 JSON document is allowed to say, keyword for
|
|
9
|
+
// keyword, straight from the draft-07 meta-schema's `properties` (46 keys).
|
|
10
|
+
// It is deliberately NOT the same thing as `Draft07KeywordValues`: this type
|
|
11
|
+
// is as wide as the specification, while the value types next door are as
|
|
12
|
+
// narrow as the handling can accept, so the converter is FORCED by the
|
|
13
|
+
// compiler to normalise (`uniqueItems: boolean` -> `true`, a `required` array
|
|
14
|
+
// -> a per-field flag) instead of quietly passing the wide form through.
|
|
15
|
+
//
|
|
16
|
+
// A schema may also be a bare boolean — Draft-07 §4.4 — and 1.x's converter
|
|
17
|
+
// could not represent that at all (it tested `typeof x === "object"` and
|
|
18
|
+
// dropped the rest), so it is in the union here from the start.
|
|
19
|
+
// ===========================================================================
|
|
20
|
+
const types_1 = require("../types");
|
|
21
|
+
/** Narrows away the boolean form of §4.4 without an assertion. */
|
|
22
|
+
function isSchemaObject(schema) {
|
|
23
|
+
return typeof schema !== "boolean";
|
|
24
|
+
}
|
|
25
|
+
/** The one entry gate for untyped JSON. `null` is NOT a schema. */
|
|
26
|
+
function isDraft07Schema(value) {
|
|
27
|
+
return typeof value === "boolean" || (0, types_1.isPlainObject)(value);
|
|
28
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// ===========================================================================
|
|
2
|
+
// L8 src/json-schema/draft07.types.ts — the DOCUMENT shape.
|
|
3
|
+
//
|
|
4
|
+
// This is what a Draft-07 JSON document is allowed to say, keyword for
|
|
5
|
+
// keyword, straight from the draft-07 meta-schema's `properties` (46 keys).
|
|
6
|
+
// It is deliberately NOT the same thing as `Draft07KeywordValues`: this type
|
|
7
|
+
// is as wide as the specification, while the value types next door are as
|
|
8
|
+
// narrow as the handling can accept, so the converter is FORCED by the
|
|
9
|
+
// compiler to normalise (`uniqueItems: boolean` -> `true`, a `required` array
|
|
10
|
+
// -> a per-field flag) instead of quietly passing the wide form through.
|
|
11
|
+
//
|
|
12
|
+
// A schema may also be a bare boolean — Draft-07 §4.4 — and 1.x's converter
|
|
13
|
+
// could not represent that at all (it tested `typeof x === "object"` and
|
|
14
|
+
// dropped the rest), so it is in the union here from the start.
|
|
15
|
+
// ===========================================================================
|
|
16
|
+
import { isPlainObject } from "../types/index.mjs";
|
|
17
|
+
/** Narrows away the boolean form of §4.4 without an assertion. */
|
|
18
|
+
export function isSchemaObject(schema) {
|
|
19
|
+
return typeof schema !== "boolean";
|
|
20
|
+
}
|
|
21
|
+
/** The one entry gate for untyped JSON. `null` is NOT a schema. */
|
|
22
|
+
export function isDraft07Schema(value) {
|
|
23
|
+
return typeof value === "boolean" || isPlainObject(value);
|
|
24
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { SCHEMA_BRANCH_LABEL, collectDocumentRules, jsonSchemaPlugin, } from "./json-schema";
|
|
2
|
+
export type { JsonSchemaOptions } from "./json-schema";
|
|
3
|
+
export { NotASchemaError, UnsupportedKeywordError, RefResolutionError, buildFieldEntries, buildFromSchema, fromJsonSchema, isDraft07Schema, listBoundPluginNames, listDraft07Keywords, listFormatNames, } from "../../index";
|
|
4
|
+
export type { Draft07Schema, Draft07SchemaObject, JsonSchemaBag, } from "../../index";
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.listFormatNames = exports.listDraft07Keywords = exports.listBoundPluginNames = exports.isDraft07Schema = exports.fromJsonSchema = exports.buildFromSchema = exports.buildFieldEntries = exports.RefResolutionError = exports.UnsupportedKeywordError = exports.NotASchemaError = exports.jsonSchemaPlugin = exports.collectDocumentRules = exports.SCHEMA_BRANCH_LABEL = void 0;
|
|
4
|
+
// ===========================================================================
|
|
5
|
+
// The public subpath `@maroonedog/luq/plugins/jsonSchema`. Re-exports only.
|
|
6
|
+
//
|
|
7
|
+
// 1.x published this subpath as "the jsonSchema barrel": the plugin plus the
|
|
8
|
+
// module's named helpers. The same shape is kept — the plugin, the conversion
|
|
9
|
+
// front door, and the errors a caller has to be able to catch by identity —
|
|
10
|
+
// with ONE deliberate omission: no plugin entry file is imported from here, so
|
|
11
|
+
// a consumer of this subpath pays only for the plugins they import themselves.
|
|
12
|
+
// ===========================================================================
|
|
13
|
+
var json_schema_1 = require("./json-schema");
|
|
14
|
+
Object.defineProperty(exports, "SCHEMA_BRANCH_LABEL", { enumerable: true, get: function () { return json_schema_1.SCHEMA_BRANCH_LABEL; } });
|
|
15
|
+
Object.defineProperty(exports, "collectDocumentRules", { enumerable: true, get: function () { return json_schema_1.collectDocumentRules; } });
|
|
16
|
+
Object.defineProperty(exports, "jsonSchemaPlugin", { enumerable: true, get: function () { return json_schema_1.jsonSchemaPlugin; } });
|
|
17
|
+
var index_1 = require("../../index");
|
|
18
|
+
Object.defineProperty(exports, "NotASchemaError", { enumerable: true, get: function () { return index_1.NotASchemaError; } });
|
|
19
|
+
Object.defineProperty(exports, "UnsupportedKeywordError", { enumerable: true, get: function () { return index_1.UnsupportedKeywordError; } });
|
|
20
|
+
Object.defineProperty(exports, "RefResolutionError", { enumerable: true, get: function () { return index_1.RefResolutionError; } });
|
|
21
|
+
Object.defineProperty(exports, "buildFieldEntries", { enumerable: true, get: function () { return index_1.buildFieldEntries; } });
|
|
22
|
+
Object.defineProperty(exports, "buildFromSchema", { enumerable: true, get: function () { return index_1.buildFromSchema; } });
|
|
23
|
+
Object.defineProperty(exports, "fromJsonSchema", { enumerable: true, get: function () { return index_1.fromJsonSchema; } });
|
|
24
|
+
Object.defineProperty(exports, "isDraft07Schema", { enumerable: true, get: function () { return index_1.isDraft07Schema; } });
|
|
25
|
+
Object.defineProperty(exports, "listBoundPluginNames", { enumerable: true, get: function () { return index_1.listBoundPluginNames; } });
|
|
26
|
+
Object.defineProperty(exports, "listDraft07Keywords", { enumerable: true, get: function () { return index_1.listDraft07Keywords; } });
|
|
27
|
+
Object.defineProperty(exports, "listFormatNames", { enumerable: true, get: function () { return index_1.listFormatNames; } });
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// ===========================================================================
|
|
2
|
+
// The public subpath `@maroonedog/luq/plugins/jsonSchema`. Re-exports only.
|
|
3
|
+
//
|
|
4
|
+
// 1.x published this subpath as "the jsonSchema barrel": the plugin plus the
|
|
5
|
+
// module's named helpers. The same shape is kept — the plugin, the conversion
|
|
6
|
+
// front door, and the errors a caller has to be able to catch by identity —
|
|
7
|
+
// with ONE deliberate omission: no plugin entry file is imported from here, so
|
|
8
|
+
// a consumer of this subpath pays only for the plugins they import themselves.
|
|
9
|
+
// ===========================================================================
|
|
10
|
+
export { SCHEMA_BRANCH_LABEL, collectDocumentRules, jsonSchemaPlugin, } from "./json-schema.mjs";
|
|
11
|
+
export { NotASchemaError, UnsupportedKeywordError, RefResolutionError, buildFieldEntries, buildFromSchema, fromJsonSchema, isDraft07Schema, listBoundPluginNames, listDraft07Keywords, listFormatNames, } from "../../index.mjs";
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Rule } from "../../../plugin-kit/compiled-rule";
|
|
2
|
+
import { type MessageContextExtra, type TypeName } from "../../../types";
|
|
3
|
+
import type { RuleBuildContext } from "../../../plugin-kit/rule-build-context";
|
|
4
|
+
import type { Unchanged } from "../../../plugin-kit/marker.types";
|
|
5
|
+
import { type JsonSchemaBag } from "../../index";
|
|
6
|
+
/** The label the whole document carries inside the composite it becomes. */
|
|
7
|
+
export declare const SCHEMA_BRANCH_LABEL = "schema";
|
|
8
|
+
/**
|
|
9
|
+
* What the converter may reach beyond the document itself.
|
|
10
|
+
*
|
|
11
|
+
* `externalDocuments` is a MAP, deliberately, and not a loader function:
|
|
12
|
+
* * Luq never opens a socket, so a schema cannot make the process fetch a
|
|
13
|
+
* URL it names (SSRF) — what can be read is written in the caller's code;
|
|
14
|
+
* * conversion stays synchronous, so `build()` keeps returning a validator
|
|
15
|
+
* rather than a promise;
|
|
16
|
+
* * nothing is evaluated, so the CSP guarantee is untouched.
|
|
17
|
+
* The caller fetches, reads from disk, or bundles — whichever is right for
|
|
18
|
+
* their deployment — and hands over what they already have.
|
|
19
|
+
*/
|
|
20
|
+
export interface JsonSchemaOptions {
|
|
21
|
+
readonly externalDocuments?: Readonly<Record<string, unknown>> | undefined;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* The document as a rule list over ONE subject. Exported because it is the
|
|
25
|
+
* only part of this plugin the full-feature bundle needs, and because a test
|
|
26
|
+
* can then count the rules a document produces without building a validator.
|
|
27
|
+
*/
|
|
28
|
+
export declare function collectDocumentRules(ctx: RuleBuildContext<MessageContextExtra>, document: unknown, bag: JsonSchemaBag, options?: JsonSchemaOptions): readonly Rule[];
|
|
29
|
+
export declare const jsonSchemaPlugin: import("../../../plugin-kit/plugin-definition").PluginDefinition<"jsonSchema", "jsonSchema", readonly TypeName[], {
|
|
30
|
+
args: readonly [document: unknown, bag: JsonSchemaBag, options?: JsonSchemaOptions];
|
|
31
|
+
out: Unchanged;
|
|
32
|
+
context: MessageContextExtra;
|
|
33
|
+
}>;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.jsonSchemaPlugin = exports.SCHEMA_BRANCH_LABEL = void 0;
|
|
4
|
+
exports.collectDocumentRules = collectDocumentRules;
|
|
5
|
+
// ===========================================================================
|
|
6
|
+
// L8 (tier `extension`) src/json-schema/extensions/json-schema/json-schema.ts
|
|
7
|
+
// `./plugins/jsonSchema` — the TREE-SHAKEABLE half of the two-tier story.
|
|
8
|
+
//
|
|
9
|
+
// WHAT CHANGED FROM 1.x, AND WHY (this is a deviation; it is argued, not hidden):
|
|
10
|
+
// 1.x shipped `jsonSchemaPlugin` as a BuilderExtensionPlugin that grew a
|
|
11
|
+
// `.fromJsonSchema()` method onto `Builder` itself. The rewritten core has no
|
|
12
|
+
// builder-extension mechanism at all — `Builder` was frozen at the contract
|
|
13
|
+
// gate (step 7) with exactly `use` / `withConfig` / `for` — so the method
|
|
14
|
+
// cannot be grown back without breaking that freeze. The conversion front door
|
|
15
|
+
// is therefore the FUNCTION `fromJsonSchema(bag, schema)` (step 25), re-exported
|
|
16
|
+
// from this directory's index, and this file adds the thing a function cannot
|
|
17
|
+
// express: a CHAIN METHOD, so a document can constrain one declared field.
|
|
18
|
+
//
|
|
19
|
+
// `.jsonSchema(document, bag)` takes the bag EXPLICITLY. That is the whole
|
|
20
|
+
// point of this subpath: importing the forty-five plugin entry files here would
|
|
21
|
+
// make every one of them statically reachable and end per-plugin tree-shaking,
|
|
22
|
+
// which is exactly the size difference 1.x published between this subpath and
|
|
23
|
+
// ./plugins/jsonSchemaFullFeature. The caller assembles the bag from the
|
|
24
|
+
// plugins they already import; the full-feature bundle ships a complete one.
|
|
25
|
+
//
|
|
26
|
+
// THE ROOT IS DECLARABLE HERE. flatten-schema refuses a rule-bearing keyword on
|
|
27
|
+
// the document ROOT because Luq declares rules per FIELD and the empty path is
|
|
28
|
+
// not a field. A chain method has a field — the one it is called on — so the
|
|
29
|
+
// WHOLE document becomes rules over that one subject through the same
|
|
30
|
+
// collectSubSchemaRules() every applicator arm already uses. `additionalProperties`,
|
|
31
|
+
// `anyOf`, `not`, `if/then/else`, `minProperties`, `propertyNames` and the rest
|
|
32
|
+
// are reachable at the top of a document through this method and through no
|
|
33
|
+
// other route in the library.
|
|
34
|
+
//
|
|
35
|
+
// WHAT IT STILL CANNOT DO: `null`. src/runtime/decide-presence.ts settles
|
|
36
|
+
// absence before any check runs, so a composite rule is never handed a null and
|
|
37
|
+
// `{"type":"string"}` cannot reject one from here. Nullability is the FIELD's
|
|
38
|
+
// presence policy — declare `.optional()` when the document forbids null, which
|
|
39
|
+
// is precisely what declare-presence.ts does for every child property. See
|
|
40
|
+
// needsFromOthers: a document-driven presence rule has no home yet.
|
|
41
|
+
// ===========================================================================
|
|
42
|
+
const create_rule_1 = require("../../../plugin-kit/create-rule");
|
|
43
|
+
const plugin_definition_1 = require("../../../plugin-kit/plugin-definition");
|
|
44
|
+
const types_1 = require("../../../types");
|
|
45
|
+
const index_1 = require("../../index");
|
|
46
|
+
/** Every slot: a JSON Schema document constrains a value of any shape. */
|
|
47
|
+
const SCHEMA_SLOTS = [
|
|
48
|
+
"string",
|
|
49
|
+
"number",
|
|
50
|
+
"boolean",
|
|
51
|
+
"date",
|
|
52
|
+
"array",
|
|
53
|
+
"tuple",
|
|
54
|
+
"object",
|
|
55
|
+
"union",
|
|
56
|
+
"any",
|
|
57
|
+
];
|
|
58
|
+
/** The label the whole document carries inside the composite it becomes. */
|
|
59
|
+
exports.SCHEMA_BRANCH_LABEL = "schema";
|
|
60
|
+
const NO_EXTERNAL_DOCUMENTS = Object.freeze({});
|
|
61
|
+
/**
|
|
62
|
+
* The document as a rule list over ONE subject. Exported because it is the
|
|
63
|
+
* only part of this plugin the full-feature bundle needs, and because a test
|
|
64
|
+
* can then count the rules a document produces without building a validator.
|
|
65
|
+
*/
|
|
66
|
+
function collectDocumentRules(ctx, document, bag, options = {}) {
|
|
67
|
+
if (!(0, index_1.isDraft07Schema)(document))
|
|
68
|
+
throw new index_1.NotASchemaError(document);
|
|
69
|
+
const root = document;
|
|
70
|
+
const scope = (0, index_1.createDocumentScope)(root, options.externalDocuments ?? NO_EXTERNAL_DOCUMENTS);
|
|
71
|
+
// The seed's `chain` is a ChainBuildContext, whose three members a
|
|
72
|
+
// RuleBuildContext already carries. Written inline because naming the type
|
|
73
|
+
// would mean importing src/chain, which tier `extension` forbids.
|
|
74
|
+
const seed = {
|
|
75
|
+
bag,
|
|
76
|
+
scope,
|
|
77
|
+
chain: {
|
|
78
|
+
fieldPath: ctx.fieldPath,
|
|
79
|
+
declaredSiblingKeys: ctx.declaredSiblingKeys,
|
|
80
|
+
config: ctx.config,
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
const resolved = (0, index_1.resolveSchemaNodeInScope)(root, scope);
|
|
84
|
+
const context = (0, index_1.createStructuralContext)(seed, resolved.node, [], resolved.scope);
|
|
85
|
+
// The branch subject carries its own null policy, like every sub-schema
|
|
86
|
+
// subject: collectSubSchemaRules puts it there. `judgesNull` on the plugin
|
|
87
|
+
// gets null as far as this composite; that policy gets it the rest of the
|
|
88
|
+
// way, into the document's own rules.
|
|
89
|
+
return (0, index_1.collectSubSchemaRules)(resolved.node, context);
|
|
90
|
+
}
|
|
91
|
+
exports.jsonSchemaPlugin = (0, plugin_definition_1.definePlugin)()({
|
|
92
|
+
name: "jsonSchema",
|
|
93
|
+
// The document decides whether null is allowed, so null has to reach it.
|
|
94
|
+
judgesNull: true,
|
|
95
|
+
method: "jsonSchema",
|
|
96
|
+
slots: SCHEMA_SLOTS,
|
|
97
|
+
build: (ctx, document, bag, options) => (0, create_rule_1.composite)({
|
|
98
|
+
code: ctx.code,
|
|
99
|
+
messageFactory: ctx.messageFactory,
|
|
100
|
+
severity: ctx.severity,
|
|
101
|
+
branches: [
|
|
102
|
+
(0, create_rule_1.branch)(exports.SCHEMA_BRANCH_LABEL, collectDocumentRules(ctx, document, bag, options)),
|
|
103
|
+
],
|
|
104
|
+
combine: (runners) => (value, runContext) => runners[0]?.run(value, runContext) ?? types_1.PASS,
|
|
105
|
+
describe: () => "Value does not match the JSON Schema document",
|
|
106
|
+
buildMessageContext: () => ({}),
|
|
107
|
+
}),
|
|
108
|
+
});
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
// ===========================================================================
|
|
2
|
+
// L8 (tier `extension`) src/json-schema/extensions/json-schema/json-schema.ts
|
|
3
|
+
// `./plugins/jsonSchema` — the TREE-SHAKEABLE half of the two-tier story.
|
|
4
|
+
//
|
|
5
|
+
// WHAT CHANGED FROM 1.x, AND WHY (this is a deviation; it is argued, not hidden):
|
|
6
|
+
// 1.x shipped `jsonSchemaPlugin` as a BuilderExtensionPlugin that grew a
|
|
7
|
+
// `.fromJsonSchema()` method onto `Builder` itself. The rewritten core has no
|
|
8
|
+
// builder-extension mechanism at all — `Builder` was frozen at the contract
|
|
9
|
+
// gate (step 7) with exactly `use` / `withConfig` / `for` — so the method
|
|
10
|
+
// cannot be grown back without breaking that freeze. The conversion front door
|
|
11
|
+
// is therefore the FUNCTION `fromJsonSchema(bag, schema)` (step 25), re-exported
|
|
12
|
+
// from this directory's index, and this file adds the thing a function cannot
|
|
13
|
+
// express: a CHAIN METHOD, so a document can constrain one declared field.
|
|
14
|
+
//
|
|
15
|
+
// `.jsonSchema(document, bag)` takes the bag EXPLICITLY. That is the whole
|
|
16
|
+
// point of this subpath: importing the forty-five plugin entry files here would
|
|
17
|
+
// make every one of them statically reachable and end per-plugin tree-shaking,
|
|
18
|
+
// which is exactly the size difference 1.x published between this subpath and
|
|
19
|
+
// ./plugins/jsonSchemaFullFeature. The caller assembles the bag from the
|
|
20
|
+
// plugins they already import; the full-feature bundle ships a complete one.
|
|
21
|
+
//
|
|
22
|
+
// THE ROOT IS DECLARABLE HERE. flatten-schema refuses a rule-bearing keyword on
|
|
23
|
+
// the document ROOT because Luq declares rules per FIELD and the empty path is
|
|
24
|
+
// not a field. A chain method has a field — the one it is called on — so the
|
|
25
|
+
// WHOLE document becomes rules over that one subject through the same
|
|
26
|
+
// collectSubSchemaRules() every applicator arm already uses. `additionalProperties`,
|
|
27
|
+
// `anyOf`, `not`, `if/then/else`, `minProperties`, `propertyNames` and the rest
|
|
28
|
+
// are reachable at the top of a document through this method and through no
|
|
29
|
+
// other route in the library.
|
|
30
|
+
//
|
|
31
|
+
// WHAT IT STILL CANNOT DO: `null`. src/runtime/decide-presence.ts settles
|
|
32
|
+
// absence before any check runs, so a composite rule is never handed a null and
|
|
33
|
+
// `{"type":"string"}` cannot reject one from here. Nullability is the FIELD's
|
|
34
|
+
// presence policy — declare `.optional()` when the document forbids null, which
|
|
35
|
+
// is precisely what declare-presence.ts does for every child property. See
|
|
36
|
+
// needsFromOthers: a document-driven presence rule has no home yet.
|
|
37
|
+
// ===========================================================================
|
|
38
|
+
import { branch, composite } from "../../../plugin-kit/create-rule.mjs";
|
|
39
|
+
import { definePlugin } from "../../../plugin-kit/plugin-definition.mjs";
|
|
40
|
+
import { PASS } from "../../../types/index.mjs";
|
|
41
|
+
import { NotASchemaError, collectSubSchemaRules, createStructuralContext, createDocumentScope, isDraft07Schema, resolveSchemaNodeInScope, } from "../../index.mjs";
|
|
42
|
+
/** Every slot: a JSON Schema document constrains a value of any shape. */
|
|
43
|
+
const SCHEMA_SLOTS = [
|
|
44
|
+
"string",
|
|
45
|
+
"number",
|
|
46
|
+
"boolean",
|
|
47
|
+
"date",
|
|
48
|
+
"array",
|
|
49
|
+
"tuple",
|
|
50
|
+
"object",
|
|
51
|
+
"union",
|
|
52
|
+
"any",
|
|
53
|
+
];
|
|
54
|
+
/** The label the whole document carries inside the composite it becomes. */
|
|
55
|
+
export const SCHEMA_BRANCH_LABEL = "schema";
|
|
56
|
+
const NO_EXTERNAL_DOCUMENTS = Object.freeze({});
|
|
57
|
+
/**
|
|
58
|
+
* The document as a rule list over ONE subject. Exported because it is the
|
|
59
|
+
* only part of this plugin the full-feature bundle needs, and because a test
|
|
60
|
+
* can then count the rules a document produces without building a validator.
|
|
61
|
+
*/
|
|
62
|
+
export function collectDocumentRules(ctx, document, bag, options = {}) {
|
|
63
|
+
if (!isDraft07Schema(document))
|
|
64
|
+
throw new NotASchemaError(document);
|
|
65
|
+
const root = document;
|
|
66
|
+
const scope = createDocumentScope(root, options.externalDocuments ?? NO_EXTERNAL_DOCUMENTS);
|
|
67
|
+
// The seed's `chain` is a ChainBuildContext, whose three members a
|
|
68
|
+
// RuleBuildContext already carries. Written inline because naming the type
|
|
69
|
+
// would mean importing src/chain, which tier `extension` forbids.
|
|
70
|
+
const seed = {
|
|
71
|
+
bag,
|
|
72
|
+
scope,
|
|
73
|
+
chain: {
|
|
74
|
+
fieldPath: ctx.fieldPath,
|
|
75
|
+
declaredSiblingKeys: ctx.declaredSiblingKeys,
|
|
76
|
+
config: ctx.config,
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
const resolved = resolveSchemaNodeInScope(root, scope);
|
|
80
|
+
const context = createStructuralContext(seed, resolved.node, [], resolved.scope);
|
|
81
|
+
// The branch subject carries its own null policy, like every sub-schema
|
|
82
|
+
// subject: collectSubSchemaRules puts it there. `judgesNull` on the plugin
|
|
83
|
+
// gets null as far as this composite; that policy gets it the rest of the
|
|
84
|
+
// way, into the document's own rules.
|
|
85
|
+
return collectSubSchemaRules(resolved.node, context);
|
|
86
|
+
}
|
|
87
|
+
export const jsonSchemaPlugin = /*#__PURE__*/ definePlugin()({
|
|
88
|
+
name: "jsonSchema",
|
|
89
|
+
// The document decides whether null is allowed, so null has to reach it.
|
|
90
|
+
judgesNull: true,
|
|
91
|
+
method: "jsonSchema",
|
|
92
|
+
slots: SCHEMA_SLOTS,
|
|
93
|
+
build: (ctx, document, bag, options) => composite({
|
|
94
|
+
code: ctx.code,
|
|
95
|
+
messageFactory: ctx.messageFactory,
|
|
96
|
+
severity: ctx.severity,
|
|
97
|
+
branches: [
|
|
98
|
+
branch(SCHEMA_BRANCH_LABEL, collectDocumentRules(ctx, document, bag, options)),
|
|
99
|
+
],
|
|
100
|
+
combine: (runners) => (value, runContext) => runners[0]?.run(value, runContext) ?? PASS,
|
|
101
|
+
describe: () => "Value does not match the JSON Schema document",
|
|
102
|
+
buildMessageContext: () => ({}),
|
|
103
|
+
}),
|
|
104
|
+
});
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type JsonSchemaBag } from "../../index";
|
|
2
|
+
/**
|
|
3
|
+
* Plugins the bundle carries that NO keyword or format binding names.
|
|
4
|
+
*
|
|
5
|
+
* Every one is driven by the converter itself (a structural expansion calls
|
|
6
|
+
* `plugin.build` directly) or is reachable only from a hand-written chain. The
|
|
7
|
+
* list is the MEASURED complement of `listBoundPluginNames()`: 31 names are
|
|
8
|
+
* bound, 45 are bundled, and these are the 14 that are left. It is written out
|
|
9
|
+
* rather than derived so that a change on EITHER side — a new binding, or a
|
|
10
|
+
* plugin leaving the bag — fails the test instead of quietly re-balancing.
|
|
11
|
+
*
|
|
12
|
+
* `required` is deliberately NOT here: keyword-map-object.ts binds it, even
|
|
13
|
+
* though declare-presence.ts builds the child-property presence rule from
|
|
14
|
+
* create-rule instead (see its header for why `.required()` is the wrong shape
|
|
15
|
+
* for Draft-07 §6.5.3).
|
|
16
|
+
*/
|
|
17
|
+
export declare const UNBOUND_BUNDLED_PLUGIN_NAMES: readonly string[];
|
|
18
|
+
/** The plugin NAMES the bag carries. Not its keys: bindings name `plugin.name`. */
|
|
19
|
+
export declare function listBundledPluginNames(bag: JsonSchemaBag): readonly string[];
|
|
20
|
+
/**
|
|
21
|
+
* A keyword or format is bound to a plugin the bundle does not ship. Non-empty
|
|
22
|
+
* means `fromJsonSchema` would reach for a missing member at build time.
|
|
23
|
+
*/
|
|
24
|
+
export declare function findUnbundledBoundPlugins(bag: JsonSchemaBag): readonly string[];
|
|
25
|
+
/**
|
|
26
|
+
* The bundle ships a plugin that no binding names AND that is not declared
|
|
27
|
+
* above as converter-driven. Non-empty means the bundle grew weight nothing
|
|
28
|
+
* asked for, or that a declared exemption is now bound and should be deleted.
|
|
29
|
+
*/
|
|
30
|
+
export declare function findUnexplainedBundledPlugins(bag: JsonSchemaBag): readonly string[];
|
|
31
|
+
/**
|
|
32
|
+
* A declared exemption that has since become bound. Stale; delete it.
|
|
33
|
+
*
|
|
34
|
+
* `declared` is a parameter so the check can be run against a list that is
|
|
35
|
+
* deliberately wrong — otherwise "it returns nothing" and "it can never return
|
|
36
|
+
* anything" look the same from a test.
|
|
37
|
+
*/
|
|
38
|
+
export declare function findStaleUnboundDeclarations(declared?: readonly string[]): readonly string[];
|