drizzle-kit 0.24.2-218cddb → 0.24.2-277e6de
Sign up to get free protection for your applications and to get access to all the features.
- package/api.d.mts +96 -0
- package/api.d.ts +96 -0
- package/api.js +1694 -779
- package/api.mjs +1694 -779
- package/bin.cjs +988 -132
- package/index.d.mts +7 -0
- package/index.d.ts +7 -0
- package/package.json +2 -2
- package/utils.js +21 -3
- package/utils.mjs +21 -3
package/bin.cjs
CHANGED
@@ -1075,7 +1075,7 @@ var require_hanji = __commonJS({
|
|
1075
1075
|
});
|
1076
1076
|
|
1077
1077
|
// src/cli/views.ts
|
1078
|
-
var import_hanji, warning, err, info, grey, error, schema, isRenamePromptItem, ResolveColumnSelect, tableKey, ResolveSelect, ResolveSchemasSelect, Spinner, IntrospectProgress, MigrateProgress, ProgressView, DropMigrationView, trimmedRange;
|
1078
|
+
var import_hanji, warning, err, info, grey, error, schema, isRenamePromptItem, ResolveColumnSelect, tableKey, ResolveSelectNamed, ResolveSelect, ResolveSchemasSelect, Spinner, IntrospectProgress, MigrateProgress, ProgressView, DropMigrationView, trimmedRange;
|
1079
1079
|
var init_views = __esm({
|
1080
1080
|
"src/cli/views.ts"() {
|
1081
1081
|
"use strict";
|
@@ -1178,6 +1178,53 @@ Is ${source_default.bold.blue(
|
|
1178
1178
|
tableKey = (it) => {
|
1179
1179
|
return it.schema === "public" || !it.schema ? it.name : `${it.schema}.${it.name}`;
|
1180
1180
|
};
|
1181
|
+
ResolveSelectNamed = class extends import_hanji.Prompt {
|
1182
|
+
constructor(base, data, entityType) {
|
1183
|
+
super();
|
1184
|
+
this.base = base;
|
1185
|
+
this.entityType = entityType;
|
1186
|
+
this.on("attach", (terminal) => terminal.toggleCursor("hide"));
|
1187
|
+
this.state = new import_hanji.SelectState(data);
|
1188
|
+
this.state.bind(this);
|
1189
|
+
this.base = base;
|
1190
|
+
}
|
1191
|
+
render(status) {
|
1192
|
+
if (status === "submitted" || status === "aborted") {
|
1193
|
+
return "";
|
1194
|
+
}
|
1195
|
+
const key = this.base.name;
|
1196
|
+
let text = `
|
1197
|
+
Is ${source_default.bold.blue(key)} ${this.entityType} created or renamed from another ${this.entityType}?
|
1198
|
+
`;
|
1199
|
+
const isSelectedRenamed = isRenamePromptItem(
|
1200
|
+
this.state.items[this.state.selectedIdx]
|
1201
|
+
);
|
1202
|
+
const selectedPrefix = isSelectedRenamed ? source_default.yellow("\u276F ") : source_default.green("\u276F ");
|
1203
|
+
const labelLength = this.state.items.filter((it) => isRenamePromptItem(it)).map((_2) => {
|
1204
|
+
const it = _2;
|
1205
|
+
const keyFrom = it.from.name;
|
1206
|
+
return key.length + 3 + keyFrom.length;
|
1207
|
+
}).reduce((a, b) => {
|
1208
|
+
if (a > b) {
|
1209
|
+
return a;
|
1210
|
+
}
|
1211
|
+
return b;
|
1212
|
+
}, 0);
|
1213
|
+
const entityType = this.entityType;
|
1214
|
+
this.state.items.forEach((it, idx) => {
|
1215
|
+
const isSelected = idx === this.state.selectedIdx;
|
1216
|
+
const isRenamed = isRenamePromptItem(it);
|
1217
|
+
const title = isRenamed ? `${it.from.name} \u203A ${it.to.name}`.padEnd(labelLength, " ") : it.name.padEnd(labelLength, " ");
|
1218
|
+
const label = isRenamed ? `${source_default.yellow("~")} ${title} ${source_default.gray(`rename ${entityType}`)}` : `${source_default.green("+")} ${title} ${source_default.gray(`create ${entityType}`)}`;
|
1219
|
+
text += isSelected ? `${selectedPrefix}${label}` : ` ${label}`;
|
1220
|
+
text += idx != this.state.items.length - 1 ? "\n" : "";
|
1221
|
+
});
|
1222
|
+
return text;
|
1223
|
+
}
|
1224
|
+
result() {
|
1225
|
+
return this.state.items[this.state.selectedIdx];
|
1226
|
+
}
|
1227
|
+
};
|
1181
1228
|
ResolveSelect = class extends import_hanji.Prompt {
|
1182
1229
|
constructor(base, data, entityType) {
|
1183
1230
|
super();
|
@@ -1736,8 +1783,8 @@ var init_lib = __esm({
|
|
1736
1783
|
return void 0;
|
1737
1784
|
};
|
1738
1785
|
util2.isInteger = typeof Number.isInteger === "function" ? (val2) => Number.isInteger(val2) : (val2) => typeof val2 === "number" && isFinite(val2) && Math.floor(val2) === val2;
|
1739
|
-
function joinValues(
|
1740
|
-
return
|
1786
|
+
function joinValues(array2, separator = " | ") {
|
1787
|
+
return array2.map((val2) => typeof val2 === "string" ? `'${val2}'` : val2).join(separator);
|
1741
1788
|
}
|
1742
1789
|
util2.joinValues = joinValues;
|
1743
1790
|
util2.jsonStringifyReplacer = (_2, value) => {
|
@@ -5706,7 +5753,7 @@ var init_vector = __esm({
|
|
5706
5753
|
});
|
5707
5754
|
|
5708
5755
|
// src/serializer/pgSchema.ts
|
5709
|
-
var indexV2, columnV2, tableV2, enumSchemaV1, enumSchema, pgSchemaV2, references, columnV1, tableV1, pgSchemaV1, indexColumn, index2, indexV4, indexV5, indexV6, fk2, sequenceSchema, sequenceSquashed, columnV7, column2, columnSquashed, tableV32, compositePK2, uniqueConstraint2, tableV42, tableV5, tableV6, tableV7, table2, schemaHash2, kitInternals2, pgSchemaInternalV3, pgSchemaInternalV4, pgSchemaInternalV5, pgSchemaInternalV6, pgSchemaExternal, pgSchemaInternalV7, pgSchemaInternal, tableSquashed2, tableSquashedV42, pgSchemaSquashedV4, pgSchemaSquashedV6, pgSchemaSquashed, pgSchemaV3, pgSchemaV4, pgSchemaV5, pgSchemaV6, pgSchemaV7, pgSchema, backwardCompatiblePgSchema, PgSquasher, squashPgScheme, dryPg;
|
5756
|
+
var indexV2, columnV2, tableV2, enumSchemaV1, enumSchema, pgSchemaV2, references, columnV1, tableV1, pgSchemaV1, indexColumn, index2, indexV4, indexV5, indexV6, fk2, sequenceSchema, roleSchema, sequenceSquashed, columnV7, column2, columnSquashed, tableV32, compositePK2, uniqueConstraint2, policy, tableV42, tableV5, tableV6, tableV7, table2, schemaHash2, kitInternals2, pgSchemaInternalV3, pgSchemaInternalV4, pgSchemaInternalV5, pgSchemaInternalV6, pgSchemaExternal, pgSchemaInternalV7, pgSchemaInternal, tableSquashed2, tableSquashedV42, pgSchemaSquashedV4, pgSchemaSquashedV6, pgSchemaSquashed, pgSchemaV3, pgSchemaV4, pgSchemaV5, pgSchemaV6, pgSchemaV7, pgSchema, backwardCompatiblePgSchema, PgSquasher, squashPgScheme, dryPg;
|
5710
5757
|
var init_pgSchema = __esm({
|
5711
5758
|
"src/serializer/pgSchema.ts"() {
|
5712
5759
|
"use strict";
|
@@ -5838,6 +5885,12 @@ var init_pgSchema = __esm({
|
|
5838
5885
|
cycle: booleanType().optional(),
|
5839
5886
|
schema: stringType()
|
5840
5887
|
}).strict();
|
5888
|
+
roleSchema = objectType({
|
5889
|
+
name: stringType(),
|
5890
|
+
createDb: booleanType().optional(),
|
5891
|
+
createRole: booleanType().optional(),
|
5892
|
+
inherit: booleanType().optional()
|
5893
|
+
}).strict();
|
5841
5894
|
sequenceSquashed = objectType({
|
5842
5895
|
name: stringType(),
|
5843
5896
|
schema: stringType(),
|
@@ -5901,6 +5954,14 @@ var init_pgSchema = __esm({
|
|
5901
5954
|
columns: stringType().array(),
|
5902
5955
|
nullsNotDistinct: booleanType()
|
5903
5956
|
}).strict();
|
5957
|
+
policy = objectType({
|
5958
|
+
name: stringType(),
|
5959
|
+
as: enumType(["PERMISSIVE", "RESTRICTIVE"]).optional(),
|
5960
|
+
for: enumType(["ALL", "SELECT", "INSERT", "UPDATE", "DELETE"]).optional(),
|
5961
|
+
to: stringType().array().optional(),
|
5962
|
+
using: stringType().optional(),
|
5963
|
+
withCheck: stringType().optional()
|
5964
|
+
}).strict();
|
5904
5965
|
tableV42 = objectType({
|
5905
5966
|
name: stringType(),
|
5906
5967
|
schema: stringType(),
|
@@ -5942,7 +6003,8 @@ var init_pgSchema = __esm({
|
|
5942
6003
|
indexes: recordType(stringType(), index2),
|
5943
6004
|
foreignKeys: recordType(stringType(), fk2),
|
5944
6005
|
compositePrimaryKeys: recordType(stringType(), compositePK2),
|
5945
|
-
uniqueConstraints: recordType(stringType(), uniqueConstraint2).default({})
|
6006
|
+
uniqueConstraints: recordType(stringType(), uniqueConstraint2).default({}),
|
6007
|
+
policies: recordType(stringType(), policy).default({})
|
5946
6008
|
}).strict();
|
5947
6009
|
schemaHash2 = objectType({
|
5948
6010
|
id: stringType(),
|
@@ -6036,6 +6098,7 @@ var init_pgSchema = __esm({
|
|
6036
6098
|
enums: recordType(stringType(), enumSchema),
|
6037
6099
|
schemas: recordType(stringType(), stringType()),
|
6038
6100
|
sequences: recordType(stringType(), sequenceSchema).default({}),
|
6101
|
+
roles: recordType(stringType(), roleSchema).default({}),
|
6039
6102
|
_meta: objectType({
|
6040
6103
|
schemas: recordType(stringType(), stringType()),
|
6041
6104
|
tables: recordType(stringType(), stringType()),
|
@@ -6050,7 +6113,8 @@ var init_pgSchema = __esm({
|
|
6050
6113
|
indexes: recordType(stringType(), stringType()),
|
6051
6114
|
foreignKeys: recordType(stringType(), stringType()),
|
6052
6115
|
compositePrimaryKeys: recordType(stringType(), stringType()),
|
6053
|
-
uniqueConstraints: recordType(stringType(), stringType())
|
6116
|
+
uniqueConstraints: recordType(stringType(), stringType()),
|
6117
|
+
policies: recordType(stringType(), stringType())
|
6054
6118
|
}).strict();
|
6055
6119
|
tableSquashedV42 = objectType({
|
6056
6120
|
name: stringType(),
|
@@ -6079,7 +6143,8 @@ var init_pgSchema = __esm({
|
|
6079
6143
|
tables: recordType(stringType(), tableSquashed2),
|
6080
6144
|
enums: recordType(stringType(), enumSchema),
|
6081
6145
|
schemas: recordType(stringType(), stringType()),
|
6082
|
-
sequences: recordType(stringType(), sequenceSquashed)
|
6146
|
+
sequences: recordType(stringType(), sequenceSquashed),
|
6147
|
+
roles: recordType(stringType(), roleSchema).default({})
|
6083
6148
|
}).strict();
|
6084
6149
|
pgSchemaV3 = pgSchemaInternalV3.merge(schemaHash2);
|
6085
6150
|
pgSchemaV4 = pgSchemaInternalV4.merge(schemaHash2);
|
@@ -6162,6 +6227,25 @@ var init_pgSchema = __esm({
|
|
6162
6227
|
squashFK: (fk4) => {
|
6163
6228
|
return `${fk4.name};${fk4.tableFrom};${fk4.columnsFrom.join(",")};${fk4.tableTo};${fk4.columnsTo.join(",")};${fk4.onUpdate ?? ""};${fk4.onDelete ?? ""};${fk4.schemaTo || "public"}`;
|
6164
6229
|
},
|
6230
|
+
squashPolicy: (policy2) => {
|
6231
|
+
var _a;
|
6232
|
+
return `${policy2.name}--${policy2.as}--${policy2.for}--${(_a = policy2.to) == null ? void 0 : _a.join(",")}--${policy2.using}--${policy2.withCheck}`;
|
6233
|
+
},
|
6234
|
+
unsquashPolicy: (policy2) => {
|
6235
|
+
const splitted = policy2.split("--");
|
6236
|
+
return {
|
6237
|
+
name: splitted[0],
|
6238
|
+
as: splitted[1],
|
6239
|
+
for: splitted[2],
|
6240
|
+
to: splitted[3].split(","),
|
6241
|
+
using: splitted[4] !== "undefined" ? splitted[4] : void 0,
|
6242
|
+
withCheck: splitted[5] !== "undefined" ? splitted[5] : void 0
|
6243
|
+
};
|
6244
|
+
},
|
6245
|
+
squashPolicyPush: (policy2) => {
|
6246
|
+
var _a;
|
6247
|
+
return `${policy2.name}--${policy2.as}--${policy2.for}--${(_a = policy2.to) == null ? void 0 : _a.join(",")}`;
|
6248
|
+
},
|
6165
6249
|
squashPK: (pk) => {
|
6166
6250
|
return `${pk.columns.join(",")};${pk.name}`;
|
6167
6251
|
},
|
@@ -6264,6 +6348,9 @@ var init_pgSchema = __esm({
|
|
6264
6348
|
return PgSquasher.squashUnique(unq);
|
6265
6349
|
}
|
6266
6350
|
);
|
6351
|
+
const squashedPolicies = mapValues(it[1].policies, (policy2) => {
|
6352
|
+
return action === "push" ? PgSquasher.squashPolicyPush(policy2) : PgSquasher.squashPolicy(policy2);
|
6353
|
+
});
|
6267
6354
|
return [
|
6268
6355
|
it[0],
|
6269
6356
|
{
|
@@ -6273,7 +6360,8 @@ var init_pgSchema = __esm({
|
|
6273
6360
|
indexes: squashedIndexes,
|
6274
6361
|
foreignKeys: squashedFKs,
|
6275
6362
|
compositePrimaryKeys: squashedPKs,
|
6276
|
-
uniqueConstraints: squashedUniqueConstraints
|
6363
|
+
uniqueConstraints: squashedUniqueConstraints,
|
6364
|
+
policies: squashedPolicies
|
6277
6365
|
}
|
6278
6366
|
];
|
6279
6367
|
})
|
@@ -6296,7 +6384,8 @@ var init_pgSchema = __esm({
|
|
6296
6384
|
tables: mappedTables,
|
6297
6385
|
enums: json.enums,
|
6298
6386
|
schemas: json.schemas,
|
6299
|
-
sequences: mappedSequences
|
6387
|
+
sequences: mappedSequences,
|
6388
|
+
roles: json.roles
|
6300
6389
|
};
|
6301
6390
|
};
|
6302
6391
|
dryPg = pgSchema.parse({
|
@@ -10590,10 +10679,10 @@ var require_inflight = __commonJS({
|
|
10590
10679
|
}
|
10591
10680
|
function slice(args) {
|
10592
10681
|
var length = args.length;
|
10593
|
-
var
|
10682
|
+
var array2 = [];
|
10594
10683
|
for (var i2 = 0; i2 < length; i2++)
|
10595
|
-
|
10596
|
-
return
|
10684
|
+
array2[i2] = args[i2];
|
10685
|
+
return array2;
|
10597
10686
|
}
|
10598
10687
|
}
|
10599
10688
|
});
|
@@ -11412,6 +11501,13 @@ var init_cli = __esm({
|
|
11412
11501
|
breakpoints: booleanType().optional().default(true),
|
11413
11502
|
migrations: objectType({
|
11414
11503
|
prefix: prefix.optional().default("index")
|
11504
|
+
}).optional(),
|
11505
|
+
entities: objectType({
|
11506
|
+
roles: booleanType().or(objectType({
|
11507
|
+
provider: stringType().optional(),
|
11508
|
+
include: stringType().array().optional(),
|
11509
|
+
exclude: stringType().array().optional()
|
11510
|
+
})).optional().default(false)
|
11415
11511
|
}).optional()
|
11416
11512
|
}).passthrough();
|
11417
11513
|
configCheck = objectType({
|
@@ -17594,7 +17690,8 @@ var init_utils4 = __esm({
|
|
17594
17690
|
credentials: parsed2.data,
|
17595
17691
|
tablesFilter,
|
17596
17692
|
schemasFilter,
|
17597
|
-
prefix: ((_a = config.migrations) == null ? void 0 : _a.prefix) || "index"
|
17693
|
+
prefix: ((_a = config.migrations) == null ? void 0 : _a.prefix) || "index",
|
17694
|
+
entities: config.entities
|
17598
17695
|
};
|
17599
17696
|
}
|
17600
17697
|
if (dialect7 === "mysql") {
|
@@ -17611,7 +17708,8 @@ var init_utils4 = __esm({
|
|
17611
17708
|
credentials: parsed2.data,
|
17612
17709
|
tablesFilter,
|
17613
17710
|
schemasFilter,
|
17614
|
-
prefix: ((_b = config.migrations) == null ? void 0 : _b.prefix) || "index"
|
17711
|
+
prefix: ((_b = config.migrations) == null ? void 0 : _b.prefix) || "index",
|
17712
|
+
entities: config.entities
|
17615
17713
|
};
|
17616
17714
|
}
|
17617
17715
|
if (dialect7 === "sqlite") {
|
@@ -17628,7 +17726,8 @@ var init_utils4 = __esm({
|
|
17628
17726
|
credentials: parsed2.data,
|
17629
17727
|
tablesFilter,
|
17630
17728
|
schemasFilter,
|
17631
|
-
prefix: ((_c = config.migrations) == null ? void 0 : _c.prefix) || "index"
|
17729
|
+
prefix: ((_c = config.migrations) == null ? void 0 : _c.prefix) || "index",
|
17730
|
+
entities: config.entities
|
17632
17731
|
};
|
17633
17732
|
}
|
17634
17733
|
if (dialect7 === "turso") {
|
@@ -18464,6 +18563,7 @@ var init_pgImports = __esm({
|
|
18464
18563
|
const enums = [];
|
18465
18564
|
const schemas = [];
|
18466
18565
|
const sequences = [];
|
18566
|
+
const roles = [];
|
18467
18567
|
const i0values = Object.values(exports2);
|
18468
18568
|
i0values.forEach((t2) => {
|
18469
18569
|
if ((0, import_pg_core.isPgEnum)(t2)) {
|
@@ -18479,14 +18579,18 @@ var init_pgImports = __esm({
|
|
18479
18579
|
if ((0, import_pg_core.isPgSequence)(t2)) {
|
18480
18580
|
sequences.push(t2);
|
18481
18581
|
}
|
18582
|
+
if ((0, import_drizzle_orm4.is)(t2, import_pg_core.PgRole)) {
|
18583
|
+
roles.push(t2);
|
18584
|
+
}
|
18482
18585
|
});
|
18483
|
-
return { tables, enums, schemas, sequences };
|
18586
|
+
return { tables, enums, schemas, sequences, roles };
|
18484
18587
|
};
|
18485
18588
|
prepareFromPgImports = async (imports) => {
|
18486
18589
|
let tables = [];
|
18487
18590
|
let enums = [];
|
18488
18591
|
let schemas = [];
|
18489
18592
|
let sequences = [];
|
18593
|
+
let roles = [];
|
18490
18594
|
const { unregister } = await safeRegister();
|
18491
18595
|
for (let i2 = 0; i2 < imports.length; i2++) {
|
18492
18596
|
const it = imports[i2];
|
@@ -18496,9 +18600,10 @@ var init_pgImports = __esm({
|
|
18496
18600
|
enums.push(...prepared.enums);
|
18497
18601
|
schemas.push(...prepared.schemas);
|
18498
18602
|
sequences.push(...prepared.sequences);
|
18603
|
+
roles.push(...prepared.roles);
|
18499
18604
|
}
|
18500
18605
|
unregister();
|
18501
|
-
return { tables: Array.from(new Set(tables)), enums, schemas, sequences };
|
18606
|
+
return { tables: Array.from(new Set(tables)), enums, schemas, sequences, roles };
|
18502
18607
|
};
|
18503
18608
|
}
|
18504
18609
|
});
|
@@ -18506,9 +18611,11 @@ var init_pgImports = __esm({
|
|
18506
18611
|
// src/serializer/pgSerializer.ts
|
18507
18612
|
var pgSerializer_exports = {};
|
18508
18613
|
__export(pgSerializer_exports, {
|
18614
|
+
buildArrayString: () => buildArrayString,
|
18509
18615
|
fromDatabase: () => fromDatabase2,
|
18510
18616
|
generatePgSnapshot: () => generatePgSnapshot,
|
18511
|
-
indexName: () => indexName2
|
18617
|
+
indexName: () => indexName2,
|
18618
|
+
minRangeForIdentityBasedOn: () => minRangeForIdentityBasedOn
|
18512
18619
|
});
|
18513
18620
|
function stringFromIdentityProperty(field) {
|
18514
18621
|
return typeof field === "string" ? field : typeof field === "undefined" ? void 0 : String(field);
|
@@ -18522,9 +18629,9 @@ function minRangeForIdentityBasedOn(columnType) {
|
|
18522
18629
|
function stringFromDatabaseIdentityProperty(field) {
|
18523
18630
|
return typeof field === "string" ? field : typeof field === "undefined" ? void 0 : typeof field === "bigint" ? field.toString() : String(field);
|
18524
18631
|
}
|
18525
|
-
function buildArrayString(
|
18632
|
+
function buildArrayString(array2, sqlType) {
|
18526
18633
|
sqlType = sqlType.split("[")[0];
|
18527
|
-
const values =
|
18634
|
+
const values = array2.map((value) => {
|
18528
18635
|
if (typeof value === "number" || typeof value === "bigint") {
|
18529
18636
|
return value.toString();
|
18530
18637
|
} else if (typeof value === "boolean") {
|
@@ -18546,6 +18653,40 @@ function buildArrayString(array, sqlType) {
|
|
18546
18653
|
}).join(",");
|
18547
18654
|
return `{${values}}`;
|
18548
18655
|
}
|
18656
|
+
function prepareRoles(entities) {
|
18657
|
+
let useRoles = false;
|
18658
|
+
const includeRoles = [];
|
18659
|
+
const excludeRoles = [];
|
18660
|
+
if (entities && entities.roles) {
|
18661
|
+
if (typeof entities.roles === "object") {
|
18662
|
+
if (entities.roles.provider) {
|
18663
|
+
if (entities.roles.provider === "supabase") {
|
18664
|
+
excludeRoles.push(...[
|
18665
|
+
"anon",
|
18666
|
+
"authenticator",
|
18667
|
+
"authenticated",
|
18668
|
+
"service_role",
|
18669
|
+
"supabase_auth_admin",
|
18670
|
+
"supabase_storage_admin",
|
18671
|
+
"dashboard_user",
|
18672
|
+
"supabase_admin"
|
18673
|
+
]);
|
18674
|
+
} else if (entities.roles.provider === "neon") {
|
18675
|
+
excludeRoles.push(...["authenticated", "anonymous"]);
|
18676
|
+
}
|
18677
|
+
}
|
18678
|
+
if (entities.roles.include) {
|
18679
|
+
includeRoles.push(...entities.roles.include);
|
18680
|
+
}
|
18681
|
+
if (entities.roles.exclude) {
|
18682
|
+
excludeRoles.push(...entities.roles.exclude);
|
18683
|
+
}
|
18684
|
+
} else {
|
18685
|
+
useRoles = entities.roles;
|
18686
|
+
}
|
18687
|
+
}
|
18688
|
+
return { useRoles, includeRoles, excludeRoles };
|
18689
|
+
}
|
18549
18690
|
var import_drizzle_orm5, import_pg_core2, import_pg_core3, dialect5, indexName2, generatePgSnapshot, trimChar, fromDatabase2, defaultForColumn;
|
18550
18691
|
var init_pgSerializer = __esm({
|
18551
18692
|
"src/serializer/pgSerializer.ts"() {
|
@@ -18562,10 +18703,11 @@ var init_pgSerializer = __esm({
|
|
18562
18703
|
indexName2 = (tableName, columns) => {
|
18563
18704
|
return `${tableName}_${columns.join("_")}_index`;
|
18564
18705
|
};
|
18565
|
-
generatePgSnapshot = (tables, enums, schemas, sequences, schemaFilter) => {
|
18706
|
+
generatePgSnapshot = (tables, enums, schemas, sequences, roles, schemaFilter) => {
|
18566
18707
|
var _a, _b, _c, _d, _e, _f;
|
18567
18708
|
const result = {};
|
18568
18709
|
const sequencesToReturn = {};
|
18710
|
+
const rolesToReturn = {};
|
18569
18711
|
const indexesInSchema = {};
|
18570
18712
|
for (const table4 of tables) {
|
18571
18713
|
const {
|
@@ -18576,7 +18718,8 @@ var init_pgSerializer = __esm({
|
|
18576
18718
|
checks,
|
18577
18719
|
schema: schema5,
|
18578
18720
|
primaryKeys,
|
18579
|
-
uniqueConstraints
|
18721
|
+
uniqueConstraints,
|
18722
|
+
policies
|
18580
18723
|
} = (0, import_pg_core3.getTableConfig)(table4);
|
18581
18724
|
if (schemaFilter && !schemaFilter.includes(schema5 ?? "public")) {
|
18582
18725
|
continue;
|
@@ -18586,6 +18729,7 @@ var init_pgSerializer = __esm({
|
|
18586
18729
|
const foreignKeysObject = {};
|
18587
18730
|
const primaryKeysObject = {};
|
18588
18731
|
const uniqueConstraintObject = {};
|
18732
|
+
const policiesObject = {};
|
18589
18733
|
columns.forEach((column7) => {
|
18590
18734
|
var _a2, _b2, _c2, _d2, _e2, _f2;
|
18591
18735
|
const notNull = column7.notNull;
|
@@ -18831,6 +18975,35 @@ ${withStyle.errorWarning(
|
|
18831
18975
|
with: value.config.with ?? {}
|
18832
18976
|
};
|
18833
18977
|
});
|
18978
|
+
policies.forEach((policy2) => {
|
18979
|
+
var _a2, _b2;
|
18980
|
+
const mappedTo = [];
|
18981
|
+
if (!policy2.to) {
|
18982
|
+
mappedTo.push("public");
|
18983
|
+
} else {
|
18984
|
+
if (policy2.to && typeof policy2.to === "string") {
|
18985
|
+
mappedTo.push(policy2.to);
|
18986
|
+
} else if (policy2.to && (0, import_drizzle_orm5.is)(policy2.to, import_pg_core2.PgRole)) {
|
18987
|
+
mappedTo.push(policy2.to.name);
|
18988
|
+
} else if (policy2.to && Array.isArray(policy2.to)) {
|
18989
|
+
policy2.to.forEach((it) => {
|
18990
|
+
if (typeof it === "string") {
|
18991
|
+
mappedTo.push(it);
|
18992
|
+
} else if ((0, import_drizzle_orm5.is)(it, import_pg_core2.PgRole)) {
|
18993
|
+
mappedTo.push(it.name);
|
18994
|
+
}
|
18995
|
+
});
|
18996
|
+
}
|
18997
|
+
}
|
18998
|
+
policiesObject[policy2.name] = {
|
18999
|
+
name: policy2.name,
|
19000
|
+
as: ((_a2 = policy2.as) == null ? void 0 : _a2.toUpperCase()) ?? "PERMISSIVE",
|
19001
|
+
for: ((_b2 = policy2.for) == null ? void 0 : _b2.toUpperCase()) ?? "ALL",
|
19002
|
+
to: mappedTo.sort(),
|
19003
|
+
using: (0, import_drizzle_orm5.is)(policy2.using, import_drizzle_orm5.SQL) ? dialect5.sqlToQuery(policy2.using).sql : void 0,
|
19004
|
+
withCheck: (0, import_drizzle_orm5.is)(policy2.withCheck, import_drizzle_orm5.SQL) ? dialect5.sqlToQuery(policy2.withCheck).sql : void 0
|
19005
|
+
};
|
19006
|
+
});
|
18834
19007
|
const tableKey2 = `${schema5 ?? "public"}.${tableName}`;
|
18835
19008
|
result[tableKey2] = {
|
18836
19009
|
name: tableName,
|
@@ -18839,7 +19012,8 @@ ${withStyle.errorWarning(
|
|
18839
19012
|
indexes: indexesObject,
|
18840
19013
|
foreignKeys: foreignKeysObject,
|
18841
19014
|
compositePrimaryKeys: primaryKeysObject,
|
18842
|
-
uniqueConstraints: uniqueConstraintObject
|
19015
|
+
uniqueConstraints: uniqueConstraintObject,
|
19016
|
+
policies: policiesObject
|
18843
19017
|
};
|
18844
19018
|
}
|
18845
19019
|
for (const sequence of sequences) {
|
@@ -18863,6 +19037,16 @@ ${withStyle.errorWarning(
|
|
18863
19037
|
} else {
|
18864
19038
|
}
|
18865
19039
|
}
|
19040
|
+
for (const role of roles) {
|
19041
|
+
if (!role._existing) {
|
19042
|
+
rolesToReturn[role.name] = {
|
19043
|
+
name: role.name,
|
19044
|
+
createDb: role.createDb === void 0 ? false : role.createDb,
|
19045
|
+
createRole: role.createRole === void 0 ? false : role.createRole,
|
19046
|
+
inherit: role.inherit === void 0 ? true : role.inherit
|
19047
|
+
};
|
19048
|
+
}
|
19049
|
+
}
|
18866
19050
|
const enumsToReturn = enums.reduce((map, obj) => {
|
18867
19051
|
const enumSchema3 = obj.schema || "public";
|
18868
19052
|
const key = `${enumSchema3}.${obj.enumName}`;
|
@@ -18889,6 +19073,7 @@ ${withStyle.errorWarning(
|
|
18889
19073
|
enums: enumsToReturn,
|
18890
19074
|
schemas: schemasObject,
|
18891
19075
|
sequences: sequencesToReturn,
|
19076
|
+
roles: rolesToReturn,
|
18892
19077
|
_meta: {
|
18893
19078
|
schemas: {},
|
18894
19079
|
tables: {},
|
@@ -18905,7 +19090,7 @@ ${withStyle.errorWarning(
|
|
18905
19090
|
--end;
|
18906
19091
|
return start > 0 || end < str.length ? str.substring(start, end) : str.toString();
|
18907
19092
|
};
|
18908
|
-
fromDatabase2 = async (db, tablesFilter = () => true, schemaFilters, progressCallback) => {
|
19093
|
+
fromDatabase2 = async (db, tablesFilter = () => true, schemaFilters, entities, progressCallback) => {
|
18909
19094
|
const result = {};
|
18910
19095
|
const internals = { tables: {} };
|
18911
19096
|
const where = schemaFilters.map((t2) => `table_schema = '${t2}'`).join(" or ");
|
@@ -18987,6 +19172,55 @@ ${withStyle.errorWarning(
|
|
18987
19172
|
if (progressCallback) {
|
18988
19173
|
progressCallback("enums", Object.keys(enumsToReturn).length, "done");
|
18989
19174
|
}
|
19175
|
+
const allRoles = await db.query(
|
19176
|
+
`SELECT rolname, rolinherit, rolcreatedb, rolcreaterole FROM pg_roles;`
|
19177
|
+
);
|
19178
|
+
const rolesToReturn = {};
|
19179
|
+
const preparedRoles = prepareRoles(entities);
|
19180
|
+
if (preparedRoles.useRoles || !(preparedRoles.includeRoles.length === 0 && preparedRoles.excludeRoles.length === 0)) {
|
19181
|
+
for (const dbRole of allRoles) {
|
19182
|
+
if (preparedRoles.useRoles) {
|
19183
|
+
rolesToReturn[dbRole.rolname] = {
|
19184
|
+
createDb: dbRole.rolcreatedb,
|
19185
|
+
createRole: dbRole.rolcreatedb,
|
19186
|
+
inherit: dbRole.rolinherit,
|
19187
|
+
name: dbRole.rolname
|
19188
|
+
};
|
19189
|
+
} else {
|
19190
|
+
if (preparedRoles.includeRoles.length === 0 && preparedRoles.excludeRoles.length === 0)
|
19191
|
+
continue;
|
19192
|
+
if (preparedRoles.includeRoles.includes(dbRole.rolname) && preparedRoles.excludeRoles.includes(dbRole.rolname))
|
19193
|
+
continue;
|
19194
|
+
if (preparedRoles.excludeRoles.includes(dbRole.rolname))
|
19195
|
+
continue;
|
19196
|
+
if (!preparedRoles.includeRoles.includes(dbRole.rolname))
|
19197
|
+
continue;
|
19198
|
+
rolesToReturn[dbRole.rolname] = {
|
19199
|
+
createDb: dbRole.rolcreatedb,
|
19200
|
+
createRole: dbRole.rolcreaterole,
|
19201
|
+
inherit: dbRole.rolinherit,
|
19202
|
+
name: dbRole.rolname
|
19203
|
+
};
|
19204
|
+
}
|
19205
|
+
}
|
19206
|
+
}
|
19207
|
+
const wherePolicies = schemaFilters.map((t2) => `schemaname = '${t2}'`).join(" or ");
|
19208
|
+
const policiesByTable = {};
|
19209
|
+
const allPolicies = await db.query(`SELECT schemaname, tablename, policyname as name, permissive as "as", roles as to, cmd as for, qual as using, with_check as "withCheck" FROM pg_policies${wherePolicies === "" ? "" : ` WHERE ${wherePolicies}`};`);
|
19210
|
+
for (const dbPolicy of allPolicies) {
|
19211
|
+
const { tablename, schemaname, to, withCheck, using, ...rest } = dbPolicy;
|
19212
|
+
const tableForPolicy = policiesByTable[`${schemaname}.${tablename}`];
|
19213
|
+
const parsedTo = to === "{}" ? [] : to.substring(1, to.length - 1).split(/\s*,\s*/g).sort();
|
19214
|
+
const parsedWithCheck = withCheck === null ? void 0 : withCheck;
|
19215
|
+
const parsedUsing = using === null ? void 0 : using;
|
19216
|
+
if (tableForPolicy) {
|
19217
|
+
tableForPolicy[dbPolicy.name] = { ...rest, to: parsedTo };
|
19218
|
+
} else {
|
19219
|
+
policiesByTable[`${schemaname}.${tablename}`] = {
|
19220
|
+
[dbPolicy.name]: { ...rest, to: parsedTo, withCheck: parsedWithCheck, using: parsedUsing }
|
19221
|
+
};
|
19222
|
+
}
|
19223
|
+
}
|
18990
19224
|
const sequencesInColumns = [];
|
18991
19225
|
const all = allTables.map((row) => {
|
18992
19226
|
return new Promise(async (res, rej) => {
|
@@ -19383,7 +19617,8 @@ ${withStyle.errorWarning(
|
|
19383
19617
|
indexes: indexToReturn,
|
19384
19618
|
foreignKeys: foreignKeysToReturn,
|
19385
19619
|
compositePrimaryKeys: primaryKeys,
|
19386
|
-
uniqueConstraints: uniqueConstrains
|
19620
|
+
uniqueConstraints: uniqueConstrains,
|
19621
|
+
policies: policiesByTable[`${tableSchema}.${tableName}`] ?? {}
|
19387
19622
|
};
|
19388
19623
|
} catch (e2) {
|
19389
19624
|
rej(e2);
|
@@ -19410,6 +19645,7 @@ ${withStyle.errorWarning(
|
|
19410
19645
|
enums: enumsToReturn,
|
19411
19646
|
schemas: schemasObject,
|
19412
19647
|
sequences: sequencesToReturn,
|
19648
|
+
roles: rolesToReturn,
|
19413
19649
|
_meta: {
|
19414
19650
|
schemas: {},
|
19415
19651
|
tables: {},
|
@@ -20052,10 +20288,10 @@ ${filenames.join("\n")}
|
|
20052
20288
|
const filenames = prepareFilenames(path5);
|
20053
20289
|
const { prepareFromPgImports: prepareFromPgImports2 } = await Promise.resolve().then(() => (init_pgImports(), pgImports_exports));
|
20054
20290
|
const { generatePgSnapshot: generatePgSnapshot2 } = await Promise.resolve().then(() => (init_pgSerializer(), pgSerializer_exports));
|
20055
|
-
const { tables, enums, schemas, sequences } = await prepareFromPgImports2(
|
20291
|
+
const { tables, enums, schemas, sequences, roles } = await prepareFromPgImports2(
|
20056
20292
|
filenames
|
20057
20293
|
);
|
20058
|
-
return generatePgSnapshot2(tables, enums, schemas, sequences, schemaFilter);
|
20294
|
+
return generatePgSnapshot2(tables, enums, schemas, sequences, roles, schemaFilter);
|
20059
20295
|
};
|
20060
20296
|
serializeSQLite = async (path5) => {
|
20061
20297
|
const filenames = prepareFilenames(path5);
|
@@ -20250,57 +20486,57 @@ var require_heap = __commonJS({
|
|
20250
20486
|
}
|
20251
20487
|
return [].splice.apply(a, [lo, lo - lo].concat(x2)), x2;
|
20252
20488
|
};
|
20253
|
-
heappush = function(
|
20489
|
+
heappush = function(array2, item, cmp) {
|
20254
20490
|
if (cmp == null) {
|
20255
20491
|
cmp = defaultCmp;
|
20256
20492
|
}
|
20257
|
-
|
20258
|
-
return _siftdown(
|
20493
|
+
array2.push(item);
|
20494
|
+
return _siftdown(array2, 0, array2.length - 1, cmp);
|
20259
20495
|
};
|
20260
|
-
heappop = function(
|
20496
|
+
heappop = function(array2, cmp) {
|
20261
20497
|
var lastelt, returnitem;
|
20262
20498
|
if (cmp == null) {
|
20263
20499
|
cmp = defaultCmp;
|
20264
20500
|
}
|
20265
|
-
lastelt =
|
20266
|
-
if (
|
20267
|
-
returnitem =
|
20268
|
-
|
20269
|
-
_siftup(
|
20501
|
+
lastelt = array2.pop();
|
20502
|
+
if (array2.length) {
|
20503
|
+
returnitem = array2[0];
|
20504
|
+
array2[0] = lastelt;
|
20505
|
+
_siftup(array2, 0, cmp);
|
20270
20506
|
} else {
|
20271
20507
|
returnitem = lastelt;
|
20272
20508
|
}
|
20273
20509
|
return returnitem;
|
20274
20510
|
};
|
20275
|
-
heapreplace = function(
|
20511
|
+
heapreplace = function(array2, item, cmp) {
|
20276
20512
|
var returnitem;
|
20277
20513
|
if (cmp == null) {
|
20278
20514
|
cmp = defaultCmp;
|
20279
20515
|
}
|
20280
|
-
returnitem =
|
20281
|
-
|
20282
|
-
_siftup(
|
20516
|
+
returnitem = array2[0];
|
20517
|
+
array2[0] = item;
|
20518
|
+
_siftup(array2, 0, cmp);
|
20283
20519
|
return returnitem;
|
20284
20520
|
};
|
20285
|
-
heappushpop = function(
|
20521
|
+
heappushpop = function(array2, item, cmp) {
|
20286
20522
|
var _ref;
|
20287
20523
|
if (cmp == null) {
|
20288
20524
|
cmp = defaultCmp;
|
20289
20525
|
}
|
20290
|
-
if (
|
20291
|
-
_ref = [
|
20292
|
-
_siftup(
|
20526
|
+
if (array2.length && cmp(array2[0], item) < 0) {
|
20527
|
+
_ref = [array2[0], item], item = _ref[0], array2[0] = _ref[1];
|
20528
|
+
_siftup(array2, 0, cmp);
|
20293
20529
|
}
|
20294
20530
|
return item;
|
20295
20531
|
};
|
20296
|
-
heapify = function(
|
20532
|
+
heapify = function(array2, cmp) {
|
20297
20533
|
var i2, _i, _j, _len, _ref, _ref1, _results, _results1;
|
20298
20534
|
if (cmp == null) {
|
20299
20535
|
cmp = defaultCmp;
|
20300
20536
|
}
|
20301
20537
|
_ref1 = function() {
|
20302
20538
|
_results1 = [];
|
20303
|
-
for (var _j2 = 0, _ref2 = floor(
|
20539
|
+
for (var _j2 = 0, _ref2 = floor(array2.length / 2); 0 <= _ref2 ? _j2 < _ref2 : _j2 > _ref2; 0 <= _ref2 ? _j2++ : _j2--) {
|
20304
20540
|
_results1.push(_j2);
|
20305
20541
|
}
|
20306
20542
|
return _results1;
|
@@ -20308,51 +20544,51 @@ var require_heap = __commonJS({
|
|
20308
20544
|
_results = [];
|
20309
20545
|
for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
|
20310
20546
|
i2 = _ref1[_i];
|
20311
|
-
_results.push(_siftup(
|
20547
|
+
_results.push(_siftup(array2, i2, cmp));
|
20312
20548
|
}
|
20313
20549
|
return _results;
|
20314
20550
|
};
|
20315
|
-
updateItem = function(
|
20551
|
+
updateItem = function(array2, item, cmp) {
|
20316
20552
|
var pos;
|
20317
20553
|
if (cmp == null) {
|
20318
20554
|
cmp = defaultCmp;
|
20319
20555
|
}
|
20320
|
-
pos =
|
20556
|
+
pos = array2.indexOf(item);
|
20321
20557
|
if (pos === -1) {
|
20322
20558
|
return;
|
20323
20559
|
}
|
20324
|
-
_siftdown(
|
20325
|
-
return _siftup(
|
20560
|
+
_siftdown(array2, 0, pos, cmp);
|
20561
|
+
return _siftup(array2, pos, cmp);
|
20326
20562
|
};
|
20327
|
-
nlargest = function(
|
20563
|
+
nlargest = function(array2, n, cmp) {
|
20328
20564
|
var elem, result, _i, _len, _ref;
|
20329
20565
|
if (cmp == null) {
|
20330
20566
|
cmp = defaultCmp;
|
20331
20567
|
}
|
20332
|
-
result =
|
20568
|
+
result = array2.slice(0, n);
|
20333
20569
|
if (!result.length) {
|
20334
20570
|
return result;
|
20335
20571
|
}
|
20336
20572
|
heapify(result, cmp);
|
20337
|
-
_ref =
|
20573
|
+
_ref = array2.slice(n);
|
20338
20574
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
20339
20575
|
elem = _ref[_i];
|
20340
20576
|
heappushpop(result, elem, cmp);
|
20341
20577
|
}
|
20342
20578
|
return result.sort(cmp).reverse();
|
20343
20579
|
};
|
20344
|
-
nsmallest = function(
|
20580
|
+
nsmallest = function(array2, n, cmp) {
|
20345
20581
|
var elem, i2, los, result, _i, _j, _len, _ref, _ref1, _results;
|
20346
20582
|
if (cmp == null) {
|
20347
20583
|
cmp = defaultCmp;
|
20348
20584
|
}
|
20349
|
-
if (n * 10 <=
|
20350
|
-
result =
|
20585
|
+
if (n * 10 <= array2.length) {
|
20586
|
+
result = array2.slice(0, n).sort(cmp);
|
20351
20587
|
if (!result.length) {
|
20352
20588
|
return result;
|
20353
20589
|
}
|
20354
20590
|
los = result[result.length - 1];
|
20355
|
-
_ref =
|
20591
|
+
_ref = array2.slice(n);
|
20356
20592
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
20357
20593
|
elem = _ref[_i];
|
20358
20594
|
if (cmp(elem, los) < 0) {
|
@@ -20363,51 +20599,51 @@ var require_heap = __commonJS({
|
|
20363
20599
|
}
|
20364
20600
|
return result;
|
20365
20601
|
}
|
20366
|
-
heapify(
|
20602
|
+
heapify(array2, cmp);
|
20367
20603
|
_results = [];
|
20368
|
-
for (i2 = _j = 0, _ref1 = min(n,
|
20369
|
-
_results.push(heappop(
|
20604
|
+
for (i2 = _j = 0, _ref1 = min(n, array2.length); 0 <= _ref1 ? _j < _ref1 : _j > _ref1; i2 = 0 <= _ref1 ? ++_j : --_j) {
|
20605
|
+
_results.push(heappop(array2, cmp));
|
20370
20606
|
}
|
20371
20607
|
return _results;
|
20372
20608
|
};
|
20373
|
-
_siftdown = function(
|
20609
|
+
_siftdown = function(array2, startpos, pos, cmp) {
|
20374
20610
|
var newitem, parent, parentpos;
|
20375
20611
|
if (cmp == null) {
|
20376
20612
|
cmp = defaultCmp;
|
20377
20613
|
}
|
20378
|
-
newitem =
|
20614
|
+
newitem = array2[pos];
|
20379
20615
|
while (pos > startpos) {
|
20380
20616
|
parentpos = pos - 1 >> 1;
|
20381
|
-
parent =
|
20617
|
+
parent = array2[parentpos];
|
20382
20618
|
if (cmp(newitem, parent) < 0) {
|
20383
|
-
|
20619
|
+
array2[pos] = parent;
|
20384
20620
|
pos = parentpos;
|
20385
20621
|
continue;
|
20386
20622
|
}
|
20387
20623
|
break;
|
20388
20624
|
}
|
20389
|
-
return
|
20625
|
+
return array2[pos] = newitem;
|
20390
20626
|
};
|
20391
|
-
_siftup = function(
|
20627
|
+
_siftup = function(array2, pos, cmp) {
|
20392
20628
|
var childpos, endpos, newitem, rightpos, startpos;
|
20393
20629
|
if (cmp == null) {
|
20394
20630
|
cmp = defaultCmp;
|
20395
20631
|
}
|
20396
|
-
endpos =
|
20632
|
+
endpos = array2.length;
|
20397
20633
|
startpos = pos;
|
20398
|
-
newitem =
|
20634
|
+
newitem = array2[pos];
|
20399
20635
|
childpos = 2 * pos + 1;
|
20400
20636
|
while (childpos < endpos) {
|
20401
20637
|
rightpos = childpos + 1;
|
20402
|
-
if (rightpos < endpos && !(cmp(
|
20638
|
+
if (rightpos < endpos && !(cmp(array2[childpos], array2[rightpos]) < 0)) {
|
20403
20639
|
childpos = rightpos;
|
20404
20640
|
}
|
20405
|
-
|
20641
|
+
array2[pos] = array2[childpos];
|
20406
20642
|
pos = childpos;
|
20407
20643
|
childpos = 2 * pos + 1;
|
20408
20644
|
}
|
20409
|
-
|
20410
|
-
return _siftdown(
|
20645
|
+
array2[pos] = newitem;
|
20646
|
+
return _siftdown(array2, startpos, pos, cmp);
|
20411
20647
|
};
|
20412
20648
|
Heap = function() {
|
20413
20649
|
Heap2.push = heappush;
|
@@ -22320,12 +22556,12 @@ var require_lib = __commonJS({
|
|
22320
22556
|
}
|
22321
22557
|
return bestMatch;
|
22322
22558
|
}
|
22323
|
-
scalarize(
|
22559
|
+
scalarize(array2, originals, fuzzyOriginals) {
|
22324
22560
|
const fuzzyMatches = [];
|
22325
22561
|
if (fuzzyOriginals) {
|
22326
22562
|
const keyScores = {};
|
22327
|
-
for (let index4 = 0; index4 <
|
22328
|
-
const item =
|
22563
|
+
for (let index4 = 0; index4 < array2.length; index4++) {
|
22564
|
+
const item = array2[index4];
|
22329
22565
|
if (this.isScalar(item)) {
|
22330
22566
|
continue;
|
22331
22567
|
}
|
@@ -22339,8 +22575,8 @@ var require_lib = __commonJS({
|
|
22339
22575
|
}
|
22340
22576
|
}
|
22341
22577
|
const result = [];
|
22342
|
-
for (let index4 = 0; index4 <
|
22343
|
-
const item =
|
22578
|
+
for (let index4 = 0; index4 < array2.length; index4++) {
|
22579
|
+
const item = array2[index4];
|
22344
22580
|
if (this.isScalar(item)) {
|
22345
22581
|
result.push(item);
|
22346
22582
|
} else {
|
@@ -22562,6 +22798,37 @@ function diffColumns(left, right) {
|
|
22562
22798
|
);
|
22563
22799
|
return alteredTables;
|
22564
22800
|
}
|
22801
|
+
function diffPolicies(left, right) {
|
22802
|
+
left = JSON.parse(JSON.stringify(left));
|
22803
|
+
right = JSON.parse(JSON.stringify(right));
|
22804
|
+
const result = (0, import_json_diff.diff)(left, right) ?? {};
|
22805
|
+
const alteredTables = Object.fromEntries(
|
22806
|
+
Object.entries(result).filter((it) => {
|
22807
|
+
return !(it[0].includes("__added") || it[0].includes("__deleted"));
|
22808
|
+
}).map((tableEntry) => {
|
22809
|
+
const deletedPolicies = Object.entries(tableEntry[1].policies ?? {}).filter((it) => {
|
22810
|
+
return it[0].endsWith("__deleted");
|
22811
|
+
}).map((it) => {
|
22812
|
+
return it[1];
|
22813
|
+
});
|
22814
|
+
const addedPolicies = Object.entries(tableEntry[1].policies ?? {}).filter((it) => {
|
22815
|
+
return it[0].endsWith("__added");
|
22816
|
+
}).map((it) => {
|
22817
|
+
return it[1];
|
22818
|
+
});
|
22819
|
+
tableEntry[1].policies = {
|
22820
|
+
added: addedPolicies,
|
22821
|
+
deleted: deletedPolicies
|
22822
|
+
};
|
22823
|
+
const table4 = left[tableEntry[0]];
|
22824
|
+
return [
|
22825
|
+
tableEntry[0],
|
22826
|
+
{ name: table4.name, schema: table4.schema, ...tableEntry[1] }
|
22827
|
+
];
|
22828
|
+
})
|
22829
|
+
);
|
22830
|
+
return alteredTables;
|
22831
|
+
}
|
22565
22832
|
function applyJsonDiff(json1, json2) {
|
22566
22833
|
json1 = JSON.parse(JSON.stringify(json1));
|
22567
22834
|
json2 = JSON.parse(JSON.stringify(json2));
|
@@ -22571,6 +22838,7 @@ function applyJsonDiff(json1, json2) {
|
|
22571
22838
|
difference.tables = difference.tables || {};
|
22572
22839
|
difference.enums = difference.enums || {};
|
22573
22840
|
difference.sequences = difference.sequences || {};
|
22841
|
+
difference.roles = difference.roles || {};
|
22574
22842
|
const schemaKeys = Object.keys(difference.schemas);
|
22575
22843
|
for (let key of schemaKeys) {
|
22576
22844
|
if (key.endsWith("__added") || key.endsWith("__deleted")) {
|
@@ -22626,6 +22894,10 @@ function applyJsonDiff(json1, json2) {
|
|
22626
22894
|
const alteredSequences = sequencesEntries.filter((it) => !(it[0].includes("__added") || it[0].includes("__deleted")) && "values" in it[1]).map((it) => {
|
22627
22895
|
return json2.sequences[it[0]];
|
22628
22896
|
});
|
22897
|
+
const rolesEntries = Object.entries(difference.roles);
|
22898
|
+
const alteredRoles = rolesEntries.filter((it) => !(it[0].includes("__added") || it[0].includes("__deleted"))).map((it) => {
|
22899
|
+
return json2.roles[it[0]];
|
22900
|
+
});
|
22629
22901
|
const alteredTablesWithColumns = Object.values(difference.tables).map(
|
22630
22902
|
(table4) => {
|
22631
22903
|
return findAlternationsInTable(table4);
|
@@ -22634,7 +22906,8 @@ function applyJsonDiff(json1, json2) {
|
|
22634
22906
|
return {
|
22635
22907
|
alteredTablesWithColumns,
|
22636
22908
|
alteredEnums,
|
22637
|
-
alteredSequences
|
22909
|
+
alteredSequences,
|
22910
|
+
alteredRoles
|
22638
22911
|
};
|
22639
22912
|
}
|
22640
22913
|
var import_json_diff, mapArraysDiff, findAlternationsInTable, alternationsInColumn;
|
@@ -22694,6 +22967,21 @@ var init_jsonDiffer = __esm({
|
|
22694
22967
|
return !it[0].endsWith("__deleted") && !it[0].endsWith("__added");
|
22695
22968
|
})
|
22696
22969
|
);
|
22970
|
+
const deletedPolicies = Object.fromEntries(
|
22971
|
+
Object.entries(table4.policies__deleted || {}).concat(
|
22972
|
+
Object.entries(table4.policies || {}).filter((it) => it[0].includes("__deleted"))
|
22973
|
+
).map((entry) => [entry[0].replace("__deleted", ""), entry[1]])
|
22974
|
+
);
|
22975
|
+
const addedPolicies = Object.fromEntries(
|
22976
|
+
Object.entries(table4.policies__added || {}).concat(
|
22977
|
+
Object.entries(table4.policies || {}).filter((it) => it[0].includes("__added"))
|
22978
|
+
).map((entry) => [entry[0].replace("__added", ""), entry[1]])
|
22979
|
+
);
|
22980
|
+
const alteredPolicies = Object.fromEntries(
|
22981
|
+
Object.entries(table4.policies || {}).filter((it) => {
|
22982
|
+
return !it[0].endsWith("__deleted") && !it[0].endsWith("__added");
|
22983
|
+
})
|
22984
|
+
);
|
22697
22985
|
const deletedForeignKeys = Object.fromEntries(
|
22698
22986
|
Object.entries(table4.foreignKeys__deleted || {}).concat(
|
22699
22987
|
Object.entries(table4.foreignKeys || {}).filter((it) => it[0].includes("__deleted"))
|
@@ -22755,7 +23043,10 @@ var init_jsonDiffer = __esm({
|
|
22755
23043
|
alteredCompositePKs,
|
22756
23044
|
addedUniqueConstraints,
|
22757
23045
|
deletedUniqueConstraints,
|
22758
|
-
alteredUniqueConstraints
|
23046
|
+
alteredUniqueConstraints,
|
23047
|
+
deletedPolicies,
|
23048
|
+
addedPolicies,
|
23049
|
+
alteredPolicies
|
22759
23050
|
};
|
22760
23051
|
};
|
22761
23052
|
alternationsInColumn = (column7) => {
|
@@ -23029,7 +23320,7 @@ function fromJson(statements, dialect7, action, json2) {
|
|
23029
23320
|
}).filter((it) => it !== "");
|
23030
23321
|
return result;
|
23031
23322
|
}
|
23032
|
-
var pgNativeTypes, isPgNativeType, Convertor, PgCreateTableConvertor, MySqlCreateTableConvertor, SQLiteCreateTableConvertor, PgAlterTableAlterColumnSetGenerated, PgAlterTableAlterColumnDropGenerated, PgAlterTableAlterColumnAlterGenerated, PgAlterTableAddUniqueConstraintConvertor, PgAlterTableDropUniqueConstraintConvertor, MySQLAlterTableAddUniqueConstraintConvertor, MySQLAlterTableDropUniqueConstraintConvertor, CreatePgSequenceConvertor, DropPgSequenceConvertor, RenamePgSequenceConvertor, MovePgSequenceConvertor, AlterPgSequenceConvertor, CreateTypeEnumConvertor, AlterTypeAddValueConvertor, PgDropTableConvertor, MySQLDropTableConvertor, SQLiteDropTableConvertor, PgRenameTableConvertor, SqliteRenameTableConvertor, MySqlRenameTableConvertor, PgAlterTableRenameColumnConvertor, MySqlAlterTableRenameColumnConvertor, SQLiteAlterTableRenameColumnConvertor, PgAlterTableDropColumnConvertor, MySqlAlterTableDropColumnConvertor, SQLiteAlterTableDropColumnConvertor, PgAlterTableAddColumnConvertor, MySqlAlterTableAddColumnConvertor, SQLiteAlterTableAddColumnConvertor, PgAlterTableAlterColumnSetTypeConvertor, PgAlterTableAlterColumnSetDefaultConvertor, PgAlterTableAlterColumnDropDefaultConvertor, PgAlterTableAlterColumnDropGeneratedConvertor, PgAlterTableAlterColumnSetExpressionConvertor, PgAlterTableAlterColumnAlterrGeneratedConvertor, SqliteAlterTableAlterColumnDropGeneratedConvertor, SqliteAlterTableAlterColumnSetExpressionConvertor, SqliteAlterTableAlterColumnAlterGeneratedConvertor, MySqlAlterTableAlterColumnAlterrGeneratedConvertor, MySqlAlterTableAddPk, MySqlAlterTableDropPk, LibSQLModifyColumn, MySqlModifyColumn, PgAlterTableCreateCompositePrimaryKeyConvertor, PgAlterTableDeleteCompositePrimaryKeyConvertor, PgAlterTableAlterCompositePrimaryKeyConvertor, MySqlAlterTableCreateCompositePrimaryKeyConvertor, MySqlAlterTableDeleteCompositePrimaryKeyConvertor, MySqlAlterTableAlterCompositePrimaryKeyConvertor, PgAlterTableAlterColumnSetPrimaryKeyConvertor, PgAlterTableAlterColumnDropPrimaryKeyConvertor, PgAlterTableAlterColumnSetNotNullConvertor, PgAlterTableAlterColumnDropNotNullConvertor, PgCreateForeignKeyConvertor, LibSQLCreateForeignKeyConvertor, MySqlCreateForeignKeyConvertor, PgAlterForeignKeyConvertor, PgDeleteForeignKeyConvertor, MySqlDeleteForeignKeyConvertor, CreatePgIndexConvertor, CreateMySqlIndexConvertor, CreateSqliteIndexConvertor, PgDropIndexConvertor, PgCreateSchemaConvertor, PgRenameSchemaConvertor, PgDropSchemaConvertor, PgAlterTableSetSchemaConvertor, PgAlterTableSetNewSchemaConvertor, PgAlterTableRemoveFromSchemaConvertor, SqliteDropIndexConvertor, MySqlDropIndexConvertor, SQLiteRecreateTableConvertor, LibSQLRecreateTableConvertor, convertors;
|
23323
|
+
var pgNativeTypes, isPgNativeType, Convertor, PgCreateRoleConvertor, PgDropRoleConvertor, PgRenameRoleConvertor, PgAlterRoleConvertor, PgCreatePolicyConvertor, PgDropPolicyConvertor, PgRenamePolicyConvertor, PgAlterPolicyConvertor, PgEnableRlsConvertor, PgDisableRlsConvertor, PgCreateTableConvertor, MySqlCreateTableConvertor, SQLiteCreateTableConvertor, PgAlterTableAlterColumnSetGenerated, PgAlterTableAlterColumnDropGenerated, PgAlterTableAlterColumnAlterGenerated, PgAlterTableAddUniqueConstraintConvertor, PgAlterTableDropUniqueConstraintConvertor, MySQLAlterTableAddUniqueConstraintConvertor, MySQLAlterTableDropUniqueConstraintConvertor, CreatePgSequenceConvertor, DropPgSequenceConvertor, RenamePgSequenceConvertor, MovePgSequenceConvertor, AlterPgSequenceConvertor, CreateTypeEnumConvertor, AlterTypeAddValueConvertor, PgDropTableConvertor, MySQLDropTableConvertor, SQLiteDropTableConvertor, PgRenameTableConvertor, SqliteRenameTableConvertor, MySqlRenameTableConvertor, PgAlterTableRenameColumnConvertor, MySqlAlterTableRenameColumnConvertor, SQLiteAlterTableRenameColumnConvertor, PgAlterTableDropColumnConvertor, MySqlAlterTableDropColumnConvertor, SQLiteAlterTableDropColumnConvertor, PgAlterTableAddColumnConvertor, MySqlAlterTableAddColumnConvertor, SQLiteAlterTableAddColumnConvertor, PgAlterTableAlterColumnSetTypeConvertor, PgAlterTableAlterColumnSetDefaultConvertor, PgAlterTableAlterColumnDropDefaultConvertor, PgAlterTableAlterColumnDropGeneratedConvertor, PgAlterTableAlterColumnSetExpressionConvertor, PgAlterTableAlterColumnAlterrGeneratedConvertor, SqliteAlterTableAlterColumnDropGeneratedConvertor, SqliteAlterTableAlterColumnSetExpressionConvertor, SqliteAlterTableAlterColumnAlterGeneratedConvertor, MySqlAlterTableAlterColumnAlterrGeneratedConvertor, MySqlAlterTableAddPk, MySqlAlterTableDropPk, LibSQLModifyColumn, MySqlModifyColumn, PgAlterTableCreateCompositePrimaryKeyConvertor, PgAlterTableDeleteCompositePrimaryKeyConvertor, PgAlterTableAlterCompositePrimaryKeyConvertor, MySqlAlterTableCreateCompositePrimaryKeyConvertor, MySqlAlterTableDeleteCompositePrimaryKeyConvertor, MySqlAlterTableAlterCompositePrimaryKeyConvertor, PgAlterTableAlterColumnSetPrimaryKeyConvertor, PgAlterTableAlterColumnDropPrimaryKeyConvertor, PgAlterTableAlterColumnSetNotNullConvertor, PgAlterTableAlterColumnDropNotNullConvertor, PgCreateForeignKeyConvertor, LibSQLCreateForeignKeyConvertor, MySqlCreateForeignKeyConvertor, PgAlterForeignKeyConvertor, PgDeleteForeignKeyConvertor, MySqlDeleteForeignKeyConvertor, CreatePgIndexConvertor, CreateMySqlIndexConvertor, CreateSqliteIndexConvertor, PgDropIndexConvertor, PgCreateSchemaConvertor, PgRenameSchemaConvertor, PgDropSchemaConvertor, PgAlterTableSetSchemaConvertor, PgAlterTableSetNewSchemaConvertor, PgAlterTableRemoveFromSchemaConvertor, SqliteDropIndexConvertor, MySqlDropIndexConvertor, SQLiteRecreateTableConvertor, LibSQLRecreateTableConvertor, convertors;
|
23033
23324
|
var init_sqlgenerator = __esm({
|
23034
23325
|
"src/sqlgenerator.ts"() {
|
23035
23326
|
"use strict";
|
@@ -23086,12 +23377,110 @@ var init_sqlgenerator = __esm({
|
|
23086
23377
|
};
|
23087
23378
|
Convertor = class {
|
23088
23379
|
};
|
23380
|
+
PgCreateRoleConvertor = class extends Convertor {
|
23381
|
+
can(statement, dialect7) {
|
23382
|
+
return statement.type === "create_role" && dialect7 === "postgresql";
|
23383
|
+
}
|
23384
|
+
convert(statement) {
|
23385
|
+
return `CREATE ROLE "${statement.name}"${statement.values.createDb || statement.values.createRole || !statement.values.inherit ? ` WITH${statement.values.createDb ? " CREATEDB" : ""}${statement.values.createRole ? " CREATEROLE" : ""}${statement.values.inherit ? "" : " NOINHERIT"}` : ""};`;
|
23386
|
+
}
|
23387
|
+
};
|
23388
|
+
PgDropRoleConvertor = class extends Convertor {
|
23389
|
+
can(statement, dialect7) {
|
23390
|
+
return statement.type === "drop_role" && dialect7 === "postgresql";
|
23391
|
+
}
|
23392
|
+
convert(statement) {
|
23393
|
+
return `DROP ROLE "${statement.name}";`;
|
23394
|
+
}
|
23395
|
+
};
|
23396
|
+
PgRenameRoleConvertor = class extends Convertor {
|
23397
|
+
can(statement, dialect7) {
|
23398
|
+
return statement.type === "rename_role" && dialect7 === "postgresql";
|
23399
|
+
}
|
23400
|
+
convert(statement) {
|
23401
|
+
return `ALTER ROLE "${statement.nameFrom}" RENAME TO "${statement.nameTo}";`;
|
23402
|
+
}
|
23403
|
+
};
|
23404
|
+
PgAlterRoleConvertor = class extends Convertor {
|
23405
|
+
can(statement, dialect7) {
|
23406
|
+
return statement.type === "alter_role" && dialect7 === "postgresql";
|
23407
|
+
}
|
23408
|
+
convert(statement) {
|
23409
|
+
return `ALTER ROLE "${statement.name}"${` WITH${statement.values.createDb ? " CREATEDB" : " NOCREATEDB"}${statement.values.createRole ? " CREATEROLE" : " NOCREATEROLE"}${statement.values.inherit ? " INHERIT" : " NOINHERIT"}`};`;
|
23410
|
+
}
|
23411
|
+
};
|
23412
|
+
PgCreatePolicyConvertor = class extends Convertor {
|
23413
|
+
can(statement, dialect7) {
|
23414
|
+
return statement.type === "create_policy" && dialect7 === "postgresql";
|
23415
|
+
}
|
23416
|
+
convert(statement) {
|
23417
|
+
var _a, _b, _c;
|
23418
|
+
const policy2 = statement.data;
|
23419
|
+
const tableNameWithSchema = statement.schema ? `"${statement.schema}"."${statement.tableName}"` : `"${statement.tableName}"`;
|
23420
|
+
const usingPart = policy2.using ? ` USING (${policy2.using})` : "";
|
23421
|
+
const withCheckPart = policy2.withCheck ? ` WITH CHECK (${policy2.withCheck})` : "";
|
23422
|
+
const policyToPart = (_a = policy2.to) == null ? void 0 : _a.map(
|
23423
|
+
(v) => ["current_user", "current_role", "session_user", "public"].includes(v) ? v : `"${v}"`
|
23424
|
+
).join(", ");
|
23425
|
+
return `CREATE POLICY "${policy2.name}" ON ${tableNameWithSchema} AS ${(_b = policy2.as) == null ? void 0 : _b.toUpperCase()} FOR ${(_c = policy2.for) == null ? void 0 : _c.toUpperCase()} TO ${policyToPart}${usingPart}${withCheckPart};`;
|
23426
|
+
}
|
23427
|
+
};
|
23428
|
+
PgDropPolicyConvertor = class extends Convertor {
|
23429
|
+
can(statement, dialect7) {
|
23430
|
+
return statement.type === "drop_policy" && dialect7 === "postgresql";
|
23431
|
+
}
|
23432
|
+
convert(statement) {
|
23433
|
+
const policy2 = statement.data;
|
23434
|
+
const tableNameWithSchema = statement.schema ? `"${statement.schema}"."${statement.tableName}"` : `"${statement.tableName}"`;
|
23435
|
+
return `DROP POLICY "${policy2.name}" ON ${tableNameWithSchema} CASCADE;`;
|
23436
|
+
}
|
23437
|
+
};
|
23438
|
+
PgRenamePolicyConvertor = class extends Convertor {
|
23439
|
+
can(statement, dialect7) {
|
23440
|
+
return statement.type === "rename_policy" && dialect7 === "postgresql";
|
23441
|
+
}
|
23442
|
+
convert(statement) {
|
23443
|
+
const tableNameWithSchema = statement.schema ? `"${statement.schema}"."${statement.tableName}"` : `"${statement.tableName}"`;
|
23444
|
+
return `ALTER POLICY "${statement.oldName}" ON ${tableNameWithSchema} RENAME TO "${statement.newName}";`;
|
23445
|
+
}
|
23446
|
+
};
|
23447
|
+
PgAlterPolicyConvertor = class extends Convertor {
|
23448
|
+
can(statement, dialect7) {
|
23449
|
+
return statement.type === "alter_policy" && dialect7 === "postgresql";
|
23450
|
+
}
|
23451
|
+
convert(statement) {
|
23452
|
+
const newPolicy = PgSquasher.unsquashPolicy(statement.newData);
|
23453
|
+
const oldPolicy = PgSquasher.unsquashPolicy(statement.oldData);
|
23454
|
+
const tableNameWithSchema = statement.schema ? `"${statement.schema}"."${statement.tableName}"` : `"${statement.tableName}"`;
|
23455
|
+
const usingPart = newPolicy.using ? ` USING (${newPolicy.using})` : oldPolicy.using ? ` USING (${oldPolicy.using})` : "";
|
23456
|
+
const withCheckPart = newPolicy.withCheck ? ` WITH CHECK (${newPolicy.withCheck})` : oldPolicy.withCheck ? ` WITH CHECK (${oldPolicy.withCheck})` : "";
|
23457
|
+
return `ALTER POLICY "${oldPolicy.name}" ON ${tableNameWithSchema} TO ${newPolicy.to}${usingPart}${withCheckPart};`;
|
23458
|
+
}
|
23459
|
+
};
|
23460
|
+
PgEnableRlsConvertor = class extends Convertor {
|
23461
|
+
can(statement, dialect7) {
|
23462
|
+
return statement.type === "enable_rls" && dialect7 === "postgresql";
|
23463
|
+
}
|
23464
|
+
convert(statement) {
|
23465
|
+
const tableNameWithSchema = statement.schema ? `"${statement.schema}"."${statement.tableName}"` : `"${statement.tableName}"`;
|
23466
|
+
return `ALTER TABLE ${tableNameWithSchema} ENABLE ROW LEVEL SECURITY;`;
|
23467
|
+
}
|
23468
|
+
};
|
23469
|
+
PgDisableRlsConvertor = class extends Convertor {
|
23470
|
+
can(statement, dialect7) {
|
23471
|
+
return statement.type === "disable_rls" && dialect7 === "postgresql";
|
23472
|
+
}
|
23473
|
+
convert(statement) {
|
23474
|
+
const tableNameWithSchema = statement.schema ? `"${statement.schema}"."${statement.tableName}"` : `"${statement.tableName}"`;
|
23475
|
+
return `ALTER TABLE ${tableNameWithSchema} DISABLE ROW LEVEL SECURITY;`;
|
23476
|
+
}
|
23477
|
+
};
|
23089
23478
|
PgCreateTableConvertor = class extends Convertor {
|
23090
23479
|
can(statement, dialect7) {
|
23091
23480
|
return statement.type === "create_table" && dialect7 === "postgresql";
|
23092
23481
|
}
|
23093
23482
|
convert(st) {
|
23094
|
-
const { tableName, schema: schema5, columns, compositePKs, uniqueConstraints } = st;
|
23483
|
+
const { tableName, schema: schema5, columns, compositePKs, uniqueConstraints, policies } = st;
|
23095
23484
|
let statement = "";
|
23096
23485
|
const name = schema5 ? `"${schema5}"."${tableName}"` : `"${tableName}"`;
|
23097
23486
|
statement += `CREATE TABLE IF NOT EXISTS ${name} (
|
@@ -23128,7 +23517,21 @@ var init_sqlgenerator = __esm({
|
|
23128
23517
|
);`;
|
23129
23518
|
statement += `
|
23130
23519
|
`;
|
23131
|
-
|
23520
|
+
const createPolicyConvertor = new PgCreatePolicyConvertor();
|
23521
|
+
const createPolicies = (policies == null ? void 0 : policies.map((p2) => {
|
23522
|
+
return createPolicyConvertor.convert({
|
23523
|
+
type: "create_policy",
|
23524
|
+
tableName,
|
23525
|
+
data: PgSquasher.unsquashPolicy(p2),
|
23526
|
+
schema: schema5
|
23527
|
+
});
|
23528
|
+
})) ?? [];
|
23529
|
+
const enableRls = new PgEnableRlsConvertor().convert({
|
23530
|
+
type: "enable_rls",
|
23531
|
+
tableName,
|
23532
|
+
schema: schema5
|
23533
|
+
});
|
23534
|
+
return [statement, ...createPolicies.length > 0 ? [enableRls] : [], ...createPolicies];
|
23132
23535
|
}
|
23133
23536
|
};
|
23134
23537
|
MySqlCreateTableConvertor = class extends Convertor {
|
@@ -23445,9 +23848,21 @@ var init_sqlgenerator = __esm({
|
|
23445
23848
|
return statement.type === "drop_table" && dialect7 === "postgresql";
|
23446
23849
|
}
|
23447
23850
|
convert(statement) {
|
23448
|
-
const { tableName, schema: schema5 } = statement;
|
23851
|
+
const { tableName, schema: schema5, policies } = statement;
|
23449
23852
|
const tableNameWithSchema = schema5 ? `"${schema5}"."${tableName}"` : `"${tableName}"`;
|
23450
|
-
|
23853
|
+
const dropPolicyConvertor = new PgDropPolicyConvertor();
|
23854
|
+
const droppedPolicies = (policies == null ? void 0 : policies.map((p2) => {
|
23855
|
+
return dropPolicyConvertor.convert({
|
23856
|
+
type: "drop_policy",
|
23857
|
+
tableName,
|
23858
|
+
data: PgSquasher.unsquashPolicy(p2),
|
23859
|
+
schema: schema5
|
23860
|
+
});
|
23861
|
+
})) ?? [];
|
23862
|
+
return [
|
23863
|
+
...droppedPolicies,
|
23864
|
+
`DROP TABLE ${tableNameWithSchema};`
|
23865
|
+
];
|
23451
23866
|
}
|
23452
23867
|
};
|
23453
23868
|
MySQLDropTableConvertor = class extends Convertor {
|
@@ -24622,6 +25037,16 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT ${statement.newCo
|
|
24622
25037
|
convertors.push(new PgAlterTableAlterColumnDropNotNullConvertor());
|
24623
25038
|
convertors.push(new PgAlterTableAlterColumnSetDefaultConvertor());
|
24624
25039
|
convertors.push(new PgAlterTableAlterColumnDropDefaultConvertor());
|
25040
|
+
convertors.push(new PgAlterPolicyConvertor());
|
25041
|
+
convertors.push(new PgCreatePolicyConvertor());
|
25042
|
+
convertors.push(new PgDropPolicyConvertor());
|
25043
|
+
convertors.push(new PgRenamePolicyConvertor());
|
25044
|
+
convertors.push(new PgEnableRlsConvertor());
|
25045
|
+
convertors.push(new PgDisableRlsConvertor());
|
25046
|
+
convertors.push(new PgDropRoleConvertor());
|
25047
|
+
convertors.push(new PgAlterRoleConvertor());
|
25048
|
+
convertors.push(new PgCreateRoleConvertor());
|
25049
|
+
convertors.push(new PgRenameRoleConvertor());
|
24625
25050
|
convertors.push(new PgAlterTableAlterColumnSetExpressionConvertor());
|
24626
25051
|
convertors.push(new PgAlterTableAlterColumnDropGeneratedConvertor());
|
24627
25052
|
convertors.push(new PgAlterTableAlterColumnAlterrGeneratedConvertor());
|
@@ -24917,7 +25342,7 @@ var init_sqlitePushUtils = __esm({
|
|
24917
25342
|
});
|
24918
25343
|
|
24919
25344
|
// src/jsonStatements.ts
|
24920
|
-
var preparePgCreateTableJson, prepareMySqlCreateTableJson, prepareSQLiteCreateTable, prepareDropTableJson, prepareRenameTableJson, prepareCreateEnumJson, prepareAddValuesToEnumJson, prepareDropEnumJson, prepareMoveEnumJson, prepareRenameEnumJson, prepareCreateSequenceJson, prepareAlterSequenceJson, prepareDropSequenceJson, prepareMoveSequenceJson, prepareRenameSequenceJson, prepareCreateSchemasJson, prepareRenameSchemasJson, prepareDeleteSchemasJson, prepareRenameColumns, _prepareDropColumns, _prepareAddColumns, _prepareSqliteAddColumns, prepareAlterColumnsMysql, preparePgAlterColumns, prepareSqliteAlterColumns, preparePgCreateIndexesJson, prepareCreateIndexesJson, prepareCreateReferencesJson, prepareLibSQLCreateReferencesJson, prepareDropReferencesJson, prepareLibSQLDropReferencesJson, prepareAlterReferencesJson, prepareDropIndexesJson, prepareAddCompositePrimaryKeySqlite, prepareDeleteCompositePrimaryKeySqlite, prepareAlterCompositePrimaryKeySqlite, prepareAddCompositePrimaryKeyPg, prepareDeleteCompositePrimaryKeyPg, prepareAlterCompositePrimaryKeyPg, prepareAddUniqueConstraintPg, prepareDeleteUniqueConstraintPg, prepareAddCompositePrimaryKeyMySql, prepareDeleteCompositePrimaryKeyMySql, prepareAlterCompositePrimaryKeyMySql;
|
25345
|
+
var preparePgCreateTableJson, prepareMySqlCreateTableJson, prepareSQLiteCreateTable, prepareDropTableJson, prepareRenameTableJson, prepareCreateEnumJson, prepareAddValuesToEnumJson, prepareDropEnumJson, prepareMoveEnumJson, prepareRenameEnumJson, prepareCreateSequenceJson, prepareAlterSequenceJson, prepareDropSequenceJson, prepareMoveSequenceJson, prepareRenameSequenceJson, prepareCreateRoleJson, prepareAlterRoleJson, prepareDropRoleJson, prepareRenameRoleJson, prepareCreateSchemasJson, prepareRenameSchemasJson, prepareDeleteSchemasJson, prepareRenameColumns, _prepareDropColumns, _prepareAddColumns, _prepareSqliteAddColumns, prepareAlterColumnsMysql, preparePgAlterColumns, prepareSqliteAlterColumns, prepareRenamePolicyJsons, prepareCreatePolicyJsons, prepareDropPolicyJsons, prepareAlterPolicyJson, preparePgCreateIndexesJson, prepareCreateIndexesJson, prepareCreateReferencesJson, prepareLibSQLCreateReferencesJson, prepareDropReferencesJson, prepareLibSQLDropReferencesJson, prepareAlterReferencesJson, prepareDropIndexesJson, prepareAddCompositePrimaryKeySqlite, prepareDeleteCompositePrimaryKeySqlite, prepareAlterCompositePrimaryKeySqlite, prepareAddCompositePrimaryKeyPg, prepareDeleteCompositePrimaryKeyPg, prepareAlterCompositePrimaryKeyPg, prepareAddUniqueConstraintPg, prepareDeleteUniqueConstraintPg, prepareAddCompositePrimaryKeyMySql, prepareDeleteCompositePrimaryKeyMySql, prepareAlterCompositePrimaryKeyMySql;
|
24921
25346
|
var init_jsonStatements = __esm({
|
24922
25347
|
"src/jsonStatements.ts"() {
|
24923
25348
|
"use strict";
|
@@ -24928,7 +25353,7 @@ var init_jsonStatements = __esm({
|
|
24928
25353
|
init_pgSchema();
|
24929
25354
|
init_sqliteSchema();
|
24930
25355
|
preparePgCreateTableJson = (table4, json2) => {
|
24931
|
-
const { name, schema: schema5, columns, compositePrimaryKeys, uniqueConstraints } = table4;
|
25356
|
+
const { name, schema: schema5, columns, compositePrimaryKeys, uniqueConstraints, policies } = table4;
|
24932
25357
|
const tableKey2 = `${schema5 || "public"}.${name}`;
|
24933
25358
|
const compositePkName = Object.values(compositePrimaryKeys).length > 0 ? json2.tables[tableKey2].compositePrimaryKeys[`${PgSquasher.unsquashPK(Object.values(compositePrimaryKeys)[0]).name}`].name : "";
|
24934
25359
|
return {
|
@@ -24938,7 +25363,8 @@ var init_jsonStatements = __esm({
|
|
24938
25363
|
columns: Object.values(columns),
|
24939
25364
|
compositePKs: Object.values(compositePrimaryKeys),
|
24940
25365
|
compositePkName,
|
24941
|
-
uniqueConstraints: Object.values(uniqueConstraints)
|
25366
|
+
uniqueConstraints: Object.values(uniqueConstraints),
|
25367
|
+
policies: Object.values(policies)
|
24942
25368
|
};
|
24943
25369
|
};
|
24944
25370
|
prepareMySqlCreateTableJson = (table4, json2, internals) => {
|
@@ -24976,7 +25402,8 @@ var init_jsonStatements = __esm({
|
|
24976
25402
|
return {
|
24977
25403
|
type: "drop_table",
|
24978
25404
|
tableName: table4.name,
|
24979
|
-
schema: table4.schema
|
25405
|
+
schema: table4.schema,
|
25406
|
+
policies: table4.policies ? Object.values(table4.policies) : []
|
24980
25407
|
};
|
24981
25408
|
};
|
24982
25409
|
prepareRenameTableJson = (tableFrom, tableTo) => {
|
@@ -25073,6 +25500,41 @@ var init_jsonStatements = __esm({
|
|
25073
25500
|
schema: schema5
|
25074
25501
|
};
|
25075
25502
|
};
|
25503
|
+
prepareCreateRoleJson = (role) => {
|
25504
|
+
return {
|
25505
|
+
type: "create_role",
|
25506
|
+
name: role.name,
|
25507
|
+
values: {
|
25508
|
+
createDb: role.createDb,
|
25509
|
+
createRole: role.createRole,
|
25510
|
+
inherit: role.inherit
|
25511
|
+
}
|
25512
|
+
};
|
25513
|
+
};
|
25514
|
+
prepareAlterRoleJson = (role) => {
|
25515
|
+
return {
|
25516
|
+
type: "alter_role",
|
25517
|
+
name: role.name,
|
25518
|
+
values: {
|
25519
|
+
createDb: role.createDb,
|
25520
|
+
createRole: role.createRole,
|
25521
|
+
inherit: role.inherit
|
25522
|
+
}
|
25523
|
+
};
|
25524
|
+
};
|
25525
|
+
prepareDropRoleJson = (name) => {
|
25526
|
+
return {
|
25527
|
+
type: "drop_role",
|
25528
|
+
name
|
25529
|
+
};
|
25530
|
+
};
|
25531
|
+
prepareRenameRoleJson = (nameFrom, nameTo) => {
|
25532
|
+
return {
|
25533
|
+
type: "rename_role",
|
25534
|
+
nameFrom,
|
25535
|
+
nameTo
|
25536
|
+
};
|
25537
|
+
};
|
25076
25538
|
prepareCreateSchemasJson = (values) => {
|
25077
25539
|
return values.map((it) => {
|
25078
25540
|
return {
|
@@ -25973,6 +26435,46 @@ var init_jsonStatements = __esm({
|
|
25973
26435
|
}
|
25974
26436
|
return [...dropPkStatements, ...setPkStatements, ...statements];
|
25975
26437
|
};
|
26438
|
+
prepareRenamePolicyJsons = (tableName, schema5, renames) => {
|
26439
|
+
return renames.map((it) => {
|
26440
|
+
return {
|
26441
|
+
type: "rename_policy",
|
26442
|
+
tableName,
|
26443
|
+
oldName: it.from.name,
|
26444
|
+
newName: it.to.name,
|
26445
|
+
schema: schema5
|
26446
|
+
};
|
26447
|
+
});
|
26448
|
+
};
|
26449
|
+
prepareCreatePolicyJsons = (tableName, schema5, policies) => {
|
26450
|
+
return policies.map((it) => {
|
26451
|
+
return {
|
26452
|
+
type: "create_policy",
|
26453
|
+
tableName,
|
26454
|
+
data: it,
|
26455
|
+
schema: schema5
|
26456
|
+
};
|
26457
|
+
});
|
26458
|
+
};
|
26459
|
+
prepareDropPolicyJsons = (tableName, schema5, policies) => {
|
26460
|
+
return policies.map((it) => {
|
26461
|
+
return {
|
26462
|
+
type: "drop_policy",
|
26463
|
+
tableName,
|
26464
|
+
data: it,
|
26465
|
+
schema: schema5
|
26466
|
+
};
|
26467
|
+
});
|
26468
|
+
};
|
26469
|
+
prepareAlterPolicyJson = (tableName, schema5, oldPolicy, newPolicy) => {
|
26470
|
+
return {
|
26471
|
+
type: "alter_policy",
|
26472
|
+
tableName,
|
26473
|
+
oldData: oldPolicy,
|
26474
|
+
newData: newPolicy,
|
26475
|
+
schema: schema5
|
26476
|
+
};
|
26477
|
+
};
|
25976
26478
|
preparePgCreateIndexesJson = (tableName, schema5, indexes, fullSchema, action) => {
|
25977
26479
|
if (action === "push") {
|
25978
26480
|
return Object.values(indexes).map((indexData) => {
|
@@ -26646,7 +27148,8 @@ var init_snapshotsDiffer = __esm({
|
|
26646
27148
|
indexes: recordType(stringType(), stringType()),
|
26647
27149
|
foreignKeys: recordType(stringType(), stringType()),
|
26648
27150
|
compositePrimaryKeys: recordType(stringType(), stringType()).default({}),
|
26649
|
-
uniqueConstraints: recordType(stringType(), stringType()).default({})
|
27151
|
+
uniqueConstraints: recordType(stringType(), stringType()).default({}),
|
27152
|
+
policies: recordType(stringType(), stringType()).default({})
|
26650
27153
|
}).strict();
|
26651
27154
|
alteredTableScheme = objectType({
|
26652
27155
|
name: stringType(),
|
@@ -26687,12 +27190,22 @@ var init_snapshotsDiffer = __esm({
|
|
26687
27190
|
__new: stringType(),
|
26688
27191
|
__old: stringType()
|
26689
27192
|
})
|
27193
|
+
),
|
27194
|
+
addedPolicies: recordType(stringType(), stringType()),
|
27195
|
+
deletedPolicies: recordType(stringType(), stringType()),
|
27196
|
+
alteredPolicies: recordType(
|
27197
|
+
stringType(),
|
27198
|
+
objectType({
|
27199
|
+
__new: stringType(),
|
27200
|
+
__old: stringType()
|
27201
|
+
})
|
26690
27202
|
)
|
26691
27203
|
}).strict();
|
26692
27204
|
diffResultScheme = objectType({
|
26693
27205
|
alteredTablesWithColumns: alteredTableScheme.array(),
|
26694
27206
|
alteredEnums: changedEnumSchema.array(),
|
26695
|
-
alteredSequences: sequenceSquashed.array()
|
27207
|
+
alteredSequences: sequenceSquashed.array(),
|
27208
|
+
alteredRoles: roleSchema.array()
|
26696
27209
|
}).strict();
|
26697
27210
|
diffResultSchemeMysql = objectType({
|
26698
27211
|
alteredTablesWithColumns: alteredTableScheme.array(),
|
@@ -26747,7 +27260,7 @@ var init_snapshotsDiffer = __esm({
|
|
26747
27260
|
}
|
26748
27261
|
return column7;
|
26749
27262
|
};
|
26750
|
-
applyPgSnapshotsDiff = async (json1, json2, schemasResolver2, enumsResolver2, sequencesResolver2, tablesResolver2, columnsResolver2, prevFull, curFull, action) => {
|
27263
|
+
applyPgSnapshotsDiff = async (json1, json2, schemasResolver2, enumsResolver2, sequencesResolver2, policyResolver2, roleResolver2, tablesResolver2, columnsResolver2, prevFull, curFull, action) => {
|
26751
27264
|
const schemasDiff = diffSchemasOrTables(json1.schemas, json2.schemas);
|
26752
27265
|
const {
|
26753
27266
|
created: createdSchemas,
|
@@ -26897,6 +27410,47 @@ var init_snapshotsDiffer = __esm({
|
|
26897
27410
|
return [tableKey2, tableValue];
|
26898
27411
|
}
|
26899
27412
|
);
|
27413
|
+
const rolesDiff = diffSchemasOrTables(
|
27414
|
+
schemasPatchedSnap1.roles,
|
27415
|
+
json2.roles
|
27416
|
+
);
|
27417
|
+
const {
|
27418
|
+
created: createdRoles,
|
27419
|
+
deleted: deletedRoles,
|
27420
|
+
renamed: renamedRoles
|
27421
|
+
} = await roleResolver2({
|
27422
|
+
created: rolesDiff.added,
|
27423
|
+
deleted: rolesDiff.deleted
|
27424
|
+
});
|
27425
|
+
schemasPatchedSnap1.roles = mapEntries(
|
27426
|
+
schemasPatchedSnap1.roles,
|
27427
|
+
(_2, it) => {
|
27428
|
+
const { name } = nameChangeFor(it, renamedRoles);
|
27429
|
+
it.name = name;
|
27430
|
+
return [name, it];
|
27431
|
+
}
|
27432
|
+
);
|
27433
|
+
const rolesChangeMap = renamedRoles.reduce(
|
27434
|
+
(acc, it) => {
|
27435
|
+
acc[it.from.name] = {
|
27436
|
+
nameFrom: it.from.name,
|
27437
|
+
nameTo: it.to.name
|
27438
|
+
};
|
27439
|
+
return acc;
|
27440
|
+
},
|
27441
|
+
{}
|
27442
|
+
);
|
27443
|
+
schemasPatchedSnap1.roles = mapEntries(
|
27444
|
+
schemasPatchedSnap1.roles,
|
27445
|
+
(roleKey, roleValue) => {
|
27446
|
+
const key = roleKey;
|
27447
|
+
const change = rolesChangeMap[key];
|
27448
|
+
if (change) {
|
27449
|
+
roleValue.name = change.nameTo;
|
27450
|
+
}
|
27451
|
+
return [roleKey, roleValue];
|
27452
|
+
}
|
27453
|
+
);
|
26900
27454
|
const tablesDiff = diffSchemasOrTables(
|
26901
27455
|
schemasPatchedSnap1.tables,
|
26902
27456
|
json2.tables
|
@@ -26975,6 +27529,65 @@ var init_snapshotsDiffer = __esm({
|
|
26975
27529
|
return [tableKey2, tableValue];
|
26976
27530
|
}
|
26977
27531
|
);
|
27532
|
+
const policyRes = diffPolicies(tablesPatchedSnap1.tables, json2.tables);
|
27533
|
+
const policyRenames = [];
|
27534
|
+
const policyCreates = [];
|
27535
|
+
const policyDeletes = [];
|
27536
|
+
for (let entry of Object.values(policyRes)) {
|
27537
|
+
const { renamed, created, deleted } = await policyResolver2({
|
27538
|
+
tableName: entry.name,
|
27539
|
+
schema: entry.schema,
|
27540
|
+
deleted: entry.policies.deleted.map(PgSquasher.unsquashPolicy),
|
27541
|
+
created: entry.policies.added.map(PgSquasher.unsquashPolicy)
|
27542
|
+
});
|
27543
|
+
if (created.length > 0) {
|
27544
|
+
policyCreates.push({
|
27545
|
+
table: entry.name,
|
27546
|
+
schema: entry.schema,
|
27547
|
+
columns: created
|
27548
|
+
});
|
27549
|
+
}
|
27550
|
+
if (deleted.length > 0) {
|
27551
|
+
policyDeletes.push({
|
27552
|
+
table: entry.name,
|
27553
|
+
schema: entry.schema,
|
27554
|
+
columns: deleted
|
27555
|
+
});
|
27556
|
+
}
|
27557
|
+
if (renamed.length > 0) {
|
27558
|
+
policyRenames.push({
|
27559
|
+
table: entry.name,
|
27560
|
+
schema: entry.schema,
|
27561
|
+
renames: renamed
|
27562
|
+
});
|
27563
|
+
}
|
27564
|
+
}
|
27565
|
+
const policyRenamesDict = columnRenames.reduce(
|
27566
|
+
(acc, it) => {
|
27567
|
+
acc[`${it.schema || "public"}.${it.table}`] = it.renames;
|
27568
|
+
return acc;
|
27569
|
+
},
|
27570
|
+
{}
|
27571
|
+
);
|
27572
|
+
const policyPatchedSnap1 = copy(tablesPatchedSnap1);
|
27573
|
+
policyPatchedSnap1.tables = mapEntries(
|
27574
|
+
policyPatchedSnap1.tables,
|
27575
|
+
(tableKey2, tableValue) => {
|
27576
|
+
const patchedPolicies = mapKeys(
|
27577
|
+
tableValue.policies,
|
27578
|
+
(policyKey, policy2) => {
|
27579
|
+
const rens = policyRenamesDict[`${tableValue.schema || "public"}.${tableValue.name}`] || [];
|
27580
|
+
const newName = columnChangeFor(policyKey, rens);
|
27581
|
+
const unsquashedPolicy = PgSquasher.unsquashPolicy(policy2);
|
27582
|
+
unsquashedPolicy.name = newName;
|
27583
|
+
policy2 = PgSquasher.squashPolicy(unsquashedPolicy);
|
27584
|
+
return newName;
|
27585
|
+
}
|
27586
|
+
);
|
27587
|
+
tableValue.policies = patchedPolicies;
|
27588
|
+
return [tableKey2, tableValue];
|
27589
|
+
}
|
27590
|
+
);
|
26978
27591
|
const diffResult = applyJsonDiff(columnsPatchedSnap1, json2);
|
26979
27592
|
const typedResult = diffResultScheme.parse(diffResult);
|
26980
27593
|
const jsonStatements = [];
|
@@ -27130,7 +27743,99 @@ var init_snapshotsDiffer = __esm({
|
|
27130
27743
|
it.deletedIndexes || {}
|
27131
27744
|
);
|
27132
27745
|
}).flat();
|
27746
|
+
const jsonCreatePoliciesStatements = [];
|
27747
|
+
const jsonDropPoliciesStatements = [];
|
27748
|
+
const jsonAlterPoliciesStatements = [];
|
27749
|
+
const jsonRenamePoliciesStatements = [];
|
27750
|
+
const jsonEnableRLSStatements = [];
|
27751
|
+
const jsonDisableRLSStatements = [];
|
27752
|
+
for (let it of policyRenames) {
|
27753
|
+
jsonRenamePoliciesStatements.push(
|
27754
|
+
...prepareRenamePolicyJsons(it.table, it.schema, it.renames)
|
27755
|
+
);
|
27756
|
+
}
|
27757
|
+
for (const it of policyCreates) {
|
27758
|
+
jsonCreatePoliciesStatements.push(
|
27759
|
+
...prepareCreatePolicyJsons(
|
27760
|
+
it.table,
|
27761
|
+
it.schema,
|
27762
|
+
it.columns
|
27763
|
+
)
|
27764
|
+
);
|
27765
|
+
}
|
27766
|
+
for (const it of policyDeletes) {
|
27767
|
+
jsonDropPoliciesStatements.push(
|
27768
|
+
...prepareDropPolicyJsons(
|
27769
|
+
it.table,
|
27770
|
+
it.schema,
|
27771
|
+
it.columns
|
27772
|
+
)
|
27773
|
+
);
|
27774
|
+
}
|
27133
27775
|
alteredTables.forEach((it) => {
|
27776
|
+
Object.keys(it.alteredPolicies).forEach((policyName) => {
|
27777
|
+
const newPolicy = PgSquasher.unsquashPolicy(it.alteredPolicies[policyName].__new);
|
27778
|
+
const oldPolicy = PgSquasher.unsquashPolicy(it.alteredPolicies[policyName].__old);
|
27779
|
+
if (newPolicy.as !== oldPolicy.as) {
|
27780
|
+
jsonDropPoliciesStatements.push(
|
27781
|
+
...prepareDropPolicyJsons(
|
27782
|
+
it.name,
|
27783
|
+
it.schema,
|
27784
|
+
[oldPolicy]
|
27785
|
+
)
|
27786
|
+
);
|
27787
|
+
jsonCreatePoliciesStatements.push(
|
27788
|
+
...prepareCreatePolicyJsons(
|
27789
|
+
it.name,
|
27790
|
+
it.schema,
|
27791
|
+
[newPolicy]
|
27792
|
+
)
|
27793
|
+
);
|
27794
|
+
return;
|
27795
|
+
}
|
27796
|
+
if (newPolicy.for !== oldPolicy.for) {
|
27797
|
+
jsonDropPoliciesStatements.push(
|
27798
|
+
...prepareDropPolicyJsons(
|
27799
|
+
it.name,
|
27800
|
+
it.schema,
|
27801
|
+
[oldPolicy]
|
27802
|
+
)
|
27803
|
+
);
|
27804
|
+
jsonCreatePoliciesStatements.push(
|
27805
|
+
...prepareCreatePolicyJsons(
|
27806
|
+
it.name,
|
27807
|
+
it.schema,
|
27808
|
+
[newPolicy]
|
27809
|
+
)
|
27810
|
+
);
|
27811
|
+
return;
|
27812
|
+
}
|
27813
|
+
jsonAlterPoliciesStatements.push(
|
27814
|
+
prepareAlterPolicyJson(
|
27815
|
+
it.name,
|
27816
|
+
it.schema,
|
27817
|
+
it.alteredPolicies[policyName].__old,
|
27818
|
+
it.alteredPolicies[policyName].__new
|
27819
|
+
)
|
27820
|
+
);
|
27821
|
+
});
|
27822
|
+
for (const table4 of Object.values(json2.tables)) {
|
27823
|
+
const policiesInCurrentState = Object.keys(table4.policies);
|
27824
|
+
const tableInPreviousState = columnsPatchedSnap1.tables[`${table4.schema === "" ? "public" : table4.schema}.${table4.name}`];
|
27825
|
+
const policiesInPreviousState = tableInPreviousState ? Object.keys(tableInPreviousState.policies) : [];
|
27826
|
+
if (policiesInPreviousState.length === 0 && policiesInCurrentState.length > 0) {
|
27827
|
+
jsonEnableRLSStatements.push({ type: "enable_rls", tableName: table4.name, schema: table4.schema });
|
27828
|
+
}
|
27829
|
+
if (policiesInPreviousState.length > 0 && policiesInCurrentState.length === 0) {
|
27830
|
+
jsonDisableRLSStatements.push({ type: "disable_rls", tableName: table4.name, schema: table4.schema });
|
27831
|
+
}
|
27832
|
+
}
|
27833
|
+
for (const table4 of Object.values(columnsPatchedSnap1.tables)) {
|
27834
|
+
const tableInCurrentState = json2.tables[`${table4.schema === "" ? "public" : table4.schema}.${table4.name}`];
|
27835
|
+
if (tableInCurrentState === void 0) {
|
27836
|
+
jsonDisableRLSStatements.push({ type: "disable_rls", tableName: table4.name, schema: table4.schema });
|
27837
|
+
}
|
27838
|
+
}
|
27134
27839
|
const droppedIndexes = Object.keys(it.alteredIndexes).reduce(
|
27135
27840
|
(current, item) => {
|
27136
27841
|
current[item] = it.alteredIndexes[item].__old;
|
@@ -27215,6 +27920,18 @@ var init_snapshotsDiffer = __esm({
|
|
27215
27920
|
const jsonAlterSequences = typedResult.alteredSequences.map((it) => {
|
27216
27921
|
return prepareAlterSequenceJson(it);
|
27217
27922
|
}).flat() ?? [];
|
27923
|
+
const createRoles = createdRoles.map((it) => {
|
27924
|
+
return prepareCreateRoleJson(it);
|
27925
|
+
}) ?? [];
|
27926
|
+
const dropRoles = deletedRoles.map((it) => {
|
27927
|
+
return prepareDropRoleJson(it.name);
|
27928
|
+
});
|
27929
|
+
const renameRoles = renamedRoles.map((it) => {
|
27930
|
+
return prepareRenameRoleJson(it.from.name, it.to.name);
|
27931
|
+
});
|
27932
|
+
const jsonAlterRoles = typedResult.alteredRoles.map((it) => {
|
27933
|
+
return prepareAlterRoleJson(it);
|
27934
|
+
}).flat() ?? [];
|
27218
27935
|
const createSchemas = prepareCreateSchemasJson(
|
27219
27936
|
createdSchemas.map((it) => it.name)
|
27220
27937
|
);
|
@@ -27237,7 +27954,13 @@ var init_snapshotsDiffer = __esm({
|
|
27237
27954
|
jsonStatements.push(...moveSequences);
|
27238
27955
|
jsonStatements.push(...renameSequences);
|
27239
27956
|
jsonStatements.push(...jsonAlterSequences);
|
27957
|
+
jsonStatements.push(...renameRoles);
|
27958
|
+
jsonStatements.push(...dropRoles);
|
27959
|
+
jsonStatements.push(...createRoles);
|
27960
|
+
jsonStatements.push(...jsonAlterRoles);
|
27240
27961
|
jsonStatements.push(...createTables);
|
27962
|
+
jsonStatements.push(...jsonEnableRLSStatements);
|
27963
|
+
jsonStatements.push(...jsonDisableRLSStatements);
|
27241
27964
|
jsonStatements.push(...jsonDropTables);
|
27242
27965
|
jsonStatements.push(...jsonSetTableSchemas);
|
27243
27966
|
jsonStatements.push(...jsonRenameTables);
|
@@ -27257,6 +27980,10 @@ var init_snapshotsDiffer = __esm({
|
|
27257
27980
|
jsonStatements.push(...jsonAlteredCompositePKs);
|
27258
27981
|
jsonStatements.push(...jsonAddedUniqueConstraints);
|
27259
27982
|
jsonStatements.push(...jsonAlteredUniqueConstraints);
|
27983
|
+
jsonStatements.push(...jsonRenamePoliciesStatements);
|
27984
|
+
jsonStatements.push(...jsonDropPoliciesStatements);
|
27985
|
+
jsonStatements.push(...jsonCreatePoliciesStatements);
|
27986
|
+
jsonStatements.push(...jsonAlterPoliciesStatements);
|
27260
27987
|
jsonStatements.push(...dropEnums);
|
27261
27988
|
jsonStatements.push(...dropSequences);
|
27262
27989
|
jsonStatements.push(...dropSchemas);
|
@@ -29520,6 +30247,7 @@ __export(migrate_exports, {
|
|
29520
30247
|
columnsResolver: () => columnsResolver,
|
29521
30248
|
embeddedMigrations: () => embeddedMigrations,
|
29522
30249
|
enumsResolver: () => enumsResolver,
|
30250
|
+
policyResolver: () => policyResolver,
|
29523
30251
|
prepareAndMigrateLibSQL: () => prepareAndMigrateLibSQL,
|
29524
30252
|
prepareAndMigrateMysql: () => prepareAndMigrateMysql,
|
29525
30253
|
prepareAndMigratePg: () => prepareAndMigratePg,
|
@@ -29530,14 +30258,16 @@ __export(migrate_exports, {
|
|
29530
30258
|
prepareSQLitePush: () => prepareSQLitePush,
|
29531
30259
|
prepareSnapshotFolderName: () => prepareSnapshotFolderName,
|
29532
30260
|
promptColumnsConflicts: () => promptColumnsConflicts,
|
30261
|
+
promptNamedConflict: () => promptNamedConflict,
|
29533
30262
|
promptNamedWithSchemasConflict: () => promptNamedWithSchemasConflict,
|
29534
30263
|
promptSchemasConflict: () => promptSchemasConflict,
|
30264
|
+
roleResolver: () => roleResolver,
|
29535
30265
|
schemasResolver: () => schemasResolver,
|
29536
30266
|
sequencesResolver: () => sequencesResolver,
|
29537
30267
|
tablesResolver: () => tablesResolver,
|
29538
30268
|
writeResult: () => writeResult
|
29539
30269
|
});
|
29540
|
-
var import_fs5, import_hanji3, import_path4, schemasResolver, tablesResolver, sequencesResolver, enumsResolver, columnsResolver, prepareAndMigratePg, preparePgPush, prepareMySQLPush, prepareAndMigrateMysql, prepareAndMigrateSqlite, prepareAndMigrateLibSQL, prepareSQLitePush, prepareLibSQLPush, promptColumnsConflicts, promptNamedWithSchemasConflict, promptSchemasConflict, BREAKPOINT, writeResult, embeddedMigrations, prepareSnapshotFolderName, two;
|
30270
|
+
var import_fs5, import_hanji3, import_path4, schemasResolver, tablesResolver, sequencesResolver, roleResolver, policyResolver, enumsResolver, columnsResolver, prepareAndMigratePg, preparePgPush, prepareMySQLPush, prepareAndMigrateMysql, prepareAndMigrateSqlite, prepareAndMigrateLibSQL, prepareSQLitePush, prepareLibSQLPush, promptColumnsConflicts, promptNamedConflict, promptNamedWithSchemasConflict, promptSchemasConflict, BREAKPOINT, writeResult, embeddedMigrations, prepareSnapshotFolderName, two;
|
29541
30271
|
var init_migrate = __esm({
|
29542
30272
|
"src/cli/commands/migrate.ts"() {
|
29543
30273
|
"use strict";
|
@@ -29602,6 +30332,32 @@ var init_migrate = __esm({
|
|
29602
30332
|
throw e2;
|
29603
30333
|
}
|
29604
30334
|
};
|
30335
|
+
roleResolver = async (input) => {
|
30336
|
+
const result = await promptNamedConflict(
|
30337
|
+
input.created,
|
30338
|
+
input.deleted,
|
30339
|
+
"role"
|
30340
|
+
);
|
30341
|
+
return {
|
30342
|
+
created: result.created,
|
30343
|
+
deleted: result.deleted,
|
30344
|
+
renamed: result.renamed
|
30345
|
+
};
|
30346
|
+
};
|
30347
|
+
policyResolver = async (input) => {
|
30348
|
+
const result = await promptColumnsConflicts(
|
30349
|
+
input.tableName,
|
30350
|
+
input.created,
|
30351
|
+
input.deleted
|
30352
|
+
);
|
30353
|
+
return {
|
30354
|
+
tableName: input.tableName,
|
30355
|
+
schema: input.schema,
|
30356
|
+
created: result.created,
|
30357
|
+
deleted: result.deleted,
|
30358
|
+
renamed: result.renamed
|
30359
|
+
};
|
30360
|
+
};
|
29605
30361
|
enumsResolver = async (input) => {
|
29606
30362
|
try {
|
29607
30363
|
const { created, deleted, moved, renamed } = await promptNamedWithSchemasConflict(
|
@@ -29670,6 +30426,8 @@ var init_migrate = __esm({
|
|
29670
30426
|
schemasResolver,
|
29671
30427
|
enumsResolver,
|
29672
30428
|
sequencesResolver,
|
30429
|
+
policyResolver,
|
30430
|
+
roleResolver,
|
29673
30431
|
tablesResolver,
|
29674
30432
|
columnsResolver,
|
29675
30433
|
validatedPrev,
|
@@ -29704,6 +30462,8 @@ var init_migrate = __esm({
|
|
29704
30462
|
schemasResolver,
|
29705
30463
|
enumsResolver,
|
29706
30464
|
sequencesResolver,
|
30465
|
+
policyResolver,
|
30466
|
+
roleResolver,
|
29707
30467
|
tablesResolver,
|
29708
30468
|
columnsResolver,
|
29709
30469
|
validatedPrev,
|
@@ -29984,6 +30744,56 @@ var init_migrate = __esm({
|
|
29984
30744
|
result.deleted.push(...leftMissing);
|
29985
30745
|
return result;
|
29986
30746
|
};
|
30747
|
+
promptNamedConflict = async (newItems, missingItems, entity) => {
|
30748
|
+
if (missingItems.length === 0 || newItems.length === 0) {
|
30749
|
+
return {
|
30750
|
+
created: newItems,
|
30751
|
+
renamed: [],
|
30752
|
+
deleted: missingItems
|
30753
|
+
};
|
30754
|
+
}
|
30755
|
+
const result = { created: [], renamed: [], deleted: [] };
|
30756
|
+
let index4 = 0;
|
30757
|
+
let leftMissing = [...missingItems];
|
30758
|
+
do {
|
30759
|
+
const created = newItems[index4];
|
30760
|
+
const renames = leftMissing.map((it) => {
|
30761
|
+
return { from: it, to: created };
|
30762
|
+
});
|
30763
|
+
const promptData = [created, ...renames];
|
30764
|
+
const { status, data } = await (0, import_hanji3.render)(
|
30765
|
+
new ResolveSelectNamed(created, promptData, entity)
|
30766
|
+
);
|
30767
|
+
if (status === "aborted") {
|
30768
|
+
console.error("ERROR");
|
30769
|
+
process.exit(1);
|
30770
|
+
}
|
30771
|
+
if (isRenamePromptItem(data)) {
|
30772
|
+
console.log(
|
30773
|
+
`${source_default.yellow("~")} ${data.from.name} \u203A ${data.to.name} ${source_default.gray(
|
30774
|
+
`${entity} will be renamed/moved`
|
30775
|
+
)}`
|
30776
|
+
);
|
30777
|
+
if (data.from.name !== data.to.name) {
|
30778
|
+
result.renamed.push(data);
|
30779
|
+
}
|
30780
|
+
delete leftMissing[leftMissing.indexOf(data.from)];
|
30781
|
+
leftMissing = leftMissing.filter(Boolean);
|
30782
|
+
} else {
|
30783
|
+
console.log(
|
30784
|
+
`${source_default.green("+")} ${data.name} ${source_default.gray(
|
30785
|
+
`${entity} will be created`
|
30786
|
+
)}`
|
30787
|
+
);
|
30788
|
+
result.created.push(created);
|
30789
|
+
}
|
30790
|
+
index4 += 1;
|
30791
|
+
} while (index4 < newItems.length);
|
30792
|
+
console.log(source_default.gray(`--- all ${entity} conflicts resolved ---
|
30793
|
+
`));
|
30794
|
+
result.deleted.push(...leftMissing);
|
30795
|
+
return result;
|
30796
|
+
};
|
29987
30797
|
promptNamedWithSchemasConflict = async (newItems, missingItems, entity) => {
|
29988
30798
|
if (missingItems.length === 0 || newItems.length === 0) {
|
29989
30799
|
return {
|
@@ -38812,9 +39622,9 @@ var init_body2 = __esm({
|
|
38812
39622
|
// ../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/headers.js
|
38813
39623
|
function fromRawHeaders(headers = []) {
|
38814
39624
|
return new Headers2(
|
38815
|
-
headers.reduce((result, value, index4,
|
39625
|
+
headers.reduce((result, value, index4, array2) => {
|
38816
39626
|
if (index4 % 2 === 0) {
|
38817
|
-
result.push(
|
39627
|
+
result.push(array2.slice(index4, index4 + 2));
|
38818
39628
|
}
|
38819
39629
|
return result;
|
38820
39630
|
}, []).filter(([name, value]) => {
|
@@ -39212,7 +40022,7 @@ function determineRequestsReferrer(request, { referrerURLCallback, referrerOrigi
|
|
39212
40022
|
if (request.referrer === "no-referrer" || request.referrerPolicy === "") {
|
39213
40023
|
return null;
|
39214
40024
|
}
|
39215
|
-
const
|
40025
|
+
const policy2 = request.referrerPolicy;
|
39216
40026
|
if (request.referrer === "about:client") {
|
39217
40027
|
return "no-referrer";
|
39218
40028
|
}
|
@@ -39229,7 +40039,7 @@ function determineRequestsReferrer(request, { referrerURLCallback, referrerOrigi
|
|
39229
40039
|
referrerOrigin = referrerOriginCallback(referrerOrigin);
|
39230
40040
|
}
|
39231
40041
|
const currentURL = new URL(request.url);
|
39232
|
-
switch (
|
40042
|
+
switch (policy2) {
|
39233
40043
|
case "no-referrer":
|
39234
40044
|
return "no-referrer";
|
39235
40045
|
case "origin":
|
@@ -39265,18 +40075,18 @@ function determineRequestsReferrer(request, { referrerURLCallback, referrerOrigi
|
|
39265
40075
|
}
|
39266
40076
|
return referrerURL;
|
39267
40077
|
default:
|
39268
|
-
throw new TypeError(`Invalid referrerPolicy: ${
|
40078
|
+
throw new TypeError(`Invalid referrerPolicy: ${policy2}`);
|
39269
40079
|
}
|
39270
40080
|
}
|
39271
40081
|
function parseReferrerPolicyFromHeader(headers) {
|
39272
40082
|
const policyTokens = (headers.get("referrer-policy") || "").split(/[,\s]+/);
|
39273
|
-
let
|
40083
|
+
let policy2 = "";
|
39274
40084
|
for (const token of policyTokens) {
|
39275
40085
|
if (token && ReferrerPolicy.has(token)) {
|
39276
|
-
|
40086
|
+
policy2 = token;
|
39277
40087
|
}
|
39278
40088
|
}
|
39279
|
-
return
|
40089
|
+
return policy2;
|
39280
40090
|
}
|
39281
40091
|
var import_node_net, ReferrerPolicy, DEFAULT_REFERRER_POLICY;
|
39282
40092
|
var init_referrer = __esm({
|
@@ -59923,7 +60733,7 @@ var require_fromWebToken = __commonJS({
|
|
59923
60733
|
var fromWebToken2 = (init2) => async () => {
|
59924
60734
|
var _a;
|
59925
60735
|
(_a = init2.logger) == null ? void 0 : _a.debug("@aws-sdk/credential-provider-web-identity", "fromWebToken");
|
59926
|
-
const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init2;
|
60736
|
+
const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy: policy2, durationSeconds } = init2;
|
59927
60737
|
let { roleAssumerWithWebIdentity } = init2;
|
59928
60738
|
if (!roleAssumerWithWebIdentity) {
|
59929
60739
|
const { getDefaultRoleAssumerWithWebIdentity } = await Promise.resolve().then(() => __importStar2(require_dist_cjs50()));
|
@@ -59939,7 +60749,7 @@ var require_fromWebToken = __commonJS({
|
|
59939
60749
|
WebIdentityToken: webIdentityToken,
|
59940
60750
|
ProviderId: providerId,
|
59941
60751
|
PolicyArns: policyArns,
|
59942
|
-
Policy:
|
60752
|
+
Policy: policy2,
|
59943
60753
|
DurationSeconds: durationSeconds
|
59944
60754
|
});
|
59945
60755
|
};
|
@@ -62210,7 +63020,7 @@ var init_connections = __esm({
|
|
62210
63020
|
return { ...db, ...proxy, migrate: migrateFn };
|
62211
63021
|
}
|
62212
63022
|
console.log(
|
62213
|
-
"Please install 'better-sqlite3' for Drizzle Kit to connect to SQLite databases"
|
63023
|
+
"Please install either 'better-sqlite3' or '@libsql/client' for Drizzle Kit to connect to SQLite databases"
|
62214
63024
|
);
|
62215
63025
|
process.exit(1);
|
62216
63026
|
};
|
@@ -63403,13 +64213,13 @@ var require_event_stream = __commonJS({
|
|
63403
64213
|
es.writeArray = function(done) {
|
63404
64214
|
if ("function" !== typeof done)
|
63405
64215
|
throw new Error("function writeArray (done): done must be function");
|
63406
|
-
var a = new Stream3(),
|
64216
|
+
var a = new Stream3(), array2 = [], isDone = false;
|
63407
64217
|
a.write = function(l) {
|
63408
|
-
|
64218
|
+
array2.push(l);
|
63409
64219
|
};
|
63410
64220
|
a.end = function() {
|
63411
64221
|
isDone = true;
|
63412
|
-
done(null,
|
64222
|
+
done(null, array2);
|
63413
64223
|
};
|
63414
64224
|
a.writable = true;
|
63415
64225
|
a.readable = false;
|
@@ -63417,23 +64227,23 @@ var require_event_stream = __commonJS({
|
|
63417
64227
|
a.writable = a.readable = false;
|
63418
64228
|
if (isDone)
|
63419
64229
|
return;
|
63420
|
-
done(new Error("destroyed before end"),
|
64230
|
+
done(new Error("destroyed before end"), array2);
|
63421
64231
|
};
|
63422
64232
|
return a;
|
63423
64233
|
};
|
63424
|
-
es.readArray = function(
|
64234
|
+
es.readArray = function(array2) {
|
63425
64235
|
var stream = new Stream3(), i2 = 0, paused = false, ended = false;
|
63426
64236
|
stream.readable = true;
|
63427
64237
|
stream.writable = false;
|
63428
|
-
if (!Array.isArray(
|
64238
|
+
if (!Array.isArray(array2))
|
63429
64239
|
throw new Error("event-stream.read expects an array");
|
63430
64240
|
stream.resume = function() {
|
63431
64241
|
if (ended)
|
63432
64242
|
return;
|
63433
64243
|
paused = false;
|
63434
|
-
var l =
|
64244
|
+
var l = array2.length;
|
63435
64245
|
while (i2 < l && !paused && !ended) {
|
63436
|
-
stream.emit("data",
|
64246
|
+
stream.emit("data", array2[i2++]);
|
63437
64247
|
}
|
63438
64248
|
if (i2 == l && !ended)
|
63439
64249
|
ended = true, stream.readable = false, stream.emit("end");
|
@@ -67058,8 +67868,8 @@ var require_utils4 = __commonJS({
|
|
67058
67868
|
"use strict";
|
67059
67869
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
67060
67870
|
exports2.string = exports2.stream = exports2.pattern = exports2.path = exports2.fs = exports2.errno = exports2.array = void 0;
|
67061
|
-
var
|
67062
|
-
exports2.array =
|
67871
|
+
var array2 = require_array();
|
67872
|
+
exports2.array = array2;
|
67063
67873
|
var errno = require_errno();
|
67064
67874
|
exports2.errno = errno;
|
67065
67875
|
var fs9 = require_fs2();
|
@@ -78917,7 +79727,7 @@ var init_pgIntrospect = __esm({
|
|
78917
79727
|
init_global();
|
78918
79728
|
init_pgSerializer();
|
78919
79729
|
init_views();
|
78920
|
-
pgPushIntrospect = async (db, filters, schemaFilters) => {
|
79730
|
+
pgPushIntrospect = async (db, filters, schemaFilters, entities = { roles: true }) => {
|
78921
79731
|
const matchers = filters.map((it) => {
|
78922
79732
|
return new Minimatch(it);
|
78923
79733
|
});
|
@@ -78946,7 +79756,7 @@ var init_pgIntrospect = __esm({
|
|
78946
79756
|
);
|
78947
79757
|
const res = await (0, import_hanji9.renderWithTask)(
|
78948
79758
|
progress,
|
78949
|
-
fromDatabase2(db, filter2, schemaFilters)
|
79759
|
+
fromDatabase2(db, filter2, schemaFilters, entities)
|
78950
79760
|
);
|
78951
79761
|
const schema5 = { id: originUUID, prevId: "", ...res };
|
78952
79762
|
const { internal, ...schemaWithoutInternals } = schema5;
|
@@ -79411,6 +80221,7 @@ var init_push = __esm({
|
|
79411
80221
|
}
|
79412
80222
|
});
|
79413
80223
|
if (verbose) {
|
80224
|
+
console.log();
|
79414
80225
|
console.log(
|
79415
80226
|
withStyle.warning("You are about to execute current statements:")
|
79416
80227
|
);
|
@@ -79468,11 +80279,11 @@ var init_push = __esm({
|
|
79468
80279
|
console.log(e2);
|
79469
80280
|
}
|
79470
80281
|
};
|
79471
|
-
pgPush = async (schemaPath, verbose, strict, credentials2, tablesFilter, schemasFilter, force) => {
|
80282
|
+
pgPush = async (schemaPath, verbose, strict, credentials2, tablesFilter, schemasFilter, entities, force) => {
|
79472
80283
|
const { preparePostgresDB: preparePostgresDB2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
|
79473
80284
|
const { pgPushIntrospect: pgPushIntrospect2 } = await Promise.resolve().then(() => (init_pgIntrospect(), pgIntrospect_exports));
|
79474
80285
|
const db = await preparePostgresDB2(credentials2);
|
79475
|
-
const { schema: schema5 } = await pgPushIntrospect2(db, tablesFilter, schemasFilter);
|
80286
|
+
const { schema: schema5 } = await pgPushIntrospect2(db, tablesFilter, schemasFilter, entities);
|
79476
80287
|
const { preparePgPush: preparePgPush2 } = await Promise.resolve().then(() => (init_migrate(), migrate_exports));
|
79477
80288
|
const statements = await preparePgPush2(schemaPath, schema5, schemasFilter);
|
79478
80289
|
try {
|
@@ -80642,7 +81453,7 @@ function generateIdentityParams(identity) {
|
|
80642
81453
|
}
|
80643
81454
|
return `.generatedByDefaultAsIdentity(${paramsObj})`;
|
80644
81455
|
}
|
80645
|
-
var import_drizzle_orm9, import_relations, pgImportsList, timeConfig2, possibleIntervals, intervalStrToObj, intervalConfig, mapColumnDefault3, importsPatch2, relations3, escapeColumnKey3, withCasing2, paramNameFor, schemaToTypeScript3, isCyclic3, isSelf3, buildArrayDefault, mapDefault, column6, dimensionsInArray, createTableColumns3, createTableIndexes3, createTablePKs3, createTableUniques3, createTableFKs3;
|
81456
|
+
var import_drizzle_orm9, import_relations, pgImportsList, timeConfig2, possibleIntervals, intervalStrToObj, intervalConfig, mapColumnDefault3, importsPatch2, relations3, escapeColumnKey3, withCasing2, paramNameFor, schemaToTypeScript3, isCyclic3, isSelf3, buildArrayDefault, mapDefault, column6, dimensionsInArray, createTableColumns3, createTableIndexes3, createTablePKs3, createTablePolicies, createTableUniques3, createTableFKs3;
|
80646
81457
|
var init_introspect_pg = __esm({
|
80647
81458
|
"src/introspect-pg.ts"() {
|
80648
81459
|
"use strict";
|
@@ -80810,6 +81621,9 @@ var init_introspect_pg = __esm({
|
|
80810
81621
|
const uniqueImports = Object.values(it.uniqueConstraints).map(
|
80811
81622
|
(it2) => "unique"
|
80812
81623
|
);
|
81624
|
+
const policiesImports = Object.values(it.policies).map(
|
81625
|
+
(it2) => "pgPolicy"
|
81626
|
+
);
|
80813
81627
|
if (it.schema && it.schema !== "public" && it.schema !== "") {
|
80814
81628
|
res.pg.push("pgSchema");
|
80815
81629
|
}
|
@@ -80817,6 +81631,7 @@ var init_introspect_pg = __esm({
|
|
80817
81631
|
res.pg.push(...fkImpots);
|
80818
81632
|
res.pg.push(...pkImports);
|
80819
81633
|
res.pg.push(...uniqueImports);
|
81634
|
+
res.pg.push(...policiesImports);
|
80820
81635
|
const columnImports = Object.values(it.columns).map((col) => {
|
80821
81636
|
let patched = (importsPatch2[col.type] || col.type).replace("[]", "");
|
80822
81637
|
patched = patched === "double precision" ? "doublePrecision" : patched;
|
@@ -80850,6 +81665,9 @@ var init_introspect_pg = __esm({
|
|
80850
81665
|
imports.pg.push("pgEnum");
|
80851
81666
|
}
|
80852
81667
|
});
|
81668
|
+
if (Object.keys(schema5.roles).length > 0) {
|
81669
|
+
imports.pg.push("pgRole");
|
81670
|
+
}
|
80853
81671
|
const enumStatements = Object.values(schema5.enums).map((it) => {
|
80854
81672
|
const enumSchema3 = schemas[it.schema];
|
80855
81673
|
const paramName = paramNameFor(it.name, enumSchema3);
|
@@ -80885,9 +81703,16 @@ var init_introspect_pg = __esm({
|
|
80885
81703
|
}
|
80886
81704
|
return `export const ${withCasing2(paramName, casing2)} = ${func}("${it.name}"${params ? `, { ${params.trimChar(",")} }` : ""})
|
80887
81705
|
`;
|
80888
|
-
}).join("").concat("
|
81706
|
+
}).join("").concat("");
|
80889
81707
|
const schemaStatements = Object.entries(schemas).map((it) => {
|
80890
81708
|
return `export const ${it[1]} = pgSchema("${it[0]}");
|
81709
|
+
`;
|
81710
|
+
}).join("");
|
81711
|
+
const rolesNameToTsKey = {};
|
81712
|
+
const rolesStatements = Object.entries(schema5.roles).map((it) => {
|
81713
|
+
const fields = it[1];
|
81714
|
+
rolesNameToTsKey[fields.name] = it[0];
|
81715
|
+
return `export const ${withCasing2(it[0], casing2)} = pgRole("${fields.name}", ${!fields.createDb && !fields.createRole && fields.inherit ? "" : `${`, { ${fields.createDb ? `createDb: true,` : ""}${fields.createRole ? ` createRole: true,` : ""}${!fields.inherit ? ` inherit: false ` : ""}`.trimChar(",")}}`} );
|
80891
81716
|
`;
|
80892
81717
|
}).join("");
|
80893
81718
|
const tableStatements = Object.values(schema5.tables).map((table4) => {
|
@@ -80906,8 +81731,8 @@ var init_introspect_pg = __esm({
|
|
80906
81731
|
schema5.internal
|
80907
81732
|
);
|
80908
81733
|
statement += "}";
|
80909
|
-
if (Object.keys(table4.indexes).length > 0 || Object.values(table4.foreignKeys).length > 0 || Object.keys(table4.compositePrimaryKeys).length > 0 || Object.keys(table4.uniqueConstraints).length > 0) {
|
80910
|
-
statement += "
|
81734
|
+
if (Object.keys(table4.indexes).length > 0 || Object.values(table4.foreignKeys).length > 0 || Object.values(table4.policies).length > 0 || Object.keys(table4.compositePrimaryKeys).length > 0 || Object.keys(table4.uniqueConstraints).length > 0) {
|
81735
|
+
statement += ", ";
|
80911
81736
|
statement += "(table) => {\n";
|
80912
81737
|
statement += " return {\n";
|
80913
81738
|
statement += createTableIndexes3(
|
@@ -80924,6 +81749,11 @@ var init_introspect_pg = __esm({
|
|
80924
81749
|
Object.values(table4.uniqueConstraints),
|
80925
81750
|
casing2
|
80926
81751
|
);
|
81752
|
+
statement += createTablePolicies(
|
81753
|
+
Object.values(table4.policies),
|
81754
|
+
casing2,
|
81755
|
+
rolesNameToTsKey
|
81756
|
+
);
|
80927
81757
|
statement += " }\n";
|
80928
81758
|
statement += "}";
|
80929
81759
|
}
|
@@ -80934,14 +81764,14 @@ var init_introspect_pg = __esm({
|
|
80934
81764
|
const importsTs = `import { ${uniquePgImports.join(
|
80935
81765
|
", "
|
80936
81766
|
)} } from "drizzle-orm/pg-core"
|
80937
|
-
|
81767
|
+
import { sql } from "drizzle-orm"
|
80938
81768
|
|
80939
81769
|
`;
|
80940
81770
|
let decalrations = schemaStatements;
|
81771
|
+
decalrations += rolesStatements;
|
80941
81772
|
decalrations += enumStatements;
|
80942
81773
|
decalrations += sequencesStatements;
|
80943
|
-
decalrations += "\n";
|
80944
|
-
decalrations += tableStatements.join("\n\n");
|
81774
|
+
decalrations += tableStatements.join("\n");
|
80945
81775
|
const file = importsTs + decalrations;
|
80946
81776
|
const schemaEntry = `
|
80947
81777
|
{
|
@@ -81372,6 +82202,23 @@ var init_introspect_pg = __esm({
|
|
81372
82202
|
}).join(", ")}]${it.name ? `, name: "${it.name}"` : ""}}`;
|
81373
82203
|
statement += ")";
|
81374
82204
|
statement += `,
|
82205
|
+
`;
|
82206
|
+
});
|
82207
|
+
return statement;
|
82208
|
+
};
|
82209
|
+
createTablePolicies = (policies, casing2, rolesNameToTsKey = {}) => {
|
82210
|
+
let statement = "";
|
82211
|
+
policies.forEach((it) => {
|
82212
|
+
var _a, _b, _c;
|
82213
|
+
const idxKey = withCasing2(it.name, casing2);
|
82214
|
+
const mappedItTo = (_a = it.to) == null ? void 0 : _a.map((v) => {
|
82215
|
+
return rolesNameToTsKey[v] ? withCasing2(rolesNameToTsKey[v], casing2) : `"${v}"`;
|
82216
|
+
});
|
82217
|
+
statement += ` ${idxKey}: `;
|
82218
|
+
statement += "pgPolicy(";
|
82219
|
+
statement += `"${it.name}", { `;
|
82220
|
+
statement += `as: "${(_b = it.as) == null ? void 0 : _b.toLowerCase()}", for: "${(_c = it.for) == null ? void 0 : _c.toLowerCase()}", to: [${mappedItTo == null ? void 0 : mappedItTo.join(", ")}]${it.using ? `, using: sql\`${it.using}\`` : ""}${it.withCheck ? `, withCheck: sql\`${it.withCheck}\` ` : ""}`;
|
82221
|
+
statement += ` }),
|
81375
82222
|
`;
|
81376
82223
|
});
|
81377
82224
|
return statement;
|
@@ -81449,7 +82296,7 @@ var init_introspect = __esm({
|
|
81449
82296
|
init_utils();
|
81450
82297
|
init_views();
|
81451
82298
|
init_migrate();
|
81452
|
-
introspectPostgres = async (casing2, out, breakpoints, credentials2, tablesFilter, schemasFilter, prefix2) => {
|
82299
|
+
introspectPostgres = async (casing2, out, breakpoints, credentials2, tablesFilter, schemasFilter, prefix2, entities) => {
|
81453
82300
|
const { preparePostgresDB: preparePostgresDB2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
|
81454
82301
|
const db = await preparePostgresDB2(credentials2);
|
81455
82302
|
const matchers = tablesFilter.map((it) => {
|
@@ -81477,9 +82324,15 @@ var init_introspect = __esm({
|
|
81477
82324
|
const progress = new IntrospectProgress(true);
|
81478
82325
|
const res = await (0, import_hanji12.renderWithTask)(
|
81479
82326
|
progress,
|
81480
|
-
fromDatabase2(
|
81481
|
-
|
81482
|
-
|
82327
|
+
fromDatabase2(
|
82328
|
+
db,
|
82329
|
+
filter2,
|
82330
|
+
schemasFilter,
|
82331
|
+
entities,
|
82332
|
+
(stage, count, status) => {
|
82333
|
+
progress.update(stage, count, status);
|
82334
|
+
}
|
82335
|
+
)
|
81483
82336
|
);
|
81484
82337
|
const schema5 = { id: originUUID, prevId: "", ...res };
|
81485
82338
|
const ts = schemaToTypeScript3(schema5, casing2);
|
@@ -81498,6 +82351,7 @@ var init_introspect = __esm({
|
|
81498
82351
|
schemasResolver,
|
81499
82352
|
enumsResolver,
|
81500
82353
|
sequencesResolver,
|
82354
|
+
policyResolver,
|
81501
82355
|
tablesResolver,
|
81502
82356
|
columnsResolver,
|
81503
82357
|
dryPg,
|
@@ -85011,7 +85865,8 @@ var pull = command({
|
|
85011
85865
|
breakpoints,
|
85012
85866
|
tablesFilter,
|
85013
85867
|
schemasFilter,
|
85014
|
-
prefix: prefix2
|
85868
|
+
prefix: prefix2,
|
85869
|
+
entities
|
85015
85870
|
} = config;
|
85016
85871
|
(0, import_fs13.mkdirSync)(out, { recursive: true });
|
85017
85872
|
console.log(
|
@@ -85050,7 +85905,8 @@ var pull = command({
|
|
85050
85905
|
credentials2,
|
85051
85906
|
tablesFilter,
|
85052
85907
|
schemasFilter,
|
85053
|
-
prefix2
|
85908
|
+
prefix2,
|
85909
|
+
entities
|
85054
85910
|
);
|
85055
85911
|
} else if (dialect7 === "mysql") {
|
85056
85912
|
const { introspectMysql: introspectMysql2 } = await Promise.resolve().then(() => (init_introspect(), introspect_exports));
|
@@ -85221,7 +86077,7 @@ init_utils2();
|
|
85221
86077
|
var version2 = async () => {
|
85222
86078
|
const { npmVersion } = await ormCoreVersions();
|
85223
86079
|
const ormVersion = npmVersion ? `drizzle-orm: v${npmVersion}` : "";
|
85224
|
-
const envVersion = "0.24.2-
|
86080
|
+
const envVersion = "0.24.2-277e6de";
|
85225
86081
|
const kitVersion = envVersion ? `v${envVersion}` : "--";
|
85226
86082
|
const versions = `drizzle-kit: ${kitVersion}
|
85227
86083
|
${ormVersion}`;
|