neoorm 0.1.1 → 0.1.3

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 (108) hide show
  1. package/README.md +171 -11
  2. package/dist/bin/neoorm.js +11 -2
  3. package/dist/bin/neoorm.js.map +1 -1
  4. package/dist/codegen/emit-models.d.ts.map +1 -1
  5. package/dist/codegen/emit-models.js +24 -15
  6. package/dist/codegen/emit-models.js.map +1 -1
  7. package/dist/codegen/generate.d.ts +13 -2
  8. package/dist/codegen/generate.d.ts.map +1 -1
  9. package/dist/codegen/generate.js +70 -9
  10. package/dist/codegen/generate.js.map +1 -1
  11. package/dist/codegen/schema-to-manifest.d.ts +2 -1
  12. package/dist/codegen/schema-to-manifest.d.ts.map +1 -1
  13. package/dist/codegen/schema-to-manifest.js +22 -7
  14. package/dist/codegen/schema-to-manifest.js.map +1 -1
  15. package/dist/dialect/postgres.d.ts.map +1 -1
  16. package/dist/dialect/postgres.js +27 -23
  17. package/dist/dialect/postgres.js.map +1 -1
  18. package/dist/dialect/types.d.ts +8 -1
  19. package/dist/dialect/types.d.ts.map +1 -1
  20. package/dist/index.d.ts +1 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/introspect/pull.d.ts.map +1 -1
  24. package/dist/introspect/pull.js +91 -31
  25. package/dist/introspect/pull.js.map +1 -1
  26. package/dist/plugins/builtin.d.ts +15 -0
  27. package/dist/plugins/builtin.d.ts.map +1 -0
  28. package/dist/plugins/builtin.js +156 -0
  29. package/dist/plugins/builtin.js.map +1 -0
  30. package/dist/plugins/ensure-plugins.d.ts +3 -0
  31. package/dist/plugins/ensure-plugins.d.ts.map +1 -0
  32. package/dist/plugins/ensure-plugins.js +19 -0
  33. package/dist/plugins/ensure-plugins.js.map +1 -0
  34. package/dist/plugins/index.d.ts +4 -0
  35. package/dist/plugins/index.d.ts.map +1 -0
  36. package/dist/plugins/index.js +3 -0
  37. package/dist/plugins/index.js.map +1 -0
  38. package/dist/plugins/postgis/columns.d.ts +25 -0
  39. package/dist/plugins/postgis/columns.d.ts.map +1 -0
  40. package/dist/plugins/postgis/columns.js +82 -0
  41. package/dist/plugins/postgis/columns.js.map +1 -0
  42. package/dist/plugins/postgis/geojson.d.ts +4 -0
  43. package/dist/plugins/postgis/geojson.d.ts.map +1 -0
  44. package/dist/plugins/postgis/geojson.js +22 -0
  45. package/dist/plugins/postgis/geojson.js.map +1 -0
  46. package/dist/plugins/postgis/index.d.ts +4 -0
  47. package/dist/plugins/postgis/index.d.ts.map +1 -0
  48. package/dist/plugins/postgis/index.js +6 -0
  49. package/dist/plugins/postgis/index.js.map +1 -0
  50. package/dist/plugins/postgis/operators.d.ts +5 -0
  51. package/dist/plugins/postgis/operators.d.ts.map +1 -0
  52. package/dist/plugins/postgis/operators.js +35 -0
  53. package/dist/plugins/postgis/operators.js.map +1 -0
  54. package/dist/plugins/postgis/plugin.d.ts +3 -0
  55. package/dist/plugins/postgis/plugin.d.ts.map +1 -0
  56. package/dist/plugins/postgis/plugin.js +7 -0
  57. package/dist/plugins/postgis/plugin.js.map +1 -0
  58. package/dist/plugins/registry.d.ts +10 -0
  59. package/dist/plugins/registry.d.ts.map +1 -0
  60. package/dist/plugins/registry.js +89 -0
  61. package/dist/plugins/registry.js.map +1 -0
  62. package/dist/plugins/types.d.ts +32 -0
  63. package/dist/plugins/types.d.ts.map +1 -0
  64. package/dist/plugins/types.js +2 -0
  65. package/dist/plugins/types.js.map +1 -0
  66. package/dist/runtime/client.d.ts +1 -1
  67. package/dist/runtime/client.d.ts.map +1 -1
  68. package/dist/runtime/client.js +29 -2
  69. package/dist/runtime/client.js.map +1 -1
  70. package/dist/runtime/executor.d.ts +4 -1
  71. package/dist/runtime/executor.d.ts.map +1 -1
  72. package/dist/runtime/executor.js +20 -3
  73. package/dist/runtime/executor.js.map +1 -1
  74. package/dist/runtime/query/compile.d.ts +3 -1
  75. package/dist/runtime/query/compile.d.ts.map +1 -1
  76. package/dist/runtime/query/compile.js +78 -11
  77. package/dist/runtime/query/compile.js.map +1 -1
  78. package/dist/runtime/query/create.d.ts.map +1 -1
  79. package/dist/runtime/query/create.js +61 -72
  80. package/dist/runtime/query/create.js.map +1 -1
  81. package/dist/runtime/query/primary-key.d.ts +4 -0
  82. package/dist/runtime/query/primary-key.d.ts.map +1 -0
  83. package/dist/runtime/query/primary-key.js +23 -0
  84. package/dist/runtime/query/primary-key.js.map +1 -0
  85. package/dist/runtime/query/update.js +2 -2
  86. package/dist/runtime/query/update.js.map +1 -1
  87. package/dist/runtime/query/upsert.d.ts.map +1 -1
  88. package/dist/runtime/query/upsert.js +2 -12
  89. package/dist/runtime/query/upsert.js.map +1 -1
  90. package/dist/runtime/types.d.ts +10 -0
  91. package/dist/runtime/types.d.ts.map +1 -1
  92. package/dist/schema/column.d.ts +8 -10
  93. package/dist/schema/column.d.ts.map +1 -1
  94. package/dist/schema/column.js +10 -53
  95. package/dist/schema/column.js.map +1 -1
  96. package/dist/schema/index.d.ts +2 -1
  97. package/dist/schema/index.d.ts.map +1 -1
  98. package/dist/schema/index.js +1 -1
  99. package/dist/schema/index.js.map +1 -1
  100. package/dist/schema/relation.d.ts +1 -0
  101. package/dist/schema/relation.d.ts.map +1 -1
  102. package/dist/schema/relation.js +16 -11
  103. package/dist/schema/relation.js.map +1 -1
  104. package/dist/utils/uuid.d.ts +6 -0
  105. package/dist/utils/uuid.d.ts.map +1 -0
  106. package/dist/utils/uuid.js +34 -0
  107. package/dist/utils/uuid.js.map +1 -0
  108. package/package.json +13 -5
