@astrale-os/kernel-dsl 0.2.0-beta.2 → 0.2.0-beta.21
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/CHANGELOG.md +247 -0
- 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 +117 -0
- package/dist/v1/builder/{callable.js → callable/authoring.js} +28 -7
- package/dist/v1/builder/class/authoring.d.ts +378 -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 +42 -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/{compiler → lowering}/callable.js +11 -14
- 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/{compiler/core.properties.js → lowering/core-properties.js} +14 -8
- package/dist/v1/builder/lowering/core.d.ts +22 -0
- package/dist/v1/builder/{compiler → lowering}/core.js +17 -11
- package/dist/v1/builder/lowering/policy.d.ts +16 -0
- package/dist/v1/builder/{compiler → lowering}/policy.js +19 -14
- package/dist/v1/builder/{compiler/schema.capture.d.ts → lowering/schema/capture.d.ts} +2 -3
- package/dist/v1/builder/lowering/schema/capture.js +70 -0
- package/dist/v1/builder/{compiler/schema.d.ts → lowering/schema/compile.d.ts} +4 -4
- package/dist/v1/builder/{compiler/schema.js → lowering/schema/compile.js} +34 -44
- package/dist/v1/builder/lowering/schema/context.d.ts +44 -0
- package/dist/v1/builder/{compiler/schema.context.js → lowering/schema/context.js} +66 -74
- package/dist/v1/builder/{compiler/schema.ownership.d.ts → lowering/schema/ownership.d.ts} +1 -2
- package/dist/v1/builder/{compiler/schema.ownership.js → lowering/schema/ownership.js} +1 -2
- package/dist/v1/builder/lowering/value/compile.d.ts +15 -0
- package/dist/v1/builder/{compiler/value.js → lowering/value/compile.js} +44 -61
- package/dist/v1/builder/lowering/value/path.d.ts +3 -0
- package/dist/v1/builder/{compiler/value.path.js → lowering/value/path.js} +1 -2
- package/dist/v1/builder/{compiler/value.zod.d.ts → lowering/value/zod.d.ts} +8 -9
- package/dist/v1/builder/{compiler/value.zod.js → lowering/value/zod.js} +10 -11
- package/dist/v1/builder/lowering/view.d.ts +11 -0
- package/dist/v1/builder/{compiler → lowering}/view.js +7 -7
- package/dist/v1/builder/{policy.d.ts → policy/authoring.d.ts} +19 -17
- package/dist/v1/builder/{policy.js → policy/authoring.js} +23 -12
- package/dist/v1/builder/schema/define.d.ts +11 -0
- package/dist/v1/builder/{schema.js → schema/define.js} +1 -2
- package/dist/v1/builder/schema/diagnostic.d.ts +16 -0
- package/dist/v1/builder/schema/diagnostic.js +31 -0
- package/dist/v1/builder/{internal/authoring.d.ts → schema/handle.d.ts} +1 -2
- package/dist/v1/builder/{internal/authoring.js → schema/handle.js} +0 -1
- package/dist/v1/builder/schema/input.d.ts +15 -0
- package/dist/v1/builder/schema/input.js +1 -0
- package/dist/v1/builder/{internal/authoring.lazy.d.ts → schema/lazy.d.ts} +0 -1
- package/dist/v1/builder/{internal/authoring.lazy.js → schema/lazy.js} +0 -1
- 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/{internal/path.metadata.js → value/path-metadata.js} +0 -1
- package/dist/v1/builder/value/path.d.ts +8 -0
- package/dist/v1/builder/{path.js → value/path.js} +4 -5
- package/dist/v1/builder/{value-schema.d.ts → value/schema.d.ts} +2 -3
- package/dist/v1/builder/{value-schema.js → value/schema.js} +0 -1
- 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 +910 -0
- package/dist/v1/compiled/admission/revision.d.ts +4 -0
- package/dist/v1/compiled/admission/revision.js +73 -0
- package/dist/v1/compiled/admission/semantics.d.ts +7 -0
- package/dist/v1/compiled/admission/semantics.js +1114 -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 +113 -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 +9 -0
- package/dist/v1/compiled/loader/load.js +147 -0
- package/dist/v1/compiled/model/schema.d.ts +73 -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 +264 -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 +198 -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 +14 -5
- package/dist/v1/index.js +6 -3
- 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 +33 -0
- package/dist/v1/language/callable/model/callable.js +1 -0
- package/dist/v1/language/callable/resolved.d.ts +68 -0
- package/dist/v1/language/callable/resolved.js +1 -0
- package/dist/v1/language/class/facets.d.ts +58 -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/{schema/definition → language/class/model}/data.d.ts +2 -3
- package/dist/v1/{schema/definition → language/class/model}/data.js +0 -1
- package/dist/v1/{schema/definition → language/class/model}/edge.d.ts +9 -6
- 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 +30 -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 +20 -0
- package/dist/v1/language/core/model/core.js +1 -0
- package/dist/v1/language/core/resolved.d.ts +21 -0
- package/dist/v1/language/core/resolved.js +1 -0
- package/dist/v1/{schema → language/definition}/metadata.d.ts +0 -1
- package/dist/v1/{schema → language/definition}/metadata.js +0 -1
- package/dist/v1/language/definition.d.ts +7 -0
- package/dist/v1/language/definition.js +1 -0
- package/dist/v1/language/index.d.ts +25 -0
- package/dist/v1/language/index.js +2 -0
- package/dist/v1/{schema/policy/validation → language/policy/analysis}/branches.d.ts +2 -4
- package/dist/v1/{schema/policy/validation → language/policy/analysis}/branches.js +14 -30
- package/dist/v1/{schema/policy/validation → language/policy/analysis}/budgets.d.ts +1 -4
- package/dist/v1/language/policy/analysis/budgets.js +25 -0
- package/dist/v1/language/policy/index.d.ts +3 -0
- package/dist/v1/language/policy/index.js +1 -0
- package/dist/v1/{schema/policy/ast.d.ts → language/policy/model/policy.d.ts} +7 -7
- package/dist/v1/language/policy/model/policy.js +1 -0
- package/dist/v1/language/policy/normalization/normalize.d.ts +4 -0
- package/dist/v1/{schema/policy → language/policy/normalization}/normalize.js +12 -16
- 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 +4 -0
- package/dist/v1/language/value/compile/load.js +41 -0
- package/dist/v1/language/value/compile/model.d.ts +27 -0
- package/dist/v1/language/value/compile/model.js +1 -0
- package/dist/v1/{schema/value/instance → language/value/evaluate}/assertions.d.ts +0 -1
- package/dist/v1/{schema/value/instance → language/value/evaluate}/assertions.js +1 -2
- package/dist/v1/{schema/value/instance → language/value/evaluate}/evaluator.d.ts +0 -1
- package/dist/v1/{schema/value/instance → language/value/evaluate}/evaluator.js +6 -18
- package/dist/v1/{schema/value/instance/compiler.d.ts → language/value/evaluate/preparation.d.ts} +4 -4
- package/dist/v1/language/value/evaluate/preparation.js +135 -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/{schema/value/instance → language/value/evaluate}/types.d.ts +8 -5
- package/dist/v1/{schema/value/instance → language/value/evaluate}/types.js +0 -1
- package/dist/v1/{schema/value/instance.validate.d.ts → language/value/evaluate/validate.d.ts} +4 -5
- package/dist/v1/{schema/value/instance.validate.js → language/value/evaluate/validate.js} +5 -6
- package/dist/v1/language/value/index.d.ts +11 -0
- package/dist/v1/language/value/index.js +8 -0
- package/dist/v1/{schema/value → language/value/model}/instant.d.ts +1 -1
- package/dist/v1/{schema/value → language/value/model}/instant.js +1 -1
- package/dist/v1/{schema/value → language/value/model}/object.d.ts +1 -1
- package/dist/v1/{schema/value → language/value/model}/object.js +0 -1
- package/dist/v1/{schema/value → language/value/model}/schema.d.ts +3 -4
- package/dist/v1/{schema/value → language/value/model}/schema.js +0 -2
- package/dist/v1/{schema → language}/value/ordering.d.ts +5 -3
- package/dist/v1/{schema → language}/value/ordering.js +16 -14
- package/dist/v1/{schema → language}/value/profile/canonicalize.d.ts +2 -3
- package/dist/v1/{schema → language}/value/profile/canonicalize.js +4 -7
- package/dist/v1/language/value/profile/json.validate.d.ts +2 -0
- package/dist/v1/{schema → language}/value/profile/json.validate.js +1 -2
- package/dist/v1/{schema → language}/value/profile/meta-schema.compiled.d.ts +0 -1
- package/dist/v1/{schema → language}/value/profile/meta-schema.compiled.js +1 -2
- package/dist/v1/language/value/profile/meta-schema.d.ts +4 -0
- package/dist/v1/{schema/value/profile/meta-schema.validate.js → language/value/profile/meta-schema.js} +2 -2
- package/dist/v1/language/value/profile/rules.d.ts +3 -0
- package/dist/v1/{schema → language}/value/profile/rules.js +7 -50
- package/dist/v1/language/value/profile/validate.d.ts +4 -0
- package/dist/v1/{schema → language}/value/profile/validate.js +14 -22
- package/dist/v1/{schema → language}/value/profile/vocabulary.d.ts +0 -1
- package/dist/v1/{schema → language}/value/profile/vocabulary.js +0 -1
- package/dist/v1/language/value/reference/closure.d.ts +11 -0
- package/dist/v1/{schema/value/resources → language/value/reference}/closure.js +13 -21
- package/dist/v1/{schema/value/resources → language/value/reference}/recursion.d.ts +3 -4
- package/dist/v1/{schema/value/resources → language/value/reference}/recursion.js +5 -6
- package/dist/v1/language/value/reference/references.d.ts +17 -0
- package/dist/v1/language/value/reference/references.js +45 -0
- package/dist/v1/{schema/value → language/value/reference}/registry.d.ts +9 -7
- package/dist/v1/language/value/reference/registry.index.d.ts +14 -0
- package/dist/v1/{schema/value/resources → language/value/reference}/registry.index.js +7 -45
- 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 +96 -0
- package/dist/v1/{schema → language}/value/regexp/lower.d.ts +1 -2
- package/dist/v1/{schema → language}/value/regexp/lower.js +2 -3
- package/dist/v1/language/value/regexp/matcher.d.ts +7 -0
- package/dist/v1/language/value/regexp/matcher.js +50 -0
- package/dist/v1/{schema → language}/value/regexp/pattern.d.ts +0 -1
- package/dist/v1/{schema → language}/value/regexp/pattern.js +0 -1
- 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/{schema/value/location → language/value/syntax}/keywords.d.ts +0 -1
- package/dist/v1/{schema/value/location → language/value/syntax}/keywords.js +0 -1
- package/dist/v1/{schema/value/extensions → language/value/syntax}/node-path/schema.d.ts +1 -2
- package/dist/v1/{schema/value/extensions → language/value/syntax}/node-path/schema.js +2 -3
- package/dist/v1/language/value/syntax/node-path/validate.d.ts +4 -0
- package/dist/v1/{schema/value/extensions → language/value/syntax}/node-path/validate.js +16 -18
- package/dist/v1/{schema/value/location → language/value/syntax}/pointer.d.ts +0 -1
- package/dist/v1/{schema/value/location → language/value/syntax}/pointer.js +1 -2
- package/dist/v1/{schema/value/location → language/value/syntax}/walk.d.ts +1 -2
- package/dist/v1/{schema/value/location → language/value/syntax}/walk.js +1 -2
- 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/{domain.accept.js → admission/accept.js} +8 -9
- package/dist/v1/schema/{definition/analysis.d.ts → analysis/class.d.ts} +17 -18
- package/dist/v1/schema/{definition/analysis.js → analysis/class.js} +21 -30
- 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/{domain.revision.d.ts → canonical/revision.d.ts} +2 -3
- package/dist/v1/schema/{domain.revision.js → canonical/revision.js} +3 -4
- package/dist/v1/schema/codec/header.d.ts +17 -0
- package/dist/v1/schema/codec/header.js +26 -0
- package/dist/v1/schema/{domain.codec.d.ts → codec/schema.d.ts} +2 -3
- package/dist/v1/schema/{domain.codec.js → codec/schema.js} +4 -5
- package/dist/v1/schema/{dependency.meaning.d.ts → compatibility/meaning.d.ts} +4 -5
- package/dist/v1/schema/{dependency.meaning.js → compatibility/meaning.js} +121 -124
- package/dist/v1/schema/{domain.lookup.d.ts → dependency/lookup.d.ts} +3 -4
- package/dist/v1/schema/{domain.lookup.js → dependency/lookup.js} +1 -2
- package/dist/v1/schema/diagnostic.d.ts +7 -7
- package/dist/v1/schema/diagnostic.js +9 -9
- package/dist/v1/schema/index.d.ts +24 -34
- package/dist/v1/schema/index.js +11 -14
- 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 +210 -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 +112 -0
- package/dist/v1/schema/resolution/origins.d.ts +11 -14
- package/dist/v1/schema/resolution/origins.js +31 -44
- 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 +257 -0
- package/dist/v1/schema/validation/core.d.ts +5 -0
- package/dist/v1/schema/{core/validate.js → validation/core.js} +39 -30
- package/dist/v1/schema/validation/domain.d.ts +11 -0
- package/dist/v1/schema/{domain.validate.js → validation/domain.js} +12 -12
- 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 +203 -207
- package/dist/v1/schema/validation/policy/budgets.d.ts +4 -0
- package/dist/v1/schema/{policy/validation → validation/policy}/budgets.js +2 -32
- package/dist/v1/schema/validation/policy/context.d.ts +28 -0
- package/dist/v1/schema/{policy/validation → validation/policy}/context.js +23 -33
- package/dist/v1/schema/{policy/validation → validation/policy}/references.d.ts +0 -1
- package/dist/v1/schema/{policy/validation → validation/policy}/references.js +18 -11
- package/dist/v1/schema/{policy/validation → validation/policy}/typing.d.ts +4 -8
- package/dist/v1/schema/{policy/validation → validation/policy}/typing.js +25 -67
- package/dist/v1/schema/{policy/validation → validation/policy}/uses.d.ts +0 -1
- package/dist/v1/schema/{policy/validation → validation/policy}/uses.js +27 -63
- package/dist/v1/schema/{policy/validation → validation/policy}/validate.d.ts +3 -4
- package/dist/v1/schema/{policy/validation → validation/policy}/validate.js +0 -1
- package/dist/v1/schema/{value/index.d.ts → validation/value-api.d.ts} +9 -10
- package/dist/v1/schema/{value/index.js → validation/value-api.js} +4 -5
- package/dist/v1/schema/validation/value.d.ts +4 -5
- package/dist/v1/schema/validation/value.js +4 -9
- package/dist/v1/schema/validation/view.d.ts +3 -0
- package/dist/v1/schema/{view/validate.js → validation/view.js} +11 -4
- 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 +0 -1
- package/dist/value/accept.js +0 -1
- package/dist/value/canonical.d.ts +0 -1
- package/dist/value/canonical.js +0 -1
- 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/index.d.ts +0 -1
- package/dist/value/index.js +0 -1
- package/dist/value/json.d.ts +0 -1
- package/dist/value/json.js +0 -1
- 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 +0 -1
- package/dist/value/unicode.js +0 -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 +69 -13
- 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 -92
- package/dist/v1/builder/callable.d.ts.map +0 -1
- 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.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.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.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.map +0 -1
- 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.map +0 -1
- package/dist/v1/builder/compiler/schema.d.ts.map +0 -1
- package/dist/v1/builder/compiler/schema.js.map +0 -1
- package/dist/v1/builder/compiler/schema.ownership.d.ts.map +0 -1
- 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.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.map +0 -1
- package/dist/v1/builder/compiler/value.zod.d.ts.map +0 -1
- 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.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 -12
- package/dist/v1/builder/full-match.d.ts.map +0 -1
- package/dist/v1/builder/full-match.js +0 -21
- 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.map +0 -1
- package/dist/v1/builder/internal/authoring.js.map +0 -1
- package/dist/v1/builder/internal/authoring.lazy.d.ts.map +0 -1
- 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.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.map +0 -1
- package/dist/v1/builder/policy.d.ts.map +0 -1
- 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.map +0 -1
- package/dist/v1/builder/value-schema.d.ts.map +0 -1
- 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/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.map +0 -1
- package/dist/v1/schema/definition/analysis.d.ts.map +0 -1
- 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.map +0 -1
- package/dist/v1/schema/definition/data.js.map +0 -1
- 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.map +0 -1
- 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.map +0 -1
- package/dist/v1/schema/domain.codec.d.ts.map +0 -1
- 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.map +0 -1
- 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.map +0 -1
- 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.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.map +0 -1
- package/dist/v1/schema/metadata.js.map +0 -1
- 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.map +0 -1
- package/dist/v1/schema/policy/validation/branches.d.ts.map +0 -1
- package/dist/v1/schema/policy/validation/branches.js.map +0 -1
- package/dist/v1/schema/policy/validation/budgets.d.ts.map +0 -1
- 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.map +0 -1
- package/dist/v1/schema/policy/validation/references.d.ts.map +0 -1
- package/dist/v1/schema/policy/validation/references.js.map +0 -1
- package/dist/v1/schema/policy/validation/typing.d.ts.map +0 -1
- package/dist/v1/schema/policy/validation/typing.js.map +0 -1
- package/dist/v1/schema/policy/validation/uses.d.ts.map +0 -1
- package/dist/v1/schema/policy/validation/uses.js.map +0 -1
- package/dist/v1/schema/policy/validation/validate.d.ts.map +0 -1
- 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.map +0 -1
- 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.map +0 -1
- package/dist/v1/schema/value/index.d.ts.map +0 -1
- package/dist/v1/schema/value/index.js.map +0 -1
- package/dist/v1/schema/value/instance/assertions.d.ts.map +0 -1
- package/dist/v1/schema/value/instance/assertions.js.map +0 -1
- package/dist/v1/schema/value/instance/compiler.d.ts.map +0 -1
- package/dist/v1/schema/value/instance/compiler.js +0 -69
- package/dist/v1/schema/value/instance/compiler.js.map +0 -1
- package/dist/v1/schema/value/instance/evaluator.d.ts.map +0 -1
- package/dist/v1/schema/value/instance/evaluator.js.map +0 -1
- package/dist/v1/schema/value/instance/types.d.ts.map +0 -1
- package/dist/v1/schema/value/instance/types.js.map +0 -1
- package/dist/v1/schema/value/instance.validate.d.ts.map +0 -1
- package/dist/v1/schema/value/instance.validate.js.map +0 -1
- package/dist/v1/schema/value/instant.d.ts.map +0 -1
- package/dist/v1/schema/value/instant.js.map +0 -1
- package/dist/v1/schema/value/location/keywords.d.ts.map +0 -1
- package/dist/v1/schema/value/location/keywords.js.map +0 -1
- package/dist/v1/schema/value/location/pointer.d.ts.map +0 -1
- package/dist/v1/schema/value/location/pointer.js.map +0 -1
- package/dist/v1/schema/value/location/walk.d.ts.map +0 -1
- package/dist/v1/schema/value/location/walk.js.map +0 -1
- package/dist/v1/schema/value/object.d.ts.map +0 -1
- package/dist/v1/schema/value/object.js.map +0 -1
- package/dist/v1/schema/value/ordering.d.ts.map +0 -1
- package/dist/v1/schema/value/ordering.js.map +0 -1
- package/dist/v1/schema/value/profile/canonicalize.d.ts.map +0 -1
- 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.map +0 -1
- package/dist/v1/schema/value/profile/meta-schema.compiled.d.ts.map +0 -1
- package/dist/v1/schema/value/profile/meta-schema.compiled.js.map +0 -1
- package/dist/v1/schema/value/profile/meta-schema.validate.d.ts +0 -4
- package/dist/v1/schema/value/profile/meta-schema.validate.d.ts.map +0 -1
- package/dist/v1/schema/value/profile/meta-schema.validate.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.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.map +0 -1
- package/dist/v1/schema/value/profile/vocabulary.d.ts.map +0 -1
- package/dist/v1/schema/value/profile/vocabulary.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.map +0 -1
- package/dist/v1/schema/value/regexp/lower.js.map +0 -1
- package/dist/v1/schema/value/regexp/pattern.d.ts.map +0 -1
- 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 -217
- package/dist/v1/schema/value/regexp/syntax.js.map +0 -1
- 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.map +0 -1
- package/dist/v1/schema/value/resources/recursion.d.ts.map +0 -1
- 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.map +0 -1
- package/dist/v1/schema/value/schema.d.ts.map +0 -1
- 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.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,378 @@
|
|
|
1
|
+
import type { Value as PortableValue } from '@astrale-os/kernel-dsl/value';
|
|
2
|
+
import type { z } from 'zod';
|
|
3
|
+
import type { ClassRef } from '../../addressing/index.js';
|
|
4
|
+
import type { MethodRecord } from '../../language/callable/model/callable.js';
|
|
5
|
+
import type { ResolvedMethod } from '../../language/callable/resolved.js';
|
|
6
|
+
import type { MediaType } from '../../language/class/model/data.js';
|
|
7
|
+
import type { EdgeCount } from '../../language/class/model/edge.js';
|
|
8
|
+
import type { ResolvedClass, ResolvedProperty } from '../../language/class/resolved.js';
|
|
9
|
+
import type { StateTopology, StateTopologyOf } from '../../language/state/topology.js';
|
|
10
|
+
import type { Method, ProjectionOfCallable } from '../callable/authoring.js';
|
|
11
|
+
import type { Policy } from '../policy/authoring.js';
|
|
12
|
+
import type { Lazy } from '../schema/lazy.js';
|
|
13
|
+
import type { ClassProjectionOfResolved } from '../schema/projection.js';
|
|
14
|
+
import type { TypedValueSchema } from '../value/schema.js';
|
|
15
|
+
import type { AutoProperty, Property, PropertyOptions, PropertyStateMachineOf, ValueSchemaInput } from './property.js';
|
|
16
|
+
import type { PropertyRecordInput } from './property.js';
|
|
17
|
+
import { type AUTHORING } from '../schema/handle.js';
|
|
18
|
+
declare const CLASS_TYPE: unique symbol;
|
|
19
|
+
export type ClassReferenceInput = Lazy<Class | ClassRef | ResolvedClass<'node'> | ResolvedClass<'edge'>>;
|
|
20
|
+
export type NodeClassReferenceInput = Lazy<NodeClass | ClassRef | ResolvedClass<'node'>>;
|
|
21
|
+
export type EdgeClassReferenceInput = Lazy<EdgeClass | ClassRef | ResolvedClass<'edge'>>;
|
|
22
|
+
export interface DirectedSourceInput {
|
|
23
|
+
readonly as: string;
|
|
24
|
+
readonly accepts: readonly NodeClassReferenceInput[];
|
|
25
|
+
readonly outgoing: EdgeCount;
|
|
26
|
+
}
|
|
27
|
+
export interface DirectedTargetInput {
|
|
28
|
+
readonly as: string;
|
|
29
|
+
readonly accepts: readonly NodeClassReferenceInput[];
|
|
30
|
+
readonly incoming: EdgeCount;
|
|
31
|
+
}
|
|
32
|
+
export interface IncidentEndpointInput {
|
|
33
|
+
readonly as: string;
|
|
34
|
+
readonly accepts: readonly NodeClassReferenceInput[];
|
|
35
|
+
readonly incident: EdgeCount;
|
|
36
|
+
}
|
|
37
|
+
type ExactEndpointInput<Input, Shape> = Input & Record<Exclude<keyof Input, keyof Shape>, never>;
|
|
38
|
+
export interface NodeClassInput {
|
|
39
|
+
readonly abstract?: boolean;
|
|
40
|
+
readonly description?: string;
|
|
41
|
+
readonly extends?: readonly NodeClassReferenceInput[];
|
|
42
|
+
readonly properties?: PropertyRecordInput;
|
|
43
|
+
readonly data?: MediaType;
|
|
44
|
+
readonly methods?: Readonly<Record<string, Method>>;
|
|
45
|
+
readonly icon?: string;
|
|
46
|
+
readonly policies?: {
|
|
47
|
+
readonly read?: Lazy<Policy>;
|
|
48
|
+
readonly traverse?: Lazy<Policy>;
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
export interface EdgeClassOptions {
|
|
52
|
+
readonly abstract?: boolean;
|
|
53
|
+
readonly description?: string;
|
|
54
|
+
readonly extends?: readonly EdgeClassReferenceInput[];
|
|
55
|
+
readonly properties?: PropertyRecordInput;
|
|
56
|
+
readonly policies?: {
|
|
57
|
+
readonly read?: Lazy<Policy>;
|
|
58
|
+
readonly traverse?: Lazy<Policy>;
|
|
59
|
+
};
|
|
60
|
+
readonly constraints?: {
|
|
61
|
+
readonly noSelf?: true;
|
|
62
|
+
readonly acyclic?: true;
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
export interface DirectedEdgeInput extends EdgeClassOptions {
|
|
66
|
+
readonly orientation: 'directed';
|
|
67
|
+
readonly source: DirectedSourceInput;
|
|
68
|
+
readonly target: DirectedTargetInput;
|
|
69
|
+
}
|
|
70
|
+
export interface UndirectedEdgeInput extends Omit<EdgeClassOptions, 'constraints'> {
|
|
71
|
+
readonly orientation: 'undirected';
|
|
72
|
+
readonly endpoints: readonly [IncidentEndpointInput, IncidentEndpointInput];
|
|
73
|
+
readonly constraints?: {
|
|
74
|
+
readonly noSelf?: true;
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
export type EdgeClassCommon = EdgeClassOptions;
|
|
78
|
+
export type EdgeClassInput = DirectedEdgeInput | UndirectedEdgeInput;
|
|
79
|
+
export type ClassInput = ({
|
|
80
|
+
readonly kind: 'node';
|
|
81
|
+
readonly abstract: boolean;
|
|
82
|
+
} & NodeClassInput) | ({
|
|
83
|
+
readonly kind: 'edge';
|
|
84
|
+
readonly orientation: 'directed';
|
|
85
|
+
readonly abstract: boolean;
|
|
86
|
+
} & Omit<DirectedEdgeInput, 'orientation'>) | ({
|
|
87
|
+
readonly kind: 'edge';
|
|
88
|
+
readonly orientation: 'undirected';
|
|
89
|
+
readonly abstract: boolean;
|
|
90
|
+
} & Omit<UndirectedEdgeInput, 'orientation'>);
|
|
91
|
+
export type Class = NodeClass | EdgeClass;
|
|
92
|
+
export interface AuthoredPropertyProjection<out Input = unknown, out Output = unknown, out Required extends boolean = boolean, out Name extends string = string, out Owner = 'self', out State extends StateTopology | undefined = StateTopology | undefined> {
|
|
93
|
+
readonly input: Input;
|
|
94
|
+
readonly output: Output;
|
|
95
|
+
readonly required: Required;
|
|
96
|
+
readonly name: Name;
|
|
97
|
+
readonly owner: Owner;
|
|
98
|
+
readonly state?: State;
|
|
99
|
+
}
|
|
100
|
+
export interface AuthoredMethodProjection<out Value extends Method = Method, out Name extends string = string, out Owner = 'self'> {
|
|
101
|
+
readonly value: Value;
|
|
102
|
+
readonly name: Name;
|
|
103
|
+
readonly owner: Owner;
|
|
104
|
+
}
|
|
105
|
+
type PropertySchemaOf<Field> = Field extends AutoProperty<infer Value> ? PropertySchemaOf<Value> : Field extends Property<infer Schema, PropertyOptions, unknown> ? Schema : Field;
|
|
106
|
+
type PropertyOptionsOf<Field> = Field extends AutoProperty<infer Value> ? PropertyOptionsOf<Value> : Field extends Property<ValueSchemaInput, infer Options, unknown> ? Options : Record<never, never>;
|
|
107
|
+
type ValueInputOf<Schema> = Schema extends TypedValueSchema<infer Value> ? Value : Schema extends z.ZodType ? z.input<Schema> : PortableValue;
|
|
108
|
+
type ValueOutputOf<Schema> = Schema extends TypedValueSchema<infer Value> ? Value : Schema extends z.ZodType ? z.output<Schema> : PortableValue;
|
|
109
|
+
type PropertyRequiredOf<Field> = PropertyOptionsOf<Field> extends {
|
|
110
|
+
readonly required: infer Required extends boolean;
|
|
111
|
+
} ? Required : undefined extends ValueInputOf<PropertySchemaOf<Field>> ? false : true;
|
|
112
|
+
type PropertyProjectionOf<Name extends string, Field> = AuthoredPropertyProjection<Field extends AutoProperty ? never : ValueInputOf<PropertySchemaOf<Field>>, ValueOutputOf<PropertySchemaOf<Field>>, PropertyRequiredOf<Field>, Name, 'self', Field extends Property ? StateTopologyOf<PropertyStateMachineOf<Field>> : undefined>;
|
|
113
|
+
type PropertyProjectionsOf<Input> = Input extends Readonly<Record<string, unknown>> ? {
|
|
114
|
+
readonly [Name in keyof Input]: PropertyProjectionOf<Extract<Name, string>, Input[Name]>;
|
|
115
|
+
} : Readonly<Record<never, never>>;
|
|
116
|
+
type PropertyProjectionEntriesOf<Input> = PropertyProjectionsOf<Input>[keyof PropertyProjectionsOf<Input>];
|
|
117
|
+
type ResolveCompactLazy<Value, Depth extends readonly unknown[] = []> = Depth['length'] extends 32 ? Value : Value extends () => infer Resolved ? ResolveCompactLazy<Resolved, readonly [...Depth, unknown]> : Value;
|
|
118
|
+
type EffectivePropertiesOfReference<Value> = ResolveCompactLazy<Value> extends infer Resolved ? Resolved extends NodeClass<infer Config> ? Config extends {
|
|
119
|
+
readonly effectiveProperties: infer Properties;
|
|
120
|
+
} ? BindPropertyOwners<Properties, ClassOwnerProjectionOf<Resolved>> : never : Resolved extends DirectedEdgeClass<infer Config> | UndirectedEdgeClass<infer Config> ? Config extends {
|
|
121
|
+
readonly effectiveProperties: infer Properties;
|
|
122
|
+
} ? BindPropertyOwners<Properties, ClassOwnerProjectionOf<Resolved>> : never : Resolved extends ResolvedClass ? Resolved['properties']['byKey'][keyof Resolved['properties']['byKey']] extends infer Entry ? Entry extends ResolvedProperty ? Entry : never : never : never : never;
|
|
123
|
+
type ParentPropertyProjectionsOf<Input> = Input extends {
|
|
124
|
+
readonly extends?: readonly (infer Parent)[];
|
|
125
|
+
} ? EffectivePropertiesOfReference<Parent> : never;
|
|
126
|
+
type EffectivePropertyProjectionsOf<Input> = PropertyProjectionEntriesOf<'properties' extends keyof Input ? Input extends {
|
|
127
|
+
readonly properties?: infer Value;
|
|
128
|
+
} ? NonNullable<Value> : never : never> | ParentPropertyProjectionsOf<Input>;
|
|
129
|
+
type BindPropertyOwners<Entries, Owner> = Entries extends AuthoredPropertyProjection<infer Input, infer Output, infer Required, infer Name, infer ExistingOwner, infer State> ? AuthoredPropertyProjection<Input, Output, Required, Name, ExistingOwner extends 'self' ? Owner : ExistingOwner, State> : Entries;
|
|
130
|
+
type MethodFieldsOf<Input> = 'methods' extends keyof Input ? Input extends {
|
|
131
|
+
readonly methods?: infer Methods extends Readonly<Record<string, Method>>;
|
|
132
|
+
} ? NonNullable<Methods> : Readonly<Record<never, never>> : Readonly<Record<never, never>>;
|
|
133
|
+
type MethodIsStatic<Value extends Method> = ProjectionOfCallable<Value> extends {
|
|
134
|
+
readonly static: true;
|
|
135
|
+
} ? true : false;
|
|
136
|
+
type OwnMethodProjectionsOf<Input, Static extends boolean> = {
|
|
137
|
+
[Name in keyof MethodFieldsOf<Input>]: MethodFieldsOf<Input>[Name] extends infer Value extends Method ? MethodIsStatic<Value> extends Static ? AuthoredMethodProjection<Value, Extract<Name, string>> : never : never;
|
|
138
|
+
}[keyof MethodFieldsOf<Input>];
|
|
139
|
+
type BindMethodOwners<Entries, Owner> = Entries extends AuthoredMethodProjection<infer Value, infer Name, infer ExistingOwner> ? AuthoredMethodProjection<Value, Name, ExistingOwner extends 'self' ? Owner : ExistingOwner> : Entries;
|
|
140
|
+
type EffectiveMethodsOfReference<Value, Static extends boolean> = ResolveCompactLazy<Value> extends infer Resolved ? Resolved extends NodeClass<infer Config> ? Config extends {
|
|
141
|
+
readonly effectiveInstanceMethods: infer InstanceMethods;
|
|
142
|
+
readonly effectiveStaticMethods: infer StaticMethods;
|
|
143
|
+
} ? BindMethodOwners<Static extends true ? StaticMethods : InstanceMethods, ClassOwnerProjectionOf<Resolved>> : never : Resolved extends ResolvedClass<'node'> ? Static extends true ? Resolved['static']['methods']['byKey'][keyof Resolved['static']['methods']['byKey']] : Resolved['methods']['byKey'][keyof Resolved['methods']['byKey']] : never : never;
|
|
144
|
+
type ParentMethodProjectionsOf<Input, Static extends boolean> = Input extends {
|
|
145
|
+
readonly extends?: readonly (infer Parent)[];
|
|
146
|
+
} ? EffectiveMethodsOfReference<Parent, Static> : never;
|
|
147
|
+
type EffectiveMethodProjectionsOf<Input, Static extends boolean> = OwnMethodProjectionsOf<Input, Static> | (ParentMethodProjectionsOf<Input, Static> extends infer Entry ? Entry extends {
|
|
148
|
+
readonly name: infer Name;
|
|
149
|
+
} ? Name extends OwnMethodProjectionsOf<Input, Static>['name'] ? never : Entry : never : never);
|
|
150
|
+
type ClassDepthOf<Value> = ResolveCompactLazy<Value> extends infer Resolved ? Resolved extends NodeClass<infer Config> ? Config extends {
|
|
151
|
+
readonly depth: infer Depth extends number;
|
|
152
|
+
} ? Depth : 0 : Resolved extends DirectedEdgeClass<infer Config> | UndirectedEdgeClass<infer Config> ? Config extends {
|
|
153
|
+
readonly depth: infer Depth extends number;
|
|
154
|
+
} ? Depth : 0 : 0 : 0;
|
|
155
|
+
type TupleOfLength<Length extends number, Values extends readonly unknown[] = []> = number extends Length ? readonly unknown[] : Values['length'] extends Length ? Values : TupleOfLength<Length, readonly [...Values, unknown]>;
|
|
156
|
+
type Increment<Depth extends number> = number extends Depth ? number : [...TupleOfLength<Depth>, unknown]['length'] & number;
|
|
157
|
+
type ClassDepthOfInput<Input> = Input extends {
|
|
158
|
+
readonly extends?: infer Parents extends readonly unknown[];
|
|
159
|
+
} ? Parents extends readonly [] ? 0 : Increment<ClassDepthOf<Parents[number]>> : 0;
|
|
160
|
+
export interface ClassIdentityProjection<out Kind extends 'node' | 'edge' = 'node' | 'edge', out Identity = unknown> {
|
|
161
|
+
readonly kind: Kind;
|
|
162
|
+
readonly identity: Identity;
|
|
163
|
+
}
|
|
164
|
+
export interface ClassOwnerProjection<out Kind extends 'node' | 'edge' = 'node' | 'edge', out Identity = unknown, out Properties = unknown, out InstanceMethods = unknown, out StaticMethods = unknown> extends ClassIdentityProjection<Kind, Identity> {
|
|
165
|
+
readonly properties: Properties;
|
|
166
|
+
readonly instanceMethods: InstanceMethods;
|
|
167
|
+
readonly staticMethods: StaticMethods;
|
|
168
|
+
}
|
|
169
|
+
export interface ClassReferenceProjection<out Kind extends 'node' | 'edge' = 'node' | 'edge', out Identity = unknown, out EffectiveProperties = AuthoredPropertyProjection, out EffectiveInstanceMethods = unknown, out EffectiveStaticMethods = unknown> extends ClassIdentityProjection<Kind, Identity> {
|
|
170
|
+
readonly effectiveProperties: EffectiveProperties;
|
|
171
|
+
readonly effectiveInstanceMethods: EffectiveInstanceMethods;
|
|
172
|
+
readonly effectiveStaticMethods: EffectiveStaticMethods;
|
|
173
|
+
}
|
|
174
|
+
type NodeClassIdentity<Config> = Config extends {
|
|
175
|
+
readonly abstract: infer Abstract;
|
|
176
|
+
readonly depth: infer Depth;
|
|
177
|
+
readonly properties: infer Properties;
|
|
178
|
+
readonly methods: infer Methods;
|
|
179
|
+
} ? {
|
|
180
|
+
readonly abstract: Abstract;
|
|
181
|
+
readonly depth: Depth;
|
|
182
|
+
readonly properties: Properties;
|
|
183
|
+
readonly methods: Methods;
|
|
184
|
+
} : never;
|
|
185
|
+
type DirectedEdgeClassIdentity<Config> = Config extends {
|
|
186
|
+
readonly abstract: infer Abstract;
|
|
187
|
+
readonly depth: infer Depth;
|
|
188
|
+
readonly properties: infer Properties;
|
|
189
|
+
readonly source: infer Source;
|
|
190
|
+
readonly target: infer Target;
|
|
191
|
+
readonly constraints: infer Constraints;
|
|
192
|
+
} ? {
|
|
193
|
+
readonly abstract: Abstract;
|
|
194
|
+
readonly depth: Depth;
|
|
195
|
+
readonly properties: Properties;
|
|
196
|
+
readonly source: Source;
|
|
197
|
+
readonly target: Target;
|
|
198
|
+
readonly constraints: Constraints;
|
|
199
|
+
} : never;
|
|
200
|
+
type UndirectedEdgeClassIdentity<Config> = Config extends {
|
|
201
|
+
readonly abstract: infer Abstract;
|
|
202
|
+
readonly depth: infer Depth;
|
|
203
|
+
readonly properties: infer Properties;
|
|
204
|
+
readonly endpoints: infer Endpoints;
|
|
205
|
+
readonly constraints: infer Constraints;
|
|
206
|
+
} ? {
|
|
207
|
+
readonly abstract: Abstract;
|
|
208
|
+
readonly depth: Depth;
|
|
209
|
+
readonly properties: Properties;
|
|
210
|
+
readonly endpoints: Endpoints;
|
|
211
|
+
readonly constraints: Constraints;
|
|
212
|
+
} : never;
|
|
213
|
+
type OwnerErasedPropertyProjection<Entry> = Entry extends AuthoredPropertyProjection<infer Input, infer Output, infer Required, infer Name, unknown, infer State> ? AuthoredPropertyProjection<Input, Output, Required, Name, unknown, State> : Entry extends ResolvedProperty<infer Value, infer Required, infer State> & {
|
|
214
|
+
readonly name: infer Name;
|
|
215
|
+
readonly key: infer Key;
|
|
216
|
+
} ? {
|
|
217
|
+
readonly value: Value;
|
|
218
|
+
readonly required: Required;
|
|
219
|
+
readonly name: Name;
|
|
220
|
+
readonly key: Key;
|
|
221
|
+
readonly state?: State;
|
|
222
|
+
} : never;
|
|
223
|
+
type OwnerErasedMethodProjection<Entry> = Entry extends AuthoredMethodProjection<infer Value, infer Name, unknown> ? AuthoredMethodProjection<Value, Name, unknown> : Entry extends ResolvedMethod<infer Input, infer Output, infer Static, infer Inheritance, infer Auth, infer _Policy, infer Key> & {
|
|
224
|
+
readonly name: infer Name;
|
|
225
|
+
} ? {
|
|
226
|
+
readonly input: Input;
|
|
227
|
+
readonly output: Output;
|
|
228
|
+
readonly static: Static;
|
|
229
|
+
readonly inheritance: Inheritance;
|
|
230
|
+
readonly auth: Auth;
|
|
231
|
+
readonly name: Name;
|
|
232
|
+
readonly key: Key;
|
|
233
|
+
} : never;
|
|
234
|
+
export type ClassIdentityProjectionOf<Value> = Value extends NodeClass<infer Config> ? ClassIdentityProjection<'node', NodeClassIdentity<Config>> : Value extends DirectedEdgeClass<infer Config> ? ClassIdentityProjection<'edge', DirectedEdgeClassIdentity<Config>> : Value extends UndirectedEdgeClass<infer Config> ? ClassIdentityProjection<'edge', UndirectedEdgeClassIdentity<Config>> : never;
|
|
235
|
+
export type ClassOwnerProjectionOf<Value> = Value extends NodeClass<infer Config> ? ClassOwnerProjection<'node', NodeClassIdentity<Config>, Config extends {
|
|
236
|
+
readonly effectiveProperties: infer Properties;
|
|
237
|
+
} ? OwnerErasedPropertyProjection<Properties> : never, Config extends {
|
|
238
|
+
readonly effectiveInstanceMethods: infer Methods;
|
|
239
|
+
} ? OwnerErasedMethodProjection<Methods> : never, Config extends {
|
|
240
|
+
readonly effectiveStaticMethods: infer Methods;
|
|
241
|
+
} ? OwnerErasedMethodProjection<Methods> : never> : Value extends DirectedEdgeClass<infer Config> ? ClassOwnerProjection<'edge', DirectedEdgeClassIdentity<Config>, Config extends {
|
|
242
|
+
readonly effectiveProperties: infer Properties;
|
|
243
|
+
} ? OwnerErasedPropertyProjection<Properties> : never, never, never> : Value extends UndirectedEdgeClass<infer Config> ? ClassOwnerProjection<'edge', UndirectedEdgeClassIdentity<Config>, Config extends {
|
|
244
|
+
readonly effectiveProperties: infer Properties;
|
|
245
|
+
} ? OwnerErasedPropertyProjection<Properties> : never, never, never> : never;
|
|
246
|
+
export type ClassReferenceProjectionOf<Value> = Value extends NodeClass<infer Config> ? ClassReferenceProjection<'node', NodeClassIdentity<Config>, Config extends {
|
|
247
|
+
readonly effectiveProperties: infer Properties;
|
|
248
|
+
} ? BindPropertyOwners<Properties, ClassOwnerProjectionOf<NodeClass<Config>>> : never, Config extends {
|
|
249
|
+
readonly effectiveInstanceMethods: infer Methods;
|
|
250
|
+
} ? BindMethodOwners<Methods, ClassOwnerProjectionOf<NodeClass<Config>>> : never, Config extends {
|
|
251
|
+
readonly effectiveStaticMethods: infer Methods;
|
|
252
|
+
} ? BindMethodOwners<Methods, ClassOwnerProjectionOf<NodeClass<Config>>> : never> : Value extends DirectedEdgeClass<infer Config> ? ClassReferenceProjection<'edge', DirectedEdgeClassIdentity<Config>, Config extends {
|
|
253
|
+
readonly effectiveProperties: infer Properties;
|
|
254
|
+
} ? BindPropertyOwners<Properties, ClassOwnerProjectionOf<DirectedEdgeClass<Config>>> : never, never, never> : Value extends UndirectedEdgeClass<infer Config> ? ClassReferenceProjection<'edge', UndirectedEdgeClassIdentity<Config>, Config extends {
|
|
255
|
+
readonly effectiveProperties: infer Properties;
|
|
256
|
+
} ? BindPropertyOwners<Properties, ClassOwnerProjectionOf<UndirectedEdgeClass<Config>>> : never, never, never> : never;
|
|
257
|
+
type CompactReference<Value> = Value extends () => infer Resolved ? () => CompactReference<Resolved> : Value extends ResolvedClass ? ClassProjectionOfResolved<Value> : Value extends Class ? ClassReferenceProjectionOf<Value> : Value;
|
|
258
|
+
type CompactReferences<Values extends readonly unknown[]> = Values extends readonly [] ? readonly [] : Values extends readonly [infer Value, ...infer Rest] ? readonly [CompactReference<Value>, ...CompactReferences<Rest>] : readonly CompactReference<Values[number]>[];
|
|
259
|
+
type CompactParentsOf<Input> = Input extends {
|
|
260
|
+
readonly extends?: infer Values extends readonly unknown[];
|
|
261
|
+
} ? 'extends' extends keyof Input ? CompactReferences<Values> : readonly [] : readonly [];
|
|
262
|
+
type CompactNodeInput<Input extends NodeClassInput> = {
|
|
263
|
+
readonly depth: ClassDepthOfInput<Input>;
|
|
264
|
+
readonly abstract: Input extends {
|
|
265
|
+
readonly abstract: infer Value extends boolean;
|
|
266
|
+
} ? Value : false;
|
|
267
|
+
readonly extends: CompactParentsOf<Input>;
|
|
268
|
+
readonly properties: PropertyProjectionsOf<'properties' extends keyof Input ? Input extends {
|
|
269
|
+
readonly properties?: infer Value;
|
|
270
|
+
} ? NonNullable<Value> : never : never>;
|
|
271
|
+
readonly methods: 'methods' extends keyof Input ? Input extends {
|
|
272
|
+
readonly methods?: infer Value;
|
|
273
|
+
} ? NonNullable<Value> : Readonly<Record<never, never>> : Readonly<Record<never, never>>;
|
|
274
|
+
readonly effectiveProperties: EffectivePropertyProjectionsOf<Input>;
|
|
275
|
+
readonly effectiveInstanceMethods: EffectiveMethodProjectionsOf<Input, false>;
|
|
276
|
+
readonly effectiveStaticMethods: EffectiveMethodProjectionsOf<Input, true>;
|
|
277
|
+
};
|
|
278
|
+
type CompactDirectedInput<Input extends Omit<DirectedEdgeInput, 'orientation'>> = {
|
|
279
|
+
readonly depth: ClassDepthOfInput<Input>;
|
|
280
|
+
readonly abstract: Input extends {
|
|
281
|
+
readonly abstract: infer Value extends boolean;
|
|
282
|
+
} ? Value : false;
|
|
283
|
+
readonly extends: CompactParentsOf<Input>;
|
|
284
|
+
readonly properties: PropertyProjectionsOf<'properties' extends keyof Input ? Input extends {
|
|
285
|
+
readonly properties?: infer Value;
|
|
286
|
+
} ? NonNullable<Value> : never : never>;
|
|
287
|
+
readonly source: {
|
|
288
|
+
readonly as: Input['source']['as'];
|
|
289
|
+
readonly outgoing: Input['source']['outgoing'];
|
|
290
|
+
};
|
|
291
|
+
readonly target: {
|
|
292
|
+
readonly as: Input['target']['as'];
|
|
293
|
+
readonly incoming: Input['target']['incoming'];
|
|
294
|
+
};
|
|
295
|
+
readonly constraints: Input extends {
|
|
296
|
+
readonly constraints?: infer Value;
|
|
297
|
+
} ? NonNullable<Value> : Record<never, never>;
|
|
298
|
+
readonly effectiveProperties: EffectivePropertyProjectionsOf<Input>;
|
|
299
|
+
};
|
|
300
|
+
type CompactUndirectedInput<Input extends Omit<UndirectedEdgeInput, 'orientation'>> = {
|
|
301
|
+
readonly depth: ClassDepthOfInput<Input>;
|
|
302
|
+
readonly abstract: Input extends {
|
|
303
|
+
readonly abstract: infer Value extends boolean;
|
|
304
|
+
} ? Value : false;
|
|
305
|
+
readonly extends: CompactParentsOf<Input>;
|
|
306
|
+
readonly properties: PropertyProjectionsOf<'properties' extends keyof Input ? Input extends {
|
|
307
|
+
readonly properties?: infer Value;
|
|
308
|
+
} ? NonNullable<Value> : never : never>;
|
|
309
|
+
readonly endpoints: readonly [
|
|
310
|
+
{
|
|
311
|
+
readonly as: Input['endpoints'][0]['as'];
|
|
312
|
+
readonly incident: Input['endpoints'][0]['incident'];
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
readonly as: Input['endpoints'][1]['as'];
|
|
316
|
+
readonly incident: Input['endpoints'][1]['incident'];
|
|
317
|
+
}
|
|
318
|
+
];
|
|
319
|
+
readonly constraints: Input extends {
|
|
320
|
+
readonly constraints?: infer Value;
|
|
321
|
+
} ? NonNullable<Value> : Record<never, never>;
|
|
322
|
+
readonly effectiveProperties: EffectivePropertyProjectionsOf<Input>;
|
|
323
|
+
};
|
|
324
|
+
export interface NodeClass<out Config = unknown> {
|
|
325
|
+
readonly [AUTHORING]: 'definition';
|
|
326
|
+
readonly kind: 'node';
|
|
327
|
+
readonly [CLASS_TYPE]: () => Config;
|
|
328
|
+
}
|
|
329
|
+
export interface DirectedEdgeClass<out Input = unknown> {
|
|
330
|
+
readonly [AUTHORING]: 'definition';
|
|
331
|
+
readonly kind: 'edge';
|
|
332
|
+
readonly orientation: 'directed';
|
|
333
|
+
readonly [CLASS_TYPE]: () => Input;
|
|
334
|
+
}
|
|
335
|
+
export interface UndirectedEdgeClass<out Input = unknown> {
|
|
336
|
+
readonly [AUTHORING]: 'definition';
|
|
337
|
+
readonly kind: 'edge';
|
|
338
|
+
readonly orientation: 'undirected';
|
|
339
|
+
readonly [CLASS_TYPE]: () => Input;
|
|
340
|
+
}
|
|
341
|
+
export type EdgeClass = DirectedEdgeClass | UndirectedEdgeClass;
|
|
342
|
+
export declare function defineClass(config: {
|
|
343
|
+
readonly kind: 'node';
|
|
344
|
+
readonly abstract: boolean;
|
|
345
|
+
} & NodeClassInput): NodeClass;
|
|
346
|
+
export declare function defineClass(config: {
|
|
347
|
+
readonly kind: 'edge';
|
|
348
|
+
readonly orientation: 'directed';
|
|
349
|
+
readonly abstract: boolean;
|
|
350
|
+
} & Omit<DirectedEdgeInput, 'orientation'>): DirectedEdgeClass;
|
|
351
|
+
export declare function defineClass(config: {
|
|
352
|
+
readonly kind: 'edge';
|
|
353
|
+
readonly orientation: 'undirected';
|
|
354
|
+
readonly abstract: boolean;
|
|
355
|
+
} & Omit<UndirectedEdgeInput, 'orientation'>): UndirectedEdgeClass;
|
|
356
|
+
export declare function nodeClass<const Config extends NodeClassInput = Record<never, never>>(config?: Config & Record<Exclude<keyof Config, keyof NodeClassInput>, never>): NodeClass<CompactNodeInput<Config>>;
|
|
357
|
+
export declare const edgeClass: Readonly<{
|
|
358
|
+
directed<const Input extends Omit<DirectedEdgeInput, 'orientation'>>(input: Input & {
|
|
359
|
+
readonly source: ExactEndpointInput<Input['source'], DirectedSourceInput>;
|
|
360
|
+
readonly target: ExactEndpointInput<Input['target'], DirectedTargetInput>;
|
|
361
|
+
} & WithoutStateProperties<Input>): DirectedEdgeClass<CompactDirectedInput<Input>>;
|
|
362
|
+
undirected<const Input extends Omit<UndirectedEdgeInput, 'orientation'>>(input: Input & {
|
|
363
|
+
readonly endpoints: readonly [ExactEndpointInput<Input['endpoints'][0], IncidentEndpointInput>, ExactEndpointInput<Input['endpoints'][1], IncidentEndpointInput>];
|
|
364
|
+
} & WithoutStateProperties<Input>): UndirectedEdgeClass<CompactUndirectedInput<Input>>;
|
|
365
|
+
}>;
|
|
366
|
+
type WithoutStateProperties<Input> = Input extends {
|
|
367
|
+
readonly properties?: infer Properties extends Readonly<Record<string, unknown>>;
|
|
368
|
+
} ? {
|
|
369
|
+
readonly properties?: {
|
|
370
|
+
readonly [Name in keyof Properties]: Properties[Name] extends Property ? [PropertyStateMachineOf<Properties[Name]>] extends [never] ? Properties[Name] : never : Properties[Name];
|
|
371
|
+
};
|
|
372
|
+
} : unknown;
|
|
373
|
+
export type ProjectionOfClass<Value extends Class> = Value extends NodeClass<infer Config> ? Config : Value extends DirectedEdgeClass<infer Input> ? Input : Value extends UndirectedEdgeClass<infer Input> ? Input : never;
|
|
374
|
+
export declare function classConfiguration(value: NodeClass): NodeClassInput;
|
|
375
|
+
export declare function classConfiguration(value: DirectedEdgeClass): Omit<DirectedEdgeInput, 'orientation'>;
|
|
376
|
+
export declare function classConfiguration(value: UndirectedEdgeClass): Omit<UndirectedEdgeInput, 'orientation'>;
|
|
377
|
+
export declare function classConfiguration(value: EdgeClass): Omit<DirectedEdgeInput, 'orientation'> | Omit<UndirectedEdgeInput, 'orientation'>;
|
|
378
|
+
export type { MethodRecord };
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { assertKnownKeys } from '../schema/diagnostic.js';
|
|
2
|
+
import { authoringValue } from '../schema/handle.js';
|
|
3
|
+
const classInputs = new WeakMap();
|
|
4
|
+
export function defineClass(config) {
|
|
5
|
+
if (config.kind === 'node') {
|
|
6
|
+
const { kind: _, ...input } = config;
|
|
7
|
+
return nodeClass(input);
|
|
8
|
+
}
|
|
9
|
+
if (config.orientation === 'directed') {
|
|
10
|
+
const { kind: _, orientation: __, ...input } = config;
|
|
11
|
+
return edgeClass.directed(input);
|
|
12
|
+
}
|
|
13
|
+
const { kind: _, orientation: __, ...input } = config;
|
|
14
|
+
return edgeClass.undirected(input);
|
|
15
|
+
}
|
|
16
|
+
export function nodeClass(config) {
|
|
17
|
+
const admitted = config ?? {};
|
|
18
|
+
assertKnownKeys(admitted, [
|
|
19
|
+
'abstract',
|
|
20
|
+
'description',
|
|
21
|
+
'extends',
|
|
22
|
+
'properties',
|
|
23
|
+
'data',
|
|
24
|
+
'methods',
|
|
25
|
+
'icon',
|
|
26
|
+
'policies',
|
|
27
|
+
]);
|
|
28
|
+
if (admitted.policies !== undefined)
|
|
29
|
+
assertKnownKeys(admitted.policies, ['read', 'traverse']);
|
|
30
|
+
const value = authoringValue('definition', {
|
|
31
|
+
kind: 'node',
|
|
32
|
+
});
|
|
33
|
+
classInputs.set(value, { ...admitted, abstract: admitted.abstract ?? false });
|
|
34
|
+
return value;
|
|
35
|
+
}
|
|
36
|
+
export const edgeClass = Object.freeze({
|
|
37
|
+
directed(input) {
|
|
38
|
+
assertKnownKeys(input, [
|
|
39
|
+
'source',
|
|
40
|
+
'target',
|
|
41
|
+
'abstract',
|
|
42
|
+
'description',
|
|
43
|
+
'extends',
|
|
44
|
+
'properties',
|
|
45
|
+
'policies',
|
|
46
|
+
'constraints',
|
|
47
|
+
]);
|
|
48
|
+
validateDirectedSourceInput(input.source);
|
|
49
|
+
validateDirectedTargetInput(input.target);
|
|
50
|
+
const { source, target, ...options } = input;
|
|
51
|
+
validateEdgeClassOptions(options);
|
|
52
|
+
const value = authoringValue('definition', {
|
|
53
|
+
kind: 'edge',
|
|
54
|
+
orientation: 'directed',
|
|
55
|
+
});
|
|
56
|
+
classInputs.set(value, {
|
|
57
|
+
source: { ...source },
|
|
58
|
+
target: { ...target },
|
|
59
|
+
...options,
|
|
60
|
+
abstract: options.abstract ?? false,
|
|
61
|
+
});
|
|
62
|
+
return value;
|
|
63
|
+
},
|
|
64
|
+
undirected(input) {
|
|
65
|
+
assertKnownKeys(input, [
|
|
66
|
+
'endpoints',
|
|
67
|
+
'abstract',
|
|
68
|
+
'description',
|
|
69
|
+
'extends',
|
|
70
|
+
'properties',
|
|
71
|
+
'policies',
|
|
72
|
+
'constraints',
|
|
73
|
+
]);
|
|
74
|
+
if (input.endpoints.length !== 2)
|
|
75
|
+
throw new TypeError('Undirected Edge Classes require exactly two endpoints.');
|
|
76
|
+
validateIncidentEndpointInput(input.endpoints[0]);
|
|
77
|
+
validateIncidentEndpointInput(input.endpoints[1]);
|
|
78
|
+
const { endpoints, ...options } = input;
|
|
79
|
+
validateUndirectedEdgeClassOptions(options);
|
|
80
|
+
const value = authoringValue('definition', {
|
|
81
|
+
kind: 'edge',
|
|
82
|
+
orientation: 'undirected',
|
|
83
|
+
});
|
|
84
|
+
classInputs.set(value, {
|
|
85
|
+
endpoints: [{ ...endpoints[0] }, { ...endpoints[1] }],
|
|
86
|
+
...options,
|
|
87
|
+
abstract: options.abstract ?? false,
|
|
88
|
+
});
|
|
89
|
+
return value;
|
|
90
|
+
},
|
|
91
|
+
});
|
|
92
|
+
export function classConfiguration(value) {
|
|
93
|
+
const input = classInputs.get(value);
|
|
94
|
+
if (input === undefined)
|
|
95
|
+
throw new TypeError('Unknown Class authoring handle.');
|
|
96
|
+
return input;
|
|
97
|
+
}
|
|
98
|
+
function validateDirectedSourceInput(value) {
|
|
99
|
+
assertKnownKeys(value, ['as', 'accepts', 'outgoing']);
|
|
100
|
+
}
|
|
101
|
+
function validateDirectedTargetInput(value) {
|
|
102
|
+
assertKnownKeys(value, ['as', 'accepts', 'incoming']);
|
|
103
|
+
}
|
|
104
|
+
function validateIncidentEndpointInput(value) {
|
|
105
|
+
assertKnownKeys(value, ['as', 'accepts', 'incident']);
|
|
106
|
+
}
|
|
107
|
+
function validateEdgeClassOptions(value) {
|
|
108
|
+
assertKnownKeys(value, [
|
|
109
|
+
'abstract',
|
|
110
|
+
'description',
|
|
111
|
+
'extends',
|
|
112
|
+
'properties',
|
|
113
|
+
'policies',
|
|
114
|
+
'constraints',
|
|
115
|
+
]);
|
|
116
|
+
if (value.policies !== undefined)
|
|
117
|
+
assertKnownKeys(value.policies, ['read', 'traverse']);
|
|
118
|
+
if (value.constraints !== undefined)
|
|
119
|
+
assertKnownKeys(value.constraints, ['noSelf', 'acyclic']);
|
|
120
|
+
}
|
|
121
|
+
function validateUndirectedEdgeClassOptions(value) {
|
|
122
|
+
assertKnownKeys(value, [
|
|
123
|
+
'abstract',
|
|
124
|
+
'description',
|
|
125
|
+
'extends',
|
|
126
|
+
'properties',
|
|
127
|
+
'policies',
|
|
128
|
+
'constraints',
|
|
129
|
+
]);
|
|
130
|
+
if (value.policies !== undefined)
|
|
131
|
+
assertKnownKeys(value.policies, ['read', 'traverse']);
|
|
132
|
+
if (value.constraints !== undefined)
|
|
133
|
+
assertKnownKeys(value.constraints, ['noSelf']);
|
|
134
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { z } from 'zod';
|
|
2
|
+
import type { AutoEvent, AutoSet } from '../../language/class/model/property.js';
|
|
3
|
+
import type { StateMachine } from '../../language/state/index.js';
|
|
4
|
+
import type { JsonSchema } from '../../language/value/model/schema.js';
|
|
5
|
+
import type { AUTHORING } from '../schema/handle.js';
|
|
6
|
+
declare const PROPERTY_INPUT: unique symbol;
|
|
7
|
+
declare const AUTO_INPUT: unique symbol;
|
|
8
|
+
export type ValueSchemaInput = z.ZodType | JsonSchema;
|
|
9
|
+
export interface PropertyOptions {
|
|
10
|
+
readonly required?: boolean;
|
|
11
|
+
readonly description?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface AutoOptions {
|
|
14
|
+
readonly on: AutoEvent | readonly AutoEvent[];
|
|
15
|
+
readonly set: AutoSet;
|
|
16
|
+
}
|
|
17
|
+
export interface Property<out Schema extends ValueSchemaInput = ValueSchemaInput, out Options extends PropertyOptions = PropertyOptions, out Machine = unknown> {
|
|
18
|
+
readonly [AUTHORING]: 'property';
|
|
19
|
+
readonly [PROPERTY_INPUT]: {
|
|
20
|
+
readonly schema: Schema;
|
|
21
|
+
readonly options: Options;
|
|
22
|
+
readonly machine?: Machine;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export type PropertySchemaOf<Value extends Property> = Value extends Property<infer Schema, PropertyOptions, unknown> ? Schema : never;
|
|
26
|
+
export type PropertyOptionsOf<Value extends Property> = Value extends Property<ValueSchemaInput, infer Options, unknown> ? Options : never;
|
|
27
|
+
export type PropertyStateMachineOf<Value extends Property> = Value extends Property<ValueSchemaInput, PropertyOptions, infer Machine> ? Machine : never;
|
|
28
|
+
export interface AutoProperty<out PropertyValue extends Property = Property> {
|
|
29
|
+
readonly [AUTHORING]: 'auto';
|
|
30
|
+
readonly [AUTO_INPUT]: {
|
|
31
|
+
readonly property: PropertyValue;
|
|
32
|
+
readonly options: {
|
|
33
|
+
readonly on: readonly AutoEvent[];
|
|
34
|
+
readonly set: AutoSet;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export type PropertyAuthoringInput<Value extends Property> = Value extends Property<infer Schema, infer Options, infer Machine> ? {
|
|
39
|
+
readonly schema: Schema;
|
|
40
|
+
readonly options: Options;
|
|
41
|
+
readonly machine?: Machine;
|
|
42
|
+
} : never;
|
|
43
|
+
export declare function propertyAuthoringInput<const Value extends Property>(value: Value): PropertyAuthoringInput<Value>;
|
|
44
|
+
export declare function autoPropertyAuthoringInput<const Value extends AutoProperty>(value: Value): Value extends AutoProperty<infer Property> ? {
|
|
45
|
+
readonly property: Property;
|
|
46
|
+
readonly options: {
|
|
47
|
+
readonly on: readonly AutoEvent[];
|
|
48
|
+
readonly set: AutoSet;
|
|
49
|
+
};
|
|
50
|
+
} : never;
|
|
51
|
+
export type PropertyFieldInput = ValueSchemaInput | Property | AutoProperty;
|
|
52
|
+
export type PropertyRecordInput = Readonly<Record<string, PropertyFieldInput>>;
|
|
53
|
+
export declare function property<const Schema extends ValueSchemaInput, const Options extends PropertyOptions = Record<never, never>>(schema: Schema, options?: Options): Property<Schema, Options, never>;
|
|
54
|
+
export declare function stateProperty<const Machine extends StateMachine, const Options extends Omit<PropertyOptions, 'required'> = Record<never, never>>(machine: Machine, options?: Options & Record<Exclude<keyof Options, 'description'>, never>): Property<Machine['stateSchema'], Readonly<Options & {
|
|
55
|
+
readonly required: true;
|
|
56
|
+
}>, Machine>;
|
|
57
|
+
export declare function auto<const PropertyValue extends Property>(property: [PropertyStateMachineOf<PropertyValue>] extends [never] ? PropertyValue : never, options: AutoOptions): AutoProperty<PropertyValue>;
|
|
58
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { assertKnownKeys, fail } from '../schema/diagnostic.js';
|
|
2
|
+
import { authoringValue, isAuthoringValue } from '../schema/handle.js';
|
|
3
|
+
const PROPERTY_INPUT = Symbol('astrale.v1.property-input');
|
|
4
|
+
const AUTO_INPUT = Symbol('astrale.v1.auto-property-input');
|
|
5
|
+
export function propertyAuthoringInput(value) {
|
|
6
|
+
return value[PROPERTY_INPUT];
|
|
7
|
+
}
|
|
8
|
+
export function autoPropertyAuthoringInput(value) {
|
|
9
|
+
return value[AUTO_INPUT];
|
|
10
|
+
}
|
|
11
|
+
export function property(schema, options) {
|
|
12
|
+
const admitted = options ?? {};
|
|
13
|
+
assertKnownKeys(admitted, ['required', 'description']);
|
|
14
|
+
return authoringValue('property', {
|
|
15
|
+
[PROPERTY_INPUT]: {
|
|
16
|
+
schema,
|
|
17
|
+
options: admitted,
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
export function stateProperty(machine, options) {
|
|
22
|
+
const admitted = options ?? {};
|
|
23
|
+
assertKnownKeys(admitted, ['description']);
|
|
24
|
+
return authoringValue('property', {
|
|
25
|
+
[PROPERTY_INPUT]: {
|
|
26
|
+
schema: machine.stateSchema,
|
|
27
|
+
options: { ...admitted, required: true },
|
|
28
|
+
machine,
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
export function auto(property, options) {
|
|
33
|
+
if (isAuthoringValue(property, 'auto')) {
|
|
34
|
+
fail('BUILDER_AUTO_NESTED', '', 'auto(...) cannot wrap another auto Property.');
|
|
35
|
+
}
|
|
36
|
+
assertKnownKeys(options, ['on', 'set']);
|
|
37
|
+
const authored = Array.isArray(options.on) ? options.on : [options.on];
|
|
38
|
+
if (authored.length === 0)
|
|
39
|
+
fail('BUILDER_AUTO_EVENT_INVALID', '/on', 'auto(...) requires an event.');
|
|
40
|
+
const events = [...new Set(authored)];
|
|
41
|
+
if (events.some((event) => event !== 'create' && event !== 'update')) {
|
|
42
|
+
fail('BUILDER_AUTO_EVENT_INVALID', '/on', 'Automatic events are create or update.');
|
|
43
|
+
}
|
|
44
|
+
if (options.set !== 'instant') {
|
|
45
|
+
fail('BUILDER_AUTO_SET_INVALID', '/set', 'The auto setter must be instant.');
|
|
46
|
+
}
|
|
47
|
+
events.sort((left, right) => (left === right ? 0 : left === 'create' ? -1 : 1));
|
|
48
|
+
if (propertyAuthoringInput(property).options.required === true && !events.includes('create')) {
|
|
49
|
+
fail('BUILDER_AUTO_EVENT_INVALID', '/on', 'A required auto Property must run on create.');
|
|
50
|
+
}
|
|
51
|
+
return authoringValue('auto', {
|
|
52
|
+
[AUTO_INPUT]: {
|
|
53
|
+
property,
|
|
54
|
+
options: { on: Object.freeze(events), set: options.set },
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
}
|