@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,18 @@
|
|
|
1
|
+
import { MetaData } from "./meta-data.js";
|
|
2
|
+
export declare class MetaSource extends MetaData {
|
|
3
|
+
/** The SQL table or view name (value of @name attr on the source child). */
|
|
4
|
+
get sourceName(): string | undefined;
|
|
5
|
+
/**
|
|
6
|
+
* True when this source is a `dbTable` (writable).
|
|
7
|
+
* Explicitly defined rather than derived from `isReadOnly()` so it remains
|
|
8
|
+
* correct if a third source subtype is added in the future.
|
|
9
|
+
*/
|
|
10
|
+
isWritable(): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* True when this source is a `dbView` (read-only projection).
|
|
13
|
+
* Explicitly defined rather than derived from `isWritable()` so it remains
|
|
14
|
+
* correct if a third source subtype is added in the future.
|
|
15
|
+
*/
|
|
16
|
+
isReadOnly(): boolean;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=meta-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta-source.d.ts","sourceRoot":"","sources":["../../src/meta/meta-source.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAO1C,qBAAa,UAAW,SAAQ,QAAQ;IACtC,4EAA4E;IAC5E,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAGnC;IAED;;;;OAIG;IACH,UAAU,IAAI,OAAO;IAIrB;;;;OAIG;IACH,UAAU,IAAI,OAAO;CAGtB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// MetaSource — concrete node class for type=source nodes.
|
|
2
|
+
// Declares where an object's data lives (Project E).
|
|
3
|
+
// dbTable / dbView source subtypes declare the SQL table or view name.
|
|
4
|
+
//
|
|
5
|
+
// Extends MetaData directly: no model wrapper, no metaOf() indirection.
|
|
6
|
+
import { MetaData } from "./meta-data.js";
|
|
7
|
+
import { SOURCE_ATTR_NAME, SOURCE_SUBTYPE_DB_TABLE, SOURCE_SUBTYPE_DB_VIEW, } from "../constants.js";
|
|
8
|
+
export class MetaSource extends MetaData {
|
|
9
|
+
/** The SQL table or view name (value of @name attr on the source child). */
|
|
10
|
+
get sourceName() {
|
|
11
|
+
const v = this.ownAttr(SOURCE_ATTR_NAME);
|
|
12
|
+
return typeof v === "string" ? v : undefined;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* True when this source is a `dbTable` (writable).
|
|
16
|
+
* Explicitly defined rather than derived from `isReadOnly()` so it remains
|
|
17
|
+
* correct if a third source subtype is added in the future.
|
|
18
|
+
*/
|
|
19
|
+
isWritable() {
|
|
20
|
+
return this.subType === SOURCE_SUBTYPE_DB_TABLE;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* True when this source is a `dbView` (read-only projection).
|
|
24
|
+
* Explicitly defined rather than derived from `isWritable()` so it remains
|
|
25
|
+
* correct if a third source subtype is added in the future.
|
|
26
|
+
*/
|
|
27
|
+
isReadOnly() {
|
|
28
|
+
return this.subType === SOURCE_SUBTYPE_DB_VIEW;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=meta-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta-source.js","sourceRoot":"","sources":["../../src/meta/meta-source.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,qDAAqD;AACrD,uEAAuE;AACvE,EAAE;AACF,wEAAwE;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,OAAO,UAAW,SAAQ,QAAQ;IACtC,4EAA4E;IAC5E,IAAI,UAAU;QACZ,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACzC,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,KAAK,uBAAuB,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,KAAK,sBAAsB,CAAC;IACjD,CAAC;CACF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { MetaData } from "./meta-data.js";
|
|
2
|
+
export declare class MetaValidator extends MetaData {
|
|
3
|
+
/**
|
|
4
|
+
* Numeric range — shared by length, numeric, and array validators.
|
|
5
|
+
* (Pattern moves to MetaRegexValidator; required validators have no extra attrs.)
|
|
6
|
+
*/
|
|
7
|
+
get min(): number | undefined;
|
|
8
|
+
get max(): number | undefined;
|
|
9
|
+
isRequired(): boolean;
|
|
10
|
+
isLength(): boolean;
|
|
11
|
+
isRegex(): boolean;
|
|
12
|
+
}
|
|
13
|
+
/** Required validator (no extra attrs; subtype class exists for instanceof narrowing). */
|
|
14
|
+
export declare class MetaRequiredValidator extends MetaValidator {
|
|
15
|
+
}
|
|
16
|
+
/** Length validator: min/max are string/array length bounds. */
|
|
17
|
+
export declare class MetaLengthValidator extends MetaValidator {
|
|
18
|
+
}
|
|
19
|
+
/** Regex validator: carries the pattern. */
|
|
20
|
+
export declare class MetaRegexValidator extends MetaValidator {
|
|
21
|
+
get pattern(): string | undefined;
|
|
22
|
+
}
|
|
23
|
+
/** Numeric validator: min/max are value bounds. */
|
|
24
|
+
export declare class MetaNumericValidator extends MetaValidator {
|
|
25
|
+
}
|
|
26
|
+
/** Array validator: min/max are element-count bounds. */
|
|
27
|
+
export declare class MetaArrayValidator extends MetaValidator {
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=meta-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta-validator.d.ts","sourceRoot":"","sources":["../../src/meta/meta-validator.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAU1C,qBAAa,aAAc,SAAQ,QAAQ;IACzC;;;OAGG;IACH,IAAI,GAAG,IAAI,MAAM,GAAG,SAAS,CAG5B;IAED,IAAI,GAAG,IAAI,MAAM,GAAG,SAAS,CAG5B;IAED,UAAU,IAAI,OAAO;IAIrB,QAAQ,IAAI,OAAO;IAInB,OAAO,IAAI,OAAO;CAGnB;AAED,0FAA0F;AAC1F,qBAAa,qBAAsB,SAAQ,aAAa;CAAG;AAE3D,gEAAgE;AAChE,qBAAa,mBAAoB,SAAQ,aAAa;CAAG;AAEzD,4CAA4C;AAC5C,qBAAa,kBAAmB,SAAQ,aAAa;IACnD,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAGhC;CACF;AAED,mDAAmD;AACnD,qBAAa,oBAAqB,SAAQ,aAAa;CAAG;AAE1D,yDAAyD;AACzD,qBAAa,kBAAmB,SAAQ,aAAa;CAAG"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// MetaValidator — concrete node class for type=validator nodes.
|
|
2
|
+
// Subtype classes (Required, Length, Regex, Numeric, Array) are co-located.
|
|
3
|
+
//
|
|
4
|
+
// Extends MetaData directly: no model wrapper, no metaOf() indirection.
|
|
5
|
+
import { MetaData } from "./meta-data.js";
|
|
6
|
+
import { VALIDATOR_SUBTYPE_REQUIRED, VALIDATOR_SUBTYPE_LENGTH, VALIDATOR_SUBTYPE_REGEX, VALIDATOR_ATTR_PATTERN, VALIDATOR_ATTR_MIN, VALIDATOR_ATTR_MAX, } from "../constants.js";
|
|
7
|
+
export class MetaValidator extends MetaData {
|
|
8
|
+
/**
|
|
9
|
+
* Numeric range — shared by length, numeric, and array validators.
|
|
10
|
+
* (Pattern moves to MetaRegexValidator; required validators have no extra attrs.)
|
|
11
|
+
*/
|
|
12
|
+
get min() {
|
|
13
|
+
const v = this.ownAttr(VALIDATOR_ATTR_MIN);
|
|
14
|
+
return typeof v === "number" ? v : undefined;
|
|
15
|
+
}
|
|
16
|
+
get max() {
|
|
17
|
+
const v = this.ownAttr(VALIDATOR_ATTR_MAX);
|
|
18
|
+
return typeof v === "number" ? v : undefined;
|
|
19
|
+
}
|
|
20
|
+
isRequired() {
|
|
21
|
+
return this.subType === VALIDATOR_SUBTYPE_REQUIRED;
|
|
22
|
+
}
|
|
23
|
+
isLength() {
|
|
24
|
+
return this.subType === VALIDATOR_SUBTYPE_LENGTH;
|
|
25
|
+
}
|
|
26
|
+
isRegex() {
|
|
27
|
+
return this.subType === VALIDATOR_SUBTYPE_REGEX;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/** Required validator (no extra attrs; subtype class exists for instanceof narrowing). */
|
|
31
|
+
export class MetaRequiredValidator extends MetaValidator {
|
|
32
|
+
}
|
|
33
|
+
/** Length validator: min/max are string/array length bounds. */
|
|
34
|
+
export class MetaLengthValidator extends MetaValidator {
|
|
35
|
+
}
|
|
36
|
+
/** Regex validator: carries the pattern. */
|
|
37
|
+
export class MetaRegexValidator extends MetaValidator {
|
|
38
|
+
get pattern() {
|
|
39
|
+
const v = this.ownAttr(VALIDATOR_ATTR_PATTERN);
|
|
40
|
+
return typeof v === "string" ? v : undefined;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/** Numeric validator: min/max are value bounds. */
|
|
44
|
+
export class MetaNumericValidator extends MetaValidator {
|
|
45
|
+
}
|
|
46
|
+
/** Array validator: min/max are element-count bounds. */
|
|
47
|
+
export class MetaArrayValidator extends MetaValidator {
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=meta-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta-validator.js","sourceRoot":"","sources":["../../src/meta/meta-validator.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,4EAA4E;AAC5E,EAAE;AACF,wEAAwE;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,OAAO,aAAc,SAAQ,QAAQ;IACzC;;;OAGG;IACH,IAAI,GAAG;QACL,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC3C,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED,IAAI,GAAG;QACL,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC3C,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,KAAK,0BAA0B,CAAC;IACrD,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,OAAO,KAAK,wBAAwB,CAAC;IACnD,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,OAAO,KAAK,uBAAuB,CAAC;IAClD,CAAC;CACF;AAED,0FAA0F;AAC1F,MAAM,OAAO,qBAAsB,SAAQ,aAAa;CAAG;AAE3D,gEAAgE;AAChE,MAAM,OAAO,mBAAoB,SAAQ,aAAa;CAAG;AAEzD,4CAA4C;AAC5C,MAAM,OAAO,kBAAmB,SAAQ,aAAa;IACnD,IAAI,OAAO;QACT,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAC/C,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;CACF;AAED,mDAAmD;AACnD,MAAM,OAAO,oBAAqB,SAAQ,aAAa;CAAG;AAE1D,yDAAyD;AACzD,MAAM,OAAO,kBAAmB,SAAQ,aAAa;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta-view.d.ts","sourceRoot":"","sources":["../../src/meta/meta-view.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,qBAAa,QAAS,SAAQ,QAAQ;CAAG"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// MetaView — concrete node class for type=view nodes.
|
|
2
|
+
//
|
|
3
|
+
// Extends MetaData directly: no model wrapper, no metaOf() indirection.
|
|
4
|
+
// Currently minimal — placeholder for v0.3+ view-level accessors.
|
|
5
|
+
import { MetaData } from "./meta-data.js";
|
|
6
|
+
export class MetaView extends MetaData {
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=meta-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta-view.js","sourceRoot":"","sources":["../../src/meta/meta-view.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,EAAE;AACF,wEAAwE;AACxE,kEAAkE;AAElE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,OAAO,QAAS,SAAQ,QAAQ;CAAG"}
|
package/dist/naming.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { MetaData } from "./shared/meta-data.js";
|
|
2
|
+
/**
|
|
3
|
+
* Strip the package prefix from a metadata-qualified name
|
|
4
|
+
* (e.g. "pkg::Name" → "Name"). Returns the input unchanged if no
|
|
5
|
+
* package separator is present. Single canonical helper consumed by
|
|
6
|
+
* both find-reference (cross-entity lookup) and codegen-ts (FQN
|
|
7
|
+
* normalization in generated code).
|
|
8
|
+
*/
|
|
9
|
+
export declare function stripPackage(name: string | undefined): string;
|
|
10
|
+
export declare function toSnakeCase(s: string): string;
|
|
11
|
+
export declare function pluralize(s: string): string;
|
|
12
|
+
export declare function resolveTableName(entity: MetaData): string;
|
|
13
|
+
export declare function resolveColumnName(field: MetaData): string;
|
|
14
|
+
/**
|
|
15
|
+
* Returns the DB schema declared on an entity's source[dbTable] or source[dbView] child,
|
|
16
|
+
* or undefined if no @schema attr is set or no source child exists. Callers decide what
|
|
17
|
+
* "undefined" means for their dialect — Postgres treats it as the default public schema,
|
|
18
|
+
* SQLite treats it as the only allowed value (no schema concept).
|
|
19
|
+
*/
|
|
20
|
+
export declare function resolveTableSchema(entity: MetaData): string | undefined;
|
|
21
|
+
/** Per-entity {jsName ↔ dbColumn} map. Built once per entity to avoid re-walking children on every row. */
|
|
22
|
+
export interface EntityNameMap {
|
|
23
|
+
jsToDb: Map<string, string>;
|
|
24
|
+
dbToJs: Map<string, string>;
|
|
25
|
+
}
|
|
26
|
+
export declare function buildNameMap(entity: MetaData): EntityNameMap;
|
|
27
|
+
//# sourceMappingURL=naming.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAWtD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAI7D;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAK7C;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI3C;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,CAOzD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAIzD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CASvE;AAED,2GAA2G;AAC3G,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,aAAa,CAU5D"}
|
package/dist/naming.js
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { TYPE_FIELD, TYPE_SOURCE } from "./shared/base-types.js";
|
|
2
|
+
import { PACKAGE_SEPARATOR } from "./shared/structural.js";
|
|
3
|
+
import { FIELD_ATTR_DB_COLUMN } from "./persistence/db/db-constants.js";
|
|
4
|
+
import { SOURCE_SUBTYPE_DB_TABLE, SOURCE_SUBTYPE_DB_VIEW, SOURCE_DB_TABLE_ATTR_NAME, SOURCE_ATTR_SCHEMA, } from "./persistence/source/source-constants.js";
|
|
5
|
+
/**
|
|
6
|
+
* Strip the package prefix from a metadata-qualified name
|
|
7
|
+
* (e.g. "pkg::Name" → "Name"). Returns the input unchanged if no
|
|
8
|
+
* package separator is present. Single canonical helper consumed by
|
|
9
|
+
* both find-reference (cross-entity lookup) and codegen-ts (FQN
|
|
10
|
+
* normalization in generated code).
|
|
11
|
+
*/
|
|
12
|
+
export function stripPackage(name) {
|
|
13
|
+
if (!name)
|
|
14
|
+
return "";
|
|
15
|
+
const idx = name.lastIndexOf(PACKAGE_SEPARATOR);
|
|
16
|
+
return idx === -1 ? name : name.slice(idx + PACKAGE_SEPARATOR.length);
|
|
17
|
+
}
|
|
18
|
+
export function toSnakeCase(s) {
|
|
19
|
+
return s
|
|
20
|
+
.replace(/([A-Z]+)([A-Z][a-z])/g, "$1_$2")
|
|
21
|
+
.replace(/([a-z0-9])([A-Z])/g, "$1_$2")
|
|
22
|
+
.toLowerCase();
|
|
23
|
+
}
|
|
24
|
+
export function pluralize(s) {
|
|
25
|
+
if (/(s|x|z|ch|sh)$/i.test(s))
|
|
26
|
+
return s + "es";
|
|
27
|
+
if (/[^aeiou]y$/i.test(s))
|
|
28
|
+
return s.slice(0, -1) + "ies";
|
|
29
|
+
return s + "s";
|
|
30
|
+
}
|
|
31
|
+
export function resolveTableName(entity) {
|
|
32
|
+
const source = entity.ownChildren().find((c) => c.type === TYPE_SOURCE && c.subType === SOURCE_SUBTYPE_DB_TABLE);
|
|
33
|
+
const name = source?.ownAttr(SOURCE_DB_TABLE_ATTR_NAME);
|
|
34
|
+
if (typeof name === "string" && name !== "")
|
|
35
|
+
return name;
|
|
36
|
+
return pluralize(toSnakeCase(entity.name));
|
|
37
|
+
}
|
|
38
|
+
export function resolveColumnName(field) {
|
|
39
|
+
const attr = field.ownAttr(FIELD_ATTR_DB_COLUMN);
|
|
40
|
+
if (typeof attr === "string")
|
|
41
|
+
return attr;
|
|
42
|
+
return toSnakeCase(field.name);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Returns the DB schema declared on an entity's source[dbTable] or source[dbView] child,
|
|
46
|
+
* or undefined if no @schema attr is set or no source child exists. Callers decide what
|
|
47
|
+
* "undefined" means for their dialect — Postgres treats it as the default public schema,
|
|
48
|
+
* SQLite treats it as the only allowed value (no schema concept).
|
|
49
|
+
*/
|
|
50
|
+
export function resolveTableSchema(entity) {
|
|
51
|
+
const source = entity.ownChildren().find((c) => c.type === TYPE_SOURCE
|
|
52
|
+
&& (c.subType === SOURCE_SUBTYPE_DB_TABLE || c.subType === SOURCE_SUBTYPE_DB_VIEW));
|
|
53
|
+
if (!source)
|
|
54
|
+
return undefined;
|
|
55
|
+
const schema = source.ownAttr(SOURCE_ATTR_SCHEMA);
|
|
56
|
+
if (typeof schema === "string" && schema !== "")
|
|
57
|
+
return schema;
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
export function buildNameMap(entity) {
|
|
61
|
+
const jsToDb = new Map();
|
|
62
|
+
const dbToJs = new Map();
|
|
63
|
+
for (const child of entity.ownChildren()) {
|
|
64
|
+
if (child.type !== TYPE_FIELD)
|
|
65
|
+
continue;
|
|
66
|
+
const dbCol = resolveColumnName(child);
|
|
67
|
+
jsToDb.set(child.name, dbCol);
|
|
68
|
+
dbToJs.set(dbCol, child.name);
|
|
69
|
+
}
|
|
70
|
+
return { jsToDb, dbToJs };
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=naming.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"naming.js","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { MetaObject } from "./core/object/meta-object.js";
|
|
2
|
+
export interface ObjectSerializeOptions {
|
|
3
|
+
/** Emit the `@type` discriminator property. Default true. */
|
|
4
|
+
emitType?: boolean;
|
|
5
|
+
}
|
|
6
|
+
/** Serialize an application-object instance to wire JSON, driven by `mo`. */
|
|
7
|
+
export declare function objectToJson(mo: MetaObject, instance: Record<string, unknown>, opts?: ObjectSerializeOptions): Record<string, unknown>;
|
|
8
|
+
/** Parse wire JSON into an application-object instance, driven by `mo`. */
|
|
9
|
+
export declare function jsonToObject(mo: MetaObject, json: Record<string, unknown>): Record<string, unknown>;
|
|
10
|
+
//# sourceMappingURL=object-serializer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object-serializer.d.ts","sourceRoot":"","sources":["../src/object-serializer.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAe/D,MAAM,WAAW,sBAAsB;IACrC,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAC1B,EAAE,EAAE,UAAU,EACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,IAAI,CAAC,EAAE,sBAAsB,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAazB;AAED,2EAA2E;AAC3E,wBAAgB,YAAY,CAC1B,EAAE,EAAE,UAAU,EACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAUzB"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
// Metadata-driven object serializer.
|
|
2
|
+
//
|
|
3
|
+
// objectToJson / jsonToObject convert application-object instances <-> JSON
|
|
4
|
+
// driven by a MetaObject's field metadata — no per-entity code. Dispatch is on
|
|
5
|
+
// each field's DataType. Plain objects in, plain objects out (the caller does
|
|
6
|
+
// JSON.parse / JSON.stringify). Best-effort and total: neither function throws
|
|
7
|
+
// for malformed instance data, and there is no validation (settled in the
|
|
8
|
+
// spec — Java's object reader does not validate either).
|
|
9
|
+
import { DATA_TYPE_BOOLEAN, DATA_TYPE_INT, DATA_TYPE_LONG, DATA_TYPE_DOUBLE, DATA_TYPE_STRING, DATA_TYPE_DATE, DATA_TYPE_OBJECT, } from "./data-type.js";
|
|
10
|
+
import { TYPE_OBJECT } from "./shared/base-types.js";
|
|
11
|
+
const TYPE_DISCRIMINATOR = "@type";
|
|
12
|
+
/** Serialize an application-object instance to wire JSON, driven by `mo`. */
|
|
13
|
+
export function objectToJson(mo, instance, opts) {
|
|
14
|
+
const out = {};
|
|
15
|
+
if (opts?.emitType ?? true) {
|
|
16
|
+
out[TYPE_DISCRIMINATOR] = mo.name;
|
|
17
|
+
}
|
|
18
|
+
for (const field of mo.fields()) {
|
|
19
|
+
const raw = instance[field.name];
|
|
20
|
+
if (raw === undefined)
|
|
21
|
+
continue; // absent field → omit
|
|
22
|
+
out[field.name] = field.isArray
|
|
23
|
+
? mapArray(raw, (el) => toJsonValue(field, el, mo))
|
|
24
|
+
: toJsonValue(field, raw, mo);
|
|
25
|
+
}
|
|
26
|
+
return out;
|
|
27
|
+
}
|
|
28
|
+
/** Parse wire JSON into an application-object instance, driven by `mo`. */
|
|
29
|
+
export function jsonToObject(mo, json) {
|
|
30
|
+
const out = {};
|
|
31
|
+
for (const field of mo.fields()) {
|
|
32
|
+
const raw = json[field.name];
|
|
33
|
+
if (raw === undefined)
|
|
34
|
+
continue;
|
|
35
|
+
out[field.name] = field.isArray
|
|
36
|
+
? mapArray(raw, (el) => fromJsonValue(field, el, mo))
|
|
37
|
+
: fromJsonValue(field, raw, mo);
|
|
38
|
+
}
|
|
39
|
+
return out;
|
|
40
|
+
}
|
|
41
|
+
// --- write-side conversion -------------------------------------------------
|
|
42
|
+
function toJsonValue(field, raw, mo) {
|
|
43
|
+
switch (field.dataType) {
|
|
44
|
+
case DATA_TYPE_DATE:
|
|
45
|
+
return toIsoString(raw);
|
|
46
|
+
case DATA_TYPE_OBJECT: {
|
|
47
|
+
const target = resolveObjectRef(field, mo);
|
|
48
|
+
if (target === undefined || !isPlainObject(raw))
|
|
49
|
+
return raw;
|
|
50
|
+
// Nested objects always carry their own @type (a generic reader needs
|
|
51
|
+
// it); `emitType: false` suppresses only the top-level discriminator.
|
|
52
|
+
return objectToJson(target, raw);
|
|
53
|
+
}
|
|
54
|
+
case DATA_TYPE_BOOLEAN:
|
|
55
|
+
case DATA_TYPE_INT:
|
|
56
|
+
case DATA_TYPE_LONG:
|
|
57
|
+
case DATA_TYPE_DOUBLE:
|
|
58
|
+
case DATA_TYPE_STRING:
|
|
59
|
+
default:
|
|
60
|
+
return raw; // scalars: already JSON-native, pass through
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
// --- read-side conversion --------------------------------------------------
|
|
64
|
+
function fromJsonValue(field, raw, mo) {
|
|
65
|
+
switch (field.dataType) {
|
|
66
|
+
case DATA_TYPE_BOOLEAN:
|
|
67
|
+
return coerceBoolean(raw);
|
|
68
|
+
case DATA_TYPE_INT:
|
|
69
|
+
case DATA_TYPE_LONG:
|
|
70
|
+
case DATA_TYPE_DOUBLE:
|
|
71
|
+
return coerceNumeric(raw);
|
|
72
|
+
case DATA_TYPE_OBJECT: {
|
|
73
|
+
const target = resolveObjectRef(field, mo);
|
|
74
|
+
if (target === undefined || !isPlainObject(raw))
|
|
75
|
+
return raw;
|
|
76
|
+
return jsonToObject(target, raw);
|
|
77
|
+
}
|
|
78
|
+
case DATA_TYPE_STRING:
|
|
79
|
+
case DATA_TYPE_DATE: // kept as the ISO string; the UI builds its own Date
|
|
80
|
+
default:
|
|
81
|
+
return raw;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// --- helpers ---------------------------------------------------------------
|
|
85
|
+
function mapArray(raw, convert) {
|
|
86
|
+
return Array.isArray(raw) ? raw.map(convert) : raw;
|
|
87
|
+
}
|
|
88
|
+
function isPlainObject(v) {
|
|
89
|
+
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
90
|
+
}
|
|
91
|
+
function toIsoString(raw) {
|
|
92
|
+
if (raw instanceof Date)
|
|
93
|
+
return raw.toISOString();
|
|
94
|
+
if (typeof raw === "number")
|
|
95
|
+
return new Date(raw).toISOString();
|
|
96
|
+
return raw; // a string passes through; anything else best-effort
|
|
97
|
+
}
|
|
98
|
+
function coerceBoolean(raw) {
|
|
99
|
+
if (typeof raw === "boolean")
|
|
100
|
+
return raw;
|
|
101
|
+
if (raw === "true")
|
|
102
|
+
return true;
|
|
103
|
+
if (raw === "false")
|
|
104
|
+
return false;
|
|
105
|
+
return raw;
|
|
106
|
+
}
|
|
107
|
+
function coerceNumeric(raw) {
|
|
108
|
+
if (typeof raw === "number")
|
|
109
|
+
return raw;
|
|
110
|
+
if (typeof raw === "string" && raw.trim() !== "" && Number.isFinite(Number(raw))) {
|
|
111
|
+
return Number(raw);
|
|
112
|
+
}
|
|
113
|
+
return raw;
|
|
114
|
+
}
|
|
115
|
+
/** Resolve an object-typed field's `@objectRef` to its target MetaObject by
|
|
116
|
+
* walking to the tree root and looking up the named object child. Returns
|
|
117
|
+
* undefined when there is no ref or it does not resolve (caller passes the
|
|
118
|
+
* raw value through — best-effort). */
|
|
119
|
+
function resolveObjectRef(field, mo) {
|
|
120
|
+
const ref = field.objectRef;
|
|
121
|
+
if (ref === undefined)
|
|
122
|
+
return undefined;
|
|
123
|
+
const found = mo.root().ownChildByTypeAndName(TYPE_OBJECT, ref);
|
|
124
|
+
if (found === undefined)
|
|
125
|
+
return undefined;
|
|
126
|
+
return found;
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=object-serializer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object-serializer.js","sourceRoot":"","sources":["../src/object-serializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC"}
|
package/dist/overlay.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overlay.js","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,EAAE;AACF,iFAAiF;AACjF,uEAAuE;AACvE,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { TypeRegistry } from "./registry.js";
|
|
2
|
+
import { MetaRoot } from "./shared/meta-root.js";
|
|
3
|
+
import { ParseError } from "./errors.js";
|
|
4
|
+
export interface ParseOptions {
|
|
5
|
+
registry: TypeRegistry;
|
|
6
|
+
strict?: boolean;
|
|
7
|
+
sourceName?: string;
|
|
8
|
+
/**
|
|
9
|
+
* Loader's accumulating root. If provided, parse merges nodes into it.
|
|
10
|
+
* If undefined, creates a new root from the JSON's root node.
|
|
11
|
+
*
|
|
12
|
+
* When provided, the returned `root` is this same instance (possibly mutated).
|
|
13
|
+
* When undefined, a fresh root is created from the JSON.
|
|
14
|
+
*/
|
|
15
|
+
intoRoot?: MetaRoot;
|
|
16
|
+
/**
|
|
17
|
+
* If true, super refs that don't resolve at parse time are NOT a parse error;
|
|
18
|
+
* the model retains its raw `superRef` and a second pass (via
|
|
19
|
+
* resolveDeferredSupers in super-resolve.ts) is expected after all input
|
|
20
|
+
* files are parsed. Used by Loader.load/loadJsonStrings to support cross-file
|
|
21
|
+
* super resolution where one file may declare a super target that lives in
|
|
22
|
+
* another file parsed later.
|
|
23
|
+
*/
|
|
24
|
+
deferSuperResolution?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface ParseResult {
|
|
27
|
+
root: MetaRoot;
|
|
28
|
+
warnings: string[];
|
|
29
|
+
errors: ParseError[];
|
|
30
|
+
}
|
|
31
|
+
export declare function errOpts(source: string | undefined, path?: string): {
|
|
32
|
+
source?: string;
|
|
33
|
+
path?: string;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* buildTree — the shared registry-driven tree-builder.
|
|
37
|
+
*
|
|
38
|
+
* Turns an already-parsed *canonical-shaped* JS object (from JSON.parse, or
|
|
39
|
+
* from the YAML parser's desugar) into a typed MetaData tree. Both parseJson
|
|
40
|
+
* and parseYaml funnel through here, guaranteeing one structure / two
|
|
41
|
+
* renderings stay isomorphic.
|
|
42
|
+
*
|
|
43
|
+
* Throws ParseError for top-level structural problems (matching the historical
|
|
44
|
+
* parseJson behavior); collects content-level problems into the result.
|
|
45
|
+
*/
|
|
46
|
+
export declare function buildTree(parsed: unknown, opts: ParseOptions): ParseResult;
|
|
47
|
+
//# sourceMappingURL=parser-core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser-core.d.ts","sourceRoot":"","sources":["../src/parser-core.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAU,YAAY,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EAAE,UAAU,EAAkB,MAAM,aAAa,CAAC;AA+BzD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAOD,wBAAgB,OAAO,CACrB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,IAAI,CAAC,EAAE,MAAM,GACZ;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAKpC;AAuFD;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,GAAG,WAAW,CA8F1E"}
|