neoorm 0.1.3 → 0.1.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 (75) hide show
  1. package/README.md +88 -0
  2. package/dist/bin/neoorm.js +28 -7
  3. package/dist/bin/neoorm.js.map +1 -1
  4. package/dist/codegen/diff-manifest.d.ts +11 -0
  5. package/dist/codegen/diff-manifest.d.ts.map +1 -0
  6. package/dist/codegen/diff-manifest.js +504 -0
  7. package/dist/codegen/diff-manifest.js.map +1 -0
  8. package/dist/codegen/generate.d.ts +6 -5
  9. package/dist/codegen/generate.d.ts.map +1 -1
  10. package/dist/codegen/generate.js +21 -54
  11. package/dist/codegen/generate.js.map +1 -1
  12. package/dist/codegen/schema-to-manifest.d.ts.map +1 -1
  13. package/dist/codegen/schema-to-manifest.js +7 -4
  14. package/dist/codegen/schema-to-manifest.js.map +1 -1
  15. package/dist/dialect/index.d.ts +1 -1
  16. package/dist/dialect/index.d.ts.map +1 -1
  17. package/dist/dialect/index.js.map +1 -1
  18. package/dist/dialect/postgres.d.ts +8 -1
  19. package/dist/dialect/postgres.d.ts.map +1 -1
  20. package/dist/dialect/postgres.js +240 -29
  21. package/dist/dialect/postgres.js.map +1 -1
  22. package/dist/dialect/types.d.ts +57 -4
  23. package/dist/dialect/types.d.ts.map +1 -1
  24. package/dist/index.d.ts +4 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +3 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/introspect/pull.d.ts.map +1 -1
  29. package/dist/introspect/pull.js +15 -32
  30. package/dist/introspect/pull.js.map +1 -1
  31. package/dist/introspect/queries.d.ts +36 -0
  32. package/dist/introspect/queries.d.ts.map +1 -0
  33. package/dist/introspect/queries.js +102 -0
  34. package/dist/introspect/queries.js.map +1 -0
  35. package/dist/introspect/to-manifest.d.ts +4 -0
  36. package/dist/introspect/to-manifest.d.ts.map +1 -0
  37. package/dist/introspect/to-manifest.js +188 -0
  38. package/dist/introspect/to-manifest.js.map +1 -0
  39. package/dist/migrate/runner.d.ts +12 -1
  40. package/dist/migrate/runner.d.ts.map +1 -1
  41. package/dist/migrate/runner.js +43 -13
  42. package/dist/migrate/runner.js.map +1 -1
  43. package/dist/runtime/query/compile.d.ts +2 -2
  44. package/dist/runtime/query/compile.d.ts.map +1 -1
  45. package/dist/runtime/query/compile.js +240 -44
  46. package/dist/runtime/query/compile.js.map +1 -1
  47. package/dist/runtime/query/count.d.ts.map +1 -1
  48. package/dist/runtime/query/count.js +1 -1
  49. package/dist/runtime/query/count.js.map +1 -1
  50. package/dist/runtime/query/delete.d.ts.map +1 -1
  51. package/dist/runtime/query/delete.js +2 -2
  52. package/dist/runtime/query/delete.js.map +1 -1
  53. package/dist/runtime/query/find.d.ts.map +1 -1
  54. package/dist/runtime/query/find.js +1 -1
  55. package/dist/runtime/query/find.js.map +1 -1
  56. package/dist/runtime/query/update.d.ts.map +1 -1
  57. package/dist/runtime/query/update.js +2 -2
  58. package/dist/runtime/query/update.js.map +1 -1
  59. package/dist/schema/column-where.d.ts +36 -0
  60. package/dist/schema/column-where.d.ts.map +1 -0
  61. package/dist/schema/column-where.js +2 -0
  62. package/dist/schema/column-where.js.map +1 -0
  63. package/dist/schema/column.d.ts.map +1 -1
  64. package/dist/schema/column.js +1 -1
  65. package/dist/schema/column.js.map +1 -1
  66. package/dist/schema/index.d.ts +1 -1
  67. package/dist/schema/index.d.ts.map +1 -1
  68. package/dist/schema/relation-types.d.ts +65 -16
  69. package/dist/schema/relation-types.d.ts.map +1 -1
  70. package/dist/schema/relation.d.ts +13 -13
  71. package/dist/schema/relation.d.ts.map +1 -1
  72. package/dist/schema/relation.js.map +1 -1
  73. package/dist/schema/types.d.ts +12 -38
  74. package/dist/schema/types.d.ts.map +1 -1
  75. package/package.json +1 -1
