drizzle-kit 0.24.0-6386ea9 → 0.24.0-bb966f7
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.js +1219 -656
 - package/api.mjs +1219 -656
 - package/bin.cjs +1790 -1200
 - package/package.json +4 -4
 - package/utils.js +9 -0
 - package/utils.mjs +8 -0
 
    
        package/api.mjs
    CHANGED
    
    | 
         @@ -8346,6 +8346,13 @@ var init_sqliteSchema = __esm({ 
     | 
|
| 
       8346 
8346 
     | 
    
         
             
            function isPgArrayType(sqlType) {
         
     | 
| 
       8347 
8347 
     | 
    
         
             
              return sqlType.match(/.*\[\d*\].*|.*\[\].*/g) !== null;
         
     | 
| 
       8348 
8348 
     | 
    
         
             
            }
         
     | 
| 
      
 8349 
     | 
    
         
            +
            function findAddedAndRemoved(columnNames1, columnNames2) {
         
     | 
| 
      
 8350 
     | 
    
         
            +
              const set1 = new Set(columnNames1);
         
     | 
| 
      
 8351 
     | 
    
         
            +
              const set2 = new Set(columnNames2);
         
     | 
| 
      
 8352 
     | 
    
         
            +
              const addedColumns = columnNames2.filter((it) => !set1.has(it));
         
     | 
| 
      
 8353 
     | 
    
         
            +
              const removedColumns = columnNames1.filter((it) => !set2.has(it));
         
     | 
| 
      
 8354 
     | 
    
         
            +
              return { addedColumns, removedColumns };
         
     | 
| 
      
 8355 
     | 
    
         
            +
            }
         
     | 
| 
       8349 
8356 
     | 
    
         
             
            var copy, prepareMigrationMeta, schemaRenameKey, tableRenameKey, columnRenameKey;
         
     | 
| 
       8350 
8357 
     | 
    
         
             
            var init_utils = __esm({
         
     | 
| 
       8351 
8358 
     | 
    
         
             
              "src/utils.ts"() {
         
     | 
| 
         @@ -11455,7 +11462,20 @@ var init_jsonDiffer = __esm({ 
     | 
|
| 
       11455 
11462 
     | 
    
         
             
            });
         
     | 
| 
       11456 
11463 
     | 
    
         | 
| 
       11457 
11464 
     | 
    
         
             
            // src/sqlgenerator.ts
         
     | 
| 
       11458 
     | 
    
         
            -
             
     | 
| 
      
 11465 
     | 
    
         
            +
            function fromJson(statements, dialect7, action, driver2, json2) {
         
     | 
| 
      
 11466 
     | 
    
         
            +
              const result = statements.flatMap((statement) => {
         
     | 
| 
      
 11467 
     | 
    
         
            +
                const filtered = convertors.filter((it) => {
         
     | 
| 
      
 11468 
     | 
    
         
            +
                  return it.can(statement, dialect7, driver2);
         
     | 
| 
      
 11469 
     | 
    
         
            +
                });
         
     | 
| 
      
 11470 
     | 
    
         
            +
                const convertor = filtered.length === 1 ? filtered[0] : void 0;
         
     | 
| 
      
 11471 
     | 
    
         
            +
                if (!convertor) {
         
     | 
| 
      
 11472 
     | 
    
         
            +
                  return "";
         
     | 
| 
      
 11473 
     | 
    
         
            +
                }
         
     | 
| 
      
 11474 
     | 
    
         
            +
                return convertor.convert(statement, json2, action);
         
     | 
| 
      
 11475 
     | 
    
         
            +
              }).filter((it) => it !== "");
         
     | 
| 
      
 11476 
     | 
    
         
            +
              return result;
         
     | 
| 
      
 11477 
     | 
    
         
            +
            }
         
     | 
| 
      
 11478 
     | 
    
         
            +
            var pgNativeTypes, isPgNativeType, Convertor, PgCreateTableConvertor, MySqlCreateTableConvertor, SQLiteCreateTableConvertor, PgAlterTableAlterColumnSetGenerated, PgAlterTableAlterColumnDropGenerated, PgAlterTableAlterColumnAlterGenerated, PgAlterTableAddUniqueConstraintConvertor, PgAlterTableDropUniqueConstraintConvertor, MySQLAlterTableAddUniqueConstraintConvertor, MySQLAlterTableDropUniqueConstraintConvertor, CreatePgSequenceConvertor, DropPgSequenceConvertor, RenamePgSequenceConvertor, MovePgSequenceConvertor, AlterPgSequenceConvertor, CreateTypeEnumConvertor, AlterTypeAddValueConvertor, PgDropTableConvertor, MySQLDropTableConvertor, SQLiteDropTableConvertor, PgRenameTableConvertor, SqliteRenameTableConvertor, MySqlRenameTableConvertor, PgAlterTableRenameColumnConvertor, MySqlAlterTableRenameColumnConvertor, SQLiteAlterTableRenameColumnConvertor, PgAlterTableDropColumnConvertor, MySqlAlterTableDropColumnConvertor, SQLiteAlterTableDropColumnConvertor, PgAlterTableAddColumnConvertor, MySqlAlterTableAddColumnConvertor, SQLiteAlterTableAddColumnConvertor, PgAlterTableAlterColumnSetTypeConvertor, PgAlterTableAlterColumnSetDefaultConvertor, PgAlterTableAlterColumnDropDefaultConvertor, PgAlterTableAlterColumnDropGeneratedConvertor, PgAlterTableAlterColumnSetExpressionConvertor, PgAlterTableAlterColumnAlterrGeneratedConvertor, SqliteAlterTableAlterColumnDropGeneratedConvertor, SqliteAlterTableAlterColumnSetExpressionConvertor, SqliteAlterTableAlterColumnAlterGeneratedConvertor, MySqlAlterTableAlterColumnAlterrGeneratedConvertor, MySqlAlterTableAddPk, MySqlAlterTableDropPk, LibSQLModifyColumn, MySqlModifyColumn, PgAlterTableCreateCompositePrimaryKeyConvertor, PgAlterTableDeleteCompositePrimaryKeyConvertor, PgAlterTableAlterCompositePrimaryKeyConvertor, MySqlAlterTableCreateCompositePrimaryKeyConvertor, MySqlAlterTableDeleteCompositePrimaryKeyConvertor, MySqlAlterTableAlterCompositePrimaryKeyConvertor, PgAlterTableAlterColumnSetPrimaryKeyConvertor, PgAlterTableAlterColumnDropPrimaryKeyConvertor, PgAlterTableAlterColumnSetNotNullConvertor, PgAlterTableAlterColumnDropNotNullConvertor, PgCreateForeignKeyConvertor, LibSQLCreateForeignKeyConvertor, MySqlCreateForeignKeyConvertor, PgAlterForeignKeyConvertor, PgDeleteForeignKeyConvertor, MySqlDeleteForeignKeyConvertor, CreatePgIndexConvertor, CreateMySqlIndexConvertor, CreateSqliteIndexConvertor, PgDropIndexConvertor, PgCreateSchemaConvertor, PgRenameSchemaConvertor, PgDropSchemaConvertor, PgAlterTableSetSchemaConvertor, PgAlterTableSetNewSchemaConvertor, PgAlterTableRemoveFromSchemaConvertor, SqliteDropIndexConvertor, MySqlDropIndexConvertor, SQLiteRecreateTableConvertor, LibSQLRecreateTableConvertor, convertors;
         
     | 
| 
       11459 
11479 
     | 
    
         
             
            var init_sqlgenerator = __esm({
         
     | 
| 
       11460 
11480 
     | 
    
         
             
              "src/sqlgenerator.ts"() {
         
     | 
| 
       11461 
11481 
     | 
    
         
             
                "use strict";
         
     | 
| 
         @@ -11777,32 +11797,6 @@ var init_sqlgenerator = __esm({ 
     | 
|
| 
       11777 
11797 
     | 
    
         
             
                    return `ALTER TABLE \`${statement.tableName}\` DROP INDEX \`${unsquashed.name}\`;`;
         
     | 
| 
       11778 
11798 
     | 
    
         
             
                  }
         
     | 
| 
       11779 
11799 
     | 
    
         
             
                };
         
     | 
| 
       11780 
     | 
    
         
            -
                SQLiteAlterTableAddUniqueConstraintConvertor = class extends Convertor {
         
     | 
| 
       11781 
     | 
    
         
            -
                  can(statement, dialect7) {
         
     | 
| 
       11782 
     | 
    
         
            -
                    return statement.type === "create_unique_constraint" && dialect7 === "sqlite";
         
     | 
| 
       11783 
     | 
    
         
            -
                  }
         
     | 
| 
       11784 
     | 
    
         
            -
                  convert(statement) {
         
     | 
| 
       11785 
     | 
    
         
            -
                    return `/*
         
     | 
| 
       11786 
     | 
    
         
            -
             SQLite does not support "Adding unique constraint to an existing table" out of the box, we do not generate automatic migration for that, so it has to be done manually
         
     | 
| 
       11787 
     | 
    
         
            -
             Please refer to: https://www.techonthenet.com/sqlite/unique.php
         
     | 
| 
       11788 
     | 
    
         
            -
             
     | 
| 
       11789 
     | 
    
         
            -
             Due to that we don't generate migration automatically and it has to be done manually
         
     | 
| 
       11790 
     | 
    
         
            -
            */`;
         
     | 
| 
       11791 
     | 
    
         
            -
                  }
         
     | 
| 
       11792 
     | 
    
         
            -
                };
         
     | 
| 
       11793 
     | 
    
         
            -
                SQLiteAlterTableDropUniqueConstraintConvertor = class extends Convertor {
         
     | 
| 
       11794 
     | 
    
         
            -
                  can(statement, dialect7) {
         
     | 
| 
       11795 
     | 
    
         
            -
                    return statement.type === "delete_unique_constraint" && dialect7 === "sqlite";
         
     | 
| 
       11796 
     | 
    
         
            -
                  }
         
     | 
| 
       11797 
     | 
    
         
            -
                  convert(statement) {
         
     | 
| 
       11798 
     | 
    
         
            -
                    return `/*
         
     | 
| 
       11799 
     | 
    
         
            -
             SQLite does not support "Dropping unique constraint from an existing table" out of the box, we do not generate automatic migration for that, so it has to be done manually
         
     | 
| 
       11800 
     | 
    
         
            -
             Please refer to: https://www.techonthenet.com/sqlite/unique.php
         
     | 
| 
       11801 
     | 
    
         
            -
             
     | 
| 
       11802 
     | 
    
         
            -
             Due to that we don't generate migration automatically and it has to be done manually
         
     | 
| 
       11803 
     | 
    
         
            -
            */`;
         
     | 
| 
       11804 
     | 
    
         
            -
                  }
         
     | 
| 
       11805 
     | 
    
         
            -
                };
         
     | 
| 
       11806 
11800 
     | 
    
         
             
                CreatePgSequenceConvertor = class extends Convertor {
         
     | 
| 
       11807 
11801 
     | 
    
         
             
                  can(statement, dialect7) {
         
     | 
| 
       11808 
11802 
     | 
    
         
             
                    return statement.type === "create_sequence" && dialect7 === "postgresql";
         
     | 
| 
         @@ -11971,7 +11965,7 @@ var init_sqlgenerator = __esm({ 
     | 
|
| 
       11971 
11965 
     | 
    
         
             
                  }
         
     | 
| 
       11972 
11966 
     | 
    
         
             
                  convert(statement) {
         
     | 
| 
       11973 
11967 
     | 
    
         
             
                    const { tableName, oldColumnName, newColumnName } = statement;
         
     | 
| 
       11974 
     | 
    
         
            -
                    return `ALTER TABLE \`${tableName}\` RENAME COLUMN  
     | 
| 
      
 11968 
     | 
    
         
            +
                    return `ALTER TABLE \`${tableName}\` RENAME COLUMN "${oldColumnName}" TO "${newColumnName}";`;
         
     | 
| 
       11975 
11969 
     | 
    
         
             
                  }
         
     | 
| 
       11976 
11970 
     | 
    
         
             
                };
         
     | 
| 
       11977 
11971 
     | 
    
         
             
                PgAlterTableDropColumnConvertor = class extends Convertor {
         
     | 
| 
         @@ -12072,21 +12066,6 @@ var init_sqlgenerator = __esm({ 
     | 
|
| 
       12072 
12066 
     | 
    
         
             
                    return `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET DATA TYPE ${newDataType};`;
         
     | 
| 
       12073 
12067 
     | 
    
         
             
                  }
         
     | 
| 
       12074 
12068 
     | 
    
         
             
                };
         
     | 
| 
       12075 
     | 
    
         
            -
                SQLiteAlterTableAlterColumnSetTypeConvertor = class extends Convertor {
         
     | 
| 
       12076 
     | 
    
         
            -
                  can(statement, dialect7) {
         
     | 
| 
       12077 
     | 
    
         
            -
                    return statement.type === "alter_table_alter_column_set_type" && dialect7 === "sqlite";
         
     | 
| 
       12078 
     | 
    
         
            -
                  }
         
     | 
| 
       12079 
     | 
    
         
            -
                  convert(statement) {
         
     | 
| 
       12080 
     | 
    
         
            -
                    return `/*
         
     | 
| 
       12081 
     | 
    
         
            -
             SQLite does not support "Changing existing column type" out of the box, we do not generate automatic migration for that, so it has to be done manually
         
     | 
| 
       12082 
     | 
    
         
            -
             Please refer to: https://www.techonthenet.com/sqlite/tables/alter_table.php
         
     | 
| 
       12083 
     | 
    
         
            -
                              https://www.sqlite.org/lang_altertable.html
         
     | 
| 
       12084 
     | 
    
         
            -
                              https://stackoverflow.com/questions/2083543/modify-a-columns-type-in-sqlite3
         
     | 
| 
       12085 
     | 
    
         
            -
             
     | 
| 
       12086 
     | 
    
         
            -
             Due to that we don't generate migration automatically and it has to be done manually
         
     | 
| 
       12087 
     | 
    
         
            -
            */`;
         
     | 
| 
       12088 
     | 
    
         
            -
                  }
         
     | 
| 
       12089 
     | 
    
         
            -
                };
         
     | 
| 
       12090 
12069 
     | 
    
         
             
                PgAlterTableAlterColumnSetDefaultConvertor = class extends Convertor {
         
     | 
| 
       12091 
12070 
     | 
    
         
             
                  can(statement, dialect7) {
         
     | 
| 
       12092 
12071 
     | 
    
         
             
                    return statement.type === "alter_table_alter_column_set_default" && dialect7 === "postgresql";
         
     | 
| 
         @@ -12097,21 +12076,6 @@ var init_sqlgenerator = __esm({ 
     | 
|
| 
       12097 
12076 
     | 
    
         
             
                    return `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET DEFAULT ${statement.newDefaultValue};`;
         
     | 
| 
       12098 
12077 
     | 
    
         
             
                  }
         
     | 
| 
       12099 
12078 
     | 
    
         
             
                };
         
     | 
| 
       12100 
     | 
    
         
            -
                SqliteAlterTableAlterColumnSetDefaultConvertor = class extends Convertor {
         
     | 
| 
       12101 
     | 
    
         
            -
                  can(statement, dialect7) {
         
     | 
| 
       12102 
     | 
    
         
            -
                    return statement.type === "alter_table_alter_column_set_default" && dialect7 === "sqlite";
         
     | 
| 
       12103 
     | 
    
         
            -
                  }
         
     | 
| 
       12104 
     | 
    
         
            -
                  convert(statement) {
         
     | 
| 
       12105 
     | 
    
         
            -
                    return `/*
         
     | 
| 
       12106 
     | 
    
         
            -
             SQLite does not support "Set default to column" out of the box, we do not generate automatic migration for that, so it has to be done manually
         
     | 
| 
       12107 
     | 
    
         
            -
             Please refer to: https://www.techonthenet.com/sqlite/tables/alter_table.php
         
     | 
| 
       12108 
     | 
    
         
            -
                              https://www.sqlite.org/lang_altertable.html
         
     | 
| 
       12109 
     | 
    
         
            -
                              https://stackoverflow.com/questions/2083543/modify-a-columns-type-in-sqlite3
         
     | 
| 
       12110 
     | 
    
         
            -
             
     | 
| 
       12111 
     | 
    
         
            -
             Due to that we don't generate migration automatically and it has to be done manually
         
     | 
| 
       12112 
     | 
    
         
            -
            */`;
         
     | 
| 
       12113 
     | 
    
         
            -
                  }
         
     | 
| 
       12114 
     | 
    
         
            -
                };
         
     | 
| 
       12115 
12079 
     | 
    
         
             
                PgAlterTableAlterColumnDropDefaultConvertor = class extends Convertor {
         
     | 
| 
       12116 
12080 
     | 
    
         
             
                  can(statement, dialect7) {
         
     | 
| 
       12117 
12081 
     | 
    
         
             
                    return statement.type === "alter_table_alter_column_drop_default" && dialect7 === "postgresql";
         
     | 
| 
         @@ -12385,6 +12349,67 @@ var init_sqlgenerator = __esm({ 
     | 
|
| 
       12385 
12349 
     | 
    
         
             
                    return `ALTER TABLE \`${statement.tableName}\` DROP PRIMARY KEY`;
         
     | 
| 
       12386 
12350 
     | 
    
         
             
                  }
         
     | 
| 
       12387 
12351 
     | 
    
         
             
                };
         
     | 
| 
      
 12352 
     | 
    
         
            +
                LibSQLModifyColumn = class extends Convertor {
         
     | 
| 
      
 12353 
     | 
    
         
            +
                  can(statement, dialect7, driver2) {
         
     | 
| 
      
 12354 
     | 
    
         
            +
                    return (statement.type === "alter_table_alter_column_set_type" || statement.type === "alter_table_alter_column_drop_notnull" || statement.type === "alter_table_alter_column_set_notnull" || statement.type === "alter_table_alter_column_set_default" || statement.type === "alter_table_alter_column_drop_default") && dialect7 === "sqlite" && driver2 === "turso";
         
     | 
| 
      
 12355 
     | 
    
         
            +
                  }
         
     | 
| 
      
 12356 
     | 
    
         
            +
                  convert(statement, json2, action) {
         
     | 
| 
      
 12357 
     | 
    
         
            +
                    const { tableName, columnName } = statement;
         
     | 
| 
      
 12358 
     | 
    
         
            +
                    let columnType = ``;
         
     | 
| 
      
 12359 
     | 
    
         
            +
                    let columnDefault = "";
         
     | 
| 
      
 12360 
     | 
    
         
            +
                    let columnNotNull = "";
         
     | 
| 
      
 12361 
     | 
    
         
            +
                    const sqlStatements = [];
         
     | 
| 
      
 12362 
     | 
    
         
            +
                    const indexes = [];
         
     | 
| 
      
 12363 
     | 
    
         
            +
                    for (const table4 of Object.values(json2.tables)) {
         
     | 
| 
      
 12364 
     | 
    
         
            +
                      for (const index4 of Object.values(table4.indexes)) {
         
     | 
| 
      
 12365 
     | 
    
         
            +
                        const unsquashed = SQLiteSquasher.unsquashIdx(index4);
         
     | 
| 
      
 12366 
     | 
    
         
            +
                        sqlStatements.push(`DROP INDEX IF EXISTS "${unsquashed.name}";`);
         
     | 
| 
      
 12367 
     | 
    
         
            +
                        indexes.push({ ...unsquashed, tableName: table4.name });
         
     | 
| 
      
 12368 
     | 
    
         
            +
                      }
         
     | 
| 
      
 12369 
     | 
    
         
            +
                    }
         
     | 
| 
      
 12370 
     | 
    
         
            +
                    switch (statement.type) {
         
     | 
| 
      
 12371 
     | 
    
         
            +
                      case "alter_table_alter_column_set_type":
         
     | 
| 
      
 12372 
     | 
    
         
            +
                        columnType = ` ${statement.newDataType}`;
         
     | 
| 
      
 12373 
     | 
    
         
            +
                        columnDefault = statement.columnDefault ? ` DEFAULT ${statement.columnDefault}` : "";
         
     | 
| 
      
 12374 
     | 
    
         
            +
                        columnNotNull = statement.columnNotNull ? ` NOT NULL` : "";
         
     | 
| 
      
 12375 
     | 
    
         
            +
                        break;
         
     | 
| 
      
 12376 
     | 
    
         
            +
                      case "alter_table_alter_column_drop_notnull":
         
     | 
| 
      
 12377 
     | 
    
         
            +
                        columnType = ` ${statement.newDataType}`;
         
     | 
| 
      
 12378 
     | 
    
         
            +
                        columnDefault = statement.columnDefault ? ` DEFAULT ${statement.columnDefault}` : "";
         
     | 
| 
      
 12379 
     | 
    
         
            +
                        columnNotNull = "";
         
     | 
| 
      
 12380 
     | 
    
         
            +
                        break;
         
     | 
| 
      
 12381 
     | 
    
         
            +
                      case "alter_table_alter_column_set_notnull":
         
     | 
| 
      
 12382 
     | 
    
         
            +
                        columnType = ` ${statement.newDataType}`;
         
     | 
| 
      
 12383 
     | 
    
         
            +
                        columnDefault = statement.columnDefault ? ` DEFAULT ${statement.columnDefault}` : "";
         
     | 
| 
      
 12384 
     | 
    
         
            +
                        columnNotNull = ` NOT NULL`;
         
     | 
| 
      
 12385 
     | 
    
         
            +
                        break;
         
     | 
| 
      
 12386 
     | 
    
         
            +
                      case "alter_table_alter_column_set_default":
         
     | 
| 
      
 12387 
     | 
    
         
            +
                        columnType = ` ${statement.newDataType}`;
         
     | 
| 
      
 12388 
     | 
    
         
            +
                        columnDefault = ` DEFAULT ${statement.newDefaultValue}`;
         
     | 
| 
      
 12389 
     | 
    
         
            +
                        columnNotNull = statement.columnNotNull ? ` NOT NULL` : "";
         
     | 
| 
      
 12390 
     | 
    
         
            +
                        break;
         
     | 
| 
      
 12391 
     | 
    
         
            +
                      case "alter_table_alter_column_drop_default":
         
     | 
| 
      
 12392 
     | 
    
         
            +
                        columnType = ` ${statement.newDataType}`;
         
     | 
| 
      
 12393 
     | 
    
         
            +
                        columnDefault = "";
         
     | 
| 
      
 12394 
     | 
    
         
            +
                        columnNotNull = statement.columnNotNull ? ` NOT NULL` : "";
         
     | 
| 
      
 12395 
     | 
    
         
            +
                        break;
         
     | 
| 
      
 12396 
     | 
    
         
            +
                    }
         
     | 
| 
      
 12397 
     | 
    
         
            +
                    columnDefault = columnDefault instanceof Date ? columnDefault.toISOString() : columnDefault;
         
     | 
| 
      
 12398 
     | 
    
         
            +
                    sqlStatements.push(
         
     | 
| 
      
 12399 
     | 
    
         
            +
                      `ALTER TABLE \`${tableName}\` ALTER COLUMN "${columnName}" TO "${columnName}"${columnType}${columnNotNull}${columnDefault};`
         
     | 
| 
      
 12400 
     | 
    
         
            +
                    );
         
     | 
| 
      
 12401 
     | 
    
         
            +
                    for (const index4 of indexes) {
         
     | 
| 
      
 12402 
     | 
    
         
            +
                      const indexPart = index4.isUnique ? "UNIQUE INDEX" : "INDEX";
         
     | 
| 
      
 12403 
     | 
    
         
            +
                      const whereStatement = index4.where ? ` WHERE ${index4.where}` : "";
         
     | 
| 
      
 12404 
     | 
    
         
            +
                      const uniqueString = index4.columns.map((it) => `\`${it}\``).join(",");
         
     | 
| 
      
 12405 
     | 
    
         
            +
                      const tableName2 = index4.tableName;
         
     | 
| 
      
 12406 
     | 
    
         
            +
                      sqlStatements.push(
         
     | 
| 
      
 12407 
     | 
    
         
            +
                        `CREATE ${indexPart} \`${index4.name}\` ON \`${tableName2}\` (${uniqueString})${whereStatement};`
         
     | 
| 
      
 12408 
     | 
    
         
            +
                      );
         
     | 
| 
      
 12409 
     | 
    
         
            +
                    }
         
     | 
| 
      
 12410 
     | 
    
         
            +
                    return sqlStatements;
         
     | 
| 
      
 12411 
     | 
    
         
            +
                  }
         
     | 
| 
      
 12412 
     | 
    
         
            +
                };
         
     | 
| 
       12388 
12413 
     | 
    
         
             
                MySqlModifyColumn = class extends Convertor {
         
     | 
| 
       12389 
12414 
     | 
    
         
             
                  can(statement, dialect7) {
         
     | 
| 
       12390 
12415 
     | 
    
         
             
                    return (statement.type === "alter_table_alter_column_set_type" || statement.type === "alter_table_alter_column_set_notnull" || statement.type === "alter_table_alter_column_drop_notnull" || statement.type === "alter_table_alter_column_drop_on_update" || statement.type === "alter_table_alter_column_set_on_update" || statement.type === "alter_table_alter_column_set_autoincrement" || statement.type === "alter_table_alter_column_drop_autoincrement" || statement.type === "alter_table_alter_column_set_default" || statement.type === "alter_table_alter_column_drop_default" || statement.type === "alter_table_alter_column_set_generated" || statement.type === "alter_table_alter_column_drop_generated") && dialect7 === "mysql";
         
     | 
| 
         @@ -12522,21 +12547,6 @@ var init_sqlgenerator = __esm({ 
     | 
|
| 
       12522 
12547 
     | 
    
         
             
                    return `ALTER TABLE \`${tableName}\` MODIFY COLUMN \`${columnName}\`${columnType}${columnAutoincrement}${columnNotNull}${columnDefault}${columnOnUpdate}${columnGenerated};`;
         
     | 
| 
       12523 
12548 
     | 
    
         
             
                  }
         
     | 
| 
       12524 
12549 
     | 
    
         
             
                };
         
     | 
| 
       12525 
     | 
    
         
            -
                SqliteAlterTableAlterColumnDropDefaultConvertor = class extends Convertor {
         
     | 
| 
       12526 
     | 
    
         
            -
                  can(statement, dialect7) {
         
     | 
| 
       12527 
     | 
    
         
            -
                    return statement.type === "alter_table_alter_column_drop_default" && dialect7 === "sqlite";
         
     | 
| 
       12528 
     | 
    
         
            -
                  }
         
     | 
| 
       12529 
     | 
    
         
            -
                  convert(statement) {
         
     | 
| 
       12530 
     | 
    
         
            -
                    return `/*
         
     | 
| 
       12531 
     | 
    
         
            -
             SQLite does not support "Drop default from column" out of the box, we do not generate automatic migration for that, so it has to be done manually
         
     | 
| 
       12532 
     | 
    
         
            -
             Please refer to: https://www.techonthenet.com/sqlite/tables/alter_table.php
         
     | 
| 
       12533 
     | 
    
         
            -
                              https://www.sqlite.org/lang_altertable.html
         
     | 
| 
       12534 
     | 
    
         
            -
                              https://stackoverflow.com/questions/2083543/modify-a-columns-type-in-sqlite3
         
     | 
| 
       12535 
     | 
    
         
            -
             
     | 
| 
       12536 
     | 
    
         
            -
             Due to that we don't generate migration automatically and it has to be done manually
         
     | 
| 
       12537 
     | 
    
         
            -
            */`;
         
     | 
| 
       12538 
     | 
    
         
            -
                  }
         
     | 
| 
       12539 
     | 
    
         
            -
                };
         
     | 
| 
       12540 
12550 
     | 
    
         
             
                PgAlterTableCreateCompositePrimaryKeyConvertor = class extends Convertor {
         
     | 
| 
       12541 
12551 
     | 
    
         
             
                  can(statement, dialect7) {
         
     | 
| 
       12542 
12552 
     | 
    
         
             
                    return statement.type === "create_composite_pk" && dialect7 === "postgresql";
         
     | 
| 
         @@ -12601,85 +12611,6 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT ${statement.newCo 
     | 
|
| 
       12601 
12611 
     | 
    
         
             
                    return `ALTER TABLE \`${statement.tableName}\` DROP PRIMARY KEY, ADD PRIMARY KEY(\`${newColumns.join("`,`")}\`);`;
         
     | 
| 
       12602 
12612 
     | 
    
         
             
                  }
         
     | 
| 
       12603 
12613 
     | 
    
         
             
                };
         
     | 
| 
       12604 
     | 
    
         
            -
                SqliteAlterTableCreateCompositePrimaryKeyConvertor = class extends Convertor {
         
     | 
| 
       12605 
     | 
    
         
            -
                  can(statement, dialect7) {
         
     | 
| 
       12606 
     | 
    
         
            -
                    return statement.type === "create_composite_pk" && dialect7 === "sqlite";
         
     | 
| 
       12607 
     | 
    
         
            -
                  }
         
     | 
| 
       12608 
     | 
    
         
            -
                  convert(statement) {
         
     | 
| 
       12609 
     | 
    
         
            -
                    let msg = "/*\n";
         
     | 
| 
       12610 
     | 
    
         
            -
                    msg += `You're trying to add PRIMARY KEY(${statement.data}) to '${statement.tableName}' table
         
     | 
| 
       12611 
     | 
    
         
            -
            `;
         
     | 
| 
       12612 
     | 
    
         
            -
                    msg += "SQLite does not support adding primary key to an already created table\n";
         
     | 
| 
       12613 
     | 
    
         
            -
                    msg += "You can do it in 3 steps with drizzle orm:\n";
         
     | 
| 
       12614 
     | 
    
         
            -
                    msg += " - create new mirror table with needed pk, rename current table to old_table, generate SQL\n";
         
     | 
| 
       12615 
     | 
    
         
            -
                    msg += " - migrate old data from one table to another\n";
         
     | 
| 
       12616 
     | 
    
         
            -
                    msg += " - delete old_table in schema, generate sql\n\n";
         
     | 
| 
       12617 
     | 
    
         
            -
                    msg += "or create manual migration like below:\n\n";
         
     | 
| 
       12618 
     | 
    
         
            -
                    msg += "ALTER TABLE table_name RENAME TO old_table;\n";
         
     | 
| 
       12619 
     | 
    
         
            -
                    msg += "CREATE TABLE table_name (\n";
         
     | 
| 
       12620 
     | 
    
         
            -
                    msg += "	column1 datatype [ NULL | NOT NULL ],\n";
         
     | 
| 
       12621 
     | 
    
         
            -
                    msg += "	column2 datatype [ NULL | NOT NULL ],\n";
         
     | 
| 
       12622 
     | 
    
         
            -
                    msg += "	...\n";
         
     | 
| 
       12623 
     | 
    
         
            -
                    msg += "	PRIMARY KEY (pk_col1, pk_col2, ... pk_col_n)\n";
         
     | 
| 
       12624 
     | 
    
         
            -
                    msg += " );\n";
         
     | 
| 
       12625 
     | 
    
         
            -
                    msg += "INSERT INTO table_name SELECT * FROM old_table;\n\n";
         
     | 
| 
       12626 
     | 
    
         
            -
                    msg += "Due to that we don't generate migration automatically and it has to be done manually\n";
         
     | 
| 
       12627 
     | 
    
         
            -
                    msg += "*/\n";
         
     | 
| 
       12628 
     | 
    
         
            -
                    return msg;
         
     | 
| 
       12629 
     | 
    
         
            -
                  }
         
     | 
| 
       12630 
     | 
    
         
            -
                };
         
     | 
| 
       12631 
     | 
    
         
            -
                SqliteAlterTableDeleteCompositePrimaryKeyConvertor = class extends Convertor {
         
     | 
| 
       12632 
     | 
    
         
            -
                  can(statement, dialect7) {
         
     | 
| 
       12633 
     | 
    
         
            -
                    return statement.type === "delete_composite_pk" && dialect7 === "sqlite";
         
     | 
| 
       12634 
     | 
    
         
            -
                  }
         
     | 
| 
       12635 
     | 
    
         
            -
                  convert(statement) {
         
     | 
| 
       12636 
     | 
    
         
            -
                    let msg = "/*\n";
         
     | 
| 
       12637 
     | 
    
         
            -
                    msg += `You're trying to delete PRIMARY KEY(${statement.data}) from '${statement.tableName}' table
         
     | 
| 
       12638 
     | 
    
         
            -
            `;
         
     | 
| 
       12639 
     | 
    
         
            -
                    msg += "SQLite does not supportprimary key deletion from existing table\n";
         
     | 
| 
       12640 
     | 
    
         
            -
                    msg += "You can do it in 3 steps with drizzle orm:\n";
         
     | 
| 
       12641 
     | 
    
         
            -
                    msg += " - create new mirror table table without pk, rename current table to old_table, generate SQL\n";
         
     | 
| 
       12642 
     | 
    
         
            -
                    msg += " - migrate old data from one table to another\n";
         
     | 
| 
       12643 
     | 
    
         
            -
                    msg += " - delete old_table in schema, generate sql\n\n";
         
     | 
| 
       12644 
     | 
    
         
            -
                    msg += "or create manual migration like below:\n\n";
         
     | 
| 
       12645 
     | 
    
         
            -
                    msg += "ALTER TABLE table_name RENAME TO old_table;\n";
         
     | 
| 
       12646 
     | 
    
         
            -
                    msg += "CREATE TABLE table_name (\n";
         
     | 
| 
       12647 
     | 
    
         
            -
                    msg += "	column1 datatype [ NULL | NOT NULL ],\n";
         
     | 
| 
       12648 
     | 
    
         
            -
                    msg += "	column2 datatype [ NULL | NOT NULL ],\n";
         
     | 
| 
       12649 
     | 
    
         
            -
                    msg += "	...\n";
         
     | 
| 
       12650 
     | 
    
         
            -
                    msg += "	PRIMARY KEY (pk_col1, pk_col2, ... pk_col_n)\n";
         
     | 
| 
       12651 
     | 
    
         
            -
                    msg += " );\n";
         
     | 
| 
       12652 
     | 
    
         
            -
                    msg += "INSERT INTO table_name SELECT * FROM old_table;\n\n";
         
     | 
| 
       12653 
     | 
    
         
            -
                    msg += "Due to that we don't generate migration automatically and it has to be done manually\n";
         
     | 
| 
       12654 
     | 
    
         
            -
                    msg += "*/\n";
         
     | 
| 
       12655 
     | 
    
         
            -
                    return msg;
         
     | 
| 
       12656 
     | 
    
         
            -
                  }
         
     | 
| 
       12657 
     | 
    
         
            -
                };
         
     | 
| 
       12658 
     | 
    
         
            -
                SqliteAlterTableAlterCompositePrimaryKeyConvertor = class extends Convertor {
         
     | 
| 
       12659 
     | 
    
         
            -
                  can(statement, dialect7) {
         
     | 
| 
       12660 
     | 
    
         
            -
                    return statement.type === "alter_composite_pk" && dialect7 === "sqlite";
         
     | 
| 
       12661 
     | 
    
         
            -
                  }
         
     | 
| 
       12662 
     | 
    
         
            -
                  convert(statement) {
         
     | 
| 
       12663 
     | 
    
         
            -
                    let msg = "/*\n";
         
     | 
| 
       12664 
     | 
    
         
            -
                    msg += "SQLite does not support altering primary key\n";
         
     | 
| 
       12665 
     | 
    
         
            -
                    msg += "You can do it in 3 steps with drizzle orm:\n";
         
     | 
| 
       12666 
     | 
    
         
            -
                    msg += " - create new mirror table with needed pk, rename current table to old_table, generate SQL\n";
         
     | 
| 
       12667 
     | 
    
         
            -
                    msg += " - migrate old data from one table to another\n";
         
     | 
| 
       12668 
     | 
    
         
            -
                    msg += " - delete old_table in schema, generate sql\n\n";
         
     | 
| 
       12669 
     | 
    
         
            -
                    msg += "or create manual migration like below:\n\n";
         
     | 
| 
       12670 
     | 
    
         
            -
                    msg += "ALTER TABLE table_name RENAME TO old_table;\n";
         
     | 
| 
       12671 
     | 
    
         
            -
                    msg += "CREATE TABLE table_name (\n";
         
     | 
| 
       12672 
     | 
    
         
            -
                    msg += "	column1 datatype [ NULL | NOT NULL ],\n";
         
     | 
| 
       12673 
     | 
    
         
            -
                    msg += "	column2 datatype [ NULL | NOT NULL ],\n";
         
     | 
| 
       12674 
     | 
    
         
            -
                    msg += "	...\n";
         
     | 
| 
       12675 
     | 
    
         
            -
                    msg += "	PRIMARY KEY (pk_col1, pk_col2, ... pk_col_n)\n";
         
     | 
| 
       12676 
     | 
    
         
            -
                    msg += " );\n";
         
     | 
| 
       12677 
     | 
    
         
            -
                    msg += "INSERT INTO table_name SELECT * FROM old_table;\n\n";
         
     | 
| 
       12678 
     | 
    
         
            -
                    msg += "Due to that we don't generate migration automatically and it has to be done manually\n";
         
     | 
| 
       12679 
     | 
    
         
            -
                    msg += "*/\n";
         
     | 
| 
       12680 
     | 
    
         
            -
                    return msg;
         
     | 
| 
       12681 
     | 
    
         
            -
                  }
         
     | 
| 
       12682 
     | 
    
         
            -
                };
         
     | 
| 
       12683 
12614 
     | 
    
         
             
                PgAlterTableAlterColumnSetPrimaryKeyConvertor = class extends Convertor {
         
     | 
| 
       12684 
12615 
     | 
    
         
             
                  can(statement, dialect7) {
         
     | 
| 
       12685 
12616 
     | 
    
         
             
                    return statement.type === "alter_table_alter_column_set_pk" && dialect7 === "postgresql";
         
     | 
| 
         @@ -12724,51 +12655,6 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT ${statement.newCo 
     | 
|
| 
       12724 
12655 
     | 
    
         
             
                    return `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET NOT NULL;`;
         
     | 
| 
       12725 
12656 
     | 
    
         
             
                  }
         
     | 
| 
       12726 
12657 
     | 
    
         
             
                };
         
     | 
| 
       12727 
     | 
    
         
            -
                SqliteAlterTableAlterColumnSetNotNullConvertor = class extends Convertor {
         
     | 
| 
       12728 
     | 
    
         
            -
                  can(statement, dialect7) {
         
     | 
| 
       12729 
     | 
    
         
            -
                    return statement.type === "alter_table_alter_column_set_notnull" && dialect7 === "sqlite";
         
     | 
| 
       12730 
     | 
    
         
            -
                  }
         
     | 
| 
       12731 
     | 
    
         
            -
                  convert(statement) {
         
     | 
| 
       12732 
     | 
    
         
            -
                    return `/*
         
     | 
| 
       12733 
     | 
    
         
            -
             SQLite does not support "Set not null to column" out of the box, we do not generate automatic migration for that, so it has to be done manually
         
     | 
| 
       12734 
     | 
    
         
            -
             Please refer to: https://www.techonthenet.com/sqlite/tables/alter_table.php
         
     | 
| 
       12735 
     | 
    
         
            -
                              https://www.sqlite.org/lang_altertable.html
         
     | 
| 
       12736 
     | 
    
         
            -
                              https://stackoverflow.com/questions/2083543/modify-a-columns-type-in-sqlite3
         
     | 
| 
       12737 
     | 
    
         
            -
             
     | 
| 
       12738 
     | 
    
         
            -
             Due to that we don't generate migration automatically and it has to be done manually
         
     | 
| 
       12739 
     | 
    
         
            -
            */`;
         
     | 
| 
       12740 
     | 
    
         
            -
                  }
         
     | 
| 
       12741 
     | 
    
         
            -
                };
         
     | 
| 
       12742 
     | 
    
         
            -
                SqliteAlterTableAlterColumnSetAutoincrementConvertor = class extends Convertor {
         
     | 
| 
       12743 
     | 
    
         
            -
                  can(statement, dialect7) {
         
     | 
| 
       12744 
     | 
    
         
            -
                    return statement.type === "alter_table_alter_column_set_autoincrement" && dialect7 === "sqlite";
         
     | 
| 
       12745 
     | 
    
         
            -
                  }
         
     | 
| 
       12746 
     | 
    
         
            -
                  convert(statement) {
         
     | 
| 
       12747 
     | 
    
         
            -
                    return `/*
         
     | 
| 
       12748 
     | 
    
         
            -
             SQLite does not support "Set autoincrement to a column" out of the box, we do not generate automatic migration for that, so it has to be done manually
         
     | 
| 
       12749 
     | 
    
         
            -
             Please refer to: https://www.techonthenet.com/sqlite/tables/alter_table.php
         
     | 
| 
       12750 
     | 
    
         
            -
                              https://www.sqlite.org/lang_altertable.html
         
     | 
| 
       12751 
     | 
    
         
            -
                              https://stackoverflow.com/questions/2083543/modify-a-columns-type-in-sqlite3
         
     | 
| 
       12752 
     | 
    
         
            -
             
     | 
| 
       12753 
     | 
    
         
            -
             Due to that we don't generate migration automatically and it has to be done manually
         
     | 
| 
       12754 
     | 
    
         
            -
            */`;
         
     | 
| 
       12755 
     | 
    
         
            -
                  }
         
     | 
| 
       12756 
     | 
    
         
            -
                };
         
     | 
| 
       12757 
     | 
    
         
            -
                SqliteAlterTableAlterColumnDropAutoincrementConvertor = class extends Convertor {
         
     | 
| 
       12758 
     | 
    
         
            -
                  can(statement, dialect7) {
         
     | 
| 
       12759 
     | 
    
         
            -
                    return statement.type === "alter_table_alter_column_drop_autoincrement" && dialect7 === "sqlite";
         
     | 
| 
       12760 
     | 
    
         
            -
                  }
         
     | 
| 
       12761 
     | 
    
         
            -
                  convert(statement) {
         
     | 
| 
       12762 
     | 
    
         
            -
                    return `/*
         
     | 
| 
       12763 
     | 
    
         
            -
             SQLite does not support "Drop autoincrement from a column" out of the box, we do not generate automatic migration for that, so it has to be done manually
         
     | 
| 
       12764 
     | 
    
         
            -
             Please refer to: https://www.techonthenet.com/sqlite/tables/alter_table.php
         
     | 
| 
       12765 
     | 
    
         
            -
                              https://www.sqlite.org/lang_altertable.html
         
     | 
| 
       12766 
     | 
    
         
            -
                              https://stackoverflow.com/questions/2083543/modify-a-columns-type-in-sqlite3
         
     | 
| 
       12767 
     | 
    
         
            -
             
     | 
| 
       12768 
     | 
    
         
            -
             Due to that we don't generate migration automatically and it has to be done manually
         
     | 
| 
       12769 
     | 
    
         
            -
            */`;
         
     | 
| 
       12770 
     | 
    
         
            -
                  }
         
     | 
| 
       12771 
     | 
    
         
            -
                };
         
     | 
| 
       12772 
12658 
     | 
    
         
             
                PgAlterTableAlterColumnDropNotNullConvertor = class extends Convertor {
         
     | 
| 
       12773 
12659 
     | 
    
         
             
                  can(statement, dialect7) {
         
     | 
| 
       12774 
12660 
     | 
    
         
             
                    return statement.type === "alter_table_alter_column_drop_notnull" && dialect7 === "postgresql";
         
     | 
| 
         @@ -12779,21 +12665,6 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT ${statement.newCo 
     | 
|
| 
       12779 
12665 
     | 
    
         
             
                    return `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" DROP NOT NULL;`;
         
     | 
| 
       12780 
12666 
     | 
    
         
             
                  }
         
     | 
| 
       12781 
12667 
     | 
    
         
             
                };
         
     | 
| 
       12782 
     | 
    
         
            -
                SqliteAlterTableAlterColumnDropNotNullConvertor = class extends Convertor {
         
     | 
| 
       12783 
     | 
    
         
            -
                  can(statement, dialect7) {
         
     | 
| 
       12784 
     | 
    
         
            -
                    return statement.type === "alter_table_alter_column_drop_notnull" && dialect7 === "sqlite";
         
     | 
| 
       12785 
     | 
    
         
            -
                  }
         
     | 
| 
       12786 
     | 
    
         
            -
                  convert(statement) {
         
     | 
| 
       12787 
     | 
    
         
            -
                    return `/*
         
     | 
| 
       12788 
     | 
    
         
            -
             SQLite does not support "Drop not null from column" out of the box, we do not generate automatic migration for that, so it has to be done manually
         
     | 
| 
       12789 
     | 
    
         
            -
             Please refer to: https://www.techonthenet.com/sqlite/tables/alter_table.php
         
     | 
| 
       12790 
     | 
    
         
            -
                              https://www.sqlite.org/lang_altertable.html
         
     | 
| 
       12791 
     | 
    
         
            -
                              https://stackoverflow.com/questions/2083543/modify-a-columns-type-in-sqlite3
         
     | 
| 
       12792 
     | 
    
         
            -
             
     | 
| 
       12793 
     | 
    
         
            -
             Due to that we don't generate migration automatically and it has to be done manually
         
     | 
| 
       12794 
     | 
    
         
            -
            */`;
         
     | 
| 
       12795 
     | 
    
         
            -
                  }
         
     | 
| 
       12796 
     | 
    
         
            -
                };
         
     | 
| 
       12797 
12668 
     | 
    
         
             
                PgCreateForeignKeyConvertor = class extends Convertor {
         
     | 
| 
       12798 
12669 
     | 
    
         
             
                  can(statement, dialect7) {
         
     | 
| 
       12799 
12670 
     | 
    
         
             
                    return statement.type === "create_reference" && dialect7 === "postgresql";
         
     | 
| 
         @@ -12824,18 +12695,21 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT ${statement.newCo 
     | 
|
| 
       12824 
12695 
     | 
    
         
             
                    return sql2;
         
     | 
| 
       12825 
12696 
     | 
    
         
             
                  }
         
     | 
| 
       12826 
12697 
     | 
    
         
             
                };
         
     | 
| 
       12827 
     | 
    
         
            -
                 
     | 
| 
       12828 
     | 
    
         
            -
                  can(statement, dialect7) {
         
     | 
| 
       12829 
     | 
    
         
            -
                    return statement.type === "create_reference" && dialect7 === "sqlite";
         
     | 
| 
      
 12698 
     | 
    
         
            +
                LibSQLCreateForeignKeyConvertor = class extends Convertor {
         
     | 
| 
      
 12699 
     | 
    
         
            +
                  can(statement, dialect7, driver2) {
         
     | 
| 
      
 12700 
     | 
    
         
            +
                    return statement.type === "create_reference" && dialect7 === "sqlite" && driver2 === "turso";
         
     | 
| 
       12830 
12701 
     | 
    
         
             
                  }
         
     | 
| 
       12831 
     | 
    
         
            -
                  convert(statement) {
         
     | 
| 
       12832 
     | 
    
         
            -
                     
     | 
| 
       12833 
     | 
    
         
            -
              
     | 
| 
       12834 
     | 
    
         
            -
              
     | 
| 
       12835 
     | 
    
         
            -
             
     | 
| 
       12836 
     | 
    
         
            -
             
     | 
| 
       12837 
     | 
    
         
            -
              
     | 
| 
       12838 
     | 
    
         
            -
             
     | 
| 
      
 12702 
     | 
    
         
            +
                  convert(statement, json2, action) {
         
     | 
| 
      
 12703 
     | 
    
         
            +
                    const { columnsFrom, columnsTo, tableFrom, onDelete, onUpdate, tableTo } = action === "push" ? SQLiteSquasher.unsquashPushFK(statement.data) : SQLiteSquasher.unsquashFK(statement.data);
         
     | 
| 
      
 12704 
     | 
    
         
            +
                    const { columnDefault, columnNotNull, columnType } = statement;
         
     | 
| 
      
 12705 
     | 
    
         
            +
                    const onDeleteStatement = onDelete ? ` ON DELETE ${onDelete}` : "";
         
     | 
| 
      
 12706 
     | 
    
         
            +
                    const onUpdateStatement = onUpdate ? ` ON UPDATE ${onUpdate}` : "";
         
     | 
| 
      
 12707 
     | 
    
         
            +
                    const columnsDefaultValue = columnDefault ? ` DEFAULT ${columnDefault}` : "";
         
     | 
| 
      
 12708 
     | 
    
         
            +
                    const columnNotNullValue = columnNotNull ? ` NOT NULL` : "";
         
     | 
| 
      
 12709 
     | 
    
         
            +
                    const columnTypeValue = columnType ? ` ${columnType}` : "";
         
     | 
| 
      
 12710 
     | 
    
         
            +
                    const columnFrom = columnsFrom[0];
         
     | 
| 
      
 12711 
     | 
    
         
            +
                    const columnTo = columnsTo[0];
         
     | 
| 
      
 12712 
     | 
    
         
            +
                    return `ALTER TABLE \`${tableFrom}\` ALTER COLUMN "${columnFrom}" TO "${columnFrom}"${columnTypeValue}${columnNotNullValue}${columnsDefaultValue} REFERENCES ${tableTo}(${columnTo})${onDeleteStatement}${onUpdateStatement};`;
         
     | 
| 
       12839 
12713 
     | 
    
         
             
                  }
         
     | 
| 
       12840 
12714 
     | 
    
         
             
                };
         
     | 
| 
       12841 
12715 
     | 
    
         
             
                MySqlCreateForeignKeyConvertor = class extends Convertor {
         
     | 
| 
         @@ -12884,20 +12758,6 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT ${statement.newCo 
     | 
|
| 
       12884 
12758 
     | 
    
         
             
                    return sql2;
         
     | 
| 
       12885 
12759 
     | 
    
         
             
                  }
         
     | 
| 
       12886 
12760 
     | 
    
         
             
                };
         
     | 
| 
       12887 
     | 
    
         
            -
                SqliteAlterForeignKeyConvertor = class extends Convertor {
         
     | 
| 
       12888 
     | 
    
         
            -
                  can(statement, dialect7) {
         
     | 
| 
       12889 
     | 
    
         
            -
                    return statement.type === "alter_reference" && dialect7 === "sqlite";
         
     | 
| 
       12890 
     | 
    
         
            -
                  }
         
     | 
| 
       12891 
     | 
    
         
            -
                  convert(statement) {
         
     | 
| 
       12892 
     | 
    
         
            -
                    return `/*
         
     | 
| 
       12893 
     | 
    
         
            -
             SQLite does not support "Changing existing foreign key" out of the box, we do not generate automatic migration for that, so it has to be done manually
         
     | 
| 
       12894 
     | 
    
         
            -
             Please refer to: https://www.techonthenet.com/sqlite/tables/alter_table.php
         
     | 
| 
       12895 
     | 
    
         
            -
                              https://www.sqlite.org/lang_altertable.html
         
     | 
| 
       12896 
     | 
    
         
            -
             
     | 
| 
       12897 
     | 
    
         
            -
             Due to that we don't generate migration automatically and it has to be done manually
         
     | 
| 
       12898 
     | 
    
         
            -
            */`;
         
     | 
| 
       12899 
     | 
    
         
            -
                  }
         
     | 
| 
       12900 
     | 
    
         
            -
                };
         
     | 
| 
       12901 
12761 
     | 
    
         
             
                PgDeleteForeignKeyConvertor = class extends Convertor {
         
     | 
| 
       12902 
12762 
     | 
    
         
             
                  can(statement, dialect7) {
         
     | 
| 
       12903 
12763 
     | 
    
         
             
                    return statement.type === "delete_reference" && dialect7 === "postgresql";
         
     | 
| 
         @@ -12910,20 +12770,6 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT ${statement.newCo 
     | 
|
| 
       12910 
12770 
     | 
    
         
             
            `;
         
     | 
| 
       12911 
12771 
     | 
    
         
             
                  }
         
     | 
| 
       12912 
12772 
     | 
    
         
             
                };
         
     | 
| 
       12913 
     | 
    
         
            -
                SqliteDeleteForeignKeyConvertor = class extends Convertor {
         
     | 
| 
       12914 
     | 
    
         
            -
                  can(statement, dialect7) {
         
     | 
| 
       12915 
     | 
    
         
            -
                    return statement.type === "delete_reference" && dialect7 === "sqlite";
         
     | 
| 
       12916 
     | 
    
         
            -
                  }
         
     | 
| 
       12917 
     | 
    
         
            -
                  convert(statement) {
         
     | 
| 
       12918 
     | 
    
         
            -
                    return `/*
         
     | 
| 
       12919 
     | 
    
         
            -
             SQLite does not support "Dropping foreign key" out of the box, we do not generate automatic migration for that, so it has to be done manually
         
     | 
| 
       12920 
     | 
    
         
            -
             Please refer to: https://www.techonthenet.com/sqlite/tables/alter_table.php
         
     | 
| 
       12921 
     | 
    
         
            -
                              https://www.sqlite.org/lang_altertable.html
         
     | 
| 
       12922 
     | 
    
         
            -
             
     | 
| 
       12923 
     | 
    
         
            -
             Due to that we don't generate migration automatically and it has to be done manually
         
     | 
| 
       12924 
     | 
    
         
            -
            */`;
         
     | 
| 
       12925 
     | 
    
         
            -
                  }
         
     | 
| 
       12926 
     | 
    
         
            -
                };
         
     | 
| 
       12927 
12773 
     | 
    
         
             
                MySqlDeleteForeignKeyConvertor = class extends Convertor {
         
     | 
| 
       12928 
12774 
     | 
    
         
             
                  can(statement, dialect7) {
         
     | 
| 
       12929 
12775 
     | 
    
         
             
                    return statement.type === "delete_reference" && dialect7 === "mysql";
         
     | 
| 
         @@ -13087,10 +12933,96 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT ${statement.newCo 
     | 
|
| 
       13087 
12933 
     | 
    
         
             
                    return `DROP INDEX \`${name2}\` ON \`${statement.tableName}\`;`;
         
     | 
| 
       13088 
12934 
     | 
    
         
             
                  }
         
     | 
| 
       13089 
12935 
     | 
    
         
             
                };
         
     | 
| 
      
 12936 
     | 
    
         
            +
                SQLiteRecreateTableConvertor = class extends Convertor {
         
     | 
| 
      
 12937 
     | 
    
         
            +
                  can(statement, dialect7, driver2) {
         
     | 
| 
      
 12938 
     | 
    
         
            +
                    return statement.type === "recreate_table" && dialect7 === "sqlite" && !driver2;
         
     | 
| 
      
 12939 
     | 
    
         
            +
                  }
         
     | 
| 
      
 12940 
     | 
    
         
            +
                  convert(statement) {
         
     | 
| 
      
 12941 
     | 
    
         
            +
                    const { tableName, columns, compositePKs, referenceData } = statement;
         
     | 
| 
      
 12942 
     | 
    
         
            +
                    const columnNames = columns.map((it) => `"${it.name}"`).join(", ");
         
     | 
| 
      
 12943 
     | 
    
         
            +
                    const newTableName = `__new_${tableName}`;
         
     | 
| 
      
 12944 
     | 
    
         
            +
                    const sqlStatements = [];
         
     | 
| 
      
 12945 
     | 
    
         
            +
                    sqlStatements.push(`PRAGMA foreign_keys=OFF;`);
         
     | 
| 
      
 12946 
     | 
    
         
            +
                    sqlStatements.push(
         
     | 
| 
      
 12947 
     | 
    
         
            +
                      new SQLiteCreateTableConvertor().convert({
         
     | 
| 
      
 12948 
     | 
    
         
            +
                        type: "sqlite_create_table",
         
     | 
| 
      
 12949 
     | 
    
         
            +
                        tableName: newTableName,
         
     | 
| 
      
 12950 
     | 
    
         
            +
                        columns,
         
     | 
| 
      
 12951 
     | 
    
         
            +
                        referenceData,
         
     | 
| 
      
 12952 
     | 
    
         
            +
                        compositePKs
         
     | 
| 
      
 12953 
     | 
    
         
            +
                      })
         
     | 
| 
      
 12954 
     | 
    
         
            +
                    );
         
     | 
| 
      
 12955 
     | 
    
         
            +
                    sqlStatements.push(
         
     | 
| 
      
 12956 
     | 
    
         
            +
                      `INSERT INTO \`${newTableName}\`(${columnNames}) SELECT ${columnNames} FROM \`${tableName}\`;`
         
     | 
| 
      
 12957 
     | 
    
         
            +
                    );
         
     | 
| 
      
 12958 
     | 
    
         
            +
                    sqlStatements.push(
         
     | 
| 
      
 12959 
     | 
    
         
            +
                      new SQLiteDropTableConvertor().convert({
         
     | 
| 
      
 12960 
     | 
    
         
            +
                        type: "drop_table",
         
     | 
| 
      
 12961 
     | 
    
         
            +
                        tableName,
         
     | 
| 
      
 12962 
     | 
    
         
            +
                        schema: ""
         
     | 
| 
      
 12963 
     | 
    
         
            +
                      })
         
     | 
| 
      
 12964 
     | 
    
         
            +
                    );
         
     | 
| 
      
 12965 
     | 
    
         
            +
                    sqlStatements.push(
         
     | 
| 
      
 12966 
     | 
    
         
            +
                      new SqliteRenameTableConvertor().convert({
         
     | 
| 
      
 12967 
     | 
    
         
            +
                        fromSchema: "",
         
     | 
| 
      
 12968 
     | 
    
         
            +
                        tableNameFrom: newTableName,
         
     | 
| 
      
 12969 
     | 
    
         
            +
                        tableNameTo: tableName,
         
     | 
| 
      
 12970 
     | 
    
         
            +
                        toSchema: "",
         
     | 
| 
      
 12971 
     | 
    
         
            +
                        type: "rename_table"
         
     | 
| 
      
 12972 
     | 
    
         
            +
                      })
         
     | 
| 
      
 12973 
     | 
    
         
            +
                    );
         
     | 
| 
      
 12974 
     | 
    
         
            +
                    sqlStatements.push(`PRAGMA foreign_keys=ON;`);
         
     | 
| 
      
 12975 
     | 
    
         
            +
                    return sqlStatements;
         
     | 
| 
      
 12976 
     | 
    
         
            +
                  }
         
     | 
| 
      
 12977 
     | 
    
         
            +
                };
         
     | 
| 
      
 12978 
     | 
    
         
            +
                LibSQLRecreateTableConvertor = class extends Convertor {
         
     | 
| 
      
 12979 
     | 
    
         
            +
                  can(statement, dialect7, driver2) {
         
     | 
| 
      
 12980 
     | 
    
         
            +
                    return statement.type === "recreate_table" && dialect7 === "sqlite" && driver2 === "turso";
         
     | 
| 
      
 12981 
     | 
    
         
            +
                  }
         
     | 
| 
      
 12982 
     | 
    
         
            +
                  convert(statement) {
         
     | 
| 
      
 12983 
     | 
    
         
            +
                    const { tableName, columns, compositePKs, referenceData } = statement;
         
     | 
| 
      
 12984 
     | 
    
         
            +
                    const columnNames = columns.map((it) => `"${it.name}"`).join(", ");
         
     | 
| 
      
 12985 
     | 
    
         
            +
                    const newTableName = `__new_${tableName}`;
         
     | 
| 
      
 12986 
     | 
    
         
            +
                    const sqlStatements = [];
         
     | 
| 
      
 12987 
     | 
    
         
            +
                    sqlStatements.push(`PRAGMA foreign_keys=OFF;`);
         
     | 
| 
      
 12988 
     | 
    
         
            +
                    sqlStatements.push(
         
     | 
| 
      
 12989 
     | 
    
         
            +
                      new SQLiteCreateTableConvertor().convert({
         
     | 
| 
      
 12990 
     | 
    
         
            +
                        type: "sqlite_create_table",
         
     | 
| 
      
 12991 
     | 
    
         
            +
                        tableName: newTableName,
         
     | 
| 
      
 12992 
     | 
    
         
            +
                        columns,
         
     | 
| 
      
 12993 
     | 
    
         
            +
                        referenceData,
         
     | 
| 
      
 12994 
     | 
    
         
            +
                        compositePKs
         
     | 
| 
      
 12995 
     | 
    
         
            +
                      })
         
     | 
| 
      
 12996 
     | 
    
         
            +
                    );
         
     | 
| 
      
 12997 
     | 
    
         
            +
                    sqlStatements.push(
         
     | 
| 
      
 12998 
     | 
    
         
            +
                      `INSERT INTO \`${newTableName}\`(${columnNames}) SELECT ${columnNames} FROM \`${tableName}\`;`
         
     | 
| 
      
 12999 
     | 
    
         
            +
                    );
         
     | 
| 
      
 13000 
     | 
    
         
            +
                    sqlStatements.push(
         
     | 
| 
      
 13001 
     | 
    
         
            +
                      new SQLiteDropTableConvertor().convert({
         
     | 
| 
      
 13002 
     | 
    
         
            +
                        type: "drop_table",
         
     | 
| 
      
 13003 
     | 
    
         
            +
                        tableName,
         
     | 
| 
      
 13004 
     | 
    
         
            +
                        schema: ""
         
     | 
| 
      
 13005 
     | 
    
         
            +
                      })
         
     | 
| 
      
 13006 
     | 
    
         
            +
                    );
         
     | 
| 
      
 13007 
     | 
    
         
            +
                    sqlStatements.push(
         
     | 
| 
      
 13008 
     | 
    
         
            +
                      new SqliteRenameTableConvertor().convert({
         
     | 
| 
      
 13009 
     | 
    
         
            +
                        fromSchema: "",
         
     | 
| 
      
 13010 
     | 
    
         
            +
                        tableNameFrom: newTableName,
         
     | 
| 
      
 13011 
     | 
    
         
            +
                        tableNameTo: tableName,
         
     | 
| 
      
 13012 
     | 
    
         
            +
                        toSchema: "",
         
     | 
| 
      
 13013 
     | 
    
         
            +
                        type: "rename_table"
         
     | 
| 
      
 13014 
     | 
    
         
            +
                      })
         
     | 
| 
      
 13015 
     | 
    
         
            +
                    );
         
     | 
| 
      
 13016 
     | 
    
         
            +
                    sqlStatements.push(`PRAGMA foreign_keys=ON;`);
         
     | 
| 
      
 13017 
     | 
    
         
            +
                    return sqlStatements;
         
     | 
| 
      
 13018 
     | 
    
         
            +
                  }
         
     | 
| 
      
 13019 
     | 
    
         
            +
                };
         
     | 
| 
       13090 
13020 
     | 
    
         
             
                convertors = [];
         
     | 
| 
       13091 
13021 
     | 
    
         
             
                convertors.push(new PgCreateTableConvertor());
         
     | 
| 
       13092 
13022 
     | 
    
         
             
                convertors.push(new MySqlCreateTableConvertor());
         
     | 
| 
       13093 
13023 
     | 
    
         
             
                convertors.push(new SQLiteCreateTableConvertor());
         
     | 
| 
      
 13024 
     | 
    
         
            +
                convertors.push(new SQLiteRecreateTableConvertor());
         
     | 
| 
      
 13025 
     | 
    
         
            +
                convertors.push(new LibSQLRecreateTableConvertor());
         
     | 
| 
       13094 
13026 
     | 
    
         
             
                convertors.push(new CreateTypeEnumConvertor());
         
     | 
| 
       13095 
13027 
     | 
    
         
             
                convertors.push(new CreatePgSequenceConvertor());
         
     | 
| 
       13096 
13028 
     | 
    
         
             
                convertors.push(new DropPgSequenceConvertor());
         
     | 
| 
         @@ -13138,6 +13070,7 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT ${statement.newCo 
     | 
|
| 
       13138 
13070 
     | 
    
         
             
                convertors.push(new SqliteAlterTableAlterColumnAlterGeneratedConvertor());
         
     | 
| 
       13139 
13071 
     | 
    
         
             
                convertors.push(new SqliteAlterTableAlterColumnSetExpressionConvertor());
         
     | 
| 
       13140 
13072 
     | 
    
         
             
                convertors.push(new MySqlModifyColumn());
         
     | 
| 
      
 13073 
     | 
    
         
            +
                convertors.push(new LibSQLModifyColumn());
         
     | 
| 
       13141 
13074 
     | 
    
         
             
                convertors.push(new PgCreateForeignKeyConvertor());
         
     | 
| 
       13142 
13075 
     | 
    
         
             
                convertors.push(new MySqlCreateForeignKeyConvertor());
         
     | 
| 
       13143 
13076 
     | 
    
         
             
                convertors.push(new PgAlterForeignKeyConvertor());
         
     | 
| 
         @@ -13149,24 +13082,10 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT ${statement.newCo 
     | 
|
| 
       13149 
13082 
     | 
    
         
             
                convertors.push(new PgAlterTableSetSchemaConvertor());
         
     | 
| 
       13150 
13083 
     | 
    
         
             
                convertors.push(new PgAlterTableSetNewSchemaConvertor());
         
     | 
| 
       13151 
13084 
     | 
    
         
             
                convertors.push(new PgAlterTableRemoveFromSchemaConvertor());
         
     | 
| 
       13152 
     | 
    
         
            -
                convertors.push(new  
     | 
| 
       13153 
     | 
    
         
            -
                convertors.push(new SqliteAlterForeignKeyConvertor());
         
     | 
| 
       13154 
     | 
    
         
            -
                convertors.push(new SqliteDeleteForeignKeyConvertor());
         
     | 
| 
       13155 
     | 
    
         
            -
                convertors.push(new SqliteCreateForeignKeyConvertor());
         
     | 
| 
       13156 
     | 
    
         
            -
                convertors.push(new SQLiteAlterTableAddUniqueConstraintConvertor());
         
     | 
| 
       13157 
     | 
    
         
            -
                convertors.push(new SQLiteAlterTableDropUniqueConstraintConvertor());
         
     | 
| 
      
 13085 
     | 
    
         
            +
                convertors.push(new LibSQLCreateForeignKeyConvertor());
         
     | 
| 
       13158 
13086 
     | 
    
         
             
                convertors.push(new PgAlterTableAlterColumnDropGenerated());
         
     | 
| 
       13159 
13087 
     | 
    
         
             
                convertors.push(new PgAlterTableAlterColumnSetGenerated());
         
     | 
| 
       13160 
13088 
     | 
    
         
             
                convertors.push(new PgAlterTableAlterColumnAlterGenerated());
         
     | 
| 
       13161 
     | 
    
         
            -
                convertors.push(new SqliteAlterTableAlterColumnSetNotNullConvertor());
         
     | 
| 
       13162 
     | 
    
         
            -
                convertors.push(new SqliteAlterTableAlterColumnDropNotNullConvertor());
         
     | 
| 
       13163 
     | 
    
         
            -
                convertors.push(new SqliteAlterTableAlterColumnSetDefaultConvertor());
         
     | 
| 
       13164 
     | 
    
         
            -
                convertors.push(new SqliteAlterTableAlterColumnDropDefaultConvertor());
         
     | 
| 
       13165 
     | 
    
         
            -
                convertors.push(new SqliteAlterTableAlterColumnSetAutoincrementConvertor());
         
     | 
| 
       13166 
     | 
    
         
            -
                convertors.push(new SqliteAlterTableAlterColumnDropAutoincrementConvertor());
         
     | 
| 
       13167 
     | 
    
         
            -
                convertors.push(new SqliteAlterTableCreateCompositePrimaryKeyConvertor());
         
     | 
| 
       13168 
     | 
    
         
            -
                convertors.push(new SqliteAlterTableDeleteCompositePrimaryKeyConvertor());
         
     | 
| 
       13169 
     | 
    
         
            -
                convertors.push(new SqliteAlterTableAlterCompositePrimaryKeyConvertor());
         
     | 
| 
       13170 
13089 
     | 
    
         
             
                convertors.push(new PgAlterTableCreateCompositePrimaryKeyConvertor());
         
     | 
| 
       13171 
13090 
     | 
    
         
             
                convertors.push(new PgAlterTableDeleteCompositePrimaryKeyConvertor());
         
     | 
| 
       13172 
13091 
     | 
    
         
             
                convertors.push(new PgAlterTableAlterCompositePrimaryKeyConvertor());
         
     | 
| 
         @@ -13175,19 +13094,6 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT ${statement.newCo 
     | 
|
| 
       13175 
13094 
     | 
    
         
             
                convertors.push(new MySqlAlterTableCreateCompositePrimaryKeyConvertor());
         
     | 
| 
       13176 
13095 
     | 
    
         
             
                convertors.push(new MySqlAlterTableAddPk());
         
     | 
| 
       13177 
13096 
     | 
    
         
             
                convertors.push(new MySqlAlterTableAlterCompositePrimaryKeyConvertor());
         
     | 
| 
       13178 
     | 
    
         
            -
                fromJson = (statements, dialect7) => {
         
     | 
| 
       13179 
     | 
    
         
            -
                  const result = statements.flatMap((statement) => {
         
     | 
| 
       13180 
     | 
    
         
            -
                    const filtered = convertors.filter((it) => {
         
     | 
| 
       13181 
     | 
    
         
            -
                      return it.can(statement, dialect7);
         
     | 
| 
       13182 
     | 
    
         
            -
                    });
         
     | 
| 
       13183 
     | 
    
         
            -
                    const convertor = filtered.length === 1 ? filtered[0] : void 0;
         
     | 
| 
       13184 
     | 
    
         
            -
                    if (!convertor) {
         
     | 
| 
       13185 
     | 
    
         
            -
                      return "";
         
     | 
| 
       13186 
     | 
    
         
            -
                    }
         
     | 
| 
       13187 
     | 
    
         
            -
                    return convertor.convert(statement);
         
     | 
| 
       13188 
     | 
    
         
            -
                  }).filter((it) => it !== "");
         
     | 
| 
       13189 
     | 
    
         
            -
                  return result;
         
     | 
| 
       13190 
     | 
    
         
            -
                };
         
     | 
| 
       13191 
13097 
     | 
    
         
             
                https: `
         
     | 
| 
       13192 
13098 
     | 
    
         
             
            create table users (
         
     | 
| 
       13193 
13099 
     | 
    
         
             
            	id int,
         
     | 
| 
         @@ -13214,12 +13120,248 @@ drop type __venum; 
     | 
|
| 
       13214 
13120 
     | 
    
         
             
              }
         
     | 
| 
       13215 
13121 
     | 
    
         
             
            });
         
     | 
| 
       13216 
13122 
     | 
    
         | 
| 
      
 13123 
     | 
    
         
            +
            // src/cli/commands/sqlitePushUtils.ts
         
     | 
| 
      
 13124 
     | 
    
         
            +
            var _moveDataStatements, getOldTableName, getNewTableName, logSuggestionsAndReturn;
         
     | 
| 
      
 13125 
     | 
    
         
            +
            var init_sqlitePushUtils = __esm({
         
     | 
| 
      
 13126 
     | 
    
         
            +
              "src/cli/commands/sqlitePushUtils.ts"() {
         
     | 
| 
      
 13127 
     | 
    
         
            +
                "use strict";
         
     | 
| 
      
 13128 
     | 
    
         
            +
                init_source();
         
     | 
| 
      
 13129 
     | 
    
         
            +
                init_sqliteSchema();
         
     | 
| 
      
 13130 
     | 
    
         
            +
                init_sqlgenerator();
         
     | 
| 
      
 13131 
     | 
    
         
            +
                init_utils();
         
     | 
| 
      
 13132 
     | 
    
         
            +
                _moveDataStatements = (tableName, json, dataLoss = false) => {
         
     | 
| 
      
 13133 
     | 
    
         
            +
                  const statements = [];
         
     | 
| 
      
 13134 
     | 
    
         
            +
                  const newTableName = `__new_${tableName}`;
         
     | 
| 
      
 13135 
     | 
    
         
            +
                  const tableColumns = Object.values(json.tables[tableName].columns);
         
     | 
| 
      
 13136 
     | 
    
         
            +
                  const referenceData = Object.values(json.tables[tableName].foreignKeys);
         
     | 
| 
      
 13137 
     | 
    
         
            +
                  const compositePKs = Object.values(
         
     | 
| 
      
 13138 
     | 
    
         
            +
                    json.tables[tableName].compositePrimaryKeys
         
     | 
| 
      
 13139 
     | 
    
         
            +
                  ).map((it) => SQLiteSquasher.unsquashPK(it));
         
     | 
| 
      
 13140 
     | 
    
         
            +
                  const fks = referenceData.map((it) => SQLiteSquasher.unsquashPushFK(it));
         
     | 
| 
      
 13141 
     | 
    
         
            +
                  statements.push(
         
     | 
| 
      
 13142 
     | 
    
         
            +
                    new SQLiteCreateTableConvertor().convert({
         
     | 
| 
      
 13143 
     | 
    
         
            +
                      type: "sqlite_create_table",
         
     | 
| 
      
 13144 
     | 
    
         
            +
                      tableName: newTableName,
         
     | 
| 
      
 13145 
     | 
    
         
            +
                      columns: tableColumns,
         
     | 
| 
      
 13146 
     | 
    
         
            +
                      referenceData: fks,
         
     | 
| 
      
 13147 
     | 
    
         
            +
                      compositePKs
         
     | 
| 
      
 13148 
     | 
    
         
            +
                    })
         
     | 
| 
      
 13149 
     | 
    
         
            +
                  );
         
     | 
| 
      
 13150 
     | 
    
         
            +
                  if (!dataLoss) {
         
     | 
| 
      
 13151 
     | 
    
         
            +
                    const columns = Object.keys(json.tables[tableName].columns).map(
         
     | 
| 
      
 13152 
     | 
    
         
            +
                      (c) => `"${c}"`
         
     | 
| 
      
 13153 
     | 
    
         
            +
                    );
         
     | 
| 
      
 13154 
     | 
    
         
            +
                    statements.push(
         
     | 
| 
      
 13155 
     | 
    
         
            +
                      `INSERT INTO \`${newTableName}\`(${columns.join(
         
     | 
| 
      
 13156 
     | 
    
         
            +
                        ", "
         
     | 
| 
      
 13157 
     | 
    
         
            +
                      )}) SELECT ${columns.join(", ")} FROM \`${tableName}\`;`
         
     | 
| 
      
 13158 
     | 
    
         
            +
                    );
         
     | 
| 
      
 13159 
     | 
    
         
            +
                  }
         
     | 
| 
      
 13160 
     | 
    
         
            +
                  statements.push(
         
     | 
| 
      
 13161 
     | 
    
         
            +
                    new SQLiteDropTableConvertor().convert({
         
     | 
| 
      
 13162 
     | 
    
         
            +
                      type: "drop_table",
         
     | 
| 
      
 13163 
     | 
    
         
            +
                      tableName,
         
     | 
| 
      
 13164 
     | 
    
         
            +
                      schema: ""
         
     | 
| 
      
 13165 
     | 
    
         
            +
                    })
         
     | 
| 
      
 13166 
     | 
    
         
            +
                  );
         
     | 
| 
      
 13167 
     | 
    
         
            +
                  statements.push(
         
     | 
| 
      
 13168 
     | 
    
         
            +
                    new SqliteRenameTableConvertor().convert({
         
     | 
| 
      
 13169 
     | 
    
         
            +
                      fromSchema: "",
         
     | 
| 
      
 13170 
     | 
    
         
            +
                      tableNameFrom: newTableName,
         
     | 
| 
      
 13171 
     | 
    
         
            +
                      tableNameTo: tableName,
         
     | 
| 
      
 13172 
     | 
    
         
            +
                      toSchema: "",
         
     | 
| 
      
 13173 
     | 
    
         
            +
                      type: "rename_table"
         
     | 
| 
      
 13174 
     | 
    
         
            +
                    })
         
     | 
| 
      
 13175 
     | 
    
         
            +
                  );
         
     | 
| 
      
 13176 
     | 
    
         
            +
                  for (const idx of Object.values(json.tables[tableName].indexes)) {
         
     | 
| 
      
 13177 
     | 
    
         
            +
                    statements.push(
         
     | 
| 
      
 13178 
     | 
    
         
            +
                      new CreateSqliteIndexConvertor().convert({
         
     | 
| 
      
 13179 
     | 
    
         
            +
                        type: "create_index",
         
     | 
| 
      
 13180 
     | 
    
         
            +
                        tableName,
         
     | 
| 
      
 13181 
     | 
    
         
            +
                        schema: "",
         
     | 
| 
      
 13182 
     | 
    
         
            +
                        data: idx
         
     | 
| 
      
 13183 
     | 
    
         
            +
                      })
         
     | 
| 
      
 13184 
     | 
    
         
            +
                    );
         
     | 
| 
      
 13185 
     | 
    
         
            +
                  }
         
     | 
| 
      
 13186 
     | 
    
         
            +
                  return statements;
         
     | 
| 
      
 13187 
     | 
    
         
            +
                };
         
     | 
| 
      
 13188 
     | 
    
         
            +
                getOldTableName = (tableName, meta) => {
         
     | 
| 
      
 13189 
     | 
    
         
            +
                  for (const key of Object.keys(meta.tables)) {
         
     | 
| 
      
 13190 
     | 
    
         
            +
                    const value = meta.tables[key];
         
     | 
| 
      
 13191 
     | 
    
         
            +
                    if (`"${tableName}"` === value) {
         
     | 
| 
      
 13192 
     | 
    
         
            +
                      return key.substring(1, key.length - 1);
         
     | 
| 
      
 13193 
     | 
    
         
            +
                    }
         
     | 
| 
      
 13194 
     | 
    
         
            +
                  }
         
     | 
| 
      
 13195 
     | 
    
         
            +
                  return tableName;
         
     | 
| 
      
 13196 
     | 
    
         
            +
                };
         
     | 
| 
      
 13197 
     | 
    
         
            +
                getNewTableName = (tableName, meta) => {
         
     | 
| 
      
 13198 
     | 
    
         
            +
                  if (typeof meta.tables[`"${tableName}"`] !== "undefined") {
         
     | 
| 
      
 13199 
     | 
    
         
            +
                    return meta.tables[`"${tableName}"`].substring(
         
     | 
| 
      
 13200 
     | 
    
         
            +
                      1,
         
     | 
| 
      
 13201 
     | 
    
         
            +
                      meta.tables[`"${tableName}"`].length - 1
         
     | 
| 
      
 13202 
     | 
    
         
            +
                    );
         
     | 
| 
      
 13203 
     | 
    
         
            +
                  }
         
     | 
| 
      
 13204 
     | 
    
         
            +
                  return tableName;
         
     | 
| 
      
 13205 
     | 
    
         
            +
                };
         
     | 
| 
      
 13206 
     | 
    
         
            +
                logSuggestionsAndReturn = async (connection, statements, json1, json2, meta) => {
         
     | 
| 
      
 13207 
     | 
    
         
            +
                  let shouldAskForApprove = false;
         
     | 
| 
      
 13208 
     | 
    
         
            +
                  const statementsToExecute = [];
         
     | 
| 
      
 13209 
     | 
    
         
            +
                  const infoToPrint = [];
         
     | 
| 
      
 13210 
     | 
    
         
            +
                  const tablesToRemove = [];
         
     | 
| 
      
 13211 
     | 
    
         
            +
                  const columnsToRemove = [];
         
     | 
| 
      
 13212 
     | 
    
         
            +
                  const schemasToRemove = [];
         
     | 
| 
      
 13213 
     | 
    
         
            +
                  const tablesToTruncate = [];
         
     | 
| 
      
 13214 
     | 
    
         
            +
                  for (const statement of statements) {
         
     | 
| 
      
 13215 
     | 
    
         
            +
                    if (statement.type === "drop_table") {
         
     | 
| 
      
 13216 
     | 
    
         
            +
                      const res = await connection.query(
         
     | 
| 
      
 13217 
     | 
    
         
            +
                        `select count(*) as count from \`${statement.tableName}\``
         
     | 
| 
      
 13218 
     | 
    
         
            +
                      );
         
     | 
| 
      
 13219 
     | 
    
         
            +
                      const count2 = Number(res[0].count);
         
     | 
| 
      
 13220 
     | 
    
         
            +
                      if (count2 > 0) {
         
     | 
| 
      
 13221 
     | 
    
         
            +
                        infoToPrint.push(
         
     | 
| 
      
 13222 
     | 
    
         
            +
                          `\xB7 You're about to delete ${source_default.underline(
         
     | 
| 
      
 13223 
     | 
    
         
            +
                            statement.tableName
         
     | 
| 
      
 13224 
     | 
    
         
            +
                          )} table with ${count2} items`
         
     | 
| 
      
 13225 
     | 
    
         
            +
                        );
         
     | 
| 
      
 13226 
     | 
    
         
            +
                        tablesToRemove.push(statement.tableName);
         
     | 
| 
      
 13227 
     | 
    
         
            +
                        shouldAskForApprove = true;
         
     | 
| 
      
 13228 
     | 
    
         
            +
                      }
         
     | 
| 
      
 13229 
     | 
    
         
            +
                      const fromJsonStatement = fromJson([statement], "sqlite", "push");
         
     | 
| 
      
 13230 
     | 
    
         
            +
                      statementsToExecute.push(
         
     | 
| 
      
 13231 
     | 
    
         
            +
                        ...Array.isArray(fromJsonStatement) ? fromJsonStatement : [fromJsonStatement]
         
     | 
| 
      
 13232 
     | 
    
         
            +
                      );
         
     | 
| 
      
 13233 
     | 
    
         
            +
                    } else if (statement.type === "alter_table_drop_column") {
         
     | 
| 
      
 13234 
     | 
    
         
            +
                      const tableName = statement.tableName;
         
     | 
| 
      
 13235 
     | 
    
         
            +
                      const columnName = statement.columnName;
         
     | 
| 
      
 13236 
     | 
    
         
            +
                      const res = await connection.query(
         
     | 
| 
      
 13237 
     | 
    
         
            +
                        `select count(\`${tableName}\`.\`${columnName}\`) as count from \`${tableName}\``
         
     | 
| 
      
 13238 
     | 
    
         
            +
                      );
         
     | 
| 
      
 13239 
     | 
    
         
            +
                      const count2 = Number(res[0].count);
         
     | 
| 
      
 13240 
     | 
    
         
            +
                      if (count2 > 0) {
         
     | 
| 
      
 13241 
     | 
    
         
            +
                        infoToPrint.push(
         
     | 
| 
      
 13242 
     | 
    
         
            +
                          `\xB7 You're about to delete ${source_default.underline(
         
     | 
| 
      
 13243 
     | 
    
         
            +
                            columnName
         
     | 
| 
      
 13244 
     | 
    
         
            +
                          )} column in ${tableName} table with ${count2} items`
         
     | 
| 
      
 13245 
     | 
    
         
            +
                        );
         
     | 
| 
      
 13246 
     | 
    
         
            +
                        columnsToRemove.push(`${tableName}_${statement.columnName}`);
         
     | 
| 
      
 13247 
     | 
    
         
            +
                        shouldAskForApprove = true;
         
     | 
| 
      
 13248 
     | 
    
         
            +
                      }
         
     | 
| 
      
 13249 
     | 
    
         
            +
                      const fromJsonStatement = fromJson([statement], "sqlite", "push");
         
     | 
| 
      
 13250 
     | 
    
         
            +
                      statementsToExecute.push(
         
     | 
| 
      
 13251 
     | 
    
         
            +
                        ...Array.isArray(fromJsonStatement) ? fromJsonStatement : [fromJsonStatement]
         
     | 
| 
      
 13252 
     | 
    
         
            +
                      );
         
     | 
| 
      
 13253 
     | 
    
         
            +
                    } else if (statement.type === "sqlite_alter_table_add_column" && (statement.column.notNull && !statement.column.default)) {
         
     | 
| 
      
 13254 
     | 
    
         
            +
                      const tableName = statement.tableName;
         
     | 
| 
      
 13255 
     | 
    
         
            +
                      const columnName = statement.column.name;
         
     | 
| 
      
 13256 
     | 
    
         
            +
                      const res = await connection.query(
         
     | 
| 
      
 13257 
     | 
    
         
            +
                        `select count(*) as count from \`${tableName}\``
         
     | 
| 
      
 13258 
     | 
    
         
            +
                      );
         
     | 
| 
      
 13259 
     | 
    
         
            +
                      const count2 = Number(res[0].count);
         
     | 
| 
      
 13260 
     | 
    
         
            +
                      if (count2 > 0) {
         
     | 
| 
      
 13261 
     | 
    
         
            +
                        infoToPrint.push(
         
     | 
| 
      
 13262 
     | 
    
         
            +
                          `\xB7 You're about to add not-null ${source_default.underline(
         
     | 
| 
      
 13263 
     | 
    
         
            +
                            columnName
         
     | 
| 
      
 13264 
     | 
    
         
            +
                          )} column without default value, which contains ${count2} items`
         
     | 
| 
      
 13265 
     | 
    
         
            +
                        );
         
     | 
| 
      
 13266 
     | 
    
         
            +
                        tablesToTruncate.push(tableName);
         
     | 
| 
      
 13267 
     | 
    
         
            +
                        statementsToExecute.push(`delete from ${tableName};`);
         
     | 
| 
      
 13268 
     | 
    
         
            +
                        shouldAskForApprove = true;
         
     | 
| 
      
 13269 
     | 
    
         
            +
                      }
         
     | 
| 
      
 13270 
     | 
    
         
            +
                      const fromJsonStatement = fromJson([statement], "sqlite", "push");
         
     | 
| 
      
 13271 
     | 
    
         
            +
                      statementsToExecute.push(
         
     | 
| 
      
 13272 
     | 
    
         
            +
                        ...Array.isArray(fromJsonStatement) ? fromJsonStatement : [fromJsonStatement]
         
     | 
| 
      
 13273 
     | 
    
         
            +
                      );
         
     | 
| 
      
 13274 
     | 
    
         
            +
                    } else if (statement.type === "recreate_table") {
         
     | 
| 
      
 13275 
     | 
    
         
            +
                      const tableName = statement.tableName;
         
     | 
| 
      
 13276 
     | 
    
         
            +
                      const oldTableName = getOldTableName(tableName, meta);
         
     | 
| 
      
 13277 
     | 
    
         
            +
                      let dataLoss = false;
         
     | 
| 
      
 13278 
     | 
    
         
            +
                      const prevColumnNames = Object.keys(json1.tables[oldTableName].columns);
         
     | 
| 
      
 13279 
     | 
    
         
            +
                      const currentColumnNames = Object.keys(json2.tables[tableName].columns);
         
     | 
| 
      
 13280 
     | 
    
         
            +
                      const { removedColumns, addedColumns } = findAddedAndRemoved(
         
     | 
| 
      
 13281 
     | 
    
         
            +
                        prevColumnNames,
         
     | 
| 
      
 13282 
     | 
    
         
            +
                        currentColumnNames
         
     | 
| 
      
 13283 
     | 
    
         
            +
                      );
         
     | 
| 
      
 13284 
     | 
    
         
            +
                      if (removedColumns.length) {
         
     | 
| 
      
 13285 
     | 
    
         
            +
                        for (const removedColumn of removedColumns) {
         
     | 
| 
      
 13286 
     | 
    
         
            +
                          const res = await connection.query(
         
     | 
| 
      
 13287 
     | 
    
         
            +
                            `select count(\`${tableName}\`.\`${removedColumn}\`) as count from \`${tableName}\``
         
     | 
| 
      
 13288 
     | 
    
         
            +
                          );
         
     | 
| 
      
 13289 
     | 
    
         
            +
                          const count2 = Number(res[0].count);
         
     | 
| 
      
 13290 
     | 
    
         
            +
                          if (count2 > 0) {
         
     | 
| 
      
 13291 
     | 
    
         
            +
                            infoToPrint.push(
         
     | 
| 
      
 13292 
     | 
    
         
            +
                              `\xB7 You're about to delete ${source_default.underline(
         
     | 
| 
      
 13293 
     | 
    
         
            +
                                removedColumn
         
     | 
| 
      
 13294 
     | 
    
         
            +
                              )} column in ${tableName} table with ${count2} items`
         
     | 
| 
      
 13295 
     | 
    
         
            +
                            );
         
     | 
| 
      
 13296 
     | 
    
         
            +
                            columnsToRemove.push(removedColumn);
         
     | 
| 
      
 13297 
     | 
    
         
            +
                            shouldAskForApprove = true;
         
     | 
| 
      
 13298 
     | 
    
         
            +
                          }
         
     | 
| 
      
 13299 
     | 
    
         
            +
                        }
         
     | 
| 
      
 13300 
     | 
    
         
            +
                      }
         
     | 
| 
      
 13301 
     | 
    
         
            +
                      if (addedColumns.length) {
         
     | 
| 
      
 13302 
     | 
    
         
            +
                        for (const addedColumn of addedColumns) {
         
     | 
| 
      
 13303 
     | 
    
         
            +
                          const [res] = await connection.query(
         
     | 
| 
      
 13304 
     | 
    
         
            +
                            `select count(*) as count from \`${tableName}\``
         
     | 
| 
      
 13305 
     | 
    
         
            +
                          );
         
     | 
| 
      
 13306 
     | 
    
         
            +
                          const columnConf = json2.tables[tableName].columns[addedColumn];
         
     | 
| 
      
 13307 
     | 
    
         
            +
                          const count2 = Number(res.count);
         
     | 
| 
      
 13308 
     | 
    
         
            +
                          if (count2 > 0 && columnConf.notNull && !columnConf.default) {
         
     | 
| 
      
 13309 
     | 
    
         
            +
                            dataLoss = true;
         
     | 
| 
      
 13310 
     | 
    
         
            +
                            infoToPrint.push(
         
     | 
| 
      
 13311 
     | 
    
         
            +
                              `\xB7 You're about to add not-null ${source_default.underline(
         
     | 
| 
      
 13312 
     | 
    
         
            +
                                addedColumn
         
     | 
| 
      
 13313 
     | 
    
         
            +
                              )} column without default value to table, which contains ${count2} items`
         
     | 
| 
      
 13314 
     | 
    
         
            +
                            );
         
     | 
| 
      
 13315 
     | 
    
         
            +
                            shouldAskForApprove = true;
         
     | 
| 
      
 13316 
     | 
    
         
            +
                            tablesToTruncate.push(tableName);
         
     | 
| 
      
 13317 
     | 
    
         
            +
                            statementsToExecute.push(`DELETE FROM \`${tableName}\`;`);
         
     | 
| 
      
 13318 
     | 
    
         
            +
                          }
         
     | 
| 
      
 13319 
     | 
    
         
            +
                        }
         
     | 
| 
      
 13320 
     | 
    
         
            +
                      }
         
     | 
| 
      
 13321 
     | 
    
         
            +
                      const tablesReferencingCurrent = [];
         
     | 
| 
      
 13322 
     | 
    
         
            +
                      for (const table4 of Object.values(json2.tables)) {
         
     | 
| 
      
 13323 
     | 
    
         
            +
                        const tablesRefs = Object.values(json2.tables[table4.name].foreignKeys).filter((t) => SQLiteSquasher.unsquashPushFK(t).tableTo === tableName).map((it) => SQLiteSquasher.unsquashPushFK(it).tableFrom);
         
     | 
| 
      
 13324 
     | 
    
         
            +
                        tablesReferencingCurrent.push(...tablesRefs);
         
     | 
| 
      
 13325 
     | 
    
         
            +
                      }
         
     | 
| 
      
 13326 
     | 
    
         
            +
                      if (!tablesReferencingCurrent.length) {
         
     | 
| 
      
 13327 
     | 
    
         
            +
                        statementsToExecute.push(..._moveDataStatements(tableName, json2, dataLoss));
         
     | 
| 
      
 13328 
     | 
    
         
            +
                        continue;
         
     | 
| 
      
 13329 
     | 
    
         
            +
                      }
         
     | 
| 
      
 13330 
     | 
    
         
            +
                      const [{ foreign_keys: pragmaState }] = await connection.query(`PRAGMA foreign_keys;`);
         
     | 
| 
      
 13331 
     | 
    
         
            +
                      if (pragmaState) {
         
     | 
| 
      
 13332 
     | 
    
         
            +
                        statementsToExecute.push(`PRAGMA foreign_keys=OFF;`);
         
     | 
| 
      
 13333 
     | 
    
         
            +
                      }
         
     | 
| 
      
 13334 
     | 
    
         
            +
                      statementsToExecute.push(..._moveDataStatements(tableName, json2, dataLoss));
         
     | 
| 
      
 13335 
     | 
    
         
            +
                      if (pragmaState) {
         
     | 
| 
      
 13336 
     | 
    
         
            +
                        statementsToExecute.push(`PRAGMA foreign_keys=ON;`);
         
     | 
| 
      
 13337 
     | 
    
         
            +
                      }
         
     | 
| 
      
 13338 
     | 
    
         
            +
                    } else {
         
     | 
| 
      
 13339 
     | 
    
         
            +
                      const fromJsonStatement = fromJson([statement], "sqlite", "push");
         
     | 
| 
      
 13340 
     | 
    
         
            +
                      statementsToExecute.push(
         
     | 
| 
      
 13341 
     | 
    
         
            +
                        ...Array.isArray(fromJsonStatement) ? fromJsonStatement : [fromJsonStatement]
         
     | 
| 
      
 13342 
     | 
    
         
            +
                      );
         
     | 
| 
      
 13343 
     | 
    
         
            +
                    }
         
     | 
| 
      
 13344 
     | 
    
         
            +
                  }
         
     | 
| 
      
 13345 
     | 
    
         
            +
                  return {
         
     | 
| 
      
 13346 
     | 
    
         
            +
                    statementsToExecute,
         
     | 
| 
      
 13347 
     | 
    
         
            +
                    shouldAskForApprove,
         
     | 
| 
      
 13348 
     | 
    
         
            +
                    infoToPrint,
         
     | 
| 
      
 13349 
     | 
    
         
            +
                    columnsToRemove: [...new Set(columnsToRemove)],
         
     | 
| 
      
 13350 
     | 
    
         
            +
                    schemasToRemove: [...new Set(schemasToRemove)],
         
     | 
| 
      
 13351 
     | 
    
         
            +
                    tablesToTruncate: [...new Set(tablesToTruncate)],
         
     | 
| 
      
 13352 
     | 
    
         
            +
                    tablesToRemove: [...new Set(tablesToRemove)]
         
     | 
| 
      
 13353 
     | 
    
         
            +
                  };
         
     | 
| 
      
 13354 
     | 
    
         
            +
                };
         
     | 
| 
      
 13355 
     | 
    
         
            +
              }
         
     | 
| 
      
 13356 
     | 
    
         
            +
            });
         
     | 
| 
      
 13357 
     | 
    
         
            +
             
     | 
| 
       13217 
13358 
     | 
    
         
             
            // src/jsonStatements.ts
         
     | 
| 
       13218 
     | 
    
         
            -
            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, prepareDropReferencesJson, prepareAlterReferencesJson, prepareDropIndexesJson, prepareAddCompositePrimaryKeySqlite, prepareDeleteCompositePrimaryKeySqlite, prepareAlterCompositePrimaryKeySqlite, prepareAddCompositePrimaryKeyPg, prepareDeleteCompositePrimaryKeyPg, prepareAlterCompositePrimaryKeyPg, prepareAddUniqueConstraintPg, prepareDeleteUniqueConstraintPg, prepareAddCompositePrimaryKeyMySql, prepareDeleteCompositePrimaryKeyMySql, prepareAlterCompositePrimaryKeyMySql;
         
     | 
| 
      
 13359 
     | 
    
         
            +
            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;
         
     | 
| 
       13219 
13360 
     | 
    
         
             
            var init_jsonStatements = __esm({
         
     | 
| 
       13220 
13361 
     | 
    
         
             
              "src/jsonStatements.ts"() {
         
     | 
| 
       13221 
13362 
     | 
    
         
             
                "use strict";
         
     | 
| 
       13222 
13363 
     | 
    
         
             
                init_source();
         
     | 
| 
      
 13364 
     | 
    
         
            +
                init_sqlitePushUtils();
         
     | 
| 
       13223 
13365 
     | 
    
         
             
                init_views();
         
     | 
| 
       13224 
13366 
     | 
    
         
             
                init_mysqlSchema();
         
     | 
| 
       13225 
13367 
     | 
    
         
             
                init_pgSchema();
         
     | 
| 
         @@ -14003,21 +14145,64 @@ var init_jsonStatements = __esm({ 
     | 
|
| 
       14003 
14145 
     | 
    
         
             
                    const columnPk = json2.tables[tableName].columns[columnName].primaryKey;
         
     | 
| 
       14004 
14146 
     | 
    
         
             
                    const columnGenerated = json2.tables[tableName].columns[columnName].generated;
         
     | 
| 
       14005 
14147 
     | 
    
         
             
                    const compositePk = json2.tables[tableName].compositePrimaryKeys[`${tableName}_${columnName}`];
         
     | 
| 
       14006 
     | 
    
         
            -
                    if ( 
     | 
| 
       14007 
     | 
    
         
            -
                      statements.push({
         
     | 
| 
       14008 
     | 
    
         
            -
                        type: "alter_table_rename_column",
         
     | 
| 
       14009 
     | 
    
         
            -
                        tableName,
         
     | 
| 
       14010 
     | 
    
         
            -
                        oldColumnName: column4.name.old,
         
     | 
| 
       14011 
     | 
    
         
            -
                        newColumnName: column4.name.new,
         
     | 
| 
       14012 
     | 
    
         
            -
                        schema: schema4
         
     | 
| 
       14013 
     | 
    
         
            -
                      });
         
     | 
| 
       14014 
     | 
    
         
            -
                    }
         
     | 
| 
       14015 
     | 
    
         
            -
                    if (column4.type?.type === "changed") {
         
     | 
| 
      
 14148 
     | 
    
         
            +
                    if (column4.autoincrement?.type === "added") {
         
     | 
| 
       14016 
14149 
     | 
    
         
             
                      statements.push({
         
     | 
| 
       14017 
     | 
    
         
            -
                        type: " 
     | 
| 
      
 14150 
     | 
    
         
            +
                        type: "alter_table_alter_column_set_autoincrement",
         
     | 
| 
       14018 
14151 
     | 
    
         
             
                        tableName,
         
     | 
| 
       14019 
14152 
     | 
    
         
             
                        columnName,
         
     | 
| 
       14020 
     | 
    
         
            -
                         
     | 
| 
      
 14153 
     | 
    
         
            +
                        schema: schema4,
         
     | 
| 
      
 14154 
     | 
    
         
            +
                        newDataType: columnType,
         
     | 
| 
      
 14155 
     | 
    
         
            +
                        columnDefault,
         
     | 
| 
      
 14156 
     | 
    
         
            +
                        columnOnUpdate,
         
     | 
| 
      
 14157 
     | 
    
         
            +
                        columnNotNull,
         
     | 
| 
      
 14158 
     | 
    
         
            +
                        columnAutoIncrement,
         
     | 
| 
      
 14159 
     | 
    
         
            +
                        columnPk
         
     | 
| 
      
 14160 
     | 
    
         
            +
                      });
         
     | 
| 
      
 14161 
     | 
    
         
            +
                    }
         
     | 
| 
      
 14162 
     | 
    
         
            +
                    if (column4.autoincrement?.type === "changed") {
         
     | 
| 
      
 14163 
     | 
    
         
            +
                      const type = column4.autoincrement.new ? "alter_table_alter_column_set_autoincrement" : "alter_table_alter_column_drop_autoincrement";
         
     | 
| 
      
 14164 
     | 
    
         
            +
                      statements.push({
         
     | 
| 
      
 14165 
     | 
    
         
            +
                        type,
         
     | 
| 
      
 14166 
     | 
    
         
            +
                        tableName,
         
     | 
| 
      
 14167 
     | 
    
         
            +
                        columnName,
         
     | 
| 
      
 14168 
     | 
    
         
            +
                        schema: schema4,
         
     | 
| 
      
 14169 
     | 
    
         
            +
                        newDataType: columnType,
         
     | 
| 
      
 14170 
     | 
    
         
            +
                        columnDefault,
         
     | 
| 
      
 14171 
     | 
    
         
            +
                        columnOnUpdate,
         
     | 
| 
      
 14172 
     | 
    
         
            +
                        columnNotNull,
         
     | 
| 
      
 14173 
     | 
    
         
            +
                        columnAutoIncrement,
         
     | 
| 
      
 14174 
     | 
    
         
            +
                        columnPk
         
     | 
| 
      
 14175 
     | 
    
         
            +
                      });
         
     | 
| 
      
 14176 
     | 
    
         
            +
                    }
         
     | 
| 
      
 14177 
     | 
    
         
            +
                    if (column4.autoincrement?.type === "deleted") {
         
     | 
| 
      
 14178 
     | 
    
         
            +
                      statements.push({
         
     | 
| 
      
 14179 
     | 
    
         
            +
                        type: "alter_table_alter_column_drop_autoincrement",
         
     | 
| 
      
 14180 
     | 
    
         
            +
                        tableName,
         
     | 
| 
      
 14181 
     | 
    
         
            +
                        columnName,
         
     | 
| 
      
 14182 
     | 
    
         
            +
                        schema: schema4,
         
     | 
| 
      
 14183 
     | 
    
         
            +
                        newDataType: columnType,
         
     | 
| 
      
 14184 
     | 
    
         
            +
                        columnDefault,
         
     | 
| 
      
 14185 
     | 
    
         
            +
                        columnOnUpdate,
         
     | 
| 
      
 14186 
     | 
    
         
            +
                        columnNotNull,
         
     | 
| 
      
 14187 
     | 
    
         
            +
                        columnAutoIncrement,
         
     | 
| 
      
 14188 
     | 
    
         
            +
                        columnPk
         
     | 
| 
      
 14189 
     | 
    
         
            +
                      });
         
     | 
| 
      
 14190 
     | 
    
         
            +
                    }
         
     | 
| 
      
 14191 
     | 
    
         
            +
                    if (typeof column4.name !== "string") {
         
     | 
| 
      
 14192 
     | 
    
         
            +
                      statements.push({
         
     | 
| 
      
 14193 
     | 
    
         
            +
                        type: "alter_table_rename_column",
         
     | 
| 
      
 14194 
     | 
    
         
            +
                        tableName,
         
     | 
| 
      
 14195 
     | 
    
         
            +
                        oldColumnName: column4.name.old,
         
     | 
| 
      
 14196 
     | 
    
         
            +
                        newColumnName: column4.name.new,
         
     | 
| 
      
 14197 
     | 
    
         
            +
                        schema: schema4
         
     | 
| 
      
 14198 
     | 
    
         
            +
                      });
         
     | 
| 
      
 14199 
     | 
    
         
            +
                    }
         
     | 
| 
      
 14200 
     | 
    
         
            +
                    if (column4.type?.type === "changed") {
         
     | 
| 
      
 14201 
     | 
    
         
            +
                      statements.push({
         
     | 
| 
      
 14202 
     | 
    
         
            +
                        type: "alter_table_alter_column_set_type",
         
     | 
| 
      
 14203 
     | 
    
         
            +
                        tableName,
         
     | 
| 
      
 14204 
     | 
    
         
            +
                        columnName,
         
     | 
| 
      
 14205 
     | 
    
         
            +
                        newDataType: column4.type.new,
         
     | 
| 
       14021 
14206 
     | 
    
         
             
                        oldDataType: column4.type.old,
         
     | 
| 
       14022 
14207 
     | 
    
         
             
                        schema: schema4,
         
     | 
| 
       14023 
14208 
     | 
    
         
             
                        columnDefault,
         
     | 
| 
         @@ -14266,6 +14451,37 @@ var init_jsonStatements = __esm({ 
     | 
|
| 
       14266 
14451 
     | 
    
         
             
                    };
         
     | 
| 
       14267 
14452 
     | 
    
         
             
                  });
         
     | 
| 
       14268 
14453 
     | 
    
         
             
                };
         
     | 
| 
      
 14454 
     | 
    
         
            +
                prepareLibSQLCreateReferencesJson = (tableName, schema4, foreignKeys, json2, action) => {
         
     | 
| 
      
 14455 
     | 
    
         
            +
                  return Object.values(foreignKeys).map((fkData) => {
         
     | 
| 
      
 14456 
     | 
    
         
            +
                    const { columnsFrom, tableFrom, columnsTo } = action === "push" ? SQLiteSquasher.unsquashPushFK(fkData) : SQLiteSquasher.unsquashFK(fkData);
         
     | 
| 
      
 14457 
     | 
    
         
            +
                    let isMulticolumn = false;
         
     | 
| 
      
 14458 
     | 
    
         
            +
                    if (columnsFrom.length > 1 || columnsTo.length > 1) {
         
     | 
| 
      
 14459 
     | 
    
         
            +
                      isMulticolumn = true;
         
     | 
| 
      
 14460 
     | 
    
         
            +
                      return {
         
     | 
| 
      
 14461 
     | 
    
         
            +
                        type: "create_reference",
         
     | 
| 
      
 14462 
     | 
    
         
            +
                        tableName,
         
     | 
| 
      
 14463 
     | 
    
         
            +
                        data: fkData,
         
     | 
| 
      
 14464 
     | 
    
         
            +
                        schema: schema4,
         
     | 
| 
      
 14465 
     | 
    
         
            +
                        isMulticolumn
         
     | 
| 
      
 14466 
     | 
    
         
            +
                      };
         
     | 
| 
      
 14467 
     | 
    
         
            +
                    }
         
     | 
| 
      
 14468 
     | 
    
         
            +
                    const columnFrom = columnsFrom[0];
         
     | 
| 
      
 14469 
     | 
    
         
            +
                    const {
         
     | 
| 
      
 14470 
     | 
    
         
            +
                      notNull: columnNotNull,
         
     | 
| 
      
 14471 
     | 
    
         
            +
                      default: columnDefault,
         
     | 
| 
      
 14472 
     | 
    
         
            +
                      type: columnType
         
     | 
| 
      
 14473 
     | 
    
         
            +
                    } = json2.tables[tableFrom].columns[columnFrom];
         
     | 
| 
      
 14474 
     | 
    
         
            +
                    return {
         
     | 
| 
      
 14475 
     | 
    
         
            +
                      type: "create_reference",
         
     | 
| 
      
 14476 
     | 
    
         
            +
                      tableName,
         
     | 
| 
      
 14477 
     | 
    
         
            +
                      data: fkData,
         
     | 
| 
      
 14478 
     | 
    
         
            +
                      schema: schema4,
         
     | 
| 
      
 14479 
     | 
    
         
            +
                      columnNotNull,
         
     | 
| 
      
 14480 
     | 
    
         
            +
                      columnDefault,
         
     | 
| 
      
 14481 
     | 
    
         
            +
                      columnType
         
     | 
| 
      
 14482 
     | 
    
         
            +
                    };
         
     | 
| 
      
 14483 
     | 
    
         
            +
                  });
         
     | 
| 
      
 14484 
     | 
    
         
            +
                };
         
     | 
| 
       14269 
14485 
     | 
    
         
             
                prepareDropReferencesJson = (tableName, schema4, foreignKeys) => {
         
     | 
| 
       14270 
14486 
     | 
    
         
             
                  return Object.values(foreignKeys).map((fkData) => {
         
     | 
| 
       14271 
14487 
     | 
    
         
             
                    return {
         
     | 
| 
         @@ -14276,6 +14492,53 @@ var init_jsonStatements = __esm({ 
     | 
|
| 
       14276 
14492 
     | 
    
         
             
                    };
         
     | 
| 
       14277 
14493 
     | 
    
         
             
                  });
         
     | 
| 
       14278 
14494 
     | 
    
         
             
                };
         
     | 
| 
      
 14495 
     | 
    
         
            +
                prepareLibSQLDropReferencesJson = (tableName, schema4, foreignKeys, json2, meta, action) => {
         
     | 
| 
      
 14496 
     | 
    
         
            +
                  const statements = Object.values(foreignKeys).map((fkData) => {
         
     | 
| 
      
 14497 
     | 
    
         
            +
                    const { columnsFrom, tableFrom, columnsTo, name: name2, tableTo, onDelete, onUpdate } = action === "push" ? SQLiteSquasher.unsquashPushFK(fkData) : SQLiteSquasher.unsquashFK(fkData);
         
     | 
| 
      
 14498 
     | 
    
         
            +
                    const keys = Object.keys(json2.tables[tableName].columns);
         
     | 
| 
      
 14499 
     | 
    
         
            +
                    const filtered = columnsFrom.filter((it) => keys.includes(it));
         
     | 
| 
      
 14500 
     | 
    
         
            +
                    const fullDrop = filtered.length === 0;
         
     | 
| 
      
 14501 
     | 
    
         
            +
                    if (fullDrop) return;
         
     | 
| 
      
 14502 
     | 
    
         
            +
                    let isMulticolumn = false;
         
     | 
| 
      
 14503 
     | 
    
         
            +
                    if (columnsFrom.length > 1 || columnsTo.length > 1) {
         
     | 
| 
      
 14504 
     | 
    
         
            +
                      isMulticolumn = true;
         
     | 
| 
      
 14505 
     | 
    
         
            +
                      return {
         
     | 
| 
      
 14506 
     | 
    
         
            +
                        type: "delete_reference",
         
     | 
| 
      
 14507 
     | 
    
         
            +
                        tableName,
         
     | 
| 
      
 14508 
     | 
    
         
            +
                        data: fkData,
         
     | 
| 
      
 14509 
     | 
    
         
            +
                        schema: schema4,
         
     | 
| 
      
 14510 
     | 
    
         
            +
                        isMulticolumn
         
     | 
| 
      
 14511 
     | 
    
         
            +
                      };
         
     | 
| 
      
 14512 
     | 
    
         
            +
                    }
         
     | 
| 
      
 14513 
     | 
    
         
            +
                    const columnFrom = columnsFrom[0];
         
     | 
| 
      
 14514 
     | 
    
         
            +
                    const newTableName = getNewTableName(tableFrom, meta);
         
     | 
| 
      
 14515 
     | 
    
         
            +
                    const {
         
     | 
| 
      
 14516 
     | 
    
         
            +
                      notNull: columnNotNull,
         
     | 
| 
      
 14517 
     | 
    
         
            +
                      default: columnDefault,
         
     | 
| 
      
 14518 
     | 
    
         
            +
                      type: columnType
         
     | 
| 
      
 14519 
     | 
    
         
            +
                    } = json2.tables[newTableName].columns[columnFrom];
         
     | 
| 
      
 14520 
     | 
    
         
            +
                    const fkToSquash = {
         
     | 
| 
      
 14521 
     | 
    
         
            +
                      columnsFrom,
         
     | 
| 
      
 14522 
     | 
    
         
            +
                      columnsTo,
         
     | 
| 
      
 14523 
     | 
    
         
            +
                      name: name2,
         
     | 
| 
      
 14524 
     | 
    
         
            +
                      tableFrom: newTableName,
         
     | 
| 
      
 14525 
     | 
    
         
            +
                      tableTo,
         
     | 
| 
      
 14526 
     | 
    
         
            +
                      onDelete,
         
     | 
| 
      
 14527 
     | 
    
         
            +
                      onUpdate
         
     | 
| 
      
 14528 
     | 
    
         
            +
                    };
         
     | 
| 
      
 14529 
     | 
    
         
            +
                    const foreignKey = action === "push" ? SQLiteSquasher.squashPushFK(fkToSquash) : SQLiteSquasher.squashFK(fkToSquash);
         
     | 
| 
      
 14530 
     | 
    
         
            +
                    return {
         
     | 
| 
      
 14531 
     | 
    
         
            +
                      type: "delete_reference",
         
     | 
| 
      
 14532 
     | 
    
         
            +
                      tableName,
         
     | 
| 
      
 14533 
     | 
    
         
            +
                      data: foreignKey,
         
     | 
| 
      
 14534 
     | 
    
         
            +
                      schema: schema4,
         
     | 
| 
      
 14535 
     | 
    
         
            +
                      columnNotNull,
         
     | 
| 
      
 14536 
     | 
    
         
            +
                      columnDefault,
         
     | 
| 
      
 14537 
     | 
    
         
            +
                      columnType
         
     | 
| 
      
 14538 
     | 
    
         
            +
                    };
         
     | 
| 
      
 14539 
     | 
    
         
            +
                  });
         
     | 
| 
      
 14540 
     | 
    
         
            +
                  return statements.filter((it) => it);
         
     | 
| 
      
 14541 
     | 
    
         
            +
                };
         
     | 
| 
       14279 
14542 
     | 
    
         
             
                prepareAlterReferencesJson = (tableName, schema4, foreignKeys) => {
         
     | 
| 
       14280 
14543 
     | 
    
         
             
                  const stmts = [];
         
     | 
| 
       14281 
14544 
     | 
    
         
             
                  Object.values(foreignKeys).map((val) => {
         
     | 
| 
         @@ -14429,10 +14692,292 @@ var init_jsonStatements = __esm({ 
     | 
|
| 
       14429 
14692 
     | 
    
         
             
              }
         
     | 
| 
       14430 
14693 
     | 
    
         
             
            });
         
     | 
| 
       14431 
14694 
     | 
    
         | 
| 
      
 14695 
     | 
    
         
            +
            // src/statementCombiner.ts
         
     | 
| 
      
 14696 
     | 
    
         
            +
            var prepareLibSQLRecreateTable, prepareSQLiteRecreateTable, libSQLCombineStatements, sqliteCombineStatements;
         
     | 
| 
      
 14697 
     | 
    
         
            +
            var init_statementCombiner = __esm({
         
     | 
| 
      
 14698 
     | 
    
         
            +
              "src/statementCombiner.ts"() {
         
     | 
| 
      
 14699 
     | 
    
         
            +
                "use strict";
         
     | 
| 
      
 14700 
     | 
    
         
            +
                init_jsonStatements();
         
     | 
| 
      
 14701 
     | 
    
         
            +
                init_sqliteSchema();
         
     | 
| 
      
 14702 
     | 
    
         
            +
                prepareLibSQLRecreateTable = (table4, action) => {
         
     | 
| 
      
 14703 
     | 
    
         
            +
                  const { name: name2, columns, uniqueConstraints, indexes } = table4;
         
     | 
| 
      
 14704 
     | 
    
         
            +
                  const composites = Object.values(table4.compositePrimaryKeys).map(
         
     | 
| 
      
 14705 
     | 
    
         
            +
                    (it) => SQLiteSquasher.unsquashPK(it)
         
     | 
| 
      
 14706 
     | 
    
         
            +
                  );
         
     | 
| 
      
 14707 
     | 
    
         
            +
                  const references2 = Object.values(table4.foreignKeys);
         
     | 
| 
      
 14708 
     | 
    
         
            +
                  const fks = references2.map(
         
     | 
| 
      
 14709 
     | 
    
         
            +
                    (it) => action === "push" ? SQLiteSquasher.unsquashPushFK(it) : SQLiteSquasher.unsquashFK(it)
         
     | 
| 
      
 14710 
     | 
    
         
            +
                  );
         
     | 
| 
      
 14711 
     | 
    
         
            +
                  const statements = [
         
     | 
| 
      
 14712 
     | 
    
         
            +
                    {
         
     | 
| 
      
 14713 
     | 
    
         
            +
                      type: "recreate_table",
         
     | 
| 
      
 14714 
     | 
    
         
            +
                      tableName: name2,
         
     | 
| 
      
 14715 
     | 
    
         
            +
                      columns: Object.values(columns),
         
     | 
| 
      
 14716 
     | 
    
         
            +
                      compositePKs: composites,
         
     | 
| 
      
 14717 
     | 
    
         
            +
                      referenceData: fks,
         
     | 
| 
      
 14718 
     | 
    
         
            +
                      uniqueConstraints: Object.values(uniqueConstraints)
         
     | 
| 
      
 14719 
     | 
    
         
            +
                    }
         
     | 
| 
      
 14720 
     | 
    
         
            +
                  ];
         
     | 
| 
      
 14721 
     | 
    
         
            +
                  if (Object.keys(indexes).length) {
         
     | 
| 
      
 14722 
     | 
    
         
            +
                    statements.push(...prepareCreateIndexesJson(name2, "", indexes));
         
     | 
| 
      
 14723 
     | 
    
         
            +
                  }
         
     | 
| 
      
 14724 
     | 
    
         
            +
                  return statements;
         
     | 
| 
      
 14725 
     | 
    
         
            +
                };
         
     | 
| 
      
 14726 
     | 
    
         
            +
                prepareSQLiteRecreateTable = (table4, action) => {
         
     | 
| 
      
 14727 
     | 
    
         
            +
                  const { name: name2, columns, uniqueConstraints, indexes } = table4;
         
     | 
| 
      
 14728 
     | 
    
         
            +
                  const composites = Object.values(table4.compositePrimaryKeys).map(
         
     | 
| 
      
 14729 
     | 
    
         
            +
                    (it) => SQLiteSquasher.unsquashPK(it)
         
     | 
| 
      
 14730 
     | 
    
         
            +
                  );
         
     | 
| 
      
 14731 
     | 
    
         
            +
                  const references2 = Object.values(table4.foreignKeys);
         
     | 
| 
      
 14732 
     | 
    
         
            +
                  const fks = references2.map(
         
     | 
| 
      
 14733 
     | 
    
         
            +
                    (it) => action === "push" ? SQLiteSquasher.unsquashPushFK(it) : SQLiteSquasher.unsquashFK(it)
         
     | 
| 
      
 14734 
     | 
    
         
            +
                  );
         
     | 
| 
      
 14735 
     | 
    
         
            +
                  const statements = [
         
     | 
| 
      
 14736 
     | 
    
         
            +
                    {
         
     | 
| 
      
 14737 
     | 
    
         
            +
                      type: "recreate_table",
         
     | 
| 
      
 14738 
     | 
    
         
            +
                      tableName: name2,
         
     | 
| 
      
 14739 
     | 
    
         
            +
                      columns: Object.values(columns),
         
     | 
| 
      
 14740 
     | 
    
         
            +
                      compositePKs: composites,
         
     | 
| 
      
 14741 
     | 
    
         
            +
                      referenceData: fks,
         
     | 
| 
      
 14742 
     | 
    
         
            +
                      uniqueConstraints: Object.values(uniqueConstraints)
         
     | 
| 
      
 14743 
     | 
    
         
            +
                    }
         
     | 
| 
      
 14744 
     | 
    
         
            +
                  ];
         
     | 
| 
      
 14745 
     | 
    
         
            +
                  if (Object.keys(indexes).length) {
         
     | 
| 
      
 14746 
     | 
    
         
            +
                    statements.push(...prepareCreateIndexesJson(name2, "", indexes));
         
     | 
| 
      
 14747 
     | 
    
         
            +
                  }
         
     | 
| 
      
 14748 
     | 
    
         
            +
                  return statements;
         
     | 
| 
      
 14749 
     | 
    
         
            +
                };
         
     | 
| 
      
 14750 
     | 
    
         
            +
                libSQLCombineStatements = (statements, json2, action) => {
         
     | 
| 
      
 14751 
     | 
    
         
            +
                  const newStatements = {};
         
     | 
| 
      
 14752 
     | 
    
         
            +
                  for (const statement of statements) {
         
     | 
| 
      
 14753 
     | 
    
         
            +
                    if (statement.type === "alter_table_alter_column_drop_autoincrement" || statement.type === "alter_table_alter_column_set_autoincrement" || statement.type === "alter_table_alter_column_drop_pk" || statement.type === "alter_table_alter_column_set_pk" || statement.type === "create_composite_pk" || statement.type === "alter_composite_pk" || statement.type === "delete_composite_pk") {
         
     | 
| 
      
 14754 
     | 
    
         
            +
                      const tableName2 = statement.tableName;
         
     | 
| 
      
 14755 
     | 
    
         
            +
                      const statementsForTable2 = newStatements[tableName2];
         
     | 
| 
      
 14756 
     | 
    
         
            +
                      if (!statementsForTable2) {
         
     | 
| 
      
 14757 
     | 
    
         
            +
                        newStatements[tableName2] = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         
     | 
| 
      
 14758 
     | 
    
         
            +
                        continue;
         
     | 
| 
      
 14759 
     | 
    
         
            +
                      }
         
     | 
| 
      
 14760 
     | 
    
         
            +
                      if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
         
     | 
| 
      
 14761 
     | 
    
         
            +
                        const wasRename = statementsForTable2.some(({ type }) => type === "rename_table");
         
     | 
| 
      
 14762 
     | 
    
         
            +
                        const preparedStatements = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         
     | 
| 
      
 14763 
     | 
    
         
            +
                        if (wasRename) {
         
     | 
| 
      
 14764 
     | 
    
         
            +
                          newStatements[tableName2].push(...preparedStatements);
         
     | 
| 
      
 14765 
     | 
    
         
            +
                        } else {
         
     | 
| 
      
 14766 
     | 
    
         
            +
                          newStatements[tableName2] = preparedStatements;
         
     | 
| 
      
 14767 
     | 
    
         
            +
                        }
         
     | 
| 
      
 14768 
     | 
    
         
            +
                        continue;
         
     | 
| 
      
 14769 
     | 
    
         
            +
                      }
         
     | 
| 
      
 14770 
     | 
    
         
            +
                      continue;
         
     | 
| 
      
 14771 
     | 
    
         
            +
                    }
         
     | 
| 
      
 14772 
     | 
    
         
            +
                    if (statement.type === "alter_table_alter_column_set_type" || statement.type === "alter_table_alter_column_drop_notnull" || statement.type === "alter_table_alter_column_set_notnull" || statement.type === "alter_table_alter_column_set_default" || statement.type === "alter_table_alter_column_drop_default") {
         
     | 
| 
      
 14773 
     | 
    
         
            +
                      const { tableName: tableName2, columnName, columnPk } = statement;
         
     | 
| 
      
 14774 
     | 
    
         
            +
                      const columnIsPartOfForeignKey = Object.values(
         
     | 
| 
      
 14775 
     | 
    
         
            +
                        json2.tables[tableName2].foreignKeys
         
     | 
| 
      
 14776 
     | 
    
         
            +
                      ).some((it) => {
         
     | 
| 
      
 14777 
     | 
    
         
            +
                        const unsquashFk = action === "push" ? SQLiteSquasher.unsquashPushFK(it) : SQLiteSquasher.unsquashFK(it);
         
     | 
| 
      
 14778 
     | 
    
         
            +
                        return unsquashFk.columnsFrom.includes(columnName);
         
     | 
| 
      
 14779 
     | 
    
         
            +
                      });
         
     | 
| 
      
 14780 
     | 
    
         
            +
                      const statementsForTable2 = newStatements[tableName2];
         
     | 
| 
      
 14781 
     | 
    
         
            +
                      if (!statementsForTable2 && (columnIsPartOfForeignKey || columnPk)) {
         
     | 
| 
      
 14782 
     | 
    
         
            +
                        newStatements[tableName2] = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         
     | 
| 
      
 14783 
     | 
    
         
            +
                        continue;
         
     | 
| 
      
 14784 
     | 
    
         
            +
                      }
         
     | 
| 
      
 14785 
     | 
    
         
            +
                      if (statementsForTable2 && (columnIsPartOfForeignKey || columnPk)) {
         
     | 
| 
      
 14786 
     | 
    
         
            +
                        if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
         
     | 
| 
      
 14787 
     | 
    
         
            +
                          const wasRename = statementsForTable2.some(({ type }) => type === "rename_table");
         
     | 
| 
      
 14788 
     | 
    
         
            +
                          const preparedStatements = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         
     | 
| 
      
 14789 
     | 
    
         
            +
                          if (wasRename) {
         
     | 
| 
      
 14790 
     | 
    
         
            +
                            newStatements[tableName2].push(...preparedStatements);
         
     | 
| 
      
 14791 
     | 
    
         
            +
                          } else {
         
     | 
| 
      
 14792 
     | 
    
         
            +
                            newStatements[tableName2] = preparedStatements;
         
     | 
| 
      
 14793 
     | 
    
         
            +
                          }
         
     | 
| 
      
 14794 
     | 
    
         
            +
                        }
         
     | 
| 
      
 14795 
     | 
    
         
            +
                        continue;
         
     | 
| 
      
 14796 
     | 
    
         
            +
                      }
         
     | 
| 
      
 14797 
     | 
    
         
            +
                      if (statementsForTable2 && !(columnIsPartOfForeignKey || columnPk)) {
         
     | 
| 
      
 14798 
     | 
    
         
            +
                        if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
         
     | 
| 
      
 14799 
     | 
    
         
            +
                          newStatements[tableName2].push(statement);
         
     | 
| 
      
 14800 
     | 
    
         
            +
                        }
         
     | 
| 
      
 14801 
     | 
    
         
            +
                        continue;
         
     | 
| 
      
 14802 
     | 
    
         
            +
                      }
         
     | 
| 
      
 14803 
     | 
    
         
            +
                      newStatements[tableName2] = [statement];
         
     | 
| 
      
 14804 
     | 
    
         
            +
                      continue;
         
     | 
| 
      
 14805 
     | 
    
         
            +
                    }
         
     | 
| 
      
 14806 
     | 
    
         
            +
                    if (statement.type === "create_reference") {
         
     | 
| 
      
 14807 
     | 
    
         
            +
                      const tableName2 = statement.tableName;
         
     | 
| 
      
 14808 
     | 
    
         
            +
                      const data = action === "push" ? SQLiteSquasher.unsquashPushFK(statement.data) : SQLiteSquasher.unsquashFK(statement.data);
         
     | 
| 
      
 14809 
     | 
    
         
            +
                      const statementsForTable2 = newStatements[tableName2];
         
     | 
| 
      
 14810 
     | 
    
         
            +
                      if (!statementsForTable2) {
         
     | 
| 
      
 14811 
     | 
    
         
            +
                        newStatements[tableName2] = statement.isMulticolumn ? prepareLibSQLRecreateTable(json2.tables[tableName2], action) : [statement];
         
     | 
| 
      
 14812 
     | 
    
         
            +
                        continue;
         
     | 
| 
      
 14813 
     | 
    
         
            +
                      }
         
     | 
| 
      
 14814 
     | 
    
         
            +
                      if (!statement.isMulticolumn && statementsForTable2.some(
         
     | 
| 
      
 14815 
     | 
    
         
            +
                        (st) => st.type === "sqlite_alter_table_add_column" && st.column.name === data.columnsFrom[0]
         
     | 
| 
      
 14816 
     | 
    
         
            +
                      )) {
         
     | 
| 
      
 14817 
     | 
    
         
            +
                        continue;
         
     | 
| 
      
 14818 
     | 
    
         
            +
                      }
         
     | 
| 
      
 14819 
     | 
    
         
            +
                      if (statement.isMulticolumn) {
         
     | 
| 
      
 14820 
     | 
    
         
            +
                        if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
         
     | 
| 
      
 14821 
     | 
    
         
            +
                          const wasRename = statementsForTable2.some(({ type }) => type === "rename_table");
         
     | 
| 
      
 14822 
     | 
    
         
            +
                          const preparedStatements = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         
     | 
| 
      
 14823 
     | 
    
         
            +
                          if (wasRename) {
         
     | 
| 
      
 14824 
     | 
    
         
            +
                            newStatements[tableName2].push(...preparedStatements);
         
     | 
| 
      
 14825 
     | 
    
         
            +
                          } else {
         
     | 
| 
      
 14826 
     | 
    
         
            +
                            newStatements[tableName2] = preparedStatements;
         
     | 
| 
      
 14827 
     | 
    
         
            +
                          }
         
     | 
| 
      
 14828 
     | 
    
         
            +
                          continue;
         
     | 
| 
      
 14829 
     | 
    
         
            +
                        }
         
     | 
| 
      
 14830 
     | 
    
         
            +
                        continue;
         
     | 
| 
      
 14831 
     | 
    
         
            +
                      }
         
     | 
| 
      
 14832 
     | 
    
         
            +
                      if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
         
     | 
| 
      
 14833 
     | 
    
         
            +
                        newStatements[tableName2].push(statement);
         
     | 
| 
      
 14834 
     | 
    
         
            +
                      }
         
     | 
| 
      
 14835 
     | 
    
         
            +
                      continue;
         
     | 
| 
      
 14836 
     | 
    
         
            +
                    }
         
     | 
| 
      
 14837 
     | 
    
         
            +
                    if (statement.type === "delete_reference") {
         
     | 
| 
      
 14838 
     | 
    
         
            +
                      const tableName2 = statement.tableName;
         
     | 
| 
      
 14839 
     | 
    
         
            +
                      const statementsForTable2 = newStatements[tableName2];
         
     | 
| 
      
 14840 
     | 
    
         
            +
                      if (!statementsForTable2) {
         
     | 
| 
      
 14841 
     | 
    
         
            +
                        newStatements[tableName2] = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         
     | 
| 
      
 14842 
     | 
    
         
            +
                        continue;
         
     | 
| 
      
 14843 
     | 
    
         
            +
                      }
         
     | 
| 
      
 14844 
     | 
    
         
            +
                      if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
         
     | 
| 
      
 14845 
     | 
    
         
            +
                        const wasRename = statementsForTable2.some(({ type }) => type === "rename_table");
         
     | 
| 
      
 14846 
     | 
    
         
            +
                        const preparedStatements = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         
     | 
| 
      
 14847 
     | 
    
         
            +
                        if (wasRename) {
         
     | 
| 
      
 14848 
     | 
    
         
            +
                          newStatements[tableName2].push(...preparedStatements);
         
     | 
| 
      
 14849 
     | 
    
         
            +
                        } else {
         
     | 
| 
      
 14850 
     | 
    
         
            +
                          newStatements[tableName2] = preparedStatements;
         
     | 
| 
      
 14851 
     | 
    
         
            +
                        }
         
     | 
| 
      
 14852 
     | 
    
         
            +
                        continue;
         
     | 
| 
      
 14853 
     | 
    
         
            +
                      }
         
     | 
| 
      
 14854 
     | 
    
         
            +
                      continue;
         
     | 
| 
      
 14855 
     | 
    
         
            +
                    }
         
     | 
| 
      
 14856 
     | 
    
         
            +
                    if (statement.type === "sqlite_alter_table_add_column" && statement.column.primaryKey) {
         
     | 
| 
      
 14857 
     | 
    
         
            +
                      const tableName2 = statement.tableName;
         
     | 
| 
      
 14858 
     | 
    
         
            +
                      const statementsForTable2 = newStatements[tableName2];
         
     | 
| 
      
 14859 
     | 
    
         
            +
                      if (!statementsForTable2) {
         
     | 
| 
      
 14860 
     | 
    
         
            +
                        newStatements[tableName2] = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         
     | 
| 
      
 14861 
     | 
    
         
            +
                        continue;
         
     | 
| 
      
 14862 
     | 
    
         
            +
                      }
         
     | 
| 
      
 14863 
     | 
    
         
            +
                      if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
         
     | 
| 
      
 14864 
     | 
    
         
            +
                        const wasRename = statementsForTable2.some(({ type }) => type === "rename_table");
         
     | 
| 
      
 14865 
     | 
    
         
            +
                        const preparedStatements = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         
     | 
| 
      
 14866 
     | 
    
         
            +
                        if (wasRename) {
         
     | 
| 
      
 14867 
     | 
    
         
            +
                          newStatements[tableName2].push(...preparedStatements);
         
     | 
| 
      
 14868 
     | 
    
         
            +
                        } else {
         
     | 
| 
      
 14869 
     | 
    
         
            +
                          newStatements[tableName2] = preparedStatements;
         
     | 
| 
      
 14870 
     | 
    
         
            +
                        }
         
     | 
| 
      
 14871 
     | 
    
         
            +
                        continue;
         
     | 
| 
      
 14872 
     | 
    
         
            +
                      }
         
     | 
| 
      
 14873 
     | 
    
         
            +
                      continue;
         
     | 
| 
      
 14874 
     | 
    
         
            +
                    }
         
     | 
| 
      
 14875 
     | 
    
         
            +
                    const tableName = statement.type === "rename_table" ? statement.tableNameTo : statement.tableName;
         
     | 
| 
      
 14876 
     | 
    
         
            +
                    const statementsForTable = newStatements[tableName];
         
     | 
| 
      
 14877 
     | 
    
         
            +
                    if (!statementsForTable) {
         
     | 
| 
      
 14878 
     | 
    
         
            +
                      newStatements[tableName] = [statement];
         
     | 
| 
      
 14879 
     | 
    
         
            +
                      continue;
         
     | 
| 
      
 14880 
     | 
    
         
            +
                    }
         
     | 
| 
      
 14881 
     | 
    
         
            +
                    if (!statementsForTable.some(({ type }) => type === "recreate_table")) {
         
     | 
| 
      
 14882 
     | 
    
         
            +
                      newStatements[tableName].push(statement);
         
     | 
| 
      
 14883 
     | 
    
         
            +
                    }
         
     | 
| 
      
 14884 
     | 
    
         
            +
                  }
         
     | 
| 
      
 14885 
     | 
    
         
            +
                  const combinedStatements = Object.values(newStatements).flat();
         
     | 
| 
      
 14886 
     | 
    
         
            +
                  const renamedTables = combinedStatements.filter((it) => it.type === "rename_table");
         
     | 
| 
      
 14887 
     | 
    
         
            +
                  const renamedColumns = combinedStatements.filter((it) => it.type === "alter_table_rename_column");
         
     | 
| 
      
 14888 
     | 
    
         
            +
                  const rest = combinedStatements.filter((it) => it.type !== "rename_table" && it.type !== "alter_table_rename_column");
         
     | 
| 
      
 14889 
     | 
    
         
            +
                  return [...renamedTables, ...renamedColumns, ...rest];
         
     | 
| 
      
 14890 
     | 
    
         
            +
                };
         
     | 
| 
      
 14891 
     | 
    
         
            +
                sqliteCombineStatements = (statements, json2, action) => {
         
     | 
| 
      
 14892 
     | 
    
         
            +
                  const newStatements = {};
         
     | 
| 
      
 14893 
     | 
    
         
            +
                  for (const statement of statements) {
         
     | 
| 
      
 14894 
     | 
    
         
            +
                    if (statement.type === "alter_table_alter_column_set_type" || statement.type === "alter_table_alter_column_set_default" || statement.type === "alter_table_alter_column_drop_default" || statement.type === "alter_table_alter_column_set_notnull" || statement.type === "alter_table_alter_column_drop_notnull" || statement.type === "alter_table_alter_column_drop_autoincrement" || statement.type === "alter_table_alter_column_set_autoincrement" || statement.type === "alter_table_alter_column_drop_pk" || statement.type === "alter_table_alter_column_set_pk" || statement.type === "delete_reference" || statement.type === "alter_reference" || statement.type === "create_composite_pk" || statement.type === "alter_composite_pk" || statement.type === "delete_composite_pk" || statement.type === "create_unique_constraint" || statement.type === "delete_unique_constraint") {
         
     | 
| 
      
 14895 
     | 
    
         
            +
                      const tableName2 = statement.tableName;
         
     | 
| 
      
 14896 
     | 
    
         
            +
                      const statementsForTable2 = newStatements[tableName2];
         
     | 
| 
      
 14897 
     | 
    
         
            +
                      if (!statementsForTable2) {
         
     | 
| 
      
 14898 
     | 
    
         
            +
                        newStatements[tableName2] = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         
     | 
| 
      
 14899 
     | 
    
         
            +
                        continue;
         
     | 
| 
      
 14900 
     | 
    
         
            +
                      }
         
     | 
| 
      
 14901 
     | 
    
         
            +
                      if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
         
     | 
| 
      
 14902 
     | 
    
         
            +
                        const wasRename = statementsForTable2.some(({ type }) => type === "rename_table");
         
     | 
| 
      
 14903 
     | 
    
         
            +
                        const preparedStatements = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         
     | 
| 
      
 14904 
     | 
    
         
            +
                        if (wasRename) {
         
     | 
| 
      
 14905 
     | 
    
         
            +
                          newStatements[tableName2].push(...preparedStatements);
         
     | 
| 
      
 14906 
     | 
    
         
            +
                        } else {
         
     | 
| 
      
 14907 
     | 
    
         
            +
                          newStatements[tableName2] = preparedStatements;
         
     | 
| 
      
 14908 
     | 
    
         
            +
                        }
         
     | 
| 
      
 14909 
     | 
    
         
            +
                        continue;
         
     | 
| 
      
 14910 
     | 
    
         
            +
                      }
         
     | 
| 
      
 14911 
     | 
    
         
            +
                      continue;
         
     | 
| 
      
 14912 
     | 
    
         
            +
                    }
         
     | 
| 
      
 14913 
     | 
    
         
            +
                    if (statement.type === "sqlite_alter_table_add_column" && statement.column.primaryKey) {
         
     | 
| 
      
 14914 
     | 
    
         
            +
                      const tableName2 = statement.tableName;
         
     | 
| 
      
 14915 
     | 
    
         
            +
                      const statementsForTable2 = newStatements[tableName2];
         
     | 
| 
      
 14916 
     | 
    
         
            +
                      if (!statementsForTable2) {
         
     | 
| 
      
 14917 
     | 
    
         
            +
                        newStatements[tableName2] = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         
     | 
| 
      
 14918 
     | 
    
         
            +
                        continue;
         
     | 
| 
      
 14919 
     | 
    
         
            +
                      }
         
     | 
| 
      
 14920 
     | 
    
         
            +
                      if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
         
     | 
| 
      
 14921 
     | 
    
         
            +
                        const wasRename = statementsForTable2.some(({ type }) => type === "rename_table");
         
     | 
| 
      
 14922 
     | 
    
         
            +
                        const preparedStatements = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         
     | 
| 
      
 14923 
     | 
    
         
            +
                        if (wasRename) {
         
     | 
| 
      
 14924 
     | 
    
         
            +
                          newStatements[tableName2].push(...preparedStatements);
         
     | 
| 
      
 14925 
     | 
    
         
            +
                        } else {
         
     | 
| 
      
 14926 
     | 
    
         
            +
                          newStatements[tableName2] = preparedStatements;
         
     | 
| 
      
 14927 
     | 
    
         
            +
                        }
         
     | 
| 
      
 14928 
     | 
    
         
            +
                        continue;
         
     | 
| 
      
 14929 
     | 
    
         
            +
                      }
         
     | 
| 
      
 14930 
     | 
    
         
            +
                      continue;
         
     | 
| 
      
 14931 
     | 
    
         
            +
                    }
         
     | 
| 
      
 14932 
     | 
    
         
            +
                    if (statement.type === "create_reference") {
         
     | 
| 
      
 14933 
     | 
    
         
            +
                      const tableName2 = statement.tableName;
         
     | 
| 
      
 14934 
     | 
    
         
            +
                      const data = action === "push" ? SQLiteSquasher.unsquashPushFK(statement.data) : SQLiteSquasher.unsquashFK(statement.data);
         
     | 
| 
      
 14935 
     | 
    
         
            +
                      const statementsForTable2 = newStatements[tableName2];
         
     | 
| 
      
 14936 
     | 
    
         
            +
                      if (!statementsForTable2) {
         
     | 
| 
      
 14937 
     | 
    
         
            +
                        newStatements[tableName2] = prepareSQLiteRecreateTable(json2.tables[tableName2], action);
         
     | 
| 
      
 14938 
     | 
    
         
            +
                        continue;
         
     | 
| 
      
 14939 
     | 
    
         
            +
                      }
         
     | 
| 
      
 14940 
     | 
    
         
            +
                      if (data.columnsFrom.length === 1 && statementsForTable2.some(
         
     | 
| 
      
 14941 
     | 
    
         
            +
                        (st) => st.type === "sqlite_alter_table_add_column" && st.column.name === data.columnsFrom[0]
         
     | 
| 
      
 14942 
     | 
    
         
            +
                      )) {
         
     | 
| 
      
 14943 
     | 
    
         
            +
                        continue;
         
     | 
| 
      
 14944 
     | 
    
         
            +
                      }
         
     | 
| 
      
 14945 
     | 
    
         
            +
                      if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
         
     | 
| 
      
 14946 
     | 
    
         
            +
                        const wasRename = statementsForTable2.some(({ type }) => type === "rename_table");
         
     | 
| 
      
 14947 
     | 
    
         
            +
                        const preparedStatements = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         
     | 
| 
      
 14948 
     | 
    
         
            +
                        if (wasRename) {
         
     | 
| 
      
 14949 
     | 
    
         
            +
                          newStatements[tableName2].push(...preparedStatements);
         
     | 
| 
      
 14950 
     | 
    
         
            +
                        } else {
         
     | 
| 
      
 14951 
     | 
    
         
            +
                          newStatements[tableName2] = preparedStatements;
         
     | 
| 
      
 14952 
     | 
    
         
            +
                        }
         
     | 
| 
      
 14953 
     | 
    
         
            +
                        continue;
         
     | 
| 
      
 14954 
     | 
    
         
            +
                      }
         
     | 
| 
      
 14955 
     | 
    
         
            +
                      continue;
         
     | 
| 
      
 14956 
     | 
    
         
            +
                    }
         
     | 
| 
      
 14957 
     | 
    
         
            +
                    const tableName = statement.type === "rename_table" ? statement.tableNameTo : statement.tableName;
         
     | 
| 
      
 14958 
     | 
    
         
            +
                    const statementsForTable = newStatements[tableName];
         
     | 
| 
      
 14959 
     | 
    
         
            +
                    if (!statementsForTable) {
         
     | 
| 
      
 14960 
     | 
    
         
            +
                      newStatements[tableName] = [statement];
         
     | 
| 
      
 14961 
     | 
    
         
            +
                      continue;
         
     | 
| 
      
 14962 
     | 
    
         
            +
                    }
         
     | 
| 
      
 14963 
     | 
    
         
            +
                    if (!statementsForTable.some(({ type }) => type === "recreate_table")) {
         
     | 
| 
      
 14964 
     | 
    
         
            +
                      newStatements[tableName].push(statement);
         
     | 
| 
      
 14965 
     | 
    
         
            +
                    }
         
     | 
| 
      
 14966 
     | 
    
         
            +
                  }
         
     | 
| 
      
 14967 
     | 
    
         
            +
                  const combinedStatements = Object.values(newStatements).flat();
         
     | 
| 
      
 14968 
     | 
    
         
            +
                  const renamedTables = combinedStatements.filter((it) => it.type === "rename_table");
         
     | 
| 
      
 14969 
     | 
    
         
            +
                  const renamedColumns = combinedStatements.filter((it) => it.type === "alter_table_rename_column");
         
     | 
| 
      
 14970 
     | 
    
         
            +
                  const rest = combinedStatements.filter((it) => it.type !== "rename_table" && it.type !== "alter_table_rename_column");
         
     | 
| 
      
 14971 
     | 
    
         
            +
                  return [...renamedTables, ...renamedColumns, ...rest];
         
     | 
| 
      
 14972 
     | 
    
         
            +
                };
         
     | 
| 
      
 14973 
     | 
    
         
            +
              }
         
     | 
| 
      
 14974 
     | 
    
         
            +
            });
         
     | 
| 
      
 14975 
     | 
    
         
            +
             
     | 
| 
       14432 
14976 
     | 
    
         
             
            // src/snapshotsDiffer.ts
         
     | 
| 
       14433 
14977 
     | 
    
         
             
            var snapshotsDiffer_exports = {};
         
     | 
| 
       14434 
14978 
     | 
    
         
             
            __export(snapshotsDiffer_exports, {
         
     | 
| 
       14435 
14979 
     | 
    
         
             
              alteredTableScheme: () => alteredTableScheme,
         
     | 
| 
      
 14980 
     | 
    
         
            +
              applyLibSQLSnapshotsDiff: () => applyLibSQLSnapshotsDiff,
         
     | 
| 
       14436 
14981 
     | 
    
         
             
              applyMysqlSnapshotsDiff: () => applyMysqlSnapshotsDiff,
         
     | 
| 
       14437 
14982 
     | 
    
         
             
              applyPgSnapshotsDiff: () => applyPgSnapshotsDiff,
         
     | 
| 
       14438 
14983 
     | 
    
         
             
              applySqliteSnapshotsDiff: () => applySqliteSnapshotsDiff,
         
     | 
| 
         @@ -14442,7 +14987,7 @@ __export(snapshotsDiffer_exports, { 
     | 
|
| 
       14442 
14987 
     | 
    
         
             
              makePatched: () => makePatched,
         
     | 
| 
       14443 
14988 
     | 
    
         
             
              makeSelfOrPatched: () => makeSelfOrPatched
         
     | 
| 
       14444 
14989 
     | 
    
         
             
            });
         
     | 
| 
       14445 
     | 
    
         
            -
            var makeChanged, makeSelfOrChanged, makePatched, makeSelfOrPatched, columnSchema, alteredColumnSchema, enumSchema2, changedEnumSchema, tableScheme, alteredTableScheme, diffResultScheme, diffResultSchemeMysql, diffResultSchemeSQLite, schemaChangeFor, nameChangeFor, nameSchemaChangeFor, columnChangeFor, applyPgSnapshotsDiff, applyMysqlSnapshotsDiff, applySqliteSnapshotsDiff;
         
     | 
| 
      
 14990 
     | 
    
         
            +
            var makeChanged, makeSelfOrChanged, makePatched, makeSelfOrPatched, columnSchema, alteredColumnSchema, enumSchema2, changedEnumSchema, tableScheme, alteredTableScheme, diffResultScheme, diffResultSchemeMysql, diffResultSchemeSQLite, schemaChangeFor, nameChangeFor, nameSchemaChangeFor, columnChangeFor, applyPgSnapshotsDiff, applyMysqlSnapshotsDiff, applySqliteSnapshotsDiff, applyLibSQLSnapshotsDiff;
         
     | 
| 
       14446 
14991 
     | 
    
         
             
            var init_snapshotsDiffer = __esm({
         
     | 
| 
       14447 
14992 
     | 
    
         
             
              "src/snapshotsDiffer.ts"() {
         
     | 
| 
       14448 
14993 
     | 
    
         
             
                "use strict";
         
     | 
| 
         @@ -14454,6 +14999,7 @@ var init_snapshotsDiffer = __esm({ 
     | 
|
| 
       14454 
14999 
     | 
    
         
             
                init_mysqlSchema();
         
     | 
| 
       14455 
15000 
     | 
    
         
             
                init_pgSchema();
         
     | 
| 
       14456 
15001 
     | 
    
         
             
                init_sqliteSchema();
         
     | 
| 
      
 15002 
     | 
    
         
            +
                init_statementCombiner();
         
     | 
| 
       14457 
15003 
     | 
    
         
             
                init_utils();
         
     | 
| 
       14458 
15004 
     | 
    
         
             
                makeChanged = (schema4) => {
         
     | 
| 
       14459 
15005 
     | 
    
         
             
                  return objectType({
         
     | 
| 
         @@ -15327,53 +15873,352 @@ var init_snapshotsDiffer = __esm({ 
     | 
|
| 
       15327 
15873 
     | 
    
         
             
                      curFull.internal
         
     | 
| 
       15328 
15874 
     | 
    
         
             
                    );
         
     | 
| 
       15329 
15875 
     | 
    
         
             
                  }).flat();
         
     | 
| 
       15330 
     | 
    
         
            -
                  const jsonDropTables = deletedTables.map((it) => {
         
     | 
| 
       15331 
     | 
    
         
            -
                    return prepareDropTableJson(it);
         
     | 
| 
       15332 
     | 
    
         
            -
                  });
         
     | 
| 
       15333 
     | 
    
         
            -
                  const jsonRenameTables = renamedTables.map((it) => {
         
     | 
| 
       15334 
     | 
    
         
            -
                    return prepareRenameTableJson(it.from, it.to);
         
     | 
| 
       15335 
     | 
    
         
            -
                  });
         
     | 
| 
       15336 
     | 
    
         
            -
                  const alteredTables = typedResult.alteredTablesWithColumns;
         
     | 
| 
      
 15876 
     | 
    
         
            +
                  const jsonDropTables = deletedTables.map((it) => {
         
     | 
| 
      
 15877 
     | 
    
         
            +
                    return prepareDropTableJson(it);
         
     | 
| 
      
 15878 
     | 
    
         
            +
                  });
         
     | 
| 
      
 15879 
     | 
    
         
            +
                  const jsonRenameTables = renamedTables.map((it) => {
         
     | 
| 
      
 15880 
     | 
    
         
            +
                    return prepareRenameTableJson(it.from, it.to);
         
     | 
| 
      
 15881 
     | 
    
         
            +
                  });
         
     | 
| 
      
 15882 
     | 
    
         
            +
                  const alteredTables = typedResult.alteredTablesWithColumns;
         
     | 
| 
      
 15883 
     | 
    
         
            +
                  const jsonAddedCompositePKs = [];
         
     | 
| 
      
 15884 
     | 
    
         
            +
                  const jsonDeletedCompositePKs = [];
         
     | 
| 
      
 15885 
     | 
    
         
            +
                  const jsonAlteredCompositePKs = [];
         
     | 
| 
      
 15886 
     | 
    
         
            +
                  const jsonAddedUniqueConstraints = [];
         
     | 
| 
      
 15887 
     | 
    
         
            +
                  const jsonDeletedUniqueConstraints = [];
         
     | 
| 
      
 15888 
     | 
    
         
            +
                  const jsonAlteredUniqueConstraints = [];
         
     | 
| 
      
 15889 
     | 
    
         
            +
                  const jsonRenameColumnsStatements = columnRenames.map((it) => prepareRenameColumns(it.table, "", it.renames)).flat();
         
     | 
| 
      
 15890 
     | 
    
         
            +
                  const jsonAddColumnsStatemets = columnCreates.map((it) => _prepareAddColumns(it.table, "", it.columns)).flat();
         
     | 
| 
      
 15891 
     | 
    
         
            +
                  const jsonDropColumnsStatemets = columnDeletes.map((it) => _prepareDropColumns(it.table, "", it.columns)).flat();
         
     | 
| 
      
 15892 
     | 
    
         
            +
                  alteredTables.forEach((it) => {
         
     | 
| 
      
 15893 
     | 
    
         
            +
                    let addedColumns = [];
         
     | 
| 
      
 15894 
     | 
    
         
            +
                    for (const addedPkName of Object.keys(it.addedCompositePKs)) {
         
     | 
| 
      
 15895 
     | 
    
         
            +
                      const addedPkColumns = it.addedCompositePKs[addedPkName];
         
     | 
| 
      
 15896 
     | 
    
         
            +
                      addedColumns = MySqlSquasher.unsquashPK(addedPkColumns).columns;
         
     | 
| 
      
 15897 
     | 
    
         
            +
                    }
         
     | 
| 
      
 15898 
     | 
    
         
            +
                    let deletedColumns = [];
         
     | 
| 
      
 15899 
     | 
    
         
            +
                    for (const deletedPkName of Object.keys(it.deletedCompositePKs)) {
         
     | 
| 
      
 15900 
     | 
    
         
            +
                      const deletedPkColumns = it.deletedCompositePKs[deletedPkName];
         
     | 
| 
      
 15901 
     | 
    
         
            +
                      deletedColumns = MySqlSquasher.unsquashPK(deletedPkColumns).columns;
         
     | 
| 
      
 15902 
     | 
    
         
            +
                    }
         
     | 
| 
      
 15903 
     | 
    
         
            +
                    const doPerformDeleteAndCreate = JSON.stringify(addedColumns) !== JSON.stringify(deletedColumns);
         
     | 
| 
      
 15904 
     | 
    
         
            +
                    let addedCompositePKs = [];
         
     | 
| 
      
 15905 
     | 
    
         
            +
                    let deletedCompositePKs = [];
         
     | 
| 
      
 15906 
     | 
    
         
            +
                    let alteredCompositePKs = [];
         
     | 
| 
      
 15907 
     | 
    
         
            +
                    addedCompositePKs = prepareAddCompositePrimaryKeyMySql(
         
     | 
| 
      
 15908 
     | 
    
         
            +
                      it.name,
         
     | 
| 
      
 15909 
     | 
    
         
            +
                      it.addedCompositePKs,
         
     | 
| 
      
 15910 
     | 
    
         
            +
                      prevFull,
         
     | 
| 
      
 15911 
     | 
    
         
            +
                      curFull
         
     | 
| 
      
 15912 
     | 
    
         
            +
                    );
         
     | 
| 
      
 15913 
     | 
    
         
            +
                    deletedCompositePKs = prepareDeleteCompositePrimaryKeyMySql(
         
     | 
| 
      
 15914 
     | 
    
         
            +
                      it.name,
         
     | 
| 
      
 15915 
     | 
    
         
            +
                      it.deletedCompositePKs,
         
     | 
| 
      
 15916 
     | 
    
         
            +
                      prevFull
         
     | 
| 
      
 15917 
     | 
    
         
            +
                    );
         
     | 
| 
      
 15918 
     | 
    
         
            +
                    alteredCompositePKs = prepareAlterCompositePrimaryKeyMySql(
         
     | 
| 
      
 15919 
     | 
    
         
            +
                      it.name,
         
     | 
| 
      
 15920 
     | 
    
         
            +
                      it.alteredCompositePKs,
         
     | 
| 
      
 15921 
     | 
    
         
            +
                      prevFull,
         
     | 
| 
      
 15922 
     | 
    
         
            +
                      curFull
         
     | 
| 
      
 15923 
     | 
    
         
            +
                    );
         
     | 
| 
      
 15924 
     | 
    
         
            +
                    let addedUniqueConstraints = [];
         
     | 
| 
      
 15925 
     | 
    
         
            +
                    let deletedUniqueConstraints = [];
         
     | 
| 
      
 15926 
     | 
    
         
            +
                    let alteredUniqueConstraints = [];
         
     | 
| 
      
 15927 
     | 
    
         
            +
                    addedUniqueConstraints = prepareAddUniqueConstraintPg(
         
     | 
| 
      
 15928 
     | 
    
         
            +
                      it.name,
         
     | 
| 
      
 15929 
     | 
    
         
            +
                      it.schema,
         
     | 
| 
      
 15930 
     | 
    
         
            +
                      it.addedUniqueConstraints
         
     | 
| 
      
 15931 
     | 
    
         
            +
                    );
         
     | 
| 
      
 15932 
     | 
    
         
            +
                    deletedUniqueConstraints = prepareDeleteUniqueConstraintPg(
         
     | 
| 
      
 15933 
     | 
    
         
            +
                      it.name,
         
     | 
| 
      
 15934 
     | 
    
         
            +
                      it.schema,
         
     | 
| 
      
 15935 
     | 
    
         
            +
                      it.deletedUniqueConstraints
         
     | 
| 
      
 15936 
     | 
    
         
            +
                    );
         
     | 
| 
      
 15937 
     | 
    
         
            +
                    if (it.alteredUniqueConstraints) {
         
     | 
| 
      
 15938 
     | 
    
         
            +
                      const added = {};
         
     | 
| 
      
 15939 
     | 
    
         
            +
                      const deleted = {};
         
     | 
| 
      
 15940 
     | 
    
         
            +
                      for (const k of Object.keys(it.alteredUniqueConstraints)) {
         
     | 
| 
      
 15941 
     | 
    
         
            +
                        added[k] = it.alteredUniqueConstraints[k].__new;
         
     | 
| 
      
 15942 
     | 
    
         
            +
                        deleted[k] = it.alteredUniqueConstraints[k].__old;
         
     | 
| 
      
 15943 
     | 
    
         
            +
                      }
         
     | 
| 
      
 15944 
     | 
    
         
            +
                      addedUniqueConstraints.push(
         
     | 
| 
      
 15945 
     | 
    
         
            +
                        ...prepareAddUniqueConstraintPg(it.name, it.schema, added)
         
     | 
| 
      
 15946 
     | 
    
         
            +
                      );
         
     | 
| 
      
 15947 
     | 
    
         
            +
                      deletedUniqueConstraints.push(
         
     | 
| 
      
 15948 
     | 
    
         
            +
                        ...prepareDeleteUniqueConstraintPg(it.name, it.schema, deleted)
         
     | 
| 
      
 15949 
     | 
    
         
            +
                      );
         
     | 
| 
      
 15950 
     | 
    
         
            +
                    }
         
     | 
| 
      
 15951 
     | 
    
         
            +
                    jsonAddedCompositePKs.push(...addedCompositePKs);
         
     | 
| 
      
 15952 
     | 
    
         
            +
                    jsonDeletedCompositePKs.push(...deletedCompositePKs);
         
     | 
| 
      
 15953 
     | 
    
         
            +
                    jsonAlteredCompositePKs.push(...alteredCompositePKs);
         
     | 
| 
      
 15954 
     | 
    
         
            +
                    jsonAddedUniqueConstraints.push(...addedUniqueConstraints);
         
     | 
| 
      
 15955 
     | 
    
         
            +
                    jsonDeletedUniqueConstraints.push(...deletedUniqueConstraints);
         
     | 
| 
      
 15956 
     | 
    
         
            +
                    jsonAlteredUniqueConstraints.push(...alteredUniqueConstraints);
         
     | 
| 
      
 15957 
     | 
    
         
            +
                  });
         
     | 
| 
      
 15958 
     | 
    
         
            +
                  const rColumns = jsonRenameColumnsStatements.map((it) => {
         
     | 
| 
      
 15959 
     | 
    
         
            +
                    const tableName = it.tableName;
         
     | 
| 
      
 15960 
     | 
    
         
            +
                    const schema4 = it.schema;
         
     | 
| 
      
 15961 
     | 
    
         
            +
                    return {
         
     | 
| 
      
 15962 
     | 
    
         
            +
                      from: { schema: schema4, table: tableName, column: it.oldColumnName },
         
     | 
| 
      
 15963 
     | 
    
         
            +
                      to: { schema: schema4, table: tableName, column: it.newColumnName }
         
     | 
| 
      
 15964 
     | 
    
         
            +
                    };
         
     | 
| 
      
 15965 
     | 
    
         
            +
                  });
         
     | 
| 
      
 15966 
     | 
    
         
            +
                  const jsonTableAlternations = alteredTables.map((it) => {
         
     | 
| 
      
 15967 
     | 
    
         
            +
                    return prepareAlterColumnsMysql(
         
     | 
| 
      
 15968 
     | 
    
         
            +
                      it.name,
         
     | 
| 
      
 15969 
     | 
    
         
            +
                      it.schema,
         
     | 
| 
      
 15970 
     | 
    
         
            +
                      it.altered,
         
     | 
| 
      
 15971 
     | 
    
         
            +
                      json1,
         
     | 
| 
      
 15972 
     | 
    
         
            +
                      json2,
         
     | 
| 
      
 15973 
     | 
    
         
            +
                      action
         
     | 
| 
      
 15974 
     | 
    
         
            +
                    );
         
     | 
| 
      
 15975 
     | 
    
         
            +
                  }).flat();
         
     | 
| 
      
 15976 
     | 
    
         
            +
                  const jsonCreateIndexesForAllAlteredTables = alteredTables.map((it) => {
         
     | 
| 
      
 15977 
     | 
    
         
            +
                    return prepareCreateIndexesJson(
         
     | 
| 
      
 15978 
     | 
    
         
            +
                      it.name,
         
     | 
| 
      
 15979 
     | 
    
         
            +
                      it.schema,
         
     | 
| 
      
 15980 
     | 
    
         
            +
                      it.addedIndexes || {},
         
     | 
| 
      
 15981 
     | 
    
         
            +
                      curFull.internal
         
     | 
| 
      
 15982 
     | 
    
         
            +
                    );
         
     | 
| 
      
 15983 
     | 
    
         
            +
                  }).flat();
         
     | 
| 
      
 15984 
     | 
    
         
            +
                  const jsonDropIndexesForAllAlteredTables = alteredTables.map((it) => {
         
     | 
| 
      
 15985 
     | 
    
         
            +
                    return prepareDropIndexesJson(
         
     | 
| 
      
 15986 
     | 
    
         
            +
                      it.name,
         
     | 
| 
      
 15987 
     | 
    
         
            +
                      it.schema,
         
     | 
| 
      
 15988 
     | 
    
         
            +
                      it.deletedIndexes || {}
         
     | 
| 
      
 15989 
     | 
    
         
            +
                    );
         
     | 
| 
      
 15990 
     | 
    
         
            +
                  }).flat();
         
     | 
| 
      
 15991 
     | 
    
         
            +
                  alteredTables.forEach((it) => {
         
     | 
| 
      
 15992 
     | 
    
         
            +
                    const droppedIndexes = Object.keys(it.alteredIndexes).reduce(
         
     | 
| 
      
 15993 
     | 
    
         
            +
                      (current, item) => {
         
     | 
| 
      
 15994 
     | 
    
         
            +
                        current[item] = it.alteredIndexes[item].__old;
         
     | 
| 
      
 15995 
     | 
    
         
            +
                        return current;
         
     | 
| 
      
 15996 
     | 
    
         
            +
                      },
         
     | 
| 
      
 15997 
     | 
    
         
            +
                      {}
         
     | 
| 
      
 15998 
     | 
    
         
            +
                    );
         
     | 
| 
      
 15999 
     | 
    
         
            +
                    const createdIndexes = Object.keys(it.alteredIndexes).reduce(
         
     | 
| 
      
 16000 
     | 
    
         
            +
                      (current, item) => {
         
     | 
| 
      
 16001 
     | 
    
         
            +
                        current[item] = it.alteredIndexes[item].__new;
         
     | 
| 
      
 16002 
     | 
    
         
            +
                        return current;
         
     | 
| 
      
 16003 
     | 
    
         
            +
                      },
         
     | 
| 
      
 16004 
     | 
    
         
            +
                      {}
         
     | 
| 
      
 16005 
     | 
    
         
            +
                    );
         
     | 
| 
      
 16006 
     | 
    
         
            +
                    jsonCreateIndexesForAllAlteredTables.push(
         
     | 
| 
      
 16007 
     | 
    
         
            +
                      ...prepareCreateIndexesJson(it.name, it.schema, createdIndexes || {})
         
     | 
| 
      
 16008 
     | 
    
         
            +
                    );
         
     | 
| 
      
 16009 
     | 
    
         
            +
                    jsonDropIndexesForAllAlteredTables.push(
         
     | 
| 
      
 16010 
     | 
    
         
            +
                      ...prepareDropIndexesJson(it.name, it.schema, droppedIndexes || {})
         
     | 
| 
      
 16011 
     | 
    
         
            +
                    );
         
     | 
| 
      
 16012 
     | 
    
         
            +
                  });
         
     | 
| 
      
 16013 
     | 
    
         
            +
                  const jsonCreateReferencesForCreatedTables = createdTables.map((it) => {
         
     | 
| 
      
 16014 
     | 
    
         
            +
                    return prepareCreateReferencesJson(it.name, it.schema, it.foreignKeys);
         
     | 
| 
      
 16015 
     | 
    
         
            +
                  }).flat();
         
     | 
| 
      
 16016 
     | 
    
         
            +
                  const jsonReferencesForAllAlteredTables = alteredTables.map((it) => {
         
     | 
| 
      
 16017 
     | 
    
         
            +
                    const forAdded = prepareCreateReferencesJson(
         
     | 
| 
      
 16018 
     | 
    
         
            +
                      it.name,
         
     | 
| 
      
 16019 
     | 
    
         
            +
                      it.schema,
         
     | 
| 
      
 16020 
     | 
    
         
            +
                      it.addedForeignKeys
         
     | 
| 
      
 16021 
     | 
    
         
            +
                    );
         
     | 
| 
      
 16022 
     | 
    
         
            +
                    const forAltered = prepareDropReferencesJson(
         
     | 
| 
      
 16023 
     | 
    
         
            +
                      it.name,
         
     | 
| 
      
 16024 
     | 
    
         
            +
                      it.schema,
         
     | 
| 
      
 16025 
     | 
    
         
            +
                      it.deletedForeignKeys
         
     | 
| 
      
 16026 
     | 
    
         
            +
                    );
         
     | 
| 
      
 16027 
     | 
    
         
            +
                    const alteredFKs = prepareAlterReferencesJson(
         
     | 
| 
      
 16028 
     | 
    
         
            +
                      it.name,
         
     | 
| 
      
 16029 
     | 
    
         
            +
                      it.schema,
         
     | 
| 
      
 16030 
     | 
    
         
            +
                      it.alteredForeignKeys
         
     | 
| 
      
 16031 
     | 
    
         
            +
                    );
         
     | 
| 
      
 16032 
     | 
    
         
            +
                    return [...forAdded, ...forAltered, ...alteredFKs];
         
     | 
| 
      
 16033 
     | 
    
         
            +
                  }).flat();
         
     | 
| 
      
 16034 
     | 
    
         
            +
                  const jsonCreatedReferencesForAlteredTables = jsonReferencesForAllAlteredTables.filter(
         
     | 
| 
      
 16035 
     | 
    
         
            +
                    (t) => t.type === "create_reference"
         
     | 
| 
      
 16036 
     | 
    
         
            +
                  );
         
     | 
| 
      
 16037 
     | 
    
         
            +
                  const jsonDroppedReferencesForAlteredTables = jsonReferencesForAllAlteredTables.filter(
         
     | 
| 
      
 16038 
     | 
    
         
            +
                    (t) => t.type === "delete_reference"
         
     | 
| 
      
 16039 
     | 
    
         
            +
                  );
         
     | 
| 
      
 16040 
     | 
    
         
            +
                  const jsonMySqlCreateTables = createdTables.map((it) => {
         
     | 
| 
      
 16041 
     | 
    
         
            +
                    return prepareMySqlCreateTableJson(
         
     | 
| 
      
 16042 
     | 
    
         
            +
                      it,
         
     | 
| 
      
 16043 
     | 
    
         
            +
                      curFull,
         
     | 
| 
      
 16044 
     | 
    
         
            +
                      curFull.internal
         
     | 
| 
      
 16045 
     | 
    
         
            +
                    );
         
     | 
| 
      
 16046 
     | 
    
         
            +
                  });
         
     | 
| 
      
 16047 
     | 
    
         
            +
                  jsonStatements.push(...jsonMySqlCreateTables);
         
     | 
| 
      
 16048 
     | 
    
         
            +
                  jsonStatements.push(...jsonDropTables);
         
     | 
| 
      
 16049 
     | 
    
         
            +
                  jsonStatements.push(...jsonRenameTables);
         
     | 
| 
      
 16050 
     | 
    
         
            +
                  jsonStatements.push(...jsonRenameColumnsStatements);
         
     | 
| 
      
 16051 
     | 
    
         
            +
                  jsonStatements.push(...jsonDeletedUniqueConstraints);
         
     | 
| 
      
 16052 
     | 
    
         
            +
                  jsonStatements.push(...jsonDroppedReferencesForAlteredTables);
         
     | 
| 
      
 16053 
     | 
    
         
            +
                  jsonStatements.push(...jsonDropIndexesForAllAlteredTables);
         
     | 
| 
      
 16054 
     | 
    
         
            +
                  jsonStatements.push(...jsonDeletedCompositePKs);
         
     | 
| 
      
 16055 
     | 
    
         
            +
                  jsonStatements.push(...jsonTableAlternations);
         
     | 
| 
      
 16056 
     | 
    
         
            +
                  jsonStatements.push(...jsonAddedCompositePKs);
         
     | 
| 
      
 16057 
     | 
    
         
            +
                  jsonStatements.push(...jsonAddedUniqueConstraints);
         
     | 
| 
      
 16058 
     | 
    
         
            +
                  jsonStatements.push(...jsonDeletedUniqueConstraints);
         
     | 
| 
      
 16059 
     | 
    
         
            +
                  jsonStatements.push(...jsonAddColumnsStatemets);
         
     | 
| 
      
 16060 
     | 
    
         
            +
                  jsonStatements.push(...jsonCreateReferencesForCreatedTables);
         
     | 
| 
      
 16061 
     | 
    
         
            +
                  jsonStatements.push(...jsonCreateIndexesForCreatedTables);
         
     | 
| 
      
 16062 
     | 
    
         
            +
                  jsonStatements.push(...jsonCreatedReferencesForAlteredTables);
         
     | 
| 
      
 16063 
     | 
    
         
            +
                  jsonStatements.push(...jsonCreateIndexesForAllAlteredTables);
         
     | 
| 
      
 16064 
     | 
    
         
            +
                  jsonStatements.push(...jsonDropColumnsStatemets);
         
     | 
| 
      
 16065 
     | 
    
         
            +
                  jsonStatements.push(...jsonAlteredCompositePKs);
         
     | 
| 
      
 16066 
     | 
    
         
            +
                  jsonStatements.push(...jsonAddedUniqueConstraints);
         
     | 
| 
      
 16067 
     | 
    
         
            +
                  jsonStatements.push(...jsonAlteredUniqueConstraints);
         
     | 
| 
      
 16068 
     | 
    
         
            +
                  const sqlStatements = fromJson(jsonStatements, "mysql");
         
     | 
| 
      
 16069 
     | 
    
         
            +
                  const uniqueSqlStatements = [];
         
     | 
| 
      
 16070 
     | 
    
         
            +
                  sqlStatements.forEach((ss) => {
         
     | 
| 
      
 16071 
     | 
    
         
            +
                    if (!uniqueSqlStatements.includes(ss)) {
         
     | 
| 
      
 16072 
     | 
    
         
            +
                      uniqueSqlStatements.push(ss);
         
     | 
| 
      
 16073 
     | 
    
         
            +
                    }
         
     | 
| 
      
 16074 
     | 
    
         
            +
                  });
         
     | 
| 
      
 16075 
     | 
    
         
            +
                  const rTables = renamedTables.map((it) => {
         
     | 
| 
      
 16076 
     | 
    
         
            +
                    return { from: it.from, to: it.to };
         
     | 
| 
      
 16077 
     | 
    
         
            +
                  });
         
     | 
| 
      
 16078 
     | 
    
         
            +
                  const _meta = prepareMigrationMeta([], rTables, rColumns);
         
     | 
| 
      
 16079 
     | 
    
         
            +
                  return {
         
     | 
| 
      
 16080 
     | 
    
         
            +
                    statements: jsonStatements,
         
     | 
| 
      
 16081 
     | 
    
         
            +
                    sqlStatements: uniqueSqlStatements,
         
     | 
| 
      
 16082 
     | 
    
         
            +
                    _meta
         
     | 
| 
      
 16083 
     | 
    
         
            +
                  };
         
     | 
| 
      
 16084 
     | 
    
         
            +
                };
         
     | 
| 
      
 16085 
     | 
    
         
            +
                applySqliteSnapshotsDiff = async (json1, json2, tablesResolver2, columnsResolver2, prevFull, curFull, action) => {
         
     | 
| 
      
 16086 
     | 
    
         
            +
                  const tablesDiff = diffSchemasOrTables(json1.tables, json2.tables);
         
     | 
| 
      
 16087 
     | 
    
         
            +
                  const {
         
     | 
| 
      
 16088 
     | 
    
         
            +
                    created: createdTables,
         
     | 
| 
      
 16089 
     | 
    
         
            +
                    deleted: deletedTables,
         
     | 
| 
      
 16090 
     | 
    
         
            +
                    renamed: renamedTables
         
     | 
| 
      
 16091 
     | 
    
         
            +
                  } = await tablesResolver2({
         
     | 
| 
      
 16092 
     | 
    
         
            +
                    created: tablesDiff.added,
         
     | 
| 
      
 16093 
     | 
    
         
            +
                    deleted: tablesDiff.deleted
         
     | 
| 
      
 16094 
     | 
    
         
            +
                  });
         
     | 
| 
      
 16095 
     | 
    
         
            +
                  const tablesPatchedSnap1 = copy(json1);
         
     | 
| 
      
 16096 
     | 
    
         
            +
                  tablesPatchedSnap1.tables = mapEntries(tablesPatchedSnap1.tables, (_2, it) => {
         
     | 
| 
      
 16097 
     | 
    
         
            +
                    const { name: name2 } = nameChangeFor(it, renamedTables);
         
     | 
| 
      
 16098 
     | 
    
         
            +
                    it.name = name2;
         
     | 
| 
      
 16099 
     | 
    
         
            +
                    return [name2, it];
         
     | 
| 
      
 16100 
     | 
    
         
            +
                  });
         
     | 
| 
      
 16101 
     | 
    
         
            +
                  const res = diffColumns(tablesPatchedSnap1.tables, json2.tables);
         
     | 
| 
      
 16102 
     | 
    
         
            +
                  const columnRenames = [];
         
     | 
| 
      
 16103 
     | 
    
         
            +
                  const columnCreates = [];
         
     | 
| 
      
 16104 
     | 
    
         
            +
                  const columnDeletes = [];
         
     | 
| 
      
 16105 
     | 
    
         
            +
                  for (let entry of Object.values(res)) {
         
     | 
| 
      
 16106 
     | 
    
         
            +
                    const { renamed, created, deleted } = await columnsResolver2({
         
     | 
| 
      
 16107 
     | 
    
         
            +
                      tableName: entry.name,
         
     | 
| 
      
 16108 
     | 
    
         
            +
                      schema: entry.schema,
         
     | 
| 
      
 16109 
     | 
    
         
            +
                      deleted: entry.columns.deleted,
         
     | 
| 
      
 16110 
     | 
    
         
            +
                      created: entry.columns.added
         
     | 
| 
      
 16111 
     | 
    
         
            +
                    });
         
     | 
| 
      
 16112 
     | 
    
         
            +
                    if (created.length > 0) {
         
     | 
| 
      
 16113 
     | 
    
         
            +
                      columnCreates.push({
         
     | 
| 
      
 16114 
     | 
    
         
            +
                        table: entry.name,
         
     | 
| 
      
 16115 
     | 
    
         
            +
                        columns: created
         
     | 
| 
      
 16116 
     | 
    
         
            +
                      });
         
     | 
| 
      
 16117 
     | 
    
         
            +
                    }
         
     | 
| 
      
 16118 
     | 
    
         
            +
                    if (deleted.length > 0) {
         
     | 
| 
      
 16119 
     | 
    
         
            +
                      columnDeletes.push({
         
     | 
| 
      
 16120 
     | 
    
         
            +
                        table: entry.name,
         
     | 
| 
      
 16121 
     | 
    
         
            +
                        columns: deleted
         
     | 
| 
      
 16122 
     | 
    
         
            +
                      });
         
     | 
| 
      
 16123 
     | 
    
         
            +
                    }
         
     | 
| 
      
 16124 
     | 
    
         
            +
                    if (renamed.length > 0) {
         
     | 
| 
      
 16125 
     | 
    
         
            +
                      columnRenames.push({
         
     | 
| 
      
 16126 
     | 
    
         
            +
                        table: entry.name,
         
     | 
| 
      
 16127 
     | 
    
         
            +
                        renames: renamed
         
     | 
| 
      
 16128 
     | 
    
         
            +
                      });
         
     | 
| 
      
 16129 
     | 
    
         
            +
                    }
         
     | 
| 
      
 16130 
     | 
    
         
            +
                  }
         
     | 
| 
      
 16131 
     | 
    
         
            +
                  const columnRenamesDict = columnRenames.reduce(
         
     | 
| 
      
 16132 
     | 
    
         
            +
                    (acc, it) => {
         
     | 
| 
      
 16133 
     | 
    
         
            +
                      acc[it.table] = it.renames;
         
     | 
| 
      
 16134 
     | 
    
         
            +
                      return acc;
         
     | 
| 
      
 16135 
     | 
    
         
            +
                    },
         
     | 
| 
      
 16136 
     | 
    
         
            +
                    {}
         
     | 
| 
      
 16137 
     | 
    
         
            +
                  );
         
     | 
| 
      
 16138 
     | 
    
         
            +
                  const columnsPatchedSnap1 = copy(tablesPatchedSnap1);
         
     | 
| 
      
 16139 
     | 
    
         
            +
                  columnsPatchedSnap1.tables = mapEntries(
         
     | 
| 
      
 16140 
     | 
    
         
            +
                    columnsPatchedSnap1.tables,
         
     | 
| 
      
 16141 
     | 
    
         
            +
                    (tableKey2, tableValue) => {
         
     | 
| 
      
 16142 
     | 
    
         
            +
                      const patchedColumns = mapKeys(
         
     | 
| 
      
 16143 
     | 
    
         
            +
                        tableValue.columns,
         
     | 
| 
      
 16144 
     | 
    
         
            +
                        (columnKey, column4) => {
         
     | 
| 
      
 16145 
     | 
    
         
            +
                          const rens = columnRenamesDict[tableValue.name] || [];
         
     | 
| 
      
 16146 
     | 
    
         
            +
                          const newName = columnChangeFor(columnKey, rens);
         
     | 
| 
      
 16147 
     | 
    
         
            +
                          column4.name = newName;
         
     | 
| 
      
 16148 
     | 
    
         
            +
                          return newName;
         
     | 
| 
      
 16149 
     | 
    
         
            +
                        }
         
     | 
| 
      
 16150 
     | 
    
         
            +
                      );
         
     | 
| 
      
 16151 
     | 
    
         
            +
                      tableValue.columns = patchedColumns;
         
     | 
| 
      
 16152 
     | 
    
         
            +
                      return [tableKey2, tableValue];
         
     | 
| 
      
 16153 
     | 
    
         
            +
                    }
         
     | 
| 
      
 16154 
     | 
    
         
            +
                  );
         
     | 
| 
      
 16155 
     | 
    
         
            +
                  const diffResult = applyJsonDiff(columnsPatchedSnap1, json2);
         
     | 
| 
      
 16156 
     | 
    
         
            +
                  const typedResult = diffResultSchemeSQLite.parse(diffResult);
         
     | 
| 
      
 16157 
     | 
    
         
            +
                  const tablesMap = {};
         
     | 
| 
      
 16158 
     | 
    
         
            +
                  typedResult.alteredTablesWithColumns.forEach((obj) => {
         
     | 
| 
      
 16159 
     | 
    
         
            +
                    tablesMap[obj.name] = obj;
         
     | 
| 
      
 16160 
     | 
    
         
            +
                  });
         
     | 
| 
      
 16161 
     | 
    
         
            +
                  const jsonCreateTables = createdTables.map((it) => {
         
     | 
| 
      
 16162 
     | 
    
         
            +
                    return prepareSQLiteCreateTable(it, action);
         
     | 
| 
      
 16163 
     | 
    
         
            +
                  });
         
     | 
| 
      
 16164 
     | 
    
         
            +
                  const jsonCreateIndexesForCreatedTables = createdTables.map((it) => {
         
     | 
| 
      
 16165 
     | 
    
         
            +
                    return prepareCreateIndexesJson(
         
     | 
| 
      
 16166 
     | 
    
         
            +
                      it.name,
         
     | 
| 
      
 16167 
     | 
    
         
            +
                      it.schema,
         
     | 
| 
      
 16168 
     | 
    
         
            +
                      it.indexes,
         
     | 
| 
      
 16169 
     | 
    
         
            +
                      curFull.internal
         
     | 
| 
      
 16170 
     | 
    
         
            +
                    );
         
     | 
| 
      
 16171 
     | 
    
         
            +
                  }).flat();
         
     | 
| 
      
 16172 
     | 
    
         
            +
                  const jsonDropTables = deletedTables.map((it) => {
         
     | 
| 
      
 16173 
     | 
    
         
            +
                    return prepareDropTableJson(it);
         
     | 
| 
      
 16174 
     | 
    
         
            +
                  });
         
     | 
| 
      
 16175 
     | 
    
         
            +
                  const jsonRenameTables = renamedTables.map((it) => {
         
     | 
| 
      
 16176 
     | 
    
         
            +
                    return prepareRenameTableJson(it.from, it.to);
         
     | 
| 
      
 16177 
     | 
    
         
            +
                  });
         
     | 
| 
      
 16178 
     | 
    
         
            +
                  const jsonRenameColumnsStatements = columnRenames.map((it) => prepareRenameColumns(it.table, "", it.renames)).flat();
         
     | 
| 
      
 16179 
     | 
    
         
            +
                  const jsonDropColumnsStatemets = columnDeletes.map((it) => _prepareDropColumns(it.table, "", it.columns)).flat();
         
     | 
| 
      
 16180 
     | 
    
         
            +
                  const jsonAddColumnsStatemets = columnCreates.map((it) => {
         
     | 
| 
      
 16181 
     | 
    
         
            +
                    return _prepareSqliteAddColumns(
         
     | 
| 
      
 16182 
     | 
    
         
            +
                      it.table,
         
     | 
| 
      
 16183 
     | 
    
         
            +
                      it.columns,
         
     | 
| 
      
 16184 
     | 
    
         
            +
                      tablesMap[it.table] && tablesMap[it.table].addedForeignKeys ? Object.values(tablesMap[it.table].addedForeignKeys) : []
         
     | 
| 
      
 16185 
     | 
    
         
            +
                    );
         
     | 
| 
      
 16186 
     | 
    
         
            +
                  }).flat();
         
     | 
| 
      
 16187 
     | 
    
         
            +
                  const allAltered = typedResult.alteredTablesWithColumns;
         
     | 
| 
       15337 
16188 
     | 
    
         
             
                  const jsonAddedCompositePKs = [];
         
     | 
| 
       15338 
16189 
     | 
    
         
             
                  const jsonDeletedCompositePKs = [];
         
     | 
| 
       15339 
16190 
     | 
    
         
             
                  const jsonAlteredCompositePKs = [];
         
     | 
| 
       15340 
16191 
     | 
    
         
             
                  const jsonAddedUniqueConstraints = [];
         
     | 
| 
       15341 
16192 
     | 
    
         
             
                  const jsonDeletedUniqueConstraints = [];
         
     | 
| 
       15342 
16193 
     | 
    
         
             
                  const jsonAlteredUniqueConstraints = [];
         
     | 
| 
       15343 
     | 
    
         
            -
                   
     | 
| 
       15344 
     | 
    
         
            -
                  const jsonAddColumnsStatemets = columnCreates.map((it) => _prepareAddColumns(it.table, "", it.columns)).flat();
         
     | 
| 
       15345 
     | 
    
         
            -
                  const jsonDropColumnsStatemets = columnDeletes.map((it) => _prepareDropColumns(it.table, "", it.columns)).flat();
         
     | 
| 
       15346 
     | 
    
         
            -
                  alteredTables.forEach((it) => {
         
     | 
| 
      
 16194 
     | 
    
         
            +
                  allAltered.forEach((it) => {
         
     | 
| 
       15347 
16195 
     | 
    
         
             
                    let addedColumns = [];
         
     | 
| 
       15348 
16196 
     | 
    
         
             
                    for (const addedPkName of Object.keys(it.addedCompositePKs)) {
         
     | 
| 
       15349 
16197 
     | 
    
         
             
                      const addedPkColumns = it.addedCompositePKs[addedPkName];
         
     | 
| 
       15350 
     | 
    
         
            -
                      addedColumns =  
     | 
| 
      
 16198 
     | 
    
         
            +
                      addedColumns = SQLiteSquasher.unsquashPK(addedPkColumns);
         
     | 
| 
       15351 
16199 
     | 
    
         
             
                    }
         
     | 
| 
       15352 
16200 
     | 
    
         
             
                    let deletedColumns = [];
         
     | 
| 
       15353 
16201 
     | 
    
         
             
                    for (const deletedPkName of Object.keys(it.deletedCompositePKs)) {
         
     | 
| 
       15354 
16202 
     | 
    
         
             
                      const deletedPkColumns = it.deletedCompositePKs[deletedPkName];
         
     | 
| 
       15355 
     | 
    
         
            -
                      deletedColumns =  
     | 
| 
      
 16203 
     | 
    
         
            +
                      deletedColumns = SQLiteSquasher.unsquashPK(deletedPkColumns);
         
     | 
| 
       15356 
16204 
     | 
    
         
             
                    }
         
     | 
| 
       15357 
16205 
     | 
    
         
             
                    const doPerformDeleteAndCreate = JSON.stringify(addedColumns) !== JSON.stringify(deletedColumns);
         
     | 
| 
       15358 
16206 
     | 
    
         
             
                    let addedCompositePKs = [];
         
     | 
| 
       15359 
16207 
     | 
    
         
             
                    let deletedCompositePKs = [];
         
     | 
| 
       15360 
16208 
     | 
    
         
             
                    let alteredCompositePKs = [];
         
     | 
| 
       15361 
     | 
    
         
            -
                     
     | 
| 
       15362 
     | 
    
         
            -
                       
     | 
| 
       15363 
     | 
    
         
            -
             
     | 
| 
       15364 
     | 
    
         
            -
             
     | 
| 
       15365 
     | 
    
         
            -
                       
     | 
| 
       15366 
     | 
    
         
            -
             
     | 
| 
       15367 
     | 
    
         
            -
             
     | 
| 
       15368 
     | 
    
         
            -
             
     | 
| 
       15369 
     | 
    
         
            -
                       
     | 
| 
       15370 
     | 
    
         
            -
             
     | 
| 
       15371 
     | 
    
         
            -
                     
     | 
| 
       15372 
     | 
    
         
            -
                    alteredCompositePKs = prepareAlterCompositePrimaryKeyMySql(
         
     | 
| 
      
 16209 
     | 
    
         
            +
                    if (doPerformDeleteAndCreate) {
         
     | 
| 
      
 16210 
     | 
    
         
            +
                      addedCompositePKs = prepareAddCompositePrimaryKeySqlite(
         
     | 
| 
      
 16211 
     | 
    
         
            +
                        it.name,
         
     | 
| 
      
 16212 
     | 
    
         
            +
                        it.addedCompositePKs
         
     | 
| 
      
 16213 
     | 
    
         
            +
                      );
         
     | 
| 
      
 16214 
     | 
    
         
            +
                      deletedCompositePKs = prepareDeleteCompositePrimaryKeySqlite(
         
     | 
| 
      
 16215 
     | 
    
         
            +
                        it.name,
         
     | 
| 
      
 16216 
     | 
    
         
            +
                        it.deletedCompositePKs
         
     | 
| 
      
 16217 
     | 
    
         
            +
                      );
         
     | 
| 
      
 16218 
     | 
    
         
            +
                    }
         
     | 
| 
      
 16219 
     | 
    
         
            +
                    alteredCompositePKs = prepareAlterCompositePrimaryKeySqlite(
         
     | 
| 
       15373 
16220 
     | 
    
         
             
                      it.name,
         
     | 
| 
       15374 
     | 
    
         
            -
                      it.alteredCompositePKs 
     | 
| 
       15375 
     | 
    
         
            -
                      prevFull,
         
     | 
| 
       15376 
     | 
    
         
            -
                      curFull
         
     | 
| 
      
 16221 
     | 
    
         
            +
                      it.alteredCompositePKs
         
     | 
| 
       15377 
16222 
     | 
    
         
             
                    );
         
     | 
| 
       15378 
16223 
     | 
    
         
             
                    let addedUniqueConstraints = [];
         
     | 
| 
       15379 
16224 
     | 
    
         
             
                    let deletedUniqueConstraints = [];
         
     | 
| 
         @@ -15417,17 +16262,10 @@ var init_snapshotsDiffer = __esm({ 
     | 
|
| 
       15417 
16262 
     | 
    
         
             
                      to: { schema: schema4, table: tableName, column: it.newColumnName }
         
     | 
| 
       15418 
16263 
     | 
    
         
             
                    };
         
     | 
| 
       15419 
16264 
     | 
    
         
             
                  });
         
     | 
| 
       15420 
     | 
    
         
            -
                  const jsonTableAlternations =  
     | 
| 
       15421 
     | 
    
         
            -
                    return  
     | 
| 
       15422 
     | 
    
         
            -
                      it.name,
         
     | 
| 
       15423 
     | 
    
         
            -
                      it.schema,
         
     | 
| 
       15424 
     | 
    
         
            -
                      it.altered,
         
     | 
| 
       15425 
     | 
    
         
            -
                      json1,
         
     | 
| 
       15426 
     | 
    
         
            -
                      json2,
         
     | 
| 
       15427 
     | 
    
         
            -
                      action
         
     | 
| 
       15428 
     | 
    
         
            -
                    );
         
     | 
| 
      
 16265 
     | 
    
         
            +
                  const jsonTableAlternations = allAltered.map((it) => {
         
     | 
| 
      
 16266 
     | 
    
         
            +
                    return prepareSqliteAlterColumns(it.name, it.schema, it.altered, json2);
         
     | 
| 
       15429 
16267 
     | 
    
         
             
                  }).flat();
         
     | 
| 
       15430 
     | 
    
         
            -
                  const jsonCreateIndexesForAllAlteredTables =  
     | 
| 
      
 16268 
     | 
    
         
            +
                  const jsonCreateIndexesForAllAlteredTables = allAltered.map((it) => {
         
     | 
| 
       15431 
16269 
     | 
    
         
             
                    return prepareCreateIndexesJson(
         
     | 
| 
       15432 
16270 
     | 
    
         
             
                      it.name,
         
     | 
| 
       15433 
16271 
     | 
    
         
             
                      it.schema,
         
     | 
| 
         @@ -15435,14 +16273,14 @@ var init_snapshotsDiffer = __esm({ 
     | 
|
| 
       15435 
16273 
     | 
    
         
             
                      curFull.internal
         
     | 
| 
       15436 
16274 
     | 
    
         
             
                    );
         
     | 
| 
       15437 
16275 
     | 
    
         
             
                  }).flat();
         
     | 
| 
       15438 
     | 
    
         
            -
                  const jsonDropIndexesForAllAlteredTables =  
     | 
| 
      
 16276 
     | 
    
         
            +
                  const jsonDropIndexesForAllAlteredTables = allAltered.map((it) => {
         
     | 
| 
       15439 
16277 
     | 
    
         
             
                    return prepareDropIndexesJson(
         
     | 
| 
       15440 
16278 
     | 
    
         
             
                      it.name,
         
     | 
| 
       15441 
16279 
     | 
    
         
             
                      it.schema,
         
     | 
| 
       15442 
16280 
     | 
    
         
             
                      it.deletedIndexes || {}
         
     | 
| 
       15443 
16281 
     | 
    
         
             
                    );
         
     | 
| 
       15444 
16282 
     | 
    
         
             
                  }).flat();
         
     | 
| 
       15445 
     | 
    
         
            -
                   
     | 
| 
      
 16283 
     | 
    
         
            +
                  allAltered.forEach((it) => {
         
     | 
| 
       15446 
16284 
     | 
    
         
             
                    const droppedIndexes = Object.keys(it.alteredIndexes).reduce(
         
     | 
| 
       15447 
16285 
     | 
    
         
             
                      (current, item) => {
         
     | 
| 
       15448 
16286 
     | 
    
         
             
                        current[item] = it.alteredIndexes[item].__old;
         
     | 
| 
         @@ -15458,16 +16296,18 @@ var init_snapshotsDiffer = __esm({ 
     | 
|
| 
       15458 
16296 
     | 
    
         
             
                      {}
         
     | 
| 
       15459 
16297 
     | 
    
         
             
                    );
         
     | 
| 
       15460 
16298 
     | 
    
         
             
                    jsonCreateIndexesForAllAlteredTables.push(
         
     | 
| 
       15461 
     | 
    
         
            -
                      ...prepareCreateIndexesJson( 
     | 
| 
      
 16299 
     | 
    
         
            +
                      ...prepareCreateIndexesJson(
         
     | 
| 
      
 16300 
     | 
    
         
            +
                        it.name,
         
     | 
| 
      
 16301 
     | 
    
         
            +
                        it.schema,
         
     | 
| 
      
 16302 
     | 
    
         
            +
                        createdIndexes || {},
         
     | 
| 
      
 16303 
     | 
    
         
            +
                        curFull.internal
         
     | 
| 
      
 16304 
     | 
    
         
            +
                      )
         
     | 
| 
       15462 
16305 
     | 
    
         
             
                    );
         
     | 
| 
       15463 
16306 
     | 
    
         
             
                    jsonDropIndexesForAllAlteredTables.push(
         
     | 
| 
       15464 
16307 
     | 
    
         
             
                      ...prepareDropIndexesJson(it.name, it.schema, droppedIndexes || {})
         
     | 
| 
       15465 
16308 
     | 
    
         
             
                    );
         
     | 
| 
       15466 
16309 
     | 
    
         
             
                  });
         
     | 
| 
       15467 
     | 
    
         
            -
                  const  
     | 
| 
       15468 
     | 
    
         
            -
                    return prepareCreateReferencesJson(it.name, it.schema, it.foreignKeys);
         
     | 
| 
       15469 
     | 
    
         
            -
                  }).flat();
         
     | 
| 
       15470 
     | 
    
         
            -
                  const jsonReferencesForAllAlteredTables = alteredTables.map((it) => {
         
     | 
| 
      
 16310 
     | 
    
         
            +
                  const jsonReferencesForAllAlteredTables = allAltered.map((it) => {
         
     | 
| 
       15471 
16311 
     | 
    
         
             
                    const forAdded = prepareCreateReferencesJson(
         
     | 
| 
       15472 
16312 
     | 
    
         
             
                      it.name,
         
     | 
| 
       15473 
16313 
     | 
    
         
             
                      it.schema,
         
     | 
| 
         @@ -15491,35 +16331,25 @@ var init_snapshotsDiffer = __esm({ 
     | 
|
| 
       15491 
16331 
     | 
    
         
             
                  const jsonDroppedReferencesForAlteredTables = jsonReferencesForAllAlteredTables.filter(
         
     | 
| 
       15492 
16332 
     | 
    
         
             
                    (t) => t.type === "delete_reference"
         
     | 
| 
       15493 
16333 
     | 
    
         
             
                  );
         
     | 
| 
       15494 
     | 
    
         
            -
                  const  
     | 
| 
       15495 
     | 
    
         
            -
             
     | 
| 
       15496 
     | 
    
         
            -
                      it,
         
     | 
| 
       15497 
     | 
    
         
            -
                      curFull,
         
     | 
| 
       15498 
     | 
    
         
            -
                      curFull.internal
         
     | 
| 
       15499 
     | 
    
         
            -
                    );
         
     | 
| 
       15500 
     | 
    
         
            -
                  });
         
     | 
| 
       15501 
     | 
    
         
            -
                  jsonStatements.push(...jsonMySqlCreateTables);
         
     | 
| 
      
 16334 
     | 
    
         
            +
                  const jsonStatements = [];
         
     | 
| 
      
 16335 
     | 
    
         
            +
                  jsonStatements.push(...jsonCreateTables);
         
     | 
| 
       15502 
16336 
     | 
    
         
             
                  jsonStatements.push(...jsonDropTables);
         
     | 
| 
       15503 
16337 
     | 
    
         
             
                  jsonStatements.push(...jsonRenameTables);
         
     | 
| 
       15504 
16338 
     | 
    
         
             
                  jsonStatements.push(...jsonRenameColumnsStatements);
         
     | 
| 
       15505 
     | 
    
         
            -
                  jsonStatements.push(...jsonDeletedUniqueConstraints);
         
     | 
| 
       15506 
16339 
     | 
    
         
             
                  jsonStatements.push(...jsonDroppedReferencesForAlteredTables);
         
     | 
| 
       15507 
16340 
     | 
    
         
             
                  jsonStatements.push(...jsonDropIndexesForAllAlteredTables);
         
     | 
| 
       15508 
16341 
     | 
    
         
             
                  jsonStatements.push(...jsonDeletedCompositePKs);
         
     | 
| 
       15509 
16342 
     | 
    
         
             
                  jsonStatements.push(...jsonTableAlternations);
         
     | 
| 
       15510 
16343 
     | 
    
         
             
                  jsonStatements.push(...jsonAddedCompositePKs);
         
     | 
| 
       15511 
     | 
    
         
            -
                  jsonStatements.push(...jsonAddedUniqueConstraints);
         
     | 
| 
       15512 
     | 
    
         
            -
                  jsonStatements.push(...jsonDeletedUniqueConstraints);
         
     | 
| 
       15513 
16344 
     | 
    
         
             
                  jsonStatements.push(...jsonAddColumnsStatemets);
         
     | 
| 
       15514 
     | 
    
         
            -
                  jsonStatements.push(...jsonCreateReferencesForCreatedTables);
         
     | 
| 
       15515 
16345 
     | 
    
         
             
                  jsonStatements.push(...jsonCreateIndexesForCreatedTables);
         
     | 
| 
       15516 
     | 
    
         
            -
                  jsonStatements.push(...jsonCreatedReferencesForAlteredTables);
         
     | 
| 
       15517 
16346 
     | 
    
         
             
                  jsonStatements.push(...jsonCreateIndexesForAllAlteredTables);
         
     | 
| 
      
 16347 
     | 
    
         
            +
                  jsonStatements.push(...jsonCreatedReferencesForAlteredTables);
         
     | 
| 
       15518 
16348 
     | 
    
         
             
                  jsonStatements.push(...jsonDropColumnsStatemets);
         
     | 
| 
       15519 
16349 
     | 
    
         
             
                  jsonStatements.push(...jsonAlteredCompositePKs);
         
     | 
| 
       15520 
     | 
    
         
            -
                  jsonStatements.push(...jsonAddedUniqueConstraints);
         
     | 
| 
       15521 
16350 
     | 
    
         
             
                  jsonStatements.push(...jsonAlteredUniqueConstraints);
         
     | 
| 
       15522 
     | 
    
         
            -
                  const  
     | 
| 
      
 16351 
     | 
    
         
            +
                  const combinedJsonStatements = sqliteCombineStatements(jsonStatements, json2, action);
         
     | 
| 
      
 16352 
     | 
    
         
            +
                  const sqlStatements = fromJson(combinedJsonStatements, "sqlite");
         
     | 
| 
       15523 
16353 
     | 
    
         
             
                  const uniqueSqlStatements = [];
         
     | 
| 
       15524 
16354 
     | 
    
         
             
                  sqlStatements.forEach((ss) => {
         
     | 
| 
       15525 
16355 
     | 
    
         
             
                    if (!uniqueSqlStatements.includes(ss)) {
         
     | 
| 
         @@ -15531,12 +16361,12 @@ var init_snapshotsDiffer = __esm({ 
     | 
|
| 
       15531 
16361 
     | 
    
         
             
                  });
         
     | 
| 
       15532 
16362 
     | 
    
         
             
                  const _meta = prepareMigrationMeta([], rTables, rColumns);
         
     | 
| 
       15533 
16363 
     | 
    
         
             
                  return {
         
     | 
| 
       15534 
     | 
    
         
            -
                    statements:  
     | 
| 
      
 16364 
     | 
    
         
            +
                    statements: combinedJsonStatements,
         
     | 
| 
       15535 
16365 
     | 
    
         
             
                    sqlStatements: uniqueSqlStatements,
         
     | 
| 
       15536 
16366 
     | 
    
         
             
                    _meta
         
     | 
| 
       15537 
16367 
     | 
    
         
             
                  };
         
     | 
| 
       15538 
16368 
     | 
    
         
             
                };
         
     | 
| 
       15539 
     | 
    
         
            -
                 
     | 
| 
      
 16369 
     | 
    
         
            +
                applyLibSQLSnapshotsDiff = async (json1, json2, tablesResolver2, columnsResolver2, prevFull, curFull, action) => {
         
     | 
| 
       15540 
16370 
     | 
    
         
             
                  const tablesDiff = diffSchemasOrTables(json1.tables, json2.tables);
         
     | 
| 
       15541 
16371 
     | 
    
         
             
                  const {
         
     | 
| 
       15542 
16372 
     | 
    
         
             
                    created: createdTables,
         
     | 
| 
         @@ -15638,6 +16468,18 @@ var init_snapshotsDiffer = __esm({ 
     | 
|
| 
       15638 
16468 
     | 
    
         
             
                      tablesMap[it.table] && tablesMap[it.table].addedForeignKeys ? Object.values(tablesMap[it.table].addedForeignKeys) : []
         
     | 
| 
       15639 
16469 
     | 
    
         
             
                    );
         
     | 
| 
       15640 
16470 
     | 
    
         
             
                  }).flat();
         
     | 
| 
      
 16471 
     | 
    
         
            +
                  const rColumns = jsonRenameColumnsStatements.map((it) => {
         
     | 
| 
      
 16472 
     | 
    
         
            +
                    const tableName = it.tableName;
         
     | 
| 
      
 16473 
     | 
    
         
            +
                    const schema4 = it.schema;
         
     | 
| 
      
 16474 
     | 
    
         
            +
                    return {
         
     | 
| 
      
 16475 
     | 
    
         
            +
                      from: { schema: schema4, table: tableName, column: it.oldColumnName },
         
     | 
| 
      
 16476 
     | 
    
         
            +
                      to: { schema: schema4, table: tableName, column: it.newColumnName }
         
     | 
| 
      
 16477 
     | 
    
         
            +
                    };
         
     | 
| 
      
 16478 
     | 
    
         
            +
                  });
         
     | 
| 
      
 16479 
     | 
    
         
            +
                  const rTables = renamedTables.map((it) => {
         
     | 
| 
      
 16480 
     | 
    
         
            +
                    return { from: it.from, to: it.to };
         
     | 
| 
      
 16481 
     | 
    
         
            +
                  });
         
     | 
| 
      
 16482 
     | 
    
         
            +
                  const _meta = prepareMigrationMeta([], rTables, rColumns);
         
     | 
| 
       15641 
16483 
     | 
    
         
             
                  const allAltered = typedResult.alteredTablesWithColumns;
         
     | 
| 
       15642 
16484 
     | 
    
         
             
                  const jsonAddedCompositePKs = [];
         
     | 
| 
       15643 
16485 
     | 
    
         
             
                  const jsonDeletedCompositePKs = [];
         
     | 
| 
         @@ -15708,14 +16550,6 @@ var init_snapshotsDiffer = __esm({ 
     | 
|
| 
       15708 
16550 
     | 
    
         
             
                    jsonDeletedUniqueConstraints.push(...deletedUniqueConstraints);
         
     | 
| 
       15709 
16551 
     | 
    
         
             
                    jsonAlteredUniqueConstraints.push(...alteredUniqueConstraints);
         
     | 
| 
       15710 
16552 
     | 
    
         
             
                  });
         
     | 
| 
       15711 
     | 
    
         
            -
                  const rColumns = jsonRenameColumnsStatements.map((it) => {
         
     | 
| 
       15712 
     | 
    
         
            -
                    const tableName = it.tableName;
         
     | 
| 
       15713 
     | 
    
         
            -
                    const schema4 = it.schema;
         
     | 
| 
       15714 
     | 
    
         
            -
                    return {
         
     | 
| 
       15715 
     | 
    
         
            -
                      from: { schema: schema4, table: tableName, column: it.oldColumnName },
         
     | 
| 
       15716 
     | 
    
         
            -
                      to: { schema: schema4, table: tableName, column: it.newColumnName }
         
     | 
| 
       15717 
     | 
    
         
            -
                    };
         
     | 
| 
       15718 
     | 
    
         
            -
                  });
         
     | 
| 
       15719 
16553 
     | 
    
         
             
                  const jsonTableAlternations = allAltered.map((it) => {
         
     | 
| 
       15720 
16554 
     | 
    
         
             
                    return prepareSqliteAlterColumns(it.name, it.schema, it.altered, json2);
         
     | 
| 
       15721 
16555 
     | 
    
         
             
                  }).flat();
         
     | 
| 
         @@ -15762,21 +16596,22 @@ var init_snapshotsDiffer = __esm({ 
     | 
|
| 
       15762 
16596 
     | 
    
         
             
                    );
         
     | 
| 
       15763 
16597 
     | 
    
         
             
                  });
         
     | 
| 
       15764 
16598 
     | 
    
         
             
                  const jsonReferencesForAllAlteredTables = allAltered.map((it) => {
         
     | 
| 
       15765 
     | 
    
         
            -
                    const forAdded =  
     | 
| 
       15766 
     | 
    
         
            -
                      it.name,
         
     | 
| 
       15767 
     | 
    
         
            -
                      it.schema,
         
     | 
| 
       15768 
     | 
    
         
            -
                      it.addedForeignKeys
         
     | 
| 
       15769 
     | 
    
         
            -
                    );
         
     | 
| 
       15770 
     | 
    
         
            -
                    const forAltered = prepareDropReferencesJson(
         
     | 
| 
      
 16599 
     | 
    
         
            +
                    const forAdded = prepareLibSQLCreateReferencesJson(
         
     | 
| 
       15771 
16600 
     | 
    
         
             
                      it.name,
         
     | 
| 
       15772 
16601 
     | 
    
         
             
                      it.schema,
         
     | 
| 
       15773 
     | 
    
         
            -
                      it. 
     | 
| 
      
 16602 
     | 
    
         
            +
                      it.addedForeignKeys,
         
     | 
| 
      
 16603 
     | 
    
         
            +
                      json2,
         
     | 
| 
      
 16604 
     | 
    
         
            +
                      action
         
     | 
| 
       15774 
16605 
     | 
    
         
             
                    );
         
     | 
| 
       15775 
     | 
    
         
            -
                    const  
     | 
| 
      
 16606 
     | 
    
         
            +
                    const forAltered = prepareLibSQLDropReferencesJson(
         
     | 
| 
       15776 
16607 
     | 
    
         
             
                      it.name,
         
     | 
| 
       15777 
16608 
     | 
    
         
             
                      it.schema,
         
     | 
| 
       15778 
     | 
    
         
            -
                      it. 
     | 
| 
      
 16609 
     | 
    
         
            +
                      it.deletedForeignKeys,
         
     | 
| 
      
 16610 
     | 
    
         
            +
                      json2,
         
     | 
| 
      
 16611 
     | 
    
         
            +
                      _meta,
         
     | 
| 
      
 16612 
     | 
    
         
            +
                      action
         
     | 
| 
       15779 
16613 
     | 
    
         
             
                    );
         
     | 
| 
      
 16614 
     | 
    
         
            +
                    const alteredFKs = prepareAlterReferencesJson(it.name, it.schema, it.alteredForeignKeys);
         
     | 
| 
       15780 
16615 
     | 
    
         
             
                    return [...forAdded, ...forAltered, ...alteredFKs];
         
     | 
| 
       15781 
16616 
     | 
    
         
             
                  }).flat();
         
     | 
| 
       15782 
16617 
     | 
    
         
             
                  const jsonCreatedReferencesForAlteredTables = jsonReferencesForAllAlteredTables.filter(
         
     | 
| 
         @@ -15802,19 +16637,22 @@ var init_snapshotsDiffer = __esm({ 
     | 
|
| 
       15802 
16637 
     | 
    
         
             
                  jsonStatements.push(...jsonDropColumnsStatemets);
         
     | 
| 
       15803 
16638 
     | 
    
         
             
                  jsonStatements.push(...jsonAlteredCompositePKs);
         
     | 
| 
       15804 
16639 
     | 
    
         
             
                  jsonStatements.push(...jsonAlteredUniqueConstraints);
         
     | 
| 
       15805 
     | 
    
         
            -
                  const  
     | 
| 
      
 16640 
     | 
    
         
            +
                  const combinedJsonStatements = libSQLCombineStatements(jsonStatements, json2, action);
         
     | 
| 
      
 16641 
     | 
    
         
            +
                  const sqlStatements = fromJson(
         
     | 
| 
      
 16642 
     | 
    
         
            +
                    combinedJsonStatements,
         
     | 
| 
      
 16643 
     | 
    
         
            +
                    "sqlite",
         
     | 
| 
      
 16644 
     | 
    
         
            +
                    action,
         
     | 
| 
      
 16645 
     | 
    
         
            +
                    "turso",
         
     | 
| 
      
 16646 
     | 
    
         
            +
                    json2
         
     | 
| 
      
 16647 
     | 
    
         
            +
                  );
         
     | 
| 
       15806 
16648 
     | 
    
         
             
                  const uniqueSqlStatements = [];
         
     | 
| 
       15807 
16649 
     | 
    
         
             
                  sqlStatements.forEach((ss) => {
         
     | 
| 
       15808 
16650 
     | 
    
         
             
                    if (!uniqueSqlStatements.includes(ss)) {
         
     | 
| 
       15809 
16651 
     | 
    
         
             
                      uniqueSqlStatements.push(ss);
         
     | 
| 
       15810 
16652 
     | 
    
         
             
                    }
         
     | 
| 
       15811 
16653 
     | 
    
         
             
                  });
         
     | 
| 
       15812 
     | 
    
         
            -
                  const rTables = renamedTables.map((it) => {
         
     | 
| 
       15813 
     | 
    
         
            -
                    return { from: it.from, to: it.to };
         
     | 
| 
       15814 
     | 
    
         
            -
                  });
         
     | 
| 
       15815 
     | 
    
         
            -
                  const _meta = prepareMigrationMeta([], rTables, rColumns);
         
     | 
| 
       15816 
16654 
     | 
    
         
             
                  return {
         
     | 
| 
       15817 
     | 
    
         
            -
                    statements:  
     | 
| 
      
 16655 
     | 
    
         
            +
                    statements: combinedJsonStatements,
         
     | 
| 
       15818 
16656 
     | 
    
         
             
                    sqlStatements: uniqueSqlStatements,
         
     | 
| 
       15819 
16657 
     | 
    
         
             
                    _meta
         
     | 
| 
       15820 
16658 
     | 
    
         
             
                  };
         
     | 
| 
         @@ -33876,7 +34714,8 @@ var init_cli = __esm({ 
     | 
|
| 
       33876 
34714 
     | 
    
         
             
                  schemaFilter: unionType([stringType(), stringType().array()]).optional().default(["public"]),
         
     | 
| 
       33877 
34715 
     | 
    
         
             
                  extensionsFilters: literalType("postgis").array().optional(),
         
     | 
| 
       33878 
34716 
     | 
    
         
             
                  verbose: booleanType().optional(),
         
     | 
| 
       33879 
     | 
    
         
            -
                  strict: booleanType().optional()
         
     | 
| 
      
 34717 
     | 
    
         
            +
                  strict: booleanType().optional(),
         
     | 
| 
      
 34718 
     | 
    
         
            +
                  driver: driver.optional()
         
     | 
| 
       33880 
34719 
     | 
    
         
             
                }).passthrough();
         
     | 
| 
       33881 
34720 
     | 
    
         
             
                pullParams = objectType({
         
     | 
| 
       33882 
34721 
     | 
    
         
             
                  config: stringType().optional(),
         
     | 
| 
         @@ -35028,284 +35867,8 @@ var sqlitePushIntrospect = async (db, filters) => { 
     | 
|
| 
       35028 
35867 
     | 
    
         
             
              return { schema: schema4 };
         
     | 
| 
       35029 
35868 
     | 
    
         
             
            };
         
     | 
| 
       35030 
35869 
     | 
    
         | 
| 
       35031 
     | 
    
         
            -
            // src/cli/commands/sqlitePushUtils.ts
         
     | 
| 
       35032 
     | 
    
         
            -
            init_source();
         
     | 
| 
       35033 
     | 
    
         
            -
            init_sqliteSchema();
         
     | 
| 
       35034 
     | 
    
         
            -
            init_sqlgenerator();
         
     | 
| 
       35035 
     | 
    
         
            -
            var _moveDataStatements = (tableName, json, dataLoss = false) => {
         
     | 
| 
       35036 
     | 
    
         
            -
              const statements = [];
         
     | 
| 
       35037 
     | 
    
         
            -
              statements.push(
         
     | 
| 
       35038 
     | 
    
         
            -
                new SqliteRenameTableConvertor().convert({
         
     | 
| 
       35039 
     | 
    
         
            -
                  type: "rename_table",
         
     | 
| 
       35040 
     | 
    
         
            -
                  tableNameFrom: tableName,
         
     | 
| 
       35041 
     | 
    
         
            -
                  tableNameTo: `__old_push_${tableName}`,
         
     | 
| 
       35042 
     | 
    
         
            -
                  fromSchema: "",
         
     | 
| 
       35043 
     | 
    
         
            -
                  toSchema: ""
         
     | 
| 
       35044 
     | 
    
         
            -
                })
         
     | 
| 
       35045 
     | 
    
         
            -
              );
         
     | 
| 
       35046 
     | 
    
         
            -
              const tableColumns = Object.values(json.tables[tableName].columns);
         
     | 
| 
       35047 
     | 
    
         
            -
              const referenceData = Object.values(json.tables[tableName].foreignKeys);
         
     | 
| 
       35048 
     | 
    
         
            -
              const compositePKs = Object.values(
         
     | 
| 
       35049 
     | 
    
         
            -
                json.tables[tableName].compositePrimaryKeys
         
     | 
| 
       35050 
     | 
    
         
            -
              ).map((it) => SQLiteSquasher.unsquashPK(it));
         
     | 
| 
       35051 
     | 
    
         
            -
              const fks = referenceData.map((it) => SQLiteSquasher.unsquashPushFK(it));
         
     | 
| 
       35052 
     | 
    
         
            -
              statements.push(
         
     | 
| 
       35053 
     | 
    
         
            -
                new SQLiteCreateTableConvertor().convert({
         
     | 
| 
       35054 
     | 
    
         
            -
                  type: "sqlite_create_table",
         
     | 
| 
       35055 
     | 
    
         
            -
                  tableName,
         
     | 
| 
       35056 
     | 
    
         
            -
                  columns: tableColumns,
         
     | 
| 
       35057 
     | 
    
         
            -
                  referenceData: fks,
         
     | 
| 
       35058 
     | 
    
         
            -
                  compositePKs
         
     | 
| 
       35059 
     | 
    
         
            -
                })
         
     | 
| 
       35060 
     | 
    
         
            -
              );
         
     | 
| 
       35061 
     | 
    
         
            -
              if (!dataLoss) {
         
     | 
| 
       35062 
     | 
    
         
            -
                statements.push(
         
     | 
| 
       35063 
     | 
    
         
            -
                  `INSERT INTO "${tableName}" SELECT * FROM "__old_push_${tableName}";`
         
     | 
| 
       35064 
     | 
    
         
            -
                );
         
     | 
| 
       35065 
     | 
    
         
            -
              }
         
     | 
| 
       35066 
     | 
    
         
            -
              statements.push(
         
     | 
| 
       35067 
     | 
    
         
            -
                new SQLiteDropTableConvertor().convert({
         
     | 
| 
       35068 
     | 
    
         
            -
                  type: "drop_table",
         
     | 
| 
       35069 
     | 
    
         
            -
                  tableName: `__old_push_${tableName}`,
         
     | 
| 
       35070 
     | 
    
         
            -
                  schema: ""
         
     | 
| 
       35071 
     | 
    
         
            -
                })
         
     | 
| 
       35072 
     | 
    
         
            -
              );
         
     | 
| 
       35073 
     | 
    
         
            -
              for (const idx of Object.values(json.tables[tableName].indexes)) {
         
     | 
| 
       35074 
     | 
    
         
            -
                statements.push(
         
     | 
| 
       35075 
     | 
    
         
            -
                  new CreateSqliteIndexConvertor().convert({
         
     | 
| 
       35076 
     | 
    
         
            -
                    type: "create_index",
         
     | 
| 
       35077 
     | 
    
         
            -
                    tableName,
         
     | 
| 
       35078 
     | 
    
         
            -
                    schema: "",
         
     | 
| 
       35079 
     | 
    
         
            -
                    data: idx
         
     | 
| 
       35080 
     | 
    
         
            -
                  })
         
     | 
| 
       35081 
     | 
    
         
            -
                );
         
     | 
| 
       35082 
     | 
    
         
            -
              }
         
     | 
| 
       35083 
     | 
    
         
            -
              return statements;
         
     | 
| 
       35084 
     | 
    
         
            -
            };
         
     | 
| 
       35085 
     | 
    
         
            -
            var getOldTableName = (tableName, meta) => {
         
     | 
| 
       35086 
     | 
    
         
            -
              for (const key of Object.keys(meta.tables)) {
         
     | 
| 
       35087 
     | 
    
         
            -
                const value = meta.tables[key];
         
     | 
| 
       35088 
     | 
    
         
            -
                if (`"${tableName}"` === value) {
         
     | 
| 
       35089 
     | 
    
         
            -
                  return key.substring(1, key.length - 1);
         
     | 
| 
       35090 
     | 
    
         
            -
                }
         
     | 
| 
       35091 
     | 
    
         
            -
              }
         
     | 
| 
       35092 
     | 
    
         
            -
              return tableName;
         
     | 
| 
       35093 
     | 
    
         
            -
            };
         
     | 
| 
       35094 
     | 
    
         
            -
            var getNewTableName = (tableName, meta) => {
         
     | 
| 
       35095 
     | 
    
         
            -
              if (typeof meta.tables[`"${tableName}"`] !== "undefined") {
         
     | 
| 
       35096 
     | 
    
         
            -
                return meta.tables[`"${tableName}"`].substring(
         
     | 
| 
       35097 
     | 
    
         
            -
                  1,
         
     | 
| 
       35098 
     | 
    
         
            -
                  meta.tables[`"${tableName}"`].length - 1
         
     | 
| 
       35099 
     | 
    
         
            -
                );
         
     | 
| 
       35100 
     | 
    
         
            -
              }
         
     | 
| 
       35101 
     | 
    
         
            -
              return tableName;
         
     | 
| 
       35102 
     | 
    
         
            -
            };
         
     | 
| 
       35103 
     | 
    
         
            -
            var logSuggestionsAndReturn = async (connection, statements, json1, json2, meta) => {
         
     | 
| 
       35104 
     | 
    
         
            -
              let shouldAskForApprove = false;
         
     | 
| 
       35105 
     | 
    
         
            -
              const statementsToExecute = [];
         
     | 
| 
       35106 
     | 
    
         
            -
              const infoToPrint = [];
         
     | 
| 
       35107 
     | 
    
         
            -
              const tablesToRemove = [];
         
     | 
| 
       35108 
     | 
    
         
            -
              const columnsToRemove = [];
         
     | 
| 
       35109 
     | 
    
         
            -
              const schemasToRemove = [];
         
     | 
| 
       35110 
     | 
    
         
            -
              const tablesToTruncate = [];
         
     | 
| 
       35111 
     | 
    
         
            -
              const tablesContext = {};
         
     | 
| 
       35112 
     | 
    
         
            -
              for (const statement of statements) {
         
     | 
| 
       35113 
     | 
    
         
            -
                if (statement.type === "drop_table") {
         
     | 
| 
       35114 
     | 
    
         
            -
                  const res = await connection.query(
         
     | 
| 
       35115 
     | 
    
         
            -
                    `select count(*) as count from \`${statement.tableName}\``
         
     | 
| 
       35116 
     | 
    
         
            -
                  );
         
     | 
| 
       35117 
     | 
    
         
            -
                  const count2 = Number(res[0].count);
         
     | 
| 
       35118 
     | 
    
         
            -
                  if (count2 > 0) {
         
     | 
| 
       35119 
     | 
    
         
            -
                    infoToPrint.push(
         
     | 
| 
       35120 
     | 
    
         
            -
                      `\xB7 You're about to delete ${source_default.underline(
         
     | 
| 
       35121 
     | 
    
         
            -
                        statement.tableName
         
     | 
| 
       35122 
     | 
    
         
            -
                      )} table with ${count2} items`
         
     | 
| 
       35123 
     | 
    
         
            -
                    );
         
     | 
| 
       35124 
     | 
    
         
            -
                    tablesToRemove.push(statement.tableName);
         
     | 
| 
       35125 
     | 
    
         
            -
                    shouldAskForApprove = true;
         
     | 
| 
       35126 
     | 
    
         
            -
                  }
         
     | 
| 
       35127 
     | 
    
         
            -
                  const stmnt = fromJson([statement], "sqlite")[0];
         
     | 
| 
       35128 
     | 
    
         
            -
                  statementsToExecute.push(stmnt);
         
     | 
| 
       35129 
     | 
    
         
            -
                } else if (statement.type === "alter_table_drop_column") {
         
     | 
| 
       35130 
     | 
    
         
            -
                  const newTableName = getOldTableName(statement.tableName, meta);
         
     | 
| 
       35131 
     | 
    
         
            -
                  const columnIsPartOfPk = Object.values(
         
     | 
| 
       35132 
     | 
    
         
            -
                    json1.tables[newTableName].compositePrimaryKeys
         
     | 
| 
       35133 
     | 
    
         
            -
                  ).find((c) => SQLiteSquasher.unsquashPK(c).includes(statement.columnName));
         
     | 
| 
       35134 
     | 
    
         
            -
                  const columnIsPartOfIndex = Object.values(
         
     | 
| 
       35135 
     | 
    
         
            -
                    json1.tables[newTableName].indexes
         
     | 
| 
       35136 
     | 
    
         
            -
                  ).find((c) => SQLiteSquasher.unsquashIdx(c).columns.includes(statement.columnName));
         
     | 
| 
       35137 
     | 
    
         
            -
                  const columnIsPk = json1.tables[newTableName].columns[statement.columnName].primaryKey;
         
     | 
| 
       35138 
     | 
    
         
            -
                  const columnIsPartOfFk = Object.values(
         
     | 
| 
       35139 
     | 
    
         
            -
                    json1.tables[newTableName].foreignKeys
         
     | 
| 
       35140 
     | 
    
         
            -
                  ).find(
         
     | 
| 
       35141 
     | 
    
         
            -
                    (t) => SQLiteSquasher.unsquashPushFK(t).columnsFrom.includes(
         
     | 
| 
       35142 
     | 
    
         
            -
                      statement.columnName
         
     | 
| 
       35143 
     | 
    
         
            -
                    )
         
     | 
| 
       35144 
     | 
    
         
            -
                  );
         
     | 
| 
       35145 
     | 
    
         
            -
                  const res = await connection.query(
         
     | 
| 
       35146 
     | 
    
         
            -
                    `select count(*) as count from \`${newTableName}\``
         
     | 
| 
       35147 
     | 
    
         
            -
                  );
         
     | 
| 
       35148 
     | 
    
         
            -
                  const count2 = Number(res[0].count);
         
     | 
| 
       35149 
     | 
    
         
            -
                  if (count2 > 0) {
         
     | 
| 
       35150 
     | 
    
         
            -
                    infoToPrint.push(
         
     | 
| 
       35151 
     | 
    
         
            -
                      `\xB7 You're about to delete ${source_default.underline(
         
     | 
| 
       35152 
     | 
    
         
            -
                        statement.columnName
         
     | 
| 
       35153 
     | 
    
         
            -
                      )} column in ${newTableName} table with ${count2} items`
         
     | 
| 
       35154 
     | 
    
         
            -
                    );
         
     | 
| 
       35155 
     | 
    
         
            -
                    columnsToRemove.push(`${newTableName}_${statement.columnName}`);
         
     | 
| 
       35156 
     | 
    
         
            -
                    shouldAskForApprove = true;
         
     | 
| 
       35157 
     | 
    
         
            -
                  }
         
     | 
| 
       35158 
     | 
    
         
            -
                  if (columnIsPk || columnIsPartOfPk || columnIsPartOfIndex || columnIsPartOfFk) {
         
     | 
| 
       35159 
     | 
    
         
            -
                    tablesContext[newTableName] = [
         
     | 
| 
       35160 
     | 
    
         
            -
                      ..._moveDataStatements(statement.tableName, json2, true)
         
     | 
| 
       35161 
     | 
    
         
            -
                    ];
         
     | 
| 
       35162 
     | 
    
         
            -
                    const tablesReferncingCurrent = [];
         
     | 
| 
       35163 
     | 
    
         
            -
                    for (const table4 of Object.values(json1.tables)) {
         
     | 
| 
       35164 
     | 
    
         
            -
                      const tablesRefs = Object.values(json1.tables[table4.name].foreignKeys).filter(
         
     | 
| 
       35165 
     | 
    
         
            -
                        (t) => SQLiteSquasher.unsquashPushFK(t).tableTo === newTableName
         
     | 
| 
       35166 
     | 
    
         
            -
                      ).map((t) => SQLiteSquasher.unsquashPushFK(t).tableFrom);
         
     | 
| 
       35167 
     | 
    
         
            -
                      tablesReferncingCurrent.push(...tablesRefs);
         
     | 
| 
       35168 
     | 
    
         
            -
                    }
         
     | 
| 
       35169 
     | 
    
         
            -
                    const uniqueTableRefs = [...new Set(tablesReferncingCurrent)];
         
     | 
| 
       35170 
     | 
    
         
            -
                    for (const table4 of uniqueTableRefs) {
         
     | 
| 
       35171 
     | 
    
         
            -
                      if (typeof tablesContext[table4] === "undefined") {
         
     | 
| 
       35172 
     | 
    
         
            -
                        tablesContext[table4] = [..._moveDataStatements(table4, json2)];
         
     | 
| 
       35173 
     | 
    
         
            -
                      }
         
     | 
| 
       35174 
     | 
    
         
            -
                    }
         
     | 
| 
       35175 
     | 
    
         
            -
                  } else {
         
     | 
| 
       35176 
     | 
    
         
            -
                    if (typeof tablesContext[newTableName] === "undefined") {
         
     | 
| 
       35177 
     | 
    
         
            -
                      const stmnt = fromJson([statement], "sqlite")[0];
         
     | 
| 
       35178 
     | 
    
         
            -
                      statementsToExecute.push(stmnt);
         
     | 
| 
       35179 
     | 
    
         
            -
                    }
         
     | 
| 
       35180 
     | 
    
         
            -
                  }
         
     | 
| 
       35181 
     | 
    
         
            -
                } else if (statement.type === "sqlite_alter_table_add_column") {
         
     | 
| 
       35182 
     | 
    
         
            -
                  const newTableName = getOldTableName(statement.tableName, meta);
         
     | 
| 
       35183 
     | 
    
         
            -
                  if (statement.column.notNull && !statement.column.default) {
         
     | 
| 
       35184 
     | 
    
         
            -
                    const res = await connection.query(
         
     | 
| 
       35185 
     | 
    
         
            -
                      `select count(*) as count from \`${newTableName}\``
         
     | 
| 
       35186 
     | 
    
         
            -
                    );
         
     | 
| 
       35187 
     | 
    
         
            -
                    const count2 = Number(res[0].count);
         
     | 
| 
       35188 
     | 
    
         
            -
                    if (count2 > 0) {
         
     | 
| 
       35189 
     | 
    
         
            -
                      infoToPrint.push(
         
     | 
| 
       35190 
     | 
    
         
            -
                        `\xB7 You're about to add not-null ${source_default.underline(
         
     | 
| 
       35191 
     | 
    
         
            -
                          statement.column.name
         
     | 
| 
       35192 
     | 
    
         
            -
                        )} column without default value, which contains ${count2} items`
         
     | 
| 
       35193 
     | 
    
         
            -
                      );
         
     | 
| 
       35194 
     | 
    
         
            -
                      tablesToTruncate.push(newTableName);
         
     | 
| 
       35195 
     | 
    
         
            -
                      statementsToExecute.push(`delete from ${newTableName};`);
         
     | 
| 
       35196 
     | 
    
         
            -
                      shouldAskForApprove = true;
         
     | 
| 
       35197 
     | 
    
         
            -
                    }
         
     | 
| 
       35198 
     | 
    
         
            -
                  }
         
     | 
| 
       35199 
     | 
    
         
            -
                  if (statement.column.primaryKey) {
         
     | 
| 
       35200 
     | 
    
         
            -
                    tablesContext[newTableName] = [
         
     | 
| 
       35201 
     | 
    
         
            -
                      ..._moveDataStatements(statement.tableName, json2, true)
         
     | 
| 
       35202 
     | 
    
         
            -
                    ];
         
     | 
| 
       35203 
     | 
    
         
            -
                    const tablesReferncingCurrent = [];
         
     | 
| 
       35204 
     | 
    
         
            -
                    for (const table4 of Object.values(json1.tables)) {
         
     | 
| 
       35205 
     | 
    
         
            -
                      const tablesRefs = Object.values(json1.tables[table4.name].foreignKeys).filter(
         
     | 
| 
       35206 
     | 
    
         
            -
                        (t) => SQLiteSquasher.unsquashPushFK(t).tableTo === newTableName
         
     | 
| 
       35207 
     | 
    
         
            -
                      ).map((t) => SQLiteSquasher.unsquashPushFK(t).tableFrom);
         
     | 
| 
       35208 
     | 
    
         
            -
                      tablesReferncingCurrent.push(...tablesRefs);
         
     | 
| 
       35209 
     | 
    
         
            -
                    }
         
     | 
| 
       35210 
     | 
    
         
            -
                    const uniqueTableRefs = [...new Set(tablesReferncingCurrent)];
         
     | 
| 
       35211 
     | 
    
         
            -
                    for (const table4 of uniqueTableRefs) {
         
     | 
| 
       35212 
     | 
    
         
            -
                      if (typeof tablesContext[table4] === "undefined") {
         
     | 
| 
       35213 
     | 
    
         
            -
                        tablesContext[table4] = [..._moveDataStatements(table4, json2)];
         
     | 
| 
       35214 
     | 
    
         
            -
                      }
         
     | 
| 
       35215 
     | 
    
         
            -
                    }
         
     | 
| 
       35216 
     | 
    
         
            -
                  } else {
         
     | 
| 
       35217 
     | 
    
         
            -
                    if (typeof tablesContext[newTableName] === "undefined") {
         
     | 
| 
       35218 
     | 
    
         
            -
                      const stmnt = fromJson([statement], "sqlite")[0];
         
     | 
| 
       35219 
     | 
    
         
            -
                      statementsToExecute.push(stmnt);
         
     | 
| 
       35220 
     | 
    
         
            -
                    }
         
     | 
| 
       35221 
     | 
    
         
            -
                  }
         
     | 
| 
       35222 
     | 
    
         
            -
                } else if (statement.type === "alter_table_alter_column_set_type" || statement.type === "alter_table_alter_column_set_default" || statement.type === "alter_table_alter_column_drop_default" || statement.type === "alter_table_alter_column_set_notnull" || statement.type === "alter_table_alter_column_drop_notnull" || statement.type === "alter_table_alter_column_drop_autoincrement" || statement.type === "alter_table_alter_column_set_autoincrement" || statement.type === "alter_table_alter_column_drop_pk" || statement.type === "alter_table_alter_column_set_pk") {
         
     | 
| 
       35223 
     | 
    
         
            -
                  if (!(statement.type === "alter_table_alter_column_set_notnull" && statement.columnPk)) {
         
     | 
| 
       35224 
     | 
    
         
            -
                    const newTableName = getOldTableName(statement.tableName, meta);
         
     | 
| 
       35225 
     | 
    
         
            -
                    if (statement.type === "alter_table_alter_column_set_notnull" && typeof statement.columnDefault === "undefined") {
         
     | 
| 
       35226 
     | 
    
         
            -
                      const res = await connection.query(
         
     | 
| 
       35227 
     | 
    
         
            -
                        `select count(*) as count from \`${newTableName}\``
         
     | 
| 
       35228 
     | 
    
         
            -
                      );
         
     | 
| 
       35229 
     | 
    
         
            -
                      const count2 = Number(res[0].count);
         
     | 
| 
       35230 
     | 
    
         
            -
                      if (count2 > 0) {
         
     | 
| 
       35231 
     | 
    
         
            -
                        infoToPrint.push(
         
     | 
| 
       35232 
     | 
    
         
            -
                          `\xB7 You're about to add not-null constraint to ${source_default.underline(
         
     | 
| 
       35233 
     | 
    
         
            -
                            statement.columnName
         
     | 
| 
       35234 
     | 
    
         
            -
                          )} column without default value, which contains ${count2} items`
         
     | 
| 
       35235 
     | 
    
         
            -
                        );
         
     | 
| 
       35236 
     | 
    
         
            -
                        tablesToTruncate.push(newTableName);
         
     | 
| 
       35237 
     | 
    
         
            -
                        shouldAskForApprove = true;
         
     | 
| 
       35238 
     | 
    
         
            -
                      }
         
     | 
| 
       35239 
     | 
    
         
            -
                      tablesContext[newTableName] = _moveDataStatements(
         
     | 
| 
       35240 
     | 
    
         
            -
                        statement.tableName,
         
     | 
| 
       35241 
     | 
    
         
            -
                        json1,
         
     | 
| 
       35242 
     | 
    
         
            -
                        true
         
     | 
| 
       35243 
     | 
    
         
            -
                      );
         
     | 
| 
       35244 
     | 
    
         
            -
                    } else {
         
     | 
| 
       35245 
     | 
    
         
            -
                      if (typeof tablesContext[newTableName] === "undefined") {
         
     | 
| 
       35246 
     | 
    
         
            -
                        tablesContext[newTableName] = _moveDataStatements(
         
     | 
| 
       35247 
     | 
    
         
            -
                          statement.tableName,
         
     | 
| 
       35248 
     | 
    
         
            -
                          json1
         
     | 
| 
       35249 
     | 
    
         
            -
                        );
         
     | 
| 
       35250 
     | 
    
         
            -
                      }
         
     | 
| 
       35251 
     | 
    
         
            -
                    }
         
     | 
| 
       35252 
     | 
    
         
            -
                    const tablesReferncingCurrent = [];
         
     | 
| 
       35253 
     | 
    
         
            -
                    for (const table4 of Object.values(json1.tables)) {
         
     | 
| 
       35254 
     | 
    
         
            -
                      const tablesRefs = Object.values(json1.tables[table4.name].foreignKeys).filter(
         
     | 
| 
       35255 
     | 
    
         
            -
                        (t) => SQLiteSquasher.unsquashPushFK(t).tableTo === newTableName
         
     | 
| 
       35256 
     | 
    
         
            -
                      ).map((t) => {
         
     | 
| 
       35257 
     | 
    
         
            -
                        return getNewTableName(
         
     | 
| 
       35258 
     | 
    
         
            -
                          SQLiteSquasher.unsquashPushFK(t).tableFrom,
         
     | 
| 
       35259 
     | 
    
         
            -
                          meta
         
     | 
| 
       35260 
     | 
    
         
            -
                        );
         
     | 
| 
       35261 
     | 
    
         
            -
                      });
         
     | 
| 
       35262 
     | 
    
         
            -
                      tablesReferncingCurrent.push(...tablesRefs);
         
     | 
| 
       35263 
     | 
    
         
            -
                    }
         
     | 
| 
       35264 
     | 
    
         
            -
                    const uniqueTableRefs = [...new Set(tablesReferncingCurrent)];
         
     | 
| 
       35265 
     | 
    
         
            -
                    for (const table4 of uniqueTableRefs) {
         
     | 
| 
       35266 
     | 
    
         
            -
                      if (typeof tablesContext[table4] === "undefined") {
         
     | 
| 
       35267 
     | 
    
         
            -
                        tablesContext[table4] = [..._moveDataStatements(table4, json1)];
         
     | 
| 
       35268 
     | 
    
         
            -
                      }
         
     | 
| 
       35269 
     | 
    
         
            -
                    }
         
     | 
| 
       35270 
     | 
    
         
            -
                  }
         
     | 
| 
       35271 
     | 
    
         
            -
                } else if (statement.type === "create_reference" || statement.type === "delete_reference" || statement.type === "alter_reference") {
         
     | 
| 
       35272 
     | 
    
         
            -
                  const fk4 = SQLiteSquasher.unsquashPushFK(statement.data);
         
     | 
| 
       35273 
     | 
    
         
            -
                  if (typeof tablesContext[statement.tableName] === "undefined") {
         
     | 
| 
       35274 
     | 
    
         
            -
                    tablesContext[statement.tableName] = _moveDataStatements(
         
     | 
| 
       35275 
     | 
    
         
            -
                      statement.tableName,
         
     | 
| 
       35276 
     | 
    
         
            -
                      json2
         
     | 
| 
       35277 
     | 
    
         
            -
                    );
         
     | 
| 
       35278 
     | 
    
         
            -
                  }
         
     | 
| 
       35279 
     | 
    
         
            -
                } else if (statement.type === "create_composite_pk" || statement.type === "alter_composite_pk" || statement.type === "delete_composite_pk" || statement.type === "create_unique_constraint" || statement.type === "delete_unique_constraint") {
         
     | 
| 
       35280 
     | 
    
         
            -
                  const newTableName = getOldTableName(statement.tableName, meta);
         
     | 
| 
       35281 
     | 
    
         
            -
                  if (typeof tablesContext[newTableName] === "undefined") {
         
     | 
| 
       35282 
     | 
    
         
            -
                    tablesContext[newTableName] = _moveDataStatements(
         
     | 
| 
       35283 
     | 
    
         
            -
                      statement.tableName,
         
     | 
| 
       35284 
     | 
    
         
            -
                      json2
         
     | 
| 
       35285 
     | 
    
         
            -
                    );
         
     | 
| 
       35286 
     | 
    
         
            -
                  }
         
     | 
| 
       35287 
     | 
    
         
            -
                } else {
         
     | 
| 
       35288 
     | 
    
         
            -
                  const stmnt = fromJson([statement], "sqlite");
         
     | 
| 
       35289 
     | 
    
         
            -
                  if (typeof stmnt !== "undefined") {
         
     | 
| 
       35290 
     | 
    
         
            -
                    statementsToExecute.push(...stmnt);
         
     | 
| 
       35291 
     | 
    
         
            -
                  }
         
     | 
| 
       35292 
     | 
    
         
            -
                }
         
     | 
| 
       35293 
     | 
    
         
            -
              }
         
     | 
| 
       35294 
     | 
    
         
            -
              for (const context of Object.values(tablesContext)) {
         
     | 
| 
       35295 
     | 
    
         
            -
                statementsToExecute.push(...context);
         
     | 
| 
       35296 
     | 
    
         
            -
              }
         
     | 
| 
       35297 
     | 
    
         
            -
              return {
         
     | 
| 
       35298 
     | 
    
         
            -
                statementsToExecute,
         
     | 
| 
       35299 
     | 
    
         
            -
                shouldAskForApprove,
         
     | 
| 
       35300 
     | 
    
         
            -
                infoToPrint,
         
     | 
| 
       35301 
     | 
    
         
            -
                columnsToRemove: [...new Set(columnsToRemove)],
         
     | 
| 
       35302 
     | 
    
         
            -
                schemasToRemove: [...new Set(schemasToRemove)],
         
     | 
| 
       35303 
     | 
    
         
            -
                tablesToTruncate: [...new Set(tablesToTruncate)],
         
     | 
| 
       35304 
     | 
    
         
            -
                tablesToRemove: [...new Set(tablesToRemove)]
         
     | 
| 
       35305 
     | 
    
         
            -
              };
         
     | 
| 
       35306 
     | 
    
         
            -
            };
         
     | 
| 
       35307 
     | 
    
         
            -
             
     | 
| 
       35308 
35870 
     | 
    
         
             
            // src/api.ts
         
     | 
| 
      
 35871 
     | 
    
         
            +
            init_sqlitePushUtils();
         
     | 
| 
       35309 
35872 
     | 
    
         
             
            init_global();
         
     | 
| 
       35310 
35873 
     | 
    
         
             
            init_migrationPreparator();
         
     | 
| 
       35311 
35874 
     | 
    
         
             
            init_mysqlSchema();
         
     |