neoorm 0.8.2 → 0.8.4

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 (147) hide show
  1. package/dist/bin/neoorm.js +22 -50
  2. package/dist/bin/neoorm.js.map +1 -1
  3. package/dist/codegen/column-ts.d.ts +41 -0
  4. package/dist/codegen/column-ts.d.ts.map +1 -0
  5. package/dist/codegen/column-ts.js +269 -0
  6. package/dist/codegen/column-ts.js.map +1 -0
  7. package/dist/codegen/emit-includes.d.ts.map +1 -1
  8. package/dist/codegen/emit-includes.js +13 -4
  9. package/dist/codegen/emit-includes.js.map +1 -1
  10. package/dist/codegen/emit-models.d.ts +2 -1
  11. package/dist/codegen/emit-models.d.ts.map +1 -1
  12. package/dist/codegen/emit-models.js +100 -38
  13. package/dist/codegen/emit-models.js.map +1 -1
  14. package/dist/codegen/emit-query-types.d.ts +3 -0
  15. package/dist/codegen/emit-query-types.d.ts.map +1 -0
  16. package/dist/codegen/emit-query-types.js +638 -0
  17. package/dist/codegen/emit-query-types.js.map +1 -0
  18. package/dist/codegen/generate.d.ts +2 -2
  19. package/dist/codegen/generate.d.ts.map +1 -1
  20. package/dist/codegen/generate.js +12 -32
  21. package/dist/codegen/generate.js.map +1 -1
  22. package/dist/dialect/mariadb.test.js +31 -6
  23. package/dist/dialect/mariadb.test.js.map +1 -1
  24. package/dist/dialect/mysql-family.d.ts +7 -0
  25. package/dist/dialect/mysql-family.d.ts.map +1 -1
  26. package/dist/dialect/mysql-family.js +25 -3
  27. package/dist/dialect/mysql-family.js.map +1 -1
  28. package/dist/dialect/mysql.test.js +37 -5
  29. package/dist/dialect/mysql.test.js.map +1 -1
  30. package/dist/dialect/postgres.d.ts.map +1 -1
  31. package/dist/dialect/postgres.js +1 -0
  32. package/dist/dialect/postgres.js.map +1 -1
  33. package/dist/dialect/sqlite.d.ts.map +1 -1
  34. package/dist/dialect/sqlite.js +2 -1
  35. package/dist/dialect/sqlite.js.map +1 -1
  36. package/dist/dialect/types.d.ts +2 -0
  37. package/dist/dialect/types.d.ts.map +1 -1
  38. package/dist/init/prompt.d.ts +21 -0
  39. package/dist/init/prompt.d.ts.map +1 -0
  40. package/dist/init/prompt.js +127 -0
  41. package/dist/init/prompt.js.map +1 -0
  42. package/dist/init/scaffold.d.ts +9 -0
  43. package/dist/init/scaffold.d.ts.map +1 -1
  44. package/dist/init/scaffold.js +22 -13
  45. package/dist/init/scaffold.js.map +1 -1
  46. package/dist/init/templates.d.ts +1 -0
  47. package/dist/init/templates.d.ts.map +1 -1
  48. package/dist/init/templates.js +1 -1
  49. package/dist/init/templates.js.map +1 -1
  50. package/dist/init/validate.d.ts +12 -0
  51. package/dist/init/validate.d.ts.map +1 -0
  52. package/dist/init/validate.js +51 -0
  53. package/dist/init/validate.js.map +1 -0
  54. package/dist/runtime/client.d.ts +13 -7
  55. package/dist/runtime/client.d.ts.map +1 -1
  56. package/dist/runtime/client.js +3 -1
  57. package/dist/runtime/client.js.map +1 -1
  58. package/dist/runtime/client.test.js +1 -0
  59. package/dist/runtime/client.test.js.map +1 -1
  60. package/dist/runtime/driver-sqlite.test.js +12 -0
  61. package/dist/runtime/driver-sqlite.test.js.map +1 -1
  62. package/dist/runtime/driver.d.ts.map +1 -1
  63. package/dist/runtime/driver.js +16 -8
  64. package/dist/runtime/driver.js.map +1 -1
  65. package/dist/runtime/executor.d.ts +1 -0
  66. package/dist/runtime/executor.d.ts.map +1 -1
  67. package/dist/runtime/executor.js +12 -5
  68. package/dist/runtime/executor.js.map +1 -1
  69. package/dist/runtime/mariadb-driver.d.ts.map +1 -1
  70. package/dist/runtime/mariadb-driver.js +50 -10
  71. package/dist/runtime/mariadb-driver.js.map +1 -1
  72. package/dist/runtime/mysql-driver.d.ts.map +1 -1
  73. package/dist/runtime/mysql-driver.js +8 -4
  74. package/dist/runtime/mysql-driver.js.map +1 -1
  75. package/dist/runtime/mysql-family-pool.test.js +178 -6
  76. package/dist/runtime/mysql-family-pool.test.js.map +1 -1
  77. package/dist/runtime/query/aggregate.d.ts.map +1 -1
  78. package/dist/runtime/query/aggregate.js +33 -2
  79. package/dist/runtime/query/aggregate.js.map +1 -1
  80. package/dist/runtime/query/compile-aggregate.d.ts +1 -0
  81. package/dist/runtime/query/compile-aggregate.d.ts.map +1 -1
  82. package/dist/runtime/query/compile-aggregate.js +12 -3
  83. package/dist/runtime/query/compile-aggregate.js.map +1 -1
  84. package/dist/runtime/query/compile-where.d.ts.map +1 -1
  85. package/dist/runtime/query/compile-where.js +6 -1
  86. package/dist/runtime/query/compile-where.js.map +1 -1
  87. package/dist/runtime/query/compile-write.d.ts +8 -2
  88. package/dist/runtime/query/compile-write.d.ts.map +1 -1
  89. package/dist/runtime/query/compile-write.js +100 -8
  90. package/dist/runtime/query/compile-write.js.map +1 -1
  91. package/dist/runtime/query/compile.d.ts +2 -2
  92. package/dist/runtime/query/compile.d.ts.map +1 -1
  93. package/dist/runtime/query/compile.js +2 -2
  94. package/dist/runtime/query/compile.js.map +1 -1
  95. package/dist/runtime/query/create.d.ts.map +1 -1
  96. package/dist/runtime/query/create.js +19 -6
  97. package/dist/runtime/query/create.js.map +1 -1
  98. package/dist/runtime/query/delete.d.ts.map +1 -1
  99. package/dist/runtime/query/delete.js +45 -3
  100. package/dist/runtime/query/delete.js.map +1 -1
  101. package/dist/runtime/query/find.d.ts.map +1 -1
  102. package/dist/runtime/query/find.js +43 -15
  103. package/dist/runtime/query/find.js.map +1 -1
  104. package/dist/runtime/query/map-row.d.ts.map +1 -1
  105. package/dist/runtime/query/map-row.js +11 -2
  106. package/dist/runtime/query/map-row.js.map +1 -1
  107. package/dist/runtime/query/mutation-returning.d.ts +3 -1
  108. package/dist/runtime/query/mutation-returning.d.ts.map +1 -1
  109. package/dist/runtime/query/mutation-returning.js +22 -0
  110. package/dist/runtime/query/mutation-returning.js.map +1 -1
  111. package/dist/runtime/query/relation-planner.d.ts +2 -0
  112. package/dist/runtime/query/relation-planner.d.ts.map +1 -1
  113. package/dist/runtime/query/relation-planner.js +8 -2
  114. package/dist/runtime/query/relation-planner.js.map +1 -1
  115. package/dist/runtime/query/relation-writes.d.ts.map +1 -1
  116. package/dist/runtime/query/relation-writes.js +7 -2
  117. package/dist/runtime/query/relation-writes.js.map +1 -1
  118. package/dist/runtime/query/strip.d.ts.map +1 -1
  119. package/dist/runtime/query/strip.js +23 -3
  120. package/dist/runtime/query/strip.js.map +1 -1
  121. package/dist/runtime/query/table-index.d.ts +4 -0
  122. package/dist/runtime/query/table-index.d.ts.map +1 -1
  123. package/dist/runtime/query/table-index.js +13 -1
  124. package/dist/runtime/query/table-index.js.map +1 -1
  125. package/dist/runtime/query/unique.d.ts +6 -0
  126. package/dist/runtime/query/unique.d.ts.map +1 -1
  127. package/dist/runtime/query/unique.js +40 -4
  128. package/dist/runtime/query/unique.js.map +1 -1
  129. package/dist/runtime/query/unique.test.js +15 -1
  130. package/dist/runtime/query/unique.test.js.map +1 -1
  131. package/dist/runtime/query/update.d.ts.map +1 -1
  132. package/dist/runtime/query/update.js +100 -29
  133. package/dist/runtime/query/update.js.map +1 -1
  134. package/dist/runtime/transaction.test.js +22 -1
  135. package/dist/runtime/transaction.test.js.map +1 -1
  136. package/dist/runtime/types.d.ts +6 -6
  137. package/dist/runtime/types.d.ts.map +1 -1
  138. package/dist/schema/relation-types.d.ts +5 -5
  139. package/dist/schema/relation-types.d.ts.map +1 -1
  140. package/dist/schema/types.d.ts +3 -3
  141. package/dist/schema/types.d.ts.map +1 -1
  142. package/docs/cli.md +6 -4
  143. package/docs/getting-started.md +2 -0
  144. package/docs/mariadb.md +10 -6
  145. package/docs/mysql.md +4 -2
  146. package/docs/queries.md +15 -1
  147. package/package.json +2 -1