@@ -14,6 +14,9 @@ export type ManifestColumn = {
14
14
  fkAs?: string;
15
15
  fkInverse?: string;
16
16
  onDelete?: string;
17
+ fkConstraintName?: string;
18
+ uniqueConstraintName?: string;
19
+ storageSqlType?: string;
17
20
  };
18
21
  export type ManifestRelation = {
19
22
  name: string;
@@ -44,6 +47,7 @@ export type ManifestIndex = {
44
47
  name: string;
45
48
  columns: readonly string[];
46
49
  unique: boolean;
50
+ sqlName?: string;
47
51
  };
48
52
  export type ManifestTable = {
49
53
  accessor: string;
@@ -63,23 +67,72 @@ export type CompiledQuery = {
63
67
  text: string;
64
68
  params: unknown[];
65
69
  };
66
- export type WhereOperator = "equals" | "contains" | "startsWith" | "endsWith" | "gt" | "gte" | "lt" | "lte" | "in";
70
+ export type WhereOperator = "equals" | "contains" | "startsWith" | "endsWith" | "gt" | "gte" | "lt" | "lte" | "in" | "notIn" | "isNull" | "isNotNull";
67
71
  export type OperatorMap = Record<WhereOperator, (sqlColumn: string, paramIndex: number) => string>;
72
+ export type ColumnAlter = {
73
+ sqlName: string;
74
+ setType?: ManifestColumn;
75
+ fromSqlType?: string;
76
+ setNullable?: boolean;
77
+ setDefault?: ManifestColumn | null;
78
+ setUnique?: boolean;
79
+ dropUniqueConstraint?: string;
80
+ };
81
+ export type FkChange = {
82
+ column: string;
83
+ add?: {
84
+ target: string;
85
+ onDelete?: string;
86
+ constraintName?: string;
87
+ };
88
+ drop?: string;
89
+ };
68
90
  export type TableDiff = {
69
- create?: ManifestTable;
91
+ table: ManifestTable;
92
+ create?: boolean;
93
+ drop?: boolean;
70
94
  addColumns?: ManifestColumn[];
71
95
  dropColumns?: string[];
72
96
  renameColumns?: Array<{
73
97
  from: string;
74
98
  to: string;
75
99
  }>;
100
+ alterColumns?: ColumnAlter[];
101
+ addIndexes?: ManifestIndex[];
102
+ dropIndexes?: string[];
103
+ fkChanges?: FkChange[];
104
+ manifest?: Manifest;
105
+ };
106
+ export type DestructiveChangeKind = "drop_table" | "drop_column" | "alter_column_type" | "alter_column_type_manual" | "drop_index" | "drop_fk" | "alter_primary_key";
107
+ export type DestructiveChange = {
108
+ kind: DestructiveChangeKind;
109
+ table: string;
110
+ detail: string;
111
+ sql: string;
112
+ };
113
+ export type ManifestDiff = {
114
+ isInitial: boolean;
115
+ sql: string[];
116
+ destructive: DestructiveChange[];
117
+ };
118
+ export type CreateTableOptions = {
119
+ inlineForeignKeys?: boolean;
120
+ manifest?: Manifest;
76
121
  };
77
122
  export type Dialect = {
78
123
  readonly name: string;
79
124
  quoteIdentifier(name: string): string;
80
- columnType(col: ManifestColumn): string;
81
- emitCreateTable(table: ManifestTable): string;
125
+ columnType(col: ManifestColumn, manifest?: Manifest): string;
126
+ resolveIndexSqlName(tableSqlName: string, index: ManifestIndex): string;
127
+ emitCreateExtensions(extensions: readonly string[]): string[];
128
+ emitCreateTable(table: ManifestTable, options?: CreateTableOptions): string;
129
+ emitDropTable(table: ManifestTable): string;
130
+ emitCreateIndex(table: ManifestTable, index: ManifestIndex): string;
131
+ emitDropIndex(indexName: string): string;
132
+ emitDropConstraint(tableSqlName: string, constraintName: string): string;
82
133
  emitAlterTable(table: ManifestTable, diff: TableDiff): string[];
134
+ emitAlterColumn(table: ManifestTable, alter: ColumnAlter, manifest?: Manifest): string[];
135
+ emitAddForeignKey(table: ManifestTable, col: ManifestColumn): string;
83
136
  whereOperators: OperatorMap;
84
137
  defaultNowExpression(): string;
85
138
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dialect/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dialect/types.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -6,5 +6,8 @@ export type { Manifest, ManifestTable, ManifestColumn, ManifestRelation, Manifes
6
6
  export { postgresDialect } from "./dialect/postgres.js";
7
7
  export { generateFromSchema } from "./codegen/generate.js";
8
8
  export { schemaToManifest, validateManifest } from "./codegen/schema-to-manifest.js";
9
- export { migrateDeploy, dbPush } from "./migrate/runner.js";
9
+ export { migrateDeploy, dbPush, applySql } from "./migrate/runner.js";
10
+ export type { DbPushOptions, DbPushResult } from "./migrate/runner.js";
11
+ export { introspectToManifest } from "./introspect/to-manifest.js";
12
+ export { diffManifest, formatDestructiveWarnings, resolveMigrationSql, } from "./codegen/diff-manifest.js";
10
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACvD,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACrF,YAAY,EACV,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAErF,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACvD,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACrF,YAAY,EACV,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAErF,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACtE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EACL,YAAY,EACZ,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,4BAA4B,CAAC"}
package/dist/index.js CHANGED
@@ -3,5 +3,7 @@ export { createNeoOrmClient, createNeoOrmClientFromPool } from "./runtime/client
3
3
  export { postgresDialect } from "./dialect/postgres.js";
4
4
  export { generateFromSchema } from "./codegen/generate.js";
5
5
  export { schemaToManifest, validateManifest } from "./codegen/schema-to-manifest.js";
6
- export { migrateDeploy, dbPush } from "./migrate/runner.js";
6
+ export { migrateDeploy, dbPush, applySql } from "./migrate/runner.js";
7
+ export { introspectToManifest } from "./introspect/to-manifest.js";
8
+ export { diffManifest, formatDestructiveWarnings, resolveMigrationSql, } from "./codegen/diff-manifest.js";
7
9
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGvD,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAcrF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAErF,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGvD,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAcrF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAErF,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EACL,YAAY,EACZ,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,4BAA4B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/introspect/pull.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAkB/B,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAwIpE"}
1
+ {"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/introspect/pull.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAS/B,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CA2HpE"}
@@ -1,42 +1,19 @@
1
1
  import { toCamelCase, toSnakeCase } from "../utils/case.js";
2
2
  import { findIntrospectColumnType } from "../plugins/registry.js";
3
+ import { queryColumns, queryForeignKeys, queryTables, } from "./queries.js";
3
4
  export async function introspectPostgres(pool) {
4
- const tablesResult = await pool.query(`
5
- SELECT table_name
6
- FROM information_schema.tables
7
- WHERE table_schema = 'public'
8
- AND table_type = 'BASE TABLE'
9
- AND table_name NOT LIKE '_neoorm_%'
10
- ORDER BY table_name
11
- `);
5
+ const tables = await queryTables(pool);
12
6
  const pluginImports = new Set();
13
7
  const pluginColumnImports = new Set();
14
8
  let needsPostgisSideEffect = false;
15
9
  const tableBlocks = [];
16
- for (const { table_name } of tablesResult.rows) {
17
- const colsResult = await pool.query(`
18
- SELECT column_name, data_type, udt_name, is_nullable, column_default
19
- FROM information_schema.columns
20
- WHERE table_schema = 'public' AND table_name = $1
21
- ORDER BY ordinal_position
22
- `, [table_name]);
23
- const fkResult = await pool.query(`
24
- SELECT
25
- kcu.column_name,
26
- ccu.table_name AS foreign_table_name,
27
- ccu.column_name AS foreign_column_name
28
- FROM information_schema.table_constraints tc
29
- JOIN information_schema.key_column_usage kcu
30
- ON tc.constraint_name = kcu.constraint_name
31
- JOIN information_schema.constraint_column_usage ccu
32
- ON ccu.constraint_name = tc.constraint_name
33
- WHERE tc.constraint_type = 'FOREIGN KEY'
34
- AND tc.table_name = $1
35
- `, [table_name]);
36
- const fkMap = new Map(fkResult.rows.map((r) => [r.column_name, r]));
10
+ for (const { table_name } of tables) {
11
+ const cols = await queryColumns(pool, table_name);
12
+ const fks = await queryForeignKeys(pool, table_name);
13
+ const fkMap = new Map(fks.map((r) => [r.column_name, r]));
37
14
  const accessor = toCamelCase(table_name.endsWith("s") ? table_name : `${table_name}s`);
38
15
  const blockLines = [` ${accessor}: table("${table_name}", {`];
39
- for (const col of colsResult.rows) {
16
+ for (const col of cols) {
40
17
  const tsName = toCamelCase(col.column_name);
41
18
  const fk = fkMap.get(col.column_name);
42
19
  if (fk) {
@@ -64,9 +41,15 @@ export async function introspectPostgres(pool) {
64
41
  else {
65
42
  const pluginType = findIntrospectColumnType(col.data_type, col.udt_name);
66
43
  if (pluginType) {
67
- if (pluginType.kind === "geometry" || pluginType.kind === "geography" || pluginType.kind === "point") {
44
+ if (pluginType.kind === "geometry" ||
45
+ pluginType.kind === "geography" ||
46
+ pluginType.kind === "point") {
68
47
  needsPostgisSideEffect = true;
69
- pluginColumnImports.add(pluginType.kind === "geography" ? "geography" : pluginType.kind === "point" ? "point" : "geometry");
48
+ pluginColumnImports.add(pluginType.kind === "geography"
49
+ ? "geography"
50
+ : pluginType.kind === "point"
51
+ ? "point"
52
+ : "geometry");
70
53
  }
71
54
  let def = ` ${tsName}: ${pluginType.kind}()`;
72
55
  if (pluginType.kind === "uuid") {
@@ -1 +1 @@
1
- {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/introspect/pull.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/introspect/pull.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import type { Pool } from "pg";
2
+ export type TableRow = {
3
+ table_name: string;
4
+ };
5
+ export type ColumnRow = {
6
+ column_name: string;
7
+ data_type: string;
8
+ udt_name: string;
9
+ is_nullable: string;
10
+ column_default: string | null;
11
+ };
12
+ export type FkRow = {
13
+ column_name: string;
14
+ foreign_table_name: string;
15
+ foreign_column_name: string;
16
+ constraint_name: string;
17
+ delete_rule: string;
18
+ };
19
+ export type IndexRow = {
20
+ index_name: string;
21
+ column_name: string;
22
+ is_unique: boolean;
23
+ is_primary: boolean;
24
+ };
25
+ export type UniqueConstraintRow = {
26
+ column_name: string;
27
+ constraint_name: string;
28
+ };
29
+ export declare function queryTables(pool: Pool): Promise<TableRow[]>;
30
+ export declare function queryColumns(pool: Pool, tableName: string): Promise<ColumnRow[]>;
31
+ export declare function queryForeignKeys(pool: Pool, tableName: string): Promise<FkRow[]>;
32
+ export declare function queryIndexes(pool: Pool, tableName: string): Promise<IndexRow[]>;
33
+ export declare function queryUniqueConstraints(pool: Pool, tableName: string): Promise<UniqueConstraintRow[]>;
34
+ export declare function queryPrimaryKeyColumns(pool: Pool, tableName: string): Promise<string[]>;
35
+ export declare function queryInstalledExtensions(pool: Pool): Promise<string[]>;
36
+ //# sourceMappingURL=queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/introspect/queries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE/B,MAAM,MAAM,QAAQ,GAAG;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,wBAAsB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAUjE;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,SAAS,EAAE,CAAC,CAWtB;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,KAAK,EAAE,CAAC,CA0BlB;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAqBrB;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAiBhC;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,EAAE,CAAC,CAgBnB;AAED,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAQ5E"}
@@ -0,0 +1,102 @@
1
+ export async function queryTables(pool) {
2
+ const result = await pool.query(`
3
+ SELECT table_name
4
+ FROM information_schema.tables
5
+ WHERE table_schema = 'public'
6
+ AND table_type = 'BASE TABLE'
7
+ AND table_name NOT LIKE '_neoorm_%'
8
+ ORDER BY table_name
9
+ `);
10
+ return result.rows;
11
+ }
12
+ export async function queryColumns(pool, tableName) {
13
+ const result = await pool.query(`
14
+ SELECT column_name, data_type, udt_name, is_nullable, column_default
15
+ FROM information_schema.columns
16
+ WHERE table_schema = 'public' AND table_name = $1
17
+ ORDER BY ordinal_position
18
+ `, [tableName]);
19
+ return result.rows;
20
+ }
21
+ export async function queryForeignKeys(pool, tableName) {
22
+ const result = await pool.query(`
23
+ SELECT
24
+ kcu.column_name,
25
+ ccu.table_name AS foreign_table_name,
26
+ ccu.column_name AS foreign_column_name,
27
+ tc.constraint_name,
28
+ rc.delete_rule
29
+ FROM information_schema.table_constraints tc
30
+ JOIN information_schema.key_column_usage kcu
31
+ ON tc.constraint_name = kcu.constraint_name
32
+ AND tc.table_schema = kcu.table_schema
33
+ JOIN information_schema.constraint_column_usage ccu
34
+ ON ccu.constraint_name = tc.constraint_name
35
+ AND ccu.table_schema = tc.table_schema
36
+ JOIN information_schema.referential_constraints rc
37
+ ON rc.constraint_name = tc.constraint_name
38
+ AND rc.constraint_schema = tc.table_schema
39
+ WHERE tc.constraint_type = 'FOREIGN KEY'
40
+ AND tc.table_schema = 'public'
41
+ AND tc.table_name = $1
42
+ `, [tableName]);
43
+ return result.rows;
44
+ }
45
+ export async function queryIndexes(pool, tableName) {
46
+ const result = await pool.query(`
47
+ SELECT
48
+ i.relname AS index_name,
49
+ a.attname AS column_name,
50
+ ix.indisunique AS is_unique,
51
+ ix.indisprimary AS is_primary
52
+ FROM pg_class t
53
+ JOIN pg_index ix ON t.oid = ix.indrelid
54
+ JOIN pg_class i ON i.oid = ix.indexrelid
55
+ JOIN pg_attribute a ON a.attrelid = t.oid AND a.attnum = ANY(ix.indkey)
56
+ JOIN pg_namespace n ON n.oid = t.relnamespace
57
+ WHERE n.nspname = 'public'
58
+ AND t.relname = $1
59
+ AND NOT ix.indisprimary
60
+ ORDER BY i.relname, array_position(ix.indkey, a.attnum)
61
+ `, [tableName]);
62
+ return result.rows;
63
+ }
64
+ export async function queryUniqueConstraints(pool, tableName) {
65
+ const result = await pool.query(`
66
+ SELECT
67
+ kcu.column_name,
68
+ tc.constraint_name
69
+ FROM information_schema.table_constraints tc
70
+ JOIN information_schema.key_column_usage kcu
71
+ ON tc.constraint_name = kcu.constraint_name
72
+ AND tc.table_schema = kcu.table_schema
73
+ WHERE tc.constraint_type = 'UNIQUE'
74
+ AND tc.table_schema = 'public'
75
+ AND tc.table_name = $1
76
+ `, [tableName]);
77
+ return result.rows;
78
+ }
79
+ export async function queryPrimaryKeyColumns(pool, tableName) {
80
+ const result = await pool.query(`
81
+ SELECT kcu.column_name
82
+ FROM information_schema.table_constraints tc
83
+ JOIN information_schema.key_column_usage kcu
84
+ ON tc.constraint_name = kcu.constraint_name
85
+ AND tc.table_schema = kcu.table_schema
86
+ WHERE tc.constraint_type = 'PRIMARY KEY'
87
+ AND tc.table_schema = 'public'
88
+ AND tc.table_name = $1
89
+ ORDER BY kcu.ordinal_position
90
+ `, [tableName]);
91
+ return result.rows.map((row) => row.column_name);
92
+ }
93
+ export async function queryInstalledExtensions(pool) {
94
+ const result = await pool.query(`
95
+ SELECT extname
96
+ FROM pg_extension
97
+ WHERE extname NOT IN ('plpgsql')
98
+ ORDER BY extname
99
+ `);
100
+ return result.rows.map((row) => row.extname);
101
+ }
102
+ //# sourceMappingURL=queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/introspect/queries.ts"],"names":[],"mappings":"AAkCA,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAU;IAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAW;;;;;;;GAOzC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAU,EACV,SAAiB;IAEjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAC7B;;;;;GAKD,EACC,CAAC,SAAS,CAAC,CACZ,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAU,EACV,SAAiB;IAEjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAC7B;;;;;;;;;;;;;;;;;;;;GAoBD,EACC,CAAC,SAAS,CAAC,CACZ,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAU,EACV,SAAiB;IAEjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAC7B;;;;;;;;;;;;;;;GAeD,EACC,CAAC,SAAS,CAAC,CACZ,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAU,EACV,SAAiB;IAEjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAC7B;;;;;;;;;;;GAWD,EACC,CAAC,SAAS,CAAC,CACZ,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAU,EACV,SAAiB;IAEjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAC7B;;;;;;;;;;GAUD,EACC,CAAC,SAAS,CAAC,CACZ,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,IAAU;IACvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAsB;;;;;GAKpD,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Pool } from "pg";
2
+ import type { Manifest } from "../dialect/types.js";
3
+ export declare function introspectToManifest(pool: Pool): Promise<Manifest>;
4
+ //# sourceMappingURL=to-manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-manifest.d.ts","sourceRoot":"","sources":["../../src/introspect/to-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EACV,QAAQ,EAIT,MAAM,qBAAqB,CAAC;AAqN7B,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAsBxE"}
@@ -0,0 +1,188 @@
1
+ import { toCamelCase } from "../utils/case.js";
2
+ import { findIntrospectColumnType } from "../plugins/registry.js";
3
+ import { pgStorageSqlType } from "../dialect/postgres.js";
4
+ import { queryColumns, queryForeignKeys, queryIndexes, queryInstalledExtensions, queryPrimaryKeyColumns, queryTables, queryUniqueConstraints, } from "./queries.js";
5
+ function tableAccessor(tableName) {
6
+ return toCamelCase(tableName.endsWith("s") ? tableName : `${tableName}s`);
7
+ }
8
+ function pgTypeToKind(dataType, udtName) {
9
+ const pluginType = findIntrospectColumnType(dataType, udtName);
10
+ if (pluginType) {
11
+ return pluginType.kind;
12
+ }
13
+ switch (dataType) {
14
+ case "boolean":
15
+ return "bool";
16
+ case "integer":
17
+ case "bigint":
18
+ case "smallint":
19
+ return "int";
20
+ case "timestamp with time zone":
21
+ case "timestamp without time zone":
22
+ return "timestamp";
23
+ default:
24
+ return "text";
25
+ }
26
+ }
27
+ function parseDefaultValue(kind, columnDefault) {
28
+ if (!columnDefault) {
29
+ return { defaultNow: false };
30
+ }
31
+ if (columnDefault.includes("now()")) {
32
+ return { defaultNow: true };
33
+ }
34
+ if (kind === "bool") {
35
+ if (columnDefault === "true")
36
+ return { defaultNow: false, defaultValue: true };
37
+ if (columnDefault === "false")
38
+ return { defaultNow: false, defaultValue: false };
39
+ }
40
+ if (kind === "int") {
41
+ const match = columnDefault.match(/^(-?\d+)/);
42
+ if (match) {
43
+ return { defaultNow: false, defaultValue: Number(match[1]) };
44
+ }
45
+ }
46
+ const stringMatch = columnDefault.match(/^'((?:''|[^'])*)'::/);
47
+ if (stringMatch) {
48
+ return {
49
+ defaultNow: false,
50
+ defaultValue: stringMatch[1].replace(/''/g, "'"),
51
+ };
52
+ }
53
+ return { defaultNow: false };
54
+ }
55
+ function buildIndexes(indexRows) {
56
+ const grouped = new Map();
57
+ for (const row of indexRows) {
58
+ const existing = grouped.get(row.index_name);
59
+ if (existing) {
60
+ grouped.set(row.index_name, {
61
+ ...existing,
62
+ columns: [...existing.columns, row.column_name],
63
+ });
64
+ continue;
65
+ }
66
+ grouped.set(row.index_name, {
67
+ name: row.index_name,
68
+ sqlName: row.index_name,
69
+ columns: [row.column_name],
70
+ unique: row.is_unique,
71
+ });
72
+ }
73
+ return [...grouped.values()];
74
+ }
75
+ function mapDeleteRule(rule) {
76
+ switch (rule) {
77
+ case "CASCADE":
78
+ return "cascade";
79
+ case "SET NULL":
80
+ return "set null";
81
+ case "RESTRICT":
82
+ return "restrict";
83
+ case "NO ACTION":
84
+ return "no action";
85
+ default:
86
+ return undefined;
87
+ }
88
+ }
89
+ function filterConstraintBackedIndexes(indexes, columns) {
90
+ const uniqueColumns = new Set(columns.filter((col) => col.unique).map((col) => col.sqlName));
91
+ return indexes.filter((index) => {
92
+ if (!index.unique || index.columns.length !== 1) {
93
+ return true;
94
+ }
95
+ return !uniqueColumns.has(index.columns[0]);
96
+ });
97
+ }
98
+ async function introspectTable(pool, tableName) {
99
+ const [columns, fks, indexRows, uniqueRows, primaryKey] = await Promise.all([
100
+ queryColumns(pool, tableName),
101
+ queryForeignKeys(pool, tableName),
102
+ queryIndexes(pool, tableName),
103
+ queryUniqueConstraints(pool, tableName),
104
+ queryPrimaryKeyColumns(pool, tableName),
105
+ ]);
106
+ const fkMap = new Map(fks.map((fk) => [fk.column_name, fk]));
107
+ const uniqueMap = new Map(uniqueRows.map((row) => [row.column_name, row.constraint_name]));
108
+ const pkSet = new Set(primaryKey);
109
+ const manifestColumns = columns.map((col) => {
110
+ const tsName = toCamelCase(col.column_name);
111
+ const fk = fkMap.get(col.column_name);
112
+ const nullable = col.is_nullable === "YES";
113
+ const uniqueConstraintName = uniqueMap.get(col.column_name);
114
+ const defaults = parseDefaultValue(fk ? "fk" : pgTypeToKind(col.data_type, col.udt_name), col.column_default);
115
+ if (fk) {
116
+ const onDelete = mapDeleteRule(fk.delete_rule);
117
+ return {
118
+ tsName,
119
+ sqlName: col.column_name,
120
+ kind: "fk",
121
+ nullable,
122
+ unique: uniqueConstraintName !== undefined,
123
+ primary: pkSet.has(col.column_name),
124
+ defaultNow: defaults.defaultNow,
125
+ storageSqlType: pgStorageSqlType(col.data_type, col.udt_name),
126
+ ...(defaults.defaultValue !== undefined
127
+ ? { defaultValue: defaults.defaultValue }
128
+ : {}),
129
+ fkTarget: `${fk.foreign_table_name}.${fk.foreign_column_name}`,
130
+ fkConstraintName: fk.constraint_name,
131
+ ...(uniqueConstraintName ? { uniqueConstraintName } : {}),
132
+ ...(onDelete ? { onDelete } : {}),
133
+ };
134
+ }
135
+ const kind = col.column_name === "id" && col.udt_name === "uuid"
136
+ ? "uuid"
137
+ : col.column_name === "id"
138
+ ? "id"
139
+ : pgTypeToKind(col.data_type, col.udt_name);
140
+ const column = {
141
+ tsName,
142
+ sqlName: col.column_name,
143
+ kind,
144
+ nullable,
145
+ unique: uniqueConstraintName !== undefined,
146
+ primary: pkSet.has(col.column_name),
147
+ defaultNow: defaults.defaultNow,
148
+ storageSqlType: pgStorageSqlType(col.data_type, col.udt_name),
149
+ ...(defaults.defaultValue !== undefined
150
+ ? { defaultValue: defaults.defaultValue }
151
+ : {}),
152
+ ...(uniqueConstraintName ? { uniqueConstraintName } : {}),
153
+ };
154
+ if (kind === "uuid" && col.column_default?.includes("gen_random_uuid")) {
155
+ column.typeOptions = {
156
+ version: col.column_default.includes("uuid_generate_v4()") ? 4 : 7,
157
+ };
158
+ }
159
+ return column;
160
+ });
161
+ return {
162
+ accessor: tableAccessor(tableName),
163
+ sqlName: tableName,
164
+ columns: manifestColumns,
165
+ relations: [],
166
+ indexes: filterConstraintBackedIndexes(buildIndexes(indexRows), manifestColumns),
167
+ primaryKey,
168
+ };
169
+ }
170
+ export async function introspectToManifest(pool) {
171
+ const tables = await queryTables(pool);
172
+ const extensions = await queryInstalledExtensions(pool);
173
+ const manifestTables = {};
174
+ for (const { table_name } of tables) {
175
+ const table = await introspectTable(pool, table_name);
176
+ manifestTables[table.accessor] = table;
177
+ }
178
+ const relevantExtensions = extensions.filter((ext) => ["postgis"].includes(ext));
179
+ return {
180
+ version: 1,
181
+ tables: manifestTables,
182
+ manyToMany: [],
183
+ ...(relevantExtensions.length > 0
184
+ ? { extensions: relevantExtensions }
185
+ : {}),
186
+ };
187
+ }
188
+ //# sourceMappingURL=to-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-manifest.js","sourceRoot":"","sources":["../../src/introspect/to-manifest.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,18 @@ import type { Manifest } from "../dialect/types.js";
3
3
  export declare function ensureMigrationsTable(pool: Pool): Promise<void>;
4
4
  export declare function getAppliedMigrations(pool: Pool): Promise<Set<string>>;
5
5
  export declare function listPendingMigrations(migrationsDir: string, applied: Set<string>): Promise<string[]>;
6
+ export declare function applySql(pool: Pool, sql: string[]): Promise<void>;
6
7
  export declare function applyMigration(pool: Pool, migrationsDir: string, name: string): Promise<void>;
7
8
  export declare function migrateDeploy(pool: Pool, migrationsDir: string): Promise<string[]>;
8
- export declare function dbPush(pool: Pool, manifest: Manifest): Promise<void>;
9
+ export type DbPushResult = {
10
+ appliedStatements: number;
11
+ destructiveBlocked: DestructiveChange[];
12
+ };
13
+ export type DbPushOptions = {
14
+ acceptDataLoss?: boolean;
15
+ };
16
+ type DestructiveChange = import("../dialect/types.js").DestructiveChange;
17
+ export declare function dbPush(pool: Pool, target: Manifest, options?: DbPushOptions): Promise<DbPushResult>;
18
+ export declare function dbPushWarnings(blocked: DestructiveChange[]): string[];
19
+ export {};
9
20
  //# sourceMappingURL=runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/migrate/runner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAKpD,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAQrE;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAM3E;AAED,wBAAsB,qBAAqB,CACzC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC,CASnB;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,EAAE,CAAC,CASnB;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAa1E"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/migrate/runner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAWpD,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAQrE;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAM3E;AAED,wBAAsB,qBAAqB,CACzC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC,CASnB;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBvE;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,EAAE,CAAC,CASnB;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,KAAK,iBAAiB,GAAG,OAAO,qBAAqB,EAAE,iBAAiB,CAAC;AAEzE,wBAAsB,MAAM,CAC1B,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,QAAQ,EAChB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAgBvB;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,MAAM,EAAE,CAerE"}