@metaobjectsdev/metadata 0.8.1-rc.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
@@ -25,6 +25,16 @@ import {
25
25
  ATTR_SUBTYPE_BOOLEAN,
26
26
  ATTR_SUBTYPE_STRINGARRAY,
27
27
  } from "./core/attr/attr-constants.js";
28
+ import {
29
+ SOURCE_SUBTYPE_RDB,
30
+ SOURCE_ATTR_KIND,
31
+ SOURCE_ATTR_TABLE,
32
+ DEFAULT_SOURCE_KIND,
33
+ PHYSICAL_NAME_ATTR_BY_KIND,
34
+ } from "./persistence/source/source-constants.js";
35
+ import { TYPE_SOURCE } from "./shared/base-types.js";
36
+
37
+ const SOURCE_RDB_FUSED_KEY = `${TYPE_SOURCE}${TYPE_SUBTYPE_SEPARATOR}${SOURCE_SUBTYPE_RDB}`;
28
38
 
29
39
  // ---------------------------------------------------------------------------
30
40
  // Public API
@@ -153,6 +163,10 @@ export function canonicalSerialize(model: MetaData): string {
153
163
  const raw = serializeJson(model, { indent: 2 });
154
164
 
155
165
  const parsed = JSON.parse(raw) as unknown;
166
+ // FR-016 / ADR-0018: rewrite legacy @table → kind-matching alias on source.rdb
167
+ // wrappers (run before alphabetical sort so the rewritten key sorts in its
168
+ // canonical position).
169
+ rewriteSourceRdbPhysicalNames(parsed);
156
170
  const sorted = sortAttrKeys(parsed);
157
171
  const out = JSON.stringify(sorted, null, 2);
158
172
 
@@ -170,12 +184,48 @@ export function canonicalSerializeEffective(model: MetaData): string {
170
184
  const raw = JSON.stringify(nodeObj, null, 2);
171
185
 
172
186
  const parsed = JSON.parse(raw) as unknown;
187
+ rewriteSourceRdbPhysicalNames(parsed);
173
188
  const sorted = sortAttrKeys(parsed);
174
189
  const out = JSON.stringify(sorted, null, 2);
175
190
 
176
191
  return out + "\n";
177
192
  }
178
193
 
194
+ /**
195
+ * FR-016 / ADR-0018 — when a source.rdb wrapper carries @table with a non-table
196
+ * @kind (the pre-1.0 legacy spelling), rewrite the attr key in place to the
197
+ * kind-matching alias (@view / @materializedView / @proc / @function). Mutates
198
+ * the parsed JSON in place; idempotent and a no-op for canonical inputs.
199
+ */
200
+ function rewriteSourceRdbPhysicalNames(value: unknown): void {
201
+ if (Array.isArray(value)) {
202
+ for (const item of value) rewriteSourceRdbPhysicalNames(item);
203
+ return;
204
+ }
205
+ if (value === null || typeof value !== "object") return;
206
+
207
+ const obj = value as Record<string, unknown>;
208
+ const rdbBody = obj[SOURCE_RDB_FUSED_KEY];
209
+ if (rdbBody !== undefined && rdbBody !== null && typeof rdbBody === "object" && !Array.isArray(rdbBody)) {
210
+ const body = rdbBody as Record<string, unknown>;
211
+ const kindRaw = body[`${ATTR_PREFIX}${SOURCE_ATTR_KIND}`];
212
+ const kind = typeof kindRaw === "string" && kindRaw !== "" ? kindRaw : DEFAULT_SOURCE_KIND;
213
+ const canonical = PHYSICAL_NAME_ATTR_BY_KIND.get(kind);
214
+ if (canonical !== undefined && canonical !== SOURCE_ATTR_TABLE) {
215
+ const legacyKey = `${ATTR_PREFIX}${SOURCE_ATTR_TABLE}`;
216
+ const canonicalKey = `${ATTR_PREFIX}${canonical}`;
217
+ const legacyValue = body[legacyKey];
218
+ if (legacyValue !== undefined && body[canonicalKey] === undefined) {
219
+ body[canonicalKey] = legacyValue;
220
+ delete body[legacyKey];
221
+ }
222
+ }
223
+ }
224
+
225
+ // Recurse through every value (in particular `children`).
226
+ for (const v of Object.values(obj)) rewriteSourceRdbPhysicalNames(v);
227
+ }
228
+
179
229
  function sortAttrKeys(value: unknown): unknown {
180
230
  if (Array.isArray(value)) {
181
231
  return value.map(sortAttrKeys);
@@ -41,6 +41,29 @@ export const TEMPLATE_ATTR_SINCE = "since";
41
41
  // carry a tag contract a downstream parser depends on.
42
42
  export const TEMPLATE_ATTR_REQUIRED_TAGS = "requiredTags";
43
43
 
44
+ // --- @kind + email part-refs (template.output only) ---
45
+ //
46
+ // A template.output is either a plain document (renders @textRef in @format → one
47
+ // string) or an email (renders subject + html + optional text → a structured
48
+ // EmailDocument). @kind is a closed enum; the email part-refs are 2-layer logical
49
+ // (group/source) textRefs resolved by a provider at render time, like @textRef.
50
+ // Cross-field rules live in the loader validation pass (validateTemplatePayloadRefs):
51
+ // - @kind="email" → require @subjectRef AND @htmlBodyRef (textRef unused; @textBodyRef optional)
52
+ // - @kind="document" / absent → require @textRef
53
+ export const TEMPLATE_ATTR_KIND = "kind";
54
+ export const TEMPLATE_KIND_DOCUMENT = "document";
55
+ export const TEMPLATE_KIND_EMAIL = "email";
56
+ export const TEMPLATE_KIND_DEFAULT = TEMPLATE_KIND_DOCUMENT;
57
+ export const TEMPLATE_KINDS = [
58
+ TEMPLATE_KIND_DOCUMENT,
59
+ TEMPLATE_KIND_EMAIL,
60
+ ] as const;
61
+ export type TemplateKind = (typeof TEMPLATE_KINDS)[number];
62
+
63
+ export const TEMPLATE_ATTR_SUBJECT_REF = "subjectRef";
64
+ export const TEMPLATE_ATTR_HTML_BODY_REF = "htmlBodyRef";
65
+ export const TEMPLATE_ATTR_TEXT_BODY_REF = "textBodyRef";
66
+
44
67
  // Prompt-overlay attrs (template.prompt only).
45
68
  export const TEMPLATE_ATTR_MAX_TOKENS = "maxTokens";
46
69
  export const TEMPLATE_ATTR_REQUIRED_SLOTS = "requiredSlots";
@@ -32,6 +32,12 @@ import {
32
32
  TEMPLATE_ATTR_PROMPT_STYLE,
33
33
  PROMPT_STYLE_DEFAULT,
34
34
  PROMPT_STYLES,
35
+ TEMPLATE_ATTR_KIND,
36
+ TEMPLATE_KINDS,
37
+ TEMPLATE_KIND_DEFAULT,
38
+ TEMPLATE_ATTR_SUBJECT_REF,
39
+ TEMPLATE_ATTR_HTML_BODY_REF,
40
+ TEMPLATE_ATTR_TEXT_BODY_REF,
35
41
  } from "./template-constants.js";
36
42
 
37
43
  // Generic attrs shared by template.prompt and template.output.
@@ -45,7 +51,12 @@ const genericAttrs: AttrSchema[] = [
45
51
  {
46
52
  name: TEMPLATE_ATTR_TEXT_REF,
47
53
  valueType: ATTR_SUBTYPE_STRING,
48
- required: true,
54
+ // Relaxed to optional at the schema level: a template.output with @kind="email"
55
+ // renders subject/html/text parts and carries NO @textRef. The presence rule is
56
+ // enforced conditionally in the loader (validateTemplatePayloadRefs): document /
57
+ // prompt require @textRef; email does not. template.prompt's @textRef requirement
58
+ // is likewise enforced there.
59
+ required: false,
49
60
  description: "2-layer logical reference (group/source) to the body text, resolved by a provider at render time.",
50
61
  },
51
62
  {
@@ -94,6 +105,42 @@ const promptStyleAttr: AttrSchema = {
94
105
  "FR-010 output-format prompt presentation: 'guide' (prose list + example), 'inline' (inline placeholders / enum choices), or 'exampleOnly' (filled skeleton). Guidance is never emitted as comments.",
95
106
  };
96
107
 
108
+ // @kind + email part-refs (template.output only).
109
+ //
110
+ // @kind is a closed enum (document|email), default "document", enforced via
111
+ // allowedValues exactly like @format / @promptStyle. The 3 part-refs are optional
112
+ // 2-layer logical (group/source) textRefs; their conditional presence (email needs
113
+ // @subjectRef + @htmlBodyRef) is enforced in the loader validation pass.
114
+ const outputKindAttrs: AttrSchema[] = [
115
+ {
116
+ name: TEMPLATE_ATTR_KIND,
117
+ valueType: ATTR_SUBTYPE_STRING,
118
+ required: false,
119
+ default: TEMPLATE_KIND_DEFAULT,
120
+ allowedValues: [...TEMPLATE_KINDS],
121
+ description:
122
+ "Output shape: 'document' (renders @textRef in @format → one string) or 'email' (renders subject + html + optional text → a structured EmailDocument).",
123
+ },
124
+ {
125
+ name: TEMPLATE_ATTR_SUBJECT_REF,
126
+ valueType: ATTR_SUBTYPE_STRING,
127
+ required: false,
128
+ description: "Email only: 2-layer logical reference (group/source) to the subject-line text. Required when @kind=\"email\".",
129
+ },
130
+ {
131
+ name: TEMPLATE_ATTR_HTML_BODY_REF,
132
+ valueType: ATTR_SUBTYPE_STRING,
133
+ required: false,
134
+ description: "Email only: 2-layer logical reference (group/source) to the HTML body text. Required when @kind=\"email\".",
135
+ },
136
+ {
137
+ name: TEMPLATE_ATTR_TEXT_BODY_REF,
138
+ valueType: ATTR_SUBTYPE_STRING,
139
+ required: false,
140
+ description: "Email only: 2-layer logical reference (group/source) to the optional plain-text alternative body.",
141
+ },
142
+ ];
143
+
97
144
  // LLM-overlay attrs (template.prompt only).
98
145
  const promptOverlayAttrs: AttrSchema[] = [
99
146
  {
@@ -159,6 +206,6 @@ const toolcallAttrs: AttrSchema[] = [
159
206
  export const TEMPLATE_ATTRS_MAP = new Map<string, AttrSchema[]>([
160
207
  [SUBTYPE_BASE, []],
161
208
  [TEMPLATE_SUBTYPE_PROMPT, [...genericAttrs, ...promptOverlayAttrs]],
162
- [TEMPLATE_SUBTYPE_OUTPUT, [...genericAttrs, promptStyleAttr]],
209
+ [TEMPLATE_SUBTYPE_OUTPUT, [...genericAttrs, promptStyleAttr, ...outputKindAttrs]],
163
210
  [TEMPLATE_SUBTYPE_TOOLCALL, [...toolcallAttrs]],
164
211
  ]);
@@ -1,208 +0,0 @@
1
- export declare const TYPE_METADATA = "metadata";
2
- export declare const TYPE_OBJECT = "object";
3
- export declare const TYPE_FIELD = "field";
4
- export declare const TYPE_ATTR = "attr";
5
- export declare const TYPE_VALIDATOR = "validator";
6
- export declare const TYPE_VIEW = "view";
7
- export declare const TYPE_IDENTITY = "identity";
8
- export declare const TYPE_RELATIONSHIP = "relationship";
9
- export declare const TYPE_LAYOUT = "layout";
10
- export declare const TYPE_SOURCE = "source";
11
- export declare const TYPE_ORIGIN = "origin";
12
- export declare const BASE_TYPES: readonly ["metadata", "object", "field", "attr", "validator", "view", "identity", "relationship", "layout", "source", "origin"];
13
- export type BaseType = (typeof BASE_TYPES)[number];
14
- export declare const SUBTYPE_BASE = "base";
15
- /**
16
- * The metadata document root subtype. The root node is `metadata.root` in the
17
- * canonical format. (Distinct from the universal SUBTYPE_BASE — the redesigned
18
- * format spec confirms the root subtype is `root`, not `base`.)
19
- */
20
- export declare const SUBTYPE_ROOT = "root";
21
- export declare const METADATA_SUBTYPES: readonly ["root"];
22
- export type MetadataSubType = (typeof METADATA_SUBTYPES)[number];
23
- export declare const OBJECT_SUBTYPE_ENTITY = "entity";
24
- export declare const OBJECT_SUBTYPE_VALUE = "value";
25
- export declare const OBJECT_SUBTYPES: readonly ["base", "entity", "value"];
26
- export type ObjectSubType = (typeof OBJECT_SUBTYPES)[number];
27
- export declare const FIELD_SUBTYPE_STRING = "string";
28
- export declare const FIELD_SUBTYPE_INT = "int";
29
- export declare const FIELD_SUBTYPE_SHORT = "short";
30
- export declare const FIELD_SUBTYPE_BYTE = "byte";
31
- export declare const FIELD_SUBTYPE_LONG = "long";
32
- export declare const FIELD_SUBTYPE_DOUBLE = "double";
33
- export declare const FIELD_SUBTYPE_FLOAT = "float";
34
- export declare const FIELD_SUBTYPE_DECIMAL = "decimal";
35
- export declare const FIELD_SUBTYPE_BOOLEAN = "boolean";
36
- export declare const FIELD_SUBTYPE_DATE = "date";
37
- export declare const FIELD_SUBTYPE_TIME = "time";
38
- export declare const FIELD_SUBTYPE_TIMESTAMP = "timestamp";
39
- export declare const FIELD_SUBTYPE_OBJECT = "object";
40
- export declare const FIELD_SUBTYPE_CLASS = "class";
41
- export declare const FIELD_SUBTYPE_CURRENCY = "currency";
42
- export declare const FIELD_SUBTYPES: readonly ["base", "string", "int", "short", "byte", "long", "double", "float", "decimal", "boolean", "date", "time", "timestamp", "object", "class", "currency"];
43
- export type FieldSubType = (typeof FIELD_SUBTYPES)[number];
44
- export declare const ATTR_SUBTYPE_STRING = "string";
45
- export declare const ATTR_SUBTYPE_INT = "int";
46
- export declare const ATTR_SUBTYPE_LONG = "long";
47
- export declare const ATTR_SUBTYPE_DOUBLE = "double";
48
- export declare const ATTR_SUBTYPE_BOOLEAN = "boolean";
49
- export declare const ATTR_SUBTYPE_CLASS = "class";
50
- export declare const ATTR_SUBTYPE_PROPERTIES = "properties";
51
- export declare const ATTR_SUBTYPE_STRINGARRAY = "stringarray";
52
- export declare const ATTR_SUBTYPES: readonly ["base", "string", "int", "long", "double", "boolean", "class", "properties", "stringarray"];
53
- export type AttrSubType = (typeof ATTR_SUBTYPES)[number];
54
- export declare const VALIDATOR_SUBTYPE_REQUIRED = "required";
55
- export declare const VALIDATOR_SUBTYPE_LENGTH = "length";
56
- export declare const VALIDATOR_SUBTYPE_REGEX = "regex";
57
- export declare const VALIDATOR_SUBTYPE_NUMERIC = "numeric";
58
- export declare const VALIDATOR_SUBTYPE_ARRAY = "array";
59
- export declare const VALIDATOR_SUBTYPES: readonly ["base", "required", "length", "regex", "numeric", "array"];
60
- export type ValidatorSubType = (typeof VALIDATOR_SUBTYPES)[number];
61
- export declare const VIEW_SUBTYPE_TEXT = "text";
62
- export declare const VIEW_SUBTYPE_TEXTAREA = "textarea";
63
- export declare const VIEW_SUBTYPE_DATE = "date";
64
- export declare const VIEW_SUBTYPE_MONTH = "month";
65
- export declare const VIEW_SUBTYPE_HOTLINK = "hotlink";
66
- export declare const VIEW_SUBTYPE_DROPDOWN = "dropdown";
67
- export declare const VIEW_SUBTYPE_RADIO = "radio";
68
- export declare const VIEW_SUBTYPE_CHECKBOX = "checkbox";
69
- export declare const VIEW_SUBTYPE_NUMBER = "number";
70
- export declare const VIEW_SUBTYPE_PASSWORD = "password";
71
- export declare const VIEW_SUBTYPE_HIDDEN = "hidden";
72
- export declare const VIEW_SUBTYPE_WEB = "web";
73
- export declare const VIEW_SUBTYPE_CURRENCY = "currency";
74
- export declare const VIEW_SUBTYPES: readonly ["base", "text", "textarea", "date", "month", "hotlink", "dropdown", "radio", "checkbox", "number", "password", "hidden", "web", "currency"];
75
- export type ViewSubType = (typeof VIEW_SUBTYPES)[number];
76
- export declare const LAYOUT_SUBTYPE_DATA_GRID = "dataGrid";
77
- export declare const LAYOUT_SUBTYPES: readonly ["base", "dataGrid"];
78
- export type LayoutSubType = (typeof LAYOUT_SUBTYPES)[number];
79
- export declare const LAYOUT_DATA_GRID_ATTR_PAGE_SIZE = "pageSize";
80
- export declare const LAYOUT_DATA_GRID_ATTR_DEFAULT_SORT_FIELD = "defaultSortField";
81
- export declare const LAYOUT_DATA_GRID_ATTR_DEFAULT_SORT_ORDER = "defaultSortOrder";
82
- export declare const LAYOUT_DATA_GRID_ATTR_FILTERABLE = "filterable";
83
- export declare const LAYOUT_DATA_GRID_ATTR_FILTER = "filter";
84
- export declare const LAYOUT_DATA_GRID_ATTR_COLUMNS = "columns";
85
- /** BCP 47 locale code on a view[currency]. Defaults to "en-US" when omitted. */
86
- export declare const VIEW_CURRENCY_ATTR_LOCALE = "locale";
87
- /** Default BCP 47 locale code when @locale is omitted on a view[currency]. */
88
- export declare const VIEW_CURRENCY_ATTR_LOCALE_DEFAULT = "en-US";
89
- export declare const IDENTITY_SUBTYPE_PRIMARY = "primary";
90
- export declare const IDENTITY_SUBTYPE_SECONDARY = "secondary";
91
- export declare const IDENTITY_SUBTYPE_REFERENCE = "reference";
92
- export declare const IDENTITY_SUBTYPES: readonly ["primary", "secondary", "reference"];
93
- export type IdentitySubType = (typeof IDENTITY_SUBTYPES)[number];
94
- export declare const RELATIONSHIP_SUBTYPE_ASSOCIATION = "association";
95
- export declare const RELATIONSHIP_SUBTYPE_AGGREGATION = "aggregation";
96
- export declare const RELATIONSHIP_SUBTYPE_COMPOSITION = "composition";
97
- export declare const RELATIONSHIP_SUBTYPES: readonly ["base", "association", "aggregation", "composition"];
98
- export type RelationshipSubType = (typeof RELATIONSHIP_SUBTYPES)[number];
99
- export declare const RESERVED_KEY_NAME = "name";
100
- export declare const RESERVED_KEY_PACKAGE = "package";
101
- export declare const RESERVED_KEY_EXTENDS = "extends";
102
- export declare const RESERVED_KEY_ABSTRACT = "abstract";
103
- export declare const RESERVED_KEY_OVERLAY = "overlay";
104
- export declare const RESERVED_KEY_IS_ARRAY = "isArray";
105
- export declare const RESERVED_KEY_CHILDREN = "children";
106
- /** attr-child-node body key carrying the typed value. */
107
- export declare const RESERVED_KEY_VALUE = "value";
108
- export declare const RESERVED_KEYS: Set<string>;
109
- export declare const JSON_KEY_SCHEMA = "$schema";
110
- export declare const ATTR_PREFIX = "@";
111
- /** Separator fusing type and subType in a node's wrapper key (`object.entity`). */
112
- export declare const TYPE_SUBTYPE_SEPARATOR = ".";
113
- /** Separator between package segments and between package and name. */
114
- export declare const PACKAGE_SEPARATOR = "::";
115
- /** Relative-reference "go up one level" marker. */
116
- export declare const PACKAGE_PARENT = "..";
117
- export declare const CHILD_RULE_WILDCARD = "*";
118
- export declare const IDENTITY_ATTR_FIELDS = "fields";
119
- export declare const IDENTITY_ATTR_GENERATION = "generation";
120
- /** On secondary identities: true → uniqueIndex; false/absent → index. Defaults to true for back-compat. */
121
- export declare const IDENTITY_ATTR_UNIQUE = "unique";
122
- /** Identity-reference attr: target entity (bare or dotted `Entity.field` / `Entity.fA,fB`). */
123
- export declare const IDENTITY_REFERENCE_ATTR_REFERENCES = "references";
124
- /** Identity-reference attr: physical-enforcement flag. Default true → hard FK constraint; false → logical-only reference. */
125
- export declare const IDENTITY_REFERENCE_ATTR_ENFORCE = "enforce";
126
- export declare const RELATIONSHIP_ATTR_CARDINALITY = "cardinality";
127
- export declare const RELATIONSHIP_ATTR_OBJECT_REF = "objectRef";
128
- export declare const RELATIONSHIP_ATTR_JOIN_ENTITY = "joinEntity";
129
- export declare const RELATIONSHIP_ATTR_JOIN_FIELDS = "joinFields";
130
- export declare const FIELD_ATTR_REQUIRED = "required";
131
- export declare const FIELD_ATTR_UNIQUE = "unique";
132
- export declare const FIELD_ATTR_DEFAULT = "default";
133
- export declare const FIELD_ATTR_MAX_LENGTH = "maxLength";
134
- export declare const FIELD_ATTR_DB_COLUMN = "dbColumn";
135
- export declare const FIELD_ATTR_PRECISION = "precision";
136
- export declare const FIELD_ATTR_SCALE = "scale";
137
- export declare const FIELD_ATTR_FILTERABLE = "filterable";
138
- export declare const FIELD_ATTR_SORTABLE = "sortable";
139
- export declare const FIELD_ATTR_SORTABLE_DEFAULT_ORDER = "sortableDefaultOrder";
140
- /** When true, suppress the @filterable-without-index Loader warning (Project D drift check). */
141
- export declare const FIELD_ATTR_DB_INDEXED = "db.indexed";
142
- /** ISO 4217 currency code on a currency-subtype field. Defaults to "USD" when omitted. */
143
- export declare const FIELD_ATTR_CURRENCY = "currency";
144
- /** Default ISO 4217 currency code when @currency is omitted on a currency field. */
145
- export declare const FIELD_ATTR_CURRENCY_DEFAULT = "USD";
146
- /** Auto-set semantics on a timestamp field. Values: "onCreate" | "onUpdate". */
147
- export declare const FIELD_ATTR_AUTO_SET = "autoSet";
148
- /** Name (or FQN) of the target object an object-typed field nests. Same wire
149
- * spelling as the relationship `@objectRef` — Java's single ATTR_OBJECT_REF. */
150
- export declare const FIELD_ATTR_OBJECT_REF = "objectRef";
151
- export declare const AUTO_SET_ON_CREATE = "onCreate";
152
- export declare const AUTO_SET_ON_UPDATE = "onUpdate";
153
- export declare const AUTO_SET_VALUES: readonly ["onCreate", "onUpdate"];
154
- export type AutoSetValue = (typeof AUTO_SET_VALUES)[number];
155
- export declare const SORT_ORDER_ASC = "asc";
156
- export declare const SORT_ORDER_DESC = "desc";
157
- export declare const SORT_ORDER_VALUES: readonly ["asc", "desc"];
158
- export type SortOrderValue = (typeof SORT_ORDER_VALUES)[number];
159
- export declare const OBJECT_JAVA_RUNTIME_POJO = "pojo";
160
- export declare const OBJECT_JAVA_RUNTIME_MAP = "map";
161
- export declare const OBJECT_JAVA_RUNTIME_PROXY = "proxy";
162
- export declare const OBJECT_JAVA_RUNTIME_VALUES: readonly ["pojo", "map", "proxy"];
163
- export type ObjectJavaRuntimeValue = (typeof OBJECT_JAVA_RUNTIME_VALUES)[number];
164
- export declare const VALIDATOR_ATTR_PATTERN = "pattern";
165
- export declare const VALIDATOR_ATTR_MIN = "min";
166
- export declare const VALIDATOR_ATTR_MAX = "max";
167
- export declare const GENERATION_INCREMENT = "increment";
168
- export declare const GENERATION_UUID = "uuid";
169
- export declare const GENERATION_ASSIGNED = "assigned";
170
- export declare const GENERATION_VALUES: readonly ["increment", "uuid", "assigned"];
171
- export type GenerationValue = (typeof GENERATION_VALUES)[number];
172
- export declare const CARDINALITY_ONE = "one";
173
- export declare const CARDINALITY_MANY = "many";
174
- export declare const CARDINALITY_VALUES: readonly ["one", "many"];
175
- export type CardinalityValue = (typeof CARDINALITY_VALUES)[number];
176
- export declare const FILTER_OPS: readonly ["eq", "ne", "gt", "gte", "lt", "lte", "in", "like", "isNull"];
177
- export type FilterOp = (typeof FILTER_OPS)[number];
178
- export declare const OPS_BY_SUBTYPE: Readonly<Record<string, readonly FilterOp[]>>;
179
- export declare function opsForSubType(subType: string): readonly FilterOp[];
180
- /** Java runtime strategy for an object. Values: "pojo" | "map" | "proxy". */
181
- export declare const OBJECT_ATTR_JAVA_RUNTIME = "javaRuntime";
182
- export declare const SOURCE_SUBTYPE_DB_TABLE = "dbTable";
183
- export declare const SOURCE_SUBTYPE_DB_VIEW = "dbView";
184
- export declare const SOURCE_SUBTYPES: readonly ["base", "dbTable", "dbView"];
185
- export type SourceSubType = (typeof SOURCE_SUBTYPES)[number];
186
- export declare const SOURCE_DB_TABLE_ATTR_NAME = "name";
187
- export declare const SOURCE_DB_VIEW_ATTR_NAME = "name";
188
- /** Shared @name attr key for MetaSource (covers both dbTable and dbView). Use this
189
- * in generic source accessors instead of the subtype-specific aliases above. */
190
- export declare const SOURCE_ATTR_NAME = "name";
191
- /** Optional DB schema attr on source[dbTable] / source[dbView]. Postgres uses
192
- * this to namespace tables/views. SQLite has no schema concept and rejects
193
- * any non-default value. Default for Postgres: "public". */
194
- export declare const SOURCE_ATTR_SCHEMA = "schema";
195
- /** Default Postgres schema when @schema is omitted from a source. */
196
- export declare const DEFAULT_DB_SCHEMA_POSTGRES = "public";
197
- export declare const ORIGIN_SUBTYPE_PASSTHROUGH = "passthrough";
198
- export declare const ORIGIN_SUBTYPE_AGGREGATE = "aggregate";
199
- export declare const ORIGIN_SUBTYPES: readonly ["base", "passthrough", "aggregate"];
200
- export type OriginSubType = (typeof ORIGIN_SUBTYPES)[number];
201
- export declare const ORIGIN_PASSTHROUGH_ATTR_FROM = "from";
202
- export declare const ORIGIN_PASSTHROUGH_ATTR_VIA = "via";
203
- export declare const ORIGIN_AGGREGATE_ATTR_AGG = "agg";
204
- export declare const ORIGIN_AGGREGATE_ATTR_OF = "of";
205
- export declare const ORIGIN_AGGREGATE_ATTR_VIA = "via";
206
- export declare const AGGREGATE_FUNCTIONS: readonly ["count", "sum", "avg", "min", "max"];
207
- export type AggregateFunction = (typeof AGGREGATE_FUNCTIONS)[number];
208
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}