@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,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.declarePresenceRules = declarePresenceRules;
|
|
4
|
+
// ===========================================================================
|
|
5
|
+
// L8 src/json-schema/declare-presence.ts — is this property allowed to be
|
|
6
|
+
// ABSENT, and is it allowed to be NULL?
|
|
7
|
+
//
|
|
8
|
+
// Draft-07 answers with two different keywords in two different places: the
|
|
9
|
+
// PARENT's `required` array decides absence, and the child's own `type` decides
|
|
10
|
+
// null (a `type` that omits "null" forbids it; NO `type` at all forbids
|
|
11
|
+
// nothing). Luq answers with one merged PresencePolicy per field, so the two
|
|
12
|
+
// have to be resolved together — which is also why this is not the `required`
|
|
13
|
+
// KEYWORD BINDING from keyword-map-object.ts.
|
|
14
|
+
//
|
|
15
|
+
// WHY NOT `.required()` (measured, and a deliberate deviation): requiredPlugin
|
|
16
|
+
// declares `emptyStringIsMissing: true`, carried over verbatim from 1.x's
|
|
17
|
+
// form-oriented emptiness, and src/compile/resolve-presence.ts merges that flag
|
|
18
|
+
// with `.some()`, so no companion rule can switch it back off. Under
|
|
19
|
+
// `.required()` the document `{"name": ""}` therefore FAILS `required: ["name"]`,
|
|
20
|
+
// which Draft-07 §6.5.3 permits — the keyword is about the property being
|
|
21
|
+
// PRESENT, not about it being non-empty. The policy below is the same rule kind
|
|
22
|
+
// from the same factory with `emptyStringIsMissing: false`.
|
|
23
|
+
// ===========================================================================
|
|
24
|
+
const create_rule_1 = require("../plugin-kit/create-rule");
|
|
25
|
+
/**
|
|
26
|
+
* The rule is emitted even when it forbids nothing, because it carries
|
|
27
|
+
* `nullIsValue` and that is not a permission — it is the statement that null
|
|
28
|
+
* has to be JUDGED here rather than settled by presence. A subject with no
|
|
29
|
+
* presence rule carries OPEN_PRESENCE, which ends the field on null before a
|
|
30
|
+
* single check runs; under Draft-07 that is wrong, because `false`,
|
|
31
|
+
* `{"not": {}}` and an `enum` without null all forbid null while saying
|
|
32
|
+
* nothing about `type`. Null therefore goes to the checks, and `type`
|
|
33
|
+
* (declare-value-keywords.ts) is what rejects it when the document says so —
|
|
34
|
+
* one answer instead of two that have to agree.
|
|
35
|
+
*/
|
|
36
|
+
function declarePresenceRules(declaration) {
|
|
37
|
+
return Object.freeze([
|
|
38
|
+
(0, create_rule_1.presence)({
|
|
39
|
+
code: declaration.isRequired ? "required" : "type",
|
|
40
|
+
severity: declaration.severity,
|
|
41
|
+
allowUndefined: !declaration.isRequired,
|
|
42
|
+
// Unreachable for null while nullIsValue is true; `type` decides.
|
|
43
|
+
allowNull: true,
|
|
44
|
+
emptyStringIsMissing: false,
|
|
45
|
+
nullIsValue: true,
|
|
46
|
+
describe: (messageContext) => declaration.isRequired
|
|
47
|
+
? `${messageContext.path} is required`
|
|
48
|
+
: `${messageContext.path} must not be null`,
|
|
49
|
+
buildMessageContext: () => ({}),
|
|
50
|
+
}),
|
|
51
|
+
]);
|
|
52
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// ===========================================================================
|
|
2
|
+
// L8 src/json-schema/declare-presence.ts — is this property allowed to be
|
|
3
|
+
// ABSENT, and is it allowed to be NULL?
|
|
4
|
+
//
|
|
5
|
+
// Draft-07 answers with two different keywords in two different places: the
|
|
6
|
+
// PARENT's `required` array decides absence, and the child's own `type` decides
|
|
7
|
+
// null (a `type` that omits "null" forbids it; NO `type` at all forbids
|
|
8
|
+
// nothing). Luq answers with one merged PresencePolicy per field, so the two
|
|
9
|
+
// have to be resolved together — which is also why this is not the `required`
|
|
10
|
+
// KEYWORD BINDING from keyword-map-object.ts.
|
|
11
|
+
//
|
|
12
|
+
// WHY NOT `.required()` (measured, and a deliberate deviation): requiredPlugin
|
|
13
|
+
// declares `emptyStringIsMissing: true`, carried over verbatim from 1.x's
|
|
14
|
+
// form-oriented emptiness, and src/compile/resolve-presence.ts merges that flag
|
|
15
|
+
// with `.some()`, so no companion rule can switch it back off. Under
|
|
16
|
+
// `.required()` the document `{"name": ""}` therefore FAILS `required: ["name"]`,
|
|
17
|
+
// which Draft-07 §6.5.3 permits — the keyword is about the property being
|
|
18
|
+
// PRESENT, not about it being non-empty. The policy below is the same rule kind
|
|
19
|
+
// from the same factory with `emptyStringIsMissing: false`.
|
|
20
|
+
// ===========================================================================
|
|
21
|
+
import { presence } from "../plugin-kit/create-rule.mjs";
|
|
22
|
+
/**
|
|
23
|
+
* The rule is emitted even when it forbids nothing, because it carries
|
|
24
|
+
* `nullIsValue` and that is not a permission — it is the statement that null
|
|
25
|
+
* has to be JUDGED here rather than settled by presence. A subject with no
|
|
26
|
+
* presence rule carries OPEN_PRESENCE, which ends the field on null before a
|
|
27
|
+
* single check runs; under Draft-07 that is wrong, because `false`,
|
|
28
|
+
* `{"not": {}}` and an `enum` without null all forbid null while saying
|
|
29
|
+
* nothing about `type`. Null therefore goes to the checks, and `type`
|
|
30
|
+
* (declare-value-keywords.ts) is what rejects it when the document says so —
|
|
31
|
+
* one answer instead of two that have to agree.
|
|
32
|
+
*/
|
|
33
|
+
export function declarePresenceRules(declaration) {
|
|
34
|
+
return Object.freeze([
|
|
35
|
+
presence({
|
|
36
|
+
code: declaration.isRequired ? "required" : "type",
|
|
37
|
+
severity: declaration.severity,
|
|
38
|
+
allowUndefined: !declaration.isRequired,
|
|
39
|
+
// Unreachable for null while nullIsValue is true; `type` decides.
|
|
40
|
+
allowNull: true,
|
|
41
|
+
emptyStringIsMissing: false,
|
|
42
|
+
nullIsValue: true,
|
|
43
|
+
describe: (messageContext) => declaration.isRequired
|
|
44
|
+
? `${messageContext.path} is required`
|
|
45
|
+
: `${messageContext.path} must not be null`,
|
|
46
|
+
buildMessageContext: () => ({}),
|
|
47
|
+
}),
|
|
48
|
+
]);
|
|
49
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Rule } from "../plugin-kit/compiled-rule";
|
|
2
|
+
import type { Draft07SchemaObject } from "./draft07.types";
|
|
3
|
+
import type { StructuralContext } from "./structural-expansion.types";
|
|
4
|
+
/**
|
|
5
|
+
* `required` as a rule on the OBJECT, not as a presence rule on each child.
|
|
6
|
+
*
|
|
7
|
+
* The difference decides a verdict. A child's presence rule fires whenever the
|
|
8
|
+
* child reads `undefined`, which includes the case where the PARENT is absent —
|
|
9
|
+
* so `{properties:{a:{properties:{b:{}},required:["b"]}}}` would refuse `{}`,
|
|
10
|
+
* although Draft-07 applies a sub-schema only to a value that is there. Asking
|
|
11
|
+
* the object itself asks the question the draft asks, and §6.5.3 also says a
|
|
12
|
+
* NON-object is none of `required`'s business, which is why a non-object passes.
|
|
13
|
+
*
|
|
14
|
+
* The document ROOT is the exception and is handled in flatten-schema.ts: it has
|
|
15
|
+
* no declarable path to carry this rule, and it is always present anyway
|
|
16
|
+
* (src/runtime/create-validator.ts refuses a missing root before the plan runs).
|
|
17
|
+
*/
|
|
18
|
+
export declare function declareRequiredProperties(schema: Draft07SchemaObject, context: StructuralContext): readonly Rule[];
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.declareRequiredProperties = declareRequiredProperties;
|
|
4
|
+
// ===========================================================================
|
|
5
|
+
// L8 src/json-schema/declare-required-properties.ts — `required`, as a rule on
|
|
6
|
+
// the OBJECT rather than on each named child.
|
|
7
|
+
//
|
|
8
|
+
// The distinction decides verdicts, so it is worth a file of its own. See the
|
|
9
|
+
// doc comment below; the short version is that a child's presence rule cannot
|
|
10
|
+
// tell "the property is missing from an object that IS there" from "the whole
|
|
11
|
+
// object is absent", and Draft-07 applies a sub-schema only to a value that is
|
|
12
|
+
// there.
|
|
13
|
+
//
|
|
14
|
+
// This is also the reason the `required` KEYWORD BINDING in keyword-map-object.ts
|
|
15
|
+
// is not the mechanism here: `.required()` is a presence rule on ONE field, and
|
|
16
|
+
// it additionally treats "" as absent (1.x's form emptiness), which §6.5.3 does
|
|
17
|
+
// not. The binding stays as the type-checked record that `required` maps to
|
|
18
|
+
// `.required()`; the converter needs the object-level question instead.
|
|
19
|
+
// ===========================================================================
|
|
20
|
+
const create_rule_1 = require("../plugin-kit/create-rule");
|
|
21
|
+
const types_1 = require("../types");
|
|
22
|
+
const NO_RULES = Object.freeze([]);
|
|
23
|
+
/**
|
|
24
|
+
* `required` as a rule on the OBJECT, not as a presence rule on each child.
|
|
25
|
+
*
|
|
26
|
+
* The difference decides a verdict. A child's presence rule fires whenever the
|
|
27
|
+
* child reads `undefined`, which includes the case where the PARENT is absent —
|
|
28
|
+
* so `{properties:{a:{properties:{b:{}},required:["b"]}}}` would refuse `{}`,
|
|
29
|
+
* although Draft-07 applies a sub-schema only to a value that is there. Asking
|
|
30
|
+
* the object itself asks the question the draft asks, and §6.5.3 also says a
|
|
31
|
+
* NON-object is none of `required`'s business, which is why a non-object passes.
|
|
32
|
+
*
|
|
33
|
+
* The document ROOT is the exception and is handled in flatten-schema.ts: it has
|
|
34
|
+
* no declarable path to carry this rule, and it is always present anyway
|
|
35
|
+
* (src/runtime/create-validator.ts refuses a missing root before the plan runs).
|
|
36
|
+
*/
|
|
37
|
+
function declareRequiredProperties(schema, context) {
|
|
38
|
+
const required = schema.required;
|
|
39
|
+
if (required === undefined || required.length === 0)
|
|
40
|
+
return NO_RULES;
|
|
41
|
+
const missingOf = (value) => required.filter((key) => !Object.prototype.hasOwnProperty.call(value, key));
|
|
42
|
+
return Object.freeze([
|
|
43
|
+
(0, create_rule_1.check)({
|
|
44
|
+
code: "required",
|
|
45
|
+
severity: context.build.config.defaultSeverity,
|
|
46
|
+
run: (value) => {
|
|
47
|
+
if (!(0, types_1.isPlainObject)(value))
|
|
48
|
+
return types_1.PASS;
|
|
49
|
+
const missing = missingOf(value);
|
|
50
|
+
return missing.length === 0
|
|
51
|
+
? types_1.PASS
|
|
52
|
+
: (0, types_1.fail)({ expected: required, actual: missing });
|
|
53
|
+
},
|
|
54
|
+
describe: (detail) => `Missing required propert${(0, types_1.isArray)(detail.actual) && detail.actual.length === 1 ? "y" : "ies"}: ${String(detail.actual)}`,
|
|
55
|
+
buildMessageContext: () => ({}),
|
|
56
|
+
}),
|
|
57
|
+
]);
|
|
58
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// ===========================================================================
|
|
2
|
+
// L8 src/json-schema/declare-required-properties.ts — `required`, as a rule on
|
|
3
|
+
// the OBJECT rather than on each named child.
|
|
4
|
+
//
|
|
5
|
+
// The distinction decides verdicts, so it is worth a file of its own. See the
|
|
6
|
+
// doc comment below; the short version is that a child's presence rule cannot
|
|
7
|
+
// tell "the property is missing from an object that IS there" from "the whole
|
|
8
|
+
// object is absent", and Draft-07 applies a sub-schema only to a value that is
|
|
9
|
+
// there.
|
|
10
|
+
//
|
|
11
|
+
// This is also the reason the `required` KEYWORD BINDING in keyword-map-object.ts
|
|
12
|
+
// is not the mechanism here: `.required()` is a presence rule on ONE field, and
|
|
13
|
+
// it additionally treats "" as absent (1.x's form emptiness), which §6.5.3 does
|
|
14
|
+
// not. The binding stays as the type-checked record that `required` maps to
|
|
15
|
+
// `.required()`; the converter needs the object-level question instead.
|
|
16
|
+
// ===========================================================================
|
|
17
|
+
import { check } from "../plugin-kit/create-rule.mjs";
|
|
18
|
+
import { PASS, fail, isArray, isPlainObject } from "../types/index.mjs";
|
|
19
|
+
const NO_RULES = Object.freeze([]);
|
|
20
|
+
/**
|
|
21
|
+
* `required` as a rule on the OBJECT, not as a presence rule on each child.
|
|
22
|
+
*
|
|
23
|
+
* The difference decides a verdict. A child's presence rule fires whenever the
|
|
24
|
+
* child reads `undefined`, which includes the case where the PARENT is absent —
|
|
25
|
+
* so `{properties:{a:{properties:{b:{}},required:["b"]}}}` would refuse `{}`,
|
|
26
|
+
* although Draft-07 applies a sub-schema only to a value that is there. Asking
|
|
27
|
+
* the object itself asks the question the draft asks, and §6.5.3 also says a
|
|
28
|
+
* NON-object is none of `required`'s business, which is why a non-object passes.
|
|
29
|
+
*
|
|
30
|
+
* The document ROOT is the exception and is handled in flatten-schema.ts: it has
|
|
31
|
+
* no declarable path to carry this rule, and it is always present anyway
|
|
32
|
+
* (src/runtime/create-validator.ts refuses a missing root before the plan runs).
|
|
33
|
+
*/
|
|
34
|
+
export function declareRequiredProperties(schema, context) {
|
|
35
|
+
const required = schema.required;
|
|
36
|
+
if (required === undefined || required.length === 0)
|
|
37
|
+
return NO_RULES;
|
|
38
|
+
const missingOf = (value) => required.filter((key) => !Object.prototype.hasOwnProperty.call(value, key));
|
|
39
|
+
return Object.freeze([
|
|
40
|
+
check({
|
|
41
|
+
code: "required",
|
|
42
|
+
severity: context.build.config.defaultSeverity,
|
|
43
|
+
run: (value) => {
|
|
44
|
+
if (!isPlainObject(value))
|
|
45
|
+
return PASS;
|
|
46
|
+
const missing = missingOf(value);
|
|
47
|
+
return missing.length === 0
|
|
48
|
+
? PASS
|
|
49
|
+
: fail({ expected: required, actual: missing });
|
|
50
|
+
},
|
|
51
|
+
describe: (detail) => `Missing required propert${isArray(detail.actual) && detail.actual.length === 1 ? "y" : "ies"}: ${String(detail.actual)}`,
|
|
52
|
+
buildMessageContext: () => ({}),
|
|
53
|
+
}),
|
|
54
|
+
]);
|
|
55
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Rule } from "../plugin-kit/compiled-rule";
|
|
2
|
+
import type { Draft07SchemaObject } from "./draft07.types";
|
|
3
|
+
import type { StructuralContext } from "./structural-expansion.types";
|
|
4
|
+
export declare function declareStringRules(schema: Draft07SchemaObject, context: StructuralContext): readonly Rule[];
|
|
5
|
+
/**
|
|
6
|
+
* Draft-07 §7.2: an unknown format is an ANNOTATION and passes. A format the
|
|
7
|
+
* table declares out of scope is a different answer and throws — 1.x confused
|
|
8
|
+
* the two and its validator and its error generator disagreed about which.
|
|
9
|
+
*/
|
|
10
|
+
export declare function declareFormatRules(schema: Draft07SchemaObject, context: StructuralContext): readonly Rule[];
|
|
11
|
+
export declare function declareNumberRules(schema: Draft07SchemaObject, context: StructuralContext): readonly Rule[];
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.declareStringRules = declareStringRules;
|
|
4
|
+
exports.declareFormatRules = declareFormatRules;
|
|
5
|
+
exports.declareNumberRules = declareNumberRules;
|
|
6
|
+
// ===========================================================================
|
|
7
|
+
// L8 src/json-schema/declare-scalar-keywords.ts — the keywords that BIND.
|
|
8
|
+
//
|
|
9
|
+
// Every call below goes through applyKeywordBinding, so the chain method a
|
|
10
|
+
// keyword drives is checked by the compiler against the plugin that declares
|
|
11
|
+
// it. That is the whole reason step 24 exists: 1.x wrote
|
|
12
|
+
// `chain.minItems && chain.minItems(n)` and the constraint evaporated.
|
|
13
|
+
//
|
|
14
|
+
// The slot chains are built and driven here, but a slot is NOT a filter: every
|
|
15
|
+
// bound plugin in the bag passes a wrong-typed value on purpose (see
|
|
16
|
+
// string-min.ts: "a wrong-typed value PASSES"), which is exactly Draft-07 §6 —
|
|
17
|
+
// `minLength` says nothing about a number. So the converter applies the string
|
|
18
|
+
// keywords AND the number keywords whenever they appear, without first deciding
|
|
19
|
+
// what the value will be, and `type` (declare-value-keywords.ts) is the only rule
|
|
20
|
+
// that judges the type. That is also what makes `type: ["string","number"]`
|
|
21
|
+
// with a `minLength` correct rather than approximated.
|
|
22
|
+
// ===========================================================================
|
|
23
|
+
const create_chain_node_1 = require("../chain/create-chain-node");
|
|
24
|
+
const create_field_slots_1 = require("../chain/create-field-slots");
|
|
25
|
+
const apply_keyword_binding_1 = require("./apply-keyword-binding");
|
|
26
|
+
const format_map_1 = require("./format-map");
|
|
27
|
+
const keyword_map_number_1 = require("./keyword-map-number");
|
|
28
|
+
const keyword_map_string_1 = require("./keyword-map-string");
|
|
29
|
+
const unsupported_keyword_error_1 = require("./unsupported-keyword-error");
|
|
30
|
+
const NO_RULES = Object.freeze([]);
|
|
31
|
+
/** Total over the plugin's own union, so a new encoding breaks THIS line. */
|
|
32
|
+
const CONTENT_ENCODING_NAMES = {
|
|
33
|
+
base64: true,
|
|
34
|
+
base32: true,
|
|
35
|
+
binary: true,
|
|
36
|
+
"7bit": true,
|
|
37
|
+
"8bit": true,
|
|
38
|
+
"quoted-printable": true,
|
|
39
|
+
};
|
|
40
|
+
function isContentEncodingName(name) {
|
|
41
|
+
return Object.prototype.hasOwnProperty.call(CONTENT_ENCODING_NAMES, name);
|
|
42
|
+
}
|
|
43
|
+
function readRules(chain) {
|
|
44
|
+
return (0, create_chain_node_1.readChainRules)(chain) ?? NO_RULES;
|
|
45
|
+
}
|
|
46
|
+
function emptyStringChain(bag, context) {
|
|
47
|
+
return (0, create_field_slots_1.createFieldSlots)(bag, context.build)
|
|
48
|
+
.string;
|
|
49
|
+
}
|
|
50
|
+
function declareStringRules(schema, context) {
|
|
51
|
+
let chain = emptyStringChain(context.bag, context);
|
|
52
|
+
if (schema.minLength !== undefined) {
|
|
53
|
+
chain = (0, apply_keyword_binding_1.applyKeywordBinding)(chain, keyword_map_string_1.minLengthBinding, schema.minLength);
|
|
54
|
+
}
|
|
55
|
+
if (schema.maxLength !== undefined) {
|
|
56
|
+
chain = (0, apply_keyword_binding_1.applyKeywordBinding)(chain, keyword_map_string_1.maxLengthBinding, schema.maxLength);
|
|
57
|
+
}
|
|
58
|
+
if (schema.pattern !== undefined) {
|
|
59
|
+
chain = (0, apply_keyword_binding_1.applyKeywordBinding)(chain, keyword_map_string_1.patternBinding, schema.pattern);
|
|
60
|
+
}
|
|
61
|
+
if (schema.contentMediaType !== undefined) {
|
|
62
|
+
chain = (0, apply_keyword_binding_1.applyKeywordBinding)(chain, keyword_map_string_1.contentMediaTypeBinding, schema.contentMediaType);
|
|
63
|
+
}
|
|
64
|
+
const encoding = schema.contentEncoding;
|
|
65
|
+
if (encoding !== undefined) {
|
|
66
|
+
if (!isContentEncodingName(encoding)) {
|
|
67
|
+
throw new unsupported_keyword_error_1.UnsupportedKeywordError("contentEncoding", `"${encoding}" is not one of the encodings stringContentEncoding ` +
|
|
68
|
+
"recognises; 1.x accepted every unknown name and validated nothing");
|
|
69
|
+
}
|
|
70
|
+
chain = (0, apply_keyword_binding_1.applyKeywordBinding)(chain, keyword_map_string_1.contentEncodingBinding, encoding);
|
|
71
|
+
}
|
|
72
|
+
return readRules(chain);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Draft-07 §7.2: an unknown format is an ANNOTATION and passes. A format the
|
|
76
|
+
* table declares out of scope is a different answer and throws — 1.x confused
|
|
77
|
+
* the two and its validator and its error generator disagreed about which.
|
|
78
|
+
*/
|
|
79
|
+
function declareFormatRules(schema, context) {
|
|
80
|
+
const format = schema.format;
|
|
81
|
+
if (format === undefined)
|
|
82
|
+
return NO_RULES;
|
|
83
|
+
const handling = (0, format_map_1.findFormatHandling)(format);
|
|
84
|
+
if (handling === undefined)
|
|
85
|
+
return NO_RULES;
|
|
86
|
+
if (handling.handling === "unsupported") {
|
|
87
|
+
throw new unsupported_keyword_error_1.UnsupportedKeywordError(`format: ${format}`, handling.reason);
|
|
88
|
+
}
|
|
89
|
+
const chain = emptyStringChain(context.bag, context);
|
|
90
|
+
return readRules((0, apply_keyword_binding_1.applyKeywordBinding)(chain, handling, "format"));
|
|
91
|
+
}
|
|
92
|
+
function declareNumberRules(schema, context) {
|
|
93
|
+
let chain = (0, create_field_slots_1.createFieldSlots)(context.bag, context.build).number;
|
|
94
|
+
if (schema.minimum !== undefined) {
|
|
95
|
+
chain = (0, apply_keyword_binding_1.applyKeywordBinding)(chain, keyword_map_number_1.minimumBinding, schema.minimum);
|
|
96
|
+
}
|
|
97
|
+
if (schema.maximum !== undefined) {
|
|
98
|
+
chain = (0, apply_keyword_binding_1.applyKeywordBinding)(chain, keyword_map_number_1.maximumBinding, schema.maximum);
|
|
99
|
+
}
|
|
100
|
+
if (schema.exclusiveMinimum !== undefined) {
|
|
101
|
+
chain = (0, apply_keyword_binding_1.applyKeywordBinding)(chain, keyword_map_number_1.exclusiveMinimumBinding, schema.exclusiveMinimum);
|
|
102
|
+
}
|
|
103
|
+
if (schema.exclusiveMaximum !== undefined) {
|
|
104
|
+
chain = (0, apply_keyword_binding_1.applyKeywordBinding)(chain, keyword_map_number_1.exclusiveMaximumBinding, schema.exclusiveMaximum);
|
|
105
|
+
}
|
|
106
|
+
if (schema.multipleOf !== undefined) {
|
|
107
|
+
chain = (0, apply_keyword_binding_1.applyKeywordBinding)(chain, keyword_map_number_1.multipleOfBinding, schema.multipleOf);
|
|
108
|
+
}
|
|
109
|
+
return readRules(chain);
|
|
110
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// ===========================================================================
|
|
2
|
+
// L8 src/json-schema/declare-scalar-keywords.ts — the keywords that BIND.
|
|
3
|
+
//
|
|
4
|
+
// Every call below goes through applyKeywordBinding, so the chain method a
|
|
5
|
+
// keyword drives is checked by the compiler against the plugin that declares
|
|
6
|
+
// it. That is the whole reason step 24 exists: 1.x wrote
|
|
7
|
+
// `chain.minItems && chain.minItems(n)` and the constraint evaporated.
|
|
8
|
+
//
|
|
9
|
+
// The slot chains are built and driven here, but a slot is NOT a filter: every
|
|
10
|
+
// bound plugin in the bag passes a wrong-typed value on purpose (see
|
|
11
|
+
// string-min.ts: "a wrong-typed value PASSES"), which is exactly Draft-07 §6 —
|
|
12
|
+
// `minLength` says nothing about a number. So the converter applies the string
|
|
13
|
+
// keywords AND the number keywords whenever they appear, without first deciding
|
|
14
|
+
// what the value will be, and `type` (declare-value-keywords.ts) is the only rule
|
|
15
|
+
// that judges the type. That is also what makes `type: ["string","number"]`
|
|
16
|
+
// with a `minLength` correct rather than approximated.
|
|
17
|
+
// ===========================================================================
|
|
18
|
+
import { readChainRules } from "../chain/create-chain-node.mjs";
|
|
19
|
+
import { createFieldSlots } from "../chain/create-field-slots.mjs";
|
|
20
|
+
import { applyKeywordBinding } from "./apply-keyword-binding.mjs";
|
|
21
|
+
import { findFormatHandling } from "./format-map.mjs";
|
|
22
|
+
import { exclusiveMaximumBinding, exclusiveMinimumBinding, maximumBinding, minimumBinding, multipleOfBinding, } from "./keyword-map-number.mjs";
|
|
23
|
+
import { contentEncodingBinding, contentMediaTypeBinding, maxLengthBinding, minLengthBinding, patternBinding, } from "./keyword-map-string.mjs";
|
|
24
|
+
import { UnsupportedKeywordError } from "./unsupported-keyword-error.mjs";
|
|
25
|
+
const NO_RULES = Object.freeze([]);
|
|
26
|
+
/** Total over the plugin's own union, so a new encoding breaks THIS line. */
|
|
27
|
+
const CONTENT_ENCODING_NAMES = {
|
|
28
|
+
base64: true,
|
|
29
|
+
base32: true,
|
|
30
|
+
binary: true,
|
|
31
|
+
"7bit": true,
|
|
32
|
+
"8bit": true,
|
|
33
|
+
"quoted-printable": true,
|
|
34
|
+
};
|
|
35
|
+
function isContentEncodingName(name) {
|
|
36
|
+
return Object.prototype.hasOwnProperty.call(CONTENT_ENCODING_NAMES, name);
|
|
37
|
+
}
|
|
38
|
+
function readRules(chain) {
|
|
39
|
+
return readChainRules(chain) ?? NO_RULES;
|
|
40
|
+
}
|
|
41
|
+
function emptyStringChain(bag, context) {
|
|
42
|
+
return createFieldSlots(bag, context.build)
|
|
43
|
+
.string;
|
|
44
|
+
}
|
|
45
|
+
export function declareStringRules(schema, context) {
|
|
46
|
+
let chain = emptyStringChain(context.bag, context);
|
|
47
|
+
if (schema.minLength !== undefined) {
|
|
48
|
+
chain = applyKeywordBinding(chain, minLengthBinding, schema.minLength);
|
|
49
|
+
}
|
|
50
|
+
if (schema.maxLength !== undefined) {
|
|
51
|
+
chain = applyKeywordBinding(chain, maxLengthBinding, schema.maxLength);
|
|
52
|
+
}
|
|
53
|
+
if (schema.pattern !== undefined) {
|
|
54
|
+
chain = applyKeywordBinding(chain, patternBinding, schema.pattern);
|
|
55
|
+
}
|
|
56
|
+
if (schema.contentMediaType !== undefined) {
|
|
57
|
+
chain = applyKeywordBinding(chain, contentMediaTypeBinding, schema.contentMediaType);
|
|
58
|
+
}
|
|
59
|
+
const encoding = schema.contentEncoding;
|
|
60
|
+
if (encoding !== undefined) {
|
|
61
|
+
if (!isContentEncodingName(encoding)) {
|
|
62
|
+
throw new UnsupportedKeywordError("contentEncoding", `"${encoding}" is not one of the encodings stringContentEncoding ` +
|
|
63
|
+
"recognises; 1.x accepted every unknown name and validated nothing");
|
|
64
|
+
}
|
|
65
|
+
chain = applyKeywordBinding(chain, contentEncodingBinding, encoding);
|
|
66
|
+
}
|
|
67
|
+
return readRules(chain);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Draft-07 §7.2: an unknown format is an ANNOTATION and passes. A format the
|
|
71
|
+
* table declares out of scope is a different answer and throws — 1.x confused
|
|
72
|
+
* the two and its validator and its error generator disagreed about which.
|
|
73
|
+
*/
|
|
74
|
+
export function declareFormatRules(schema, context) {
|
|
75
|
+
const format = schema.format;
|
|
76
|
+
if (format === undefined)
|
|
77
|
+
return NO_RULES;
|
|
78
|
+
const handling = findFormatHandling(format);
|
|
79
|
+
if (handling === undefined)
|
|
80
|
+
return NO_RULES;
|
|
81
|
+
if (handling.handling === "unsupported") {
|
|
82
|
+
throw new UnsupportedKeywordError(`format: ${format}`, handling.reason);
|
|
83
|
+
}
|
|
84
|
+
const chain = emptyStringChain(context.bag, context);
|
|
85
|
+
return readRules(applyKeywordBinding(chain, handling, "format"));
|
|
86
|
+
}
|
|
87
|
+
export function declareNumberRules(schema, context) {
|
|
88
|
+
let chain = createFieldSlots(context.bag, context.build).number;
|
|
89
|
+
if (schema.minimum !== undefined) {
|
|
90
|
+
chain = applyKeywordBinding(chain, minimumBinding, schema.minimum);
|
|
91
|
+
}
|
|
92
|
+
if (schema.maximum !== undefined) {
|
|
93
|
+
chain = applyKeywordBinding(chain, maximumBinding, schema.maximum);
|
|
94
|
+
}
|
|
95
|
+
if (schema.exclusiveMinimum !== undefined) {
|
|
96
|
+
chain = applyKeywordBinding(chain, exclusiveMinimumBinding, schema.exclusiveMinimum);
|
|
97
|
+
}
|
|
98
|
+
if (schema.exclusiveMaximum !== undefined) {
|
|
99
|
+
chain = applyKeywordBinding(chain, exclusiveMaximumBinding, schema.exclusiveMaximum);
|
|
100
|
+
}
|
|
101
|
+
if (schema.multipleOf !== undefined) {
|
|
102
|
+
chain = applyKeywordBinding(chain, multipleOfBinding, schema.multipleOf);
|
|
103
|
+
}
|
|
104
|
+
return readRules(chain);
|
|
105
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Rule } from "../plugin-kit/compiled-rule";
|
|
2
|
+
import type { Draft07SchemaObject, Draft07TypeKeyword } from "./draft07.types";
|
|
3
|
+
import type { StructuralContext } from "./structural-expansion.types";
|
|
4
|
+
/** The declared names, always as a list, with unknown names rejected loudly. */
|
|
5
|
+
export declare function readDeclaredTypes(schema: Draft07SchemaObject): readonly Draft07TypeKeyword[];
|
|
6
|
+
/** True when the document permits an explicit null at this position. */
|
|
7
|
+
export declare function permitsNull(schema: Draft07SchemaObject): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* One check for the whole list: `type: ["string","number"]` is a union, and
|
|
10
|
+
* running one rule per member would report a failure per member for a value
|
|
11
|
+
* that fails all of them.
|
|
12
|
+
*/
|
|
13
|
+
export declare function declareTypeRules(schema: Draft07SchemaObject, context: StructuralContext): readonly Rule[];
|
|
14
|
+
/** `type: "integer"` is the only `type` member that adds a chain method. */
|
|
15
|
+
export declare function declareIntegerRules(schema: Draft07SchemaObject, context: StructuralContext): readonly Rule[];
|
|
16
|
+
export declare function declareConstRules(schema: Draft07SchemaObject, context: StructuralContext): readonly Rule[];
|
|
17
|
+
/**
|
|
18
|
+
* `enum` drives the `.oneOf()` METHOD, which is a different thing from the
|
|
19
|
+
* `oneOf` KEYWORD. The list is typed against the FIELD (readonly SelfValue[]),
|
|
20
|
+
* so it carries a marker and can never be a keyword binding; the converter
|
|
21
|
+
* resolves the list and calls the plugin itself, exactly as the table says.
|
|
22
|
+
*/
|
|
23
|
+
export declare function declareEnumRules(schema: Draft07SchemaObject, context: StructuralContext): readonly Rule[];
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.readDeclaredTypes = readDeclaredTypes;
|
|
4
|
+
exports.permitsNull = permitsNull;
|
|
5
|
+
exports.declareTypeRules = declareTypeRules;
|
|
6
|
+
exports.declareIntegerRules = declareIntegerRules;
|
|
7
|
+
exports.declareConstRules = declareConstRules;
|
|
8
|
+
exports.declareEnumRules = declareEnumRules;
|
|
9
|
+
// ===========================================================================
|
|
10
|
+
// L8 src/json-schema/declare-value-keywords.ts — the keywords
|
|
11
|
+
// that judge the VALUE ITSELF: `type`, `enum` and `const`.
|
|
12
|
+
//
|
|
13
|
+
// The keyword table calls `type` structural because it "chooses the slot".
|
|
14
|
+
// Choosing a slot is a TYPE-LEVEL act and asserts nothing at run time, so a
|
|
15
|
+
// converter that only chose a slot would accept `42` for `{"type":"string"}` —
|
|
16
|
+
// which is precisely what 1.x did (docs/legacy-spec/json-schema-mapping.md).
|
|
17
|
+
// The slot choice is still made, in declare-scalar-keywords; the RULE is made
|
|
18
|
+
// here, from create-rule, because no plugin in JsonSchemaBag asserts a
|
|
19
|
+
// primitive type (`object` is the only type plugin in the catalogue and it is
|
|
20
|
+
// not in the bag).
|
|
21
|
+
//
|
|
22
|
+
// `null` never reaches a check — src/runtime/decide-presence.ts settles absence
|
|
23
|
+
// first — so `type: "null"` reads as "every value that got this far is wrong",
|
|
24
|
+
// which is exactly right: the only null-shaped value was already accepted by
|
|
25
|
+
// the nullable presence rule this module's neighbour declares.
|
|
26
|
+
// ===========================================================================
|
|
27
|
+
const create_chain_node_1 = require("../chain/create-chain-node");
|
|
28
|
+
const create_field_slots_1 = require("../chain/create-field-slots");
|
|
29
|
+
const create_rule_1 = require("../plugin-kit/create-rule");
|
|
30
|
+
const types_1 = require("../types");
|
|
31
|
+
const apply_keyword_binding_1 = require("./apply-keyword-binding");
|
|
32
|
+
const keyword_map_core_1 = require("./keyword-map-core");
|
|
33
|
+
const NO_RULES = Object.freeze([]);
|
|
34
|
+
/** Every Draft-07 `type` name, so an unknown one is a build-time refusal. */
|
|
35
|
+
const JSON_TYPE_TESTS = {
|
|
36
|
+
string: types_1.isString,
|
|
37
|
+
number: (value) => typeof value === "number",
|
|
38
|
+
integer: (value) => typeof value === "number" && Number.isInteger(value),
|
|
39
|
+
boolean: (value) => typeof value === "boolean",
|
|
40
|
+
array: types_1.isArray,
|
|
41
|
+
object: types_1.isPlainObject,
|
|
42
|
+
null: (value) => value === null,
|
|
43
|
+
};
|
|
44
|
+
function isTypeKeyword(name) {
|
|
45
|
+
return Object.prototype.hasOwnProperty.call(JSON_TYPE_TESTS, name);
|
|
46
|
+
}
|
|
47
|
+
/** The declared names, always as a list, with unknown names rejected loudly. */
|
|
48
|
+
function readDeclaredTypes(schema) {
|
|
49
|
+
const declared = schema.type;
|
|
50
|
+
if (declared === undefined)
|
|
51
|
+
return Object.freeze([]);
|
|
52
|
+
const names = (0, types_1.isArray)(declared) ? declared : [declared];
|
|
53
|
+
return Object.freeze(names.filter((name) => isTypeKeyword(name)));
|
|
54
|
+
}
|
|
55
|
+
/** True when the document permits an explicit null at this position. */
|
|
56
|
+
function permitsNull(schema) {
|
|
57
|
+
const declared = readDeclaredTypes(schema);
|
|
58
|
+
return declared.length === 0 || declared.includes("null");
|
|
59
|
+
}
|
|
60
|
+
function describeActual(value) {
|
|
61
|
+
if (value === null)
|
|
62
|
+
return "null";
|
|
63
|
+
if ((0, types_1.isArray)(value))
|
|
64
|
+
return "array";
|
|
65
|
+
return typeof value;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* One check for the whole list: `type: ["string","number"]` is a union, and
|
|
69
|
+
* running one rule per member would report a failure per member for a value
|
|
70
|
+
* that fails all of them.
|
|
71
|
+
*/
|
|
72
|
+
function declareTypeRules(schema, context) {
|
|
73
|
+
const declared = readDeclaredTypes(schema);
|
|
74
|
+
if (declared.length === 0)
|
|
75
|
+
return NO_RULES;
|
|
76
|
+
const tests = declared.map((name) => JSON_TYPE_TESTS[name]);
|
|
77
|
+
const rendered = declared.join(" or ");
|
|
78
|
+
return Object.freeze([
|
|
79
|
+
(0, create_rule_1.check)({
|
|
80
|
+
code: "type",
|
|
81
|
+
severity: context.build.config.defaultSeverity,
|
|
82
|
+
run: (value) => tests.some((test) => test(value))
|
|
83
|
+
? types_1.PASS
|
|
84
|
+
: (0, types_1.fail)({ expected: rendered, actual: describeActual(value) }),
|
|
85
|
+
describe: (detail) => `Value must be of type ${rendered}, but got ${String(detail.actual)}`,
|
|
86
|
+
buildMessageContext: () => ({}),
|
|
87
|
+
}),
|
|
88
|
+
]);
|
|
89
|
+
}
|
|
90
|
+
/** `type: "integer"` is the only `type` member that adds a chain method. */
|
|
91
|
+
function declareIntegerRules(schema, context) {
|
|
92
|
+
if (!readDeclaredTypes(schema).includes("integer"))
|
|
93
|
+
return NO_RULES;
|
|
94
|
+
const plugin = context.bag.numberInteger;
|
|
95
|
+
return Object.freeze([
|
|
96
|
+
plugin.build(context.ruleContextFor(plugin.name, "type")),
|
|
97
|
+
]);
|
|
98
|
+
}
|
|
99
|
+
function declareConstRules(schema, context) {
|
|
100
|
+
if (!Object.prototype.hasOwnProperty.call(schema, "const"))
|
|
101
|
+
return NO_RULES;
|
|
102
|
+
const chain = (0, create_field_slots_1.createFieldSlots)(context.bag, context.build).any;
|
|
103
|
+
const applied = (0, apply_keyword_binding_1.applyKeywordBinding)(chain, keyword_map_core_1.constBinding, schema.const);
|
|
104
|
+
return (0, create_chain_node_1.readChainRules)(applied) ?? NO_RULES;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* `enum` drives the `.oneOf()` METHOD, which is a different thing from the
|
|
108
|
+
* `oneOf` KEYWORD. The list is typed against the FIELD (readonly SelfValue[]),
|
|
109
|
+
* so it carries a marker and can never be a keyword binding; the converter
|
|
110
|
+
* resolves the list and calls the plugin itself, exactly as the table says.
|
|
111
|
+
*/
|
|
112
|
+
function declareEnumRules(schema, context) {
|
|
113
|
+
const allowed = schema.enum;
|
|
114
|
+
if (allowed === undefined || allowed.length === 0)
|
|
115
|
+
return NO_RULES;
|
|
116
|
+
const plugin = context.bag.oneOf;
|
|
117
|
+
return Object.freeze([
|
|
118
|
+
plugin.build(context.ruleContextFor(plugin.name, "enum"), allowed),
|
|
119
|
+
]);
|
|
120
|
+
}
|