@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,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createExpansionBudget = createExpansionBudget;
|
|
4
|
+
exports.createStructuralContext = createStructuralContext;
|
|
5
|
+
const collect_definitions_1 = require("./collect-definitions");
|
|
6
|
+
const collect_sub_schema_rules_1 = require("./collect-sub-schema-rules");
|
|
7
|
+
const NO_RULES = Object.freeze([]);
|
|
8
|
+
/**
|
|
9
|
+
* How many times one `$ref` may be entered on a single branch of the
|
|
10
|
+
* conversion, and how much expansion the whole conversion may do.
|
|
11
|
+
*
|
|
12
|
+
* A recursive definition has infinitely many declared paths and Luq declares
|
|
13
|
+
* finite ones, so SOMETHING has to stop. It used to stop at the FIRST repeat,
|
|
14
|
+
* which is why a mutually recursive schema (tree -> node -> tree) checked only
|
|
15
|
+
* two levels and silently accepted anything deeper.
|
|
16
|
+
*
|
|
17
|
+
* Unrolling further is exponential in the number of mutually recursive
|
|
18
|
+
* definitions, and the measurement says so plainly. A three-way cycle
|
|
19
|
+
* (a -> b -> c -> a, each also naming the others) builds in:
|
|
20
|
+
*
|
|
21
|
+
* 1 unroll 17 ms 2 unrolls 55 ms
|
|
22
|
+
* 3 unrolls 538 ms 4 unrolls 9257 ms
|
|
23
|
+
*
|
|
24
|
+
* Three is what the corpus needs (the mutually recursive tree in ref.json
|
|
25
|
+
* puts its invalid value three levels down) and is where the cost is still
|
|
26
|
+
* a fraction of a second. It is a BUILD-time cost, paid once per document.
|
|
27
|
+
*
|
|
28
|
+
* The per-ref cap bounds the depth and leaves the WIDTH to the document, so
|
|
29
|
+
* it is not a bound on the work by itself. EXPANSION_BUDGET is: it caps the
|
|
30
|
+
* total number of `$ref` expansions one conversion may do, whatever shape
|
|
31
|
+
* the document has. It is deliberately far above what a real schema reaches
|
|
32
|
+
* — the whole official corpus stays under it — so it changes nothing for
|
|
33
|
+
* ordinary documents and only stops a pathological one from running away.
|
|
34
|
+
*
|
|
35
|
+
* Running out is not an error. The conversion stops adding rules, exactly as
|
|
36
|
+
* it did at the first repeat before, and the document is checked to the depth
|
|
37
|
+
* that was reached — the same silence as before, moved further out.
|
|
38
|
+
*/
|
|
39
|
+
const MAX_REF_UNROLL = 3;
|
|
40
|
+
const EXPANSION_BUDGET = 100000;
|
|
41
|
+
function countOf(pointers, pointer) {
|
|
42
|
+
let count = 0;
|
|
43
|
+
for (const one of pointers)
|
|
44
|
+
if (one === pointer)
|
|
45
|
+
count += 1;
|
|
46
|
+
return count;
|
|
47
|
+
}
|
|
48
|
+
/** The budget a conversion starts with. One per document, not one per node. */
|
|
49
|
+
function createExpansionBudget() {
|
|
50
|
+
return { remaining: EXPANSION_BUDGET };
|
|
51
|
+
}
|
|
52
|
+
function propertyKeysOf(schema) {
|
|
53
|
+
return Object.freeze(Object.keys(schema.properties ?? {}));
|
|
54
|
+
}
|
|
55
|
+
function createStructuralContext(seed, node, visitedRefs, scope = seed.scope) {
|
|
56
|
+
const budget = seed.budget ?? createExpansionBudget();
|
|
57
|
+
const build = {
|
|
58
|
+
fieldPath: seed.chain.fieldPath,
|
|
59
|
+
declaredSiblingKeys: propertyKeysOf(node),
|
|
60
|
+
config: seed.chain.config,
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* One descent: the node this schema really is, and the context inside it.
|
|
64
|
+
*
|
|
65
|
+
* The RESOLVED node is handed back, and callers must use it rather than the
|
|
66
|
+
* schema they passed in. Resolving the same `$ref` a second time — which
|
|
67
|
+
* is what happens if the original is passed on — moves the base twice, so
|
|
68
|
+
* a relative reference under a relative `$id` doubles its own folder.
|
|
69
|
+
*/
|
|
70
|
+
const descend = (schema) => {
|
|
71
|
+
const pointer = (0, collect_definitions_1.readRefPointer)(schema);
|
|
72
|
+
if (pointer !== undefined &&
|
|
73
|
+
countOf(visitedRefs, pointer) >= MAX_REF_UNROLL) {
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
if (pointer !== undefined) {
|
|
77
|
+
if (budget.remaining <= 0)
|
|
78
|
+
return undefined;
|
|
79
|
+
budget.remaining -= 1;
|
|
80
|
+
}
|
|
81
|
+
const seen = pointer === undefined ? visitedRefs : [...visitedRefs, pointer];
|
|
82
|
+
// The scope moves with the node: following a `$ref` into another
|
|
83
|
+
// document makes THAT document's base the one its own refs resolve in.
|
|
84
|
+
const resolved = (0, collect_definitions_1.resolveSchemaNodeInScope)(schema, scope);
|
|
85
|
+
return {
|
|
86
|
+
node: resolved.node,
|
|
87
|
+
context: createStructuralContext({ ...seed, budget }, resolved.node, seen, resolved.scope),
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
const ruleContextFor = (pluginName, code) => ({
|
|
91
|
+
pluginName,
|
|
92
|
+
code,
|
|
93
|
+
severity: build.config.defaultSeverity,
|
|
94
|
+
config: build.config,
|
|
95
|
+
fieldPath: build.fieldPath,
|
|
96
|
+
declaredSiblingKeys: build.declaredSiblingKeys,
|
|
97
|
+
});
|
|
98
|
+
return {
|
|
99
|
+
bag: seed.bag,
|
|
100
|
+
build,
|
|
101
|
+
scope,
|
|
102
|
+
visitedRefs,
|
|
103
|
+
collectSubSchemaRules: (schema) => {
|
|
104
|
+
const child = descend(schema);
|
|
105
|
+
return child === undefined
|
|
106
|
+
? NO_RULES
|
|
107
|
+
: (0, collect_sub_schema_rules_1.collectSubSchemaRules)(child.node, child.context);
|
|
108
|
+
},
|
|
109
|
+
toBranch: (label, schema) => {
|
|
110
|
+
const child = descend(schema);
|
|
111
|
+
return child === undefined
|
|
112
|
+
? { label, rules: NO_RULES, fields: [] }
|
|
113
|
+
: (0, collect_sub_schema_rules_1.toSchemaBranch)(label, child.node, child.context);
|
|
114
|
+
},
|
|
115
|
+
ruleContextFor,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { readRefPointer, resolveSchemaNodeInScope, } from "./collect-definitions.mjs";
|
|
2
|
+
import { collectSubSchemaRules, toSchemaBranch, } from "./collect-sub-schema-rules.mjs";
|
|
3
|
+
const NO_RULES = Object.freeze([]);
|
|
4
|
+
/**
|
|
5
|
+
* How many times one `$ref` may be entered on a single branch of the
|
|
6
|
+
* conversion, and how much expansion the whole conversion may do.
|
|
7
|
+
*
|
|
8
|
+
* A recursive definition has infinitely many declared paths and Luq declares
|
|
9
|
+
* finite ones, so SOMETHING has to stop. It used to stop at the FIRST repeat,
|
|
10
|
+
* which is why a mutually recursive schema (tree -> node -> tree) checked only
|
|
11
|
+
* two levels and silently accepted anything deeper.
|
|
12
|
+
*
|
|
13
|
+
* Unrolling further is exponential in the number of mutually recursive
|
|
14
|
+
* definitions, and the measurement says so plainly. A three-way cycle
|
|
15
|
+
* (a -> b -> c -> a, each also naming the others) builds in:
|
|
16
|
+
*
|
|
17
|
+
* 1 unroll 17 ms 2 unrolls 55 ms
|
|
18
|
+
* 3 unrolls 538 ms 4 unrolls 9257 ms
|
|
19
|
+
*
|
|
20
|
+
* Three is what the corpus needs (the mutually recursive tree in ref.json
|
|
21
|
+
* puts its invalid value three levels down) and is where the cost is still
|
|
22
|
+
* a fraction of a second. It is a BUILD-time cost, paid once per document.
|
|
23
|
+
*
|
|
24
|
+
* The per-ref cap bounds the depth and leaves the WIDTH to the document, so
|
|
25
|
+
* it is not a bound on the work by itself. EXPANSION_BUDGET is: it caps the
|
|
26
|
+
* total number of `$ref` expansions one conversion may do, whatever shape
|
|
27
|
+
* the document has. It is deliberately far above what a real schema reaches
|
|
28
|
+
* — the whole official corpus stays under it — so it changes nothing for
|
|
29
|
+
* ordinary documents and only stops a pathological one from running away.
|
|
30
|
+
*
|
|
31
|
+
* Running out is not an error. The conversion stops adding rules, exactly as
|
|
32
|
+
* it did at the first repeat before, and the document is checked to the depth
|
|
33
|
+
* that was reached — the same silence as before, moved further out.
|
|
34
|
+
*/
|
|
35
|
+
const MAX_REF_UNROLL = 3;
|
|
36
|
+
const EXPANSION_BUDGET = 100000;
|
|
37
|
+
function countOf(pointers, pointer) {
|
|
38
|
+
let count = 0;
|
|
39
|
+
for (const one of pointers)
|
|
40
|
+
if (one === pointer)
|
|
41
|
+
count += 1;
|
|
42
|
+
return count;
|
|
43
|
+
}
|
|
44
|
+
/** The budget a conversion starts with. One per document, not one per node. */
|
|
45
|
+
export function createExpansionBudget() {
|
|
46
|
+
return { remaining: EXPANSION_BUDGET };
|
|
47
|
+
}
|
|
48
|
+
function propertyKeysOf(schema) {
|
|
49
|
+
return Object.freeze(Object.keys(schema.properties ?? {}));
|
|
50
|
+
}
|
|
51
|
+
export function createStructuralContext(seed, node, visitedRefs, scope = seed.scope) {
|
|
52
|
+
const budget = seed.budget ?? createExpansionBudget();
|
|
53
|
+
const build = {
|
|
54
|
+
fieldPath: seed.chain.fieldPath,
|
|
55
|
+
declaredSiblingKeys: propertyKeysOf(node),
|
|
56
|
+
config: seed.chain.config,
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* One descent: the node this schema really is, and the context inside it.
|
|
60
|
+
*
|
|
61
|
+
* The RESOLVED node is handed back, and callers must use it rather than the
|
|
62
|
+
* schema they passed in. Resolving the same `$ref` a second time — which
|
|
63
|
+
* is what happens if the original is passed on — moves the base twice, so
|
|
64
|
+
* a relative reference under a relative `$id` doubles its own folder.
|
|
65
|
+
*/
|
|
66
|
+
const descend = (schema) => {
|
|
67
|
+
const pointer = readRefPointer(schema);
|
|
68
|
+
if (pointer !== undefined &&
|
|
69
|
+
countOf(visitedRefs, pointer) >= MAX_REF_UNROLL) {
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
if (pointer !== undefined) {
|
|
73
|
+
if (budget.remaining <= 0)
|
|
74
|
+
return undefined;
|
|
75
|
+
budget.remaining -= 1;
|
|
76
|
+
}
|
|
77
|
+
const seen = pointer === undefined ? visitedRefs : [...visitedRefs, pointer];
|
|
78
|
+
// The scope moves with the node: following a `$ref` into another
|
|
79
|
+
// document makes THAT document's base the one its own refs resolve in.
|
|
80
|
+
const resolved = resolveSchemaNodeInScope(schema, scope);
|
|
81
|
+
return {
|
|
82
|
+
node: resolved.node,
|
|
83
|
+
context: createStructuralContext({ ...seed, budget }, resolved.node, seen, resolved.scope),
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
const ruleContextFor = (pluginName, code) => ({
|
|
87
|
+
pluginName,
|
|
88
|
+
code,
|
|
89
|
+
severity: build.config.defaultSeverity,
|
|
90
|
+
config: build.config,
|
|
91
|
+
fieldPath: build.fieldPath,
|
|
92
|
+
declaredSiblingKeys: build.declaredSiblingKeys,
|
|
93
|
+
});
|
|
94
|
+
return {
|
|
95
|
+
bag: seed.bag,
|
|
96
|
+
build,
|
|
97
|
+
scope,
|
|
98
|
+
visitedRefs,
|
|
99
|
+
collectSubSchemaRules: (schema) => {
|
|
100
|
+
const child = descend(schema);
|
|
101
|
+
return child === undefined
|
|
102
|
+
? NO_RULES
|
|
103
|
+
: collectSubSchemaRules(child.node, child.context);
|
|
104
|
+
},
|
|
105
|
+
toBranch: (label, schema) => {
|
|
106
|
+
const child = descend(schema);
|
|
107
|
+
return child === undefined
|
|
108
|
+
? { label, rules: NO_RULES, fields: [] }
|
|
109
|
+
: toSchemaBranch(label, child.node, child.context);
|
|
110
|
+
},
|
|
111
|
+
ruleContextFor,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Rule } from "../plugin-kit/compiled-rule";
|
|
2
|
+
import type { ConverterChain } from "./apply-keyword-binding";
|
|
3
|
+
import type { Draft07SchemaObject } from "./draft07.types";
|
|
4
|
+
import type { StructuralContext } from "./structural-expansion.types";
|
|
5
|
+
/**
|
|
6
|
+
* `patternProperties` のキー、つまり正規表現の文字列。
|
|
7
|
+
* additionalProperties が「該当しないキー」を選ぶのに要る。
|
|
8
|
+
*/
|
|
9
|
+
export declare function patternPropertyKeys(schema: Draft07SchemaObject): readonly string[];
|
|
10
|
+
/**
|
|
11
|
+
* BOOLEAN 形。
|
|
12
|
+
*
|
|
13
|
+
* キーワード束縛は自分の値 (boolean) しか運べないので、パターンがあるときだけ
|
|
14
|
+
* プラグインを直接呼ぶ。束縛のほうは残す: キーワード表と「そのメソッドが
|
|
15
|
+
* 実在する」というコンパイル時のゲートはそちらが持っている。
|
|
16
|
+
*/
|
|
17
|
+
export declare function applyAdditionalPropertiesBoolean(chain: ConverterChain<"object">, schema: Draft07SchemaObject, allowed: boolean): ConverterChain<"object">;
|
|
18
|
+
/** SCHEMA 形: 宣言にもパターンにも該当しない値が、そのスキーマに従う。 */
|
|
19
|
+
export declare function declareAdditionalPropertiesSchema(schema: Draft07SchemaObject, context: StructuralContext): readonly Rule[];
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.patternPropertyKeys = patternPropertyKeys;
|
|
4
|
+
exports.applyAdditionalPropertiesBoolean = applyAdditionalPropertiesBoolean;
|
|
5
|
+
exports.declareAdditionalPropertiesSchema = declareAdditionalPropertiesSchema;
|
|
6
|
+
const apply_keyword_binding_1 = require("./apply-keyword-binding");
|
|
7
|
+
const keyword_map_object_1 = require("./keyword-map-object");
|
|
8
|
+
const NO_RULES = Object.freeze([]);
|
|
9
|
+
/**
|
|
10
|
+
* `patternProperties` のキー、つまり正規表現の文字列。
|
|
11
|
+
* additionalProperties が「該当しないキー」を選ぶのに要る。
|
|
12
|
+
*/
|
|
13
|
+
function patternPropertyKeys(schema) {
|
|
14
|
+
const patterns = schema.patternProperties;
|
|
15
|
+
if (patterns === undefined || patterns === null)
|
|
16
|
+
return Object.freeze([]);
|
|
17
|
+
return Object.freeze(Object.keys(patterns));
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* BOOLEAN 形。
|
|
21
|
+
*
|
|
22
|
+
* キーワード束縛は自分の値 (boolean) しか運べないので、パターンがあるときだけ
|
|
23
|
+
* プラグインを直接呼ぶ。束縛のほうは残す: キーワード表と「そのメソッドが
|
|
24
|
+
* 実在する」というコンパイル時のゲートはそちらが持っている。
|
|
25
|
+
*/
|
|
26
|
+
function applyAdditionalPropertiesBoolean(chain, schema, allowed) {
|
|
27
|
+
const patterns = patternPropertyKeys(schema);
|
|
28
|
+
return patterns.length === 0
|
|
29
|
+
? (0, apply_keyword_binding_1.applyKeywordBinding)(chain, keyword_map_object_1.additionalPropertiesBinding, allowed)
|
|
30
|
+
: chain.additionalProperties(allowed, undefined, patterns);
|
|
31
|
+
}
|
|
32
|
+
/** SCHEMA 形: 宣言にもパターンにも該当しない値が、そのスキーマに従う。 */
|
|
33
|
+
function declareAdditionalPropertiesSchema(schema, context) {
|
|
34
|
+
const additional = schema.additionalProperties;
|
|
35
|
+
if (additional === undefined || typeof additional === "boolean") {
|
|
36
|
+
return NO_RULES;
|
|
37
|
+
}
|
|
38
|
+
const plugin = context.bag.objectAdditionalPropertiesSchema;
|
|
39
|
+
return Object.freeze([
|
|
40
|
+
plugin.build(context.ruleContextFor(plugin.name, "additionalProperties"), context.collectSubSchemaRules(additional), undefined, patternPropertyKeys(schema)),
|
|
41
|
+
]);
|
|
42
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { applyKeywordBinding } from "./apply-keyword-binding.mjs";
|
|
2
|
+
import { additionalPropertiesBinding } from "./keyword-map-object.mjs";
|
|
3
|
+
const NO_RULES = Object.freeze([]);
|
|
4
|
+
/**
|
|
5
|
+
* `patternProperties` のキー、つまり正規表現の文字列。
|
|
6
|
+
* additionalProperties が「該当しないキー」を選ぶのに要る。
|
|
7
|
+
*/
|
|
8
|
+
export function patternPropertyKeys(schema) {
|
|
9
|
+
const patterns = schema.patternProperties;
|
|
10
|
+
if (patterns === undefined || patterns === null)
|
|
11
|
+
return Object.freeze([]);
|
|
12
|
+
return Object.freeze(Object.keys(patterns));
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* BOOLEAN 形。
|
|
16
|
+
*
|
|
17
|
+
* キーワード束縛は自分の値 (boolean) しか運べないので、パターンがあるときだけ
|
|
18
|
+
* プラグインを直接呼ぶ。束縛のほうは残す: キーワード表と「そのメソッドが
|
|
19
|
+
* 実在する」というコンパイル時のゲートはそちらが持っている。
|
|
20
|
+
*/
|
|
21
|
+
export function applyAdditionalPropertiesBoolean(chain, schema, allowed) {
|
|
22
|
+
const patterns = patternPropertyKeys(schema);
|
|
23
|
+
return patterns.length === 0
|
|
24
|
+
? applyKeywordBinding(chain, additionalPropertiesBinding, allowed)
|
|
25
|
+
: chain.additionalProperties(allowed, undefined, patterns);
|
|
26
|
+
}
|
|
27
|
+
/** SCHEMA 形: 宣言にもパターンにも該当しない値が、そのスキーマに従う。 */
|
|
28
|
+
export function declareAdditionalPropertiesSchema(schema, context) {
|
|
29
|
+
const additional = schema.additionalProperties;
|
|
30
|
+
if (additional === undefined || typeof additional === "boolean") {
|
|
31
|
+
return NO_RULES;
|
|
32
|
+
}
|
|
33
|
+
const plugin = context.bag.objectAdditionalPropertiesSchema;
|
|
34
|
+
return Object.freeze([
|
|
35
|
+
plugin.build(context.ruleContextFor(plugin.name, "additionalProperties"), context.collectSubSchemaRules(additional), undefined, patternPropertyKeys(schema)),
|
|
36
|
+
]);
|
|
37
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Rule } from "../plugin-kit/compiled-rule";
|
|
2
|
+
import type { Draft07Schema, Draft07SchemaObject } from "./draft07.types";
|
|
3
|
+
import type { StructuralContext } from "./structural-expansion.types";
|
|
4
|
+
export declare function declareObjectRules(schema: Draft07SchemaObject, context: StructuralContext): readonly Rule[];
|
|
5
|
+
/** EVERY matching pattern applies; 1.x broke after the first match. */
|
|
6
|
+
export declare function declarePatternProperties(schema: Draft07SchemaObject, context: StructuralContext): readonly Rule[];
|
|
7
|
+
/** A sub-chain over the property NAMES, which are always strings. */
|
|
8
|
+
export declare function declarePropertyNames(schema: Draft07SchemaObject, context: StructuralContext): readonly Rule[];
|
|
9
|
+
export declare function declareDependencies(schema: Draft07SchemaObject, context: StructuralContext): readonly Rule[];
|
|
10
|
+
/**
|
|
11
|
+
* `properties` becomes one declared path per key; see flatten-schema.ts.
|
|
12
|
+
*
|
|
13
|
+
* Every child is declared NOT required here: requiredness belongs to the object
|
|
14
|
+
* (declareRequiredProperties). A name in `required` with no `properties` entry
|
|
15
|
+
* still gets a path on the empty schema, because §6.5.3 makes the two keywords
|
|
16
|
+
* independent and the root distribution needs the path to exist.
|
|
17
|
+
*/
|
|
18
|
+
export declare function readPropertyChildren(schema: Draft07SchemaObject): readonly {
|
|
19
|
+
step: string;
|
|
20
|
+
schema: Draft07Schema;
|
|
21
|
+
isRequired: boolean;
|
|
22
|
+
}[];
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.declareObjectRules = declareObjectRules;
|
|
4
|
+
exports.declarePatternProperties = declarePatternProperties;
|
|
5
|
+
exports.declarePropertyNames = declarePropertyNames;
|
|
6
|
+
exports.declareDependencies = declareDependencies;
|
|
7
|
+
exports.readPropertyChildren = readPropertyChildren;
|
|
8
|
+
// ===========================================================================
|
|
9
|
+
// L8 src/json-schema/declare-object-keywords.ts — the object keywords: the
|
|
10
|
+
// three that bind, and the four object shapes that expand.
|
|
11
|
+
//
|
|
12
|
+
// THE NORMALISATIONS THE COMPILER FORCES (draft07-keyword-value.types.ts):
|
|
13
|
+
// additionalProperties a schema is a sub-CHAIN and only the boolean form
|
|
14
|
+
// binds. `declaredSiblingKeys` on the chain context is
|
|
15
|
+
// set by schema-to-declarations to THIS schema's own
|
|
16
|
+
// `properties` keys, so the plugin's allowed set is the
|
|
17
|
+
// draft's — 1.x defaulted it to the empty list and
|
|
18
|
+
// `additionalProperties: false` rejected every property.
|
|
19
|
+
// dependencies one keyword, two chain methods: a key list drives
|
|
20
|
+
// .dependentRequired(), a sub-schema .dependentSchemas().
|
|
21
|
+
// ===========================================================================
|
|
22
|
+
const create_chain_node_1 = require("../chain/create-chain-node");
|
|
23
|
+
const create_field_slots_1 = require("../chain/create-field-slots");
|
|
24
|
+
const types_1 = require("../types");
|
|
25
|
+
const declare_additional_properties_1 = require("./declare-additional-properties");
|
|
26
|
+
const apply_keyword_binding_1 = require("./apply-keyword-binding");
|
|
27
|
+
const collect_definitions_1 = require("./collect-definitions");
|
|
28
|
+
const keyword_map_object_1 = require("./keyword-map-object");
|
|
29
|
+
const NO_RULES = Object.freeze([]);
|
|
30
|
+
function readRules(chain) {
|
|
31
|
+
return (0, create_chain_node_1.readChainRules)(chain) ?? NO_RULES;
|
|
32
|
+
}
|
|
33
|
+
function declareObjectRules(schema, context) {
|
|
34
|
+
let chain = (0, create_field_slots_1.createFieldSlots)(context.bag, context.build).object;
|
|
35
|
+
if (schema.minProperties !== undefined) {
|
|
36
|
+
chain = (0, apply_keyword_binding_1.applyKeywordBinding)(chain, keyword_map_object_1.minPropertiesBinding, schema.minProperties);
|
|
37
|
+
}
|
|
38
|
+
if (schema.maxProperties !== undefined) {
|
|
39
|
+
chain = (0, apply_keyword_binding_1.applyKeywordBinding)(chain, keyword_map_object_1.maxPropertiesBinding, schema.maxProperties);
|
|
40
|
+
}
|
|
41
|
+
const additional = schema.additionalProperties;
|
|
42
|
+
if (typeof additional === "boolean") {
|
|
43
|
+
// §6.5.4 の対象は「properties にも patternProperties にも該当しない」キー。
|
|
44
|
+
// キーワード束縛は自分の値 (boolean) しか運べないので、パターンがある
|
|
45
|
+
// ときだけプラグインを直接呼ぶ。束縛のほうは残す: キーワード表と
|
|
46
|
+
// 「そのメソッドが実在する」というコンパイル時のゲートはそちらが持つ。
|
|
47
|
+
chain = (0, declare_additional_properties_1.applyAdditionalPropertiesBoolean)(chain, schema, additional);
|
|
48
|
+
}
|
|
49
|
+
return readRules(chain);
|
|
50
|
+
}
|
|
51
|
+
/** EVERY matching pattern applies; 1.x broke after the first match. */
|
|
52
|
+
function declarePatternProperties(schema, context) {
|
|
53
|
+
const patterns = schema.patternProperties;
|
|
54
|
+
if (patterns === undefined)
|
|
55
|
+
return NO_RULES;
|
|
56
|
+
const byPattern = {};
|
|
57
|
+
for (const [pattern, member] of Object.entries(patterns)) {
|
|
58
|
+
byPattern[pattern] = context.collectSubSchemaRules(member);
|
|
59
|
+
}
|
|
60
|
+
const plugin = context.bag.objectPatternProperties;
|
|
61
|
+
return Object.freeze([
|
|
62
|
+
plugin.build(context.ruleContextFor(plugin.name, "patternProperties"), Object.freeze(byPattern)),
|
|
63
|
+
]);
|
|
64
|
+
}
|
|
65
|
+
/** A sub-chain over the property NAMES, which are always strings. */
|
|
66
|
+
function declarePropertyNames(schema, context) {
|
|
67
|
+
const names = schema.propertyNames;
|
|
68
|
+
if (names === undefined)
|
|
69
|
+
return NO_RULES;
|
|
70
|
+
const plugin = context.bag.objectPropertyNames;
|
|
71
|
+
return Object.freeze([
|
|
72
|
+
plugin.build(context.ruleContextFor(plugin.name, "propertyNames"), context.collectSubSchemaRules(names)),
|
|
73
|
+
]);
|
|
74
|
+
}
|
|
75
|
+
function splitDependencies(dependencies) {
|
|
76
|
+
const required = {};
|
|
77
|
+
const schemas = {};
|
|
78
|
+
for (const [key, dependency] of Object.entries(dependencies)) {
|
|
79
|
+
if ((0, types_1.isStringArray)(dependency)) {
|
|
80
|
+
required[key] = dependency;
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
schemas[key] = (0, collect_definitions_1.toSchemaObject)(dependency);
|
|
84
|
+
}
|
|
85
|
+
return { required, schemas };
|
|
86
|
+
}
|
|
87
|
+
function declareDependencies(schema, context) {
|
|
88
|
+
const dependencies = schema.dependencies;
|
|
89
|
+
if (dependencies === undefined)
|
|
90
|
+
return NO_RULES;
|
|
91
|
+
const split = splitDependencies(dependencies);
|
|
92
|
+
const rules = [];
|
|
93
|
+
if (Object.keys(split.required).length > 0) {
|
|
94
|
+
const plugin = context.bag.objectDependentRequired;
|
|
95
|
+
rules.push(plugin.build(context.ruleContextFor(plugin.name, "dependencies"), Object.freeze(split.required)));
|
|
96
|
+
}
|
|
97
|
+
const schemaKeys = Object.keys(split.schemas);
|
|
98
|
+
if (schemaKeys.length > 0) {
|
|
99
|
+
const byKey = {};
|
|
100
|
+
for (const key of schemaKeys) {
|
|
101
|
+
const member = split.schemas[key];
|
|
102
|
+
if (member === undefined)
|
|
103
|
+
continue;
|
|
104
|
+
byKey[key] = context.collectSubSchemaRules(member);
|
|
105
|
+
}
|
|
106
|
+
const plugin = context.bag.objectDependentSchemas;
|
|
107
|
+
rules.push(plugin.build(context.ruleContextFor(plugin.name, "dependencies"), Object.freeze(byKey)));
|
|
108
|
+
}
|
|
109
|
+
return Object.freeze(rules);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* `properties` becomes one declared path per key; see flatten-schema.ts.
|
|
113
|
+
*
|
|
114
|
+
* Every child is declared NOT required here: requiredness belongs to the object
|
|
115
|
+
* (declareRequiredProperties). A name in `required` with no `properties` entry
|
|
116
|
+
* still gets a path on the empty schema, because §6.5.3 makes the two keywords
|
|
117
|
+
* independent and the root distribution needs the path to exist.
|
|
118
|
+
*/
|
|
119
|
+
function readPropertyChildren(schema) {
|
|
120
|
+
const properties = schema.properties ?? {};
|
|
121
|
+
const required = schema.required ?? [];
|
|
122
|
+
const children = Object.entries(properties).map(([key, member]) => ({
|
|
123
|
+
step: key,
|
|
124
|
+
schema: member,
|
|
125
|
+
isRequired: false,
|
|
126
|
+
}));
|
|
127
|
+
for (const key of required) {
|
|
128
|
+
if (Object.prototype.hasOwnProperty.call(properties, key))
|
|
129
|
+
continue;
|
|
130
|
+
children.push({ step: key, schema: true, isRequired: false });
|
|
131
|
+
}
|
|
132
|
+
return Object.freeze(children);
|
|
133
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
// ===========================================================================
|
|
2
|
+
// L8 src/json-schema/declare-object-keywords.ts — the object keywords: the
|
|
3
|
+
// three that bind, and the four object shapes that expand.
|
|
4
|
+
//
|
|
5
|
+
// THE NORMALISATIONS THE COMPILER FORCES (draft07-keyword-value.types.ts):
|
|
6
|
+
// additionalProperties a schema is a sub-CHAIN and only the boolean form
|
|
7
|
+
// binds. `declaredSiblingKeys` on the chain context is
|
|
8
|
+
// set by schema-to-declarations to THIS schema's own
|
|
9
|
+
// `properties` keys, so the plugin's allowed set is the
|
|
10
|
+
// draft's — 1.x defaulted it to the empty list and
|
|
11
|
+
// `additionalProperties: false` rejected every property.
|
|
12
|
+
// dependencies one keyword, two chain methods: a key list drives
|
|
13
|
+
// .dependentRequired(), a sub-schema .dependentSchemas().
|
|
14
|
+
// ===========================================================================
|
|
15
|
+
import { readChainRules } from "../chain/create-chain-node.mjs";
|
|
16
|
+
import { createFieldSlots } from "../chain/create-field-slots.mjs";
|
|
17
|
+
import { isStringArray } from "../types/index.mjs";
|
|
18
|
+
import { applyAdditionalPropertiesBoolean } from "./declare-additional-properties.mjs";
|
|
19
|
+
import { applyKeywordBinding } from "./apply-keyword-binding.mjs";
|
|
20
|
+
import { toSchemaObject } from "./collect-definitions.mjs";
|
|
21
|
+
import { maxPropertiesBinding, minPropertiesBinding, } from "./keyword-map-object.mjs";
|
|
22
|
+
const NO_RULES = Object.freeze([]);
|
|
23
|
+
function readRules(chain) {
|
|
24
|
+
return readChainRules(chain) ?? NO_RULES;
|
|
25
|
+
}
|
|
26
|
+
export function declareObjectRules(schema, context) {
|
|
27
|
+
let chain = createFieldSlots(context.bag, context.build).object;
|
|
28
|
+
if (schema.minProperties !== undefined) {
|
|
29
|
+
chain = applyKeywordBinding(chain, minPropertiesBinding, schema.minProperties);
|
|
30
|
+
}
|
|
31
|
+
if (schema.maxProperties !== undefined) {
|
|
32
|
+
chain = applyKeywordBinding(chain, maxPropertiesBinding, schema.maxProperties);
|
|
33
|
+
}
|
|
34
|
+
const additional = schema.additionalProperties;
|
|
35
|
+
if (typeof additional === "boolean") {
|
|
36
|
+
// §6.5.4 の対象は「properties にも patternProperties にも該当しない」キー。
|
|
37
|
+
// キーワード束縛は自分の値 (boolean) しか運べないので、パターンがある
|
|
38
|
+
// ときだけプラグインを直接呼ぶ。束縛のほうは残す: キーワード表と
|
|
39
|
+
// 「そのメソッドが実在する」というコンパイル時のゲートはそちらが持つ。
|
|
40
|
+
chain = applyAdditionalPropertiesBoolean(chain, schema, additional);
|
|
41
|
+
}
|
|
42
|
+
return readRules(chain);
|
|
43
|
+
}
|
|
44
|
+
/** EVERY matching pattern applies; 1.x broke after the first match. */
|
|
45
|
+
export function declarePatternProperties(schema, context) {
|
|
46
|
+
const patterns = schema.patternProperties;
|
|
47
|
+
if (patterns === undefined)
|
|
48
|
+
return NO_RULES;
|
|
49
|
+
const byPattern = {};
|
|
50
|
+
for (const [pattern, member] of Object.entries(patterns)) {
|
|
51
|
+
byPattern[pattern] = context.collectSubSchemaRules(member);
|
|
52
|
+
}
|
|
53
|
+
const plugin = context.bag.objectPatternProperties;
|
|
54
|
+
return Object.freeze([
|
|
55
|
+
plugin.build(context.ruleContextFor(plugin.name, "patternProperties"), Object.freeze(byPattern)),
|
|
56
|
+
]);
|
|
57
|
+
}
|
|
58
|
+
/** A sub-chain over the property NAMES, which are always strings. */
|
|
59
|
+
export function declarePropertyNames(schema, context) {
|
|
60
|
+
const names = schema.propertyNames;
|
|
61
|
+
if (names === undefined)
|
|
62
|
+
return NO_RULES;
|
|
63
|
+
const plugin = context.bag.objectPropertyNames;
|
|
64
|
+
return Object.freeze([
|
|
65
|
+
plugin.build(context.ruleContextFor(plugin.name, "propertyNames"), context.collectSubSchemaRules(names)),
|
|
66
|
+
]);
|
|
67
|
+
}
|
|
68
|
+
function splitDependencies(dependencies) {
|
|
69
|
+
const required = {};
|
|
70
|
+
const schemas = {};
|
|
71
|
+
for (const [key, dependency] of Object.entries(dependencies)) {
|
|
72
|
+
if (isStringArray(dependency)) {
|
|
73
|
+
required[key] = dependency;
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
schemas[key] = toSchemaObject(dependency);
|
|
77
|
+
}
|
|
78
|
+
return { required, schemas };
|
|
79
|
+
}
|
|
80
|
+
export function declareDependencies(schema, context) {
|
|
81
|
+
const dependencies = schema.dependencies;
|
|
82
|
+
if (dependencies === undefined)
|
|
83
|
+
return NO_RULES;
|
|
84
|
+
const split = splitDependencies(dependencies);
|
|
85
|
+
const rules = [];
|
|
86
|
+
if (Object.keys(split.required).length > 0) {
|
|
87
|
+
const plugin = context.bag.objectDependentRequired;
|
|
88
|
+
rules.push(plugin.build(context.ruleContextFor(plugin.name, "dependencies"), Object.freeze(split.required)));
|
|
89
|
+
}
|
|
90
|
+
const schemaKeys = Object.keys(split.schemas);
|
|
91
|
+
if (schemaKeys.length > 0) {
|
|
92
|
+
const byKey = {};
|
|
93
|
+
for (const key of schemaKeys) {
|
|
94
|
+
const member = split.schemas[key];
|
|
95
|
+
if (member === undefined)
|
|
96
|
+
continue;
|
|
97
|
+
byKey[key] = context.collectSubSchemaRules(member);
|
|
98
|
+
}
|
|
99
|
+
const plugin = context.bag.objectDependentSchemas;
|
|
100
|
+
rules.push(plugin.build(context.ruleContextFor(plugin.name, "dependencies"), Object.freeze(byKey)));
|
|
101
|
+
}
|
|
102
|
+
return Object.freeze(rules);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* `properties` becomes one declared path per key; see flatten-schema.ts.
|
|
106
|
+
*
|
|
107
|
+
* Every child is declared NOT required here: requiredness belongs to the object
|
|
108
|
+
* (declareRequiredProperties). A name in `required` with no `properties` entry
|
|
109
|
+
* still gets a path on the empty schema, because §6.5.3 makes the two keywords
|
|
110
|
+
* independent and the root distribution needs the path to exist.
|
|
111
|
+
*/
|
|
112
|
+
export function readPropertyChildren(schema) {
|
|
113
|
+
const properties = schema.properties ?? {};
|
|
114
|
+
const required = schema.required ?? [];
|
|
115
|
+
const children = Object.entries(properties).map(([key, member]) => ({
|
|
116
|
+
step: key,
|
|
117
|
+
schema: member,
|
|
118
|
+
isRequired: false,
|
|
119
|
+
}));
|
|
120
|
+
for (const key of required) {
|
|
121
|
+
if (Object.prototype.hasOwnProperty.call(properties, key))
|
|
122
|
+
continue;
|
|
123
|
+
children.push({ step: key, schema: true, isRequired: false });
|
|
124
|
+
}
|
|
125
|
+
return Object.freeze(children);
|
|
126
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Rule } from "../plugin-kit/compiled-rule";
|
|
2
|
+
import type { IssueSeverity } from "../types";
|
|
3
|
+
export interface PresenceDeclaration {
|
|
4
|
+
readonly isRequired: boolean;
|
|
5
|
+
readonly severity: IssueSeverity;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* The rule is emitted even when it forbids nothing, because it carries
|
|
9
|
+
* `nullIsValue` and that is not a permission — it is the statement that null
|
|
10
|
+
* has to be JUDGED here rather than settled by presence. A subject with no
|
|
11
|
+
* presence rule carries OPEN_PRESENCE, which ends the field on null before a
|
|
12
|
+
* single check runs; under Draft-07 that is wrong, because `false`,
|
|
13
|
+
* `{"not": {}}` and an `enum` without null all forbid null while saying
|
|
14
|
+
* nothing about `type`. Null therefore goes to the checks, and `type`
|
|
15
|
+
* (declare-value-keywords.ts) is what rejects it when the document says so —
|
|
16
|
+
* one answer instead of two that have to agree.
|
|
17
|
+
*/
|
|
18
|
+
export declare function declarePresenceRules(declaration: PresenceDeclaration): readonly Rule[];
|