@metaobjectsdev/metadata 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/attr-schema-validate.d.ts +1 -1
- package/dist/attr-schema-validate.d.ts.map +1 -1
- package/dist/attr-schema-validate.js +84 -7
- package/dist/attr-schema-validate.js.map +1 -1
- package/dist/constants.d.ts +208 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +419 -0
- package/dist/constants.js.map +1 -0
- 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/doc-schema.d.ts +1 -1
- package/dist/core/documentation/doc-schema.d.ts.map +1 -1
- package/dist/core/documentation/doc-schema.js +13 -5
- package/dist/core/documentation/doc-schema.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/field-schema.d.ts +0 -16
- package/dist/core/field/field-schema.d.ts.map +1 -1
- package/dist/core/field/field-schema.js +10 -158
- package/dist/core/field/field-schema.js.map +1 -1
- 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/file-meta-data-loader.d.ts +18 -0
- package/dist/core/file-meta-data-loader.d.ts.map +1 -0
- package/dist/core/file-meta-data-loader.js +81 -0
- package/dist/core/file-meta-data-loader.js.map +1 -0
- package/dist/core/file-source.d.ts +12 -0
- package/dist/core/file-source.d.ts.map +1 -0
- package/dist/core/file-source.js +46 -0
- package/dist/core/file-source.js.map +1 -0
- 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 +91 -0
- package/dist/core/identity/identity-definition.embedded.js.map +1 -0
- package/dist/core/identity/identity-schema.d.ts.map +1 -1
- package/dist/core/identity/identity-schema.js +3 -2
- package/dist/core/identity/identity-schema.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/relationship/relationship-schema.d.ts.map +1 -1
- package/dist/core/relationship/relationship-schema.js +13 -7
- package/dist/core/relationship/relationship-schema.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 +134 -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-attr-schemas.d.ts +22 -0
- package/dist/core-attr-schemas.d.ts.map +1 -0
- package/dist/core-attr-schemas.js +324 -0
- package/dist/core-attr-schemas.js.map +1 -0
- package/dist/core-types.d.ts +5 -2
- package/dist/core-types.d.ts.map +1 -1
- package/dist/core-types.js +261 -115
- package/dist/core-types.js.map +1 -1
- package/dist/db/db-attr-schemas.d.ts +8 -0
- package/dist/db/db-attr-schemas.d.ts.map +1 -0
- package/dist/db/db-attr-schemas.js +26 -0
- package/dist/db/db-attr-schemas.js.map +1 -0
- package/dist/db/db-provider.d.ts +3 -0
- package/dist/db/db-provider.d.ts.map +1 -0
- package/dist/db/db-provider.js +28 -0
- package/dist/db/db-provider.js.map +1 -0
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +78 -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 +47 -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 +513 -33
- package/dist/loader/validation-passes.js.map +1 -1
- package/dist/meta/find-reference.d.ts +22 -0
- package/dist/meta/find-reference.d.ts.map +1 -0
- package/dist/meta/find-reference.js +29 -0
- package/dist/meta/find-reference.js.map +1 -0
- package/dist/meta/meta-attr.d.ts +8 -0
- package/dist/meta/meta-attr.d.ts.map +1 -0
- package/dist/meta/meta-attr.js +17 -0
- package/dist/meta/meta-attr.js.map +1 -0
- package/dist/meta/meta-data.d.ts +107 -0
- package/dist/meta/meta-data.d.ts.map +1 -0
- package/dist/meta/meta-data.js +302 -0
- package/dist/meta/meta-data.js.map +1 -0
- package/dist/meta/meta-field.d.ts +48 -0
- package/dist/meta/meta-field.d.ts.map +1 -0
- package/dist/meta/meta-field.js +94 -0
- package/dist/meta/meta-field.js.map +1 -0
- package/dist/meta/meta-identity.d.ts +71 -0
- package/dist/meta/meta-identity.d.ts.map +1 -0
- package/dist/meta/meta-identity.js +129 -0
- package/dist/meta/meta-identity.js.map +1 -0
- package/dist/meta/meta-layout.d.ts +23 -0
- package/dist/meta/meta-layout.d.ts.map +1 -0
- package/dist/meta/meta-layout.js +45 -0
- package/dist/meta/meta-layout.js.map +1 -0
- package/dist/meta/meta-object.d.ts +40 -0
- package/dist/meta/meta-object.d.ts.map +1 -0
- package/dist/meta/meta-object.js +81 -0
- package/dist/meta/meta-object.js.map +1 -0
- package/dist/meta/meta-origin.d.ts +32 -0
- package/dist/meta/meta-origin.d.ts.map +1 -0
- package/dist/meta/meta-origin.js +55 -0
- package/dist/meta/meta-origin.js.map +1 -0
- package/dist/meta/meta-relationship.d.ts +11 -0
- package/dist/meta/meta-relationship.d.ts.map +1 -0
- package/dist/meta/meta-relationship.js +27 -0
- package/dist/meta/meta-relationship.js.map +1 -0
- package/dist/meta/meta-root.d.ts +12 -0
- package/dist/meta/meta-root.d.ts.map +1 -0
- package/dist/meta/meta-root.js +24 -0
- package/dist/meta/meta-root.js.map +1 -0
- package/dist/meta/meta-source.d.ts +18 -0
- package/dist/meta/meta-source.d.ts.map +1 -0
- package/dist/meta/meta-source.js +31 -0
- package/dist/meta/meta-source.js.map +1 -0
- package/dist/meta/meta-validator.d.ts +29 -0
- package/dist/meta/meta-validator.d.ts.map +1 -0
- package/dist/meta/meta-validator.js +49 -0
- package/dist/meta/meta-validator.js.map +1 -0
- package/dist/meta/meta-view.d.ts +4 -0
- package/dist/meta/meta-view.d.ts.map +1 -0
- package/dist/meta/meta-view.js +8 -0
- package/dist/meta/meta-view.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 +74 -8
- package/dist/parser-core.js.map +1 -1
- package/dist/persistence/db/db-attr-schemas.d.ts +8 -0
- package/dist/persistence/db/db-attr-schemas.d.ts.map +1 -0
- package/dist/persistence/db/db-attr-schemas.js +28 -0
- package/dist/persistence/db/db-attr-schemas.js.map +1 -0
- 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 +170 -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/db/db-schema.d.ts +14 -0
- package/dist/persistence/db/db-schema.d.ts.map +1 -1
- package/dist/persistence/db/db-schema.js +27 -0
- package/dist/persistence/db/db-schema.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/origin/origin-schema.d.ts.map +1 -1
- package/dist/persistence/origin/origin-schema.js +7 -3
- package/dist/persistence/origin/origin-schema.js.map +1 -1
- 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/layout/layout-schema.d.ts.map +1 -1
- package/dist/presentation/layout/layout-schema.js +3 -2
- package/dist/presentation/layout/layout-schema.js.map +1 -1
- 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/ui/ui-schema.d.ts +10 -0
- package/dist/presentation/ui/ui-schema.d.ts.map +1 -0
- package/dist/presentation/ui/ui-schema.js +41 -0
- package/dist/presentation/ui/ui-schema.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 +169 -0
- package/dist/provider-data.d.ts.map +1 -0
- package/dist/provider-data.js +269 -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 +60 -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/prompt-schema.d.ts +20 -0
- package/dist/template/prompt-schema.d.ts.map +1 -0
- package/dist/template/prompt-schema.js +70 -0
- package/dist/template/prompt-schema.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/template/template-schema.d.ts.map +1 -1
- package/dist/template/template-schema.js +12 -4
- package/dist/template/template-schema.js.map +1 -1
- package/package.json +33 -22
- package/src/attr-schema-validate.ts +96 -4
- 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-definition.embedded.ts +98 -0
- 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-definition.embedded.ts +141 -0
- package/src/core/yaml-desugar.ts +96 -7
- package/src/core-types.ts +289 -150
- package/src/errors.ts +78 -0
- 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 +66 -7
- package/src/loader/shortcuts.ts +2 -2
- package/src/loader/validation-passes.ts +679 -33
- 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 +86 -8
- package/src/persistence/db/db-definition.embedded.ts +177 -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 +446 -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 +90 -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/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
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
//
|
|
3
3
|
// Extends MetaData directly: no model wrapper, no metaOf() indirection.
|
|
4
4
|
import { MetaData } from "../../shared/meta-data.js";
|
|
5
|
-
import { RELATIONSHIP_ATTR_CARDINALITY, RELATIONSHIP_ATTR_OBJECT_REF,
|
|
5
|
+
import { RELATIONSHIP_ATTR_CARDINALITY, RELATIONSHIP_ATTR_OBJECT_REF, RELATIONSHIP_ATTR_THROUGH, RELATIONSHIP_ATTR_SOURCE_REF_FIELD, RELATIONSHIP_ATTR_SYMMETRIC, RELATIONSHIP_ATTR_ON_DELETE, RELATIONSHIP_ATTR_ON_UPDATE, } from "./relationship-constants.js";
|
|
6
6
|
export class MetaRelationship extends MetaData {
|
|
7
7
|
get cardinality() {
|
|
8
8
|
const v = this.ownAttr(RELATIONSHIP_ATTR_CARDINALITY);
|
|
@@ -13,15 +13,19 @@ export class MetaRelationship extends MetaData {
|
|
|
13
13
|
const v = this.ownAttr(RELATIONSHIP_ATTR_OBJECT_REF);
|
|
14
14
|
return typeof v === "string" ? v : undefined;
|
|
15
15
|
}
|
|
16
|
-
/**
|
|
17
|
-
get
|
|
18
|
-
const v = this.ownAttr(
|
|
16
|
+
/** Junction (through) entity name for M:N relationships. */
|
|
17
|
+
get through() {
|
|
18
|
+
const v = this.ownAttr(RELATIONSHIP_ATTR_THROUGH);
|
|
19
19
|
return typeof v === "string" ? v : undefined;
|
|
20
20
|
}
|
|
21
|
-
/**
|
|
22
|
-
get
|
|
23
|
-
const
|
|
24
|
-
return
|
|
21
|
+
/** Source-side FK field on the junction (directed self-join disambiguator). */
|
|
22
|
+
get sourceRefField() {
|
|
23
|
+
const v = this.ownAttr(RELATIONSHIP_ATTR_SOURCE_REF_FIELD);
|
|
24
|
+
return typeof v === "string" ? v : undefined;
|
|
25
|
+
}
|
|
26
|
+
/** Whether this M:N relationship is an undirected (symmetric) self-join. */
|
|
27
|
+
get symmetric() {
|
|
28
|
+
return this.ownAttr(RELATIONSHIP_ATTR_SYMMETRIC) === true;
|
|
25
29
|
}
|
|
26
30
|
/** Referential action on parent delete. Undefined when not explicitly set (default derives from subtype). */
|
|
27
31
|
get onDelete() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta-relationship.js","sourceRoot":"","sources":["../../../src/core/relationship/meta-relationship.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,EAAE;AACF,wEAAwE;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,
|
|
1
|
+
{"version":3,"file":"meta-relationship.js","sourceRoot":"","sources":["../../../src/core/relationship/meta-relationship.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,EAAE;AACF,wEAAwE;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,yBAAyB,EACzB,kCAAkC,EAClC,2BAA2B,EAC3B,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC;AAErC,MAAM,OAAO,gBAAiB,SAAQ,QAAQ;IAC5C,IAAI,WAAW;QACb,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;QACtD,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED,6DAA6D;IAC7D,IAAI,SAAS;QACX,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QACrD,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED,4DAA4D;IAC5D,IAAI,OAAO;QACT,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QAClD,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED,+EAA+E;IAC/E,IAAI,cAAc;QAChB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;QAC3D,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED,4EAA4E;IAC5E,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,KAAK,IAAI,CAAC;IAC5D,CAAC;IAED,6GAA6G;IAC7G,IAAI,QAAQ;QACV,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;QACpD,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,CAAC;IAED,8FAA8F;IAC9F,IAAI,QAAQ;QACV,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;QACpD,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,CAAC;CACF"}
|
|
@@ -5,8 +5,12 @@ export declare const RELATIONSHIP_SUBTYPES: readonly ["base", "association", "ag
|
|
|
5
5
|
export type RelationshipSubType = (typeof RELATIONSHIP_SUBTYPES)[number];
|
|
6
6
|
export declare const RELATIONSHIP_ATTR_CARDINALITY = "cardinality";
|
|
7
7
|
export declare const RELATIONSHIP_ATTR_OBJECT_REF = "objectRef";
|
|
8
|
-
|
|
9
|
-
export declare const
|
|
8
|
+
/** M:N junction (through) entity — a third entity declaring two identity.reference children. */
|
|
9
|
+
export declare const RELATIONSHIP_ATTR_THROUGH = "through";
|
|
10
|
+
/** M:N directed-self-join disambiguator — names the source-side FK field on the junction. */
|
|
11
|
+
export declare const RELATIONSHIP_ATTR_SOURCE_REF_FIELD = "sourceRefField";
|
|
12
|
+
/** M:N undirected-self-join flag — union-on-read; valid only when objectRef == the declaring entity. */
|
|
13
|
+
export declare const RELATIONSHIP_ATTR_SYMMETRIC = "symmetric";
|
|
10
14
|
export declare const CARDINALITY_ONE = "one";
|
|
11
15
|
export declare const CARDINALITY_MANY = "many";
|
|
12
16
|
export declare const CARDINALITY_VALUES: readonly ["one", "many"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relationship-constants.d.ts","sourceRoot":"","sources":["../../../src/core/relationship/relationship-constants.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,gCAAgC,gBAAgB,CAAC;AAC9D,eAAO,MAAM,gCAAgC,gBAAgB,CAAC;AAC9D,eAAO,MAAM,gCAAgC,gBAAgB,CAAC;AAE9D,eAAO,MAAM,qBAAqB,gEAKxB,CAAC;AACX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAMzE,eAAO,MAAM,6BAA6B,gBAAgB,CAAC;AAC3D,eAAO,MAAM,4BAA4B,cAAc,CAAC;AACxD,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"relationship-constants.d.ts","sourceRoot":"","sources":["../../../src/core/relationship/relationship-constants.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,gCAAgC,gBAAgB,CAAC;AAC9D,eAAO,MAAM,gCAAgC,gBAAgB,CAAC;AAC9D,eAAO,MAAM,gCAAgC,gBAAgB,CAAC;AAE9D,eAAO,MAAM,qBAAqB,gEAKxB,CAAC;AACX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAMzE,eAAO,MAAM,6BAA6B,gBAAgB,CAAC;AAC3D,eAAO,MAAM,4BAA4B,cAAc,CAAC;AACxD,gGAAgG;AAChG,eAAO,MAAM,yBAAyB,YAAY,CAAC;AACnD,6FAA6F;AAC7F,eAAO,MAAM,kCAAkC,mBAAmB,CAAC;AACnE,wGAAwG;AACxG,eAAO,MAAM,2BAA2B,cAAc,CAAC;AAMvD,eAAO,MAAM,eAAe,QAAQ,CAAC;AACrC,eAAO,MAAM,gBAAgB,SAAS,CAAC;AAEvC,eAAO,MAAM,kBAAkB,0BAA+C,CAAC;AAC/E,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAMnE,eAAO,MAAM,2BAA2B,aAAa,CAAC;AACtD,eAAO,MAAM,2BAA2B,aAAa,CAAC;AAEtD;mGACmG;AACnG,eAAO,MAAM,mBAAmB,2DAA4D,CAAC;AAC7F,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAErE,6EAA6E;AAC7E,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAIpF,CAAC;AACF,eAAO,MAAM,iBAAiB,EAAE,iBAA6B,CAAC"}
|
|
@@ -17,8 +17,12 @@ export const RELATIONSHIP_SUBTYPES = [
|
|
|
17
17
|
// ---------------------------------------------------------------------------
|
|
18
18
|
export const RELATIONSHIP_ATTR_CARDINALITY = "cardinality";
|
|
19
19
|
export const RELATIONSHIP_ATTR_OBJECT_REF = "objectRef";
|
|
20
|
-
|
|
21
|
-
export const
|
|
20
|
+
/** M:N junction (through) entity — a third entity declaring two identity.reference children. */
|
|
21
|
+
export const RELATIONSHIP_ATTR_THROUGH = "through";
|
|
22
|
+
/** M:N directed-self-join disambiguator — names the source-side FK field on the junction. */
|
|
23
|
+
export const RELATIONSHIP_ATTR_SOURCE_REF_FIELD = "sourceRefField";
|
|
24
|
+
/** M:N undirected-self-join flag — union-on-read; valid only when objectRef == the declaring entity. */
|
|
25
|
+
export const RELATIONSHIP_ATTR_SYMMETRIC = "symmetric";
|
|
22
26
|
// ---------------------------------------------------------------------------
|
|
23
27
|
// Relationship cardinality values (for RELATIONSHIP_ATTR_CARDINALITY)
|
|
24
28
|
// ---------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relationship-constants.js","sourceRoot":"","sources":["../../../src/core/relationship/relationship-constants.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAEhF,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,8EAA8E;AAC9E,4BAA4B;AAC5B,8EAA8E;AAE9E,MAAM,CAAC,MAAM,gCAAgC,GAAG,aAAa,CAAC;AAC9D,MAAM,CAAC,MAAM,gCAAgC,GAAG,aAAa,CAAC;AAC9D,MAAM,CAAC,MAAM,gCAAgC,GAAG,aAAa,CAAC;AAE9D,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,YAAY;IACZ,gCAAgC;IAChC,gCAAgC;IAChC,gCAAgC;CACxB,CAAC;AAGX,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,6BAA6B,GAAG,aAAa,CAAC;AAC3D,MAAM,CAAC,MAAM,4BAA4B,GAAG,WAAW,CAAC;AACxD,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"relationship-constants.js","sourceRoot":"","sources":["../../../src/core/relationship/relationship-constants.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAEhF,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,8EAA8E;AAC9E,4BAA4B;AAC5B,8EAA8E;AAE9E,MAAM,CAAC,MAAM,gCAAgC,GAAG,aAAa,CAAC;AAC9D,MAAM,CAAC,MAAM,gCAAgC,GAAG,aAAa,CAAC;AAC9D,MAAM,CAAC,MAAM,gCAAgC,GAAG,aAAa,CAAC;AAE9D,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,YAAY;IACZ,gCAAgC;IAChC,gCAAgC;IAChC,gCAAgC;CACxB,CAAC;AAGX,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,6BAA6B,GAAG,aAAa,CAAC;AAC3D,MAAM,CAAC,MAAM,4BAA4B,GAAG,WAAW,CAAC;AACxD,gGAAgG;AAChG,MAAM,CAAC,MAAM,yBAAyB,GAAG,SAAS,CAAC;AACnD,6FAA6F;AAC7F,MAAM,CAAC,MAAM,kCAAkC,GAAG,gBAAgB,CAAC;AACnE,wGAAwG;AACxG,MAAM,CAAC,MAAM,2BAA2B,GAAG,WAAW,CAAC;AAEvD,8EAA8E;AAC9E,sEAAsE;AACtE,8EAA8E;AAE9E,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AACrC,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,eAAe,EAAE,gBAAgB,CAAU,CAAC;AAG/E,8EAA8E;AAC9E,mDAAmD;AACnD,8EAA8E;AAE9E,MAAM,CAAC,MAAM,2BAA2B,GAAG,UAAU,CAAC;AACtD,MAAM,CAAC,MAAM,2BAA2B,GAAG,UAAU,CAAC;AAEtD;mGACmG;AACnG,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,CAAU,CAAC;AAG7F,6EAA6E;AAC7E,MAAM,CAAC,MAAM,4BAA4B,GAAgD;IACvF,CAAC,gCAAgC,CAAC,EAAE,SAAS;IAC7C,CAAC,gCAAgC,CAAC,EAAE,UAAU;IAC9C,CAAC,gCAAgC,CAAC,EAAE,UAAU;CAC/C,CAAC;AACF,MAAM,CAAC,MAAM,iBAAiB,GAAsB,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relationship-definition.embedded.d.ts","sourceRoot":"","sources":["../../../src/core/relationship/relationship-definition.embedded.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,eAAO,MAAM,uBAAuB,EAAE,kBAoTrC,CAAC"}
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
export const RELATIONSHIP_DEFINITION = {
|
|
2
|
+
"provider": "metaobjects-core-types",
|
|
3
|
+
"types": [
|
|
4
|
+
{
|
|
5
|
+
"type": "relationship",
|
|
6
|
+
"subType": "base",
|
|
7
|
+
"description": "Abstract relationship base — shared shape for the concrete association/aggregation/composition subtypes; not authored directly.",
|
|
8
|
+
"rules": "@cardinality is an open string at the metamodel level ('one'/'many', and Java-canonical composite forms such as 'many-to-one'); @objectRef names the target entity. M:N is expressed by @cardinality:'many' + @objectRef + @through: @through names a junction entity that MUST declare two identity.reference children (one per FK side), and the relationship's FK fields are DERIVED from those references — never restated. @sourceRefField disambiguates a DIRECTED self-join by naming the source-side FK field on the junction; @symmetric marks an UNDIRECTED self-join (union-on-read) valid only when @objectRef == the declaring entity; the two are mutually exclusive. @onDelete/@onUpdate carry referential actions (cascade/set-null/restrict/no-action).",
|
|
9
|
+
"children": [
|
|
10
|
+
{
|
|
11
|
+
"type": "attr",
|
|
12
|
+
"subType": "string",
|
|
13
|
+
"name": "cardinality",
|
|
14
|
+
"min": 0,
|
|
15
|
+
"max": 1,
|
|
16
|
+
"description": "Cardinality of the relationship target (e.g. 'one', 'many', 'many-to-one')."
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"type": "attr",
|
|
20
|
+
"subType": "string",
|
|
21
|
+
"name": "objectRef",
|
|
22
|
+
"min": 0,
|
|
23
|
+
"max": 1,
|
|
24
|
+
"description": "Name or fully-qualified name of the target object the relationship points to (e.g. 'Week' or 'acme::vehicle::Car')."
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"type": "attr",
|
|
28
|
+
"subType": "string",
|
|
29
|
+
"name": "through",
|
|
30
|
+
"min": 0,
|
|
31
|
+
"max": 1,
|
|
32
|
+
"description": "Junction (through) entity name for M:N relationships — a third entity declaring two identity.reference children, one per FK side. The relationship's FK fields are derived from those references."
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"type": "attr",
|
|
36
|
+
"subType": "string",
|
|
37
|
+
"name": "sourceRefField",
|
|
38
|
+
"min": 0,
|
|
39
|
+
"max": 1,
|
|
40
|
+
"description": "Directed self-join disambiguator: names the source-side FK field on the junction (the other reference is the target side). Required only for directed/ambiguous self-join M:N. Mutually exclusive with @symmetric."
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"type": "attr",
|
|
44
|
+
"subType": "boolean",
|
|
45
|
+
"name": "symmetric",
|
|
46
|
+
"min": 0,
|
|
47
|
+
"max": 1,
|
|
48
|
+
"description": "Undirected self-join flag (union-on-read). Valid only when @objectRef == the declaring entity. Mutually exclusive with @sourceRefField."
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"type": "attr",
|
|
52
|
+
"subType": "string",
|
|
53
|
+
"name": "onDelete",
|
|
54
|
+
"min": 0,
|
|
55
|
+
"max": 1,
|
|
56
|
+
"allowedValues": [
|
|
57
|
+
"cascade",
|
|
58
|
+
"set-null",
|
|
59
|
+
"restrict",
|
|
60
|
+
"no-action"
|
|
61
|
+
],
|
|
62
|
+
"description": "Referential action on parent delete. Default derives from subtype (composition→cascade, aggregation→set-null, association→restrict)."
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"type": "attr",
|
|
66
|
+
"subType": "string",
|
|
67
|
+
"name": "onUpdate",
|
|
68
|
+
"min": 0,
|
|
69
|
+
"max": 1,
|
|
70
|
+
"allowedValues": [
|
|
71
|
+
"cascade",
|
|
72
|
+
"set-null",
|
|
73
|
+
"restrict",
|
|
74
|
+
"no-action"
|
|
75
|
+
],
|
|
76
|
+
"description": "Referential action on key update. Default cascade."
|
|
77
|
+
}
|
|
78
|
+
]
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"type": "relationship",
|
|
82
|
+
"subType": "association",
|
|
83
|
+
"description": "A plain reference to another entity — no ownership; the target has an independent lifecycle (default @onDelete restrict).",
|
|
84
|
+
"rules": "M:N is expressed by @cardinality:'many' + @objectRef + @through: @through names a junction entity that MUST declare two identity.reference children (one per FK side), and the relationship's FK fields are DERIVED from those references — never restated. @sourceRefField disambiguates a DIRECTED self-join by naming the source-side FK field on the junction; @symmetric marks an UNDIRECTED self-join (union-on-read) valid only when @objectRef == the declaring entity; the two are mutually exclusive. Association is a plain reference — the target's lifecycle is independent (default @onDelete restrict).",
|
|
85
|
+
"children": [
|
|
86
|
+
{
|
|
87
|
+
"type": "attr",
|
|
88
|
+
"subType": "string",
|
|
89
|
+
"name": "cardinality",
|
|
90
|
+
"min": 0,
|
|
91
|
+
"max": 1,
|
|
92
|
+
"description": "Cardinality of the relationship target (e.g. 'one', 'many', 'many-to-one')."
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"type": "attr",
|
|
96
|
+
"subType": "string",
|
|
97
|
+
"name": "objectRef",
|
|
98
|
+
"min": 0,
|
|
99
|
+
"max": 1,
|
|
100
|
+
"description": "Name or fully-qualified name of the target object the relationship points to (e.g. 'Week' or 'acme::vehicle::Car')."
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"type": "attr",
|
|
104
|
+
"subType": "string",
|
|
105
|
+
"name": "through",
|
|
106
|
+
"min": 0,
|
|
107
|
+
"max": 1,
|
|
108
|
+
"description": "Junction (through) entity name for M:N relationships — a third entity declaring two identity.reference children, one per FK side. The relationship's FK fields are derived from those references."
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"type": "attr",
|
|
112
|
+
"subType": "string",
|
|
113
|
+
"name": "sourceRefField",
|
|
114
|
+
"min": 0,
|
|
115
|
+
"max": 1,
|
|
116
|
+
"description": "Directed self-join disambiguator: names the source-side FK field on the junction (the other reference is the target side). Required only for directed/ambiguous self-join M:N. Mutually exclusive with @symmetric."
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"type": "attr",
|
|
120
|
+
"subType": "boolean",
|
|
121
|
+
"name": "symmetric",
|
|
122
|
+
"min": 0,
|
|
123
|
+
"max": 1,
|
|
124
|
+
"description": "Undirected self-join flag (union-on-read). Valid only when @objectRef == the declaring entity. Mutually exclusive with @sourceRefField."
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"type": "attr",
|
|
128
|
+
"subType": "string",
|
|
129
|
+
"name": "onDelete",
|
|
130
|
+
"min": 0,
|
|
131
|
+
"max": 1,
|
|
132
|
+
"allowedValues": [
|
|
133
|
+
"cascade",
|
|
134
|
+
"set-null",
|
|
135
|
+
"restrict",
|
|
136
|
+
"no-action"
|
|
137
|
+
],
|
|
138
|
+
"description": "Referential action on parent delete. Default derives from subtype (composition→cascade, aggregation→set-null, association→restrict)."
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"type": "attr",
|
|
142
|
+
"subType": "string",
|
|
143
|
+
"name": "onUpdate",
|
|
144
|
+
"min": 0,
|
|
145
|
+
"max": 1,
|
|
146
|
+
"allowedValues": [
|
|
147
|
+
"cascade",
|
|
148
|
+
"set-null",
|
|
149
|
+
"restrict",
|
|
150
|
+
"no-action"
|
|
151
|
+
],
|
|
152
|
+
"description": "Referential action on key update. Default cascade."
|
|
153
|
+
}
|
|
154
|
+
]
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"type": "relationship",
|
|
158
|
+
"subType": "aggregation",
|
|
159
|
+
"description": "A shared/independent containment — the parent groups the target but does not own its lifecycle (default @onDelete set-null).",
|
|
160
|
+
"rules": "M:N is expressed by @cardinality:'many' + @objectRef + @through: @through names a junction entity that MUST declare two identity.reference children (one per FK side), and the relationship's FK fields are DERIVED from those references — never restated. @sourceRefField disambiguates a DIRECTED self-join by naming the source-side FK field on the junction; @symmetric marks an UNDIRECTED self-join (union-on-read) valid only when @objectRef == the declaring entity; the two are mutually exclusive. Aggregation is shared/independent — the target outlives the parent (default @onDelete set-null).",
|
|
161
|
+
"children": [
|
|
162
|
+
{
|
|
163
|
+
"type": "attr",
|
|
164
|
+
"subType": "string",
|
|
165
|
+
"name": "cardinality",
|
|
166
|
+
"min": 0,
|
|
167
|
+
"max": 1,
|
|
168
|
+
"description": "Cardinality of the relationship target (e.g. 'one', 'many', 'many-to-one')."
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"type": "attr",
|
|
172
|
+
"subType": "string",
|
|
173
|
+
"name": "objectRef",
|
|
174
|
+
"min": 0,
|
|
175
|
+
"max": 1,
|
|
176
|
+
"description": "Name or fully-qualified name of the target object the relationship points to (e.g. 'Week' or 'acme::vehicle::Car')."
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"type": "attr",
|
|
180
|
+
"subType": "string",
|
|
181
|
+
"name": "through",
|
|
182
|
+
"min": 0,
|
|
183
|
+
"max": 1,
|
|
184
|
+
"description": "Junction (through) entity name for M:N relationships — a third entity declaring two identity.reference children, one per FK side. The relationship's FK fields are derived from those references."
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"type": "attr",
|
|
188
|
+
"subType": "string",
|
|
189
|
+
"name": "sourceRefField",
|
|
190
|
+
"min": 0,
|
|
191
|
+
"max": 1,
|
|
192
|
+
"description": "Directed self-join disambiguator: names the source-side FK field on the junction (the other reference is the target side). Required only for directed/ambiguous self-join M:N. Mutually exclusive with @symmetric."
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"type": "attr",
|
|
196
|
+
"subType": "boolean",
|
|
197
|
+
"name": "symmetric",
|
|
198
|
+
"min": 0,
|
|
199
|
+
"max": 1,
|
|
200
|
+
"description": "Undirected self-join flag (union-on-read). Valid only when @objectRef == the declaring entity. Mutually exclusive with @sourceRefField."
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"type": "attr",
|
|
204
|
+
"subType": "string",
|
|
205
|
+
"name": "onDelete",
|
|
206
|
+
"min": 0,
|
|
207
|
+
"max": 1,
|
|
208
|
+
"allowedValues": [
|
|
209
|
+
"cascade",
|
|
210
|
+
"set-null",
|
|
211
|
+
"restrict",
|
|
212
|
+
"no-action"
|
|
213
|
+
],
|
|
214
|
+
"description": "Referential action on parent delete. Default derives from subtype (composition→cascade, aggregation→set-null, association→restrict)."
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"type": "attr",
|
|
218
|
+
"subType": "string",
|
|
219
|
+
"name": "onUpdate",
|
|
220
|
+
"min": 0,
|
|
221
|
+
"max": 1,
|
|
222
|
+
"allowedValues": [
|
|
223
|
+
"cascade",
|
|
224
|
+
"set-null",
|
|
225
|
+
"restrict",
|
|
226
|
+
"no-action"
|
|
227
|
+
],
|
|
228
|
+
"description": "Referential action on key update. Default cascade."
|
|
229
|
+
}
|
|
230
|
+
]
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"type": "relationship",
|
|
234
|
+
"subType": "composition",
|
|
235
|
+
"description": "An owned containment — the parent owns the target's lifecycle; deleting the parent deletes the children (default @onDelete cascade).",
|
|
236
|
+
"rules": "M:N is expressed by @cardinality:'many' + @objectRef + @through: @through names a junction entity that MUST declare two identity.reference children (one per FK side), and the relationship's FK fields are DERIVED from those references — never restated. @sourceRefField disambiguates a DIRECTED self-join by naming the source-side FK field on the junction; @symmetric marks an UNDIRECTED self-join (union-on-read) valid only when @objectRef == the declaring entity; the two are mutually exclusive. Composition is owned lifecycle — the children do not outlive the parent (default @onDelete cascade).",
|
|
237
|
+
"children": [
|
|
238
|
+
{
|
|
239
|
+
"type": "attr",
|
|
240
|
+
"subType": "string",
|
|
241
|
+
"name": "cardinality",
|
|
242
|
+
"min": 0,
|
|
243
|
+
"max": 1,
|
|
244
|
+
"description": "Cardinality of the relationship target (e.g. 'one', 'many', 'many-to-one')."
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"type": "attr",
|
|
248
|
+
"subType": "string",
|
|
249
|
+
"name": "objectRef",
|
|
250
|
+
"min": 0,
|
|
251
|
+
"max": 1,
|
|
252
|
+
"description": "Name or fully-qualified name of the target object the relationship points to (e.g. 'Week' or 'acme::vehicle::Car')."
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"type": "attr",
|
|
256
|
+
"subType": "string",
|
|
257
|
+
"name": "through",
|
|
258
|
+
"min": 0,
|
|
259
|
+
"max": 1,
|
|
260
|
+
"description": "Junction (through) entity name for M:N relationships — a third entity declaring two identity.reference children, one per FK side. The relationship's FK fields are derived from those references."
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
"type": "attr",
|
|
264
|
+
"subType": "string",
|
|
265
|
+
"name": "sourceRefField",
|
|
266
|
+
"min": 0,
|
|
267
|
+
"max": 1,
|
|
268
|
+
"description": "Directed self-join disambiguator: names the source-side FK field on the junction (the other reference is the target side). Required only for directed/ambiguous self-join M:N. Mutually exclusive with @symmetric."
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
"type": "attr",
|
|
272
|
+
"subType": "boolean",
|
|
273
|
+
"name": "symmetric",
|
|
274
|
+
"min": 0,
|
|
275
|
+
"max": 1,
|
|
276
|
+
"description": "Undirected self-join flag (union-on-read). Valid only when @objectRef == the declaring entity. Mutually exclusive with @sourceRefField."
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
"type": "attr",
|
|
280
|
+
"subType": "string",
|
|
281
|
+
"name": "onDelete",
|
|
282
|
+
"min": 0,
|
|
283
|
+
"max": 1,
|
|
284
|
+
"allowedValues": [
|
|
285
|
+
"cascade",
|
|
286
|
+
"set-null",
|
|
287
|
+
"restrict",
|
|
288
|
+
"no-action"
|
|
289
|
+
],
|
|
290
|
+
"description": "Referential action on parent delete. Default derives from subtype (composition→cascade, aggregation→set-null, association→restrict)."
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"type": "attr",
|
|
294
|
+
"subType": "string",
|
|
295
|
+
"name": "onUpdate",
|
|
296
|
+
"min": 0,
|
|
297
|
+
"max": 1,
|
|
298
|
+
"allowedValues": [
|
|
299
|
+
"cascade",
|
|
300
|
+
"set-null",
|
|
301
|
+
"restrict",
|
|
302
|
+
"no-action"
|
|
303
|
+
],
|
|
304
|
+
"description": "Referential action on key update. Default cascade."
|
|
305
|
+
}
|
|
306
|
+
]
|
|
307
|
+
}
|
|
308
|
+
]
|
|
309
|
+
};
|
|
310
|
+
//# sourceMappingURL=relationship-definition.embedded.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relationship-definition.embedded.js","sourceRoot":"","sources":["../../../src/core/relationship/relationship-definition.embedded.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relationship-schema.d.ts","sourceRoot":"","sources":["../../../src/core/relationship/relationship-schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"relationship-schema.d.ts","sourceRoot":"","sources":["../../../src/core/relationship/relationship-schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAgBpD,kDAAkD;AAClD,eAAO,MAAM,iBAAiB,EAAE,UAAU,EAwDzC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Relationship attribute schemas — attrs common to every relationship subtype.
|
|
2
2
|
// Consumed by registerCoreTypes().
|
|
3
|
-
import { ATTR_SUBTYPE_STRING,
|
|
4
|
-
import { RELATIONSHIP_ATTR_CARDINALITY, RELATIONSHIP_ATTR_OBJECT_REF,
|
|
3
|
+
import { ATTR_SUBTYPE_STRING, ATTR_SUBTYPE_BOOLEAN, } from "../attr/attr-constants.js";
|
|
4
|
+
import { RELATIONSHIP_ATTR_CARDINALITY, RELATIONSHIP_ATTR_OBJECT_REF, RELATIONSHIP_ATTR_THROUGH, RELATIONSHIP_ATTR_SOURCE_REF_FIELD, RELATIONSHIP_ATTR_SYMMETRIC, RELATIONSHIP_ATTR_ON_DELETE, RELATIONSHIP_ATTR_ON_UPDATE, REFERENTIAL_ACTIONS, } from "./relationship-constants.js";
|
|
5
5
|
/** Attrs common to every relationship subtype. */
|
|
6
6
|
export const relationshipAttrs = [
|
|
7
7
|
{
|
|
@@ -22,16 +22,22 @@ export const relationshipAttrs = [
|
|
|
22
22
|
description: "Name or fully-qualified name of the target object the relationship points to (e.g. 'Week' or 'acme::vehicle::Car').",
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
|
-
name:
|
|
25
|
+
name: RELATIONSHIP_ATTR_THROUGH,
|
|
26
26
|
valueType: ATTR_SUBTYPE_STRING,
|
|
27
27
|
required: false,
|
|
28
|
-
description: "
|
|
28
|
+
description: "Junction (through) entity name for M:N relationships — a third entity declaring two identity.reference children, one per FK side. The relationship's FK fields are derived from those references.",
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
|
-
name:
|
|
32
|
-
valueType:
|
|
31
|
+
name: RELATIONSHIP_ATTR_SOURCE_REF_FIELD,
|
|
32
|
+
valueType: ATTR_SUBTYPE_STRING,
|
|
33
|
+
required: false,
|
|
34
|
+
description: "Directed self-join disambiguator: names the source-side FK field on the junction (the other reference is the target side). Required only for directed/ambiguous self-join M:N. Mutually exclusive with @symmetric.",
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: RELATIONSHIP_ATTR_SYMMETRIC,
|
|
38
|
+
valueType: ATTR_SUBTYPE_BOOLEAN,
|
|
33
39
|
required: false,
|
|
34
|
-
description: "
|
|
40
|
+
description: "Undirected self-join flag (union-on-read). Valid only when @objectRef == the declaring entity. Mutually exclusive with @sourceRefField.",
|
|
35
41
|
},
|
|
36
42
|
{
|
|
37
43
|
name: RELATIONSHIP_ATTR_ON_DELETE,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relationship-schema.js","sourceRoot":"","sources":["../../../src/core/relationship/relationship-schema.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,mCAAmC;AAGnC,OAAO,EACL,mBAAmB,EACnB,
|
|
1
|
+
{"version":3,"file":"relationship-schema.js","sourceRoot":"","sources":["../../../src/core/relationship/relationship-schema.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,mCAAmC;AAGnC,OAAO,EACL,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,yBAAyB,EACzB,kCAAkC,EAClC,2BAA2B,EAC3B,2BAA2B,EAC3B,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AAErC,kDAAkD;AAClD,MAAM,CAAC,MAAM,iBAAiB,GAAiB;IAC7C;QACE,IAAI,EAAE,6BAA6B;QACnC,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,KAAK;QACf,0EAA0E;QAC1E,wEAAwE;QACxE,oEAAoE;QACpE,0EAA0E;QAC1E,6EAA6E;QAC7E,WAAW,EACT,6EAA6E;KAChF;IACD;QACE,IAAI,EAAE,4BAA4B;QAClC,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,KAAK;QACf,WAAW,EACT,qHAAqH;KACxH;IACD;QACE,IAAI,EAAE,yBAAyB;QAC/B,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,KAAK;QACf,WAAW,EACT,mMAAmM;KACtM;IACD;QACE,IAAI,EAAE,kCAAkC;QACxC,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,KAAK;QACf,WAAW,EACT,oNAAoN;KACvN;IACD;QACE,IAAI,EAAE,2BAA2B;QACjC,SAAS,EAAE,oBAAoB;QAC/B,QAAQ,EAAE,KAAK;QACf,WAAW,EACT,yIAAyI;KAC5I;IACD;QACE,IAAI,EAAE,2BAA2B;QACjC,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,KAAK;QACf,aAAa,EAAE,CAAC,GAAG,mBAAmB,CAAC;QACvC,WAAW,EACT,sIAAsI;KACzI;IACD;QACE,IAAI,EAAE,2BAA2B;QACjC,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,KAAK;QACf,aAAa,EAAE,CAAC,GAAG,mBAAmB,CAAC;QACvC,WAAW,EAAE,oDAAoD;KAClE;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator-definition.embedded.d.ts","sourceRoot":"","sources":["../../../src/core/validator/validator-definition.embedded.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,eAAO,MAAM,oBAAoB,EAAE,kBAoIlC,CAAC"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
export const VALIDATOR_DEFINITION = {
|
|
2
|
+
"provider": "metaobjects-core-types",
|
|
3
|
+
"types": [
|
|
4
|
+
{
|
|
5
|
+
"type": "validator",
|
|
6
|
+
"subType": "base",
|
|
7
|
+
"description": "Abstract base validator — the shared root subtype concrete validators specialize. Carries the @min/@max bounds attrs but enforces no rule of its own.",
|
|
8
|
+
"children": [
|
|
9
|
+
{
|
|
10
|
+
"type": "attr",
|
|
11
|
+
"subType": "int",
|
|
12
|
+
"name": "min",
|
|
13
|
+
"min": 0,
|
|
14
|
+
"max": 1,
|
|
15
|
+
"description": "Minimum allowed value (length, numeric value, or array element count depending on the validator subtype)."
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"type": "attr",
|
|
19
|
+
"subType": "int",
|
|
20
|
+
"name": "max",
|
|
21
|
+
"min": 0,
|
|
22
|
+
"max": 1,
|
|
23
|
+
"description": "Maximum allowed value (length, numeric value, or array element count depending on the validator subtype)."
|
|
24
|
+
}
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"type": "validator",
|
|
29
|
+
"subType": "required",
|
|
30
|
+
"description": "Fails when the value is null/empty (NOT NULL). Equivalent to @required on the owning field."
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"type": "validator",
|
|
34
|
+
"subType": "length",
|
|
35
|
+
"description": "Bounds string length / collection size via @min/@max.",
|
|
36
|
+
"children": [
|
|
37
|
+
{
|
|
38
|
+
"type": "attr",
|
|
39
|
+
"subType": "int",
|
|
40
|
+
"name": "min",
|
|
41
|
+
"min": 0,
|
|
42
|
+
"max": 1,
|
|
43
|
+
"description": "Minimum allowed value (length, numeric value, or array element count depending on the validator subtype)."
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"type": "attr",
|
|
47
|
+
"subType": "int",
|
|
48
|
+
"name": "max",
|
|
49
|
+
"min": 0,
|
|
50
|
+
"max": 1,
|
|
51
|
+
"description": "Maximum allowed value (length, numeric value, or array element count depending on the validator subtype)."
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"type": "validator",
|
|
57
|
+
"subType": "regex",
|
|
58
|
+
"description": "Requires the value match a regular expression (@pattern).",
|
|
59
|
+
"children": [
|
|
60
|
+
{
|
|
61
|
+
"type": "attr",
|
|
62
|
+
"subType": "int",
|
|
63
|
+
"name": "min",
|
|
64
|
+
"min": 0,
|
|
65
|
+
"max": 1,
|
|
66
|
+
"description": "Minimum allowed value (length, numeric value, or array element count depending on the validator subtype)."
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"type": "attr",
|
|
70
|
+
"subType": "int",
|
|
71
|
+
"name": "max",
|
|
72
|
+
"min": 0,
|
|
73
|
+
"max": 1,
|
|
74
|
+
"description": "Maximum allowed value (length, numeric value, or array element count depending on the validator subtype)."
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"type": "attr",
|
|
78
|
+
"subType": "string",
|
|
79
|
+
"name": "pattern",
|
|
80
|
+
"min": 0,
|
|
81
|
+
"max": 1,
|
|
82
|
+
"description": "Regular expression the value must match."
|
|
83
|
+
}
|
|
84
|
+
]
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"type": "validator",
|
|
88
|
+
"subType": "numeric",
|
|
89
|
+
"description": "Bounds a numeric value's magnitude via @min/@max.",
|
|
90
|
+
"children": [
|
|
91
|
+
{
|
|
92
|
+
"type": "attr",
|
|
93
|
+
"subType": "int",
|
|
94
|
+
"name": "min",
|
|
95
|
+
"min": 0,
|
|
96
|
+
"max": 1,
|
|
97
|
+
"description": "Minimum allowed value (length, numeric value, or array element count depending on the validator subtype)."
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"type": "attr",
|
|
101
|
+
"subType": "int",
|
|
102
|
+
"name": "max",
|
|
103
|
+
"min": 0,
|
|
104
|
+
"max": 1,
|
|
105
|
+
"description": "Maximum allowed value (length, numeric value, or array element count depending on the validator subtype)."
|
|
106
|
+
}
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"type": "validator",
|
|
111
|
+
"subType": "array",
|
|
112
|
+
"description": "Bounds the element count of an array-valued field via @min/@max.",
|
|
113
|
+
"children": [
|
|
114
|
+
{
|
|
115
|
+
"type": "attr",
|
|
116
|
+
"subType": "int",
|
|
117
|
+
"name": "min",
|
|
118
|
+
"min": 0,
|
|
119
|
+
"max": 1,
|
|
120
|
+
"description": "Minimum allowed value (length, numeric value, or array element count depending on the validator subtype)."
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"type": "attr",
|
|
124
|
+
"subType": "int",
|
|
125
|
+
"name": "max",
|
|
126
|
+
"min": 0,
|
|
127
|
+
"max": 1,
|
|
128
|
+
"description": "Maximum allowed value (length, numeric value, or array element count depending on the validator subtype)."
|
|
129
|
+
}
|
|
130
|
+
]
|
|
131
|
+
}
|
|
132
|
+
]
|
|
133
|
+
};
|
|
134
|
+
//# sourceMappingURL=validator-definition.embedded.js.map
|