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.
- package/README.md +88 -0
- package/dist/bin/neoorm.js +28 -7
- package/dist/bin/neoorm.js.map +1 -1
- package/dist/codegen/diff-manifest.d.ts +11 -0
- package/dist/codegen/diff-manifest.d.ts.map +1 -0
- package/dist/codegen/diff-manifest.js +504 -0
- package/dist/codegen/diff-manifest.js.map +1 -0
- package/dist/codegen/generate.d.ts +6 -5
- package/dist/codegen/generate.d.ts.map +1 -1
- package/dist/codegen/generate.js +21 -54
- package/dist/codegen/generate.js.map +1 -1
- package/dist/codegen/schema-to-manifest.d.ts.map +1 -1
- package/dist/codegen/schema-to-manifest.js +7 -4
- package/dist/codegen/schema-to-manifest.js.map +1 -1
- package/dist/dialect/index.d.ts +1 -1
- package/dist/dialect/index.d.ts.map +1 -1
- package/dist/dialect/index.js.map +1 -1
- package/dist/dialect/postgres.d.ts +8 -1
- package/dist/dialect/postgres.d.ts.map +1 -1
- package/dist/dialect/postgres.js +240 -29
- package/dist/dialect/postgres.js.map +1 -1
- package/dist/dialect/types.d.ts +57 -4
- package/dist/dialect/types.d.ts.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/introspect/pull.d.ts.map +1 -1
- package/dist/introspect/pull.js +15 -32
- package/dist/introspect/pull.js.map +1 -1
- package/dist/introspect/queries.d.ts +36 -0
- package/dist/introspect/queries.d.ts.map +1 -0
- package/dist/introspect/queries.js +102 -0
- package/dist/introspect/queries.js.map +1 -0
- package/dist/introspect/to-manifest.d.ts +4 -0
- package/dist/introspect/to-manifest.d.ts.map +1 -0
- package/dist/introspect/to-manifest.js +188 -0
- package/dist/introspect/to-manifest.js.map +1 -0
- package/dist/migrate/runner.d.ts +12 -1
- package/dist/migrate/runner.d.ts.map +1 -1
- package/dist/migrate/runner.js +43 -13
- package/dist/migrate/runner.js.map +1 -1
- package/dist/runtime/query/compile.d.ts +2 -2
- package/dist/runtime/query/compile.d.ts.map +1 -1
- package/dist/runtime/query/compile.js +240 -44
- package/dist/runtime/query/compile.js.map +1 -1
- package/dist/runtime/query/count.d.ts.map +1 -1
- package/dist/runtime/query/count.js +1 -1
- package/dist/runtime/query/count.js.map +1 -1
- package/dist/runtime/query/delete.d.ts.map +1 -1
- package/dist/runtime/query/delete.js +2 -2
- package/dist/runtime/query/delete.js.map +1 -1
- package/dist/runtime/query/find.d.ts.map +1 -1
- package/dist/runtime/query/find.js +1 -1
- package/dist/runtime/query/find.js.map +1 -1
- package/dist/runtime/query/update.d.ts.map +1 -1
- package/dist/runtime/query/update.js +2 -2
- package/dist/runtime/query/update.js.map +1 -1
- package/dist/schema/column-where.d.ts +36 -0
- package/dist/schema/column-where.d.ts.map +1 -0
- package/dist/schema/column-where.js +2 -0
- package/dist/schema/column-where.js.map +1 -0
- package/dist/schema/column.d.ts.map +1 -1
- package/dist/schema/column.js +1 -1
- package/dist/schema/column.js.map +1 -1
- package/dist/schema/index.d.ts +1 -1
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/relation-types.d.ts +65 -16
- package/dist/schema/relation-types.d.ts.map +1 -1
- package/dist/schema/relation.d.ts +13 -13
- package/dist/schema/relation.d.ts.map +1 -1
- package/dist/schema/relation.js.map +1 -1
- package/dist/schema/types.d.ts +12 -38
- package/dist/schema/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/dialect/types.d.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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":"AAAA,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,WAAW,GAAG,IAAI,CAAC;AACjF,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/introspect/pull.js
CHANGED
|
@@ -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
|
|
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
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
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
|
|
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" ||
|
|
44
|
+
if (pluginType.kind === "geometry" ||
|
|
45
|
+
pluginType.kind === "geography" ||
|
|
46
|
+
pluginType.kind === "point") {
|
|
68
47
|
needsPostgisSideEffect = true;
|
|
69
|
-
pluginColumnImports.add(pluginType.kind === "geography"
|
|
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":"AACA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/introspect/pull.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,WAAW,GACZ,MAAM,cAAc,CAAC;AAEtB,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAU;IACjD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;IAEvC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9C,IAAI,sBAAsB,GAAG,KAAK,CAAC;IAEnC,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,KAAK,MAAM,EAAE,UAAU,EAAE,IAAI,MAAM,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAClD,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAErD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1D,MAAM,QAAQ,GAAG,WAAW,CAC1B,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CACzD,CAAC;QACF,MAAM,UAAU,GAAa,CAAC,KAAK,QAAQ,YAAY,UAAU,MAAM,CAAC,CAAC;QAEzE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC5C,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAEtC,IAAI,EAAE,EAAE,CAAC;gBACP,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC1C,IAAI,GAAG,GAAG;oBACR,OAAO,MAAM,SAAS,EAAE,CAAC,kBAAkB,IAAI,EAAE,CAAC,mBAAmB,MAAM;oBAC3E,cAAc,OAAO,IAAI;oBACzB,mBAAmB,QAAQ,IAAI;oBAC/B,mBAAmB,GAAG,CAAC,WAAW,KAAK,KAAK,GAAG;oBAC/C,QAAQ;iBACT,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACb,GAAG,GAAG,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;gBACtD,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YAC7B,CAAC;iBAAM,IAAI,GAAG,CAAC,WAAW,KAAK,IAAI,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;gBAC/D,MAAM,OAAO,GAAG,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxE,MAAM,GAAG,GACP,OAAO,KAAK,CAAC;oBACX,CAAC,CAAC,yCAAyC;oBAC3C,CAAC,CAAC,2BAA2B,CAAC;gBAClC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;iBAAM,IAAI,GAAG,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;gBACpC,UAAU,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,MAAM,UAAU,GAAG,wBAAwB,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACzE,IAAI,UAAU,EAAE,CAAC;oBACf,IACE,UAAU,CAAC,IAAI,KAAK,UAAU;wBAC9B,UAAU,CAAC,IAAI,KAAK,WAAW;wBAC/B,UAAU,CAAC,IAAI,KAAK,OAAO,EAC3B,CAAC;wBACD,sBAAsB,GAAG,IAAI,CAAC;wBAC9B,mBAAmB,CAAC,GAAG,CACrB,UAAU,CAAC,IAAI,KAAK,WAAW;4BAC7B,CAAC,CAAC,WAAW;4BACb,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,OAAO;gCAC3B,CAAC,CAAC,OAAO;gCACT,CAAC,CAAC,UAAU,CACjB,CAAC;oBACJ,CAAC;oBACD,IAAI,GAAG,GAAG,OAAO,MAAM,KAAK,UAAU,CAAC,IAAI,IAAI,CAAC;oBAChD,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;wBAC/B,MAAM,OAAO,GAAG,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACxE,GAAG;4BACD,OAAO,KAAK,CAAC;gCACX,CAAC,CAAC,OAAO,MAAM,wBAAwB;gCACvC,CAAC,CAAC,OAAO,MAAM,UAAU,CAAC;oBAChC,CAAC;oBACD,IAAI,GAAG,CAAC,WAAW,KAAK,IAAI;wBAAE,GAAG,IAAI,YAAY,CAAC;oBAClD,IAAI,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC;wBAAE,GAAG,IAAI,eAAe,CAAC;oBAClE,GAAG,GAAG,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;oBACtD,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBACzC,IAAI,GAAG,GAAG,OAAO,MAAM,KAAK,IAAI,IAAI,CAAC;oBACrC,IAAI,GAAG,CAAC,WAAW,KAAK,IAAI;wBAAE,GAAG,IAAI,YAAY,CAAC;oBAClD,IAAI,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC;wBAAE,GAAG,IAAI,eAAe,CAAC;oBAClE,GAAG,GAAG,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;oBACtD,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,KAAK,GAAa;QACtB,UAAU;QACV,iBAAiB;QACjB,UAAU;QACV,OAAO;QACP,SAAS;QACT,SAAS;QACT,QAAQ;QACR,cAAc;QACd,SAAS;QACT,OAAO;QACP,UAAU;QACV,eAAe;QACf,yBAAyB;KAC1B,CAAC;IAEF,IAAI,sBAAsB,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,mBAAmB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CACR,YAAY,CAAC,GAAG,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAC1F,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,sCAAsC,CAAC,CAAC;IACvD,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEtB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAW,EAAE,MAAc,EAAE,OAAe;IACrE,IAAI,OAAO,KAAK,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,GAAG,GAAG,SAAS,OAAO,IAAI,CAAC;AACpC,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB;IACpC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC;QAChB,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,UAAU;YACb,OAAO,KAAK,CAAC;QACf,KAAK,0BAA0B,CAAC;QAChC,KAAK,6BAA6B;YAChC,OAAO,WAAW,CAAC;QACrB;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -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 @@
|
|
|
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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"}
|
package/dist/migrate/runner.d.ts
CHANGED
|
@@ -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
|
|
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;
|
|
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"}
|