package/README.md CHANGED
@@ -8,24 +8,24 @@ TypeScript-first PostgreSQL ORM with a schema DSL, compile-time types, codegen,
8
8
  npm install neoorm pg
9
9
  ```
10
10
 
11
- Peer dependency: Node.js 20+ and a PostgreSQL database.
11
+ Requires Node.js 20+ and PostgreSQL.
12
12
 
13
13
  ## Quick start
14
14
 
15
15
  **1. Define a schema** (`schema.ts`):
16
16
 
17
17
  ```ts
18
- import { defineSchema, table, id, text, timestamp, fk } from "neoorm/schema";
18
+ import { defineSchema, table, uuid, text, timestamp, fk } from "neoorm/schema";
19
19
 
20
20
  export const schema = defineSchema({
21
21
  users: table("users", {
22
- id: id.primary(),
22
+ id: uuid().primary(),
23
23
  email: text().notNull().unique(),
24
24
  createdAt: timestamp().notNull().defaultNow(),
25
25
  }),
26
26
 
27
27
  posts: table("posts", {
28
- id: id.primary(),
28
+ id: uuid().primary(),
29
29
  authorId: fk("users.id", { as: "author", inverse: "posts", nullable: false }),
30
30
  title: text().notNull(),
31
31
  }),
@@ -53,33 +53,193 @@ export default defineConfig({
53
53
  npx neoorm generate
54
54
  ```
55
55
 
56
+ This writes `client.ts`, `manifest.ts`, `models.ts`, `includes.ts`, and migration SQL when the schema changed.
57
+
56
58
  **4. Query**
57
59
 
58
60
  ```ts
59
61
  import { db } from "./neoorm/client.js";
60
62
 
61
- const user = await db.users.findById("user_1", {
63
+ const user = await db.users.findById(userId, {
62
64
  with: {
63
65
  posts: { orderBy: { createdAt: "desc" }, limit: 10 },
64
66
  },
65
67
  });
66
68
  ```
67
69
 
70
+ ## Schema DSL
71
+
72
+ ### Tables and accessors
73
+
74
+ `defineSchema` keys are TypeScript accessors (`users`, `posts`). The first argument to `table()` is the SQL table name:
75
+
76
+ ```ts
77
+ users: table("user", { ... }) // db.users → SQL table "user"
78
+ ```
79
+
80
+ Column field names use camelCase in TypeScript. By default, SQL column names are snake_case (`createdAt` → `created_at`).
81
+
82
+ ### Column types
83
+
84
+ | Builder | SQL type | Notes |
85
+ |---------|----------|-------|
86
+ | `id.primary()` | `TEXT` | App-generated string IDs (e.g. `user_a1b2c3d4`) |
87
+ | `uuid()` | `UUID` | Defaults to UUID v7; pass `{ version: 4 }` for v4 |
88
+ | `uuid().primary()` | `UUID` | Primary key; auto-generated on create if omitted |
89
+ | `text()` | `TEXT` | |
90
+ | `bool()` | `BOOLEAN` | |
91
+ | `int()` | `INTEGER` | |
92
+ | `timestamp()` | `TIMESTAMPTZ` | Use `.defaultNow()` for `DEFAULT NOW()` |
93
+
94
+ All column builders support `.notNull()`, `.unique()`, `.default(value)`, `.defaultNow()`, `.primary()`, and `.map(name)`.
95
+
96
+ Foreign keys use `fk("target_table.target_column", { as, inverse, nullable?, onDelete? })`.
97
+
98
+ ### UUID columns
99
+
100
+ ```ts
101
+ import { uuid, table } from "neoorm/schema";
102
+
103
+ posts: table("posts", {
104
+ id: uuid().primary(), // UUID v7 (default)
105
+ legacyId: uuid({ version: 4 }), // UUID v4
106
+ })
107
+ ```
108
+
109
+ When you call `create` without an `id`, NeoOrm generates a UUID using the configured version.
110
+
111
+ ### Custom SQL column names (`.map()`)
112
+
113
+ Use `.map()` when the database column name differs from the default snake_case conversion:
114
+
115
+ ```ts
116
+ emailAddress: text().notNull().map("email"),
117
+ authorId: fk("users.id", { as: "author", inverse: "posts" }).map("author_ref"),
118
+ ```
119
+
120
+ `.map()` only produces a migration when the SQL name actually changes. Mapping to the default snake_case name (e.g. `.map("email_verified")` on `emailVerified`) is a no-op — `neoorm generate` warns about this.
121
+
122
+ ### Indexes and composite keys
123
+
124
+ ```ts
125
+ posts: table(
126
+ "posts",
127
+ { /* columns */ },
128
+ (t) => ({
129
+ authorIdx: index().on(t.authorId),
130
+ slugUnique: unique(t.slug),
131
+ pk: primaryKey(t.orgId, t.localId),
132
+ }),
133
+ )
134
+ ```
135
+
136
+ ### Many-to-many
137
+
138
+ Define the junction table, then register the relation after `defineSchema`:
139
+
140
+ ```ts
141
+ export const schema = defineSchema({
142
+ posts: table("posts", { /* ... */ }),
143
+ tags: table("tags", { /* ... */ }),
144
+ postTags: table("post_tags", {
145
+ postId: fk("posts.id", { as: "post", inverse: "postTags", nullable: false }),
146
+ tagId: fk("tags.id", { as: "tag", inverse: "postTags", nullable: false }),
147
+ }, (t) => ({
148
+ pk: primaryKey(t.postId, t.tagId),
149
+ })),
150
+ });
151
+
152
+ manyToMany(schema.posts, schema.tags, {
153
+ through: schema.postTags,
154
+ left: "post",
155
+ right: "tag",
156
+ as: "tags",
157
+ inverse: "posts",
158
+ });
159
+ ```
160
+
161
+ ## Transactions
162
+
163
+ ```ts
164
+ // Interactive callback
165
+ await db.$transaction(async (tx) => {
166
+ const user = await tx.users.create({ data: { email: "a@b.com" } });
167
+ await tx.posts.create({
168
+ data: {
169
+ title: "Hello",
170
+ authorId: user.id,
171
+ },
172
+ });
173
+ });
174
+
175
+ // Batch steps (sequential, one transaction)
176
+ const [user, post] = await db.$transaction([
177
+ (tx) => tx.users.create({ data: { email: "a@b.com" } }),
178
+ (tx) => tx.posts.create({ data: { title: "Hello" } }),
179
+ ]);
180
+
181
+ // Options
182
+ await db.$transaction(fn, {
183
+ isolationLevel: "Serializable", // ReadUncommitted | ReadCommitted | RepeatableRead | Serializable
184
+ readOnly: true,
185
+ });
186
+ ```
187
+
188
+ Nested `create` calls inside a transaction do not start a separate transaction.
189
+
68
190
  ## CLI
69
191
 
70
192
  | Command | Description |
71
193
  |---------|-------------|
72
- | `neoorm generate` | Emit manifest, typed client, includes, and migrations |
73
- | `neoorm migrate dev` | Apply pending migrations and create a new one if the schema changed |
194
+ | `neoorm generate` | Emit manifest, typed client, models, includes, and migrations |
195
+ | `neoorm migrate dev` | Apply pending migrations, then generate a new one if the schema changed |
74
196
  | `neoorm migrate deploy` | Apply pending migrations |
75
- | `neoorm db push` | Push schema to the database |
197
+ | `neoorm db push` | Push the current snapshot schema to the database |
76
198
  | `neoorm db pull` | Introspect the database into a schema file |
77
199
 
200
+ `generate` always rewrites generated TypeScript files. Migration SQL is created only when the schema diff produces changes (new tables/columns, column renames via `.map()`).
201
+
202
+ ## Plugins
203
+
204
+ ### PostGIS
205
+
206
+ ```ts
207
+ import "neoorm/plugins/postgis";
208
+ import { geometry, point } from "neoorm/plugins/postgis";
209
+
210
+ places: table("places", {
211
+ id: uuid().primary(),
212
+ location: geometry({ subtype: "Point", srid: 4326 }).notNull(),
213
+ boundary: point({ srid: 4326 }),
214
+ })
215
+ ```
216
+
217
+ Spatial `where` operators: `intersects`, `within`, `dWithin`.
218
+
219
+ ```ts
220
+ await db.places.findMany({
221
+ where: {
222
+ location: {
223
+ dWithin: {
224
+ geometry: { type: "Point", coordinates: [-122.4, 37.8] },
225
+ distance: 1000,
226
+ },
227
+ },
228
+ },
229
+ });
230
+ ```
231
+
232
+ PostGIS columns are stored as geometry/geography in PostgreSQL and exposed as GeoJSON in TypeScript.
233
+
78
234
  ## API surface
79
235
 
80
- - `neoorm` config helpers and `createNeoOrmClient`
81
- - `neoorm/schema` — schema DSL (`table`, `fk`, `manyToMany`, …)
82
- - `neoorm/sql` tagged SQL templates and query builder
236
+ | Import | Purpose |
237
+ |--------|---------|
238
+ | `neoorm` | Config helpers, `createNeoOrmClient`, client types |
239
+ | `neoorm/schema` | Schema DSL (`defineSchema`, `table`, column builders, `fk`, `manyToMany`) |
240
+ | `neoorm/sql` | Tagged SQL templates and query builder |
241
+ | `neoorm/plugins` | Plugin registry |
242
+ | `neoorm/plugins/postgis` | PostGIS column types and spatial operators |
83
243
 
84
244
  ## License
85
245
 
@@ -20,15 +20,21 @@ program
20
20
  const config = await loadConfig(cwd);
21
21
  const schemaPath = resolve(cwd, config.schema);
22
22
  const outDir = resolve(cwd, config.out);
23
- const { migrationName } = await generateFromSchema(schemaPath, outDir);
23
+ const { migrationName, schemaChanged, warnings } = await generateFromSchema(schemaPath, outDir);
24
24
  console.log(`Generated client at ${outDir}/client.ts`);
25
25
  console.log(`Generated manifest at ${outDir}/manifest.ts`);
26
26
  if (migrationName) {
27
27
  console.log(`Created migration: ${migrationName}`);
28
28
  }
29
+ else if (schemaChanged) {
30
+ console.log("Manifest updated (no migration SQL needed)");
31
+ }
29
32
  else {
30
33
  console.log("No schema changes detected");
31
34
  }
35
+ for (const warning of warnings) {
36
+ console.warn(`Warning: ${warning}`);
37
+ }
32
38
  });
33
39
  program
34
40
  .command("migrate")
@@ -55,7 +61,10 @@ program
55
61
  if (subcommand === "dev") {
56
62
  const { generateFromSchema } = await import("../codegen/generate.js");
57
63
  const schemaPath = resolve(cwd, config.schema);
58
- const { migrationName } = await generateFromSchema(schemaPath, outDir);
64
+ const { migrationName, warnings } = await generateFromSchema(schemaPath, outDir);
65
+ for (const warning of warnings) {
66
+ console.warn(`Warning: ${warning}`);
67
+ }
59
68
  if (migrationName) {
60
69
  await migrateDeploy(pool, join(outDir, "migrations"));
61
70
  console.log(`Created and applied: ${migrationName}`);
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"emit-models.d.ts","sourceRoot":"","sources":["../../src/codegen/emit-models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAiC,MAAM,qBAAqB,CAAC;AA2FnF,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CA0EvD"}
1
+ {"version":3,"file":"emit-models.d.ts","sourceRoot":"","sources":["../../src/codegen/emit-models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAiC,MAAM,qBAAqB,CAAC;AAoGnF,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CA2EvD"}
@@ -1,21 +1,29 @@
1
1
  import { effectiveRelations, pascalCase, singularTypeName, } from "./manifest-relations.js";
2
+ import { getColumnTypeOrThrow } from "../plugins/registry.js";
2
3
  function columnTsType(col) {
3
- switch (col.kind) {
4
- case "id":
5
- case "text":
6
- case "fk":
7
- return col.nullable ? "string | null" : "string";
8
- case "bool":
9
- return col.nullable ? "boolean | null" : "boolean";
10
- case "int":
11
- return col.nullable ? "number | null" : "number";
12
- case "timestamp":
13
- return col.nullable ? "string | null" : "string";
14
- default: {
15
- const _exhaustive = col.kind;
16
- return _exhaustive;
17
- }
4
+ if (col.kind === "fk") {
5
+ return col.nullable ? "string | null" : "string";
18
6
  }
7
+ return getColumnTypeOrThrow(col.kind).columnTsType(col);
8
+ }
9
+ function emitGeoJsonTypes(manifest) {
10
+ const hasPostgis = (manifest.extensions ?? []).includes("postgis");
11
+ if (!hasPostgis)
12
+ return [];
13
+ return [
14
+ "export type GeoJsonPoint = {",
15
+ ' type: "Point";',
16
+ " coordinates: [number, number] | [number, number, number];",
17
+ "};",
18
+ "",
19
+ "export type GeoJsonPolygon = {",
20
+ ' type: "Polygon";',
21
+ " coordinates: number[][][];",
22
+ "};",
23
+ "",
24
+ "export type GeoJsonGeometry = GeoJsonPoint | GeoJsonPolygon | Record<string, unknown>;",
25
+ "",
26
+ ];
19
27
  }
20
28
  function emitBaseModel(table) {
21
29
  const name = singularTypeName(table.accessor);
@@ -76,6 +84,7 @@ export function emitModelsTs(manifest) {
76
84
  "// Auto-generated by neoorm generate — do not edit",
77
85
  `import type { ${withTypeNames.join(", ")} } from "./includes.js";`,
78
86
  "",
87
+ ...emitGeoJsonTypes(manifest),
79
88
  "type IncludeRelation<",
80
89
  " W,",
81
90
  " Key extends PropertyKey,",
@@ -1 +1 @@
1
- {"version":3,"file":"emit-models.js","sourceRoot":"","sources":["../../src/codegen/emit-models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emit-models.js","sourceRoot":"","sources":["../../src/codegen/emit-models.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,SAAS,YAAY,CAAC,GAAmB;IACvC,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC;IACnD,CAAC;IACD,OAAO,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAkB;IAC1C,MAAM,UAAU,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACnE,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAE3B,OAAO;QACL,8BAA8B;QAC9B,kBAAkB;QAClB,6DAA6D;QAC7D,IAAI;QACJ,EAAE;QACF,gCAAgC;QAChC,oBAAoB;QACpB,8BAA8B;QAC9B,IAAI;QACJ,EAAE;QACF,wFAAwF;QACxF,EAAE;KACH,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAoB;IACzC,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO;SACzB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,MAAM,KAAK,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;SACtD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,eAAe,IAAI,SAAS,MAAM,MAAM,CAAC;AAClD,CAAC;AAED,SAAS,iBAAiB,CACxB,GAA0E,EAC1E,eAAuB;IAEvB,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;QAC/B,OAAO,KAAK,GAAG,CAAC,IAAI,MAAM,eAAe,KAAK,CAAC;IACjD,CAAC;IACD,OAAO,KAAK,GAAG,CAAC,IAAI,MAAM,eAAe,UAAU,CAAC;AACtD,CAAC;AAED,SAAS,eAAe,CAAC,QAAkB,EAAE,KAAoB;IAC/D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,GAAG,QAAQ,SAAS,CAAC;IACzC,MAAM,SAAS,GAAG,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAEtD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,eAAe,WAAW,MAAM,QAAQ,GAAG,CAAC;IACrD,CAAC;IAED,MAAM,cAAc,GAAG,SAAS;SAC7B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,MAAM;YACvB,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC;YACnC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACzC,OAAO,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC5C,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,eAAe,WAAW,MAAM,QAAQ,SAAS,cAAc,MAAM,CAAC;AAC/E,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAkB,EAAE,KAAoB;IACpE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;IACrD,MAAM,YAAY,GAAG,GAAG,QAAQ,cAAc,CAAC;IAC/C,MAAM,SAAS,GAAG,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAEtD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,eAAe,YAAY,cAAc,QAAQ,+BAA+B,QAAQ,GAAG,CAAC;IACrG,CAAC;IAED,MAAM,YAAY,GAAG,SAAS;SAC3B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,MAAM;YACvB,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC;YACnC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAChE,OAAO,yBAAyB,GAAG,CAAC,IAAI,OAAO,WAAW,MAAM,UAAU,GAAG,CAAC;IAChF,CAAC,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhB,OAAO,eAAe,YAAY,cAAc,QAAQ,+BAA+B,QAAQ;EAC/F,YAAY,GAAG,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAkB;IAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC1D,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CACrC,CAAC;IAEF,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEzE,MAAM,KAAK,GAAa;QACtB,oDAAoD;QACpD,iBAAiB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B;QACnE,EAAE;QACF,GAAG,gBAAgB,CAAC,QAAQ,CAAC;QAC7B,uBAAuB;QACvB,MAAM;QACN,4BAA4B;QAC5B,2CAA2C;QAC3C,WAAW;QACX,wCAAwC;QACxC,kCAAkC;QAClC,gCAAgC;QAChC,qCAAqC;QACrC,SAAS;QACT,EAAE;KACH,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,YAAY,GAAG,MAAM;SACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;SAC/D,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,cAAc,GAAG,MAAM;SAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;SACtE,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,aAAa,GAAG,MAAM;SACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,QAAQ,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QACjD,MAAM,YAAY,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;QACnE,OAAO,gBAAgB,CAAC,CAAC,QAAQ,OAAO,YAAY,oBAAoB,QAAQ,mCAAmC,CAAC;IACtH,CAAC,CAAC;SACD,IAAI,CAAC,QAAQ,CAAC,CAAC;IAElB,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC9C,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1B,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -1,10 +1,18 @@
1
1
  import type { Manifest } from "../dialect/types.js";
2
2
  import type { ManyToManyDef } from "../schema/many-to-many.js";
3
+ import type { NeoOrmPlugin } from "../plugins/types.js";
4
+ import type { ColumnDef } from "../schema/table.js";
3
5
  export declare function loadSchemaModule(schemaPath: string): Promise<{
4
6
  schema: import("../schema/define-schema.js").SchemaDef<Record<string, import("../schema/table.js").TableDef>>;
5
7
  manyToMany: ManyToManyDef[];
8
+ plugins: NeoOrmPlugin[];
6
9
  }>;
7
10
  export declare function hashManifest(manifest: Manifest): string;
11
+ export declare function collectRedundantMapWarnings(schema: {
12
+ readonly _tables: Record<string, {
13
+ readonly _columns: Record<string, ColumnDef>;
14
+ }>;
15
+ }): string[];
8
16
  export declare function readSnapshot(outDir: string): Promise<Manifest | null>;
9
17
  export declare function writeSnapshot(outDir: string, manifest: Manifest): Promise<void>;
10
18
  export declare function emitManifestTs(manifest: Manifest, packageImportPath: string): string;
@@ -17,8 +25,11 @@ export declare function writeMigration(outDir: string, sql: string[], name?: str
17
25
  export declare function writeGeneratedFiles(outDir: string, manifest: Manifest, migrationSql: string[], schemaPath: string): Promise<{
18
26
  migrationName: string | null;
19
27
  }>;
20
- export declare function generateFromSchema(schemaPath: string, outDir: string): Promise<{
28
+ export type GenerateResult = {
21
29
  manifest: Manifest;
22
30
  migrationName: string | null;
23
- }>;
31
+ schemaChanged: boolean;
32
+ warnings: string[];
33
+ };
34
+ export declare function generateFromSchema(schemaPath: string, outDir: string): Promise<GenerateResult>;
24
35
  //# sourceMappingURL=generate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/codegen/generate.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAIpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AA0B/D,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAClE,MAAM,EAAE,OAAO,4BAA4B,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,oBAAoB,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC9G,UAAU,EAAE,aAAa,EAAE,CAAC;CAC7B,CAAC,CAqBD;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAKvD;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAO3E;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAMpF;AAED,wBAAgB,YAAY,CAAC,gBAAgB,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAsBxF;AAgBD,wBAAgB,YAAY,CAC1B,IAAI,EAAE,QAAQ,GAAG,IAAI,EACrB,IAAI,EAAE,QAAQ,GACb;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,EAAE,CAAA;CAAE,CAgCvC;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EAAE,EACb,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgBxB;AAED,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,MAAM,EAAE,EACtB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CA2B3C;AAED,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAkB/D"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/codegen/generate.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAA6B,MAAM,qBAAqB,CAAC;AAI/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAkDpD,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAClE,MAAM,EAAE,OAAO,4BAA4B,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,oBAAoB,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC9G,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB,CAAC,CAsBD;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAKvD;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE;IACN,QAAQ,CAAC,OAAO,EAAE,MAAM,CACtB,MAAM,EACN;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;KAAE,CACjD,CAAC;CACH,GACA,MAAM,EAAE,CAiBV;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAO3E;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAMpF;AAED,wBAAgB,YAAY,CAAC,gBAAgB,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAsBxF;AAgBD,wBAAgB,YAAY,CAC1B,IAAI,EAAE,QAAQ,GAAG,IAAI,EACrB,IAAI,EAAE,QAAQ,GACb;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,EAAE,CAAA;CAAE,CAsDvC;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EAAE,EACb,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgBxB;AAED,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,MAAM,EAAE,EACtB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CA2B3C;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,cAAc,CAAC,CAoBzB"}
@@ -5,6 +5,7 @@ import { fileURLToPath } from "node:url";
5
5
  import { postgresDialect } from "../dialect/postgres.js";
6
6
  import { emitIncludesTs } from "./emit-includes.js";
7
7
  import { emitModelsTs } from "./emit-models.js";
8
+ import { toSnakeCase } from "../utils/case.js";
8
9
  async function resolveManyToManyDefs() {
9
10
  const { getManyToManyRegistry } = await import("../schema/many-to-many.js");
10
11
  const fromDist = getManyToManyRegistry();
@@ -25,6 +26,25 @@ async function resolveManyToManyDefs() {
25
26
  }
26
27
  return [];
27
28
  }
29
+ async function resolvePluginRegistry() {
30
+ const { getPluginRegistry } = await import("../plugins/registry.js");
31
+ const fromDist = getPluginRegistry();
32
+ if (fromDist.length > 1) {
33
+ return [...fromDist];
34
+ }
35
+ try {
36
+ const codegenDir = dirname(fileURLToPath(import.meta.url));
37
+ const { getPluginRegistry: getSrcRegistry } = await import(join(codegenDir, "../../src/plugins/registry.js"));
38
+ const fromSrc = getSrcRegistry();
39
+ if (fromSrc.length > 1) {
40
+ return [...fromSrc];
41
+ }
42
+ }
43
+ catch {
44
+ // src/ not available in published package — dist registry is authoritative
45
+ }
46
+ return [...fromDist];
47
+ }
28
48
  export async function loadSchemaModule(schemaPath) {
29
49
  const { pathToFileURL } = await import("node:url");
30
50
  const { register } = await import("tsx/esm/api");
@@ -38,7 +58,8 @@ export async function loadSchemaModule(schemaPath) {
38
58
  throw new Error(`Schema file must export a schema via \`export const schema = defineSchema(...)\``);
39
59
  }
40
60
  const manyToMany = await resolveManyToManyDefs();
41
- return { schema, manyToMany };
61
+ const plugins = await resolvePluginRegistry();
62
+ return { schema, manyToMany, plugins };
42
63
  }
43
64
  export function hashManifest(manifest) {
44
65
  return createHash("sha256")
@@ -46,6 +67,20 @@ export function hashManifest(manifest) {
46
67
  .digest("hex")
47
68
  .slice(0, 16);
48
69
  }
70
+ export function collectRedundantMapWarnings(schema) {
71
+ const warnings = [];
72
+ for (const [accessor, table] of Object.entries(schema._tables)) {
73
+ for (const [tsName, col] of Object.entries(table._columns)) {
74
+ if (!("_meta" in col) || !col._meta.mapName)
75
+ continue;
76
+ const defaultName = toSnakeCase(tsName);
77
+ if (col._meta.mapName === defaultName) {
78
+ warnings.push(`${accessor}.${tsName}.map("${col._meta.mapName}") matches the default snake_case SQL name — remove .map() or use a different name to rename the column`);
79
+ }
80
+ }
81
+ }
82
+ return warnings;
83
+ }
49
84
  export async function readSnapshot(outDir) {
50
85
  try {
51
86
  const content = await readFile(join(outDir, "snapshot.json"), "utf-8");
@@ -102,7 +137,11 @@ function schemaImportPath(outDir, schemaPath) {
102
137
  const NEOORM_PACKAGE = "neoorm";
103
138
  export function diffManifest(prev, next) {
104
139
  if (!prev) {
105
- const sql = Object.values(next.tables).map((t) => postgresDialect.emitCreateTable(t));
140
+ const sql = [];
141
+ for (const ext of next.extensions ?? []) {
142
+ sql.push(`CREATE EXTENSION IF NOT EXISTS ${ext};`);
143
+ }
144
+ sql.push(...Object.values(next.tables).map((t) => postgresDialect.emitCreateTable(t)));
106
145
  return { isInitial: true, sql };
107
146
  }
108
147
  const sql = [];
@@ -116,10 +155,30 @@ export function diffManifest(prev, next) {
116
155
  else {
117
156
  const prevTable = prev.tables[accessor];
118
157
  const nextTable = next.tables[accessor];
119
- const prevCols = new Set(prevTable.columns.map((c) => c.sqlName));
120
- const addColumns = nextTable.columns.filter((c) => !prevCols.has(c.sqlName));
121
- if (addColumns.length > 0) {
122
- sql.push(...postgresDialect.emitAlterTable(nextTable, { addColumns }));
158
+ const prevByTs = new Map(prevTable.columns.map((c) => [c.tsName, c]));
159
+ const prevSqlNames = new Set(prevTable.columns.map((c) => c.sqlName));
160
+ const renameColumns = [];
161
+ const addColumns = [];
162
+ for (const nextCol of nextTable.columns) {
163
+ const prevCol = prevByTs.get(nextCol.tsName);
164
+ if (prevCol) {
165
+ if (prevCol.sqlName !== nextCol.sqlName) {
166
+ renameColumns.push({ from: prevCol.sqlName, to: nextCol.sqlName });
167
+ }
168
+ }
169
+ else if (!prevSqlNames.has(nextCol.sqlName)) {
170
+ addColumns.push(nextCol);
171
+ }
172
+ }
173
+ if (renameColumns.length > 0 || addColumns.length > 0) {
174
+ const diff = {};
175
+ if (renameColumns.length > 0) {
176
+ diff.renameColumns = renameColumns;
177
+ }
178
+ if (addColumns.length > 0) {
179
+ diff.addColumns = addColumns;
180
+ }
181
+ sql.push(...postgresDialect.emitAlterTable(nextTable, diff));
123
182
  }
124
183
  }
125
184
  }
@@ -152,15 +211,17 @@ export async function writeGeneratedFiles(outDir, manifest, migrationSql, schema
152
211
  }
153
212
  export async function generateFromSchema(schemaPath, outDir) {
154
213
  const { schemaToManifest, validateManifest } = await import("./schema-to-manifest.js");
155
- const { schema, manyToMany } = await loadSchemaModule(schemaPath);
156
- const manifest = schemaToManifest(schema, manyToMany);
214
+ const { schema, manyToMany, plugins } = await loadSchemaModule(schemaPath);
215
+ const manifest = schemaToManifest(schema, manyToMany, plugins);
216
+ const warnings = collectRedundantMapWarnings(schema);
157
217
  const errors = validateManifest(manifest);
158
218
  if (errors.length > 0) {
159
219
  throw new Error(`Schema validation failed:\n${errors.join("\n")}`);
160
220
  }
161
221
  const prev = await readSnapshot(outDir);
222
+ const schemaChanged = !prev || hashManifest(prev) !== hashManifest(manifest);
162
223
  const { sql } = diffManifest(prev, manifest);
163
224
  const { migrationName } = await writeGeneratedFiles(outDir, manifest, sql, schemaPath);
164
- return { manifest, migrationName };
225
+ return { manifest, migrationName, schemaChanged, warnings };
165
226
  }
166
227
  //# sourceMappingURL=generate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/codegen/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/codegen/generate.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import type { TableDef } from "../schema/table.js";
2
2
  import type { Manifest } from "../dialect/types.js";
3
3
  import type { ManyToManyDef } from "../schema/many-to-many.js";
4
+ import type { NeoOrmPlugin } from "../plugins/types.js";
4
5
  export declare function schemaToManifest<T extends Record<string, TableDef>>(schema: {
5
6
  readonly _tables: T;
6
- }, m2mDefs?: readonly ManyToManyDef[]): Manifest;
7
+ }, m2mDefs?: readonly ManyToManyDef[], plugins?: readonly NeoOrmPlugin[]): Manifest;
7
8
  export declare function validateManifest(manifest: Manifest): string[];
8
9
  //# sourceMappingURL=schema-to-manifest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-to-manifest.d.ts","sourceRoot":"","sources":["../../src/codegen/schema-to-manifest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAc,MAAM,oBAAoB,CAAC;AAI/D,OAAO,KAAK,EACV,QAAQ,EAMT,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAuG/D,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EACjE,MAAM,EAAE;IAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;CAAE,EAC/B,OAAO,GAAE,SAAS,aAAa,EAA4B,GAC1D,QAAQ,CAsIV;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAAE,CA0B7D"}
1
+ {"version":3,"file":"schema-to-manifest.d.ts","sourceRoot":"","sources":["../../src/codegen/schema-to-manifest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAc,MAAM,oBAAoB,CAAC;AAI/D,OAAO,KAAK,EACV,QAAQ,EAMT,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAiHxD,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EACjE,MAAM,EAAE;IAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;CAAE,EAC/B,OAAO,GAAE,SAAS,aAAa,EAA4B,EAC3D,OAAO,GAAE,SAAS,YAAY,EAAwB,GACrD,QAAQ,CAyIV;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAAE,CAiC7D"}