@weave-kit/engine 0.2.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/dist/adapters/mcp/generate.d.ts +2 -1
  2. package/dist/adapters/mcp/generate.d.ts.map +1 -1
  3. package/dist/adapters/mcp/generate.js +23 -23
  4. package/dist/adapters/mcp/generate.js.map +1 -1
  5. package/dist/adapters/openapi/document.js +1 -1
  6. package/dist/adapters/openapi/document.js.map +1 -1
  7. package/dist/adapters/openapi/schema.d.ts +5 -4
  8. package/dist/adapters/openapi/schema.d.ts.map +1 -1
  9. package/dist/adapters/openapi/schema.js +16 -16
  10. package/dist/adapters/openapi/schema.js.map +1 -1
  11. package/dist/adapters/openapi/types.d.ts +2 -0
  12. package/dist/adapters/openapi/types.d.ts.map +1 -1
  13. package/dist/cli/commands/build.d.ts.map +1 -1
  14. package/dist/cli/commands/build.js +22 -0
  15. package/dist/cli/commands/build.js.map +1 -1
  16. package/dist/cli/commands/dev.d.ts.map +1 -1
  17. package/dist/cli/commands/dev.js +9 -6
  18. package/dist/cli/commands/dev.js.map +1 -1
  19. package/dist/cli/commands/field-add.d.ts.map +1 -1
  20. package/dist/cli/commands/field-add.js +15 -11
  21. package/dist/cli/commands/field-add.js.map +1 -1
  22. package/dist/cli/commands/migrate.d.ts.map +1 -1
  23. package/dist/cli/commands/migrate.js +3 -0
  24. package/dist/cli/commands/migrate.js.map +1 -1
  25. package/dist/cli/commands/openapi.d.ts.map +1 -1
  26. package/dist/cli/commands/openapi.js +4 -0
  27. package/dist/cli/commands/openapi.js.map +1 -1
  28. package/dist/cli/commands/schema-map.d.ts.map +1 -1
  29. package/dist/cli/commands/schema-map.js +2 -0
  30. package/dist/cli/commands/schema-map.js.map +1 -1
  31. package/dist/cli/commands/types.d.ts.map +1 -1
  32. package/dist/cli/commands/types.js +8 -2
  33. package/dist/cli/commands/types.js.map +1 -1
  34. package/dist/cli/resolve-field-types.d.ts +9 -0
  35. package/dist/cli/resolve-field-types.d.ts.map +1 -0
  36. package/dist/cli/resolve-field-types.js +17 -0
  37. package/dist/cli/resolve-field-types.js.map +1 -0
  38. package/dist/core/i18n/ar.d.ts.map +1 -1
  39. package/dist/core/i18n/ar.js +6 -0
  40. package/dist/core/i18n/ar.js.map +1 -1
  41. package/dist/core/i18n/de.d.ts.map +1 -1
  42. package/dist/core/i18n/de.js +6 -0
  43. package/dist/core/i18n/de.js.map +1 -1
  44. package/dist/core/i18n/en.d.ts +6 -0
  45. package/dist/core/i18n/en.d.ts.map +1 -1
  46. package/dist/core/i18n/en.js +6 -0
  47. package/dist/core/i18n/en.js.map +1 -1
  48. package/dist/core/i18n/es.d.ts.map +1 -1
  49. package/dist/core/i18n/es.js +6 -0
  50. package/dist/core/i18n/es.js.map +1 -1
  51. package/dist/core/i18n/fr.d.ts.map +1 -1
  52. package/dist/core/i18n/fr.js +6 -0
  53. package/dist/core/i18n/fr.js.map +1 -1
  54. package/dist/core/i18n/hi.d.ts.map +1 -1
  55. package/dist/core/i18n/hi.js +6 -0
  56. package/dist/core/i18n/hi.js.map +1 -1
  57. package/dist/core/i18n/id.d.ts.map +1 -1
  58. package/dist/core/i18n/id.js +6 -0
  59. package/dist/core/i18n/id.js.map +1 -1
  60. package/dist/core/i18n/ja.d.ts.map +1 -1
  61. package/dist/core/i18n/ja.js +6 -0
  62. package/dist/core/i18n/ja.js.map +1 -1
  63. package/dist/core/i18n/ko.d.ts.map +1 -1
  64. package/dist/core/i18n/ko.js +6 -0
  65. package/dist/core/i18n/ko.js.map +1 -1
  66. package/dist/core/i18n/pt.d.ts.map +1 -1
  67. package/dist/core/i18n/pt.js +6 -0
  68. package/dist/core/i18n/pt.js.map +1 -1
  69. package/dist/core/i18n/ru.d.ts.map +1 -1
  70. package/dist/core/i18n/ru.js +6 -0
  71. package/dist/core/i18n/ru.js.map +1 -1
  72. package/dist/core/i18n/vi.d.ts.map +1 -1
  73. package/dist/core/i18n/vi.js +6 -0
  74. package/dist/core/i18n/vi.js.map +1 -1
  75. package/dist/core/i18n/zh-hant.d.ts.map +1 -1
  76. package/dist/core/i18n/zh-hant.js +6 -0
  77. package/dist/core/i18n/zh-hant.js.map +1 -1
  78. package/dist/core/i18n/zh.d.ts.map +1 -1
  79. package/dist/core/i18n/zh.js +6 -0
  80. package/dist/core/i18n/zh.js.map +1 -1
  81. package/dist/core/object/describe.d.ts.map +1 -1
  82. package/dist/core/object/describe.js +8 -13
  83. package/dist/core/object/describe.js.map +1 -1
  84. package/dist/core/object/gen-types.d.ts +2 -1
  85. package/dist/core/object/gen-types.d.ts.map +1 -1
  86. package/dist/core/object/gen-types.js +16 -18
  87. package/dist/core/object/gen-types.js.map +1 -1
  88. package/dist/core/object/registry.d.ts +10 -0
  89. package/dist/core/object/registry.d.ts.map +1 -1
  90. package/dist/core/object/registry.js +10 -0
  91. package/dist/core/object/registry.js.map +1 -1
  92. package/dist/core/object/validate/field.d.ts +9 -1
  93. package/dist/core/object/validate/field.d.ts.map +1 -1
  94. package/dist/core/object/validate/field.js +75 -5
  95. package/dist/core/object/validate/field.js.map +1 -1
  96. package/dist/core/object/validate/object.d.ts +3 -0
  97. package/dist/core/object/validate/object.d.ts.map +1 -1
  98. package/dist/core/object/validate/object.js +6 -5
  99. package/dist/core/object/validate/object.js.map +1 -1
  100. package/dist/core/storage/diff.d.ts +2 -1
  101. package/dist/core/storage/diff.d.ts.map +1 -1
  102. package/dist/core/storage/diff.js +7 -7
  103. package/dist/core/storage/diff.js.map +1 -1
  104. package/dist/core/storage/map.d.ts +6 -3
  105. package/dist/core/storage/map.d.ts.map +1 -1
  106. package/dist/core/storage/map.js +23 -22
  107. package/dist/core/storage/map.js.map +1 -1
  108. package/dist/core/storage/migrate.js +1 -1
  109. package/dist/core/storage/migrate.js.map +1 -1
  110. package/dist/core/storage/report.d.ts +2 -1
  111. package/dist/core/storage/report.d.ts.map +1 -1
  112. package/dist/core/storage/report.js +3 -3
  113. package/dist/core/storage/report.js.map +1 -1
  114. package/dist/core/types/field-type.d.ts +38 -0
  115. package/dist/core/types/field-type.d.ts.map +1 -0
  116. package/dist/core/types/field-type.js +12 -0
  117. package/dist/core/types/field-type.js.map +1 -0
  118. package/dist/core/types/fields.d.ts +22 -3
  119. package/dist/core/types/fields.d.ts.map +1 -1
  120. package/dist/core/types/index.d.ts +4 -3
  121. package/dist/core/types/index.d.ts.map +1 -1
  122. package/dist/core/types/index.js +2 -1
  123. package/dist/core/types/index.js.map +1 -1
  124. package/dist/core/types/registry.d.ts +19 -31
  125. package/dist/core/types/registry.d.ts.map +1 -1
  126. package/dist/core/types/registry.js +53 -19
  127. package/dist/core/types/registry.js.map +1 -1
  128. package/dist/core/types/values.d.ts +8 -1
  129. package/dist/core/types/values.d.ts.map +1 -1
  130. package/dist/core/types/values.js.map +1 -1
  131. package/dist/index.d.ts +2 -0
  132. package/dist/index.d.ts.map +1 -1
  133. package/dist/index.js +17 -1
  134. package/dist/index.js.map +1 -1
  135. package/dist/runtime/engine.d.ts +11 -1
  136. package/dist/runtime/engine.d.ts.map +1 -1
  137. package/dist/runtime/engine.js.map +1 -1
  138. package/dist/runtime/fieldtypes/index.d.ts +3 -0
  139. package/dist/runtime/fieldtypes/index.d.ts.map +1 -0
  140. package/dist/runtime/fieldtypes/index.js +2 -0
  141. package/dist/runtime/fieldtypes/index.js.map +1 -0
  142. package/dist/runtime/fieldtypes/loader.d.ts +21 -0
  143. package/dist/runtime/fieldtypes/loader.d.ts.map +1 -0
  144. package/dist/runtime/fieldtypes/loader.js +125 -0
  145. package/dist/runtime/fieldtypes/loader.js.map +1 -0
  146. package/dist/runtime/git/loader.d.ts +2 -1
  147. package/dist/runtime/git/loader.d.ts.map +1 -1
  148. package/dist/runtime/git/loader.js +12 -3
  149. package/dist/runtime/git/loader.js.map +1 -1
  150. package/dist/runtime/git/sync.d.ts +3 -1
  151. package/dist/runtime/git/sync.d.ts.map +1 -1
  152. package/dist/runtime/git/sync.js +5 -1
  153. package/dist/runtime/git/sync.js.map +1 -1
  154. package/dist/version.d.ts +1 -1
  155. package/dist/version.js +1 -1
  156. package/package.json +1 -1
