drizzle-kit 0.25.0-a5a41e0 → 0.25.0-b75016b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api.d.mts +92 -470
- package/api.d.ts +92 -470
- package/api.js +16079 -95732
- package/api.mjs +16119 -95768
- package/bin.cjs +1050 -1255
- package/index.d.mts +7 -0
- package/index.d.ts +7 -0
- package/package.json +2 -2
- package/utils.js +29 -51
- package/utils.mjs +29 -51
    
        package/bin.cjs
    CHANGED
    
    | @@ -922,8 +922,8 @@ var require_hanji = __commonJS({ | |
| 922 922 | 
             
                };
         | 
| 923 923 | 
             
                exports2.deferred = deferred;
         | 
| 924 924 | 
             
                var Terminal = class {
         | 
| 925 | 
            -
                  constructor( | 
| 926 | 
            -
                    this.view =  | 
| 925 | 
            +
                  constructor(view, stdin, stdout, closable) {
         | 
| 926 | 
            +
                    this.view = view;
         | 
| 927 927 | 
             
                    this.stdin = stdin;
         | 
| 928 928 | 
             
                    this.stdout = stdout;
         | 
| 929 929 | 
             
                    this.closable = closable;
         | 
| @@ -961,7 +961,7 @@ var require_hanji = __commonJS({ | |
| 961 961 | 
             
                        this.resolve({ status: "submitted", data: this.view.result() });
         | 
| 962 962 | 
             
                        return;
         | 
| 963 963 | 
             
                      }
         | 
| 964 | 
            -
                       | 
| 964 | 
            +
                      view.input(str, key);
         | 
| 965 965 | 
             
                    };
         | 
| 966 966 | 
             
                    this.stdin.on("keypress", keypress);
         | 
| 967 967 | 
             
                    this.view.attach(this);
         | 
| @@ -1023,8 +1023,8 @@ var require_hanji = __commonJS({ | |
| 1023 1023 | 
             
                };
         | 
| 1024 1024 | 
             
                exports2.TaskView = TaskView2;
         | 
| 1025 1025 | 
             
                var TaskTerminal = class {
         | 
| 1026 | 
            -
                  constructor( | 
| 1027 | 
            -
                    this.view =  | 
| 1026 | 
            +
                  constructor(view, stdout) {
         | 
| 1027 | 
            +
                    this.view = view;
         | 
| 1028 1028 | 
             
                    this.stdout = stdout;
         | 
| 1029 1029 | 
             
                    this.text = "";
         | 
| 1030 1030 | 
             
                    this.view.attach(this);
         | 
| @@ -1043,22 +1043,22 @@ var require_hanji = __commonJS({ | |
| 1043 1043 | 
             
                  }
         | 
| 1044 1044 | 
             
                };
         | 
| 1045 1045 | 
             
                exports2.TaskTerminal = TaskTerminal;
         | 
| 1046 | 
            -
                function render9( | 
| 1046 | 
            +
                function render9(view) {
         | 
| 1047 1047 | 
             
                  const { stdin, stdout, closable } = (0, readline_1.prepareReadLine)();
         | 
| 1048 | 
            -
                  if ( | 
| 1049 | 
            -
                    const terminal = new Terminal( | 
| 1048 | 
            +
                  if (view instanceof Prompt3) {
         | 
| 1049 | 
            +
                    const terminal = new Terminal(view, stdin, stdout, closable);
         | 
| 1050 1050 | 
             
                    terminal.requestLayout();
         | 
| 1051 1051 | 
             
                    return terminal.result();
         | 
| 1052 1052 | 
             
                  }
         | 
| 1053 | 
            -
                  stdout.write(`${ | 
| 1053 | 
            +
                  stdout.write(`${view}
         | 
| 1054 1054 | 
             
            `);
         | 
| 1055 1055 | 
             
                  closable.close();
         | 
| 1056 1056 | 
             
                  return;
         | 
| 1057 1057 | 
             
                }
         | 
| 1058 1058 | 
             
                exports2.render = render9;
         | 
| 1059 | 
            -
                function renderWithTask6( | 
| 1059 | 
            +
                function renderWithTask6(view, task) {
         | 
| 1060 1060 | 
             
                  return __awaiter2(this, void 0, void 0, function* () {
         | 
| 1061 | 
            -
                    const terminal = new TaskTerminal( | 
| 1061 | 
            +
                    const terminal = new TaskTerminal(view, process.stdout);
         | 
| 1062 1062 | 
             
                    terminal.requestLayout();
         | 
| 1063 1063 | 
             
                    const result = yield task;
         | 
| 1064 1064 | 
             
                    terminal.clear();
         | 
| @@ -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,  | 
| 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,43 +5954,13 @@ var init_pgSchema = __esm({ | |
| 5901 5954 | 
             
                  columns: stringType().array(),
         | 
| 5902 5955 | 
             
                  nullsNotDistinct: booleanType()
         | 
| 5903 5956 | 
             
                }).strict();
         | 
| 5904 | 
            -
                 | 
| 5905 | 
            -
                  checkOption: enumType(["local", "cascaded"]).optional(),
         | 
| 5906 | 
            -
                  securityBarrier: booleanType().optional(),
         | 
| 5907 | 
            -
                  securityInvoker: booleanType().optional()
         | 
| 5908 | 
            -
                }).strict();
         | 
| 5909 | 
            -
                matViewWithOption = objectType({
         | 
| 5910 | 
            -
                  fillfactor: numberType().optional(),
         | 
| 5911 | 
            -
                  toastTupleTarget: numberType().optional(),
         | 
| 5912 | 
            -
                  parallelWorkers: numberType().optional(),
         | 
| 5913 | 
            -
                  autovacuumEnabled: booleanType().optional(),
         | 
| 5914 | 
            -
                  vacuumIndexCleanup: enumType(["auto", "off", "on"]).optional(),
         | 
| 5915 | 
            -
                  vacuumTruncate: booleanType().optional(),
         | 
| 5916 | 
            -
                  autovacuumVacuumThreshold: numberType().optional(),
         | 
| 5917 | 
            -
                  autovacuumVacuumScaleFactor: numberType().optional(),
         | 
| 5918 | 
            -
                  autovacuumVacuumCostDelay: numberType().optional(),
         | 
| 5919 | 
            -
                  autovacuumVacuumCostLimit: numberType().optional(),
         | 
| 5920 | 
            -
                  autovacuumFreezeMinAge: numberType().optional(),
         | 
| 5921 | 
            -
                  autovacuumFreezeMaxAge: numberType().optional(),
         | 
| 5922 | 
            -
                  autovacuumFreezeTableAge: numberType().optional(),
         | 
| 5923 | 
            -
                  autovacuumMultixactFreezeMinAge: numberType().optional(),
         | 
| 5924 | 
            -
                  autovacuumMultixactFreezeMaxAge: numberType().optional(),
         | 
| 5925 | 
            -
                  autovacuumMultixactFreezeTableAge: numberType().optional(),
         | 
| 5926 | 
            -
                  logAutovacuumMinDuration: numberType().optional(),
         | 
| 5927 | 
            -
                  userCatalogTable: booleanType().optional()
         | 
| 5928 | 
            -
                }).strict();
         | 
| 5929 | 
            -
                mergedViewWithOption = viewWithOption.merge(matViewWithOption);
         | 
| 5930 | 
            -
                view = objectType({
         | 
| 5957 | 
            +
                policy = objectType({
         | 
| 5931 5958 | 
             
                  name: stringType(),
         | 
| 5932 | 
            -
                   | 
| 5933 | 
            -
                   | 
| 5934 | 
            -
                   | 
| 5935 | 
            -
                  materialized: booleanType(),
         | 
| 5936 | 
            -
                  with: mergedViewWithOption.optional(),
         | 
| 5937 | 
            -
                  isExisting: booleanType(),
         | 
| 5938 | 
            -
                  withNoData: booleanType().optional(),
         | 
| 5959 | 
            +
                  as: enumType(["PERMISSIVE", "RESTRICTIVE"]).optional(),
         | 
| 5960 | 
            +
                  for: enumType(["ALL", "SELECT", "INSERT", "UPDATE", "DELETE"]).optional(),
         | 
| 5961 | 
            +
                  to: stringType().array().optional(),
         | 
| 5939 5962 | 
             
                  using: stringType().optional(),
         | 
| 5940 | 
            -
                   | 
| 5963 | 
            +
                  withCheck: stringType().optional()
         | 
| 5941 5964 | 
             
                }).strict();
         | 
| 5942 5965 | 
             
                tableV42 = objectType({
         | 
| 5943 5966 | 
             
                  name: stringType(),
         | 
| @@ -5980,7 +6003,8 @@ var init_pgSchema = __esm({ | |
| 5980 6003 | 
             
                  indexes: recordType(stringType(), index2),
         | 
| 5981 6004 | 
             
                  foreignKeys: recordType(stringType(), fk2),
         | 
| 5982 6005 | 
             
                  compositePrimaryKeys: recordType(stringType(), compositePK2),
         | 
| 5983 | 
            -
                  uniqueConstraints: recordType(stringType(), uniqueConstraint2).default({})
         | 
| 6006 | 
            +
                  uniqueConstraints: recordType(stringType(), uniqueConstraint2).default({}),
         | 
| 6007 | 
            +
                  policies: recordType(stringType(), policy).default({})
         | 
| 5984 6008 | 
             
                }).strict();
         | 
| 5985 6009 | 
             
                schemaHash2 = objectType({
         | 
| 5986 6010 | 
             
                  id: stringType(),
         | 
| @@ -6073,8 +6097,8 @@ var init_pgSchema = __esm({ | |
| 6073 6097 | 
             
                  tables: recordType(stringType(), table2),
         | 
| 6074 6098 | 
             
                  enums: recordType(stringType(), enumSchema),
         | 
| 6075 6099 | 
             
                  schemas: recordType(stringType(), stringType()),
         | 
| 6076 | 
            -
                  views: recordType(stringType(), view).default({}),
         | 
| 6077 6100 | 
             
                  sequences: recordType(stringType(), sequenceSchema).default({}),
         | 
| 6101 | 
            +
                  roles: recordType(stringType(), roleSchema).default({}),
         | 
| 6078 6102 | 
             
                  _meta: objectType({
         | 
| 6079 6103 | 
             
                    schemas: recordType(stringType(), stringType()),
         | 
| 6080 6104 | 
             
                    tables: recordType(stringType(), stringType()),
         | 
| @@ -6089,7 +6113,8 @@ var init_pgSchema = __esm({ | |
| 6089 6113 | 
             
                  indexes: recordType(stringType(), stringType()),
         | 
| 6090 6114 | 
             
                  foreignKeys: recordType(stringType(), stringType()),
         | 
| 6091 6115 | 
             
                  compositePrimaryKeys: recordType(stringType(), stringType()),
         | 
| 6092 | 
            -
                  uniqueConstraints: recordType(stringType(), stringType())
         | 
| 6116 | 
            +
                  uniqueConstraints: recordType(stringType(), stringType()),
         | 
| 6117 | 
            +
                  policies: recordType(stringType(), stringType())
         | 
| 6093 6118 | 
             
                }).strict();
         | 
| 6094 6119 | 
             
                tableSquashedV42 = objectType({
         | 
| 6095 6120 | 
             
                  name: stringType(),
         | 
| @@ -6118,8 +6143,8 @@ var init_pgSchema = __esm({ | |
| 6118 6143 | 
             
                  tables: recordType(stringType(), tableSquashed2),
         | 
| 6119 6144 | 
             
                  enums: recordType(stringType(), enumSchema),
         | 
| 6120 6145 | 
             
                  schemas: recordType(stringType(), stringType()),
         | 
| 6121 | 
            -
                   | 
| 6122 | 
            -
                   | 
| 6146 | 
            +
                  sequences: recordType(stringType(), sequenceSquashed),
         | 
| 6147 | 
            +
                  roles: recordType(stringType(), roleSchema).default({})
         | 
| 6123 6148 | 
             
                }).strict();
         | 
| 6124 6149 | 
             
                pgSchemaV3 = pgSchemaInternalV3.merge(schemaHash2);
         | 
| 6125 6150 | 
             
                pgSchemaV4 = pgSchemaInternalV4.merge(schemaHash2);
         | 
| @@ -6202,6 +6227,25 @@ var init_pgSchema = __esm({ | |
| 6202 6227 | 
             
                  squashFK: (fk4) => {
         | 
| 6203 6228 | 
             
                    return `${fk4.name};${fk4.tableFrom};${fk4.columnsFrom.join(",")};${fk4.tableTo};${fk4.columnsTo.join(",")};${fk4.onUpdate ?? ""};${fk4.onDelete ?? ""};${fk4.schemaTo || "public"}`;
         | 
| 6204 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 | 
            +
                  },
         | 
| 6205 6249 | 
             
                  squashPK: (pk) => {
         | 
| 6206 6250 | 
             
                    return `${pk.columns.join(",")};${pk.name}`;
         | 
| 6207 6251 | 
             
                  },
         | 
| @@ -6304,6 +6348,9 @@ var init_pgSchema = __esm({ | |
| 6304 6348 | 
             
                          return PgSquasher.squashUnique(unq);
         | 
| 6305 6349 | 
             
                        }
         | 
| 6306 6350 | 
             
                      );
         | 
| 6351 | 
            +
                      const squashedPolicies = mapValues(it[1].policies, (policy2) => {
         | 
| 6352 | 
            +
                        return action === "push" ? PgSquasher.squashPolicyPush(policy2) : PgSquasher.squashPolicy(policy2);
         | 
| 6353 | 
            +
                      });
         | 
| 6307 6354 | 
             
                      return [
         | 
| 6308 6355 | 
             
                        it[0],
         | 
| 6309 6356 | 
             
                        {
         | 
| @@ -6313,7 +6360,8 @@ var init_pgSchema = __esm({ | |
| 6313 6360 | 
             
                          indexes: squashedIndexes,
         | 
| 6314 6361 | 
             
                          foreignKeys: squashedFKs,
         | 
| 6315 6362 | 
             
                          compositePrimaryKeys: squashedPKs,
         | 
| 6316 | 
            -
                          uniqueConstraints: squashedUniqueConstraints
         | 
| 6363 | 
            +
                          uniqueConstraints: squashedUniqueConstraints,
         | 
| 6364 | 
            +
                          policies: squashedPolicies
         | 
| 6317 6365 | 
             
                        }
         | 
| 6318 6366 | 
             
                      ];
         | 
| 6319 6367 | 
             
                    })
         | 
| @@ -6336,8 +6384,8 @@ var init_pgSchema = __esm({ | |
| 6336 6384 | 
             
                    tables: mappedTables,
         | 
| 6337 6385 | 
             
                    enums: json.enums,
         | 
| 6338 6386 | 
             
                    schemas: json.schemas,
         | 
| 6339 | 
            -
                     | 
| 6340 | 
            -
                     | 
| 6387 | 
            +
                    sequences: mappedSequences,
         | 
| 6388 | 
            +
                    roles: json.roles
         | 
| 6341 6389 | 
             
                  };
         | 
| 6342 6390 | 
             
                };
         | 
| 6343 6391 | 
             
                dryPg = pgSchema.parse({
         | 
| @@ -8852,9 +8900,6 @@ var init_utils3 = __esm({ | |
| 8852 8900 | 
             
                String.prototype.concatIf = function(it, condition) {
         | 
| 8853 8901 | 
             
                  return condition ? `${this}${it}` : String(this);
         | 
| 8854 8902 | 
             
                };
         | 
| 8855 | 
            -
                String.prototype.snake_case = function() {
         | 
| 8856 | 
            -
                  return this && this.length > 0 ? `${this.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`)}` : String(this);
         | 
| 8857 | 
            -
                };
         | 
| 8858 8903 | 
             
                Array.prototype.random = function() {
         | 
| 8859 8904 | 
             
                  return this[~~(Math.random() * this.length)];
         | 
| 8860 8905 | 
             
                };
         | 
| @@ -10634,10 +10679,10 @@ var require_inflight = __commonJS({ | |
| 10634 10679 | 
             
                }
         | 
| 10635 10680 | 
             
                function slice(args) {
         | 
| 10636 10681 | 
             
                  var length = args.length;
         | 
| 10637 | 
            -
                  var  | 
| 10682 | 
            +
                  var array2 = [];
         | 
| 10638 10683 | 
             
                  for (var i2 = 0; i2 < length; i2++)
         | 
| 10639 | 
            -
                     | 
| 10640 | 
            -
                  return  | 
| 10684 | 
            +
                    array2[i2] = args[i2];
         | 
| 10685 | 
            +
                  return array2;
         | 
| 10641 10686 | 
             
                }
         | 
| 10642 10687 | 
             
              }
         | 
| 10643 10688 | 
             
            });
         | 
| @@ -11456,6 +11501,13 @@ var init_cli = __esm({ | |
| 11456 11501 | 
             
                  breakpoints: booleanType().optional().default(true),
         | 
| 11457 11502 | 
             
                  migrations: objectType({
         | 
| 11458 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)
         | 
| 11459 11511 | 
             
                  }).optional()
         | 
| 11460 11512 | 
             
                }).passthrough();
         | 
| 11461 11513 | 
             
                configCheck = objectType({
         | 
| @@ -12551,11 +12603,11 @@ var require_node2 = __commonJS({ | |
| 12551 12603 | 
             
                };
         | 
| 12552 12604 | 
             
                var require_base64 = __commonJS3((exports3) => {
         | 
| 12553 12605 | 
             
                  var intToCharMap = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");
         | 
| 12554 | 
            -
                  exports3.encode = function( | 
| 12555 | 
            -
                    if (0 <=  | 
| 12556 | 
            -
                      return intToCharMap[ | 
| 12606 | 
            +
                  exports3.encode = function(number3) {
         | 
| 12607 | 
            +
                    if (0 <= number3 && number3 < intToCharMap.length) {
         | 
| 12608 | 
            +
                      return intToCharMap[number3];
         | 
| 12557 12609 | 
             
                    }
         | 
| 12558 | 
            -
                    throw new TypeError("Must be between 0 and 63: " +  | 
| 12610 | 
            +
                    throw new TypeError("Must be between 0 and 63: " + number3);
         | 
| 12559 12611 | 
             
                  };
         | 
| 12560 12612 | 
             
                  exports3.decode = function(charCode) {
         | 
| 12561 12613 | 
             
                    var bigA = 65;
         | 
| @@ -17638,7 +17690,8 @@ var init_utils4 = __esm({ | |
| 17638 17690 | 
             
                      credentials: parsed2.data,
         | 
| 17639 17691 | 
             
                      tablesFilter,
         | 
| 17640 17692 | 
             
                      schemasFilter,
         | 
| 17641 | 
            -
                      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
         | 
| 17642 17695 | 
             
                    };
         | 
| 17643 17696 | 
             
                  }
         | 
| 17644 17697 | 
             
                  if (dialect7 === "mysql") {
         | 
| @@ -17655,7 +17708,8 @@ var init_utils4 = __esm({ | |
| 17655 17708 | 
             
                      credentials: parsed2.data,
         | 
| 17656 17709 | 
             
                      tablesFilter,
         | 
| 17657 17710 | 
             
                      schemasFilter,
         | 
| 17658 | 
            -
                      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
         | 
| 17659 17713 | 
             
                    };
         | 
| 17660 17714 | 
             
                  }
         | 
| 17661 17715 | 
             
                  if (dialect7 === "sqlite") {
         | 
| @@ -17672,7 +17726,8 @@ var init_utils4 = __esm({ | |
| 17672 17726 | 
             
                      credentials: parsed2.data,
         | 
| 17673 17727 | 
             
                      tablesFilter,
         | 
| 17674 17728 | 
             
                      schemasFilter,
         | 
| 17675 | 
            -
                      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
         | 
| 17676 17731 | 
             
                    };
         | 
| 17677 17732 | 
             
                  }
         | 
| 17678 17733 | 
             
                  if (dialect7 === "turso") {
         | 
| @@ -18508,8 +18563,7 @@ var init_pgImports = __esm({ | |
| 18508 18563 | 
             
                  const enums = [];
         | 
| 18509 18564 | 
             
                  const schemas = [];
         | 
| 18510 18565 | 
             
                  const sequences = [];
         | 
| 18511 | 
            -
                  const  | 
| 18512 | 
            -
                  const matViews = [];
         | 
| 18566 | 
            +
                  const roles = [];
         | 
| 18513 18567 | 
             
                  const i0values = Object.values(exports2);
         | 
| 18514 18568 | 
             
                  i0values.forEach((t2) => {
         | 
| 18515 18569 | 
             
                    if ((0, import_pg_core.isPgEnum)(t2)) {
         | 
| @@ -18522,25 +18576,21 @@ var init_pgImports = __esm({ | |
| 18522 18576 | 
             
                    if ((0, import_drizzle_orm4.is)(t2, import_pg_core.PgSchema)) {
         | 
| 18523 18577 | 
             
                      schemas.push(t2);
         | 
| 18524 18578 | 
             
                    }
         | 
| 18525 | 
            -
                    if ((0, import_pg_core.isPgView)(t2)) {
         | 
| 18526 | 
            -
                      views.push(t2);
         | 
| 18527 | 
            -
                    }
         | 
| 18528 | 
            -
                    if ((0, import_pg_core.isPgMaterializedView)(t2)) {
         | 
| 18529 | 
            -
                      matViews.push(t2);
         | 
| 18530 | 
            -
                    }
         | 
| 18531 18579 | 
             
                    if ((0, import_pg_core.isPgSequence)(t2)) {
         | 
| 18532 18580 | 
             
                      sequences.push(t2);
         | 
| 18533 18581 | 
             
                    }
         | 
| 18582 | 
            +
                    if ((0, import_drizzle_orm4.is)(t2, import_pg_core.PgRole)) {
         | 
| 18583 | 
            +
                      roles.push(t2);
         | 
| 18584 | 
            +
                    }
         | 
| 18534 18585 | 
             
                  });
         | 
| 18535 | 
            -
                  return { tables, enums, schemas, sequences,  | 
| 18586 | 
            +
                  return { tables, enums, schemas, sequences, roles };
         | 
| 18536 18587 | 
             
                };
         | 
| 18537 18588 | 
             
                prepareFromPgImports = async (imports) => {
         | 
| 18538 | 
            -
                   | 
| 18539 | 
            -
                   | 
| 18540 | 
            -
                   | 
| 18541 | 
            -
                   | 
| 18542 | 
            -
                   | 
| 18543 | 
            -
                  const matViews = [];
         | 
| 18589 | 
            +
                  let tables = [];
         | 
| 18590 | 
            +
                  let enums = [];
         | 
| 18591 | 
            +
                  let schemas = [];
         | 
| 18592 | 
            +
                  let sequences = [];
         | 
| 18593 | 
            +
                  let roles = [];
         | 
| 18544 18594 | 
             
                  const { unregister } = await safeRegister();
         | 
| 18545 18595 | 
             
                  for (let i2 = 0; i2 < imports.length; i2++) {
         | 
| 18546 18596 | 
             
                    const it = imports[i2];
         | 
| @@ -18550,11 +18600,10 @@ var init_pgImports = __esm({ | |
| 18550 18600 | 
             
                    enums.push(...prepared.enums);
         | 
| 18551 18601 | 
             
                    schemas.push(...prepared.schemas);
         | 
| 18552 18602 | 
             
                    sequences.push(...prepared.sequences);
         | 
| 18553 | 
            -
                     | 
| 18554 | 
            -
                    matViews.push(...prepared.matViews);
         | 
| 18603 | 
            +
                    roles.push(...prepared.roles);
         | 
| 18555 18604 | 
             
                  }
         | 
| 18556 18605 | 
             
                  unregister();
         | 
| 18557 | 
            -
                  return { tables: Array.from(new Set(tables)), enums, schemas, sequences,  | 
| 18606 | 
            +
                  return { tables: Array.from(new Set(tables)), enums, schemas, sequences, roles };
         | 
| 18558 18607 | 
             
                };
         | 
| 18559 18608 | 
             
              }
         | 
| 18560 18609 | 
             
            });
         | 
| @@ -18562,9 +18611,11 @@ var init_pgImports = __esm({ | |
| 18562 18611 | 
             
            // src/serializer/pgSerializer.ts
         | 
| 18563 18612 | 
             
            var pgSerializer_exports = {};
         | 
| 18564 18613 | 
             
            __export(pgSerializer_exports, {
         | 
| 18614 | 
            +
              buildArrayString: () => buildArrayString,
         | 
| 18565 18615 | 
             
              fromDatabase: () => fromDatabase2,
         | 
| 18566 18616 | 
             
              generatePgSnapshot: () => generatePgSnapshot,
         | 
| 18567 | 
            -
              indexName: () => indexName2
         | 
| 18617 | 
            +
              indexName: () => indexName2,
         | 
| 18618 | 
            +
              minRangeForIdentityBasedOn: () => minRangeForIdentityBasedOn
         | 
| 18568 18619 | 
             
            });
         | 
| 18569 18620 | 
             
            function stringFromIdentityProperty(field) {
         | 
| 18570 18621 | 
             
              return typeof field === "string" ? field : typeof field === "undefined" ? void 0 : String(field);
         | 
| @@ -18578,9 +18629,9 @@ function minRangeForIdentityBasedOn(columnType) { | |
| 18578 18629 | 
             
            function stringFromDatabaseIdentityProperty(field) {
         | 
| 18579 18630 | 
             
              return typeof field === "string" ? field : typeof field === "undefined" ? void 0 : typeof field === "bigint" ? field.toString() : String(field);
         | 
| 18580 18631 | 
             
            }
         | 
| 18581 | 
            -
            function buildArrayString( | 
| 18632 | 
            +
            function buildArrayString(array2, sqlType) {
         | 
| 18582 18633 | 
             
              sqlType = sqlType.split("[")[0];
         | 
| 18583 | 
            -
              const values =  | 
| 18634 | 
            +
              const values = array2.map((value) => {
         | 
| 18584 18635 | 
             
                if (typeof value === "number" || typeof value === "bigint") {
         | 
| 18585 18636 | 
             
                  return value.toString();
         | 
| 18586 18637 | 
             
                } else if (typeof value === "boolean") {
         | 
| @@ -18602,6 +18653,40 @@ function buildArrayString(array, sqlType) { | |
| 18602 18653 | 
             
              }).join(",");
         | 
| 18603 18654 | 
             
              return `{${values}}`;
         | 
| 18604 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 | 
            +
            }
         | 
| 18605 18690 | 
             
            var import_drizzle_orm5, import_pg_core2, import_pg_core3, dialect5, indexName2, generatePgSnapshot, trimChar, fromDatabase2, defaultForColumn;
         | 
| 18606 18691 | 
             
            var init_pgSerializer = __esm({
         | 
| 18607 18692 | 
             
              "src/serializer/pgSerializer.ts"() {
         | 
| @@ -18618,11 +18703,11 @@ var init_pgSerializer = __esm({ | |
| 18618 18703 | 
             
                indexName2 = (tableName, columns) => {
         | 
| 18619 18704 | 
             
                  return `${tableName}_${columns.join("_")}_index`;
         | 
| 18620 18705 | 
             
                };
         | 
| 18621 | 
            -
                generatePgSnapshot = (tables, enums, schemas, sequences,  | 
| 18622 | 
            -
                  var _a, _b, _c, _d, _e, _f | 
| 18706 | 
            +
                generatePgSnapshot = (tables, enums, schemas, sequences, roles, schemaFilter) => {
         | 
| 18707 | 
            +
                  var _a, _b, _c, _d, _e, _f;
         | 
| 18623 18708 | 
             
                  const result = {};
         | 
| 18624 | 
            -
                  const resultViews = {};
         | 
| 18625 18709 | 
             
                  const sequencesToReturn = {};
         | 
| 18710 | 
            +
                  const rolesToReturn = {};
         | 
| 18626 18711 | 
             
                  const indexesInSchema = {};
         | 
| 18627 18712 | 
             
                  for (const table4 of tables) {
         | 
| 18628 18713 | 
             
                    const {
         | 
| @@ -18633,7 +18718,8 @@ var init_pgSerializer = __esm({ | |
| 18633 18718 | 
             
                      checks,
         | 
| 18634 18719 | 
             
                      schema: schema5,
         | 
| 18635 18720 | 
             
                      primaryKeys,
         | 
| 18636 | 
            -
                      uniqueConstraints
         | 
| 18721 | 
            +
                      uniqueConstraints,
         | 
| 18722 | 
            +
                      policies
         | 
| 18637 18723 | 
             
                    } = (0, import_pg_core3.getTableConfig)(table4);
         | 
| 18638 18724 | 
             
                    if (schemaFilter && !schemaFilter.includes(schema5 ?? "public")) {
         | 
| 18639 18725 | 
             
                      continue;
         | 
| @@ -18643,6 +18729,7 @@ var init_pgSerializer = __esm({ | |
| 18643 18729 | 
             
                    const foreignKeysObject = {};
         | 
| 18644 18730 | 
             
                    const primaryKeysObject = {};
         | 
| 18645 18731 | 
             
                    const uniqueConstraintObject = {};
         | 
| 18732 | 
            +
                    const policiesObject = {};
         | 
| 18646 18733 | 
             
                    columns.forEach((column7) => {
         | 
| 18647 18734 | 
             
                      var _a2, _b2, _c2, _d2, _e2, _f2;
         | 
| 18648 18735 | 
             
                      const notNull = column7.notNull;
         | 
| @@ -18888,6 +18975,35 @@ ${withStyle.errorWarning( | |
| 18888 18975 | 
             
                        with: value.config.with ?? {}
         | 
| 18889 18976 | 
             
                      };
         | 
| 18890 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 | 
            +
                    });
         | 
| 18891 19007 | 
             
                    const tableKey2 = `${schema5 ?? "public"}.${tableName}`;
         | 
| 18892 19008 | 
             
                    result[tableKey2] = {
         | 
| 18893 19009 | 
             
                      name: tableName,
         | 
| @@ -18896,7 +19012,8 @@ ${withStyle.errorWarning( | |
| 18896 19012 | 
             
                      indexes: indexesObject,
         | 
| 18897 19013 | 
             
                      foreignKeys: foreignKeysObject,
         | 
| 18898 19014 | 
             
                      compositePrimaryKeys: primaryKeysObject,
         | 
| 18899 | 
            -
                      uniqueConstraints: uniqueConstraintObject
         | 
| 19015 | 
            +
                      uniqueConstraints: uniqueConstraintObject,
         | 
| 19016 | 
            +
                      policies: policiesObject
         | 
| 18900 19017 | 
             
                    };
         | 
| 18901 19018 | 
             
                  }
         | 
| 18902 19019 | 
             
                  for (const sequence of sequences) {
         | 
| @@ -18920,148 +19037,15 @@ ${withStyle.errorWarning( | |
| 18920 19037 | 
             
                    } else {
         | 
| 18921 19038 | 
             
                    }
         | 
| 18922 19039 | 
             
                  }
         | 
| 18923 | 
            -
                  const  | 
| 18924 | 
            -
             | 
| 18925 | 
            -
             | 
| 18926 | 
            -
             | 
| 18927 | 
            -
             | 
| 18928 | 
            -
             | 
| 18929 | 
            -
             | 
| 18930 | 
            -
             | 
| 18931 | 
            -
                    let tablespace;
         | 
| 18932 | 
            -
                    let using;
         | 
| 18933 | 
            -
                    let withNoData;
         | 
| 18934 | 
            -
                    let materialized = false;
         | 
| 18935 | 
            -
                    if ((0, import_drizzle_orm5.is)(view2, import_pg_core2.PgView)) {
         | 
| 18936 | 
            -
                      ({ name: viewName, schema: schema5, query, selectedFields, isExisting, with: withOption } = (0, import_pg_core2.getViewConfig)(view2));
         | 
| 18937 | 
            -
                    } else {
         | 
| 18938 | 
            -
                      ({ name: viewName, schema: schema5, query, selectedFields, isExisting, with: withOption, tablespace, using, withNoData } = (0, import_pg_core2.getMaterializedViewConfig)(
         | 
| 18939 | 
            -
                        view2
         | 
| 18940 | 
            -
                      ));
         | 
| 18941 | 
            -
                      materialized = true;
         | 
| 18942 | 
            -
                    }
         | 
| 18943 | 
            -
                    const viewSchema = schema5 ?? "public";
         | 
| 18944 | 
            -
                    const viewKey = `${viewSchema}.${viewName}`;
         | 
| 18945 | 
            -
                    const columnsObject = {};
         | 
| 18946 | 
            -
                    const uniqueConstraintObject = {};
         | 
| 18947 | 
            -
                    const existingView = resultViews[viewKey];
         | 
| 18948 | 
            -
                    if (typeof existingView !== "undefined") {
         | 
| 18949 | 
            -
                      console.log(
         | 
| 18950 | 
            -
                        `
         | 
| 18951 | 
            -
            ${withStyle.errorWarning(
         | 
| 18952 | 
            -
                          `We've found duplicated view name across ${source_default.underline.blue(
         | 
| 18953 | 
            -
                            schema5 ?? "public"
         | 
| 18954 | 
            -
                          )} schema. Please rename your view`
         | 
| 18955 | 
            -
                        )}`
         | 
| 18956 | 
            -
                      );
         | 
| 18957 | 
            -
                      process.exit(1);
         | 
| 18958 | 
            -
                    }
         | 
| 18959 | 
            -
                    for (const key in selectedFields) {
         | 
| 18960 | 
            -
                      if ((0, import_drizzle_orm5.is)(selectedFields[key], import_pg_core2.PgColumn)) {
         | 
| 18961 | 
            -
                        const column7 = selectedFields[key];
         | 
| 18962 | 
            -
                        const notNull = column7.notNull;
         | 
| 18963 | 
            -
                        const primaryKey = column7.primary;
         | 
| 18964 | 
            -
                        const sqlTypeLowered = column7.getSQLType().toLowerCase();
         | 
| 18965 | 
            -
                        const typeSchema = (0, import_drizzle_orm5.is)(column7, import_pg_core2.PgEnumColumn) ? column7.enum.schema || "public" : void 0;
         | 
| 18966 | 
            -
                        const generated = column7.generated;
         | 
| 18967 | 
            -
                        const identity = column7.generatedIdentity;
         | 
| 18968 | 
            -
                        const increment = stringFromIdentityProperty((_g = identity == null ? void 0 : identity.sequenceOptions) == null ? void 0 : _g.increment) ?? "1";
         | 
| 18969 | 
            -
                        const minValue = stringFromIdentityProperty((_h = identity == null ? void 0 : identity.sequenceOptions) == null ? void 0 : _h.minValue) ?? (parseFloat(increment) < 0 ? minRangeForIdentityBasedOn(column7.columnType) : "1");
         | 
| 18970 | 
            -
                        const maxValue = stringFromIdentityProperty((_i = identity == null ? void 0 : identity.sequenceOptions) == null ? void 0 : _i.maxValue) ?? (parseFloat(increment) < 0 ? "-1" : maxRangeForIdentityBasedOn(column7.getSQLType()));
         | 
| 18971 | 
            -
                        const startWith = stringFromIdentityProperty((_j = identity == null ? void 0 : identity.sequenceOptions) == null ? void 0 : _j.startWith) ?? (parseFloat(increment) < 0 ? maxValue : minValue);
         | 
| 18972 | 
            -
                        const cache = stringFromIdentityProperty((_k = identity == null ? void 0 : identity.sequenceOptions) == null ? void 0 : _k.cache) ?? "1";
         | 
| 18973 | 
            -
                        const columnToSet = {
         | 
| 18974 | 
            -
                          name: column7.name,
         | 
| 18975 | 
            -
                          type: column7.getSQLType(),
         | 
| 18976 | 
            -
                          typeSchema,
         | 
| 18977 | 
            -
                          primaryKey,
         | 
| 18978 | 
            -
                          notNull,
         | 
| 18979 | 
            -
                          generated: generated ? {
         | 
| 18980 | 
            -
                            as: (0, import_drizzle_orm5.is)(generated.as, import_drizzle_orm5.SQL) ? dialect5.sqlToQuery(generated.as).sql : typeof generated.as === "function" ? dialect5.sqlToQuery(generated.as()).sql : generated.as,
         | 
| 18981 | 
            -
                            type: "stored"
         | 
| 18982 | 
            -
                          } : void 0,
         | 
| 18983 | 
            -
                          identity: identity ? {
         | 
| 18984 | 
            -
                            type: identity.type,
         | 
| 18985 | 
            -
                            name: identity.sequenceName ?? `${viewName}_${column7.name}_seq`,
         | 
| 18986 | 
            -
                            schema: schema5 ?? "public",
         | 
| 18987 | 
            -
                            increment,
         | 
| 18988 | 
            -
                            startWith,
         | 
| 18989 | 
            -
                            minValue,
         | 
| 18990 | 
            -
                            maxValue,
         | 
| 18991 | 
            -
                            cache,
         | 
| 18992 | 
            -
                            cycle: ((_l = identity == null ? void 0 : identity.sequenceOptions) == null ? void 0 : _l.cycle) ?? false
         | 
| 18993 | 
            -
                          } : void 0
         | 
| 18994 | 
            -
                        };
         | 
| 18995 | 
            -
                        if (column7.isUnique) {
         | 
| 18996 | 
            -
                          const existingUnique = uniqueConstraintObject[column7.uniqueName];
         | 
| 18997 | 
            -
                          if (typeof existingUnique !== "undefined") {
         | 
| 18998 | 
            -
                            console.log(
         | 
| 18999 | 
            -
                              `
         | 
| 19000 | 
            -
            ${withStyle.errorWarning(`We've found duplicated unique constraint names in ${source_default.underline.blue(
         | 
| 19001 | 
            -
                                viewName
         | 
| 19002 | 
            -
                              )} table. 
         | 
| 19003 | 
            -
                      The unique constraint ${source_default.underline.blue(
         | 
| 19004 | 
            -
                                column7.uniqueName
         | 
| 19005 | 
            -
                              )} on the ${source_default.underline.blue(
         | 
| 19006 | 
            -
                                column7.name
         | 
| 19007 | 
            -
                              )} column is confilcting with a unique constraint name already defined for ${source_default.underline.blue(
         | 
| 19008 | 
            -
                                existingUnique.columns.join(",")
         | 
| 19009 | 
            -
                              )} columns
         | 
| 19010 | 
            -
            `)}`
         | 
| 19011 | 
            -
                            );
         | 
| 19012 | 
            -
                            process.exit(1);
         | 
| 19013 | 
            -
                          }
         | 
| 19014 | 
            -
                          uniqueConstraintObject[column7.uniqueName] = {
         | 
| 19015 | 
            -
                            name: column7.uniqueName,
         | 
| 19016 | 
            -
                            nullsNotDistinct: column7.uniqueType === "not distinct",
         | 
| 19017 | 
            -
                            columns: [columnToSet.name]
         | 
| 19018 | 
            -
                          };
         | 
| 19019 | 
            -
                        }
         | 
| 19020 | 
            -
                        if (column7.default !== void 0) {
         | 
| 19021 | 
            -
                          if ((0, import_drizzle_orm5.is)(column7.default, import_drizzle_orm5.SQL)) {
         | 
| 19022 | 
            -
                            columnToSet.default = sqlToStr(column7.default);
         | 
| 19023 | 
            -
                          } else {
         | 
| 19024 | 
            -
                            if (typeof column7.default === "string") {
         | 
| 19025 | 
            -
                              columnToSet.default = `'${column7.default}'`;
         | 
| 19026 | 
            -
                            } else {
         | 
| 19027 | 
            -
                              if (sqlTypeLowered === "jsonb" || sqlTypeLowered === "json") {
         | 
| 19028 | 
            -
                                columnToSet.default = `'${JSON.stringify(
         | 
| 19029 | 
            -
                                  column7.default
         | 
| 19030 | 
            -
                                )}'::${sqlTypeLowered}`;
         | 
| 19031 | 
            -
                              } else if (column7.default instanceof Date) {
         | 
| 19032 | 
            -
                                if (sqlTypeLowered === "date") {
         | 
| 19033 | 
            -
                                  columnToSet.default = `'${column7.default.toISOString().split("T")[0]}'`;
         | 
| 19034 | 
            -
                                } else if (sqlTypeLowered === "timestamp") {
         | 
| 19035 | 
            -
                                  columnToSet.default = `'${column7.default.toISOString().replace("T", " ").slice(0, 23)}'`;
         | 
| 19036 | 
            -
                                } else {
         | 
| 19037 | 
            -
                                  columnToSet.default = `'${column7.default.toISOString()}'`;
         | 
| 19038 | 
            -
                                }
         | 
| 19039 | 
            -
                              } else if (isPgArrayType(sqlTypeLowered) && Array.isArray(column7.default)) {
         | 
| 19040 | 
            -
                                columnToSet.default = `'${buildArrayString(
         | 
| 19041 | 
            -
                                  column7.default,
         | 
| 19042 | 
            -
                                  sqlTypeLowered
         | 
| 19043 | 
            -
                                )}'`;
         | 
| 19044 | 
            -
                              } else {
         | 
| 19045 | 
            -
                                columnToSet.default = column7.default;
         | 
| 19046 | 
            -
                              }
         | 
| 19047 | 
            -
                            }
         | 
| 19048 | 
            -
                          }
         | 
| 19049 | 
            -
                        }
         | 
| 19050 | 
            -
                        columnsObject[column7.name] = columnToSet;
         | 
| 19051 | 
            -
                      }
         | 
| 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 | 
            +
                      };
         | 
| 19052 19048 | 
             
                    }
         | 
| 19053 | 
            -
                    resultViews[viewKey] = {
         | 
| 19054 | 
            -
                      columns: columnsObject,
         | 
| 19055 | 
            -
                      definition: isExisting ? void 0 : dialect5.sqlToQuery(query).sql,
         | 
| 19056 | 
            -
                      name: viewName,
         | 
| 19057 | 
            -
                      schema: viewSchema,
         | 
| 19058 | 
            -
                      isExisting,
         | 
| 19059 | 
            -
                      with: withOption,
         | 
| 19060 | 
            -
                      withNoData,
         | 
| 19061 | 
            -
                      materialized,
         | 
| 19062 | 
            -
                      tablespace,
         | 
| 19063 | 
            -
                      using
         | 
| 19064 | 
            -
                    };
         | 
| 19065 19049 | 
             
                  }
         | 
| 19066 19050 | 
             
                  const enumsToReturn = enums.reduce((map, obj) => {
         | 
| 19067 19051 | 
             
                    const enumSchema3 = obj.schema || "public";
         | 
| @@ -19089,7 +19073,7 @@ ${withStyle.errorWarning(`We've found duplicated unique constraint names in ${so | |
| 19089 19073 | 
             
                    enums: enumsToReturn,
         | 
| 19090 19074 | 
             
                    schemas: schemasObject,
         | 
| 19091 19075 | 
             
                    sequences: sequencesToReturn,
         | 
| 19092 | 
            -
                     | 
| 19076 | 
            +
                    roles: rolesToReturn,
         | 
| 19093 19077 | 
             
                    _meta: {
         | 
| 19094 19078 | 
             
                      schemas: {},
         | 
| 19095 19079 | 
             
                      tables: {},
         | 
| @@ -19106,27 +19090,12 @@ ${withStyle.errorWarning(`We've found duplicated unique constraint names in ${so | |
| 19106 19090 | 
             
                    --end;
         | 
| 19107 19091 | 
             
                  return start > 0 || end < str.length ? str.substring(start, end) : str.toString();
         | 
| 19108 19092 | 
             
                };
         | 
| 19109 | 
            -
                fromDatabase2 = async (db, tablesFilter = () => true, schemaFilters, progressCallback) => {
         | 
| 19093 | 
            +
                fromDatabase2 = async (db, tablesFilter = () => true, schemaFilters, entities, progressCallback) => {
         | 
| 19110 19094 | 
             
                  const result = {};
         | 
| 19111 | 
            -
                  const views = {};
         | 
| 19112 19095 | 
             
                  const internals = { tables: {} };
         | 
| 19113 | 
            -
                  const where = schemaFilters.map((t2) => ` | 
| 19096 | 
            +
                  const where = schemaFilters.map((t2) => `table_schema = '${t2}'`).join(" or ");
         | 
| 19114 19097 | 
             
                  const allTables = await db.query(
         | 
| 19115 | 
            -
                    `SELECT 
         | 
| 19116 | 
            -
                n.nspname AS table_schema, 
         | 
| 19117 | 
            -
                c.relname AS table_name, 
         | 
| 19118 | 
            -
                CASE 
         | 
| 19119 | 
            -
                    WHEN c.relkind = 'r' THEN 'table'
         | 
| 19120 | 
            -
                    WHEN c.relkind = 'v' THEN 'view'
         | 
| 19121 | 
            -
                    WHEN c.relkind = 'm' THEN 'materialized_view'
         | 
| 19122 | 
            -
                END AS type
         | 
| 19123 | 
            -
            FROM 
         | 
| 19124 | 
            -
                pg_catalog.pg_class c
         | 
| 19125 | 
            -
            JOIN 
         | 
| 19126 | 
            -
                pg_catalog.pg_namespace n ON n.oid = c.relnamespace
         | 
| 19127 | 
            -
            WHERE 
         | 
| 19128 | 
            -
            	c.relkind IN ('r', 'v', 'm') 
         | 
| 19129 | 
            -
                ${where === "" ? "" : ` AND ${where}`};`
         | 
| 19098 | 
            +
                    `SELECT table_schema, table_name FROM information_schema.tables${where === "" ? "" : ` WHERE ${where}`};`
         | 
| 19130 19099 | 
             
                  );
         | 
| 19131 19100 | 
             
                  const schemas = new Set(allTables.map((it) => it.table_schema));
         | 
| 19132 19101 | 
             
                  schemas.delete("public");
         | 
| @@ -19203,8 +19172,57 @@ WHERE | |
| 19203 19172 | 
             
                  if (progressCallback) {
         | 
| 19204 19173 | 
             
                    progressCallback("enums", Object.keys(enumsToReturn).length, "done");
         | 
| 19205 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 | 
            +
                  }
         | 
| 19206 19224 | 
             
                  const sequencesInColumns = [];
         | 
| 19207 | 
            -
                  const all = allTables. | 
| 19225 | 
            +
                  const all = allTables.map((row) => {
         | 
| 19208 19226 | 
             
                    return new Promise(async (res, rej) => {
         | 
| 19209 19227 | 
             
                      var _a, _b, _c, _d, _e, _f;
         | 
| 19210 19228 | 
             
                      const tableName = row.table_name;
         | 
| @@ -19599,7 +19617,8 @@ WHERE | |
| 19599 19617 | 
             
                          indexes: indexToReturn,
         | 
| 19600 19618 | 
             
                          foreignKeys: foreignKeysToReturn,
         | 
| 19601 19619 | 
             
                          compositePrimaryKeys: primaryKeys,
         | 
| 19602 | 
            -
                          uniqueConstraints: uniqueConstrains
         | 
| 19620 | 
            +
                          uniqueConstraints: uniqueConstrains,
         | 
| 19621 | 
            +
                          policies: policiesByTable[`${tableSchema}.${tableName}`] ?? {}
         | 
| 19603 19622 | 
             
                        };
         | 
| 19604 19623 | 
             
                      } catch (e2) {
         | 
| 19605 19624 | 
             
                        rej(e2);
         | 
| @@ -19613,336 +19632,6 @@ WHERE | |
| 19613 19632 | 
             
                  }
         | 
| 19614 19633 | 
             
                  for await (const _2 of all) {
         | 
| 19615 19634 | 
             
                  }
         | 
| 19616 | 
            -
                  const allViews = allTables.filter((it) => it.type === "view" || it.type === "materialized_view").map((row) => {
         | 
| 19617 | 
            -
                    return new Promise(async (res, rej) => {
         | 
| 19618 | 
            -
                      var _a, _b, _c, _d;
         | 
| 19619 | 
            -
                      const viewName = row.table_name;
         | 
| 19620 | 
            -
                      if (!tablesFilter(viewName))
         | 
| 19621 | 
            -
                        return res("");
         | 
| 19622 | 
            -
                      tableCount += 1;
         | 
| 19623 | 
            -
                      const viewSchema = row.table_schema;
         | 
| 19624 | 
            -
                      try {
         | 
| 19625 | 
            -
                        const columnToReturn = {};
         | 
| 19626 | 
            -
                        const viewResponses = await db.query(`WITH view_columns AS (
         | 
| 19627 | 
            -
                SELECT DISTINCT
         | 
| 19628 | 
            -
                    nv.nspname::information_schema.sql_identifier AS view_schema,
         | 
| 19629 | 
            -
                    v.relname::information_schema.sql_identifier AS view_name,
         | 
| 19630 | 
            -
                    nt.nspname::information_schema.sql_identifier AS table_schema,
         | 
| 19631 | 
            -
                    t.relname::information_schema.sql_identifier AS table_name,
         | 
| 19632 | 
            -
                    a.attname::information_schema.sql_identifier AS column_name
         | 
| 19633 | 
            -
                FROM pg_namespace nv
         | 
| 19634 | 
            -
                JOIN pg_class v ON nv.oid = v.relnamespace
         | 
| 19635 | 
            -
                JOIN pg_depend dv ON v.oid = dv.refobjid
         | 
| 19636 | 
            -
                JOIN pg_depend dt ON dv.objid = dt.objid
         | 
| 19637 | 
            -
                JOIN pg_class t ON dt.refobjid = t.oid
         | 
| 19638 | 
            -
                JOIN pg_namespace nt ON t.relnamespace = nt.oid
         | 
| 19639 | 
            -
                JOIN pg_attribute a ON t.oid = a.attrelid
         | 
| 19640 | 
            -
                WHERE (v.relkind = 'v'::"char" OR v.relkind = 'm'::"char")
         | 
| 19641 | 
            -
                  AND dv.refclassid = 'pg_class'::regclass::oid
         | 
| 19642 | 
            -
                  AND dv.classid = 'pg_rewrite'::regclass::oid
         | 
| 19643 | 
            -
                  AND dv.deptype = 'i'::"char"
         | 
| 19644 | 
            -
                  AND dv.objid = dt.objid
         | 
| 19645 | 
            -
                  AND dv.refobjid <> dt.refobjid
         | 
| 19646 | 
            -
                  AND dt.classid = 'pg_rewrite'::regclass::oid
         | 
| 19647 | 
            -
                  AND dt.refclassid = 'pg_class'::regclass::oid
         | 
| 19648 | 
            -
                  AND t.relkind = ANY (ARRAY['r'::"char", 'v'::"char", 'f'::"char", 'p'::"char"])
         | 
| 19649 | 
            -
                  AND dt.refobjsubid = a.attnum
         | 
| 19650 | 
            -
                  AND pg_has_role(t.relowner, 'USAGE'::text)
         | 
| 19651 | 
            -
            	  AND nv.nspname::information_schema.sql_identifier = '${viewSchema}'
         | 
| 19652 | 
            -
                  AND v.relname::information_schema.sql_identifier = '${viewName}'
         | 
| 19653 | 
            -
            ),
         | 
| 19654 | 
            -
            column_descriptions AS (
         | 
| 19655 | 
            -
                SELECT DISTINCT
         | 
| 19656 | 
            -
                    a.attrelid::regclass::text AS table_name,
         | 
| 19657 | 
            -
                    a.attname AS column_name,
         | 
| 19658 | 
            -
                    c.is_nullable,
         | 
| 19659 | 
            -
                    a.attndims AS array_dimensions,
         | 
| 19660 | 
            -
                    CASE
         | 
| 19661 | 
            -
                        WHEN a.atttypid = ANY ('{int,int8,int2}'::regtype[]) AND EXISTS (
         | 
| 19662 | 
            -
                            SELECT FROM pg_attrdef ad
         | 
| 19663 | 
            -
                            WHERE ad.adrelid = a.attrelid
         | 
| 19664 | 
            -
                            AND ad.adnum = a.attnum
         | 
| 19665 | 
            -
                            AND pg_get_expr(ad.adbin, ad.adrelid) = 'nextval(''' || pg_get_serial_sequence(a.attrelid::regclass::text, a.attname)::regclass || '''::regclass)'
         | 
| 19666 | 
            -
                        )
         | 
| 19667 | 
            -
                        THEN CASE a.atttypid
         | 
| 19668 | 
            -
                            WHEN 'int'::regtype  THEN 'serial'
         | 
| 19669 | 
            -
                            WHEN 'int8'::regtype THEN 'bigserial'
         | 
| 19670 | 
            -
                            WHEN 'int2'::regtype THEN 'smallserial'
         | 
| 19671 | 
            -
                        END
         | 
| 19672 | 
            -
                        ELSE format_type(a.atttypid, a.atttypmod)
         | 
| 19673 | 
            -
                    END AS data_type,
         | 
| 19674 | 
            -
                    pg_get_serial_sequence('"' || c.table_schema || '"."' || c.table_name || '"', a.attname)::regclass AS seq_name,
         | 
| 19675 | 
            -
                    c.column_default,
         | 
| 19676 | 
            -
                    c.data_type AS additional_dt,
         | 
| 19677 | 
            -
                    c.udt_name AS enum_name,
         | 
| 19678 | 
            -
                    c.is_generated,
         | 
| 19679 | 
            -
                    c.generation_expression,
         | 
| 19680 | 
            -
                    c.is_identity,
         | 
| 19681 | 
            -
                    c.identity_generation,
         | 
| 19682 | 
            -
                    c.identity_start,
         | 
| 19683 | 
            -
                    c.identity_increment,
         | 
| 19684 | 
            -
                    c.identity_maximum,
         | 
| 19685 | 
            -
                    c.identity_minimum,
         | 
| 19686 | 
            -
                    c.identity_cycle
         | 
| 19687 | 
            -
                FROM pg_attribute a
         | 
| 19688 | 
            -
                JOIN information_schema.columns c ON c.column_name = a.attname
         | 
| 19689 | 
            -
                JOIN pg_type t ON t.oid = a.atttypid
         | 
| 19690 | 
            -
                LEFT JOIN pg_namespace ns ON ns.oid = t.typnamespace
         | 
| 19691 | 
            -
                WHERE a.attnum > 0
         | 
| 19692 | 
            -
                AND NOT a.attisdropped
         | 
| 19693 | 
            -
            ),
         | 
| 19694 | 
            -
            table_constraints AS (
         | 
| 19695 | 
            -
                SELECT DISTINCT ON (ccu.column_name)
         | 
| 19696 | 
            -
                    ccu.column_name,
         | 
| 19697 | 
            -
                    c.data_type,
         | 
| 19698 | 
            -
                    tc.constraint_type,
         | 
| 19699 | 
            -
                    tc.constraint_name,
         | 
| 19700 | 
            -
                    tc.constraint_schema,
         | 
| 19701 | 
            -
                    tc.table_name
         | 
| 19702 | 
            -
                FROM information_schema.table_constraints tc
         | 
| 19703 | 
            -
                JOIN information_schema.constraint_column_usage ccu USING (constraint_schema, constraint_name)
         | 
| 19704 | 
            -
                JOIN information_schema.columns c ON c.table_schema = tc.constraint_schema
         | 
| 19705 | 
            -
                    AND tc.table_name = c.table_name
         | 
| 19706 | 
            -
                    AND ccu.column_name = c.column_name
         | 
| 19707 | 
            -
            ),
         | 
| 19708 | 
            -
            additional_column_info AS (
         | 
| 19709 | 
            -
                SELECT DISTINCT
         | 
| 19710 | 
            -
                    a.attrelid::regclass::text AS table_name,
         | 
| 19711 | 
            -
                    a.attname AS column_name,
         | 
| 19712 | 
            -
                    is_nullable,
         | 
| 19713 | 
            -
                    a.attndims AS array_dimensions,
         | 
| 19714 | 
            -
                    CASE
         | 
| 19715 | 
            -
                        WHEN a.atttypid = ANY ('{int,int8,int2}'::regtype[]) AND EXISTS (
         | 
| 19716 | 
            -
                            SELECT FROM pg_attrdef ad
         | 
| 19717 | 
            -
                            WHERE ad.adrelid = a.attrelid
         | 
| 19718 | 
            -
                            AND ad.adnum = a.attnum
         | 
| 19719 | 
            -
                            AND pg_get_expr(ad.adbin, ad.adrelid) = 'nextval(''' || pg_get_serial_sequence(a.attrelid::regclass::text, a.attname)::regclass || '''::regclass)'
         | 
| 19720 | 
            -
                        )
         | 
| 19721 | 
            -
                        THEN CASE a.atttypid
         | 
| 19722 | 
            -
                            WHEN 'int'::regtype  THEN 'serial'
         | 
| 19723 | 
            -
                            WHEN 'int8'::regtype THEN 'bigserial'
         | 
| 19724 | 
            -
                            WHEN 'int2'::regtype THEN 'smallserial'
         | 
| 19725 | 
            -
                        END
         | 
| 19726 | 
            -
                        ELSE format_type(a.atttypid, a.atttypmod)
         | 
| 19727 | 
            -
                    END AS data_type,
         | 
| 19728 | 
            -
                    pg_get_serial_sequence('"' || c.table_schema || '"."' || c.table_name || '"', a.attname)::regclass AS seq_name,
         | 
| 19729 | 
            -
                    c.column_default,
         | 
| 19730 | 
            -
                    c.data_type AS additional_dt,
         | 
| 19731 | 
            -
                    c.udt_name AS enum_name,
         | 
| 19732 | 
            -
                    c.is_generated,
         | 
| 19733 | 
            -
                    generation_expression,
         | 
| 19734 | 
            -
                    is_identity,
         | 
| 19735 | 
            -
                    identity_generation,
         | 
| 19736 | 
            -
                    identity_start,
         | 
| 19737 | 
            -
                    identity_increment,
         | 
| 19738 | 
            -
                    identity_maximum,
         | 
| 19739 | 
            -
                    identity_minimum,
         | 
| 19740 | 
            -
                    identity_cycle
         | 
| 19741 | 
            -
                FROM pg_attribute a
         | 
| 19742 | 
            -
                JOIN information_schema.columns c ON c.column_name = a.attname
         | 
| 19743 | 
            -
                LEFT JOIN pg_type t ON t.oid = a.atttypid
         | 
| 19744 | 
            -
                LEFT JOIN pg_namespace ns ON ns.oid = t.typnamespace
         | 
| 19745 | 
            -
                WHERE a.attnum > 0
         | 
| 19746 | 
            -
                AND NOT a.attisdropped
         | 
| 19747 | 
            -
            )
         | 
| 19748 | 
            -
            SELECT DISTINCT ON (vc.table_name, vc.column_name)
         | 
| 19749 | 
            -
                vc.view_schema,
         | 
| 19750 | 
            -
                vc.view_name,
         | 
| 19751 | 
            -
                vc.table_schema,
         | 
| 19752 | 
            -
                vc.table_name,
         | 
| 19753 | 
            -
                vc.column_name,
         | 
| 19754 | 
            -
                COALESCE(cd.data_type, aci.data_type) AS data_type,
         | 
| 19755 | 
            -
                tc.constraint_type,
         | 
| 19756 | 
            -
                tc.constraint_name,
         | 
| 19757 | 
            -
                aci.is_nullable,
         | 
| 19758 | 
            -
                aci.array_dimensions,
         | 
| 19759 | 
            -
                aci.seq_name,
         | 
| 19760 | 
            -
                aci.column_default,
         | 
| 19761 | 
            -
                aci.additional_dt,
         | 
| 19762 | 
            -
                aci.enum_name,
         | 
| 19763 | 
            -
                aci.is_generated,
         | 
| 19764 | 
            -
                aci.generation_expression,
         | 
| 19765 | 
            -
                aci.is_identity,
         | 
| 19766 | 
            -
                aci.identity_generation,
         | 
| 19767 | 
            -
                aci.identity_start,
         | 
| 19768 | 
            -
                aci.identity_increment,
         | 
| 19769 | 
            -
                aci.identity_maximum,
         | 
| 19770 | 
            -
                aci.identity_minimum,
         | 
| 19771 | 
            -
                aci.identity_cycle
         | 
| 19772 | 
            -
            FROM view_columns vc
         | 
| 19773 | 
            -
            LEFT JOIN column_descriptions cd ON vc.table_name = cd.table_name AND vc.column_name = cd.column_name
         | 
| 19774 | 
            -
            LEFT JOIN table_constraints tc ON vc.table_name = tc.table_name AND vc.column_name = tc.column_name
         | 
| 19775 | 
            -
            LEFT JOIN additional_column_info aci ON vc.table_name = aci.table_name AND vc.column_name = aci.column_name
         | 
| 19776 | 
            -
            ORDER BY vc.table_name, vc.column_name;`);
         | 
| 19777 | 
            -
                        for (const viewResponse of viewResponses) {
         | 
| 19778 | 
            -
                          const columnName = viewResponse.column_name;
         | 
| 19779 | 
            -
                          const columnAdditionalDT = viewResponse.additional_dt;
         | 
| 19780 | 
            -
                          const columnDimensions = viewResponse.array_dimensions;
         | 
| 19781 | 
            -
                          const enumType2 = viewResponse.enum_name;
         | 
| 19782 | 
            -
                          let columnType = viewResponse.data_type;
         | 
| 19783 | 
            -
                          const typeSchema = viewResponse.type_schema;
         | 
| 19784 | 
            -
                          const isGenerated = viewResponse.is_generated === "ALWAYS";
         | 
| 19785 | 
            -
                          const generationExpression = viewResponse.generation_expression;
         | 
| 19786 | 
            -
                          const isIdentity = viewResponse.is_identity === "YES";
         | 
| 19787 | 
            -
                          const identityGeneration = viewResponse.identity_generation === "ALWAYS" ? "always" : "byDefault";
         | 
| 19788 | 
            -
                          const identityStart = viewResponse.identity_start;
         | 
| 19789 | 
            -
                          const identityIncrement = viewResponse.identity_increment;
         | 
| 19790 | 
            -
                          const identityMaximum = viewResponse.identity_maximum;
         | 
| 19791 | 
            -
                          const identityMinimum = viewResponse.identity_minimum;
         | 
| 19792 | 
            -
                          const identityCycle = viewResponse.identity_cycle === "YES";
         | 
| 19793 | 
            -
                          const identityName = viewResponse.seq_name;
         | 
| 19794 | 
            -
                          const defaultValueRes = viewResponse.column_default;
         | 
| 19795 | 
            -
                          const primaryKey = viewResponse.constraint_type === "PRIMARY KEY";
         | 
| 19796 | 
            -
                          let columnTypeMapped = columnType;
         | 
| 19797 | 
            -
                          if (columnAdditionalDT === "ARRAY") {
         | 
| 19798 | 
            -
                            if (typeof internals.tables[viewName] === "undefined") {
         | 
| 19799 | 
            -
                              internals.tables[viewName] = {
         | 
| 19800 | 
            -
                                columns: {
         | 
| 19801 | 
            -
                                  [columnName]: {
         | 
| 19802 | 
            -
                                    isArray: true,
         | 
| 19803 | 
            -
                                    dimensions: columnDimensions,
         | 
| 19804 | 
            -
                                    rawType: columnTypeMapped.substring(
         | 
| 19805 | 
            -
                                      0,
         | 
| 19806 | 
            -
                                      columnTypeMapped.length - 2
         | 
| 19807 | 
            -
                                    )
         | 
| 19808 | 
            -
                                  }
         | 
| 19809 | 
            -
                                }
         | 
| 19810 | 
            -
                              };
         | 
| 19811 | 
            -
                            } else {
         | 
| 19812 | 
            -
                              if (typeof internals.tables[viewName].columns[columnName] === "undefined") {
         | 
| 19813 | 
            -
                                internals.tables[viewName].columns[columnName] = {
         | 
| 19814 | 
            -
                                  isArray: true,
         | 
| 19815 | 
            -
                                  dimensions: columnDimensions,
         | 
| 19816 | 
            -
                                  rawType: columnTypeMapped.substring(
         | 
| 19817 | 
            -
                                    0,
         | 
| 19818 | 
            -
                                    columnTypeMapped.length - 2
         | 
| 19819 | 
            -
                                  )
         | 
| 19820 | 
            -
                                };
         | 
| 19821 | 
            -
                              }
         | 
| 19822 | 
            -
                            }
         | 
| 19823 | 
            -
                          }
         | 
| 19824 | 
            -
                          const defaultValue = defaultForColumn(
         | 
| 19825 | 
            -
                            viewResponse,
         | 
| 19826 | 
            -
                            internals,
         | 
| 19827 | 
            -
                            viewName
         | 
| 19828 | 
            -
                          );
         | 
| 19829 | 
            -
                          if (defaultValue === "NULL" || defaultValueRes && defaultValueRes.startsWith("(") && defaultValueRes.endsWith(")")) {
         | 
| 19830 | 
            -
                            if (typeof internals.tables[viewName] === "undefined") {
         | 
| 19831 | 
            -
                              internals.tables[viewName] = {
         | 
| 19832 | 
            -
                                columns: {
         | 
| 19833 | 
            -
                                  [columnName]: {
         | 
| 19834 | 
            -
                                    isDefaultAnExpression: true
         | 
| 19835 | 
            -
                                  }
         | 
| 19836 | 
            -
                                }
         | 
| 19837 | 
            -
                              };
         | 
| 19838 | 
            -
                            } else {
         | 
| 19839 | 
            -
                              if (typeof internals.tables[viewName].columns[columnName] === "undefined") {
         | 
| 19840 | 
            -
                                internals.tables[viewName].columns[columnName] = {
         | 
| 19841 | 
            -
                                  isDefaultAnExpression: true
         | 
| 19842 | 
            -
                                };
         | 
| 19843 | 
            -
                              } else {
         | 
| 19844 | 
            -
                                internals.tables[viewName].columns[columnName].isDefaultAnExpression = true;
         | 
| 19845 | 
            -
                              }
         | 
| 19846 | 
            -
                            }
         | 
| 19847 | 
            -
                          }
         | 
| 19848 | 
            -
                          const isSerial = columnType === "serial";
         | 
| 19849 | 
            -
                          if (columnTypeMapped.startsWith("numeric(")) {
         | 
| 19850 | 
            -
                            columnTypeMapped = columnTypeMapped.replace(",", ", ");
         | 
| 19851 | 
            -
                          }
         | 
| 19852 | 
            -
                          if (columnAdditionalDT === "ARRAY") {
         | 
| 19853 | 
            -
                            for (let i2 = 1; i2 < Number(columnDimensions); i2++) {
         | 
| 19854 | 
            -
                              columnTypeMapped += "[]";
         | 
| 19855 | 
            -
                            }
         | 
| 19856 | 
            -
                          }
         | 
| 19857 | 
            -
                          columnTypeMapped = columnTypeMapped.replace("character varying", "varchar").replace(" without time zone", "").replace("character", "char");
         | 
| 19858 | 
            -
                          columnTypeMapped = trimChar(columnTypeMapped, '"');
         | 
| 19859 | 
            -
                          columnToReturn[columnName] = {
         | 
| 19860 | 
            -
                            name: columnName,
         | 
| 19861 | 
            -
                            type: (
         | 
| 19862 | 
            -
                              // filter vectors, but in future we should filter any extension that was installed by user
         | 
| 19863 | 
            -
                              columnAdditionalDT === "USER-DEFINED" && !["vector", "geometry"].includes(enumType2) ? enumType2 : columnTypeMapped
         | 
| 19864 | 
            -
                            ),
         | 
| 19865 | 
            -
                            typeSchema: enumsToReturn[`${typeSchema}.${enumType2}`] !== void 0 ? enumsToReturn[`${typeSchema}.${enumType2}`].schema : void 0,
         | 
| 19866 | 
            -
                            primaryKey,
         | 
| 19867 | 
            -
                            notNull: viewResponse.is_nullable === "NO",
         | 
| 19868 | 
            -
                            generated: isGenerated ? { as: generationExpression, type: "stored" } : void 0,
         | 
| 19869 | 
            -
                            identity: isIdentity ? {
         | 
| 19870 | 
            -
                              type: identityGeneration,
         | 
| 19871 | 
            -
                              name: identityName,
         | 
| 19872 | 
            -
                              increment: stringFromDatabaseIdentityProperty(identityIncrement),
         | 
| 19873 | 
            -
                              minValue: stringFromDatabaseIdentityProperty(identityMinimum),
         | 
| 19874 | 
            -
                              maxValue: stringFromDatabaseIdentityProperty(identityMaximum),
         | 
| 19875 | 
            -
                              startWith: stringFromDatabaseIdentityProperty(identityStart),
         | 
| 19876 | 
            -
                              cache: ((_a = sequencesToReturn[identityName]) == null ? void 0 : _a.cache) ? (_b = sequencesToReturn[identityName]) == null ? void 0 : _b.cache : ((_c = sequencesToReturn[`${viewSchema}.${identityName}`]) == null ? void 0 : _c.cache) ? (_d = sequencesToReturn[`${viewSchema}.${identityName}`]) == null ? void 0 : _d.cache : void 0,
         | 
| 19877 | 
            -
                              cycle: identityCycle,
         | 
| 19878 | 
            -
                              schema: viewSchema
         | 
| 19879 | 
            -
                            } : void 0
         | 
| 19880 | 
            -
                          };
         | 
| 19881 | 
            -
                          if (identityName) {
         | 
| 19882 | 
            -
                            delete sequencesToReturn[`${viewSchema}.${identityName.startsWith('"') && identityName.endsWith('"') ? identityName.slice(1, -1) : identityName}`];
         | 
| 19883 | 
            -
                            delete sequencesToReturn[identityName];
         | 
| 19884 | 
            -
                          }
         | 
| 19885 | 
            -
                          if (!isSerial && typeof defaultValue !== "undefined") {
         | 
| 19886 | 
            -
                            columnToReturn[columnName].default = defaultValue;
         | 
| 19887 | 
            -
                          }
         | 
| 19888 | 
            -
                        }
         | 
| 19889 | 
            -
                        const [viewInfo] = await db.query(`
         | 
| 19890 | 
            -
            					SELECT
         | 
| 19891 | 
            -
                c.relname AS view_name,
         | 
| 19892 | 
            -
                n.nspname AS schema_name,
         | 
| 19893 | 
            -
                pg_get_viewdef(c.oid, true) AS definition,
         | 
| 19894 | 
            -
                ts.spcname AS tablespace_name,
         | 
| 19895 | 
            -
                c.reloptions AS options,
         | 
| 19896 | 
            -
                pg_tablespace_location(ts.oid) AS location
         | 
| 19897 | 
            -
            FROM
         | 
| 19898 | 
            -
                pg_class c
         | 
| 19899 | 
            -
            JOIN
         | 
| 19900 | 
            -
                pg_namespace n ON c.relnamespace = n.oid
         | 
| 19901 | 
            -
            LEFT JOIN
         | 
| 19902 | 
            -
                pg_tablespace ts ON c.reltablespace = ts.oid 
         | 
| 19903 | 
            -
            WHERE
         | 
| 19904 | 
            -
                (c.relkind = 'm' OR c.relkind = 'v')
         | 
| 19905 | 
            -
                AND n.nspname = '${viewSchema}'
         | 
| 19906 | 
            -
                AND c.relname = '${viewName}';`);
         | 
| 19907 | 
            -
                        const resultWith = {};
         | 
| 19908 | 
            -
                        if (viewInfo.options) {
         | 
| 19909 | 
            -
                          viewInfo.options.forEach((pair) => {
         | 
| 19910 | 
            -
                            const splitted = pair.split("=");
         | 
| 19911 | 
            -
                            const key = splitted[0];
         | 
| 19912 | 
            -
                            const value = splitted[1];
         | 
| 19913 | 
            -
                            if (value === "true") {
         | 
| 19914 | 
            -
                              resultWith[key] = true;
         | 
| 19915 | 
            -
                            } else if (value === "false") {
         | 
| 19916 | 
            -
                              resultWith[key] = false;
         | 
| 19917 | 
            -
                            } else if (!isNaN(Number(value))) {
         | 
| 19918 | 
            -
                              resultWith[key] = Number(value);
         | 
| 19919 | 
            -
                            } else {
         | 
| 19920 | 
            -
                              resultWith[key] = value;
         | 
| 19921 | 
            -
                            }
         | 
| 19922 | 
            -
                          });
         | 
| 19923 | 
            -
                        }
         | 
| 19924 | 
            -
                        const definition = viewInfo.definition.replace(/\s+/g, " ").replace(";", "").trim();
         | 
| 19925 | 
            -
                        const withOption = Object.values(resultWith).length ? Object.fromEntries(Object.entries(resultWith).map(([key, value]) => [key.camelCase(), value])) : void 0;
         | 
| 19926 | 
            -
                        const materialized = row.type === "materialized_view";
         | 
| 19927 | 
            -
                        views[`${viewSchema}.${viewName}`] = {
         | 
| 19928 | 
            -
                          name: viewName,
         | 
| 19929 | 
            -
                          schema: viewSchema,
         | 
| 19930 | 
            -
                          columns: columnToReturn,
         | 
| 19931 | 
            -
                          isExisting: false,
         | 
| 19932 | 
            -
                          definition,
         | 
| 19933 | 
            -
                          materialized,
         | 
| 19934 | 
            -
                          with: withOption,
         | 
| 19935 | 
            -
                          tablespace: viewInfo.tablespace_name ?? void 0
         | 
| 19936 | 
            -
                        };
         | 
| 19937 | 
            -
                      } catch (e2) {
         | 
| 19938 | 
            -
                        rej(e2);
         | 
| 19939 | 
            -
                        return;
         | 
| 19940 | 
            -
                      }
         | 
| 19941 | 
            -
                      res("");
         | 
| 19942 | 
            -
                    });
         | 
| 19943 | 
            -
                  });
         | 
| 19944 | 
            -
                  for await (const _2 of allViews) {
         | 
| 19945 | 
            -
                  }
         | 
| 19946 19635 | 
             
                  if (progressCallback) {
         | 
| 19947 19636 | 
             
                    progressCallback("columns", columnsCount, "done");
         | 
| 19948 19637 | 
             
                    progressCallback("indexes", indexesCount, "done");
         | 
| @@ -19956,7 +19645,7 @@ WHERE | |
| 19956 19645 | 
             
                    enums: enumsToReturn,
         | 
| 19957 19646 | 
             
                    schemas: schemasObject,
         | 
| 19958 19647 | 
             
                    sequences: sequencesToReturn,
         | 
| 19959 | 
            -
                     | 
| 19648 | 
            +
                    roles: rolesToReturn,
         | 
| 19960 19649 | 
             
                    _meta: {
         | 
| 19961 19650 | 
             
                      schemas: {},
         | 
| 19962 19651 | 
             
                      tables: {},
         | 
| @@ -20599,10 +20288,10 @@ ${filenames.join("\n")} | |
| 20599 20288 | 
             
                  const filenames = prepareFilenames(path5);
         | 
| 20600 20289 | 
             
                  const { prepareFromPgImports: prepareFromPgImports2 } = await Promise.resolve().then(() => (init_pgImports(), pgImports_exports));
         | 
| 20601 20290 | 
             
                  const { generatePgSnapshot: generatePgSnapshot2 } = await Promise.resolve().then(() => (init_pgSerializer(), pgSerializer_exports));
         | 
| 20602 | 
            -
                  const { tables, enums, schemas, sequences,  | 
| 20291 | 
            +
                  const { tables, enums, schemas, sequences, roles } = await prepareFromPgImports2(
         | 
| 20603 20292 | 
             
                    filenames
         | 
| 20604 20293 | 
             
                  );
         | 
| 20605 | 
            -
                  return generatePgSnapshot2(tables, enums, schemas, sequences,  | 
| 20294 | 
            +
                  return generatePgSnapshot2(tables, enums, schemas, sequences, roles, schemaFilter);
         | 
| 20606 20295 | 
             
                };
         | 
| 20607 20296 | 
             
                serializeSQLite = async (path5) => {
         | 
| 20608 20297 | 
             
                  const filenames = prepareFilenames(path5);
         | 
| @@ -20797,57 +20486,57 @@ var require_heap = __commonJS({ | |
| 20797 20486 | 
             
                    }
         | 
| 20798 20487 | 
             
                    return [].splice.apply(a, [lo, lo - lo].concat(x2)), x2;
         | 
| 20799 20488 | 
             
                  };
         | 
| 20800 | 
            -
                  heappush = function( | 
| 20489 | 
            +
                  heappush = function(array2, item, cmp) {
         | 
| 20801 20490 | 
             
                    if (cmp == null) {
         | 
| 20802 20491 | 
             
                      cmp = defaultCmp;
         | 
| 20803 20492 | 
             
                    }
         | 
| 20804 | 
            -
                     | 
| 20805 | 
            -
                    return _siftdown( | 
| 20493 | 
            +
                    array2.push(item);
         | 
| 20494 | 
            +
                    return _siftdown(array2, 0, array2.length - 1, cmp);
         | 
| 20806 20495 | 
             
                  };
         | 
| 20807 | 
            -
                  heappop = function( | 
| 20496 | 
            +
                  heappop = function(array2, cmp) {
         | 
| 20808 20497 | 
             
                    var lastelt, returnitem;
         | 
| 20809 20498 | 
             
                    if (cmp == null) {
         | 
| 20810 20499 | 
             
                      cmp = defaultCmp;
         | 
| 20811 20500 | 
             
                    }
         | 
| 20812 | 
            -
                    lastelt =  | 
| 20813 | 
            -
                    if ( | 
| 20814 | 
            -
                      returnitem =  | 
| 20815 | 
            -
                       | 
| 20816 | 
            -
                      _siftup( | 
| 20501 | 
            +
                    lastelt = array2.pop();
         | 
| 20502 | 
            +
                    if (array2.length) {
         | 
| 20503 | 
            +
                      returnitem = array2[0];
         | 
| 20504 | 
            +
                      array2[0] = lastelt;
         | 
| 20505 | 
            +
                      _siftup(array2, 0, cmp);
         | 
| 20817 20506 | 
             
                    } else {
         | 
| 20818 20507 | 
             
                      returnitem = lastelt;
         | 
| 20819 20508 | 
             
                    }
         | 
| 20820 20509 | 
             
                    return returnitem;
         | 
| 20821 20510 | 
             
                  };
         | 
| 20822 | 
            -
                  heapreplace = function( | 
| 20511 | 
            +
                  heapreplace = function(array2, item, cmp) {
         | 
| 20823 20512 | 
             
                    var returnitem;
         | 
| 20824 20513 | 
             
                    if (cmp == null) {
         | 
| 20825 20514 | 
             
                      cmp = defaultCmp;
         | 
| 20826 20515 | 
             
                    }
         | 
| 20827 | 
            -
                    returnitem =  | 
| 20828 | 
            -
                     | 
| 20829 | 
            -
                    _siftup( | 
| 20516 | 
            +
                    returnitem = array2[0];
         | 
| 20517 | 
            +
                    array2[0] = item;
         | 
| 20518 | 
            +
                    _siftup(array2, 0, cmp);
         | 
| 20830 20519 | 
             
                    return returnitem;
         | 
| 20831 20520 | 
             
                  };
         | 
| 20832 | 
            -
                  heappushpop = function( | 
| 20521 | 
            +
                  heappushpop = function(array2, item, cmp) {
         | 
| 20833 20522 | 
             
                    var _ref;
         | 
| 20834 20523 | 
             
                    if (cmp == null) {
         | 
| 20835 20524 | 
             
                      cmp = defaultCmp;
         | 
| 20836 20525 | 
             
                    }
         | 
| 20837 | 
            -
                    if ( | 
| 20838 | 
            -
                      _ref = [ | 
| 20839 | 
            -
                      _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);
         | 
| 20840 20529 | 
             
                    }
         | 
| 20841 20530 | 
             
                    return item;
         | 
| 20842 20531 | 
             
                  };
         | 
| 20843 | 
            -
                  heapify = function( | 
| 20532 | 
            +
                  heapify = function(array2, cmp) {
         | 
| 20844 20533 | 
             
                    var i2, _i, _j, _len, _ref, _ref1, _results, _results1;
         | 
| 20845 20534 | 
             
                    if (cmp == null) {
         | 
| 20846 20535 | 
             
                      cmp = defaultCmp;
         | 
| 20847 20536 | 
             
                    }
         | 
| 20848 20537 | 
             
                    _ref1 = function() {
         | 
| 20849 20538 | 
             
                      _results1 = [];
         | 
| 20850 | 
            -
                      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--) {
         | 
| 20851 20540 | 
             
                        _results1.push(_j2);
         | 
| 20852 20541 | 
             
                      }
         | 
| 20853 20542 | 
             
                      return _results1;
         | 
| @@ -20855,51 +20544,51 @@ var require_heap = __commonJS({ | |
| 20855 20544 | 
             
                    _results = [];
         | 
| 20856 20545 | 
             
                    for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
         | 
| 20857 20546 | 
             
                      i2 = _ref1[_i];
         | 
| 20858 | 
            -
                      _results.push(_siftup( | 
| 20547 | 
            +
                      _results.push(_siftup(array2, i2, cmp));
         | 
| 20859 20548 | 
             
                    }
         | 
| 20860 20549 | 
             
                    return _results;
         | 
| 20861 20550 | 
             
                  };
         | 
| 20862 | 
            -
                  updateItem = function( | 
| 20551 | 
            +
                  updateItem = function(array2, item, cmp) {
         | 
| 20863 20552 | 
             
                    var pos;
         | 
| 20864 20553 | 
             
                    if (cmp == null) {
         | 
| 20865 20554 | 
             
                      cmp = defaultCmp;
         | 
| 20866 20555 | 
             
                    }
         | 
| 20867 | 
            -
                    pos =  | 
| 20556 | 
            +
                    pos = array2.indexOf(item);
         | 
| 20868 20557 | 
             
                    if (pos === -1) {
         | 
| 20869 20558 | 
             
                      return;
         | 
| 20870 20559 | 
             
                    }
         | 
| 20871 | 
            -
                    _siftdown( | 
| 20872 | 
            -
                    return _siftup( | 
| 20560 | 
            +
                    _siftdown(array2, 0, pos, cmp);
         | 
| 20561 | 
            +
                    return _siftup(array2, pos, cmp);
         | 
| 20873 20562 | 
             
                  };
         | 
| 20874 | 
            -
                  nlargest = function( | 
| 20563 | 
            +
                  nlargest = function(array2, n, cmp) {
         | 
| 20875 20564 | 
             
                    var elem, result, _i, _len, _ref;
         | 
| 20876 20565 | 
             
                    if (cmp == null) {
         | 
| 20877 20566 | 
             
                      cmp = defaultCmp;
         | 
| 20878 20567 | 
             
                    }
         | 
| 20879 | 
            -
                    result =  | 
| 20568 | 
            +
                    result = array2.slice(0, n);
         | 
| 20880 20569 | 
             
                    if (!result.length) {
         | 
| 20881 20570 | 
             
                      return result;
         | 
| 20882 20571 | 
             
                    }
         | 
| 20883 20572 | 
             
                    heapify(result, cmp);
         | 
| 20884 | 
            -
                    _ref =  | 
| 20573 | 
            +
                    _ref = array2.slice(n);
         | 
| 20885 20574 | 
             
                    for (_i = 0, _len = _ref.length; _i < _len; _i++) {
         | 
| 20886 20575 | 
             
                      elem = _ref[_i];
         | 
| 20887 20576 | 
             
                      heappushpop(result, elem, cmp);
         | 
| 20888 20577 | 
             
                    }
         | 
| 20889 20578 | 
             
                    return result.sort(cmp).reverse();
         | 
| 20890 20579 | 
             
                  };
         | 
| 20891 | 
            -
                  nsmallest = function( | 
| 20580 | 
            +
                  nsmallest = function(array2, n, cmp) {
         | 
| 20892 20581 | 
             
                    var elem, i2, los, result, _i, _j, _len, _ref, _ref1, _results;
         | 
| 20893 20582 | 
             
                    if (cmp == null) {
         | 
| 20894 20583 | 
             
                      cmp = defaultCmp;
         | 
| 20895 20584 | 
             
                    }
         | 
| 20896 | 
            -
                    if (n * 10 <=  | 
| 20897 | 
            -
                      result =  | 
| 20585 | 
            +
                    if (n * 10 <= array2.length) {
         | 
| 20586 | 
            +
                      result = array2.slice(0, n).sort(cmp);
         | 
| 20898 20587 | 
             
                      if (!result.length) {
         | 
| 20899 20588 | 
             
                        return result;
         | 
| 20900 20589 | 
             
                      }
         | 
| 20901 20590 | 
             
                      los = result[result.length - 1];
         | 
| 20902 | 
            -
                      _ref =  | 
| 20591 | 
            +
                      _ref = array2.slice(n);
         | 
| 20903 20592 | 
             
                      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
         | 
| 20904 20593 | 
             
                        elem = _ref[_i];
         | 
| 20905 20594 | 
             
                        if (cmp(elem, los) < 0) {
         | 
| @@ -20910,51 +20599,51 @@ var require_heap = __commonJS({ | |
| 20910 20599 | 
             
                      }
         | 
| 20911 20600 | 
             
                      return result;
         | 
| 20912 20601 | 
             
                    }
         | 
| 20913 | 
            -
                    heapify( | 
| 20602 | 
            +
                    heapify(array2, cmp);
         | 
| 20914 20603 | 
             
                    _results = [];
         | 
| 20915 | 
            -
                    for (i2 = _j = 0, _ref1 = min(n,  | 
| 20916 | 
            -
                      _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));
         | 
| 20917 20606 | 
             
                    }
         | 
| 20918 20607 | 
             
                    return _results;
         | 
| 20919 20608 | 
             
                  };
         | 
| 20920 | 
            -
                  _siftdown = function( | 
| 20609 | 
            +
                  _siftdown = function(array2, startpos, pos, cmp) {
         | 
| 20921 20610 | 
             
                    var newitem, parent, parentpos;
         | 
| 20922 20611 | 
             
                    if (cmp == null) {
         | 
| 20923 20612 | 
             
                      cmp = defaultCmp;
         | 
| 20924 20613 | 
             
                    }
         | 
| 20925 | 
            -
                    newitem =  | 
| 20614 | 
            +
                    newitem = array2[pos];
         | 
| 20926 20615 | 
             
                    while (pos > startpos) {
         | 
| 20927 20616 | 
             
                      parentpos = pos - 1 >> 1;
         | 
| 20928 | 
            -
                      parent =  | 
| 20617 | 
            +
                      parent = array2[parentpos];
         | 
| 20929 20618 | 
             
                      if (cmp(newitem, parent) < 0) {
         | 
| 20930 | 
            -
                         | 
| 20619 | 
            +
                        array2[pos] = parent;
         | 
| 20931 20620 | 
             
                        pos = parentpos;
         | 
| 20932 20621 | 
             
                        continue;
         | 
| 20933 20622 | 
             
                      }
         | 
| 20934 20623 | 
             
                      break;
         | 
| 20935 20624 | 
             
                    }
         | 
| 20936 | 
            -
                    return  | 
| 20625 | 
            +
                    return array2[pos] = newitem;
         | 
| 20937 20626 | 
             
                  };
         | 
| 20938 | 
            -
                  _siftup = function( | 
| 20627 | 
            +
                  _siftup = function(array2, pos, cmp) {
         | 
| 20939 20628 | 
             
                    var childpos, endpos, newitem, rightpos, startpos;
         | 
| 20940 20629 | 
             
                    if (cmp == null) {
         | 
| 20941 20630 | 
             
                      cmp = defaultCmp;
         | 
| 20942 20631 | 
             
                    }
         | 
| 20943 | 
            -
                    endpos =  | 
| 20632 | 
            +
                    endpos = array2.length;
         | 
| 20944 20633 | 
             
                    startpos = pos;
         | 
| 20945 | 
            -
                    newitem =  | 
| 20634 | 
            +
                    newitem = array2[pos];
         | 
| 20946 20635 | 
             
                    childpos = 2 * pos + 1;
         | 
| 20947 20636 | 
             
                    while (childpos < endpos) {
         | 
| 20948 20637 | 
             
                      rightpos = childpos + 1;
         | 
| 20949 | 
            -
                      if (rightpos < endpos && !(cmp( | 
| 20638 | 
            +
                      if (rightpos < endpos && !(cmp(array2[childpos], array2[rightpos]) < 0)) {
         | 
| 20950 20639 | 
             
                        childpos = rightpos;
         | 
| 20951 20640 | 
             
                      }
         | 
| 20952 | 
            -
                       | 
| 20641 | 
            +
                      array2[pos] = array2[childpos];
         | 
| 20953 20642 | 
             
                      pos = childpos;
         | 
| 20954 20643 | 
             
                      childpos = 2 * pos + 1;
         | 
| 20955 20644 | 
             
                    }
         | 
| 20956 | 
            -
                     | 
| 20957 | 
            -
                    return _siftdown( | 
| 20645 | 
            +
                    array2[pos] = newitem;
         | 
| 20646 | 
            +
                    return _siftdown(array2, startpos, pos, cmp);
         | 
| 20958 20647 | 
             
                  };
         | 
| 20959 20648 | 
             
                  Heap = function() {
         | 
| 20960 20649 | 
             
                    Heap2.push = heappush;
         | 
| @@ -22867,12 +22556,12 @@ var require_lib = __commonJS({ | |
| 22867 22556 | 
             
                    }
         | 
| 22868 22557 | 
             
                    return bestMatch;
         | 
| 22869 22558 | 
             
                  }
         | 
| 22870 | 
            -
                  scalarize( | 
| 22559 | 
            +
                  scalarize(array2, originals, fuzzyOriginals) {
         | 
| 22871 22560 | 
             
                    const fuzzyMatches = [];
         | 
| 22872 22561 | 
             
                    if (fuzzyOriginals) {
         | 
| 22873 22562 | 
             
                      const keyScores = {};
         | 
| 22874 | 
            -
                      for (let index4 = 0; index4 <  | 
| 22875 | 
            -
                        const item =  | 
| 22563 | 
            +
                      for (let index4 = 0; index4 < array2.length; index4++) {
         | 
| 22564 | 
            +
                        const item = array2[index4];
         | 
| 22876 22565 | 
             
                        if (this.isScalar(item)) {
         | 
| 22877 22566 | 
             
                          continue;
         | 
| 22878 22567 | 
             
                        }
         | 
| @@ -22886,8 +22575,8 @@ var require_lib = __commonJS({ | |
| 22886 22575 | 
             
                      }
         | 
| 22887 22576 | 
             
                    }
         | 
| 22888 22577 | 
             
                    const result = [];
         | 
| 22889 | 
            -
                    for (let index4 = 0; index4 <  | 
| 22890 | 
            -
                      const item =  | 
| 22578 | 
            +
                    for (let index4 = 0; index4 < array2.length; index4++) {
         | 
| 22579 | 
            +
                      const item = array2[index4];
         | 
| 22891 22580 | 
             
                      if (this.isScalar(item)) {
         | 
| 22892 22581 | 
             
                        result.push(item);
         | 
| 22893 22582 | 
             
                      } else {
         | 
| @@ -23109,6 +22798,37 @@ function diffColumns(left, right) { | |
| 23109 22798 | 
             
              );
         | 
| 23110 22799 | 
             
              return alteredTables;
         | 
| 23111 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 | 
            +
            }
         | 
| 23112 22832 | 
             
            function applyJsonDiff(json1, json2) {
         | 
| 23113 22833 | 
             
              json1 = JSON.parse(JSON.stringify(json1));
         | 
| 23114 22834 | 
             
              json2 = JSON.parse(JSON.stringify(json2));
         | 
| @@ -23118,7 +22838,7 @@ function applyJsonDiff(json1, json2) { | |
| 23118 22838 | 
             
              difference.tables = difference.tables || {};
         | 
| 23119 22839 | 
             
              difference.enums = difference.enums || {};
         | 
| 23120 22840 | 
             
              difference.sequences = difference.sequences || {};
         | 
| 23121 | 
            -
              difference. | 
| 22841 | 
            +
              difference.roles = difference.roles || {};
         | 
| 23122 22842 | 
             
              const schemaKeys = Object.keys(difference.schemas);
         | 
| 23123 22843 | 
             
              for (let key of schemaKeys) {
         | 
| 23124 22844 | 
             
                if (key.endsWith("__added") || key.endsWith("__deleted")) {
         | 
| @@ -23174,71 +22894,10 @@ function applyJsonDiff(json1, json2) { | |
| 23174 22894 | 
             
              const alteredSequences = sequencesEntries.filter((it) => !(it[0].includes("__added") || it[0].includes("__deleted")) && "values" in it[1]).map((it) => {
         | 
| 23175 22895 | 
             
                return json2.sequences[it[0]];
         | 
| 23176 22896 | 
             
              });
         | 
| 23177 | 
            -
              const  | 
| 23178 | 
            -
              const  | 
| 23179 | 
            -
                 | 
| 23180 | 
            -
             | 
| 23181 | 
            -
                  const addedWithOption = view2.with__added;
         | 
| 23182 | 
            -
                  const deletedWith = Object.fromEntries(
         | 
| 23183 | 
            -
                    Object.entries(view2.with || {}).filter((it) => it[0].endsWith("__deleted")).map(([key, value]) => {
         | 
| 23184 | 
            -
                      return [key.replace("__deleted", ""), value];
         | 
| 23185 | 
            -
                    })
         | 
| 23186 | 
            -
                  );
         | 
| 23187 | 
            -
                  const addedWith = Object.fromEntries(
         | 
| 23188 | 
            -
                    Object.entries(view2.with || {}).filter((it) => it[0].endsWith("__added")).map(([key, value]) => {
         | 
| 23189 | 
            -
                      return [key.replace("__added", ""), value];
         | 
| 23190 | 
            -
                    })
         | 
| 23191 | 
            -
                  );
         | 
| 23192 | 
            -
                  const alterWith = Object.fromEntries(
         | 
| 23193 | 
            -
                    Object.entries(view2.with || {}).filter(
         | 
| 23194 | 
            -
                      (it) => typeof it[1].__old !== "undefined" && typeof it[1].__new !== "undefined"
         | 
| 23195 | 
            -
                    ).map(
         | 
| 23196 | 
            -
                      (it) => {
         | 
| 23197 | 
            -
                        return [it[0], it[1].__new];
         | 
| 23198 | 
            -
                      }
         | 
| 23199 | 
            -
                    )
         | 
| 23200 | 
            -
                  );
         | 
| 23201 | 
            -
                  const alteredSchema = view2.schema;
         | 
| 23202 | 
            -
                  const alteredDefinition = view2.definition;
         | 
| 23203 | 
            -
                  const alteredExisting = view2.isExisting;
         | 
| 23204 | 
            -
                  const addedTablespace = view2.tablespace__added;
         | 
| 23205 | 
            -
                  const droppedTablespace = view2.tablespace__deleted;
         | 
| 23206 | 
            -
                  const alterTablespaceTo = view2.tablespace;
         | 
| 23207 | 
            -
                  let alteredTablespace;
         | 
| 23208 | 
            -
                  if (addedTablespace)
         | 
| 23209 | 
            -
                    alteredTablespace = { __new: addedTablespace, __old: "pg_default" };
         | 
| 23210 | 
            -
                  if (droppedTablespace)
         | 
| 23211 | 
            -
                    alteredTablespace = { __new: "pg_default", __old: droppedTablespace };
         | 
| 23212 | 
            -
                  if (alterTablespaceTo)
         | 
| 23213 | 
            -
                    alteredTablespace = alterTablespaceTo;
         | 
| 23214 | 
            -
                  const addedUsing = view2.using__added;
         | 
| 23215 | 
            -
                  const droppedUsing = view2.using__deleted;
         | 
| 23216 | 
            -
                  const alterUsingTo = view2.using;
         | 
| 23217 | 
            -
                  let alteredUsing;
         | 
| 23218 | 
            -
                  if (addedUsing)
         | 
| 23219 | 
            -
                    alteredUsing = { __new: addedUsing, __old: "heap" };
         | 
| 23220 | 
            -
                  if (droppedUsing)
         | 
| 23221 | 
            -
                    alteredUsing = { __new: "heap", __old: droppedUsing };
         | 
| 23222 | 
            -
                  if (alterUsingTo)
         | 
| 23223 | 
            -
                    alteredUsing = alterUsingTo;
         | 
| 23224 | 
            -
                  return {
         | 
| 23225 | 
            -
                    name: json2.views[nameWithSchema].name,
         | 
| 23226 | 
            -
                    schema: json2.views[nameWithSchema].schema,
         | 
| 23227 | 
            -
                    deletedWithOption,
         | 
| 23228 | 
            -
                    addedWithOption,
         | 
| 23229 | 
            -
                    alteredWith: {
         | 
| 23230 | 
            -
                      deletedWith: Object.keys(deletedWith).length ? deletedWith : void 0,
         | 
| 23231 | 
            -
                      addedWith: Object.keys(addedWith).length ? addedWith : void 0,
         | 
| 23232 | 
            -
                      alterWith: Object.keys(alterWith).length ? alterWith : void 0
         | 
| 23233 | 
            -
                    },
         | 
| 23234 | 
            -
                    alteredSchema,
         | 
| 23235 | 
            -
                    alteredDefinition,
         | 
| 23236 | 
            -
                    alteredExisting,
         | 
| 23237 | 
            -
                    alteredTablespace,
         | 
| 23238 | 
            -
                    alteredUsing
         | 
| 23239 | 
            -
                  };
         | 
| 23240 | 
            -
                }
         | 
| 23241 | 
            -
              );
         | 
| 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 | 
            +
              });
         | 
| 23242 22901 | 
             
              const alteredTablesWithColumns = Object.values(difference.tables).map(
         | 
| 23243 22902 | 
             
                (table4) => {
         | 
| 23244 22903 | 
             
                  return findAlternationsInTable(table4);
         | 
| @@ -23248,7 +22907,7 @@ function applyJsonDiff(json1, json2) { | |
| 23248 22907 | 
             
                alteredTablesWithColumns,
         | 
| 23249 22908 | 
             
                alteredEnums,
         | 
| 23250 22909 | 
             
                alteredSequences,
         | 
| 23251 | 
            -
                 | 
| 22910 | 
            +
                alteredRoles
         | 
| 23252 22911 | 
             
              };
         | 
| 23253 22912 | 
             
            }
         | 
| 23254 22913 | 
             
            var import_json_diff, mapArraysDiff, findAlternationsInTable, alternationsInColumn;
         | 
| @@ -23308,6 +22967,21 @@ var init_jsonDiffer = __esm({ | |
| 23308 22967 | 
             
                      return !it[0].endsWith("__deleted") && !it[0].endsWith("__added");
         | 
| 23309 22968 | 
             
                    })
         | 
| 23310 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 | 
            +
                  );
         | 
| 23311 22985 | 
             
                  const deletedForeignKeys = Object.fromEntries(
         | 
| 23312 22986 | 
             
                    Object.entries(table4.foreignKeys__deleted || {}).concat(
         | 
| 23313 22987 | 
             
                      Object.entries(table4.foreignKeys || {}).filter((it) => it[0].includes("__deleted"))
         | 
| @@ -23369,7 +23043,10 @@ var init_jsonDiffer = __esm({ | |
| 23369 23043 | 
             
                    alteredCompositePKs,
         | 
| 23370 23044 | 
             
                    addedUniqueConstraints,
         | 
| 23371 23045 | 
             
                    deletedUniqueConstraints,
         | 
| 23372 | 
            -
                    alteredUniqueConstraints
         | 
| 23046 | 
            +
                    alteredUniqueConstraints,
         | 
| 23047 | 
            +
                    deletedPolicies,
         | 
| 23048 | 
            +
                    addedPolicies,
         | 
| 23049 | 
            +
                    alteredPolicies
         | 
| 23373 23050 | 
             
                  };
         | 
| 23374 23051 | 
             
                };
         | 
| 23375 23052 | 
             
                alternationsInColumn = (column7) => {
         | 
| @@ -23643,7 +23320,7 @@ function fromJson(statements, dialect7, action, json2) { | |
| 23643 23320 | 
             
              }).filter((it) => it !== "");
         | 
| 23644 23321 | 
             
              return result;
         | 
| 23645 23322 | 
             
            }
         | 
| 23646 | 
            -
            var pgNativeTypes, isPgNativeType, Convertor,  | 
| 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;
         | 
| 23647 23324 | 
             
            var init_sqlgenerator = __esm({
         | 
| 23648 23325 | 
             
              "src/sqlgenerator.ts"() {
         | 
| 23649 23326 | 
             
                "use strict";
         | 
| @@ -23700,12 +23377,110 @@ var init_sqlgenerator = __esm({ | |
| 23700 23377 | 
             
                };
         | 
| 23701 23378 | 
             
                Convertor = class {
         | 
| 23702 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 | 
            +
                };
         | 
| 23703 23478 | 
             
                PgCreateTableConvertor = class extends Convertor {
         | 
| 23704 23479 | 
             
                  can(statement, dialect7) {
         | 
| 23705 23480 | 
             
                    return statement.type === "create_table" && dialect7 === "postgresql";
         | 
| 23706 23481 | 
             
                  }
         | 
| 23707 23482 | 
             
                  convert(st) {
         | 
| 23708 | 
            -
                    const { tableName, schema: schema5, columns, compositePKs, uniqueConstraints } = st;
         | 
| 23483 | 
            +
                    const { tableName, schema: schema5, columns, compositePKs, uniqueConstraints, policies } = st;
         | 
| 23709 23484 | 
             
                    let statement = "";
         | 
| 23710 23485 | 
             
                    const name = schema5 ? `"${schema5}"."${tableName}"` : `"${tableName}"`;
         | 
| 23711 23486 | 
             
                    statement += `CREATE TABLE IF NOT EXISTS ${name} (
         | 
| @@ -23742,7 +23517,12 @@ var init_sqlgenerator = __esm({ | |
| 23742 23517 | 
             
            );`;
         | 
| 23743 23518 | 
             
                    statement += `
         | 
| 23744 23519 | 
             
            `;
         | 
| 23745 | 
            -
                     | 
| 23520 | 
            +
                    const enableRls = new PgEnableRlsConvertor().convert({
         | 
| 23521 | 
            +
                      type: "enable_rls",
         | 
| 23522 | 
            +
                      tableName,
         | 
| 23523 | 
            +
                      schema: schema5
         | 
| 23524 | 
            +
                    });
         | 
| 23525 | 
            +
                    return [statement, ...policies && policies.length > 0 ? [enableRls] : []];
         | 
| 23746 23526 | 
             
                  }
         | 
| 23747 23527 | 
             
                };
         | 
| 23748 23528 | 
             
                MySqlCreateTableConvertor = class extends Convertor {
         | 
| @@ -23859,118 +23639,6 @@ var init_sqlgenerator = __esm({ | |
| 23859 23639 | 
             
                    return statement;
         | 
| 23860 23640 | 
             
                  }
         | 
| 23861 23641 | 
             
                };
         | 
| 23862 | 
            -
                PgCreateViewConvertor = class extends Convertor {
         | 
| 23863 | 
            -
                  can(statement, dialect7) {
         | 
| 23864 | 
            -
                    return statement.type === "create_view" && dialect7 === "postgresql";
         | 
| 23865 | 
            -
                  }
         | 
| 23866 | 
            -
                  convert(st) {
         | 
| 23867 | 
            -
                    const { definition, name: viewName, schema: schema5, with: withOption, materialized, withNoData, tablespace, using } = st;
         | 
| 23868 | 
            -
                    const name = schema5 ? `"${schema5}"."${viewName}"` : `"${viewName}"`;
         | 
| 23869 | 
            -
                    let statement = materialized ? `CREATE MATERIALIZED VIEW ${name}` : `CREATE VIEW ${name}`;
         | 
| 23870 | 
            -
                    if (using)
         | 
| 23871 | 
            -
                      statement += ` USING "${using}"`;
         | 
| 23872 | 
            -
                    const options = [];
         | 
| 23873 | 
            -
                    if (withOption) {
         | 
| 23874 | 
            -
                      statement += ` WITH (`;
         | 
| 23875 | 
            -
                      Object.entries(withOption).forEach(([key, value]) => {
         | 
| 23876 | 
            -
                        if (typeof value === "undefined")
         | 
| 23877 | 
            -
                          return;
         | 
| 23878 | 
            -
                        options.push(`${key.snake_case()} = ${value}`);
         | 
| 23879 | 
            -
                      });
         | 
| 23880 | 
            -
                      statement += options.join(", ");
         | 
| 23881 | 
            -
                      statement += `)`;
         | 
| 23882 | 
            -
                    }
         | 
| 23883 | 
            -
                    if (tablespace)
         | 
| 23884 | 
            -
                      statement += ` TABLESPACE ${tablespace}`;
         | 
| 23885 | 
            -
                    statement += ` AS (${definition})`;
         | 
| 23886 | 
            -
                    if (withNoData)
         | 
| 23887 | 
            -
                      statement += ` WITH NO DATA`;
         | 
| 23888 | 
            -
                    statement += `;`;
         | 
| 23889 | 
            -
                    return statement;
         | 
| 23890 | 
            -
                  }
         | 
| 23891 | 
            -
                };
         | 
| 23892 | 
            -
                PgDropViewConvertor = class extends Convertor {
         | 
| 23893 | 
            -
                  can(statement, dialect7) {
         | 
| 23894 | 
            -
                    return statement.type === "drop_view" && dialect7 === "postgresql";
         | 
| 23895 | 
            -
                  }
         | 
| 23896 | 
            -
                  convert(st) {
         | 
| 23897 | 
            -
                    const { name: viewName, schema: schema5, materialized } = st;
         | 
| 23898 | 
            -
                    const name = schema5 ? `"${schema5}"."${viewName}"` : `"${viewName}"`;
         | 
| 23899 | 
            -
                    return `DROP${materialized ? " MATERIALIZED" : ""} VIEW ${name};`;
         | 
| 23900 | 
            -
                  }
         | 
| 23901 | 
            -
                };
         | 
| 23902 | 
            -
                PgRenameViewConvertor = class extends Convertor {
         | 
| 23903 | 
            -
                  can(statement, dialect7) {
         | 
| 23904 | 
            -
                    return statement.type === "rename_view" && dialect7 === "postgresql";
         | 
| 23905 | 
            -
                  }
         | 
| 23906 | 
            -
                  convert(st) {
         | 
| 23907 | 
            -
                    const { nameFrom: from, nameTo: to, schema: schema5, materialized } = st;
         | 
| 23908 | 
            -
                    const nameFrom = `"${schema5}"."${from}"`;
         | 
| 23909 | 
            -
                    return `ALTER${materialized ? " MATERIALIZED" : ""} VIEW ${nameFrom} RENAME TO "${to}";`;
         | 
| 23910 | 
            -
                  }
         | 
| 23911 | 
            -
                };
         | 
| 23912 | 
            -
                PgAlterViewSchemaConvertor = class extends Convertor {
         | 
| 23913 | 
            -
                  can(statement, dialect7) {
         | 
| 23914 | 
            -
                    return statement.type === "alter_view_alter_schema" && dialect7 === "postgresql";
         | 
| 23915 | 
            -
                  }
         | 
| 23916 | 
            -
                  convert(st) {
         | 
| 23917 | 
            -
                    const { fromSchema, toSchema, name, materialized } = st;
         | 
| 23918 | 
            -
                    const statement = `ALTER${materialized ? " MATERIALIZED" : ""} VIEW "${fromSchema}"."${name}" SET SCHEMA "${toSchema}";`;
         | 
| 23919 | 
            -
                    return statement;
         | 
| 23920 | 
            -
                  }
         | 
| 23921 | 
            -
                };
         | 
| 23922 | 
            -
                PgAlterViewAddWithOptionConvertor = class extends Convertor {
         | 
| 23923 | 
            -
                  can(statement, dialect7) {
         | 
| 23924 | 
            -
                    return statement.type === "alter_view_add_with_option" && dialect7 === "postgresql";
         | 
| 23925 | 
            -
                  }
         | 
| 23926 | 
            -
                  convert(st) {
         | 
| 23927 | 
            -
                    const { schema: schema5, with: withOption, name, materialized } = st;
         | 
| 23928 | 
            -
                    let statement = `ALTER${materialized ? " MATERIALIZED" : ""} VIEW "${schema5}"."${name}" SET (`;
         | 
| 23929 | 
            -
                    const options = [];
         | 
| 23930 | 
            -
                    Object.entries(withOption).forEach(([key, value]) => {
         | 
| 23931 | 
            -
                      options.push(`${key.snake_case()} = ${value}`);
         | 
| 23932 | 
            -
                    });
         | 
| 23933 | 
            -
                    statement += options.join(", ");
         | 
| 23934 | 
            -
                    statement += `);`;
         | 
| 23935 | 
            -
                    return statement;
         | 
| 23936 | 
            -
                  }
         | 
| 23937 | 
            -
                };
         | 
| 23938 | 
            -
                PgAlterViewDropWithOptionConvertor = class extends Convertor {
         | 
| 23939 | 
            -
                  can(statement, dialect7) {
         | 
| 23940 | 
            -
                    return statement.type === "alter_view_drop_with_option" && dialect7 === "postgresql";
         | 
| 23941 | 
            -
                  }
         | 
| 23942 | 
            -
                  convert(st) {
         | 
| 23943 | 
            -
                    const { schema: schema5, name, materialized, with: withOptions } = st;
         | 
| 23944 | 
            -
                    let statement = `ALTER${materialized ? " MATERIALIZED" : ""} VIEW "${schema5}"."${name}" RESET (`;
         | 
| 23945 | 
            -
                    const options = [];
         | 
| 23946 | 
            -
                    Object.entries(withOptions).forEach(([key, value]) => {
         | 
| 23947 | 
            -
                      options.push(`${key.snake_case()}`);
         | 
| 23948 | 
            -
                    });
         | 
| 23949 | 
            -
                    statement += options.join(", ");
         | 
| 23950 | 
            -
                    statement += ");";
         | 
| 23951 | 
            -
                    return statement;
         | 
| 23952 | 
            -
                  }
         | 
| 23953 | 
            -
                };
         | 
| 23954 | 
            -
                PgAlterViewAlterTablespaceConvertor = class extends Convertor {
         | 
| 23955 | 
            -
                  can(statement, dialect7) {
         | 
| 23956 | 
            -
                    return statement.type === "alter_view_alter_tablespace" && dialect7 === "postgresql";
         | 
| 23957 | 
            -
                  }
         | 
| 23958 | 
            -
                  convert(st) {
         | 
| 23959 | 
            -
                    const { schema: schema5, name, toTablespace } = st;
         | 
| 23960 | 
            -
                    const statement = `ALTER MATERIALIZED VIEW "${schema5}"."${name}" SET TABLESPACE ${toTablespace};`;
         | 
| 23961 | 
            -
                    return statement;
         | 
| 23962 | 
            -
                  }
         | 
| 23963 | 
            -
                };
         | 
| 23964 | 
            -
                PgAlterViewAlterUsingConvertor = class extends Convertor {
         | 
| 23965 | 
            -
                  can(statement, dialect7) {
         | 
| 23966 | 
            -
                    return statement.type === "alter_view_alter_using" && dialect7 === "postgresql";
         | 
| 23967 | 
            -
                  }
         | 
| 23968 | 
            -
                  convert(st) {
         | 
| 23969 | 
            -
                    const { schema: schema5, name, toUsing } = st;
         | 
| 23970 | 
            -
                    const statement = `ALTER MATERIALIZED VIEW "${schema5}"."${name}" SET ACCESS METHOD "${toUsing}";`;
         | 
| 23971 | 
            -
                    return statement;
         | 
| 23972 | 
            -
                  }
         | 
| 23973 | 
            -
                };
         | 
| 23974 23642 | 
             
                PgAlterTableAlterColumnSetGenerated = class extends Convertor {
         | 
| 23975 23643 | 
             
                  can(statement, dialect7) {
         | 
| 23976 23644 | 
             
                    return statement.type === "alter_table_alter_column_set_identity" && dialect7 === "postgresql";
         | 
| @@ -24171,9 +23839,21 @@ var init_sqlgenerator = __esm({ | |
| 24171 23839 | 
             
                    return statement.type === "drop_table" && dialect7 === "postgresql";
         | 
| 24172 23840 | 
             
                  }
         | 
| 24173 23841 | 
             
                  convert(statement) {
         | 
| 24174 | 
            -
                    const { tableName, schema: schema5 } = statement;
         | 
| 23842 | 
            +
                    const { tableName, schema: schema5, policies } = statement;
         | 
| 24175 23843 | 
             
                    const tableNameWithSchema = schema5 ? `"${schema5}"."${tableName}"` : `"${tableName}"`;
         | 
| 24176 | 
            -
                     | 
| 23844 | 
            +
                    const dropPolicyConvertor = new PgDropPolicyConvertor();
         | 
| 23845 | 
            +
                    const droppedPolicies = (policies == null ? void 0 : policies.map((p2) => {
         | 
| 23846 | 
            +
                      return dropPolicyConvertor.convert({
         | 
| 23847 | 
            +
                        type: "drop_policy",
         | 
| 23848 | 
            +
                        tableName,
         | 
| 23849 | 
            +
                        data: PgSquasher.unsquashPolicy(p2),
         | 
| 23850 | 
            +
                        schema: schema5
         | 
| 23851 | 
            +
                      });
         | 
| 23852 | 
            +
                    })) ?? [];
         | 
| 23853 | 
            +
                    return [
         | 
| 23854 | 
            +
                      ...droppedPolicies,
         | 
| 23855 | 
            +
                      `DROP TABLE ${tableNameWithSchema};`
         | 
| 23856 | 
            +
                    ];
         | 
| 24177 23857 | 
             
                  }
         | 
| 24178 23858 | 
             
                };
         | 
| 24179 23859 | 
             
                MySQLDropTableConvertor = class extends Convertor {
         | 
| @@ -25309,14 +24989,6 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT ${statement.newCo | |
| 25309 24989 | 
             
                convertors.push(new SQLiteCreateTableConvertor());
         | 
| 25310 24990 | 
             
                convertors.push(new SQLiteRecreateTableConvertor());
         | 
| 25311 24991 | 
             
                convertors.push(new LibSQLRecreateTableConvertor());
         | 
| 25312 | 
            -
                convertors.push(new PgCreateViewConvertor());
         | 
| 25313 | 
            -
                convertors.push(new PgDropViewConvertor());
         | 
| 25314 | 
            -
                convertors.push(new PgRenameViewConvertor());
         | 
| 25315 | 
            -
                convertors.push(new PgAlterViewSchemaConvertor());
         | 
| 25316 | 
            -
                convertors.push(new PgAlterViewAddWithOptionConvertor());
         | 
| 25317 | 
            -
                convertors.push(new PgAlterViewDropWithOptionConvertor());
         | 
| 25318 | 
            -
                convertors.push(new PgAlterViewAlterTablespaceConvertor());
         | 
| 25319 | 
            -
                convertors.push(new PgAlterViewAlterUsingConvertor());
         | 
| 25320 24992 | 
             
                convertors.push(new CreateTypeEnumConvertor());
         | 
| 25321 24993 | 
             
                convertors.push(new CreatePgSequenceConvertor());
         | 
| 25322 24994 | 
             
                convertors.push(new DropPgSequenceConvertor());
         | 
| @@ -25356,6 +25028,16 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT ${statement.newCo | |
| 25356 25028 | 
             
                convertors.push(new PgAlterTableAlterColumnDropNotNullConvertor());
         | 
| 25357 25029 | 
             
                convertors.push(new PgAlterTableAlterColumnSetDefaultConvertor());
         | 
| 25358 25030 | 
             
                convertors.push(new PgAlterTableAlterColumnDropDefaultConvertor());
         | 
| 25031 | 
            +
                convertors.push(new PgAlterPolicyConvertor());
         | 
| 25032 | 
            +
                convertors.push(new PgCreatePolicyConvertor());
         | 
| 25033 | 
            +
                convertors.push(new PgDropPolicyConvertor());
         | 
| 25034 | 
            +
                convertors.push(new PgRenamePolicyConvertor());
         | 
| 25035 | 
            +
                convertors.push(new PgEnableRlsConvertor());
         | 
| 25036 | 
            +
                convertors.push(new PgDisableRlsConvertor());
         | 
| 25037 | 
            +
                convertors.push(new PgDropRoleConvertor());
         | 
| 25038 | 
            +
                convertors.push(new PgAlterRoleConvertor());
         | 
| 25039 | 
            +
                convertors.push(new PgCreateRoleConvertor());
         | 
| 25040 | 
            +
                convertors.push(new PgRenameRoleConvertor());
         | 
| 25359 25041 | 
             
                convertors.push(new PgAlterTableAlterColumnSetExpressionConvertor());
         | 
| 25360 25042 | 
             
                convertors.push(new PgAlterTableAlterColumnDropGeneratedConvertor());
         | 
| 25361 25043 | 
             
                convertors.push(new PgAlterTableAlterColumnAlterrGeneratedConvertor());
         | 
| @@ -25651,7 +25333,7 @@ var init_sqlitePushUtils = __esm({ | |
| 25651 25333 | 
             
            });
         | 
| 25652 25334 |  | 
| 25653 25335 | 
             
            // src/jsonStatements.ts
         | 
| 25654 | 
            -
            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 | 
| 25336 | 
            +
            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;
         | 
| 25655 25337 | 
             
            var init_jsonStatements = __esm({
         | 
| 25656 25338 | 
             
              "src/jsonStatements.ts"() {
         | 
| 25657 25339 | 
             
                "use strict";
         | 
| @@ -25662,7 +25344,7 @@ var init_jsonStatements = __esm({ | |
| 25662 25344 | 
             
                init_pgSchema();
         | 
| 25663 25345 | 
             
                init_sqliteSchema();
         | 
| 25664 25346 | 
             
                preparePgCreateTableJson = (table4, json2) => {
         | 
| 25665 | 
            -
                  const { name, schema: schema5, columns, compositePrimaryKeys, uniqueConstraints } = table4;
         | 
| 25347 | 
            +
                  const { name, schema: schema5, columns, compositePrimaryKeys, uniqueConstraints, policies } = table4;
         | 
| 25666 25348 | 
             
                  const tableKey2 = `${schema5 || "public"}.${name}`;
         | 
| 25667 25349 | 
             
                  const compositePkName = Object.values(compositePrimaryKeys).length > 0 ? json2.tables[tableKey2].compositePrimaryKeys[`${PgSquasher.unsquashPK(Object.values(compositePrimaryKeys)[0]).name}`].name : "";
         | 
| 25668 25350 | 
             
                  return {
         | 
| @@ -25672,7 +25354,8 @@ var init_jsonStatements = __esm({ | |
| 25672 25354 | 
             
                    columns: Object.values(columns),
         | 
| 25673 25355 | 
             
                    compositePKs: Object.values(compositePrimaryKeys),
         | 
| 25674 25356 | 
             
                    compositePkName,
         | 
| 25675 | 
            -
                    uniqueConstraints: Object.values(uniqueConstraints)
         | 
| 25357 | 
            +
                    uniqueConstraints: Object.values(uniqueConstraints),
         | 
| 25358 | 
            +
                    policies: Object.values(policies)
         | 
| 25676 25359 | 
             
                  };
         | 
| 25677 25360 | 
             
                };
         | 
| 25678 25361 | 
             
                prepareMySqlCreateTableJson = (table4, json2, internals) => {
         | 
| @@ -25710,7 +25393,8 @@ var init_jsonStatements = __esm({ | |
| 25710 25393 | 
             
                  return {
         | 
| 25711 25394 | 
             
                    type: "drop_table",
         | 
| 25712 25395 | 
             
                    tableName: table4.name,
         | 
| 25713 | 
            -
                    schema: table4.schema
         | 
| 25396 | 
            +
                    schema: table4.schema,
         | 
| 25397 | 
            +
                    policies: table4.policies ? Object.values(table4.policies) : []
         | 
| 25714 25398 | 
             
                  };
         | 
| 25715 25399 | 
             
                };
         | 
| 25716 25400 | 
             
                prepareRenameTableJson = (tableFrom, tableTo) => {
         | 
| @@ -25807,6 +25491,41 @@ var init_jsonStatements = __esm({ | |
| 25807 25491 | 
             
                    schema: schema5
         | 
| 25808 25492 | 
             
                  };
         | 
| 25809 25493 | 
             
                };
         | 
| 25494 | 
            +
                prepareCreateRoleJson = (role) => {
         | 
| 25495 | 
            +
                  return {
         | 
| 25496 | 
            +
                    type: "create_role",
         | 
| 25497 | 
            +
                    name: role.name,
         | 
| 25498 | 
            +
                    values: {
         | 
| 25499 | 
            +
                      createDb: role.createDb,
         | 
| 25500 | 
            +
                      createRole: role.createRole,
         | 
| 25501 | 
            +
                      inherit: role.inherit
         | 
| 25502 | 
            +
                    }
         | 
| 25503 | 
            +
                  };
         | 
| 25504 | 
            +
                };
         | 
| 25505 | 
            +
                prepareAlterRoleJson = (role) => {
         | 
| 25506 | 
            +
                  return {
         | 
| 25507 | 
            +
                    type: "alter_role",
         | 
| 25508 | 
            +
                    name: role.name,
         | 
| 25509 | 
            +
                    values: {
         | 
| 25510 | 
            +
                      createDb: role.createDb,
         | 
| 25511 | 
            +
                      createRole: role.createRole,
         | 
| 25512 | 
            +
                      inherit: role.inherit
         | 
| 25513 | 
            +
                    }
         | 
| 25514 | 
            +
                  };
         | 
| 25515 | 
            +
                };
         | 
| 25516 | 
            +
                prepareDropRoleJson = (name) => {
         | 
| 25517 | 
            +
                  return {
         | 
| 25518 | 
            +
                    type: "drop_role",
         | 
| 25519 | 
            +
                    name
         | 
| 25520 | 
            +
                  };
         | 
| 25521 | 
            +
                };
         | 
| 25522 | 
            +
                prepareRenameRoleJson = (nameFrom, nameTo) => {
         | 
| 25523 | 
            +
                  return {
         | 
| 25524 | 
            +
                    type: "rename_role",
         | 
| 25525 | 
            +
                    nameFrom,
         | 
| 25526 | 
            +
                    nameTo
         | 
| 25527 | 
            +
                  };
         | 
| 25528 | 
            +
                };
         | 
| 25810 25529 | 
             
                prepareCreateSchemasJson = (values) => {
         | 
| 25811 25530 | 
             
                  return values.map((it) => {
         | 
| 25812 25531 | 
             
                    return {
         | 
| @@ -26707,6 +26426,46 @@ var init_jsonStatements = __esm({ | |
| 26707 26426 | 
             
                  }
         | 
| 26708 26427 | 
             
                  return [...dropPkStatements, ...setPkStatements, ...statements];
         | 
| 26709 26428 | 
             
                };
         | 
| 26429 | 
            +
                prepareRenamePolicyJsons = (tableName, schema5, renames) => {
         | 
| 26430 | 
            +
                  return renames.map((it) => {
         | 
| 26431 | 
            +
                    return {
         | 
| 26432 | 
            +
                      type: "rename_policy",
         | 
| 26433 | 
            +
                      tableName,
         | 
| 26434 | 
            +
                      oldName: it.from.name,
         | 
| 26435 | 
            +
                      newName: it.to.name,
         | 
| 26436 | 
            +
                      schema: schema5
         | 
| 26437 | 
            +
                    };
         | 
| 26438 | 
            +
                  });
         | 
| 26439 | 
            +
                };
         | 
| 26440 | 
            +
                prepareCreatePolicyJsons = (tableName, schema5, policies) => {
         | 
| 26441 | 
            +
                  return policies.map((it) => {
         | 
| 26442 | 
            +
                    return {
         | 
| 26443 | 
            +
                      type: "create_policy",
         | 
| 26444 | 
            +
                      tableName,
         | 
| 26445 | 
            +
                      data: it,
         | 
| 26446 | 
            +
                      schema: schema5
         | 
| 26447 | 
            +
                    };
         | 
| 26448 | 
            +
                  });
         | 
| 26449 | 
            +
                };
         | 
| 26450 | 
            +
                prepareDropPolicyJsons = (tableName, schema5, policies) => {
         | 
| 26451 | 
            +
                  return policies.map((it) => {
         | 
| 26452 | 
            +
                    return {
         | 
| 26453 | 
            +
                      type: "drop_policy",
         | 
| 26454 | 
            +
                      tableName,
         | 
| 26455 | 
            +
                      data: it,
         | 
| 26456 | 
            +
                      schema: schema5
         | 
| 26457 | 
            +
                    };
         | 
| 26458 | 
            +
                  });
         | 
| 26459 | 
            +
                };
         | 
| 26460 | 
            +
                prepareAlterPolicyJson = (tableName, schema5, oldPolicy, newPolicy) => {
         | 
| 26461 | 
            +
                  return {
         | 
| 26462 | 
            +
                    type: "alter_policy",
         | 
| 26463 | 
            +
                    tableName,
         | 
| 26464 | 
            +
                    oldData: oldPolicy,
         | 
| 26465 | 
            +
                    newData: newPolicy,
         | 
| 26466 | 
            +
                    schema: schema5
         | 
| 26467 | 
            +
                  };
         | 
| 26468 | 
            +
                };
         | 
| 26710 26469 | 
             
                preparePgCreateIndexesJson = (tableName, schema5, indexes, fullSchema, action) => {
         | 
| 26711 26470 | 
             
                  if (action === "push") {
         | 
| 26712 26471 | 
             
                    return Object.values(indexes).map((indexData) => {
         | 
| @@ -26990,81 +26749,6 @@ var init_jsonStatements = __esm({ | |
| 26990 26749 | 
             
                    };
         | 
| 26991 26750 | 
             
                  });
         | 
| 26992 26751 | 
             
                };
         | 
| 26993 | 
            -
                preparePgCreateViewJson = (name, schema5, definition, materialized, withNoData = false, withOption, using, tablespace) => {
         | 
| 26994 | 
            -
                  return {
         | 
| 26995 | 
            -
                    type: "create_view",
         | 
| 26996 | 
            -
                    name,
         | 
| 26997 | 
            -
                    schema: schema5,
         | 
| 26998 | 
            -
                    definition,
         | 
| 26999 | 
            -
                    with: withOption,
         | 
| 27000 | 
            -
                    materialized,
         | 
| 27001 | 
            -
                    withNoData,
         | 
| 27002 | 
            -
                    using,
         | 
| 27003 | 
            -
                    tablespace
         | 
| 27004 | 
            -
                  };
         | 
| 27005 | 
            -
                };
         | 
| 27006 | 
            -
                preparePgDropViewJson = (name, schema5, materialized) => {
         | 
| 27007 | 
            -
                  return {
         | 
| 27008 | 
            -
                    type: "drop_view",
         | 
| 27009 | 
            -
                    name,
         | 
| 27010 | 
            -
                    schema: schema5,
         | 
| 27011 | 
            -
                    materialized
         | 
| 27012 | 
            -
                  };
         | 
| 27013 | 
            -
                };
         | 
| 27014 | 
            -
                preparePgRenameViewJson = (to, from, schema5, materialized) => {
         | 
| 27015 | 
            -
                  return {
         | 
| 27016 | 
            -
                    type: "rename_view",
         | 
| 27017 | 
            -
                    nameTo: to,
         | 
| 27018 | 
            -
                    nameFrom: from,
         | 
| 27019 | 
            -
                    schema: schema5,
         | 
| 27020 | 
            -
                    materialized
         | 
| 27021 | 
            -
                  };
         | 
| 27022 | 
            -
                };
         | 
| 27023 | 
            -
                preparePgAlterViewAlterSchemaJson = (to, from, name, materialized) => {
         | 
| 27024 | 
            -
                  return {
         | 
| 27025 | 
            -
                    type: "alter_view_alter_schema",
         | 
| 27026 | 
            -
                    fromSchema: from,
         | 
| 27027 | 
            -
                    toSchema: to,
         | 
| 27028 | 
            -
                    name,
         | 
| 27029 | 
            -
                    materialized
         | 
| 27030 | 
            -
                  };
         | 
| 27031 | 
            -
                };
         | 
| 27032 | 
            -
                preparePgAlterViewAddWithOptionJson = (name, schema5, materialized, withOption) => {
         | 
| 27033 | 
            -
                  return {
         | 
| 27034 | 
            -
                    type: "alter_view_add_with_option",
         | 
| 27035 | 
            -
                    name,
         | 
| 27036 | 
            -
                    schema: schema5,
         | 
| 27037 | 
            -
                    materialized,
         | 
| 27038 | 
            -
                    with: withOption
         | 
| 27039 | 
            -
                  };
         | 
| 27040 | 
            -
                };
         | 
| 27041 | 
            -
                preparePgAlterViewDropWithOptionJson = (name, schema5, materialized, withOption) => {
         | 
| 27042 | 
            -
                  return {
         | 
| 27043 | 
            -
                    type: "alter_view_drop_with_option",
         | 
| 27044 | 
            -
                    name,
         | 
| 27045 | 
            -
                    schema: schema5,
         | 
| 27046 | 
            -
                    materialized,
         | 
| 27047 | 
            -
                    with: withOption
         | 
| 27048 | 
            -
                  };
         | 
| 27049 | 
            -
                };
         | 
| 27050 | 
            -
                preparePgAlterViewAlterTablespaceJson = (name, schema5, materialized, to) => {
         | 
| 27051 | 
            -
                  return {
         | 
| 27052 | 
            -
                    type: "alter_view_alter_tablespace",
         | 
| 27053 | 
            -
                    name,
         | 
| 27054 | 
            -
                    schema: schema5,
         | 
| 27055 | 
            -
                    materialized,
         | 
| 27056 | 
            -
                    toTablespace: to
         | 
| 27057 | 
            -
                  };
         | 
| 27058 | 
            -
                };
         | 
| 27059 | 
            -
                preparePgAlterViewAlterUsingJson = (name, schema5, materialized, to) => {
         | 
| 27060 | 
            -
                  return {
         | 
| 27061 | 
            -
                    type: "alter_view_alter_using",
         | 
| 27062 | 
            -
                    name,
         | 
| 27063 | 
            -
                    schema: schema5,
         | 
| 27064 | 
            -
                    materialized,
         | 
| 27065 | 
            -
                    toUsing: to
         | 
| 27066 | 
            -
                  };
         | 
| 27067 | 
            -
                };
         | 
| 27068 26752 | 
             
              }
         | 
| 27069 26753 | 
             
            });
         | 
| 27070 26754 |  | 
| @@ -27350,7 +27034,7 @@ var init_statementCombiner = __esm({ | |
| 27350 27034 | 
             
            });
         | 
| 27351 27035 |  | 
| 27352 27036 | 
             
            // src/snapshotsDiffer.ts
         | 
| 27353 | 
            -
            var makeChanged, makeSelfOrChanged, makePatched, columnSchema, alteredColumnSchema, enumSchema2, changedEnumSchema, tableScheme, alteredTableScheme,  | 
| 27037 | 
            +
            var makeChanged, makeSelfOrChanged, makePatched, columnSchema, alteredColumnSchema, enumSchema2, changedEnumSchema, tableScheme, alteredTableScheme, diffResultScheme, diffResultSchemeMysql, diffResultSchemeSQLite, schemaChangeFor, nameChangeFor, nameSchemaChangeFor, columnChangeFor, applyPgSnapshotsDiff, applyMysqlSnapshotsDiff, applySqliteSnapshotsDiff, applyLibSQLSnapshotsDiff;
         | 
| 27354 27038 | 
             
            var init_snapshotsDiffer = __esm({
         | 
| 27355 27039 | 
             
              "src/snapshotsDiffer.ts"() {
         | 
| 27356 27040 | 
             
                "use strict";
         | 
| @@ -27455,7 +27139,8 @@ var init_snapshotsDiffer = __esm({ | |
| 27455 27139 | 
             
                  indexes: recordType(stringType(), stringType()),
         | 
| 27456 27140 | 
             
                  foreignKeys: recordType(stringType(), stringType()),
         | 
| 27457 27141 | 
             
                  compositePrimaryKeys: recordType(stringType(), stringType()).default({}),
         | 
| 27458 | 
            -
                  uniqueConstraints: recordType(stringType(), stringType()).default({})
         | 
| 27142 | 
            +
                  uniqueConstraints: recordType(stringType(), stringType()).default({}),
         | 
| 27143 | 
            +
                  policies: recordType(stringType(), stringType()).default({})
         | 
| 27459 27144 | 
             
                }).strict();
         | 
| 27460 27145 | 
             
                alteredTableScheme = objectType({
         | 
| 27461 27146 | 
             
                  name: stringType(),
         | 
| @@ -27496,44 +27181,22 @@ var init_snapshotsDiffer = __esm({ | |
| 27496 27181 | 
             
                      __new: stringType(),
         | 
| 27497 27182 | 
             
                      __old: stringType()
         | 
| 27498 27183 | 
             
                    })
         | 
| 27184 | 
            +
                  ),
         | 
| 27185 | 
            +
                  addedPolicies: recordType(stringType(), stringType()),
         | 
| 27186 | 
            +
                  deletedPolicies: recordType(stringType(), stringType()),
         | 
| 27187 | 
            +
                  alteredPolicies: recordType(
         | 
| 27188 | 
            +
                    stringType(),
         | 
| 27189 | 
            +
                    objectType({
         | 
| 27190 | 
            +
                      __new: stringType(),
         | 
| 27191 | 
            +
                      __old: stringType()
         | 
| 27192 | 
            +
                    })
         | 
| 27499 27193 | 
             
                  )
         | 
| 27500 27194 | 
             
                }).strict();
         | 
| 27501 | 
            -
                alteredViewSchema = objectType({
         | 
| 27502 | 
            -
                  name: stringType(),
         | 
| 27503 | 
            -
                  schema: stringType(),
         | 
| 27504 | 
            -
                  deletedWithOption: mergedViewWithOption.optional(),
         | 
| 27505 | 
            -
                  addedWithOption: mergedViewWithOption.optional(),
         | 
| 27506 | 
            -
                  alteredWith: objectType({
         | 
| 27507 | 
            -
                    addedWith: mergedViewWithOption.optional(),
         | 
| 27508 | 
            -
                    deletedWith: mergedViewWithOption.optional(),
         | 
| 27509 | 
            -
                    alterWith: mergedViewWithOption.optional()
         | 
| 27510 | 
            -
                  }).strict(),
         | 
| 27511 | 
            -
                  alteredSchema: objectType({
         | 
| 27512 | 
            -
                    __old: stringType(),
         | 
| 27513 | 
            -
                    __new: stringType()
         | 
| 27514 | 
            -
                  }).strict().optional(),
         | 
| 27515 | 
            -
                  alteredDefinition: objectType({
         | 
| 27516 | 
            -
                    __old: stringType(),
         | 
| 27517 | 
            -
                    __new: stringType()
         | 
| 27518 | 
            -
                  }).strict().optional(),
         | 
| 27519 | 
            -
                  alteredExisting: objectType({
         | 
| 27520 | 
            -
                    __old: booleanType(),
         | 
| 27521 | 
            -
                    __new: booleanType()
         | 
| 27522 | 
            -
                  }).strict().optional(),
         | 
| 27523 | 
            -
                  alteredTablespace: objectType({
         | 
| 27524 | 
            -
                    __old: stringType(),
         | 
| 27525 | 
            -
                    __new: stringType()
         | 
| 27526 | 
            -
                  }).strict().optional(),
         | 
| 27527 | 
            -
                  alteredUsing: objectType({
         | 
| 27528 | 
            -
                    __old: stringType(),
         | 
| 27529 | 
            -
                    __new: stringType()
         | 
| 27530 | 
            -
                  }).strict().optional()
         | 
| 27531 | 
            -
                }).strict();
         | 
| 27532 27195 | 
             
                diffResultScheme = objectType({
         | 
| 27533 27196 | 
             
                  alteredTablesWithColumns: alteredTableScheme.array(),
         | 
| 27534 27197 | 
             
                  alteredEnums: changedEnumSchema.array(),
         | 
| 27535 27198 | 
             
                  alteredSequences: sequenceSquashed.array(),
         | 
| 27536 | 
            -
                   | 
| 27199 | 
            +
                  alteredRoles: roleSchema.array()
         | 
| 27537 27200 | 
             
                }).strict();
         | 
| 27538 27201 | 
             
                diffResultSchemeMysql = objectType({
         | 
| 27539 27202 | 
             
                  alteredTablesWithColumns: alteredTableScheme.array(),
         | 
| @@ -27588,7 +27251,7 @@ var init_snapshotsDiffer = __esm({ | |
| 27588 27251 | 
             
                  }
         | 
| 27589 27252 | 
             
                  return column7;
         | 
| 27590 27253 | 
             
                };
         | 
| 27591 | 
            -
                applyPgSnapshotsDiff = async (json1, json2, schemasResolver2, enumsResolver2, sequencesResolver2, tablesResolver2, columnsResolver2,  | 
| 27254 | 
            +
                applyPgSnapshotsDiff = async (json1, json2, schemasResolver2, enumsResolver2, sequencesResolver2, policyResolver2, roleResolver2, tablesResolver2, columnsResolver2, prevFull, curFull, action) => {
         | 
| 27592 27255 | 
             
                  const schemasDiff = diffSchemasOrTables(json1.schemas, json2.schemas);
         | 
| 27593 27256 | 
             
                  const {
         | 
| 27594 27257 | 
             
                    created: createdSchemas,
         | 
| @@ -27738,6 +27401,47 @@ var init_snapshotsDiffer = __esm({ | |
| 27738 27401 | 
             
                      return [tableKey2, tableValue];
         | 
| 27739 27402 | 
             
                    }
         | 
| 27740 27403 | 
             
                  );
         | 
| 27404 | 
            +
                  const rolesDiff = diffSchemasOrTables(
         | 
| 27405 | 
            +
                    schemasPatchedSnap1.roles,
         | 
| 27406 | 
            +
                    json2.roles
         | 
| 27407 | 
            +
                  );
         | 
| 27408 | 
            +
                  const {
         | 
| 27409 | 
            +
                    created: createdRoles,
         | 
| 27410 | 
            +
                    deleted: deletedRoles,
         | 
| 27411 | 
            +
                    renamed: renamedRoles
         | 
| 27412 | 
            +
                  } = await roleResolver2({
         | 
| 27413 | 
            +
                    created: rolesDiff.added,
         | 
| 27414 | 
            +
                    deleted: rolesDiff.deleted
         | 
| 27415 | 
            +
                  });
         | 
| 27416 | 
            +
                  schemasPatchedSnap1.roles = mapEntries(
         | 
| 27417 | 
            +
                    schemasPatchedSnap1.roles,
         | 
| 27418 | 
            +
                    (_2, it) => {
         | 
| 27419 | 
            +
                      const { name } = nameChangeFor(it, renamedRoles);
         | 
| 27420 | 
            +
                      it.name = name;
         | 
| 27421 | 
            +
                      return [name, it];
         | 
| 27422 | 
            +
                    }
         | 
| 27423 | 
            +
                  );
         | 
| 27424 | 
            +
                  const rolesChangeMap = renamedRoles.reduce(
         | 
| 27425 | 
            +
                    (acc, it) => {
         | 
| 27426 | 
            +
                      acc[it.from.name] = {
         | 
| 27427 | 
            +
                        nameFrom: it.from.name,
         | 
| 27428 | 
            +
                        nameTo: it.to.name
         | 
| 27429 | 
            +
                      };
         | 
| 27430 | 
            +
                      return acc;
         | 
| 27431 | 
            +
                    },
         | 
| 27432 | 
            +
                    {}
         | 
| 27433 | 
            +
                  );
         | 
| 27434 | 
            +
                  schemasPatchedSnap1.roles = mapEntries(
         | 
| 27435 | 
            +
                    schemasPatchedSnap1.roles,
         | 
| 27436 | 
            +
                    (roleKey, roleValue) => {
         | 
| 27437 | 
            +
                      const key = roleKey;
         | 
| 27438 | 
            +
                      const change = rolesChangeMap[key];
         | 
| 27439 | 
            +
                      if (change) {
         | 
| 27440 | 
            +
                        roleValue.name = change.nameTo;
         | 
| 27441 | 
            +
                      }
         | 
| 27442 | 
            +
                      return [roleKey, roleValue];
         | 
| 27443 | 
            +
                    }
         | 
| 27444 | 
            +
                  );
         | 
| 27741 27445 | 
             
                  const tablesDiff = diffSchemasOrTables(
         | 
| 27742 27446 | 
             
                    schemasPatchedSnap1.tables,
         | 
| 27743 27447 | 
             
                    json2.tables
         | 
| @@ -27816,16 +27520,65 @@ var init_snapshotsDiffer = __esm({ | |
| 27816 27520 | 
             
                      return [tableKey2, tableValue];
         | 
| 27817 27521 | 
             
                    }
         | 
| 27818 27522 | 
             
                  );
         | 
| 27819 | 
            -
                  const  | 
| 27820 | 
            -
                  const  | 
| 27821 | 
            -
             | 
| 27822 | 
            -
             | 
| 27823 | 
            -
             | 
| 27824 | 
            -
                     | 
| 27825 | 
            -
             | 
| 27826 | 
            -
             | 
| 27827 | 
            -
             | 
| 27828 | 
            -
             | 
| 27523 | 
            +
                  const policyRes = diffPolicies(tablesPatchedSnap1.tables, json2.tables);
         | 
| 27524 | 
            +
                  const policyRenames = [];
         | 
| 27525 | 
            +
                  const policyCreates = [];
         | 
| 27526 | 
            +
                  const policyDeletes = [];
         | 
| 27527 | 
            +
                  for (let entry of Object.values(policyRes)) {
         | 
| 27528 | 
            +
                    const { renamed, created, deleted } = await policyResolver2({
         | 
| 27529 | 
            +
                      tableName: entry.name,
         | 
| 27530 | 
            +
                      schema: entry.schema,
         | 
| 27531 | 
            +
                      deleted: entry.policies.deleted.map(PgSquasher.unsquashPolicy),
         | 
| 27532 | 
            +
                      created: entry.policies.added.map(PgSquasher.unsquashPolicy)
         | 
| 27533 | 
            +
                    });
         | 
| 27534 | 
            +
                    if (created.length > 0) {
         | 
| 27535 | 
            +
                      policyCreates.push({
         | 
| 27536 | 
            +
                        table: entry.name,
         | 
| 27537 | 
            +
                        schema: entry.schema,
         | 
| 27538 | 
            +
                        columns: created
         | 
| 27539 | 
            +
                      });
         | 
| 27540 | 
            +
                    }
         | 
| 27541 | 
            +
                    if (deleted.length > 0) {
         | 
| 27542 | 
            +
                      policyDeletes.push({
         | 
| 27543 | 
            +
                        table: entry.name,
         | 
| 27544 | 
            +
                        schema: entry.schema,
         | 
| 27545 | 
            +
                        columns: deleted
         | 
| 27546 | 
            +
                      });
         | 
| 27547 | 
            +
                    }
         | 
| 27548 | 
            +
                    if (renamed.length > 0) {
         | 
| 27549 | 
            +
                      policyRenames.push({
         | 
| 27550 | 
            +
                        table: entry.name,
         | 
| 27551 | 
            +
                        schema: entry.schema,
         | 
| 27552 | 
            +
                        renames: renamed
         | 
| 27553 | 
            +
                      });
         | 
| 27554 | 
            +
                    }
         | 
| 27555 | 
            +
                  }
         | 
| 27556 | 
            +
                  const policyRenamesDict = columnRenames.reduce(
         | 
| 27557 | 
            +
                    (acc, it) => {
         | 
| 27558 | 
            +
                      acc[`${it.schema || "public"}.${it.table}`] = it.renames;
         | 
| 27559 | 
            +
                      return acc;
         | 
| 27560 | 
            +
                    },
         | 
| 27561 | 
            +
                    {}
         | 
| 27562 | 
            +
                  );
         | 
| 27563 | 
            +
                  const policyPatchedSnap1 = copy(tablesPatchedSnap1);
         | 
| 27564 | 
            +
                  policyPatchedSnap1.tables = mapEntries(
         | 
| 27565 | 
            +
                    policyPatchedSnap1.tables,
         | 
| 27566 | 
            +
                    (tableKey2, tableValue) => {
         | 
| 27567 | 
            +
                      const patchedPolicies = mapKeys(
         | 
| 27568 | 
            +
                        tableValue.policies,
         | 
| 27569 | 
            +
                        (policyKey, policy2) => {
         | 
| 27570 | 
            +
                          const rens = policyRenamesDict[`${tableValue.schema || "public"}.${tableValue.name}`] || [];
         | 
| 27571 | 
            +
                          const newName = columnChangeFor(policyKey, rens);
         | 
| 27572 | 
            +
                          const unsquashedPolicy = PgSquasher.unsquashPolicy(policy2);
         | 
| 27573 | 
            +
                          unsquashedPolicy.name = newName;
         | 
| 27574 | 
            +
                          policy2 = PgSquasher.squashPolicy(unsquashedPolicy);
         | 
| 27575 | 
            +
                          return newName;
         | 
| 27576 | 
            +
                        }
         | 
| 27577 | 
            +
                      );
         | 
| 27578 | 
            +
                      tableValue.policies = patchedPolicies;
         | 
| 27579 | 
            +
                      return [tableKey2, tableValue];
         | 
| 27580 | 
            +
                    }
         | 
| 27581 | 
            +
                  );
         | 
| 27829 27582 | 
             
                  const diffResult = applyJsonDiff(columnsPatchedSnap1, json2);
         | 
| 27830 27583 | 
             
                  const typedResult = diffResultScheme.parse(diffResult);
         | 
| 27831 27584 | 
             
                  const jsonStatements = [];
         | 
| @@ -27981,7 +27734,99 @@ var init_snapshotsDiffer = __esm({ | |
| 27981 27734 | 
             
                      it.deletedIndexes || {}
         | 
| 27982 27735 | 
             
                    );
         | 
| 27983 27736 | 
             
                  }).flat();
         | 
| 27737 | 
            +
                  const jsonCreatePoliciesStatements = [];
         | 
| 27738 | 
            +
                  const jsonDropPoliciesStatements = [];
         | 
| 27739 | 
            +
                  const jsonAlterPoliciesStatements = [];
         | 
| 27740 | 
            +
                  const jsonRenamePoliciesStatements = [];
         | 
| 27741 | 
            +
                  const jsonEnableRLSStatements = [];
         | 
| 27742 | 
            +
                  const jsonDisableRLSStatements = [];
         | 
| 27743 | 
            +
                  for (let it of policyRenames) {
         | 
| 27744 | 
            +
                    jsonRenamePoliciesStatements.push(
         | 
| 27745 | 
            +
                      ...prepareRenamePolicyJsons(it.table, it.schema, it.renames)
         | 
| 27746 | 
            +
                    );
         | 
| 27747 | 
            +
                  }
         | 
| 27748 | 
            +
                  for (const it of policyCreates) {
         | 
| 27749 | 
            +
                    jsonCreatePoliciesStatements.push(
         | 
| 27750 | 
            +
                      ...prepareCreatePolicyJsons(
         | 
| 27751 | 
            +
                        it.table,
         | 
| 27752 | 
            +
                        it.schema,
         | 
| 27753 | 
            +
                        it.columns
         | 
| 27754 | 
            +
                      )
         | 
| 27755 | 
            +
                    );
         | 
| 27756 | 
            +
                  }
         | 
| 27757 | 
            +
                  for (const it of policyDeletes) {
         | 
| 27758 | 
            +
                    jsonDropPoliciesStatements.push(
         | 
| 27759 | 
            +
                      ...prepareDropPolicyJsons(
         | 
| 27760 | 
            +
                        it.table,
         | 
| 27761 | 
            +
                        it.schema,
         | 
| 27762 | 
            +
                        it.columns
         | 
| 27763 | 
            +
                      )
         | 
| 27764 | 
            +
                    );
         | 
| 27765 | 
            +
                  }
         | 
| 27984 27766 | 
             
                  alteredTables.forEach((it) => {
         | 
| 27767 | 
            +
                    Object.keys(it.alteredPolicies).forEach((policyName) => {
         | 
| 27768 | 
            +
                      const newPolicy = PgSquasher.unsquashPolicy(it.alteredPolicies[policyName].__new);
         | 
| 27769 | 
            +
                      const oldPolicy = PgSquasher.unsquashPolicy(it.alteredPolicies[policyName].__old);
         | 
| 27770 | 
            +
                      if (newPolicy.as !== oldPolicy.as) {
         | 
| 27771 | 
            +
                        jsonDropPoliciesStatements.push(
         | 
| 27772 | 
            +
                          ...prepareDropPolicyJsons(
         | 
| 27773 | 
            +
                            it.name,
         | 
| 27774 | 
            +
                            it.schema,
         | 
| 27775 | 
            +
                            [oldPolicy]
         | 
| 27776 | 
            +
                          )
         | 
| 27777 | 
            +
                        );
         | 
| 27778 | 
            +
                        jsonCreatePoliciesStatements.push(
         | 
| 27779 | 
            +
                          ...prepareCreatePolicyJsons(
         | 
| 27780 | 
            +
                            it.name,
         | 
| 27781 | 
            +
                            it.schema,
         | 
| 27782 | 
            +
                            [newPolicy]
         | 
| 27783 | 
            +
                          )
         | 
| 27784 | 
            +
                        );
         | 
| 27785 | 
            +
                        return;
         | 
| 27786 | 
            +
                      }
         | 
| 27787 | 
            +
                      if (newPolicy.for !== oldPolicy.for) {
         | 
| 27788 | 
            +
                        jsonDropPoliciesStatements.push(
         | 
| 27789 | 
            +
                          ...prepareDropPolicyJsons(
         | 
| 27790 | 
            +
                            it.name,
         | 
| 27791 | 
            +
                            it.schema,
         | 
| 27792 | 
            +
                            [oldPolicy]
         | 
| 27793 | 
            +
                          )
         | 
| 27794 | 
            +
                        );
         | 
| 27795 | 
            +
                        jsonCreatePoliciesStatements.push(
         | 
| 27796 | 
            +
                          ...prepareCreatePolicyJsons(
         | 
| 27797 | 
            +
                            it.name,
         | 
| 27798 | 
            +
                            it.schema,
         | 
| 27799 | 
            +
                            [newPolicy]
         | 
| 27800 | 
            +
                          )
         | 
| 27801 | 
            +
                        );
         | 
| 27802 | 
            +
                        return;
         | 
| 27803 | 
            +
                      }
         | 
| 27804 | 
            +
                      jsonAlterPoliciesStatements.push(
         | 
| 27805 | 
            +
                        prepareAlterPolicyJson(
         | 
| 27806 | 
            +
                          it.name,
         | 
| 27807 | 
            +
                          it.schema,
         | 
| 27808 | 
            +
                          it.alteredPolicies[policyName].__old,
         | 
| 27809 | 
            +
                          it.alteredPolicies[policyName].__new
         | 
| 27810 | 
            +
                        )
         | 
| 27811 | 
            +
                      );
         | 
| 27812 | 
            +
                    });
         | 
| 27813 | 
            +
                    for (const table4 of Object.values(json2.tables)) {
         | 
| 27814 | 
            +
                      const policiesInCurrentState = Object.keys(table4.policies);
         | 
| 27815 | 
            +
                      const tableInPreviousState = columnsPatchedSnap1.tables[`${table4.schema === "" ? "public" : table4.schema}.${table4.name}`];
         | 
| 27816 | 
            +
                      const policiesInPreviousState = tableInPreviousState ? Object.keys(tableInPreviousState.policies) : [];
         | 
| 27817 | 
            +
                      if (policiesInPreviousState.length === 0 && policiesInCurrentState.length > 0) {
         | 
| 27818 | 
            +
                        jsonEnableRLSStatements.push({ type: "enable_rls", tableName: table4.name, schema: table4.schema });
         | 
| 27819 | 
            +
                      }
         | 
| 27820 | 
            +
                      if (policiesInPreviousState.length > 0 && policiesInCurrentState.length === 0) {
         | 
| 27821 | 
            +
                        jsonDisableRLSStatements.push({ type: "disable_rls", tableName: table4.name, schema: table4.schema });
         | 
| 27822 | 
            +
                      }
         | 
| 27823 | 
            +
                    }
         | 
| 27824 | 
            +
                    for (const table4 of Object.values(columnsPatchedSnap1.tables)) {
         | 
| 27825 | 
            +
                      const tableInCurrentState = json2.tables[`${table4.schema === "" ? "public" : table4.schema}.${table4.name}`];
         | 
| 27826 | 
            +
                      if (tableInCurrentState === void 0) {
         | 
| 27827 | 
            +
                        jsonDisableRLSStatements.push({ type: "disable_rls", tableName: table4.name, schema: table4.schema });
         | 
| 27828 | 
            +
                      }
         | 
| 27829 | 
            +
                    }
         | 
| 27985 27830 | 
             
                    const droppedIndexes = Object.keys(it.alteredIndexes).reduce(
         | 
| 27986 27831 | 
             
                      (current, item) => {
         | 
| 27987 27832 | 
             
                        current[item] = it.alteredIndexes[item].__old;
         | 
| @@ -28066,6 +27911,18 @@ var init_snapshotsDiffer = __esm({ | |
| 28066 27911 | 
             
                  const jsonAlterSequences = typedResult.alteredSequences.map((it) => {
         | 
| 28067 27912 | 
             
                    return prepareAlterSequenceJson(it);
         | 
| 28068 27913 | 
             
                  }).flat() ?? [];
         | 
| 27914 | 
            +
                  const createRoles = createdRoles.map((it) => {
         | 
| 27915 | 
            +
                    return prepareCreateRoleJson(it);
         | 
| 27916 | 
            +
                  }) ?? [];
         | 
| 27917 | 
            +
                  const dropRoles = deletedRoles.map((it) => {
         | 
| 27918 | 
            +
                    return prepareDropRoleJson(it.name);
         | 
| 27919 | 
            +
                  });
         | 
| 27920 | 
            +
                  const renameRoles = renamedRoles.map((it) => {
         | 
| 27921 | 
            +
                    return prepareRenameRoleJson(it.from.name, it.to.name);
         | 
| 27922 | 
            +
                  });
         | 
| 27923 | 
            +
                  const jsonAlterRoles = typedResult.alteredRoles.map((it) => {
         | 
| 27924 | 
            +
                    return prepareAlterRoleJson(it);
         | 
| 27925 | 
            +
                  }).flat() ?? [];
         | 
| 28069 27926 | 
             
                  const createSchemas = prepareCreateSchemasJson(
         | 
| 28070 27927 | 
             
                    createdSchemas.map((it) => it.name)
         | 
| 28071 27928 | 
             
                  );
         | 
| @@ -28078,137 +27935,11 @@ var init_snapshotsDiffer = __esm({ | |
| 28078 27935 | 
             
                  const createTables = createdTables.map((it) => {
         | 
| 28079 27936 | 
             
                    return preparePgCreateTableJson(it, curFull);
         | 
| 28080 27937 | 
             
                  });
         | 
| 28081 | 
            -
                   | 
| 28082 | 
            -
             | 
| 28083 | 
            -
             | 
| 28084 | 
            -
             | 
| 28085 | 
            -
                   | 
| 28086 | 
            -
                    ...createdViews.filter((it) => !it.isExisting).map((it) => {
         | 
| 28087 | 
            -
                      return preparePgCreateViewJson(
         | 
| 28088 | 
            -
                        it.name,
         | 
| 28089 | 
            -
                        it.schema,
         | 
| 28090 | 
            -
                        it.definition,
         | 
| 28091 | 
            -
                        it.materialized,
         | 
| 28092 | 
            -
                        it.withNoData,
         | 
| 28093 | 
            -
                        it.with,
         | 
| 28094 | 
            -
                        it.using,
         | 
| 28095 | 
            -
                        it.tablespace
         | 
| 28096 | 
            -
                      );
         | 
| 28097 | 
            -
                    })
         | 
| 28098 | 
            -
                  );
         | 
| 28099 | 
            -
                  dropViews.push(
         | 
| 28100 | 
            -
                    ...deletedViews.filter((it) => !it.isExisting).map((it) => {
         | 
| 28101 | 
            -
                      return preparePgDropViewJson(it.name, it.schema, it.materialized);
         | 
| 28102 | 
            -
                    })
         | 
| 28103 | 
            -
                  );
         | 
| 28104 | 
            -
                  renameViews.push(
         | 
| 28105 | 
            -
                    ...renamedViews.filter((it) => !it.to.isExisting).map((it) => {
         | 
| 28106 | 
            -
                      return preparePgRenameViewJson(it.to.name, it.from.name, it.to.schema, it.to.materialized);
         | 
| 28107 | 
            -
                    })
         | 
| 28108 | 
            -
                  );
         | 
| 28109 | 
            -
                  alterViews.push(
         | 
| 28110 | 
            -
                    ...movedViews.filter((it) => !json2.views[`${it.schemaTo}.${it.name}`].isExisting).map((it) => {
         | 
| 28111 | 
            -
                      return preparePgAlterViewAlterSchemaJson(
         | 
| 28112 | 
            -
                        it.schemaTo,
         | 
| 28113 | 
            -
                        it.schemaFrom,
         | 
| 28114 | 
            -
                        it.name,
         | 
| 28115 | 
            -
                        json2.views[`${it.schemaTo}.${it.name}`].materialized
         | 
| 28116 | 
            -
                      );
         | 
| 28117 | 
            -
                    })
         | 
| 28118 | 
            -
                  );
         | 
| 28119 | 
            -
                  const alteredViews = typedResult.alteredViews.filter((it) => !json2.views[`${it.schema}.${it.name}`].isExisting);
         | 
| 28120 | 
            -
                  for (const alteredView of alteredViews) {
         | 
| 28121 | 
            -
                    const viewKey = `${alteredView.schema}.${alteredView.name}`;
         | 
| 28122 | 
            -
                    const { materialized, with: withOption, definition, withNoData, using, tablespace } = json2.views[viewKey];
         | 
| 28123 | 
            -
                    if (alteredView.alteredExisting || alteredView.alteredDefinition && action !== "push") {
         | 
| 28124 | 
            -
                      dropViews.push(preparePgDropViewJson(alteredView.name, alteredView.schema, materialized));
         | 
| 28125 | 
            -
                      createViews.push(
         | 
| 28126 | 
            -
                        preparePgCreateViewJson(
         | 
| 28127 | 
            -
                          alteredView.name,
         | 
| 28128 | 
            -
                          alteredView.schema,
         | 
| 28129 | 
            -
                          definition,
         | 
| 28130 | 
            -
                          materialized,
         | 
| 28131 | 
            -
                          withNoData,
         | 
| 28132 | 
            -
                          withOption,
         | 
| 28133 | 
            -
                          using,
         | 
| 28134 | 
            -
                          tablespace
         | 
| 28135 | 
            -
                        )
         | 
| 28136 | 
            -
                      );
         | 
| 28137 | 
            -
                      continue;
         | 
| 28138 | 
            -
                    }
         | 
| 28139 | 
            -
                    if (alteredView.addedWithOption) {
         | 
| 28140 | 
            -
                      alterViews.push(
         | 
| 28141 | 
            -
                        preparePgAlterViewAddWithOptionJson(
         | 
| 28142 | 
            -
                          alteredView.name,
         | 
| 28143 | 
            -
                          alteredView.schema,
         | 
| 28144 | 
            -
                          materialized,
         | 
| 28145 | 
            -
                          alteredView.addedWithOption
         | 
| 28146 | 
            -
                        )
         | 
| 28147 | 
            -
                      );
         | 
| 28148 | 
            -
                    }
         | 
| 28149 | 
            -
                    if (alteredView.deletedWithOption) {
         | 
| 28150 | 
            -
                      alterViews.push(
         | 
| 28151 | 
            -
                        preparePgAlterViewDropWithOptionJson(
         | 
| 28152 | 
            -
                          alteredView.name,
         | 
| 28153 | 
            -
                          alteredView.schema,
         | 
| 28154 | 
            -
                          materialized,
         | 
| 28155 | 
            -
                          alteredView.deletedWithOption
         | 
| 28156 | 
            -
                        )
         | 
| 28157 | 
            -
                      );
         | 
| 28158 | 
            -
                    }
         | 
| 28159 | 
            -
                    if (alteredView.alteredWith) {
         | 
| 28160 | 
            -
                      if (alteredView.alteredWith.addedWith) {
         | 
| 28161 | 
            -
                        alterViews.push(
         | 
| 28162 | 
            -
                          preparePgAlterViewAddWithOptionJson(
         | 
| 28163 | 
            -
                            alteredView.name,
         | 
| 28164 | 
            -
                            alteredView.schema,
         | 
| 28165 | 
            -
                            materialized,
         | 
| 28166 | 
            -
                            alteredView.alteredWith.addedWith
         | 
| 28167 | 
            -
                          )
         | 
| 28168 | 
            -
                        );
         | 
| 28169 | 
            -
                      }
         | 
| 28170 | 
            -
                      if (alteredView.alteredWith.deletedWith) {
         | 
| 28171 | 
            -
                        alterViews.push(
         | 
| 28172 | 
            -
                          preparePgAlterViewDropWithOptionJson(
         | 
| 28173 | 
            -
                            alteredView.name,
         | 
| 28174 | 
            -
                            alteredView.schema,
         | 
| 28175 | 
            -
                            materialized,
         | 
| 28176 | 
            -
                            alteredView.alteredWith.deletedWith
         | 
| 28177 | 
            -
                          )
         | 
| 28178 | 
            -
                        );
         | 
| 28179 | 
            -
                      }
         | 
| 28180 | 
            -
                      if (alteredView.alteredWith.alterWith) {
         | 
| 28181 | 
            -
                        alterViews.push(
         | 
| 28182 | 
            -
                          preparePgAlterViewAddWithOptionJson(
         | 
| 28183 | 
            -
                            alteredView.name,
         | 
| 28184 | 
            -
                            alteredView.schema,
         | 
| 28185 | 
            -
                            materialized,
         | 
| 28186 | 
            -
                            alteredView.alteredWith.alterWith
         | 
| 28187 | 
            -
                          )
         | 
| 28188 | 
            -
                        );
         | 
| 28189 | 
            -
                      }
         | 
| 28190 | 
            -
                    }
         | 
| 28191 | 
            -
                    if (alteredView.alteredTablespace) {
         | 
| 28192 | 
            -
                      alterViews.push(
         | 
| 28193 | 
            -
                        preparePgAlterViewAlterTablespaceJson(
         | 
| 28194 | 
            -
                          alteredView.name,
         | 
| 28195 | 
            -
                          alteredView.schema,
         | 
| 28196 | 
            -
                          materialized,
         | 
| 28197 | 
            -
                          alteredView.alteredTablespace.__new
         | 
| 28198 | 
            -
                        )
         | 
| 28199 | 
            -
                      );
         | 
| 28200 | 
            -
                    }
         | 
| 28201 | 
            -
                    if (alteredView.alteredUsing) {
         | 
| 28202 | 
            -
                      alterViews.push(
         | 
| 28203 | 
            -
                        preparePgAlterViewAlterUsingJson(
         | 
| 28204 | 
            -
                          alteredView.name,
         | 
| 28205 | 
            -
                          alteredView.schema,
         | 
| 28206 | 
            -
                          materialized,
         | 
| 28207 | 
            -
                          alteredView.alteredUsing.__new
         | 
| 28208 | 
            -
                        )
         | 
| 28209 | 
            -
                      );
         | 
| 28210 | 
            -
                    }
         | 
| 28211 | 
            -
                  }
         | 
| 27938 | 
            +
                  jsonCreatePoliciesStatements.push(...[].concat(
         | 
| 27939 | 
            +
                    ...createdTables.map(
         | 
| 27940 | 
            +
                      (it) => prepareCreatePolicyJsons(it.name, it.schema, Object.values(it.policies).map(PgSquasher.unsquashPolicy))
         | 
| 27941 | 
            +
                    )
         | 
| 27942 | 
            +
                  ));
         | 
| 28212 27943 | 
             
                  jsonStatements.push(...createSchemas);
         | 
| 28213 27944 | 
             
                  jsonStatements.push(...renameSchemas);
         | 
| 28214 27945 | 
             
                  jsonStatements.push(...createEnums);
         | 
| @@ -28219,10 +27950,13 @@ var init_snapshotsDiffer = __esm({ | |
| 28219 27950 | 
             
                  jsonStatements.push(...moveSequences);
         | 
| 28220 27951 | 
             
                  jsonStatements.push(...renameSequences);
         | 
| 28221 27952 | 
             
                  jsonStatements.push(...jsonAlterSequences);
         | 
| 27953 | 
            +
                  jsonStatements.push(...renameRoles);
         | 
| 27954 | 
            +
                  jsonStatements.push(...dropRoles);
         | 
| 27955 | 
            +
                  jsonStatements.push(...createRoles);
         | 
| 27956 | 
            +
                  jsonStatements.push(...jsonAlterRoles);
         | 
| 28222 27957 | 
             
                  jsonStatements.push(...createTables);
         | 
| 28223 | 
            -
                  jsonStatements.push(... | 
| 28224 | 
            -
                  jsonStatements.push(... | 
| 28225 | 
            -
                  jsonStatements.push(...alterViews);
         | 
| 27958 | 
            +
                  jsonStatements.push(...jsonEnableRLSStatements);
         | 
| 27959 | 
            +
                  jsonStatements.push(...jsonDisableRLSStatements);
         | 
| 28226 27960 | 
             
                  jsonStatements.push(...jsonDropTables);
         | 
| 28227 27961 | 
             
                  jsonStatements.push(...jsonSetTableSchemas);
         | 
| 28228 27962 | 
             
                  jsonStatements.push(...jsonRenameTables);
         | 
| @@ -28242,7 +27976,10 @@ var init_snapshotsDiffer = __esm({ | |
| 28242 27976 | 
             
                  jsonStatements.push(...jsonAlteredCompositePKs);
         | 
| 28243 27977 | 
             
                  jsonStatements.push(...jsonAddedUniqueConstraints);
         | 
| 28244 27978 | 
             
                  jsonStatements.push(...jsonAlteredUniqueConstraints);
         | 
| 28245 | 
            -
                  jsonStatements.push(... | 
| 27979 | 
            +
                  jsonStatements.push(...jsonRenamePoliciesStatements);
         | 
| 27980 | 
            +
                  jsonStatements.push(...jsonDropPoliciesStatements);
         | 
| 27981 | 
            +
                  jsonStatements.push(...jsonCreatePoliciesStatements);
         | 
| 27982 | 
            +
                  jsonStatements.push(...jsonAlterPoliciesStatements);
         | 
| 28246 27983 | 
             
                  jsonStatements.push(...dropEnums);
         | 
| 28247 27984 | 
             
                  jsonStatements.push(...dropSequences);
         | 
| 28248 27985 | 
             
                  jsonStatements.push(...dropSchemas);
         | 
| @@ -30506,6 +30243,7 @@ __export(migrate_exports, { | |
| 30506 30243 | 
             
              columnsResolver: () => columnsResolver,
         | 
| 30507 30244 | 
             
              embeddedMigrations: () => embeddedMigrations,
         | 
| 30508 30245 | 
             
              enumsResolver: () => enumsResolver,
         | 
| 30246 | 
            +
              policyResolver: () => policyResolver,
         | 
| 30509 30247 | 
             
              prepareAndMigrateLibSQL: () => prepareAndMigrateLibSQL,
         | 
| 30510 30248 | 
             
              prepareAndMigrateMysql: () => prepareAndMigrateMysql,
         | 
| 30511 30249 | 
             
              prepareAndMigratePg: () => prepareAndMigratePg,
         | 
| @@ -30516,15 +30254,16 @@ __export(migrate_exports, { | |
| 30516 30254 | 
             
              prepareSQLitePush: () => prepareSQLitePush,
         | 
| 30517 30255 | 
             
              prepareSnapshotFolderName: () => prepareSnapshotFolderName,
         | 
| 30518 30256 | 
             
              promptColumnsConflicts: () => promptColumnsConflicts,
         | 
| 30257 | 
            +
              promptNamedConflict: () => promptNamedConflict,
         | 
| 30519 30258 | 
             
              promptNamedWithSchemasConflict: () => promptNamedWithSchemasConflict,
         | 
| 30520 30259 | 
             
              promptSchemasConflict: () => promptSchemasConflict,
         | 
| 30260 | 
            +
              roleResolver: () => roleResolver,
         | 
| 30521 30261 | 
             
              schemasResolver: () => schemasResolver,
         | 
| 30522 30262 | 
             
              sequencesResolver: () => sequencesResolver,
         | 
| 30523 30263 | 
             
              tablesResolver: () => tablesResolver,
         | 
| 30524 | 
            -
              viewsResolver: () => viewsResolver,
         | 
| 30525 30264 | 
             
              writeResult: () => writeResult
         | 
| 30526 30265 | 
             
            });
         | 
| 30527 | 
            -
            var import_fs5, import_hanji3, import_path4, schemasResolver, tablesResolver,  | 
| 30266 | 
            +
            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;
         | 
| 30528 30267 | 
             
            var init_migrate = __esm({
         | 
| 30529 30268 | 
             
              "src/cli/commands/migrate.ts"() {
         | 
| 30530 30269 | 
             
                "use strict";
         | 
| @@ -30571,24 +30310,6 @@ var init_migrate = __esm({ | |
| 30571 30310 | 
             
                    throw e2;
         | 
| 30572 30311 | 
             
                  }
         | 
| 30573 30312 | 
             
                };
         | 
| 30574 | 
            -
                viewsResolver = async (input) => {
         | 
| 30575 | 
            -
                  try {
         | 
| 30576 | 
            -
                    const { created, deleted, moved, renamed } = await promptNamedWithSchemasConflict(
         | 
| 30577 | 
            -
                      input.created,
         | 
| 30578 | 
            -
                      input.deleted,
         | 
| 30579 | 
            -
                      "view"
         | 
| 30580 | 
            -
                    );
         | 
| 30581 | 
            -
                    return {
         | 
| 30582 | 
            -
                      created,
         | 
| 30583 | 
            -
                      deleted,
         | 
| 30584 | 
            -
                      moved,
         | 
| 30585 | 
            -
                      renamed
         | 
| 30586 | 
            -
                    };
         | 
| 30587 | 
            -
                  } catch (e2) {
         | 
| 30588 | 
            -
                    console.error(e2);
         | 
| 30589 | 
            -
                    throw e2;
         | 
| 30590 | 
            -
                  }
         | 
| 30591 | 
            -
                };
         | 
| 30592 30313 | 
             
                sequencesResolver = async (input) => {
         | 
| 30593 30314 | 
             
                  try {
         | 
| 30594 30315 | 
             
                    const { created, deleted, moved, renamed } = await promptNamedWithSchemasConflict(
         | 
| @@ -30607,6 +30328,32 @@ var init_migrate = __esm({ | |
| 30607 30328 | 
             
                    throw e2;
         | 
| 30608 30329 | 
             
                  }
         | 
| 30609 30330 | 
             
                };
         | 
| 30331 | 
            +
                roleResolver = async (input) => {
         | 
| 30332 | 
            +
                  const result = await promptNamedConflict(
         | 
| 30333 | 
            +
                    input.created,
         | 
| 30334 | 
            +
                    input.deleted,
         | 
| 30335 | 
            +
                    "role"
         | 
| 30336 | 
            +
                  );
         | 
| 30337 | 
            +
                  return {
         | 
| 30338 | 
            +
                    created: result.created,
         | 
| 30339 | 
            +
                    deleted: result.deleted,
         | 
| 30340 | 
            +
                    renamed: result.renamed
         | 
| 30341 | 
            +
                  };
         | 
| 30342 | 
            +
                };
         | 
| 30343 | 
            +
                policyResolver = async (input) => {
         | 
| 30344 | 
            +
                  const result = await promptColumnsConflicts(
         | 
| 30345 | 
            +
                    input.tableName,
         | 
| 30346 | 
            +
                    input.created,
         | 
| 30347 | 
            +
                    input.deleted
         | 
| 30348 | 
            +
                  );
         | 
| 30349 | 
            +
                  return {
         | 
| 30350 | 
            +
                    tableName: input.tableName,
         | 
| 30351 | 
            +
                    schema: input.schema,
         | 
| 30352 | 
            +
                    created: result.created,
         | 
| 30353 | 
            +
                    deleted: result.deleted,
         | 
| 30354 | 
            +
                    renamed: result.renamed
         | 
| 30355 | 
            +
                  };
         | 
| 30356 | 
            +
                };
         | 
| 30610 30357 | 
             
                enumsResolver = async (input) => {
         | 
| 30611 30358 | 
             
                  try {
         | 
| 30612 30359 | 
             
                    const { created, deleted, moved, renamed } = await promptNamedWithSchemasConflict(
         | 
| @@ -30675,9 +30422,10 @@ var init_migrate = __esm({ | |
| 30675 30422 | 
             
                      schemasResolver,
         | 
| 30676 30423 | 
             
                      enumsResolver,
         | 
| 30677 30424 | 
             
                      sequencesResolver,
         | 
| 30425 | 
            +
                      policyResolver,
         | 
| 30426 | 
            +
                      roleResolver,
         | 
| 30678 30427 | 
             
                      tablesResolver,
         | 
| 30679 30428 | 
             
                      columnsResolver,
         | 
| 30680 | 
            -
                      viewsResolver,
         | 
| 30681 30429 | 
             
                      validatedPrev,
         | 
| 30682 30430 | 
             
                      validatedCur
         | 
| 30683 30431 | 
             
                    );
         | 
| @@ -30710,9 +30458,10 @@ var init_migrate = __esm({ | |
| 30710 30458 | 
             
                    schemasResolver,
         | 
| 30711 30459 | 
             
                    enumsResolver,
         | 
| 30712 30460 | 
             
                    sequencesResolver,
         | 
| 30461 | 
            +
                    policyResolver,
         | 
| 30462 | 
            +
                    roleResolver,
         | 
| 30713 30463 | 
             
                    tablesResolver,
         | 
| 30714 30464 | 
             
                    columnsResolver,
         | 
| 30715 | 
            -
                    viewsResolver,
         | 
| 30716 30465 | 
             
                    validatedPrev,
         | 
| 30717 30466 | 
             
                    validatedCur,
         | 
| 30718 30467 | 
             
                    "push"
         | 
| @@ -30991,6 +30740,56 @@ var init_migrate = __esm({ | |
| 30991 30740 | 
             
                  result.deleted.push(...leftMissing);
         | 
| 30992 30741 | 
             
                  return result;
         | 
| 30993 30742 | 
             
                };
         | 
| 30743 | 
            +
                promptNamedConflict = async (newItems, missingItems, entity) => {
         | 
| 30744 | 
            +
                  if (missingItems.length === 0 || newItems.length === 0) {
         | 
| 30745 | 
            +
                    return {
         | 
| 30746 | 
            +
                      created: newItems,
         | 
| 30747 | 
            +
                      renamed: [],
         | 
| 30748 | 
            +
                      deleted: missingItems
         | 
| 30749 | 
            +
                    };
         | 
| 30750 | 
            +
                  }
         | 
| 30751 | 
            +
                  const result = { created: [], renamed: [], deleted: [] };
         | 
| 30752 | 
            +
                  let index4 = 0;
         | 
| 30753 | 
            +
                  let leftMissing = [...missingItems];
         | 
| 30754 | 
            +
                  do {
         | 
| 30755 | 
            +
                    const created = newItems[index4];
         | 
| 30756 | 
            +
                    const renames = leftMissing.map((it) => {
         | 
| 30757 | 
            +
                      return { from: it, to: created };
         | 
| 30758 | 
            +
                    });
         | 
| 30759 | 
            +
                    const promptData = [created, ...renames];
         | 
| 30760 | 
            +
                    const { status, data } = await (0, import_hanji3.render)(
         | 
| 30761 | 
            +
                      new ResolveSelectNamed(created, promptData, entity)
         | 
| 30762 | 
            +
                    );
         | 
| 30763 | 
            +
                    if (status === "aborted") {
         | 
| 30764 | 
            +
                      console.error("ERROR");
         | 
| 30765 | 
            +
                      process.exit(1);
         | 
| 30766 | 
            +
                    }
         | 
| 30767 | 
            +
                    if (isRenamePromptItem(data)) {
         | 
| 30768 | 
            +
                      console.log(
         | 
| 30769 | 
            +
                        `${source_default.yellow("~")} ${data.from.name} \u203A ${data.to.name} ${source_default.gray(
         | 
| 30770 | 
            +
                          `${entity} will be renamed/moved`
         | 
| 30771 | 
            +
                        )}`
         | 
| 30772 | 
            +
                      );
         | 
| 30773 | 
            +
                      if (data.from.name !== data.to.name) {
         | 
| 30774 | 
            +
                        result.renamed.push(data);
         | 
| 30775 | 
            +
                      }
         | 
| 30776 | 
            +
                      delete leftMissing[leftMissing.indexOf(data.from)];
         | 
| 30777 | 
            +
                      leftMissing = leftMissing.filter(Boolean);
         | 
| 30778 | 
            +
                    } else {
         | 
| 30779 | 
            +
                      console.log(
         | 
| 30780 | 
            +
                        `${source_default.green("+")} ${data.name} ${source_default.gray(
         | 
| 30781 | 
            +
                          `${entity} will be created`
         | 
| 30782 | 
            +
                        )}`
         | 
| 30783 | 
            +
                      );
         | 
| 30784 | 
            +
                      result.created.push(created);
         | 
| 30785 | 
            +
                    }
         | 
| 30786 | 
            +
                    index4 += 1;
         | 
| 30787 | 
            +
                  } while (index4 < newItems.length);
         | 
| 30788 | 
            +
                  console.log(source_default.gray(`--- all ${entity} conflicts resolved ---
         | 
| 30789 | 
            +
            `));
         | 
| 30790 | 
            +
                  result.deleted.push(...leftMissing);
         | 
| 30791 | 
            +
                  return result;
         | 
| 30792 | 
            +
                };
         | 
| 30994 30793 | 
             
                promptNamedWithSchemasConflict = async (newItems, missingItems, entity) => {
         | 
| 30995 30794 | 
             
                  if (missingItems.length === 0 || newItems.length === 0) {
         | 
| 30996 30795 | 
             
                    return {
         | 
| @@ -35534,20 +35333,20 @@ var require_ponyfill_es2018 = __commonJS({ | |
| 35534 35333 | 
             
                        ;
         | 
| 35535 35334 | 
             
                      ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);
         | 
| 35536 35335 | 
             
                    }
         | 
| 35537 | 
            -
                    respondWithNewView( | 
| 35336 | 
            +
                    respondWithNewView(view) {
         | 
| 35538 35337 | 
             
                      if (!IsReadableStreamBYOBRequest(this)) {
         | 
| 35539 35338 | 
             
                        throw byobRequestBrandCheckException("respondWithNewView");
         | 
| 35540 35339 | 
             
                      }
         | 
| 35541 | 
            -
                      assertRequiredArgument( | 
| 35542 | 
            -
                      if (!ArrayBuffer.isView( | 
| 35340 | 
            +
                      assertRequiredArgument(view, 1, "respondWithNewView");
         | 
| 35341 | 
            +
                      if (!ArrayBuffer.isView(view)) {
         | 
| 35543 35342 | 
             
                        throw new TypeError("You can only respond with array buffer views");
         | 
| 35544 35343 | 
             
                      }
         | 
| 35545 35344 | 
             
                      if (this._associatedReadableByteStreamController === void 0) {
         | 
| 35546 35345 | 
             
                        throw new TypeError("This BYOB request has been invalidated");
         | 
| 35547 35346 | 
             
                      }
         | 
| 35548 | 
            -
                      if (IsDetachedBuffer( | 
| 35347 | 
            +
                      if (IsDetachedBuffer(view.buffer))
         | 
| 35549 35348 | 
             
                        ;
         | 
| 35550 | 
            -
                      ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController,  | 
| 35349 | 
            +
                      ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);
         | 
| 35551 35350 | 
             
                    }
         | 
| 35552 35351 | 
             
                  }
         | 
| 35553 35352 | 
             
                  Object.defineProperties(ReadableStreamBYOBRequest.prototype, {
         | 
| @@ -35648,8 +35447,8 @@ var require_ponyfill_es2018 = __commonJS({ | |
| 35648 35447 | 
             
                        const entry = this._queue.shift();
         | 
| 35649 35448 | 
             
                        this._queueTotalSize -= entry.byteLength;
         | 
| 35650 35449 | 
             
                        ReadableByteStreamControllerHandleQueueDrain(this);
         | 
| 35651 | 
            -
                        const  | 
| 35652 | 
            -
                        readRequest._chunkSteps( | 
| 35450 | 
            +
                        const view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);
         | 
| 35451 | 
            +
                        readRequest._chunkSteps(view);
         | 
| 35653 35452 | 
             
                        return;
         | 
| 35654 35453 | 
             
                      }
         | 
| 35655 35454 | 
             
                      const autoAllocateChunkSize = this._autoAllocateChunkSize;
         | 
| @@ -35815,19 +35614,19 @@ var require_ponyfill_es2018 = __commonJS({ | |
| 35815 35614 | 
             
                      }
         | 
| 35816 35615 | 
             
                    }
         | 
| 35817 35616 | 
             
                  }
         | 
| 35818 | 
            -
                  function ReadableByteStreamControllerPullInto(controller,  | 
| 35617 | 
            +
                  function ReadableByteStreamControllerPullInto(controller, view, readIntoRequest) {
         | 
| 35819 35618 | 
             
                    const stream = controller._controlledReadableByteStream;
         | 
| 35820 35619 | 
             
                    let elementSize = 1;
         | 
| 35821 | 
            -
                    if ( | 
| 35822 | 
            -
                      elementSize =  | 
| 35620 | 
            +
                    if (view.constructor !== DataView) {
         | 
| 35621 | 
            +
                      elementSize = view.constructor.BYTES_PER_ELEMENT;
         | 
| 35823 35622 | 
             
                    }
         | 
| 35824 | 
            -
                    const ctor =  | 
| 35825 | 
            -
                    const buffer = TransferArrayBuffer( | 
| 35623 | 
            +
                    const ctor = view.constructor;
         | 
| 35624 | 
            +
                    const buffer = TransferArrayBuffer(view.buffer);
         | 
| 35826 35625 | 
             
                    const pullIntoDescriptor = {
         | 
| 35827 35626 | 
             
                      buffer,
         | 
| 35828 35627 | 
             
                      bufferByteLength: buffer.byteLength,
         | 
| 35829 | 
            -
                      byteOffset:  | 
| 35830 | 
            -
                      byteLength:  | 
| 35628 | 
            +
                      byteOffset: view.byteOffset,
         | 
| 35629 | 
            +
                      byteLength: view.byteLength,
         | 
| 35831 35630 | 
             
                      bytesFilled: 0,
         | 
| 35832 35631 | 
             
                      elementSize,
         | 
| 35833 35632 | 
             
                      viewConstructor: ctor,
         | 
| @@ -35995,9 +35794,9 @@ var require_ponyfill_es2018 = __commonJS({ | |
| 35995 35794 | 
             
                  function ReadableByteStreamControllerGetBYOBRequest(controller) {
         | 
| 35996 35795 | 
             
                    if (controller._byobRequest === null && controller._pendingPullIntos.length > 0) {
         | 
| 35997 35796 | 
             
                      const firstDescriptor = controller._pendingPullIntos.peek();
         | 
| 35998 | 
            -
                      const  | 
| 35797 | 
            +
                      const view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);
         | 
| 35999 35798 | 
             
                      const byobRequest = Object.create(ReadableStreamBYOBRequest.prototype);
         | 
| 36000 | 
            -
                      SetUpReadableStreamBYOBRequest(byobRequest, controller,  | 
| 35799 | 
            +
                      SetUpReadableStreamBYOBRequest(byobRequest, controller, view);
         | 
| 36001 35800 | 
             
                      controller._byobRequest = byobRequest;
         | 
| 36002 35801 | 
             
                    }
         | 
| 36003 35802 | 
             
                    return controller._byobRequest;
         | 
| @@ -36030,29 +35829,29 @@ var require_ponyfill_es2018 = __commonJS({ | |
| 36030 35829 | 
             
                    firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);
         | 
| 36031 35830 | 
             
                    ReadableByteStreamControllerRespondInternal(controller, bytesWritten);
         | 
| 36032 35831 | 
             
                  }
         | 
| 36033 | 
            -
                  function ReadableByteStreamControllerRespondWithNewView(controller,  | 
| 35832 | 
            +
                  function ReadableByteStreamControllerRespondWithNewView(controller, view) {
         | 
| 36034 35833 | 
             
                    const firstDescriptor = controller._pendingPullIntos.peek();
         | 
| 36035 35834 | 
             
                    const state = controller._controlledReadableByteStream._state;
         | 
| 36036 35835 | 
             
                    if (state === "closed") {
         | 
| 36037 | 
            -
                      if ( | 
| 35836 | 
            +
                      if (view.byteLength !== 0) {
         | 
| 36038 35837 | 
             
                        throw new TypeError("The view's length must be 0 when calling respondWithNewView() on a closed stream");
         | 
| 36039 35838 | 
             
                      }
         | 
| 36040 35839 | 
             
                    } else {
         | 
| 36041 | 
            -
                      if ( | 
| 35840 | 
            +
                      if (view.byteLength === 0) {
         | 
| 36042 35841 | 
             
                        throw new TypeError("The view's length must be greater than 0 when calling respondWithNewView() on a readable stream");
         | 
| 36043 35842 | 
             
                      }
         | 
| 36044 35843 | 
             
                    }
         | 
| 36045 | 
            -
                    if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !==  | 
| 35844 | 
            +
                    if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {
         | 
| 36046 35845 | 
             
                      throw new RangeError("The region specified by view does not match byobRequest");
         | 
| 36047 35846 | 
             
                    }
         | 
| 36048 | 
            -
                    if (firstDescriptor.bufferByteLength !==  | 
| 35847 | 
            +
                    if (firstDescriptor.bufferByteLength !== view.buffer.byteLength) {
         | 
| 36049 35848 | 
             
                      throw new RangeError("The buffer of view has different capacity than byobRequest");
         | 
| 36050 35849 | 
             
                    }
         | 
| 36051 | 
            -
                    if (firstDescriptor.bytesFilled +  | 
| 35850 | 
            +
                    if (firstDescriptor.bytesFilled + view.byteLength > firstDescriptor.byteLength) {
         | 
| 36052 35851 | 
             
                      throw new RangeError("The region specified by view is larger than byobRequest");
         | 
| 36053 35852 | 
             
                    }
         | 
| 36054 | 
            -
                    const viewByteLength =  | 
| 36055 | 
            -
                    firstDescriptor.buffer = TransferArrayBuffer( | 
| 35853 | 
            +
                    const viewByteLength = view.byteLength;
         | 
| 35854 | 
            +
                    firstDescriptor.buffer = TransferArrayBuffer(view.buffer);
         | 
| 36056 35855 | 
             
                    ReadableByteStreamControllerRespondInternal(controller, viewByteLength);
         | 
| 36057 35856 | 
             
                  }
         | 
| 36058 35857 | 
             
                  function SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize) {
         | 
| @@ -36098,9 +35897,9 @@ var require_ponyfill_es2018 = __commonJS({ | |
| 36098 35897 | 
             
                    }
         | 
| 36099 35898 | 
             
                    SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize);
         | 
| 36100 35899 | 
             
                  }
         | 
| 36101 | 
            -
                  function SetUpReadableStreamBYOBRequest(request, controller,  | 
| 35900 | 
            +
                  function SetUpReadableStreamBYOBRequest(request, controller, view) {
         | 
| 36102 35901 | 
             
                    request._associatedReadableByteStreamController = controller;
         | 
| 36103 | 
            -
                    request._view =  | 
| 35902 | 
            +
                    request._view = view;
         | 
| 36104 35903 | 
             
                  }
         | 
| 36105 35904 | 
             
                  function byobRequestBrandCheckException(name) {
         | 
| 36106 35905 | 
             
                    return new TypeError(`ReadableStreamBYOBRequest.prototype.${name} can only be used on a ReadableStreamBYOBRequest`);
         | 
| @@ -36176,20 +35975,20 @@ var require_ponyfill_es2018 = __commonJS({ | |
| 36176 35975 | 
             
                     *
         | 
| 36177 35976 | 
             
                     * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source.
         | 
| 36178 35977 | 
             
                     */
         | 
| 36179 | 
            -
                    read( | 
| 35978 | 
            +
                    read(view) {
         | 
| 36180 35979 | 
             
                      if (!IsReadableStreamBYOBReader(this)) {
         | 
| 36181 35980 | 
             
                        return promiseRejectedWith(byobReaderBrandCheckException("read"));
         | 
| 36182 35981 | 
             
                      }
         | 
| 36183 | 
            -
                      if (!ArrayBuffer.isView( | 
| 35982 | 
            +
                      if (!ArrayBuffer.isView(view)) {
         | 
| 36184 35983 | 
             
                        return promiseRejectedWith(new TypeError("view must be an array buffer view"));
         | 
| 36185 35984 | 
             
                      }
         | 
| 36186 | 
            -
                      if ( | 
| 35985 | 
            +
                      if (view.byteLength === 0) {
         | 
| 36187 35986 | 
             
                        return promiseRejectedWith(new TypeError("view must have non-zero byteLength"));
         | 
| 36188 35987 | 
             
                      }
         | 
| 36189 | 
            -
                      if ( | 
| 35988 | 
            +
                      if (view.buffer.byteLength === 0) {
         | 
| 36190 35989 | 
             
                        return promiseRejectedWith(new TypeError(`view's buffer must have non-zero byteLength`));
         | 
| 36191 35990 | 
             
                      }
         | 
| 36192 | 
            -
                      if (IsDetachedBuffer( | 
| 35991 | 
            +
                      if (IsDetachedBuffer(view.buffer))
         | 
| 36193 35992 | 
             
                        ;
         | 
| 36194 35993 | 
             
                      if (this._ownerReadableStream === void 0) {
         | 
| 36195 35994 | 
             
                        return promiseRejectedWith(readerLockException("read from"));
         | 
| @@ -36205,7 +36004,7 @@ var require_ponyfill_es2018 = __commonJS({ | |
| 36205 36004 | 
             
                        _closeSteps: (chunk) => resolvePromise({ value: chunk, done: true }),
         | 
| 36206 36005 | 
             
                        _errorSteps: (e2) => rejectPromise(e2)
         | 
| 36207 36006 | 
             
                      };
         | 
| 36208 | 
            -
                      ReadableStreamBYOBReaderRead(this,  | 
| 36007 | 
            +
                      ReadableStreamBYOBReaderRead(this, view, readIntoRequest);
         | 
| 36209 36008 | 
             
                      return promise;
         | 
| 36210 36009 | 
             
                    }
         | 
| 36211 36010 | 
             
                    /**
         | 
| @@ -36251,13 +36050,13 @@ var require_ponyfill_es2018 = __commonJS({ | |
| 36251 36050 | 
             
                    }
         | 
| 36252 36051 | 
             
                    return x2 instanceof ReadableStreamBYOBReader;
         | 
| 36253 36052 | 
             
                  }
         | 
| 36254 | 
            -
                  function ReadableStreamBYOBReaderRead(reader,  | 
| 36053 | 
            +
                  function ReadableStreamBYOBReaderRead(reader, view, readIntoRequest) {
         | 
| 36255 36054 | 
             
                    const stream = reader._ownerReadableStream;
         | 
| 36256 36055 | 
             
                    stream._disturbed = true;
         | 
| 36257 36056 | 
             
                    if (stream._state === "errored") {
         | 
| 36258 36057 | 
             
                      readIntoRequest._errorSteps(stream._storedError);
         | 
| 36259 36058 | 
             
                    } else {
         | 
| 36260 | 
            -
                      ReadableByteStreamControllerPullInto(stream._readableStreamController,  | 
| 36059 | 
            +
                      ReadableByteStreamControllerPullInto(stream._readableStreamController, view, readIntoRequest);
         | 
| 36261 36060 | 
             
                    }
         | 
| 36262 36061 | 
             
                  }
         | 
| 36263 36062 | 
             
                  function byobReaderBrandCheckException(name) {
         | 
| @@ -37806,7 +37605,7 @@ var require_ponyfill_es2018 = __commonJS({ | |
| 37806 37605 | 
             
                      };
         | 
| 37807 37606 | 
             
                      ReadableStreamDefaultReaderRead(reader, readRequest);
         | 
| 37808 37607 | 
             
                    }
         | 
| 37809 | 
            -
                    function pullWithBYOBReader( | 
| 37608 | 
            +
                    function pullWithBYOBReader(view, forBranch2) {
         | 
| 37810 37609 | 
             
                      if (IsReadableStreamDefaultReader(reader)) {
         | 
| 37811 37610 | 
             
                        ReadableStreamReaderGenericRelease(reader);
         | 
| 37812 37611 | 
             
                        reader = AcquireReadableStreamBYOBReader(stream);
         | 
| @@ -37872,7 +37671,7 @@ var require_ponyfill_es2018 = __commonJS({ | |
| 37872 37671 | 
             
                          reading = false;
         | 
| 37873 37672 | 
             
                        }
         | 
| 37874 37673 | 
             
                      };
         | 
| 37875 | 
            -
                      ReadableStreamBYOBReaderRead(reader,  | 
| 37674 | 
            +
                      ReadableStreamBYOBReaderRead(reader, view, readIntoRequest);
         | 
| 37876 37675 | 
             
                    }
         | 
| 37877 37676 | 
             
                    function pull1Algorithm() {
         | 
| 37878 37677 | 
             
                      if (reading) {
         | 
| @@ -39819,9 +39618,9 @@ var init_body2 = __esm({ | |
| 39819 39618 | 
             
            // ../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/headers.js
         | 
| 39820 39619 | 
             
            function fromRawHeaders(headers = []) {
         | 
| 39821 39620 | 
             
              return new Headers2(
         | 
| 39822 | 
            -
                headers.reduce((result, value, index4,  | 
| 39621 | 
            +
                headers.reduce((result, value, index4, array2) => {
         | 
| 39823 39622 | 
             
                  if (index4 % 2 === 0) {
         | 
| 39824 | 
            -
                    result.push( | 
| 39623 | 
            +
                    result.push(array2.slice(index4, index4 + 2));
         | 
| 39825 39624 | 
             
                  }
         | 
| 39826 39625 | 
             
                  return result;
         | 
| 39827 39626 | 
             
                }, []).filter(([name, value]) => {
         | 
| @@ -40219,7 +40018,7 @@ function determineRequestsReferrer(request, { referrerURLCallback, referrerOrigi | |
| 40219 40018 | 
             
              if (request.referrer === "no-referrer" || request.referrerPolicy === "") {
         | 
| 40220 40019 | 
             
                return null;
         | 
| 40221 40020 | 
             
              }
         | 
| 40222 | 
            -
              const  | 
| 40021 | 
            +
              const policy2 = request.referrerPolicy;
         | 
| 40223 40022 | 
             
              if (request.referrer === "about:client") {
         | 
| 40224 40023 | 
             
                return "no-referrer";
         | 
| 40225 40024 | 
             
              }
         | 
| @@ -40236,7 +40035,7 @@ function determineRequestsReferrer(request, { referrerURLCallback, referrerOrigi | |
| 40236 40035 | 
             
                referrerOrigin = referrerOriginCallback(referrerOrigin);
         | 
| 40237 40036 | 
             
              }
         | 
| 40238 40037 | 
             
              const currentURL = new URL(request.url);
         | 
| 40239 | 
            -
              switch ( | 
| 40038 | 
            +
              switch (policy2) {
         | 
| 40240 40039 | 
             
                case "no-referrer":
         | 
| 40241 40040 | 
             
                  return "no-referrer";
         | 
| 40242 40041 | 
             
                case "origin":
         | 
| @@ -40272,18 +40071,18 @@ function determineRequestsReferrer(request, { referrerURLCallback, referrerOrigi | |
| 40272 40071 | 
             
                  }
         | 
| 40273 40072 | 
             
                  return referrerURL;
         | 
| 40274 40073 | 
             
                default:
         | 
| 40275 | 
            -
                  throw new TypeError(`Invalid referrerPolicy: ${ | 
| 40074 | 
            +
                  throw new TypeError(`Invalid referrerPolicy: ${policy2}`);
         | 
| 40276 40075 | 
             
              }
         | 
| 40277 40076 | 
             
            }
         | 
| 40278 40077 | 
             
            function parseReferrerPolicyFromHeader(headers) {
         | 
| 40279 40078 | 
             
              const policyTokens = (headers.get("referrer-policy") || "").split(/[,\s]+/);
         | 
| 40280 | 
            -
              let  | 
| 40079 | 
            +
              let policy2 = "";
         | 
| 40281 40080 | 
             
              for (const token of policyTokens) {
         | 
| 40282 40081 | 
             
                if (token && ReferrerPolicy.has(token)) {
         | 
| 40283 | 
            -
                   | 
| 40082 | 
            +
                  policy2 = token;
         | 
| 40284 40083 | 
             
                }
         | 
| 40285 40084 | 
             
              }
         | 
| 40286 | 
            -
              return  | 
| 40085 | 
            +
              return policy2;
         | 
| 40287 40086 | 
             
            }
         | 
| 40288 40087 | 
             
            var import_node_net, ReferrerPolicy, DEFAULT_REFERRER_POLICY;
         | 
| 40289 40088 | 
             
            var init_referrer = __esm({
         | 
| @@ -52731,15 +52530,15 @@ var require_dist_cjs36 = __commonJS({ | |
| 52731 52530 | 
             
                      throw new Error("Int64 buffers must be exactly 8 bytes");
         | 
| 52732 52531 | 
             
                    }
         | 
| 52733 52532 | 
             
                  }
         | 
| 52734 | 
            -
                  static fromNumber( | 
| 52735 | 
            -
                    if ( | 
| 52736 | 
            -
                      throw new Error(`${ | 
| 52533 | 
            +
                  static fromNumber(number3) {
         | 
| 52534 | 
            +
                    if (number3 > 9223372036854776e3 || number3 < -9223372036854776e3) {
         | 
| 52535 | 
            +
                      throw new Error(`${number3} is too large (or, if negative, too small) to represent as an Int64`);
         | 
| 52737 52536 | 
             
                    }
         | 
| 52738 52537 | 
             
                    const bytes = new Uint8Array(8);
         | 
| 52739 | 
            -
                    for (let i2 = 7, remaining = Math.abs(Math.round( | 
| 52538 | 
            +
                    for (let i2 = 7, remaining = Math.abs(Math.round(number3)); i2 > -1 && remaining > 0; i2--, remaining /= 256) {
         | 
| 52740 52539 | 
             
                      bytes[i2] = remaining;
         | 
| 52741 52540 | 
             
                    }
         | 
| 52742 | 
            -
                    if ( | 
| 52541 | 
            +
                    if (number3 < 0) {
         | 
| 52743 52542 | 
             
                      negate(bytes);
         | 
| 52744 52543 | 
             
                    }
         | 
| 52745 52544 | 
             
                    return new _Int642(bytes);
         | 
| @@ -60930,7 +60729,7 @@ var require_fromWebToken = __commonJS({ | |
| 60930 60729 | 
             
                var fromWebToken2 = (init2) => async () => {
         | 
| 60931 60730 | 
             
                  var _a;
         | 
| 60932 60731 | 
             
                  (_a = init2.logger) == null ? void 0 : _a.debug("@aws-sdk/credential-provider-web-identity", "fromWebToken");
         | 
| 60933 | 
            -
                  const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init2;
         | 
| 60732 | 
            +
                  const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy: policy2, durationSeconds } = init2;
         | 
| 60934 60733 | 
             
                  let { roleAssumerWithWebIdentity } = init2;
         | 
| 60935 60734 | 
             
                  if (!roleAssumerWithWebIdentity) {
         | 
| 60936 60735 | 
             
                    const { getDefaultRoleAssumerWithWebIdentity } = await Promise.resolve().then(() => __importStar2(require_dist_cjs50()));
         | 
| @@ -60946,7 +60745,7 @@ var require_fromWebToken = __commonJS({ | |
| 60946 60745 | 
             
                    WebIdentityToken: webIdentityToken,
         | 
| 60947 60746 | 
             
                    ProviderId: providerId,
         | 
| 60948 60747 | 
             
                    PolicyArns: policyArns,
         | 
| 60949 | 
            -
                    Policy:  | 
| 60748 | 
            +
                    Policy: policy2,
         | 
| 60950 60749 | 
             
                    DurationSeconds: durationSeconds
         | 
| 60951 60750 | 
             
                  });
         | 
| 60952 60751 | 
             
                };
         | 
| @@ -64170,16 +63969,16 @@ var require_map_stream = __commonJS({ | |
| 64170 63969 | 
             
                  var writeQueue = {};
         | 
| 64171 63970 | 
             
                  stream.writable = true;
         | 
| 64172 63971 | 
             
                  stream.readable = true;
         | 
| 64173 | 
            -
                  function queueData(data,  | 
| 63972 | 
            +
                  function queueData(data, number3) {
         | 
| 64174 63973 | 
             
                    var nextToWrite = lastWritten + 1;
         | 
| 64175 | 
            -
                    if ( | 
| 63974 | 
            +
                    if (number3 === nextToWrite) {
         | 
| 64176 63975 | 
             
                      if (data !== void 0) {
         | 
| 64177 63976 | 
             
                        stream.emit.apply(stream, ["data", data]);
         | 
| 64178 63977 | 
             
                      }
         | 
| 64179 63978 | 
             
                      lastWritten++;
         | 
| 64180 63979 | 
             
                      nextToWrite++;
         | 
| 64181 63980 | 
             
                    } else {
         | 
| 64182 | 
            -
                      writeQueue[ | 
| 63981 | 
            +
                      writeQueue[number3] = data;
         | 
| 64183 63982 | 
             
                    }
         | 
| 64184 63983 | 
             
                    if (writeQueue.hasOwnProperty(nextToWrite)) {
         | 
| 64185 63984 | 
             
                      var dataToWrite = writeQueue[nextToWrite];
         | 
| @@ -64194,21 +63993,21 @@ var require_map_stream = __commonJS({ | |
| 64194 63993 | 
             
                        end();
         | 
| 64195 63994 | 
             
                    }
         | 
| 64196 63995 | 
             
                  }
         | 
| 64197 | 
            -
                  function next(err2, data,  | 
| 63996 | 
            +
                  function next(err2, data, number3) {
         | 
| 64198 63997 | 
             
                    if (destroyed)
         | 
| 64199 63998 | 
             
                      return;
         | 
| 64200 63999 | 
             
                    inNext = true;
         | 
| 64201 64000 | 
             
                    if (!err2 || self2.opts.failures) {
         | 
| 64202 | 
            -
                      queueData(data,  | 
| 64001 | 
            +
                      queueData(data, number3);
         | 
| 64203 64002 | 
             
                    }
         | 
| 64204 64003 | 
             
                    if (err2) {
         | 
| 64205 64004 | 
             
                      stream.emit.apply(stream, [errorEventName, err2]);
         | 
| 64206 64005 | 
             
                    }
         | 
| 64207 64006 | 
             
                    inNext = false;
         | 
| 64208 64007 | 
             
                  }
         | 
| 64209 | 
            -
                  function wrappedMapper(input,  | 
| 64008 | 
            +
                  function wrappedMapper(input, number3, callback) {
         | 
| 64210 64009 | 
             
                    return mapper.call(null, input, function(err2, data) {
         | 
| 64211 | 
            -
                      callback(err2, data,  | 
| 64010 | 
            +
                      callback(err2, data, number3);
         | 
| 64212 64011 | 
             
                    });
         | 
| 64213 64012 | 
             
                  }
         | 
| 64214 64013 | 
             
                  stream.write = function(data) {
         | 
| @@ -64410,13 +64209,13 @@ var require_event_stream = __commonJS({ | |
| 64410 64209 | 
             
                es.writeArray = function(done) {
         | 
| 64411 64210 | 
             
                  if ("function" !== typeof done)
         | 
| 64412 64211 | 
             
                    throw new Error("function writeArray (done): done must be function");
         | 
| 64413 | 
            -
                  var a = new Stream3(),  | 
| 64212 | 
            +
                  var a = new Stream3(), array2 = [], isDone = false;
         | 
| 64414 64213 | 
             
                  a.write = function(l) {
         | 
| 64415 | 
            -
                     | 
| 64214 | 
            +
                    array2.push(l);
         | 
| 64416 64215 | 
             
                  };
         | 
| 64417 64216 | 
             
                  a.end = function() {
         | 
| 64418 64217 | 
             
                    isDone = true;
         | 
| 64419 | 
            -
                    done(null,  | 
| 64218 | 
            +
                    done(null, array2);
         | 
| 64420 64219 | 
             
                  };
         | 
| 64421 64220 | 
             
                  a.writable = true;
         | 
| 64422 64221 | 
             
                  a.readable = false;
         | 
| @@ -64424,23 +64223,23 @@ var require_event_stream = __commonJS({ | |
| 64424 64223 | 
             
                    a.writable = a.readable = false;
         | 
| 64425 64224 | 
             
                    if (isDone)
         | 
| 64426 64225 | 
             
                      return;
         | 
| 64427 | 
            -
                    done(new Error("destroyed before end"),  | 
| 64226 | 
            +
                    done(new Error("destroyed before end"), array2);
         | 
| 64428 64227 | 
             
                  };
         | 
| 64429 64228 | 
             
                  return a;
         | 
| 64430 64229 | 
             
                };
         | 
| 64431 | 
            -
                es.readArray = function( | 
| 64230 | 
            +
                es.readArray = function(array2) {
         | 
| 64432 64231 | 
             
                  var stream = new Stream3(), i2 = 0, paused = false, ended = false;
         | 
| 64433 64232 | 
             
                  stream.readable = true;
         | 
| 64434 64233 | 
             
                  stream.writable = false;
         | 
| 64435 | 
            -
                  if (!Array.isArray( | 
| 64234 | 
            +
                  if (!Array.isArray(array2))
         | 
| 64436 64235 | 
             
                    throw new Error("event-stream.read expects an array");
         | 
| 64437 64236 | 
             
                  stream.resume = function() {
         | 
| 64438 64237 | 
             
                    if (ended)
         | 
| 64439 64238 | 
             
                      return;
         | 
| 64440 64239 | 
             
                    paused = false;
         | 
| 64441 | 
            -
                    var l =  | 
| 64240 | 
            +
                    var l = array2.length;
         | 
| 64442 64241 | 
             
                    while (i2 < l && !paused && !ended) {
         | 
| 64443 | 
            -
                      stream.emit("data",  | 
| 64242 | 
            +
                      stream.emit("data", array2[i2++]);
         | 
| 64444 64243 | 
             
                    }
         | 
| 64445 64244 | 
             
                    if (i2 == l && !ended)
         | 
| 64446 64245 | 
             
                      ended = true, stream.readable = false, stream.emit("end");
         | 
| @@ -68065,8 +67864,8 @@ var require_utils4 = __commonJS({ | |
| 68065 67864 | 
             
                "use strict";
         | 
| 68066 67865 | 
             
                Object.defineProperty(exports2, "__esModule", { value: true });
         | 
| 68067 67866 | 
             
                exports2.string = exports2.stream = exports2.pattern = exports2.path = exports2.fs = exports2.errno = exports2.array = void 0;
         | 
| 68068 | 
            -
                var  | 
| 68069 | 
            -
                exports2.array =  | 
| 67867 | 
            +
                var array2 = require_array();
         | 
| 67868 | 
            +
                exports2.array = array2;
         | 
| 68070 67869 | 
             
                var errno = require_errno();
         | 
| 68071 67870 | 
             
                exports2.errno = errno;
         | 
| 68072 67871 | 
             
                var fs9 = require_fs2();
         | 
| @@ -78040,7 +77839,7 @@ var init_selector_ui = __esm({ | |
| 78040 77839 | 
             
            });
         | 
| 78041 77840 |  | 
| 78042 77841 | 
             
            // src/cli/commands/libSqlPushUtils.ts
         | 
| 78043 | 
            -
            var  | 
| 77842 | 
            +
            var getOldTableName3, _moveDataStatements2, libSqlLogSuggestionsAndReturn;
         | 
| 78044 77843 | 
             
            var init_libSqlPushUtils = __esm({
         | 
| 78045 77844 | 
             
              "src/cli/commands/libSqlPushUtils.ts"() {
         | 
| 78046 77845 | 
             
                "use strict";
         | 
| @@ -78048,7 +77847,7 @@ var init_libSqlPushUtils = __esm({ | |
| 78048 77847 | 
             
                init_utils();
         | 
| 78049 77848 | 
             
                init_sqliteSchema();
         | 
| 78050 77849 | 
             
                init_sqlgenerator();
         | 
| 78051 | 
            -
                 | 
| 77850 | 
            +
                getOldTableName3 = (tableName, meta) => {
         | 
| 78052 77851 | 
             
                  for (const key of Object.keys(meta.tables)) {
         | 
| 78053 77852 | 
             
                    const value = meta.tables[key];
         | 
| 78054 77853 | 
             
                    if (`"${tableName}"` === value) {
         | 
| @@ -78203,7 +78002,7 @@ var init_libSqlPushUtils = __esm({ | |
| 78203 78002 | 
             
                    } else if (statement.type === "recreate_table") {
         | 
| 78204 78003 | 
             
                      const tableName = statement.tableName;
         | 
| 78205 78004 | 
             
                      let dataLoss = false;
         | 
| 78206 | 
            -
                      const oldTableName =  | 
| 78005 | 
            +
                      const oldTableName = getOldTableName3(tableName, meta);
         | 
| 78207 78006 | 
             
                      const prevColumnNames = Object.keys(json1.tables[oldTableName].columns);
         | 
| 78208 78007 | 
             
                      const currentColumnNames = Object.keys(json2.tables[tableName].columns);
         | 
| 78209 78008 | 
             
                      const { removedColumns, addedColumns } = findAddedAndRemoved(
         | 
| @@ -79924,7 +79723,7 @@ var init_pgIntrospect = __esm({ | |
| 79924 79723 | 
             
                init_global();
         | 
| 79925 79724 | 
             
                init_pgSerializer();
         | 
| 79926 79725 | 
             
                init_views();
         | 
| 79927 | 
            -
                pgPushIntrospect = async (db, filters, schemaFilters) => {
         | 
| 79726 | 
            +
                pgPushIntrospect = async (db, filters, schemaFilters, entities = { roles: true }) => {
         | 
| 79928 79727 | 
             
                  const matchers = filters.map((it) => {
         | 
| 79929 79728 | 
             
                    return new Minimatch(it);
         | 
| 79930 79729 | 
             
                  });
         | 
| @@ -79953,7 +79752,7 @@ var init_pgIntrospect = __esm({ | |
| 79953 79752 | 
             
                  );
         | 
| 79954 79753 | 
             
                  const res = await (0, import_hanji9.renderWithTask)(
         | 
| 79955 79754 | 
             
                    progress,
         | 
| 79956 | 
            -
                    fromDatabase2(db, filter2, schemaFilters)
         | 
| 79755 | 
            +
                    fromDatabase2(db, filter2, schemaFilters, entities)
         | 
| 79957 79756 | 
             
                  );
         | 
| 79958 79757 | 
             
                  const schema5 = { id: originUUID, prevId: "", ...res };
         | 
| 79959 79758 | 
             
                  const { internal, ...schemaWithoutInternals } = schema5;
         | 
| @@ -80488,11 +80287,11 @@ var init_push = __esm({ | |
| 80488 80287 | 
             
                    console.log(e2);
         | 
| 80489 80288 | 
             
                  }
         | 
| 80490 80289 | 
             
                };
         | 
| 80491 | 
            -
                pgPush = async (schemaPath, verbose, strict, credentials2, tablesFilter, schemasFilter, force) => {
         | 
| 80290 | 
            +
                pgPush = async (schemaPath, verbose, strict, credentials2, tablesFilter, schemasFilter, entities, force) => {
         | 
| 80492 80291 | 
             
                  const { preparePostgresDB: preparePostgresDB2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
         | 
| 80493 80292 | 
             
                  const { pgPushIntrospect: pgPushIntrospect2 } = await Promise.resolve().then(() => (init_pgIntrospect(), pgIntrospect_exports));
         | 
| 80494 80293 | 
             
                  const db = await preparePostgresDB2(credentials2);
         | 
| 80495 | 
            -
                  const { schema: schema5 } = await pgPushIntrospect2(db, tablesFilter, schemasFilter);
         | 
| 80294 | 
            +
                  const { schema: schema5 } = await pgPushIntrospect2(db, tablesFilter, schemasFilter, entities);
         | 
| 80496 80295 | 
             
                  const { preparePgPush: preparePgPush2 } = await Promise.resolve().then(() => (init_migrate(), migrate_exports));
         | 
| 80497 80296 | 
             
                  const statements = await preparePgPush2(schemaPath, schema5, schemasFilter);
         | 
| 80498 80297 | 
             
                  try {
         | 
| @@ -81677,7 +81476,7 @@ function generateIdentityParams(identity) { | |
| 81677 81476 | 
             
              }
         | 
| 81678 81477 | 
             
              return `.generatedByDefaultAsIdentity(${paramsObj})`;
         | 
| 81679 81478 | 
             
            }
         | 
| 81680 | 
            -
            var import_drizzle_orm9, import_relations, import_casing3, pgImportsList, timeConfig2, possibleIntervals, intervalStrToObj, intervalConfig, mapColumnDefault3, importsPatch2, relations3, escapeColumnKey3, withCasing2, dbColumnName3, paramNameFor, schemaToTypeScript3, isCyclic3, isSelf3, buildArrayDefault, mapDefault, column6, dimensionsInArray, createTableColumns3, createTableIndexes3, createTablePKs3, createTableUniques3, createTableFKs3;
         | 
| 81479 | 
            +
            var import_drizzle_orm9, import_relations, import_casing3, pgImportsList, timeConfig2, possibleIntervals, intervalStrToObj, intervalConfig, mapColumnDefault3, importsPatch2, relations3, escapeColumnKey3, withCasing2, dbColumnName3, paramNameFor, schemaToTypeScript3, isCyclic3, isSelf3, buildArrayDefault, mapDefault, column6, dimensionsInArray, createTableColumns3, createTableIndexes3, createTablePKs3, createTablePolicies, createTableUniques3, createTableFKs3;
         | 
| 81681 81480 | 
             
            var init_introspect_pg = __esm({
         | 
| 81682 81481 | 
             
              "src/introspect-pg.ts"() {
         | 
| 81683 81482 | 
             
                "use strict";
         | 
| @@ -81855,6 +81654,9 @@ var init_introspect_pg = __esm({ | |
| 81855 81654 | 
             
                      const uniqueImports = Object.values(it.uniqueConstraints).map(
         | 
| 81856 81655 | 
             
                        (it2) => "unique"
         | 
| 81857 81656 | 
             
                      );
         | 
| 81657 | 
            +
                      const policiesImports = Object.values(it.policies).map(
         | 
| 81658 | 
            +
                        (it2) => "pgPolicy"
         | 
| 81659 | 
            +
                      );
         | 
| 81858 81660 | 
             
                      if (it.schema && it.schema !== "public" && it.schema !== "") {
         | 
| 81859 81661 | 
             
                        res.pg.push("pgSchema");
         | 
| 81860 81662 | 
             
                      }
         | 
| @@ -81862,6 +81664,7 @@ var init_introspect_pg = __esm({ | |
| 81862 81664 | 
             
                      res.pg.push(...fkImpots);
         | 
| 81863 81665 | 
             
                      res.pg.push(...pkImports);
         | 
| 81864 81666 | 
             
                      res.pg.push(...uniqueImports);
         | 
| 81667 | 
            +
                      res.pg.push(...policiesImports);
         | 
| 81865 81668 | 
             
                      const columnImports = Object.values(it.columns).map((col) => {
         | 
| 81866 81669 | 
             
                        let patched = (importsPatch2[col.type] || col.type).replace("[]", "");
         | 
| 81867 81670 | 
             
                        patched = patched === "double precision" ? "doublePrecision" : patched;
         | 
| @@ -81881,30 +81684,6 @@ var init_introspect_pg = __esm({ | |
| 81881 81684 | 
             
                    },
         | 
| 81882 81685 | 
             
                    { pg: [] }
         | 
| 81883 81686 | 
             
                  );
         | 
| 81884 | 
            -
                  Object.values(schema5.views).forEach((it) => {
         | 
| 81885 | 
            -
                    if (it.schema && it.schema !== "public" && it.schema !== "") {
         | 
| 81886 | 
            -
                      imports.pg.push("pgSchema");
         | 
| 81887 | 
            -
                    } else if (it.schema === "public") {
         | 
| 81888 | 
            -
                      it.materialized ? imports.pg.push("pgMaterializedView") : imports.pg.push("pgView");
         | 
| 81889 | 
            -
                    }
         | 
| 81890 | 
            -
                    Object.values(it.columns).forEach(() => {
         | 
| 81891 | 
            -
                      const columnImports = Object.values(it.columns).map((col) => {
         | 
| 81892 | 
            -
                        let patched = (importsPatch2[col.type] || col.type).replace("[]", "");
         | 
| 81893 | 
            -
                        patched = patched === "double precision" ? "doublePrecision" : patched;
         | 
| 81894 | 
            -
                        patched = patched.startsWith("varchar(") ? "varchar" : patched;
         | 
| 81895 | 
            -
                        patched = patched.startsWith("char(") ? "char" : patched;
         | 
| 81896 | 
            -
                        patched = patched.startsWith("numeric(") ? "numeric" : patched;
         | 
| 81897 | 
            -
                        patched = patched.startsWith("time(") ? "time" : patched;
         | 
| 81898 | 
            -
                        patched = patched.startsWith("timestamp(") ? "timestamp" : patched;
         | 
| 81899 | 
            -
                        patched = patched.startsWith("vector(") ? "vector" : patched;
         | 
| 81900 | 
            -
                        patched = patched.startsWith("geometry(") ? "geometry" : patched;
         | 
| 81901 | 
            -
                        return patched;
         | 
| 81902 | 
            -
                      }).filter((type) => {
         | 
| 81903 | 
            -
                        return pgImportsList.has(type);
         | 
| 81904 | 
            -
                      });
         | 
| 81905 | 
            -
                      imports.pg.push(...columnImports);
         | 
| 81906 | 
            -
                    });
         | 
| 81907 | 
            -
                  });
         | 
| 81908 81687 | 
             
                  Object.values(schema5.sequences).forEach((it) => {
         | 
| 81909 81688 | 
             
                    if (it.schema && it.schema !== "public" && it.schema !== "") {
         | 
| 81910 81689 | 
             
                      imports.pg.push("pgSchema");
         | 
| @@ -81919,6 +81698,9 @@ var init_introspect_pg = __esm({ | |
| 81919 81698 | 
             
                      imports.pg.push("pgEnum");
         | 
| 81920 81699 | 
             
                    }
         | 
| 81921 81700 | 
             
                  });
         | 
| 81701 | 
            +
                  if (Object.keys(schema5.roles).length > 0) {
         | 
| 81702 | 
            +
                    imports.pg.push("pgRole");
         | 
| 81703 | 
            +
                  }
         | 
| 81922 81704 | 
             
                  const enumStatements = Object.values(schema5.enums).map((it) => {
         | 
| 81923 81705 | 
             
                    const enumSchema3 = schemas[it.schema];
         | 
| 81924 81706 | 
             
                    const paramName = paramNameFor(it.name, enumSchema3);
         | 
| @@ -81954,9 +81736,16 @@ var init_introspect_pg = __esm({ | |
| 81954 81736 | 
             
                    }
         | 
| 81955 81737 | 
             
                    return `export const ${withCasing2(paramName, casing2)} = ${func}("${it.name}"${params ? `, { ${params.trimChar(",")} }` : ""})
         | 
| 81956 81738 | 
             
            `;
         | 
| 81957 | 
            -
                  }).join("").concat(" | 
| 81739 | 
            +
                  }).join("").concat("");
         | 
| 81958 81740 | 
             
                  const schemaStatements = Object.entries(schemas).map((it) => {
         | 
| 81959 81741 | 
             
                    return `export const ${it[1]} = pgSchema("${it[0]}");
         | 
| 81742 | 
            +
            `;
         | 
| 81743 | 
            +
                  }).join("");
         | 
| 81744 | 
            +
                  const rolesNameToTsKey = {};
         | 
| 81745 | 
            +
                  const rolesStatements = Object.entries(schema5.roles).map((it) => {
         | 
| 81746 | 
            +
                    const fields = it[1];
         | 
| 81747 | 
            +
                    rolesNameToTsKey[fields.name] = it[0];
         | 
| 81748 | 
            +
                    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(",")}}`} );
         | 
| 81960 81749 | 
             
            `;
         | 
| 81961 81750 | 
             
                  }).join("");
         | 
| 81962 81751 | 
             
                  const tableStatements = Object.values(schema5.tables).map((table4) => {
         | 
| @@ -81975,8 +81764,8 @@ var init_introspect_pg = __esm({ | |
| 81975 81764 | 
             
                      schema5.internal
         | 
| 81976 81765 | 
             
                    );
         | 
| 81977 81766 | 
             
                    statement += "}";
         | 
| 81978 | 
            -
                    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) {
         | 
| 81979 | 
            -
                      statement += " | 
| 81767 | 
            +
                    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) {
         | 
| 81768 | 
            +
                      statement += ", ";
         | 
| 81980 81769 | 
             
                      statement += "(table) => {\n";
         | 
| 81981 81770 | 
             
                      statement += "	return {\n";
         | 
| 81982 81771 | 
             
                      statement += createTableIndexes3(
         | 
| @@ -81993,48 +81782,29 @@ var init_introspect_pg = __esm({ | |
| 81993 81782 | 
             
                        Object.values(table4.uniqueConstraints),
         | 
| 81994 81783 | 
             
                        casing2
         | 
| 81995 81784 | 
             
                      );
         | 
| 81785 | 
            +
                      statement += createTablePolicies(
         | 
| 81786 | 
            +
                        Object.values(table4.policies),
         | 
| 81787 | 
            +
                        casing2,
         | 
| 81788 | 
            +
                        rolesNameToTsKey
         | 
| 81789 | 
            +
                      );
         | 
| 81996 81790 | 
             
                      statement += "	}\n";
         | 
| 81997 81791 | 
             
                      statement += "}";
         | 
| 81998 81792 | 
             
                    }
         | 
| 81999 81793 | 
             
                    statement += ");";
         | 
| 82000 81794 | 
             
                    return statement;
         | 
| 82001 81795 | 
             
                  });
         | 
| 82002 | 
            -
                  const viewsStatements = Object.values(schema5.views).map((it) => {
         | 
| 82003 | 
            -
                    const viewSchema = schemas[it.schema];
         | 
| 82004 | 
            -
                    const paramName = paramNameFor(it.name, viewSchema);
         | 
| 82005 | 
            -
                    const func = viewSchema ? it.materialized ? `${viewSchema}.materializedView` : `${viewSchema}.view` : it.materialized ? "pgMaterializedView" : "pgView";
         | 
| 82006 | 
            -
                    const withOption = it.with ?? "";
         | 
| 82007 | 
            -
                    const as = `sql\`${it.definition}\``;
         | 
| 82008 | 
            -
                    const tablespace = it.tablespace ?? "";
         | 
| 82009 | 
            -
                    const columns = createTableColumns3(
         | 
| 82010 | 
            -
                      "",
         | 
| 82011 | 
            -
                      Object.values(it.columns),
         | 
| 82012 | 
            -
                      [],
         | 
| 82013 | 
            -
                      enumTypes,
         | 
| 82014 | 
            -
                      schemas,
         | 
| 82015 | 
            -
                      casing2,
         | 
| 82016 | 
            -
                      schema5.internal
         | 
| 82017 | 
            -
                    );
         | 
| 82018 | 
            -
                    let statement = `export const ${withCasing2(paramName, casing2)} = ${func}("${it.name}", {${columns}})`;
         | 
| 82019 | 
            -
                    statement += tablespace ? `.tablespace("${tablespace}")` : "";
         | 
| 82020 | 
            -
                    statement += withOption ? `.with(${JSON.stringify(withOption)})` : "";
         | 
| 82021 | 
            -
                    statement += `.as(${as});`;
         | 
| 82022 | 
            -
                    return statement;
         | 
| 82023 | 
            -
                  }).join("\n\n");
         | 
| 82024 81796 | 
             
                  const uniquePgImports = ["pgTable", ...new Set(imports.pg)];
         | 
| 82025 81797 | 
             
                  const importsTs = `import { ${uniquePgImports.join(
         | 
| 82026 81798 | 
             
                    ", "
         | 
| 82027 81799 | 
             
                  )} } from "drizzle-orm/pg-core"
         | 
| 82028 | 
            -
             | 
| 81800 | 
            +
            import { sql } from "drizzle-orm"
         | 
| 82029 81801 |  | 
| 82030 81802 | 
             
            `;
         | 
| 82031 81803 | 
             
                  let decalrations = schemaStatements;
         | 
| 81804 | 
            +
                  decalrations += rolesStatements;
         | 
| 82032 81805 | 
             
                  decalrations += enumStatements;
         | 
| 82033 81806 | 
             
                  decalrations += sequencesStatements;
         | 
| 82034 | 
            -
                  decalrations += "\n";
         | 
| 82035 | 
            -
                  decalrations += tableStatements.join("\n\n");
         | 
| 82036 | 
            -
                  decalrations += "\n";
         | 
| 82037 | 
            -
                  decalrations += viewsStatements;
         | 
| 81807 | 
            +
                  decalrations += tableStatements.join("\n");
         | 
| 82038 81808 | 
             
                  const file = importsTs + decalrations;
         | 
| 82039 81809 | 
             
                  const schemaEntry = `
         | 
| 82040 81810 | 
             
                {
         | 
| @@ -82465,6 +82235,23 @@ var init_introspect_pg = __esm({ | |
| 82465 82235 | 
             
                    }).join(", ")}]${it.name ? `, name: "${it.name}"` : ""}}`;
         | 
| 82466 82236 | 
             
                    statement += ")";
         | 
| 82467 82237 | 
             
                    statement += `,
         | 
| 82238 | 
            +
            `;
         | 
| 82239 | 
            +
                  });
         | 
| 82240 | 
            +
                  return statement;
         | 
| 82241 | 
            +
                };
         | 
| 82242 | 
            +
                createTablePolicies = (policies, casing2, rolesNameToTsKey = {}) => {
         | 
| 82243 | 
            +
                  let statement = "";
         | 
| 82244 | 
            +
                  policies.forEach((it) => {
         | 
| 82245 | 
            +
                    var _a, _b, _c;
         | 
| 82246 | 
            +
                    const idxKey = withCasing2(it.name, casing2);
         | 
| 82247 | 
            +
                    const mappedItTo = (_a = it.to) == null ? void 0 : _a.map((v) => {
         | 
| 82248 | 
            +
                      return rolesNameToTsKey[v] ? withCasing2(rolesNameToTsKey[v], casing2) : `"${v}"`;
         | 
| 82249 | 
            +
                    });
         | 
| 82250 | 
            +
                    statement += `		${idxKey}: `;
         | 
| 82251 | 
            +
                    statement += "pgPolicy(";
         | 
| 82252 | 
            +
                    statement += `"${it.name}", { `;
         | 
| 82253 | 
            +
                    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}\` ` : ""}`;
         | 
| 82254 | 
            +
                    statement += ` }),
         | 
| 82468 82255 | 
             
            `;
         | 
| 82469 82256 | 
             
                  });
         | 
| 82470 82257 | 
             
                  return statement;
         | 
| @@ -82542,7 +82329,7 @@ var init_introspect = __esm({ | |
| 82542 82329 | 
             
                init_utils();
         | 
| 82543 82330 | 
             
                init_views();
         | 
| 82544 82331 | 
             
                init_migrate();
         | 
| 82545 | 
            -
                introspectPostgres = async (casing2, out, breakpoints, credentials2, tablesFilter, schemasFilter, prefix2) => {
         | 
| 82332 | 
            +
                introspectPostgres = async (casing2, out, breakpoints, credentials2, tablesFilter, schemasFilter, prefix2, entities) => {
         | 
| 82546 82333 | 
             
                  const { preparePostgresDB: preparePostgresDB2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
         | 
| 82547 82334 | 
             
                  const db = await preparePostgresDB2(credentials2);
         | 
| 82548 82335 | 
             
                  const matchers = tablesFilter.map((it) => {
         | 
| @@ -82570,9 +82357,15 @@ var init_introspect = __esm({ | |
| 82570 82357 | 
             
                  const progress = new IntrospectProgress(true);
         | 
| 82571 82358 | 
             
                  const res = await (0, import_hanji12.renderWithTask)(
         | 
| 82572 82359 | 
             
                    progress,
         | 
| 82573 | 
            -
                    fromDatabase2( | 
| 82574 | 
            -
                       | 
| 82575 | 
            -
             | 
| 82360 | 
            +
                    fromDatabase2(
         | 
| 82361 | 
            +
                      db,
         | 
| 82362 | 
            +
                      filter2,
         | 
| 82363 | 
            +
                      schemasFilter,
         | 
| 82364 | 
            +
                      entities,
         | 
| 82365 | 
            +
                      (stage, count, status) => {
         | 
| 82366 | 
            +
                        progress.update(stage, count, status);
         | 
| 82367 | 
            +
                      }
         | 
| 82368 | 
            +
                    )
         | 
| 82576 82369 | 
             
                  );
         | 
| 82577 82370 | 
             
                  const schema5 = { id: originUUID, prevId: "", ...res };
         | 
| 82578 82371 | 
             
                  const ts = schemaToTypeScript3(schema5, casing2);
         | 
| @@ -82591,9 +82384,9 @@ var init_introspect = __esm({ | |
| 82591 82384 | 
             
                      schemasResolver,
         | 
| 82592 82385 | 
             
                      enumsResolver,
         | 
| 82593 82386 | 
             
                      sequencesResolver,
         | 
| 82387 | 
            +
                      policyResolver,
         | 
| 82594 82388 | 
             
                      tablesResolver,
         | 
| 82595 82389 | 
             
                      columnsResolver,
         | 
| 82596 | 
            -
                      viewsResolver,
         | 
| 82597 82390 | 
             
                      dryPg,
         | 
| 82598 82391 | 
             
                      schema5
         | 
| 82599 82392 | 
             
                    );
         | 
| @@ -86105,7 +85898,8 @@ var pull = command({ | |
| 86105 85898 | 
             
                  breakpoints,
         | 
| 86106 85899 | 
             
                  tablesFilter,
         | 
| 86107 85900 | 
             
                  schemasFilter,
         | 
| 86108 | 
            -
                  prefix: prefix2
         | 
| 85901 | 
            +
                  prefix: prefix2,
         | 
| 85902 | 
            +
                  entities
         | 
| 86109 85903 | 
             
                } = config;
         | 
| 86110 85904 | 
             
                (0, import_fs13.mkdirSync)(out, { recursive: true });
         | 
| 86111 85905 | 
             
                console.log(
         | 
| @@ -86144,7 +85938,8 @@ var pull = command({ | |
| 86144 85938 | 
             
                      credentials2,
         | 
| 86145 85939 | 
             
                      tablesFilter,
         | 
| 86146 85940 | 
             
                      schemasFilter,
         | 
| 86147 | 
            -
                      prefix2
         | 
| 85941 | 
            +
                      prefix2,
         | 
| 85942 | 
            +
                      entities
         | 
| 86148 85943 | 
             
                    );
         | 
| 86149 85944 | 
             
                  } else if (dialect7 === "mysql") {
         | 
| 86150 85945 | 
             
                    const { introspectMysql: introspectMysql2 } = await Promise.resolve().then(() => (init_introspect(), introspect_exports));
         | 
| @@ -86315,7 +86110,7 @@ init_utils2(); | |
| 86315 86110 | 
             
            var version2 = async () => {
         | 
| 86316 86111 | 
             
              const { npmVersion } = await ormCoreVersions();
         | 
| 86317 86112 | 
             
              const ormVersion = npmVersion ? `drizzle-orm: v${npmVersion}` : "";
         | 
| 86318 | 
            -
              const envVersion = "0.25.0- | 
| 86113 | 
            +
              const envVersion = "0.25.0-b75016b";
         | 
| 86319 86114 | 
             
              const kitVersion = envVersion ? `v${envVersion}` : "--";
         | 
| 86320 86115 | 
             
              const versions = `drizzle-kit: ${kitVersion}
         | 
| 86321 86116 | 
             
            ${ormVersion}`;
         |