@metaobjectsdev/metadata 0.9.0 → 0.11.0-rc.1
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/attr-schema-validate.d.ts +1 -1
- package/dist/attr-schema-validate.d.ts.map +1 -1
- package/dist/attr-schema-validate.js +96 -11
- package/dist/attr-schema-validate.js.map +1 -1
- package/dist/constraint-merge.d.ts +18 -0
- package/dist/constraint-merge.d.ts.map +1 -0
- package/dist/constraint-merge.js +0 -0
- package/dist/constraint-merge.js.map +1 -0
- package/dist/constraint-validate.d.ts +6 -0
- package/dist/constraint-validate.d.ts.map +1 -0
- package/dist/constraint-validate.js +274 -0
- package/dist/constraint-validate.js.map +1 -0
- package/dist/core/attr/attr-constants.d.ts +13 -3
- package/dist/core/attr/attr-constants.d.ts.map +1 -1
- package/dist/core/attr/attr-constants.js +11 -2
- package/dist/core/attr/attr-constants.js.map +1 -1
- package/dist/core/attr/attr-definition.embedded.d.ts +3 -0
- package/dist/core/attr/attr-definition.embedded.d.ts.map +1 -0
- package/dist/core/attr/attr-definition.embedded.js +60 -0
- package/dist/core/attr/attr-definition.embedded.js.map +1 -0
- package/dist/core/documentation/doc-constants.d.ts +3 -2
- package/dist/core/documentation/doc-constants.d.ts.map +1 -1
- package/dist/core/documentation/doc-constants.js +3 -1
- package/dist/core/documentation/doc-constants.js.map +1 -1
- package/dist/core/documentation/doc-provider.d.ts.map +1 -1
- package/dist/core/documentation/doc-provider.js +6 -2
- package/dist/core/documentation/doc-provider.js.map +1 -1
- package/dist/core/documentation/documentation-definition.embedded.d.ts +3 -0
- package/dist/core/documentation/documentation-definition.embedded.d.ts.map +1 -0
- package/dist/core/documentation/documentation-definition.embedded.js +79 -0
- package/dist/core/documentation/documentation-definition.embedded.js.map +1 -0
- package/dist/core/field/field-constants.d.ts +7 -4
- package/dist/core/field/field-constants.d.ts.map +1 -1
- package/dist/core/field/field-constants.js +7 -7
- package/dist/core/field/field-constants.js.map +1 -1
- package/dist/core/field/field-definition.embedded.d.ts +3 -0
- package/dist/core/field/field-definition.embedded.d.ts.map +1 -0
- package/dist/core/field/field-definition.embedded.js +236 -0
- package/dist/core/field/field-definition.embedded.js.map +1 -0
- package/dist/core/field/meta-field.d.ts.map +1 -1
- package/dist/core/field/meta-field.js +7 -5
- package/dist/core/field/meta-field.js.map +1 -1
- package/dist/core/identity/identity-constants.d.ts.map +1 -1
- package/dist/core/identity/identity-constants.js +3 -0
- package/dist/core/identity/identity-constants.js.map +1 -1
- package/dist/core/identity/identity-definition.embedded.d.ts +3 -0
- package/dist/core/identity/identity-definition.embedded.d.ts.map +1 -0
- package/dist/core/identity/identity-definition.embedded.js +93 -0
- package/dist/core/identity/identity-definition.embedded.js.map +1 -0
- package/dist/core/identity/meta-identity.d.ts.map +1 -1
- package/dist/core/identity/meta-identity.js +8 -1
- package/dist/core/identity/meta-identity.js.map +1 -1
- package/dist/core/identity/validate-identity-passthrough.d.ts +42 -0
- package/dist/core/identity/validate-identity-passthrough.d.ts.map +1 -0
- package/dist/core/identity/validate-identity-passthrough.js +158 -0
- package/dist/core/identity/validate-identity-passthrough.js.map +1 -0
- package/dist/core/object/object-constants.d.ts +2 -1
- package/dist/core/object/object-constants.d.ts.map +1 -1
- package/dist/core/object/object-constants.js +3 -0
- package/dist/core/object/object-constants.js.map +1 -1
- package/dist/core/object/object-definition.embedded.d.ts +3 -0
- package/dist/core/object/object-definition.embedded.d.ts.map +1 -0
- package/dist/core/object/object-definition.embedded.js +110 -0
- package/dist/core/object/object-definition.embedded.js.map +1 -0
- package/dist/core/object/validate-discriminator.d.ts.map +1 -1
- package/dist/core/object/validate-discriminator.js +1 -3
- package/dist/core/object/validate-discriminator.js.map +1 -1
- package/dist/core/query/query-constants.d.ts.map +1 -1
- package/dist/core/query/query-constants.js +5 -3
- package/dist/core/query/query-constants.js.map +1 -1
- package/dist/core/relationship/derive-m2m-fields.d.ts +26 -0
- package/dist/core/relationship/derive-m2m-fields.d.ts.map +1 -0
- package/dist/core/relationship/derive-m2m-fields.js +102 -0
- package/dist/core/relationship/derive-m2m-fields.js.map +1 -0
- package/dist/core/relationship/meta-relationship.d.ts +6 -4
- package/dist/core/relationship/meta-relationship.d.ts.map +1 -1
- package/dist/core/relationship/meta-relationship.js +12 -8
- package/dist/core/relationship/meta-relationship.js.map +1 -1
- package/dist/core/relationship/relationship-constants.d.ts +6 -2
- package/dist/core/relationship/relationship-constants.d.ts.map +1 -1
- package/dist/core/relationship/relationship-constants.js +6 -2
- package/dist/core/relationship/relationship-constants.js.map +1 -1
- package/dist/core/relationship/relationship-definition.embedded.d.ts +3 -0
- package/dist/core/relationship/relationship-definition.embedded.d.ts.map +1 -0
- package/dist/core/relationship/relationship-definition.embedded.js +310 -0
- package/dist/core/relationship/relationship-definition.embedded.js.map +1 -0
- package/dist/core/validator/validator-constants.d.ts +14 -1
- package/dist/core/validator/validator-constants.d.ts.map +1 -1
- package/dist/core/validator/validator-constants.js +20 -1
- package/dist/core/validator/validator-constants.js.map +1 -1
- package/dist/core/validator/validator-definition.embedded.d.ts +3 -0
- package/dist/core/validator/validator-definition.embedded.d.ts.map +1 -0
- package/dist/core/validator/validator-definition.embedded.js +255 -0
- package/dist/core/validator/validator-definition.embedded.js.map +1 -0
- package/dist/core/yaml-desugar.d.ts.map +1 -1
- package/dist/core/yaml-desugar.js +88 -10
- package/dist/core/yaml-desugar.js.map +1 -1
- package/dist/core-types.d.ts +5 -2
- package/dist/core-types.d.ts.map +1 -1
- package/dist/core-types.js +285 -116
- package/dist/core-types.js.map +1 -1
- package/dist/errors.d.ts +3 -3
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +87 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +17 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -1
- package/dist/index.js.map +1 -1
- package/dist/library/embedded-library.generated.d.ts +2 -0
- package/dist/library/embedded-library.generated.d.ts.map +1 -0
- package/dist/library/embedded-library.generated.js +11 -0
- package/dist/library/embedded-library.generated.js.map +1 -0
- package/dist/library/library-sources.d.ts +12 -0
- package/dist/library/library-sources.d.ts.map +1 -0
- package/dist/library/library-sources.js +88 -0
- package/dist/library/library-sources.js.map +1 -0
- package/dist/loader/meta-data-loader.d.ts +10 -2
- package/dist/loader/meta-data-loader.d.ts.map +1 -1
- package/dist/loader/meta-data-loader.js +57 -6
- package/dist/loader/meta-data-loader.js.map +1 -1
- package/dist/loader/shortcuts.d.ts +2 -5
- package/dist/loader/shortcuts.d.ts.map +1 -1
- package/dist/loader/shortcuts.js.map +1 -1
- package/dist/loader/validation-passes.d.ts +3 -0
- package/dist/loader/validation-passes.d.ts.map +1 -1
- package/dist/loader/validation-passes.js +519 -34
- package/dist/loader/validation-passes.js.map +1 -1
- package/dist/loader/validation-registry.d.ts +10 -0
- package/dist/loader/validation-registry.d.ts.map +1 -0
- package/dist/loader/validation-registry.js +84 -0
- package/dist/loader/validation-registry.js.map +1 -0
- package/dist/metamodel-docs/index.d.ts +19 -0
- package/dist/metamodel-docs/index.d.ts.map +1 -0
- package/dist/metamodel-docs/index.js +37 -0
- package/dist/metamodel-docs/index.js.map +1 -0
- package/dist/metamodel-docs/provenance.d.ts +42 -0
- package/dist/metamodel-docs/provenance.d.ts.map +1 -0
- package/dist/metamodel-docs/provenance.js +148 -0
- package/dist/metamodel-docs/provenance.js.map +1 -0
- package/dist/metamodel-docs/provider-definitions.d.ts +8 -0
- package/dist/metamodel-docs/provider-definitions.d.ts.map +1 -0
- package/dist/metamodel-docs/provider-definitions.js +48 -0
- package/dist/metamodel-docs/provider-definitions.js.map +1 -0
- package/dist/metamodel-docs/render.d.ts +12 -0
- package/dist/metamodel-docs/render.d.ts.map +1 -0
- package/dist/metamodel-docs/render.js +252 -0
- package/dist/metamodel-docs/render.js.map +1 -0
- package/dist/naming-refs.d.ts +41 -0
- package/dist/naming-refs.d.ts.map +1 -0
- package/dist/naming-refs.js +144 -0
- package/dist/naming-refs.js.map +1 -0
- package/dist/naming.d.ts.map +1 -1
- package/dist/naming.js +10 -2
- package/dist/naming.js.map +1 -1
- package/dist/parser-core.d.ts.map +1 -1
- package/dist/parser-core.js +84 -9
- package/dist/parser-core.js.map +1 -1
- package/dist/persistence/db/db-constants.d.ts +10 -0
- package/dist/persistence/db/db-constants.d.ts.map +1 -1
- package/dist/persistence/db/db-constants.js +14 -0
- package/dist/persistence/db/db-constants.js.map +1 -1
- package/dist/persistence/db/db-definition.embedded.d.ts +3 -0
- package/dist/persistence/db/db-definition.embedded.d.ts.map +1 -0
- package/dist/persistence/db/db-definition.embedded.js +227 -0
- package/dist/persistence/db/db-definition.embedded.js.map +1 -0
- package/dist/persistence/db/db-provider.d.ts.map +1 -1
- package/dist/persistence/db/db-provider.js +13 -18
- package/dist/persistence/db/db-provider.js.map +1 -1
- package/dist/persistence/origin/origin-definition.embedded.d.ts +3 -0
- package/dist/persistence/origin/origin-definition.embedded.d.ts.map +1 -0
- package/dist/persistence/origin/origin-definition.embedded.js +88 -0
- package/dist/persistence/origin/origin-definition.embedded.js.map +1 -0
- package/dist/persistence/source/source-definition.embedded.d.ts +3 -0
- package/dist/persistence/source/source-definition.embedded.d.ts.map +1 -0
- package/dist/persistence/source/source-definition.embedded.js +17 -0
- package/dist/persistence/source/source-definition.embedded.js.map +1 -0
- package/dist/persistence/source/validate-source-parameter-ref.d.ts.map +1 -1
- package/dist/persistence/source/validate-source-parameter-ref.js +7 -1
- package/dist/persistence/source/validate-source-parameter-ref.js.map +1 -1
- package/dist/persistence/source/validate-source-roles.d.ts.map +1 -1
- package/dist/persistence/source/validate-source-roles.js +16 -1
- package/dist/persistence/source/validate-source-roles.js.map +1 -1
- package/dist/presentation/layout/layout-definition.embedded.d.ts +3 -0
- package/dist/presentation/layout/layout-definition.embedded.d.ts.map +1 -0
- package/dist/presentation/layout/layout-definition.embedded.js +16 -0
- package/dist/presentation/layout/layout-definition.embedded.js.map +1 -0
- package/dist/presentation/ui/ui-definition.embedded.d.ts +3 -0
- package/dist/presentation/ui/ui-definition.embedded.d.ts.map +1 -0
- package/dist/presentation/ui/ui-definition.embedded.js +114 -0
- package/dist/presentation/ui/ui-definition.embedded.js.map +1 -0
- package/dist/presentation/ui/ui-provider.d.ts +3 -0
- package/dist/presentation/ui/ui-provider.d.ts.map +1 -0
- package/dist/presentation/ui/ui-provider.js +21 -0
- package/dist/presentation/ui/ui-provider.js.map +1 -0
- package/dist/presentation/view/view-definition.embedded.d.ts +3 -0
- package/dist/presentation/view/view-definition.embedded.d.ts.map +1 -0
- package/dist/presentation/view/view-definition.embedded.js +76 -0
- package/dist/presentation/view/view-definition.embedded.js.map +1 -0
- package/dist/provider-data.d.ts +184 -0
- package/dist/provider-data.d.ts.map +1 -0
- package/dist/provider-data.js +271 -0
- package/dist/provider-data.js.map +1 -0
- package/dist/provider.d.ts +3 -1
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +15 -1
- package/dist/provider.js.map +1 -1
- package/dist/registry-coverage.d.ts +99 -0
- package/dist/registry-coverage.d.ts.map +1 -0
- package/dist/registry-coverage.js +294 -0
- package/dist/registry-coverage.js.map +1 -0
- package/dist/registry-manifest-exclusions.d.ts +62 -0
- package/dist/registry-manifest-exclusions.d.ts.map +1 -0
- package/dist/registry-manifest-exclusions.js +163 -0
- package/dist/registry-manifest-exclusions.js.map +1 -0
- package/dist/registry-manifest.d.ts +117 -0
- package/dist/registry-manifest.d.ts.map +1 -0
- package/dist/registry-manifest.js +242 -0
- package/dist/registry-manifest.js.map +1 -0
- package/dist/registry.d.ts +76 -2
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +37 -1
- package/dist/registry.js.map +1 -1
- package/dist/shared/structural.d.ts +7 -0
- package/dist/shared/structural.d.ts.map +1 -1
- package/dist/shared/structural.js +7 -0
- package/dist/shared/structural.js.map +1 -1
- package/dist/subtype-rules.d.ts.map +1 -1
- package/dist/subtype-rules.js +97 -13
- package/dist/subtype-rules.js.map +1 -1
- package/dist/super-resolve.d.ts +49 -2
- package/dist/super-resolve.d.ts.map +1 -1
- package/dist/super-resolve.js +128 -43
- package/dist/super-resolve.js.map +1 -1
- package/dist/template/meta-template.d.ts +3 -2
- package/dist/template/meta-template.d.ts.map +1 -1
- package/dist/template/meta-template.js +3 -2
- package/dist/template/meta-template.js.map +1 -1
- package/dist/template/prompt-definition.embedded.d.ts +3 -0
- package/dist/template/prompt-definition.embedded.d.ts.map +1 -0
- package/dist/template/prompt-definition.embedded.js +368 -0
- package/dist/template/prompt-definition.embedded.js.map +1 -0
- package/dist/template/prompt-provider.d.ts +3 -0
- package/dist/template/prompt-provider.d.ts.map +1 -0
- package/dist/template/prompt-provider.js +25 -0
- package/dist/template/prompt-provider.js.map +1 -0
- package/dist/template/template-constants.d.ts +2 -0
- package/dist/template/template-constants.d.ts.map +1 -1
- package/dist/template/template-constants.js +7 -0
- package/dist/template/template-constants.js.map +1 -1
- package/dist/template/template-definition.embedded.d.ts +3 -0
- package/dist/template/template-definition.embedded.d.ts.map +1 -0
- package/dist/template/template-definition.embedded.js +30 -0
- package/dist/template/template-definition.embedded.js.map +1 -0
- package/dist/validate-max-occurs.d.ts +5 -0
- package/dist/validate-max-occurs.d.ts.map +1 -0
- package/dist/validate-max-occurs.js +28 -0
- package/dist/validate-max-occurs.js.map +1 -0
- package/dist/validation-types.d.ts +36 -0
- package/dist/validation-types.d.ts.map +1 -0
- package/dist/validation-types.js +7 -0
- package/dist/validation-types.js.map +1 -0
- package/package.json +33 -22
- package/src/attr-schema-validate.ts +108 -8
- package/src/constraint-merge.ts +0 -0
- package/src/constraint-validate.ts +363 -0
- package/src/core/attr/attr-constants.ts +15 -3
- package/src/core/attr/attr-definition.embedded.ts +67 -0
- package/src/core/documentation/doc-constants.ts +3 -1
- package/src/core/documentation/doc-provider.ts +6 -2
- package/src/core/documentation/documentation-definition.embedded.ts +86 -0
- package/src/core/field/field-constants.ts +8 -7
- package/src/core/field/field-definition.embedded.ts +243 -0
- package/src/core/field/meta-field.ts +6 -7
- package/src/core/identity/identity-constants.ts +4 -0
- package/src/core/identity/identity-definition.embedded.ts +100 -0
- package/src/core/identity/meta-identity.ts +8 -1
- package/src/core/identity/validate-identity-passthrough.ts +194 -0
- package/src/core/object/object-constants.ts +3 -0
- package/src/core/object/object-definition.embedded.ts +117 -0
- package/src/core/object/validate-discriminator.ts +0 -4
- package/src/core/query/query-constants.ts +5 -3
- package/src/core/relationship/derive-m2m-fields.ts +145 -0
- package/src/core/relationship/meta-relationship.ts +15 -9
- package/src/core/relationship/relationship-constants.ts +6 -2
- package/src/core/relationship/relationship-definition.embedded.ts +317 -0
- package/src/core/validator/validator-constants.ts +22 -1
- package/src/core/validator/validator-definition.embedded.ts +262 -0
- package/src/core/yaml-desugar.ts +96 -7
- package/src/core-types.ts +314 -150
- package/src/errors.ts +89 -2
- package/src/index.ts +47 -2
- package/src/library/embedded-library.generated.ts +10 -0
- package/src/library/library-sources.ts +97 -0
- package/src/loader/meta-data-loader.ts +78 -7
- package/src/loader/shortcuts.ts +2 -2
- package/src/loader/validation-passes.ts +690 -34
- package/src/loader/validation-registry.ts +93 -0
- package/src/metamodel-docs/index.ts +41 -0
- package/src/metamodel-docs/provenance.ts +187 -0
- package/src/metamodel-docs/provider-definitions.ts +50 -0
- package/src/metamodel-docs/render.ts +309 -0
- package/src/naming-refs.ts +162 -0
- package/src/naming.ts +10 -2
- package/src/parser-core.ts +96 -9
- package/src/persistence/db/db-constants.ts +16 -0
- package/src/persistence/db/db-definition.embedded.ts +234 -0
- package/src/persistence/db/db-provider.ts +13 -18
- package/src/persistence/origin/origin-definition.embedded.ts +95 -0
- package/src/persistence/source/source-definition.embedded.ts +24 -0
- package/src/persistence/source/validate-source-parameter-ref.ts +7 -1
- package/src/persistence/source/validate-source-roles.ts +22 -1
- package/src/presentation/layout/layout-definition.embedded.ts +23 -0
- package/src/presentation/ui/ui-definition.embedded.ts +121 -0
- package/src/presentation/ui/ui-provider.ts +25 -0
- package/src/presentation/view/view-definition.embedded.ts +83 -0
- package/src/provider-data.ts +463 -0
- package/src/provider.ts +18 -0
- package/src/registry-coverage.ts +430 -0
- package/src/registry-manifest-exclusions.ts +176 -0
- package/src/registry-manifest.ts +334 -0
- package/src/registry.ts +106 -3
- package/src/shared/structural.ts +8 -0
- package/src/subtype-rules.ts +135 -18
- package/src/super-resolve.ts +153 -43
- package/src/template/meta-template.ts +3 -2
- package/src/template/prompt-definition.embedded.ts +375 -0
- package/src/template/prompt-provider.ts +29 -0
- package/src/template/template-constants.ts +8 -0
- package/src/template/template-definition.embedded.ts +37 -0
- package/src/validate-max-occurs.ts +39 -0
- package/src/validation-types.ts +57 -0
- package/dist/core/documentation/doc-schema.d.ts +0 -8
- package/dist/core/documentation/doc-schema.d.ts.map +0 -1
- package/dist/core/documentation/doc-schema.js +0 -53
- package/dist/core/documentation/doc-schema.js.map +0 -1
- package/dist/core/field/field-schema.d.ts +0 -22
- package/dist/core/field/field-schema.d.ts.map +0 -1
- package/dist/core/field/field-schema.js +0 -171
- package/dist/core/field/field-schema.js.map +0 -1
- package/dist/core/identity/identity-schema.d.ts +0 -6
- package/dist/core/identity/identity-schema.d.ts.map +0 -1
- package/dist/core/identity/identity-schema.js +0 -55
- package/dist/core/identity/identity-schema.js.map +0 -1
- package/dist/core/object/object-schema.d.ts +0 -4
- package/dist/core/object/object-schema.d.ts.map +0 -1
- package/dist/core/object/object-schema.js +0 -28
- package/dist/core/object/object-schema.js.map +0 -1
- package/dist/core/relationship/relationship-schema.d.ts +0 -4
- package/dist/core/relationship/relationship-schema.d.ts.map +0 -1
- package/dist/core/relationship/relationship-schema.js +0 -51
- package/dist/core/relationship/relationship-schema.js.map +0 -1
- package/dist/core/validator/validator-schema.d.ts +0 -4
- package/dist/core/validator/validator-schema.d.ts.map +0 -1
- package/dist/core/validator/validator-schema.js +0 -38
- package/dist/core/validator/validator-schema.js.map +0 -1
- package/dist/persistence/db/db-schema.d.ts +0 -14
- package/dist/persistence/db/db-schema.d.ts.map +0 -1
- package/dist/persistence/db/db-schema.js +0 -35
- package/dist/persistence/db/db-schema.js.map +0 -1
- package/dist/persistence/origin/origin-schema.d.ts +0 -4
- package/dist/persistence/origin/origin-schema.d.ts.map +0 -1
- package/dist/persistence/origin/origin-schema.js +0 -59
- package/dist/persistence/origin/origin-schema.js.map +0 -1
- package/dist/persistence/source/source-schema.d.ts +0 -4
- package/dist/persistence/source/source-schema.d.ts.map +0 -1
- package/dist/persistence/source/source-schema.js +0 -98
- package/dist/persistence/source/source-schema.js.map +0 -1
- package/dist/presentation/layout/layout-schema.d.ts +0 -4
- package/dist/presentation/layout/layout-schema.d.ts.map +0 -1
- package/dist/presentation/layout/layout-schema.js +0 -46
- package/dist/presentation/layout/layout-schema.js.map +0 -1
- package/dist/presentation/view/view-schema.d.ts +0 -4
- package/dist/presentation/view/view-schema.d.ts.map +0 -1
- package/dist/presentation/view/view-schema.js +0 -15
- package/dist/presentation/view/view-schema.js.map +0 -1
- package/dist/template/template-schema.d.ts +0 -3
- package/dist/template/template-schema.d.ts.map +0 -1
- package/dist/template/template-schema.js +0 -173
- package/dist/template/template-schema.js.map +0 -1
- package/src/core/documentation/doc-schema.ts +0 -64
- package/src/core/field/field-schema.ts +0 -228
- package/src/core/identity/identity-schema.ts +0 -80
- package/src/core/object/object-schema.ts +0 -35
- package/src/core/relationship/relationship-schema.ts +0 -67
- package/src/core/validator/validator-schema.ts +0 -50
- package/src/persistence/db/db-schema.ts +0 -50
- package/src/persistence/origin/origin-schema.ts +0 -80
- package/src/persistence/source/source-schema.ts +0 -129
- package/src/presentation/layout/layout-schema.ts +0 -62
- package/src/presentation/view/view-schema.ts +0 -21
- package/src/template/template-schema.ts +0 -211
|
@@ -5,5 +5,5 @@ export interface AttrSchemaValidationResult {
|
|
|
5
5
|
errors: ParseError[];
|
|
6
6
|
warnings: string[];
|
|
7
7
|
}
|
|
8
|
-
export declare function validateAttrSchema(root: MetaData, registry: TypeRegistry): AttrSchemaValidationResult;
|
|
8
|
+
export declare function validateAttrSchema(root: MetaData, registry: TypeRegistry, strict?: boolean): AttrSchemaValidationResult;
|
|
9
9
|
//# sourceMappingURL=attr-schema-validate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attr-schema-validate.d.ts","sourceRoot":"","sources":["../src/attr-schema-validate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"attr-schema-validate.d.ts","sourceRoot":"","sources":["../src/attr-schema-validate.ts"],"names":[],"mappings":"AA2CA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAc,YAAY,EAAE,MAAM,eAAe,CAAC;AAkB9D,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAMD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,YAAY,EAKtB,MAAM,UAAQ,GACb,0BAA0B,CAQ5B"}
|
|
@@ -12,7 +12,21 @@
|
|
|
12
12
|
// MetaAttr instance's own validateValue.
|
|
13
13
|
// 3. allowedValues honored — declared attrs with a non-empty
|
|
14
14
|
// allowedValues set must hold a member value.
|
|
15
|
-
// 4. Undeclared attrs —
|
|
15
|
+
// 4. Undeclared attrs — under strict load (ADR-0023) an own
|
|
16
|
+
// @-attr that matches NO per-type attr
|
|
17
|
+
// schema AND NO commonAttr is an
|
|
18
|
+
// ERR_UNKNOWN_ATTR. In lax mode (strict
|
|
19
|
+
// false) it stays the legacy open policy:
|
|
20
|
+
// NOT an error, NOT a warning. Own-only,
|
|
21
|
+
// so an inherited/overlaid declared attr
|
|
22
|
+
// (validated on its declaring node) is fine.
|
|
23
|
+
// 5. Structural-child placement — FR-033: under strict load a STRUCTURAL
|
|
24
|
+
// (Check 0b) child (field/identity/source/… — not an
|
|
25
|
+
// attr) not admitted by the parent's
|
|
26
|
+
// registered childRules is ERR_CHILD_NOT_
|
|
27
|
+
// ALLOWED (the structural analogue of #4). A
|
|
28
|
+
// no-op under today's wildcard childRules —
|
|
29
|
+
// the rail strict per-subtype rules use in S1.
|
|
16
30
|
//
|
|
17
31
|
// `default` values are NOT auto-applied — A3 is pure validation, not mutation.
|
|
18
32
|
//
|
|
@@ -27,25 +41,32 @@
|
|
|
27
41
|
// Modeled on src/subtype-rules.ts: a recursive walk producing an
|
|
28
42
|
// { errors, warnings } result. All A3 findings are ERRORS; warnings stays [].
|
|
29
43
|
import { ParseError } from "./errors.js";
|
|
44
|
+
import { childRuleMatches } from "./registry.js";
|
|
30
45
|
import { TYPE_FIELD } from "./shared/base-types.js";
|
|
46
|
+
import { ATTR_SUBTYPE_PROPERTIES } from "./core/attr/attr-constants.js";
|
|
31
47
|
import { FIELD_SUBTYPE_ENUM, FIELD_ATTR_VALUES, FIELD_ATTR_COERCE_DEFAULT, FIELD_ATTR_DEFAULT, ENUM_MEMBER_PATTERN, } from "./core/field/field-constants.js";
|
|
32
48
|
import { FIELD_ATTR_DB_COLUMN_TYPE, DB_COLUMN_TYPE_VALUES, DB_COLUMN_TYPE_LEGAL_SUBTYPES, } from "./persistence/db/db-constants.js";
|
|
33
49
|
// ---------------------------------------------------------------------------
|
|
34
50
|
// Public entry point
|
|
35
51
|
// ---------------------------------------------------------------------------
|
|
36
|
-
export function validateAttrSchema(root, registry
|
|
52
|
+
export function validateAttrSchema(root, registry,
|
|
53
|
+
// ADR-0023 — strict load closes the open-attr policy: an own @-attr matching
|
|
54
|
+
// no per-type schema and no commonAttr → ERR_UNKNOWN_ATTR. Defaults false so
|
|
55
|
+
// existing lax callers keep the legacy open policy; the library's own loader
|
|
56
|
+
// (and the conformance runner) load strict.
|
|
57
|
+
strict = false) {
|
|
37
58
|
const errors = [];
|
|
38
59
|
// Tracks (type.subType) pairs for which ERR_PROVIDER_ATTR_CONFLICT has already
|
|
39
60
|
// been emitted. The conflict is a registry-state condition, not a per-node
|
|
40
61
|
// condition — emit it once per (type, subType), not once per node instance.
|
|
41
62
|
const reportedConflicts = new Set();
|
|
42
|
-
walk(root, registry, errors, reportedConflicts);
|
|
63
|
+
walk(root, registry, errors, reportedConflicts, strict);
|
|
43
64
|
return { errors, warnings: [] };
|
|
44
65
|
}
|
|
45
|
-
function walk(node, registry, errors, reportedConflicts) {
|
|
46
|
-
validateNode(node, registry, errors, reportedConflicts);
|
|
66
|
+
function walk(node, registry, errors, reportedConflicts, strict) {
|
|
67
|
+
validateNode(node, registry, errors, reportedConflicts, strict);
|
|
47
68
|
for (const child of node.ownChildren()) {
|
|
48
|
-
walk(child, registry, errors, reportedConflicts);
|
|
69
|
+
walk(child, registry, errors, reportedConflicts, strict);
|
|
49
70
|
}
|
|
50
71
|
}
|
|
51
72
|
/** A node label for error messages, e.g. `origin.aggregate 'weekCount'`. */
|
|
@@ -53,7 +74,7 @@ function nodeLabel(node) {
|
|
|
53
74
|
const head = `${node.type}.${node.subType}`;
|
|
54
75
|
return node.name !== "" ? `${head} '${node.name}'` : head;
|
|
55
76
|
}
|
|
56
|
-
function validateNode(node, registry, errors, reportedConflicts) {
|
|
77
|
+
function validateNode(node, registry, errors, reportedConflicts, strict) {
|
|
57
78
|
// Build the effective schema in a single pass: per-type attrs win on name
|
|
58
79
|
// collision; common attrs fill in for unclaimed names. Surface common-vs-per-type
|
|
59
80
|
// collisions in the same pass — a name in both lists means a provider tried to
|
|
@@ -75,6 +96,62 @@ function validateNode(node, registry, errors, reportedConflicts) {
|
|
|
75
96
|
}
|
|
76
97
|
byName.set(ca.name, ca);
|
|
77
98
|
}
|
|
99
|
+
// --- Check 0 (ADR-0023): strict-load undeclared-attr rejection ---
|
|
100
|
+
//
|
|
101
|
+
// Runs BEFORE the byName.size early-return: a node type with no per-type
|
|
102
|
+
// schema and no common attrs (byName empty) must still reject an authored
|
|
103
|
+
// @-attr under strict. Own-attrs only — an inherited/overlaid declared attr
|
|
104
|
+
// was validated on its declaring node and never appears in ownMetaAttrs().
|
|
105
|
+
// An own attr matching neither a per-type schema entry nor a commonAttr is
|
|
106
|
+
// a made-up attribute → ERR_UNKNOWN_ATTR (closing the open policy). In lax
|
|
107
|
+
// mode this stays a no-op (legacy open-attr behavior).
|
|
108
|
+
if (strict) {
|
|
109
|
+
for (const inst of node.ownMetaAttrs()) {
|
|
110
|
+
// attr.properties is a first-class, registered, canonical attr subtype
|
|
111
|
+
// whose designed purpose is an arbitrary-named structural property bag
|
|
112
|
+
// (its NAME is intentionally not declared by any per-type schema). It is
|
|
113
|
+
// sanctioned vocabulary, not a made-up attribute, so strict-attr exempts
|
|
114
|
+
// a materialized properties-attr from ERR_UNKNOWN_ATTR. (A typo'd plain
|
|
115
|
+
// @-attr still fails — only the `properties` subtype is exempt.)
|
|
116
|
+
if (inst.subType === ATTR_SUBTYPE_PROPERTIES)
|
|
117
|
+
continue;
|
|
118
|
+
if (!byName.has(inst.name)) {
|
|
119
|
+
errors.push(new ParseError(`Unknown attribute '@${inst.name}' on ${nodeLabel(node)} — ` +
|
|
120
|
+
`not declared by any registered provider for ${typeKey}`, { code: "ERR_UNKNOWN_ATTR", source: node.source }));
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
// --- Check 0b (FR-033): strict-load structural-child placement ---
|
|
125
|
+
//
|
|
126
|
+
// The structural analogue of Check 0. A STRUCTURAL child (field/identity/
|
|
127
|
+
// source/validator/… — attrs never appear in ownChildren()) must be admitted
|
|
128
|
+
// by the parent's registered childRules under the same wildcard match
|
|
129
|
+
// semantics used everywhere (childType/childSubType/childName may be "*", and
|
|
130
|
+
// childSubType may be a list). A child the rules do not admit → ERR_CHILD_NOT_
|
|
131
|
+
// ALLOWED. A NO-OP today: every parent carries wildcard structural childRules
|
|
132
|
+
// (e.g. field.* / validator.*) that admit everything — the rail strict
|
|
133
|
+
// per-subtype rules will use in S1. Lax mode keeps the legacy open policy.
|
|
134
|
+
//
|
|
135
|
+
// An UNREGISTERED parent (no def) cannot be judged here (ERR_UNKNOWN_TYPE /
|
|
136
|
+
// ERR_UNKNOWN_SUBTYPE is reported elsewhere); skip so we never double-report.
|
|
137
|
+
if (strict) {
|
|
138
|
+
const parentDef = registry.find(node.type, node.subType);
|
|
139
|
+
if (parentDef !== undefined) {
|
|
140
|
+
const rules = parentDef.childRules;
|
|
141
|
+
for (const child of node.ownChildren()) {
|
|
142
|
+
const admitted = rules.some((r) => childRuleMatches(r, {
|
|
143
|
+
type: child.type,
|
|
144
|
+
subType: child.subType,
|
|
145
|
+
name: child.name,
|
|
146
|
+
}));
|
|
147
|
+
if (!admitted) {
|
|
148
|
+
errors.push(new ParseError(`Child ${nodeLabel(child)} is not allowed under ${nodeLabel(node)} — ` +
|
|
149
|
+
`no registered child rule for ${typeKey} admits ` +
|
|
150
|
+
`(type='${child.type}', subType='${child.subType}', name='${child.name}')`, { code: "ERR_CHILD_NOT_ALLOWED", source: node.source }));
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
78
155
|
if (byName.size === 0)
|
|
79
156
|
return;
|
|
80
157
|
// --- Check 1: required attrs present ---
|
|
@@ -110,12 +187,20 @@ function validateNode(node, registry, errors, reportedConflicts) {
|
|
|
110
187
|
continue; // type wrong → skip allowedValues
|
|
111
188
|
}
|
|
112
189
|
}
|
|
113
|
-
// Check 3: allowedValues membership
|
|
190
|
+
// Check 3: allowedValues membership. For an isArray attr the value is an array,
|
|
191
|
+
// so each ELEMENT must be a member (not the array as a whole); a scalar attr
|
|
192
|
+
// checks the value directly.
|
|
114
193
|
if (spec.allowedValues !== undefined && spec.allowedValues.length > 0) {
|
|
115
|
-
|
|
194
|
+
const allowed = spec.allowedValues;
|
|
195
|
+
const offenders = Array.isArray(value)
|
|
196
|
+
? value.filter((v) => !allowed.includes(v))
|
|
197
|
+
: allowed.includes(value)
|
|
198
|
+
? []
|
|
199
|
+
: [value];
|
|
200
|
+
for (const bad of offenders) {
|
|
116
201
|
errors.push(new ParseError(`${nodeLabel(node)} attribute '@${inst.name}' has value ` +
|
|
117
|
-
`'${String(
|
|
118
|
-
`${
|
|
202
|
+
`'${String(bad)}' which is not one of the allowed values: ` +
|
|
203
|
+
`${allowed.map((v) => String(v)).join(", ")}`, { code: "ERR_BAD_ATTR_VALUE", source: node.source }));
|
|
119
204
|
}
|
|
120
205
|
}
|
|
121
206
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attr-schema-validate.js","sourceRoot":"","sources":["../src/attr-schema-validate.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,EAAE;AACF,+EAA+E;AAC/E,+DAA+D;AAC/D,sEAAsE;AACtE,oCAAoC;AACpC,EAAE;AACF,+EAA+E;AAC/E,yEAAyE;AACzE,iFAAiF;AACjF,0EAA0E;AAC1E,8EAA8E;AAC9E,sEAAsE;AACtE,mFAAmF;AACnF,iFAAiF;AACjF,EAAE;AACF,+EAA+E;AAC/E,EAAE;AACF,4EAA4E;AAC5E,yEAAyE;AACzE,4EAA4E;AAC5E,yEAAyE;AACzE,0EAA0E;AAC1E,wEAAwE;AACxE,uBAAuB;AACvB,EAAE;AACF,iEAAiE;AACjE,8EAA8E;AAG9E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,6BAA6B,GAE9B,MAAM,kCAAkC,CAAC;AAO1C,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,MAAM,UAAU,kBAAkB,CAChC,IAAc,EACd,QAAsB;
|
|
1
|
+
{"version":3,"file":"attr-schema-validate.js","sourceRoot":"","sources":["../src/attr-schema-validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { AttrSchema, ChildRule, TypeRegistry } from "./registry.js";
|
|
2
|
+
/** The merged, effective constraints for one `type.subType`. */
|
|
3
|
+
export interface EffectiveConstraints {
|
|
4
|
+
/** Effective structural children (own ∪ inherited ∪ child-side `parents` claims). */
|
|
5
|
+
children: ChildRule[];
|
|
6
|
+
/** Effective parents (own `parents` ∪ inherited). */
|
|
7
|
+
parents: string[];
|
|
8
|
+
/** Effective attributes (own ∪ inherited). */
|
|
9
|
+
attributes: AttrSchema[];
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Compute the effective constraint set for every registered `type.subType`.
|
|
13
|
+
*
|
|
14
|
+
* Returns a Map keyed by `"type.subType"`, with keys in sorted order (Map
|
|
15
|
+
* preserves insertion order; we insert sorted) so the result is deterministic.
|
|
16
|
+
*/
|
|
17
|
+
export declare function mergeConstraints(registry: TypeRegistry): Map<string, EffectiveConstraints>;
|
|
18
|
+
//# sourceMappingURL=constraint-merge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constraint-merge.d.ts","sourceRoot":"","sources":["../src/constraint-merge.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGzE,gEAAgE;AAChE,MAAM,WAAW,oBAAoB;IACnC,qFAAqF;IACrF,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,qDAAqD;IACrD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,8CAA8C;IAC9C,UAAU,EAAE,UAAU,EAAE,CAAC;CAC1B;AAyDD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,YAAY,GACrB,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CA6EnC"}
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constraint-merge.js","sourceRoot":"","sources":["../src/constraint-merge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { TypeRegistry } from "./registry.js";
|
|
2
|
+
import { MetaModelError } from "./errors.js";
|
|
3
|
+
import type { EffectiveConstraints } from "./constraint-merge.js";
|
|
4
|
+
/** Run the six contradiction checks; one MetaModelError per contradiction. */
|
|
5
|
+
export declare function validateConstraints(effective: Map<string, EffectiveConstraints>, registry: TypeRegistry): MetaModelError[];
|
|
6
|
+
//# sourceMappingURL=constraint-validate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constraint-validate.d.ts","sourceRoot":"","sources":["../src/constraint-validate.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAGV,YAAY,EAEb,MAAM,eAAe,CAAC;AAIvB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAIlE,8EAA8E;AAC9E,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAC5C,QAAQ,EAAE,YAAY,GACrB,cAAc,EAAE,CAkDlB"}
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
// FR-033 — the metamodel contradiction validator (spec §3.1, the six checks).
|
|
2
|
+
//
|
|
3
|
+
// `validateConstraints(effective, registry)` runs the six contradiction checks over
|
|
4
|
+
// the merged constraint graph and returns one MetaModelError per contradiction
|
|
5
|
+
// (code ERR_INVALID_METAMODEL_CONSTRAINT). It is the cross-validation pass: the merge
|
|
6
|
+
// (constraint-merge.ts) is purely additive, so this pass is the ONLY place a bad
|
|
7
|
+
// provider set is rejected. Wired into composeRegistry's seal-time bootstrap so a
|
|
8
|
+
// contradictory library provider set fails fast (mirrors ADR-0023 strictness).
|
|
9
|
+
//
|
|
10
|
+
// The six checks (spec §3.1):
|
|
11
|
+
// 1. Dangling ref — a parents/children rule references an unregistered type.subType.
|
|
12
|
+
// 2. Unsatisfiable req. — a required child (min>=1) whose concrete type.subType is
|
|
13
|
+
// not admitted under that parent (after merge).
|
|
14
|
+
// 3. Bad cardinality — min>max (max non-null), max:0 with min>=1, or min<0.
|
|
15
|
+
// 4. Closed-set clash — child C claims parent P via `parents`, but P's OWN children
|
|
16
|
+
// is a CLOSED set (no `*` wildcard) that does not admit C.
|
|
17
|
+
// 5. Required-child cycle— following required (min>=1) child edges forms a cycle.
|
|
18
|
+
// 6. Conflicting attr — same attr name contributed twice (across providers or the
|
|
19
|
+
// extends chain) with a conflicting valueType/required/default.
|
|
20
|
+
import { childRuleMatches } from "./registry.js";
|
|
21
|
+
import { CHILD_RULE_WILDCARD } from "./shared/structural.js";
|
|
22
|
+
import { SUBTYPE_BASE } from "./shared/base-types.js";
|
|
23
|
+
import { MetaModelError } from "./errors.js";
|
|
24
|
+
const CODE = "ERR_INVALID_METAMODEL_CONSTRAINT";
|
|
25
|
+
/** Run the six contradiction checks; one MetaModelError per contradiction. */
|
|
26
|
+
export function validateConstraints(effective, registry) {
|
|
27
|
+
const errors = [];
|
|
28
|
+
const registered = new Set(registry.allTypes().map((id) => `${id.type}.${id.subType}`));
|
|
29
|
+
const sortedKeys = [...effective.keys()].sort();
|
|
30
|
+
for (const k of sortedKeys) {
|
|
31
|
+
const eff = effective.get(k);
|
|
32
|
+
// --- #1 dangling ref (children) + #3 bad cardinality.
|
|
33
|
+
for (const rule of eff.children) {
|
|
34
|
+
checkDangling(k, rule, registered, errors);
|
|
35
|
+
checkCardinality(k, rule, errors);
|
|
36
|
+
}
|
|
37
|
+
// --- #1 dangling ref (parents).
|
|
38
|
+
for (const parent of eff.parents) {
|
|
39
|
+
if (!registered.has(parent)) {
|
|
40
|
+
errors.push(err(`dangling: type "${k}" claims parent "${parent}", which is not registered.`));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// --- #2 unsatisfiable required child.
|
|
44
|
+
for (const rule of eff.children) {
|
|
45
|
+
checkUnsatisfiable(k, rule, registered, errors);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// --- #4 closed-set clash: a child's `parents` claim vs the parent's OWN children.
|
|
49
|
+
for (const id of registry.allTypes()) {
|
|
50
|
+
const childKey = `${id.type}.${id.subType}`;
|
|
51
|
+
const def = registry.find(id.type, id.subType);
|
|
52
|
+
for (const parent of def?.parents ?? []) {
|
|
53
|
+
checkClosedSetClash(childKey, id.type, id.subType, parent, registry, errors);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
// --- #5 required-child cycle.
|
|
57
|
+
checkRequiredCycles(effective, sortedKeys, errors);
|
|
58
|
+
// --- #6 conflicting attr redefinition (across the extends chain + providers).
|
|
59
|
+
for (const id of registry.allTypes()) {
|
|
60
|
+
checkAttrConflicts(id.type, id.subType, registry, registered, errors);
|
|
61
|
+
}
|
|
62
|
+
return errors;
|
|
63
|
+
}
|
|
64
|
+
function err(detail) {
|
|
65
|
+
return new MetaModelError(`Invalid metamodel constraint — ${detail}`, { code: CODE });
|
|
66
|
+
}
|
|
67
|
+
/** #1 — a concrete (non-wildcard) child rule whose type.subType is unregistered. */
|
|
68
|
+
function checkDangling(parentKey, rule, registered, errors) {
|
|
69
|
+
if (rule.childType === CHILD_RULE_WILDCARD)
|
|
70
|
+
return; // a wildcard names nothing
|
|
71
|
+
const subTypes = subTypesOf(rule);
|
|
72
|
+
for (const sub of subTypes) {
|
|
73
|
+
if (sub === CHILD_RULE_WILDCARD)
|
|
74
|
+
continue; // wildcard subtype names nothing
|
|
75
|
+
const refKey = `${rule.childType}.${sub}`;
|
|
76
|
+
if (!registered.has(refKey)) {
|
|
77
|
+
errors.push(err(`dangling: child rule on "${parentKey}" references "${refKey}", which is not registered.`));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/** #3 — min<0, min>max (max non-null), or max:0 with min>=1. */
|
|
82
|
+
function checkCardinality(parentKey, rule, errors) {
|
|
83
|
+
const min = rule.min ?? 0;
|
|
84
|
+
const max = rule.max ?? null;
|
|
85
|
+
const label = describeRule(rule);
|
|
86
|
+
if (min < 0) {
|
|
87
|
+
errors.push(err(`bad cardinality on "${parentKey}" (${label}): min ${min} < 0.`));
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
if (max !== null && max < min) {
|
|
91
|
+
errors.push(err(`bad cardinality on "${parentKey}" (${label}): min ${min} > max ${max}.`));
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (max === 0 && min >= 1) {
|
|
95
|
+
errors.push(err(`bad cardinality on "${parentKey}" (${label}): max 0 with min ${min} >= 1.`));
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* #2 — a required child rule (min>=1) naming concrete subtype(s) where NONE of the
|
|
100
|
+
* named type.subTypes is admitted under this parent (after merge). A required rule
|
|
101
|
+
* with a wildcard type is always satisfiable; a required rule naming a concrete
|
|
102
|
+
* subtype that is registered AND covered by an admitting rule (the rule itself, or
|
|
103
|
+
* another rule) is satisfiable. Unsatisfiable iff the required child cannot be placed.
|
|
104
|
+
*/
|
|
105
|
+
function checkUnsatisfiable(parentKey, rule, registered, errors) {
|
|
106
|
+
const min = rule.min ?? 0;
|
|
107
|
+
if (min < 1)
|
|
108
|
+
return; // optional → nothing to satisfy
|
|
109
|
+
if (rule.childType === CHILD_RULE_WILDCARD)
|
|
110
|
+
return; // any child satisfies it
|
|
111
|
+
// A required rule must name at least one concrete, REGISTERED subtype that some
|
|
112
|
+
// rule (incl. itself) admits. If none of its named subtypes is registered, the
|
|
113
|
+
// required child can never be instantiated → unsatisfiable.
|
|
114
|
+
const subTypes = subTypesOf(rule);
|
|
115
|
+
const concrete = subTypes.filter((s) => s !== CHILD_RULE_WILDCARD);
|
|
116
|
+
if (concrete.length === 0)
|
|
117
|
+
return; // required of `type.*` — any registered subtype satisfies
|
|
118
|
+
const anyRegistered = concrete.some((s) => registered.has(`${rule.childType}.${s}`));
|
|
119
|
+
if (!anyRegistered) {
|
|
120
|
+
errors.push(err(`unsatisfiable required child on "${parentKey}" (${describeRule(rule)}): ` +
|
|
121
|
+
`min ${min} but no named subtype of "${rule.childType}" is registered.`));
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* #4 — child C declares parent P via `parents`, but P's OWN children is a CLOSED set
|
|
126
|
+
* (no `*` wildcard rule) that does not admit C. An OPEN parent (any `*` rule) admits
|
|
127
|
+
* anything → no clash.
|
|
128
|
+
*/
|
|
129
|
+
function checkClosedSetClash(childKey, childType, childSubType, parentKey, registry, errors) {
|
|
130
|
+
const parentDef = lookup(parentKey, registry);
|
|
131
|
+
if (parentDef === undefined)
|
|
132
|
+
return; // dangling parent — reported by #1
|
|
133
|
+
const ownRules = parentDef.childRules;
|
|
134
|
+
const isOpen = ownRules.some((r) => isWildcardRule(r));
|
|
135
|
+
if (isOpen)
|
|
136
|
+
return; // open parent admits anything
|
|
137
|
+
const admits = ownRules.some((r) => childRuleMatches(r, { type: childType, subType: childSubType, name: CHILD_RULE_WILDCARD }));
|
|
138
|
+
if (!admits) {
|
|
139
|
+
errors.push(err(`closed-set clash: child "${childKey}" claims parent "${parentKey}", but ` +
|
|
140
|
+
`"${parentKey}"'s children is a closed set (no wildcard) that does not admit it.`));
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* #5 — required-child cycle: following required (min>=1) child edges forms a cycle.
|
|
145
|
+
* An edge A→B exists when A has a required rule naming a concrete subtype B. A cycle
|
|
146
|
+
* with no non-required escape can never bottom out (A requires B requires A).
|
|
147
|
+
*/
|
|
148
|
+
function checkRequiredCycles(effective, sortedKeys, errors) {
|
|
149
|
+
// Build the required-edge adjacency: A → each concrete required child subtype.
|
|
150
|
+
const edges = new Map();
|
|
151
|
+
for (const k of sortedKeys) {
|
|
152
|
+
const targets = [];
|
|
153
|
+
for (const rule of effective.get(k).children) {
|
|
154
|
+
if ((rule.min ?? 0) < 1)
|
|
155
|
+
continue;
|
|
156
|
+
if (rule.childType === CHILD_RULE_WILDCARD)
|
|
157
|
+
continue;
|
|
158
|
+
for (const sub of subTypesOf(rule)) {
|
|
159
|
+
if (sub === CHILD_RULE_WILDCARD)
|
|
160
|
+
continue;
|
|
161
|
+
targets.push(`${rule.childType}.${sub}`);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
edges.set(k, targets);
|
|
165
|
+
}
|
|
166
|
+
// DFS for back-edges; report each distinct cycle once (keyed by its sorted node set).
|
|
167
|
+
const WHITE = 0, GRAY = 1, BLACK = 2;
|
|
168
|
+
const color = new Map();
|
|
169
|
+
const reported = new Set();
|
|
170
|
+
const stack = [];
|
|
171
|
+
const visit = (node) => {
|
|
172
|
+
color.set(node, GRAY);
|
|
173
|
+
stack.push(node);
|
|
174
|
+
for (const next of edges.get(node) ?? []) {
|
|
175
|
+
if (!edges.has(next))
|
|
176
|
+
continue; // unregistered target — #1/#2 handles it
|
|
177
|
+
const c = color.get(next) ?? WHITE;
|
|
178
|
+
if (c === GRAY) {
|
|
179
|
+
// Back-edge → cycle. Extract the cycle slice from the stack.
|
|
180
|
+
const idx = stack.indexOf(next);
|
|
181
|
+
const cycle = stack.slice(idx);
|
|
182
|
+
const sig = [...cycle].sort().join(",");
|
|
183
|
+
if (!reported.has(sig)) {
|
|
184
|
+
reported.add(sig);
|
|
185
|
+
errors.push(err(`required-child cycle that cannot bottom out: ${cycle.concat(next).join(" -> ")}.`));
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
else if (c === WHITE) {
|
|
189
|
+
visit(next);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
stack.pop();
|
|
193
|
+
color.set(node, BLACK);
|
|
194
|
+
};
|
|
195
|
+
for (const k of sortedKeys) {
|
|
196
|
+
if ((color.get(k) ?? WHITE) === WHITE)
|
|
197
|
+
visit(k);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* #6 — the same attr name contributed twice (across providers, or down the extends
|
|
202
|
+
* chain) with a CONFLICTING valueType / required / default. Walks each type's own
|
|
203
|
+
* attrs + its derived super (`<type>.base`) chain and compares same-name pairs.
|
|
204
|
+
*/
|
|
205
|
+
function checkAttrConflicts(type, subType, registry, registered, errors) {
|
|
206
|
+
// Collect (attr, source-key) along the own → super chain.
|
|
207
|
+
const seen = new Map();
|
|
208
|
+
const reported = new Set();
|
|
209
|
+
let curType = type;
|
|
210
|
+
let curSub = subType;
|
|
211
|
+
const guard = new Set();
|
|
212
|
+
while (curType !== undefined && curSub !== undefined) {
|
|
213
|
+
const k = `${curType}.${curSub}`;
|
|
214
|
+
if (guard.has(k))
|
|
215
|
+
break;
|
|
216
|
+
guard.add(k);
|
|
217
|
+
const def = registry.find(curType, curSub);
|
|
218
|
+
if (def !== undefined) {
|
|
219
|
+
for (const attr of def.attributes) {
|
|
220
|
+
const prior = seen.get(attr.name);
|
|
221
|
+
if (prior === undefined) {
|
|
222
|
+
seen.set(attr.name, { attr, from: k });
|
|
223
|
+
}
|
|
224
|
+
else if (attrsConflict(prior.attr, attr)) {
|
|
225
|
+
const sig = `${attr.name}|${prior.from}|${k}`;
|
|
226
|
+
if (!reported.has(sig)) {
|
|
227
|
+
reported.add(sig);
|
|
228
|
+
errors.push(err(`conflicting attr redefinition: attr "${attr.name}" is declared on ` +
|
|
229
|
+
`"${prior.from}" and "${k}" with a conflicting valueType/required/default.`));
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
// Advance up the derived super chain (`<type>.base`).
|
|
235
|
+
if (curSub === SUBTYPE_BASE)
|
|
236
|
+
break;
|
|
237
|
+
const baseKey = `${curType}.${SUBTYPE_BASE}`;
|
|
238
|
+
if (!registered.has(baseKey))
|
|
239
|
+
break;
|
|
240
|
+
curSub = SUBTYPE_BASE;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
/** Two same-name attrs conflict iff valueType, required, or default differ. */
|
|
244
|
+
function attrsConflict(a, b) {
|
|
245
|
+
return (a.valueType !== b.valueType ||
|
|
246
|
+
a.required !== b.required ||
|
|
247
|
+
!Object.is(a.default, b.default));
|
|
248
|
+
}
|
|
249
|
+
// --- helpers ---------------------------------------------------------------
|
|
250
|
+
function subTypesOf(rule) {
|
|
251
|
+
const s = rule.childSubType;
|
|
252
|
+
return typeof s === "string" ? [s] : [...s];
|
|
253
|
+
}
|
|
254
|
+
function isWildcardRule(rule) {
|
|
255
|
+
// An OPEN hook is a TYPE-wildcard rule (`*.*` / `*` of any subType) — it admits a
|
|
256
|
+
// child of any type, so a new type can land under this parent. A `field.*` rule is
|
|
257
|
+
// NOT open in this sense: it admits any field SUBTYPE but no other type, so a
|
|
258
|
+
// `policy` child still clashes. Per spec §3.1 #4, the open escape is a `*` (type)
|
|
259
|
+
// wildcard rule.
|
|
260
|
+
return rule.childType === CHILD_RULE_WILDCARD;
|
|
261
|
+
}
|
|
262
|
+
function describeRule(rule) {
|
|
263
|
+
const sub = Array.isArray(rule.childSubType)
|
|
264
|
+
? `[${rule.childSubType.join(",")}]`
|
|
265
|
+
: rule.childSubType;
|
|
266
|
+
return `${rule.childType}.${sub} ${rule.childName}`;
|
|
267
|
+
}
|
|
268
|
+
function lookup(key, registry) {
|
|
269
|
+
const dot = key.indexOf(".");
|
|
270
|
+
if (dot < 0)
|
|
271
|
+
return undefined;
|
|
272
|
+
return registry.find(key.slice(0, dot), key.slice(dot + 1));
|
|
273
|
+
}
|
|
274
|
+
//# sourceMappingURL=constraint-validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constraint-validate.js","sourceRoot":"","sources":["../src/constraint-validate.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,EAAE;AACF,oFAAoF;AACpF,+EAA+E;AAC/E,sFAAsF;AACtF,iFAAiF;AACjF,kFAAkF;AAClF,+EAA+E;AAC/E,EAAE;AACF,8BAA8B;AAC9B,6FAA6F;AAC7F,sFAAsF;AACtF,2EAA2E;AAC3E,kFAAkF;AAClF,yFAAyF;AACzF,sFAAsF;AACtF,oFAAoF;AACpF,uFAAuF;AACvF,2FAA2F;AAQ3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,IAAI,GAAG,kCAA2C,CAAC;AAEzD,8EAA8E;AAC9E,MAAM,UAAU,mBAAmB,CACjC,SAA4C,EAC5C,QAAsB;IAEtB,MAAM,MAAM,GAAqB,EAAE,CAAC;IACpC,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAC5D,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAEhD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;QAE9B,uDAAuD;QACvD,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YAChC,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;YAC3C,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC;QAED,iCAAiC;QACjC,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5B,MAAM,CAAC,IAAI,CACT,GAAG,CAAC,mBAAmB,CAAC,oBAAoB,MAAM,6BAA6B,CAAC,CACjF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,uCAAuC;QACvC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YAChC,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,mFAAmF;IACnF,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;QAC/C,KAAK,MAAM,MAAM,IAAI,GAAG,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC;YACxC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,mBAAmB,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAEnD,+EAA+E;IAC/E,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;QACrC,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,GAAG,CAAC,MAAc;IACzB,OAAO,IAAI,cAAc,CAAC,kCAAkC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACxF,CAAC;AAED,oFAAoF;AACpF,SAAS,aAAa,CACpB,SAAiB,EACjB,IAAe,EACf,UAA+B,EAC/B,MAAwB;IAExB,IAAI,IAAI,CAAC,SAAS,KAAK,mBAAmB;QAAE,OAAO,CAAC,2BAA2B;IAC/E,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAClC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,GAAG,KAAK,mBAAmB;YAAE,SAAS,CAAC,iCAAiC;QAC5E,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,GAAG,EAAE,CAAC;QAC1C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CACT,GAAG,CACD,4BAA4B,SAAS,iBAAiB,MAAM,6BAA6B,CAC1F,CACF,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,gEAAgE;AAChE,SAAS,gBAAgB,CACvB,SAAiB,EACjB,IAAe,EACf,MAAwB;IAExB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC;IAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,uBAAuB,SAAS,MAAM,KAAK,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC;QAClF,OAAO;IACT,CAAC;IACD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CACT,GAAG,CAAC,uBAAuB,SAAS,MAAM,KAAK,UAAU,GAAG,UAAU,GAAG,GAAG,CAAC,CAC9E,CAAC;QACF,OAAO;IACT,CAAC;IACD,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CACT,GAAG,CAAC,uBAAuB,SAAS,MAAM,KAAK,qBAAqB,GAAG,QAAQ,CAAC,CACjF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CACzB,SAAiB,EACjB,IAAe,EACf,UAA+B,EAC/B,MAAwB;IAExB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1B,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,CAAC,gCAAgC;IACrD,IAAI,IAAI,CAAC,SAAS,KAAK,mBAAmB;QAAE,OAAO,CAAC,yBAAyB;IAE7E,gFAAgF;IAChF,+EAA+E;IAC/E,4DAA4D;IAC5D,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,mBAAmB,CAAC,CAAC;IACnE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,0DAA0D;IAE7F,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACrF,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CACT,GAAG,CACD,oCAAoC,SAAS,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK;YACxE,OAAO,GAAG,6BAA6B,IAAI,CAAC,SAAS,kBAAkB,CAC1E,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAC1B,QAAgB,EAChB,SAAiB,EACjB,YAAoB,EACpB,SAAiB,EACjB,QAAsB,EACtB,MAAwB;IAExB,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC9C,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,CAAC,mCAAmC;IAExE,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC;IACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,MAAM;QAAE,OAAO,CAAC,8BAA8B;IAElD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACjC,gBAAgB,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAC3F,CAAC;IACF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CACT,GAAG,CACD,4BAA4B,QAAQ,oBAAoB,SAAS,SAAS;YACxE,IAAI,SAAS,oEAAoE,CACpF,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAC1B,SAA4C,EAC5C,UAAoB,EACpB,MAAwB;IAExB,+EAA+E;IAC/E,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,QAAQ,EAAE,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC;gBAAE,SAAS;YAClC,IAAI,IAAI,CAAC,SAAS,KAAK,mBAAmB;gBAAE,SAAS;YACrD,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,IAAI,GAAG,KAAK,mBAAmB;oBAAE,SAAS;gBAC1C,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,GAAG,EAAE,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACxB,CAAC;IAED,sFAAsF;IACtF,MAAM,KAAK,GAAG,CAAC,EACb,IAAI,GAAG,CAAC,EACR,KAAK,GAAG,CAAC,CAAC;IACZ,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,MAAM,KAAK,GAAG,CAAC,IAAY,EAAQ,EAAE;QACnC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS,CAAC,yCAAyC;YACzE,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;YACnC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACf,6DAA6D;gBAC7D,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC/B,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACxC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAClB,MAAM,CAAC,IAAI,CACT,GAAG,CACD,gDAAgD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CACnF,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC,CAAC;YACd,CAAC;QACH,CAAC;QACD,KAAK,CAAC,GAAG,EAAE,CAAC;QACZ,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK;YAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CACzB,IAAY,EACZ,OAAe,EACf,QAAsB,EACtB,UAA+B,EAC/B,MAAwB;IAExB,0DAA0D;IAC1D,MAAM,IAAI,GAAG,IAAI,GAAG,EAA8C,CAAC;IACnE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnC,IAAI,OAAO,GAAuB,IAAI,CAAC;IACvC,IAAI,MAAM,GAAuB,OAAO,CAAC;IACzC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,OAAO,OAAO,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACrD,MAAM,CAAC,GAAG,GAAG,OAAO,IAAI,MAAM,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,MAAM;QACxB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACb,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gBAClC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;gBACzC,CAAC;qBAAM,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;oBAC3C,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;oBAC9C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;wBACvB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBAClB,MAAM,CAAC,IAAI,CACT,GAAG,CACD,wCAAwC,IAAI,CAAC,IAAI,mBAAmB;4BAClE,IAAI,KAAK,CAAC,IAAI,UAAU,CAAC,kDAAkD,CAC9E,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,sDAAsD;QACtD,IAAI,MAAM,KAAK,YAAY;YAAE,MAAM;QACnC,MAAM,OAAO,GAAG,GAAG,OAAO,IAAI,YAAY,EAAE,CAAC;QAC7C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,MAAM;QACpC,MAAM,GAAG,YAAY,CAAC;IACxB,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,SAAS,aAAa,CAAC,CAAa,EAAE,CAAa;IACjD,OAAO,CACL,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS;QAC3B,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ;QACzB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CACjC,CAAC;AACJ,CAAC;AAED,8EAA8E;AAE9E,SAAS,UAAU,CAAC,IAAe;IACjC,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;IAC5B,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,cAAc,CAAC,IAAe;IACrC,kFAAkF;IAClF,mFAAmF;IACnF,8EAA8E;IAC9E,kFAAkF;IAClF,iBAAiB;IACjB,OAAO,IAAI,CAAC,SAAS,KAAK,mBAAmB,CAAC;AAChD,CAAC;AAED,SAAS,YAAY,CAAC,IAAe;IACnC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;QAC1C,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;QACpC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;IACtB,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;AACtD,CAAC;AAED,SAAS,MAAM,CAAC,GAAW,EAAE,QAAsB;IACjD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9B,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC"}
|
|
@@ -5,8 +5,18 @@ export declare const ATTR_SUBTYPE_DOUBLE = "double";
|
|
|
5
5
|
export declare const ATTR_SUBTYPE_BOOLEAN = "boolean";
|
|
6
6
|
export declare const ATTR_SUBTYPE_CLASS = "class";
|
|
7
7
|
export declare const ATTR_SUBTYPE_PROPERTIES = "properties";
|
|
8
|
-
export declare const ATTR_SUBTYPE_STRINGARRAY = "stringarray";
|
|
9
8
|
export declare const ATTR_SUBTYPE_FILTER = "filter";
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
/**
|
|
10
|
+
* The retired `stringarray` array attr subtype. It is NO LONGER a registered
|
|
11
|
+
* `(attr, subType)` — array-ness is modeled as a `string` attr with the
|
|
12
|
+
* orthogonal `isArray` flag (matching Java's `StringAttribute + @isArray`), so
|
|
13
|
+
* `stringarray` never appears in the registry manifest. The constant survives
|
|
14
|
+
* ONLY as the key into the attr-class-map for the array-coercion class
|
|
15
|
+
* (`StringArrayAttr`, the bare-string → one-element-array coercion), which the
|
|
16
|
+
* loader resolves for any `isArray`-flagged attr. It is intentionally NOT in
|
|
17
|
+
* `ATTR_SUBTYPES`.
|
|
18
|
+
*/
|
|
19
|
+
export declare const ATTR_SUBTYPE_STRINGARRAY = "stringarray";
|
|
20
|
+
export declare const ATTR_SUBTYPES: readonly ["base", "string", "int", "long", "double", "boolean", "class", "properties", "filter"];
|
|
21
|
+
export type AttrSubType = (typeof ATTR_SUBTYPES)[number] | typeof ATTR_SUBTYPE_STRINGARRAY;
|
|
12
22
|
//# sourceMappingURL=attr-constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attr-constants.d.ts","sourceRoot":"","sources":["../../../src/core/attr/attr-constants.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AACtC,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAC9C,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAC1C,eAAO,MAAM,uBAAuB,eAAe,CAAC;AACpD,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"attr-constants.d.ts","sourceRoot":"","sources":["../../../src/core/attr/attr-constants.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AACtC,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAC5C,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAC9C,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAC1C,eAAO,MAAM,uBAAuB,eAAe,CAAC;AACpD,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAE5C;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB,gBAAgB,CAAC;AAEtD,eAAO,MAAM,aAAa,kGAUhB,CAAC;AACX,MAAM,MAAM,WAAW,GACnB,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,GAC9B,OAAO,wBAAwB,CAAC"}
|
|
@@ -10,8 +10,18 @@ export const ATTR_SUBTYPE_DOUBLE = "double";
|
|
|
10
10
|
export const ATTR_SUBTYPE_BOOLEAN = "boolean";
|
|
11
11
|
export const ATTR_SUBTYPE_CLASS = "class";
|
|
12
12
|
export const ATTR_SUBTYPE_PROPERTIES = "properties";
|
|
13
|
-
export const ATTR_SUBTYPE_STRINGARRAY = "stringarray";
|
|
14
13
|
export const ATTR_SUBTYPE_FILTER = "filter";
|
|
14
|
+
/**
|
|
15
|
+
* The retired `stringarray` array attr subtype. It is NO LONGER a registered
|
|
16
|
+
* `(attr, subType)` — array-ness is modeled as a `string` attr with the
|
|
17
|
+
* orthogonal `isArray` flag (matching Java's `StringAttribute + @isArray`), so
|
|
18
|
+
* `stringarray` never appears in the registry manifest. The constant survives
|
|
19
|
+
* ONLY as the key into the attr-class-map for the array-coercion class
|
|
20
|
+
* (`StringArrayAttr`, the bare-string → one-element-array coercion), which the
|
|
21
|
+
* loader resolves for any `isArray`-flagged attr. It is intentionally NOT in
|
|
22
|
+
* `ATTR_SUBTYPES`.
|
|
23
|
+
*/
|
|
24
|
+
export const ATTR_SUBTYPE_STRINGARRAY = "stringarray";
|
|
15
25
|
export const ATTR_SUBTYPES = [
|
|
16
26
|
SUBTYPE_BASE,
|
|
17
27
|
ATTR_SUBTYPE_STRING,
|
|
@@ -21,7 +31,6 @@ export const ATTR_SUBTYPES = [
|
|
|
21
31
|
ATTR_SUBTYPE_BOOLEAN,
|
|
22
32
|
ATTR_SUBTYPE_CLASS,
|
|
23
33
|
ATTR_SUBTYPE_PROPERTIES,
|
|
24
|
-
ATTR_SUBTYPE_STRINGARRAY,
|
|
25
34
|
ATTR_SUBTYPE_FILTER,
|
|
26
35
|
];
|
|
27
36
|
//# sourceMappingURL=attr-constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attr-constants.js","sourceRoot":"","sources":["../../../src/core/attr/attr-constants.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC;AAC5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AACtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACxC,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC;AAC5C,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAC;AAC9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAC1C,MAAM,CAAC,MAAM,uBAAuB,GAAG,YAAY,CAAC;AACpD,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"attr-constants.js","sourceRoot":"","sources":["../../../src/core/attr/attr-constants.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC;AAC5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AACtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACxC,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC;AAC5C,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAC;AAC9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAC1C,MAAM,CAAC,MAAM,uBAAuB,GAAG,YAAY,CAAC;AACpD,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC;AAE5C;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,aAAa,CAAC;AAEtD,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,YAAY;IACZ,mBAAmB;IACnB,gBAAgB;IAChB,iBAAiB;IACjB,mBAAmB;IACnB,oBAAoB;IACpB,kBAAkB;IAClB,uBAAuB;IACvB,mBAAmB;CACX,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attr-definition.embedded.d.ts","sourceRoot":"","sources":["../../../src/core/attr/attr-definition.embedded.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,eAAO,MAAM,eAAe,EAAE,kBA0D7B,CAAC"}
|