@metaobjectsdev/codegen-ts 0.11.5-rc.1 → 0.11.6-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.
@@ -44,6 +44,19 @@ export interface ResolvedTarget {
44
44
  importBase: string | undefined;
45
45
  outputLayout: OutputLayout;
46
46
  dbImport: string;
47
+ /**
48
+ * Whether this target emits server runtime bindings. `true` (the default for
49
+ * the implicit "default" target) = a full server package: Drizzle tables/views,
50
+ * `runtime-ts` filter/sort allowlists, the whole DB layer. `false` = a
51
+ * contract-only target: Zod schemas + inferred TS types ONLY, with no
52
+ * `drizzle-orm` / `runtime-ts` import — for a shared wire-contract package
53
+ * consumed by a UI/web client that has no database. The axis is the target's
54
+ * AUDIENCE (server vs client), not any one artifact: in a contract target an
55
+ * entity drops its `pgTable`, a projection drops its `pgView`, every object
56
+ * renders as its plain shape. Allowlists are off here too (contract ⇒ no
57
+ * `runtime-ts`); the finer `allowlists` knob only applies within a runtime target.
58
+ */
59
+ runtime: boolean;
47
60
  }
48
61
  /** Specifier to import entity `entityName` (in `entityPkg`, produced into
49
62
  * `entityTarget`) from a file emitted into `selfTarget`. Same target → relative
@@ -1 +1 @@
1
- {"version":3,"file":"import-path.d.ts","sourceRoot":"","sources":["../src/import-path.ts"],"names":[],"mappings":"AAOA,OAAO,EAAW,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC;AAE9C,gDAAgD;AAChD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAG7D;AAED,uEAAuE;AACvE,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,QAAQ,EAAE,MAAM,GACf,MAAM,CAIR;AAWD;oCACoC;AACpC,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,GACjB,MAAM,CAIR;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAClD,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,QAAQ,GACjB,MAAM,CAGR;AAED;4FAC4F;AAC5F,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,GACjB,MAAM,CAER;AAED;;;;oBAIoB;AACpB,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,UAAU,EAAE,MAAM,GACjB,MAAM,CASR;AAED;sCACsC;AACtC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf;mEAC+D;IAC/D,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAmBD;;yEAEyE;AACzE,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,cAAc,EAC1B,YAAY,EAAE,cAAc,EAC5B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,QAAQ,GACjB,MAAM,CAKR;AAED;8CAC8C;AAC9C,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,cAAc,EAC1B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,GACjB,MAAM,CAER;AAED;;sCAEsC;AACtC,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,cAAc,EAC1B,YAAY,EAAE,cAAc,EAC5B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,QAAQ,GACjB,MAAM,CAKR"}
1
+ {"version":3,"file":"import-path.d.ts","sourceRoot":"","sources":["../src/import-path.ts"],"names":[],"mappings":"AAOA,OAAO,EAAW,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC;AAE9C,gDAAgD;AAChD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAG7D;AAED,uEAAuE;AACvE,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,QAAQ,EAAE,MAAM,GACf,MAAM,CAIR;AAWD;oCACoC;AACpC,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,GACjB,MAAM,CAIR;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAClD,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,QAAQ,GACjB,MAAM,CAGR;AAED;4FAC4F;AAC5F,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,GACjB,MAAM,CAER;AAED;;;;oBAIoB;AACpB,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,UAAU,EAAE,MAAM,GACjB,MAAM,CASR;AAED;sCACsC;AACtC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf;mEAC+D;IAC/D,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;;OAWG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAmBD;;yEAEyE;AACzE,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,cAAc,EAC1B,YAAY,EAAE,cAAc,EAC5B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,QAAQ,GACjB,MAAM,CAKR;AAED;8CAC8C;AAC9C,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,cAAc,EAC1B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,GACjB,MAAM,CAER;AAED;;sCAEsC;AACtC,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,cAAc,EAC1B,YAAY,EAAE,cAAc,EAC5B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,QAAQ,GACjB,MAAM,CAKR"}
@@ -1 +1 @@
1
- {"version":3,"file":"import-path.js","sourceRoot":"","sources":["../src/import-path.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"import-path.js","sourceRoot":"","sources":["../src/import-path.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,14 @@ export interface TargetConfig {
27
27
  importBase?: string;
28
28
  outputLayout?: OutputLayout;
29
29
  dbImport?: string;
30
+ /**
31
+ * Whether this target emits server runtime bindings. Defaults to `true` (a full
32
+ * server package: Drizzle tables/views + the DB layer). Set `false` for a
33
+ * contract-only target — Zod schemas + inferred TS types only, no `drizzle-orm`
34
+ * / `runtime-ts` import — e.g. a shared wire-contract package consumed by a web
35
+ * client with no database. See {@link ResolvedTarget.runtime}.
36
+ */
37
+ runtime?: boolean;
30
38
  }
31
39
  /** Subset of MetaobjectsGenConfig surfaced to generators via GenContext. */
