@weave-kit/engine 0.2.2 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/mcp/generate.d.ts +2 -1
- package/dist/adapters/mcp/generate.d.ts.map +1 -1
- package/dist/adapters/mcp/generate.js +23 -23
- package/dist/adapters/mcp/generate.js.map +1 -1
- package/dist/adapters/openapi/document.js +1 -1
- package/dist/adapters/openapi/document.js.map +1 -1
- package/dist/adapters/openapi/schema.d.ts +5 -4
- package/dist/adapters/openapi/schema.d.ts.map +1 -1
- package/dist/adapters/openapi/schema.js +16 -16
- package/dist/adapters/openapi/schema.js.map +1 -1
- package/dist/adapters/openapi/types.d.ts +2 -0
- package/dist/adapters/openapi/types.d.ts.map +1 -1
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +22 -0
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/dev.js +9 -6
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/field-add.d.ts.map +1 -1
- package/dist/cli/commands/field-add.js +15 -11
- package/dist/cli/commands/field-add.js.map +1 -1
- package/dist/cli/commands/field-types.d.ts +13 -0
- package/dist/cli/commands/field-types.d.ts.map +1 -0
- package/dist/cli/commands/field-types.js +131 -0
- package/dist/cli/commands/field-types.js.map +1 -0
- package/dist/cli/commands/introspect.d.ts.map +1 -1
- package/dist/cli/commands/introspect.js +6 -1
- package/dist/cli/commands/introspect.js.map +1 -1
- package/dist/cli/commands/migrate.d.ts.map +1 -1
- package/dist/cli/commands/migrate.js +3 -0
- package/dist/cli/commands/migrate.js.map +1 -1
- package/dist/cli/commands/openapi.d.ts.map +1 -1
- package/dist/cli/commands/openapi.js +4 -0
- package/dist/cli/commands/openapi.js.map +1 -1
- package/dist/cli/commands/schema-map.d.ts.map +1 -1
- package/dist/cli/commands/schema-map.js +2 -0
- package/dist/cli/commands/schema-map.js.map +1 -1
- package/dist/cli/commands/types.d.ts.map +1 -1
- package/dist/cli/commands/types.js +8 -2
- package/dist/cli/commands/types.js.map +1 -1
- package/dist/cli/index.js +13 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/resolve-field-types.d.ts +9 -0
- package/dist/cli/resolve-field-types.d.ts.map +1 -0
- package/dist/cli/resolve-field-types.js +17 -0
- package/dist/cli/resolve-field-types.js.map +1 -0
- package/dist/cli/types/commands.d.ts +8 -0
- package/dist/cli/types/commands.d.ts.map +1 -1
- package/dist/cli/types/index.d.ts +1 -1
- package/dist/cli/types/index.d.ts.map +1 -1
- package/dist/cli/types/values.d.ts +2 -0
- package/dist/cli/types/values.d.ts.map +1 -1
- package/dist/cli/types/values.js +2 -0
- package/dist/cli/types/values.js.map +1 -1
- package/dist/core/i18n/ar.d.ts.map +1 -1
- package/dist/core/i18n/ar.js +6 -0
- package/dist/core/i18n/ar.js.map +1 -1
- package/dist/core/i18n/de.d.ts.map +1 -1
- package/dist/core/i18n/de.js +6 -0
- package/dist/core/i18n/de.js.map +1 -1
- package/dist/core/i18n/en.d.ts +6 -0
- package/dist/core/i18n/en.d.ts.map +1 -1
- package/dist/core/i18n/en.js +6 -0
- package/dist/core/i18n/en.js.map +1 -1
- package/dist/core/i18n/es.d.ts.map +1 -1
- package/dist/core/i18n/es.js +6 -0
- package/dist/core/i18n/es.js.map +1 -1
- package/dist/core/i18n/fr.d.ts.map +1 -1
- package/dist/core/i18n/fr.js +6 -0
- package/dist/core/i18n/fr.js.map +1 -1
- package/dist/core/i18n/hi.d.ts.map +1 -1
- package/dist/core/i18n/hi.js +6 -0
- package/dist/core/i18n/hi.js.map +1 -1
- package/dist/core/i18n/id.d.ts.map +1 -1
- package/dist/core/i18n/id.js +6 -0
- package/dist/core/i18n/id.js.map +1 -1
- package/dist/core/i18n/ja.d.ts.map +1 -1
- package/dist/core/i18n/ja.js +6 -0
- package/dist/core/i18n/ja.js.map +1 -1
- package/dist/core/i18n/ko.d.ts.map +1 -1
- package/dist/core/i18n/ko.js +6 -0
- package/dist/core/i18n/ko.js.map +1 -1
- package/dist/core/i18n/pt.d.ts.map +1 -1
- package/dist/core/i18n/pt.js +6 -0
- package/dist/core/i18n/pt.js.map +1 -1
- package/dist/core/i18n/ru.d.ts.map +1 -1
- package/dist/core/i18n/ru.js +6 -0
- package/dist/core/i18n/ru.js.map +1 -1
- package/dist/core/i18n/vi.d.ts.map +1 -1
- package/dist/core/i18n/vi.js +6 -0
- package/dist/core/i18n/vi.js.map +1 -1
- package/dist/core/i18n/zh-hant.d.ts.map +1 -1
- package/dist/core/i18n/zh-hant.js +6 -0
- package/dist/core/i18n/zh-hant.js.map +1 -1
- package/dist/core/i18n/zh.d.ts.map +1 -1
- package/dist/core/i18n/zh.js +6 -0
- package/dist/core/i18n/zh.js.map +1 -1
- package/dist/core/object/describe.d.ts.map +1 -1
- package/dist/core/object/describe.js +8 -13
- package/dist/core/object/describe.js.map +1 -1
- package/dist/core/object/gen-types.d.ts +2 -1
- package/dist/core/object/gen-types.d.ts.map +1 -1
- package/dist/core/object/gen-types.js +16 -18
- package/dist/core/object/gen-types.js.map +1 -1
- package/dist/core/object/registry.d.ts +10 -0
- package/dist/core/object/registry.d.ts.map +1 -1
- package/dist/core/object/registry.js +10 -0
- package/dist/core/object/registry.js.map +1 -1
- package/dist/core/object/validate/field.d.ts +9 -1
- package/dist/core/object/validate/field.d.ts.map +1 -1
- package/dist/core/object/validate/field.js +75 -5
- package/dist/core/object/validate/field.js.map +1 -1
- package/dist/core/object/validate/object.d.ts +3 -0
- package/dist/core/object/validate/object.d.ts.map +1 -1
- package/dist/core/object/validate/object.js +6 -5
- package/dist/core/object/validate/object.js.map +1 -1
- package/dist/core/storage/diff.d.ts +2 -1
- package/dist/core/storage/diff.d.ts.map +1 -1
- package/dist/core/storage/diff.js +7 -7
- package/dist/core/storage/diff.js.map +1 -1
- package/dist/core/storage/introspect.d.ts +3 -0
- package/dist/core/storage/introspect.d.ts.map +1 -1
- package/dist/core/storage/introspect.js +35 -6
- package/dist/core/storage/introspect.js.map +1 -1
- package/dist/core/storage/map.d.ts +6 -3
- package/dist/core/storage/map.d.ts.map +1 -1
- package/dist/core/storage/map.js +23 -22
- package/dist/core/storage/map.js.map +1 -1
- package/dist/core/storage/migrate.js +1 -1
- package/dist/core/storage/migrate.js.map +1 -1
- package/dist/core/storage/report.d.ts +2 -1
- package/dist/core/storage/report.d.ts.map +1 -1
- package/dist/core/storage/report.js +3 -3
- package/dist/core/storage/report.js.map +1 -1
- package/dist/core/types/field-type.d.ts +49 -0
- package/dist/core/types/field-type.d.ts.map +1 -0
- package/dist/core/types/field-type.js +12 -0
- package/dist/core/types/field-type.js.map +1 -0
- package/dist/core/types/fields.d.ts +22 -3
- package/dist/core/types/fields.d.ts.map +1 -1
- package/dist/core/types/index.d.ts +4 -3
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/index.js +2 -1
- package/dist/core/types/index.js.map +1 -1
- package/dist/core/types/registry.d.ts +19 -31
- package/dist/core/types/registry.d.ts.map +1 -1
- package/dist/core/types/registry.js +53 -19
- package/dist/core/types/registry.js.map +1 -1
- package/dist/core/types/values.d.ts +8 -1
- package/dist/core/types/values.d.ts.map +1 -1
- package/dist/core/types/values.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -1
- package/dist/index.js.map +1 -1
- package/dist/runtime/engine.d.ts +11 -1
- package/dist/runtime/engine.d.ts.map +1 -1
- package/dist/runtime/engine.js.map +1 -1
- package/dist/runtime/fieldtypes/index.d.ts +3 -0
- package/dist/runtime/fieldtypes/index.d.ts.map +1 -0
- package/dist/runtime/fieldtypes/index.js +2 -0
- package/dist/runtime/fieldtypes/index.js.map +1 -0
- package/dist/runtime/fieldtypes/loader.d.ts +21 -0
- package/dist/runtime/fieldtypes/loader.d.ts.map +1 -0
- package/dist/runtime/fieldtypes/loader.js +135 -0
- package/dist/runtime/fieldtypes/loader.js.map +1 -0
- package/dist/runtime/git/loader.d.ts +2 -1
- package/dist/runtime/git/loader.d.ts.map +1 -1
- package/dist/runtime/git/loader.js +12 -3
- package/dist/runtime/git/loader.js.map +1 -1
- package/dist/runtime/git/sync.d.ts +3 -1
- package/dist/runtime/git/sync.d.ts.map +1 -1
- package/dist/runtime/git/sync.js +5 -1
- package/dist/runtime/git/sync.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../../src/core/storage/map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../../src/core/storage/map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAA0C,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGnG;;;;;GAKG;AACH,wBAAgB,MAAM,CACpB,KAAK,EAAE,eAAe,EACtB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,QAAQ,GAAE,iBAA+C,GACxD,MAAM,CAsCR;AAED,sFAAsF;AACtF,wBAAgB,WAAW,CACzB,KAAK,EAAE,eAAe,EACtB,QAAQ,GAAE,iBAA+C,GACxD,MAAM,GAAG,SAAS,CA0BpB;AASD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE;IACN,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,GACA,OAAO,CA8CT;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAUjE"}
|
package/dist/core/storage/map.js
CHANGED
|
@@ -1,22 +1,27 @@
|
|
|
1
|
+
import { DEFAULT_FIELD_TYPE_REGISTRY, fieldBase } from '../types/index.js';
|
|
1
2
|
import { FIELD_TYPES, ON_DELETE_ACTIONS } from '../types/values.js';
|
|
2
3
|
/**
|
|
3
|
-
* Map a field's declared type to a PostgreSQL column type.
|
|
4
|
+
* Map a field's declared type to a PostgreSQL column type. Dispatch is driven by
|
|
5
|
+
* the type's **base** primitive (resolved through the field-type registry), so a
|
|
6
|
+
* user/plugin registered type inherits its base's storage automatically.
|
|
4
7
|
* `targetPkType` is the mapped PK type of the target object (for `relation`).
|
|
5
8
|
*/
|
|
6
|
-
export function pgType(field, targetPkType) {
|
|
7
|
-
|
|
9
|
+
export function pgType(field, targetPkType, registry = DEFAULT_FIELD_TYPE_REGISTRY) {
|
|
10
|
+
const base = fieldBase(registry, field.type);
|
|
11
|
+
switch (base) {
|
|
8
12
|
case FIELD_TYPES.STRING:
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
case FIELD_TYPES.PHONE:
|
|
13
|
+
// media (image) base=string but a multi-value is an array column
|
|
14
|
+
if (field.type === FIELD_TYPES.IMAGE && field.multiple === true)
|
|
15
|
+
return 'TEXT[]';
|
|
13
16
|
return 'VARCHAR(255)';
|
|
14
17
|
case FIELD_TYPES.TEXT:
|
|
15
18
|
return 'TEXT';
|
|
16
19
|
case FIELD_TYPES.INTEGER:
|
|
17
20
|
return 'INTEGER';
|
|
18
21
|
case FIELD_TYPES.NUMBER:
|
|
19
|
-
return field.precision
|
|
22
|
+
return field.precision
|
|
23
|
+
? `NUMERIC(${field.precision})`
|
|
24
|
+
: 'NUMERIC';
|
|
20
25
|
case FIELD_TYPES.CURRENCY:
|
|
21
26
|
return 'NUMERIC(12,2)';
|
|
22
27
|
case FIELD_TYPES.BOOLEAN:
|
|
@@ -29,11 +34,7 @@ export function pgType(field, targetPkType) {
|
|
|
29
34
|
return 'JSONB';
|
|
30
35
|
case FIELD_TYPES.ENUM:
|
|
31
36
|
return field.multiple ? 'TEXT[]' : 'VARCHAR(255)';
|
|
32
|
-
case FIELD_TYPES.IMAGE:
|
|
33
|
-
return field.multiple ? 'TEXT[]' : 'VARCHAR(255)';
|
|
34
37
|
case FIELD_TYPES.RELATION:
|
|
35
|
-
case FIELD_TYPES.PERSON:
|
|
36
|
-
case FIELD_TYPES.DEPARTMENT:
|
|
37
38
|
return targetPkType ?? 'VARCHAR(255)';
|
|
38
39
|
case FIELD_TYPES.MULTI_RELATION:
|
|
39
40
|
return 'TEXT[]';
|
|
@@ -41,29 +42,29 @@ export function pgType(field, targetPkType) {
|
|
|
41
42
|
return 'VARCHAR(255)';
|
|
42
43
|
case FIELD_TYPES.DETAILS:
|
|
43
44
|
throw new Error('details fields do not create a column');
|
|
45
|
+
default:
|
|
46
|
+
throw new Error(`unknown field type "${field.type}"`);
|
|
44
47
|
}
|
|
45
48
|
}
|
|
46
49
|
/** SQL DEFAULT expression for a field's `default` value, or undefined (no default) */
|
|
47
|
-
export function defaultExpr(field) {
|
|
50
|
+
export function defaultExpr(field, registry = DEFAULT_FIELD_TYPE_REGISTRY) {
|
|
48
51
|
const raw = field;
|
|
49
52
|
if (raw.default === undefined)
|
|
50
53
|
return undefined;
|
|
51
|
-
|
|
54
|
+
const base = fieldBase(registry, field.type);
|
|
55
|
+
switch (base) {
|
|
52
56
|
case FIELD_TYPES.DATETIME:
|
|
53
57
|
case FIELD_TYPES.DATE:
|
|
54
58
|
return raw.default === 'now' ? 'now()' : `'${String(raw.default)}'`;
|
|
55
59
|
case FIELD_TYPES.ENUM:
|
|
56
60
|
// multi-value enum defaults are not expressed in DDL (application layer)
|
|
57
|
-
return
|
|
58
|
-
case FIELD_TYPES.IMAGE:
|
|
59
|
-
// multi-value image defaults are application layer too
|
|
60
|
-
return raw.multiple ? undefined : `'${String(raw.default)}'`;
|
|
61
|
+
return field.multiple ? undefined : `'${String(raw.default)}'`;
|
|
61
62
|
case FIELD_TYPES.STRING:
|
|
63
|
+
// multi-value image defaults are application layer too
|
|
64
|
+
if (field.type === FIELD_TYPES.IMAGE && field.multiple === true)
|
|
65
|
+
return undefined;
|
|
66
|
+
return `'${String(raw.default)}'`;
|
|
62
67
|
case FIELD_TYPES.TEXT:
|
|
63
|
-
case FIELD_TYPES.FIRST_NAME:
|
|
64
|
-
case FIELD_TYPES.LAST_NAME:
|
|
65
|
-
case FIELD_TYPES.EMAIL:
|
|
66
|
-
case FIELD_TYPES.PHONE:
|
|
67
68
|
return `'${String(raw.default)}'`;
|
|
68
69
|
case FIELD_TYPES.BOOLEAN:
|
|
69
70
|
return String(raw.default);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../../src/core/storage/map.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEpE
|
|
1
|
+
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../../src/core/storage/map.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,7 +62,7 @@ export async function migrate(registry, options = {}) {
|
|
|
62
62
|
// too (additive ALTER DDL only)
|
|
63
63
|
const expected = [...defs.values()]
|
|
64
64
|
.filter((d) => d.alter === true || actual.get(d.name) === undefined)
|
|
65
|
-
.map((d) => buildExpectedTable(d, defs));
|
|
65
|
+
.map((d) => buildExpectedTable(d, defs, registry.fieldTypes));
|
|
66
66
|
const statements = diffAll(expected, actual);
|
|
67
67
|
// existing tables are read-only unless the object opted in (`alter: true`):
|
|
68
68
|
// verify every declared field is a live column (prevents REST/MCP pointing
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../src/core/storage/migrate.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../src/core/storage/migrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type FieldTypeRegistry } from '../types/index.js';
|
|
1
2
|
import type { Locale } from '../i18n/index.js';
|
|
2
3
|
import type { ObjectDefinition } from '../types/index.js';
|
|
3
4
|
import type { ActualTable } from './inspect.js';
|
|
@@ -108,5 +109,5 @@ export interface MappingReport {
|
|
|
108
109
|
* against the live `actual` map. Tables absent from `actual` are reported with
|
|
109
110
|
* all columns `missing` (what `weave migrate` would CREATE).
|
|
110
111
|
*/
|
|
111
|
-
export declare function buildMappingReport(defs: readonly ObjectDefinition[], actual: ReadonlyMap<string, ActualTable>, locale?: Locale): MappingReport;
|
|
112
|
+
export declare function buildMappingReport(defs: readonly ObjectDefinition[], actual: ReadonlyMap<string, ActualTable>, locale?: Locale, registry?: FieldTypeRegistry): MappingReport;
|
|
112
113
|
//# sourceMappingURL=report.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/core/storage/report.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/core/storage/report.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAErG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAmB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG3E,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,cAAc,CAAC;AAG9D;;;;;;;GAOG;AAEH,qDAAqD;AACrD,MAAM,MAAM,mBAAmB,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;AAEnF,MAAM,WAAW,aAAa;IAC5B,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAC;IACd,2FAA2F;IAC3F,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,mFAAmF;IACnF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,6EAA6E;IAC7E,MAAM,CAAC,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,SAAS,EAAE,OAAO,CAAC;QACnB,aAAa,EAAE,OAAO,CAAC;KACxB,CAAC;IACF,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,GAAG,EAAE,SAAS,EAAE,CAAC;IACjB,6EAA6E;IAC7E,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,sEAAsE;IACtE,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,qEAAqE;IACrE,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,MAAM,EAAE,aAAa,CAAC;CACvB;AAqCD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,SAAS,gBAAgB,EAAE,EACjC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,EACxC,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,GAAE,iBAA+C,GACxD,aAAa,CAwJf"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FIELD_TYPES } from '../types/
|
|
1
|
+
import { DEFAULT_FIELD_TYPE_REGISTRY, FIELD_TYPES } from '../types/index.js';
|
|
2
2
|
import { resolveLabel } from '../object/display.js';
|
|
3
3
|
import { buildExpectedTable } from './diff.js';
|
|
4
4
|
import { pgTypeMatches } from './map.js';
|
|
@@ -42,11 +42,11 @@ function schemaTypeOf(field, fk) {
|
|
|
42
42
|
* against the live `actual` map. Tables absent from `actual` are reported with
|
|
43
43
|
* all columns `missing` (what `weave migrate` would CREATE).
|
|
44
44
|
*/
|
|
45
|
-
export function buildMappingReport(defs, actual, locale) {
|
|
45
|
+
export function buildMappingReport(defs, actual, locale, registry = DEFAULT_FIELD_TYPE_REGISTRY) {
|
|
46
46
|
const defsMap = new Map(defs.map((def) => [def.name, def]));
|
|
47
47
|
const tables = [];
|
|
48
48
|
for (const def of [...defs].sort((a, b) => a.name.localeCompare(b.name))) {
|
|
49
|
-
const expected = buildExpectedTable(def, defsMap);
|
|
49
|
+
const expected = buildExpectedTable(def, defsMap, registry);
|
|
50
50
|
const actualTable = actual.get(def.name);
|
|
51
51
|
const warnings = [];
|
|
52
52
|
const fieldByName = new Map(def.fields.map((field) => [field.name, field]));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../../src/core/storage/report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../../src/core/storage/report.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { FieldType } from './values.js';
|
|
2
|
+
/**
|
|
3
|
+
* Field-type registration contract (open registration).
|
|
4
|
+
*
|
|
5
|
+
* Built-in field types are expressed as registrations too; user/plugin types
|
|
6
|
+
* declare a `base` primitive and inherit all behaviour (storage / TS / MCP /
|
|
7
|
+
* OpenAPI / describe) from it. The engine resolves every field through an
|
|
8
|
+
* immutable {@link FieldTypeRegistry} built at load time (explicit injection —
|
|
9
|
+
* no mutable global).
|
|
10
|
+
*/
|
|
11
|
+
/** single source of truth for registered-type name shape (namespace segment required) */
|
|
12
|
+
export declare const FIELD_TYPE_NAME_PATTERN = "^[a-z][a-z0-9]*(_[a-z0-9]+)+$";
|
|
13
|
+
/** frontend hints carried by a registration (open string — never a widget) */
|
|
14
|
+
export interface FieldTypeUiHints {
|
|
15
|
+
visual?: string;
|
|
16
|
+
}
|
|
17
|
+
/** one field-type registration (built-in or user-defined) */
|
|
18
|
+
export interface FieldTypeRegistration {
|
|
19
|
+
/** the type name as it appears in `schema.json` (namespace already applied) */
|
|
20
|
+
name: string;
|
|
21
|
+
/** namespace the loader auto-prefixed onto `name` (user types only) */
|
|
22
|
+
namespace?: string;
|
|
23
|
+
/** the primitive this type inherits from; `undefined` = engine primitive/structural */
|
|
24
|
+
base?: FieldType;
|
|
25
|
+
/** scalar (can be a primary key). Defaults from `base`. */
|
|
26
|
+
scalar?: boolean;
|
|
27
|
+
/** relation-like (carries `target`). Defaults from `base`. */
|
|
28
|
+
relationLike?: boolean;
|
|
29
|
+
/** frontend hints (consumed by `@weave-kit/ui`) */
|
|
30
|
+
ui?: FieldTypeUiHints;
|
|
31
|
+
/** OpenAPI `format` keyword for string-based types (e.g. `email`, `uri`) */
|
|
32
|
+
openApiFormat?: string;
|
|
33
|
+
/** extra attributes accepted on a field of this type (beyond the base attributes) */
|
|
34
|
+
attrs?: readonly string[];
|
|
35
|
+
/**
|
|
36
|
+
* reverse hint for `weave introspect`: a live PostgreSQL column type that maps
|
|
37
|
+
* back to this registered type (e.g. `{ pgType: 'NUMERIC(12,2)' }`). Only valid
|
|
38
|
+
* on non-relation value bases. When several registrations match one column the
|
|
39
|
+
* primitive is kept and a warning is emitted (no ambiguity failure).
|
|
40
|
+
*/
|
|
41
|
+
reverse?: {
|
|
42
|
+
pgType: string;
|
|
43
|
+
precision?: number;
|
|
44
|
+
scale?: number;
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/** an immutable, resolved field-type lookup */
|
|
48
|
+
export type FieldTypeRegistry = ReadonlyMap<string, FieldTypeRegistration>;
|
|
49
|
+
//# sourceMappingURL=field-type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-type.d.ts","sourceRoot":"","sources":["../../../src/core/types/field-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;;;;;;;GAQG;AAEH,yFAAyF;AACzF,eAAO,MAAM,uBAAuB,kCAAkC,CAAC;AAEvE,8EAA8E;AAC9E,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,6DAA6D;AAC7D,MAAM,WAAW,qBAAqB;IACpC,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mDAAmD;IACnD,EAAE,CAAC,EAAE,gBAAgB,CAAC;IACtB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qFAAqF;IACrF,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B;;;;;OAKG;IACH,OAAO,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAClE;AAED,+CAA+C;AAC/C,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Field-type registration contract (open registration).
|
|
3
|
+
*
|
|
4
|
+
* Built-in field types are expressed as registrations too; user/plugin types
|
|
5
|
+
* declare a `base` primitive and inherit all behaviour (storage / TS / MCP /
|
|
6
|
+
* OpenAPI / describe) from it. The engine resolves every field through an
|
|
7
|
+
* immutable {@link FieldTypeRegistry} built at load time (explicit injection —
|
|
8
|
+
* no mutable global).
|
|
9
|
+
*/
|
|
10
|
+
/** single source of truth for registered-type name shape (namespace segment required) */
|
|
11
|
+
export const FIELD_TYPE_NAME_PATTERN = '^[a-z][a-z0-9]*(_[a-z0-9]+)+$';
|
|
12
|
+
//# sourceMappingURL=field-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-type.js","sourceRoot":"","sources":["../../../src/core/types/field-type.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,yFAAyF;AACzF,MAAM,CAAC,MAAM,uBAAuB,GAAG,+BAA+B,CAAC"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export type { ScalarFieldType, FieldType, OnDeleteAction, SequenceCycle } from './values.js';
|
|
1
|
+
import type { BuiltinFieldType, FIELD_TYPES, OnDeleteAction, SequenceCycle } from './values.js';
|
|
2
|
+
export type { ScalarFieldType, BuiltinFieldType, FieldType, OnDeleteAction, SequenceCycle } from './values.js';
|
|
3
3
|
export interface FieldBase {
|
|
4
4
|
name: string;
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* the declared type name. Built-in literals for engine types; a registered
|
|
7
|
+
* (namespaced) name is produced at validation and stored via a narrow cast —
|
|
8
|
+
* runtime behaviour is resolved through the `FieldTypeRegistry`.
|
|
9
|
+
*/
|
|
10
|
+
type: BuiltinFieldType;
|
|
6
11
|
/**
|
|
7
12
|
* display names keyed by locale, e.g. { en: 'Customer', zh: '客户' }. Resolve
|
|
8
13
|
* with `resolveLabel` (falls back to `name` when absent).
|
|
@@ -178,6 +183,20 @@ export interface DepartmentField extends FieldBase {
|
|
|
178
183
|
unique?: boolean;
|
|
179
184
|
onDelete?: OnDeleteAction;
|
|
180
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* a field whose `type` is a user/plugin registered type. Stored on
|
|
188
|
+
* `ObjectDefinition.fields` via a narrow cast (registered fields are not part of
|
|
189
|
+
* the `FieldDefinition` discriminated union, so built-in narrowing is preserved);
|
|
190
|
+
* behaviour is inherited from the registration's `base` primitive.
|
|
191
|
+
*/
|
|
192
|
+
export interface RegisteredField extends Omit<FieldBase, 'type'> {
|
|
193
|
+
type: string;
|
|
194
|
+
target?: string;
|
|
195
|
+
required?: boolean;
|
|
196
|
+
unique?: boolean;
|
|
197
|
+
multiple?: boolean;
|
|
198
|
+
[key: string]: unknown;
|
|
199
|
+
}
|
|
181
200
|
/** discriminated union of every field shape; each member is keyed by its literal `type` */
|
|
182
201
|
export type FieldDefinition = StringField | TextField | IntegerField | NumberField | CurrencyField | BooleanField | DateTimeField | DateField | JsonField | EnumField | RelationField | DetailsField | MultiRelationField | SeqNoField | FirstNameField | LastNameField | EmailField | PhoneField | ImageField | PersonField | DepartmentField;
|
|
183
202
|
//# sourceMappingURL=fields.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../src/core/types/fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../src/core/types/fields.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { ScalarFieldType, FieldType, OnDeleteAction } from './fields.js';
|
|
1
|
+
export type { ScalarFieldType, BuiltinFieldType, FieldType, OnDeleteAction } from './fields.js';
|
|
2
2
|
export type { FieldBase, StringField, TextField, IntegerField, NumberField, CurrencyField, BooleanField, DateTimeField, DateField, JsonField, EnumField, RelationField, DetailsField, MultiRelationField, SeqNoField, FieldDefinition, } from './fields.js';
|
|
3
3
|
export type { ReadScope, PermissionDefinition, Permissions } from './permission.js';
|
|
4
4
|
export type { BelongsToEdge, HasManyEdge, MultiRelationEdge, RelationEdge, } from './relation.js';
|
|
@@ -7,6 +7,7 @@ export type { IndexType, SequenceCycle, SequenceToken, DetailsColumn, RelationKi
|
|
|
7
7
|
export { DETAILS_COLUMNS, FIELD_TYPES, READ_SCOPES, RELATION_KINDS, ROW_SCOPE_MARKERS } from './values.js';
|
|
8
8
|
export { primaryFieldOf, primaryKeyOf } from './primaryField.js';
|
|
9
9
|
export { SchemaError } from './errors.js';
|
|
10
|
-
export { describeFieldType, fieldBase, fieldUiVisual, isRelationLike, isScalarFieldType, PRIMITIVE_FIELD_TYPES, SEMANTIC_FIELD_TYPES, } from './registry.js';
|
|
11
|
-
export type {
|
|
10
|
+
export { buildFieldTypeRegistry, DEFAULT_FIELD_TYPE_REGISTRY, describeFieldType, fieldBase, fieldOpenApiFormat, fieldUiVisual, isRelationLike, isScalarFieldType, PRIMITIVE_FIELD_TYPES, SEMANTIC_FIELD_TYPES, } from './registry.js';
|
|
11
|
+
export type { FieldTypeRegistration, FieldTypeRegistry, FieldTypeUiHints } from './field-type.js';
|
|
12
|
+
export { FIELD_TYPE_NAME_PATTERN } from './field-type.js';
|
|
12
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAChG,YAAY,EACV,SAAS,EACT,WAAW,EACX,SAAS,EACT,YAAY,EACZ,WAAW,EACX,aAAa,EACb,YAAY,EACZ,aAAa,EACb,SAAS,EACT,SAAS,EACT,SAAS,EACT,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,SAAS,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACpF,YAAY,EACV,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACrE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACxH,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/core/types/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { DETAILS_COLUMNS, FIELD_TYPES, READ_SCOPES, RELATION_KINDS, ROW_SCOPE_MARKERS } from './values.js';
|
|
2
2
|
export { primaryFieldOf, primaryKeyOf } from './primaryField.js';
|
|
3
3
|
export { SchemaError } from './errors.js';
|
|
4
|
-
export { describeFieldType, fieldBase, fieldUiVisual, isRelationLike, isScalarFieldType, PRIMITIVE_FIELD_TYPES, SEMANTIC_FIELD_TYPES, } from './registry.js';
|
|
4
|
+
export { buildFieldTypeRegistry, DEFAULT_FIELD_TYPE_REGISTRY, describeFieldType, fieldBase, fieldOpenApiFormat, fieldUiVisual, isRelationLike, isScalarFieldType, PRIMITIVE_FIELD_TYPES, SEMANTIC_FIELD_TYPES, } from './registry.js';
|
|
5
|
+
export { FIELD_TYPE_NAME_PATTERN } from './field-type.js';
|
|
5
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/types/index.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/types/index.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,iBAAiB,EACjB,SAAS,EACT,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -1,37 +1,25 @@
|
|
|
1
1
|
import { type FieldType } from './values.js';
|
|
2
|
+
import type { FieldTypeRegistration, FieldTypeRegistry } from './field-type.js';
|
|
3
|
+
/** the default registry: every engine built-in type (immutable by convention) */
|
|
4
|
+
export declare const DEFAULT_FIELD_TYPE_REGISTRY: FieldTypeRegistry;
|
|
2
5
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* `base` they fully inherit (storage/describe/gen-types/MCP behavior), plus a
|
|
7
|
-
* small `ui` hints block consumed by `@weave-kit/ui`. Schema-level gating lives
|
|
8
|
-
* in the config `features.fieldTypes` whitelist (see validate.ts), NOT here.
|
|
6
|
+
* Build an effective registry from the built-in types plus user registrations
|
|
7
|
+
* (pure; never mutates the default registry). Later definitions must not
|
|
8
|
+
* collide with an existing name — the loader validates this before calling.
|
|
9
9
|
*/
|
|
10
|
-
export
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
export
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
ui?: FieldTypeUiHints;
|
|
24
|
-
}
|
|
25
|
-
/** the base primitive a type inherits (walks one level). */
|
|
26
|
-
export declare function fieldBase(type: FieldType): FieldType;
|
|
27
|
-
/** true for a relation-like field (target-by-FK). */
|
|
28
|
-
export declare function isRelationLike(type: FieldType): boolean;
|
|
29
|
-
/** true for a field type that can be a primary key. */
|
|
30
|
-
export declare function isScalarFieldType(type: FieldType): boolean;
|
|
31
|
-
/** the frontend visual hint for a type (single source). */
|
|
32
|
-
export declare function fieldUiVisual(type: FieldType): FieldTypeUiHints['visual'];
|
|
33
|
-
/** a descriptor (or undefined for an unknown type). */
|
|
34
|
-
export declare function describeFieldType(type: FieldType): FieldTypeDescriptor | undefined;
|
|
10
|
+
export declare function buildFieldTypeRegistry(extra?: readonly FieldTypeRegistration[]): FieldTypeRegistry;
|
|
11
|
+
/** the base primitive a type inherits (walks one level; self for primitives) */
|
|
12
|
+
export declare function fieldBase(registry: FieldTypeRegistry, type: FieldType): FieldType;
|
|
13
|
+
/** true for a relation-like field (target-by-FK) */
|
|
14
|
+
export declare function isRelationLike(registry: FieldTypeRegistry, type: FieldType): boolean;
|
|
15
|
+
/** true for a field type that can be a primary key */
|
|
16
|
+
export declare function isScalarFieldType(registry: FieldTypeRegistry, type: FieldType): boolean;
|
|
17
|
+
/** the frontend visual hint for a type (single source) */
|
|
18
|
+
export declare function fieldUiVisual(registry: FieldTypeRegistry, type: FieldType): string;
|
|
19
|
+
/** the OpenAPI `format` hint for a type, if any */
|
|
20
|
+
export declare function fieldOpenApiFormat(registry: FieldTypeRegistry, type: FieldType): string | undefined;
|
|
21
|
+
/** a descriptor (or undefined for an unknown type) */
|
|
22
|
+
export declare function describeFieldType(registry: FieldTypeRegistry, type: FieldType): FieldTypeRegistration | undefined;
|
|
35
23
|
/** engine primitives — always allowed by the default whitelist. */
|
|
36
24
|
export declare const PRIMITIVE_FIELD_TYPES: readonly FieldType[];
|
|
37
25
|
/** semantic types that are gated by the config `features.fieldTypes` whitelist. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/core/types/registry.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/core/types/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AA6ChF,iFAAiF;AACjF,eAAO,MAAM,2BAA2B,EAAE,iBAA4B,CAAC;AAEvE;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,GAAE,SAAS,qBAAqB,EAAO,GAAG,iBAAiB,CAKtG;AAED,gFAAgF;AAChF,wBAAgB,SAAS,CAAC,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,GAAG,SAAS,CAEjF;AAED,oDAAoD;AACpD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAIpF;AAED,sDAAsD;AACtD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAIvF;AAED,0DAA0D;AAC1D,wBAAgB,aAAa,CAAC,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAElF;AAED,mDAAmD;AACnD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAEnG;AAED,sDAAsD;AACtD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,GAAG,qBAAqB,GAAG,SAAS,CAEjH;AAED,mEAAmE;AACnE,eAAO,MAAM,qBAAqB,EAAE,SAAS,SAAS,EAerD,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,oBAAoB,EAAE,SAAS,SAAS,EAQpD,CAAC"}
|
|
@@ -1,4 +1,15 @@
|
|
|
1
|
-
import { FIELD_TYPES
|
|
1
|
+
import { FIELD_TYPES } from './values.js';
|
|
2
|
+
/**
|
|
3
|
+
* Field-type registry — the single source for the engine's field-type
|
|
4
|
+
* descriptors. Primitive types (scalar + relation + sequence) carry `base:
|
|
5
|
+
* undefined`; semantic types (string subtypes, media, identity FKs) carry a
|
|
6
|
+
* `base` they fully inherit (storage/describe/gen-types/MCP behaviour), plus a
|
|
7
|
+
* small `ui` hints block consumed by `@weave-kit/ui`. Schema-level gating lives
|
|
8
|
+
* in the config `features.fieldTypes` whitelist (see validate.ts), NOT here.
|
|
9
|
+
*
|
|
10
|
+
* The same registration shape carries user/plugin types (`buildFieldTypeRegistry`),
|
|
11
|
+
* so built-ins and extensions resolve through one mechanism.
|
|
12
|
+
*/
|
|
2
13
|
const registry = new Map();
|
|
3
14
|
function define(descriptor) {
|
|
4
15
|
registry.set(descriptor.name, descriptor);
|
|
@@ -18,34 +29,57 @@ define({ name: FIELD_TYPES.RELATION, relationLike: true });
|
|
|
18
29
|
define({ name: FIELD_TYPES.DETAILS, relationLike: true });
|
|
19
30
|
define({ name: FIELD_TYPES.MULTI_RELATION, relationLike: true });
|
|
20
31
|
define({ name: FIELD_TYPES.SEQ_NO });
|
|
21
|
-
// ---- semantic types (base delegation + ui hints) ----
|
|
32
|
+
// ---- semantic types (base delegation + ui hints + format hints) ----
|
|
22
33
|
define({ name: FIELD_TYPES.FIRST_NAME, base: FIELD_TYPES.STRING, scalar: true, ui: { visual: 'none' } });
|
|
23
34
|
define({ name: FIELD_TYPES.LAST_NAME, base: FIELD_TYPES.STRING, scalar: true, ui: { visual: 'none' } });
|
|
24
|
-
define({ name: FIELD_TYPES.EMAIL, base: FIELD_TYPES.STRING, scalar: true, ui: { visual: 'none' } });
|
|
35
|
+
define({ name: FIELD_TYPES.EMAIL, base: FIELD_TYPES.STRING, scalar: true, ui: { visual: 'none' }, openApiFormat: 'email' });
|
|
25
36
|
define({ name: FIELD_TYPES.PHONE, base: FIELD_TYPES.STRING, scalar: true, ui: { visual: 'none' } });
|
|
26
|
-
define({ name: FIELD_TYPES.IMAGE, base: FIELD_TYPES.STRING, scalar: true, ui: { visual: 'image' } });
|
|
37
|
+
define({ name: FIELD_TYPES.IMAGE, base: FIELD_TYPES.STRING, scalar: true, ui: { visual: 'image' }, openApiFormat: 'uri' });
|
|
27
38
|
define({ name: FIELD_TYPES.PERSON, base: FIELD_TYPES.RELATION, relationLike: true, ui: { visual: 'avatar' } });
|
|
28
39
|
define({ name: FIELD_TYPES.DEPARTMENT, base: FIELD_TYPES.RELATION, relationLike: true, ui: { visual: 'icon' } });
|
|
29
|
-
/** the
|
|
30
|
-
export
|
|
31
|
-
|
|
32
|
-
|
|
40
|
+
/** the default registry: every engine built-in type (immutable by convention) */
|
|
41
|
+
export const DEFAULT_FIELD_TYPE_REGISTRY = registry;
|
|
42
|
+
/**
|
|
43
|
+
* Build an effective registry from the built-in types plus user registrations
|
|
44
|
+
* (pure; never mutates the default registry). Later definitions must not
|
|
45
|
+
* collide with an existing name — the loader validates this before calling.
|
|
46
|
+
*/
|
|
47
|
+
export function buildFieldTypeRegistry(extra = []) {
|
|
48
|
+
if (extra.length === 0)
|
|
49
|
+
return registry;
|
|
50
|
+
const merged = new Map(registry);
|
|
51
|
+
for (const descriptor of extra)
|
|
52
|
+
merged.set(descriptor.name, descriptor);
|
|
53
|
+
return merged;
|
|
33
54
|
}
|
|
34
|
-
/**
|
|
35
|
-
export function
|
|
36
|
-
return registry.get(type)?.
|
|
55
|
+
/** the base primitive a type inherits (walks one level; self for primitives) */
|
|
56
|
+
export function fieldBase(registry, type) {
|
|
57
|
+
return registry.get(type)?.base ?? type;
|
|
37
58
|
}
|
|
38
|
-
/** true for a field
|
|
39
|
-
export function
|
|
40
|
-
const
|
|
41
|
-
|
|
59
|
+
/** true for a relation-like field (target-by-FK) */
|
|
60
|
+
export function isRelationLike(registry, type) {
|
|
61
|
+
const desc = registry.get(type);
|
|
62
|
+
if (desc?.relationLike !== undefined)
|
|
63
|
+
return desc.relationLike;
|
|
64
|
+
return registry.get(fieldBase(registry, type))?.relationLike === true;
|
|
42
65
|
}
|
|
43
|
-
/**
|
|
44
|
-
export function
|
|
66
|
+
/** true for a field type that can be a primary key */
|
|
67
|
+
export function isScalarFieldType(registry, type) {
|
|
68
|
+
const desc = registry.get(type);
|
|
69
|
+
if (desc?.scalar !== undefined)
|
|
70
|
+
return desc.scalar;
|
|
71
|
+
return registry.get(fieldBase(registry, type))?.scalar === true;
|
|
72
|
+
}
|
|
73
|
+
/** the frontend visual hint for a type (single source) */
|
|
74
|
+
export function fieldUiVisual(registry, type) {
|
|
45
75
|
return registry.get(type)?.ui?.visual ?? 'none';
|
|
46
76
|
}
|
|
47
|
-
/**
|
|
48
|
-
export function
|
|
77
|
+
/** the OpenAPI `format` hint for a type, if any */
|
|
78
|
+
export function fieldOpenApiFormat(registry, type) {
|
|
79
|
+
return registry.get(type)?.openApiFormat;
|
|
80
|
+
}
|
|
81
|
+
/** a descriptor (or undefined for an unknown type) */
|
|
82
|
+
export function describeFieldType(registry, type) {
|
|
49
83
|
return registry.get(type);
|
|
50
84
|
}
|
|
51
85
|
/** engine primitives — always allowed by the default whitelist. */
|