@metaobjectsdev/metadata 0.5.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/LICENSE +189 -0
- package/README.md +29 -0
- package/dist/attr-class-map.d.ts +26 -0
- package/dist/attr-class-map.d.ts.map +1 -0
- package/dist/attr-class-map.js +44 -0
- package/dist/attr-class-map.js.map +1 -0
- package/dist/attr-schema-validate.d.ts +9 -0
- package/dist/attr-schema-validate.d.ts.map +1 -0
- package/dist/attr-schema-validate.js +100 -0
- package/dist/attr-schema-validate.js.map +1 -0
- 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/core/attr/attr-constants.d.ts +12 -0
- package/dist/core/attr/attr-constants.d.ts.map +1 -0
- package/dist/core/attr/attr-constants.js +27 -0
- package/dist/core/attr/attr-constants.js.map +1 -0
- package/dist/core/attr/meta-attr-filter.d.ts +10 -0
- package/dist/core/attr/meta-attr-filter.d.ts.map +1 -0
- package/dist/core/attr/meta-attr-filter.js +56 -0
- package/dist/core/attr/meta-attr-filter.js.map +1 -0
- package/dist/core/attr/meta-attr-properties.d.ts +9 -0
- package/dist/core/attr/meta-attr-properties.d.ts.map +1 -0
- package/dist/core/attr/meta-attr-properties.js +22 -0
- package/dist/core/attr/meta-attr-properties.js.map +1 -0
- package/dist/core/attr/meta-attr-stringarray.d.ts +9 -0
- package/dist/core/attr/meta-attr-stringarray.d.ts.map +1 -0
- package/dist/core/attr/meta-attr-stringarray.js +29 -0
- package/dist/core/attr/meta-attr-stringarray.js.map +1 -0
- package/dist/core/attr/meta-attr.d.ts +37 -0
- package/dist/core/attr/meta-attr.d.ts.map +1 -0
- package/dist/core/attr/meta-attr.js +97 -0
- package/dist/core/attr/meta-attr.js.map +1 -0
- package/dist/core/export-json.d.ts +29 -0
- package/dist/core/export-json.d.ts.map +1 -0
- package/dist/core/export-json.js +45 -0
- package/dist/core/export-json.js.map +1 -0
- package/dist/core/field/field-constants.d.ts +40 -0
- package/dist/core/field/field-constants.d.ts.map +1 -0
- package/dist/core/field/field-constants.js +66 -0
- package/dist/core/field/field-constants.js.map +1 -0
- package/dist/core/field/field-schema.d.ts +6 -0
- package/dist/core/field/field-schema.d.ts.map +1 -0
- package/dist/core/field/field-schema.js +92 -0
- package/dist/core/field/field-schema.js.map +1 -0
- package/dist/core/field/meta-field.d.ts +50 -0
- package/dist/core/field/meta-field.d.ts.map +1 -0
- package/dist/core/field/meta-field.js +121 -0
- package/dist/core/field/meta-field.js.map +1 -0
- 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-constants.d.ts +19 -0
- package/dist/core/identity/identity-constants.d.ts.map +1 -0
- package/dist/core/identity/identity-constants.js +35 -0
- package/dist/core/identity/identity-constants.js.map +1 -0
- package/dist/core/identity/identity-schema.d.ts +6 -0
- package/dist/core/identity/identity-schema.d.ts.map +1 -0
- package/dist/core/identity/identity-schema.js +55 -0
- package/dist/core/identity/identity-schema.js.map +1 -0
- package/dist/core/identity/meta-identity.d.ts +71 -0
- package/dist/core/identity/meta-identity.d.ts.map +1 -0
- package/dist/core/identity/meta-identity.js +129 -0
- package/dist/core/identity/meta-identity.js.map +1 -0
- package/dist/core/index.d.ts +6 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +11 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/object/meta-object.d.ts +39 -0
- package/dist/core/object/meta-object.d.ts.map +1 -0
- package/dist/core/object/meta-object.js +80 -0
- package/dist/core/object/meta-object.js.map +1 -0
- package/dist/core/object/object-constants.d.ts +5 -0
- package/dist/core/object/object-constants.d.ts.map +1 -0
- package/dist/core/object/object-constants.js +18 -0
- package/dist/core/object/object-constants.js.map +1 -0
- package/dist/core/object/object-schema.d.ts +4 -0
- package/dist/core/object/object-schema.d.ts.map +1 -0
- package/dist/core/object/object-schema.js +5 -0
- package/dist/core/object/object-schema.js.map +1 -0
- package/dist/core/parser-yaml.d.ts +3 -0
- package/dist/core/parser-yaml.d.ts.map +1 -0
- package/dist/core/parser-yaml.js +39 -0
- package/dist/core/parser-yaml.js.map +1 -0
- package/dist/core/query/query-constants.d.ts +20 -0
- package/dist/core/query/query-constants.d.ts.map +1 -0
- package/dist/core/query/query-constants.js +56 -0
- package/dist/core/query/query-constants.js.map +1 -0
- package/dist/core/relationship/find-reference.d.ts +22 -0
- package/dist/core/relationship/find-reference.d.ts.map +1 -0
- package/dist/core/relationship/find-reference.js +29 -0
- package/dist/core/relationship/find-reference.js.map +1 -0
- package/dist/core/relationship/meta-relationship.d.ts +11 -0
- package/dist/core/relationship/meta-relationship.d.ts.map +1 -0
- package/dist/core/relationship/meta-relationship.js +27 -0
- package/dist/core/relationship/meta-relationship.js.map +1 -0
- package/dist/core/relationship/relationship-constants.d.ts +14 -0
- package/dist/core/relationship/relationship-constants.d.ts.map +1 -0
- package/dist/core/relationship/relationship-constants.js +28 -0
- package/dist/core/relationship/relationship-constants.js.map +1 -0
- package/dist/core/relationship/relationship-schema.d.ts +4 -0
- package/dist/core/relationship/relationship-schema.d.ts.map +1 -0
- package/dist/core/relationship/relationship-schema.js +37 -0
- package/dist/core/relationship/relationship-schema.js.map +1 -0
- package/dist/core/validator/meta-validator.d.ts +29 -0
- package/dist/core/validator/meta-validator.d.ts.map +1 -0
- package/dist/core/validator/meta-validator.js +49 -0
- package/dist/core/validator/meta-validator.js.map +1 -0
- package/dist/core/validator/validator-constants.d.ts +11 -0
- package/dist/core/validator/validator-constants.d.ts.map +1 -0
- package/dist/core/validator/validator-constants.js +25 -0
- package/dist/core/validator/validator-constants.js.map +1 -0
- package/dist/core/validator/validator-schema.d.ts +4 -0
- package/dist/core/validator/validator-schema.d.ts.map +1 -0
- package/dist/core/validator/validator-schema.js +38 -0
- package/dist/core/validator/validator-schema.js.map +1 -0
- package/dist/core/yaml-desugar.d.ts +10 -0
- package/dist/core/yaml-desugar.d.ts.map +1 -0
- package/dist/core/yaml-desugar.js +99 -0
- package/dist/core/yaml-desugar.js.map +1 -0
- 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 +20 -0
- package/dist/core-types.d.ts.map +1 -0
- package/dist/core-types.js +225 -0
- package/dist/core-types.js.map +1 -0
- package/dist/data-converter.d.ts +17 -0
- package/dist/data-converter.d.ts.map +1 -0
- package/dist/data-converter.js +117 -0
- package/dist/data-converter.js.map +1 -0
- package/dist/data-type.d.ts +15 -0
- package/dist/data-type.d.ts.map +1 -0
- package/dist/data-type.js +25 -0
- package/dist/data-type.js.map +1 -0
- 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 +26 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +59 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +70 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +76 -0
- package/dist/index.js.map +1 -0
- package/dist/loader/meta-data-loader.d.ts +87 -0
- package/dist/loader/meta-data-loader.d.ts.map +1 -0
- package/dist/loader/meta-data-loader.js +232 -0
- package/dist/loader/meta-data-loader.js.map +1 -0
- package/dist/loader/meta-data-source.d.ts +23 -0
- package/dist/loader/meta-data-source.d.ts.map +1 -0
- package/dist/loader/meta-data-source.js +20 -0
- package/dist/loader/meta-data-source.js.map +1 -0
- package/dist/loader/validation-passes.d.ts +7 -0
- package/dist/loader/validation-passes.d.ts.map +1 -0
- package/dist/loader/validation-passes.js +244 -0
- package/dist/loader/validation-passes.js.map +1 -0
- 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/naming.d.ts +27 -0
- package/dist/naming.d.ts.map +1 -0
- package/dist/naming.js +72 -0
- package/dist/naming.js.map +1 -0
- package/dist/object-serializer.d.ts +10 -0
- package/dist/object-serializer.d.ts.map +1 -0
- package/dist/object-serializer.js +128 -0
- package/dist/object-serializer.js.map +1 -0
- package/dist/overlay.d.ts +2 -0
- package/dist/overlay.d.ts.map +1 -0
- package/dist/overlay.js +6 -0
- package/dist/overlay.js.map +1 -0
- package/dist/parser-core.d.ts +47 -0
- package/dist/parser-core.d.ts.map +1 -0
- package/dist/parser-core.js +516 -0
- package/dist/parser-core.js.map +1 -0
- package/dist/parser-json.d.ts +4 -0
- package/dist/parser-json.d.ts.map +1 -0
- package/dist/parser-json.js +19 -0
- package/dist/parser-json.js.map +1 -0
- 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-constants.d.ts +5 -0
- package/dist/persistence/db/db-constants.d.ts.map +1 -0
- package/dist/persistence/db/db-constants.js +6 -0
- package/dist/persistence/db/db-constants.js.map +1 -0
- package/dist/persistence/db/db-provider.d.ts +3 -0
- package/dist/persistence/db/db-provider.d.ts.map +1 -0
- package/dist/persistence/db/db-provider.js +29 -0
- package/dist/persistence/db/db-provider.js.map +1 -0
- package/dist/persistence/db/db-schema.d.ts +8 -0
- package/dist/persistence/db/db-schema.d.ts.map +1 -0
- package/dist/persistence/db/db-schema.js +27 -0
- package/dist/persistence/db/db-schema.js.map +1 -0
- package/dist/persistence/origin/meta-origin.d.ts +32 -0
- package/dist/persistence/origin/meta-origin.d.ts.map +1 -0
- package/dist/persistence/origin/meta-origin.js +55 -0
- package/dist/persistence/origin/meta-origin.js.map +1 -0
- package/dist/persistence/origin/origin-constants.d.ts +12 -0
- package/dist/persistence/origin/origin-constants.d.ts.map +1 -0
- package/dist/persistence/origin/origin-constants.js +27 -0
- package/dist/persistence/origin/origin-constants.js.map +1 -0
- package/dist/persistence/origin/origin-schema.d.ts +4 -0
- package/dist/persistence/origin/origin-schema.d.ts.map +1 -0
- package/dist/persistence/origin/origin-schema.js +49 -0
- package/dist/persistence/origin/origin-schema.js.map +1 -0
- package/dist/persistence/source/meta-source.d.ts +18 -0
- package/dist/persistence/source/meta-source.d.ts.map +1 -0
- package/dist/persistence/source/meta-source.js +31 -0
- package/dist/persistence/source/meta-source.js.map +1 -0
- package/dist/persistence/source/source-constants.d.ts +16 -0
- package/dist/persistence/source/source-constants.d.ts.map +1 -0
- package/dist/persistence/source/source-constants.js +28 -0
- package/dist/persistence/source/source-constants.js.map +1 -0
- package/dist/presentation/layout/layout-constants.d.ts +10 -0
- package/dist/presentation/layout/layout-constants.d.ts.map +1 -0
- package/dist/presentation/layout/layout-constants.js +21 -0
- package/dist/presentation/layout/layout-constants.js.map +1 -0
- package/dist/presentation/layout/layout-schema.d.ts +4 -0
- package/dist/presentation/layout/layout-schema.d.ts.map +1 -0
- package/dist/presentation/layout/layout-schema.js +46 -0
- package/dist/presentation/layout/layout-schema.js.map +1 -0
- package/dist/presentation/layout/meta-layout.d.ts +23 -0
- package/dist/presentation/layout/meta-layout.d.ts.map +1 -0
- package/dist/presentation/layout/meta-layout.js +47 -0
- package/dist/presentation/layout/meta-layout.js.map +1 -0
- package/dist/presentation/view/meta-view.d.ts +4 -0
- package/dist/presentation/view/meta-view.d.ts.map +1 -0
- package/dist/presentation/view/meta-view.js +8 -0
- package/dist/presentation/view/meta-view.js.map +1 -0
- package/dist/presentation/view/view-constants.d.ts +20 -0
- package/dist/presentation/view/view-constants.d.ts.map +1 -0
- package/dist/presentation/view/view-constants.js +47 -0
- package/dist/presentation/view/view-constants.js.map +1 -0
- package/dist/presentation/view/view-schema.d.ts +4 -0
- package/dist/presentation/view/view-schema.d.ts.map +1 -0
- package/dist/presentation/view/view-schema.js +15 -0
- package/dist/presentation/view/view-schema.js.map +1 -0
- package/dist/provider.d.ts +20 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.js +58 -0
- package/dist/provider.js.map +1 -0
- package/dist/registry.d.ts +89 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +107 -0
- package/dist/registry.js.map +1 -0
- package/dist/serializer-json.d.ts +16 -0
- package/dist/serializer-json.d.ts.map +1 -0
- package/dist/serializer-json.js +154 -0
- package/dist/serializer-json.js.map +1 -0
- package/dist/shared/base-types.d.ts +23 -0
- package/dist/shared/base-types.d.ts.map +1 -0
- package/dist/shared/base-types.js +43 -0
- package/dist/shared/base-types.js.map +1 -0
- package/dist/shared/meta-data.d.ts +123 -0
- package/dist/shared/meta-data.d.ts.map +1 -0
- package/dist/shared/meta-data.js +365 -0
- package/dist/shared/meta-data.js.map +1 -0
- package/dist/shared/meta-root.d.ts +12 -0
- package/dist/shared/meta-root.d.ts.map +1 -0
- package/dist/shared/meta-root.js +24 -0
- package/dist/shared/meta-root.js.map +1 -0
- package/dist/shared/structural.d.ts +20 -0
- package/dist/shared/structural.d.ts.map +1 -0
- package/dist/shared/structural.js +49 -0
- package/dist/shared/structural.js.map +1 -0
- package/dist/subtype-rules.d.ts +8 -0
- package/dist/subtype-rules.d.ts.map +1 -0
- package/dist/subtype-rules.js +34 -0
- package/dist/subtype-rules.js.map +1 -0
- package/dist/super-resolve.d.ts +34 -0
- package/dist/super-resolve.d.ts.map +1 -0
- package/dist/super-resolve.js +124 -0
- package/dist/super-resolve.js.map +1 -0
- package/package.json +50 -0
- package/src/attr-class-map.ts +64 -0
- package/src/attr-schema-validate.ts +134 -0
- package/src/core/attr/attr-constants.ts +31 -0
- package/src/core/attr/meta-attr-filter.ts +67 -0
- package/src/core/attr/meta-attr-properties.ts +26 -0
- package/src/core/attr/meta-attr-stringarray.ts +31 -0
- package/src/core/attr/meta-attr.ts +125 -0
- package/src/core/export-json.ts +66 -0
- package/src/core/field/field-constants.ts +79 -0
- package/src/core/field/field-schema.ts +121 -0
- package/src/core/field/meta-field.ts +179 -0
- package/src/core/file-meta-data-loader.ts +89 -0
- package/src/core/file-source.ts +52 -0
- package/src/core/identity/identity-constants.ts +44 -0
- package/src/core/identity/identity-schema.ts +80 -0
- package/src/core/identity/meta-identity.ts +148 -0
- package/src/core/index.ts +12 -0
- package/src/core/object/meta-object.ts +151 -0
- package/src/core/object/object-constants.ts +21 -0
- package/src/core/object/object-schema.ts +7 -0
- package/src/core/parser-yaml.ts +54 -0
- package/src/core/query/query-constants.ts +66 -0
- package/src/core/relationship/find-reference.ts +44 -0
- package/src/core/relationship/meta-relationship.ts +36 -0
- package/src/core/relationship/relationship-constants.ts +38 -0
- package/src/core/relationship/relationship-schema.ts +49 -0
- package/src/core/validator/meta-validator.ts +62 -0
- package/src/core/validator/validator-constants.ts +31 -0
- package/src/core/validator/validator-schema.ts +50 -0
- package/src/core/yaml-desugar.ts +145 -0
- package/src/core-types.ts +329 -0
- package/src/data-converter.ts +125 -0
- package/src/data-type.ts +33 -0
- package/src/errors.ts +68 -0
- package/src/index.ts +165 -0
- package/src/loader/meta-data-loader.ts +307 -0
- package/src/loader/meta-data-source.ts +35 -0
- package/src/loader/validation-passes.ts +370 -0
- package/src/naming.ts +86 -0
- package/src/object-serializer.ts +153 -0
- package/src/overlay.ts +5 -0
- package/src/parser-core.ts +815 -0
- package/src/parser-json.ts +28 -0
- package/src/persistence/db/db-constants.ts +6 -0
- package/src/persistence/db/db-provider.ts +36 -0
- package/src/persistence/db/db-schema.ts +40 -0
- package/src/persistence/origin/meta-origin.ts +67 -0
- package/src/persistence/origin/origin-constants.ts +35 -0
- package/src/persistence/origin/origin-schema.ts +66 -0
- package/src/persistence/source/meta-source.ts +38 -0
- package/src/persistence/source/source-constants.ts +35 -0
- package/src/presentation/layout/layout-constants.ts +27 -0
- package/src/presentation/layout/layout-schema.ts +62 -0
- package/src/presentation/layout/meta-layout.ts +61 -0
- package/src/presentation/view/meta-view.ts +8 -0
- package/src/presentation/view/view-constants.ts +53 -0
- package/src/presentation/view/view-schema.ts +21 -0
- package/src/provider.ts +85 -0
- package/src/registry.ts +190 -0
- package/src/serializer-json.ts +210 -0
- package/src/shared/base-types.ts +52 -0
- package/src/shared/meta-data.ts +443 -0
- package/src/shared/meta-root.ts +33 -0
- package/src/shared/structural.ts +62 -0
- package/src/subtype-rules.ts +56 -0
- package/src/super-resolve.ts +147 -0
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
// Attribute schemas — Phase A2.
|
|
2
|
+
//
|
|
3
|
+
// Per (type, subType) attr inventories consumed by registerCoreTypes()
|
|
4
|
+
// (core-types.ts) and the A3 validation pass (attr-schema-validate.ts).
|
|
5
|
+
//
|
|
6
|
+
// Sourced from constants.ts (attr names), the src/meta/* node accessors (which
|
|
7
|
+
// attrs each subtype reads), the conformance fixtures (real usage + `required`
|
|
8
|
+
// determination), and CLAUDE.md (descriptions, defaults, allowedValues).
|
|
9
|
+
//
|
|
10
|
+
// `required: true` is reserved for attrs that EVERY conformance fixture with
|
|
11
|
+
// that subtype supplies AND that are semantically mandatory. Everything else
|
|
12
|
+
// is `required: false` (Phase A3 validation depends on this being conservative).
|
|
13
|
+
//
|
|
14
|
+
// This module is pure declarative data — no logic, no registration. It is
|
|
15
|
+
// split out of core-types.ts purely so the registration logic stays readable.
|
|
16
|
+
import { SUBTYPE_BASE, VALIDATOR_SUBTYPE_REQUIRED, VALIDATOR_SUBTYPE_LENGTH, VALIDATOR_SUBTYPE_REGEX, VALIDATOR_SUBTYPE_NUMERIC, VALIDATOR_SUBTYPE_ARRAY, IDENTITY_SUBTYPE_PRIMARY, IDENTITY_SUBTYPE_SECONDARY, IDENTITY_SUBTYPE_REFERENCE, ORIGIN_SUBTYPE_PASSTHROUGH, ORIGIN_SUBTYPE_AGGREGATE,
|
|
17
|
+
// attr-subtype value-type constants
|
|
18
|
+
ATTR_SUBTYPE_STRING, ATTR_SUBTYPE_INT, ATTR_SUBTYPE_BOOLEAN, ATTR_SUBTYPE_STRINGARRAY,
|
|
19
|
+
// attr-name constants
|
|
20
|
+
FIELD_ATTR_OBJECT_REF, FIELD_ATTR_REQUIRED, FIELD_ATTR_UNIQUE, FIELD_ATTR_DEFAULT, FIELD_ATTR_MAX_LENGTH, FIELD_ATTR_PRECISION, FIELD_ATTR_SCALE, FIELD_ATTR_FILTERABLE, FIELD_ATTR_SORTABLE, FIELD_ATTR_SORTABLE_DEFAULT_ORDER, FIELD_ATTR_CURRENCY, FIELD_ATTR_CURRENCY_DEFAULT, FIELD_ATTR_AUTO_SET, IDENTITY_ATTR_FIELDS, IDENTITY_ATTR_GENERATION, IDENTITY_ATTR_UNIQUE, IDENTITY_REFERENCE_ATTR_REFERENCES, IDENTITY_REFERENCE_ATTR_ENFORCE, GENERATION_VALUES, RELATIONSHIP_ATTR_CARDINALITY, RELATIONSHIP_ATTR_OBJECT_REF, RELATIONSHIP_ATTR_JOIN_ENTITY, RELATIONSHIP_ATTR_JOIN_FIELDS, VALIDATOR_ATTR_PATTERN, VALIDATOR_ATTR_MIN, VALIDATOR_ATTR_MAX, AUTO_SET_VALUES, SORT_ORDER_VALUES, OBJECT_JAVA_RUNTIME_VALUES, OBJECT_ATTR_JAVA_RUNTIME, ORIGIN_PASSTHROUGH_ATTR_FROM, ORIGIN_PASSTHROUGH_ATTR_VIA, ORIGIN_AGGREGATE_ATTR_AGG, ORIGIN_AGGREGATE_ATTR_OF, ORIGIN_AGGREGATE_ATTR_VIA, AGGREGATE_FUNCTIONS, LAYOUT_DATA_GRID_ATTR_PAGE_SIZE, LAYOUT_DATA_GRID_ATTR_DEFAULT_SORT_FIELD, LAYOUT_DATA_GRID_ATTR_DEFAULT_SORT_ORDER, LAYOUT_DATA_GRID_ATTR_FILTERABLE, LAYOUT_DATA_GRID_ATTR_FILTER, LAYOUT_DATA_GRID_ATTR_COLUMNS, VIEW_CURRENCY_ATTR_LOCALE, VIEW_CURRENCY_ATTR_LOCALE_DEFAULT, } from "./constants.js";
|
|
21
|
+
/** Attrs common to every field subtype (codegen-ts column mapper + Project D filter/sort). */
|
|
22
|
+
export const commonFieldAttrs = [
|
|
23
|
+
{
|
|
24
|
+
name: FIELD_ATTR_OBJECT_REF,
|
|
25
|
+
valueType: ATTR_SUBTYPE_STRING,
|
|
26
|
+
required: false,
|
|
27
|
+
description: "Name (or FQN) of the target object an object-typed field nests — drives nested-object (de)serialization.",
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: FIELD_ATTR_REQUIRED,
|
|
31
|
+
valueType: ATTR_SUBTYPE_BOOLEAN,
|
|
32
|
+
required: false,
|
|
33
|
+
description: "When true, the field is NOT NULL. Equivalent to attaching a validator.required child.",
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
name: FIELD_ATTR_UNIQUE,
|
|
37
|
+
valueType: ATTR_SUBTYPE_BOOLEAN,
|
|
38
|
+
required: false,
|
|
39
|
+
description: "When true, the field gets a column-level UNIQUE constraint.",
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: FIELD_ATTR_DEFAULT,
|
|
43
|
+
// @default is polymorphic: its value type follows the OWNING field's
|
|
44
|
+
// subtype — a boolean field defaults to a boolean, an int field to a
|
|
45
|
+
// number, a string field to a string. No single fixed valueType can
|
|
46
|
+
// capture that, so valueType is intentionally omitted (declared-but-untyped).
|
|
47
|
+
// The parser stores the raw JSON value type-preserved (no coercion).
|
|
48
|
+
// Typed conversion happens at consumption time via MetaField.defaultValue(),
|
|
49
|
+
// which applies the field's own DataType — Java parity with
|
|
50
|
+
// MetaField.getDefaultValue() / DataConverter.toTypeSafe(getDataType(), o).
|
|
51
|
+
required: false,
|
|
52
|
+
description: "Default value applied to the column when no value is supplied. Its type follows the field's own subtype (string / boolean / number / ...). Converted at consumption time via MetaField.defaultValue().",
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
name: FIELD_ATTR_MAX_LENGTH,
|
|
56
|
+
valueType: ATTR_SUBTYPE_INT,
|
|
57
|
+
required: false,
|
|
58
|
+
description: "Maximum character length for string-typed fields (drives VARCHAR(n)).",
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: FIELD_ATTR_PRECISION,
|
|
62
|
+
valueType: ATTR_SUBTYPE_INT,
|
|
63
|
+
required: false,
|
|
64
|
+
description: "Total number of significant digits for decimal-typed fields.",
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
name: FIELD_ATTR_SCALE,
|
|
68
|
+
valueType: ATTR_SUBTYPE_INT,
|
|
69
|
+
required: false,
|
|
70
|
+
description: "Number of digits to the right of the decimal point for decimal-typed fields.",
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
name: FIELD_ATTR_FILTERABLE,
|
|
74
|
+
valueType: ATTR_SUBTYPE_BOOLEAN,
|
|
75
|
+
required: false,
|
|
76
|
+
description: "When true, the field is exposed in generated CRUD filter allowlists (Project D filter layer).",
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
name: FIELD_ATTR_SORTABLE,
|
|
80
|
+
valueType: ATTR_SUBTYPE_BOOLEAN,
|
|
81
|
+
required: false,
|
|
82
|
+
description: "When true, the field is exposed in generated CRUD sort allowlists. Inherits from @filterable by default; set false to opt out.",
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
name: FIELD_ATTR_SORTABLE_DEFAULT_ORDER,
|
|
86
|
+
valueType: ATTR_SUBTYPE_STRING,
|
|
87
|
+
required: false,
|
|
88
|
+
allowedValues: [...SORT_ORDER_VALUES],
|
|
89
|
+
description: "Default sort direction applied when this field is the default sort field.",
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
name: FIELD_ATTR_AUTO_SET,
|
|
93
|
+
valueType: ATTR_SUBTYPE_STRING,
|
|
94
|
+
required: false,
|
|
95
|
+
allowedValues: [...AUTO_SET_VALUES],
|
|
96
|
+
description: "Auto-set semantics for timestamp-like fields: 'onCreate' stamps on insert, 'onUpdate' stamps on every write.",
|
|
97
|
+
},
|
|
98
|
+
];
|
|
99
|
+
/** The @currency attr — only on field.currency. */
|
|
100
|
+
export const currencyFieldAttr = {
|
|
101
|
+
name: FIELD_ATTR_CURRENCY,
|
|
102
|
+
valueType: ATTR_SUBTYPE_STRING,
|
|
103
|
+
required: false,
|
|
104
|
+
default: FIELD_ATTR_CURRENCY_DEFAULT,
|
|
105
|
+
description: "ISO 4217 currency code for a currency-subtype field. Storage is integer minor units; defaults to 'USD' when omitted.",
|
|
106
|
+
};
|
|
107
|
+
/** Attrs on view.currency. */
|
|
108
|
+
export const currencyViewAttrs = [
|
|
109
|
+
{
|
|
110
|
+
name: VIEW_CURRENCY_ATTR_LOCALE,
|
|
111
|
+
valueType: ATTR_SUBTYPE_STRING,
|
|
112
|
+
required: false,
|
|
113
|
+
default: VIEW_CURRENCY_ATTR_LOCALE_DEFAULT,
|
|
114
|
+
description: "BCP 47 locale code controlling currency display formatting. Defaults to 'en-US' when omitted.",
|
|
115
|
+
},
|
|
116
|
+
];
|
|
117
|
+
/** Attrs common to every object subtype. */
|
|
118
|
+
export const objectAttrs = [
|
|
119
|
+
{
|
|
120
|
+
name: OBJECT_ATTR_JAVA_RUNTIME,
|
|
121
|
+
valueType: ATTR_SUBTYPE_STRING,
|
|
122
|
+
required: false,
|
|
123
|
+
allowedValues: [...OBJECT_JAVA_RUNTIME_VALUES],
|
|
124
|
+
description: "Java runtime materialization strategy for this object (pojo / map / proxy). Ignored by non-Java implementations.",
|
|
125
|
+
},
|
|
126
|
+
];
|
|
127
|
+
/** Attrs common to every relationship subtype. */
|
|
128
|
+
export const relationshipAttrs = [
|
|
129
|
+
{
|
|
130
|
+
name: RELATIONSHIP_ATTR_CARDINALITY,
|
|
131
|
+
valueType: ATTR_SUBTYPE_STRING,
|
|
132
|
+
required: false,
|
|
133
|
+
// No allowedValues: @cardinality is an open string at the metamodel level
|
|
134
|
+
// (MetaRelationship.cardinality returns `string | undefined`). The Java
|
|
135
|
+
// canonical fixtures use composite forms such as "many-to-one"; the
|
|
136
|
+
// CARDINALITY_VALUES ("one"/"many") constant is a TS codegen convenience,
|
|
137
|
+
// NOT a closed metamodel enum. A3 must not reject the Java-canonical values.
|
|
138
|
+
description: "Cardinality of the relationship target (e.g. 'one', 'many', 'many-to-one').",
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
name: RELATIONSHIP_ATTR_OBJECT_REF,
|
|
142
|
+
valueType: ATTR_SUBTYPE_STRING,
|
|
143
|
+
required: false,
|
|
144
|
+
description: "Name or fully-qualified name of the target object the relationship points to (e.g. 'Week' or 'acme::vehicle::Car').",
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
name: RELATIONSHIP_ATTR_JOIN_ENTITY,
|
|
148
|
+
valueType: ATTR_SUBTYPE_STRING,
|
|
149
|
+
required: false,
|
|
150
|
+
description: "Join-table entity name for N:M relationships.",
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
name: RELATIONSHIP_ATTR_JOIN_FIELDS,
|
|
154
|
+
valueType: ATTR_SUBTYPE_STRINGARRAY,
|
|
155
|
+
required: false,
|
|
156
|
+
description: "Join-table column names for N:M relationships.",
|
|
157
|
+
},
|
|
158
|
+
];
|
|
159
|
+
/** Attrs on identity.primary / identity.secondary — @fields is required. */
|
|
160
|
+
export const identityFieldsAttr = {
|
|
161
|
+
name: IDENTITY_ATTR_FIELDS,
|
|
162
|
+
valueType: ATTR_SUBTYPE_STRINGARRAY,
|
|
163
|
+
required: true,
|
|
164
|
+
description: "The field name(s) composing this identity. Single-element for a simple PK/index, multiple for a composite.",
|
|
165
|
+
};
|
|
166
|
+
const primaryIdentityAttrs = [
|
|
167
|
+
{ ...identityFieldsAttr },
|
|
168
|
+
{
|
|
169
|
+
name: IDENTITY_ATTR_GENERATION,
|
|
170
|
+
valueType: ATTR_SUBTYPE_STRING,
|
|
171
|
+
required: false,
|
|
172
|
+
allowedValues: [...GENERATION_VALUES],
|
|
173
|
+
description: "Primary-key value generation strategy: 'increment' (auto-increment), 'uuid', or 'assigned' (caller-supplied).",
|
|
174
|
+
},
|
|
175
|
+
];
|
|
176
|
+
const secondaryIdentityAttrs = [
|
|
177
|
+
{ ...identityFieldsAttr },
|
|
178
|
+
{
|
|
179
|
+
name: IDENTITY_ATTR_UNIQUE,
|
|
180
|
+
valueType: ATTR_SUBTYPE_BOOLEAN,
|
|
181
|
+
required: false,
|
|
182
|
+
description: "When true (default), the secondary identity is a UNIQUE index; false makes it a plain (non-unique) index.",
|
|
183
|
+
},
|
|
184
|
+
];
|
|
185
|
+
const referenceIdentityAttrs = [
|
|
186
|
+
{ ...identityFieldsAttr },
|
|
187
|
+
{
|
|
188
|
+
name: IDENTITY_REFERENCE_ATTR_REFERENCES,
|
|
189
|
+
valueType: ATTR_SUBTYPE_STRING,
|
|
190
|
+
required: true,
|
|
191
|
+
description: "Target of the reference. Bare entity name (e.g. 'Program') resolves to that entity's primary identity. " +
|
|
192
|
+
"Dotted forms ('Program.id' or 'Program.fieldA,fieldB') target an explicit field set on the entity.",
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
name: IDENTITY_REFERENCE_ATTR_ENFORCE,
|
|
196
|
+
valueType: ATTR_SUBTYPE_BOOLEAN,
|
|
197
|
+
required: false,
|
|
198
|
+
description: "When true (default), the backend physically enforces the reference (SQL FK constraint, " +
|
|
199
|
+
"document validation rule, graph edge guarantee). Set false to declare a logical reference " +
|
|
200
|
+
"for navigation/typing/codegen only — the value may dangle at the backend level.",
|
|
201
|
+
},
|
|
202
|
+
];
|
|
203
|
+
/** Attrs on origin.passthrough — @from is required. */
|
|
204
|
+
const passthroughOriginAttrs = [
|
|
205
|
+
{
|
|
206
|
+
name: ORIGIN_PASSTHROUGH_ATTR_FROM,
|
|
207
|
+
valueType: ATTR_SUBTYPE_STRING,
|
|
208
|
+
required: true,
|
|
209
|
+
description: "Dotted Entity.field reference identifying the source value this projection field passes through (e.g. 'Program.title').",
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
name: ORIGIN_PASSTHROUGH_ATTR_VIA,
|
|
213
|
+
valueType: ATTR_SUBTYPE_STRING,
|
|
214
|
+
required: false,
|
|
215
|
+
description: "Optional dotted relationship path used to reach the source entity (e.g. 'Program.weeks').",
|
|
216
|
+
},
|
|
217
|
+
];
|
|
218
|
+
/** Attrs on origin.aggregate — @agg, @of, @via all required. */
|
|
219
|
+
const aggregateOriginAttrs = [
|
|
220
|
+
{
|
|
221
|
+
name: ORIGIN_AGGREGATE_ATTR_AGG,
|
|
222
|
+
valueType: ATTR_SUBTYPE_STRING,
|
|
223
|
+
required: true,
|
|
224
|
+
allowedValues: [...AGGREGATE_FUNCTIONS],
|
|
225
|
+
description: "Aggregate function applied over the relationship path: count, sum, avg, min, or max.",
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
name: ORIGIN_AGGREGATE_ATTR_OF,
|
|
229
|
+
valueType: ATTR_SUBTYPE_STRING,
|
|
230
|
+
required: true,
|
|
231
|
+
description: "Dotted Entity.field reference identifying the column being aggregated (e.g. 'Week.durationMinutes').",
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
name: ORIGIN_AGGREGATE_ATTR_VIA,
|
|
235
|
+
valueType: ATTR_SUBTYPE_STRING,
|
|
236
|
+
required: true,
|
|
237
|
+
description: "Dotted relationship path from the base entity to the aggregated rows (e.g. 'Program.weeks' or 'Program.weeks.workouts').",
|
|
238
|
+
},
|
|
239
|
+
];
|
|
240
|
+
/** Attrs on layout.dataGrid. */
|
|
241
|
+
export const dataGridLayoutAttrs = [
|
|
242
|
+
{
|
|
243
|
+
name: LAYOUT_DATA_GRID_ATTR_PAGE_SIZE,
|
|
244
|
+
valueType: ATTR_SUBTYPE_INT,
|
|
245
|
+
required: false,
|
|
246
|
+
description: "Number of rows per page in the generated data grid.",
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
name: LAYOUT_DATA_GRID_ATTR_DEFAULT_SORT_FIELD,
|
|
250
|
+
valueType: ATTR_SUBTYPE_STRING,
|
|
251
|
+
required: false,
|
|
252
|
+
description: "Field name the grid is sorted by on initial render. Must reference an actual field on the entity.",
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
name: LAYOUT_DATA_GRID_ATTR_DEFAULT_SORT_ORDER,
|
|
256
|
+
valueType: ATTR_SUBTYPE_STRING,
|
|
257
|
+
required: false,
|
|
258
|
+
allowedValues: [...SORT_ORDER_VALUES],
|
|
259
|
+
description: "Initial sort direction for the default sort field: 'asc' or 'desc'.",
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
name: LAYOUT_DATA_GRID_ATTR_FILTERABLE,
|
|
263
|
+
valueType: ATTR_SUBTYPE_BOOLEAN,
|
|
264
|
+
required: false,
|
|
265
|
+
description: "When true, the generated grid exposes column filtering UI.",
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
name: LAYOUT_DATA_GRID_ATTR_FILTER,
|
|
269
|
+
valueType: ATTR_SUBTYPE_STRING,
|
|
270
|
+
required: false,
|
|
271
|
+
description: "JSON-encoded preset filter applied to the grid at the metadata level.",
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
name: LAYOUT_DATA_GRID_ATTR_COLUMNS,
|
|
275
|
+
valueType: ATTR_SUBTYPE_STRINGARRAY,
|
|
276
|
+
required: false,
|
|
277
|
+
description: "Flat ordered list of field names to display as grid columns.",
|
|
278
|
+
},
|
|
279
|
+
];
|
|
280
|
+
/** @min / @max shared by length, numeric, array, and the base validator. */
|
|
281
|
+
const minMaxValidatorAttrs = [
|
|
282
|
+
{
|
|
283
|
+
name: VALIDATOR_ATTR_MIN,
|
|
284
|
+
valueType: ATTR_SUBTYPE_INT,
|
|
285
|
+
required: false,
|
|
286
|
+
description: "Minimum allowed value (length, numeric value, or array element count depending on the validator subtype).",
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
name: VALIDATOR_ATTR_MAX,
|
|
290
|
+
valueType: ATTR_SUBTYPE_INT,
|
|
291
|
+
required: false,
|
|
292
|
+
description: "Maximum allowed value (length, numeric value, or array element count depending on the validator subtype).",
|
|
293
|
+
},
|
|
294
|
+
];
|
|
295
|
+
/** Attrs per origin subtype. base has none; passthrough and aggregate carry their respective attrs. */
|
|
296
|
+
export const ORIGIN_ATTRS_MAP = new Map([
|
|
297
|
+
[SUBTYPE_BASE, []],
|
|
298
|
+
[ORIGIN_SUBTYPE_PASSTHROUGH, [...passthroughOriginAttrs]],
|
|
299
|
+
[ORIGIN_SUBTYPE_AGGREGATE, [...aggregateOriginAttrs]],
|
|
300
|
+
]);
|
|
301
|
+
/** Attrs per identity subtype. primary adds @generation; secondary adds @unique. */
|
|
302
|
+
export const IDENTITY_ATTRS_MAP = new Map([
|
|
303
|
+
[IDENTITY_SUBTYPE_PRIMARY, [...primaryIdentityAttrs]],
|
|
304
|
+
[IDENTITY_SUBTYPE_SECONDARY, [...secondaryIdentityAttrs]],
|
|
305
|
+
[IDENTITY_SUBTYPE_REFERENCE, [...referenceIdentityAttrs]],
|
|
306
|
+
]);
|
|
307
|
+
/** Attrs per validator subtype. Required uses none; regex adds @pattern. */
|
|
308
|
+
export const VALIDATOR_ATTRS_MAP = new Map([
|
|
309
|
+
[SUBTYPE_BASE, [...minMaxValidatorAttrs]],
|
|
310
|
+
[VALIDATOR_SUBTYPE_REQUIRED, []],
|
|
311
|
+
[VALIDATOR_SUBTYPE_LENGTH, [...minMaxValidatorAttrs]],
|
|
312
|
+
[VALIDATOR_SUBTYPE_REGEX, [
|
|
313
|
+
...minMaxValidatorAttrs,
|
|
314
|
+
{
|
|
315
|
+
name: VALIDATOR_ATTR_PATTERN,
|
|
316
|
+
valueType: ATTR_SUBTYPE_STRING,
|
|
317
|
+
required: false,
|
|
318
|
+
description: "Regular expression the value must match.",
|
|
319
|
+
},
|
|
320
|
+
]],
|
|
321
|
+
[VALIDATOR_SUBTYPE_NUMERIC, [...minMaxValidatorAttrs]],
|
|
322
|
+
[VALIDATOR_SUBTYPE_ARRAY, [...minMaxValidatorAttrs]],
|
|
323
|
+
]);
|
|
324
|
+
//# sourceMappingURL=core-attr-schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-attr-schemas.js","sourceRoot":"","sources":["../src/core-attr-schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { TypeRegistry } from "./registry.js";
|
|
2
|
+
import type { MetaDataTypeProvider } from "./provider.js";
|
|
3
|
+
import "./core/attr/meta-attr-stringarray.js";
|
|
4
|
+
import "./core/attr/meta-attr-filter.js";
|
|
5
|
+
import "./core/attr/meta-attr-properties.js";
|
|
6
|
+
/**
|
|
7
|
+
* The core metaobjects metamodel — the seven base types (object, field, attr,
|
|
8
|
+
* validator, view, identity, relationship) plus layout / source / origin and
|
|
9
|
+
* the metadata root. One provider per package: this is `@metaobjectsdev/metadata`'s.
|
|
10
|
+
*/
|
|
11
|
+
export declare const coreTypesProvider: MetaDataTypeProvider;
|
|
12
|
+
/** The default provider bundle — core metamodel types plus DB-domain attrs.
|
|
13
|
+
* Spread it to add more: `[...coreProviders, mine]`. */
|
|
14
|
+
export declare const coreProviders: readonly MetaDataTypeProvider[];
|
|
15
|
+
/**
|
|
16
|
+
* Register the core metamodel into an existing registry. Thin convenience
|
|
17
|
+
* wrapper over `coreTypesProvider`; prefer `composeRegistry(coreProviders)`.
|
|
18
|
+
*/
|
|
19
|
+
export declare function registerCoreTypes(registry: TypeRegistry): void;
|
|
20
|
+
//# sourceMappingURL=core-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-types.d.ts","sourceRoot":"","sources":["../src/core-types.ts"],"names":[],"mappings":"AACA,OAAO,EAAgE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC3G,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAY1D,OAAO,sCAAsC,CAAC;AAC9C,OAAO,iCAAiC,CAAC;AACzC,OAAO,qCAAqC,CAAC;AAiS7C;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,oBAM/B,CAAC;AAEF;yDACyD;AACzD,eAAO,MAAM,aAAa,EAAE,SAAS,oBAAoB,EAAoC,CAAC;AAE9F;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAE9D"}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
// registerCoreTypes() — Java's 7 base types (plus metadata wrapper) and their subtypes
|
|
2
|
+
import { TypeId, TypeRegistry } from "./registry.js";
|
|
3
|
+
import { dbProvider } from "./persistence/db/db-provider.js";
|
|
4
|
+
import {} from "./data-type.js";
|
|
5
|
+
import { MetaRoot } from "./shared/meta-root.js";
|
|
6
|
+
import { MetaObject } from "./core/object/meta-object.js";
|
|
7
|
+
import { MetaField } from "./core/field/meta-field.js";
|
|
8
|
+
import { attrClassFor } from "./attr-class-map.js";
|
|
9
|
+
// Import the attr subclasses for their self-registration side effect (each
|
|
10
|
+
// registers its subtype → class into attr-class-map at module load), so
|
|
11
|
+
// attrClassFor resolves the right class below. The base MetaAttr (the fallback)
|
|
12
|
+
// registers itself; importing a subclass transitively loads meta-attr.ts.
|
|
13
|
+
import "./core/attr/meta-attr-stringarray.js";
|
|
14
|
+
import "./core/attr/meta-attr-filter.js";
|
|
15
|
+
import "./core/attr/meta-attr-properties.js";
|
|
16
|
+
import { MetaValidator, MetaRequiredValidator, MetaLengthValidator, MetaRegexValidator, MetaNumericValidator, MetaArrayValidator, } from "./core/validator/meta-validator.js";
|
|
17
|
+
import { MetaView } from "./presentation/view/meta-view.js";
|
|
18
|
+
import { MetaIdentity, MetaPrimaryIdentity, MetaSecondaryIdentity, MetaReferenceIdentity, } from "./core/identity/meta-identity.js";
|
|
19
|
+
import { MetaRelationship } from "./core/relationship/meta-relationship.js";
|
|
20
|
+
import { MetaLayout } from "./presentation/layout/meta-layout.js";
|
|
21
|
+
import { MetaSource } from "./persistence/source/meta-source.js";
|
|
22
|
+
import { MetaOrigin, MetaPassthroughOrigin, MetaAggregateOrigin } from "./persistence/origin/meta-origin.js";
|
|
23
|
+
import { commonFieldAttrs, currencyFieldAttr } from "./core/field/field-schema.js";
|
|
24
|
+
import { objectAttrs } from "./core/object/object-schema.js";
|
|
25
|
+
import { relationshipAttrs } from "./core/relationship/relationship-schema.js";
|
|
26
|
+
import { identityFieldsAttr, IDENTITY_ATTRS_MAP } from "./core/identity/identity-schema.js";
|
|
27
|
+
import { VALIDATOR_ATTRS_MAP } from "./core/validator/validator-schema.js";
|
|
28
|
+
import { currencyViewAttrs } from "./presentation/view/view-schema.js";
|
|
29
|
+
import { dataGridLayoutAttrs } from "./presentation/layout/layout-schema.js";
|
|
30
|
+
import { ORIGIN_ATTRS_MAP } from "./persistence/origin/origin-schema.js";
|
|
31
|
+
import { TYPE_METADATA, TYPE_OBJECT, TYPE_FIELD, TYPE_ATTR, TYPE_VALIDATOR, TYPE_VIEW, TYPE_IDENTITY, TYPE_RELATIONSHIP, TYPE_LAYOUT, TYPE_SOURCE, TYPE_ORIGIN, SUBTYPE_ROOT, } from "./shared/base-types.js";
|
|
32
|
+
import { CHILD_RULE_WILDCARD } from "./shared/structural.js";
|
|
33
|
+
import { OBJECT_SUBTYPES, OBJECT_SUBTYPE_ENTITY } from "./core/object/object-constants.js";
|
|
34
|
+
import { FIELD_SUBTYPES, FIELD_SUBTYPE_CURRENCY } from "./core/field/field-constants.js";
|
|
35
|
+
import { ATTR_SUBTYPES } from "./core/attr/attr-constants.js";
|
|
36
|
+
import { VALIDATOR_SUBTYPES, VALIDATOR_SUBTYPE_REQUIRED, VALIDATOR_SUBTYPE_LENGTH, VALIDATOR_SUBTYPE_REGEX, VALIDATOR_SUBTYPE_NUMERIC, VALIDATOR_SUBTYPE_ARRAY, } from "./core/validator/validator-constants.js";
|
|
37
|
+
import { VIEW_SUBTYPES, VIEW_SUBTYPE_CURRENCY, } from "./presentation/view/view-constants.js";
|
|
38
|
+
import { IDENTITY_SUBTYPES, IDENTITY_SUBTYPE_PRIMARY, IDENTITY_SUBTYPE_SECONDARY, IDENTITY_SUBTYPE_REFERENCE, } from "./core/identity/identity-constants.js";
|
|
39
|
+
import { RELATIONSHIP_SUBTYPES } from "./core/relationship/relationship-constants.js";
|
|
40
|
+
import { LAYOUT_SUBTYPES, LAYOUT_SUBTYPE_DATA_GRID } from "./presentation/layout/layout-constants.js";
|
|
41
|
+
import { SOURCE_SUBTYPES } from "./persistence/source/source-constants.js";
|
|
42
|
+
import { ORIGIN_SUBTYPES, ORIGIN_SUBTYPE_PASSTHROUGH, ORIGIN_SUBTYPE_AGGREGATE, } from "./persistence/origin/origin-constants.js";
|
|
43
|
+
// ---------------------------------------------------------------------------
|
|
44
|
+
// The per-(type, subType) attribute schemas live in per-concern *-schema.ts
|
|
45
|
+
// modules (e.g. core/field/field-schema.ts, persistence/origin/origin-schema.ts).
|
|
46
|
+
// This file keeps only the registration logic: the def() helper, the
|
|
47
|
+
// subtype→class dispatch maps, and registerCoreTypes() itself.
|
|
48
|
+
// ---------------------------------------------------------------------------
|
|
49
|
+
function wildcard(childType) {
|
|
50
|
+
return {
|
|
51
|
+
childType,
|
|
52
|
+
childSubType: CHILD_RULE_WILDCARD,
|
|
53
|
+
childName: CHILD_RULE_WILDCARD,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function def(type, subType, description, childRules, NodeClass, attributes = [], dataType) {
|
|
57
|
+
const definition = {
|
|
58
|
+
typeId: new TypeId(type, subType),
|
|
59
|
+
description,
|
|
60
|
+
factory: (typeId, name) => {
|
|
61
|
+
const node = new NodeClass(typeId, name);
|
|
62
|
+
if (dataType !== undefined)
|
|
63
|
+
node.setDataType(dataType);
|
|
64
|
+
return node;
|
|
65
|
+
},
|
|
66
|
+
childRules,
|
|
67
|
+
attributes,
|
|
68
|
+
};
|
|
69
|
+
if (dataType !== undefined)
|
|
70
|
+
definition.dataType = dataType;
|
|
71
|
+
return definition;
|
|
72
|
+
}
|
|
73
|
+
/** Map from validator subtype string → concrete node constructor. */
|
|
74
|
+
const VALIDATOR_CLASS_MAP = new Map([
|
|
75
|
+
[VALIDATOR_SUBTYPE_REQUIRED, MetaRequiredValidator],
|
|
76
|
+
[VALIDATOR_SUBTYPE_LENGTH, MetaLengthValidator],
|
|
77
|
+
[VALIDATOR_SUBTYPE_REGEX, MetaRegexValidator],
|
|
78
|
+
[VALIDATOR_SUBTYPE_NUMERIC, MetaNumericValidator],
|
|
79
|
+
[VALIDATOR_SUBTYPE_ARRAY, MetaArrayValidator],
|
|
80
|
+
]);
|
|
81
|
+
/** Map from identity subtype string → concrete node constructor. */
|
|
82
|
+
const IDENTITY_CLASS_MAP = new Map([
|
|
83
|
+
[IDENTITY_SUBTYPE_PRIMARY, MetaPrimaryIdentity],
|
|
84
|
+
[IDENTITY_SUBTYPE_SECONDARY, MetaSecondaryIdentity],
|
|
85
|
+
[IDENTITY_SUBTYPE_REFERENCE, MetaReferenceIdentity],
|
|
86
|
+
]);
|
|
87
|
+
/** Map from origin subtype string → concrete node constructor. */
|
|
88
|
+
const ORIGIN_CLASS_MAP = new Map([
|
|
89
|
+
[ORIGIN_SUBTYPE_PASSTHROUGH, MetaPassthroughOrigin],
|
|
90
|
+
[ORIGIN_SUBTYPE_AGGREGATE, MetaAggregateOrigin],
|
|
91
|
+
]);
|
|
92
|
+
// ATTR_CLASS_MAP + attrClassFor live in the leaf module ./attr-class-map.ts
|
|
93
|
+
// (imported above) so MetaData.setAttr can resolve an attr subclass without
|
|
94
|
+
// importing this module — that import created a module-eval cycle. They are
|
|
95
|
+
// re-exported from the package index for the same public surface.
|
|
96
|
+
function registerCoreTypeDefs(registry) {
|
|
97
|
+
// metadata — 1 subtype (the document root: metadata.root)
|
|
98
|
+
registry.register(def(TYPE_METADATA, SUBTYPE_ROOT, "Root metadata document", [
|
|
99
|
+
wildcard(TYPE_OBJECT),
|
|
100
|
+
wildcard(TYPE_FIELD),
|
|
101
|
+
wildcard(TYPE_ATTR),
|
|
102
|
+
wildcard(TYPE_VALIDATOR),
|
|
103
|
+
], MetaRoot));
|
|
104
|
+
// object — 4 subtypes
|
|
105
|
+
const objectRules = [
|
|
106
|
+
wildcard(TYPE_FIELD),
|
|
107
|
+
wildcard(TYPE_IDENTITY),
|
|
108
|
+
wildcard(TYPE_RELATIONSHIP),
|
|
109
|
+
wildcard(TYPE_VALIDATOR),
|
|
110
|
+
wildcard(TYPE_LAYOUT),
|
|
111
|
+
wildcard(TYPE_SOURCE),
|
|
112
|
+
wildcard(TYPE_ATTR),
|
|
113
|
+
];
|
|
114
|
+
for (const subType of OBJECT_SUBTYPES) {
|
|
115
|
+
registry.register(def(TYPE_OBJECT, subType, `Object/entity (${subType})`, objectRules, MetaObject, [...objectAttrs]));
|
|
116
|
+
}
|
|
117
|
+
// field — 13 subtypes
|
|
118
|
+
const fieldRules = [
|
|
119
|
+
wildcard(TYPE_VALIDATOR),
|
|
120
|
+
wildcard(TYPE_VIEW),
|
|
121
|
+
wildcard(TYPE_ATTR),
|
|
122
|
+
wildcard(TYPE_ORIGIN),
|
|
123
|
+
];
|
|
124
|
+
for (const subType of FIELD_SUBTYPES) {
|
|
125
|
+
// field.currency additionally carries @currency; all other field subtypes
|
|
126
|
+
// share the common codegen/filter attrs only.
|
|
127
|
+
const fieldAttrs = subType === FIELD_SUBTYPE_CURRENCY
|
|
128
|
+
? [...commonFieldAttrs, { ...currencyFieldAttr }]
|
|
129
|
+
: [...commonFieldAttrs];
|
|
130
|
+
registry.register(def(TYPE_FIELD, subType, `Field of type ${subType}`, fieldRules, MetaField, fieldAttrs, new MetaField(new TypeId(TYPE_FIELD, subType), "").dataType));
|
|
131
|
+
}
|
|
132
|
+
// attr — 9 subtypes, no children allowed. Each subtype's class owns its
|
|
133
|
+
// dataType (resolved by this.subType); we read it off a probe instance so the
|
|
134
|
+
// TypeDefinition.dataType contract (registry.find(...).dataType) still holds.
|
|
135
|
+
for (const subType of ATTR_SUBTYPES) {
|
|
136
|
+
const AttrClass = attrClassFor(subType);
|
|
137
|
+
const probeDataType = new AttrClass(new TypeId(TYPE_ATTR, subType), "").dataType;
|
|
138
|
+
registry.register(def(TYPE_ATTR, subType, `Attribute of type ${subType}`, [], AttrClass, [], probeDataType));
|
|
139
|
+
}
|
|
140
|
+
// validator — 6 subtypes (base + 5 named); dispatch to subtype-specific class.
|
|
141
|
+
// Subtype→class dispatch for TYPE_VALIDATOR (formerly handled by metaOf()):
|
|
142
|
+
// required → MetaRequiredValidator, length → MetaLengthValidator,
|
|
143
|
+
// regex → MetaRegexValidator, numeric → MetaNumericValidator,
|
|
144
|
+
// array → MetaArrayValidator, default (base) → MetaValidator.
|
|
145
|
+
// Attr schemas: MetaValidator (base) + length/numeric/array read @min/@max via
|
|
146
|
+
// this.ownAttr(VALIDATOR_ATTR_MIN/MAX); regex also reads @pattern via this.ownAttr().
|
|
147
|
+
// required has no extra attrs.
|
|
148
|
+
const validatorRules = [wildcard(TYPE_ATTR)];
|
|
149
|
+
for (const subType of VALIDATOR_SUBTYPES) {
|
|
150
|
+
const NodeClass = VALIDATOR_CLASS_MAP.get(subType) ?? MetaValidator;
|
|
151
|
+
const validatorAttrs = VALIDATOR_ATTRS_MAP.get(subType) ?? [];
|
|
152
|
+
registry.register(def(TYPE_VALIDATOR, subType, `Validator (${subType})`, validatorRules, NodeClass, validatorAttrs));
|
|
153
|
+
}
|
|
154
|
+
// view — N subtypes. Each view permits only attr children (Java parity:
|
|
155
|
+
// MetaView only attaches to fields, never aggregates child views).
|
|
156
|
+
// Only view.currency carries a documented attr (@locale); others have none.
|
|
157
|
+
for (const subType of VIEW_SUBTYPES) {
|
|
158
|
+
const viewAttrs = subType === VIEW_SUBTYPE_CURRENCY ? [...currencyViewAttrs] : [];
|
|
159
|
+
registry.register(def(TYPE_VIEW, subType, `View (${subType})`, [wildcard(TYPE_ATTR)], MetaView, viewAttrs));
|
|
160
|
+
}
|
|
161
|
+
// layout — object-level UI surfaces (data grids, forms, tabs, cards).
|
|
162
|
+
// Each subtype permits only attr children — like views, layouts are config carriers.
|
|
163
|
+
for (const subType of LAYOUT_SUBTYPES) {
|
|
164
|
+
const layoutAttrs = subType === LAYOUT_SUBTYPE_DATA_GRID ? [...dataGridLayoutAttrs] : [];
|
|
165
|
+
registry.register(def(TYPE_LAYOUT, subType, `Layout (${subType})`, [wildcard(TYPE_ATTR)], MetaLayout, layoutAttrs));
|
|
166
|
+
}
|
|
167
|
+
// source — declares where an object's data lives (dbTable, dbView, ...).
|
|
168
|
+
// Only attr children; sources carry only configuration, never nested structure.
|
|
169
|
+
// DB-domain attrs (@name) are added by dbProvider via TypeRegistry.extend.
|
|
170
|
+
for (const subType of SOURCE_SUBTYPES) {
|
|
171
|
+
registry.register(def(TYPE_SOURCE, subType, `Source (${subType})`, [wildcard(TYPE_ATTR)], MetaSource, []));
|
|
172
|
+
}
|
|
173
|
+
// origin — field-level provenance. Only attr children.
|
|
174
|
+
// Subtype→class dispatch (mirrors validator / identity patterns):
|
|
175
|
+
// passthrough → MetaPassthroughOrigin, aggregate → MetaAggregateOrigin,
|
|
176
|
+
// base (and any unmapped subtype) → MetaOrigin.
|
|
177
|
+
for (const subType of ORIGIN_SUBTYPES) {
|
|
178
|
+
const NodeClass = ORIGIN_CLASS_MAP.get(subType) ?? MetaOrigin;
|
|
179
|
+
const originAttrs = ORIGIN_ATTRS_MAP.get(subType) ?? [];
|
|
180
|
+
registry.register(def(TYPE_ORIGIN, subType, `Origin (${subType})`, [wildcard(TYPE_ATTR)], NodeClass, originAttrs));
|
|
181
|
+
}
|
|
182
|
+
// identity — 2 subtypes (no base; Java doesn't register one).
|
|
183
|
+
// Subtype→class dispatch for TYPE_IDENTITY (formerly handled by metaOf()):
|
|
184
|
+
// primary → MetaPrimaryIdentity, secondary → MetaSecondaryIdentity,
|
|
185
|
+
// default → MetaIdentity (fallback, not currently registered).
|
|
186
|
+
for (const subType of IDENTITY_SUBTYPES) {
|
|
187
|
+
const NodeClass = IDENTITY_CLASS_MAP.get(subType) ?? MetaIdentity;
|
|
188
|
+
const idAttrs = IDENTITY_ATTRS_MAP.get(subType) ?? [{ ...identityFieldsAttr }];
|
|
189
|
+
registry.register(def(TYPE_IDENTITY, subType, `Identity (${subType})`, [wildcard(TYPE_ATTR)], NodeClass, idAttrs));
|
|
190
|
+
}
|
|
191
|
+
// relationship — 4 subtypes
|
|
192
|
+
for (const subType of RELATIONSHIP_SUBTYPES) {
|
|
193
|
+
registry.register(def(TYPE_RELATIONSHIP, subType, `Relationship (${subType})`, [wildcard(TYPE_ATTR)], MetaRelationship, [...relationshipAttrs]));
|
|
194
|
+
}
|
|
195
|
+
// Default subTypes for YAML authoring sugar: a bare `metadata:` / `object:`
|
|
196
|
+
// key resolves to these. `metadata` has exactly one subtype (root) so the
|
|
197
|
+
// default is unambiguous; `object` defaults to `entity`, the common case.
|
|
198
|
+
// Other types (field, validator, ...) have no default — authoring always
|
|
199
|
+
// writes the full `type.subType`.
|
|
200
|
+
registry.setDefaultSubType(TYPE_METADATA, SUBTYPE_ROOT);
|
|
201
|
+
registry.setDefaultSubType(TYPE_OBJECT, OBJECT_SUBTYPE_ENTITY);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* The core metaobjects metamodel — the seven base types (object, field, attr,
|
|
205
|
+
* validator, view, identity, relationship) plus layout / source / origin and
|
|
206
|
+
* the metadata root. One provider per package: this is `@metaobjectsdev/metadata`'s.
|
|
207
|
+
*/
|
|
208
|
+
export const coreTypesProvider = {
|
|
209
|
+
id: "metaobjects-core-types",
|
|
210
|
+
description: "Core metaobjects metamodel types and subtypes.",
|
|
211
|
+
registerTypes(registry) {
|
|
212
|
+
registerCoreTypeDefs(registry);
|
|
213
|
+
},
|
|
214
|
+
};
|
|
215
|
+
/** The default provider bundle — core metamodel types plus DB-domain attrs.
|
|
216
|
+
* Spread it to add more: `[...coreProviders, mine]`. */
|
|
217
|
+
export const coreProviders = [coreTypesProvider, dbProvider];
|
|
218
|
+
/**
|
|
219
|
+
* Register the core metamodel into an existing registry. Thin convenience
|
|
220
|
+
* wrapper over `coreTypesProvider`; prefer `composeRegistry(coreProviders)`.
|
|
221
|
+
*/
|
|
222
|
+
export function registerCoreTypes(registry) {
|
|
223
|
+
coreTypesProvider.registerTypes(registry);
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=core-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-types.js","sourceRoot":"","sources":["../src/core-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AttrValue } from "./shared/meta-data.js";
|
|
2
|
+
import { type DataType } from "./data-type.js";
|
|
3
|
+
/**
|
|
4
|
+
* Convert a raw parsed value to a valid AttrValue for a *known* DataType.
|
|
5
|
+
* Throws for input that cannot be a valid attr value (null / undefined /
|
|
6
|
+
* nested array). A plain object reaching a scalar branch is stringified by
|
|
7
|
+
* `String()` — callers that must reject objects use `toAttrValue`.
|
|
8
|
+
*/
|
|
9
|
+
export declare function convertToDataType(dataType: DataType, raw: unknown): AttrValue;
|
|
10
|
+
/**
|
|
11
|
+
* Make a raw value a valid AttrValue with NO known type — for an undeclared
|
|
12
|
+
* `@`-attr. No type-directed conversion and no inference: scalars are stored
|
|
13
|
+
* as-is (a numeric-looking string stays a string), arrays become string[],
|
|
14
|
+
* objects/null/undefined are rejected.
|
|
15
|
+
*/
|
|
16
|
+
export declare function toAttrValue(raw: unknown): AttrValue;
|
|
17
|
+
//# sourceMappingURL=data-converter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-converter.d.ts","sourceRoot":"","sources":["../src/data-converter.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,KAAK,QAAQ,EAMd,MAAM,gBAAgB,CAAC;AAExB;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,GAAG,SAAS,CA0B7E;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,CAOnD"}
|