@metaobjectsdev/metadata 0.8.1 → 0.9.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.
Files changed (220) hide show
  1. package/dist/attr-schema-validate.d.ts.map +1 -1
  2. package/dist/attr-schema-validate.js +49 -1
  3. package/dist/attr-schema-validate.js.map +1 -1
  4. package/dist/core/field/field-constants.d.ts +27 -2
  5. package/dist/core/field/field-constants.d.ts.map +1 -1
  6. package/dist/core/field/field-constants.js +30 -2
  7. package/dist/core/field/field-constants.js.map +1 -1
  8. package/dist/core/field/field-schema.d.ts +9 -1
  9. package/dist/core/field/field-schema.d.ts.map +1 -1
  10. package/dist/core/field/field-schema.js +34 -3
  11. package/dist/core/field/field-schema.js.map +1 -1
  12. package/dist/core/field/meta-field.d.ts +10 -0
  13. package/dist/core/field/meta-field.d.ts.map +1 -1
  14. package/dist/core/field/meta-field.js +36 -1
  15. package/dist/core/field/meta-field.js.map +1 -1
  16. package/dist/core/field/validate-field-readonly.d.ts +9 -0
  17. package/dist/core/field/validate-field-readonly.d.ts.map +1 -0
  18. package/dist/core/field/validate-field-readonly.js +116 -0
  19. package/dist/core/field/validate-field-readonly.js.map +1 -0
  20. package/dist/core/object/meta-object-aware.d.ts +11 -0
  21. package/dist/core/object/meta-object-aware.d.ts.map +1 -0
  22. package/dist/core/object/meta-object-aware.js +15 -0
  23. package/dist/core/object/meta-object-aware.js.map +1 -0
  24. package/dist/core/object/meta-object.d.ts +21 -0
  25. package/dist/core/object/meta-object.d.ts.map +1 -1
  26. package/dist/core/object/meta-object.js +43 -2
  27. package/dist/core/object/meta-object.js.map +1 -1
  28. package/dist/core/object/object-class-registry.d.ts +22 -0
  29. package/dist/core/object/object-class-registry.d.ts.map +1 -0
  30. package/dist/core/object/object-class-registry.js +38 -0
  31. package/dist/core/object/object-class-registry.js.map +1 -0
  32. package/dist/core/object/object-constants.d.ts +7 -0
  33. package/dist/core/object/object-constants.d.ts.map +1 -1
  34. package/dist/core/object/object-constants.js +14 -0
  35. package/dist/core/object/object-constants.js.map +1 -1
  36. package/dist/core/object/object-schema.d.ts.map +1 -1
  37. package/dist/core/object/object-schema.js +24 -1
  38. package/dist/core/object/object-schema.js.map +1 -1
  39. package/dist/core/object/validate-discriminator.d.ts +4 -0
  40. package/dist/core/object/validate-discriminator.d.ts.map +1 -0
  41. package/dist/core/object/validate-discriminator.js +145 -0
  42. package/dist/core/object/validate-discriminator.js.map +1 -0
  43. package/dist/core/object/value-object.d.ts +23 -0
  44. package/dist/core/object/value-object.d.ts.map +1 -0
  45. package/dist/core/object/value-object.js +51 -0
  46. package/dist/core/object/value-object.js.map +1 -0
  47. package/dist/core/query/query-constants.d.ts.map +1 -1
  48. package/dist/core/query/query-constants.js +4 -0
  49. package/dist/core/query/query-constants.js.map +1 -1
  50. package/dist/core-types.d.ts.map +1 -1
  51. package/dist/core-types.js +16 -4
  52. package/dist/core-types.js.map +1 -1
  53. package/dist/errors.d.ts +2 -2
  54. package/dist/errors.d.ts.map +1 -1
  55. package/dist/errors.js +23 -0
  56. package/dist/errors.js.map +1 -1
  57. package/dist/index.d.ts +5 -0
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +4 -0
  60. package/dist/index.js.map +1 -1
  61. package/dist/loader/meta-data-loader.d.ts.map +1 -1
  62. package/dist/loader/meta-data-loader.js +26 -1
  63. package/dist/loader/meta-data-loader.js.map +1 -1
  64. package/dist/loader/validation-passes.d.ts +1 -0
  65. package/dist/loader/validation-passes.d.ts.map +1 -1
  66. package/dist/loader/validation-passes.js +122 -2
  67. package/dist/loader/validation-passes.js.map +1 -1
  68. package/dist/naming.d.ts.map +1 -1
  69. package/dist/naming.js +7 -6
  70. package/dist/naming.js.map +1 -1
  71. package/dist/persistence/db/db-constants.d.ts +23 -0
  72. package/dist/persistence/db/db-constants.d.ts.map +1 -1
  73. package/dist/persistence/db/db-constants.js +31 -0
  74. package/dist/persistence/db/db-constants.js.map +1 -1
  75. package/dist/persistence/db/db-provider.js +3 -3
  76. package/dist/persistence/db/db-provider.js.map +1 -1
  77. package/dist/persistence/db/db-schema.d.ts +8 -0
  78. package/dist/persistence/db/db-schema.d.ts.map +1 -1
  79. package/dist/persistence/db/db-schema.js +17 -1
  80. package/dist/persistence/db/db-schema.js.map +1 -1
  81. package/dist/persistence/source/meta-source.d.ts +15 -1
  82. package/dist/persistence/source/meta-source.d.ts.map +1 -1
  83. package/dist/persistence/source/meta-source.js +55 -3
  84. package/dist/persistence/source/meta-source.js.map +1 -1
  85. package/dist/persistence/source/source-constants.d.ts +20 -1
  86. package/dist/persistence/source/source-constants.d.ts.map +1 -1
  87. package/dist/persistence/source/source-constants.js +36 -1
  88. package/dist/persistence/source/source-constants.js.map +1 -1
  89. package/dist/persistence/source/source-schema.d.ts.map +1 -1
  90. package/dist/persistence/source/source-schema.js +65 -4
  91. package/dist/persistence/source/source-schema.js.map +1 -1
  92. package/dist/persistence/source/validate-source-parameter-ref.d.ts +4 -0
  93. package/dist/persistence/source/validate-source-parameter-ref.d.ts.map +1 -0
  94. package/dist/persistence/source/validate-source-parameter-ref.js +96 -0
  95. package/dist/persistence/source/validate-source-parameter-ref.js.map +1 -0
  96. package/dist/persistence/source/validate-source-physical-names.d.ts +9 -0
  97. package/dist/persistence/source/validate-source-physical-names.d.ts.map +1 -0
  98. package/dist/persistence/source/validate-source-physical-names.js +79 -0
  99. package/dist/persistence/source/validate-source-physical-names.js.map +1 -0
  100. package/dist/serializer-json.d.ts.map +1 -1
  101. package/dist/serializer-json.js +43 -0
  102. package/dist/serializer-json.js.map +1 -1
  103. package/dist/template/template-constants.d.ts +9 -0
  104. package/dist/template/template-constants.d.ts.map +1 -1
  105. package/dist/template/template-constants.js +20 -0
  106. package/dist/template/template-constants.js.map +1 -1
  107. package/dist/template/template-schema.d.ts.map +1 -1
  108. package/dist/template/template-schema.js +42 -3
  109. package/dist/template/template-schema.js.map +1 -1
  110. package/package.json +1 -1
  111. package/src/attr-schema-validate.ts +70 -0
  112. package/src/core/field/field-constants.ts +37 -2
  113. package/src/core/field/field-schema.ts +43 -2
  114. package/src/core/field/meta-field.ts +39 -0
  115. package/src/core/field/validate-field-readonly.ts +142 -0
  116. package/src/core/object/meta-object-aware.ts +27 -0
  117. package/src/core/object/meta-object.ts +47 -2
  118. package/src/core/object/object-class-registry.ts +48 -0
  119. package/src/core/object/object-constants.ts +17 -0
  120. package/src/core/object/object-schema.ts +29 -1
  121. package/src/core/object/validate-discriminator.ts +195 -0
  122. package/src/core/object/value-object.ts +65 -0
  123. package/src/core/query/query-constants.ts +5 -0
  124. package/src/core-types.ts +17 -4
  125. package/src/errors.ts +23 -0
  126. package/src/index.ts +10 -0
  127. package/src/loader/meta-data-loader.ts +31 -1
  128. package/src/loader/validation-passes.ts +161 -0
  129. package/src/naming.ts +6 -5
  130. package/src/persistence/db/db-constants.ts +40 -0
  131. package/src/persistence/db/db-provider.ts +3 -3
  132. package/src/persistence/db/db-schema.ts +20 -0
  133. package/src/persistence/source/meta-source.ts +64 -2
  134. package/src/persistence/source/source-constants.ts +40 -1
  135. package/src/persistence/source/source-schema.ts +78 -3
  136. package/src/persistence/source/validate-source-parameter-ref.ts +143 -0
  137. package/src/persistence/source/validate-source-physical-names.ts +123 -0
  138. package/src/serializer-json.ts +50 -0
  139. package/src/template/template-constants.ts +23 -0
  140. package/src/template/template-schema.ts +49 -2
  141. package/dist/constants.d.ts +0 -208
  142. package/dist/constants.d.ts.map +0 -1
  143. package/dist/constants.js +0 -419
  144. package/dist/constants.js.map +0 -1
  145. package/dist/core/file-meta-data-loader.d.ts +0 -18
  146. package/dist/core/file-meta-data-loader.d.ts.map +0 -1
  147. package/dist/core/file-meta-data-loader.js +0 -81
  148. package/dist/core/file-meta-data-loader.js.map +0 -1
  149. package/dist/core/file-source.d.ts +0 -12
  150. package/dist/core/file-source.d.ts.map +0 -1
  151. package/dist/core/file-source.js +0 -46
  152. package/dist/core/file-source.js.map +0 -1
  153. package/dist/core-attr-schemas.d.ts +0 -22
  154. package/dist/core-attr-schemas.d.ts.map +0 -1
  155. package/dist/core-attr-schemas.js +0 -324
  156. package/dist/core-attr-schemas.js.map +0 -1
  157. package/dist/db/db-attr-schemas.d.ts +0 -8
  158. package/dist/db/db-attr-schemas.d.ts.map +0 -1
  159. package/dist/db/db-attr-schemas.js +0 -26
  160. package/dist/db/db-attr-schemas.js.map +0 -1
  161. package/dist/db/db-provider.d.ts +0 -3
  162. package/dist/db/db-provider.d.ts.map +0 -1
  163. package/dist/db/db-provider.js +0 -28
  164. package/dist/db/db-provider.js.map +0 -1
  165. package/dist/meta/find-reference.d.ts +0 -22
  166. package/dist/meta/find-reference.d.ts.map +0 -1
  167. package/dist/meta/find-reference.js +0 -29
  168. package/dist/meta/find-reference.js.map +0 -1
  169. package/dist/meta/meta-attr.d.ts +0 -8
  170. package/dist/meta/meta-attr.d.ts.map +0 -1
  171. package/dist/meta/meta-attr.js +0 -17
  172. package/dist/meta/meta-attr.js.map +0 -1
  173. package/dist/meta/meta-data.d.ts +0 -107
  174. package/dist/meta/meta-data.d.ts.map +0 -1
  175. package/dist/meta/meta-data.js +0 -302
  176. package/dist/meta/meta-data.js.map +0 -1
  177. package/dist/meta/meta-field.d.ts +0 -48
  178. package/dist/meta/meta-field.d.ts.map +0 -1
  179. package/dist/meta/meta-field.js +0 -94
  180. package/dist/meta/meta-field.js.map +0 -1
  181. package/dist/meta/meta-identity.d.ts +0 -71
  182. package/dist/meta/meta-identity.d.ts.map +0 -1
  183. package/dist/meta/meta-identity.js +0 -129
  184. package/dist/meta/meta-identity.js.map +0 -1
  185. package/dist/meta/meta-layout.d.ts +0 -23
  186. package/dist/meta/meta-layout.d.ts.map +0 -1
  187. package/dist/meta/meta-layout.js +0 -45
  188. package/dist/meta/meta-layout.js.map +0 -1
  189. package/dist/meta/meta-object.d.ts +0 -40
  190. package/dist/meta/meta-object.d.ts.map +0 -1
  191. package/dist/meta/meta-object.js +0 -81
  192. package/dist/meta/meta-object.js.map +0 -1
  193. package/dist/meta/meta-origin.d.ts +0 -32
  194. package/dist/meta/meta-origin.d.ts.map +0 -1
  195. package/dist/meta/meta-origin.js +0 -55
  196. package/dist/meta/meta-origin.js.map +0 -1
  197. package/dist/meta/meta-relationship.d.ts +0 -11
  198. package/dist/meta/meta-relationship.d.ts.map +0 -1
  199. package/dist/meta/meta-relationship.js +0 -27
  200. package/dist/meta/meta-relationship.js.map +0 -1
  201. package/dist/meta/meta-root.d.ts +0 -12
  202. package/dist/meta/meta-root.d.ts.map +0 -1
  203. package/dist/meta/meta-root.js +0 -24
  204. package/dist/meta/meta-root.js.map +0 -1
  205. package/dist/meta/meta-source.d.ts +0 -18
  206. package/dist/meta/meta-source.d.ts.map +0 -1
  207. package/dist/meta/meta-source.js +0 -31
  208. package/dist/meta/meta-source.js.map +0 -1
  209. package/dist/meta/meta-validator.d.ts +0 -29
  210. package/dist/meta/meta-validator.d.ts.map +0 -1
  211. package/dist/meta/meta-validator.js +0 -49
  212. package/dist/meta/meta-validator.js.map +0 -1
  213. package/dist/meta/meta-view.d.ts +0 -4
  214. package/dist/meta/meta-view.d.ts.map +0 -1
  215. package/dist/meta/meta-view.js +0 -8
  216. package/dist/meta/meta-view.js.map +0 -1
  217. package/dist/persistence/db/db-attr-schemas.d.ts +0 -8
  218. package/dist/persistence/db/db-attr-schemas.d.ts.map +0 -1
  219. package/dist/persistence/db/db-attr-schemas.js +0 -28
  220. package/dist/persistence/db/db-attr-schemas.js.map +0 -1
