@metaobjectsdev/metadata 0.10.0 → 0.11.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 +12 -4
- package/dist/attr-schema-validate.js.map +1 -1
- package/dist/core/identity/identity-constants.d.ts.map +1 -1
- package/dist/core/identity/identity-constants.js +3 -0
- package/dist/core/identity/identity-constants.js.map +1 -1
- package/dist/core/identity/identity-definition.embedded.d.ts.map +1 -1
- package/dist/core/identity/identity-definition.embedded.js +2 -0
- package/dist/core/identity/identity-definition.embedded.js.map +1 -1
- package/dist/core/identity/meta-identity.d.ts.map +1 -1
- package/dist/core/identity/meta-identity.js +8 -1
- package/dist/core/identity/meta-identity.js.map +1 -1
- package/dist/core/validator/validator-constants.d.ts +14 -1
- package/dist/core/validator/validator-constants.d.ts.map +1 -1
- package/dist/core/validator/validator-constants.js +20 -1
- package/dist/core/validator/validator-constants.js.map +1 -1
- package/dist/core/validator/validator-definition.embedded.d.ts.map +1 -1
- package/dist/core/validator/validator-definition.embedded.js +121 -0
- package/dist/core/validator/validator-definition.embedded.js.map +1 -1
- package/dist/core-types.d.ts.map +1 -1
- package/dist/core-types.js +25 -2
- package/dist/core-types.js.map +1 -1
- package/dist/errors.d.ts +3 -3
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +9 -0
- package/dist/errors.js.map +1 -1
- package/dist/loader/meta-data-loader.d.ts.map +1 -1
- package/dist/loader/meta-data-loader.js +10 -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 +6 -1
- package/dist/loader/validation-passes.js.map +1 -1
- package/dist/loader/validation-registry.d.ts +10 -0
- package/dist/loader/validation-registry.d.ts.map +1 -0
- package/dist/loader/validation-registry.js +84 -0
- package/dist/loader/validation-registry.js.map +1 -0
- package/dist/parser-core.js +10 -1
- package/dist/parser-core.js.map +1 -1
- package/dist/persistence/db/db-constants.d.ts +10 -0
- package/dist/persistence/db/db-constants.d.ts.map +1 -1
- package/dist/persistence/db/db-constants.js +14 -0
- 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 +57 -0
- package/dist/persistence/db/db-definition.embedded.js.map +1 -1
- package/dist/provider-data.d.ts +15 -0
- package/dist/provider-data.d.ts.map +1 -1
- package/dist/provider-data.js +2 -0
- package/dist/provider-data.js.map +1 -1
- package/dist/registry.d.ts +16 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js.map +1 -1
- package/dist/validate-max-occurs.d.ts +5 -0
- package/dist/validate-max-occurs.d.ts.map +1 -0
- package/dist/validate-max-occurs.js +28 -0
- package/dist/validate-max-occurs.js.map +1 -0
- package/dist/validation-types.d.ts +36 -0
- package/dist/validation-types.d.ts.map +1 -0
- package/dist/validation-types.js +7 -0
- package/dist/validation-types.js.map +1 -0
- package/package.json +1 -1
- package/src/attr-schema-validate.ts +12 -4
- package/src/core/identity/identity-constants.ts +4 -0
- package/src/core/identity/identity-definition.embedded.ts +2 -0
- package/src/core/identity/meta-identity.ts +8 -1
- package/src/core/validator/validator-constants.ts +22 -1
- package/src/core/validator/validator-definition.embedded.ts +121 -0
- package/src/core-types.ts +26 -1
- package/src/errors.ts +11 -2
- package/src/loader/meta-data-loader.ts +12 -0
- package/src/loader/validation-passes.ts +11 -1
- package/src/loader/validation-registry.ts +93 -0
- package/src/parser-core.ts +10 -1
- package/src/persistence/db/db-constants.ts +16 -0
- package/src/persistence/db/db-definition.embedded.ts +57 -0
- package/src/provider-data.ts +17 -0
- package/src/registry.ts +16 -0
- package/src/validate-max-occurs.ts +39 -0
- package/src/validation-types.ts +57 -0
- 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/documentation/doc-schema.d.ts +0 -8
- package/dist/core/documentation/doc-schema.d.ts.map +0 -1
- package/dist/core/documentation/doc-schema.js +0 -61
- package/dist/core/documentation/doc-schema.js.map +0 -1
- package/dist/core/field/field-schema.d.ts +0 -6
- package/dist/core/field/field-schema.d.ts.map +0 -1
- package/dist/core/field/field-schema.js +0 -23
- package/dist/core/field/field-schema.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/identity/identity-schema.d.ts +0 -6
- package/dist/core/identity/identity-schema.d.ts.map +0 -1
- package/dist/core/identity/identity-schema.js +0 -56
- package/dist/core/identity/identity-schema.js.map +0 -1
- package/dist/core/object/object-schema.d.ts +0 -4
- package/dist/core/object/object-schema.d.ts.map +0 -1
- package/dist/core/object/object-schema.js +0 -28
- package/dist/core/object/object-schema.js.map +0 -1
- package/dist/core/relationship/relationship-schema.d.ts +0 -4
- package/dist/core/relationship/relationship-schema.d.ts.map +0 -1
- package/dist/core/relationship/relationship-schema.js +0 -57
- package/dist/core/relationship/relationship-schema.js.map +0 -1
- package/dist/core/validator/validator-schema.d.ts +0 -4
- package/dist/core/validator/validator-schema.d.ts.map +0 -1
- package/dist/core/validator/validator-schema.js +0 -38
- package/dist/core/validator/validator-schema.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
- package/dist/persistence/db/db-schema.d.ts +0 -28
- package/dist/persistence/db/db-schema.d.ts.map +0 -1
- package/dist/persistence/db/db-schema.js +0 -62
- package/dist/persistence/db/db-schema.js.map +0 -1
- package/dist/persistence/origin/origin-schema.d.ts +0 -4
- package/dist/persistence/origin/origin-schema.d.ts.map +0 -1
- package/dist/persistence/origin/origin-schema.js +0 -63
- package/dist/persistence/origin/origin-schema.js.map +0 -1
- package/dist/persistence/source/source-schema.d.ts +0 -4
- package/dist/persistence/source/source-schema.d.ts.map +0 -1
- package/dist/persistence/source/source-schema.js +0 -98
- package/dist/persistence/source/source-schema.js.map +0 -1
- package/dist/presentation/layout/layout-schema.d.ts +0 -4
- package/dist/presentation/layout/layout-schema.d.ts.map +0 -1
- package/dist/presentation/layout/layout-schema.js +0 -47
- package/dist/presentation/layout/layout-schema.js.map +0 -1
- package/dist/presentation/ui/ui-schema.d.ts +0 -10
- package/dist/presentation/ui/ui-schema.d.ts.map +0 -1
- package/dist/presentation/ui/ui-schema.js +0 -41
- package/dist/presentation/ui/ui-schema.js.map +0 -1
- package/dist/presentation/view/view-schema.d.ts +0 -4
- package/dist/presentation/view/view-schema.d.ts.map +0 -1
- package/dist/presentation/view/view-schema.js +0 -15
- package/dist/presentation/view/view-schema.js.map +0 -1
- package/dist/template/prompt-schema.d.ts +0 -20
- package/dist/template/prompt-schema.d.ts.map +0 -1
- package/dist/template/prompt-schema.js +0 -70
- package/dist/template/prompt-schema.js.map +0 -1
- package/dist/template/template-schema.d.ts +0 -3
- package/dist/template/template-schema.d.ts.map +0 -1
- package/dist/template/template-schema.js +0 -181
- package/dist/template/template-schema.js.map +0 -1
|
@@ -1,324 +0,0 @@
|
|
|
1
|
-
// Attribute schemas — Phase A2.
|
|
2
|
-
//
|
|
3
|
-
// Per (type, subType) attr inventories consumed by registerCoreTypes()
|
|
4
|
-
// (core-types.ts) and the A3 validation pass (attr-schema-validate.ts).
|
|
5
|
-
//
|
|
6
|
-
// Sourced from constants.ts (attr names), the src/meta/* node accessors (which
|
|
7
|
-
// attrs each subtype reads), the conformance fixtures (real usage + `required`
|
|
8
|
-
// determination), and CLAUDE.md (descriptions, defaults, allowedValues).
|
|
9
|
-
//
|
|
10
|
-
// `required: true` is reserved for attrs that EVERY conformance fixture with
|
|
11
|
-
// that subtype supplies AND that are semantically mandatory. Everything else
|
|
12
|
-
// is `required: false` (Phase A3 validation depends on this being conservative).
|
|
13
|
-
//
|
|
14
|
-
// This module is pure declarative data — no logic, no registration. It is
|
|
15
|
-
// split out of core-types.ts purely so the registration logic stays readable.
|
|
16
|
-
import { SUBTYPE_BASE, VALIDATOR_SUBTYPE_REQUIRED, VALIDATOR_SUBTYPE_LENGTH, VALIDATOR_SUBTYPE_REGEX, VALIDATOR_SUBTYPE_NUMERIC, VALIDATOR_SUBTYPE_ARRAY, IDENTITY_SUBTYPE_PRIMARY, IDENTITY_SUBTYPE_SECONDARY, IDENTITY_SUBTYPE_REFERENCE, ORIGIN_SUBTYPE_PASSTHROUGH, ORIGIN_SUBTYPE_AGGREGATE,
|
|
17
|
-
// attr-subtype value-type constants
|
|
18
|
-
ATTR_SUBTYPE_STRING, ATTR_SUBTYPE_INT, ATTR_SUBTYPE_BOOLEAN, ATTR_SUBTYPE_STRINGARRAY,
|
|
19
|
-
// attr-name constants
|
|
20
|
-
FIELD_ATTR_OBJECT_REF, FIELD_ATTR_REQUIRED, FIELD_ATTR_UNIQUE, FIELD_ATTR_DEFAULT, FIELD_ATTR_MAX_LENGTH, FIELD_ATTR_PRECISION, FIELD_ATTR_SCALE, FIELD_ATTR_FILTERABLE, FIELD_ATTR_SORTABLE, FIELD_ATTR_SORTABLE_DEFAULT_ORDER, FIELD_ATTR_CURRENCY, FIELD_ATTR_CURRENCY_DEFAULT, FIELD_ATTR_AUTO_SET, IDENTITY_ATTR_FIELDS, IDENTITY_ATTR_GENERATION, IDENTITY_ATTR_UNIQUE, IDENTITY_REFERENCE_ATTR_REFERENCES, IDENTITY_REFERENCE_ATTR_ENFORCE, GENERATION_VALUES, RELATIONSHIP_ATTR_CARDINALITY, RELATIONSHIP_ATTR_OBJECT_REF, RELATIONSHIP_ATTR_JOIN_ENTITY, RELATIONSHIP_ATTR_JOIN_FIELDS, VALIDATOR_ATTR_PATTERN, VALIDATOR_ATTR_MIN, VALIDATOR_ATTR_MAX, AUTO_SET_VALUES, SORT_ORDER_VALUES, OBJECT_JAVA_RUNTIME_VALUES, OBJECT_ATTR_JAVA_RUNTIME, ORIGIN_PASSTHROUGH_ATTR_FROM, ORIGIN_PASSTHROUGH_ATTR_VIA, ORIGIN_AGGREGATE_ATTR_AGG, ORIGIN_AGGREGATE_ATTR_OF, ORIGIN_AGGREGATE_ATTR_VIA, AGGREGATE_FUNCTIONS, LAYOUT_DATA_GRID_ATTR_PAGE_SIZE, LAYOUT_DATA_GRID_ATTR_DEFAULT_SORT_FIELD, LAYOUT_DATA_GRID_ATTR_DEFAULT_SORT_ORDER, LAYOUT_DATA_GRID_ATTR_FILTERABLE, LAYOUT_DATA_GRID_ATTR_FILTER, LAYOUT_DATA_GRID_ATTR_COLUMNS, VIEW_CURRENCY_ATTR_LOCALE, VIEW_CURRENCY_ATTR_LOCALE_DEFAULT, } from "./constants.js";
|
|
21
|
-
/** Attrs common to every field subtype (codegen-ts column mapper + Project D filter/sort). */
|
|
22
|
-
export const commonFieldAttrs = [
|
|
23
|
-
{
|
|
24
|
-
name: FIELD_ATTR_OBJECT_REF,
|
|
25
|
-
valueType: ATTR_SUBTYPE_STRING,
|
|
26
|
-
required: false,
|
|
27
|
-
description: "Name (or FQN) of the target object an object-typed field nests — drives nested-object (de)serialization.",
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
name: FIELD_ATTR_REQUIRED,
|
|
31
|
-
valueType: ATTR_SUBTYPE_BOOLEAN,
|
|
32
|
-
required: false,
|
|
33
|
-
description: "When true, the field is NOT NULL. Equivalent to attaching a validator.required child.",
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
name: FIELD_ATTR_UNIQUE,
|
|
37
|
-
valueType: ATTR_SUBTYPE_BOOLEAN,
|
|
38
|
-
required: false,
|
|
39
|
-
description: "When true, the field gets a column-level UNIQUE constraint.",
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
name: FIELD_ATTR_DEFAULT,
|
|
43
|
-
// @default is polymorphic: its value type follows the OWNING field's
|
|
44
|
-
// subtype — a boolean field defaults to a boolean, an int field to a
|
|
45
|
-
// number, a string field to a string. No single fixed valueType can
|
|
46
|
-
// capture that, so valueType is intentionally omitted (declared-but-untyped).
|
|
47
|
-
// The parser stores the raw JSON value type-preserved (no coercion).
|
|
48
|
-
// Typed conversion happens at consumption time via MetaField.defaultValue(),
|
|
49
|
-
// which applies the field's own DataType — Java parity with
|
|
50
|
-
// MetaField.getDefaultValue() / DataConverter.toTypeSafe(getDataType(), o).
|
|
51
|
-
required: false,
|
|
52
|
-
description: "Default value applied to the column when no value is supplied. Its type follows the field's own subtype (string / boolean / number / ...). Converted at consumption time via MetaField.defaultValue().",
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
name: FIELD_ATTR_MAX_LENGTH,
|
|
56
|
-
valueType: ATTR_SUBTYPE_INT,
|
|
57
|
-
required: false,
|
|
58
|
-
description: "Maximum character length for string-typed fields (drives VARCHAR(n)).",
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
name: FIELD_ATTR_PRECISION,
|
|
62
|
-
valueType: ATTR_SUBTYPE_INT,
|
|
63
|
-
required: false,
|
|
64
|
-
description: "Total number of significant digits for decimal-typed fields.",
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
name: FIELD_ATTR_SCALE,
|
|
68
|
-
valueType: ATTR_SUBTYPE_INT,
|
|
69
|
-
required: false,
|
|
70
|
-
description: "Number of digits to the right of the decimal point for decimal-typed fields.",
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
name: FIELD_ATTR_FILTERABLE,
|
|
74
|
-
valueType: ATTR_SUBTYPE_BOOLEAN,
|
|
75
|
-
required: false,
|
|
76
|
-
description: "When true, the field is exposed in generated CRUD filter allowlists (Project D filter layer).",
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
name: FIELD_ATTR_SORTABLE,
|
|
80
|
-
valueType: ATTR_SUBTYPE_BOOLEAN,
|
|
81
|
-
required: false,
|
|
82
|
-
description: "When true, the field is exposed in generated CRUD sort allowlists. Inherits from @filterable by default; set false to opt out.",
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
name: FIELD_ATTR_SORTABLE_DEFAULT_ORDER,
|
|
86
|
-
valueType: ATTR_SUBTYPE_STRING,
|
|
87
|
-
required: false,
|
|
88
|
-
allowedValues: [...SORT_ORDER_VALUES],
|
|
89
|
-
description: "Default sort direction applied when this field is the default sort field.",
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
name: FIELD_ATTR_AUTO_SET,
|
|
93
|
-
valueType: ATTR_SUBTYPE_STRING,
|
|
94
|
-
required: false,
|
|
95
|
-
allowedValues: [...AUTO_SET_VALUES],
|
|
96
|
-
description: "Auto-set semantics for timestamp-like fields: 'onCreate' stamps on insert, 'onUpdate' stamps on every write.",
|
|
97
|
-
},
|
|
98
|
-
];
|
|
99
|
-
/** The @currency attr — only on field.currency. */
|
|
100
|
-
export const currencyFieldAttr = {
|
|
101
|
-
name: FIELD_ATTR_CURRENCY,
|
|
102
|
-
valueType: ATTR_SUBTYPE_STRING,
|
|
103
|
-
required: false,
|
|
104
|
-
default: FIELD_ATTR_CURRENCY_DEFAULT,
|
|
105
|
-
description: "ISO 4217 currency code for a currency-subtype field. Storage is integer minor units; defaults to 'USD' when omitted.",
|
|
106
|
-
};
|
|
107
|
-
/** Attrs on view.currency. */
|
|
108
|
-
export const currencyViewAttrs = [
|
|
109
|
-
{
|
|
110
|
-
name: VIEW_CURRENCY_ATTR_LOCALE,
|
|
111
|
-
valueType: ATTR_SUBTYPE_STRING,
|
|
112
|
-
required: false,
|
|
113
|
-
default: VIEW_CURRENCY_ATTR_LOCALE_DEFAULT,
|
|
114
|
-
description: "BCP 47 locale code controlling currency display formatting. Defaults to 'en-US' when omitted.",
|
|
115
|
-
},
|
|
116
|
-
];
|
|
117
|
-
/** Attrs common to every object subtype. */
|
|
118
|
-
export const objectAttrs = [
|
|
119
|
-
{
|
|
120
|
-
name: OBJECT_ATTR_JAVA_RUNTIME,
|
|
121
|
-
valueType: ATTR_SUBTYPE_STRING,
|
|
122
|
-
required: false,
|
|
123
|
-
allowedValues: [...OBJECT_JAVA_RUNTIME_VALUES],
|
|
124
|
-
description: "Java runtime materialization strategy for this object (pojo / map / proxy). Ignored by non-Java implementations.",
|
|
125
|
-
},
|
|
126
|
-
];
|
|
127
|
-
/** Attrs common to every relationship subtype. */
|
|
128
|
-
export const relationshipAttrs = [
|
|
129
|
-
{
|
|
130
|
-
name: RELATIONSHIP_ATTR_CARDINALITY,
|
|
131
|
-
valueType: ATTR_SUBTYPE_STRING,
|
|
132
|
-
required: false,
|
|
133
|
-
// No allowedValues: @cardinality is an open string at the metamodel level
|
|
134
|
-
// (MetaRelationship.cardinality returns `string | undefined`). The Java
|
|
135
|
-
// canonical fixtures use composite forms such as "many-to-one"; the
|
|
136
|
-
// CARDINALITY_VALUES ("one"/"many") constant is a TS codegen convenience,
|
|
137
|
-
// NOT a closed metamodel enum. A3 must not reject the Java-canonical values.
|
|
138
|
-
description: "Cardinality of the relationship target (e.g. 'one', 'many', 'many-to-one').",
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
name: RELATIONSHIP_ATTR_OBJECT_REF,
|
|
142
|
-
valueType: ATTR_SUBTYPE_STRING,
|
|
143
|
-
required: false,
|
|
144
|
-
description: "Name or fully-qualified name of the target object the relationship points to (e.g. 'Week' or 'acme::vehicle::Car').",
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
name: RELATIONSHIP_ATTR_JOIN_ENTITY,
|
|
148
|
-
valueType: ATTR_SUBTYPE_STRING,
|
|
149
|
-
required: false,
|
|
150
|
-
description: "Join-table entity name for N:M relationships.",
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
name: RELATIONSHIP_ATTR_JOIN_FIELDS,
|
|
154
|
-
valueType: ATTR_SUBTYPE_STRINGARRAY,
|
|
155
|
-
required: false,
|
|
156
|
-
description: "Join-table column names for N:M relationships.",
|
|
157
|
-
},
|
|
158
|
-
];
|
|
159
|
-
/** Attrs on identity.primary / identity.secondary — @fields is required. */
|
|
160
|
-
export const identityFieldsAttr = {
|
|
161
|
-
name: IDENTITY_ATTR_FIELDS,
|
|
162
|
-
valueType: ATTR_SUBTYPE_STRINGARRAY,
|
|
163
|
-
required: true,
|
|
164
|
-
description: "The field name(s) composing this identity. Single-element for a simple PK/index, multiple for a composite.",
|
|
165
|
-
};
|
|
166
|
-
const primaryIdentityAttrs = [
|
|
167
|
-
{ ...identityFieldsAttr },
|
|
168
|
-
{
|
|
169
|
-
name: IDENTITY_ATTR_GENERATION,
|
|
170
|
-
valueType: ATTR_SUBTYPE_STRING,
|
|
171
|
-
required: false,
|
|
172
|
-
allowedValues: [...GENERATION_VALUES],
|
|
173
|
-
description: "Primary-key value generation strategy: 'increment' (auto-increment), 'uuid', or 'assigned' (caller-supplied).",
|
|
174
|
-
},
|
|
175
|
-
];
|
|
176
|
-
const secondaryIdentityAttrs = [
|
|
177
|
-
{ ...identityFieldsAttr },
|
|
178
|
-
{
|
|
179
|
-
name: IDENTITY_ATTR_UNIQUE,
|
|
180
|
-
valueType: ATTR_SUBTYPE_BOOLEAN,
|
|
181
|
-
required: false,
|
|
182
|
-
description: "When true (default), the secondary identity is a UNIQUE index; false makes it a plain (non-unique) index.",
|
|
183
|
-
},
|
|
184
|
-
];
|
|
185
|
-
const referenceIdentityAttrs = [
|
|
186
|
-
{ ...identityFieldsAttr },
|
|
187
|
-
{
|
|
188
|
-
name: IDENTITY_REFERENCE_ATTR_REFERENCES,
|
|
189
|
-
valueType: ATTR_SUBTYPE_STRING,
|
|
190
|
-
required: true,
|
|
191
|
-
description: "Target of the reference. Bare entity name (e.g. 'Program') resolves to that entity's primary identity. " +
|
|
192
|
-
"Dotted forms ('Program.id' or 'Program.fieldA,fieldB') target an explicit field set on the entity.",
|
|
193
|
-
},
|
|
194
|
-
{
|
|
195
|
-
name: IDENTITY_REFERENCE_ATTR_ENFORCE,
|
|
196
|
-
valueType: ATTR_SUBTYPE_BOOLEAN,
|
|
197
|
-
required: false,
|
|
198
|
-
description: "When true (default), the backend physically enforces the reference (SQL FK constraint, " +
|
|
199
|
-
"document validation rule, graph edge guarantee). Set false to declare a logical reference " +
|
|
200
|
-
"for navigation/typing/codegen only — the value may dangle at the backend level.",
|
|
201
|
-
},
|
|
202
|
-
];
|
|
203
|
-
/** Attrs on origin.passthrough — @from is required. */
|
|
204
|
-
const passthroughOriginAttrs = [
|
|
205
|
-
{
|
|
206
|
-
name: ORIGIN_PASSTHROUGH_ATTR_FROM,
|
|
207
|
-
valueType: ATTR_SUBTYPE_STRING,
|
|
208
|
-
required: true,
|
|
209
|
-
description: "Dotted Entity.field reference identifying the source value this projection field passes through (e.g. 'Program.title').",
|
|
210
|
-
},
|
|
211
|
-
{
|
|
212
|
-
name: ORIGIN_PASSTHROUGH_ATTR_VIA,
|
|
213
|
-
valueType: ATTR_SUBTYPE_STRING,
|
|
214
|
-
required: false,
|
|
215
|
-
description: "Optional dotted relationship path used to reach the source entity (e.g. 'Program.weeks').",
|
|
216
|
-
},
|
|
217
|
-
];
|
|
218
|
-
/** Attrs on origin.aggregate — @agg, @of, @via all required. */
|
|
219
|
-
const aggregateOriginAttrs = [
|
|
220
|
-
{
|
|
221
|
-
name: ORIGIN_AGGREGATE_ATTR_AGG,
|
|
222
|
-
valueType: ATTR_SUBTYPE_STRING,
|
|
223
|
-
required: true,
|
|
224
|
-
allowedValues: [...AGGREGATE_FUNCTIONS],
|
|
225
|
-
description: "Aggregate function applied over the relationship path: count, sum, avg, min, or max.",
|
|
226
|
-
},
|
|
227
|
-
{
|
|
228
|
-
name: ORIGIN_AGGREGATE_ATTR_OF,
|
|
229
|
-
valueType: ATTR_SUBTYPE_STRING,
|
|
230
|
-
required: true,
|
|
231
|
-
description: "Dotted Entity.field reference identifying the column being aggregated (e.g. 'Week.durationMinutes').",
|
|
232
|
-
},
|
|
233
|
-
{
|
|
234
|
-
name: ORIGIN_AGGREGATE_ATTR_VIA,
|
|
235
|
-
valueType: ATTR_SUBTYPE_STRING,
|
|
236
|
-
required: true,
|
|
237
|
-
description: "Dotted relationship path from the base entity to the aggregated rows (e.g. 'Program.weeks' or 'Program.weeks.workouts').",
|
|
238
|
-
},
|
|
239
|
-
];
|
|
240
|
-
/** Attrs on layout.dataGrid. */
|
|
241
|
-
export const dataGridLayoutAttrs = [
|
|
242
|
-
{
|
|
243
|
-
name: LAYOUT_DATA_GRID_ATTR_PAGE_SIZE,
|
|
244
|
-
valueType: ATTR_SUBTYPE_INT,
|
|
245
|
-
required: false,
|
|
246
|
-
description: "Number of rows per page in the generated data grid.",
|
|
247
|
-
},
|
|
248
|
-
{
|
|
249
|
-
name: LAYOUT_DATA_GRID_ATTR_DEFAULT_SORT_FIELD,
|
|
250
|
-
valueType: ATTR_SUBTYPE_STRING,
|
|
251
|
-
required: false,
|
|
252
|
-
description: "Field name the grid is sorted by on initial render. Must reference an actual field on the entity.",
|
|
253
|
-
},
|
|
254
|
-
{
|
|
255
|
-
name: LAYOUT_DATA_GRID_ATTR_DEFAULT_SORT_ORDER,
|
|
256
|
-
valueType: ATTR_SUBTYPE_STRING,
|
|
257
|
-
required: false,
|
|
258
|
-
allowedValues: [...SORT_ORDER_VALUES],
|
|
259
|
-
description: "Initial sort direction for the default sort field: 'asc' or 'desc'.",
|
|
260
|
-
},
|
|
261
|
-
{
|
|
262
|
-
name: LAYOUT_DATA_GRID_ATTR_FILTERABLE,
|
|
263
|
-
valueType: ATTR_SUBTYPE_BOOLEAN,
|
|
264
|
-
required: false,
|
|
265
|
-
description: "When true, the generated grid exposes column filtering UI.",
|
|
266
|
-
},
|
|
267
|
-
{
|
|
268
|
-
name: LAYOUT_DATA_GRID_ATTR_FILTER,
|
|
269
|
-
valueType: ATTR_SUBTYPE_STRING,
|
|
270
|
-
required: false,
|
|
271
|
-
description: "JSON-encoded preset filter applied to the grid at the metadata level.",
|
|
272
|
-
},
|
|
273
|
-
{
|
|
274
|
-
name: LAYOUT_DATA_GRID_ATTR_COLUMNS,
|
|
275
|
-
valueType: ATTR_SUBTYPE_STRINGARRAY,
|
|
276
|
-
required: false,
|
|
277
|
-
description: "Flat ordered list of field names to display as grid columns.",
|
|
278
|
-
},
|
|
279
|
-
];
|
|
280
|
-
/** @min / @max shared by length, numeric, array, and the base validator. */
|
|
281
|
-
const minMaxValidatorAttrs = [
|
|
282
|
-
{
|
|
283
|
-
name: VALIDATOR_ATTR_MIN,
|
|
284
|
-
valueType: ATTR_SUBTYPE_INT,
|
|
285
|
-
required: false,
|
|
286
|
-
description: "Minimum allowed value (length, numeric value, or array element count depending on the validator subtype).",
|
|
287
|
-
},
|
|
288
|
-
{
|
|
289
|
-
name: VALIDATOR_ATTR_MAX,
|
|
290
|
-
valueType: ATTR_SUBTYPE_INT,
|
|
291
|
-
required: false,
|
|
292
|
-
description: "Maximum allowed value (length, numeric value, or array element count depending on the validator subtype).",
|
|
293
|
-
},
|
|
294
|
-
];
|
|
295
|
-
/** Attrs per origin subtype. base has none; passthrough and aggregate carry their respective attrs. */
|
|
296
|
-
export const ORIGIN_ATTRS_MAP = new Map([
|
|
297
|
-
[SUBTYPE_BASE, []],
|
|
298
|
-
[ORIGIN_SUBTYPE_PASSTHROUGH, [...passthroughOriginAttrs]],
|
|
299
|
-
[ORIGIN_SUBTYPE_AGGREGATE, [...aggregateOriginAttrs]],
|
|
300
|
-
]);
|
|
301
|
-
/** Attrs per identity subtype. primary adds @generation; secondary adds @unique. */
|
|
302
|
-
export const IDENTITY_ATTRS_MAP = new Map([
|
|
303
|
-
[IDENTITY_SUBTYPE_PRIMARY, [...primaryIdentityAttrs]],
|
|
304
|
-
[IDENTITY_SUBTYPE_SECONDARY, [...secondaryIdentityAttrs]],
|
|
305
|
-
[IDENTITY_SUBTYPE_REFERENCE, [...referenceIdentityAttrs]],
|
|
306
|
-
]);
|
|
307
|
-
/** Attrs per validator subtype. Required uses none; regex adds @pattern. */
|
|
308
|
-
export const VALIDATOR_ATTRS_MAP = new Map([
|
|
309
|
-
[SUBTYPE_BASE, [...minMaxValidatorAttrs]],
|
|
310
|
-
[VALIDATOR_SUBTYPE_REQUIRED, []],
|
|
311
|
-
[VALIDATOR_SUBTYPE_LENGTH, [...minMaxValidatorAttrs]],
|
|
312
|
-
[VALIDATOR_SUBTYPE_REGEX, [
|
|
313
|
-
...minMaxValidatorAttrs,
|
|
314
|
-
{
|
|
315
|
-
name: VALIDATOR_ATTR_PATTERN,
|
|
316
|
-
valueType: ATTR_SUBTYPE_STRING,
|
|
317
|
-
required: false,
|
|
318
|
-
description: "Regular expression the value must match.",
|
|
319
|
-
},
|
|
320
|
-
]],
|
|
321
|
-
[VALIDATOR_SUBTYPE_NUMERIC, [...minMaxValidatorAttrs]],
|
|
322
|
-
[VALIDATOR_SUBTYPE_ARRAY, [...minMaxValidatorAttrs]],
|
|
323
|
-
]);
|
|
324
|
-
//# sourceMappingURL=core-attr-schemas.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"core-attr-schemas.js","sourceRoot":"","sources":["../src/core-attr-schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { AttrSchema } from "../registry.js";
|
|
2
|
-
/** `@dbColumn` — column-name override; on every field subtype. */
|
|
3
|
-
export declare const dbColumnSchema: AttrSchema;
|
|
4
|
-
/** `@db.indexed` — suppress the @filterable-without-index warning; on every field subtype. */
|
|
5
|
-
export declare const dbIndexedSchema: AttrSchema;
|
|
6
|
-
/** `@name` — the SQL table/view identifier; on source.dbTable and source.dbView. */
|
|
7
|
-
export declare const sourceNameSchema: AttrSchema;
|
|
8
|
-
//# sourceMappingURL=db-attr-schemas.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"db-attr-schemas.d.ts","sourceRoot":"","sources":["../../src/db/db-attr-schemas.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AASjD,kEAAkE;AAClE,eAAO,MAAM,cAAc,EAAE,UAM5B,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,eAAe,EAAE,UAM7B,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,gBAAgB,EAAE,UAM9B,CAAC"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
// DB-domain attribute schemas. Relocated from core-attr-schemas.ts — these
|
|
2
|
-
// attributes are registered by dbProvider (db-provider.ts), not the core
|
|
3
|
-
// metamodel. See docs/superpowers/specs/2026-05-18-phase4b-db-provider-design.md.
|
|
4
|
-
import { ATTR_SUBTYPE_STRING, ATTR_SUBTYPE_BOOLEAN, FIELD_ATTR_DB_COLUMN, FIELD_ATTR_DB_INDEXED, SOURCE_ATTR_NAME, } from "../constants.js";
|
|
5
|
-
/** `@dbColumn` — column-name override; on every field subtype. */
|
|
6
|
-
export const dbColumnSchema = {
|
|
7
|
-
name: FIELD_ATTR_DB_COLUMN,
|
|
8
|
-
valueType: ATTR_SUBTYPE_STRING,
|
|
9
|
-
required: false,
|
|
10
|
-
description: "Override the generated SQL column name for this field. Defaults to the field name run through the project's columnNamingStrategy.",
|
|
11
|
-
};
|
|
12
|
-
/** `@db.indexed` — suppress the @filterable-without-index warning; on every field subtype. */
|
|
13
|
-
export const dbIndexedSchema = {
|
|
14
|
-
name: FIELD_ATTR_DB_INDEXED,
|
|
15
|
-
valueType: ATTR_SUBTYPE_BOOLEAN,
|
|
16
|
-
required: false,
|
|
17
|
-
description: "When true, suppress the @filterable-without-index Loader warning (the field is indexed by other means).",
|
|
18
|
-
};
|
|
19
|
-
/** `@name` — the SQL table/view identifier; on source.dbTable and source.dbView. */
|
|
20
|
-
export const sourceNameSchema = {
|
|
21
|
-
name: SOURCE_ATTR_NAME,
|
|
22
|
-
valueType: ATTR_SUBTYPE_STRING,
|
|
23
|
-
required: false,
|
|
24
|
-
description: "The SQL table or view name for this source. Defaults to the object name run through the columnNamingStrategy when omitted.",
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=db-attr-schemas.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"db-attr-schemas.js","sourceRoot":"","sources":["../../src/db/db-attr-schemas.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,yEAAyE;AACzE,kFAAkF;AAGlF,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,kEAAkE;AAClE,MAAM,CAAC,MAAM,cAAc,GAAe;IACxC,IAAI,EAAE,oBAAoB;IAC1B,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,KAAK;IACf,WAAW,EACT,mIAAmI;CACtI,CAAC;AAEF,8FAA8F;AAC9F,MAAM,CAAC,MAAM,eAAe,GAAe;IACzC,IAAI,EAAE,qBAAqB;IAC3B,SAAS,EAAE,oBAAoB;IAC/B,QAAQ,EAAE,KAAK;IACf,WAAW,EACT,yGAAyG;CAC5G,CAAC;AAEF,oFAAoF;AACpF,MAAM,CAAC,MAAM,gBAAgB,GAAe;IAC1C,IAAI,EAAE,gBAAgB;IACtB,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,KAAK;IACf,WAAW,EACT,4HAA4H;CAC/H,CAAC"}
|
package/dist/db/db-provider.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"db-provider.d.ts","sourceRoot":"","sources":["../../src/db/db-provider.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAW3D,eAAO,MAAM,UAAU,EAAE,oBAoBxB,CAAC"}
|
package/dist/db/db-provider.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
// dbProvider — the DB-domain MetaDataTypeProvider. Registers the DB-domain
|
|
2
|
-
// attributes (@dbColumn, @db.indexed on fields; @name on source.dbTable /
|
|
3
|
-
// source.dbView) by extending the core-registered types. Mirrors Java's
|
|
4
|
-
// CoreDBMetaDataProvider (com.metaobjects.database).
|
|
5
|
-
// See docs/superpowers/specs/2026-05-18-phase4b-db-provider-design.md.
|
|
6
|
-
import { TYPE_FIELD, TYPE_SOURCE, FIELD_SUBTYPES, SOURCE_SUBTYPE_DB_TABLE, SOURCE_SUBTYPE_DB_VIEW, } from "../constants.js";
|
|
7
|
-
import { dbColumnSchema, dbIndexedSchema, sourceNameSchema } from "./db-attr-schemas.js";
|
|
8
|
-
export const dbProvider = {
|
|
9
|
-
id: "metaobjects-db",
|
|
10
|
-
dependencies: ["metaobjects-core-types"],
|
|
11
|
-
description: "DB-domain attributes — @dbColumn / @db.indexed on fields, @name on source.dbTable / source.dbView.",
|
|
12
|
-
registerTypes(registry) {
|
|
13
|
-
for (const subType of FIELD_SUBTYPES) {
|
|
14
|
-
registry.extend(TYPE_FIELD, subType, {
|
|
15
|
-
attributes: [dbColumnSchema, dbIndexedSchema],
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
// Two explicit calls (not a loop) — dbTable and dbView are the only DB
|
|
19
|
-
// source subtypes, and there is no DB_SOURCE_SUBTYPES constant to loop.
|
|
20
|
-
registry.extend(TYPE_SOURCE, SOURCE_SUBTYPE_DB_TABLE, {
|
|
21
|
-
attributes: [sourceNameSchema],
|
|
22
|
-
});
|
|
23
|
-
registry.extend(TYPE_SOURCE, SOURCE_SUBTYPE_DB_VIEW, {
|
|
24
|
-
attributes: [sourceNameSchema],
|
|
25
|
-
});
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
//# sourceMappingURL=db-provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"db-provider.js","sourceRoot":"","sources":["../../src/db/db-provider.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,0EAA0E;AAC1E,wEAAwE;AACxE,qDAAqD;AACrD,uEAAuE;AAIvE,OAAO,EACL,UAAU,EACV,WAAW,EACX,cAAc,EACd,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEzF,MAAM,CAAC,MAAM,UAAU,GAAyB;IAC9C,EAAE,EAAE,gBAAgB;IACpB,YAAY,EAAE,CAAC,wBAAwB,CAAC;IACxC,WAAW,EACT,oGAAoG;IACtG,aAAa,CAAC,QAAsB;QAClC,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;YACrC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE;gBACnC,UAAU,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;aAC9C,CAAC,CAAC;QACL,CAAC;QACD,uEAAuE;QACvE,wEAAwE;QACxE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,uBAAuB,EAAE;YACpD,UAAU,EAAE,CAAC,gBAAgB,CAAC;SAC/B,CAAC,CAAC;QACH,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,sBAAsB,EAAE;YACnD,UAAU,EAAE,CAAC,gBAAgB,CAAC;SAC/B,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { MetaObject } from "./meta-object.js";
|
|
2
|
-
import type { MetaReferenceIdentity } from "./meta-identity.js";
|
|
3
|
-
export interface ReferenceLookup {
|
|
4
|
-
/** The entity whose identity.reference points at `other`. */
|
|
5
|
-
readonly holder: MetaObject;
|
|
6
|
-
/** The other side of the reference. */
|
|
7
|
-
readonly other: MetaObject;
|
|
8
|
-
/** The matching identity.reference declaration on `holder`. */
|
|
9
|
-
readonly referenceIdentity: MetaReferenceIdentity;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Find an identity.reference on either `a` or `b` whose @references targets the
|
|
13
|
-
* other side. Returns undefined if neither side declares one.
|
|
14
|
-
*
|
|
15
|
-
* Comparison is package-insensitive: `@references` may be a bare entity name
|
|
16
|
-
* ("User") or a fully-qualified one ("pkg::User"); both match `other.name`.
|
|
17
|
-
*
|
|
18
|
-
* If both sides declare references targeting each other (rare, but legal for
|
|
19
|
-
* mutual 1:1), returns the first found, walking `a` first.
|
|
20
|
-
*/
|
|
21
|
-
export declare function findReferenceBetween(a: MetaObject, b: MetaObject): ReferenceLookup | undefined;
|
|
22
|
-
//# sourceMappingURL=find-reference.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"find-reference.d.ts","sourceRoot":"","sources":["../../src/meta/find-reference.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAGhE,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,uCAAuC;IACvC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,+DAA+D;IAC/D,QAAQ,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;CACnD;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,CAAC,EAAE,UAAU,EACb,CAAC,EAAE,UAAU,GACZ,eAAe,GAAG,SAAS,CAS7B"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
// Cross-entity reference lookup — anchored to identity.reference declarations.
|
|
2
|
-
//
|
|
3
|
-
// Given a relationship-style query "is there a reference between A and B?",
|
|
4
|
-
// walk A's and B's identity.reference children to find the side that physically
|
|
5
|
-
// holds the reference. This is the single source of truth for FK direction
|
|
6
|
-
// across projection codegen, Drizzle schema emit, relations() blocks, and
|
|
7
|
-
// migration schema comparison.
|
|
8
|
-
import { stripPackage } from "../naming.js";
|
|
9
|
-
/**
|
|
10
|
-
* Find an identity.reference on either `a` or `b` whose @references targets the
|
|
11
|
-
* other side. Returns undefined if neither side declares one.
|
|
12
|
-
*
|
|
13
|
-
* Comparison is package-insensitive: `@references` may be a bare entity name
|
|
14
|
-
* ("User") or a fully-qualified one ("pkg::User"); both match `other.name`.
|
|
15
|
-
*
|
|
16
|
-
* If both sides declare references targeting each other (rare, but legal for
|
|
17
|
-
* mutual 1:1), returns the first found, walking `a` first.
|
|
18
|
-
*/
|
|
19
|
-
export function findReferenceBetween(a, b) {
|
|
20
|
-
for (const [holder, other] of [[a, b], [b, a]]) {
|
|
21
|
-
for (const ref of holder.referenceIdentities()) {
|
|
22
|
-
if (stripPackage(ref.targetEntity) === other.name) {
|
|
23
|
-
return { holder, other, referenceIdentity: ref };
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
return undefined;
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=find-reference.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"find-reference.js","sourceRoot":"","sources":["../../src/meta/find-reference.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,EAAE;AACF,4EAA4E;AAC5E,gFAAgF;AAChF,2EAA2E;AAC3E,0EAA0E;AAC1E,+BAA+B;AAI/B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAW5C;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,CAAa,EACb,CAAa;IAEb,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAU,EAAE,CAAC;QACxD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,mBAAmB,EAAE,EAAE,CAAC;YAC/C,IAAI,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;gBAClD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/dist/meta/meta-attr.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { MetaData } from "./meta-data.js";
|
|
2
|
-
import { type DataType, type DataTypeAware } from "../data-type.js";
|
|
3
|
-
export declare class MetaAttr extends MetaData implements DataTypeAware {
|
|
4
|
-
get value(): unknown;
|
|
5
|
-
/** The coarse value-type classification for this attribute's subtype. */
|
|
6
|
-
get dataType(): DataType;
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=meta-attr.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"meta-attr.d.ts","sourceRoot":"","sources":["../../src/meta/meta-attr.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAoB,MAAM,iBAAiB,CAAC;AAGtF,qBAAa,QAAS,SAAQ,QAAS,YAAW,aAAa;IAC7D,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,yEAAyE;IACzE,IAAI,QAAQ,IAAI,QAAQ,CAEvB;CACF"}
|
package/dist/meta/meta-attr.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
// MetaAttr — concrete node class for type=attr nodes.
|
|
2
|
-
// Used when an attribute is materialized as a child node (rare).
|
|
3
|
-
//
|
|
4
|
-
// Extends MetaData directly: no model wrapper, no metaOf() indirection.
|
|
5
|
-
import { MetaData } from "./meta-data.js";
|
|
6
|
-
import { DATA_TYPE_STRING } from "../data-type.js";
|
|
7
|
-
import { RESERVED_KEY_VALUE } from "../constants.js";
|
|
8
|
-
export class MetaAttr extends MetaData {
|
|
9
|
-
get value() {
|
|
10
|
-
return this.ownAttr(RESERVED_KEY_VALUE);
|
|
11
|
-
}
|
|
12
|
-
/** The coarse value-type classification for this attribute's subtype. */
|
|
13
|
-
get dataType() {
|
|
14
|
-
return this._dataType ?? DATA_TYPE_STRING;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=meta-attr.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"meta-attr.js","sourceRoot":"","sources":["../../src/meta/meta-attr.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,iEAAiE;AACjE,EAAE;AACF,wEAAwE;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAqC,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,OAAO,QAAS,SAAQ,QAAQ;IACpC,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC1C,CAAC;IAED,yEAAyE;IACzE,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,IAAI,gBAAgB,CAAC;IAC5C,CAAC;CACF"}
|
package/dist/meta/meta-data.d.ts
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { TypeId } from "../registry.js";
|
|
2
|
-
import type { DataType } from "../data-type.js";
|
|
3
|
-
export type AttrValue = string | number | boolean | string[];
|
|
4
|
-
export declare abstract class MetaData {
|
|
5
|
-
readonly typeId: TypeId;
|
|
6
|
-
readonly name: string;
|
|
7
|
-
package?: string;
|
|
8
|
-
superRef?: string;
|
|
9
|
-
private _superData?;
|
|
10
|
-
isAbstract: boolean;
|
|
11
|
-
isArray: boolean;
|
|
12
|
-
/**
|
|
13
|
-
* Per-node merge flag (v0.3 `merge: true` operator).
|
|
14
|
-
*
|
|
15
|
-
* When `true` on a node being parsed:
|
|
16
|
-
* - If an existing same-(type,name) child is found in the current parent → reuse it (merge into it).
|
|
17
|
-
* - If NOT found → throw: "Merge operation requested for [...] but no existing metadata found".
|
|
18
|
-
*/
|
|
19
|
-
isMerge: boolean;
|
|
20
|
-
private _attrs;
|
|
21
|
-
private _children;
|
|
22
|
-
private _parent?;
|
|
23
|
-
private _frozen;
|
|
24
|
-
protected _dataType?: DataType;
|
|
25
|
-
private readonly _cache;
|
|
26
|
-
constructor(typeId: TypeId, name: string);
|
|
27
|
-
/**
|
|
28
|
-
* Memoize a derived read. Only caches once the node is frozen — a value
|
|
29
|
-
* computed during the (mutable) load phase is never stored, so it cannot
|
|
30
|
-
* go stale. After freeze the tree is immutable, so a cached entry is valid
|
|
31
|
-
* for the node's lifetime; there is no invalidation.
|
|
32
|
-
*/
|
|
33
|
-
protected cached<T>(key: string, compute: () => T): T;
|
|
34
|
-
get type(): string;
|
|
35
|
-
get subType(): string;
|
|
36
|
-
/** "package::name" if package is set, else just "name". Uses :: as separator (not .). */
|
|
37
|
-
fqn(): string;
|
|
38
|
-
private _assertNotFrozen;
|
|
39
|
-
setPackage(pkg: string): void;
|
|
40
|
-
/** Returns the resolved super model, or undefined if not yet resolved. */
|
|
41
|
-
get superData(): MetaData | undefined;
|
|
42
|
-
/** Temporary compatibility alias for `superData` — kept while super-resolve.ts still references this name; to be removed in a later task. */
|
|
43
|
-
get superResolved(): MetaData | undefined;
|
|
44
|
-
/**
|
|
45
|
-
* Sets the resolved super model. Normally called by Task 6's super resolution
|
|
46
|
-
* after parsing and before freezing.
|
|
47
|
-
*/
|
|
48
|
-
setSuperResolved(model: MetaData): void;
|
|
49
|
-
setSuper(ref: string): void;
|
|
50
|
-
setIsArray(val: boolean): void;
|
|
51
|
-
/** Set the registry-supplied DataType. Called by the registry factory at
|
|
52
|
-
* node construction. */
|
|
53
|
-
setDataType(dt: DataType): void;
|
|
54
|
-
setIsAbstract(val: boolean): void;
|
|
55
|
-
setIsMerge(val: boolean): void;
|
|
56
|
-
setAttr(name: string, value: AttrValue): void;
|
|
57
|
-
/** Own (locally declared) attr value for `name`, or undefined — excludes inherited. */
|
|
58
|
-
ownAttr(name: string): AttrValue | undefined;
|
|
59
|
-
/**
|
|
60
|
-
* Own (locally declared) attrs — a cached map; excludes attrs inherited via extends.
|
|
61
|
-
* Do not cast to `Map` and mutate — the same reference is returned on every call
|
|
62
|
-
* after freeze, so a mutation would corrupt subsequent reads.
|
|
63
|
-
*/
|
|
64
|
-
ownAttrs(): ReadonlyMap<string, AttrValue>;
|
|
65
|
-
/** True if `name` is an own (locally declared) attr — excludes inherited. */
|
|
66
|
-
ownHasAttr(name: string): boolean;
|
|
67
|
-
/**
|
|
68
|
-
* Effective attrs — own + inherited via the super chain, own winning on a key conflict; cached.
|
|
69
|
-
* Do not cast to `Map` and mutate — the same reference is returned on every call
|
|
70
|
-
* after freeze, so a mutation would corrupt subsequent reads.
|
|
71
|
-
*/
|
|
72
|
-
attrs(): ReadonlyMap<string, AttrValue>;
|
|
73
|
-
/** Effective attr value for `name`, or undefined. */
|
|
74
|
-
attr(name: string): AttrValue | undefined;
|
|
75
|
-
/** True if `name` resolves to an effective attr (own or inherited). */
|
|
76
|
-
hasAttr(name: string): boolean;
|
|
77
|
-
addChild(child: MetaData): void;
|
|
78
|
-
/** The node this node was added to as a child, or undefined for the tree root. */
|
|
79
|
-
get parent(): MetaData | undefined;
|
|
80
|
-
/** Walk up to the top of the tree this node belongs to. */
|
|
81
|
-
root(): MetaData;
|
|
82
|
-
/** Own (locally declared) children — a cached frozen array; excludes children inherited via extends. */
|
|
83
|
-
ownChildren(): readonly MetaData[];
|
|
84
|
-
/** Own children whose type matches — excludes inherited. */
|
|
85
|
-
ownChildrenOfType(type: string): MetaData[];
|
|
86
|
-
/** Own children matching both type and subType — excludes inherited. */
|
|
87
|
-
ownChildrenOfSubType(type: string, subType: string): MetaData[];
|
|
88
|
-
/** First own child with matching name, or undefined — excludes inherited. */
|
|
89
|
-
ownChildByName(name: string): MetaData | undefined;
|
|
90
|
-
/** First own child matching both type and name, or undefined — excludes inherited. */
|
|
91
|
-
ownChildByTypeAndName(type: string, name: string): MetaData | undefined;
|
|
92
|
-
/** Effective children: own + inherited via the super chain, own shadowing super. Cached, frozen. */
|
|
93
|
-
children(): readonly MetaData[];
|
|
94
|
-
/** Effective children whose type matches. */
|
|
95
|
-
childrenOfType(type: string): MetaData[];
|
|
96
|
-
/** Effective children matching both type and subType. */
|
|
97
|
-
childrenOfSubType(type: string, subType: string): MetaData[];
|
|
98
|
-
/** First effective child with matching name, or undefined. */
|
|
99
|
-
childByName(name: string): MetaData | undefined;
|
|
100
|
-
/** First effective child matching both type and name, or undefined. */
|
|
101
|
-
childByTypeAndName(type: string, name: string): MetaData | undefined;
|
|
102
|
-
private _effectiveAttrs;
|
|
103
|
-
private _effectiveChildren;
|
|
104
|
-
freeze(): void;
|
|
105
|
-
isFrozen(): boolean;
|
|
106
|
-
}
|
|
107
|
-
//# sourceMappingURL=meta-data.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"meta-data.d.ts","sourceRoot":"","sources":["../../src/meta/meta-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC;AAE7D,8BAAsB,QAAQ;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAGtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,UAAU,CAAC,CAAW;IAC9B,UAAU,EAAE,OAAO,CAAS;IAG5B,OAAO,EAAE,OAAO,CAAS;IAEzB;;;;;;OAMG;IACH,OAAO,EAAE,OAAO,CAAS;IAGzB,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,OAAO,CAAC,CAAW;IAC3B,OAAO,CAAC,OAAO,CAAkB;IAIjC,SAAS,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;IAG/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;gBAEzC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IASxC;;;;;OAKG;IACH,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC;IAarD,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,yFAAyF;IACzF,GAAG,IAAI,MAAM;IAWb,OAAO,CAAC,gBAAgB;IAUxB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAS7B,0EAA0E;IAC1E,IAAI,SAAS,IAAI,QAAQ,GAAG,SAAS,CAEpC;IAED,6IAA6I;IAC7I,IAAI,aAAa,IAAI,QAAQ,GAAG,SAAS,CAExC;IAED;;;OAGG;IACH,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAKvC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAS3B,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAS9B;6BACyB;IACzB,WAAW,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI;IAS/B,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IASjC,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAS9B,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI;IAK7C,uFAAuF;IACvF,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI5C;;;;OAIG;IACH,QAAQ,IAAI,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC;IAI1C,6EAA6E;IAC7E,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAUjC;;;;OAIG;IACH,KAAK,IAAI,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC;IAIvC,qDAAqD;IACrD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAIzC,uEAAuE;IACvE,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQ9B,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAM/B,kFAAkF;IAClF,IAAI,MAAM,IAAI,QAAQ,GAAG,SAAS,CAEjC;IAED,2DAA2D;IAC3D,IAAI,IAAI,QAAQ;IAQhB,wGAAwG;IACxG,WAAW,IAAI,SAAS,QAAQ,EAAE;IAIlC,4DAA4D;IAC5D,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE;IAI3C,wEAAwE;IACxE,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE;IAI/D,6EAA6E;IAC7E,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIlD,sFAAsF;IACtF,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAUvE,oGAAoG;IACpG,QAAQ,IAAI,SAAS,QAAQ,EAAE;IAI/B,6CAA6C;IAC7C,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE;IAIxC,yDAAyD;IACzD,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE;IAI5D,8DAA8D;IAC9D,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAI/C,uEAAuE;IACvE,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAQpE,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,kBAAkB;IAmC1B,MAAM,IAAI,IAAI;IAUd,QAAQ,IAAI,OAAO;CAGpB"}
|