@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,77 @@
|
|
|
1
|
+
import { collectKeySegments, isIndexableObject, readOwnProperty, } from "./create-value-reader.mjs";
|
|
2
|
+
import { isArray } from "../types/index.mjs";
|
|
3
|
+
export function createValueWriter(template) {
|
|
4
|
+
const keys = collectKeySegments(template);
|
|
5
|
+
if (keys.length === 0)
|
|
6
|
+
return (_subject, value) => value;
|
|
7
|
+
return (subject, value) => writeInto(subject, keys, 0, value);
|
|
8
|
+
}
|
|
9
|
+
function writeInto(container, keys, depth, value) {
|
|
10
|
+
const key = keys[depth];
|
|
11
|
+
if (key === undefined)
|
|
12
|
+
return value;
|
|
13
|
+
if (container === null || container === undefined) {
|
|
14
|
+
return vivify(key, writeInto(undefined, keys, depth + 1, value));
|
|
15
|
+
}
|
|
16
|
+
if (!isIndexableObject(container))
|
|
17
|
+
return container;
|
|
18
|
+
const child = readOwnProperty(container, key);
|
|
19
|
+
const written = writeInto(child, keys, depth + 1, value);
|
|
20
|
+
if (written === child)
|
|
21
|
+
return container;
|
|
22
|
+
return copyWith(container, key, written);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Auto-vivification, restricted to the one case the legacy rule got wrong:
|
|
26
|
+
* only a missing or null intermediate is created. A present primitive is left
|
|
27
|
+
* exactly as it is (the `if (!isIndexableObject) return container` above), so
|
|
28
|
+
* writing `a.b` into `{a: 0}` destroys nothing and returns the original root
|
|
29
|
+
* by identity.
|
|
30
|
+
*
|
|
31
|
+
* The container created is always a plain object. A numeric segment does not
|
|
32
|
+
* conjure an array — the declaration grammar cannot express `items[0]`, so a
|
|
33
|
+
* numeric key here is a Record key.
|
|
34
|
+
*/
|
|
35
|
+
/**
|
|
36
|
+
* キーを own プロパティとして置く。**代入演算子を使わない。**
|
|
37
|
+
*
|
|
38
|
+
* `copy[key] = value` は key が "__proto__" のとき Object.prototype の
|
|
39
|
+
* アクセサ (setter) を呼び、own プロパティを作る代わりにプロトタイプを
|
|
40
|
+
* 差し替えてしまう。defineProperty はアクセサを見ずに own プロパティを
|
|
41
|
+
* 定義するので、"__proto__" という名前のプロパティを安全に持てる。
|
|
42
|
+
*
|
|
43
|
+
* "constructor" と "prototype" は Object.prototype 上でデータプロパティ
|
|
44
|
+
* なので代入でも own プロパティになるが、キーごとに分岐すると分岐のほうを
|
|
45
|
+
* 間違えるので一律にこちらを通す。
|
|
46
|
+
*
|
|
47
|
+
* これが「宣言パスに __proto__ を書けるようにする」の前提。書き込みが安全に
|
|
48
|
+
* なったので、パス文法の側で拒否する必要が無くなった (reserved-segment.ts)。
|
|
49
|
+
*/
|
|
50
|
+
function putOwnProperty(target, key, value) {
|
|
51
|
+
Object.defineProperty(target, key, {
|
|
52
|
+
value,
|
|
53
|
+
writable: true,
|
|
54
|
+
enumerable: true,
|
|
55
|
+
configurable: true,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
function vivify(key, written) {
|
|
59
|
+
const created = {};
|
|
60
|
+
putOwnProperty(created, key, written);
|
|
61
|
+
return created;
|
|
62
|
+
}
|
|
63
|
+
function copyWith(container, key, value) {
|
|
64
|
+
if (isArray(container)) {
|
|
65
|
+
const index = Number(key);
|
|
66
|
+
if (!Number.isInteger(index) || index < 0)
|
|
67
|
+
return container;
|
|
68
|
+
const copy = container.slice();
|
|
69
|
+
copy[index] = value;
|
|
70
|
+
return copy;
|
|
71
|
+
}
|
|
72
|
+
// スプレッドは own の列挙可能プロパティを CreateDataProperty で写すので、
|
|
73
|
+
// ここでは setter は動かない。危ないのは下の代入だけ。
|
|
74
|
+
const copy = { ...container };
|
|
75
|
+
putOwnProperty(copy, key, value);
|
|
76
|
+
return copy;
|
|
77
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type ElementOf<T> = unknown extends T ? unknown : NonNullable<T> extends infer U ? U extends readonly (infer E)[] ? E : never : never;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { IsOpaqueObject } from "./opaque-object.types";
|
|
2
|
+
import type { PathDepthBudget, PreviousDepth } from "./path-depth.types";
|
|
3
|
+
import type { ElementOf } from "./element-of.types";
|
|
4
|
+
/** The union of legal path literals for T. `[*]` is the only array wildcard and
|
|
5
|
+
* array members are never enumerated, which removes `items.name`,
|
|
6
|
+
* `items[0].name`, `tags.length` and `items.map` with ONE rule. */
|
|
7
|
+
export type FieldPath<T, D extends number = PathDepthBudget> = RecordPaths<T, D>;
|
|
8
|
+
type RecordPaths<T, D extends number> = NonNullable<T> extends infer U ? U extends readonly unknown[] ? never : IsOpaqueObject<U> extends true ? never : U extends object ? {
|
|
9
|
+
[K in Extract<keyof U, string>]-?: K | DescendantPaths<K, U[K], D>;
|
|
10
|
+
}[Extract<keyof U, string>] : never : never;
|
|
11
|
+
type DescendantPaths<Prefix extends string, V, D extends number> = D extends 0 ? never : NonNullable<V> extends infer U ? U extends readonly unknown[] ? `${Prefix}[*]` | DescendantPaths<`${Prefix}[*]`, ElementOf<U>, PreviousDepth[D]> : IsOpaqueObject<U> extends true ? never : U extends object ? JoinPath<Prefix, RecordPaths<U, PreviousDepth[D]>> : never : never;
|
|
12
|
+
type JoinPath<Prefix extends string, Sub> = Sub extends string ? `${Prefix}.${Sub}` : never;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { PathSegment } from "./path-segment.types";
|
|
2
|
+
/**
|
|
3
|
+
* `[key items, each, key name]` with `[0]` renders `items[0].name`; a nested
|
|
4
|
+
* template with `[0, 2]` renders `matrix[0][2]`. An empty template renders
|
|
5
|
+
* `""`, which is the path a root-level failure carries.
|
|
6
|
+
*
|
|
7
|
+
* Wildcards consume `indices` left to right, outermost first — the order the
|
|
8
|
+
* index stack pushes them in.
|
|
9
|
+
*
|
|
10
|
+
* Too few indices is a bug in the caller, not a data condition, so it throws
|
|
11
|
+
* rather than rendering a `[*]` that would then look like a declaration path.
|
|
12
|
+
* Surplus indices are ignored: the stack may still hold entries belonging to
|
|
13
|
+
* array nodes above this template.
|
|
14
|
+
*/
|
|
15
|
+
export declare function formatIssuePath(template: readonly PathSegment[], indices: readonly number[]): string;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatIssuePath = formatIssuePath;
|
|
4
|
+
/**
|
|
5
|
+
* `[key items, each, key name]` with `[0]` renders `items[0].name`; a nested
|
|
6
|
+
* template with `[0, 2]` renders `matrix[0][2]`. An empty template renders
|
|
7
|
+
* `""`, which is the path a root-level failure carries.
|
|
8
|
+
*
|
|
9
|
+
* Wildcards consume `indices` left to right, outermost first — the order the
|
|
10
|
+
* index stack pushes them in.
|
|
11
|
+
*
|
|
12
|
+
* Too few indices is a bug in the caller, not a data condition, so it throws
|
|
13
|
+
* rather than rendering a `[*]` that would then look like a declaration path.
|
|
14
|
+
* Surplus indices are ignored: the stack may still hold entries belonging to
|
|
15
|
+
* array nodes above this template.
|
|
16
|
+
*/
|
|
17
|
+
function formatIssuePath(template, indices) {
|
|
18
|
+
let rendered = "";
|
|
19
|
+
let consumed = 0;
|
|
20
|
+
for (const segment of template) {
|
|
21
|
+
if (segment.kind === "key") {
|
|
22
|
+
rendered += rendered === "" ? segment.key : `.${segment.key}`;
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
const index = indices[consumed];
|
|
26
|
+
if (index === undefined) {
|
|
27
|
+
throw new RangeError(`formatIssuePath needs ${consumed + 1} index/indices for the template ` +
|
|
28
|
+
`but received ${indices.length}`);
|
|
29
|
+
}
|
|
30
|
+
consumed += 1;
|
|
31
|
+
rendered += `[${index}]`;
|
|
32
|
+
}
|
|
33
|
+
return rendered;
|
|
34
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `[key items, each, key name]` with `[0]` renders `items[0].name`; a nested
|
|
3
|
+
* template with `[0, 2]` renders `matrix[0][2]`. An empty template renders
|
|
4
|
+
* `""`, which is the path a root-level failure carries.
|
|
5
|
+
*
|
|
6
|
+
* Wildcards consume `indices` left to right, outermost first — the order the
|
|
7
|
+
* index stack pushes them in.
|
|
8
|
+
*
|
|
9
|
+
* Too few indices is a bug in the caller, not a data condition, so it throws
|
|
10
|
+
* rather than rendering a `[*]` that would then look like a declaration path.
|
|
11
|
+
* Surplus indices are ignored: the stack may still hold entries belonging to
|
|
12
|
+
* array nodes above this template.
|
|
13
|
+
*/
|
|
14
|
+
export function formatIssuePath(template, indices) {
|
|
15
|
+
let rendered = "";
|
|
16
|
+
let consumed = 0;
|
|
17
|
+
for (const segment of template) {
|
|
18
|
+
if (segment.kind === "key") {
|
|
19
|
+
rendered += rendered === "" ? segment.key : `.${segment.key}`;
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
const index = indices[consumed];
|
|
23
|
+
if (index === undefined) {
|
|
24
|
+
throw new RangeError(`formatIssuePath needs ${consumed + 1} index/indices for the template ` +
|
|
25
|
+
`but received ${indices.length}`);
|
|
26
|
+
}
|
|
27
|
+
consumed += 1;
|
|
28
|
+
rendered += `[${index}]`;
|
|
29
|
+
}
|
|
30
|
+
return rendered;
|
|
31
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type { EachSegment, IsWellFormedPath, KeySegment, ParsePath, PathSegment, Segment, } from "./path-segment.types";
|
|
2
|
+
export type { PathDepthBudget, PreviousDepth } from "./path-depth.types";
|
|
3
|
+
export type { IsOpaqueObject, OpaqueObject } from "./opaque-object.types";
|
|
4
|
+
export type { ElementOf } from "./element-of.types";
|
|
5
|
+
export type { PropertyValueOf } from "./property-value-of.types";
|
|
6
|
+
export type { FieldPath } from "./field-path.types";
|
|
7
|
+
export type { LeafPath, MissingLeafPaths } from "./leaf-path.types";
|
|
8
|
+
export type { PickPaths, ValueAtPath } from "./value-at-path.types";
|
|
9
|
+
export { PathSyntaxError, RESERVED_SEGMENTS, assertDeclarableKey, isReservedSegment, } from "./reserved-segment";
|
|
10
|
+
export { formatFieldPath, leafKeyOf, parentFieldPath, parseFieldPath, } from "./parse-field-path";
|
|
11
|
+
export type { ValueReader } from "./create-value-reader";
|
|
12
|
+
export { collectKeySegments, createValueReader, isIndexableObject, readOwnProperty, } from "./create-value-reader";
|
|
13
|
+
export type { ArrayReader } from "./create-array-reader";
|
|
14
|
+
export { createArrayReader } from "./create-array-reader";
|
|
15
|
+
export type { ValueWriter } from "./create-value-writer";
|
|
16
|
+
export { createValueWriter } from "./create-value-writer";
|
|
17
|
+
export { formatIssuePath } from "./format-issue-path";
|
|
18
|
+
export { matchPathPattern } from "./match-path-pattern";
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.matchPathPattern = exports.formatIssuePath = exports.createValueWriter = exports.createArrayReader = exports.readOwnProperty = exports.isIndexableObject = exports.createValueReader = exports.collectKeySegments = exports.parseFieldPath = exports.parentFieldPath = exports.leafKeyOf = exports.formatFieldPath = exports.isReservedSegment = exports.assertDeclarableKey = exports.RESERVED_SEGMENTS = exports.PathSyntaxError = void 0;
|
|
4
|
+
var reserved_segment_1 = require("./reserved-segment");
|
|
5
|
+
Object.defineProperty(exports, "PathSyntaxError", { enumerable: true, get: function () { return reserved_segment_1.PathSyntaxError; } });
|
|
6
|
+
Object.defineProperty(exports, "RESERVED_SEGMENTS", { enumerable: true, get: function () { return reserved_segment_1.RESERVED_SEGMENTS; } });
|
|
7
|
+
Object.defineProperty(exports, "assertDeclarableKey", { enumerable: true, get: function () { return reserved_segment_1.assertDeclarableKey; } });
|
|
8
|
+
Object.defineProperty(exports, "isReservedSegment", { enumerable: true, get: function () { return reserved_segment_1.isReservedSegment; } });
|
|
9
|
+
var parse_field_path_1 = require("./parse-field-path");
|
|
10
|
+
Object.defineProperty(exports, "formatFieldPath", { enumerable: true, get: function () { return parse_field_path_1.formatFieldPath; } });
|
|
11
|
+
Object.defineProperty(exports, "leafKeyOf", { enumerable: true, get: function () { return parse_field_path_1.leafKeyOf; } });
|
|
12
|
+
Object.defineProperty(exports, "parentFieldPath", { enumerable: true, get: function () { return parse_field_path_1.parentFieldPath; } });
|
|
13
|
+
Object.defineProperty(exports, "parseFieldPath", { enumerable: true, get: function () { return parse_field_path_1.parseFieldPath; } });
|
|
14
|
+
var create_value_reader_1 = require("./create-value-reader");
|
|
15
|
+
Object.defineProperty(exports, "collectKeySegments", { enumerable: true, get: function () { return create_value_reader_1.collectKeySegments; } });
|
|
16
|
+
Object.defineProperty(exports, "createValueReader", { enumerable: true, get: function () { return create_value_reader_1.createValueReader; } });
|
|
17
|
+
Object.defineProperty(exports, "isIndexableObject", { enumerable: true, get: function () { return create_value_reader_1.isIndexableObject; } });
|
|
18
|
+
Object.defineProperty(exports, "readOwnProperty", { enumerable: true, get: function () { return create_value_reader_1.readOwnProperty; } });
|
|
19
|
+
var create_array_reader_1 = require("./create-array-reader");
|
|
20
|
+
Object.defineProperty(exports, "createArrayReader", { enumerable: true, get: function () { return create_array_reader_1.createArrayReader; } });
|
|
21
|
+
var create_value_writer_1 = require("./create-value-writer");
|
|
22
|
+
Object.defineProperty(exports, "createValueWriter", { enumerable: true, get: function () { return create_value_writer_1.createValueWriter; } });
|
|
23
|
+
var format_issue_path_1 = require("./format-issue-path");
|
|
24
|
+
Object.defineProperty(exports, "formatIssuePath", { enumerable: true, get: function () { return format_issue_path_1.formatIssuePath; } });
|
|
25
|
+
var match_path_pattern_1 = require("./match-path-pattern");
|
|
26
|
+
Object.defineProperty(exports, "matchPathPattern", { enumerable: true, get: function () { return match_path_pattern_1.matchPathPattern; } });
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { PathSyntaxError, RESERVED_SEGMENTS, assertDeclarableKey, isReservedSegment, } from "./reserved-segment.mjs";
|
|
2
|
+
export { formatFieldPath, leafKeyOf, parentFieldPath, parseFieldPath, } from "./parse-field-path.mjs";
|
|
3
|
+
export { collectKeySegments, createValueReader, isIndexableObject, readOwnProperty, } from "./create-value-reader.mjs";
|
|
4
|
+
export { createArrayReader } from "./create-array-reader.mjs";
|
|
5
|
+
export { createValueWriter } from "./create-value-writer.mjs";
|
|
6
|
+
export { formatIssuePath } from "./format-issue-path.mjs";
|
|
7
|
+
export { matchPathPattern } from "./match-path-pattern.mjs";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { IsOpaqueObject } from "./opaque-object.types";
|
|
2
|
+
import type { PathDepthBudget, PreviousDepth } from "./path-depth.types";
|
|
3
|
+
import type { ElementOf } from "./element-of.types";
|
|
4
|
+
/** The subset of FieldPath<T> that terminates at a value: the paths `.strict()`
|
|
5
|
+
* demands a declaration for. */
|
|
6
|
+
export type LeafPath<T, D extends number = PathDepthBudget> = RecordLeafPaths<T, D>;
|
|
7
|
+
export type MissingLeafPaths<T, TDeclared extends string> = Exclude<LeafPath<T>, TDeclared>;
|
|
8
|
+
/** False for `{}` and for anything with a string index signature. */
|
|
9
|
+
type IsEnumerableRecord<U> = [Extract<keyof U, string>] extends [never] ? false : string extends Extract<keyof U, string> ? false : true;
|
|
10
|
+
type RecordLeafPaths<T, D extends number> = NonNullable<T> extends infer U ? U extends readonly unknown[] ? never : IsOpaqueObject<U> extends true ? never : U extends object ? IsEnumerableRecord<U> extends true ? {
|
|
11
|
+
[K in Extract<keyof U, string>]-?: LeafPathsBelow<K, U[K], D>;
|
|
12
|
+
}[Extract<keyof U, string>] : never : never : never;
|
|
13
|
+
type LeafPathsBelow<Prefix extends string, V, D extends number> = D extends 0 ? Prefix : NonNullable<V> extends infer U ? U extends readonly unknown[] ? LeafPathsBelow<`${Prefix}[*]`, ElementOf<U>, PreviousDepth[D]> : IsOpaqueObject<U> extends true ? Prefix : U extends object ? IsEnumerableRecord<U> extends true ? {
|
|
14
|
+
[K in Extract<keyof U, string>]-?: LeafPathsBelow<`${Prefix}.${K}`, U[K], PreviousDepth[D]>;
|
|
15
|
+
}[Extract<keyof U, string>] : never : Prefix : never;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `pattern` is a declaration path and is PARSED, so a malformed pattern throws
|
|
3
|
+
* PathSyntaxError rather than quietly matching nothing.
|
|
4
|
+
*
|
|
5
|
+
* `concretePath` is untrusted text (it may come straight from a caller
|
|
6
|
+
* filtering issues) and is only scanned: a `[*]` in it fails the digit rule
|
|
7
|
+
* and returns false, which keeps the two grammars from meeting in the middle.
|
|
8
|
+
*/
|
|
9
|
+
export declare function matchPathPattern(pattern: string, concretePath: string): boolean;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.matchPathPattern = matchPathPattern;
|
|
4
|
+
// ===========================================================================
|
|
5
|
+
// L1 src/path/match-path-pattern.ts
|
|
6
|
+
// The round trip between the two grammars: does the issue path `items[0].name`
|
|
7
|
+
// belong to the declaration `items[*].name`?
|
|
8
|
+
//
|
|
9
|
+
// The legacy version built a RegExp by string replacement on every call. This
|
|
10
|
+
// scans the concrete path against the already-parsed template instead, so a
|
|
11
|
+
// key containing a regex metacharacter cannot change the meaning of the match
|
|
12
|
+
// and no pattern is ever compiled from user text.
|
|
13
|
+
// ===========================================================================
|
|
14
|
+
const parse_field_path_1 = require("./parse-field-path");
|
|
15
|
+
/**
|
|
16
|
+
* `pattern` is a declaration path and is PARSED, so a malformed pattern throws
|
|
17
|
+
* PathSyntaxError rather than quietly matching nothing.
|
|
18
|
+
*
|
|
19
|
+
* `concretePath` is untrusted text (it may come straight from a caller
|
|
20
|
+
* filtering issues) and is only scanned: a `[*]` in it fails the digit rule
|
|
21
|
+
* and returns false, which keeps the two grammars from meeting in the middle.
|
|
22
|
+
*/
|
|
23
|
+
function matchPathPattern(pattern, concretePath) {
|
|
24
|
+
const template = (0, parse_field_path_1.parseFieldPath)(pattern);
|
|
25
|
+
let cursor = 0;
|
|
26
|
+
for (let i = 0; i < template.length; i += 1) {
|
|
27
|
+
const segment = template[i];
|
|
28
|
+
if (segment === undefined)
|
|
29
|
+
return false;
|
|
30
|
+
if (segment.kind === "key") {
|
|
31
|
+
if (i > 0) {
|
|
32
|
+
if (concretePath[cursor] !== ".")
|
|
33
|
+
return false;
|
|
34
|
+
cursor += 1;
|
|
35
|
+
}
|
|
36
|
+
if (!concretePath.startsWith(segment.key, cursor))
|
|
37
|
+
return false;
|
|
38
|
+
cursor += segment.key.length;
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
const afterIndex = scanIndex(concretePath, cursor);
|
|
42
|
+
if (afterIndex === null)
|
|
43
|
+
return false;
|
|
44
|
+
cursor = afterIndex;
|
|
45
|
+
}
|
|
46
|
+
return cursor === concretePath.length;
|
|
47
|
+
}
|
|
48
|
+
/** Consumes `[<digits>]` at `from`, returning the position after it. */
|
|
49
|
+
function scanIndex(concretePath, from) {
|
|
50
|
+
if (concretePath[from] !== "[")
|
|
51
|
+
return null;
|
|
52
|
+
let cursor = from + 1;
|
|
53
|
+
let digits = 0;
|
|
54
|
+
while (isDigit(concretePath[cursor])) {
|
|
55
|
+
cursor += 1;
|
|
56
|
+
digits += 1;
|
|
57
|
+
}
|
|
58
|
+
if (digits === 0)
|
|
59
|
+
return null;
|
|
60
|
+
if (concretePath[cursor] !== "]")
|
|
61
|
+
return null;
|
|
62
|
+
return cursor + 1;
|
|
63
|
+
}
|
|
64
|
+
function isDigit(character) {
|
|
65
|
+
return character !== undefined && character >= "0" && character <= "9";
|
|
66
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// ===========================================================================
|
|
2
|
+
// L1 src/path/match-path-pattern.ts
|
|
3
|
+
// The round trip between the two grammars: does the issue path `items[0].name`
|
|
4
|
+
// belong to the declaration `items[*].name`?
|
|
5
|
+
//
|
|
6
|
+
// The legacy version built a RegExp by string replacement on every call. This
|
|
7
|
+
// scans the concrete path against the already-parsed template instead, so a
|
|
8
|
+
// key containing a regex metacharacter cannot change the meaning of the match
|
|
9
|
+
// and no pattern is ever compiled from user text.
|
|
10
|
+
// ===========================================================================
|
|
11
|
+
import { parseFieldPath } from "./parse-field-path.mjs";
|
|
12
|
+
/**
|
|
13
|
+
* `pattern` is a declaration path and is PARSED, so a malformed pattern throws
|
|
14
|
+
* PathSyntaxError rather than quietly matching nothing.
|
|
15
|
+
*
|
|
16
|
+
* `concretePath` is untrusted text (it may come straight from a caller
|
|
17
|
+
* filtering issues) and is only scanned: a `[*]` in it fails the digit rule
|
|
18
|
+
* and returns false, which keeps the two grammars from meeting in the middle.
|
|
19
|
+
*/
|
|
20
|
+
export function matchPathPattern(pattern, concretePath) {
|
|
21
|
+
const template = parseFieldPath(pattern);
|
|
22
|
+
let cursor = 0;
|
|
23
|
+
for (let i = 0; i < template.length; i += 1) {
|
|
24
|
+
const segment = template[i];
|
|
25
|
+
if (segment === undefined)
|
|
26
|
+
return false;
|
|
27
|
+
if (segment.kind === "key") {
|
|
28
|
+
if (i > 0) {
|
|
29
|
+
if (concretePath[cursor] !== ".")
|
|
30
|
+
return false;
|
|
31
|
+
cursor += 1;
|
|
32
|
+
}
|
|
33
|
+
if (!concretePath.startsWith(segment.key, cursor))
|
|
34
|
+
return false;
|
|
35
|
+
cursor += segment.key.length;
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
const afterIndex = scanIndex(concretePath, cursor);
|
|
39
|
+
if (afterIndex === null)
|
|
40
|
+
return false;
|
|
41
|
+
cursor = afterIndex;
|
|
42
|
+
}
|
|
43
|
+
return cursor === concretePath.length;
|
|
44
|
+
}
|
|
45
|
+
/** Consumes `[<digits>]` at `from`, returning the position after it. */
|
|
46
|
+
function scanIndex(concretePath, from) {
|
|
47
|
+
if (concretePath[from] !== "[")
|
|
48
|
+
return null;
|
|
49
|
+
let cursor = from + 1;
|
|
50
|
+
let digits = 0;
|
|
51
|
+
while (isDigit(concretePath[cursor])) {
|
|
52
|
+
cursor += 1;
|
|
53
|
+
digits += 1;
|
|
54
|
+
}
|
|
55
|
+
if (digits === 0)
|
|
56
|
+
return null;
|
|
57
|
+
if (concretePath[cursor] !== "]")
|
|
58
|
+
return null;
|
|
59
|
+
return cursor + 1;
|
|
60
|
+
}
|
|
61
|
+
function isDigit(character) {
|
|
62
|
+
return character !== undefined && character >= "0" && character <= "9";
|
|
63
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Built-in and callable object types whose members are implementation, not
|
|
2
|
+
* data. FieldPath (generator) and ValueAtPath (resolver) both read this, so
|
|
3
|
+
* the two directions cannot disagree about where a path stops. */
|
|
4
|
+
export type OpaqueObject = Date | RegExp | Error | Promise<unknown> | ReadonlyMap<unknown, unknown> | ReadonlySet<unknown> | WeakMap<object, unknown> | WeakSet<object> | ArrayBuffer | SharedArrayBuffer | ArrayBufferView | ((...args: never[]) => unknown) | (abstract new (...args: never[]) => unknown);
|
|
5
|
+
export type IsOpaqueObject<T> = [T] extends [never] ? false : [NonNullable<T>] extends [OpaqueObject] ? true : false;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { PathSegment } from "./path-segment.types";
|
|
2
|
+
/**
|
|
3
|
+
* Grammar: `head ("." head)*` where `head` is `key ("[*]")*`.
|
|
4
|
+
*
|
|
5
|
+
* `[*]` is the DECLARATION wildcard and the only bracket form; `[0]` belongs
|
|
6
|
+
* to the issue grammar (see formatIssuePath) and is rejected here, so a
|
|
7
|
+
* wildcard path can never be emitted as an issue path or vice versa.
|
|
8
|
+
*/
|
|
9
|
+
export declare function parseFieldPath(path: string): readonly PathSegment[];
|
|
10
|
+
/** The inverse of parseFieldPath. Exported so the round trip is testable and
|
|
11
|
+
* so parentFieldPath never rebuilds a path by string surgery. */
|
|
12
|
+
export declare function formatFieldPath(segments: readonly PathSegment[]): string;
|
|
13
|
+
/**
|
|
14
|
+
* The declared path one level up, or null at the top. Step 9 groups declared
|
|
15
|
+
* child keys by this, so it must drop exactly one segment: the parent of
|
|
16
|
+
* `items[*]` is `items`, and the parent of `matrix[*][*]` is `matrix[*]`.
|
|
17
|
+
*/
|
|
18
|
+
export declare function parentFieldPath(path: string): string | null;
|
|
19
|
+
/**
|
|
20
|
+
* The final key of a path, or null when the path ends in a wildcard — an
|
|
21
|
+
* element has an index, not a key. Returning null rather than `""` is what
|
|
22
|
+
* lets step 9 tell "a declared child key of this object" from "the elements of
|
|
23
|
+
* this array" without re-inspecting the string.
|
|
24
|
+
*/
|
|
25
|
+
export declare function leafKeyOf(path: string): string | null;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseFieldPath = parseFieldPath;
|
|
4
|
+
exports.formatFieldPath = formatFieldPath;
|
|
5
|
+
exports.parentFieldPath = parentFieldPath;
|
|
6
|
+
exports.leafKeyOf = leafKeyOf;
|
|
7
|
+
const reserved_segment_1 = require("./reserved-segment");
|
|
8
|
+
const EACH_SUFFIX = "[*]";
|
|
9
|
+
const EACH_SEGMENT = Object.freeze({ kind: "each" });
|
|
10
|
+
/**
|
|
11
|
+
* Grammar: `head ("." head)*` where `head` is `key ("[*]")*`.
|
|
12
|
+
*
|
|
13
|
+
* `[*]` is the DECLARATION wildcard and the only bracket form; `[0]` belongs
|
|
14
|
+
* to the issue grammar (see formatIssuePath) and is rejected here, so a
|
|
15
|
+
* wildcard path can never be emitted as an issue path or vice versa.
|
|
16
|
+
*/
|
|
17
|
+
function parseFieldPath(path) {
|
|
18
|
+
if (path === "") {
|
|
19
|
+
throw new reserved_segment_1.PathSyntaxError(path, "a field path must not be empty");
|
|
20
|
+
}
|
|
21
|
+
const segments = [];
|
|
22
|
+
for (const head of path.split(".")) {
|
|
23
|
+
appendHead(head, path, segments);
|
|
24
|
+
}
|
|
25
|
+
return Object.freeze(segments);
|
|
26
|
+
}
|
|
27
|
+
function appendHead(head, path, into) {
|
|
28
|
+
let key = head;
|
|
29
|
+
let eachCount = 0;
|
|
30
|
+
while (key.endsWith(EACH_SUFFIX)) {
|
|
31
|
+
key = key.slice(0, -EACH_SUFFIX.length);
|
|
32
|
+
eachCount += 1;
|
|
33
|
+
}
|
|
34
|
+
(0, reserved_segment_1.assertDeclarableKey)(key, path);
|
|
35
|
+
into.push(Object.freeze({ kind: "key", key }));
|
|
36
|
+
for (let i = 0; i < eachCount; i += 1)
|
|
37
|
+
into.push(EACH_SEGMENT);
|
|
38
|
+
}
|
|
39
|
+
/** The inverse of parseFieldPath. Exported so the round trip is testable and
|
|
40
|
+
* so parentFieldPath never rebuilds a path by string surgery. */
|
|
41
|
+
function formatFieldPath(segments) {
|
|
42
|
+
let rendered = "";
|
|
43
|
+
segments.forEach((segment, index) => {
|
|
44
|
+
if (segment.kind === "each") {
|
|
45
|
+
rendered += EACH_SUFFIX;
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
rendered += index === 0 ? segment.key : `.${segment.key}`;
|
|
49
|
+
});
|
|
50
|
+
return rendered;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* The declared path one level up, or null at the top. Step 9 groups declared
|
|
54
|
+
* child keys by this, so it must drop exactly one segment: the parent of
|
|
55
|
+
* `items[*]` is `items`, and the parent of `matrix[*][*]` is `matrix[*]`.
|
|
56
|
+
*/
|
|
57
|
+
function parentFieldPath(path) {
|
|
58
|
+
const segments = parseFieldPath(path);
|
|
59
|
+
if (segments.length <= 1)
|
|
60
|
+
return null;
|
|
61
|
+
return formatFieldPath(segments.slice(0, -1));
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The final key of a path, or null when the path ends in a wildcard — an
|
|
65
|
+
* element has an index, not a key. Returning null rather than `""` is what
|
|
66
|
+
* lets step 9 tell "a declared child key of this object" from "the elements of
|
|
67
|
+
* this array" without re-inspecting the string.
|
|
68
|
+
*/
|
|
69
|
+
function leafKeyOf(path) {
|
|
70
|
+
const segments = parseFieldPath(path);
|
|
71
|
+
const last = segments[segments.length - 1];
|
|
72
|
+
if (last === undefined || last.kind === "each")
|
|
73
|
+
return null;
|
|
74
|
+
return last.key;
|
|
75
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { PathSyntaxError, assertDeclarableKey } from "./reserved-segment.mjs";
|
|
2
|
+
const EACH_SUFFIX = "[*]";
|
|
3
|
+
const EACH_SEGMENT = Object.freeze({ kind: "each" });
|
|
4
|
+
/**
|
|
5
|
+
* Grammar: `head ("." head)*` where `head` is `key ("[*]")*`.
|
|
6
|
+
*
|
|
7
|
+
* `[*]` is the DECLARATION wildcard and the only bracket form; `[0]` belongs
|
|
8
|
+
* to the issue grammar (see formatIssuePath) and is rejected here, so a
|
|
9
|
+
* wildcard path can never be emitted as an issue path or vice versa.
|
|
10
|
+
*/
|
|
11
|
+
export function parseFieldPath(path) {
|
|
12
|
+
if (path === "") {
|
|
13
|
+
throw new PathSyntaxError(path, "a field path must not be empty");
|
|
14
|
+
}
|
|
15
|
+
const segments = [];
|
|
16
|
+
for (const head of path.split(".")) {
|
|
17
|
+
appendHead(head, path, segments);
|
|
18
|
+
}
|
|
19
|
+
return Object.freeze(segments);
|
|
20
|
+
}
|
|
21
|
+
function appendHead(head, path, into) {
|
|
22
|
+
let key = head;
|
|
23
|
+
let eachCount = 0;
|
|
24
|
+
while (key.endsWith(EACH_SUFFIX)) {
|
|
25
|
+
key = key.slice(0, -EACH_SUFFIX.length);
|
|
26
|
+
eachCount += 1;
|
|
27
|
+
}
|
|
28
|
+
assertDeclarableKey(key, path);
|
|
29
|
+
into.push(Object.freeze({ kind: "key", key }));
|
|
30
|
+
for (let i = 0; i < eachCount; i += 1)
|
|
31
|
+
into.push(EACH_SEGMENT);
|
|
32
|
+
}
|
|
33
|
+
/** The inverse of parseFieldPath. Exported so the round trip is testable and
|
|
34
|
+
* so parentFieldPath never rebuilds a path by string surgery. */
|
|
35
|
+
export function formatFieldPath(segments) {
|
|
36
|
+
let rendered = "";
|
|
37
|
+
segments.forEach((segment, index) => {
|
|
38
|
+
if (segment.kind === "each") {
|
|
39
|
+
rendered += EACH_SUFFIX;
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
rendered += index === 0 ? segment.key : `.${segment.key}`;
|
|
43
|
+
});
|
|
44
|
+
return rendered;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* The declared path one level up, or null at the top. Step 9 groups declared
|
|
48
|
+
* child keys by this, so it must drop exactly one segment: the parent of
|
|
49
|
+
* `items[*]` is `items`, and the parent of `matrix[*][*]` is `matrix[*]`.
|
|
50
|
+
*/
|
|
51
|
+
export function parentFieldPath(path) {
|
|
52
|
+
const segments = parseFieldPath(path);
|
|
53
|
+
if (segments.length <= 1)
|
|
54
|
+
return null;
|
|
55
|
+
return formatFieldPath(segments.slice(0, -1));
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* The final key of a path, or null when the path ends in a wildcard — an
|
|
59
|
+
* element has an index, not a key. Returning null rather than `""` is what
|
|
60
|
+
* lets step 9 tell "a declared child key of this object" from "the elements of
|
|
61
|
+
* this array" without re-inspecting the string.
|
|
62
|
+
*/
|
|
63
|
+
export function leafKeyOf(path) {
|
|
64
|
+
const segments = parseFieldPath(path);
|
|
65
|
+
const last = segments[segments.length - 1];
|
|
66
|
+
if (last === undefined || last.kind === "each")
|
|
67
|
+
return null;
|
|
68
|
+
return last.key;
|
|
69
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface KeySegment {
|
|
2
|
+
readonly key: string;
|
|
3
|
+
}
|
|
4
|
+
export interface EachSegment {
|
|
5
|
+
readonly each: true;
|
|
6
|
+
}
|
|
7
|
+
export type Segment = KeySegment | EachSegment;
|
|
8
|
+
/** Splits one dot-free head such as `items[*][*]` into its segments. */
|
|
9
|
+
type ParseHead<H extends string> = H extends `${infer K}[*]` ? [...ParseHead<K>, EachSegment] : [{
|
|
10
|
+
readonly key: H;
|
|
11
|
+
}];
|
|
12
|
+
export type ParsePath<P extends string> = P extends `${infer H}.${infer R}` ? [...ParseHead<H>, ...ParsePath<R>] : ParseHead<P>;
|
|
13
|
+
type HasEmptyKey<S extends readonly Segment[]> = S extends readonly [
|
|
14
|
+
infer H,
|
|
15
|
+
...infer R extends readonly Segment[]
|
|
16
|
+
] ? H extends {
|
|
17
|
+
readonly key: "";
|
|
18
|
+
} ? true : HasEmptyKey<R> : false;
|
|
19
|
+
export type IsWellFormedPath<P extends string> = ParsePath<P> extends readonly [Segment, ...Segment[]] ? HasEmptyKey<ParsePath<P>> extends true ? false : true : false;
|
|
20
|
+
/** The runtime segment shape parseFieldPath produces (same vocabulary). */
|
|
21
|
+
export type PathSegment = {
|
|
22
|
+
readonly kind: "key";
|
|
23
|
+
readonly key: string;
|
|
24
|
+
} | {
|
|
25
|
+
readonly kind: "each";
|
|
26
|
+
};
|
|
27
|
+
export {};
|