@metaobjectsdev/metadata 0.14.1 → 0.15.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/attr-schema-validate.js +22 -1
- package/dist/attr-schema-validate.js.map +1 -1
- package/dist/core/attr/meta-attr.d.ts.map +1 -1
- package/dist/core/attr/meta-attr.js +2 -0
- package/dist/core/attr/meta-attr.js.map +1 -1
- package/dist/core/field/field-constants.d.ts +26 -1
- package/dist/core/field/field-constants.d.ts.map +1 -1
- package/dist/core/field/field-constants.js +29 -0
- package/dist/core/field/field-constants.js.map +1 -1
- package/dist/core/field/field-definition.embedded.d.ts.map +1 -1
- package/dist/core/field/field-definition.embedded.js +28 -0
- package/dist/core/field/field-definition.embedded.js.map +1 -1
- package/dist/core/field/meta-field.d.ts +12 -3
- package/dist/core/field/meta-field.d.ts.map +1 -1
- package/dist/core/field/meta-field.js +33 -15
- package/dist/core/field/meta-field.js.map +1 -1
- package/dist/core/field/validate-field-readonly.d.ts.map +1 -1
- package/dist/core/field/validate-field-readonly.js +15 -3
- package/dist/core/field/validate-field-readonly.js.map +1 -1
- package/dist/core/identity/meta-identity.d.ts +2 -0
- package/dist/core/identity/meta-identity.d.ts.map +1 -1
- package/dist/core/identity/meta-identity.js +16 -8
- package/dist/core/identity/meta-identity.js.map +1 -1
- package/dist/core/identity/validate-identity-passthrough.d.ts.map +1 -1
- package/dist/core/identity/validate-identity-passthrough.js +9 -1
- package/dist/core/identity/validate-identity-passthrough.js.map +1 -1
- package/dist/core/object/meta-object.d.ts.map +1 -1
- package/dist/core/object/meta-object.js +15 -5
- package/dist/core/object/meta-object.js.map +1 -1
- package/dist/core/object/validate-discriminator.d.ts.map +1 -1
- package/dist/core/object/validate-discriminator.js +17 -2
- package/dist/core/object/validate-discriminator.js.map +1 -1
- package/dist/core/query/query-constants.d.ts.map +1 -1
- package/dist/core/query/query-constants.js +7 -1
- package/dist/core/query/query-constants.js.map +1 -1
- package/dist/core/relationship/meta-relationship.d.ts.map +1 -1
- package/dist/core/relationship/meta-relationship.js +9 -7
- package/dist/core/relationship/meta-relationship.js.map +1 -1
- package/dist/core/validator/meta-validator.d.ts.map +1 -1
- package/dist/core/validator/meta-validator.js +6 -3
- package/dist/core/validator/meta-validator.js.map +1 -1
- package/dist/core-types.js +2 -2
- package/dist/core-types.js.map +1 -1
- package/dist/loader/meta-data-loader.d.ts.map +1 -1
- package/dist/loader/meta-data-loader.js +4 -0
- package/dist/loader/meta-data-loader.js.map +1 -1
- package/dist/loader/validation-passes.d.ts.map +1 -1
- package/dist/loader/validation-passes.js +97 -39
- package/dist/loader/validation-passes.js.map +1 -1
- package/dist/loader/validation-registry.d.ts.map +1 -1
- package/dist/loader/validation-registry.js +7 -2
- package/dist/loader/validation-registry.js.map +1 -1
- package/dist/naming.d.ts.map +1 -1
- package/dist/naming.js +6 -3
- package/dist/naming.js.map +1 -1
- package/dist/object-serializer.d.ts.map +1 -1
- package/dist/object-serializer.js +6 -2
- package/dist/object-serializer.js.map +1 -1
- package/dist/parser-core.js +5 -0
- package/dist/parser-core.js.map +1 -1
- package/dist/persistence/db/db-constants.d.ts +20 -9
- package/dist/persistence/db/db-constants.d.ts.map +1 -1
- package/dist/persistence/db/db-constants.js +20 -15
- package/dist/persistence/db/db-constants.js.map +1 -1
- package/dist/persistence/db/db-definition.embedded.d.ts.map +1 -1
- package/dist/persistence/db/db-definition.embedded.js +19 -1
- package/dist/persistence/db/db-definition.embedded.js.map +1 -1
- package/dist/persistence/origin/meta-origin.d.ts.map +1 -1
- package/dist/persistence/origin/meta-origin.js +6 -0
- package/dist/persistence/origin/meta-origin.js.map +1 -1
- package/dist/persistence/source/meta-source.d.ts.map +1 -1
- package/dist/persistence/source/meta-source.js +11 -5
- package/dist/persistence/source/meta-source.js.map +1 -1
- package/dist/persistence/source/validate-source-parameter-ref.d.ts.map +1 -1
- package/dist/persistence/source/validate-source-parameter-ref.js +14 -5
- package/dist/persistence/source/validate-source-parameter-ref.js.map +1 -1
- package/dist/persistence/source/validate-source-physical-names.d.ts.map +1 -1
- package/dist/persistence/source/validate-source-physical-names.js +9 -1
- package/dist/persistence/source/validate-source-physical-names.js.map +1 -1
- package/dist/persistence/source/validate-source-roles.d.ts.map +1 -1
- package/dist/persistence/source/validate-source-roles.js +5 -1
- package/dist/persistence/source/validate-source-roles.js.map +1 -1
- package/dist/presentation/layout/meta-layout.d.ts.map +1 -1
- package/dist/presentation/layout/meta-layout.js +12 -6
- package/dist/presentation/layout/meta-layout.js.map +1 -1
- package/dist/registry-manifest.d.ts +12 -2
- package/dist/registry-manifest.d.ts.map +1 -1
- package/dist/registry-manifest.js +20 -8
- package/dist/registry-manifest.js.map +1 -1
- package/dist/serializer-json.d.ts.map +1 -1
- package/dist/serializer-json.js +8 -1
- package/dist/serializer-json.js.map +1 -1
- package/dist/shared/meta-data.d.ts +14 -0
- package/dist/shared/meta-data.d.ts.map +1 -1
- package/dist/shared/meta-data.js +30 -0
- package/dist/shared/meta-data.js.map +1 -1
- package/dist/shared/meta-root.d.ts.map +1 -1
- package/dist/shared/meta-root.js +8 -2
- package/dist/shared/meta-root.js.map +1 -1
- package/dist/subtype-rules.js +4 -3
- package/dist/subtype-rules.js.map +1 -1
- package/dist/super-resolve.d.ts.map +1 -1
- package/dist/super-resolve.js +3 -0
- package/dist/super-resolve.js.map +1 -1
- package/dist/validate-max-occurs.js +5 -0
- package/dist/validate-max-occurs.js.map +1 -1
- package/package.json +1 -1
- package/src/attr-schema-validate.ts +24 -1
- package/src/core/attr/meta-attr.ts +2 -0
- package/src/core/field/field-constants.ts +34 -0
- package/src/core/field/field-definition.embedded.ts +28 -0
- package/src/core/field/meta-field.ts +30 -12
- package/src/core/field/validate-field-readonly.ts +15 -3
- package/src/core/identity/meta-identity.ts +16 -8
- package/src/core/identity/validate-identity-passthrough.ts +9 -1
- package/src/core/object/meta-object.ts +5 -0
- package/src/core/object/validate-discriminator.ts +17 -2
- package/src/core/query/query-constants.ts +7 -1
- package/src/core/relationship/meta-relationship.ts +9 -7
- package/src/core/validator/meta-validator.ts +6 -3
- package/src/core-types.ts +2 -2
- package/src/loader/meta-data-loader.ts +4 -0
- package/src/loader/validation-passes.ts +97 -39
- package/src/loader/validation-registry.ts +7 -2
- package/src/naming.ts +6 -3
- package/src/object-serializer.ts +6 -2
- package/src/parser-core.ts +5 -0
- package/src/persistence/db/db-constants.ts +20 -15
- package/src/persistence/db/db-definition.embedded.ts +19 -1
- package/src/persistence/origin/meta-origin.ts +6 -0
- package/src/persistence/source/meta-source.ts +11 -5
- package/src/persistence/source/validate-source-parameter-ref.ts +14 -5
- package/src/persistence/source/validate-source-physical-names.ts +9 -1
- package/src/persistence/source/validate-source-roles.ts +5 -1
- package/src/presentation/layout/meta-layout.ts +12 -6
- package/src/registry-manifest.ts +28 -8
- package/src/serializer-json.ts +8 -1
- package/src/shared/meta-data.ts +30 -0
- package/src/shared/meta-root.ts +4 -0
- package/src/subtype-rules.ts +4 -3
- package/src/super-resolve.ts +3 -0
- package/src/validate-max-occurs.ts +5 -0
|
@@ -19,10 +19,14 @@ import { FIELD_ATTR_READ_ONLY } from "./field-constants.js";
|
|
|
19
19
|
export function validateFieldReadOnly(root) {
|
|
20
20
|
const errors = [];
|
|
21
21
|
const warnings = [];
|
|
22
|
-
|
|
22
|
+
// ADR-0039: root has no super; children()==ownChildren() but resolving is the default.
|
|
23
|
+
for (const obj of root.children().filter((c) => c.type === TYPE_OBJECT)) {
|
|
23
24
|
const isValueObject = obj.subType === OBJECT_SUBTYPE_VALUE;
|
|
24
25
|
// 1) WARN_READONLY_VALUE_OBJECT — any @readOnly field child of an object.value.
|
|
25
26
|
if (isValueObject) {
|
|
27
|
+
// ADR-0039: own — warns on @readOnly DECLARED on this value's own fields
|
|
28
|
+
// (readOnlyFlag reads the explicit own flag; the FR-013 read-only checks
|
|
29
|
+
// are own-vs-super comparisons by design).
|
|
26
30
|
for (const child of obj.ownChildren()) {
|
|
27
31
|
if (child.type === TYPE_FIELD && readOnlyFlag(child) === true) {
|
|
28
32
|
warnings.push({
|
|
@@ -38,6 +42,8 @@ export function validateFieldReadOnly(root) {
|
|
|
38
42
|
}
|
|
39
43
|
// 2) ERR_READONLY_DOWNGRADE — read-only-ness can only be upgraded across
|
|
40
44
|
// extends. Compare own field vs. inherited field's effective @readOnly.
|
|
45
|
+
// ADR-0039: own — the downgrade check compares this object's OWN explicit
|
|
46
|
+
// @readOnly:false against the inherited effective value (own-vs-super by design).
|
|
41
47
|
for (const ownField of obj.ownChildren().filter((c) => c.type === TYPE_FIELD)) {
|
|
42
48
|
const ownVal = readOnlyFlag(ownField);
|
|
43
49
|
if (ownVal !== false)
|
|
@@ -71,6 +77,9 @@ export function validateFieldReadOnly(root) {
|
|
|
71
77
|
/** Read the explicit @readOnly value from a field's own attrs. Returns
|
|
72
78
|
* true / false when explicitly set, undefined when absent. */
|
|
73
79
|
function readOnlyFlag(field) {
|
|
80
|
+
// ADR-0039: own — the FR-013 downgrade rule needs the EXPLICIT own @readOnly on
|
|
81
|
+
// THIS node (detecting an own :false against an inherited :true); resolving would
|
|
82
|
+
// mask the downgrade. Deliberate own-vs-super comparison.
|
|
74
83
|
const v = field.ownAttr(FIELD_ATTR_READ_ONLY);
|
|
75
84
|
if (typeof v === "boolean")
|
|
76
85
|
return v;
|
|
@@ -81,6 +90,8 @@ function readOnlyFlag(field) {
|
|
|
81
90
|
function inheritedField(obj, name) {
|
|
82
91
|
let cursor = obj.superResolved;
|
|
83
92
|
while (cursor !== undefined) {
|
|
93
|
+
// ADR-0039: own — super-chain walk reading each level's OWN fields to find the
|
|
94
|
+
// declaring node (the FR-013 comparison needs the declaring node's own flag).
|
|
84
95
|
const f = cursor.ownChildren().find((c) => c.type === TYPE_FIELD && c.name === name);
|
|
85
96
|
if (f !== undefined)
|
|
86
97
|
return f;
|
|
@@ -97,10 +108,11 @@ function primaryAssignedFieldNames(obj) {
|
|
|
97
108
|
continue;
|
|
98
109
|
if (id.subType !== IDENTITY_SUBTYPE_PRIMARY)
|
|
99
110
|
continue;
|
|
100
|
-
|
|
111
|
+
// ADR-0039: resolving — an identity may inherit @generation / @fields via extends.
|
|
112
|
+
const gen = id.attr(IDENTITY_ATTR_GENERATION);
|
|
101
113
|
if (gen !== GENERATION_ASSIGNED)
|
|
102
114
|
continue;
|
|
103
|
-
const fields = id.
|
|
115
|
+
const fields = id.attr(IDENTITY_ATTR_FIELDS);
|
|
104
116
|
if (Array.isArray(fields)) {
|
|
105
117
|
for (const fName of fields) {
|
|
106
118
|
if (typeof fName === "string")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-field-readonly.js","sourceRoot":"","sources":["../../../src/core/field/validate-field-readonly.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,EAAE;AACF,SAAS;AACT,2EAA2E;AAC3E,kFAAkF;AAClF,gFAAgF;AAChF,kBAAkB;AAClB,+EAA+E;AAC/E,gFAAgF;AAChF,8CAA8C;AAC9C,mFAAmF;AACnF,2EAA2E;AAC3E,iDAAiD;AAGjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EACL,WAAW,EACX,UAAU,EACV,aAAa,GACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAO5D,MAAM,UAAU,qBAAqB,CAAC,IAAc;IAClD,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAoB,EAAE,CAAC;IAErC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"validate-field-readonly.js","sourceRoot":"","sources":["../../../src/core/field/validate-field-readonly.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,12 @@ import type { MetaRoot } from "../../shared/meta-root.js";
|
|
|
3
3
|
/** Strongly-typed identity generation strategies. */
|
|
4
4
|
export type IdentityGeneration = "increment" | "uuid" | "assigned";
|
|
5
5
|
export declare class MetaIdentity extends MetaData {
|
|
6
|
+
/** ADR-0039: resolving — @fields may be inherited via extends. */
|
|
6
7
|
get fields(): string[];
|
|
7
8
|
/**
|
|
8
9
|
* Whether the identity enforces uniqueness.
|
|
9
10
|
* Defaults to true; explicit `@unique: false` makes it a non-unique index.
|
|
11
|
+
* ADR-0039: resolving.
|
|
10
12
|
*/
|
|
11
13
|
get unique(): boolean;
|
|
12
14
|
isPrimary(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta-identity.d.ts","sourceRoot":"","sources":["../../../src/core/identity/meta-identity.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAarD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE1D,qDAAqD;AACrD,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,CAAC;AAEnE,qBAAa,YAAa,SAAQ,QAAQ;IACxC,IAAI,MAAM,IAAI,MAAM,EAAE,CAGrB;IAED
|
|
1
|
+
{"version":3,"file":"meta-identity.d.ts","sourceRoot":"","sources":["../../../src/core/identity/meta-identity.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAarD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE1D,qDAAqD;AACrD,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,CAAC;AAEnE,qBAAa,YAAa,SAAQ,QAAQ;IACxC,kEAAkE;IAClE,IAAI,MAAM,IAAI,MAAM,EAAE,CAGrB;IAED;;;;OAIG;IACH,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,SAAS,IAAI,OAAO;IAIpB,WAAW,IAAI,OAAO;IAItB,WAAW,IAAI,OAAO;IAItB,WAAW,IAAI,OAAO;CAGvB;AAED;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,YAAY;IACnD,IAAI,UAAU,IAAI,kBAAkB,GAAG,SAAS,CAI/C;CACF;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,YAAY;CAAG;AAE1D;;;;;;;;;;GAUG;AACH,qBAAa,qBAAsB,SAAQ,YAAY;IACrD,8CAA8C;IAC9C,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAItC;IAED,4EAA4E;IAC5E,IAAI,YAAY,IAAI,MAAM,GAAG,SAAS,CAKrC;IAED;;;;;;OAMG;IACH,IAAI,OAAO,IAAI,OAAO,CAGrB;IAED;;;;;;OAMG;IACH,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAIjC;IAED,oGAAoG;IACpG,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAIjC;IAED;;;;OAIG;IACH,IAAI,YAAY,IAAI,MAAM,EAAE,CAU3B;IAED;;;;;;;;OAQG;IACH,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS;CAuB1D"}
|
|
@@ -5,16 +5,18 @@
|
|
|
5
5
|
import { MetaData } from "../../shared/meta-data.js";
|
|
6
6
|
import { IDENTITY_SUBTYPE_PRIMARY, IDENTITY_SUBTYPE_SECONDARY, IDENTITY_SUBTYPE_REFERENCE, IDENTITY_ATTR_FIELDS, IDENTITY_ATTR_GENERATION, IDENTITY_ATTR_UNIQUE, IDENTITY_REFERENCE_ATTR_REFERENCES, IDENTITY_REFERENCE_ATTR_ENFORCE, IDENTITY_REFERENCE_ATTR_ON_DELETE, IDENTITY_REFERENCE_ATTR_ON_UPDATE, } from "./identity-constants.js";
|
|
7
7
|
export class MetaIdentity extends MetaData {
|
|
8
|
+
/** ADR-0039: resolving — @fields may be inherited via extends. */
|
|
8
9
|
get fields() {
|
|
9
|
-
const f = this.
|
|
10
|
+
const f = this.attr(IDENTITY_ATTR_FIELDS);
|
|
10
11
|
return Array.isArray(f) ? f : [];
|
|
11
12
|
}
|
|
12
13
|
/**
|
|
13
14
|
* Whether the identity enforces uniqueness.
|
|
14
15
|
* Defaults to true; explicit `@unique: false` makes it a non-unique index.
|
|
16
|
+
* ADR-0039: resolving.
|
|
15
17
|
*/
|
|
16
18
|
get unique() {
|
|
17
|
-
return this.
|
|
19
|
+
return this.attr(IDENTITY_ATTR_UNIQUE) !== false;
|
|
18
20
|
}
|
|
19
21
|
isPrimary() {
|
|
20
22
|
return this.subType === IDENTITY_SUBTYPE_PRIMARY;
|
|
@@ -35,7 +37,8 @@ export class MetaIdentity extends MetaData {
|
|
|
35
37
|
*/
|
|
36
38
|
export class MetaPrimaryIdentity extends MetaIdentity {
|
|
37
39
|
get generation() {
|
|
38
|
-
|
|
40
|
+
// ADR-0039: resolving — @generation may be inherited via extends.
|
|
41
|
+
const v = this.attr(IDENTITY_ATTR_GENERATION);
|
|
39
42
|
return typeof v === "string" ? v : undefined;
|
|
40
43
|
}
|
|
41
44
|
}
|
|
@@ -59,7 +62,8 @@ export class MetaSecondaryIdentity extends MetaIdentity {
|
|
|
59
62
|
export class MetaReferenceIdentity extends MetaIdentity {
|
|
60
63
|
/** Raw `@references` attr value, unparsed. */
|
|
61
64
|
get referencesRaw() {
|
|
62
|
-
|
|
65
|
+
// ADR-0039: resolving — @references may be inherited via extends.
|
|
66
|
+
const v = this.attr(IDENTITY_REFERENCE_ATTR_REFERENCES);
|
|
63
67
|
return typeof v === "string" ? v : undefined;
|
|
64
68
|
}
|
|
65
69
|
/** Target entity name (the bit before the dot, or the whole bare value). */
|
|
@@ -78,7 +82,8 @@ export class MetaReferenceIdentity extends MetaIdentity {
|
|
|
78
82
|
* block and projection JOIN inference are unaffected.
|
|
79
83
|
*/
|
|
80
84
|
get enforce() {
|
|
81
|
-
|
|
85
|
+
// ADR-0039: resolving — @enforce may be inherited via extends.
|
|
86
|
+
return this.attr(IDENTITY_REFERENCE_ATTR_ENFORCE) !== false;
|
|
82
87
|
}
|
|
83
88
|
/**
|
|
84
89
|
* Referential action on parent delete, declared directly on the FK-defining
|
|
@@ -88,12 +93,14 @@ export class MetaReferenceIdentity extends MetaIdentity {
|
|
|
88
93
|
* declared here too rather than only on a sibling relationship node.
|
|
89
94
|
*/
|
|
90
95
|
get onDelete() {
|
|
91
|
-
|
|
96
|
+
// ADR-0039: resolving — @onDelete may be inherited via extends.
|
|
97
|
+
const v = this.attr(IDENTITY_REFERENCE_ATTR_ON_DELETE);
|
|
92
98
|
return typeof v === "string" && v !== "" ? v : undefined;
|
|
93
99
|
}
|
|
94
100
|
/** Referential action on key update, declared directly on the reference. Undefined when not set. */
|
|
95
101
|
get onUpdate() {
|
|
96
|
-
|
|
102
|
+
// ADR-0039: resolving — @onUpdate may be inherited via extends.
|
|
103
|
+
const v = this.attr(IDENTITY_REFERENCE_ATTR_ON_UPDATE);
|
|
97
104
|
return typeof v === "string" && v !== "" ? v : undefined;
|
|
98
105
|
}
|
|
99
106
|
/**
|
|
@@ -141,7 +148,8 @@ export class MetaReferenceIdentity extends MetaIdentity {
|
|
|
141
148
|
if (!targetObj)
|
|
142
149
|
return undefined;
|
|
143
150
|
const primary = targetObj.primaryIdentity();
|
|
144
|
-
|
|
151
|
+
// ADR-0039: resolving — the target's @fields may be inherited via extends.
|
|
152
|
+
const fields = primary?.attr(IDENTITY_ATTR_FIELDS);
|
|
145
153
|
if (typeof fields === "string")
|
|
146
154
|
return fields.split(",")[0].trim();
|
|
147
155
|
if (Array.isArray(fields) && fields.length > 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta-identity.js","sourceRoot":"","sources":["../../../src/core/identity/meta-identity.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,gFAAgF;AAChF,EAAE;AACF,wEAAwE;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,EAC1B,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,kCAAkC,EAClC,+BAA+B,EAC/B,iCAAiC,EACjC,iCAAiC,GAClC,MAAM,yBAAyB,CAAC;AAMjC,MAAM,OAAO,YAAa,SAAQ,QAAQ;IACxC,IAAI,MAAM;QACR,MAAM,CAAC,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"meta-identity.js","sourceRoot":"","sources":["../../../src/core/identity/meta-identity.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,gFAAgF;AAChF,EAAE;AACF,wEAAwE;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,EAC1B,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,kCAAkC,EAClC,+BAA+B,EAC/B,iCAAiC,EACjC,iCAAiC,GAClC,MAAM,yBAAyB,CAAC;AAMjC,MAAM,OAAO,YAAa,SAAQ,QAAQ;IACxC,kEAAkE;IAClE,IAAI,MAAM;QACR,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IACjD,CAAC;IAED;;;;OAIG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,KAAK,CAAC;IACnD,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,KAAK,wBAAwB,CAAC;IACnD,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,OAAO,KAAK,0BAA0B,CAAC;IACrD,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,OAAO,KAAK,0BAA0B,CAAC;IACrD,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAChC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,YAAY;IACnD,IAAI,UAAU;QACZ,kEAAkE;QAClE,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC9C,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAwB,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,qBAAsB,SAAQ,YAAY;CAAG;AAE1D;;;;;;;;;;GAUG;AACH,MAAM,OAAO,qBAAsB,SAAQ,YAAY;IACrD,8CAA8C;IAC9C,IAAI,aAAa;QACf,kEAAkE;QAClE,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACxD,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED,4EAA4E;IAC5E,IAAI,YAAY;QACd,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/B,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACxC,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,OAAO,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;OAMG;IACH,IAAI,OAAO;QACT,+DAA+D;QAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,KAAK,KAAK,CAAC;IAC9D,CAAC;IAED;;;;;;OAMG;IACH,IAAI,QAAQ;QACV,gEAAgE;QAChE,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACvD,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,CAAC;IAED,oGAAoG;IACpG,IAAI,QAAQ;QACV,gEAAgE;QAChE,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACvD,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,CAAC;IAED;;;;OAIG;IACH,IAAI,YAAY;QACd,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/B,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,MAAM,KAAK,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAC7B,OAAO,GAAG;aACP,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;aACjB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;;;OAQG;IACH,qBAAqB,CAAC,IAAc;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC;QAE5C,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;QACrC,IAAI,UAAU,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC/C,2EAA2E;QAC3E,yEAAyE;QACzE,2EAA2E;QAC3E,qDAAqD;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;eACxC,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC3B,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBACrE,CAAC,CAAC,SAAS,CAAC,CAAC;QACjB,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QAEjC,MAAM,OAAO,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC;QAC5C,2EAA2E;QAC3E,MAAM,MAAM,GAAG,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAkC,CAAC;QACpF,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;QACpE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-identity-passthrough.d.ts","sourceRoot":"","sources":["../../../src/core/identity/validate-identity-passthrough.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAK7C;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAAE,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"validate-identity-passthrough.d.ts","sourceRoot":"","sources":["../../../src/core/identity/validate-identity-passthrough.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAK7C;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAAE,GAAG,SAAS,CAK1E;AAED,iFAAiF;AACjF,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAAE,GAAG,SAAS,CAEhF;AAcD,uEAAuE;AACvE,MAAM,WAAW,6BAA6B;IAC5C,kDAAkD;IAClD,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,gFAAgF;IAChF,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;IAClC,sEAAsE;IACtE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,QAAQ,GACjB,6BAA6B,GAAG,SAAS,CA+B3C;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAAE,GAAG,SAAS,CAI/E;AAeD;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CA+DxE"}
|
|
@@ -27,6 +27,9 @@ import { IDENTITY_ATTR_FIELDS } from "./identity-constants.js";
|
|
|
27
27
|
* undefined when the identity declares no own @fields (the pass-through case).
|
|
28
28
|
*/
|
|
29
29
|
export function identityOwnFields(identity) {
|
|
30
|
+
// ADR-0039: own — the OWN @fields is read deliberately (paired with
|
|
31
|
+
// identityEffectiveFields below) to detect an explicit author-declared @fields
|
|
32
|
+
// that disagrees with the computed pass-through key.
|
|
30
33
|
return normalizeFields(identity.ownAttr(IDENTITY_ATTR_FIELDS));
|
|
31
34
|
}
|
|
32
35
|
/** Normalize an identity's EFFECTIVE @fields attr (inherits through extends). */
|
|
@@ -78,6 +81,8 @@ export function resolveIdentityPassthrough(identity) {
|
|
|
78
81
|
continue;
|
|
79
82
|
}
|
|
80
83
|
const local = owner
|
|
84
|
+
// ADR-0039: own — a pass-through field must be LOCALLY declared on the
|
|
85
|
+
// projection (it carries the extends ref reaching the entity field).
|
|
81
86
|
.ownChildren()
|
|
82
87
|
.find((c) => c.type === TYPE_FIELD && extendsChainReaches(c, entityField));
|
|
83
88
|
if (local === undefined) {
|
|
@@ -117,9 +122,12 @@ function arraysEqual(a, b) {
|
|
|
117
122
|
*/
|
|
118
123
|
export function validateIdentityPassthrough(root) {
|
|
119
124
|
const errors = [];
|
|
125
|
+
// ADR-0039: root has no super; children()==ownChildren() but resolving is the default.
|
|
120
126
|
for (const obj of root
|
|
121
|
-
.
|
|
127
|
+
.children()
|
|
122
128
|
.filter((c) => c.type === TYPE_OBJECT && c.subType === OBJECT_SUBTYPE_PROJECTION)) {
|
|
129
|
+
// ADR-0039: own — validates the projection's OWN-declared identities (the
|
|
130
|
+
// pass-through subjects; an inherited identity was validated on its declarer).
|
|
123
131
|
for (const identity of obj
|
|
124
132
|
.ownChildren()
|
|
125
133
|
.filter((c) => c.type === TYPE_IDENTITY)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-identity-passthrough.js","sourceRoot":"","sources":["../../../src/core/identity/validate-identity-passthrough.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,EAAE;AACF,mEAAmE;AACnE,EAAE;AACF,yEAAyE;AACzE,yEAAyE;AACzE,sFAAsF;AACtF,uEAAuE;AACvE,yEAAyE;AACzE,gDAAgD;AAChD,2EAA2E;AAC3E,4EAA4E;AAC5E,8EAA8E;AAC9E,iEAAiE;AACjE,iCAAiC;AACjC,EAAE;AACF,6EAA6E;AAC7E,6DAA6D;AAC7D,yCAAyC;AAGzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAkB;IAClD,OAAO,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,uBAAuB,CAAC,QAAkB;IACxD,OAAO,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,eAAe,CAAC,GAAY;IACnC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACxD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAChE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,GAAG;aACP,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAYD;;;;;;;;;GASG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAAkB;IAElB,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC;IACxC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,KAAK,aAAa;QAAE,OAAO,SAAS,CAAC;IAChF,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/B,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IAC1E,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC9B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE1C,MAAM,cAAc,GAAG,uBAAuB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/D,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;QACvC,MAAM,WAAW,GAAG,MAAM;aACvB,QAAQ,EAAE;aACV,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAC9D,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxB,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,KAAK;
|
|
1
|
+
{"version":3,"file":"validate-identity-passthrough.js","sourceRoot":"","sources":["../../../src/core/identity/validate-identity-passthrough.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;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;
|
|
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;IAOxB,8DAA8D;IAC9D,UAAU,IAAI,YAAY,EAAE;IAM5B,gDAAgD;IAChD,aAAa,IAAI,YAAY,EAAE;IAO/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;IAOtC,8DAA8D;IAC9D,UAAU,IAAI,aAAa,EAAE;IAM7B,+GAA+G;IAC/G,aAAa,IAAI,aAAa,EAAE;IAOhC,2DAA2D;IAC3D,OAAO,IAAI,UAAU,EAAE;IAMvB,6CAA6C;IAC7C,UAAU,IAAI,UAAU,EAAE;IAO1B,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"}
|
|
@@ -37,7 +37,9 @@ export class MetaObject extends MetaData {
|
|
|
37
37
|
}
|
|
38
38
|
/** Own fields only — excludes fields inherited via extends. Java parity: getMetaFields(false). */
|
|
39
39
|
ownFields() {
|
|
40
|
-
return this.cached("ownFields", () =>
|
|
40
|
+
return this.cached("ownFields", () =>
|
|
41
|
+
// ADR-0039: own-accessor definition — the deliberate own-only API twin of fields().
|
|
42
|
+
this.ownChildren().filter((c) => c.type === TYPE_FIELD));
|
|
41
43
|
}
|
|
42
44
|
/** All effective identities (own + inherited via extends). */
|
|
43
45
|
identities() {
|
|
@@ -45,7 +47,9 @@ export class MetaObject extends MetaData {
|
|
|
45
47
|
}
|
|
46
48
|
/** Own identities only — excludes inherited. */
|
|
47
49
|
ownIdentities() {
|
|
48
|
-
return this.cached("ownIdentities", () =>
|
|
50
|
+
return this.cached("ownIdentities", () =>
|
|
51
|
+
// ADR-0039: own-accessor definition — the deliberate own-only API twin of identities().
|
|
52
|
+
this.ownChildren().filter((c) => c.type === TYPE_IDENTITY));
|
|
49
53
|
}
|
|
50
54
|
/** Returns the single primary identity, if any. */
|
|
51
55
|
primaryIdentity() {
|
|
@@ -65,7 +69,9 @@ export class MetaObject extends MetaData {
|
|
|
65
69
|
}
|
|
66
70
|
/** Own relationships only — excludes inherited. */
|
|
67
71
|
ownRelationships() {
|
|
68
|
-
return this.cached("ownRelationships", () =>
|
|
72
|
+
return this.cached("ownRelationships", () =>
|
|
73
|
+
// ADR-0039: own-accessor definition — the deliberate own-only API twin of relationships().
|
|
74
|
+
this.ownChildren().filter((c) => c.type === TYPE_RELATIONSHIP));
|
|
69
75
|
}
|
|
70
76
|
/** All effective validators (own + inherited via extends). */
|
|
71
77
|
validators() {
|
|
@@ -73,7 +79,9 @@ export class MetaObject extends MetaData {
|
|
|
73
79
|
}
|
|
74
80
|
/** Own validators only — excludes validators inherited via extends. Java parity: getChildren(Class, false). */
|
|
75
81
|
ownValidators() {
|
|
76
|
-
return this.cached("ownValidators", () =>
|
|
82
|
+
return this.cached("ownValidators", () =>
|
|
83
|
+
// ADR-0039: own-accessor definition — the deliberate own-only API twin of validators().
|
|
84
|
+
this.ownChildren().filter((c) => c.type === TYPE_VALIDATOR));
|
|
77
85
|
}
|
|
78
86
|
/** All effective layouts (own + inherited via extends). */
|
|
79
87
|
layouts() {
|
|
@@ -81,7 +89,9 @@ export class MetaObject extends MetaData {
|
|
|
81
89
|
}
|
|
82
90
|
/** Own layouts only — excludes inherited. */
|
|
83
91
|
ownLayouts() {
|
|
84
|
-
return this.cached("ownLayouts", () =>
|
|
92
|
+
return this.cached("ownLayouts", () =>
|
|
93
|
+
// ADR-0039: own-accessor definition — the deliberate own-only API twin of layouts().
|
|
94
|
+
this.ownChildren().filter((c) => c.type === TYPE_LAYOUT));
|
|
85
95
|
}
|
|
86
96
|
findField(name) {
|
|
87
97
|
return this.cached(`findField:${name}`, () => this.fields().find((f) => f.name === name));
|
|
@@ -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,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,
|
|
1
|
+
{"version":3,"file":"meta-object.js","sourceRoot":"","sources":["../../../src/core/object/meta-object.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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;AAoB7C,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,
|
|
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;AAoB7C,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CAgIlE"}
|
|
@@ -25,11 +25,15 @@ const NUMERIC_DISCRIMINATOR_SUBTYPES = new Set([
|
|
|
25
25
|
]);
|
|
26
26
|
export function validateDiscriminator(root) {
|
|
27
27
|
const errors = [];
|
|
28
|
+
// ADR-0039: root has no super; children()==ownChildren() but resolving is the default.
|
|
28
29
|
const entities = root
|
|
29
|
-
.
|
|
30
|
+
.children()
|
|
30
31
|
.filter((c) => c.type === TYPE_OBJECT && c.subType === OBJECT_SUBTYPE_ENTITY);
|
|
31
32
|
// Pass 1: @discriminator on bases — name resolution (own + inherited fields).
|
|
32
33
|
for (const obj of entities) {
|
|
34
|
+
// ADR-0039: own — @discriminator is declared on the HIERARCHY ROOT only; reading
|
|
35
|
+
// it own distinguishes a root from a subtype (a subtype inherits it, but here we
|
|
36
|
+
// want the entity that DECLARES it). findDiscriminatorRoot walks up separately.
|
|
33
37
|
const disc = obj.ownAttr(OBJECT_ATTR_DISCRIMINATOR);
|
|
34
38
|
if (typeof disc !== "string" || disc === "")
|
|
35
39
|
continue;
|
|
@@ -41,6 +45,8 @@ export function validateDiscriminator(root) {
|
|
|
41
45
|
}
|
|
42
46
|
const bindingsByRoot = new Map();
|
|
43
47
|
for (const obj of entities) {
|
|
48
|
+
// ADR-0039: own — @discriminatorValue is per-subtype; each concrete entity
|
|
49
|
+
// declares its OWN. Reading own detects THIS subtype's declared value.
|
|
44
50
|
const value = obj.ownAttr(OBJECT_ATTR_DISCRIMINATOR_VALUE);
|
|
45
51
|
if (typeof value !== "string" || value === "")
|
|
46
52
|
continue;
|
|
@@ -52,7 +58,9 @@ export function validateDiscriminator(root) {
|
|
|
52
58
|
continue; // root's own ERR_DISCRIMINATOR_FIELD_NOT_FOUND already fires
|
|
53
59
|
// Type-match check.
|
|
54
60
|
if (field.subType === FIELD_SUBTYPE_ENUM) {
|
|
55
|
-
|
|
61
|
+
// ADR-0039: resolving — the discriminator field may inherit @values from an
|
|
62
|
+
// abstract enum via extends.
|
|
63
|
+
const enumValues = field.attr(FIELD_ATTR_VALUES);
|
|
56
64
|
const list = Array.isArray(enumValues) ? enumValues.map(String) : [];
|
|
57
65
|
if (!list.includes(value)) {
|
|
58
66
|
errors.push(new ParseError(`object.entity "${obj.name}" @discriminatorValue: "${value}" is not a member of the ` +
|
|
@@ -95,6 +103,8 @@ export function validateDiscriminator(root) {
|
|
|
95
103
|
for (const obj of entities) {
|
|
96
104
|
if (obj.isAbstract === true)
|
|
97
105
|
continue;
|
|
106
|
+
// ADR-0039: own — checks whether THIS entity declares its OWN value / its OWN
|
|
107
|
+
// @discriminator (a root). Resolving would inherit a parent's and mis-classify.
|
|
98
108
|
if (typeof obj.ownAttr(OBJECT_ATTR_DISCRIMINATOR_VALUE) === "string")
|
|
99
109
|
continue;
|
|
100
110
|
if (typeof obj.ownAttr(OBJECT_ATTR_DISCRIMINATOR) === "string")
|
|
@@ -112,12 +122,15 @@ export function validateDiscriminator(root) {
|
|
|
112
122
|
/** Find a field with the given name on `entity` — own first, then via the
|
|
113
123
|
* resolved extends chain. Returns the declaring field node (own attrs intact). */
|
|
114
124
|
function findFieldOnEntity(entity, name) {
|
|
125
|
+
// ADR-0039: own — extends-chain walk returning the DECLARING field node (own
|
|
126
|
+
// children at each level), so callers can read that node's own/effective attrs.
|
|
115
127
|
for (const child of entity.ownChildren()) {
|
|
116
128
|
if (child.type === TYPE_FIELD && child.name === name)
|
|
117
129
|
return child;
|
|
118
130
|
}
|
|
119
131
|
let cursor = entity.superResolved;
|
|
120
132
|
while (cursor !== undefined) {
|
|
133
|
+
// ADR-0039: own — super-chain walk reading each level's OWN fields.
|
|
121
134
|
for (const child of cursor.ownChildren()) {
|
|
122
135
|
if (child.type === TYPE_FIELD && child.name === name)
|
|
123
136
|
return child;
|
|
@@ -132,6 +145,8 @@ function findFieldOnEntity(entity, name) {
|
|
|
132
145
|
function findDiscriminatorRoot(entity) {
|
|
133
146
|
let cursor = entity;
|
|
134
147
|
while (cursor !== undefined) {
|
|
148
|
+
// ADR-0039: own — walks up to find the ancestor that DECLARES @discriminator
|
|
149
|
+
// (the hierarchy root); must read own to locate the physical declaration site.
|
|
135
150
|
const v = cursor.ownAttr(OBJECT_ATTR_DISCRIMINATOR);
|
|
136
151
|
if (typeof v === "string" && v !== "") {
|
|
137
152
|
return { root: cursor, fieldName: v };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-discriminator.js","sourceRoot":"","sources":["../../../src/core/object/validate-discriminator.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,EAAE;AACF,sBAAsB;AACtB,+EAA+E;AAC/E,+EAA+E;AAC/E,oEAAoE;AACpE,sEAAsE;AACtE,+EAA+E;AAC/E,2EAA2E;AAC3E,8EAA8E;AAC9E,gFAAgF;AAChF,kFAAkF;AAClF,kEAAkE;AAClE,2EAA2E;AAC3E,kFAAkF;AAClF,4EAA4E;AAC5E,mFAAmF;AAGnF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAC/B,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AAErC,MAAM,8BAA8B,GAAG,IAAI,GAAG,CAAS;IACrD,iBAAiB;IACjB,kBAAkB;CACnB,CAAC,CAAC;AAEH,MAAM,UAAU,qBAAqB,CAAC,IAAc;IAClD,MAAM,MAAM,GAAiB,EAAE,CAAC;IAEhC,MAAM,QAAQ,GAAG,IAAI;SAClB,
|
|
1
|
+
{"version":3,"file":"validate-discriminator.js","sourceRoot":"","sources":["../../../src/core/object/validate-discriminator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,CAwB/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,4 +1,4 @@
|
|
|
1
|
-
import { FIELD_SUBTYPE_UUID, FIELD_SUBTYPE_CURRENCY, FIELD_SUBTYPE_ENUM } from "../field/field-constants.js";
|
|
1
|
+
import { FIELD_SUBTYPE_UUID, FIELD_SUBTYPE_CURRENCY, FIELD_SUBTYPE_ENUM, FIELD_SUBTYPE_URI, FIELD_SUBTYPE_INET } from "../field/field-constants.js";
|
|
2
2
|
// Query concern constants — filter operators, sort order values.
|
|
3
3
|
//
|
|
4
4
|
// NOTE: `query` is NOT a metamodel node type — it has no subtype, schema, or
|
|
@@ -48,6 +48,12 @@ export const OPS_BY_SUBTYPE = {
|
|
|
48
48
|
// uuid: identity-comparison ops only — no `like` (not free-text) and no
|
|
49
49
|
// ordering (`gt`/`lt` are meaningless on a UUID).
|
|
50
50
|
[FIELD_SUBTYPE_UUID]: [FILTER_OP_EQ, FILTER_OP_NE, FILTER_OP_IN, FILTER_OP_IS_NULL],
|
|
51
|
+
// uri: a URI string — free-text-comparable. Same op band as string (prefix
|
|
52
|
+
// matching with `like` is meaningful for URLs).
|
|
53
|
+
[FIELD_SUBTYPE_URI]: [FILTER_OP_EQ, FILTER_OP_NE, FILTER_OP_IN, FILTER_OP_LIKE, FILTER_OP_IS_NULL],
|
|
54
|
+
// inet: an IP address — identity-comparison ops only (no `like`; ordering
|
|
55
|
+
// gt/lt is not exposed). Same op band as uuid.
|
|
56
|
+
[FIELD_SUBTYPE_INET]: [FILTER_OP_EQ, FILTER_OP_NE, FILTER_OP_IN, FILTER_OP_IS_NULL],
|
|
51
57
|
};
|
|
52
58
|
export function opsForSubType(subType) {
|
|
53
59
|
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,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"query-constants.js","sourceRoot":"","sources":["../../../src/core/query/query-constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta-relationship.d.ts","sourceRoot":"","sources":["../../../src/core/relationship/meta-relationship.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"meta-relationship.d.ts","sourceRoot":"","sources":["../../../src/core/relationship/meta-relationship.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAarD,qBAAa,gBAAiB,SAAQ,QAAQ;IAC5C,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAGpC;IAED,6DAA6D;IAC7D,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAGlC;IAED,4DAA4D;IAC5D,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAGhC;IAED,+EAA+E;IAC/E,IAAI,cAAc,IAAI,MAAM,GAAG,SAAS,CAGvC;IAED,4EAA4E;IAC5E,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,6GAA6G;IAC7G,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAGjC;IAED,8FAA8F;IAC9F,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAGjC;CACF"}
|
|
@@ -3,38 +3,40 @@
|
|
|
3
3
|
// Extends MetaData directly: no model wrapper, no metaOf() indirection.
|
|
4
4
|
import { MetaData } from "../../shared/meta-data.js";
|
|
5
5
|
import { RELATIONSHIP_ATTR_CARDINALITY, RELATIONSHIP_ATTR_OBJECT_REF, RELATIONSHIP_ATTR_THROUGH, RELATIONSHIP_ATTR_SOURCE_REF_FIELD, RELATIONSHIP_ATTR_SYMMETRIC, RELATIONSHIP_ATTR_ON_DELETE, RELATIONSHIP_ATTR_ON_UPDATE, } from "./relationship-constants.js";
|
|
6
|
+
// ADR-0039: every getter below uses the RESOLVING attr() accessor — a relationship
|
|
7
|
+
// attr may be inherited from an abstract base via extends.
|
|
6
8
|
export class MetaRelationship extends MetaData {
|
|
7
9
|
get cardinality() {
|
|
8
|
-
const v = this.
|
|
10
|
+
const v = this.attr(RELATIONSHIP_ATTR_CARDINALITY);
|
|
9
11
|
return typeof v === "string" ? v : undefined;
|
|
10
12
|
}
|
|
11
13
|
/** FQN of the target object (e.g., "acme::vehicle::Car"). */
|
|
12
14
|
get objectRef() {
|
|
13
|
-
const v = this.
|
|
15
|
+
const v = this.attr(RELATIONSHIP_ATTR_OBJECT_REF);
|
|
14
16
|
return typeof v === "string" ? v : undefined;
|
|
15
17
|
}
|
|
16
18
|
/** Junction (through) entity name for M:N relationships. */
|
|
17
19
|
get through() {
|
|
18
|
-
const v = this.
|
|
20
|
+
const v = this.attr(RELATIONSHIP_ATTR_THROUGH);
|
|
19
21
|
return typeof v === "string" ? v : undefined;
|
|
20
22
|
}
|
|
21
23
|
/** Source-side FK field on the junction (directed self-join disambiguator). */
|
|
22
24
|
get sourceRefField() {
|
|
23
|
-
const v = this.
|
|
25
|
+
const v = this.attr(RELATIONSHIP_ATTR_SOURCE_REF_FIELD);
|
|
24
26
|
return typeof v === "string" ? v : undefined;
|
|
25
27
|
}
|
|
26
28
|
/** Whether this M:N relationship is an undirected (symmetric) self-join. */
|
|
27
29
|
get symmetric() {
|
|
28
|
-
return this.
|
|
30
|
+
return this.attr(RELATIONSHIP_ATTR_SYMMETRIC) === true;
|
|
29
31
|
}
|
|
30
32
|
/** Referential action on parent delete. Undefined when not explicitly set (default derives from subtype). */
|
|
31
33
|
get onDelete() {
|
|
32
|
-
const v = this.
|
|
34
|
+
const v = this.attr(RELATIONSHIP_ATTR_ON_DELETE);
|
|
33
35
|
return typeof v === "string" && v !== "" ? v : undefined;
|
|
34
36
|
}
|
|
35
37
|
/** Referential action on key update. Undefined when not explicitly set (default: cascade). */
|
|
36
38
|
get onUpdate() {
|
|
37
|
-
const v = this.
|
|
39
|
+
const v = this.attr(RELATIONSHIP_ATTR_ON_UPDATE);
|
|
38
40
|
return typeof v === "string" && v !== "" ? v : undefined;
|
|
39
41
|
}
|
|
40
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta-relationship.js","sourceRoot":"","sources":["../../../src/core/relationship/meta-relationship.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,EAAE;AACF,wEAAwE;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,yBAAyB,EACzB,kCAAkC,EAClC,2BAA2B,EAC3B,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC;AAErC,MAAM,OAAO,gBAAiB,SAAQ,QAAQ;IAC5C,IAAI,WAAW;QACb,MAAM,CAAC,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"meta-relationship.js","sourceRoot":"","sources":["../../../src/core/relationship/meta-relationship.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,EAAE;AACF,wEAAwE;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,yBAAyB,EACzB,kCAAkC,EAClC,2BAA2B,EAC3B,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC;AAErC,mFAAmF;AACnF,2DAA2D;AAC3D,MAAM,OAAO,gBAAiB,SAAQ,QAAQ;IAC5C,IAAI,WAAW;QACb,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QACnD,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED,6DAA6D;IAC7D,IAAI,SAAS;QACX,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAClD,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED,4DAA4D;IAC5D,IAAI,OAAO;QACT,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC/C,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED,+EAA+E;IAC/E,IAAI,cAAc;QAChB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACxD,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED,4EAA4E;IAC5E,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,KAAK,IAAI,CAAC;IACzD,CAAC;IAED,6GAA6G;IAC7G,IAAI,QAAQ;QACV,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACjD,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,CAAC;IAED,8FAA8F;IAC9F,IAAI,QAAQ;QACV,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACjD,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta-validator.d.ts","sourceRoot":"","sources":["../../../src/core/validator/meta-validator.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAUrD,qBAAa,aAAc,SAAQ,QAAQ;IACzC;;;OAGG;IACH,IAAI,GAAG,IAAI,MAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"meta-validator.d.ts","sourceRoot":"","sources":["../../../src/core/validator/meta-validator.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAUrD,qBAAa,aAAc,SAAQ,QAAQ;IACzC;;;OAGG;IACH,IAAI,GAAG,IAAI,MAAM,GAAG,SAAS,CAI5B;IAED,IAAI,GAAG,IAAI,MAAM,GAAG,SAAS,CAI5B;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,CAIhC;CACF;AAED,mDAAmD;AACnD,qBAAa,oBAAqB,SAAQ,aAAa;CAAG;AAE1D,yDAAyD;AACzD,qBAAa,kBAAmB,SAAQ,aAAa;CAAG"}
|
|
@@ -10,11 +10,13 @@ export class MetaValidator extends MetaData {
|
|
|
10
10
|
* (Pattern moves to MetaRegexValidator; required validators have no extra attrs.)
|
|
11
11
|
*/
|
|
12
12
|
get min() {
|
|
13
|
-
|
|
13
|
+
// ADR-0039: resolving — effective bound; a validator may inherit @min via extends.
|
|
14
|
+
const v = this.attr(VALIDATOR_ATTR_MIN);
|
|
14
15
|
return typeof v === "number" ? v : undefined;
|
|
15
16
|
}
|
|
16
17
|
get max() {
|
|
17
|
-
|
|
18
|
+
// ADR-0039: resolving — effective bound; a validator may inherit @max via extends.
|
|
19
|
+
const v = this.attr(VALIDATOR_ATTR_MAX);
|
|
18
20
|
return typeof v === "number" ? v : undefined;
|
|
19
21
|
}
|
|
20
22
|
isRequired() {
|
|
@@ -36,7 +38,8 @@ export class MetaLengthValidator extends MetaValidator {
|
|
|
36
38
|
/** Regex validator: carries the pattern. */
|
|
37
39
|
export class MetaRegexValidator extends MetaValidator {
|
|
38
40
|
get pattern() {
|
|
39
|
-
|
|
41
|
+
// ADR-0039: resolving — effective @pattern; a validator may inherit it via extends.
|
|
42
|
+
const v = this.attr(VALIDATOR_ATTR_PATTERN);
|
|
40
43
|
return typeof v === "string" ? v : undefined;
|
|
41
44
|
}
|
|
42
45
|
}
|