@@ -1,12 +1,14 @@
1
1
  import { FIELD_TYPES, primaryFieldOf } from '../types/index.js';
2
+ import { DEFAULT_FIELD_TYPE_REGISTRY, fieldBase, } from '../types/index.js';
2
3
  /**
3
4
  * Compile object definitions into object-level TypeScript types
4
5
  * (`generated/types.ts`). This is the bridge from contract-level to
5
6
  * object-level type safety: consumers `import type { Lead } from './generated/types'`
6
7
  * and call `objects<Lead>('lead')`.
7
8
  *
8
- * Pure function, zero dependencies. Field→TS mapping is driven by the
9
- * `FIELD_TYPES` single source of truth (no hardcoded literals).
9
+ * Pure function, zero dependencies. Field→TS mapping is driven by the field
10
+ * type's **base** (resolved through the registry), so registered types inherit
11
+ * their base's TS type.
10
12
  */
11
13
  /** snake_case → PascalCase (lead → Lead, crm_lead → CrmLead) */
12
14
  function pascalCase(snake) {
@@ -20,11 +22,11 @@ function quote(value) {
20
22
  return `'${value.replace(/\\/g, '\\\\').replace(/'/g, "\\'")}'`;
21
23
  }
22
24
  /** primary key scalar type of a relation target (fallback: string) */
23
- function relatedPk(target, defs) {
25
+ function relatedPk(target, defs, registry) {
24
26
  const pk = primaryFieldOf(defs.get(target));
25
27
  if (pk === undefined)
26
28
  return 'string';
27
- const ts = tsTypeOf(pk, defs);
29
+ const ts = tsTypeOf(pk, defs, registry);
28
30
  return ts === null ? 'string' : ts;
29
31
  }
30
32
  function enumType(field) {
@@ -32,18 +34,14 @@ function enumType(field) {
32
34
  return field.multiple === true ? `(${union})[]` : union;
33
35
  }
34
36
  /** TS type for a field; null = excluded from the generated interface */
35
- function tsTypeOf(field, defs) {
36
- switch (field.type) {
37
+ function tsTypeOf(field, defs, registry) {
38
+ const base = fieldBase(registry, field.type);
39
+ switch (base) {
37
40
  case FIELD_TYPES.STRING:
38
41
  case FIELD_TYPES.TEXT:
39
42
  case FIELD_TYPES.DATETIME:
40
43
  case FIELD_TYPES.DATE:
41
44
  case FIELD_TYPES.SEQ_NO:
42
- case FIELD_TYPES.FIRST_NAME:
43
- case FIELD_TYPES.LAST_NAME:
44
- case FIELD_TYPES.EMAIL:
45
- case FIELD_TYPES.PHONE:
46
- case FIELD_TYPES.IMAGE:
47
45
  return 'string';
48
46
  case FIELD_TYPES.INTEGER:
49
47
  case FIELD_TYPES.NUMBER:
@@ -56,26 +54,26 @@ function tsTypeOf(field, defs) {
56
54
  case FIELD_TYPES.ENUM:
57
55
  return enumType(field);
58
56
  case FIELD_TYPES.RELATION:
59
- case FIELD_TYPES.PERSON:
60
- case FIELD_TYPES.DEPARTMENT:
61
- return relatedPk(field.target, defs);
57
+ return relatedPk(field.target, defs, registry);
62
58
  case FIELD_TYPES.MULTI_RELATION:
63
- return `${relatedPk(field.target, defs)}[]`;
59
+ return `${relatedPk(field.target, defs, registry)}[]`;
64
60
  case FIELD_TYPES.DETAILS:
65
61
  // child rows are managed via their own object; not embedded in the parent
66
62
  return null;
63
+ default:
64
+ return 'unknown';
67
65
  }
68
66
  }
69
67
  /** compile a set of object definitions into TS interface declarations */
70
- export function generateObjectTypes(objects) {
68
+ export function generateObjectTypes(objects, registry = DEFAULT_FIELD_TYPE_REGISTRY) {
71
69
  const defs = new Map(objects.map((obj) => [obj.name, obj]));
72
70
  const lines = ['// Generated by @weave-kit/engine — do not edit.', ''];
73
71
  for (const obj of objects) {
74
72
  lines.push(`export interface ${pascalCase(obj.name)} {`);
75
73
  for (const field of obj.fields) {
76
- if (field.type === FIELD_TYPES.DETAILS)
74
+ if (fieldBase(registry, field.type) === FIELD_TYPES.DETAILS)
77
75
  continue;
78
- const ts = tsTypeOf(field, defs);
76
+ const ts = tsTypeOf(field, defs, registry);
79
77
  if (ts === null)
80
78
  continue;
81
79
  const optional = ('required' in field && field.required === true) || field.primary === true ? '' : '?';
@@ -1 +1 @@
1
- {"version":3,"file":"gen-types.js","sourceRoot":"","sources":["../../../src/core/object/gen-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gen-types.js","sourceRoot":"","sources":["../../../src/core/object/gen-types.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { ObjectDefinition } from '../types/index.js';
2
+ import { type FieldTypeRegistry } from '../types/index.js';
2
3
  import { RelationGraph, type BuildGraphOptions } from './graph.js';
3
4
  import { type ValidateOptions } from './validate.js';
4
5
  /**
@@ -7,9 +8,18 @@ import { type ValidateOptions } from './validate.js';
7
8
  * Register validates each object (self-contained checks only — cross-object
8
9
  * checks happen in {@link buildGraph}) and rejects duplicates. `buildGraph`
9
10
  * then validates relations across the whole set and derives the relation graph.
11
+ *
12
+ * The effective {@link FieldTypeRegistry} (built-ins + user registrations) is
13
+ * carried on the registry so downstream consumers (describe/MCP) can resolve
14
+ * registered types without re-threading options.
10
15
  */
11
16
  export declare class ObjectRegistry {
12
17
  private readonly defs;
18
+ /** the effective field-type registry this set was validated against */
19
+ readonly fieldTypes: FieldTypeRegistry;
20
+ constructor(options?: {
21
+ fieldTypes?: FieldTypeRegistry;
22
+ });
13
23
  /** validate and store one object definition; throws on duplicate name */
14
24
  register(input: unknown, options?: ValidateOptions): ObjectDefinition;
15
25
  /** look up an object by name */
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/core/object/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAc,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAErE;;;;;;GAMG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuC;IAE5D,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,gBAAgB;IASrE,gCAAgC;IAChC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI/C,oDAAoD;IACpD,IAAI,IAAI,gBAAgB,EAAE;IAI1B,2EAA2E;IAC3E,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,aAAa;CAGvD;AAED,+EAA+E;AAC/E,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,gBAAgB,CAExF"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/core/object/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAA+B,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAc,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAErE;;;;;;;;;;GAUG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuC;IAC5D,uEAAuE;IACvE,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;gBAE3B,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,iBAAiB,CAAA;KAAO;IAI5D,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,gBAAgB;IASrE,gCAAgC;IAChC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI/C,oDAAoD;IACpD,IAAI,IAAI,gBAAgB,EAAE;IAI1B,2EAA2E;IAC3E,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,aAAa;CAGvD;AAED,+EAA+E;AAC/E,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,gBAAgB,CAExF"}
@@ -1,4 +1,5 @@
1
1
  import { SchemaError } from '../types/errors.js';
2
+ import { DEFAULT_FIELD_TYPE_REGISTRY } from '../types/index.js';
2
3
  import { buildGraph, RelationGraph } from './graph.js';
3
4
  import { validateObject } from './validate.js';
4
5
  /**
@@ -7,9 +8,18 @@ import { validateObject } from './validate.js';
7
8
  * Register validates each object (self-contained checks only — cross-object
8
9
  * checks happen in {@link buildGraph}) and rejects duplicates. `buildGraph`
9
10
  * then validates relations across the whole set and derives the relation graph.
11
+ *
12
+ * The effective {@link FieldTypeRegistry} (built-ins + user registrations) is
13
+ * carried on the registry so downstream consumers (describe/MCP) can resolve
14
+ * registered types without re-threading options.
10
15
  */
11
16
  export class ObjectRegistry {
12
17
  defs = new Map();
18
+ /** the effective field-type registry this set was validated against */
19
+ fieldTypes;
20
+ constructor(options = {}) {
21
+ this.fieldTypes = options.fieldTypes ?? DEFAULT_FIELD_TYPE_REGISTRY;
22
+ }
13
23
  /** validate and store one object definition; throws on duplicate name */
14
24
  register(input, options) {
15
25
  const def = validateObject(input, options);
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/core/object/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,aAAa,EAA0B,MAAM,YAAY,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAwB,MAAM,eAAe,CAAC;AAErE;;;;;;GAMG;AACH,MAAM,OAAO,cAAc;IACR,IAAI,GAAG,IAAI,GAAG,EAA4B,CAAC;IAE5D,yEAAyE;IACzE,QAAQ,CAAC,KAAc,EAAE,OAAyB;QAChD,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3C,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,WAAW,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7B,OAAO,GAAG,CAAC;IACb,CAAC;IAED,gCAAgC;IAChC,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,oDAAoD;IACpD,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,2EAA2E;IAC3E,UAAU,CAAC,OAA2B;QACpC,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;CACF;AAED,+EAA+E;AAC/E,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,OAAyB;IACpE,OAAO,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/core/object/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,2BAA2B,EAA0B,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,aAAa,EAA0B,MAAM,YAAY,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAwB,MAAM,eAAe,CAAC;AAErE;;;;;;;;;;GAUG;AACH,MAAM,OAAO,cAAc;IACR,IAAI,GAAG,IAAI,GAAG,EAA4B,CAAC;IAC5D,uEAAuE;IAC9D,UAAU,CAAoB;IAEvC,YAAY,UAA8C,EAAE;QAC1D,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,2BAA2B,CAAC;IACtE,CAAC;IAED,yEAAyE;IACzE,QAAQ,CAAC,KAAc,EAAE,OAAyB;QAChD,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3C,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,WAAW,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7B,OAAO,GAAG,CAAC;IACb,CAAC;IAED,gCAAgC;IAChC,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,oDAAoD;IACpD,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,2EAA2E;IAC3E,UAAU,CAAC,OAA2B;QACpC,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;CACF;AAED,+EAA+E;AAC/E,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,OAAyB;IACpE,OAAO,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC"}
@@ -1,5 +1,13 @@
1
1
  import type { FieldDefinition } from '../../types/index.js';
2
+ import { type FieldTypeRegistry } from '../../types/index.js';
2
3
  import { type Vc } from './primitives.js';
4
+ /** validation options for a single field (built-in + registered types) */
5
+ export interface FieldValidateOptions {
6
+ /** field-type whitelist (config `features.fieldTypes`), fail-closed when provided */
7
+ allowedFieldTypes?: readonly string[];
8
+ /** the effective field-type registry (built-ins + user registrations) */
9
+ fieldTypes?: FieldTypeRegistry;
10
+ }
3
11
  /** validate a single field definition into its typed discriminated-union member */
4
- export declare function validateField(raw: unknown, vc: Vc, allowedFieldTypes?: readonly string[]): FieldDefinition;
12
+ export declare function validateField(raw: unknown, vc: Vc, options?: FieldValidateOptions): FieldDefinition;
5
13
  //# sourceMappingURL=field.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../../src/core/object/validate/field.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAA6B,MAAM,sBAAsB,CAAC;AAGvF,OAAO,EAaL,KAAK,EAAE,EACR,MAAM,iBAAiB,CAAC;AAiGzB,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,eAAe,CA0S1G"}
1
+ {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../../src/core/object/validate/field.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAoB,eAAe,EAA6B,MAAM,sBAAsB,CAAC;AACzG,OAAO,EAKL,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAaL,KAAK,EAAE,EACR,MAAM,iBAAiB,CAAC;AAuGzB,0EAA0E;AAC1E,MAAM,WAAW,oBAAoB;IACnC,qFAAqF;IACrF,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,yEAAyE;IACzE,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC;AAED,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,GAAE,oBAAyB,GAAG,eAAe,CAwTvG"}
@@ -1,9 +1,14 @@
1
1
  import { parseFormula } from '../../formula/index.js';
2
+ import { DEFAULT_FIELD_TYPE_REGISTRY, FIELD_TYPE_NAME_PATTERN, fieldBase, } from '../../types/index.js';
2
3
  import { FIELD_TYPES, ROW_SCOPE_MARKERS } from '../../types/values.js';
3
4
  import { validateLabels } from './labels.js';
4
5
  import { fail, isRecord, expectString, expectBoolean, expectNumber, expectPositiveInt, SNAKE_CASE, FIELD_TYPE_VALUES, ON_DELETE_ACTION_VALUES, SEQUENCE_PLACEHOLDER, SEQUENCE_TOKEN_VALUES, SEQUENCE_CYCLE_VALUES, } from './primitives.js';
5
6
  /** keys always allowed on any field */
6
7
  const BASE_KEYS = ['name', 'type', 'labels', 'description', 'primary', 'system', 'sensitive'];
8
+ /** broad field-type-name shape: built-ins (camelCase) + registered (namespaced) names */
9
+ const FIELD_TYPE_NAME_RE = /^[a-z][a-zA-Z0-9_]*$/;
10
+ /** registered-type name shape (namespace segment required) */
11
+ const REGISTERED_FIELD_TYPE_RE = new RegExp(FIELD_TYPE_NAME_PATTERN);
7
12
  /** extra keys allowed per field type */
8
13
  const EXTRA_KEYS = {
9
14
  string: ['minLength', 'maxLength', 'regex', 'required', 'unique', 'default', 'formula', ROW_SCOPE_MARKERS.OWNERSHIP, ROW_SCOPE_MARKERS.TEAM],
@@ -107,7 +112,9 @@ function parseFormulaAttr(raw, vc) {
107
112
  return raw.formula;
108
113
  }
109
114
  /** validate a single field definition into its typed discriminated-union member */
110
- export function validateField(raw, vc, allowedFieldTypes) {
115
+ export function validateField(raw, vc, options = {}) {
116
+ const allowedFieldTypes = options.allowedFieldTypes;
117
+ const registry = options.fieldTypes ?? DEFAULT_FIELD_TYPE_REGISTRY;
111
118
  if (!isRecord(raw))
112
119
  fail(vc, 'field.notObject');
113
120
  const name = expectString(raw, 'name', vc);
@@ -116,13 +123,25 @@ export function validateField(raw, vc, allowedFieldTypes) {
116
123
  if (!SNAKE_CASE.test(name))
117
124
  fail(vc, 'field.name.snake', { name });
118
125
  const rawType = raw.type;
119
- if (typeof rawType !== 'string' || !FIELD_TYPE_VALUES.includes(rawType)) {
126
+ if (typeof rawType !== 'string' || !FIELD_TYPE_NAME_RE.test(rawType)) {
120
127
  fail(vc, 'field.type.invalid', { type: String(rawType) });
121
128
  }
122
- const type = rawType;
123
- if (allowedFieldTypes !== undefined && !allowedFieldTypes.includes(type)) {
124
- fail(vc, 'field.type.disabled', { type });
129
+ const isBuiltin = FIELD_TYPE_VALUES.includes(rawType);
130
+ const descriptor = isBuiltin ? undefined : registry.get(rawType);
131
+ if (!isBuiltin) {
132
+ if (!REGISTERED_FIELD_TYPE_RE.test(rawType))
133
+ fail(vc, 'field.type.invalid', { type: rawType });
134
+ if (descriptor === undefined)
135
+ fail(vc, 'field.type.unknown', { type: rawType });
136
+ }
137
+ if (allowedFieldTypes !== undefined && !allowedFieldTypes.includes(rawType)) {
138
+ fail(vc, 'field.type.disabled', { type: rawType });
139
+ }
140
+ // registered (non-builtin) type → generic, descriptor-driven path
141
+ if (!isBuiltin && descriptor !== undefined) {
142
+ return validateRegisteredField(raw, name, rawType, descriptor, vc);
125
143
  }
144
+ const type = rawType;
126
145
  checkAllowedKeys(raw, type, vc);
127
146
  const labels = validateLabels(raw.labels, vc);
128
147
  const description = expectString(raw, 'description', vc);
@@ -429,4 +448,55 @@ export function validateField(raw, vc, allowedFieldTypes) {
429
448
  }
430
449
  }
431
450
  }
451
+ /**
452
+ * Validate a field whose type is a user/plugin registered type. Attributes are
453
+ * checked against the registration's allow-list (plus the base's conveniences);
454
+ * storage/TS/MCP/OpenAPI behaviour is inherited from `base` at consumption time.
455
+ */
456
+ function validateRegisteredField(raw, name, type, descriptor, vc) {
457
+ const base = descriptor.base;
458
+ if (base === undefined)
459
+ fail(vc, 'field.type.invalid', { type });
460
+ const resolvedBase = fieldBase(DEFAULT_FIELD_TYPE_REGISTRY, base);
461
+ const relationLike = descriptor.relationLike === true || resolvedBase === FIELD_TYPES.RELATION;
462
+ const allowed = new Set([...BASE_KEYS, ...(descriptor.attrs ?? []), 'required', 'unique', 'default']);
463
+ if (relationLike) {
464
+ allowed.add('target');
465
+ allowed.add('onDelete');
466
+ }
467
+ if (resolvedBase === FIELD_TYPES.STRING || resolvedBase === FIELD_TYPES.TEXT)
468
+ allowed.add('multiple');
469
+ for (const key of Object.keys(raw)) {
470
+ if (!allowed.has(key))
471
+ fail(vc, 'field.attr.notAllowed', { type, attr: key });
472
+ }
473
+ const labels = validateLabels(raw.labels, vc);
474
+ const description = expectString(raw, 'description', vc);
475
+ const primary = expectBoolean(raw, 'primary', vc);
476
+ const system = expectBoolean(raw, 'system', vc);
477
+ const sensitive = expectBoolean(raw, 'sensitive', vc);
478
+ const required = expectBoolean(raw, 'required', vc);
479
+ const unique = expectBoolean(raw, 'unique', vc);
480
+ const multiple = expectBoolean(raw, 'multiple', vc);
481
+ const out = { name, type, labels, description, primary, system, sensitive, required, unique };
482
+ if (multiple !== undefined)
483
+ out.multiple = multiple;
484
+ if (relationLike) {
485
+ const target = expectString(raw, 'target', vc);
486
+ if (target === undefined)
487
+ fail(vc, 'field.relation.target.required');
488
+ if (!SNAKE_CASE.test(target))
489
+ fail(vc, 'field.relation.target.snake', { target });
490
+ const onDelete = expectString(raw, 'onDelete', vc);
491
+ if (onDelete !== undefined && !ON_DELETE_ACTION_VALUES.includes(onDelete)) {
492
+ fail(vc, 'field.relation.onDelete.invalid', { actions: ON_DELETE_ACTION_VALUES.join('/') });
493
+ }
494
+ out.target = target;
495
+ if (onDelete !== undefined)
496
+ out.onDelete = onDelete;
497
+ }
498
+ if (raw.default !== undefined)
499
+ out.default = raw.default;
500
+ return out;
501
+ }
432
502
  //# sourceMappingURL=field.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"field.js","sourceRoot":"","sources":["../../../../src/core/object/validate/field.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field.js","sourceRoot":"","sources":["../../../../src/core/object/validate/field.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { Locale } from '../../i18n/index.js';
2
2
  import type { ObjectDefinition } from '../../types/index.js';
3
+ import { type FieldTypeRegistry } from '../../types/index.js';
3
4
  export interface ValidateOptions {
4
5
  /** directory name hint; must equal object name when provided */
5
6
  nameHint?: string;
@@ -11,6 +12,8 @@ export interface ValidateOptions {
11
12
  * to all types (gating is opt-in via config).
12
13
  */
13
14
  allowedFieldTypes?: readonly string[];
15
+ /** effective field-type registry (built-ins + user registrations) */
16
+ fieldTypes?: FieldTypeRegistry;
14
17
  }
15
18
  /**
16
19
  * Validate a raw object definition (single object, self-contained checks only).
@@ -1 +1 @@
1
- {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../../../src/core/object/validate/object.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,KAAK,EAAmB,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAS9E,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,gBAAgB,CA2FxF"}
1
+ {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../../../src/core/object/validate/object.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,KAAK,EAAmB,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAkD,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAS9G,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,qEAAqE;IACrE,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,gBAAgB,CA8FxF"}
@@ -1,12 +1,13 @@
1
1
  import { DEFAULT_LOCALE } from '../../i18n/index.js';
2
2
  import { SCHEMA_FORMAT_VERSION } from '../schema-version.js';
3
+ import { DEFAULT_FIELD_TYPE_REGISTRY, isScalarFieldType } from '../../types/index.js';
3
4
  import { FIELD_TYPES, READ_SCOPES } from '../../types/values.js';
4
5
  import { validateField } from './field.js';
5
6
  import { validateFormulas } from './formulas.js';
6
7
  import { validateIndexes } from './indexes.js';
7
8
  import { validateLabels } from './labels.js';
8
9
  import { validatePermissions } from './permissions.js';
9
- import { fail, isRecord, expectString, SNAKE_CASE, SCALAR_TYPE_VALUES, TITLE_PLACEHOLDER_RE } from './primitives.js';
10
+ import { fail, isRecord, expectString, SNAKE_CASE, TITLE_PLACEHOLDER_RE } from './primitives.js';
10
11
  /**
11
12
  * Validate a raw object definition (single object, self-contained checks only).
12
13
  * Includes field validation, primary-key rules, titleTemplate placeholder checks
@@ -14,6 +15,7 @@ import { fail, isRecord, expectString, SNAKE_CASE, SCALAR_TYPE_VALUES, TITLE_PLA
14
15
  */
15
16
  export function validateObject(raw, options) {
16
17
  const vc = { object: '(unknown)', locale: options?.locale ?? DEFAULT_LOCALE };
18
+ const registry = options?.fieldTypes ?? DEFAULT_FIELD_TYPE_REGISTRY;
17
19
  if (!isRecord(raw))
18
20
  fail(vc, 'object.notObject');
19
21
  const name = expectString(raw, 'name', vc);
@@ -47,7 +49,7 @@ export function validateObject(raw, options) {
47
49
  const rawFields = raw.fields;
48
50
  if (!Array.isArray(rawFields) || rawFields.length === 0)
49
51
  fail(vc, 'object.fields.required');
50
- const fields = rawFields.map((f) => validateField(f, vc, options?.allowedFieldTypes));
52
+ const fields = rawFields.map((f) => validateField(f, vc, { allowedFieldTypes: options?.allowedFieldTypes, fieldTypes: options?.fieldTypes }));
51
53
  const seen = new Set();
52
54
  for (const field of fields) {
53
55
  if (seen.has(field.name))
@@ -61,7 +63,7 @@ export function validateObject(raw, options) {
61
63
  if (primaries.length > 1)
62
64
  fail(vc, 'object.primary.many');
63
65
  const primaryField = primaries[0];
64
- if (primaryField !== undefined && !SCALAR_TYPE_VALUES.includes(primaryField.type)) {
66
+ if (primaryField !== undefined && !isScalarFieldType(registry, primaryField.type)) {
65
67
  fail(vc, 'object.primary.scalarOnly', { type: primaryField.type });
66
68
  }
67
69
  if (primaryField !== undefined && primaryField.formula !== undefined) {
@@ -116,8 +118,7 @@ function validateTitleTemplate(raw, fields, vc) {
116
118
  if (field === undefined) {
117
119
  fail(vc, 'title.placeholder.missing', { field: fieldName });
118
120
  }
119
- else if (field.type === FIELD_TYPES.DETAILS ||
120
- field.type === FIELD_TYPES.MULTI_RELATION) {
121
+ else if (field.type === FIELD_TYPES.DETAILS || field.type === FIELD_TYPES.MULTI_RELATION) {
121
122
  fail(vc, 'title.placeholder.relation', { field: fieldName, type: field.type });
122
123
  }
123
124
  else if (field.type === FIELD_TYPES.ENUM && field.multiple === true) {
@@ -1 +1 @@
1
- {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../../src/core/object/validate/object.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../../src/core/object/validate/object.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { ObjectDefinition } from '../types/index.js';
2
+ import type { FieldTypeRegistry } from '../types/index.js';
2
3
  import type { Locale } from '../i18n/index.js';
3
4
  import type { ActualTable } from './inspect.js';
4
5
  export interface ExpectedColumn {
@@ -30,7 +31,7 @@ export interface ExpectedTable {
30
31
  * Build the expected table spec for one object, resolving cross-object
31
32
  * information (relation FK target + type, details-child auto columns).
32
33
  */
33
- export declare function buildExpectedTable(def: ObjectDefinition, defs: ReadonlyMap<string, ObjectDefinition>): ExpectedTable;
34
+ export declare function buildExpectedTable(def: ObjectDefinition, defs: ReadonlyMap<string, ObjectDefinition>, registry?: FieldTypeRegistry): ExpectedTable;
34
35
  /** statements to bring one expected table in line with the actual table (undefined = missing) */
35
36
  export declare function diffTable(t: ExpectedTable, actual: ActualTable | undefined, locale?: Locale): string[];
36
37
  /** diff all expected tables vs actual, ordered safely (creates → alters → constraints → indexes) */
@@ -1 +1 @@
1
- {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../src/core/storage/diff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAIhD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;IACjC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,GAAG,EAAE,UAAU,EAAE,CAAC;IAClB,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAQD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAC1C,aAAa,CA0Ef;AAmBD,iGAAiG;AACjG,wBAAgB,SAAS,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAyDtG;AAED,oGAAoG;AACpG,wBAAgB,OAAO,CACrB,QAAQ,EAAE,aAAa,EAAE,EACzB,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,EACxC,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,EAAE,CAsBV;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAuBtG"}
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../src/core/storage/diff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAIhD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;IACjC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,GAAG,EAAE,UAAU,EAAE,CAAC;IAClB,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAQD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAC3C,QAAQ,GAAE,iBAA+C,GACxD,aAAa,CA0Ef;AAmBD,iGAAiG;AACjG,wBAAgB,SAAS,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAyDtG;AAED,oGAAoG;AACpG,wBAAgB,OAAO,CACrB,QAAQ,EAAE,aAAa,EAAE,EACzB,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,EACxC,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,EAAE,CAsBV;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAuBtG"}
@@ -1,18 +1,18 @@
1
- import { DETAILS_COLUMNS, FIELD_TYPES, primaryFieldOf, primaryKeyOf } from '../types/index.js';
1
+ import { DEFAULT_FIELD_TYPE_REGISTRY, DETAILS_COLUMNS, FIELD_TYPES, primaryFieldOf, primaryKeyOf } from '../types/index.js';
2
2
  import { SchemaError } from '../types/index.js';
3
3
  import { buildRlsGrantDdl, buildRlsPolicy, policyName } from '../rbac/index.js';
4
4
  import { defaultExpr, onDeleteClause, pgType } from './map.js';
5
5
  const q = (id) => `"${id}"`;
6
6
  /** mapped PK type of an object (for relation FK columns), or undefined */
7
- function targetPkType(def) {
7
+ function targetPkType(def, registry) {
8
8
  const pkField = primaryFieldOf(def);
9
- return pkField === undefined ? undefined : pgType(pkField, undefined);
9
+ return pkField === undefined ? undefined : pgType(pkField, undefined, registry);
10
10
  }
11
11
  /**
12
12
  * Build the expected table spec for one object, resolving cross-object
13
13
  * information (relation FK target + type, details-child auto columns).
14
14
  */
15
- export function buildExpectedTable(def, defs) {
15
+ export function buildExpectedTable(def, defs, registry = DEFAULT_FIELD_TYPE_REGISTRY) {
16
16
  const name = def.name;
17
17
  const columns = [];
18
18
  const fks = [];
@@ -23,16 +23,16 @@ export function buildExpectedTable(def, defs) {
23
23
  let type;
24
24
  if (field.type === FIELD_TYPES.RELATION || field.type === FIELD_TYPES.PERSON || field.type === FIELD_TYPES.DEPARTMENT) {
25
25
  const targetDef = defs.get(field.target);
26
- type = targetDef === undefined ? 'VARCHAR(255)' : (targetPkType(targetDef) ?? 'VARCHAR(255)');
26
+ type = targetDef === undefined ? 'VARCHAR(255)' : (targetPkType(targetDef, registry) ?? 'VARCHAR(255)');
27
27
  }
28
28
  else {
29
- type = pgType(field, undefined);
29
+ type = pgType(field, undefined, registry);
30
30
  }
31
31
  columns.push({
32
32
  name: field.name,
33
33
  type,
34
34
  notNull: field.required === true || field.primary === true,
35
- default: defaultExpr(field),
35
+ default: defaultExpr(field, registry),
36
36
  primary: field.primary === true,
37
37
  unique: field.unique === true,
38
38
  });