@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,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ROOT_PATH = void 0;
|
|
4
|
+
exports.indexDeclaredChildKeys = indexDeclaredChildKeys;
|
|
5
|
+
// ===========================================================================
|
|
6
|
+
// L4 src/compile/declared-child-keys.ts
|
|
7
|
+
// Fills RuleBuildContext.declaredSiblingKeys.
|
|
8
|
+
//
|
|
9
|
+
// The index is derived from the declared PATH STRINGS and from nothing else:
|
|
10
|
+
// no value is inspected, no plugin is consulted, and no plugin is known by
|
|
11
|
+
// name. objectAdditionalProperties defaults to this list, and an explicit
|
|
12
|
+
// `allowedProperties` argument wins over it.
|
|
13
|
+
//
|
|
14
|
+
// Every array is FROZEN. `readonly` is erased at run time, and an unfrozen
|
|
15
|
+
// shared array was in fact mutated by a plugin's build() in the proof, which
|
|
16
|
+
// silently changed what a LATER field considered a declared key.
|
|
17
|
+
// ===========================================================================
|
|
18
|
+
const parse_field_path_1 = require("../path/parse-field-path");
|
|
19
|
+
/** The parent path of a top-level declaration. Not a legal declared path. */
|
|
20
|
+
exports.ROOT_PATH = "";
|
|
21
|
+
const NO_KEYS = Object.freeze([]);
|
|
22
|
+
/**
|
|
23
|
+
* Every path is parsed by the ONE parser, so a malformed declaration is
|
|
24
|
+
* rejected here at build time rather than producing an empty key list that a
|
|
25
|
+
* plugin would then read as "this object declares nothing".
|
|
26
|
+
*
|
|
27
|
+
* Ancestors count. `user.profile.name` alone declares `profile` under `user`
|
|
28
|
+
* and `name` under `user.profile`, because both facts are visible in the
|
|
29
|
+
* string. A wildcard contributes no key: the members of `items[*]` have an
|
|
30
|
+
* index, not a name, which is exactly what leafKeyOf's null means.
|
|
31
|
+
*/
|
|
32
|
+
function indexDeclaredChildKeys(paths) {
|
|
33
|
+
const keysByParent = new Map();
|
|
34
|
+
for (const path of paths)
|
|
35
|
+
recordDeclaredPath(path, keysByParent);
|
|
36
|
+
const frozen = new Map();
|
|
37
|
+
for (const [parentPath, keys] of keysByParent) {
|
|
38
|
+
frozen.set(parentPath, Object.freeze(keys.slice()));
|
|
39
|
+
}
|
|
40
|
+
return (parentPath) => frozen.get(parentPath) ?? NO_KEYS;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* ROOT_PATH is the SUBJECT itself, not a child of anything, so it contributes
|
|
44
|
+
* no key — and it must not reach the parser, which refuses the empty string.
|
|
45
|
+
* Asking `childKeysOf(ROOT_PATH)` still answers the top-level declared keys,
|
|
46
|
+
* which is what a root-level `additionalProperties: false` needs.
|
|
47
|
+
*/
|
|
48
|
+
function recordDeclaredPath(path, into) {
|
|
49
|
+
if (path === exports.ROOT_PATH)
|
|
50
|
+
return;
|
|
51
|
+
let prefix = exports.ROOT_PATH;
|
|
52
|
+
for (const segment of (0, parse_field_path_1.parseFieldPath)(path)) {
|
|
53
|
+
if (segment.kind === "each") {
|
|
54
|
+
prefix += "[*]";
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
appendChildKey(into, prefix, segment.key);
|
|
58
|
+
prefix = prefix === exports.ROOT_PATH ? segment.key : `${prefix}.${segment.key}`;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/** First declaration wins on order; a repeated key is recorded once. */
|
|
62
|
+
function appendChildKey(into, parentPath, key) {
|
|
63
|
+
const declared = into.get(parentPath);
|
|
64
|
+
if (declared === undefined) {
|
|
65
|
+
into.set(parentPath, [key]);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
if (!declared.includes(key))
|
|
69
|
+
declared.push(key);
|
|
70
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// ===========================================================================
|
|
2
|
+
// L4 src/compile/declared-child-keys.ts
|
|
3
|
+
// Fills RuleBuildContext.declaredSiblingKeys.
|
|
4
|
+
//
|
|
5
|
+
// The index is derived from the declared PATH STRINGS and from nothing else:
|
|
6
|
+
// no value is inspected, no plugin is consulted, and no plugin is known by
|
|
7
|
+
// name. objectAdditionalProperties defaults to this list, and an explicit
|
|
8
|
+
// `allowedProperties` argument wins over it.
|
|
9
|
+
//
|
|
10
|
+
// Every array is FROZEN. `readonly` is erased at run time, and an unfrozen
|
|
11
|
+
// shared array was in fact mutated by a plugin's build() in the proof, which
|
|
12
|
+
// silently changed what a LATER field considered a declared key.
|
|
13
|
+
// ===========================================================================
|
|
14
|
+
import { parseFieldPath } from "../path/parse-field-path.mjs";
|
|
15
|
+
/** The parent path of a top-level declaration. Not a legal declared path. */
|
|
16
|
+
export const ROOT_PATH = "";
|
|
17
|
+
const NO_KEYS = Object.freeze([]);
|
|
18
|
+
/**
|
|
19
|
+
* Every path is parsed by the ONE parser, so a malformed declaration is
|
|
20
|
+
* rejected here at build time rather than producing an empty key list that a
|
|
21
|
+
* plugin would then read as "this object declares nothing".
|
|
22
|
+
*
|
|
23
|
+
* Ancestors count. `user.profile.name` alone declares `profile` under `user`
|
|
24
|
+
* and `name` under `user.profile`, because both facts are visible in the
|
|
25
|
+
* string. A wildcard contributes no key: the members of `items[*]` have an
|
|
26
|
+
* index, not a name, which is exactly what leafKeyOf's null means.
|
|
27
|
+
*/
|
|
28
|
+
export function indexDeclaredChildKeys(paths) {
|
|
29
|
+
const keysByParent = new Map();
|
|
30
|
+
for (const path of paths)
|
|
31
|
+
recordDeclaredPath(path, keysByParent);
|
|
32
|
+
const frozen = new Map();
|
|
33
|
+
for (const [parentPath, keys] of keysByParent) {
|
|
34
|
+
frozen.set(parentPath, Object.freeze(keys.slice()));
|
|
35
|
+
}
|
|
36
|
+
return (parentPath) => frozen.get(parentPath) ?? NO_KEYS;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* ROOT_PATH is the SUBJECT itself, not a child of anything, so it contributes
|
|
40
|
+
* no key — and it must not reach the parser, which refuses the empty string.
|
|
41
|
+
* Asking `childKeysOf(ROOT_PATH)` still answers the top-level declared keys,
|
|
42
|
+
* which is what a root-level `additionalProperties: false` needs.
|
|
43
|
+
*/
|
|
44
|
+
function recordDeclaredPath(path, into) {
|
|
45
|
+
if (path === ROOT_PATH)
|
|
46
|
+
return;
|
|
47
|
+
let prefix = ROOT_PATH;
|
|
48
|
+
for (const segment of parseFieldPath(path)) {
|
|
49
|
+
if (segment.kind === "each") {
|
|
50
|
+
prefix += "[*]";
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
appendChildKey(into, prefix, segment.key);
|
|
54
|
+
prefix = prefix === ROOT_PATH ? segment.key : `${prefix}.${segment.key}`;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/** First declaration wins on order; a repeated key is recorded once. */
|
|
58
|
+
function appendChildKey(into, parentPath, key) {
|
|
59
|
+
const declared = into.get(parentPath);
|
|
60
|
+
if (declared === undefined) {
|
|
61
|
+
into.set(parentPath, [key]);
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
if (!declared.includes(key))
|
|
65
|
+
declared.push(key);
|
|
66
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { PathSegment } from "../path/path-segment.types";
|
|
2
|
+
import type { Rule } from "../plugin-kit/compiled-rule";
|
|
3
|
+
/**
|
|
4
|
+
* One declaration whose template is RELATIVE to the subject being compiled:
|
|
5
|
+
* the root for a top-level field, one array element inside an array node, the
|
|
6
|
+
* branch subject inside a composite.
|
|
7
|
+
*
|
|
8
|
+
* `fieldPath` is the path the user actually declared and is carried only so a
|
|
9
|
+
* build-time failure can name it. It is never re-parsed.
|
|
10
|
+
*/
|
|
11
|
+
export interface RelativeDeclaration {
|
|
12
|
+
readonly template: readonly PathSegment[];
|
|
13
|
+
readonly rules: readonly Rule[];
|
|
14
|
+
readonly fieldPath: string;
|
|
15
|
+
readonly defaultOf: ((root: unknown) => unknown) | null;
|
|
16
|
+
readonly applyDefaultToNull: boolean;
|
|
17
|
+
}
|
|
18
|
+
/** Every declaration that reaches through the same array, plus that array. */
|
|
19
|
+
export interface ArrayFieldGroup {
|
|
20
|
+
/** The array's own template, relative to the enclosing subject. Empty when
|
|
21
|
+
* the subject IS the array, which is how `matrix[*][*]` reaches two levels. */
|
|
22
|
+
readonly template: readonly PathSegment[];
|
|
23
|
+
/** Templates relative to ONE ELEMENT. May still contain wildcards. */
|
|
24
|
+
readonly members: readonly RelativeDeclaration[];
|
|
25
|
+
}
|
|
26
|
+
export interface GroupedFields {
|
|
27
|
+
/** Declarations with no wildcard left: these compile to CompiledFields. */
|
|
28
|
+
readonly direct: readonly RelativeDeclaration[];
|
|
29
|
+
/** In first-declaration order, so the plan does not depend on Map internals. */
|
|
30
|
+
readonly arrays: readonly ArrayFieldGroup[];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The array a declaration reaches through is its prefix up to the first `[*]`,
|
|
34
|
+
* and the element template is everything after it. Two declarations belong to
|
|
35
|
+
* the same array exactly when those prefixes render identically — which is why
|
|
36
|
+
* the key is built by the ONE formatter and never by string surgery on the
|
|
37
|
+
* declared path.
|
|
38
|
+
*/
|
|
39
|
+
export declare function groupArrayFields(declarations: readonly RelativeDeclaration[]): GroupedFields;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.groupArrayFields = groupArrayFields;
|
|
4
|
+
const parse_field_path_1 = require("../path/parse-field-path");
|
|
5
|
+
const NO_GROUPS = Object.freeze([]);
|
|
6
|
+
/** -1 when the template addresses a single value. */
|
|
7
|
+
function findFirstWildcard(template) {
|
|
8
|
+
return template.findIndex((segment) => segment.kind === "each");
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The array a declaration reaches through is its prefix up to the first `[*]`,
|
|
12
|
+
* and the element template is everything after it. Two declarations belong to
|
|
13
|
+
* the same array exactly when those prefixes render identically — which is why
|
|
14
|
+
* the key is built by the ONE formatter and never by string surgery on the
|
|
15
|
+
* declared path.
|
|
16
|
+
*/
|
|
17
|
+
function groupArrayFields(declarations) {
|
|
18
|
+
const direct = [];
|
|
19
|
+
const drafts = new Map();
|
|
20
|
+
const groupOrder = [];
|
|
21
|
+
for (const declaration of declarations) {
|
|
22
|
+
const wildcardAt = findFirstWildcard(declaration.template);
|
|
23
|
+
if (wildcardAt < 0) {
|
|
24
|
+
direct.push(declaration);
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
const template = Object.freeze(declaration.template.slice(0, wildcardAt));
|
|
28
|
+
const key = (0, parse_field_path_1.formatFieldPath)(template);
|
|
29
|
+
const draft = drafts.get(key);
|
|
30
|
+
if (draft === undefined) {
|
|
31
|
+
drafts.set(key, {
|
|
32
|
+
template,
|
|
33
|
+
members: [toElementMember(declaration, wildcardAt)],
|
|
34
|
+
});
|
|
35
|
+
groupOrder.push(key);
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
draft.members.push(toElementMember(declaration, wildcardAt));
|
|
39
|
+
}
|
|
40
|
+
return Object.freeze({
|
|
41
|
+
direct: Object.freeze(direct),
|
|
42
|
+
arrays: freezeGroups(groupOrder, drafts),
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/** The same declaration, re-based on one element of the array it named. */
|
|
46
|
+
function toElementMember(declaration, wildcardAt) {
|
|
47
|
+
return Object.freeze({
|
|
48
|
+
...declaration,
|
|
49
|
+
template: Object.freeze(declaration.template.slice(wildcardAt + 1)),
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
function freezeGroups(groupOrder, drafts) {
|
|
53
|
+
if (groupOrder.length === 0)
|
|
54
|
+
return NO_GROUPS;
|
|
55
|
+
const groups = [];
|
|
56
|
+
for (const key of groupOrder) {
|
|
57
|
+
const draft = drafts.get(key);
|
|
58
|
+
if (draft === undefined)
|
|
59
|
+
continue;
|
|
60
|
+
groups.push(Object.freeze({
|
|
61
|
+
template: draft.template,
|
|
62
|
+
members: Object.freeze(draft.members.slice()),
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
return Object.freeze(groups);
|
|
66
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { formatFieldPath } from "../path/parse-field-path.mjs";
|
|
2
|
+
const NO_GROUPS = Object.freeze([]);
|
|
3
|
+
/** -1 when the template addresses a single value. */
|
|
4
|
+
function findFirstWildcard(template) {
|
|
5
|
+
return template.findIndex((segment) => segment.kind === "each");
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* The array a declaration reaches through is its prefix up to the first `[*]`,
|
|
9
|
+
* and the element template is everything after it. Two declarations belong to
|
|
10
|
+
* the same array exactly when those prefixes render identically — which is why
|
|
11
|
+
* the key is built by the ONE formatter and never by string surgery on the
|
|
12
|
+
* declared path.
|
|
13
|
+
*/
|
|
14
|
+
export function groupArrayFields(declarations) {
|
|
15
|
+
const direct = [];
|
|
16
|
+
const drafts = new Map();
|
|
17
|
+
const groupOrder = [];
|
|
18
|
+
for (const declaration of declarations) {
|
|
19
|
+
const wildcardAt = findFirstWildcard(declaration.template);
|
|
20
|
+
if (wildcardAt < 0) {
|
|
21
|
+
direct.push(declaration);
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
const template = Object.freeze(declaration.template.slice(0, wildcardAt));
|
|
25
|
+
const key = formatFieldPath(template);
|
|
26
|
+
const draft = drafts.get(key);
|
|
27
|
+
if (draft === undefined) {
|
|
28
|
+
drafts.set(key, {
|
|
29
|
+
template,
|
|
30
|
+
members: [toElementMember(declaration, wildcardAt)],
|
|
31
|
+
});
|
|
32
|
+
groupOrder.push(key);
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
draft.members.push(toElementMember(declaration, wildcardAt));
|
|
36
|
+
}
|
|
37
|
+
return Object.freeze({
|
|
38
|
+
direct: Object.freeze(direct),
|
|
39
|
+
arrays: freezeGroups(groupOrder, drafts),
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
/** The same declaration, re-based on one element of the array it named. */
|
|
43
|
+
function toElementMember(declaration, wildcardAt) {
|
|
44
|
+
return Object.freeze({
|
|
45
|
+
...declaration,
|
|
46
|
+
template: Object.freeze(declaration.template.slice(wildcardAt + 1)),
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function freezeGroups(groupOrder, drafts) {
|
|
50
|
+
if (groupOrder.length === 0)
|
|
51
|
+
return NO_GROUPS;
|
|
52
|
+
const groups = [];
|
|
53
|
+
for (const key of groupOrder) {
|
|
54
|
+
const draft = drafts.get(key);
|
|
55
|
+
if (draft === undefined)
|
|
56
|
+
continue;
|
|
57
|
+
groups.push(Object.freeze({
|
|
58
|
+
template: draft.template,
|
|
59
|
+
members: Object.freeze(draft.members.slice()),
|
|
60
|
+
}));
|
|
61
|
+
}
|
|
62
|
+
return Object.freeze(groups);
|
|
63
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type { ArrayNode, CompiledCheck, CompiledField, ConditionalPresence, FieldDeclaration, PlanRef, PresencePolicy, RecursionPolicy, ValidationPlan, } from "./validation-plan.types";
|
|
2
|
+
export type { BranchExecutor } from "./branch-executor.port";
|
|
3
|
+
export { ROOT_PATH, indexDeclaredChildKeys } from "./declared-child-keys";
|
|
4
|
+
export type { DeclaredChildKeysReader } from "./declared-child-keys";
|
|
5
|
+
export { OPEN_PRESENCE, OPEN_PRESENCE_CODE, resolvePresence, } from "./resolve-presence";
|
|
6
|
+
export { NO_PRESENCE_OVERRIDES, resolveConditionalPresence, } from "./resolve-conditional-presence";
|
|
7
|
+
export { UnknownRuleKindError, splitRulesByKind } from "./split-rules-by-kind";
|
|
8
|
+
export type { RulesByKind } from "./split-rules-by-kind";
|
|
9
|
+
export { ConflictingRecursionError, resolveRecursion, } from "./resolve-recursion";
|
|
10
|
+
export { APPLIES_DEFAULT_TO_NULL_BY_DEFAULT, compileField, compileFieldDeclaration, } from "./compile-field";
|
|
11
|
+
export type { CompositeEraser, FieldCompileRequest } from "./compile-field";
|
|
12
|
+
export { groupArrayFields } from "./group-array-fields";
|
|
13
|
+
export type { ArrayFieldGroup, GroupedFields, RelativeDeclaration, } from "./group-array-fields";
|
|
14
|
+
export { compileArrayNode, compileRelativeDeclaration, } from "./compile-array-node";
|
|
15
|
+
export type { NodeCompileContext } from "./compile-array-node";
|
|
16
|
+
export { compileComposite } from "./compile-composite";
|
|
17
|
+
export type { BranchPlanCompiler, CompositeCompileContext, } from "./compile-composite";
|
|
18
|
+
export { UnresolvedPlanError, compileSchema } from "./compile-schema";
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.compileSchema = exports.UnresolvedPlanError = exports.compileComposite = exports.compileRelativeDeclaration = exports.compileArrayNode = exports.groupArrayFields = exports.compileFieldDeclaration = exports.compileField = exports.APPLIES_DEFAULT_TO_NULL_BY_DEFAULT = exports.resolveRecursion = exports.ConflictingRecursionError = exports.splitRulesByKind = exports.UnknownRuleKindError = exports.resolveConditionalPresence = exports.NO_PRESENCE_OVERRIDES = exports.resolvePresence = exports.OPEN_PRESENCE_CODE = exports.OPEN_PRESENCE = exports.indexDeclaredChildKeys = exports.ROOT_PATH = void 0;
|
|
4
|
+
var declared_child_keys_1 = require("./declared-child-keys");
|
|
5
|
+
Object.defineProperty(exports, "ROOT_PATH", { enumerable: true, get: function () { return declared_child_keys_1.ROOT_PATH; } });
|
|
6
|
+
Object.defineProperty(exports, "indexDeclaredChildKeys", { enumerable: true, get: function () { return declared_child_keys_1.indexDeclaredChildKeys; } });
|
|
7
|
+
var resolve_presence_1 = require("./resolve-presence");
|
|
8
|
+
Object.defineProperty(exports, "OPEN_PRESENCE", { enumerable: true, get: function () { return resolve_presence_1.OPEN_PRESENCE; } });
|
|
9
|
+
Object.defineProperty(exports, "OPEN_PRESENCE_CODE", { enumerable: true, get: function () { return resolve_presence_1.OPEN_PRESENCE_CODE; } });
|
|
10
|
+
Object.defineProperty(exports, "resolvePresence", { enumerable: true, get: function () { return resolve_presence_1.resolvePresence; } });
|
|
11
|
+
var resolve_conditional_presence_1 = require("./resolve-conditional-presence");
|
|
12
|
+
Object.defineProperty(exports, "NO_PRESENCE_OVERRIDES", { enumerable: true, get: function () { return resolve_conditional_presence_1.NO_PRESENCE_OVERRIDES; } });
|
|
13
|
+
Object.defineProperty(exports, "resolveConditionalPresence", { enumerable: true, get: function () { return resolve_conditional_presence_1.resolveConditionalPresence; } });
|
|
14
|
+
var split_rules_by_kind_1 = require("./split-rules-by-kind");
|
|
15
|
+
Object.defineProperty(exports, "UnknownRuleKindError", { enumerable: true, get: function () { return split_rules_by_kind_1.UnknownRuleKindError; } });
|
|
16
|
+
Object.defineProperty(exports, "splitRulesByKind", { enumerable: true, get: function () { return split_rules_by_kind_1.splitRulesByKind; } });
|
|
17
|
+
var resolve_recursion_1 = require("./resolve-recursion");
|
|
18
|
+
Object.defineProperty(exports, "ConflictingRecursionError", { enumerable: true, get: function () { return resolve_recursion_1.ConflictingRecursionError; } });
|
|
19
|
+
Object.defineProperty(exports, "resolveRecursion", { enumerable: true, get: function () { return resolve_recursion_1.resolveRecursion; } });
|
|
20
|
+
var compile_field_1 = require("./compile-field");
|
|
21
|
+
Object.defineProperty(exports, "APPLIES_DEFAULT_TO_NULL_BY_DEFAULT", { enumerable: true, get: function () { return compile_field_1.APPLIES_DEFAULT_TO_NULL_BY_DEFAULT; } });
|
|
22
|
+
Object.defineProperty(exports, "compileField", { enumerable: true, get: function () { return compile_field_1.compileField; } });
|
|
23
|
+
Object.defineProperty(exports, "compileFieldDeclaration", { enumerable: true, get: function () { return compile_field_1.compileFieldDeclaration; } });
|
|
24
|
+
var group_array_fields_1 = require("./group-array-fields");
|
|
25
|
+
Object.defineProperty(exports, "groupArrayFields", { enumerable: true, get: function () { return group_array_fields_1.groupArrayFields; } });
|
|
26
|
+
var compile_array_node_1 = require("./compile-array-node");
|
|
27
|
+
Object.defineProperty(exports, "compileArrayNode", { enumerable: true, get: function () { return compile_array_node_1.compileArrayNode; } });
|
|
28
|
+
Object.defineProperty(exports, "compileRelativeDeclaration", { enumerable: true, get: function () { return compile_array_node_1.compileRelativeDeclaration; } });
|
|
29
|
+
var compile_composite_1 = require("./compile-composite");
|
|
30
|
+
Object.defineProperty(exports, "compileComposite", { enumerable: true, get: function () { return compile_composite_1.compileComposite; } });
|
|
31
|
+
var compile_schema_1 = require("./compile-schema");
|
|
32
|
+
Object.defineProperty(exports, "UnresolvedPlanError", { enumerable: true, get: function () { return compile_schema_1.UnresolvedPlanError; } });
|
|
33
|
+
Object.defineProperty(exports, "compileSchema", { enumerable: true, get: function () { return compile_schema_1.compileSchema; } });
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { ROOT_PATH, indexDeclaredChildKeys } from "./declared-child-keys.mjs";
|
|
2
|
+
export { OPEN_PRESENCE, OPEN_PRESENCE_CODE, resolvePresence, } from "./resolve-presence.mjs";
|
|
3
|
+
export { NO_PRESENCE_OVERRIDES, resolveConditionalPresence, } from "./resolve-conditional-presence.mjs";
|
|
4
|
+
export { UnknownRuleKindError, splitRulesByKind } from "./split-rules-by-kind.mjs";
|
|
5
|
+
export { ConflictingRecursionError, resolveRecursion, } from "./resolve-recursion.mjs";
|
|
6
|
+
export { APPLIES_DEFAULT_TO_NULL_BY_DEFAULT, compileField, compileFieldDeclaration, } from "./compile-field.mjs";
|
|
7
|
+
export { groupArrayFields } from "./group-array-fields.mjs";
|
|
8
|
+
export { compileArrayNode, compileRelativeDeclaration, } from "./compile-array-node.mjs";
|
|
9
|
+
export { compileComposite } from "./compile-composite.mjs";
|
|
10
|
+
export { UnresolvedPlanError, compileSchema } from "./compile-schema.mjs";
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ConditionalPresenceRule } from "../plugin-kit/compiled-rule";
|
|
2
|
+
import type { ConditionalPresence } from "./validation-plan.types";
|
|
3
|
+
/** Shared and frozen: a field with no conditional rule allocates nothing. */
|
|
4
|
+
export declare const NO_PRESENCE_OVERRIDES: readonly ConditionalPresence[];
|
|
5
|
+
export declare function resolveConditionalPresence(rules: readonly ConditionalPresenceRule[]): readonly ConditionalPresence[];
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NO_PRESENCE_OVERRIDES = void 0;
|
|
4
|
+
exports.resolveConditionalPresence = resolveConditionalPresence;
|
|
5
|
+
/** Shared and frozen: a field with no conditional rule allocates nothing. */
|
|
6
|
+
exports.NO_PRESENCE_OVERRIDES = Object.freeze([]);
|
|
7
|
+
function resolveConditionalPresence(rules) {
|
|
8
|
+
if (rules.length === 0)
|
|
9
|
+
return exports.NO_PRESENCE_OVERRIDES;
|
|
10
|
+
return Object.freeze(rules.map(compileOneOverride));
|
|
11
|
+
}
|
|
12
|
+
function compileOneOverride(rule) {
|
|
13
|
+
const override = {
|
|
14
|
+
// Stored BY IDENTITY. Re-wrapping the user's predicate would put a layer
|
|
15
|
+
// between it and the RuleContext members the array runner fills in.
|
|
16
|
+
when: rule.when,
|
|
17
|
+
whenMet: toPolicy(rule, rule.whenMet),
|
|
18
|
+
whenUnmet: toPolicy(rule, rule.whenUnmet),
|
|
19
|
+
};
|
|
20
|
+
return Object.freeze(override);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Both sides report under the SAME code, severity and message: a conditional
|
|
24
|
+
* presence rule is one rule with one identity, and only one of its sides can
|
|
25
|
+
* ever refuse a value anyway.
|
|
26
|
+
*/
|
|
27
|
+
function toPolicy(rule, allowance) {
|
|
28
|
+
if (allowance === null)
|
|
29
|
+
return null;
|
|
30
|
+
const policy = {
|
|
31
|
+
code: rule.code,
|
|
32
|
+
severity: rule.severity,
|
|
33
|
+
allowUndefined: allowance.allowUndefined,
|
|
34
|
+
allowNull: allowance.allowNull,
|
|
35
|
+
emptyStringIsMissing: allowance.emptyStringIsMissing,
|
|
36
|
+
nullIsValue: allowance.nullIsValue === true,
|
|
37
|
+
// Wrapped rather than aliased, so a `describe` written as an object
|
|
38
|
+
// method keeps its receiver.
|
|
39
|
+
describe: (messageContext) => rule.describe(messageContext),
|
|
40
|
+
};
|
|
41
|
+
return Object.freeze(policy);
|
|
42
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/** Shared and frozen: a field with no conditional rule allocates nothing. */
|
|
2
|
+
export const NO_PRESENCE_OVERRIDES = Object.freeze([]);
|
|
3
|
+
export function resolveConditionalPresence(rules) {
|
|
4
|
+
if (rules.length === 0)
|
|
5
|
+
return NO_PRESENCE_OVERRIDES;
|
|
6
|
+
return Object.freeze(rules.map(compileOneOverride));
|
|
7
|
+
}
|
|
8
|
+
function compileOneOverride(rule) {
|
|
9
|
+
const override = {
|
|
10
|
+
// Stored BY IDENTITY. Re-wrapping the user's predicate would put a layer
|
|
11
|
+
// between it and the RuleContext members the array runner fills in.
|
|
12
|
+
when: rule.when,
|
|
13
|
+
whenMet: toPolicy(rule, rule.whenMet),
|
|
14
|
+
whenUnmet: toPolicy(rule, rule.whenUnmet),
|
|
15
|
+
};
|
|
16
|
+
return Object.freeze(override);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Both sides report under the SAME code, severity and message: a conditional
|
|
20
|
+
* presence rule is one rule with one identity, and only one of its sides can
|
|
21
|
+
* ever refuse a value anyway.
|
|
22
|
+
*/
|
|
23
|
+
function toPolicy(rule, allowance) {
|
|
24
|
+
if (allowance === null)
|
|
25
|
+
return null;
|
|
26
|
+
const policy = {
|
|
27
|
+
code: rule.code,
|
|
28
|
+
severity: rule.severity,
|
|
29
|
+
allowUndefined: allowance.allowUndefined,
|
|
30
|
+
allowNull: allowance.allowNull,
|
|
31
|
+
emptyStringIsMissing: allowance.emptyStringIsMissing,
|
|
32
|
+
nullIsValue: allowance.nullIsValue === true,
|
|
33
|
+
// Wrapped rather than aliased, so a `describe` written as an object
|
|
34
|
+
// method keeps its receiver.
|
|
35
|
+
describe: (messageContext) => rule.describe(messageContext),
|
|
36
|
+
};
|
|
37
|
+
return Object.freeze(policy);
|
|
38
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { PresenceRule } from "../plugin-kit/compiled-rule";
|
|
2
|
+
import type { PresencePolicy } from "./validation-plan.types";
|
|
3
|
+
/** The code of a policy that can never fail, and so can never be emitted. */
|
|
4
|
+
export declare const OPEN_PRESENCE_CODE = "presence";
|
|
5
|
+
export declare const OPEN_PRESENCE: PresencePolicy;
|
|
6
|
+
export declare function resolvePresence(rules: readonly PresenceRule[]): PresencePolicy;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OPEN_PRESENCE = exports.OPEN_PRESENCE_CODE = void 0;
|
|
4
|
+
exports.resolvePresence = resolvePresence;
|
|
5
|
+
/** The code of a policy that can never fail, and so can never be emitted. */
|
|
6
|
+
exports.OPEN_PRESENCE_CODE = "presence";
|
|
7
|
+
const OPEN_SEVERITY = "error";
|
|
8
|
+
const OPEN_POLICY = {
|
|
9
|
+
code: exports.OPEN_PRESENCE_CODE,
|
|
10
|
+
severity: OPEN_SEVERITY,
|
|
11
|
+
allowUndefined: true,
|
|
12
|
+
allowNull: true,
|
|
13
|
+
emptyStringIsMissing: false,
|
|
14
|
+
nullIsValue: false,
|
|
15
|
+
describe: () => "This field declares no presence rule",
|
|
16
|
+
};
|
|
17
|
+
exports.OPEN_PRESENCE = Object.freeze(OPEN_POLICY);
|
|
18
|
+
function resolvePresence(rules) {
|
|
19
|
+
const strictest = selectStrictestPresence(rules);
|
|
20
|
+
if (strictest === undefined)
|
|
21
|
+
return exports.OPEN_PRESENCE;
|
|
22
|
+
const policy = {
|
|
23
|
+
code: strictest.code,
|
|
24
|
+
severity: strictest.severity,
|
|
25
|
+
allowUndefined: rules.some((rule) => rule.allowUndefined),
|
|
26
|
+
allowNull: rules.some((rule) => rule.allowNull),
|
|
27
|
+
emptyStringIsMissing: rules.some((rule) => rule.emptyStringIsMissing),
|
|
28
|
+
// One rule saying "null is a value here" is enough: the checks then run
|
|
29
|
+
// and decide, which is strictly more judgement, never less.
|
|
30
|
+
nullIsValue: rules.some((rule) => rule.nullIsValue === true),
|
|
31
|
+
describe: (ctx) => strictest.describe(ctx),
|
|
32
|
+
};
|
|
33
|
+
return Object.freeze(policy);
|
|
34
|
+
}
|
|
35
|
+
/** How much this one rule forbids. Order-free, so the maximum is too. */
|
|
36
|
+
function countRestrictions(rule) {
|
|
37
|
+
return ((rule.allowUndefined ? 0 : 1) +
|
|
38
|
+
(rule.allowNull ? 0 : 1) +
|
|
39
|
+
(rule.emptyStringIsMissing ? 1 : 0));
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The identity a failure is reported under: the rule that forbids the most,
|
|
43
|
+
* ties broken by the lexicographically smaller code.
|
|
44
|
+
*
|
|
45
|
+
* Tie-breaking on the CODE rather than on declaration order is what keeps the
|
|
46
|
+
* whole policy — not merely its three flags — independent of the order the
|
|
47
|
+
* rules arrived in. `.optional().nullable()` and `.nullable().optional()` are
|
|
48
|
+
* deep-equal, which is the property the tests assert.
|
|
49
|
+
*/
|
|
50
|
+
function selectStrictestPresence(rules) {
|
|
51
|
+
let strictest;
|
|
52
|
+
for (const rule of rules) {
|
|
53
|
+
if (strictest === undefined) {
|
|
54
|
+
strictest = rule;
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
const difference = countRestrictions(rule) - countRestrictions(strictest);
|
|
58
|
+
if (difference > 0 || (difference === 0 && rule.code < strictest.code)) {
|
|
59
|
+
strictest = rule;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return strictest;
|
|
63
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/** The code of a policy that can never fail, and so can never be emitted. */
|
|
2
|
+
export const OPEN_PRESENCE_CODE = "presence";
|
|
3
|
+
const OPEN_SEVERITY = "error";
|
|
4
|
+
const OPEN_POLICY = {
|
|
5
|
+
code: OPEN_PRESENCE_CODE,
|
|
6
|
+
severity: OPEN_SEVERITY,
|
|
7
|
+
allowUndefined: true,
|
|
8
|
+
allowNull: true,
|
|
9
|
+
emptyStringIsMissing: false,
|
|
10
|
+
nullIsValue: false,
|
|
11
|
+
describe: () => "This field declares no presence rule",
|
|
12
|
+
};
|
|
13
|
+
export const OPEN_PRESENCE = Object.freeze(OPEN_POLICY);
|
|
14
|
+
export function resolvePresence(rules) {
|
|
15
|
+
const strictest = selectStrictestPresence(rules);
|
|
16
|
+
if (strictest === undefined)
|
|
17
|
+
return OPEN_PRESENCE;
|
|
18
|
+
const policy = {
|
|
19
|
+
code: strictest.code,
|
|
20
|
+
severity: strictest.severity,
|
|
21
|
+
allowUndefined: rules.some((rule) => rule.allowUndefined),
|
|
22
|
+
allowNull: rules.some((rule) => rule.allowNull),
|
|
23
|
+
emptyStringIsMissing: rules.some((rule) => rule.emptyStringIsMissing),
|
|
24
|
+
// One rule saying "null is a value here" is enough: the checks then run
|
|
25
|
+
// and decide, which is strictly more judgement, never less.
|
|
26
|
+
nullIsValue: rules.some((rule) => rule.nullIsValue === true),
|
|
27
|
+
describe: (ctx) => strictest.describe(ctx),
|
|
28
|
+
};
|
|
29
|
+
return Object.freeze(policy);
|
|
30
|
+
}
|
|
31
|
+
/** How much this one rule forbids. Order-free, so the maximum is too. */
|
|
32
|
+
function countRestrictions(rule) {
|
|
33
|
+
return ((rule.allowUndefined ? 0 : 1) +
|
|
34
|
+
(rule.allowNull ? 0 : 1) +
|
|
35
|
+
(rule.emptyStringIsMissing ? 1 : 0));
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The identity a failure is reported under: the rule that forbids the most,
|
|
39
|
+
* ties broken by the lexicographically smaller code.
|
|
40
|
+
*
|
|
41
|
+
* Tie-breaking on the CODE rather than on declaration order is what keeps the
|
|
42
|
+
* whole policy — not merely its three flags — independent of the order the
|
|
43
|
+
* rules arrived in. `.optional().nullable()` and `.nullable().optional()` are
|
|
44
|
+
* deep-equal, which is the property the tests assert.
|
|
45
|
+
*/
|
|
46
|
+
function selectStrictestPresence(rules) {
|
|
47
|
+
let strictest;
|
|
48
|
+
for (const rule of rules) {
|
|
49
|
+
if (strictest === undefined) {
|
|
50
|
+
strictest = rule;
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
const difference = countRestrictions(rule) - countRestrictions(strictest);
|
|
54
|
+
if (difference > 0 || (difference === 0 && rule.code < strictest.code)) {
|
|
55
|
+
strictest = rule;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return strictest;
|
|
59
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { RecursiveRule } from "../plugin-kit/compiled-rule";
|
|
2
|
+
import type { PlanRef, RecursionPolicy } from "./validation-plan.types";
|
|
3
|
+
/** Two recursive rules on one field cannot both describe the re-entry. */
|
|
4
|
+
export declare class ConflictingRecursionError extends Error {
|
|
5
|
+
readonly fieldPath: string;
|
|
6
|
+
readonly codes: readonly string[];
|
|
7
|
+
constructor(fieldPath: string, codes: readonly string[]);
|
|
8
|
+
}
|
|
9
|
+
/** null for every field that declared no RecursiveRule, i.e. almost all. */
|
|
10
|
+
export declare function resolveRecursion(rules: readonly RecursiveRule[], plan: PlanRef, fieldPath: string): RecursionPolicy | null;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConflictingRecursionError = void 0;
|
|
4
|
+
exports.resolveRecursion = resolveRecursion;
|
|
5
|
+
/** Two recursive rules on one field cannot both describe the re-entry. */
|
|
6
|
+
class ConflictingRecursionError extends Error {
|
|
7
|
+
constructor(fieldPath, codes) {
|
|
8
|
+
super(`The field "${fieldPath}" declares ${codes.length} recursive rules ` +
|
|
9
|
+
`(${codes.join(", ")}); a field re-enters a plan at most once.`);
|
|
10
|
+
this.fieldPath = fieldPath;
|
|
11
|
+
this.codes = codes;
|
|
12
|
+
this.name = "ConflictingRecursionError";
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.ConflictingRecursionError = ConflictingRecursionError;
|
|
16
|
+
/** null for every field that declared no RecursiveRule, i.e. almost all. */
|
|
17
|
+
function resolveRecursion(rules, plan, fieldPath) {
|
|
18
|
+
const only = rules[0];
|
|
19
|
+
if (only === undefined)
|
|
20
|
+
return null;
|
|
21
|
+
if (rules.length > 1) {
|
|
22
|
+
throw new ConflictingRecursionError(fieldPath, rules.map((rule) => rule.code));
|
|
23
|
+
}
|
|
24
|
+
const policy = {
|
|
25
|
+
code: only.code,
|
|
26
|
+
severity: only.severity,
|
|
27
|
+
target: only.target,
|
|
28
|
+
maxDepth: only.maxDepth,
|
|
29
|
+
plan,
|
|
30
|
+
describe: (detail, ctx) => only.describe(detail, ctx),
|
|
31
|
+
};
|
|
32
|
+
return Object.freeze(policy);
|
|
33
|
+
}
|