@@ -1,7 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { writeFile } from "node:fs/promises";
3
3
  import { join, resolve } from "node:path";
4
- import { createInterface } from "node:readline/promises";
5
4
  import { Command } from "commander";
6
5
  import { Pool } from "pg";
7
6
  import packageJson from "../../package.json" with { type: "json" };
@@ -11,6 +10,7 @@ import { isMariadbProvider, isMysqlFamilyProvider, isMysqlProvider, isPostgresPr
11
10
  import { postgresDialect } from "../dialect/postgres.js";
12
11
  import { dialectForProvider } from "../dialect/resolve.js";
13
12
  import { sqliteDialect } from "../dialect/sqlite.js";
13
+ import { printInitComplete, resolveInitOptions } from "../init/prompt.js";
14
14
  import { formatInitNextSteps, runInit } from "../init/scaffold.js";
15
15
  import { introspectMysql, introspectPostgres, introspectSqlite, } from "../introspect/pull.js";
16
16
  import { acquireMigrateDevLock } from "../migrate/dev-lock.js";
@@ -210,33 +210,6 @@ function normalizeProvider(input) {
210
210
  return "mariadb";
211
211
  return null;
212
212
  }
213
- async function promptForProvider() {
214
- const rl = createInterface({
215
- input: process.stdin,
216
- output: process.stdout,
217
- });
218
- try {
219
- const answer = await rl.question("Database provider? (1) PostgreSQL (2) SQLite (3) MySQL (4) MariaDB [1]: ");
220
- const trimmed = answer.trim().toLowerCase();
221
- if (trimmed === "2" || trimmed === "sqlite")
222
- return "sqlite";
223
- if (trimmed === "3" || trimmed === "mysql")
224
- return "mysql";
225
- if (trimmed === "4" || trimmed === "mariadb")
226
- return "mariadb";
227
- if (trimmed === "" ||
228
- trimmed === "1" ||
229
- trimmed === "postgresql" ||
230
- trimmed === "postgres" ||
231
- trimmed === "pg")
232
- return "postgresql";
233
- console.log(`Unknown choice "${answer}", defaulting to PostgreSQL`);
234
- return "postgresql";
235
- }
236
- finally {
237
- rl.close();
238
- }
239
- }
240
213
  program
241
214
  .command("init")
242
215
  .description("Scaffold neoorm.config.ts, schema.ts, and .env.example (no codegen — run `neoorm migrate dev` after)")
@@ -245,8 +218,9 @@ program
245
218
  .option("--out <dir>", "Generated output directory", "./neoorm")
246
219
  .option("--provider <provider>", "Database provider (postgresql|postgres|sqlite|mysql|mariadb)")
247
220
  .option("--database-url <url>", "Database URL / file path")
248
- .action(async (options) => {
221
+ .action(async (options, command) => {
249
222
  const cwd = process.cwd();
223
+ const interactive = Boolean(process.stdin.isTTY && process.stdout.isTTY);
250
224
  try {
251
225
  let provider;
252
226
  if (options.provider) {
@@ -257,34 +231,32 @@ program
257
231
  }
258
232
  provider = normalized;
259
233
  }
260
- else if (process.stdin.isTTY && process.stdout.isTTY) {
261
- provider = await promptForProvider();
262
- }
263
- const result = await runInit({
234
+ const resolved = await resolveInitOptions({
264
235
  cwd,
265
- schemaPath: options.schema,
266
- outDir: options.out,
236
+ interactive,
267
237
  ...(options.force ? { force: true } : {}),
268
238
  ...(provider ? { provider } : {}),
269
239
  ...(options.databaseUrl
270
240
  ? { databaseUrl: options.databaseUrl }
271
241
  : {}),
242
+ ...(command.getOptionValueSource("schema") === "cli"
243
+ ? { schemaPath: options.schema }
244
+ : {}),
245
+ ...(command.getOptionValueSource("out") === "cli"
246
+ ? { outDir: options.out }
247
+ : {}),
272
248
  });
273
- if (result.written.length > 0) {
274
- console.log("Scaffolded:");
275
- for (const file of result.written) {
276
- console.log(` + ${file}`);
277
- }
278
- }
279
- if (result.skipped.length > 0) {
280
- console.log("Skipped (already exists):");
281
- for (const file of result.skipped) {
282
- console.log(` - ${file}`);
283
- }
284
- }
285
- for (const line of formatInitNextSteps(cwd, options.schema, options.out)) {
286
- console.log(line);
287
- }
249
+ const result = await runInit({
250
+ cwd,
251
+ schemaPath: resolved.schemaPath,
252
+ outDir: resolved.outDir,
253
+ provider: resolved.provider,
254
+ ...(resolved.force ? { force: true } : {}),
255
+ ...(resolved.databaseUrl
256
+ ? { databaseUrl: resolved.databaseUrl }
257
+ : {}),
258
+ });
259
+ printInitComplete(result, formatInitNextSteps(cwd, resolved.schemaPath, resolved.outDir), interactive);
288
260
  }
289
261
  catch (err) {
290
262
  console.error(err instanceof Error ? err.message : String(err));
@@ -1 +1 @@
1
- {"version":3,"file":"neoorm.js","sourceRoot":"","sources":["../../src/bin/neoorm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"neoorm.js","sourceRoot":"","sources":["../../src/bin/neoorm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { Manifest, ManifestColumn, ManifestTable } from "../dialect/types.js";
2
+ import type { ValidationType } from "./validation/types.js";
3
+ export type EnumAlias = {
4
+ name: string;
5
+ values: readonly string[];
6
+ array: boolean;
7
+ };
8
+ export type EnumRegistry = {
9
+ aliasForColumn: (accessor: string, tsName: string) => string | null;
10
+ declarations: string[];
11
+ byName: Map<string, EnumAlias>;
12
+ };
13
+ /** Map validator-neutral JSON/validation IR to a TypeScript type string. */
14
+ export declare function validationTypeToTs(type: ValidationType): string;
15
+ /** Collect hoisted `export type X = ...` enum aliases for enum/enumArray columns. */
16
+ export declare function buildEnumRegistry(manifest: Manifest): EnumRegistry;
17
+ /**
18
+ * Resolved TS type for a manifest column (the `resolvedType` printer).
19
+ * Uses the plugin `columnTsType`, hoisted enum aliases, and JSON validation
20
+ * generics — never the schema builder chain.
21
+ */
22
+ export declare function columnTsType(col: ManifestColumn, manifest: Manifest, enums?: EnumRegistry | null, tableAccessor?: string): string;
23
+ /** Non-nullable TS type for filter generic params (`StringFilter<PostStatus>`). */
24
+ export declare function columnNonNullTsType(col: ManifestColumn, manifest: Manifest, enums?: EnumRegistry | null, tableAccessor?: string): string;
25
+ /** SQL-name primary key mapped to TS names (empty when the table has no PK). */
26
+ export declare function pkTsNames(table: ManifestTable): string[];
27
+ /**
28
+ * Unique `where` candidates mirroring runtime `resolveUniqueConstraint`:
29
+ * PK group, single unique/primary columns, then unique btree indexes.
30
+ */
31
+ export declare function uniqueKeyCandidates(table: ManifestTable): string[][];
32
+ /** `timestamps()` / `.defaultNow()` / `.updatedAt()` — ORM-owned, not client-writable. */
33
+ export declare function isManagedTimestamp(col: ManifestColumn): boolean;
34
+ export declare function isJunctionTable(manifest: Manifest, accessor: string): boolean;
35
+ export declare function isJunctionPkColumn(col: ManifestColumn, table: ManifestTable, isJunction: boolean): boolean;
36
+ export declare function isOmittedOnCreate(col: ManifestColumn, table: ManifestTable, isJunction: boolean): boolean;
37
+ export declare function isOmittedOnUpdate(col: ManifestColumn, table: ManifestTable, isJunction: boolean): boolean;
38
+ export declare function isCreateRequired(col: ManifestColumn, table: ManifestTable, isJunction: boolean): boolean;
39
+ export declare function updateScalarTsType(col: ManifestColumn, manifest: Manifest, enums?: EnumRegistry | null, tableAccessor?: string): string;
40
+ export declare function columnByTsNameOrThrow(table: ManifestTable, tsName: string): ManifestColumn;
41
+ //# sourceMappingURL=column-ts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column-ts.d.ts","sourceRoot":"","sources":["../../src/codegen/column-ts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,QAAQ,EACR,cAAc,EACd,aAAa,EACb,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,KAAK,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IAC1B,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACpE,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAC/B,CAAC;AAEF,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAgD/D;AAgBD,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,CAmDlE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC3B,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,QAAQ,EAClB,KAAK,CAAC,EAAE,YAAY,GAAG,IAAI,EAC3B,aAAa,CAAC,EAAE,MAAM,GACpB,MAAM,CA+BR;AAED,mFAAmF;AACnF,wBAAgB,mBAAmB,CAClC,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,QAAQ,EAClB,KAAK,CAAC,EAAE,YAAY,GAAG,IAAI,EAC3B,aAAa,CAAC,EAAE,MAAM,GACpB,MAAM,CAOR;AAED,gFAAgF;AAChF,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE,CAQxD;AASD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE,EAAE,CA4CpE;AAED,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAE/D;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE7E;AAED,wBAAgB,kBAAkB,CACjC,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,OAAO,GACjB,OAAO,CAET;AAED,wBAAgB,iBAAiB,CAChC,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,OAAO,GACjB,OAAO,CAUT;AAED,wBAAgB,iBAAiB,CAChC,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,OAAO,GACjB,OAAO,CAKT;AAED,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,OAAO,GACjB,OAAO,CAgBT;AAED,wBAAgB,kBAAkB,CACjC,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,QAAQ,EAClB,KAAK,CAAC,EAAE,YAAY,GAAG,IAAI,EAC3B,aAAa,CAAC,EAAE,MAAM,GACpB,MAAM,CAaR;AAED,wBAAgB,qBAAqB,CACpC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,MAAM,GACZ,cAAc,CAQhB"}
@@ -0,0 +1,269 @@
1
+ import { findFkReferencedColumn } from "../dialect/fk.js";
2
+ import { getColumnTypeOrThrow } from "../plugins/registry.js";
3
+ import { modelTypeName, pascalCase } from "./manifest-relations.js";
4
+ /** Map validator-neutral JSON/validation IR to a TypeScript type string. */
5
+ export function validationTypeToTs(type) {
6
+ switch (type.kind) {
7
+ case "string":
8
+ return "string";
9
+ case "number":
10
+ return "number";
11
+ case "bigint":
12
+ return "bigint";
13
+ case "boolean":
14
+ return "boolean";
15
+ case "date":
16
+ return "Date";
17
+ case "enum": {
18
+ const union = type.values.map((v) => JSON.stringify(v)).join(" | ");
19
+ return union.length > 0 ? union : "string";
20
+ }
21
+ case "unknown":
22
+ return "unknown";
23
+ case "record": {
24
+ const value = validationTypeToTs(type.value);
25
+ return `Record<string, ${value}>`;
26
+ }
27
+ case "array":
28
+ return `${validationTypeToTs(type.element)}[]`;
29
+ case "object": {
30
+ if (type.fields.length === 0)
31
+ return "Record<string, unknown>";
32
+ const fields = type.fields
33
+ .map((f) => {
34
+ const optional = f.optional ? "?" : "";
35
+ const ts = validationTypeToTs(f.type);
36
+ return `${f.name}${optional}: ${ts}${f.nullable ? " | null" : ""};`;
37
+ })
38
+ .join(" ");
39
+ return `{ ${fields} }`;
40
+ }
41
+ case "union":
42
+ return type.variants.map((v) => validationTypeToTs(v)).join(" | ");
43
+ case "literal":
44
+ return JSON.stringify(type.value);
45
+ case "tuple":
46
+ return `[${type.elements.map((e) => validationTypeToTs(e)).join(", ")}]`;
47
+ case "instance":
48
+ return type.tsName;
49
+ default: {
50
+ const _exhaustive = type;
51
+ return _exhaustive;
52
+ }
53
+ }
54
+ }
55
+ function enumValuesOf(col) {
56
+ const values = col.typeOptions?.values;
57
+ if (!values || values.length === 0)
58
+ return null;
59
+ return values;
60
+ }
61
+ function enumAliasSeed(col, modelName) {
62
+ const explicit = col.typeOptions?.name;
63
+ if (explicit !== undefined && explicit.length > 0) {
64
+ return pascalCase(explicit);
65
+ }
66
+ return `${modelName}${pascalCase(col.tsName)}`;
67
+ }
68
+ /** Collect hoisted `export type X = ...` enum aliases for enum/enumArray columns. */
69
+ export function buildEnumRegistry(manifest) {
70
+ const byKey = new Map();
71
+ const byName = new Map();
72
+ const declarations = [];
73
+ const tables = Object.values(manifest.tables).sort((a, b) => a.accessor.localeCompare(b.accessor));
74
+ for (const table of tables) {
75
+ const modelName = modelTypeName(table.accessor);
76
+ for (const col of table.columns) {
77
+ if (col.kind !== "enum" && col.kind !== "enumArray")
78
+ continue;
79
+ const values = enumValuesOf(col);
80
+ if (!values)
81
+ continue;
82
+ const key = `${table.accessor}.${col.tsName}`;
83
+ let name = enumAliasSeed(col, modelName);
84
+ const existing = byName.get(name);
85
+ if (existing) {
86
+ if (existing.array === (col.kind === "enumArray") &&
87
+ JSON.stringify(existing.values) === JSON.stringify(values)) {
88
+ byKey.set(key, name);
89
+ continue;
90
+ }
91
+ let i = 2;
92
+ while (byName.has(`${name}${i}`))
93
+ i++;
94
+ name = `${name}${i}`;
95
+ }
96
+ const union = values.map((v) => JSON.stringify(v)).join(" | ");
97
+ const decl = col.kind === "enumArray"
98
+ ? `export type ${name} = (${union})[];`
99
+ : `export type ${name} = ${union};`;
100
+ byName.set(name, {
101
+ name,
102
+ values,
103
+ array: col.kind === "enumArray",
104
+ });
105
+ byKey.set(key, name);
106
+ declarations.push(decl);
107
+ }
108
+ }
109
+ declarations.sort();
110
+ return {
111
+ aliasForColumn: (accessor, tsName) => byKey.get(`${accessor}.${tsName}`) ?? null,
112
+ declarations,
113
+ byName,
114
+ };
115
+ }
116
+ /**
117
+ * Resolved TS type for a manifest column (the `resolvedType` printer).
118
+ * Uses the plugin `columnTsType`, hoisted enum aliases, and JSON validation
119
+ * generics — never the schema builder chain.
120
+ */
121
+ export function columnTsType(col, manifest, enums, tableAccessor) {
122
+ if (col.kind === "fk") {
123
+ const referenced = findFkReferencedColumn(col, manifest);
124
+ if (referenced && referenced.kind !== "fk") {
125
+ return columnTsType({ ...referenced, nullable: col.nullable }, manifest, enums, tableAccessor);
126
+ }
127
+ return col.nullable ? "string | null" : "string";
128
+ }
129
+ if ((col.kind === "json" || col.kind === "jsonb") &&
130
+ col.validation !== undefined) {
131
+ const base = validationTypeToTs(col.validation);
132
+ return col.nullable ? `${base} | null` : base;
133
+ }
134
+ if (enums &&
135
+ tableAccessor &&
136
+ (col.kind === "enum" || col.kind === "enumArray")) {
137
+ const alias = enums.aliasForColumn(tableAccessor, col.tsName);
138
+ if (alias) {
139
+ return col.nullable ? `${alias} | null` : alias;
140
+ }
141
+ }
142
+ return getColumnTypeOrThrow(col.kind).columnTsType(col);
143
+ }
144
+ /** Non-nullable TS type for filter generic params (`StringFilter<PostStatus>`). */
145
+ export function columnNonNullTsType(col, manifest, enums, tableAccessor) {
146
+ return columnTsType({ ...col, nullable: false }, manifest, enums, tableAccessor);
147
+ }
148
+ /** SQL-name primary key mapped to TS names (empty when the table has no PK). */
149
+ export function pkTsNames(table) {
150
+ const bySql = new Map(table.columns.map((c) => [c.sqlName, c.tsName]));
151
+ const names = [];
152
+ for (const sqlName of table.primaryKey) {
153
+ const tsName = bySql.get(sqlName);
154
+ if (tsName !== undefined)
155
+ names.push(tsName);
156
+ }
157
+ return names;
158
+ }
159
+ function columnByTsName(table, tsName) {
160
+ return table.columns.find((c) => c.tsName === tsName);
161
+ }
162
+ /**
163
+ * Unique `where` candidates mirroring runtime `resolveUniqueConstraint`:
164
+ * PK group, single unique/primary columns, then unique btree indexes.
165
+ */
166
+ export function uniqueKeyCandidates(table) {
167
+ const candidates = [];
168
+ const pk = pkTsNames(table);
169
+ if (pk.length > 0)
170
+ candidates.push(pk);
171
+ for (const col of table.columns) {
172
+ if (col.unique || col.primary) {
173
+ if (!candidates.some((c) => c.length === 1 && c[0] === col.tsName)) {
174
+ candidates.push([col.tsName]);
175
+ }
176
+ }
177
+ }
178
+ const bySql = new Map(table.columns.map((c) => [c.sqlName, c.tsName]));
179
+ for (const index of table.indexes) {
180
+ if (!index.unique)
181
+ continue;
182
+ if (index.using && index.using !== "btree")
183
+ continue;
184
+ if (index.keys?.some((key) => key.expr))
185
+ continue;
186
+ const tsNames = [];
187
+ let ok = true;
188
+ for (const sqlName of index.columns) {
189
+ const tsName = bySql.get(sqlName);
190
+ if (tsName === undefined) {
191
+ ok = false;
192
+ break;
193
+ }
194
+ tsNames.push(tsName);
195
+ }
196
+ if (!ok || tsNames.length === 0)
197
+ continue;
198
+ if (candidates.some((c) => c.length === tsNames.length &&
199
+ c.every((name) => tsNames.includes(name)))) {
200
+ continue;
201
+ }
202
+ candidates.push(tsNames);
203
+ }
204
+ return candidates;
205
+ }
206
+ /** `timestamps()` / `.defaultNow()` / `.updatedAt()` — ORM-owned, not client-writable. */
207
+ export function isManagedTimestamp(col) {
208
+ return col.defaultNow || col.updatedAt === true;
209
+ }
210
+ export function isJunctionTable(manifest, accessor) {
211
+ return manifest.manyToMany.some((m) => m.throughAccessor === accessor);
212
+ }
213
+ export function isJunctionPkColumn(col, table, isJunction) {
214
+ return isJunction && table.primaryKey.includes(col.sqlName);
215
+ }
216
+ export function isOmittedOnCreate(col, table, isJunction) {
217
+ if (isJunctionPkColumn(col, table, isJunction)) {
218
+ return false;
219
+ }
220
+ return (col.primary ||
221
+ col.generated === true ||
222
+ col.kind === "serial" ||
223
+ isManagedTimestamp(col));
224
+ }
225
+ export function isOmittedOnUpdate(col, table, isJunction) {
226
+ if (isJunctionPkColumn(col, table, isJunction)) {
227
+ return true;
228
+ }
229
+ return col.primary || isManagedTimestamp(col);
230
+ }
231
+ export function isCreateRequired(col, table, isJunction) {
232
+ if (isOmittedOnCreate(col, table, isJunction)) {
233
+ return false;
234
+ }
235
+ // FK scalars are satisfied by relation writes (`author: { connect }`),
236
+ // mirroring schema-driven `IsRequired` which is never true for FKs.
237
+ if (col.kind === "fk") {
238
+ return false;
239
+ }
240
+ if (col.nullable) {
241
+ return false;
242
+ }
243
+ if (col.defaultNow || col.defaultValue !== undefined) {
244
+ return false;
245
+ }
246
+ return true;
247
+ }
248
+ export function updateScalarTsType(col, manifest, enums, tableAccessor) {
249
+ const base = columnTsType(col, manifest, enums, tableAccessor);
250
+ const nonNull = columnNonNullTsType(col, manifest, enums, tableAccessor);
251
+ switch (col.kind) {
252
+ case "int":
253
+ case "serial":
254
+ case "real":
255
+ case "double":
256
+ case "bigint":
257
+ return `${base} | { increment?: ${nonNull}; decrement?: ${nonNull}; multiply?: ${nonNull}; set?: ${base} }`;
258
+ default:
259
+ return `${base} | { set?: ${base} }`;
260
+ }
261
+ }
262
+ export function columnByTsNameOrThrow(table, tsName) {
263
+ const col = columnByTsName(table, tsName);
264
+ if (!col) {
265
+ throw new Error(`Column "${tsName}" not found on table "${table.accessor}"`);
266
+ }
267
+ return col;
268
+ }
269
+ //# sourceMappingURL=column-ts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column-ts.js","sourceRoot":"","sources":["../../src/codegen/column-ts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"emit-includes.d.ts","sourceRoot":"","sources":["../../src/codegen/emit-includes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,QAAQ,EAIR,MAAM,qBAAqB,CAAC;AA6E7B,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAiCzD"}
1
+ {"version":3,"file":"emit-includes.d.ts","sourceRoot":"","sources":["../../src/codegen/emit-includes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,QAAQ,EAIR,MAAM,qBAAqB,CAAC;AA8E7B,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAsCzD"}
@@ -22,11 +22,12 @@ function emitRelationIncludeType(manifest, tableAccessor, relation) {
22
22
  const target = manifest.tables[relation.targetAccessor];
23
23
  const columns = target?.columns ?? [];
24
24
  const nestedWith = `${modelTypeName(relation.targetAccessor)}With`;
25
+ const targetWhere = `${modelTypeName(relation.targetAccessor)}Where`;
25
26
  return `export type ${typeName} =
26
27
  | boolean
27
28
  | {
28
29
  select?: ${selectType(columns)};
29
- where?: Record<string, unknown>;
30
+ where?: ${targetWhere};
30
31
  orderBy?: ${orderByType(columns)};
31
32
  take?: number;
32
33
  skip?: number;
@@ -48,18 +49,25 @@ function emitTableWithType(manifest, table) {
48
49
  .join("\n");
49
50
  const countField = manyRelations.length > 0
50
51
  ? `\n _count?: {\n${manyRelations
51
- .map((rel) => ` ${rel.name}?: true | { where?: Record<string, unknown> };`)
52
+ .map((rel) => {
53
+ const targetWhere = `${modelTypeName(rel.targetAccessor)}Where`;
54
+ return ` ${rel.name}?: true | { where?: ${targetWhere} };`;
55
+ })
52
56
  .join("\n")}\n };`
53
57
  : "";
54
58
  return `export type ${typeName} = {\n${fields}${countField}\n};`;
55
59
  }
56
60
  export function emitIncludesTs(manifest) {
61
+ const tables = Object.values(manifest.tables).sort((a, b) => a.accessor.localeCompare(b.accessor));
62
+ const withNames = tables.map((t) => `${modelTypeName(t.accessor)}With`);
63
+ const whereNames = tables.map((t) => `${modelTypeName(t.accessor)}Where`);
57
64
  const lines = [
58
65
  "// Auto-generated by neoorm generate — do not edit",
59
- `import type { OrderDirection } from "neoorm/schema";`,
66
+ `import type { ${whereNames.join(", ")} } from "./query-types.js";`,
67
+ "",
68
+ `type OrderDirection = "asc" | "desc";`,
60
69
  "",
61
70
  ];
62
- const tables = Object.values(manifest.tables).sort((a, b) => a.accessor.localeCompare(b.accessor));
63
71
  for (const table of tables) {
64
72
  for (const rel of effectiveRelations(manifest, table)) {
65
73
  lines.push(emitRelationIncludeType(manifest, table.accessor, rel));
@@ -77,6 +85,7 @@ export function emitIncludesTs(manifest) {
77
85
  lines.push(includeMapEntries);
78
86
  lines.push(`};`);
79
87
  lines.push("");
88
+ void withNames;
80
89
  return lines.join("\n");
81
90
  }
82
91
  //# sourceMappingURL=emit-includes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"emit-includes.js","sourceRoot":"","sources":["../../src/codegen/emit-includes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emit-includes.js","sourceRoot":"","sources":["../../src/codegen/emit-includes.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
- import type { Manifest } from "../dialect/types.js";
1
+ import type { Manifest, ManifestTable } from "../dialect/types.js";
2
+ export declare function relationResultTypeFor(manifest: Manifest, table: ManifestTable, relationName: string): string;
2
3
  export declare function emitModelsTs(manifest: Manifest, packageImportPath?: string): string;
3
4
  //# sourceMappingURL=emit-models.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"emit-models.d.ts","sourceRoot":"","sources":["../../src/codegen/emit-models.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,QAAQ,EAGR,MAAM,qBAAqB,CAAC;AAsH7B,wBAAgB,YAAY,CAC3B,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,SAAW,GAC1B,MAAM,CAiGR"}
1
+ {"version":3,"file":"emit-models.d.ts","sourceRoot":"","sources":["../../src/codegen/emit-models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,QAAQ,EAER,aAAa,EACb,MAAM,qBAAqB,CAAC;AA0K7B,wBAAgB,qBAAqB,CACpC,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,aAAa,EACpB,YAAY,EAAE,MAAM,GAClB,MAAM,CAUR;AAED,wBAAgB,YAAY,CAC3B,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,SAAW,GAC1B,MAAM,CAqHR"}