32
40
  export interface ResolvedGenConfig {
@@ -1 +1 @@
1
- {"version":3,"file":"metaobjects-config.d.ts","sourceRoot":"","sources":["../src/metaobjects-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metaobjects-config.d.ts","sourceRoot":"","sources":["../src/metaobjects-config.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,8 @@ export function resolveTargets(config) {
30
30
  importBase: config.importBase,
31
31
  outputLayout: layout,
32
32
  dbImport: config.dbImport,
33
+ // The default target is the server package — runtime bindings on.
34
+ runtime: true,
33
35
  },
34
36
  };
35
37
  for (const [name, t] of Object.entries(config.targets ?? {})) {
@@ -39,6 +41,7 @@ export function resolveTargets(config) {
39
41
  importBase: t.importBase,
40
42
  outputLayout: t.outputLayout ?? layout,
41
43
  dbImport: t.dbImport ?? config.dbImport,
44
+ runtime: t.runtime ?? true,
42
45
  };
43
46
  }
44
47
  return out;
@@ -1 +1 @@
1
- {"version":3,"file":"metaobjects-config.js","sourceRoot":"","sources":["../src/metaobjects-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metaobjects-config.js","sourceRoot":"","sources":["../src/metaobjects-config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"render-context.d.ts","sourceRoot":"","sources":["../src/render-context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGrE;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC;AAErC,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,QAAQ,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,QAAQ,EAAE,QAAQ,CAAC;IACnB,gGAAgG;IAChG,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C;;;;;OAKG;IACH,aAAa,EAAE,MAAM,GAAG,QAAQ,CAAC;IACjC,8FAA8F;IAC9F,SAAS,EAAE,MAAM,CAAC;IAClB,oMAAoM;IACpM,kBAAkB,EAAE,OAAO,CAAC;IAC5B,sHAAsH;IACtH,YAAY,EAAE,YAAY,CAAC;IAC3B;;;;;OAKG;IACH,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C,qFAAqF;IACrF,UAAU,EAAE,cAAc,CAAC;IAC3B,oEAAoE;IACpE,kBAAkB,EAAE,cAAc,CAAC;IACnC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,iEAAiE;IACjE,WAAW,EAAE,WAAW,CAAC;IACzB,uGAAuG;IACvG,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC3C;;4DAEwD;IACxD,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,qWAAqW;AACrW,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,UAAU,GAAG,sBAAsB,GAAG,eAAe,GAAG,WAAW,GAAG,oBAAoB,GAAG,cAAc,GAAG,WAAW,GAAG,YAAY,GAAG,oBAAoB,GAAG,gBAAgB,CAAC,GAAG;IACtP,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC5C,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,kBAAkB,CAAC,EAAE,cAAc,CAAC;IACpC,sEAAsE;IACtE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iFAAiF;IACjF,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClD,CAAC;AAEF,0EAA0E;AAC1E,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,MAAM,CAE7D;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,GAAG,aAAa,CA2BzE"}
1
+ {"version":3,"file":"render-context.d.ts","sourceRoot":"","sources":["../src/render-context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGrE;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC;AAErC,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,QAAQ,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,QAAQ,EAAE,QAAQ,CAAC;IACnB,gGAAgG;IAChG,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C;;;;;OAKG;IACH,aAAa,EAAE,MAAM,GAAG,QAAQ,CAAC;IACjC,8FAA8F;IAC9F,SAAS,EAAE,MAAM,CAAC;IAClB,oMAAoM;IACpM,kBAAkB,EAAE,OAAO,CAAC;IAC5B,sHAAsH;IACtH,YAAY,EAAE,YAAY,CAAC;IAC3B;;;;;OAKG;IACH,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C,qFAAqF;IACrF,UAAU,EAAE,cAAc,CAAC;IAC3B,oEAAoE;IACpE,kBAAkB,EAAE,cAAc,CAAC;IACnC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,iEAAiE;IACjE,WAAW,EAAE,WAAW,CAAC;IACzB,uGAAuG;IACvG,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC3C;;4DAEwD;IACxD,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,qWAAqW;AACrW,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,UAAU,GAAG,sBAAsB,GAAG,eAAe,GAAG,WAAW,GAAG,oBAAoB,GAAG,cAAc,GAAG,WAAW,GAAG,YAAY,GAAG,oBAAoB,GAAG,gBAAgB,CAAC,GAAG;IACtP,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC5C,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,kBAAkB,CAAC,EAAE,cAAc,CAAC;IACpC,sEAAsE;IACtE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iFAAiF;IACjF,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClD,CAAC;AAEF,0EAA0E;AAC1E,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,MAAM,CAE7D;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,GAAG,aAAa,CA4BzE"}
@@ -13,6 +13,7 @@ export function makeRenderContext(opts) {
13
13
  importBase: undefined,
14
14
  outputLayout,
15
15
  dbImport: opts.dbImport,
16
+ runtime: true,
16
17
  };
17
18
  const collectionNameOpts = {
18
19
  pluralize: opts.pluralizeCollections ?? true,
@@ -1 +1 @@
1
- {"version":3,"file":"render-context.js","sourceRoot":"","sources":["../src/render-context.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAQhE,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAqFrD,0EAA0E;AAC1E,MAAM,UAAU,OAAO,CAAC,IAAY,EAAE,KAAe;IACnD,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,iBAAiB,CAAC,IAAwB;IACxD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC;IACjD,MAAM,aAAa,GAAmB,IAAI,CAAC,UAAU,IAAI;QACvD,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,UAAU,EAAE,SAAS;QACrB,YAAY;QACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC;IACF,MAAM,kBAAkB,GAAG;QACzB,SAAS,EAAE,IAAI,CAAC,oBAAoB,IAAI,IAAI;QAC5C,SAAS,EAAE,IAAI,CAAC,uBAAuB,IAAI,EAAE;KAC9C,CAAC;IACF,OAAO;QACL,GAAG,IAAI;QACP,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,MAAM;QACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,UAAU;QACrC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,IAAI,YAAY;QAC/D,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,QAAQ;QAC7C,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;QAC/B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,IAAI,IAAI;QACnD,YAAY;QACZ,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,GAAG,EAAE;QACtC,UAAU,EAAE,aAAa;QACzB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,IAAI,aAAa;QAC5D,cAAc,EAAE,CAAC,UAAkB,EAAE,EAAE,CAAC,sBAAsB,CAAC,UAAU,EAAE,kBAAkB,CAAC;KAC/F,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"render-context.js","sourceRoot":"","sources":["../src/render-context.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAQhE,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAqFrD,0EAA0E;AAC1E,MAAM,UAAU,OAAO,CAAC,IAAY,EAAE,KAAe;IACnD,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,iBAAiB,CAAC,IAAwB;IACxD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC;IACjD,MAAM,aAAa,GAAmB,IAAI,CAAC,UAAU,IAAI;QACvD,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,UAAU,EAAE,SAAS;QACrB,YAAY;QACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO,EAAE,IAAI;KACd,CAAC;IACF,MAAM,kBAAkB,GAAG;QACzB,SAAS,EAAE,IAAI,CAAC,oBAAoB,IAAI,IAAI;QAC5C,SAAS,EAAE,IAAI,CAAC,uBAAuB,IAAI,EAAE;KAC9C,CAAC;IACF,OAAO;QACL,GAAG,IAAI;QACP,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,MAAM;QACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,UAAU;QACrC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,IAAI,YAAY;QAC/D,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,QAAQ;QAC7C,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;QAC/B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,IAAI,IAAI;QACnD,YAAY;QACZ,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,GAAG,EAAE;QACtC,UAAU,EAAE,aAAa;QACzB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,IAAI,aAAa;QAC5D,cAAc,EAAE,CAAC,UAAkB,EAAE,EAAE,CAAC,sBAAsB,CAAC,UAAU,EAAE,kBAAkB,CAAC;KAC/F,CAAC;AACJ,CAAC"}
@@ -10,6 +10,13 @@ import type { RenderContext } from "../render-context.js";
10
10
  * drop `@metaobjectsdev/runtime-ts` from their deps entirely. The client-side
11
11
  * `<Entity>Filter` type is always emitted — consumers still want it for typed
12
12
  * client calls regardless of how the server is wired.
13
+ *
14
+ * Whether the file emits ANY server runtime binding at all (Drizzle table/view,
15
+ * the allowlists) is governed by the TARGET, not this option: `ctx.selfTarget.runtime`.
16
+ * A contract-only target (`runtime: false`) renders every object as its plain
17
+ * shape (interface + Zod) and every projection as its read schema — no
18
+ * `drizzle-orm`, no `runtime-ts`. `allowlists` is a finer Fastify-vs-Hono opt-out
19
+ * that only matters within a runtime target.
13
20
  */
14
21
  export interface RenderEntityFileOpts {
15
22
  readonly allowlists?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"entity-file.d.ts","sourceRoot":"","sources":["../../src/templates/entity-file.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAe1D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,aAAa,EAClB,IAAI,CAAC,EAAE,oBAAoB,GAC1B,MAAM,CAiER"}
1
+ {"version":3,"file":"entity-file.d.ts","sourceRoot":"","sources":["../../src/templates/entity-file.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAe1D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,aAAa,EAClB,IAAI,CAAC,EAAE,oBAAoB,GAC1B,MAAM,CA0ER"}
@@ -20,7 +20,10 @@ import { hasWritableRdbSource } from "../source-detect.js";
20
20
  import { renderValueObjectFile } from "./value-object-file.js";
21
21
  import { isAbstract } from "../instance-artifacts.js";
22
22
  export function renderEntityFile(entity, ctx, opts) {
23
- const allowlists = opts?.allowlists ?? true;
23
+ // Contract-only target no server runtime: no Drizzle pgView/pgTable, no
24
+ // runtime-ts allowlists. The read schema + inferred types still emit.
25
+ const runtime = ctx.selfTarget.runtime;
26
+ const allowlists = runtime ? (opts?.allowlists ?? true) : false;
24
27
  // --- Abstract path (shape only) ---
25
28
  // An abstract entity contributes shape via inheritance only — it must NEVER
26
29
  // produce a Drizzle table / migration footprint / filter allowlist, even when
@@ -40,13 +43,19 @@ export function renderEntityFile(entity, ctx, opts) {
40
43
  columnNamingStrategy: ctx.columnNamingStrategy,
41
44
  dialect: ctx.dialect,
42
45
  apiPrefix: ctx.apiPrefix,
46
+ timestampMode: ctx.timestampMode,
47
+ allowlists,
48
+ ctx,
49
+ // Contract target drops the Drizzle .existing() view decl + drizzle-orm import.
50
+ includeViewDecl: runtime,
43
51
  });
44
52
  }
45
- // --- Value-only path (no writable source.rdb: in-memory / transit shape) ---
46
- // No Drizzle table, no migration footprint. Consumers that need to validate
47
- // the shape (LLM tool_use input_schema, REST body parsing) use the Zod
48
- // schema; consumers that need the type use the interface.
49
- if (!hasWritableRdbSource(entity)) {
53
+ // --- Value-only / contract path (no Drizzle table) ---
54
+ // Reached when the entity has no writable source.rdb (in-memory / transit
55
+ // shape) OR the target is contract-only (a UI/wire package gets the read shape,
56
+ // not a DB table). Either way: interface + Zod, no migration footprint, no
57
+ // drizzle-orm. Consumers validate via the Zod schema and type via the interface.
58
+ if (!runtime || !hasWritableRdbSource(entity)) {
50
59
  return renderValueObjectFile(entity, ctx.apiPrefix, ctx);
51
60
  }
52
61
  // --- Vanilla / write-through entity path ---
@@ -1 +1 @@
1
- {"version":3,"file":"entity-file.js","sourceRoot":"","sources":["../../src/templates/entity-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity-file.js","sourceRoot":"","sources":["../../src/templates/entity-file.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,31 @@
1
1
  import { MetaObject, type MetaRoot } from "@metaobjectsdev/metadata";
2
2
  import type { ColumnNamingStrategy } from "../metaobjects-config.js";
3
+ import type { RenderContext } from "../render-context.js";
3
4
  export interface ProjectionDeclOpts {
4
5
  readonly columnNamingStrategy: ColumnNamingStrategy;
5
6
  readonly dialect: "postgres" | "sqlite";
6
7
  readonly apiPrefix?: string;
8
+ /** Drives the timestamp column TS type (Date vs string) in the view declaration. */
9
+ readonly timestampMode?: "date" | "string";
10
+ /**
11
+ * When false, omit the Fastify-flavored filter/sort allowlists (and their
12
+ * `runtime-ts` import) — mirrors entity-file's `allowlists` option so a
13
+ * dependency-free consumer (no runtime-ts) gets compilable output.
14
+ */
15
+ readonly allowlists?: boolean;
16
+ /**
17
+ * Render context, when available — used to resolve value-object import MODULES
18
+ * (`.$type<VO>()` + the VO Zod schema) in a layout/package/extStyle-aware way.
19
+ * Absent in bare unit-test calls, which fall back to a flat same-dir import.
20
+ */
21
+ readonly ctx?: RenderContext;
22
+ /**
23
+ * Whether to emit the Drizzle `.existing()` view declaration (and its
24
+ * drizzle-orm import). Default true. Set false for a contract-only output
25
+ * (Zod read schema + inferred type + constants, no runtime DB dependency) —
26
+ * e.g. a shared types package consumed by a web client that has no Drizzle.
27
+ */
28
+ readonly includeViewDecl?: boolean;
7
29
  }
8
30
  /**
9
31
  * Render a TypeScript module for a projection entity. Emits:
@@ -1 +1 @@
1
- {"version":3,"file":"projection-decl.d.ts","sourceRoot":"","sources":["../../src/templates/projection-decl.ts"],"names":[],"mappings":"AAUA,OAAO,EAAa,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAIhF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AASrE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IACpD,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,QAAQ,CAAC;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAsBD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,kBAAkB,GACvB,MAAM,CAoFR"}
1
+ {"version":3,"file":"projection-decl.d.ts","sourceRoot":"","sources":["../../src/templates/projection-decl.ts"],"names":[],"mappings":"AAUA,OAAO,EACM,UAAU,EAAE,KAAK,QAAQ,EAErC,MAAM,0BAA0B,CAAC;AAIlC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAW1D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IACpD,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,QAAQ,CAAC;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,oFAAoF;IACpF,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3C;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;CACpC;AAsBD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,kBAAkB,GACvB,MAAM,CA0IR"}
@@ -7,10 +7,12 @@
7
7
  // - Zod Insert/Update schemas
8
8
  // - Insert/Update types
9
9
  import { code, imp, joinCode } from "ts-poet";
10
- import { MetaField, MetaObject } from "@metaobjectsdev/metadata";
10
+ import { MetaField, MetaObject, FIELD_SUBTYPE_OBJECT, FIELD_ATTR_OBJECT_REF, stripPackage, } from "@metaobjectsdev/metadata";
11
11
  import { projectionViewName } from "../projection/extract-view-spec.js";
12
12
  import { columnNameFromField, toSnakeCase, pluralize } from "../naming.js";
13
13
  import { GENERATED_HEADER } from "../constants.js";
14
+ import { mapColumnType } from "../column-mapper.js";
15
+ import { valueObjectModuleSpecifier } from "../import-path.js";
14
16
  import { renderFilterAllowlist, renderSortAllowlist } from "./filter-allowlist.js";
15
17
  import { renderFilterType } from "./filter-type.js";
16
18
  import { inferViewKind, zodTypeFor, currencyMetaFor, labelFor } from "./field-meta.js";
@@ -44,7 +46,19 @@ function pathFromProjectionName(name) {
44
46
  * @param opts Column naming strategy + dialect.
45
47
  */
46
48
  export function renderProjectionDecl(projection, root, opts) {
47
- const { dialect, columnNamingStrategy, apiPrefix = "" } = opts;
49
+ const { dialect, columnNamingStrategy, apiPrefix = "", timestampMode = "string", allowlists = true, ctx, includeViewDecl = true } = opts;
50
+ // Resolve a value-object name → its import module. Layout/package/extStyle-aware
51
+ // when a render context is present (so the projection's VO imports match the
52
+ // entity's), else a flat same-dir import — identical to zodFieldExpr's fallback.
53
+ const voModule = (refBase) => ctx
54
+ ? valueObjectModuleSpecifier(refBase, ctx.packageOf, projection.package, ctx.outputLayout, ctx.extStyle)
55
+ : `./${refBase}.js`;
56
+ const objectRefOf = (f) => {
57
+ if (f.subType !== FIELD_SUBTYPE_OBJECT)
58
+ return undefined;
59
+ const ref = f.attr(FIELD_ATTR_OBJECT_REF);
60
+ return typeof ref === "string" && ref.length > 0 ? stripPackage(ref) : undefined;
61
+ };
48
62
  const viewFn = dialect === "postgres" ? "pgView" : "sqliteView";
49
63
  const viewModule = dialect === "postgres" ? "drizzle-orm/pg-core" : "drizzle-orm/sqlite-core";
50
64
  const viewSym = imp(`${viewFn}@${viewModule}`);
@@ -69,7 +83,43 @@ export function renderProjectionDecl(projection, root, opts) {
69
83
  }
70
84
  for (const f of projection.ownFields())
71
85
  allFields.push(f);
72
- const zodLines = allFields.map((f) => code ` ${f.name}: ${z}.${zodTypeFor(f).replace(/^z\./, "")}`);
86
+ // A field.object passthrough carries the value-object's Zod schema (so the
87
+ // view's read schema + inferred type expose the VO shape, not z.unknown()).
88
+ const zodLines = allFields.map((f) => {
89
+ const refBase = objectRefOf(f);
90
+ if (refBase) {
91
+ const schemaSym = imp(`${refBase}InsertSchema@${voModule(refBase)}`);
92
+ return f.isArray
93
+ ? code ` ${f.name}: ${z}.array(${schemaSym})`
94
+ : code ` ${f.name}: ${schemaSym}`;
95
+ }
96
+ return code ` ${f.name}: ${z}.${zodTypeFor(f).replace(/^z\./, "")}`;
97
+ });
98
+ // Typed view column map for the Drizzle `.existing()` declaration — keyed by
99
+ // projection field name, valued by the column builder for the (renamed)
100
+ // physical view column, so `db.select().from(<view>)` is typed. Honors
101
+ // `@dbColumnType` (e.g. a passthrough of a jsonb column). `.existing()` views
102
+ // carry type + physical name only — no PK/default/notNull modifiers.
103
+ const viewColumnLines = allFields.map((f) => {
104
+ const spec = mapColumnType(f, dialect, columnNamingStrategy, timestampMode);
105
+ const colSym = imp(`${spec.fnName}@${spec.importModule}`);
106
+ const optsArg = spec.fnOptions && Object.keys(spec.fnOptions).length > 0
107
+ ? `, ${JSON.stringify(spec.fnOptions)}`
108
+ : "";
109
+ // Of the table modifiers, only `.notNull()` carries to an existing view (it
110
+ // shapes the SELECT type); `.primaryKey()`/`.default()`/`.references()` are
111
+ // table-DDL concerns and invalid on a `.existing()` view declaration.
112
+ const notNull = spec.modifiers.includes(".notNull()") ? ".notNull()" : "";
113
+ // Narrow a jsonb passthrough to its value-object type — `.$type<VO>()` —
114
+ // mirroring the entity column, so the read row is typed (not `unknown`).
115
+ let dollarType = "";
116
+ const dtr = spec.dollarTypeRef;
117
+ if (dtr?.kind === "objectRef") {
118
+ const voTypeSym = imp(`${dtr.name}@${voModule(dtr.name)}`);
119
+ dollarType = dtr.array ? code `.$type<${voTypeSym}[]>()` : code `.$type<${voTypeSym}>()`;
120
+ }
121
+ return code ` ${f.name}: ${colSym}(${JSON.stringify(spec.dbName)}${optsArg})${dollarType}${notNull}`;
122
+ });
73
123
  const constFieldLines = allFields.map((f) => {
74
124
  const dbCol = columnNameFromField(f.name, columnNamingStrategy);
75
125
  const view = inferViewKind(f);
@@ -85,12 +135,16 @@ export function renderProjectionDecl(projection, root, opts) {
85
135
  const camelName = projName.charAt(0).toLowerCase() + projName.slice(1);
86
136
  const path = pathFromProjectionName(projName);
87
137
  const sections = [
88
- code `
138
+ ...(includeViewDecl
139
+ ? [code `
89
140
  // View declaration — Drizzle uses this for typed SELECT queries.
90
141
  // The SQL view is created/managed by migrate-ts; .existing() tells Drizzle
91
142
  // not to attempt DDL for this declaration.
92
- export const ${camelName}View = ${viewSym}(${JSON.stringify(viewName)}, {}).existing();
93
- `,
143
+ export const ${camelName}View = ${viewSym}(${JSON.stringify(viewName)}, {
144
+ ${joinCode(viewColumnLines, { on: ",\n" })}
145
+ }).existing();
146
+ `]
147
+ : []),
94
148
  code `
95
149
  export const ${projName}Schema = ${z}.object({
96
150
  ${joinCode(zodLines, { on: ",\n" })}
@@ -108,8 +162,9 @@ export const ${projName} = {
108
162
  ${constFieldLines.join("\n")}
109
163
  } as const;
110
164
  `,
111
- renderFilterAllowlist(projection),
112
- renderSortAllowlist(projection),
165
+ ...(allowlists
166
+ ? [renderFilterAllowlist(projection), renderSortAllowlist(projection)]
167
+ : []),
113
168
  renderFilterType(projection),
114
169
  ];
115
170
  const body = joinCode(sections, { on: "\n" }).toString();
@@ -1 +1 @@
1
- {"version":3,"file":"projection-decl.js","sourceRoot":"","sources":["../../src/templates/projection-decl.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,qEAAqE;AACrE,EAAE;AACF,uDAAuD;AACvD,oBAAoB;AACpB,4CAA4C;AAC5C,gCAAgC;AAChC,0BAA0B;AAE1B,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAa,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAiB,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAYvF,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;;;;;GAMG;AACH,SAAS,sBAAsB,CAAC,IAAY;IAC1C,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC9D,OAAO,IAAI,KAAK,EAAE,CAAC;AACrB,CAAC;AAED,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAAsB,EACtB,IAAc,EACd,IAAwB;IAExB,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC;IAE/D,MAAM,MAAM,GAAG,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC;IAChE,MAAM,UAAU,GACd,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,yBAAyB,CAAC;IAC7E,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,MAAM,IAAI,UAAU,EAAE,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IAEvB,oEAAoE;IACpE,2EAA2E;IAC3E,+EAA+E;IAC/E,8EAA8E;IAC9E,yEAAyE;IACzE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;IAEtE,iFAAiF;IACjF,MAAM,SAAS,GAAgB,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC;IAC5C,MAAM,SAAS,GAAG,UAAU,EAAE,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC;IAC1D,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,OAAO,GACX,UAAU,YAAY,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC7E,IAAI,OAAO,EAAE,CAAC;YACZ,8FAA8F;YAC9F,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE;gBAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,SAAS,EAAE;QAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE1D,MAAM,QAAQ,GAAW,SAAS,CAAC,GAAG,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAA,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CACpE,CAAC;IAEF,MAAM,eAAe,GAAa,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACpD,MAAM,KAAK,GAAG,mBAAmB,CAAC,CAAC,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,SAAS,GAAG,SAAS,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACrJ,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC,CAAC,IAAI,OAAO,SAAS,eAAe,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC;QAC9I,CAAC;QACD,OAAO,KAAK,CAAC,CAAC,IAAI,OAAO,SAAS,KAAK,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;IACjC,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAE9C,MAAM,QAAQ,GAAW;QACvB,IAAI,CAAA;;;;eAIO,SAAS,UAAU,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;CACpE;QACG,IAAI,CAAA;eACO,QAAQ,YAAY,CAAC;EAClC,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;;CAElC;QACG,IAAI,CAAA;cACM,QAAQ,MAAM,CAAC,iBAAiB,QAAQ;CACrD;QACG,IAAI,CAAA;eACO,QAAQ;gBACP,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;gBACxB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;gBACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBACpB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;EACvC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;;CAE3B;QACG,qBAAqB,CAAC,UAAU,CAAC;QACjC,mBAAmB,CAAC,UAAU,CAAC;QAC/B,gBAAgB,CAAC,UAAU,CAAC;KAC7B,CAAC;IAEF,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IACzD,MAAM,MAAM,GACV,MAAM,gBAAgB,mBAAmB;QACzC,uBAAuB,QAAQ,KAAK,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;IAC5D,OAAO,MAAM,GAAG,IAAI,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"projection-decl.js","sourceRoot":"","sources":["../../src/templates/projection-decl.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metaobjectsdev/codegen-ts",
3
- "version": "0.11.5-rc.1",
3
+ "version": "0.11.6-rc.1",
4
4
  "description": "TypeScript codegen engine for MetaObjects — emits Drizzle, Zod, and Fastify artifacts.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -111,8 +111,8 @@
111
111
  "access": "public"
112
112
  },
113
113
  "dependencies": {
114
- "@metaobjectsdev/metadata": "0.11.5-rc.1",
115
- "@metaobjectsdev/render": "0.11.5-rc.1",
114
+ "@metaobjectsdev/metadata": "0.11.6-rc.1",
115
+ "@metaobjectsdev/render": "0.11.6-rc.1",
116
116
  "@biomejs/js-api": "^0.7.0",
117
117
  "@biomejs/wasm-nodejs": "^1.9.4",
118
118
  "ts-poet": "^6.10.0"
@@ -123,9 +123,9 @@
123
123
  },
124
124
  "devDependencies": {
125
125
  "@biomejs/biome": "^1.9.0",
126
- "@metaobjectsdev/codegen-ts-react": "0.11.5-rc.1",
127
- "@metaobjectsdev/migrate-ts": "0.11.5-rc.1",
128
- "@metaobjectsdev/runtime-ts": "0.11.5-rc.1",
126
+ "@metaobjectsdev/codegen-ts-react": "0.11.6-rc.1",
127
+ "@metaobjectsdev/migrate-ts": "0.11.6-rc.1",
128
+ "@metaobjectsdev/runtime-ts": "0.11.6-rc.1",
129
129
  "bun-types": "latest",
130
130
  "drizzle-orm": "^0.36.0",
131
131
  "hono": "^4.6.0",
@@ -118,6 +118,19 @@ export interface ResolvedTarget {
118
118
  importBase: string | undefined;
119
119
  outputLayout: OutputLayout;
120
120
  dbImport: string;
121
+ /**
122
+ * Whether this target emits server runtime bindings. `true` (the default for
123
+ * the implicit "default" target) = a full server package: Drizzle tables/views,
124
+ * `runtime-ts` filter/sort allowlists, the whole DB layer. `false` = a
125
+ * contract-only target: Zod schemas + inferred TS types ONLY, with no
126
+ * `drizzle-orm` / `runtime-ts` import — for a shared wire-contract package
127
+ * consumed by a UI/web client that has no database. The axis is the target's
128
+ * AUDIENCE (server vs client), not any one artifact: in a contract target an
129
+ * entity drops its `pgTable`, a projection drops its `pgView`, every object
130
+ * renders as its plain shape. Allowlists are off here too (contract ⇒ no
131
+ * `runtime-ts`); the finer `allowlists` knob only applies within a runtime target.
132
+ */
133
+ runtime: boolean;
121
134
  }
122
135
 
123
136
  /** importBase + (package path when package layout) + entity, extension-less. */
@@ -32,6 +32,14 @@ export interface TargetConfig {
32
32
  importBase?: string;
33
33
  outputLayout?: OutputLayout;
34
34
  dbImport?: string;
35
+ /**
36
+ * Whether this target emits server runtime bindings. Defaults to `true` (a full
37
+ * server package: Drizzle tables/views + the DB layer). Set `false` for a
38
+ * contract-only target — Zod schemas + inferred TS types only, no `drizzle-orm`
39
+ * / `runtime-ts` import — e.g. a shared wire-contract package consumed by a web
40
+ * client with no database. See {@link ResolvedTarget.runtime}.
41
+ */
42
+ runtime?: boolean;
35
43
  }
36
44
 
37
45
  /** Subset of MetaobjectsGenConfig surfaced to generators via GenContext. */
@@ -195,6 +203,8 @@ export function resolveTargets(config: MetaobjectsGenConfig): Record<string, Res
195
203
  importBase: config.importBase,
196
204
  outputLayout: layout,
197
205
  dbImport: config.dbImport,
206
+ // The default target is the server package — runtime bindings on.
207
+ runtime: true,
198
208
  },
199
209
  };
200
210
  for (const [name, t] of Object.entries(config.targets ?? {})) {
@@ -204,6 +214,7 @@ export function resolveTargets(config: MetaobjectsGenConfig): Record<string, Res
204
214
  importBase: t.importBase,
205
215
  outputLayout: t.outputLayout ?? layout,
206
216
  dbImport: t.dbImport ?? config.dbImport,
217
+ runtime: t.runtime ?? true,
207
218
  };
208
219
  }
209
220
  return out;
@@ -105,6 +105,7 @@ export function makeRenderContext(opts: RenderContextInput): RenderContext {
105
105
  importBase: undefined,
106
106
  outputLayout,
107
107
  dbImport: opts.dbImport,
108
+ runtime: true,
108
109
  };
109
110
  const collectionNameOpts = {
110
111
  pluralize: opts.pluralizeCollections ?? true,
@@ -33,6 +33,13 @@ import { isAbstract } from "../instance-artifacts.js";
33
33
  * drop `@metaobjectsdev/runtime-ts` from their deps entirely. The client-side
34
34
  * `<Entity>Filter` type is always emitted — consumers still want it for typed
35
35
  * client calls regardless of how the server is wired.
36
+ *
37
+ * Whether the file emits ANY server runtime binding at all (Drizzle table/view,
38
+ * the allowlists) is governed by the TARGET, not this option: `ctx.selfTarget.runtime`.
39
+ * A contract-only target (`runtime: false`) renders every object as its plain
40
+ * shape (interface + Zod) and every projection as its read schema — no
41
+ * `drizzle-orm`, no `runtime-ts`. `allowlists` is a finer Fastify-vs-Hono opt-out
42
+ * that only matters within a runtime target.
36
43
  */
37
44
  export interface RenderEntityFileOpts {
38
45
  readonly allowlists?: boolean;
@@ -43,7 +50,10 @@ export function renderEntityFile(
43
50
  ctx: RenderContext,
44
51
  opts?: RenderEntityFileOpts,
45
52
  ): string {
46
- const allowlists = opts?.allowlists ?? true;
53
+ // Contract-only target no server runtime: no Drizzle pgView/pgTable, no
54
+ // runtime-ts allowlists. The read schema + inferred types still emit.
55
+ const runtime = ctx.selfTarget.runtime;
56
+ const allowlists = runtime ? (opts?.allowlists ?? true) : false;
47
57
 
48
58
  // --- Abstract path (shape only) ---
49
59
  // An abstract entity contributes shape via inheritance only — it must NEVER
@@ -65,14 +75,20 @@ export function renderEntityFile(
65
75
  columnNamingStrategy: ctx.columnNamingStrategy,
66
76
  dialect: ctx.dialect,
67
77
  apiPrefix: ctx.apiPrefix,
78
+ timestampMode: ctx.timestampMode,
79
+ allowlists,
80
+ ctx,
81
+ // Contract target drops the Drizzle .existing() view decl + drizzle-orm import.
82
+ includeViewDecl: runtime,
68
83
  });
69
84
  }
70
85
 
71
- // --- Value-only path (no writable source.rdb: in-memory / transit shape) ---
72
- // No Drizzle table, no migration footprint. Consumers that need to validate
73
- // the shape (LLM tool_use input_schema, REST body parsing) use the Zod
74
- // schema; consumers that need the type use the interface.
75
- if (!hasWritableRdbSource(entity)) {
86
+ // --- Value-only / contract path (no Drizzle table) ---
87
+ // Reached when the entity has no writable source.rdb (in-memory / transit
88
+ // shape) OR the target is contract-only (a UI/wire package gets the read shape,
89
+ // not a DB table). Either way: interface + Zod, no migration footprint, no
90
+ // drizzle-orm. Consumers validate via the Zod schema and type via the interface.
91
+ if (!runtime || !hasWritableRdbSource(entity)) {
76
92
  return renderValueObjectFile(entity, ctx.apiPrefix, ctx);
77
93
  }
78
94
 
@@ -8,11 +8,17 @@
8
8
  // - Insert/Update types
9
9
 
10
10
  import { code, imp, joinCode, type Code } from "ts-poet";
11
- import { MetaField, MetaObject, type MetaRoot } from "@metaobjectsdev/metadata";
11
+ import {
12
+ MetaField, MetaObject, type MetaRoot,
13
+ FIELD_SUBTYPE_OBJECT, FIELD_ATTR_OBJECT_REF, stripPackage,
14
+ } from "@metaobjectsdev/metadata";
12
15
  import { projectionViewName } from "../projection/extract-view-spec.js";
13
16
  import { columnNameFromField, toSnakeCase, pluralize } from "../naming.js";
14
17
  import { GENERATED_HEADER } from "../constants.js";
15
18
  import type { ColumnNamingStrategy } from "../metaobjects-config.js";
19
+ import type { RenderContext } from "../render-context.js";
20
+ import { mapColumnType } from "../column-mapper.js";
21
+ import { valueObjectModuleSpecifier } from "../import-path.js";
16
22
  import { renderFilterAllowlist, renderSortAllowlist } from "./filter-allowlist.js";
17
23
  import { renderFilterType } from "./filter-type.js";
18
24
  import { inferViewKind, zodTypeFor, currencyMetaFor, labelFor } from "./field-meta.js";
@@ -25,6 +31,27 @@ export interface ProjectionDeclOpts {
25
31
  readonly columnNamingStrategy: ColumnNamingStrategy;
26
32
  readonly dialect: "postgres" | "sqlite";
27
33
  readonly apiPrefix?: string;
34
+ /** Drives the timestamp column TS type (Date vs string) in the view declaration. */
35
+ readonly timestampMode?: "date" | "string";
36
+ /**
37
+ * When false, omit the Fastify-flavored filter/sort allowlists (and their
38
+ * `runtime-ts` import) — mirrors entity-file's `allowlists` option so a
39
+ * dependency-free consumer (no runtime-ts) gets compilable output.
40
+ */
41
+ readonly allowlists?: boolean;
42
+ /**
43
+ * Render context, when available — used to resolve value-object import MODULES
44
+ * (`.$type<VO>()` + the VO Zod schema) in a layout/package/extStyle-aware way.
45
+ * Absent in bare unit-test calls, which fall back to a flat same-dir import.
46
+ */
47
+ readonly ctx?: RenderContext;
48
+ /**
49
+ * Whether to emit the Drizzle `.existing()` view declaration (and its
50
+ * drizzle-orm import). Default true. Set false for a contract-only output
51
+ * (Zod read schema + inferred type + constants, no runtime DB dependency) —
52
+ * e.g. a shared types package consumed by a web client that has no Drizzle.
53
+ */
54
+ readonly includeViewDecl?: boolean;
28
55
  }
29
56
 
30
57
  // ---------------------------------------------------------------------------
@@ -64,7 +91,20 @@ export function renderProjectionDecl(
64
91
  root: MetaRoot,
65
92
  opts: ProjectionDeclOpts,
66
93
  ): string {
67
- const { dialect, columnNamingStrategy, apiPrefix = "" } = opts;
94
+ const { dialect, columnNamingStrategy, apiPrefix = "", timestampMode = "string", allowlists = true, ctx, includeViewDecl = true } = opts;
95
+
96
+ // Resolve a value-object name → its import module. Layout/package/extStyle-aware
97
+ // when a render context is present (so the projection's VO imports match the
98
+ // entity's), else a flat same-dir import — identical to zodFieldExpr's fallback.
99
+ const voModule = (refBase: string): string =>
100
+ ctx
101
+ ? valueObjectModuleSpecifier(refBase, ctx.packageOf, projection.package, ctx.outputLayout, ctx.extStyle)
102
+ : `./${refBase}.js`;
103
+ const objectRefOf = (f: MetaField): string | undefined => {
104
+ if (f.subType !== FIELD_SUBTYPE_OBJECT) return undefined;
105
+ const ref = f.attr(FIELD_ATTR_OBJECT_REF);
106
+ return typeof ref === "string" && ref.length > 0 ? stripPackage(ref) : undefined;
107
+ };
68
108
 
69
109
  const viewFn = dialect === "postgres" ? "pgView" : "sqliteView";
70
110
  const viewModule =
@@ -93,9 +133,45 @@ export function renderProjectionDecl(
93
133
  }
94
134
  for (const f of projection.ownFields()) allFields.push(f);
95
135
 
96
- const zodLines: Code[] = allFields.map(
97
- (f) => code` ${f.name}: ${z}.${zodTypeFor(f).replace(/^z\./, "")}`,
98
- );
136
+ // A field.object passthrough carries the value-object's Zod schema (so the
137
+ // view's read schema + inferred type expose the VO shape, not z.unknown()).
138
+ const zodLines: Code[] = allFields.map((f) => {
139
+ const refBase = objectRefOf(f);
140
+ if (refBase) {
141
+ const schemaSym = imp(`${refBase}InsertSchema@${voModule(refBase)}`);
142
+ return f.isArray
143
+ ? code` ${f.name}: ${z}.array(${schemaSym})`
144
+ : code` ${f.name}: ${schemaSym}`;
145
+ }
146
+ return code` ${f.name}: ${z}.${zodTypeFor(f).replace(/^z\./, "")}`;
147
+ });
148
+
149
+ // Typed view column map for the Drizzle `.existing()` declaration — keyed by
150
+ // projection field name, valued by the column builder for the (renamed)
151
+ // physical view column, so `db.select().from(<view>)` is typed. Honors
152
+ // `@dbColumnType` (e.g. a passthrough of a jsonb column). `.existing()` views
153
+ // carry type + physical name only — no PK/default/notNull modifiers.
154
+ const viewColumnLines: Code[] = allFields.map((f) => {
155
+ const spec = mapColumnType(f, dialect, columnNamingStrategy, timestampMode);
156
+ const colSym = imp(`${spec.fnName}@${spec.importModule}`);
157
+ const optsArg =
158
+ spec.fnOptions && Object.keys(spec.fnOptions).length > 0
159
+ ? `, ${JSON.stringify(spec.fnOptions)}`
160
+ : "";
161
+ // Of the table modifiers, only `.notNull()` carries to an existing view (it
162
+ // shapes the SELECT type); `.primaryKey()`/`.default()`/`.references()` are
163
+ // table-DDL concerns and invalid on a `.existing()` view declaration.
164
+ const notNull = spec.modifiers.includes(".notNull()") ? ".notNull()" : "";
165
+ // Narrow a jsonb passthrough to its value-object type — `.$type<VO>()` —
166
+ // mirroring the entity column, so the read row is typed (not `unknown`).
167
+ let dollarType: Code | string = "";
168
+ const dtr = spec.dollarTypeRef;
169
+ if (dtr?.kind === "objectRef") {
170
+ const voTypeSym = imp(`${dtr.name}@${voModule(dtr.name)}`);
171
+ dollarType = dtr.array ? code`.$type<${voTypeSym}[]>()` : code`.$type<${voTypeSym}>()`;
172
+ }
173
+ return code` ${f.name}: ${colSym}(${JSON.stringify(spec.dbName)}${optsArg})${dollarType}${notNull}`;
174
+ });
99
175
 
100
176
  const constFieldLines: string[] = allFields.map((f) => {
101
177
  const dbCol = columnNameFromField(f.name, columnNamingStrategy);
@@ -114,12 +190,16 @@ export function renderProjectionDecl(
114
190
  const path = pathFromProjectionName(projName);
115
191
 
116
192
  const sections: Code[] = [
117
- code`
193
+ ...(includeViewDecl
194
+ ? [code`
118
195
  // View declaration — Drizzle uses this for typed SELECT queries.
119
196
  // The SQL view is created/managed by migrate-ts; .existing() tells Drizzle
120
197
  // not to attempt DDL for this declaration.
121
- export const ${camelName}View = ${viewSym}(${JSON.stringify(viewName)}, {}).existing();
122
- `,
198
+ export const ${camelName}View = ${viewSym}(${JSON.stringify(viewName)}, {
199
+ ${joinCode(viewColumnLines, { on: ",\n" })}
200
+ }).existing();
201
+ `]
202
+ : []),
123
203
  code`
124
204
  export const ${projName}Schema = ${z}.object({
125
205
  ${joinCode(zodLines, { on: ",\n" })}
@@ -137,8 +217,9 @@ export const ${projName} = {
137
217
  ${constFieldLines.join("\n")}
138
218
  } as const;
139
219
  `,
140
- renderFilterAllowlist(projection),
141
- renderSortAllowlist(projection),
220
+ ...(allowlists
221
+ ? [renderFilterAllowlist(projection), renderSortAllowlist(projection)]
222
+ : []),
142
223
  renderFilterType(projection),
143
224
  ];
144
225