package/dist/naming.js CHANGED
@@ -42,13 +42,14 @@ export function pluralize(s) {
42
42
  return s + "s";
43
43
  }
44
44
  export function resolveTableName(entity) {
45
- // Primary source carries the physical table/view name (@table). Writability
46
- // (table vs view/storedProc/tableFunction) only affects write-routing — for
47
- // SELECT-side name resolution, a read-only primary source is the right answer.
45
+ // FR-016: primary source's `physicalName` implements the four-step rule
46
+ // (kind-matching alias → legacy @table source.name entity-name fallback),
47
+ // so this helper now just delegates. Writability (table vs view/storedProc/
48
+ // tableFunction) only affects write-routing — for SELECT-side name resolution,
49
+ // a read-only primary source is the right answer.
48
50
  const source = entity.ownChildren().find((c) => c instanceof MetaSource && c.role === SOURCE_ROLE_PRIMARY);
49
- const name = source?.tableName;
50
- if (typeof name === "string" && name !== "")
51
- return name;
51
+ if (source !== undefined)
52
+ return source.physicalName;
52
53
  return pluralize(toSnakeCase(entity.name));
53
54
  }
54
55
  export function resolveColumnName(field, strategy = DEFAULT_COLUMN_NAMING_STRATEGY) {
@@ -1 +1 @@
1
- {"version":3,"file":"naming.js","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"naming.js","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,27 @@
2
2
  export declare const FIELD_ATTR_COLUMN = "column";
3
3
  /** When true, suppress the @filterable-without-index Loader warning (Project D drift check). */
4
4
  export declare const FIELD_ATTR_DB_INDEXED = "db.indexed";
5
+ /**
6
+ * R6 Plan 2b: `@dbColumnType` — physical DB column-type override on a field.
7
+ * Selects the DB column type WITHOUT changing the logical field type or its
8
+ * native binding (ADR-0013 — the canonical physical escape hatch). Registered
9
+ * by the dbProvider, validated as a (logical subtype × value) pairing.
10
+ */
11
+ export declare const FIELD_ATTR_DB_COLUMN_TYPE = "dbColumnType";
12
+ /** `@dbColumnType: uuid` — native Postgres `uuid` column (legal on field.string). */
13
+ export declare const DB_COLUMN_TYPE_UUID = "uuid";
14
+ /** `@dbColumnType: jsonb` — genuinely-open `jsonb` column (legal on field.string). */
15
+ export declare const DB_COLUMN_TYPE_JSONB = "jsonb";
16
+ /** `@dbColumnType: timestamp_with_tz` — `timestamp with time zone` (legal on field.timestamp). */
17
+ export declare const DB_COLUMN_TYPE_TIMESTAMP_WITH_TZ = "timestamp_with_tz";
18
+ /** The closed set of legal `@dbColumnType` values (raw-dialect passthrough deferred). */
19
+ export declare const DB_COLUMN_TYPE_VALUES: readonly ["uuid", "jsonb", "timestamp_with_tz"];
20
+ export type DbColumnTypeValue = (typeof DB_COLUMN_TYPE_VALUES)[number];
21
+ /**
22
+ * Legal `@dbColumnType` value → the field subtypes it may be applied to (ADR-0013,
23
+ * R6 Plan 2b). Any other (subtype × value) pairing — or an unrecognized value — is
24
+ * an ERR_BAD_ATTR_VALUE. Keyed by value; the value-set is enforced by membership in
25
+ * this map. Subtype names are the bare FIELD_SUBTYPE_* constants (string / timestamp).
26
+ */
27
+ export declare const DB_COLUMN_TYPE_LEGAL_SUBTYPES: Readonly<Record<DbColumnTypeValue, readonly string[]>>;
5
28
  //# sourceMappingURL=db-constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"db-constants.d.ts","sourceRoot":"","sources":["../../../src/persistence/db/db-constants.ts"],"names":[],"mappings":"AAEA,qEAAqE;AACrE,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAC1C,gGAAgG;AAChG,eAAO,MAAM,qBAAqB,eAAe,CAAC"}
1
+ {"version":3,"file":"db-constants.d.ts","sourceRoot":"","sources":["../../../src/persistence/db/db-constants.ts"],"names":[],"mappings":"AAOA,qEAAqE;AACrE,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAC1C,gGAAgG;AAChG,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAElD;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,iBAAiB,CAAC;AAExD,qFAAqF;AACrF,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAC1C,sFAAsF;AACtF,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAC5C,kGAAkG;AAClG,eAAO,MAAM,gCAAgC,sBAAsB,CAAC;AAEpE,yFAAyF;AACzF,eAAO,MAAM,qBAAqB,iDAIxB,CAAC;AACX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EAAE,QAAQ,CAAC,MAAM,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC,CAIvF,CAAC"}
@@ -1,6 +1,37 @@
1
1
  // DB concern constants — physical DB column attr keys.
2
+ import { FIELD_SUBTYPE_STRING, FIELD_SUBTYPE_TIMESTAMP, } from "../../core/field/field-constants.js";
2
3
  /** Column name override on a field (maps to @column in metadata). */
3
4
  export const FIELD_ATTR_COLUMN = "column";
4
5
  /** When true, suppress the @filterable-without-index Loader warning (Project D drift check). */
5
6
  export const FIELD_ATTR_DB_INDEXED = "db.indexed";
7
+ /**
8
+ * R6 Plan 2b: `@dbColumnType` — physical DB column-type override on a field.
9
+ * Selects the DB column type WITHOUT changing the logical field type or its
10
+ * native binding (ADR-0013 — the canonical physical escape hatch). Registered
11
+ * by the dbProvider, validated as a (logical subtype × value) pairing.
12
+ */
13
+ export const FIELD_ATTR_DB_COLUMN_TYPE = "dbColumnType";
14
+ /** `@dbColumnType: uuid` — native Postgres `uuid` column (legal on field.string). */
15
+ export const DB_COLUMN_TYPE_UUID = "uuid";
16
+ /** `@dbColumnType: jsonb` — genuinely-open `jsonb` column (legal on field.string). */
17
+ export const DB_COLUMN_TYPE_JSONB = "jsonb";
18
+ /** `@dbColumnType: timestamp_with_tz` — `timestamp with time zone` (legal on field.timestamp). */
19
+ export const DB_COLUMN_TYPE_TIMESTAMP_WITH_TZ = "timestamp_with_tz";
20
+ /** The closed set of legal `@dbColumnType` values (raw-dialect passthrough deferred). */
21
+ export const DB_COLUMN_TYPE_VALUES = [
22
+ DB_COLUMN_TYPE_UUID,
23
+ DB_COLUMN_TYPE_JSONB,
24
+ DB_COLUMN_TYPE_TIMESTAMP_WITH_TZ,
25
+ ];
26
+ /**
27
+ * Legal `@dbColumnType` value → the field subtypes it may be applied to (ADR-0013,
28
+ * R6 Plan 2b). Any other (subtype × value) pairing — or an unrecognized value — is
29
+ * an ERR_BAD_ATTR_VALUE. Keyed by value; the value-set is enforced by membership in
30
+ * this map. Subtype names are the bare FIELD_SUBTYPE_* constants (string / timestamp).
31
+ */
32
+ export const DB_COLUMN_TYPE_LEGAL_SUBTYPES = {
33
+ [DB_COLUMN_TYPE_UUID]: [FIELD_SUBTYPE_STRING],
34
+ [DB_COLUMN_TYPE_JSONB]: [FIELD_SUBTYPE_STRING],
35
+ [DB_COLUMN_TYPE_TIMESTAMP_WITH_TZ]: [FIELD_SUBTYPE_TIMESTAMP],
36
+ };
6
37
  //# sourceMappingURL=db-constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"db-constants.js","sourceRoot":"","sources":["../../../src/persistence/db/db-constants.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,qEAAqE;AACrE,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAC1C,gGAAgG;AAChG,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAC"}
1
+ {"version":3,"file":"db-constants.js","sourceRoot":"","sources":["../../../src/persistence/db/db-constants.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EACL,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,qCAAqC,CAAC;AAE7C,qEAAqE;AACrE,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAC1C,gGAAgG;AAChG,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAElD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,cAAc,CAAC;AAExD,qFAAqF;AACrF,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAC1C,sFAAsF;AACtF,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO,CAAC;AAC5C,kGAAkG;AAClG,MAAM,CAAC,MAAM,gCAAgC,GAAG,mBAAmB,CAAC;AAEpE,yFAAyF;AACzF,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,mBAAmB;IACnB,oBAAoB;IACpB,gCAAgC;CACxB,CAAC;AAGX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAA2D;IACnG,CAAC,mBAAmB,CAAC,EAAE,CAAC,oBAAoB,CAAC;IAC7C,CAAC,oBAAoB,CAAC,EAAE,CAAC,oBAAoB,CAAC;IAC9C,CAAC,gCAAgC,CAAC,EAAE,CAAC,uBAAuB,CAAC;CACrD,CAAC"}
@@ -5,16 +5,16 @@
5
5
  import { TYPE_FIELD, TYPE_SOURCE } from "../../shared/base-types.js";
6
6
  import { FIELD_SUBTYPES } from "../../core/field/field-constants.js";
7
7
  import { SOURCE_SUBTYPE_RDB } from "../source/source-constants.js";
8
- import { columnSchema, dbIndexedSchema } from "./db-schema.js";
8
+ import { columnSchema, dbIndexedSchema, dbColumnTypeSchema } from "./db-schema.js";
9
9
  import { sourceRdbAttrs } from "../source/source-schema.js";
10
10
  export const dbProvider = {
11
11
  id: "metaobjects-db",
12
12
  dependencies: ["metaobjects-core-types"],
13
- description: "DB-domain attributes — @column / @db.indexed on fields, @table/@kind/@role/@schema on source.rdb.",
13
+ description: "DB-domain attributes — @column / @db.indexed / @dbColumnType on fields, @table/@kind/@role/@schema on source.rdb.",
14
14
  registerTypes(registry) {
15
15
  for (const subType of FIELD_SUBTYPES) {
16
16
  registry.extend(TYPE_FIELD, subType, {
17
- attributes: [columnSchema, dbIndexedSchema],
17
+ attributes: [columnSchema, dbIndexedSchema, dbColumnTypeSchema],
18
18
  });
19
19
  }
20
20
  // source.rdb — @table/@kind/@role/@schema attrs.
@@ -1 +1 @@
1
- {"version":3,"file":"db-provider.js","sourceRoot":"","sources":["../../../src/persistence/db/db-provider.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,6EAA6E;AAC7E,qEAAqE;AACrE,qDAAqD;AAIrD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,MAAM,CAAC,MAAM,UAAU,GAAyB;IAC9C,EAAE,EAAE,gBAAgB;IACpB,YAAY,EAAE,CAAC,wBAAwB,CAAC;IACxC,WAAW,EACT,mGAAmG;IACrG,aAAa,CAAC,QAAsB;QAClC,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;YACrC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE;gBACnC,UAAU,EAAE,CAAC,YAAY,EAAE,eAAe,CAAC;aAC5C,CAAC,CAAC;QACL,CAAC;QACD,iDAAiD;QACjD,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,kBAAkB,EAAE;YAC/C,UAAU,EAAE,CAAC,GAAG,cAAc,CAAC;SAChC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"db-provider.js","sourceRoot":"","sources":["../../../src/persistence/db/db-provider.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,6EAA6E;AAC7E,qEAAqE;AACrE,qDAAqD;AAIrD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,MAAM,CAAC,MAAM,UAAU,GAAyB;IAC9C,EAAE,EAAE,gBAAgB;IACpB,YAAY,EAAE,CAAC,wBAAwB,CAAC;IACxC,WAAW,EACT,mHAAmH;IACrH,aAAa,CAAC,QAAsB;QAClC,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;YACrC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE;gBACnC,UAAU,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,kBAAkB,CAAC;aAChE,CAAC,CAAC;QACL,CAAC;QACD,iDAAiD;QACjD,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,kBAAkB,EAAE;YAC/C,UAAU,EAAE,CAAC,GAAG,cAAc,CAAC;SAChC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -3,4 +3,12 @@ import type { AttrSchema } from "../../registry.js";
3
3
  export declare const columnSchema: AttrSchema;
4
4
  /** `@db.indexed` — suppress the @filterable-without-index warning; on every field subtype. */
5
5
  export declare const dbIndexedSchema: AttrSchema;
6
+ /**
7
+ * R6 Plan 2b: `@dbColumnType` — physical DB column-type override on every field
8
+ * subtype. The legal value depends on the field's logical subtype, so the
9
+ * subtype × value pairing is validated own-only by the loader
10
+ * (validateAttrSchema → ERR_BAD_ATTR_VALUE), not by a flat `allowedValues` set.
11
+ * The string valueType keeps the schema's type check intact.
12
+ */
13
+ export declare const dbColumnTypeSchema: AttrSchema;
6
14
  //# sourceMappingURL=db-schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"db-schema.d.ts","sourceRoot":"","sources":["../../../src/persistence/db/db-schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAUpD,4EAA4E;AAC5E,eAAO,MAAM,YAAY,EAAE,UAM1B,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,eAAe,EAAE,UAM7B,CAAC"}
1
+ {"version":3,"file":"db-schema.d.ts","sourceRoot":"","sources":["../../../src/persistence/db/db-schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAYpD,4EAA4E;AAC5E,eAAO,MAAM,YAAY,EAAE,UAM1B,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,eAAe,EAAE,UAM7B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,UAShC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  // DB-domain attribute schemas — registered by dbProvider (db-provider.ts),
2
2
  // not the core metamodel.
3
3
  import { ATTR_SUBTYPE_STRING, ATTR_SUBTYPE_BOOLEAN, } from "../../core/attr/attr-constants.js";
4
- import { FIELD_ATTR_COLUMN, FIELD_ATTR_DB_INDEXED, } from "./db-constants.js";
4
+ import { FIELD_ATTR_COLUMN, FIELD_ATTR_DB_INDEXED, FIELD_ATTR_DB_COLUMN_TYPE, DB_COLUMN_TYPE_VALUES, } from "./db-constants.js";
5
5
  /** `@column` — column-name override on every field subtype (source.rdb). */
6
6
  export const columnSchema = {
7
7
  name: FIELD_ATTR_COLUMN,
@@ -16,4 +16,20 @@ export const dbIndexedSchema = {
16
16
  required: false,
17
17
  description: "When true, suppress the @filterable-without-index Loader warning (the field is indexed by other means).",
18
18
  };
19
+ /**
20
+ * R6 Plan 2b: `@dbColumnType` — physical DB column-type override on every field
21
+ * subtype. The legal value depends on the field's logical subtype, so the
22
+ * subtype × value pairing is validated own-only by the loader
23
+ * (validateAttrSchema → ERR_BAD_ATTR_VALUE), not by a flat `allowedValues` set.
24
+ * The string valueType keeps the schema's type check intact.
25
+ */
26
+ export const dbColumnTypeSchema = {
27
+ name: FIELD_ATTR_DB_COLUMN_TYPE,
28
+ valueType: ATTR_SUBTYPE_STRING,
29
+ required: false,
30
+ description: "Physical DB column-type override (ADR-0013 escape hatch). Legal values are " +
31
+ `${DB_COLUMN_TYPE_VALUES.join(" | ")}, each legal only on a specific logical ` +
32
+ "field subtype (uuid/jsonb on field.string, timestamp_with_tz on field.timestamp). " +
33
+ "The logical field type and its native binding are unchanged.",
34
+ };
19
35
  //# sourceMappingURL=db-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"db-schema.js","sourceRoot":"","sources":["../../../src/persistence/db/db-schema.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,0BAA0B;AAG1B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,4EAA4E;AAC5E,MAAM,CAAC,MAAM,YAAY,GAAe;IACtC,IAAI,EAAE,iBAAiB;IACvB,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,KAAK;IACf,WAAW,EACT,4GAA4G;CAC/G,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"}
1
+ {"version":3,"file":"db-schema.js","sourceRoot":"","sources":["../../../src/persistence/db/db-schema.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,0BAA0B;AAG1B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,4EAA4E;AAC5E,MAAM,CAAC,MAAM,YAAY,GAAe;IACtC,IAAI,EAAE,iBAAiB;IACvB,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,KAAK;IACf,WAAW,EACT,4GAA4G;CAC/G,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;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAe;IAC5C,IAAI,EAAE,yBAAyB;IAC/B,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,KAAK;IACf,WAAW,EACT,6EAA6E;QAC7E,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,0CAA0C;QAC9E,oFAAoF;QACpF,8DAA8D;CACjE,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import { MetaData } from "../../shared/meta-data.js";
2
2
  export declare class MetaSource extends MetaData {
3
- /** Physical SQL table/view name from @table (source.rdb). */
3
+ /** Physical SQL table/view name from the legacy @table attr. Kept as a
4
+ * back-compat accessor that reads ONLY the @table slot — callers should
5
+ * use physicalName for the FR-016 four-step rule. */
4
6
  get tableName(): string | undefined;
5
7
  /**
6
8
  * The effective kind for this source: the value of `@kind`, defaulting to
@@ -16,5 +18,17 @@ export declare class MetaSource extends MetaData {
16
18
  isReadOnly(): boolean;
17
19
  /** True when this source is writable (i.e. not read-only). */
18
20
  isWritable(): boolean;
21
+ /**
22
+ * Resolved physical SQL name for this source, following the FR-016 / ADR-0018
23
+ * four-step rule:
24
+ * 1. Kind-matching alias (e.g. @proc when @kind: "storedProc").
25
+ * 2. Legacy @table for non-table kind (pre-1.0 fallback).
26
+ * 3. Source's bare structural `name` via snake_case.
27
+ * 4. Owning entity's name via pluralize(snake_case).
28
+ *
29
+ * Callers needing the legacy raw @table slot only should use `tableName`;
30
+ * codegen / migrate / runtime should use `physicalName`.
31
+ */
32
+ get physicalName(): string;
19
33
  }
20
34
  //# sourceMappingURL=meta-source.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"meta-source.d.ts","sourceRoot":"","sources":["../../../src/persistence/source/meta-source.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAUrD,qBAAa,UAAW,SAAQ,QAAQ;IACtC,6DAA6D;IAC7D,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAGlC;IAED;;;OAGG;IACH,IAAI,aAAa,IAAI,MAAM,CAG1B;IAED,kFAAkF;IAClF,IAAI,IAAI,IAAI,MAAM,CAGjB;IAED;;;OAGG;IACH,UAAU,IAAI,OAAO;IAIrB,8DAA8D;IAC9D,UAAU,IAAI,OAAO;CAGtB"}
1
+ {"version":3,"file":"meta-source.d.ts","sourceRoot":"","sources":["../../../src/persistence/source/meta-source.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AA0BrD,qBAAa,UAAW,SAAQ,QAAQ;IACtC;;0DAEsD;IACtD,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAGlC;IAED;;;OAGG;IACH,IAAI,aAAa,IAAI,MAAM,CAG1B;IAED,kFAAkF;IAClF,IAAI,IAAI,IAAI,MAAM,CAGjB;IAED;;;OAGG;IACH,UAAU,IAAI,OAAO;IAIrB,8DAA8D;IAC9D,UAAU,IAAI,OAAO;IAIrB;;;;;;;;;;OAUG;IACH,IAAI,YAAY,IAAI,MAAM,CA8BzB;CACF"}
@@ -1,12 +1,25 @@
1
1
  // MetaSource — concrete node class for type=source nodes.
2
2
  // Declares where an object's data lives (Project E).
3
- // source.rdb uses @table/@kind/@role/@schema; read-only is derived from @kind.
3
+ // source.rdb uses kind-aware physical-name aliases + @kind/@role/@schema;
4
+ // read-only-ness is derived from @kind.
4
5
  //
5
6
  // Extends MetaData directly: no model wrapper, no metaOf() indirection.
6
7
  import { MetaData } from "../../shared/meta-data.js";
7
- import { SOURCE_ATTR_TABLE, SOURCE_ATTR_KIND, SOURCE_ATTR_ROLE, SOURCE_READ_ONLY_KINDS, DEFAULT_SOURCE_KIND, DEFAULT_SOURCE_ROLE, } from "./source-constants.js";
8
+ import { pluralize, toSnakeCase } from "../../naming.js";
9
+ import { SOURCE_ATTR_TABLE, SOURCE_ATTR_VIEW, SOURCE_ATTR_MATERIALIZED_VIEW, SOURCE_ATTR_PROC, SOURCE_ATTR_FUNCTION, SOURCE_ATTR_KIND, SOURCE_ATTR_ROLE, SOURCE_READ_ONLY_KINDS, DEFAULT_SOURCE_KIND, DEFAULT_SOURCE_ROLE, PHYSICAL_NAME_ATTR_BY_KIND, } from "./source-constants.js";
10
+ /** Every kind-aware physical-name alias key, ordered for deterministic
11
+ * iteration (matches the SOURCE_RDB_KINDS order). */
12
+ const ALL_PHYSICAL_NAME_ALIASES = [
13
+ SOURCE_ATTR_TABLE,
14
+ SOURCE_ATTR_VIEW,
15
+ SOURCE_ATTR_MATERIALIZED_VIEW,
16
+ SOURCE_ATTR_PROC,
17
+ SOURCE_ATTR_FUNCTION,
18
+ ];
8
19
  export class MetaSource extends MetaData {
9
- /** Physical SQL table/view name from @table (source.rdb). */
20
+ /** Physical SQL table/view name from the legacy @table attr. Kept as a
21
+ * back-compat accessor that reads ONLY the @table slot — callers should
22
+ * use physicalName for the FR-016 four-step rule. */
10
23
  get tableName() {
11
24
  const v = this.ownAttr(SOURCE_ATTR_TABLE);
12
25
  return typeof v === "string" && v !== "" ? v : undefined;
@@ -35,5 +48,44 @@ export class MetaSource extends MetaData {
35
48
  isWritable() {
36
49
  return !this.isReadOnly();
37
50
  }
51
+ /**
52
+ * Resolved physical SQL name for this source, following the FR-016 / ADR-0018
53
+ * four-step rule:
54
+ * 1. Kind-matching alias (e.g. @proc when @kind: "storedProc").
55
+ * 2. Legacy @table for non-table kind (pre-1.0 fallback).
56
+ * 3. Source's bare structural `name` via snake_case.
57
+ * 4. Owning entity's name via pluralize(snake_case).
58
+ *
59
+ * Callers needing the legacy raw @table slot only should use `tableName`;
60
+ * codegen / migrate / runtime should use `physicalName`.
61
+ */
62
+ get physicalName() {
63
+ const kind = this.effectiveKind;
64
+ // Step 1: kind-matching alias.
65
+ const canonicalAttr = PHYSICAL_NAME_ATTR_BY_KIND.get(kind);
66
+ if (canonicalAttr !== undefined) {
67
+ const v = this.ownAttr(canonicalAttr);
68
+ if (typeof v === "string" && v !== "")
69
+ return v;
70
+ }
71
+ // Step 2: legacy @table for non-table kind.
72
+ if (canonicalAttr !== SOURCE_ATTR_TABLE) {
73
+ const legacy = this.ownAttr(SOURCE_ATTR_TABLE);
74
+ if (typeof legacy === "string" && legacy !== "")
75
+ return legacy;
76
+ }
77
+ // Step 3: source's structural `name` via snake_case (no pluralization —
78
+ // the source's name IS the logical name).
79
+ if (this.name !== "") {
80
+ return toSnakeCase(this.name);
81
+ }
82
+ // Step 4: owning entity's name via pluralize(snake_case). The MetaData
83
+ // parent of a source is always the entity that declared it.
84
+ const owner = this.parent;
85
+ if (owner !== undefined && owner.name !== "") {
86
+ return pluralize(toSnakeCase(owner.name));
87
+ }
88
+ return "";
89
+ }
38
90
  }
39
91
  //# sourceMappingURL=meta-source.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"meta-source.js","sourceRoot":"","sources":["../../../src/persistence/source/meta-source.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,qDAAqD;AACrD,+EAA+E;AAC/E,EAAE;AACF,wEAAwE;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,OAAO,UAAW,SAAQ,QAAQ;IACtC,6DAA6D;IAC7D,IAAI,SAAS;QACX,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,CAAC;IAED;;;OAGG;IACH,IAAI,aAAa;QACf,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACzC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC;IACrE,CAAC;IAED,kFAAkF;IAClF,IAAI,IAAI;QACN,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACzC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC;IACrE,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,OAAO,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACxD,CAAC;IAED,8DAA8D;IAC9D,UAAU;QACR,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;IAC5B,CAAC;CACF"}
1
+ {"version":3,"file":"meta-source.js","sourceRoot":"","sources":["../../../src/persistence/source/meta-source.ts"],"names":[],"mappings":"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"}
@@ -7,12 +7,26 @@ export type SourceSubType = (typeof SOURCE_SUBTYPES)[number];
7
7
  export declare const SOURCE_ATTR_SCHEMA = "schema";
8
8
  /** Default Postgres schema when @schema is omitted from a source. */
9
9
  export declare const DEFAULT_DB_SCHEMA_POSTGRES = "public";
10
- /** Physical table/view name on source.rdb. */
10
+ /** Physical SQL table name. Canonical attr for @kind: "table" (default). */
11
11
  export declare const SOURCE_ATTR_TABLE = "table";
12
+ /** Physical SQL view name. Canonical attr for @kind: "view". */
13
+ export declare const SOURCE_ATTR_VIEW = "view";
14
+ /** Physical SQL materialized-view name. Canonical attr for @kind: "materializedView". */
15
+ export declare const SOURCE_ATTR_MATERIALIZED_VIEW = "materializedView";
16
+ /** Physical SQL stored-procedure name. Canonical attr for @kind: "storedProc". */
17
+ export declare const SOURCE_ATTR_PROC = "proc";
18
+ /** Physical SQL table-function name. Canonical attr for @kind: "tableFunction". */
19
+ export declare const SOURCE_ATTR_FUNCTION = "function";
12
20
  /** Object kind within the rdb paradigm; read-only-ness is derived from it. */
13
21
  export declare const SOURCE_ATTR_KIND = "kind";
14
22
  /** Multi-source role; exactly one primary per object. */
15
23
  export declare const SOURCE_ATTR_ROLE = "role";
24
+ /** FR-015: reference to an object.value describing the input shape of a callable
25
+ * source. Required for @kind: "storedProc" | "tableFunction" that take args;
26
+ * ignored for non-callable kinds. Wire-format symmetric with template.@payloadRef
27
+ * (FR-004) — the typed-input pattern reuses object.value rather than minting a
28
+ * new parameter.* node type. */
29
+ export declare const SOURCE_ATTR_PARAMETER_REF = "parameterRef";
16
30
  export declare const SOURCE_KIND_TABLE = "table";
17
31
  export declare const SOURCE_KIND_VIEW = "view";
18
32
  export declare const SOURCE_KIND_MATERIALIZED_VIEW = "materializedView";
@@ -20,6 +34,11 @@ export declare const SOURCE_KIND_STORED_PROC = "storedProc";
20
34
  export declare const SOURCE_KIND_TABLE_FUNCTION = "tableFunction";
21
35
  export declare const SOURCE_RDB_KINDS: readonly ["table", "view", "materializedView", "storedProc", "tableFunction"];
22
36
  export type SourceRdbKind = (typeof SOURCE_RDB_KINDS)[number];
37
+ /** Map @kind → canonical kind-aware physical-name attr key (FR-016 / ADR-0018).
38
+ * Drives the four-step physical-name resolution rule and the canonical-serializer
39
+ * per-kind rewrite. The single internal physical-name "slot" on a source is the
40
+ * value of whichever alias matches the source's @kind. */
41
+ export declare const PHYSICAL_NAME_ATTR_BY_KIND: ReadonlyMap<string, string>;
23
42
  /** rdb @kind default when omitted (writable table). */
24
43
  export declare const DEFAULT_SOURCE_KIND = "table";
25
44
  /** Kinds whose source is read-only (codegen emits read-only model/queries/routes). */
@@ -1 +1 @@
1
- {"version":3,"file":"source-constants.d.ts","sourceRoot":"","sources":["../../../src/persistence/source/source-constants.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAExC,eAAO,MAAM,eAAe,0BAGlB,CAAC;AACX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D;;6CAE6C;AAC7C,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C,qEAAqE;AACrE,eAAO,MAAM,0BAA0B,WAAW,CAAC;AAMnD,8CAA8C;AAC9C,eAAO,MAAM,iBAAiB,UAAU,CAAC;AACzC,8EAA8E;AAC9E,eAAO,MAAM,gBAAgB,SAAS,CAAC;AACvC,yDAAyD;AACzD,eAAO,MAAM,gBAAgB,SAAS,CAAC;AAEvC,eAAO,MAAM,iBAAiB,UAAuB,CAAC;AACtD,eAAO,MAAM,gBAAgB,SAAuB,CAAC;AACrD,eAAO,MAAM,6BAA6B,qBAAsB,CAAC;AACjE,eAAO,MAAM,uBAAuB,eAAsB,CAAC;AAC3D,eAAO,MAAM,0BAA0B,kBAAsB,CAAC;AAE9D,eAAO,MAAM,gBAAgB,+EAMnB,CAAC;AACX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,UAAoB,CAAC;AAErD,sFAAsF;AACtF,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAKrD,CAAC;AAEH,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAC7C,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAC7C,eAAO,MAAM,iBAAiB,UAAY,CAAC;AAC3C,eAAO,MAAM,iBAAiB,UAAY,CAAC;AAC3C,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAC7C,eAAO,MAAM,kBAAkB,WAAY,CAAC;AAE5C,eAAO,MAAM,YAAY,wEAOf,CAAC;AACX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,qDAAqD;AACrD,eAAO,MAAM,mBAAmB,YAAsB,CAAC"}
1
+ {"version":3,"file":"source-constants.d.ts","sourceRoot":"","sources":["../../../src/persistence/source/source-constants.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAExC,eAAO,MAAM,eAAe,0BAGlB,CAAC;AACX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D;;6CAE6C;AAC7C,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C,qEAAqE;AACrE,eAAO,MAAM,0BAA0B,WAAW,CAAC;AAiBnD,4EAA4E;AAC5E,eAAO,MAAM,iBAAiB,UAAU,CAAC;AACzC,gEAAgE;AAChE,eAAO,MAAM,gBAAgB,SAAS,CAAC;AACvC,yFAAyF;AACzF,eAAO,MAAM,6BAA6B,qBAAqB,CAAC;AAChE,kFAAkF;AAClF,eAAO,MAAM,gBAAgB,SAAS,CAAC;AACvC,mFAAmF;AACnF,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAE/C,8EAA8E;AAC9E,eAAO,MAAM,gBAAgB,SAAS,CAAC;AACvC,yDAAyD;AACzD,eAAO,MAAM,gBAAgB,SAAS,CAAC;AAEvC;;;;iCAIiC;AACjC,eAAO,MAAM,yBAAyB,iBAAiB,CAAC;AAExD,eAAO,MAAM,iBAAiB,UAAuB,CAAC;AACtD,eAAO,MAAM,gBAAgB,SAAuB,CAAC;AACrD,eAAO,MAAM,6BAA6B,qBAAsB,CAAC;AACjE,eAAO,MAAM,uBAAuB,eAAsB,CAAC;AAC3D,eAAO,MAAM,0BAA0B,kBAAsB,CAAC;AAE9D,eAAO,MAAM,gBAAgB,+EAMnB,CAAC;AACX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D;;;2DAG2D;AAC3D,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAMjE,CAAC;AAEH,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,UAAoB,CAAC;AAErD,sFAAsF;AACtF,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAKrD,CAAC;AAEH,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAC7C,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAC7C,eAAO,MAAM,iBAAiB,UAAY,CAAC;AAC3C,eAAO,MAAM,iBAAiB,UAAY,CAAC;AAC3C,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAC7C,eAAO,MAAM,kBAAkB,WAAY,CAAC;AAE5C,eAAO,MAAM,YAAY,wEAOf,CAAC;AACX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,qDAAqD;AACrD,eAAO,MAAM,mBAAmB,YAAsB,CAAC"}
@@ -21,12 +21,36 @@ export const DEFAULT_DB_SCHEMA_POSTGRES = "public";
21
21
  // ---------------------------------------------------------------------------
22
22
  // Source v2 (ADR-0007) — rdb paradigm: kind, role, physical table name.
23
23
  // ---------------------------------------------------------------------------
24
- /** Physical table/view name on source.rdb. */
24
+ // FR-016 / ADR-0007 point 2: the source's "logical name" is the structural
25
+ // `name` field every MetaData node already carries — accessed via `source.name`,
26
+ // NOT an @-attr. (An @-attr would conflict with the ERR_RESERVED_ATTR rule for
27
+ // the reserved structural key `name`.) See the four-step physical-name
28
+ // resolution rule on MetaSource.physicalName.
29
+ // --- Per-kind physical-name aliases (FR-016 / ADR-0018) -----------------------
30
+ // One canonical attr key per rdb @kind. The single internal physical-name
31
+ // "slot" on the source is filled by whichever alias matches @kind; the
32
+ // canonical serializer emits the kind-matching alias regardless of which
33
+ // spelling was on input.
34
+ /** Physical SQL table name. Canonical attr for @kind: "table" (default). */
25
35
  export const SOURCE_ATTR_TABLE = "table";
36
+ /** Physical SQL view name. Canonical attr for @kind: "view". */
37
+ export const SOURCE_ATTR_VIEW = "view";
38
+ /** Physical SQL materialized-view name. Canonical attr for @kind: "materializedView". */
39
+ export const SOURCE_ATTR_MATERIALIZED_VIEW = "materializedView";
40
+ /** Physical SQL stored-procedure name. Canonical attr for @kind: "storedProc". */
41
+ export const SOURCE_ATTR_PROC = "proc";
42
+ /** Physical SQL table-function name. Canonical attr for @kind: "tableFunction". */
43
+ export const SOURCE_ATTR_FUNCTION = "function";
26
44
  /** Object kind within the rdb paradigm; read-only-ness is derived from it. */
27
45
  export const SOURCE_ATTR_KIND = "kind";
28
46
  /** Multi-source role; exactly one primary per object. */
29
47
  export const SOURCE_ATTR_ROLE = "role";
48
+ /** FR-015: reference to an object.value describing the input shape of a callable
49
+ * source. Required for @kind: "storedProc" | "tableFunction" that take args;
50
+ * ignored for non-callable kinds. Wire-format symmetric with template.@payloadRef
51
+ * (FR-004) — the typed-input pattern reuses object.value rather than minting a
52
+ * new parameter.* node type. */
53
+ export const SOURCE_ATTR_PARAMETER_REF = "parameterRef";
30
54
  export const SOURCE_KIND_TABLE = "table";
31
55
  export const SOURCE_KIND_VIEW = "view";
32
56
  export const SOURCE_KIND_MATERIALIZED_VIEW = "materializedView";
@@ -39,6 +63,17 @@ export const SOURCE_RDB_KINDS = [
39
63
  SOURCE_KIND_STORED_PROC,
40
64
  SOURCE_KIND_TABLE_FUNCTION,
41
65
  ];
66
+ /** Map @kind → canonical kind-aware physical-name attr key (FR-016 / ADR-0018).
67
+ * Drives the four-step physical-name resolution rule and the canonical-serializer
68
+ * per-kind rewrite. The single internal physical-name "slot" on a source is the
69
+ * value of whichever alias matches the source's @kind. */
70
+ export const PHYSICAL_NAME_ATTR_BY_KIND = new Map([
71
+ [SOURCE_KIND_TABLE, SOURCE_ATTR_TABLE],
72
+ [SOURCE_KIND_VIEW, SOURCE_ATTR_VIEW],
73
+ [SOURCE_KIND_MATERIALIZED_VIEW, SOURCE_ATTR_MATERIALIZED_VIEW],
74
+ [SOURCE_KIND_STORED_PROC, SOURCE_ATTR_PROC],
75
+ [SOURCE_KIND_TABLE_FUNCTION, SOURCE_ATTR_FUNCTION],
76
+ ]);
42
77
  /** rdb @kind default when omitted (writable table). */
43
78
  export const DEFAULT_SOURCE_KIND = SOURCE_KIND_TABLE;
44
79
  /** Kinds whose source is read-only (codegen emits read-only model/queries/routes). */
@@ -1 +1 @@
1
- {"version":3,"file":"source-constants.js","sourceRoot":"","sources":["../../../src/persistence/source/source-constants.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAElF,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,8EAA8E;AAC9E,mEAAmE;AACnE,8EAA8E;AAC9E,8EAA8E;AAC9E,mEAAmE;AACnE,8EAA8E;AAE9E,6FAA6F;AAC7F,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAExC,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,YAAY;IACZ,kBAAkB;CACV,CAAC;AAGX;;6CAE6C;AAC7C,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AAE3C,qEAAqE;AACrE,MAAM,CAAC,MAAM,0BAA0B,GAAG,QAAQ,CAAC;AAEnD,8EAA8E;AAC9E,wEAAwE;AACxE,8EAA8E;AAE9E,8CAA8C;AAC9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC;AACzC,8EAA8E;AAC9E,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AACvC,yDAAyD;AACzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEvC,MAAM,CAAC,MAAM,iBAAiB,GAAgB,OAAO,CAAC;AACtD,MAAM,CAAC,MAAM,gBAAgB,GAAiB,MAAM,CAAC;AACrD,MAAM,CAAC,MAAM,6BAA6B,GAAI,kBAAkB,CAAC;AACjE,MAAM,CAAC,MAAM,uBAAuB,GAAU,YAAY,CAAC;AAC3D,MAAM,CAAC,MAAM,0BAA0B,GAAO,eAAe,CAAC;AAE9D,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,iBAAiB;IACjB,gBAAgB;IAChB,6BAA6B;IAC7B,uBAAuB;IACvB,0BAA0B;CAClB,CAAC;AAGX,uDAAuD;AACvD,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAErD,sFAAsF;AACtF,MAAM,CAAC,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC;IACjE,gBAAgB;IAChB,6BAA6B;IAC7B,uBAAuB;IACvB,0BAA0B;CAC3B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAAC;AAC7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAAC;AAC7C,MAAM,CAAC,MAAM,iBAAiB,GAAK,OAAO,CAAC;AAC3C,MAAM,CAAC,MAAM,iBAAiB,GAAK,OAAO,CAAC;AAC3C,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAAC;AAC7C,MAAM,CAAC,MAAM,kBAAkB,GAAI,QAAQ,CAAC;AAE5C,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,mBAAmB;IACnB,mBAAmB;IACnB,iBAAiB;IACjB,iBAAiB;IACjB,mBAAmB;IACnB,kBAAkB;CACV,CAAC;AAGX,qDAAqD;AACrD,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAC"}
1
+ {"version":3,"file":"source-constants.js","sourceRoot":"","sources":["../../../src/persistence/source/source-constants.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"source-schema.d.ts","sourceRoot":"","sources":["../../../src/persistence/source/source-schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAiDpD,6EAA6E;AAC7E,eAAO,MAAM,cAAc,EAAE,UAAU,EAAwD,CAAC"}
1
+ {"version":3,"file":"source-schema.d.ts","sourceRoot":"","sources":["../../../src/persistence/source/source-schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAkHpD,6EAA6E;AAC7E,eAAO,MAAM,cAAc,EAAE,UAAU,EAUtC,CAAC"}
@@ -1,13 +1,48 @@
1
1
  // Source v2 attribute schemas — registered by dbProvider for source.rdb.
2
2
  // Consumed via sourceRdbAttrs in db-provider.ts.
3
3
  import { ATTR_SUBTYPE_STRING } from "../../core/attr/attr-constants.js";
4
- import { SOURCE_ATTR_TABLE, SOURCE_ATTR_KIND, SOURCE_ATTR_ROLE, SOURCE_ATTR_SCHEMA, SOURCE_RDB_KINDS, SOURCE_ROLES, } from "./source-constants.js";
5
- /** `@table` — physical SQL table or view name for source.rdb. */
4
+ import { SOURCE_ATTR_TABLE, SOURCE_ATTR_VIEW, SOURCE_ATTR_MATERIALIZED_VIEW, SOURCE_ATTR_PROC, SOURCE_ATTR_FUNCTION, SOURCE_ATTR_KIND, SOURCE_ATTR_ROLE, SOURCE_ATTR_SCHEMA, SOURCE_ATTR_PARAMETER_REF, SOURCE_RDB_KINDS, SOURCE_ROLES, } from "./source-constants.js";
5
+ /** `@table` — physical SQL table name for @kind: "table" (default). FR-016: one
6
+ * of five kind-aware physical-name aliases; all write to the same internal slot.
7
+ * Pre-1.0 legacy: also accepted with non-table @kind (canonical-serializer
8
+ * rewrites; loader emits WARN_LEGACY_PHYSICAL_NAME_ALIAS). */
6
9
  const tableSchema = {
7
10
  name: SOURCE_ATTR_TABLE,
8
11
  valueType: ATTR_SUBTYPE_STRING,
9
12
  required: false,
10
- description: "Physical SQL table or view name for this rdb source. Defaults to the object name run through the project's columnNamingStrategy when omitted.",
13
+ description: "Physical SQL table name for source.rdb @kind: \"table\" (default). FR-016: " +
14
+ "Defaults from the source's bare structural `name` via the project's columnNamingStrategy " +
15
+ "when omitted, then from the owning entity's name. Pre-1.0 legacy spelling for " +
16
+ "view/materializedView/storedProc/tableFunction kinds during the transition; " +
17
+ "canonical-serializer rewrites to the kind-matching alias.",
18
+ };
19
+ /** `@view` — physical SQL view name for @kind: "view" (FR-016 / ADR-0018). */
20
+ const viewSchema = {
21
+ name: SOURCE_ATTR_VIEW,
22
+ valueType: ATTR_SUBTYPE_STRING,
23
+ required: false,
24
+ description: "Physical SQL view name for source.rdb @kind: \"view\". Same internal slot as @table.",
25
+ };
26
+ /** `@materializedView` — physical SQL materialized-view name for @kind: "materializedView". */
27
+ const materializedViewSchema = {
28
+ name: SOURCE_ATTR_MATERIALIZED_VIEW,
29
+ valueType: ATTR_SUBTYPE_STRING,
30
+ required: false,
31
+ description: "Physical SQL materialized-view name for source.rdb @kind: \"materializedView\". Same internal slot as @table.",
32
+ };
33
+ /** `@proc` — physical SQL stored-procedure name for @kind: "storedProc". */
34
+ const procSchema = {
35
+ name: SOURCE_ATTR_PROC,
36
+ valueType: ATTR_SUBTYPE_STRING,
37
+ required: false,
38
+ description: "Physical SQL stored-procedure name for source.rdb @kind: \"storedProc\". Same internal slot as @table.",
39
+ };
40
+ /** `@function` — physical SQL table-function name for @kind: "tableFunction". */
41
+ const functionSchema = {
42
+ name: SOURCE_ATTR_FUNCTION,
43
+ valueType: ATTR_SUBTYPE_STRING,
44
+ required: false,
45
+ description: "Physical SQL table-function name for source.rdb @kind: \"tableFunction\". Same internal slot as @table.",
11
46
  };
12
47
  /** `@kind` — object kind within the rdb paradigm; drives read-only derivation. */
13
48
  const kindSchema = {
@@ -32,6 +67,32 @@ const schemaSchema = {
32
67
  required: false,
33
68
  description: "Optional database schema name (e.g. 'catalog', 'public'). Postgres defaults to 'public'; SQLite rejects any non-default value.",
34
69
  };
70
+ /** `@parameterRef` — name or FQN of an object.value describing the input shape
71
+ * of a callable source (FR-015). Required when @kind is "storedProc" or
72
+ * "tableFunction" and the proc takes args; ignored for non-callable kinds.
73
+ * Mirrors template.@payloadRef from FR-004. */
74
+ const parameterRefSchema = {
75
+ name: SOURCE_ATTR_PARAMETER_REF,
76
+ valueType: ATTR_SUBTYPE_STRING,
77
+ required: false,
78
+ description: "FR-015: name or FQN of an object.value describing the input shape of " +
79
+ "this source's callable interface. Permitted on @kind: \"storedProc\" / " +
80
+ "\"tableFunction\"; rejected on non-callable kinds (table / view / " +
81
+ "materializedView). Field children of the referenced object.value become " +
82
+ "the call-site parameter list in declaration order. Symmetric with " +
83
+ "template.@payloadRef in FR-004 — the typed-input pattern reuses " +
84
+ "object.value rather than minting a new parameter.* node type.",
85
+ };
35
86
  /** All attr schemas for source.rdb, to be registered via registry.extend. */
36
- export const sourceRdbAttrs = [tableSchema, kindSchema, roleSchema, schemaSchema];
87
+ export const sourceRdbAttrs = [
88
+ tableSchema,
89
+ viewSchema,
90
+ materializedViewSchema,
91
+ procSchema,
92
+ functionSchema,
93
+ kindSchema,
94
+ roleSchema,
95
+ schemaSchema,
96
+ parameterRefSchema,
97
+ ];
37
98
  //# sourceMappingURL=source-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"source-schema.js","sourceRoot":"","sources":["../../../src/persistence/source/source-schema.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,iDAAiD;AAGjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,GACb,MAAM,uBAAuB,CAAC;AAE/B,iEAAiE;AACjE,MAAM,WAAW,GAAe;IAC9B,IAAI,EAAE,iBAAiB;IACvB,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,KAAK;IACf,WAAW,EACT,+IAA+I;CAClJ,CAAC;AAEF,kFAAkF;AAClF,MAAM,UAAU,GAAe;IAC7B,IAAI,EAAE,gBAAgB;IACtB,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,KAAK;IACf,aAAa,EAAE,CAAC,GAAG,gBAAgB,CAAC;IACpC,WAAW,EACT,qKAAqK;CACxK,CAAC;AAEF,mEAAmE;AACnE,MAAM,UAAU,GAAe;IAC7B,IAAI,EAAE,gBAAgB;IACtB,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,KAAK;IACf,aAAa,EAAE,CAAC,GAAG,YAAY,CAAC;IAChC,WAAW,EACT,6IAA6I;CAChJ,CAAC;AAEF,gEAAgE;AAChE,MAAM,YAAY,GAAe;IAC/B,IAAI,EAAE,kBAAkB;IACxB,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,KAAK;IACf,WAAW,EACT,gIAAgI;CACnI,CAAC;AAEF,6EAA6E;AAC7E,MAAM,CAAC,MAAM,cAAc,GAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC"}
1
+ {"version":3,"file":"source-schema.js","sourceRoot":"","sources":["../../../src/persistence/source/source-schema.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,iDAAiD;AAGjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,6BAA6B,EAC7B,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,EACzB,gBAAgB,EAChB,YAAY,GACb,MAAM,uBAAuB,CAAC;AAE/B;;;+DAG+D;AAC/D,MAAM,WAAW,GAAe;IAC9B,IAAI,EAAE,iBAAiB;IACvB,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,KAAK;IACf,WAAW,EACT,6EAA6E;QAC7E,2FAA2F;QAC3F,gFAAgF;QAChF,8EAA8E;QAC9E,2DAA2D;CAC9D,CAAC;AAEF,8EAA8E;AAC9E,MAAM,UAAU,GAAe;IAC7B,IAAI,EAAE,gBAAgB;IACtB,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,sFAAsF;CACpG,CAAC;AAEF,+FAA+F;AAC/F,MAAM,sBAAsB,GAAe;IACzC,IAAI,EAAE,6BAA6B;IACnC,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,KAAK;IACf,WAAW,EACT,+GAA+G;CAClH,CAAC;AAEF,4EAA4E;AAC5E,MAAM,UAAU,GAAe;IAC7B,IAAI,EAAE,gBAAgB;IACtB,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,KAAK;IACf,WAAW,EACT,wGAAwG;CAC3G,CAAC;AAEF,iFAAiF;AACjF,MAAM,cAAc,GAAe;IACjC,IAAI,EAAE,oBAAoB;IAC1B,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,KAAK;IACf,WAAW,EACT,yGAAyG;CAC5G,CAAC;AAEF,kFAAkF;AAClF,MAAM,UAAU,GAAe;IAC7B,IAAI,EAAE,gBAAgB;IACtB,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,KAAK;IACf,aAAa,EAAE,CAAC,GAAG,gBAAgB,CAAC;IACpC,WAAW,EACT,qKAAqK;CACxK,CAAC;AAEF,mEAAmE;AACnE,MAAM,UAAU,GAAe;IAC7B,IAAI,EAAE,gBAAgB;IACtB,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,KAAK;IACf,aAAa,EAAE,CAAC,GAAG,YAAY,CAAC;IAChC,WAAW,EACT,6IAA6I;CAChJ,CAAC;AAEF,gEAAgE;AAChE,MAAM,YAAY,GAAe;IAC/B,IAAI,EAAE,kBAAkB;IACxB,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,KAAK;IACf,WAAW,EACT,gIAAgI;CACnI,CAAC;AAEF;;;gDAGgD;AAChD,MAAM,kBAAkB,GAAe;IACrC,IAAI,EAAE,yBAAyB;IAC/B,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,KAAK;IACf,WAAW,EACT,uEAAuE;QACvE,yEAAyE;QACzE,oEAAoE;QACpE,0EAA0E;QAC1E,oEAAoE;QACpE,kEAAkE;QAClE,+DAA+D;CAClE,CAAC;AAEF,6EAA6E;AAC7E,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC1C,WAAW;IACX,UAAU;IACV,sBAAsB;IACtB,UAAU;IACV,cAAc;IACd,UAAU;IACV,UAAU;IACV,YAAY;IACZ,kBAAkB;CACnB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { MetaData } from "../../shared/meta-data.js";
2
+ import { ParseError } from "../../errors.js";
3
+ export declare function validateSourceParameterRef(root: MetaData): ParseError[];
4
+ //# sourceMappingURL=validate-source-parameter-ref.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-source-parameter-ref.d.ts","sourceRoot":"","sources":["../../../src/persistence/source/validate-source-parameter-ref.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA6B7C,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,CA+FvE"}