@astrale-os/kernel-dsl 0.2.0-beta.4 → 0.2.0-beta.40
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 +137 -0
- package/dist/v1/builder/callable/authoring.js +80 -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 +149 -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 +370 -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 +1050 -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 +1186 -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 +140 -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 +272 -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 +175 -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 +46 -0
- package/dist/v1/language/callable/model/callable.js +3 -0
- package/dist/v1/language/callable/resolved.d.ts +79 -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 +63 -0
- package/dist/v1/schema/analysis/class.js +141 -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 +27 -0
- package/dist/v1/schema/compatibility/comparators/callables.js +84 -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 +186 -0
- package/dist/v1/schema/compatibility/fields.js +88 -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 +232 -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/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 +36 -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 +230 -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,75 @@
|
|
|
1
|
+
/** Build the one Domain-level router shared by source resolution and compiled loading. */
|
|
2
|
+
export function createDomainValidation(properties, callables) {
|
|
3
|
+
const validation = {
|
|
4
|
+
propertyExists: (key) => properties.has(key),
|
|
5
|
+
property(key, input) {
|
|
6
|
+
const target = properties.get(key);
|
|
7
|
+
return target === undefined ? unknownTarget('Property', key) : target.validate(input);
|
|
8
|
+
},
|
|
9
|
+
propertyOrdering: (key) => properties.get(key)?.ordering,
|
|
10
|
+
callableExists: (key) => callables.has(key),
|
|
11
|
+
callableInput(key, input) {
|
|
12
|
+
const target = callables.get(key);
|
|
13
|
+
return target === undefined ? unknownTarget('Callable', key) : target.validateInput(input);
|
|
14
|
+
},
|
|
15
|
+
callableFields: (key) => callables.get(key)?.fields,
|
|
16
|
+
callableInputField(key, field, input) {
|
|
17
|
+
const target = callables.get(key);
|
|
18
|
+
return target === undefined
|
|
19
|
+
? unknownTarget('Callable', key)
|
|
20
|
+
: target.validateInputField(field, input);
|
|
21
|
+
},
|
|
22
|
+
callableOutput(key, output) {
|
|
23
|
+
const target = callables.get(key);
|
|
24
|
+
return target === undefined ? unknownTarget('Callable', key) : target.validateOutput(output);
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
return Object.freeze(validation);
|
|
28
|
+
}
|
|
29
|
+
export function combineDomainValidation(values) {
|
|
30
|
+
const validation = {
|
|
31
|
+
propertyExists: (key) => values.some((value) => value.propertyExists(key)),
|
|
32
|
+
property(key, input) {
|
|
33
|
+
const owner = values.find((value) => value.propertyExists(key));
|
|
34
|
+
return owner === undefined ? unknownTarget('Property', key) : owner.property(key, input);
|
|
35
|
+
},
|
|
36
|
+
propertyOrdering: (key) => values.find((value) => value.propertyExists(key))?.propertyOrdering(key),
|
|
37
|
+
callableExists: (key) => values.some((value) => value.callableExists(key)),
|
|
38
|
+
callableInput(key, input) {
|
|
39
|
+
const owner = values.find((value) => value.callableExists(key));
|
|
40
|
+
return owner === undefined ? unknownTarget('Callable', key) : owner.callableInput(key, input);
|
|
41
|
+
},
|
|
42
|
+
callableFields: (key) => values.find((value) => value.callableExists(key))?.callableFields(key),
|
|
43
|
+
callableInputField(key, field, input) {
|
|
44
|
+
const owner = values.find((value) => value.callableExists(key));
|
|
45
|
+
return owner === undefined
|
|
46
|
+
? unknownTarget('Callable', key)
|
|
47
|
+
: owner.callableInputField(key, field, input);
|
|
48
|
+
},
|
|
49
|
+
callableOutput(key, output) {
|
|
50
|
+
const owner = values.find((value) => value.callableExists(key));
|
|
51
|
+
return owner === undefined
|
|
52
|
+
? unknownTarget('Callable', key)
|
|
53
|
+
: owner.callableOutput(key, output);
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
return Object.freeze(validation);
|
|
57
|
+
}
|
|
58
|
+
export function unknownInputField(field) {
|
|
59
|
+
return [
|
|
60
|
+
Object.freeze({
|
|
61
|
+
code: 'CALLABLE_INPUT_FIELD_UNKNOWN',
|
|
62
|
+
pointer: '',
|
|
63
|
+
message: `Input field ${field} is absent.`,
|
|
64
|
+
}),
|
|
65
|
+
];
|
|
66
|
+
}
|
|
67
|
+
function unknownTarget(kind, key) {
|
|
68
|
+
return [
|
|
69
|
+
Object.freeze({
|
|
70
|
+
code: 'DOMAIN_VALIDATION_TARGET_UNKNOWN',
|
|
71
|
+
pointer: '',
|
|
72
|
+
message: `${kind} ${key} is absent.`,
|
|
73
|
+
}),
|
|
74
|
+
];
|
|
75
|
+
}
|
package/dist/v1/index.d.ts
CHANGED
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
/** Stable aggregate facade for the V1 language. */
|
|
2
|
-
export { auto,
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export {
|
|
2
|
+
export { auto, core, defineClass, defineSchema, edgeClass, func, fullMatch, input, method, nodeClass, output, path, policy, property, stateProperty, valueSchema, view, } from './builder/index.js';
|
|
3
|
+
export { stateMachine } from './language/state/index.js';
|
|
4
|
+
export { isBinaryInput } from './language/callable/model/callable.js';
|
|
5
|
+
export type { EventOf, StateMachine, StateOf } from './language/state/index.js';
|
|
6
|
+
export { PropertyValues } from './language/index.js';
|
|
7
|
+
export * as metadata from './language/definition/metadata.js';
|
|
8
|
+
export type { AnyResolvedClass, BoundMethodOf, BoundMethodShortcutsOf, CallableResultOf, CallableInputOf, CallableInputModeOf, CallableOutputOf, ClassSatisfactionKeysOf, ClassDefinition, CoreDefinition, CoreEdge, FunctionAuth, FunctionDefinition, BinaryInput, BinaryInputProjection, CallableInputContract, MethodDefinition, MethodOwnerKeyOf, PolicyCheckExpression, PolicyDefinition, PropertyInputOf, PropertyAccessOf, PropertyOutputOf, PropertyShortcutsOf, PropertyValuesOf, ResolvedClass, ResolvedCoreDefinition, ResolvedCoreEndpoint, ResolvedData, ResolvedFunction, ExecutableMethod, ResolvedMethod, ResolvedMethodCollection, ResolvedPolicy, ResolvedProperty, ResolvedView, MethodAccessOf, SelfMethodsOf, SelfPropertiesOf, SelfStaticMethodsOf, StaticMethodsOf, ViewDefinition, } from './language/index.js';
|
|
9
|
+
export { acceptDefinitionRef, callableAddress, ClassKey, equalDefinitionRefs, isDefinitionRef, Key, MethodKey, PropertyKey, } from './addressing/index.js';
|
|
10
|
+
export type { ClassRef, CoreRef, DefinitionBase, DefinitionKey, DefinitionRef, FunctionRef, MethodAddress, PolicyRef, Revision, ViewRef, } from './addressing/index.js';
|
|
11
|
+
export type { Definition } from './language/index.js';
|
|
12
|
+
export type { Domain, MethodOwnerOf, SourceDomain } from './domain/index.js';
|
|
13
|
+
export { isDomain } from './domain/index.js';
|
|
6
14
|
export type * as builder from './builder/index.js';
|
|
15
|
+
export type { PathAuthoring, TypedValueSchema } from './builder/index.js';
|
|
16
|
+
export type { PropertyValues as PropertyValuesValue } from './language/index.js';
|
|
17
|
+
export type { CompiledSchema } from './compiled/index.js';
|
|
7
18
|
export * as schema from './schema/index.js';
|
|
8
19
|
export * as bundle from './bundle/index.js';
|
|
9
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/v1/index.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
/** Stable aggregate facade for the V1 language. */
|
|
2
|
-
export { auto,
|
|
3
|
-
export {
|
|
2
|
+
export { auto, core, defineClass, defineSchema, edgeClass, func, fullMatch, input, method, nodeClass, output, path, policy, property, stateProperty, valueSchema, view, } from './builder/index.js';
|
|
3
|
+
export { stateMachine } from './language/state/index.js';
|
|
4
|
+
export { isBinaryInput } from './language/callable/model/callable.js';
|
|
5
|
+
export { PropertyValues } from './language/index.js';
|
|
6
|
+
export * as metadata from './language/definition/metadata.js';
|
|
7
|
+
export { acceptDefinitionRef, callableAddress, ClassKey, equalDefinitionRefs, isDefinitionRef, Key, MethodKey, PropertyKey, } from './addressing/index.js';
|
|
8
|
+
export { isDomain } from './domain/index.js';
|
|
4
9
|
export * as schema from './schema/index.js';
|
|
5
10
|
export * as bundle from './bundle/index.js';
|
|
6
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
interface MethodMember {
|
|
2
|
+
readonly key: string;
|
|
3
|
+
readonly name: string;
|
|
4
|
+
readonly declaration: {
|
|
5
|
+
readonly abstract: boolean;
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export interface MethodComposition<Method> {
|
|
9
|
+
readonly requirements: ReadonlyMap<string, Method>;
|
|
10
|
+
readonly frontier: ReadonlyMap<string, Method>;
|
|
11
|
+
readonly methods: ReadonlyMap<string, Method>;
|
|
12
|
+
}
|
|
13
|
+
/** Structured failure facts; human diagnostic wording is not compatibility evidence. */
|
|
14
|
+
export type MethodCompositionIssue = {
|
|
15
|
+
readonly kind: 'signature';
|
|
16
|
+
readonly local: string;
|
|
17
|
+
readonly required: string;
|
|
18
|
+
} | {
|
|
19
|
+
readonly kind: 'ambiguous';
|
|
20
|
+
readonly methods: readonly [string, string];
|
|
21
|
+
} | {
|
|
22
|
+
readonly kind: 'missing';
|
|
23
|
+
readonly required: string;
|
|
24
|
+
};
|
|
25
|
+
/** Concrete implementations never discharge a descendant's abstract obligations. */
|
|
26
|
+
export declare function composeMethods<Method extends MethodMember>(parents: readonly MethodComposition<Method>[], own: ReadonlyMap<string, Method>, abstract: boolean, sameSignature: (left: Method, right: Method) => boolean, report: (message: string, issue: MethodCompositionIssue) => void): MethodComposition<Method>;
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/** Concrete implementations never discharge a descendant's abstract obligations. */
|
|
2
|
+
export function composeMethods(parents, own, abstract, sameSignature, report) {
|
|
3
|
+
const requirements = new Map(parents.flatMap((parent) => [...parent.requirements]));
|
|
4
|
+
const frontier = new Map(parents.flatMap((parent) => [...parent.frontier]));
|
|
5
|
+
for (const required of requirements.values()) {
|
|
6
|
+
const local = own.get(required.name);
|
|
7
|
+
if (local !== undefined && !sameSignature(local, required)) {
|
|
8
|
+
report(`Method ${local.key} does not exactly preserve abstract signature ${required.key}.`, {
|
|
9
|
+
kind: 'signature',
|
|
10
|
+
local: local.key,
|
|
11
|
+
required: required.key,
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
for (const local of own.values()) {
|
|
16
|
+
if (!local.declaration.abstract)
|
|
17
|
+
continue;
|
|
18
|
+
requirements.set(local.key, local);
|
|
19
|
+
for (const [key, inherited] of frontier) {
|
|
20
|
+
if (inherited.name === local.name)
|
|
21
|
+
frontier.delete(key);
|
|
22
|
+
}
|
|
23
|
+
frontier.set(local.key, local);
|
|
24
|
+
}
|
|
25
|
+
const methods = new Map();
|
|
26
|
+
for (const inherited of frontier.values()) {
|
|
27
|
+
const prior = methods.get(inherited.name);
|
|
28
|
+
if (prior !== undefined && !own.has(inherited.name)) {
|
|
29
|
+
report(`Inherited Method ${inherited.name} is ambiguous: ${prior.key}, ${inherited.key}.`, {
|
|
30
|
+
kind: 'ambiguous',
|
|
31
|
+
methods: [prior.key, inherited.key],
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
methods.set(inherited.name, inherited);
|
|
35
|
+
}
|
|
36
|
+
for (const [name, local] of own)
|
|
37
|
+
methods.set(name, local);
|
|
38
|
+
if (!abstract) {
|
|
39
|
+
const missing = new Set();
|
|
40
|
+
for (const required of requirements.values()) {
|
|
41
|
+
const local = own.get(required.name);
|
|
42
|
+
if (local === undefined && !missing.has(required.name)) {
|
|
43
|
+
missing.add(required.name);
|
|
44
|
+
report(`Concrete Class requires a local Method declaration of ${required.key}.`, {
|
|
45
|
+
kind: 'missing',
|
|
46
|
+
required: required.key,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return { requirements, frontier, methods };
|
|
52
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { DefinitionBase, FunctionRef } from '../../../addressing/index.js';
|
|
2
|
+
import type { PolicyCheckExpression } from '../../policy/model/policy.js';
|
|
3
|
+
import type { JsonSchema } from '../../value/model/schema.js';
|
|
4
|
+
export type FunctionAuth = 'anonymous' | 'authenticated' | 'authorized';
|
|
5
|
+
export type CallableOutput = {
|
|
6
|
+
readonly mode: 'value';
|
|
7
|
+
readonly schema: JsonSchema;
|
|
8
|
+
} | {
|
|
9
|
+
readonly mode: 'stream';
|
|
10
|
+
readonly item: JsonSchema;
|
|
11
|
+
} | {
|
|
12
|
+
readonly mode: 'binary';
|
|
13
|
+
};
|
|
14
|
+
export type OutputMode = CallableOutput['mode'];
|
|
15
|
+
/** A binary Function receives portable metadata and one required byte stream. */
|
|
16
|
+
export interface BinaryInput {
|
|
17
|
+
readonly mode: 'binary';
|
|
18
|
+
readonly metadata: JsonSchema;
|
|
19
|
+
readonly maximumBytes: number;
|
|
20
|
+
}
|
|
21
|
+
export type CallableInputContract = JsonSchema | BinaryInput;
|
|
22
|
+
declare const BINARY_INPUT_PROJECTION: unique symbol;
|
|
23
|
+
/** Type-only witness retained by authored Functions; never serialized as an input Value. */
|
|
24
|
+
export interface BinaryInputProjection<out Metadata = unknown> {
|
|
25
|
+
readonly [BINARY_INPUT_PROJECTION]: Metadata;
|
|
26
|
+
}
|
|
27
|
+
export declare function isBinaryInput(input: CallableInputContract): input is BinaryInput;
|
|
28
|
+
export interface CallableDefinitionBase<Input extends CallableInputContract = CallableInputContract> {
|
|
29
|
+
readonly description?: string;
|
|
30
|
+
readonly input: Input;
|
|
31
|
+
readonly output: CallableOutput;
|
|
32
|
+
}
|
|
33
|
+
export type CallableDefinition<Input extends CallableInputContract = CallableInputContract> = CallableDefinitionBase<Input> & ({
|
|
34
|
+
readonly auth: 'anonymous' | 'authenticated';
|
|
35
|
+
readonly policy?: never;
|
|
36
|
+
} | {
|
|
37
|
+
readonly auth: 'authorized';
|
|
38
|
+
readonly policy?: PolicyCheckExpression;
|
|
39
|
+
});
|
|
40
|
+
export type FunctionDefinition = DefinitionBase<FunctionRef> & CallableDefinition;
|
|
41
|
+
export type MethodDefinition = CallableDefinition<JsonSchema> & {
|
|
42
|
+
readonly static: boolean;
|
|
43
|
+
readonly abstract: boolean;
|
|
44
|
+
};
|
|
45
|
+
export type MethodRecord = Readonly<Record<string, MethodDefinition>>;
|
|
46
|
+
export {};
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { DefinitionKey, FunctionRef, Key, MethodKey } from '../../addressing/index.js';
|
|
2
|
+
import type { ResolvedClass } from '../class/resolved.js';
|
|
3
|
+
import type { PolicyCheckExpression } from '../policy/model/policy.js';
|
|
4
|
+
import type { Diagnostic } from '../validation/diagnostic.js';
|
|
5
|
+
import type { BinaryInputProjection, FunctionDefinition, MethodDefinition } from './model/callable.js';
|
|
6
|
+
import type { FunctionAuth } from './model/callable.js';
|
|
7
|
+
type CallableDefinitionOf<Definition extends FunctionDefinition | MethodDefinition, Auth extends FunctionAuth, Policy extends PolicyCheckExpression> = Omit<Definition, 'auth' | 'policy'> & (Auth extends FunctionAuth ? {
|
|
8
|
+
readonly auth: Auth;
|
|
9
|
+
} & (Auth extends 'authorized' ? {
|
|
10
|
+
readonly policy?: Policy;
|
|
11
|
+
} : {
|
|
12
|
+
readonly policy?: never;
|
|
13
|
+
}) : never);
|
|
14
|
+
export interface ResolvedMethod<out Input = unknown, out Output = unknown, out Static extends boolean = boolean, out Abstract extends MethodDefinition['abstract'] = MethodDefinition['abstract'], out Auth extends FunctionAuth = FunctionAuth, out Policy extends PolicyCheckExpression = PolicyCheckExpression, out ExactKey extends MethodKey = MethodKey> {
|
|
15
|
+
readonly owner: ResolvedClass<'node'> & {
|
|
16
|
+
readonly key: MethodOwnerKeyOfKey<ExactKey>;
|
|
17
|
+
};
|
|
18
|
+
readonly name: string;
|
|
19
|
+
readonly key: ExactKey;
|
|
20
|
+
readonly description?: MethodDefinition['description'];
|
|
21
|
+
readonly input: MethodDefinition['input'];
|
|
22
|
+
readonly output: MethodDefinition['output'];
|
|
23
|
+
readonly auth: Auth;
|
|
24
|
+
readonly policy?: Auth extends 'authorized' ? Policy : never;
|
|
25
|
+
readonly static: Static;
|
|
26
|
+
readonly abstract: Abstract;
|
|
27
|
+
/** Whether this exact local declaration requires an implementation. */
|
|
28
|
+
readonly executable: Abstract extends false ? true : boolean;
|
|
29
|
+
/** Present only when the callable input is a safely enumerable closed object. */
|
|
30
|
+
readonly inputFields?: readonly string[];
|
|
31
|
+
readonly definition: CallableDefinitionOf<MethodDefinition, Auth, Policy> & {
|
|
32
|
+
readonly static: Static;
|
|
33
|
+
readonly abstract: Abstract;
|
|
34
|
+
};
|
|
35
|
+
validateInput(input: unknown): readonly Diagnostic[];
|
|
36
|
+
validateInputField(field: string, input: unknown): readonly Diagnostic[];
|
|
37
|
+
validateOutput(output: unknown): readonly Diagnostic[];
|
|
38
|
+
readonly __input?: Input;
|
|
39
|
+
readonly __output?: Output;
|
|
40
|
+
}
|
|
41
|
+
export type ResolvedMethodCollection<ByKey extends Readonly<Record<MethodKey, ResolvedMethod>> = Readonly<Record<MethodKey, ResolvedMethod>>, ByName extends Readonly<Record<string, ResolvedMethod>> = Readonly<Record<never, never>>> = Readonly<ByName> & Iterable<ByKey[keyof ByKey]> & {
|
|
42
|
+
readonly byKey: ByKey;
|
|
43
|
+
get<Key extends keyof ByKey>(key: Key): ByKey[Key];
|
|
44
|
+
get(key: MethodKey): ResolvedMethod | undefined;
|
|
45
|
+
};
|
|
46
|
+
export interface ResolvedFunction<out Input = unknown, out Output = unknown, out Auth extends FunctionAuth = FunctionAuth, out Policy extends PolicyCheckExpression = PolicyCheckExpression> {
|
|
47
|
+
readonly ref: FunctionRef;
|
|
48
|
+
readonly key: DefinitionKey<string, 'function'>;
|
|
49
|
+
readonly description?: FunctionDefinition['description'];
|
|
50
|
+
readonly input: FunctionDefinition['input'];
|
|
51
|
+
readonly output: FunctionDefinition['output'];
|
|
52
|
+
readonly auth: Auth;
|
|
53
|
+
readonly policy?: Auth extends 'authorized' ? Policy : never;
|
|
54
|
+
/** Present only when the callable input is a safely enumerable closed object. */
|
|
55
|
+
readonly inputFields?: readonly string[];
|
|
56
|
+
readonly definition: CallableDefinitionOf<FunctionDefinition, Auth, Policy>;
|
|
57
|
+
validateInput(input: unknown): readonly Diagnostic[];
|
|
58
|
+
validateInputField(field: string, input: unknown): readonly Diagnostic[];
|
|
59
|
+
validateOutput(output: unknown): readonly Diagnostic[];
|
|
60
|
+
readonly __input?: Input;
|
|
61
|
+
readonly __output?: Output;
|
|
62
|
+
}
|
|
63
|
+
export type ResolvedCallable = ResolvedFunction | ResolvedMethod;
|
|
64
|
+
export type MethodOwnerKeyOf<Method> = Method extends {
|
|
65
|
+
readonly key: infer ExactKey extends MethodKey;
|
|
66
|
+
} ? MethodOwnerKeyOfKey<ExactKey> : never;
|
|
67
|
+
type MethodOwnerKeyOfKey<ExactKey extends MethodKey> = ExactKey extends `${infer Origin}:class.${infer Owner}.method.${string}` ? DefinitionKey<Extract<Origin, Key.Origin>, 'class', Owner> : never;
|
|
68
|
+
type ProjectedCallableInputOf<Callable> = Callable extends ResolvedMethod<infer Input, unknown, boolean> ? Input : Callable extends ResolvedFunction<infer Input, unknown> ? Input : never;
|
|
69
|
+
type InputValue<Input> = Input extends BinaryInputProjection<infer Metadata> ? Metadata : Input;
|
|
70
|
+
/** Portable metadata for a binary Function, or the Value for an ordinary callable. */
|
|
71
|
+
export type CallableInputOf<Callable> = InputValue<ProjectedCallableInputOf<Callable>>;
|
|
72
|
+
type InputMode<Input> = Input extends BinaryInputProjection ? 'binary' : 'value';
|
|
73
|
+
export type CallableInputModeOf<Callable> = InputMode<ProjectedCallableInputOf<Callable>>;
|
|
74
|
+
export type CallableOutputOf<Callable> = Callable extends ResolvedMethod<unknown, infer Output, boolean> ? Output : Callable extends ResolvedFunction<unknown, infer Output> ? Output : never;
|
|
75
|
+
/** An exact local Method whose Schema requires an implementation. */
|
|
76
|
+
export type ExecutableMethod<Input = unknown, Output = unknown, Static extends boolean = boolean> = ResolvedMethod<Input, Output, Static> & {
|
|
77
|
+
readonly executable: true;
|
|
78
|
+
};
|
|
79
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { CallableInputOf, CallableOutputOf, ResolvedMethod, ResolvedMethodCollection } from '../callable/resolved.js';
|
|
2
|
+
import type { StateTopology } from '../state/index.js';
|
|
3
|
+
import type { ResolvedProperty, ResolvedPropertyCollection } from './resolved.js';
|
|
4
|
+
type MemberName = string | number | symbol;
|
|
5
|
+
type ValueAt<Collection, Key> = Key extends keyof Collection ? Collection[Key] : never;
|
|
6
|
+
type PropertyCollectionOf<Class> = Class extends {
|
|
7
|
+
readonly properties: infer Properties;
|
|
8
|
+
} ? Properties : never;
|
|
9
|
+
type PropertyByKeyOf<Class> = PropertyCollectionOf<Class> extends {
|
|
10
|
+
readonly byKey: infer ByKey extends Readonly<Record<string, ResolvedProperty>>;
|
|
11
|
+
} ? ByKey : Readonly<Record<never, never>>;
|
|
12
|
+
type PropertyByNameOf<Class> = Pick<PropertyCollectionOf<Class>, Exclude<keyof PropertyCollectionOf<Class>, keyof ResolvedPropertyCollection>>;
|
|
13
|
+
type MethodCollectionOf<Class> = Class extends {
|
|
14
|
+
readonly kind: 'node';
|
|
15
|
+
readonly methods: infer Methods extends ResolvedMethodCollection;
|
|
16
|
+
} ? Methods : ResolvedMethodCollection<Record<never, never>>;
|
|
17
|
+
type MethodByKeyOf<Class> = MethodCollectionOf<Class> extends {
|
|
18
|
+
readonly byKey: infer ByKey extends Readonly<Record<string, ResolvedMethod>>;
|
|
19
|
+
} ? ByKey : Readonly<Record<never, never>>;
|
|
20
|
+
type MethodByNameOf<Class> = Pick<MethodCollectionOf<Class>, Exclude<keyof MethodCollectionOf<Class>, keyof ResolvedMethodCollection>>;
|
|
21
|
+
export type PropertyOutputOf<Property> = Property extends ResolvedProperty<infer Value, infer Required, StateTopology | undefined, unknown> ? Required extends true ? Value : Value | undefined : never;
|
|
22
|
+
/** Collision-safe direct Property values. Client supplies graph/wrapper reserved names. */
|
|
23
|
+
export type PropertyShortcutsOf<Class, Reserved extends MemberName = never> = Readonly<{
|
|
24
|
+
[Name in Exclude<keyof PropertyByNameOf<Class>, keyof MethodByNameOf<Class> | Reserved>]: PropertyOutputOf<ValueAt<PropertyByNameOf<Class>, Name>>;
|
|
25
|
+
}>;
|
|
26
|
+
type EffectiveProperty<Class> = PropertyByKeyOf<Class>[keyof PropertyByKeyOf<Class>];
|
|
27
|
+
/** Exact and unambiguous Property access signatures, independent of graph values. */
|
|
28
|
+
export type PropertyAccessOf<Class> = {
|
|
29
|
+
readonly property: {
|
|
30
|
+
<Property extends EffectiveProperty<Class>>(property: Property): PropertyOutputOf<Property>;
|
|
31
|
+
<Key extends keyof PropertyByKeyOf<Class>>(key: Key): PropertyOutputOf<PropertyByKeyOf<Class>[Key]>;
|
|
32
|
+
<Name extends keyof PropertyByNameOf<Class>>(name: Name): PropertyOutputOf<PropertyByNameOf<Class>[Name]>;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
export type CallableResultOf<Callable, Binary = unknown> = CallableOutputOf<Callable> extends infer Output ? Output extends {
|
|
36
|
+
readonly mode: 'value';
|
|
37
|
+
readonly value: infer Value;
|
|
38
|
+
} ? Value : Output extends {
|
|
39
|
+
readonly mode: 'stream';
|
|
40
|
+
readonly item: infer Item;
|
|
41
|
+
} ? AsyncIterable<Item> : Output extends {
|
|
42
|
+
readonly mode: 'binary';
|
|
43
|
+
} ? Binary : never : never;
|
|
44
|
+
type ExecutableMethod<Method> = Method extends ResolvedMethod<unknown, unknown, false> & {
|
|
45
|
+
readonly executable: true;
|
|
46
|
+
} ? Method : never;
|
|
47
|
+
export type BoundMethodOf<Method, Binary = unknown> = ExecutableMethod<Method> extends infer Callable ? [Callable] extends [never] ? never : (input: CallableInputOf<Callable>) => Promise<CallableResultOf<Callable, Binary>> : never;
|
|
48
|
+
/** Collision-safe direct bound Methods. Client supplies graph/wrapper reserved names. */
|
|
49
|
+
export type BoundMethodShortcutsOf<Class, Binary = unknown, Reserved extends MemberName = never> = Readonly<{
|
|
50
|
+
[Name in Exclude<keyof MethodByNameOf<Class>, keyof PropertyByNameOf<Class> | Reserved> as BoundMethodOf<ValueAt<MethodByNameOf<Class>, Name>, Binary> extends never ? never : Name]: BoundMethodOf<ValueAt<MethodByNameOf<Class>, Name>, Binary>;
|
|
51
|
+
}>;
|
|
52
|
+
type EffectiveMethod<Class> = MethodByKeyOf<Class>[keyof MethodByKeyOf<Class>];
|
|
53
|
+
/** Exact and unambiguous bound Method access signatures, independent of Client provenance. */
|
|
54
|
+
export type MethodAccessOf<Class, Binary = unknown> = {
|
|
55
|
+
readonly method: {
|
|
56
|
+
<Method extends EffectiveMethod<Class>>(method: Method): BoundMethodOf<Method, Binary>;
|
|
57
|
+
<Key extends keyof MethodByKeyOf<Class>>(key: Key): BoundMethodOf<MethodByKeyOf<Class>[Key], Binary>;
|
|
58
|
+
<Name extends keyof MethodByNameOf<Class>>(name: Name): BoundMethodOf<MethodByNameOf<Class>[Name], Binary>;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type * from './model/class.js';
|
|
2
|
+
export type * from './model/data.js';
|
|
3
|
+
export type * from './model/edge.js';
|
|
4
|
+
export type * from './model/property.js';
|
|
5
|
+
export { PropertyValues } from './property-values.js';
|
|
6
|
+
export type { PropertyValuesOperations } from './property-values.js';
|
|
7
|
+
export type * from './facets.js';
|
|
8
|
+
export type * from './resolved.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { PropertyValues } from './property-values.js';
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { ClassRef, DefinitionBase, PolicyRef } from '../../../addressing/index.js';
|
|
2
|
+
import type { MethodRecord } from '../../callable/model/callable.js';
|
|
3
|
+
import type { DataFacet } from './data.js';
|
|
4
|
+
import type { EdgeContract } from './edge.js';
|
|
5
|
+
import type { PropertyFacet } from './property.js';
|
|
6
|
+
export type ClassKind = 'node' | 'edge';
|
|
7
|
+
export interface NodeClassPolicies {
|
|
8
|
+
readonly read?: PolicyRef;
|
|
9
|
+
readonly traverse?: PolicyRef;
|
|
10
|
+
}
|
|
11
|
+
export interface EdgeClassPolicies {
|
|
12
|
+
readonly read?: PolicyRef;
|
|
13
|
+
readonly traverse?: PolicyRef;
|
|
14
|
+
}
|
|
15
|
+
export interface NodeClassDefinition extends DefinitionBase<ClassRef>, PropertyFacet, DataFacet {
|
|
16
|
+
readonly kind: 'node';
|
|
17
|
+
readonly abstract: boolean;
|
|
18
|
+
readonly description?: string;
|
|
19
|
+
readonly extends: readonly ClassRef[];
|
|
20
|
+
readonly methods: MethodRecord;
|
|
21
|
+
readonly icon?: string;
|
|
22
|
+
readonly policies: NodeClassPolicies;
|
|
23
|
+
}
|
|
24
|
+
export type EdgeClassDefinition = DefinitionBase<ClassRef> & PropertyFacet & EdgeContract & {
|
|
25
|
+
readonly kind: 'edge';
|
|
26
|
+
readonly abstract: boolean;
|
|
27
|
+
readonly description?: string;
|
|
28
|
+
readonly extends: readonly ClassRef[];
|
|
29
|
+
readonly policies: EdgeClassPolicies;
|
|
30
|
+
};
|
|
31
|
+
export type ClassDefinition = NodeClassDefinition | EdgeClassDefinition;
|
|
32
|
+
export type DirectedEdgeDefinition = Extract<EdgeClassDefinition, {
|
|
33
|
+
readonly orientation: 'directed';
|
|
34
|
+
}>;
|
|
35
|
+
export type UndirectedEdgeDefinition = Extract<EdgeClassDefinition, {
|
|
36
|
+
readonly orientation: 'undirected';
|
|
37
|
+
}>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Object as JsonObject } from '@astrale-os/kernel-dsl/value';
|
|
2
|
+
/** Canonical lowercase RFC 6838 media type without parameters. */
|
|
3
|
+
export declare const MEDIA_TYPE_PATTERN: RegExp;
|
|
4
|
+
export type MediaType = string;
|
|
5
|
+
/** Schema-level contract for one externally stored Node payload. */
|
|
6
|
+
export type DataDefinition = JsonObject & {
|
|
7
|
+
readonly mediaType: MediaType;
|
|
8
|
+
};
|
|
9
|
+
export interface DataFacet {
|
|
10
|
+
readonly data?: DataDefinition;
|
|
11
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { ClassRef } from '../../../addressing/index.js';
|
|
2
|
+
export type EdgeCount = '0..*' | '1..*' | '0..1' | '1';
|
|
3
|
+
export type EdgeOrientation = 'directed' | 'undirected';
|
|
4
|
+
export interface EdgeEndpointBase {
|
|
5
|
+
readonly role: string;
|
|
6
|
+
readonly accepts: readonly ClassRef[];
|
|
7
|
+
}
|
|
8
|
+
export interface DirectedSourceEndpoint extends EdgeEndpointBase {
|
|
9
|
+
readonly outgoing: EdgeCount;
|
|
10
|
+
}
|
|
11
|
+
export interface DirectedTargetEndpoint extends EdgeEndpointBase {
|
|
12
|
+
readonly incoming: EdgeCount;
|
|
13
|
+
}
|
|
14
|
+
export interface IncidentEndpoint extends EdgeEndpointBase {
|
|
15
|
+
readonly incident: EdgeCount;
|
|
16
|
+
}
|
|
17
|
+
export interface DirectedEdgeConstraints {
|
|
18
|
+
readonly noSelf?: true;
|
|
19
|
+
readonly acyclic?: true;
|
|
20
|
+
}
|
|
21
|
+
export interface UndirectedEdgeConstraints {
|
|
22
|
+
readonly noSelf?: true;
|
|
23
|
+
readonly acyclic?: never;
|
|
24
|
+
}
|
|
25
|
+
export interface DirectedEdgeContract {
|
|
26
|
+
readonly orientation: 'directed';
|
|
27
|
+
readonly endpoints: {
|
|
28
|
+
readonly source: DirectedSourceEndpoint;
|
|
29
|
+
readonly target: DirectedTargetEndpoint;
|
|
30
|
+
};
|
|
31
|
+
readonly constraints: DirectedEdgeConstraints;
|
|
32
|
+
}
|
|
33
|
+
export interface UndirectedEdgeContract {
|
|
34
|
+
readonly orientation: 'undirected';
|
|
35
|
+
readonly endpoints: readonly [IncidentEndpoint, IncidentEndpoint];
|
|
36
|
+
readonly constraints: UndirectedEdgeConstraints;
|
|
37
|
+
}
|
|
38
|
+
export type EdgeContract = DirectedEdgeContract | UndirectedEdgeContract;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type AutoEvent = 'create' | 'update';
|
|
2
|
+
export type AutoSet = 'instant';
|
|
3
|
+
export interface PropertyAuto {
|
|
4
|
+
readonly on: readonly AutoEvent[];
|
|
5
|
+
readonly set: AutoSet;
|
|
6
|
+
}
|
|
7
|
+
export interface PropertyDefinition {
|
|
8
|
+
readonly schema: import('../../value/model/schema.js').JsonSchema;
|
|
9
|
+
readonly required: boolean;
|
|
10
|
+
readonly auto?: PropertyAuto;
|
|
11
|
+
readonly description?: string;
|
|
12
|
+
readonly state?: import('../../state/index.js').StateTopology;
|
|
13
|
+
}
|
|
14
|
+
export type PropertyRecord = Readonly<Record<string, PropertyDefinition>>;
|
|
15
|
+
export interface PropertyFacet {
|
|
16
|
+
readonly properties: PropertyRecord;
|
|
17
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Value as PortableValue } from '@astrale-os/kernel-dsl/value';
|
|
2
|
+
import type { PropertyKey } from '../../addressing/index.js';
|
|
3
|
+
declare const PROPERTY_VALUES: unique symbol;
|
|
4
|
+
/** Detached, sorted, deeply frozen values keyed by exact declaring Property identity. */
|
|
5
|
+
export type PropertyValues = Readonly<Record<PropertyKey, PortableValue>> & {
|
|
6
|
+
readonly [PROPERTY_VALUES]: true;
|
|
7
|
+
};
|
|
8
|
+
export interface PropertyValuesOperations {
|
|
9
|
+
accept(input: unknown, pointer?: string): PropertyValues;
|
|
10
|
+
create(entries: Iterable<readonly [PropertyKey, PortableValue]>): PropertyValues;
|
|
11
|
+
}
|
|
12
|
+
export declare function acceptPropertyValues(input: unknown, pointer?: string): PropertyValues;
|
|
13
|
+
export declare function createPropertyValues(entries: Iterable<readonly [PropertyKey, PortableValue]>): PropertyValues;
|
|
14
|
+
export declare const PropertyValues: PropertyValuesOperations;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { acceptPropertyRoot } from '../../../value/accept.js';
|
|
2
|
+
import { isImmutableSnapshot } from '../../../value/immutable.optimization.js';
|
|
3
|
+
import { PropertyKey as admitPropertyKey } from '../../addressing/index.js';
|
|
4
|
+
export function acceptPropertyValues(input, pointer = '') {
|
|
5
|
+
const admitted = acceptPropertyRoot(input);
|
|
6
|
+
if (admitted === null || typeof admitted !== 'object' || Array.isArray(admitted)) {
|
|
7
|
+
throw new TypeError(`Expected PropertyValues object at ${pointer || '/'}.`);
|
|
8
|
+
}
|
|
9
|
+
return createPropertyValues(Object.entries(admitted).map(([key, value]) => [admitPropertyKey(key), value]));
|
|
10
|
+
}
|
|
11
|
+
export function createPropertyValues(entries) {
|
|
12
|
+
const output = Object.create(null);
|
|
13
|
+
for (const [key, value] of [...entries].sort(([left], [right]) => compare(left, right))) {
|
|
14
|
+
Object.defineProperty(output, key, { enumerable: true, value: freeze(value) });
|
|
15
|
+
}
|
|
16
|
+
return Object.freeze(output);
|
|
17
|
+
}
|
|
18
|
+
export const PropertyValues = Object.freeze({
|
|
19
|
+
accept: acceptPropertyValues,
|
|
20
|
+
create: createPropertyValues,
|
|
21
|
+
});
|
|
22
|
+
function freeze(value) {
|
|
23
|
+
if (value === null || typeof value !== 'object')
|
|
24
|
+
return value;
|
|
25
|
+
if (isImmutableSnapshot(value))
|
|
26
|
+
return value;
|
|
27
|
+
for (const member of Object.values(value))
|
|
28
|
+
freeze(member);
|
|
29
|
+
return Object.freeze(value);
|
|
30
|
+
}
|
|
31
|
+
function compare(left, right) {
|
|
32
|
+
return left < right ? -1 : left > right ? 1 : 0;
|
|
33
|
+
}
|