@metaobjectsdev/metadata 0.8.1 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/attr-schema-validate.d.ts.map +1 -1
- package/dist/attr-schema-validate.js +49 -1
- package/dist/attr-schema-validate.js.map +1 -1
- package/dist/core/field/field-constants.d.ts +27 -2
- package/dist/core/field/field-constants.d.ts.map +1 -1
- package/dist/core/field/field-constants.js +30 -2
- package/dist/core/field/field-constants.js.map +1 -1
- package/dist/core/field/field-schema.d.ts +9 -1
- package/dist/core/field/field-schema.d.ts.map +1 -1
- package/dist/core/field/field-schema.js +34 -3
- package/dist/core/field/field-schema.js.map +1 -1
- package/dist/core/field/meta-field.d.ts +10 -0
- package/dist/core/field/meta-field.d.ts.map +1 -1
- package/dist/core/field/meta-field.js +36 -1
- package/dist/core/field/meta-field.js.map +1 -1
- package/dist/core/field/validate-field-readonly.d.ts +9 -0
- package/dist/core/field/validate-field-readonly.d.ts.map +1 -0
- package/dist/core/field/validate-field-readonly.js +116 -0
- package/dist/core/field/validate-field-readonly.js.map +1 -0
- package/dist/core/object/meta-object-aware.d.ts +11 -0
- package/dist/core/object/meta-object-aware.d.ts.map +1 -0
- package/dist/core/object/meta-object-aware.js +15 -0
- package/dist/core/object/meta-object-aware.js.map +1 -0
- package/dist/core/object/meta-object.d.ts +21 -0
- package/dist/core/object/meta-object.d.ts.map +1 -1
- package/dist/core/object/meta-object.js +43 -2
- package/dist/core/object/meta-object.js.map +1 -1
- package/dist/core/object/object-class-registry.d.ts +22 -0
- package/dist/core/object/object-class-registry.d.ts.map +1 -0
- package/dist/core/object/object-class-registry.js +38 -0
- package/dist/core/object/object-class-registry.js.map +1 -0
- package/dist/core/object/object-constants.d.ts +7 -0
- package/dist/core/object/object-constants.d.ts.map +1 -1
- package/dist/core/object/object-constants.js +14 -0
- package/dist/core/object/object-constants.js.map +1 -1
- package/dist/core/object/object-schema.d.ts.map +1 -1
- package/dist/core/object/object-schema.js +24 -1
- package/dist/core/object/object-schema.js.map +1 -1
- package/dist/core/object/validate-discriminator.d.ts +4 -0
- package/dist/core/object/validate-discriminator.d.ts.map +1 -0
- package/dist/core/object/validate-discriminator.js +145 -0
- package/dist/core/object/validate-discriminator.js.map +1 -0
- package/dist/core/object/value-object.d.ts +23 -0
- package/dist/core/object/value-object.d.ts.map +1 -0
- package/dist/core/object/value-object.js +51 -0
- package/dist/core/object/value-object.js.map +1 -0
- package/dist/core/query/query-constants.d.ts.map +1 -1
- package/dist/core/query/query-constants.js +4 -0
- package/dist/core/query/query-constants.js.map +1 -1
- package/dist/core-types.d.ts.map +1 -1
- package/dist/core-types.js +16 -4
- package/dist/core-types.js.map +1 -1
- package/dist/errors.d.ts +2 -2
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +23 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/loader/meta-data-loader.d.ts.map +1 -1
- package/dist/loader/meta-data-loader.js +26 -1
- package/dist/loader/meta-data-loader.js.map +1 -1
- package/dist/loader/validation-passes.d.ts +1 -0
- package/dist/loader/validation-passes.d.ts.map +1 -1
- package/dist/loader/validation-passes.js +122 -2
- package/dist/loader/validation-passes.js.map +1 -1
- package/dist/naming.d.ts.map +1 -1
- package/dist/naming.js +7 -6
- package/dist/naming.js.map +1 -1
- package/dist/persistence/db/db-constants.d.ts +23 -0
- package/dist/persistence/db/db-constants.d.ts.map +1 -1
- package/dist/persistence/db/db-constants.js +31 -0
- package/dist/persistence/db/db-constants.js.map +1 -1
- package/dist/persistence/db/db-provider.js +3 -3
- package/dist/persistence/db/db-provider.js.map +1 -1
- package/dist/persistence/db/db-schema.d.ts +8 -0
- package/dist/persistence/db/db-schema.d.ts.map +1 -1
- package/dist/persistence/db/db-schema.js +17 -1
- package/dist/persistence/db/db-schema.js.map +1 -1
- package/dist/persistence/source/meta-source.d.ts +15 -1
- package/dist/persistence/source/meta-source.d.ts.map +1 -1
- package/dist/persistence/source/meta-source.js +55 -3
- package/dist/persistence/source/meta-source.js.map +1 -1
- package/dist/persistence/source/source-constants.d.ts +20 -1
- package/dist/persistence/source/source-constants.d.ts.map +1 -1
- package/dist/persistence/source/source-constants.js +36 -1
- package/dist/persistence/source/source-constants.js.map +1 -1
- package/dist/persistence/source/source-schema.d.ts.map +1 -1
- package/dist/persistence/source/source-schema.js +65 -4
- package/dist/persistence/source/source-schema.js.map +1 -1
- package/dist/persistence/source/validate-source-parameter-ref.d.ts +4 -0
- package/dist/persistence/source/validate-source-parameter-ref.d.ts.map +1 -0
- package/dist/persistence/source/validate-source-parameter-ref.js +96 -0
- package/dist/persistence/source/validate-source-parameter-ref.js.map +1 -0
- package/dist/persistence/source/validate-source-physical-names.d.ts +9 -0
- package/dist/persistence/source/validate-source-physical-names.d.ts.map +1 -0
- package/dist/persistence/source/validate-source-physical-names.js +79 -0
- package/dist/persistence/source/validate-source-physical-names.js.map +1 -0
- package/dist/serializer-json.d.ts.map +1 -1
- package/dist/serializer-json.js +43 -0
- package/dist/serializer-json.js.map +1 -1
- package/dist/template/template-constants.d.ts +9 -0
- package/dist/template/template-constants.d.ts.map +1 -1
- package/dist/template/template-constants.js +20 -0
- package/dist/template/template-constants.js.map +1 -1
- package/dist/template/template-schema.d.ts.map +1 -1
- package/dist/template/template-schema.js +42 -3
- package/dist/template/template-schema.js.map +1 -1
- package/package.json +1 -1
- package/src/attr-schema-validate.ts +70 -0
- package/src/core/field/field-constants.ts +37 -2
- package/src/core/field/field-schema.ts +43 -2
- package/src/core/field/meta-field.ts +39 -0
- package/src/core/field/validate-field-readonly.ts +142 -0
- package/src/core/object/meta-object-aware.ts +27 -0
- package/src/core/object/meta-object.ts +47 -2
- package/src/core/object/object-class-registry.ts +48 -0
- package/src/core/object/object-constants.ts +17 -0
- package/src/core/object/object-schema.ts +29 -1
- package/src/core/object/validate-discriminator.ts +195 -0
- package/src/core/object/value-object.ts +65 -0
- package/src/core/query/query-constants.ts +5 -0
- package/src/core-types.ts +17 -4
- package/src/errors.ts +23 -0
- package/src/index.ts +10 -0
- package/src/loader/meta-data-loader.ts +31 -1
- package/src/loader/validation-passes.ts +161 -0
- package/src/naming.ts +6 -5
- package/src/persistence/db/db-constants.ts +40 -0
- package/src/persistence/db/db-provider.ts +3 -3
- package/src/persistence/db/db-schema.ts +20 -0
- package/src/persistence/source/meta-source.ts +64 -2
- package/src/persistence/source/source-constants.ts +40 -1
- package/src/persistence/source/source-schema.ts +78 -3
- package/src/persistence/source/validate-source-parameter-ref.ts +143 -0
- package/src/persistence/source/validate-source-physical-names.ts +123 -0
- package/src/serializer-json.ts +50 -0
- package/src/template/template-constants.ts +23 -0
- package/src/template/template-schema.ts +49 -2
- package/dist/constants.d.ts +0 -208
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js +0 -419
- package/dist/constants.js.map +0 -1
- package/dist/core/file-meta-data-loader.d.ts +0 -18
- package/dist/core/file-meta-data-loader.d.ts.map +0 -1
- package/dist/core/file-meta-data-loader.js +0 -81
- package/dist/core/file-meta-data-loader.js.map +0 -1
- package/dist/core/file-source.d.ts +0 -12
- package/dist/core/file-source.d.ts.map +0 -1
- package/dist/core/file-source.js +0 -46
- package/dist/core/file-source.js.map +0 -1
- package/dist/core-attr-schemas.d.ts +0 -22
- package/dist/core-attr-schemas.d.ts.map +0 -1
- package/dist/core-attr-schemas.js +0 -324
- package/dist/core-attr-schemas.js.map +0 -1
- package/dist/db/db-attr-schemas.d.ts +0 -8
- package/dist/db/db-attr-schemas.d.ts.map +0 -1
- package/dist/db/db-attr-schemas.js +0 -26
- package/dist/db/db-attr-schemas.js.map +0 -1
- package/dist/db/db-provider.d.ts +0 -3
- package/dist/db/db-provider.d.ts.map +0 -1
- package/dist/db/db-provider.js +0 -28
- package/dist/db/db-provider.js.map +0 -1
- package/dist/meta/find-reference.d.ts +0 -22
- package/dist/meta/find-reference.d.ts.map +0 -1
- package/dist/meta/find-reference.js +0 -29
- package/dist/meta/find-reference.js.map +0 -1
- package/dist/meta/meta-attr.d.ts +0 -8
- package/dist/meta/meta-attr.d.ts.map +0 -1
- package/dist/meta/meta-attr.js +0 -17
- package/dist/meta/meta-attr.js.map +0 -1
- package/dist/meta/meta-data.d.ts +0 -107
- package/dist/meta/meta-data.d.ts.map +0 -1
- package/dist/meta/meta-data.js +0 -302
- package/dist/meta/meta-data.js.map +0 -1
- package/dist/meta/meta-field.d.ts +0 -48
- package/dist/meta/meta-field.d.ts.map +0 -1
- package/dist/meta/meta-field.js +0 -94
- package/dist/meta/meta-field.js.map +0 -1
- package/dist/meta/meta-identity.d.ts +0 -71
- package/dist/meta/meta-identity.d.ts.map +0 -1
- package/dist/meta/meta-identity.js +0 -129
- package/dist/meta/meta-identity.js.map +0 -1
- package/dist/meta/meta-layout.d.ts +0 -23
- package/dist/meta/meta-layout.d.ts.map +0 -1
- package/dist/meta/meta-layout.js +0 -45
- package/dist/meta/meta-layout.js.map +0 -1
- package/dist/meta/meta-object.d.ts +0 -40
- package/dist/meta/meta-object.d.ts.map +0 -1
- package/dist/meta/meta-object.js +0 -81
- package/dist/meta/meta-object.js.map +0 -1
- package/dist/meta/meta-origin.d.ts +0 -32
- package/dist/meta/meta-origin.d.ts.map +0 -1
- package/dist/meta/meta-origin.js +0 -55
- package/dist/meta/meta-origin.js.map +0 -1
- package/dist/meta/meta-relationship.d.ts +0 -11
- package/dist/meta/meta-relationship.d.ts.map +0 -1
- package/dist/meta/meta-relationship.js +0 -27
- package/dist/meta/meta-relationship.js.map +0 -1
- package/dist/meta/meta-root.d.ts +0 -12
- package/dist/meta/meta-root.d.ts.map +0 -1
- package/dist/meta/meta-root.js +0 -24
- package/dist/meta/meta-root.js.map +0 -1
- package/dist/meta/meta-source.d.ts +0 -18
- package/dist/meta/meta-source.d.ts.map +0 -1
- package/dist/meta/meta-source.js +0 -31
- package/dist/meta/meta-source.js.map +0 -1
- package/dist/meta/meta-validator.d.ts +0 -29
- package/dist/meta/meta-validator.d.ts.map +0 -1
- package/dist/meta/meta-validator.js +0 -49
- package/dist/meta/meta-validator.js.map +0 -1
- package/dist/meta/meta-view.d.ts +0 -4
- package/dist/meta/meta-view.d.ts.map +0 -1
- package/dist/meta/meta-view.js +0 -8
- package/dist/meta/meta-view.js.map +0 -1
- package/dist/persistence/db/db-attr-schemas.d.ts +0 -8
- package/dist/persistence/db/db-attr-schemas.d.ts.map +0 -1
- package/dist/persistence/db/db-attr-schemas.js +0 -28
- package/dist/persistence/db/db-attr-schemas.js.map +0 -1
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { MetaObject } from "./meta-object.js";
|
|
2
|
+
/** A backing object that carries a reference to the MetaObject describing it. */
|
|
3
|
+
export interface MetaObjectAware {
|
|
4
|
+
/** The MetaObject describing this instance, or undefined if not yet attached. */
|
|
5
|
+
getMetaData(): MetaObject | undefined;
|
|
6
|
+
/** Attach the MetaObject describing this instance (back-reference). */
|
|
7
|
+
setMetaData(mo: MetaObject): void;
|
|
8
|
+
}
|
|
9
|
+
/** Structural type guard — true when `o` satisfies the MetaObjectAware contract. */
|
|
10
|
+
export declare function isMetaObjectAware(o: unknown): o is MetaObjectAware;
|
|
11
|
+
//# sourceMappingURL=meta-object-aware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta-object-aware.d.ts","sourceRoot":"","sources":["../../../src/core/object/meta-object-aware.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,iFAAiF;AACjF,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,WAAW,IAAI,UAAU,GAAG,SAAS,CAAC;IACtC,uEAAuE;IACvE,WAAW,CAAC,EAAE,EAAE,UAAU,GAAG,IAAI,CAAC;CACnC;AAED,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,eAAe,CAOlE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// MetaObjectAware — the runtime back-reference contract.
|
|
2
|
+
//
|
|
3
|
+
// Idiomatic TS port of Java's MetaObjectAware: a backing object that knows the
|
|
4
|
+
// MetaObject describing it. The default backing type (ValueObject) implements
|
|
5
|
+
// this; generated/registered native types may implement it too so they carry a
|
|
6
|
+
// back-reference after newInstance(). Reflection-free — no reflect-metadata,
|
|
7
|
+
// no runtime type resolution.
|
|
8
|
+
/** Structural type guard — true when `o` satisfies the MetaObjectAware contract. */
|
|
9
|
+
export function isMetaObjectAware(o) {
|
|
10
|
+
return (typeof o === "object" &&
|
|
11
|
+
o !== null &&
|
|
12
|
+
typeof o.getMetaData === "function" &&
|
|
13
|
+
typeof o.setMetaData === "function");
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=meta-object-aware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta-object-aware.js","sourceRoot":"","sources":["../../../src/core/object/meta-object-aware.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,EAAE;AACF,+EAA+E;AAC/E,8EAA8E;AAC9E,+EAA+E;AAC/E,6EAA6E;AAC7E,8BAA8B;AAY9B,oFAAoF;AACpF,MAAM,UAAU,iBAAiB,CAAC,CAAU;IAC1C,OAAO,CACL,OAAO,CAAC,KAAK,QAAQ;QACrB,CAAC,KAAK,IAAI;QACV,OAAQ,CAAqB,CAAC,WAAW,KAAK,UAAU;QACxD,OAAQ,CAAqB,CAAC,WAAW,KAAK,UAAU,CACzD,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { MetaData } from "../../shared/meta-data.js";
|
|
2
|
+
import { ObjectClassRegistry } from "./object-class-registry.js";
|
|
2
3
|
import type { MetaField } from "../field/meta-field.js";
|
|
3
4
|
import type { MetaIdentity, MetaReferenceIdentity } from "../identity/meta-identity.js";
|
|
4
5
|
import type { MetaLayout } from "../../presentation/layout/meta-layout.js";
|
|
@@ -35,5 +36,25 @@ export declare class MetaObject extends MetaData {
|
|
|
35
36
|
/** Own layouts only — excludes inherited. */
|
|
36
37
|
ownLayouts(): MetaLayout[];
|
|
37
38
|
findField(name: string): MetaField | undefined;
|
|
39
|
+
/** Java parity alias for findField() — locate an effective field by name. */
|
|
40
|
+
getMetaField(name: string): MetaField | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* Instantiate a backing object for this MetaObject (Java parity:
|
|
43
|
+
* MetaObject.newInstance()). Resolution order:
|
|
44
|
+
*
|
|
45
|
+
* 1. If `registry.resolve(this.fqn())` yields a factory, call it; if the
|
|
46
|
+
* result is MetaObjectAware, attach this MetaObject as its back-reference.
|
|
47
|
+
* 2. Otherwise create a map-backed ValueObject (the unbound default for
|
|
48
|
+
* `object.value`), which sets its own back-reference via the constructor.
|
|
49
|
+
*
|
|
50
|
+
* The registry key is the object's fully-qualified name as produced by
|
|
51
|
+
* `resolutionKey()` (`<package>::<name>`, folding the file-default package).
|
|
52
|
+
* This is the SAME FQN form used by a nested field's `@objectRef`, so a
|
|
53
|
+
* factory registered for an object's FQN is found whether instantiation is
|
|
54
|
+
* driven top-down or via an object-ref. (An object's bare `fqn()` is reserved
|
|
55
|
+
* for the FR5d cross-port referrer-envelope contract and is NOT the binding
|
|
56
|
+
* key.) Reflection-free: only registered factories are consulted.
|
|
57
|
+
*/
|
|
58
|
+
newInstance(registry?: ObjectClassRegistry): object;
|
|
38
59
|
}
|
|
39
60
|
//# sourceMappingURL=meta-object.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta-object.d.ts","sourceRoot":"","sources":["../../../src/core/object/meta-object.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"meta-object.d.ts","sourceRoot":"","sources":["../../../src/core/object/meta-object.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAkBrD,OAAO,EACL,mBAAmB,EAEpB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACxF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEpE,qBAAa,UAAW,SAAQ,QAAQ;IACtC,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAchC;IAED,QAAQ,IAAI,OAAO;IAInB,OAAO,IAAI,OAAO;IAIlB,0DAA0D;IAC1D,MAAM,IAAI,SAAS,EAAE;IAMrB,kGAAkG;IAClG,SAAS,IAAI,SAAS,EAAE;IAMxB,8DAA8D;IAC9D,UAAU,IAAI,YAAY,EAAE;IAM5B,gDAAgD;IAChD,aAAa,IAAI,YAAY,EAAE;IAM/B,mDAAmD;IACnD,eAAe,IAAI,YAAY,GAAG,SAAS;IAM3C,4BAA4B;IAC5B,mBAAmB,IAAI,YAAY,EAAE;IAMrC,iFAAiF;IACjF,mBAAmB,IAAI,qBAAqB,EAAE;IAQ9C,iEAAiE;IACjE,aAAa,IAAI,gBAAgB,EAAE;IAMnC,mDAAmD;IACnD,gBAAgB,IAAI,gBAAgB,EAAE;IAMtC,8DAA8D;IAC9D,UAAU,IAAI,aAAa,EAAE;IAM7B,+GAA+G;IAC/G,aAAa,IAAI,aAAa,EAAE;IAMhC,2DAA2D;IAC3D,OAAO,IAAI,UAAU,EAAE;IAMvB,6CAA6C;IAC7C,UAAU,IAAI,UAAU,EAAE;IAM1B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAM9C,6EAA6E;IAC7E,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAIjD;;;;;;;;;;;;;;;;OAgBG;IACH,WAAW,CAAC,QAAQ,GAAE,mBAAgD,GAAG,MAAM;CAWhF"}
|
|
@@ -7,13 +7,22 @@ import { TYPE_FIELD, TYPE_IDENTITY, TYPE_RELATIONSHIP, TYPE_VALIDATOR, TYPE_LAYO
|
|
|
7
7
|
import { SOURCE_ROLE_PRIMARY, } from "../../persistence/source/source-constants.js";
|
|
8
8
|
import { MetaSource } from "../../persistence/source/meta-source.js";
|
|
9
9
|
import { OBJECT_SUBTYPE_ENTITY, OBJECT_SUBTYPE_VALUE, } from "./object-constants.js";
|
|
10
|
+
import { ValueObject } from "./value-object.js";
|
|
11
|
+
import { isMetaObjectAware } from "./meta-object-aware.js";
|
|
12
|
+
import { ObjectClassRegistry, defaultObjectClassRegistry, } from "./object-class-registry.js";
|
|
10
13
|
import { IDENTITY_SUBTYPE_PRIMARY, IDENTITY_SUBTYPE_SECONDARY, IDENTITY_SUBTYPE_REFERENCE, } from "../identity/identity-constants.js";
|
|
11
14
|
export class MetaObject extends MetaData {
|
|
12
15
|
get dbTable() {
|
|
13
16
|
return this.cached("dbTable", () => {
|
|
14
|
-
// The primary writable source carries the physical table name
|
|
17
|
+
// The primary writable source carries the physical table name. FR-016:
|
|
18
|
+
// physicalName respects per-kind aliases + the four-step resolution rule.
|
|
19
|
+
// We still scope to writable + primary because dbTable is the WRITE target
|
|
20
|
+
// (CQRS read-side via dbView/dbProc is a different accessor).
|
|
15
21
|
const source = this.children().find((c) => c instanceof MetaSource && c.isWritable() && c.role === SOURCE_ROLE_PRIMARY);
|
|
16
|
-
|
|
22
|
+
if (source === undefined)
|
|
23
|
+
return undefined;
|
|
24
|
+
const name = source.physicalName;
|
|
25
|
+
return name !== "" ? name : undefined;
|
|
17
26
|
});
|
|
18
27
|
}
|
|
19
28
|
isEntity() {
|
|
@@ -77,5 +86,37 @@ export class MetaObject extends MetaData {
|
|
|
77
86
|
findField(name) {
|
|
78
87
|
return this.cached(`findField:${name}`, () => this.fields().find((f) => f.name === name));
|
|
79
88
|
}
|
|
89
|
+
/** Java parity alias for findField() — locate an effective field by name. */
|
|
90
|
+
getMetaField(name) {
|
|
91
|
+
return this.findField(name);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Instantiate a backing object for this MetaObject (Java parity:
|
|
95
|
+
* MetaObject.newInstance()). Resolution order:
|
|
96
|
+
*
|
|
97
|
+
* 1. If `registry.resolve(this.fqn())` yields a factory, call it; if the
|
|
98
|
+
* result is MetaObjectAware, attach this MetaObject as its back-reference.
|
|
99
|
+
* 2. Otherwise create a map-backed ValueObject (the unbound default for
|
|
100
|
+
* `object.value`), which sets its own back-reference via the constructor.
|
|
101
|
+
*
|
|
102
|
+
* The registry key is the object's fully-qualified name as produced by
|
|
103
|
+
* `resolutionKey()` (`<package>::<name>`, folding the file-default package).
|
|
104
|
+
* This is the SAME FQN form used by a nested field's `@objectRef`, so a
|
|
105
|
+
* factory registered for an object's FQN is found whether instantiation is
|
|
106
|
+
* driven top-down or via an object-ref. (An object's bare `fqn()` is reserved
|
|
107
|
+
* for the FR5d cross-port referrer-envelope contract and is NOT the binding
|
|
108
|
+
* key.) Reflection-free: only registered factories are consulted.
|
|
109
|
+
*/
|
|
110
|
+
newInstance(registry = defaultObjectClassRegistry) {
|
|
111
|
+
const factory = registry.resolve(this.resolutionKey());
|
|
112
|
+
if (factory !== undefined) {
|
|
113
|
+
const instance = factory(this);
|
|
114
|
+
if (isMetaObjectAware(instance)) {
|
|
115
|
+
instance.setMetaData(this);
|
|
116
|
+
}
|
|
117
|
+
return instance;
|
|
118
|
+
}
|
|
119
|
+
return new ValueObject(this);
|
|
120
|
+
}
|
|
80
121
|
}
|
|
81
122
|
//# sourceMappingURL=meta-object.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta-object.js","sourceRoot":"","sources":["../../../src/core/object/meta-object.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,EAAE;AACF,wEAAwE;AACxE,gFAAgF;AAEhF,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EACL,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,WAAW,GACZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,mBAAmB,GACpB,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AACrE,OAAO,EACL,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,mCAAmC,CAAC;AAO3C,MAAM,OAAO,UAAW,SAAQ,QAAQ;IACtC,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE;YACjC,
|
|
1
|
+
{"version":3,"file":"meta-object.js","sourceRoot":"","sources":["../../../src/core/object/meta-object.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,EAAE;AACF,wEAAwE;AACxE,gFAAgF;AAEhF,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EACL,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,WAAW,GACZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,mBAAmB,GACpB,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AACrE,OAAO,EACL,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACL,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,mCAAmC,CAAC;AAO3C,MAAM,OAAO,UAAW,SAAQ,QAAQ;IACtC,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE;YACjC,uEAAuE;YACvE,0EAA0E;YAC1E,2EAA2E;YAC3E,8DAA8D;YAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CACjC,CAAC,CAAC,EAAmB,EAAE,CACrB,CAAC,YAAY,UAAU,IAAI,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAC9E,CAAC;YACF,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAC;YAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC;YACjC,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,OAAO,KAAK,qBAAqB,CAAC;IAChD,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,OAAO,KAAK,oBAAoB,CAAC;IAC/C,CAAC;IAED,0DAA0D;IAC1D,MAAM;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,CAChC,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CACrE,CAAC;IACJ,CAAC;IAED,kGAAkG;IAClG,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,EAAE,CACnC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CACxE,CAAC;IACJ,CAAC;IAED,8DAA8D;IAC9D,UAAU;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,EAAE,CACpC,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAqB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAC3E,CAAC;IACJ,CAAC;IAED,gDAAgD;IAChD,aAAa;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,GAAG,EAAE,CACvC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAqB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAC9E,CAAC;IACJ,CAAC;IAED,mDAAmD;IACnD,eAAe;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,GAAG,EAAE,CACzC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,wBAAwB,CAAC,CACtE,CAAC;IACJ,CAAC;IAED,4BAA4B;IAC5B,mBAAmB;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAC7C,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,0BAA0B,CAAC,CAC1E,CAAC;IACJ,CAAC;IAED,iFAAiF;IACjF,mBAAmB;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAC7C,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAA8B,EAAE,CACzD,CAAC,CAAC,OAAO,KAAK,0BAA0B,CACzC,CACF,CAAC;IACJ,CAAC;IAED,iEAAiE;IACjE,aAAa;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,GAAG,EAAE,CACvC,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAyB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,CACnF,CAAC;IACJ,CAAC;IAED,mDAAmD;IACnD,gBAAgB;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAC1C,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAyB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,CACtF,CAAC;IACJ,CAAC;IAED,8DAA8D;IAC9D,UAAU;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,EAAE,CACpC,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAsB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAC7E,CAAC;IACJ,CAAC;IAED,+GAA+G;IAC/G,aAAa;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,GAAG,EAAE,CACvC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAsB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAChF,CAAC;IACJ,CAAC;IAED,2DAA2D;IAC3D,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,CACjC,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAmB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CACvE,CAAC;IACJ,CAAC;IAED,6CAA6C;IAC7C,UAAU;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,EAAE,CACpC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAmB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAC1E,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,EAAE,GAAG,EAAE,CAC3C,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAC3C,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,YAAY,CAAC,IAAY;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,WAAW,CAAC,WAAgC,0BAA0B;QACpE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACvD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;CACF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { MetaObject } from "./meta-object.js";
|
|
2
|
+
/** Produces a native backing instance for the given MetaObject. */
|
|
3
|
+
export type ObjectFactory = (mo: MetaObject) => object;
|
|
4
|
+
export declare class ObjectClassRegistry {
|
|
5
|
+
private readonly _factories;
|
|
6
|
+
/** Bind an FQN (`package::name`) to a backing-instance factory. */
|
|
7
|
+
register(fqn: string, factory: ObjectFactory): void;
|
|
8
|
+
/** Resolve the factory bound to an FQN, or undefined if none is registered. */
|
|
9
|
+
resolve(fqn: string): ObjectFactory | undefined;
|
|
10
|
+
/** True if a factory is bound to the FQN. */
|
|
11
|
+
has(fqn: string): boolean;
|
|
12
|
+
/** Remove a binding (test/scoping convenience). */
|
|
13
|
+
unregister(fqn: string): boolean;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The module-level default registry. Generated code self-registers here at
|
|
17
|
+
* import time; `MetaObject.newInstance()` consults it when no explicit registry
|
|
18
|
+
* is passed. Tests should construct their own `new ObjectClassRegistry()` to
|
|
19
|
+
* avoid leaking bindings across cases (scenario 6).
|
|
20
|
+
*/
|
|
21
|
+
export declare const defaultObjectClassRegistry: ObjectClassRegistry;
|
|
22
|
+
//# sourceMappingURL=object-class-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object-class-registry.d.ts","sourceRoot":"","sources":["../../../src/core/object/object-class-registry.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,mEAAmE;AACnE,MAAM,MAAM,aAAa,GAAG,CAAC,EAAE,EAAE,UAAU,KAAK,MAAM,CAAC;AAEvD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;IAE/D,mEAAmE;IACnE,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IAInD,+EAA+E;IAC/E,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI/C,6CAA6C;IAC7C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,mDAAmD;IACnD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;CAGjC;AAED;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,qBAA4B,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// ObjectClassRegistry — FQN → factory binding for runtime instantiation.
|
|
2
|
+
//
|
|
3
|
+
// Idiomatic TS port of Java's ObjectClassRegistry: maps an object's FQN
|
|
4
|
+
// (`package::name`) to a factory that produces a native backing instance.
|
|
5
|
+
// Generated code self-registers at import time (`registry.register(fqn, ...)`)
|
|
6
|
+
// — NO reflection (no Class.forName / Type.GetType / importlib equivalent),
|
|
7
|
+
// AOT/tree-shake-safe per ADR-0001.
|
|
8
|
+
//
|
|
9
|
+
// DISTINCT from the metadata TypeRegistry, which maps metamodel type/subType
|
|
10
|
+
// names to MetaData node classes. This registry maps a DATA object's FQN to a
|
|
11
|
+
// runtime BACKING instance factory.
|
|
12
|
+
export class ObjectClassRegistry {
|
|
13
|
+
_factories = new Map();
|
|
14
|
+
/** Bind an FQN (`package::name`) to a backing-instance factory. */
|
|
15
|
+
register(fqn, factory) {
|
|
16
|
+
this._factories.set(fqn, factory);
|
|
17
|
+
}
|
|
18
|
+
/** Resolve the factory bound to an FQN, or undefined if none is registered. */
|
|
19
|
+
resolve(fqn) {
|
|
20
|
+
return this._factories.get(fqn);
|
|
21
|
+
}
|
|
22
|
+
/** True if a factory is bound to the FQN. */
|
|
23
|
+
has(fqn) {
|
|
24
|
+
return this._factories.has(fqn);
|
|
25
|
+
}
|
|
26
|
+
/** Remove a binding (test/scoping convenience). */
|
|
27
|
+
unregister(fqn) {
|
|
28
|
+
return this._factories.delete(fqn);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The module-level default registry. Generated code self-registers here at
|
|
33
|
+
* import time; `MetaObject.newInstance()` consults it when no explicit registry
|
|
34
|
+
* is passed. Tests should construct their own `new ObjectClassRegistry()` to
|
|
35
|
+
* avoid leaking bindings across cases (scenario 6).
|
|
36
|
+
*/
|
|
37
|
+
export const defaultObjectClassRegistry = new ObjectClassRegistry();
|
|
38
|
+
//# sourceMappingURL=object-class-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object-class-registry.js","sourceRoot":"","sources":["../../../src/core/object/object-class-registry.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,EAAE;AACF,wEAAwE;AACxE,0EAA0E;AAC1E,+EAA+E;AAC/E,4EAA4E;AAC5E,oCAAoC;AACpC,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,oCAAoC;AAOpC,MAAM,OAAO,mBAAmB;IACb,UAAU,GAAG,IAAI,GAAG,EAAyB,CAAC;IAE/D,mEAAmE;IACnE,QAAQ,CAAC,GAAW,EAAE,OAAsB;QAC1C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,+EAA+E;IAC/E,OAAO,CAAC,GAAW;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,6CAA6C;IAC7C,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,mDAAmD;IACnD,UAAU,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,mBAAmB,EAAE,CAAC"}
|
|
@@ -2,4 +2,11 @@ export declare const OBJECT_SUBTYPE_ENTITY = "entity";
|
|
|
2
2
|
export declare const OBJECT_SUBTYPE_VALUE = "value";
|
|
3
3
|
export declare const OBJECT_SUBTYPES: readonly ["base", "entity", "value"];
|
|
4
4
|
export type ObjectSubType = (typeof OBJECT_SUBTYPES)[number];
|
|
5
|
+
/** FR-014: names the field on this entity (resolvable via extends) that holds
|
|
6
|
+
* the subtype-discriminator value. Subtypes declare @discriminatorValue to
|
|
7
|
+
* bind their rows to a value of that field. */
|
|
8
|
+
export declare const OBJECT_ATTR_DISCRIMINATOR = "discriminator";
|
|
9
|
+
/** FR-014: on a subtype of an entity with @discriminator: the value that
|
|
10
|
+
* identifies rows of this subtype in the shared discriminator field. */
|
|
11
|
+
export declare const OBJECT_ATTR_DISCRIMINATOR_VALUE = "discriminatorValue";
|
|
5
12
|
//# sourceMappingURL=object-constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-constants.d.ts","sourceRoot":"","sources":["../../../src/core/object/object-constants.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAC9C,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAE5C,eAAO,MAAM,eAAe,sCAIlB,CAAC;AACX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"object-constants.d.ts","sourceRoot":"","sources":["../../../src/core/object/object-constants.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAC9C,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAE5C,eAAO,MAAM,eAAe,sCAIlB,CAAC;AACX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAU7D;;gDAEgD;AAChD,eAAO,MAAM,yBAAyB,kBAAkB,CAAC;AAEzD;yEACyE;AACzE,eAAO,MAAM,+BAA+B,uBAAuB,CAAC"}
|
|
@@ -15,4 +15,18 @@ export const OBJECT_SUBTYPES = [
|
|
|
15
15
|
OBJECT_SUBTYPE_ENTITY,
|
|
16
16
|
OBJECT_SUBTYPE_VALUE,
|
|
17
17
|
];
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
// FR-014 — TPH discriminator (Table-per-Hierarchy single-table inheritance)
|
|
20
|
+
// ---------------------------------------------------------------------------
|
|
21
|
+
// Both attrs live on object.entity. Logical layer (ADR-0013): metadata
|
|
22
|
+
// describes the polymorphism; codegen / ORM emit the per-stack idiom
|
|
23
|
+
// (EF HasDiscriminator / JPA @DiscriminatorColumn / SQLAlchemy polymorphic_on
|
|
24
|
+
// / Kotlin sealed class / TS discriminated union).
|
|
25
|
+
/** FR-014: names the field on this entity (resolvable via extends) that holds
|
|
26
|
+
* the subtype-discriminator value. Subtypes declare @discriminatorValue to
|
|
27
|
+
* bind their rows to a value of that field. */
|
|
28
|
+
export const OBJECT_ATTR_DISCRIMINATOR = "discriminator";
|
|
29
|
+
/** FR-014: on a subtype of an entity with @discriminator: the value that
|
|
30
|
+
* identifies rows of this subtype in the shared discriminator field. */
|
|
31
|
+
export const OBJECT_ATTR_DISCRIMINATOR_VALUE = "discriminatorValue";
|
|
18
32
|
//# sourceMappingURL=object-constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-constants.js","sourceRoot":"","sources":["../../../src/core/object/object-constants.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,8EAA8E;AAC9E,+CAA+C;AAC/C,8EAA8E;AAC9E,EAAE;AACF,wDAAwD;AACxD,mEAAmE;AACnE,+DAA+D;AAC/D,EAAE;AACF,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AAC9C,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO,CAAC;AAE5C,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,YAAY;IACZ,qBAAqB;IACrB,oBAAoB;CACZ,CAAC"}
|
|
1
|
+
{"version":3,"file":"object-constants.js","sourceRoot":"","sources":["../../../src/core/object/object-constants.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,8EAA8E;AAC9E,+CAA+C;AAC/C,8EAA8E;AAC9E,EAAE;AACF,wDAAwD;AACxD,mEAAmE;AACnE,+DAA+D;AAC/D,EAAE;AACF,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AAC9C,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO,CAAC;AAE5C,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,YAAY;IACZ,qBAAqB;IACrB,oBAAoB;CACZ,CAAC;AAGX,8EAA8E;AAC9E,4EAA4E;AAC5E,8EAA8E;AAC9E,uEAAuE;AACvE,qEAAqE;AACrE,8EAA8E;AAC9E,mDAAmD;AAEnD;;gDAEgD;AAChD,MAAM,CAAC,MAAM,yBAAyB,GAAG,eAAe,CAAC;AAEzD;yEACyE;AACzE,MAAM,CAAC,MAAM,+BAA+B,GAAG,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-schema.d.ts","sourceRoot":"","sources":["../../../src/core/object/object-schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"object-schema.d.ts","sourceRoot":"","sources":["../../../src/core/object/object-schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAOpD,4CAA4C;AAC5C,eAAO,MAAM,WAAW,EAAE,UAAU,EAuBnC,CAAC"}
|
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
// Object attribute schemas — attrs common to every object subtype.
|
|
2
2
|
// Consumed by registerCoreTypes().
|
|
3
|
+
import { ATTR_SUBTYPE_STRING } from "../attr/attr-constants.js";
|
|
4
|
+
import { OBJECT_ATTR_DISCRIMINATOR, OBJECT_ATTR_DISCRIMINATOR_VALUE, } from "./object-constants.js";
|
|
3
5
|
/** Attrs common to every object subtype. */
|
|
4
|
-
export const objectAttrs = [
|
|
6
|
+
export const objectAttrs = [
|
|
7
|
+
{
|
|
8
|
+
name: OBJECT_ATTR_DISCRIMINATOR,
|
|
9
|
+
valueType: ATTR_SUBTYPE_STRING,
|
|
10
|
+
required: false,
|
|
11
|
+
description: "FR-014: names the field on this entity (resolvable via extends:) that " +
|
|
12
|
+
"holds the subtype-discriminator value. Subtypes of this entity declare " +
|
|
13
|
+
"@discriminatorValue to bind their rows to a discriminator value. The " +
|
|
14
|
+
"discriminator field itself is an ordinary field declaration (typically " +
|
|
15
|
+
"field.enum or field.int / field.string).",
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: OBJECT_ATTR_DISCRIMINATOR_VALUE,
|
|
19
|
+
valueType: ATTR_SUBTYPE_STRING,
|
|
20
|
+
required: false,
|
|
21
|
+
description: "FR-014: on a subtype of an entity with @discriminator — the value that " +
|
|
22
|
+
"identifies rows of this subtype in the shared discriminator field. Wire " +
|
|
23
|
+
"form is always a string; the underlying field's subtype (enum / int / " +
|
|
24
|
+
"string) controls codegen + storage coercion. Required on every concrete " +
|
|
25
|
+
"subtype of a discriminated entity.",
|
|
26
|
+
},
|
|
27
|
+
];
|
|
5
28
|
//# sourceMappingURL=object-schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-schema.js","sourceRoot":"","sources":["../../../src/core/object/object-schema.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,mCAAmC;
|
|
1
|
+
{"version":3,"file":"object-schema.js","sourceRoot":"","sources":["../../../src/core/object/object-schema.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,mCAAmC;AAGnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EACL,yBAAyB,EACzB,+BAA+B,GAChC,MAAM,uBAAuB,CAAC;AAE/B,4CAA4C;AAC5C,MAAM,CAAC,MAAM,WAAW,GAAiB;IACvC;QACE,IAAI,EAAE,yBAAyB;QAC/B,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,KAAK;QACf,WAAW,EACT,wEAAwE;YACxE,yEAAyE;YACzE,uEAAuE;YACvE,yEAAyE;YACzE,0CAA0C;KAC7C;IACD;QACE,IAAI,EAAE,+BAA+B;QACrC,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,KAAK;QACf,WAAW,EACT,yEAAyE;YACzE,0EAA0E;YAC1E,wEAAwE;YACxE,0EAA0E;YAC1E,oCAAoC;KACvC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-discriminator.d.ts","sourceRoot":"","sources":["../../../src/core/object/validate-discriminator.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAwB7C,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAsHlE"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
// Validation pass: TPH discriminator cross-attribute rules (FR-014).
|
|
2
|
+
//
|
|
3
|
+
// Codes (all errors):
|
|
4
|
+
// ERR_DISCRIMINATOR_FIELD_NOT_FOUND — @discriminator names a field that
|
|
5
|
+
// does not exist on the entity (own
|
|
6
|
+
// or via extends chain).
|
|
7
|
+
// ERR_DISCRIMINATOR_VALUE_DUPLICATE — two subtypes of the same
|
|
8
|
+
// @discriminator-bearing root claim
|
|
9
|
+
// the same @discriminatorValue.
|
|
10
|
+
// ERR_DISCRIMINATOR_VALUE_MISSING — a concrete (non-abstract) entity
|
|
11
|
+
// extends a chain whose root carries
|
|
12
|
+
// @discriminator but the subtype lacks
|
|
13
|
+
// @discriminatorValue.
|
|
14
|
+
// ERR_DISCRIMINATOR_VALUE_TYPE_MISMATCH — @discriminatorValue cannot be
|
|
15
|
+
// coerced to the discriminator field's
|
|
16
|
+
// subtype (enum: not in @values;
|
|
17
|
+
// int: not numeric; string: always OK).
|
|
18
|
+
import { ParseError } from "../../errors.js";
|
|
19
|
+
import { TYPE_OBJECT, TYPE_FIELD } from "../../shared/base-types.js";
|
|
20
|
+
import { OBJECT_ATTR_DISCRIMINATOR, OBJECT_ATTR_DISCRIMINATOR_VALUE, OBJECT_SUBTYPE_ENTITY, } from "./object-constants.js";
|
|
21
|
+
import { FIELD_SUBTYPE_ENUM, FIELD_SUBTYPE_INT, FIELD_SUBTYPE_LONG, FIELD_SUBTYPE_SHORT, FIELD_SUBTYPE_BYTE, FIELD_SUBTYPE_STRING, FIELD_ATTR_VALUES, } from "../field/field-constants.js";
|
|
22
|
+
const NUMERIC_DISCRIMINATOR_SUBTYPES = new Set([
|
|
23
|
+
FIELD_SUBTYPE_INT,
|
|
24
|
+
FIELD_SUBTYPE_LONG,
|
|
25
|
+
FIELD_SUBTYPE_SHORT,
|
|
26
|
+
FIELD_SUBTYPE_BYTE,
|
|
27
|
+
]);
|
|
28
|
+
export function validateDiscriminator(root) {
|
|
29
|
+
const errors = [];
|
|
30
|
+
const entities = root
|
|
31
|
+
.ownChildren()
|
|
32
|
+
.filter((c) => c.type === TYPE_OBJECT && c.subType === OBJECT_SUBTYPE_ENTITY);
|
|
33
|
+
// Pass 1: @discriminator on bases — name resolution (own + inherited fields).
|
|
34
|
+
for (const obj of entities) {
|
|
35
|
+
const disc = obj.ownAttr(OBJECT_ATTR_DISCRIMINATOR);
|
|
36
|
+
if (typeof disc !== "string" || disc === "")
|
|
37
|
+
continue;
|
|
38
|
+
const field = findFieldOnEntity(obj, disc);
|
|
39
|
+
if (field === undefined) {
|
|
40
|
+
errors.push(new ParseError(`object.entity "${obj.name}" @discriminator: "${disc}" does not name a field on this entity ` +
|
|
41
|
+
`(checked own children and the extends chain)`, { code: "ERR_DISCRIMINATOR_FIELD_NOT_FOUND", source: obj.source }));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const bindingsByRoot = new Map();
|
|
45
|
+
for (const obj of entities) {
|
|
46
|
+
const value = obj.ownAttr(OBJECT_ATTR_DISCRIMINATOR_VALUE);
|
|
47
|
+
if (typeof value !== "string" || value === "")
|
|
48
|
+
continue;
|
|
49
|
+
const { root: discRoot, fieldName } = findDiscriminatorRoot(obj);
|
|
50
|
+
if (discRoot === undefined || fieldName === undefined)
|
|
51
|
+
continue;
|
|
52
|
+
const field = findFieldOnEntity(discRoot, fieldName);
|
|
53
|
+
if (field === undefined)
|
|
54
|
+
continue; // root's own ERR_DISCRIMINATOR_FIELD_NOT_FOUND already fires
|
|
55
|
+
// Type-match check.
|
|
56
|
+
if (field.subType === FIELD_SUBTYPE_ENUM) {
|
|
57
|
+
const enumValues = field.ownAttr(FIELD_ATTR_VALUES);
|
|
58
|
+
const list = Array.isArray(enumValues) ? enumValues.map(String) : [];
|
|
59
|
+
if (!list.includes(value)) {
|
|
60
|
+
errors.push(new ParseError(`object.entity "${obj.name}" @discriminatorValue: "${value}" is not a member of the ` +
|
|
61
|
+
`discriminator enum field "${fieldName}" @values [${list.join(", ")}]`, { code: "ERR_DISCRIMINATOR_VALUE_TYPE_MISMATCH", source: obj.source }));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
else if (NUMERIC_DISCRIMINATOR_SUBTYPES.has(field.subType)) {
|
|
65
|
+
if (!/^-?\d+$/.test(value)) {
|
|
66
|
+
errors.push(new ParseError(`object.entity "${obj.name}" @discriminatorValue: "${value}" does not coerce to ` +
|
|
67
|
+
`numeric discriminator field "${fieldName}" (field.${field.subType})`, { code: "ERR_DISCRIMINATOR_VALUE_TYPE_MISMATCH", source: obj.source }));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
else if (field.subType !== FIELD_SUBTYPE_STRING) {
|
|
71
|
+
// Discriminator fields outside {enum, integer-family, string} are
|
|
72
|
+
// unusual; accept silently (a future refinement may add a warning).
|
|
73
|
+
}
|
|
74
|
+
let list = bindingsByRoot.get(discRoot);
|
|
75
|
+
if (list === undefined) {
|
|
76
|
+
list = [];
|
|
77
|
+
bindingsByRoot.set(discRoot, list);
|
|
78
|
+
}
|
|
79
|
+
list.push({ subtype: obj, value, discField: field });
|
|
80
|
+
}
|
|
81
|
+
// Pass 3: ERR_DISCRIMINATOR_VALUE_DUPLICATE within each root's subtypes.
|
|
82
|
+
for (const [, bindings] of bindingsByRoot) {
|
|
83
|
+
const seen = new Map();
|
|
84
|
+
for (const b of bindings) {
|
|
85
|
+
const prev = seen.get(b.value);
|
|
86
|
+
if (prev !== undefined) {
|
|
87
|
+
errors.push(new ParseError(`object.entity "${b.subtype.name}" @discriminatorValue: "${b.value}" ` +
|
|
88
|
+
`duplicates the value already claimed by "${prev.name}"`, { code: "ERR_DISCRIMINATOR_VALUE_DUPLICATE", source: b.subtype.source }));
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
seen.set(b.value, b.subtype);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// Pass 4: ERR_DISCRIMINATOR_VALUE_MISSING — every concrete (non-abstract)
|
|
96
|
+
// entity that extends a @discriminator-bearing root must declare a value.
|
|
97
|
+
for (const obj of entities) {
|
|
98
|
+
if (obj.isAbstract === true)
|
|
99
|
+
continue;
|
|
100
|
+
if (typeof obj.ownAttr(OBJECT_ATTR_DISCRIMINATOR_VALUE) === "string")
|
|
101
|
+
continue;
|
|
102
|
+
if (typeof obj.ownAttr(OBJECT_ATTR_DISCRIMINATOR) === "string")
|
|
103
|
+
continue; // a root, not a subtype
|
|
104
|
+
const { root: discRoot } = findDiscriminatorRoot(obj);
|
|
105
|
+
if (discRoot === undefined)
|
|
106
|
+
continue;
|
|
107
|
+
if (discRoot === obj)
|
|
108
|
+
continue; // safety: same node, shouldn't happen
|
|
109
|
+
errors.push(new ParseError(`object.entity "${obj.name}" extends the @discriminator-bearing root "${discRoot.name}" ` +
|
|
110
|
+
`but is missing @discriminatorValue (required on every concrete subtype)`, { code: "ERR_DISCRIMINATOR_VALUE_MISSING", source: obj.source }));
|
|
111
|
+
}
|
|
112
|
+
return errors;
|
|
113
|
+
}
|
|
114
|
+
/** Find a field with the given name on `entity` — own first, then via the
|
|
115
|
+
* resolved extends chain. Returns the declaring field node (own attrs intact). */
|
|
116
|
+
function findFieldOnEntity(entity, name) {
|
|
117
|
+
for (const child of entity.ownChildren()) {
|
|
118
|
+
if (child.type === TYPE_FIELD && child.name === name)
|
|
119
|
+
return child;
|
|
120
|
+
}
|
|
121
|
+
let cursor = entity.superResolved;
|
|
122
|
+
while (cursor !== undefined) {
|
|
123
|
+
for (const child of cursor.ownChildren()) {
|
|
124
|
+
if (child.type === TYPE_FIELD && child.name === name)
|
|
125
|
+
return child;
|
|
126
|
+
}
|
|
127
|
+
cursor = cursor.superResolved;
|
|
128
|
+
}
|
|
129
|
+
return undefined;
|
|
130
|
+
}
|
|
131
|
+
/** Walk the extends chain to find the first ancestor (or self) carrying
|
|
132
|
+
* @discriminator. Returns {root, fieldName} when found; both undefined
|
|
133
|
+
* otherwise. */
|
|
134
|
+
function findDiscriminatorRoot(entity) {
|
|
135
|
+
let cursor = entity;
|
|
136
|
+
while (cursor !== undefined) {
|
|
137
|
+
const v = cursor.ownAttr(OBJECT_ATTR_DISCRIMINATOR);
|
|
138
|
+
if (typeof v === "string" && v !== "") {
|
|
139
|
+
return { root: cursor, fieldName: v };
|
|
140
|
+
}
|
|
141
|
+
cursor = cursor.superResolved;
|
|
142
|
+
}
|
|
143
|
+
return { root: undefined, fieldName: undefined };
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=validate-discriminator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-discriminator.js","sourceRoot":"","sources":["../../../src/core/object/validate-discriminator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { MetaObject } from "./meta-object.js";
|
|
2
|
+
import type { MetaObjectAware } from "./meta-object-aware.js";
|
|
3
|
+
export declare class ValueObject implements MetaObjectAware {
|
|
4
|
+
private readonly _values;
|
|
5
|
+
private _metaData;
|
|
6
|
+
/** Construct over an optional MetaObject back-reference (set at newInstance). */
|
|
7
|
+
constructor(mo?: MetaObject);
|
|
8
|
+
getMetaData(): MetaObject | undefined;
|
|
9
|
+
setMetaData(mo: MetaObject): void;
|
|
10
|
+
/** Read a value by key. Returns undefined for an unset key. */
|
|
11
|
+
get(name: string): unknown;
|
|
12
|
+
/** Write a value by key. Any string key is accepted (overflow-friendly). */
|
|
13
|
+
set(name: string, value: unknown): void;
|
|
14
|
+
/** True if the key has been set (including to undefined). */
|
|
15
|
+
has(name: string): boolean;
|
|
16
|
+
/** Remove a key. */
|
|
17
|
+
delete(name: string): boolean;
|
|
18
|
+
/** Insertion-ordered keys currently held. */
|
|
19
|
+
keys(): string[];
|
|
20
|
+
/** A plain-object snapshot of the backing map (insertion-ordered). */
|
|
21
|
+
toObject(): Record<string, unknown>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=value-object.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value-object.d.ts","sourceRoot":"","sources":["../../../src/core/object/value-object.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,qBAAa,WAAY,YAAW,eAAe;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,SAAS,CAAqC;IAEtD,iFAAiF;gBACrE,EAAE,CAAC,EAAE,UAAU;IAQ3B,WAAW,IAAI,UAAU,GAAG,SAAS;IAIrC,WAAW,CAAC,EAAE,EAAE,UAAU,GAAG,IAAI;IAQjC,+DAA+D;IAC/D,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,4EAA4E;IAC5E,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAIvC,6DAA6D;IAC7D,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,oBAAoB;IACpB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI7B,6CAA6C;IAC7C,IAAI,IAAI,MAAM,EAAE;IAIhB,sEAAsE;IACtE,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAGpC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// ValueObject — the map-backed default backing object for `object.value`.
|
|
2
|
+
//
|
|
3
|
+
// Idiomatic TS port of Java's ValueObject: a string-keyed map that holds its
|
|
4
|
+
// MetaObject back-reference and supports both declared fields and arbitrary
|
|
5
|
+
// overflow keys. THE unbound default produced by MetaObject.newInstance() when
|
|
6
|
+
// no native type is registered for the object's FQN. Reflection-free.
|
|
7
|
+
export class ValueObject {
|
|
8
|
+
_values = new Map();
|
|
9
|
+
_metaData = undefined;
|
|
10
|
+
/** Construct over an optional MetaObject back-reference (set at newInstance). */
|
|
11
|
+
constructor(mo) {
|
|
12
|
+
this._metaData = mo;
|
|
13
|
+
}
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
// MetaObjectAware
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
getMetaData() {
|
|
18
|
+
return this._metaData;
|
|
19
|
+
}
|
|
20
|
+
setMetaData(mo) {
|
|
21
|
+
this._metaData = mo;
|
|
22
|
+
}
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
// Map-backed value access — declared fields AND arbitrary overflow keys.
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
/** Read a value by key. Returns undefined for an unset key. */
|
|
27
|
+
get(name) {
|
|
28
|
+
return this._values.get(name);
|
|
29
|
+
}
|
|
30
|
+
/** Write a value by key. Any string key is accepted (overflow-friendly). */
|
|
31
|
+
set(name, value) {
|
|
32
|
+
this._values.set(name, value);
|
|
33
|
+
}
|
|
34
|
+
/** True if the key has been set (including to undefined). */
|
|
35
|
+
has(name) {
|
|
36
|
+
return this._values.has(name);
|
|
37
|
+
}
|
|
38
|
+
/** Remove a key. */
|
|
39
|
+
delete(name) {
|
|
40
|
+
return this._values.delete(name);
|
|
41
|
+
}
|
|
42
|
+
/** Insertion-ordered keys currently held. */
|
|
43
|
+
keys() {
|
|
44
|
+
return [...this._values.keys()];
|
|
45
|
+
}
|
|
46
|
+
/** A plain-object snapshot of the backing map (insertion-ordered). */
|
|
47
|
+
toObject() {
|
|
48
|
+
return Object.fromEntries(this._values);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=value-object.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value-object.js","sourceRoot":"","sources":["../../../src/core/object/value-object.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,+EAA+E;AAC/E,sEAAsE;AAKtE,MAAM,OAAO,WAAW;IACL,OAAO,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC9C,SAAS,GAA2B,SAAS,CAAC;IAEtD,iFAAiF;IACjF,YAAY,EAAe;QACzB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,8EAA8E;IAC9E,kBAAkB;IAClB,8EAA8E;IAE9E,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,WAAW,CAAC,EAAc;QACxB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,8EAA8E;IAC9E,yEAAyE;IACzE,8EAA8E;IAE9E,+DAA+D;IAC/D,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,4EAA4E;IAC5E,GAAG,CAAC,IAAY,EAAE,KAAc;QAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,6DAA6D;IAC7D,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,oBAAoB;IACpB,MAAM,CAAC,IAAY;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,6CAA6C;IAC7C,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,sEAAsE;IACtE,QAAQ;QACN,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-constants.d.ts","sourceRoot":"","sources":["../../../src/core/query/query-constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"query-constants.d.ts","sourceRoot":"","sources":["../../../src/core/query/query-constants.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,YAAY,OAAY,CAAC;AACtC,eAAO,MAAM,YAAY,OAAY,CAAC;AACtC,eAAO,MAAM,YAAY,OAAY,CAAC;AACtC,eAAO,MAAM,aAAa,QAAY,CAAC;AACvC,eAAO,MAAM,YAAY,OAAY,CAAC;AACtC,eAAO,MAAM,aAAa,QAAY,CAAC;AACvC,eAAO,MAAM,YAAY,OAAY,CAAC;AACtC,eAAO,MAAM,cAAc,SAAY,CAAC;AACxC,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAG1C,eAAO,MAAM,iBAAiB,OAAO,CAAC;AACtC,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAExC,eAAO,MAAM,UAAU,yEAGb,CAAC;AACX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAC,CAgB/D,CAAC;AAEX,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,QAAQ,EAAE,CAElE;AAOD,eAAO,MAAM,cAAc,QAAS,CAAC;AACrC,eAAO,MAAM,eAAe,SAAS,CAAC;AAEtC,eAAO,MAAM,iBAAiB,0BAA6C,CAAC;AAC5E,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { FIELD_SUBTYPE_UUID } from "../field/field-constants.js";
|
|
1
2
|
// Query concern constants — filter operators, sort order values.
|
|
2
3
|
//
|
|
3
4
|
// NOTE: `query` is NOT a metamodel node type — it has no subtype, schema, or
|
|
@@ -42,6 +43,9 @@ export const OPS_BY_SUBTYPE = {
|
|
|
42
43
|
date: [FILTER_OP_EQ, FILTER_OP_NE, FILTER_OP_GT, FILTER_OP_GTE, FILTER_OP_LT, FILTER_OP_LTE, FILTER_OP_IN, FILTER_OP_IS_NULL],
|
|
43
44
|
time: [FILTER_OP_EQ, FILTER_OP_NE, FILTER_OP_GT, FILTER_OP_GTE, FILTER_OP_LT, FILTER_OP_LTE, FILTER_OP_IN, FILTER_OP_IS_NULL],
|
|
44
45
|
timestamp: [FILTER_OP_EQ, FILTER_OP_NE, FILTER_OP_GT, FILTER_OP_GTE, FILTER_OP_LT, FILTER_OP_LTE, FILTER_OP_IN, FILTER_OP_IS_NULL],
|
|
46
|
+
// uuid: identity-comparison ops only — no `like` (not free-text) and no
|
|
47
|
+
// ordering (`gt`/`lt` are meaningless on a UUID).
|
|
48
|
+
[FIELD_SUBTYPE_UUID]: [FILTER_OP_EQ, FILTER_OP_NE, FILTER_OP_IN, FILTER_OP_IS_NULL],
|
|
45
49
|
};
|
|
46
50
|
export function opsForSubType(subType) {
|
|
47
51
|
return OPS_BY_SUBTYPE[subType] ?? [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-constants.js","sourceRoot":"","sources":["../../../src/core/query/query-constants.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,8EAA8E;AAC9E,gFAAgF;AAChF,kDAAkD;AAElD,8EAA8E;AAC9E,wEAAwE;AACxE,8EAA8E;AAC9E,6EAA6E;AAC7E,mCAAmC;AACnC,8EAA8E;AAE9E,oEAAoE;AACpE,2DAA2D;AAC3D,MAAM,CAAC,MAAM,YAAY,GAAQ,IAAI,CAAC;AACtC,MAAM,CAAC,MAAM,YAAY,GAAQ,IAAI,CAAC;AACtC,MAAM,CAAC,MAAM,YAAY,GAAQ,IAAI,CAAC;AACtC,MAAM,CAAC,MAAM,aAAa,GAAO,KAAK,CAAC;AACvC,MAAM,CAAC,MAAM,YAAY,GAAQ,IAAI,CAAC;AACtC,MAAM,CAAC,MAAM,aAAa,GAAO,KAAK,CAAC;AACvC,MAAM,CAAC,MAAM,YAAY,GAAQ,IAAI,CAAC;AACtC,MAAM,CAAC,MAAM,cAAc,GAAM,MAAM,CAAC;AACxC,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAE1C,kFAAkF;AAClF,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AACtC,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAExC,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa;IACpF,YAAY,EAAE,cAAc,EAAE,iBAAiB;CACvC,CAAC;AAGX,MAAM,CAAC,MAAM,cAAc,GAAkD;IAC3E,MAAM,EAAK,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,CAAC;IACxF,GAAG,EAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,CAAC;IAClI,KAAK,EAAM,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,CAAC;IAClI,IAAI,EAAO,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,CAAC;IAClI,IAAI,EAAO,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,CAAC;IAClI,MAAM,EAAK,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,CAAC;IAClI,KAAK,EAAM,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,CAAC;IAClI,OAAO,EAAI,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,CAAC;IAClI,OAAO,EAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC;IAC5C,IAAI,EAAO,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,CAAC;IAClI,IAAI,EAAO,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,CAAC;IAClI,SAAS,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"query-constants.js","sourceRoot":"","sources":["../../../src/core/query/query-constants.ts"],"names":[],"mappings":"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"}
|
package/dist/core-types.d.ts.map
CHANGED
|
@@ -1 +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;AAa1D,OAAO,sCAAsC,CAAC;AAC9C,OAAO,iCAAiC,CAAC;AACzC,OAAO,qCAAqC,CAAC;
|
|
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;AAa1D,OAAO,sCAAsC,CAAC;AAC9C,OAAO,iCAAiC,CAAC;AACzC,OAAO,qCAAqC,CAAC;AAsU7C;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,oBAM/B,CAAC;AAEF;yDACyD;AACzD,eAAO,MAAM,aAAa,EAAE,SAAS,oBAAoB,EAAiD,CAAC;AAE3G;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAE9D"}
|