@astrale-os/kernel-dsl 0.2.0-beta.4 → 0.2.0-beta.41
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/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/upgrade/contract.d.ts +0 -1
- package/dist/upgrade/contract.js +0 -1
- package/dist/upgrade/index.d.ts +0 -1
- package/dist/upgrade/index.js +0 -1
- package/dist/v1/addressing/class-key.d.ts +12 -0
- package/dist/v1/addressing/class-key.js +39 -0
- package/dist/v1/addressing/definition-ref.d.ts +28 -0
- package/dist/v1/addressing/definition-ref.js +63 -0
- package/dist/v1/addressing/domain-dependency.d.ts +18 -0
- package/dist/v1/addressing/domain-dependency.js +6 -0
- package/dist/v1/addressing/index.d.ts +10 -4
- package/dist/v1/addressing/index.js +5 -3
- package/dist/v1/addressing/key.d.ts +14 -16
- package/dist/v1/addressing/key.js +24 -34
- package/dist/v1/addressing/method-address.d.ts +9 -0
- package/dist/v1/addressing/method-address.js +1 -0
- package/dist/v1/addressing/method-key.d.ts +15 -0
- package/dist/v1/addressing/method-key.js +60 -0
- package/dist/v1/addressing/ordering.d.ts +6 -0
- package/dist/v1/addressing/ordering.js +20 -0
- package/dist/v1/addressing/patterns.d.ts +12 -3
- package/dist/v1/addressing/patterns.js +11 -2
- package/dist/v1/addressing/property-key.d.ts +10 -15
- package/dist/v1/addressing/property-key.js +24 -15
- package/dist/v1/addressing/revision.d.ts +8 -0
- package/dist/v1/addressing/revision.js +8 -0
- package/dist/v1/builder/callable/authoring.d.ts +143 -0
- package/dist/v1/builder/callable/authoring.js +82 -0
- package/dist/v1/builder/class/authoring.d.ts +400 -0
- package/dist/v1/builder/class/authoring.js +134 -0
- package/dist/v1/builder/class/property.d.ts +58 -0
- package/dist/v1/builder/class/property.js +57 -0
- package/dist/v1/builder/core/authoring.d.ts +47 -0
- package/dist/v1/builder/core/authoring.js +39 -0
- package/dist/v1/builder/index.d.ts +26 -22
- package/dist/v1/builder/index.js +11 -11
- package/dist/v1/builder/lowering/callable.d.ts +24 -0
- package/dist/v1/builder/lowering/callable.js +150 -0
- package/dist/v1/builder/lowering/class.d.ts +22 -0
- package/dist/v1/builder/lowering/class.js +134 -0
- package/dist/v1/builder/lowering/core-properties.d.ts +10 -0
- package/dist/v1/builder/lowering/core-properties.js +76 -0
- package/dist/v1/builder/lowering/core.d.ts +22 -0
- package/dist/v1/builder/lowering/core.js +50 -0
- package/dist/v1/builder/lowering/policy.d.ts +16 -0
- package/dist/v1/builder/lowering/policy.js +60 -0
- package/dist/v1/builder/lowering/schema/capture.d.ts +4 -0
- package/dist/v1/builder/lowering/schema/capture.js +75 -0
- package/dist/v1/builder/lowering/schema/compile.d.ts +10 -0
- package/dist/v1/builder/lowering/schema/compile.js +80 -0
- package/dist/v1/builder/lowering/schema/context.d.ts +49 -0
- package/dist/v1/builder/lowering/schema/context.js +277 -0
- package/dist/v1/builder/lowering/schema/ownership.d.ts +8 -0
- package/dist/v1/builder/lowering/schema/ownership.js +30 -0
- package/dist/v1/builder/lowering/value/compile.d.ts +15 -0
- package/dist/v1/builder/lowering/value/compile.js +143 -0
- package/dist/v1/builder/lowering/value/path.d.ts +3 -0
- package/dist/v1/builder/lowering/value/path.js +20 -0
- package/dist/v1/builder/lowering/value/zod.d.ts +32 -0
- package/dist/v1/builder/lowering/value/zod.js +342 -0
- package/dist/v1/builder/lowering/view.d.ts +11 -0
- package/dist/v1/builder/lowering/view.js +27 -0
- package/dist/v1/builder/policy/authoring.d.ts +61 -0
- package/dist/v1/builder/policy/authoring.js +117 -0
- package/dist/v1/builder/schema/define.d.ts +11 -0
- package/dist/v1/builder/schema/define.js +5 -0
- package/dist/v1/builder/schema/diagnostic.d.ts +16 -0
- package/dist/v1/builder/schema/diagnostic.js +31 -0
- package/dist/v1/builder/schema/handle.d.ts +7 -0
- package/dist/v1/builder/schema/handle.js +14 -0
- package/dist/v1/builder/schema/input.d.ts +15 -0
- package/dist/v1/builder/schema/input.js +1 -0
- package/dist/v1/builder/schema/lazy.d.ts +2 -0
- package/dist/v1/builder/schema/lazy.js +13 -0
- package/dist/v1/builder/schema/projection.d.ts +375 -0
- package/dist/v1/builder/schema/projection.js +1 -0
- package/dist/v1/builder/value/full-match.d.ts +4 -0
- package/dist/v1/builder/value/full-match.js +11 -0
- package/dist/v1/builder/value/path-metadata.d.ts +4 -0
- package/dist/v1/builder/value/path-metadata.js +7 -0
- package/dist/v1/builder/value/path.d.ts +8 -0
- package/dist/v1/builder/value/path.js +11 -0
- package/dist/v1/builder/value/schema.d.ts +16 -0
- package/dist/v1/builder/value/schema.js +10 -0
- package/dist/v1/builder/view/authoring.d.ts +17 -0
- package/dist/v1/builder/view/authoring.js +16 -0
- package/dist/v1/bundle/codec.d.ts +0 -1
- package/dist/v1/bundle/codec.js +36 -19
- package/dist/v1/bundle/create.d.ts +3 -0
- package/dist/v1/bundle/create.js +5 -0
- package/dist/v1/bundle/diagnostic.d.ts +10 -0
- package/dist/v1/bundle/diagnostic.js +17 -0
- package/dist/v1/bundle/index.d.ts +3 -2
- package/dist/v1/bundle/index.js +2 -2
- package/dist/v1/bundle/model.d.ts +1 -4
- package/dist/v1/bundle/model.js +0 -6
- package/dist/v1/bundle/structure.d.ts +1 -2
- package/dist/v1/bundle/structure.js +6 -6
- package/dist/v1/bundle/transport.d.ts +8 -0
- package/dist/v1/bundle/transport.js +7 -0
- package/dist/v1/compiled/admission/accept.d.ts +3 -0
- package/dist/v1/compiled/admission/accept.js +1068 -0
- package/dist/v1/compiled/admission/revision.d.ts +4 -0
- package/dist/v1/compiled/admission/revision.js +79 -0
- package/dist/v1/compiled/admission/semantics.d.ts +7 -0
- package/dist/v1/compiled/admission/semantics.js +1187 -0
- package/dist/v1/compiled/codec/json.d.ts +3 -0
- package/dist/v1/compiled/codec/json.js +9 -0
- package/dist/v1/compiled/compiler/compile.d.ts +4 -0
- package/dist/v1/compiled/compiler/compile.js +142 -0
- package/dist/v1/compiled/diagnostic.d.ts +11 -0
- package/dist/v1/compiled/diagnostic.js +13 -0
- package/dist/v1/compiled/generated.d.ts +10 -0
- package/dist/v1/compiled/generated.js +15 -0
- package/dist/v1/compiled/index.d.ts +7 -0
- package/dist/v1/compiled/index.js +5 -0
- package/dist/v1/compiled/loader/index.d.ts +1 -0
- package/dist/v1/compiled/loader/index.js +1 -0
- package/dist/v1/compiled/loader/load.d.ts +18 -0
- package/dist/v1/compiled/loader/load.js +156 -0
- package/dist/v1/compiled/model/schema.d.ts +78 -0
- package/dist/v1/compiled/model/schema.js +1 -0
- package/dist/v1/domain/create.d.ts +8 -0
- package/dist/v1/domain/create.js +273 -0
- package/dist/v1/domain/index.d.ts +2 -0
- package/dist/v1/domain/index.js +1 -0
- package/dist/v1/domain/model/domain.d.ts +59 -0
- package/dist/v1/domain/model/domain.js +1 -0
- package/dist/v1/domain/model/input.d.ts +31 -0
- package/dist/v1/domain/model/input.js +1 -0
- package/dist/v1/domain/namespace/member-collection.d.ts +5 -0
- package/dist/v1/domain/namespace/member-collection.js +81 -0
- package/dist/v1/domain/projection/classes.d.ts +4 -0
- package/dist/v1/domain/projection/classes.js +178 -0
- package/dist/v1/domain/validation/create.d.ts +18 -0
- package/dist/v1/domain/validation/create.js +75 -0
- package/dist/v1/index.d.ts +15 -5
- package/dist/v1/index.js +7 -3
- package/dist/v1/language/callable/composition.d.ts +27 -0
- package/dist/v1/language/callable/composition.js +52 -0
- package/dist/v1/language/callable/executable.d.ts +6 -0
- package/dist/v1/language/callable/executable.js +4 -0
- package/dist/v1/language/callable/index.d.ts +2 -0
- package/dist/v1/language/callable/index.js +1 -0
- package/dist/v1/language/callable/model/callable.d.ts +56 -0
- package/dist/v1/language/callable/model/callable.js +3 -0
- package/dist/v1/language/callable/resolved.d.ts +83 -0
- package/dist/v1/language/callable/resolved.js +1 -0
- package/dist/v1/language/class/facets.d.ts +61 -0
- package/dist/v1/language/class/facets.js +1 -0
- package/dist/v1/language/class/index.d.ts +8 -0
- package/dist/v1/language/class/index.js +1 -0
- package/dist/v1/language/class/model/class.d.ts +37 -0
- package/dist/v1/language/class/model/class.js +1 -0
- package/dist/v1/language/class/model/data.d.ts +11 -0
- package/dist/v1/language/class/model/data.js +2 -0
- package/dist/v1/language/class/model/edge.d.ts +38 -0
- package/dist/v1/language/class/model/edge.js +1 -0
- package/dist/v1/language/class/model/property.d.ts +17 -0
- package/dist/v1/language/class/model/property.js +1 -0
- package/dist/v1/language/class/property-values.d.ts +15 -0
- package/dist/v1/language/class/property-values.js +33 -0
- package/dist/v1/language/class/resolved.d.ts +126 -0
- package/dist/v1/language/class/resolved.js +1 -0
- package/dist/v1/language/core/index.d.ts +2 -0
- package/dist/v1/language/core/index.js +1 -0
- package/dist/v1/language/core/model/core.d.ts +26 -0
- package/dist/v1/language/core/model/core.js +1 -0
- package/dist/v1/language/core/resolved.d.ts +25 -0
- package/dist/v1/language/core/resolved.js +1 -0
- package/dist/v1/language/definition/metadata.d.ts +12 -0
- package/dist/v1/language/definition/metadata.js +12 -0
- package/dist/v1/language/definition.d.ts +7 -0
- package/dist/v1/language/definition.js +1 -0
- package/dist/v1/language/index.d.ts +28 -0
- package/dist/v1/language/index.js +5 -0
- package/dist/v1/language/policy/analysis/branches.d.ts +20 -0
- package/dist/v1/language/policy/analysis/branches.js +174 -0
- package/dist/v1/language/policy/analysis/budgets.d.ts +16 -0
- package/dist/v1/language/policy/analysis/budgets.js +25 -0
- package/dist/v1/language/policy/index.d.ts +4 -0
- package/dist/v1/language/policy/index.js +2 -0
- package/dist/v1/language/policy/model/policy.d.ts +116 -0
- package/dist/v1/language/policy/model/policy.js +35 -0
- package/dist/v1/language/policy/normalization/normalize.d.ts +4 -0
- package/dist/v1/language/policy/normalization/normalize.js +275 -0
- package/dist/v1/language/policy/resolved.d.ts +9 -0
- package/dist/v1/language/policy/resolved.js +1 -0
- package/dist/v1/language/resolved.d.ts +10 -0
- package/dist/v1/language/resolved.js +1 -0
- package/dist/v1/language/state/index.d.ts +3 -0
- package/dist/v1/language/state/index.js +1 -0
- package/dist/v1/language/state/machine.d.ts +28 -0
- package/dist/v1/language/state/machine.js +40 -0
- package/dist/v1/language/state/topology.d.ts +14 -0
- package/dist/v1/language/state/topology.js +69 -0
- package/dist/v1/language/validation/diagnostic.d.ts +8 -0
- package/dist/v1/language/validation/diagnostic.js +3 -0
- package/dist/v1/language/value/compile/fields.d.ts +3 -0
- package/dist/v1/language/value/compile/fields.js +60 -0
- package/dist/v1/language/value/compile/load.d.ts +6 -0
- package/dist/v1/language/value/compile/load.js +62 -0
- package/dist/v1/language/value/compile/model.d.ts +42 -0
- package/dist/v1/language/value/compile/model.js +1 -0
- package/dist/v1/language/value/evaluate/assertions.d.ts +8 -0
- package/dist/v1/language/value/evaluate/assertions.js +71 -0
- package/dist/v1/language/value/evaluate/evaluator.d.ts +4 -0
- package/dist/v1/language/value/evaluate/evaluator.js +426 -0
- package/dist/v1/language/value/evaluate/preparation.d.ts +22 -0
- package/dist/v1/language/value/evaluate/preparation.js +126 -0
- package/dist/v1/language/value/evaluate/program.d.ts +3 -0
- package/dist/v1/language/value/evaluate/program.js +16 -0
- package/dist/v1/language/value/evaluate/types.d.ts +36 -0
- package/dist/v1/language/value/evaluate/types.js +9 -0
- package/dist/v1/language/value/evaluate/validate.d.ts +16 -0
- package/dist/v1/language/value/evaluate/validate.js +50 -0
- package/dist/v1/language/value/index.d.ts +11 -0
- package/dist/v1/language/value/index.js +8 -0
- package/dist/v1/language/value/model/blob.d.ts +33 -0
- package/dist/v1/language/value/model/blob.js +90 -0
- package/dist/v1/language/value/model/instant.d.ts +9 -0
- package/dist/v1/language/value/model/instant.js +37 -0
- package/dist/v1/language/value/model/object.d.ts +5 -0
- package/dist/v1/language/value/model/object.js +3 -0
- package/dist/v1/language/value/model/schema.d.ts +25 -0
- package/dist/v1/language/value/model/schema.js +11 -0
- package/dist/v1/language/value/ordering.d.ts +15 -0
- package/dist/v1/language/value/ordering.js +170 -0
- package/dist/v1/language/value/profile/canonicalize.d.ts +4 -0
- package/dist/v1/language/value/profile/canonicalize.js +130 -0
- package/dist/v1/language/value/profile/json.validate.d.ts +2 -0
- package/dist/v1/language/value/profile/json.validate.js +14 -0
- package/dist/v1/language/value/profile/meta-schema.compiled.d.ts +78 -0
- package/dist/v1/language/value/profile/meta-schema.compiled.js +2079 -0
- package/dist/v1/language/value/profile/meta-schema.d.ts +4 -0
- package/dist/v1/language/value/profile/meta-schema.js +19 -0
- package/dist/v1/language/value/profile/rules.d.ts +3 -0
- package/dist/v1/language/value/profile/rules.js +141 -0
- package/dist/v1/language/value/profile/validate.d.ts +4 -0
- package/dist/v1/language/value/profile/validate.js +39 -0
- package/dist/v1/language/value/profile/vocabulary.d.ts +2 -0
- package/dist/v1/language/value/profile/vocabulary.js +68 -0
- package/dist/v1/language/value/reference/closure.d.ts +11 -0
- package/dist/v1/language/value/reference/closure.js +51 -0
- package/dist/v1/language/value/reference/recursion.d.ts +5 -0
- package/dist/v1/language/value/reference/recursion.js +95 -0
- package/dist/v1/language/value/reference/references.d.ts +17 -0
- package/dist/v1/language/value/reference/references.js +45 -0
- package/dist/v1/language/value/reference/registry.d.ts +24 -0
- package/dist/v1/language/value/reference/registry.index.d.ts +14 -0
- package/dist/v1/language/value/reference/registry.index.js +76 -0
- package/dist/v1/language/value/reference/registry.js +1 -0
- package/dist/v1/language/value/regexp/ast.d.ts +21 -0
- package/dist/v1/language/value/regexp/ast.js +326 -0
- package/dist/v1/language/value/regexp/compile.d.ts +3 -0
- package/dist/v1/language/value/regexp/compile.js +138 -0
- package/dist/v1/language/value/regexp/lower.d.ts +3 -0
- package/dist/v1/language/value/regexp/lower.js +26 -0
- package/dist/v1/language/value/regexp/matcher.d.ts +10 -0
- package/dist/v1/language/value/regexp/matcher.js +207 -0
- package/dist/v1/language/value/regexp/pattern.d.ts +2 -0
- package/dist/v1/language/value/regexp/pattern.js +38 -0
- package/dist/v1/language/value/regexp/syntax.d.ts +2 -0
- package/dist/v1/language/value/regexp/syntax.js +5 -0
- package/dist/v1/language/value/syntax/full-match.d.ts +6 -0
- package/dist/v1/language/value/syntax/full-match.js +20 -0
- package/dist/v1/language/value/syntax/keywords.d.ts +3 -0
- package/dist/v1/language/value/syntax/keywords.js +20 -0
- package/dist/v1/language/value/syntax/node-path/schema.d.ts +5 -0
- package/dist/v1/language/value/syntax/node-path/schema.js +18 -0
- package/dist/v1/language/value/syntax/node-path/validate.d.ts +4 -0
- package/dist/v1/language/value/syntax/node-path/validate.js +78 -0
- package/dist/v1/language/value/syntax/pointer.d.ts +4 -0
- package/dist/v1/language/value/syntax/pointer.js +49 -0
- package/dist/v1/language/value/syntax/walk.d.ts +10 -0
- package/dist/v1/language/value/syntax/walk.js +53 -0
- package/dist/v1/language/view/index.d.ts +2 -0
- package/dist/v1/language/view/index.js +1 -0
- package/dist/v1/language/view/model/view.d.ts +11 -0
- package/dist/v1/language/view/model/view.js +1 -0
- package/dist/v1/language/view/resolved.d.ts +9 -0
- package/dist/v1/language/view/resolved.js +1 -0
- package/dist/v1/schema/admission/accept.d.ts +3 -0
- package/dist/v1/schema/admission/accept.js +26 -0
- package/dist/v1/schema/analysis/class.d.ts +69 -0
- package/dist/v1/schema/analysis/class.js +145 -0
- package/dist/v1/schema/canonical/domain.d.ts +2 -2
- package/dist/v1/schema/canonical/domain.digest.d.ts +1 -2
- package/dist/v1/schema/canonical/domain.digest.js +2 -6
- package/dist/v1/schema/canonical/domain.js +3 -224
- package/dist/v1/schema/canonical/freeze.d.ts +0 -1
- package/dist/v1/schema/canonical/freeze.js +0 -1
- package/dist/v1/schema/canonical/revision.d.ts +11 -0
- package/dist/v1/schema/canonical/revision.js +20 -0
- package/dist/v1/schema/codec/header.d.ts +17 -0
- package/dist/v1/schema/codec/header.js +26 -0
- package/dist/v1/schema/codec/schema.d.ts +5 -0
- package/dist/v1/schema/codec/schema.js +21 -0
- package/dist/v1/schema/compatibility/api.d.ts +2 -0
- package/dist/v1/schema/compatibility/api.js +1 -0
- package/dist/v1/schema/compatibility/comparators/callables.d.ts +32 -0
- package/dist/v1/schema/compatibility/comparators/callables.js +88 -0
- package/dist/v1/schema/compatibility/comparators/classes.d.ts +28 -0
- package/dist/v1/schema/compatibility/comparators/classes.js +96 -0
- package/dist/v1/schema/compatibility/comparators/index.d.ts +12 -0
- package/dist/v1/schema/compatibility/comparators/index.js +41 -0
- package/dist/v1/schema/compatibility/comparators/members.d.ts +4 -0
- package/dist/v1/schema/compatibility/comparators/members.js +49 -0
- package/dist/v1/schema/compatibility/comparators/values.d.ts +5 -0
- package/dist/v1/schema/compatibility/comparators/values.js +37 -0
- package/dist/v1/schema/compatibility/compare.d.ts +5 -0
- package/dist/v1/schema/compatibility/compare.js +23 -0
- package/dist/v1/schema/compatibility/context.d.ts +15 -0
- package/dist/v1/schema/compatibility/context.js +43 -0
- package/dist/v1/schema/compatibility/coordinate.d.ts +39 -0
- package/dist/v1/schema/compatibility/coordinate.js +38 -0
- package/dist/v1/schema/compatibility/diff.d.ts +12 -0
- package/dist/v1/schema/compatibility/diff.js +39 -0
- package/dist/v1/schema/compatibility/evidence.d.ts +5 -0
- package/dist/v1/schema/compatibility/evidence.js +51 -0
- package/dist/v1/schema/compatibility/fields.d.ts +192 -0
- package/dist/v1/schema/compatibility/fields.js +93 -0
- package/dist/v1/schema/compatibility/index.d.ts +8 -0
- package/dist/v1/schema/compatibility/index.js +4 -0
- package/dist/v1/schema/compatibility/legacy/index.d.ts +58 -0
- package/dist/v1/schema/compatibility/legacy/index.js +145 -0
- package/dist/v1/schema/compatibility/meaning/footprint.d.ts +7 -0
- package/dist/v1/schema/compatibility/meaning/footprint.js +57 -0
- package/dist/v1/schema/compatibility/meaning/index.d.ts +3 -0
- package/dist/v1/schema/compatibility/meaning/index.js +14 -0
- package/dist/v1/schema/compatibility/model.d.ts +96 -0
- package/dist/v1/schema/compatibility/model.js +1 -0
- package/dist/v1/schema/compatibility/references.d.ts +30 -0
- package/dist/v1/schema/compatibility/references.js +122 -0
- package/dist/v1/schema/compatibility/report.d.ts +26 -0
- package/dist/v1/schema/compatibility/report.js +100 -0
- package/dist/v1/schema/compatibility/scope.d.ts +27 -0
- package/dist/v1/schema/compatibility/scope.js +78 -0
- package/dist/v1/schema/compatibility/structure/index.d.ts +3 -0
- package/dist/v1/schema/compatibility/structure/index.js +16 -0
- package/dist/v1/schema/compatibility/structure/inheritance.d.ts +7 -0
- package/dist/v1/schema/compatibility/structure/inheritance.js +68 -0
- package/dist/v1/schema/compatibility/structure/requirements.d.ts +7 -0
- package/dist/v1/schema/compatibility/structure/requirements.js +70 -0
- package/dist/v1/schema/compatibility/subjects.d.ts +34 -0
- package/dist/v1/schema/compatibility/subjects.js +86 -0
- package/dist/v1/schema/dependency/lookup.d.ts +18 -0
- package/dist/v1/schema/dependency/lookup.js +31 -0
- package/dist/v1/schema/diagnostic.d.ts +7 -7
- package/dist/v1/schema/diagnostic.js +9 -9
- package/dist/v1/schema/fingerprint.d.ts +2 -0
- package/dist/v1/schema/fingerprint.js +1 -0
- package/dist/v1/schema/index.d.ts +27 -40
- package/dist/v1/schema/index.js +13 -18
- package/dist/v1/schema/model/format.d.ts +2 -0
- package/dist/v1/schema/model/format.js +2 -0
- package/dist/v1/schema/model/schema.d.ts +30 -0
- package/dist/v1/schema/model/schema.js +4 -0
- package/dist/v1/schema/normalization/domain.d.ts +2 -0
- package/dist/v1/schema/normalization/domain.js +234 -0
- package/dist/v1/schema/resolution/closure.d.ts +3 -4
- package/dist/v1/schema/resolution/closure.js +6 -7
- package/dist/v1/schema/resolution/context.d.ts +11 -12
- package/dist/v1/schema/resolution/context.js +82 -50
- package/dist/v1/schema/resolution/definition.index.d.ts +13 -35
- package/dist/v1/schema/resolution/definition.index.js +8 -18
- package/dist/v1/schema/resolution/domain.d.ts +4 -0
- package/dist/v1/schema/resolution/domain.js +120 -0
- package/dist/v1/schema/resolution/origins.d.ts +27 -14
- package/dist/v1/schema/resolution/origins.js +87 -58
- package/dist/v1/schema/resolution/value.registry.d.ts +3 -4
- package/dist/v1/schema/resolution/value.registry.js +7 -14
- package/dist/v1/schema/revision.d.ts +1 -0
- package/dist/v1/schema/revision.js +1 -0
- package/dist/v1/schema/validation/callable.d.ts +4 -0
- package/dist/v1/schema/validation/callable.js +39 -0
- package/dist/v1/schema/validation/class.d.ts +5 -0
- package/dist/v1/schema/validation/class.js +247 -0
- package/dist/v1/schema/validation/core.d.ts +5 -0
- package/dist/v1/schema/validation/core.js +318 -0
- package/dist/v1/schema/validation/domain.d.ts +11 -0
- package/dist/v1/schema/validation/domain.js +38 -0
- package/dist/v1/schema/validation/domain.route.d.ts +1 -2
- package/dist/v1/schema/validation/domain.route.js +3 -4
- package/dist/v1/schema/validation/domain.structure.d.ts +3 -4
- package/dist/v1/schema/validation/domain.structure.js +234 -218
- package/dist/v1/schema/validation/policy/budgets.d.ts +4 -0
- package/dist/v1/schema/validation/policy/budgets.js +119 -0
- package/dist/v1/schema/validation/policy/context.d.ts +28 -0
- package/dist/v1/schema/validation/policy/context.js +89 -0
- package/dist/v1/schema/validation/policy/objects.d.ts +4 -0
- package/dist/v1/schema/validation/policy/objects.js +71 -0
- package/dist/v1/schema/validation/policy/references.d.ts +2 -0
- package/dist/v1/schema/validation/policy/references.js +155 -0
- package/dist/v1/schema/validation/policy/typing.d.ts +19 -0
- package/dist/v1/schema/validation/policy/typing.js +347 -0
- package/dist/v1/schema/validation/policy/uses.d.ts +5 -0
- package/dist/v1/schema/validation/policy/uses.js +196 -0
- package/dist/v1/schema/validation/policy/validate.d.ts +11 -0
- package/dist/v1/schema/validation/policy/validate.js +23 -0
- package/dist/v1/schema/validation/value-api.d.ts +15 -0
- package/dist/v1/schema/validation/value-api.js +24 -0
- package/dist/v1/schema/validation/value.d.ts +4 -5
- package/dist/v1/schema/validation/value.js +11 -10
- package/dist/v1/schema/validation/view.d.ts +3 -0
- package/dist/v1/schema/validation/view.js +29 -0
- package/dist/v1/value/full-match.d.ts +2 -0
- package/dist/v1/value/full-match.js +2 -0
- package/dist/v1.d.ts +1 -2
- package/dist/v1.js +1 -2
- package/dist/value/accept.d.ts +9 -1
- package/dist/value/accept.js +78 -6
- package/dist/value/canonical.d.ts +3 -1
- package/dist/value/canonical.js +13 -6
- package/dist/value/decode.d.ts +0 -1
- package/dist/value/decode.js +0 -1
- package/dist/value/equal.d.ts +0 -1
- package/dist/value/equal.js +0 -1
- package/dist/value/error.d.ts +0 -1
- package/dist/value/error.js +0 -1
- package/dist/value/immutable.optimization.d.ts +12 -0
- package/dist/value/immutable.optimization.js +28 -0
- package/dist/value/index.d.ts +1 -2
- package/dist/value/index.js +1 -2
- package/dist/value/json.d.ts +1 -2
- package/dist/value/json.js +1 -2
- package/dist/value/limits.d.ts +0 -1
- package/dist/value/limits.js +0 -1
- package/dist/value/types.d.ts +0 -1
- package/dist/value/types.js +0 -1
- package/dist/value/unicode.d.ts +1 -2
- package/dist/value/unicode.js +1 -1
- package/dist/version/dispatch.d.ts +0 -1
- package/dist/version/dispatch.js +0 -1
- package/dist/version/index.d.ts +0 -1
- package/dist/version/index.js +0 -1
- package/package.json +52 -21
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/upgrade/contract.d.ts.map +0 -1
- package/dist/upgrade/contract.js.map +0 -1
- package/dist/upgrade/index.d.ts.map +0 -1
- package/dist/upgrade/index.js.map +0 -1
- package/dist/v1/addressing/index.d.ts.map +0 -1
- package/dist/v1/addressing/index.js.map +0 -1
- package/dist/v1/addressing/key.d.ts.map +0 -1
- package/dist/v1/addressing/key.js.map +0 -1
- package/dist/v1/addressing/patterns.d.ts.map +0 -1
- package/dist/v1/addressing/patterns.js.map +0 -1
- package/dist/v1/addressing/property-key.d.ts.map +0 -1
- package/dist/v1/addressing/property-key.js.map +0 -1
- package/dist/v1/addressing/ref.d.ts +0 -35
- package/dist/v1/addressing/ref.d.ts.map +0 -1
- package/dist/v1/addressing/ref.js +0 -94
- package/dist/v1/addressing/ref.js.map +0 -1
- package/dist/v1/addressing/schema-ref.d.ts +0 -8
- package/dist/v1/addressing/schema-ref.d.ts.map +0 -1
- package/dist/v1/addressing/schema-ref.js +0 -2
- package/dist/v1/addressing/schema-ref.js.map +0 -1
- package/dist/v1/builder/callable.d.ts +0 -91
- package/dist/v1/builder/callable.d.ts.map +0 -1
- package/dist/v1/builder/callable.js +0 -46
- package/dist/v1/builder/callable.js.map +0 -1
- package/dist/v1/builder/compiler/callable.d.ts +0 -20
- package/dist/v1/builder/compiler/callable.d.ts.map +0 -1
- package/dist/v1/builder/compiler/callable.js +0 -138
- package/dist/v1/builder/compiler/callable.js.map +0 -1
- package/dist/v1/builder/compiler/core.d.ts +0 -6
- package/dist/v1/builder/compiler/core.d.ts.map +0 -1
- package/dist/v1/builder/compiler/core.js +0 -44
- package/dist/v1/builder/compiler/core.js.map +0 -1
- package/dist/v1/builder/compiler/core.properties.d.ts +0 -6
- package/dist/v1/builder/compiler/core.properties.d.ts.map +0 -1
- package/dist/v1/builder/compiler/core.properties.js +0 -70
- package/dist/v1/builder/compiler/core.properties.js.map +0 -1
- package/dist/v1/builder/compiler/definition.d.ts +0 -32
- package/dist/v1/builder/compiler/definition.d.ts.map +0 -1
- package/dist/v1/builder/compiler/definition.js +0 -197
- package/dist/v1/builder/compiler/definition.js.map +0 -1
- package/dist/v1/builder/compiler/policy.d.ts +0 -17
- package/dist/v1/builder/compiler/policy.d.ts.map +0 -1
- package/dist/v1/builder/compiler/policy.js +0 -54
- package/dist/v1/builder/compiler/policy.js.map +0 -1
- package/dist/v1/builder/compiler/schema.capture.d.ts +0 -5
- package/dist/v1/builder/compiler/schema.capture.d.ts.map +0 -1
- package/dist/v1/builder/compiler/schema.capture.js +0 -85
- package/dist/v1/builder/compiler/schema.capture.js.map +0 -1
- package/dist/v1/builder/compiler/schema.context.d.ts +0 -45
- package/dist/v1/builder/compiler/schema.context.d.ts.map +0 -1
- package/dist/v1/builder/compiler/schema.context.js +0 -255
- package/dist/v1/builder/compiler/schema.context.js.map +0 -1
- package/dist/v1/builder/compiler/schema.d.ts +0 -10
- package/dist/v1/builder/compiler/schema.d.ts.map +0 -1
- package/dist/v1/builder/compiler/schema.js +0 -90
- package/dist/v1/builder/compiler/schema.js.map +0 -1
- package/dist/v1/builder/compiler/schema.ownership.d.ts +0 -9
- package/dist/v1/builder/compiler/schema.ownership.d.ts.map +0 -1
- package/dist/v1/builder/compiler/schema.ownership.js +0 -30
- package/dist/v1/builder/compiler/schema.ownership.js.map +0 -1
- package/dist/v1/builder/compiler/value.d.ts +0 -26
- package/dist/v1/builder/compiler/value.d.ts.map +0 -1
- package/dist/v1/builder/compiler/value.js +0 -160
- package/dist/v1/builder/compiler/value.js.map +0 -1
- package/dist/v1/builder/compiler/value.path.d.ts +0 -4
- package/dist/v1/builder/compiler/value.path.d.ts.map +0 -1
- package/dist/v1/builder/compiler/value.path.js +0 -21
- package/dist/v1/builder/compiler/value.path.js.map +0 -1
- package/dist/v1/builder/compiler/value.zod.d.ts +0 -33
- package/dist/v1/builder/compiler/value.zod.d.ts.map +0 -1
- package/dist/v1/builder/compiler/value.zod.js +0 -343
- package/dist/v1/builder/compiler/value.zod.js.map +0 -1
- package/dist/v1/builder/compiler/view.d.ts +0 -12
- package/dist/v1/builder/compiler/view.d.ts.map +0 -1
- package/dist/v1/builder/compiler/view.js +0 -27
- package/dist/v1/builder/compiler/view.js.map +0 -1
- package/dist/v1/builder/core.d.ts +0 -27
- package/dist/v1/builder/core.d.ts.map +0 -1
- package/dist/v1/builder/core.js +0 -21
- package/dist/v1/builder/core.js.map +0 -1
- package/dist/v1/builder/definition.d.ts +0 -155
- package/dist/v1/builder/definition.d.ts.map +0 -1
- package/dist/v1/builder/definition.js +0 -141
- package/dist/v1/builder/definition.js.map +0 -1
- package/dist/v1/builder/full-match.d.ts +0 -5
- package/dist/v1/builder/full-match.d.ts.map +0 -1
- package/dist/v1/builder/full-match.js +0 -12
- package/dist/v1/builder/full-match.js.map +0 -1
- package/dist/v1/builder/index.d.ts.map +0 -1
- package/dist/v1/builder/index.js.map +0 -1
- package/dist/v1/builder/internal/authoring.d.ts +0 -8
- package/dist/v1/builder/internal/authoring.d.ts.map +0 -1
- package/dist/v1/builder/internal/authoring.js +0 -15
- package/dist/v1/builder/internal/authoring.js.map +0 -1
- package/dist/v1/builder/internal/authoring.lazy.d.ts +0 -3
- package/dist/v1/builder/internal/authoring.lazy.d.ts.map +0 -1
- package/dist/v1/builder/internal/authoring.lazy.js +0 -14
- package/dist/v1/builder/internal/authoring.lazy.js.map +0 -1
- package/dist/v1/builder/internal/diagnostic.d.ts +0 -4
- package/dist/v1/builder/internal/diagnostic.d.ts.map +0 -1
- package/dist/v1/builder/internal/diagnostic.js +0 -16
- package/dist/v1/builder/internal/diagnostic.js.map +0 -1
- package/dist/v1/builder/internal/path.metadata.d.ts +0 -5
- package/dist/v1/builder/internal/path.metadata.d.ts.map +0 -1
- package/dist/v1/builder/internal/path.metadata.js +0 -8
- package/dist/v1/builder/internal/path.metadata.js.map +0 -1
- package/dist/v1/builder/path.d.ts +0 -9
- package/dist/v1/builder/path.d.ts.map +0 -1
- package/dist/v1/builder/path.js +0 -12
- package/dist/v1/builder/path.js.map +0 -1
- package/dist/v1/builder/policy.d.ts +0 -50
- package/dist/v1/builder/policy.d.ts.map +0 -1
- package/dist/v1/builder/policy.js +0 -79
- package/dist/v1/builder/policy.js.map +0 -1
- package/dist/v1/builder/property.d.ts +0 -37
- package/dist/v1/builder/property.d.ts.map +0 -1
- package/dist/v1/builder/property.js +0 -36
- package/dist/v1/builder/property.js.map +0 -1
- package/dist/v1/builder/schema.d.ts +0 -6
- package/dist/v1/builder/schema.d.ts.map +0 -1
- package/dist/v1/builder/schema.input.d.ts +0 -19
- package/dist/v1/builder/schema.input.d.ts.map +0 -1
- package/dist/v1/builder/schema.input.js +0 -2
- package/dist/v1/builder/schema.input.js.map +0 -1
- package/dist/v1/builder/schema.js +0 -6
- package/dist/v1/builder/schema.js.map +0 -1
- package/dist/v1/builder/value-schema.d.ts +0 -17
- package/dist/v1/builder/value-schema.d.ts.map +0 -1
- package/dist/v1/builder/value-schema.js +0 -11
- package/dist/v1/builder/value-schema.js.map +0 -1
- package/dist/v1/builder/view.d.ts +0 -19
- package/dist/v1/builder/view.d.ts.map +0 -1
- package/dist/v1/builder/view.js +0 -7
- package/dist/v1/builder/view.js.map +0 -1
- package/dist/v1/builder.d.ts +0 -3
- package/dist/v1/builder.d.ts.map +0 -1
- package/dist/v1/builder.js +0 -2
- package/dist/v1/builder.js.map +0 -1
- package/dist/v1/bundle/codec.d.ts.map +0 -1
- package/dist/v1/bundle/codec.js.map +0 -1
- package/dist/v1/bundle/index.d.ts.map +0 -1
- package/dist/v1/bundle/index.js.map +0 -1
- package/dist/v1/bundle/model.d.ts.map +0 -1
- package/dist/v1/bundle/model.js.map +0 -1
- package/dist/v1/bundle/structure.d.ts.map +0 -1
- package/dist/v1/bundle/structure.js.map +0 -1
- package/dist/v1/bundle.d.ts +0 -3
- package/dist/v1/bundle.d.ts.map +0 -1
- package/dist/v1/bundle.js +0 -3
- package/dist/v1/bundle.js.map +0 -1
- package/dist/v1/index.d.ts.map +0 -1
- package/dist/v1/index.js.map +0 -1
- package/dist/v1/schema/callable.d.ts +0 -29
- package/dist/v1/schema/callable.d.ts.map +0 -1
- package/dist/v1/schema/callable.js +0 -2
- package/dist/v1/schema/callable.js.map +0 -1
- package/dist/v1/schema/canonical/domain.d.ts.map +0 -1
- package/dist/v1/schema/canonical/domain.digest.d.ts.map +0 -1
- package/dist/v1/schema/canonical/domain.digest.js.map +0 -1
- package/dist/v1/schema/canonical/domain.js.map +0 -1
- package/dist/v1/schema/canonical/freeze.d.ts.map +0 -1
- package/dist/v1/schema/canonical/freeze.js.map +0 -1
- package/dist/v1/schema/compiled/admission.d.ts +0 -4
- package/dist/v1/schema/compiled/admission.d.ts.map +0 -1
- package/dist/v1/schema/compiled/admission.js +0 -217
- package/dist/v1/schema/compiled/admission.js.map +0 -1
- package/dist/v1/schema/compiled/authored-validator.d.ts +0 -5
- package/dist/v1/schema/compiled/authored-validator.d.ts.map +0 -1
- package/dist/v1/schema/compiled/authored-validator.js +0 -7
- package/dist/v1/schema/compiled/authored-validator.js.map +0 -1
- package/dist/v1/schema/compiled/compiler.d.ts +0 -5
- package/dist/v1/schema/compiled/compiler.d.ts.map +0 -1
- package/dist/v1/schema/compiled/compiler.js +0 -86
- package/dist/v1/schema/compiled/compiler.js.map +0 -1
- package/dist/v1/schema/compiled/model.d.ts +0 -61
- package/dist/v1/schema/compiled/model.d.ts.map +0 -1
- package/dist/v1/schema/compiled/model.js +0 -2
- package/dist/v1/schema/compiled/model.js.map +0 -1
- package/dist/v1/schema/compiled/program.d.ts +0 -5
- package/dist/v1/schema/compiled/program.d.ts.map +0 -1
- package/dist/v1/schema/compiled/program.js +0 -42
- package/dist/v1/schema/compiled/program.js.map +0 -1
- package/dist/v1/schema/compiled/validator.d.ts +0 -23
- package/dist/v1/schema/compiled/validator.d.ts.map +0 -1
- package/dist/v1/schema/compiled/validator.js +0 -62
- package/dist/v1/schema/compiled/validator.js.map +0 -1
- package/dist/v1/schema/core/declaration.d.ts +0 -17
- package/dist/v1/schema/core/declaration.d.ts.map +0 -1
- package/dist/v1/schema/core/declaration.js +0 -2
- package/dist/v1/schema/core/declaration.js.map +0 -1
- package/dist/v1/schema/core/validate.d.ts +0 -6
- package/dist/v1/schema/core/validate.d.ts.map +0 -1
- package/dist/v1/schema/core/validate.js +0 -257
- package/dist/v1/schema/core/validate.js.map +0 -1
- package/dist/v1/schema/definition/analysis.d.ts +0 -43
- package/dist/v1/schema/definition/analysis.d.ts.map +0 -1
- package/dist/v1/schema/definition/analysis.js +0 -190
- package/dist/v1/schema/definition/analysis.js.map +0 -1
- package/dist/v1/schema/definition/class.d.ts +0 -28
- package/dist/v1/schema/definition/class.d.ts.map +0 -1
- package/dist/v1/schema/definition/class.js +0 -2
- package/dist/v1/schema/definition/class.js.map +0 -1
- package/dist/v1/schema/definition/data.d.ts +0 -12
- package/dist/v1/schema/definition/data.d.ts.map +0 -1
- package/dist/v1/schema/definition/data.js +0 -3
- package/dist/v1/schema/definition/data.js.map +0 -1
- package/dist/v1/schema/definition/edge.d.ts +0 -35
- package/dist/v1/schema/definition/edge.d.ts.map +0 -1
- package/dist/v1/schema/definition/edge.js +0 -2
- package/dist/v1/schema/definition/edge.js.map +0 -1
- package/dist/v1/schema/definition/interface.d.ts +0 -22
- package/dist/v1/schema/definition/interface.d.ts.map +0 -1
- package/dist/v1/schema/definition/interface.js +0 -2
- package/dist/v1/schema/definition/interface.js.map +0 -1
- package/dist/v1/schema/definition/property.d.ts +0 -18
- package/dist/v1/schema/definition/property.d.ts.map +0 -1
- package/dist/v1/schema/definition/property.js +0 -2
- package/dist/v1/schema/definition/property.js.map +0 -1
- package/dist/v1/schema/definition/validate.d.ts +0 -5
- package/dist/v1/schema/definition/validate.d.ts.map +0 -1
- package/dist/v1/schema/definition/validate.js +0 -221
- package/dist/v1/schema/definition/validate.js.map +0 -1
- package/dist/v1/schema/dependency.meaning.d.ts +0 -30
- package/dist/v1/schema/dependency.meaning.d.ts.map +0 -1
- package/dist/v1/schema/dependency.meaning.js +0 -608
- package/dist/v1/schema/dependency.meaning.js.map +0 -1
- package/dist/v1/schema/diagnostic.d.ts.map +0 -1
- package/dist/v1/schema/diagnostic.js.map +0 -1
- package/dist/v1/schema/domain.accept.d.ts +0 -4
- package/dist/v1/schema/domain.accept.d.ts.map +0 -1
- package/dist/v1/schema/domain.accept.js +0 -27
- package/dist/v1/schema/domain.accept.js.map +0 -1
- package/dist/v1/schema/domain.codec.d.ts +0 -6
- package/dist/v1/schema/domain.codec.d.ts.map +0 -1
- package/dist/v1/schema/domain.codec.js +0 -22
- package/dist/v1/schema/domain.codec.js.map +0 -1
- package/dist/v1/schema/domain.header.d.ts +0 -15
- package/dist/v1/schema/domain.header.d.ts.map +0 -1
- package/dist/v1/schema/domain.header.js +0 -21
- package/dist/v1/schema/domain.header.js.map +0 -1
- package/dist/v1/schema/domain.ir.d.ts +0 -40
- package/dist/v1/schema/domain.ir.d.ts.map +0 -1
- package/dist/v1/schema/domain.ir.js +0 -5
- package/dist/v1/schema/domain.ir.js.map +0 -1
- package/dist/v1/schema/domain.lookup.d.ts +0 -19
- package/dist/v1/schema/domain.lookup.d.ts.map +0 -1
- package/dist/v1/schema/domain.lookup.js +0 -32
- package/dist/v1/schema/domain.lookup.js.map +0 -1
- package/dist/v1/schema/domain.resolve.d.ts +0 -26
- package/dist/v1/schema/domain.resolve.d.ts.map +0 -1
- package/dist/v1/schema/domain.resolve.js +0 -43
- package/dist/v1/schema/domain.resolve.js.map +0 -1
- package/dist/v1/schema/domain.revision.d.ts +0 -12
- package/dist/v1/schema/domain.revision.d.ts.map +0 -1
- package/dist/v1/schema/domain.revision.js +0 -18
- package/dist/v1/schema/domain.revision.js.map +0 -1
- package/dist/v1/schema/domain.validate.d.ts +0 -12
- package/dist/v1/schema/domain.validate.d.ts.map +0 -1
- package/dist/v1/schema/domain.validate.js +0 -36
- package/dist/v1/schema/domain.validate.js.map +0 -1
- package/dist/v1/schema/index.d.ts.map +0 -1
- package/dist/v1/schema/index.js.map +0 -1
- package/dist/v1/schema/metadata.d.ts +0 -13
- package/dist/v1/schema/metadata.d.ts.map +0 -1
- package/dist/v1/schema/metadata.js +0 -13
- package/dist/v1/schema/metadata.js.map +0 -1
- package/dist/v1/schema/policy/ast.d.ts +0 -77
- package/dist/v1/schema/policy/ast.d.ts.map +0 -1
- package/dist/v1/schema/policy/ast.js +0 -2
- package/dist/v1/schema/policy/ast.js.map +0 -1
- package/dist/v1/schema/policy/normalize.d.ts +0 -5
- package/dist/v1/schema/policy/normalize.d.ts.map +0 -1
- package/dist/v1/schema/policy/normalize.js +0 -230
- package/dist/v1/schema/policy/normalize.js.map +0 -1
- package/dist/v1/schema/policy/validation/branches.d.ts +0 -21
- package/dist/v1/schema/policy/validation/branches.d.ts.map +0 -1
- package/dist/v1/schema/policy/validation/branches.js +0 -155
- package/dist/v1/schema/policy/validation/branches.js.map +0 -1
- package/dist/v1/schema/policy/validation/budgets.d.ts +0 -19
- package/dist/v1/schema/policy/validation/budgets.d.ts.map +0 -1
- package/dist/v1/schema/policy/validation/budgets.js +0 -132
- package/dist/v1/schema/policy/validation/budgets.js.map +0 -1
- package/dist/v1/schema/policy/validation/context.d.ts +0 -28
- package/dist/v1/schema/policy/validation/context.d.ts.map +0 -1
- package/dist/v1/schema/policy/validation/context.js +0 -99
- package/dist/v1/schema/policy/validation/context.js.map +0 -1
- package/dist/v1/schema/policy/validation/references.d.ts +0 -3
- package/dist/v1/schema/policy/validation/references.d.ts.map +0 -1
- package/dist/v1/schema/policy/validation/references.js +0 -136
- package/dist/v1/schema/policy/validation/references.js.map +0 -1
- package/dist/v1/schema/policy/validation/typing.d.ts +0 -23
- package/dist/v1/schema/policy/validation/typing.d.ts.map +0 -1
- package/dist/v1/schema/policy/validation/typing.js +0 -360
- package/dist/v1/schema/policy/validation/typing.js.map +0 -1
- package/dist/v1/schema/policy/validation/uses.d.ts +0 -6
- package/dist/v1/schema/policy/validation/uses.d.ts.map +0 -1
- package/dist/v1/schema/policy/validation/uses.js +0 -272
- package/dist/v1/schema/policy/validation/uses.js.map +0 -1
- package/dist/v1/schema/policy/validation/validate.d.ts +0 -12
- package/dist/v1/schema/policy/validation/validate.d.ts.map +0 -1
- package/dist/v1/schema/policy/validation/validate.js +0 -24
- package/dist/v1/schema/policy/validation/validate.js.map +0 -1
- package/dist/v1/schema/reference.d.ts +0 -43
- package/dist/v1/schema/reference.d.ts.map +0 -1
- package/dist/v1/schema/reference.js +0 -31
- package/dist/v1/schema/reference.js.map +0 -1
- package/dist/v1/schema/resolution/closure.d.ts.map +0 -1
- package/dist/v1/schema/resolution/closure.js.map +0 -1
- package/dist/v1/schema/resolution/context.d.ts.map +0 -1
- package/dist/v1/schema/resolution/context.js.map +0 -1
- package/dist/v1/schema/resolution/definition.index.d.ts.map +0 -1
- package/dist/v1/schema/resolution/definition.index.js.map +0 -1
- package/dist/v1/schema/resolution/origins.d.ts.map +0 -1
- package/dist/v1/schema/resolution/origins.js.map +0 -1
- package/dist/v1/schema/resolution/value.registry.d.ts.map +0 -1
- package/dist/v1/schema/resolution/value.registry.js.map +0 -1
- package/dist/v1/schema/validation/domain.route.d.ts.map +0 -1
- package/dist/v1/schema/validation/domain.route.js.map +0 -1
- package/dist/v1/schema/validation/domain.structure.d.ts.map +0 -1
- package/dist/v1/schema/validation/domain.structure.js.map +0 -1
- package/dist/v1/schema/validation/value.d.ts.map +0 -1
- package/dist/v1/schema/validation/value.js.map +0 -1
- package/dist/v1/schema/value/extensions/node-path/schema.d.ts +0 -6
- package/dist/v1/schema/value/extensions/node-path/schema.d.ts.map +0 -1
- package/dist/v1/schema/value/extensions/node-path/schema.js +0 -19
- package/dist/v1/schema/value/extensions/node-path/schema.js.map +0 -1
- package/dist/v1/schema/value/extensions/node-path/validate.d.ts +0 -5
- package/dist/v1/schema/value/extensions/node-path/validate.d.ts.map +0 -1
- package/dist/v1/schema/value/extensions/node-path/validate.js +0 -80
- package/dist/v1/schema/value/extensions/node-path/validate.js.map +0 -1
- package/dist/v1/schema/value/full-match.d.ts +0 -7
- package/dist/v1/schema/value/full-match.d.ts.map +0 -1
- package/dist/v1/schema/value/full-match.js +0 -21
- package/dist/v1/schema/value/full-match.js.map +0 -1
- package/dist/v1/schema/value/index.d.ts +0 -14
- package/dist/v1/schema/value/index.d.ts.map +0 -1
- package/dist/v1/schema/value/index.js +0 -24
- package/dist/v1/schema/value/index.js.map +0 -1
- package/dist/v1/schema/value/instance/assertions.d.ts +0 -7
- package/dist/v1/schema/value/instance/assertions.d.ts.map +0 -1
- package/dist/v1/schema/value/instance/assertions.js +0 -59
- package/dist/v1/schema/value/instance/assertions.js.map +0 -1
- package/dist/v1/schema/value/instance/evaluator.d.ts +0 -5
- package/dist/v1/schema/value/instance/evaluator.d.ts.map +0 -1
- package/dist/v1/schema/value/instance/evaluator.js +0 -362
- package/dist/v1/schema/value/instance/evaluator.js.map +0 -1
- package/dist/v1/schema/value/instance/preparation.d.ts +0 -14
- package/dist/v1/schema/value/instance/preparation.d.ts.map +0 -1
- package/dist/v1/schema/value/instance/preparation.js +0 -137
- package/dist/v1/schema/value/instance/preparation.js.map +0 -1
- package/dist/v1/schema/value/instance/types.d.ts +0 -37
- package/dist/v1/schema/value/instance/types.d.ts.map +0 -1
- package/dist/v1/schema/value/instance/types.js +0 -10
- package/dist/v1/schema/value/instance/types.js.map +0 -1
- package/dist/v1/schema/value/instance.validate.d.ts +0 -13
- package/dist/v1/schema/value/instance.validate.d.ts.map +0 -1
- package/dist/v1/schema/value/instance.validate.js +0 -44
- package/dist/v1/schema/value/instance.validate.js.map +0 -1
- package/dist/v1/schema/value/instant.d.ts +0 -9
- package/dist/v1/schema/value/instant.d.ts.map +0 -1
- package/dist/v1/schema/value/instant.js +0 -37
- package/dist/v1/schema/value/instant.js.map +0 -1
- package/dist/v1/schema/value/location/keywords.d.ts +0 -4
- package/dist/v1/schema/value/location/keywords.d.ts.map +0 -1
- package/dist/v1/schema/value/location/keywords.js +0 -21
- package/dist/v1/schema/value/location/keywords.js.map +0 -1
- package/dist/v1/schema/value/location/pointer.d.ts +0 -5
- package/dist/v1/schema/value/location/pointer.d.ts.map +0 -1
- package/dist/v1/schema/value/location/pointer.js +0 -50
- package/dist/v1/schema/value/location/pointer.js.map +0 -1
- package/dist/v1/schema/value/location/walk.d.ts +0 -11
- package/dist/v1/schema/value/location/walk.d.ts.map +0 -1
- package/dist/v1/schema/value/location/walk.js +0 -54
- package/dist/v1/schema/value/location/walk.js.map +0 -1
- package/dist/v1/schema/value/object.d.ts +0 -5
- package/dist/v1/schema/value/object.d.ts.map +0 -1
- package/dist/v1/schema/value/object.js +0 -4
- package/dist/v1/schema/value/object.js.map +0 -1
- package/dist/v1/schema/value/ordering.d.ts +0 -11
- package/dist/v1/schema/value/ordering.d.ts.map +0 -1
- package/dist/v1/schema/value/ordering.js +0 -172
- package/dist/v1/schema/value/ordering.js.map +0 -1
- package/dist/v1/schema/value/profile/canonicalize.d.ts +0 -5
- package/dist/v1/schema/value/profile/canonicalize.d.ts.map +0 -1
- package/dist/v1/schema/value/profile/canonicalize.js +0 -133
- package/dist/v1/schema/value/profile/canonicalize.js.map +0 -1
- package/dist/v1/schema/value/profile/dialect.d.ts +0 -5
- package/dist/v1/schema/value/profile/dialect.d.ts.map +0 -1
- package/dist/v1/schema/value/profile/dialect.js +0 -36
- package/dist/v1/schema/value/profile/dialect.js.map +0 -1
- package/dist/v1/schema/value/profile/json.validate.d.ts +0 -3
- package/dist/v1/schema/value/profile/json.validate.d.ts.map +0 -1
- package/dist/v1/schema/value/profile/json.validate.js +0 -15
- package/dist/v1/schema/value/profile/json.validate.js.map +0 -1
- package/dist/v1/schema/value/profile/meta-schema.compiled.d.ts +0 -79
- package/dist/v1/schema/value/profile/meta-schema.compiled.d.ts.map +0 -1
- package/dist/v1/schema/value/profile/meta-schema.compiled.js +0 -2080
- package/dist/v1/schema/value/profile/meta-schema.compiled.js.map +0 -1
- package/dist/v1/schema/value/profile/meta-schema.d.ts +0 -5
- package/dist/v1/schema/value/profile/meta-schema.d.ts.map +0 -1
- package/dist/v1/schema/value/profile/meta-schema.js +0 -20
- package/dist/v1/schema/value/profile/meta-schema.js.map +0 -1
- package/dist/v1/schema/value/profile/rules.d.ts +0 -5
- package/dist/v1/schema/value/profile/rules.d.ts.map +0 -1
- package/dist/v1/schema/value/profile/rules.js +0 -152
- package/dist/v1/schema/value/profile/rules.js.map +0 -1
- package/dist/v1/schema/value/profile/validate.d.ts +0 -5
- package/dist/v1/schema/value/profile/validate.d.ts.map +0 -1
- package/dist/v1/schema/value/profile/validate.js +0 -47
- package/dist/v1/schema/value/profile/validate.js.map +0 -1
- package/dist/v1/schema/value/profile/vocabulary.d.ts +0 -3
- package/dist/v1/schema/value/profile/vocabulary.d.ts.map +0 -1
- package/dist/v1/schema/value/profile/vocabulary.js +0 -69
- package/dist/v1/schema/value/profile/vocabulary.js.map +0 -1
- package/dist/v1/schema/value/regexp/ast.d.ts +0 -22
- package/dist/v1/schema/value/regexp/ast.d.ts.map +0 -1
- package/dist/v1/schema/value/regexp/ast.js +0 -327
- package/dist/v1/schema/value/regexp/ast.js.map +0 -1
- package/dist/v1/schema/value/regexp/compile.d.ts +0 -4
- package/dist/v1/schema/value/regexp/compile.d.ts.map +0 -1
- package/dist/v1/schema/value/regexp/compile.js +0 -97
- package/dist/v1/schema/value/regexp/compile.js.map +0 -1
- package/dist/v1/schema/value/regexp/linear.d.ts +0 -20
- package/dist/v1/schema/value/regexp/linear.d.ts.map +0 -1
- package/dist/v1/schema/value/regexp/linear.js +0 -24
- package/dist/v1/schema/value/regexp/linear.js.map +0 -1
- package/dist/v1/schema/value/regexp/lower.d.ts +0 -4
- package/dist/v1/schema/value/regexp/lower.d.ts.map +0 -1
- package/dist/v1/schema/value/regexp/lower.js +0 -27
- package/dist/v1/schema/value/regexp/lower.js.map +0 -1
- package/dist/v1/schema/value/regexp/matcher.d.ts +0 -8
- package/dist/v1/schema/value/regexp/matcher.d.ts.map +0 -1
- package/dist/v1/schema/value/regexp/matcher.js +0 -51
- package/dist/v1/schema/value/regexp/matcher.js.map +0 -1
- package/dist/v1/schema/value/regexp/pattern.d.ts +0 -3
- package/dist/v1/schema/value/regexp/pattern.d.ts.map +0 -1
- package/dist/v1/schema/value/regexp/pattern.js +0 -39
- package/dist/v1/schema/value/regexp/pattern.js.map +0 -1
- package/dist/v1/schema/value/regexp/syntax.d.ts +0 -3
- package/dist/v1/schema/value/regexp/syntax.d.ts.map +0 -1
- package/dist/v1/schema/value/regexp/syntax.js +0 -6
- package/dist/v1/schema/value/regexp/syntax.js.map +0 -1
- package/dist/v1/schema/value/registry.d.ts +0 -22
- package/dist/v1/schema/value/registry.d.ts.map +0 -1
- package/dist/v1/schema/value/registry.js +0 -2
- package/dist/v1/schema/value/registry.js.map +0 -1
- package/dist/v1/schema/value/resources/closure.d.ts +0 -12
- package/dist/v1/schema/value/resources/closure.d.ts.map +0 -1
- package/dist/v1/schema/value/resources/closure.js +0 -59
- package/dist/v1/schema/value/resources/closure.js.map +0 -1
- package/dist/v1/schema/value/resources/recursion.d.ts +0 -6
- package/dist/v1/schema/value/resources/recursion.d.ts.map +0 -1
- package/dist/v1/schema/value/resources/recursion.js +0 -96
- package/dist/v1/schema/value/resources/recursion.js.map +0 -1
- package/dist/v1/schema/value/resources/references.d.ts +0 -25
- package/dist/v1/schema/value/resources/references.d.ts.map +0 -1
- package/dist/v1/schema/value/resources/references.js +0 -93
- package/dist/v1/schema/value/resources/references.js.map +0 -1
- package/dist/v1/schema/value/resources/registry.index.d.ts +0 -22
- package/dist/v1/schema/value/resources/registry.index.d.ts.map +0 -1
- package/dist/v1/schema/value/resources/registry.index.js +0 -114
- package/dist/v1/schema/value/resources/registry.index.js.map +0 -1
- package/dist/v1/schema/value/schema.d.ts +0 -26
- package/dist/v1/schema/value/schema.d.ts.map +0 -1
- package/dist/v1/schema/value/schema.js +0 -13
- package/dist/v1/schema/value/schema.js.map +0 -1
- package/dist/v1/schema/view/declaration.d.ts +0 -14
- package/dist/v1/schema/view/declaration.d.ts.map +0 -1
- package/dist/v1/schema/view/declaration.js +0 -2
- package/dist/v1/schema/view/declaration.js.map +0 -1
- package/dist/v1/schema/view/validate.d.ts +0 -4
- package/dist/v1/schema/view/validate.d.ts.map +0 -1
- package/dist/v1/schema/view/validate.js +0 -22
- package/dist/v1/schema/view/validate.js.map +0 -1
- package/dist/v1/schema.d.ts +0 -3
- package/dist/v1/schema.d.ts.map +0 -1
- package/dist/v1/schema.js +0 -3
- package/dist/v1/schema.js.map +0 -1
- package/dist/v1.d.ts.map +0 -1
- package/dist/v1.js.map +0 -1
- package/dist/value/accept.d.ts.map +0 -1
- package/dist/value/accept.js.map +0 -1
- package/dist/value/canonical.d.ts.map +0 -1
- package/dist/value/canonical.js.map +0 -1
- package/dist/value/decode.d.ts.map +0 -1
- package/dist/value/decode.js.map +0 -1
- package/dist/value/equal.d.ts.map +0 -1
- package/dist/value/equal.js.map +0 -1
- package/dist/value/error.d.ts.map +0 -1
- package/dist/value/error.js.map +0 -1
- package/dist/value/index.d.ts.map +0 -1
- package/dist/value/index.js.map +0 -1
- package/dist/value/json.d.ts.map +0 -1
- package/dist/value/json.js.map +0 -1
- package/dist/value/limits.d.ts.map +0 -1
- package/dist/value/limits.js.map +0 -1
- package/dist/value/types.d.ts.map +0 -1
- package/dist/value/types.js.map +0 -1
- package/dist/value/unicode.d.ts.map +0 -1
- package/dist/value/unicode.js.map +0 -1
- package/dist/version/dispatch.d.ts.map +0 -1
- package/dist/version/dispatch.js.map +0 -1
- package/dist/version/index.d.ts.map +0 -1
- package/dist/version/index.js.map +0 -1
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { isValueObject as isJsonObject } from '../model/object.js';
|
|
2
|
+
import { collectResourceClosure, locationKey, } from '../reference/closure.js';
|
|
3
|
+
import { indexRegistry } from '../reference/registry.index.js';
|
|
4
|
+
import { compilePattern } from '../regexp/compile.js';
|
|
5
|
+
import { loadPattern } from '../regexp/matcher.js';
|
|
6
|
+
import { appendPointer } from '../syntax/pointer.js';
|
|
7
|
+
import { walkSchema } from '../syntax/walk.js';
|
|
8
|
+
/** Prepare reference and linear-regexp state without generating executable source. */
|
|
9
|
+
export function prepareValueSchema(schema, registry, pointer, pool = new Map()) {
|
|
10
|
+
const indexed = indexRegistry(registry, pointer);
|
|
11
|
+
if (indexed.diagnostics.length > 0)
|
|
12
|
+
return failed(indexed.diagnostics);
|
|
13
|
+
const closure = collectResourceClosure(schema, 'callable-input', indexed.index, pointer);
|
|
14
|
+
if (closure.diagnostics.length > 0)
|
|
15
|
+
return failed(closure.diagnostics);
|
|
16
|
+
const locations = new Map();
|
|
17
|
+
const matchers = new Map();
|
|
18
|
+
for (const resource of closure.resources.values()) {
|
|
19
|
+
walkSchema(resource.schema, (location) => {
|
|
20
|
+
const key = locationKey(resource.key, location.pointer);
|
|
21
|
+
locations.set(key, {
|
|
22
|
+
key,
|
|
23
|
+
pointer: location.pointer,
|
|
24
|
+
resource,
|
|
25
|
+
schema: location.schema,
|
|
26
|
+
});
|
|
27
|
+
if (!isJsonObject(location.schema))
|
|
28
|
+
return;
|
|
29
|
+
rememberMatcher(matchers, pool, location.schema.pattern);
|
|
30
|
+
rememberMatcher(matchers, pool, location.schema.fullMatch);
|
|
31
|
+
if (isJsonObject(location.schema.patternProperties)) {
|
|
32
|
+
for (const pattern of Object.keys(location.schema.patternProperties)) {
|
|
33
|
+
rememberMatcher(matchers, pool, pattern);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
const initial = closure.resources.values().next().value;
|
|
39
|
+
const root = initial === undefined ? undefined : locations.get(locationKey(initial.key, ''));
|
|
40
|
+
if (root === undefined) {
|
|
41
|
+
return { compiled: false, message: 'The root value schema is absent from its closure.' };
|
|
42
|
+
}
|
|
43
|
+
let program;
|
|
44
|
+
return {
|
|
45
|
+
compiled: true,
|
|
46
|
+
value: {
|
|
47
|
+
root,
|
|
48
|
+
locations,
|
|
49
|
+
resolutions: closure.resolutions,
|
|
50
|
+
program: () => (program ??= portableProgram(root, locations, closure.resolutions, matchers)),
|
|
51
|
+
child(location, keyword, member) {
|
|
52
|
+
const keywordPointer = appendPointer(location.pointer, keyword);
|
|
53
|
+
const pointer = member === undefined ? keywordPointer : appendPointer(keywordPointer, member);
|
|
54
|
+
const child = locations.get(locationKey(location.resource.key, pointer));
|
|
55
|
+
if (child === undefined) {
|
|
56
|
+
throw new TypeError(`Admitted value schema child ${pointer} is absent from its closure.`);
|
|
57
|
+
}
|
|
58
|
+
return child;
|
|
59
|
+
},
|
|
60
|
+
reference(location) {
|
|
61
|
+
const resolved = closure.resolutions.get(location.key);
|
|
62
|
+
return resolved === undefined
|
|
63
|
+
? undefined
|
|
64
|
+
: locations.get(locationKey(resolved.resource.key, resolved.pointer));
|
|
65
|
+
},
|
|
66
|
+
matcher(source) {
|
|
67
|
+
const matcher = matchers.get(source);
|
|
68
|
+
if (matcher === undefined) {
|
|
69
|
+
throw new TypeError('Value schema uses an unprepared I-Regexp source.');
|
|
70
|
+
}
|
|
71
|
+
return matcher.matcher;
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
function portableProgram(root, locations, resolutions, patterns) {
|
|
77
|
+
const ordered = [...locations.values()];
|
|
78
|
+
const indices = new Map(ordered.map((location, index) => [location.key, index]));
|
|
79
|
+
const nodes = ordered.map((location) => {
|
|
80
|
+
const children = {};
|
|
81
|
+
walkSchema(location.schema, (child) => {
|
|
82
|
+
if (child.depth !== 1)
|
|
83
|
+
return;
|
|
84
|
+
const target = indices.get(locationKey(location.resource.key, `${location.pointer}${child.pointer}`));
|
|
85
|
+
if (target !== undefined)
|
|
86
|
+
children[childKey(child.pointer)] = target;
|
|
87
|
+
});
|
|
88
|
+
const resolved = resolutions.get(location.key);
|
|
89
|
+
const reference = resolved === undefined
|
|
90
|
+
? undefined
|
|
91
|
+
: indices.get(locationKey(resolved.resource.key, resolved.pointer));
|
|
92
|
+
if (resolved !== undefined && reference === undefined) {
|
|
93
|
+
throw new TypeError('Prepared value schema reference target is absent.');
|
|
94
|
+
}
|
|
95
|
+
return Object.freeze({
|
|
96
|
+
schema: location.schema,
|
|
97
|
+
children: Object.freeze(children),
|
|
98
|
+
...(reference === undefined ? {} : { reference }),
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
return Object.freeze({
|
|
102
|
+
root: indices.get(root.key),
|
|
103
|
+
nodes: Object.freeze(nodes),
|
|
104
|
+
patterns: Object.freeze([...patterns.values()].map(({ pattern }) => pattern)),
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
export function childKey(pointer) {
|
|
108
|
+
return pointer.slice(1);
|
|
109
|
+
}
|
|
110
|
+
function rememberMatcher(matchers, pool, input) {
|
|
111
|
+
if (typeof input === 'string' && !matchers.has(input)) {
|
|
112
|
+
let prepared = pool.get(input);
|
|
113
|
+
if (prepared === undefined) {
|
|
114
|
+
const pattern = compilePattern(input);
|
|
115
|
+
prepared = { pattern, matcher: loadPattern(pattern) };
|
|
116
|
+
pool.set(input, prepared);
|
|
117
|
+
}
|
|
118
|
+
matchers.set(input, prepared);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
function failed(diagnostics) {
|
|
122
|
+
return {
|
|
123
|
+
compiled: false,
|
|
124
|
+
message: diagnostics.map(({ code, message }) => `${code}: ${message}`).join('; '),
|
|
125
|
+
};
|
|
126
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { loadValueProgram } from '../compile/load.js';
|
|
2
|
+
import { validateCanonicalJsonDomain } from '../profile/json.validate.js';
|
|
3
|
+
import { evaluateInstance } from './evaluator.js';
|
|
4
|
+
export function validateValueProgram(program, input, roots = [program.root]) {
|
|
5
|
+
const canonical = validateCanonicalJsonDomain(input, '');
|
|
6
|
+
if (canonical.length > 0)
|
|
7
|
+
return canonical;
|
|
8
|
+
return roots.flatMap((root) => {
|
|
9
|
+
const result = evaluateInstance(loadValueProgram(program, root), input);
|
|
10
|
+
return result.failures.map((failure) => ({
|
|
11
|
+
code: 'VALUE_SCHEMA_INSTANCE_INVALID',
|
|
12
|
+
pointer: failure.instancePointer,
|
|
13
|
+
message: `Value does not satisfy its complete V1 schema at ${failure.keyword}: ${failure.message}`,
|
|
14
|
+
}));
|
|
15
|
+
});
|
|
16
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { Value as JsonValue } from '@astrale-os/kernel-dsl/value';
|
|
2
|
+
import type { ValueProgram } from '../compile/model.js';
|
|
3
|
+
import type { JsonSchema } from '../model/schema.js';
|
|
4
|
+
import type { ResolvedAddressReference, SchemaResource } from '../reference/references.js';
|
|
5
|
+
import type { IRegexpMatcher } from '../regexp/matcher.js';
|
|
6
|
+
export interface InstanceFailure {
|
|
7
|
+
readonly instancePointer: string;
|
|
8
|
+
readonly keyword: string;
|
|
9
|
+
readonly message: string;
|
|
10
|
+
}
|
|
11
|
+
export interface SchemaLocation {
|
|
12
|
+
readonly key: string;
|
|
13
|
+
readonly pointer: string;
|
|
14
|
+
readonly resource: SchemaResource;
|
|
15
|
+
readonly schema: JsonSchema;
|
|
16
|
+
}
|
|
17
|
+
export interface CompiledInstanceSchema {
|
|
18
|
+
readonly root: SchemaLocation;
|
|
19
|
+
readonly locations: ReadonlyMap<string, SchemaLocation>;
|
|
20
|
+
readonly resolutions: ReadonlyMap<string, ResolvedAddressReference>;
|
|
21
|
+
program(): ValueProgram;
|
|
22
|
+
child(location: SchemaLocation, keyword: string, member?: string | number): SchemaLocation;
|
|
23
|
+
reference(location: SchemaLocation): SchemaLocation | undefined;
|
|
24
|
+
matcher(source: string): IRegexpMatcher;
|
|
25
|
+
}
|
|
26
|
+
export interface Evaluation {
|
|
27
|
+
readonly valid: boolean;
|
|
28
|
+
readonly failures: readonly InstanceFailure[];
|
|
29
|
+
/** Properties evaluated at this exact instance location. */
|
|
30
|
+
readonly properties: ReadonlySet<string>;
|
|
31
|
+
/** Items evaluated at this exact instance location. */
|
|
32
|
+
readonly items: ReadonlySet<number>;
|
|
33
|
+
}
|
|
34
|
+
export type Instance = JsonValue;
|
|
35
|
+
export declare function evaluation(failures?: readonly InstanceFailure[], properties?: ReadonlySet<string>, items?: ReadonlySet<number>): Evaluation;
|
|
36
|
+
export declare function mergeAnnotations(targetProperties: Set<string>, targetItems: Set<number>, source: Pick<Evaluation, 'properties' | 'items'>): void;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export function evaluation(failures = [], properties = new Set(), items = new Set()) {
|
|
2
|
+
return { valid: failures.length === 0, failures, properties, items };
|
|
3
|
+
}
|
|
4
|
+
export function mergeAnnotations(targetProperties, targetItems, source) {
|
|
5
|
+
for (const property of source.properties)
|
|
6
|
+
targetProperties.add(property);
|
|
7
|
+
for (const item of source.items)
|
|
8
|
+
targetItems.add(item);
|
|
9
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Value as JsonValue } from '@astrale-os/kernel-dsl/value';
|
|
2
|
+
import type { Diagnostic } from '../../validation/diagnostic.js';
|
|
3
|
+
import type { JsonSchema } from '../model/schema.js';
|
|
4
|
+
import type { ValueSchemaRegistry } from '../reference/registry.js';
|
|
5
|
+
import type { CompiledInstanceSchema } from './types.js';
|
|
6
|
+
import { type PatternPool } from './preparation.js';
|
|
7
|
+
/**
|
|
8
|
+
* Validate one complete portable value with the admitted V1 Draft 2020-12 profile.
|
|
9
|
+
*
|
|
10
|
+
* Evaluation is an interpreter over the exact local resource closure. It never performs network
|
|
11
|
+
* resolution or dynamic source generation; patterns use the portable executor.
|
|
12
|
+
* `format` remains annotation-only; the graph NodePath codec performs its separate locator check.
|
|
13
|
+
*/
|
|
14
|
+
export declare function validateJsonInstance(schema: JsonSchema, value: JsonValue, registry: ValueSchemaRegistry, pointer?: string, patterns?: PatternPool): Diagnostic[];
|
|
15
|
+
/** Validate with the exact preparation already retained by a source-resolved Property or Callable. */
|
|
16
|
+
export declare function validatePreparedInstance(compiled: CompiledInstanceSchema, value: unknown): Diagnostic[];
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { diagnostic } from '../../validation/diagnostic.js';
|
|
2
|
+
import { validateCanonicalJsonDomain } from '../profile/json.validate.js';
|
|
3
|
+
import { evaluateInstance } from './evaluator.js';
|
|
4
|
+
import { prepareValueSchema, } from './preparation.js';
|
|
5
|
+
const validatorCache = new WeakMap();
|
|
6
|
+
/**
|
|
7
|
+
* Validate one complete portable value with the admitted V1 Draft 2020-12 profile.
|
|
8
|
+
*
|
|
9
|
+
* Evaluation is an interpreter over the exact local resource closure. It never performs network
|
|
10
|
+
* resolution or dynamic source generation; patterns use the portable executor.
|
|
11
|
+
* `format` remains annotation-only; the graph NodePath codec performs its separate locator check.
|
|
12
|
+
*/
|
|
13
|
+
export function validateJsonInstance(schema, value, registry, pointer = '', patterns) {
|
|
14
|
+
const diagnostics = [...validateCanonicalJsonDomain(value, pointer)];
|
|
15
|
+
if (diagnostics.length > 0)
|
|
16
|
+
return diagnostics;
|
|
17
|
+
const prepared = preparedInstanceValidator(schema, registry, pointer, patterns);
|
|
18
|
+
if (!prepared.compiled) {
|
|
19
|
+
return [
|
|
20
|
+
diagnostic('VS_REFERENCE_RESOLUTION', pointer, `Value validation failed closed while preparing exact schema resources: ${prepared.message}.`),
|
|
21
|
+
];
|
|
22
|
+
}
|
|
23
|
+
return instanceDiagnostics(prepared.value, value, pointer);
|
|
24
|
+
}
|
|
25
|
+
/** Validate with the exact preparation already retained by a source-resolved Property or Callable. */
|
|
26
|
+
export function validatePreparedInstance(compiled, value) {
|
|
27
|
+
const diagnostics = [...validateCanonicalJsonDomain(value, '')];
|
|
28
|
+
return diagnostics.length > 0
|
|
29
|
+
? diagnostics
|
|
30
|
+
: instanceDiagnostics(compiled, value, '');
|
|
31
|
+
}
|
|
32
|
+
function instanceDiagnostics(compiled, value, pointer) {
|
|
33
|
+
const result = evaluateInstance(compiled, value);
|
|
34
|
+
if (result.valid)
|
|
35
|
+
return [];
|
|
36
|
+
return result.failures.map((failure) => diagnostic('VALUE_SCHEMA_INSTANCE_INVALID', `${pointer}${failure.instancePointer}`, `Value does not satisfy its complete V1 schema at ${failure.keyword}: ${failure.message}`));
|
|
37
|
+
}
|
|
38
|
+
function preparedInstanceValidator(schema, registry, pointer, patterns) {
|
|
39
|
+
let bySchema = validatorCache.get(registry);
|
|
40
|
+
if (bySchema === undefined) {
|
|
41
|
+
bySchema = new Map();
|
|
42
|
+
validatorCache.set(registry, bySchema);
|
|
43
|
+
}
|
|
44
|
+
const cached = bySchema.get(schema);
|
|
45
|
+
if (cached !== undefined)
|
|
46
|
+
return cached;
|
|
47
|
+
const prepared = prepareValueSchema(schema, registry, pointer, patterns);
|
|
48
|
+
bySchema.set(schema, prepared);
|
|
49
|
+
return prepared;
|
|
50
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Complete V1 inline value language. Named Type Definitions do not exist. */
|
|
2
|
+
export type { JsonSchema as ValueSchema, JsonSchemaObject as ValueSchemaObject, PathAnnotation, PropertyObjectSchema, ValueSchemaContext, } from './model/schema.js';
|
|
3
|
+
export { JSON_SCHEMA_DIALECT, VALUE_SCHEMA_DIALECT, VALUE_SCHEMA_VOCABULARY, } from './model/schema.js';
|
|
4
|
+
export { instant, isInstantValue } from './model/instant.js';
|
|
5
|
+
export { classifyOrdering, type OrderingKind } from './ordering.js';
|
|
6
|
+
export { canonicalizeValueSchema } from './profile/canonicalize.js';
|
|
7
|
+
export { validateValueSchema } from './profile/validate.js';
|
|
8
|
+
export { validateJsonInstance } from './evaluate/validate.js';
|
|
9
|
+
export { prepareValueSchema, type InstanceSchemaCompilation } from './evaluate/preparation.js';
|
|
10
|
+
export type { ValueProgram } from './compile/model.js';
|
|
11
|
+
export type { ValueSchemaRegistry, ValueSchemaDomainRegistry } from './reference/registry.js';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Complete V1 inline value language. Named Type Definitions do not exist. */
|
|
2
|
+
export { JSON_SCHEMA_DIALECT, VALUE_SCHEMA_DIALECT, VALUE_SCHEMA_VOCABULARY, } from './model/schema.js';
|
|
3
|
+
export { instant, isInstantValue } from './model/instant.js';
|
|
4
|
+
export { classifyOrdering } from './ordering.js';
|
|
5
|
+
export { canonicalizeValueSchema } from './profile/canonicalize.js';
|
|
6
|
+
export { validateValueSchema } from './profile/validate.js';
|
|
7
|
+
export { validateJsonInstance } from './evaluate/validate.js';
|
|
8
|
+
export { prepareValueSchema } from './evaluate/preparation.js';
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { JsonSchemaObject } from './schema.js';
|
|
2
|
+
declare const BLOB_SCHEMA: unique symbol;
|
|
3
|
+
/** The portable value read from a blob-kind Node property. */
|
|
4
|
+
export interface BlobRef {
|
|
5
|
+
readonly digest: `sha256:${string}`;
|
|
6
|
+
readonly mediaType: string;
|
|
7
|
+
readonly size: number;
|
|
8
|
+
}
|
|
9
|
+
/** An uploader-bound receipt is the only ordinary write input for a blob property. */
|
|
10
|
+
export type BlobReceipt = string & {
|
|
11
|
+
readonly __brand: 'BlobReceipt';
|
|
12
|
+
};
|
|
13
|
+
/** Type-only marker; the serialized schema remains ordinary JSON. */
|
|
14
|
+
export interface BlobSchema extends JsonSchemaObject {
|
|
15
|
+
readonly [BLOB_SCHEMA]: true;
|
|
16
|
+
}
|
|
17
|
+
export interface BlobOptions {
|
|
18
|
+
/** Required property-level bound, in bytes. */
|
|
19
|
+
readonly maxBytes: number;
|
|
20
|
+
/** Omission admits any canonical artifact media type. */
|
|
21
|
+
readonly mediaTypes?: readonly string[];
|
|
22
|
+
}
|
|
23
|
+
export declare const BLOB_VALUE_KIND: 'blob';
|
|
24
|
+
export declare const BLOB_DIGEST_PATTERN = "sha256:[0-9a-f]{64}";
|
|
25
|
+
export declare const BLOB_MEDIA_TYPE_PATTERN = "[a-z0-9!#$%&'*+.^_`|~-]+/[a-z0-9!#$%&'*+.^_`|~-]+(;[a-z0-9!#$%&'*+.^_`|~-]+=[!#$%&'*+.^_`|~0-9A-Za-z-]+)*";
|
|
26
|
+
/** Build the one canonical V1 schema shape for a blob-valued Node property. */
|
|
27
|
+
export declare function blob(options: BlobOptions): BlobSchema;
|
|
28
|
+
/** Marker recognition on an already admitted V1 value schema. */
|
|
29
|
+
export declare function isBlobValueSchema(input: unknown): input is BlobSchema;
|
|
30
|
+
/** Exact canonical artifact media type, including ordered token parameters. */
|
|
31
|
+
export declare function canonicalMediaType(input: string): string;
|
|
32
|
+
export declare function isCanonicalBlobRef(input: unknown): input is BlobRef;
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
export const BLOB_VALUE_KIND = 'blob';
|
|
2
|
+
export const BLOB_DIGEST_PATTERN = 'sha256:[0-9a-f]{64}';
|
|
3
|
+
export const BLOB_MEDIA_TYPE_PATTERN = "[a-z0-9!#$%&'*+.^_`|~-]+/[a-z0-9!#$%&'*+.^_`|~-]+(;[a-z0-9!#$%&'*+.^_`|~-]+=[!#$%&'*+.^_`|~0-9A-Za-z-]+)*";
|
|
4
|
+
const TOKEN = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/u;
|
|
5
|
+
const DIGEST = /^sha256:[0-9a-f]{64}$/u;
|
|
6
|
+
/** Build the one canonical V1 schema shape for a blob-valued Node property. */
|
|
7
|
+
export function blob(options) {
|
|
8
|
+
if (!Number.isSafeInteger(options?.maxBytes) || options.maxBytes < 1) {
|
|
9
|
+
throw new TypeError('Blob maxBytes must be a positive safe integer.');
|
|
10
|
+
}
|
|
11
|
+
let mediaTypes;
|
|
12
|
+
if (options.mediaTypes !== undefined) {
|
|
13
|
+
if (!Array.isArray(options.mediaTypes) || options.mediaTypes.length === 0) {
|
|
14
|
+
throw new TypeError('Blob mediaTypes must be a non-empty list.');
|
|
15
|
+
}
|
|
16
|
+
mediaTypes = [...new Set(options.mediaTypes.map(canonicalMediaType))].sort();
|
|
17
|
+
}
|
|
18
|
+
return Object.freeze({
|
|
19
|
+
type: 'object',
|
|
20
|
+
'x-astrale-value-kind': BLOB_VALUE_KIND,
|
|
21
|
+
properties: {
|
|
22
|
+
digest: { type: 'string', fullMatch: BLOB_DIGEST_PATTERN },
|
|
23
|
+
mediaType: mediaTypes === undefined
|
|
24
|
+
? { type: 'string', fullMatch: BLOB_MEDIA_TYPE_PATTERN }
|
|
25
|
+
: { enum: mediaTypes },
|
|
26
|
+
size: { type: 'integer', minimum: 0, maximum: options.maxBytes },
|
|
27
|
+
},
|
|
28
|
+
required: ['digest', 'mediaType', 'size'],
|
|
29
|
+
additionalProperties: false,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
/** Marker recognition on an already admitted V1 value schema. */
|
|
33
|
+
export function isBlobValueSchema(input) {
|
|
34
|
+
return (input !== null &&
|
|
35
|
+
typeof input === 'object' &&
|
|
36
|
+
!Array.isArray(input) &&
|
|
37
|
+
input['x-astrale-value-kind'] === BLOB_VALUE_KIND);
|
|
38
|
+
}
|
|
39
|
+
/** Exact canonical artifact media type, including ordered token parameters. */
|
|
40
|
+
export function canonicalMediaType(input) {
|
|
41
|
+
if (typeof input !== 'string')
|
|
42
|
+
throw new TypeError('Blob media type is invalid.');
|
|
43
|
+
const [essence, ...parametersInput] = input.split(';');
|
|
44
|
+
const [rawType, rawSubtype, ...extra] = essence.trim().split('/');
|
|
45
|
+
if (rawType === undefined ||
|
|
46
|
+
rawSubtype === undefined ||
|
|
47
|
+
extra.length !== 0 ||
|
|
48
|
+
!TOKEN.test(rawType) ||
|
|
49
|
+
!TOKEN.test(rawSubtype)) {
|
|
50
|
+
throw new TypeError('Blob media type is invalid.');
|
|
51
|
+
}
|
|
52
|
+
const parameters = parametersInput.map((part) => {
|
|
53
|
+
const separator = part.indexOf('=');
|
|
54
|
+
if (separator <= 0)
|
|
55
|
+
throw new TypeError('Blob media type parameter is invalid.');
|
|
56
|
+
const name = part.slice(0, separator).trim().toLowerCase();
|
|
57
|
+
const value = part.slice(separator + 1).trim();
|
|
58
|
+
if (!TOKEN.test(name) || !TOKEN.test(value)) {
|
|
59
|
+
throw new TypeError('Blob media type parameter is invalid.');
|
|
60
|
+
}
|
|
61
|
+
return [name, value];
|
|
62
|
+
});
|
|
63
|
+
parameters.sort(([left], [right]) => (left < right ? -1 : left > right ? 1 : 0));
|
|
64
|
+
if (new Set(parameters.map(([name]) => name)).size !== parameters.length) {
|
|
65
|
+
throw new TypeError('Blob media type parameters are duplicated.');
|
|
66
|
+
}
|
|
67
|
+
return parameters.reduce((result, [name, value]) => `${result};${name}=${value}`, `${rawType.toLowerCase()}/${rawSubtype.toLowerCase()}`);
|
|
68
|
+
}
|
|
69
|
+
export function isCanonicalBlobRef(input) {
|
|
70
|
+
if (input === null || typeof input !== 'object' || Array.isArray(input))
|
|
71
|
+
return false;
|
|
72
|
+
const value = input;
|
|
73
|
+
if (Object.keys(value).length !== 3 ||
|
|
74
|
+
!Object.hasOwn(value, 'digest') ||
|
|
75
|
+
!Object.hasOwn(value, 'mediaType') ||
|
|
76
|
+
!Object.hasOwn(value, 'size') ||
|
|
77
|
+
typeof value.digest !== 'string' ||
|
|
78
|
+
!DIGEST.test(value.digest) ||
|
|
79
|
+
typeof value.mediaType !== 'string' ||
|
|
80
|
+
!Number.isSafeInteger(value.size) ||
|
|
81
|
+
value.size < 0) {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
try {
|
|
85
|
+
return canonicalMediaType(value.mediaType) === value.mediaType;
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Exact portable UTC millisecond Instant used by the V1 value-schema dialect. */
|
|
2
|
+
/** Canonical value-language annotation for an Instant string. */
|
|
3
|
+
export declare const INSTANT_VALUE_KIND: 'instant';
|
|
4
|
+
export declare const instant: Readonly<{
|
|
5
|
+
readonly type: 'string';
|
|
6
|
+
readonly 'x-astrale-value-kind': 'instant';
|
|
7
|
+
}>;
|
|
8
|
+
/** Test the exact proleptic-Gregorian V1 Instant lexical and calendar domain. */
|
|
9
|
+
export declare function isInstantValue(input: unknown): input is string;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/** Exact portable UTC millisecond Instant used by the V1 value-schema dialect. */
|
|
2
|
+
/** Canonical value-language annotation for an Instant string. */
|
|
3
|
+
export const INSTANT_VALUE_KIND = 'instant';
|
|
4
|
+
export const instant = Object.freeze({
|
|
5
|
+
type: 'string',
|
|
6
|
+
'x-astrale-value-kind': INSTANT_VALUE_KIND,
|
|
7
|
+
});
|
|
8
|
+
const INSTANT_PATTERN = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})\.(\d{3})Z$/u;
|
|
9
|
+
/** Test the exact proleptic-Gregorian V1 Instant lexical and calendar domain. */
|
|
10
|
+
export function isInstantValue(input) {
|
|
11
|
+
if (typeof input !== 'string')
|
|
12
|
+
return false;
|
|
13
|
+
const match = INSTANT_PATTERN.exec(input);
|
|
14
|
+
if (match === null)
|
|
15
|
+
return false;
|
|
16
|
+
const year = Number(match[1]);
|
|
17
|
+
const month = Number(match[2]);
|
|
18
|
+
const day = Number(match[3]);
|
|
19
|
+
const hour = Number(match[4]);
|
|
20
|
+
const minute = Number(match[5]);
|
|
21
|
+
const second = Number(match[6]);
|
|
22
|
+
return (month >= 1 &&
|
|
23
|
+
month <= 12 &&
|
|
24
|
+
day >= 1 &&
|
|
25
|
+
day <= daysInMonth(year, month) &&
|
|
26
|
+
hour <= 23 &&
|
|
27
|
+
minute <= 59 &&
|
|
28
|
+
second <= 59);
|
|
29
|
+
}
|
|
30
|
+
function daysInMonth(year, month) {
|
|
31
|
+
if (month === 2)
|
|
32
|
+
return isLeapYear(year) ? 29 : 28;
|
|
33
|
+
return month === 4 || month === 6 || month === 9 || month === 11 ? 30 : 31;
|
|
34
|
+
}
|
|
35
|
+
function isLeapYear(year) {
|
|
36
|
+
return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
|
|
37
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Object as ValueObject, Value } from '@astrale-os/kernel-dsl/value';
|
|
2
|
+
/** Internal shape refinement for values that have already crossed portable-value admission. */
|
|
3
|
+
/** Return whether an unknown value is a portable JSON object. */
|
|
4
|
+
export declare function isValueObject(value: unknown): value is ValueObject;
|
|
5
|
+
export declare function isValueObject(value: Value): value is ValueObject;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Object as JsonObject, Value as JsonValue } from '@astrale-os/kernel-dsl/value';
|
|
2
|
+
import type { ClassRef } from '../../../addressing/index.js';
|
|
3
|
+
/** Standard dialect on which the Astrale value-schema dialect is based. */
|
|
4
|
+
export declare const JSON_SCHEMA_DIALECT: 'https://json-schema.org/draft/2020-12/schema';
|
|
5
|
+
/** Required V1 dialect for every embedded Astrale value schema. */
|
|
6
|
+
export declare const VALUE_SCHEMA_DIALECT: 'https://schemas.astrale.ai/dsl/v1/value-schema';
|
|
7
|
+
/** Required vocabulary carried by the V1 value-schema dialect. */
|
|
8
|
+
export declare const VALUE_SCHEMA_VOCABULARY: 'https://schemas.astrale.ai/dsl/v1/value-schema/vocabulary';
|
|
9
|
+
export type JsonSchema = boolean | JsonSchemaObject;
|
|
10
|
+
export type JsonSchemaObject = JsonObject & {
|
|
11
|
+
readonly [keyword: string]: JsonValue;
|
|
12
|
+
};
|
|
13
|
+
export interface PropertyObjectSchema extends JsonSchemaObject {
|
|
14
|
+
readonly type: 'object';
|
|
15
|
+
readonly properties: Readonly<Record<string, JsonSchema>>;
|
|
16
|
+
readonly required: readonly string[];
|
|
17
|
+
readonly additionalProperties: false;
|
|
18
|
+
}
|
|
19
|
+
export interface PathAnnotation {
|
|
20
|
+
readonly target: 'node';
|
|
21
|
+
readonly cardinality: 'one';
|
|
22
|
+
readonly accepts: readonly ClassRef[];
|
|
23
|
+
}
|
|
24
|
+
export declare const VALUE_SCHEMA_CONTEXTS: readonly ['property-facet', 'callable-input', 'callable-output'];
|
|
25
|
+
export type ValueSchemaContext = (typeof VALUE_SCHEMA_CONTEXTS)[number];
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Standard dialect on which the Astrale value-schema dialect is based. */
|
|
2
|
+
export const JSON_SCHEMA_DIALECT = 'https://json-schema.org/draft/2020-12/schema';
|
|
3
|
+
/** Required V1 dialect for every embedded Astrale value schema. */
|
|
4
|
+
export const VALUE_SCHEMA_DIALECT = 'https://schemas.astrale.ai/dsl/v1/value-schema';
|
|
5
|
+
/** Required vocabulary carried by the V1 value-schema dialect. */
|
|
6
|
+
export const VALUE_SCHEMA_VOCABULARY = 'https://schemas.astrale.ai/dsl/v1/value-schema/vocabulary';
|
|
7
|
+
export const VALUE_SCHEMA_CONTEXTS = [
|
|
8
|
+
'property-facet',
|
|
9
|
+
'callable-input',
|
|
10
|
+
'callable-output',
|
|
11
|
+
];
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ValueProgram } from './compile/model.js';
|
|
2
|
+
import type { CompiledInstanceSchema } from './evaluate/types.js';
|
|
3
|
+
import type { JsonSchema } from './model/schema.js';
|
|
4
|
+
import type { ValueSchemaRegistry } from './reference/registry.js';
|
|
5
|
+
export type OrderingKind = 'boolean' | 'number' | 'string' | 'instant';
|
|
6
|
+
/**
|
|
7
|
+
* Classify a schema only when every value it can admit belongs to one sortable scalar domain.
|
|
8
|
+
*
|
|
9
|
+
* The analysis is intentionally conservative: unsupported or ambiguous schemas return undefined
|
|
10
|
+
* instead of guessing from annotations, examples, formats, or current data.
|
|
11
|
+
*/
|
|
12
|
+
export declare function classifyOrdering(contract: JsonSchema, registry: ValueSchemaRegistry): OrderingKind | undefined;
|
|
13
|
+
/** Recompute the scalar ordering classification from one admitted portable value program. */
|
|
14
|
+
export declare function classifyValueProgramOrdering(program: ValueProgram): OrderingKind | undefined;
|
|
15
|
+
export declare function classifyPreparedOrdering(compiled: CompiledInstanceSchema): OrderingKind | undefined;
|