drizzle-kit 0.24.2-cf2bc48 → 0.24.2-daeed1e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api.d.mts +6 -6
- package/api.d.ts +6 -6
- package/api.js +1534 -933
- package/api.mjs +1534 -933
- package/bin.cjs +67862 -64398
- package/index.d.mts +6 -4
- package/index.d.ts +6 -4
- package/package.json +2 -3
- package/utils.js +44 -17
- package/utils.mjs +42 -17
    
        package/api.js
    CHANGED
    
    | @@ -229,8 +229,8 @@ var init_ansi_styles = __esm({ | |
| 229 229 |  | 
| 230 230 | 
             
            // ../node_modules/.pnpm/chalk@5.3.0/node_modules/chalk/source/vendor/supports-color/index.js
         | 
| 231 231 | 
             
            function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : import_node_process.default.argv) {
         | 
| 232 | 
            -
              const  | 
| 233 | 
            -
              const position = argv.indexOf( | 
| 232 | 
            +
              const prefix2 = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
         | 
| 233 | 
            +
              const position = argv.indexOf(prefix2 + flag);
         | 
| 234 234 | 
             
              const terminatorPosition = argv.indexOf("--");
         | 
| 235 235 | 
             
              return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
         | 
| 236 236 | 
             
            }
         | 
| @@ -375,12 +375,12 @@ function stringReplaceAll(string, substring, replacer) { | |
| 375 375 | 
             
              returnValue += string.slice(endIndex);
         | 
| 376 376 | 
             
              return returnValue;
         | 
| 377 377 | 
             
            }
         | 
| 378 | 
            -
            function stringEncaseCRLFWithFirstIndex(string,  | 
| 378 | 
            +
            function stringEncaseCRLFWithFirstIndex(string, prefix2, postfix, index4) {
         | 
| 379 379 | 
             
              let endIndex = 0;
         | 
| 380 380 | 
             
              let returnValue = "";
         | 
| 381 381 | 
             
              do {
         | 
| 382 382 | 
             
                const gotCR = string[index4 - 1] === "\r";
         | 
| 383 | 
            -
                returnValue += string.slice(endIndex, gotCR ? index4 - 1 : index4) +  | 
| 383 | 
            +
                returnValue += string.slice(endIndex, gotCR ? index4 - 1 : index4) + prefix2 + (gotCR ? "\r\n" : "\n") + postfix;
         | 
| 384 384 | 
             
                endIndex = index4 + 1;
         | 
| 385 385 | 
             
                index4 = string.indexOf("\n", endIndex);
         | 
| 386 386 | 
             
              } while (index4 !== -1);
         | 
| @@ -1897,40 +1897,40 @@ var require_sync = __commonJS({ | |
| 1897 1897 | 
             
                  while (typeof pattern[n] === "string") {
         | 
| 1898 1898 | 
             
                    n++;
         | 
| 1899 1899 | 
             
                  }
         | 
| 1900 | 
            -
                  var  | 
| 1900 | 
            +
                  var prefix2;
         | 
| 1901 1901 | 
             
                  switch (n) {
         | 
| 1902 1902 | 
             
                    case pattern.length:
         | 
| 1903 1903 | 
             
                      this._processSimple(pattern.join("/"), index4);
         | 
| 1904 1904 | 
             
                      return;
         | 
| 1905 1905 | 
             
                    case 0:
         | 
| 1906 | 
            -
                       | 
| 1906 | 
            +
                      prefix2 = null;
         | 
| 1907 1907 | 
             
                      break;
         | 
| 1908 1908 | 
             
                    default:
         | 
| 1909 | 
            -
                       | 
| 1909 | 
            +
                      prefix2 = pattern.slice(0, n).join("/");
         | 
| 1910 1910 | 
             
                      break;
         | 
| 1911 1911 | 
             
                  }
         | 
| 1912 1912 | 
             
                  var remain = pattern.slice(n);
         | 
| 1913 1913 | 
             
                  var read;
         | 
| 1914 | 
            -
                  if ( | 
| 1914 | 
            +
                  if (prefix2 === null)
         | 
| 1915 1915 | 
             
                    read = ".";
         | 
| 1916 | 
            -
                  else if (isAbsolute( | 
| 1916 | 
            +
                  else if (isAbsolute(prefix2) || isAbsolute(pattern.map(function(p) {
         | 
| 1917 1917 | 
             
                    return typeof p === "string" ? p : "[*]";
         | 
| 1918 1918 | 
             
                  }).join("/"))) {
         | 
| 1919 | 
            -
                    if (! | 
| 1920 | 
            -
                       | 
| 1921 | 
            -
                    read =  | 
| 1919 | 
            +
                    if (!prefix2 || !isAbsolute(prefix2))
         | 
| 1920 | 
            +
                      prefix2 = "/" + prefix2;
         | 
| 1921 | 
            +
                    read = prefix2;
         | 
| 1922 1922 | 
             
                  } else
         | 
| 1923 | 
            -
                    read =  | 
| 1923 | 
            +
                    read = prefix2;
         | 
| 1924 1924 | 
             
                  var abs = this._makeAbs(read);
         | 
| 1925 1925 | 
             
                  if (childrenIgnored(this, read))
         | 
| 1926 1926 | 
             
                    return;
         | 
| 1927 1927 | 
             
                  var isGlobStar = remain[0] === minimatch2.GLOBSTAR;
         | 
| 1928 1928 | 
             
                  if (isGlobStar)
         | 
| 1929 | 
            -
                    this._processGlobStar( | 
| 1929 | 
            +
                    this._processGlobStar(prefix2, read, abs, remain, index4, inGlobStar);
         | 
| 1930 1930 | 
             
                  else
         | 
| 1931 | 
            -
                    this._processReaddir( | 
| 1931 | 
            +
                    this._processReaddir(prefix2, read, abs, remain, index4, inGlobStar);
         | 
| 1932 1932 | 
             
                };
         | 
| 1933 | 
            -
                GlobSync.prototype._processReaddir = function( | 
| 1933 | 
            +
                GlobSync.prototype._processReaddir = function(prefix2, read, abs, remain, index4, inGlobStar) {
         | 
| 1934 1934 | 
             
                  var entries = this._readdir(abs, inGlobStar);
         | 
| 1935 1935 | 
             
                  if (!entries)
         | 
| 1936 1936 | 
             
                    return;
         | 
| @@ -1943,7 +1943,7 @@ var require_sync = __commonJS({ | |
| 1943 1943 | 
             
                    var e = entries[i];
         | 
| 1944 1944 | 
             
                    if (e.charAt(0) !== "." || dotOk) {
         | 
| 1945 1945 | 
             
                      var m;
         | 
| 1946 | 
            -
                      if (negate && ! | 
| 1946 | 
            +
                      if (negate && !prefix2) {
         | 
| 1947 1947 | 
             
                        m = !e.match(pn);
         | 
| 1948 1948 | 
             
                      } else {
         | 
| 1949 1949 | 
             
                        m = e.match(pn);
         | 
| @@ -1960,11 +1960,11 @@ var require_sync = __commonJS({ | |
| 1960 1960 | 
             
                      this.matches[index4] = /* @__PURE__ */ Object.create(null);
         | 
| 1961 1961 | 
             
                    for (var i = 0; i < len; i++) {
         | 
| 1962 1962 | 
             
                      var e = matchedEntries[i];
         | 
| 1963 | 
            -
                      if ( | 
| 1964 | 
            -
                        if ( | 
| 1965 | 
            -
                          e =  | 
| 1963 | 
            +
                      if (prefix2) {
         | 
| 1964 | 
            +
                        if (prefix2.slice(-1) !== "/")
         | 
| 1965 | 
            +
                          e = prefix2 + "/" + e;
         | 
| 1966 1966 | 
             
                        else
         | 
| 1967 | 
            -
                          e =  | 
| 1967 | 
            +
                          e = prefix2 + e;
         | 
| 1968 1968 | 
             
                      }
         | 
| 1969 1969 | 
             
                      if (e.charAt(0) === "/" && !this.nomount) {
         | 
| 1970 1970 | 
             
                        e = path2.join(this.root, e);
         | 
| @@ -1977,8 +1977,8 @@ var require_sync = __commonJS({ | |
| 1977 1977 | 
             
                  for (var i = 0; i < len; i++) {
         | 
| 1978 1978 | 
             
                    var e = matchedEntries[i];
         | 
| 1979 1979 | 
             
                    var newPattern;
         | 
| 1980 | 
            -
                    if ( | 
| 1981 | 
            -
                      newPattern = [ | 
| 1980 | 
            +
                    if (prefix2)
         | 
| 1981 | 
            +
                      newPattern = [prefix2, e];
         | 
| 1982 1982 | 
             
                    else
         | 
| 1983 1983 | 
             
                      newPattern = [e];
         | 
| 1984 1984 | 
             
                    this._process(newPattern.concat(remain), index4, inGlobStar);
         | 
| @@ -2085,12 +2085,12 @@ var require_sync = __commonJS({ | |
| 2085 2085 | 
             
                      break;
         | 
| 2086 2086 | 
             
                  }
         | 
| 2087 2087 | 
             
                };
         | 
| 2088 | 
            -
                GlobSync.prototype._processGlobStar = function( | 
| 2088 | 
            +
                GlobSync.prototype._processGlobStar = function(prefix2, read, abs, remain, index4, inGlobStar) {
         | 
| 2089 2089 | 
             
                  var entries = this._readdir(abs, inGlobStar);
         | 
| 2090 2090 | 
             
                  if (!entries)
         | 
| 2091 2091 | 
             
                    return;
         | 
| 2092 2092 | 
             
                  var remainWithoutGlobStar = remain.slice(1);
         | 
| 2093 | 
            -
                  var gspref =  | 
| 2093 | 
            +
                  var gspref = prefix2 ? [prefix2] : [];
         | 
| 2094 2094 | 
             
                  var noGlobStar = gspref.concat(remainWithoutGlobStar);
         | 
| 2095 2095 | 
             
                  this._process(noGlobStar, index4, false);
         | 
| 2096 2096 | 
             
                  var len = entries.length;
         | 
| @@ -2107,25 +2107,25 @@ var require_sync = __commonJS({ | |
| 2107 2107 | 
             
                    this._process(below, index4, true);
         | 
| 2108 2108 | 
             
                  }
         | 
| 2109 2109 | 
             
                };
         | 
| 2110 | 
            -
                GlobSync.prototype._processSimple = function( | 
| 2111 | 
            -
                  var exists2 = this._stat( | 
| 2110 | 
            +
                GlobSync.prototype._processSimple = function(prefix2, index4) {
         | 
| 2111 | 
            +
                  var exists2 = this._stat(prefix2);
         | 
| 2112 2112 | 
             
                  if (!this.matches[index4])
         | 
| 2113 2113 | 
             
                    this.matches[index4] = /* @__PURE__ */ Object.create(null);
         | 
| 2114 2114 | 
             
                  if (!exists2)
         | 
| 2115 2115 | 
             
                    return;
         | 
| 2116 | 
            -
                  if ( | 
| 2117 | 
            -
                    var trail = /[\/\\]$/.test( | 
| 2118 | 
            -
                    if ( | 
| 2119 | 
            -
                       | 
| 2116 | 
            +
                  if (prefix2 && isAbsolute(prefix2) && !this.nomount) {
         | 
| 2117 | 
            +
                    var trail = /[\/\\]$/.test(prefix2);
         | 
| 2118 | 
            +
                    if (prefix2.charAt(0) === "/") {
         | 
| 2119 | 
            +
                      prefix2 = path2.join(this.root, prefix2);
         | 
| 2120 2120 | 
             
                    } else {
         | 
| 2121 | 
            -
                       | 
| 2121 | 
            +
                      prefix2 = path2.resolve(this.root, prefix2);
         | 
| 2122 2122 | 
             
                      if (trail)
         | 
| 2123 | 
            -
                         | 
| 2123 | 
            +
                        prefix2 += "/";
         | 
| 2124 2124 | 
             
                    }
         | 
| 2125 2125 | 
             
                  }
         | 
| 2126 2126 | 
             
                  if (process.platform === "win32")
         | 
| 2127 | 
            -
                     | 
| 2128 | 
            -
                  this._emitMatch(index4,  | 
| 2127 | 
            +
                    prefix2 = prefix2.replace(/\\/g, "/");
         | 
| 2128 | 
            +
                  this._emitMatch(index4, prefix2);
         | 
| 2129 2129 | 
             
                };
         | 
| 2130 2130 | 
             
                GlobSync.prototype._stat = function(f) {
         | 
| 2131 2131 | 
             
                  var abs = this._makeAbs(f);
         | 
| @@ -2520,46 +2520,46 @@ var require_glob = __commonJS({ | |
| 2520 2520 | 
             
                  while (typeof pattern[n] === "string") {
         | 
| 2521 2521 | 
             
                    n++;
         | 
| 2522 2522 | 
             
                  }
         | 
| 2523 | 
            -
                  var  | 
| 2523 | 
            +
                  var prefix2;
         | 
| 2524 2524 | 
             
                  switch (n) {
         | 
| 2525 2525 | 
             
                    case pattern.length:
         | 
| 2526 2526 | 
             
                      this._processSimple(pattern.join("/"), index4, cb);
         | 
| 2527 2527 | 
             
                      return;
         | 
| 2528 2528 | 
             
                    case 0:
         | 
| 2529 | 
            -
                       | 
| 2529 | 
            +
                      prefix2 = null;
         | 
| 2530 2530 | 
             
                      break;
         | 
| 2531 2531 | 
             
                    default:
         | 
| 2532 | 
            -
                       | 
| 2532 | 
            +
                      prefix2 = pattern.slice(0, n).join("/");
         | 
| 2533 2533 | 
             
                      break;
         | 
| 2534 2534 | 
             
                  }
         | 
| 2535 2535 | 
             
                  var remain = pattern.slice(n);
         | 
| 2536 2536 | 
             
                  var read;
         | 
| 2537 | 
            -
                  if ( | 
| 2537 | 
            +
                  if (prefix2 === null)
         | 
| 2538 2538 | 
             
                    read = ".";
         | 
| 2539 | 
            -
                  else if (isAbsolute( | 
| 2539 | 
            +
                  else if (isAbsolute(prefix2) || isAbsolute(pattern.map(function(p) {
         | 
| 2540 2540 | 
             
                    return typeof p === "string" ? p : "[*]";
         | 
| 2541 2541 | 
             
                  }).join("/"))) {
         | 
| 2542 | 
            -
                    if (! | 
| 2543 | 
            -
                       | 
| 2544 | 
            -
                    read =  | 
| 2542 | 
            +
                    if (!prefix2 || !isAbsolute(prefix2))
         | 
| 2543 | 
            +
                      prefix2 = "/" + prefix2;
         | 
| 2544 | 
            +
                    read = prefix2;
         | 
| 2545 2545 | 
             
                  } else
         | 
| 2546 | 
            -
                    read =  | 
| 2546 | 
            +
                    read = prefix2;
         | 
| 2547 2547 | 
             
                  var abs = this._makeAbs(read);
         | 
| 2548 2548 | 
             
                  if (childrenIgnored(this, read))
         | 
| 2549 2549 | 
             
                    return cb();
         | 
| 2550 2550 | 
             
                  var isGlobStar = remain[0] === minimatch2.GLOBSTAR;
         | 
| 2551 2551 | 
             
                  if (isGlobStar)
         | 
| 2552 | 
            -
                    this._processGlobStar( | 
| 2552 | 
            +
                    this._processGlobStar(prefix2, read, abs, remain, index4, inGlobStar, cb);
         | 
| 2553 2553 | 
             
                  else
         | 
| 2554 | 
            -
                    this._processReaddir( | 
| 2554 | 
            +
                    this._processReaddir(prefix2, read, abs, remain, index4, inGlobStar, cb);
         | 
| 2555 2555 | 
             
                };
         | 
| 2556 | 
            -
                Glob.prototype._processReaddir = function( | 
| 2556 | 
            +
                Glob.prototype._processReaddir = function(prefix2, read, abs, remain, index4, inGlobStar, cb) {
         | 
| 2557 2557 | 
             
                  var self2 = this;
         | 
| 2558 2558 | 
             
                  this._readdir(abs, inGlobStar, function(er, entries) {
         | 
| 2559 | 
            -
                    return self2._processReaddir2( | 
| 2559 | 
            +
                    return self2._processReaddir2(prefix2, read, abs, remain, index4, inGlobStar, entries, cb);
         | 
| 2560 2560 | 
             
                  });
         | 
| 2561 2561 | 
             
                };
         | 
| 2562 | 
            -
                Glob.prototype._processReaddir2 = function( | 
| 2562 | 
            +
                Glob.prototype._processReaddir2 = function(prefix2, read, abs, remain, index4, inGlobStar, entries, cb) {
         | 
| 2563 2563 | 
             
                  if (!entries)
         | 
| 2564 2564 | 
             
                    return cb();
         | 
| 2565 2565 | 
             
                  var pn = remain[0];
         | 
| @@ -2571,7 +2571,7 @@ var require_glob = __commonJS({ | |
| 2571 2571 | 
             
                    var e = entries[i];
         | 
| 2572 2572 | 
             
                    if (e.charAt(0) !== "." || dotOk) {
         | 
| 2573 2573 | 
             
                      var m;
         | 
| 2574 | 
            -
                      if (negate && ! | 
| 2574 | 
            +
                      if (negate && !prefix2) {
         | 
| 2575 2575 | 
             
                        m = !e.match(pn);
         | 
| 2576 2576 | 
             
                      } else {
         | 
| 2577 2577 | 
             
                        m = e.match(pn);
         | 
| @@ -2588,11 +2588,11 @@ var require_glob = __commonJS({ | |
| 2588 2588 | 
             
                      this.matches[index4] = /* @__PURE__ */ Object.create(null);
         | 
| 2589 2589 | 
             
                    for (var i = 0; i < len; i++) {
         | 
| 2590 2590 | 
             
                      var e = matchedEntries[i];
         | 
| 2591 | 
            -
                      if ( | 
| 2592 | 
            -
                        if ( | 
| 2593 | 
            -
                          e =  | 
| 2591 | 
            +
                      if (prefix2) {
         | 
| 2592 | 
            +
                        if (prefix2 !== "/")
         | 
| 2593 | 
            +
                          e = prefix2 + "/" + e;
         | 
| 2594 2594 | 
             
                        else
         | 
| 2595 | 
            -
                          e =  | 
| 2595 | 
            +
                          e = prefix2 + e;
         | 
| 2596 2596 | 
             
                      }
         | 
| 2597 2597 | 
             
                      if (e.charAt(0) === "/" && !this.nomount) {
         | 
| 2598 2598 | 
             
                        e = path2.join(this.root, e);
         | 
| @@ -2605,11 +2605,11 @@ var require_glob = __commonJS({ | |
| 2605 2605 | 
             
                  for (var i = 0; i < len; i++) {
         | 
| 2606 2606 | 
             
                    var e = matchedEntries[i];
         | 
| 2607 2607 | 
             
                    var newPattern;
         | 
| 2608 | 
            -
                    if ( | 
| 2609 | 
            -
                      if ( | 
| 2610 | 
            -
                        e =  | 
| 2608 | 
            +
                    if (prefix2) {
         | 
| 2609 | 
            +
                      if (prefix2 !== "/")
         | 
| 2610 | 
            +
                        e = prefix2 + "/" + e;
         | 
| 2611 2611 | 
             
                      else
         | 
| 2612 | 
            -
                        e =  | 
| 2612 | 
            +
                        e = prefix2 + e;
         | 
| 2613 2613 | 
             
                    }
         | 
| 2614 2614 | 
             
                    this._process([e].concat(remain), index4, inGlobStar, cb);
         | 
| 2615 2615 | 
             
                  }
         | 
| @@ -2740,17 +2740,17 @@ var require_glob = __commonJS({ | |
| 2740 2740 | 
             
                  }
         | 
| 2741 2741 | 
             
                  return cb();
         | 
| 2742 2742 | 
             
                };
         | 
| 2743 | 
            -
                Glob.prototype._processGlobStar = function( | 
| 2743 | 
            +
                Glob.prototype._processGlobStar = function(prefix2, read, abs, remain, index4, inGlobStar, cb) {
         | 
| 2744 2744 | 
             
                  var self2 = this;
         | 
| 2745 2745 | 
             
                  this._readdir(abs, inGlobStar, function(er, entries) {
         | 
| 2746 | 
            -
                    self2._processGlobStar2( | 
| 2746 | 
            +
                    self2._processGlobStar2(prefix2, read, abs, remain, index4, inGlobStar, entries, cb);
         | 
| 2747 2747 | 
             
                  });
         | 
| 2748 2748 | 
             
                };
         | 
| 2749 | 
            -
                Glob.prototype._processGlobStar2 = function( | 
| 2749 | 
            +
                Glob.prototype._processGlobStar2 = function(prefix2, read, abs, remain, index4, inGlobStar, entries, cb) {
         | 
| 2750 2750 | 
             
                  if (!entries)
         | 
| 2751 2751 | 
             
                    return cb();
         | 
| 2752 2752 | 
             
                  var remainWithoutGlobStar = remain.slice(1);
         | 
| 2753 | 
            -
                  var gspref =  | 
| 2753 | 
            +
                  var gspref = prefix2 ? [prefix2] : [];
         | 
| 2754 2754 | 
             
                  var noGlobStar = gspref.concat(remainWithoutGlobStar);
         | 
| 2755 2755 | 
             
                  this._process(noGlobStar, index4, false, cb);
         | 
| 2756 2756 | 
             
                  var isSym = this.symlinks[abs];
         | 
| @@ -2768,30 +2768,30 @@ var require_glob = __commonJS({ | |
| 2768 2768 | 
             
                  }
         | 
| 2769 2769 | 
             
                  cb();
         | 
| 2770 2770 | 
             
                };
         | 
| 2771 | 
            -
                Glob.prototype._processSimple = function( | 
| 2771 | 
            +
                Glob.prototype._processSimple = function(prefix2, index4, cb) {
         | 
| 2772 2772 | 
             
                  var self2 = this;
         | 
| 2773 | 
            -
                  this._stat( | 
| 2774 | 
            -
                    self2._processSimple2( | 
| 2773 | 
            +
                  this._stat(prefix2, function(er, exists2) {
         | 
| 2774 | 
            +
                    self2._processSimple2(prefix2, index4, er, exists2, cb);
         | 
| 2775 2775 | 
             
                  });
         | 
| 2776 2776 | 
             
                };
         | 
| 2777 | 
            -
                Glob.prototype._processSimple2 = function( | 
| 2777 | 
            +
                Glob.prototype._processSimple2 = function(prefix2, index4, er, exists2, cb) {
         | 
| 2778 2778 | 
             
                  if (!this.matches[index4])
         | 
| 2779 2779 | 
             
                    this.matches[index4] = /* @__PURE__ */ Object.create(null);
         | 
| 2780 2780 | 
             
                  if (!exists2)
         | 
| 2781 2781 | 
             
                    return cb();
         | 
| 2782 | 
            -
                  if ( | 
| 2783 | 
            -
                    var trail = /[\/\\]$/.test( | 
| 2784 | 
            -
                    if ( | 
| 2785 | 
            -
                       | 
| 2782 | 
            +
                  if (prefix2 && isAbsolute(prefix2) && !this.nomount) {
         | 
| 2783 | 
            +
                    var trail = /[\/\\]$/.test(prefix2);
         | 
| 2784 | 
            +
                    if (prefix2.charAt(0) === "/") {
         | 
| 2785 | 
            +
                      prefix2 = path2.join(this.root, prefix2);
         | 
| 2786 2786 | 
             
                    } else {
         | 
| 2787 | 
            -
                       | 
| 2787 | 
            +
                      prefix2 = path2.resolve(this.root, prefix2);
         | 
| 2788 2788 | 
             
                      if (trail)
         | 
| 2789 | 
            -
                         | 
| 2789 | 
            +
                        prefix2 += "/";
         | 
| 2790 2790 | 
             
                    }
         | 
| 2791 2791 | 
             
                  }
         | 
| 2792 2792 | 
             
                  if (process.platform === "win32")
         | 
| 2793 | 
            -
                     | 
| 2794 | 
            -
                  this._emitMatch(index4,  | 
| 2793 | 
            +
                    prefix2 = prefix2.replace(/\\/g, "/");
         | 
| 2794 | 
            +
                  this._emitMatch(index4, prefix2);
         | 
| 2795 2795 | 
             
                  cb();
         | 
| 2796 2796 | 
             
                };
         | 
| 2797 2797 | 
             
                Glob.prototype._stat = function(f, cb) {
         | 
| @@ -8361,6 +8361,13 @@ var init_sqliteSchema = __esm({ | |
| 8361 8361 | 
             
            function isPgArrayType(sqlType) {
         | 
| 8362 8362 | 
             
              return sqlType.match(/.*\[\d*\].*|.*\[\].*/g) !== null;
         | 
| 8363 8363 | 
             
            }
         | 
| 8364 | 
            +
            function findAddedAndRemoved(columnNames1, columnNames2) {
         | 
| 8365 | 
            +
              const set1 = new Set(columnNames1);
         | 
| 8366 | 
            +
              const set2 = new Set(columnNames2);
         | 
| 8367 | 
            +
              const addedColumns = columnNames2.filter((it) => !set1.has(it));
         | 
| 8368 | 
            +
              const removedColumns = columnNames1.filter((it) => !set2.has(it));
         | 
| 8369 | 
            +
              return { addedColumns, removedColumns };
         | 
| 8370 | 
            +
            }
         | 
| 8364 8371 | 
             
            var copy, prepareMigrationMeta, schemaRenameKey, tableRenameKey, columnRenameKey;
         | 
| 8365 8372 | 
             
            var init_utils = __esm({
         | 
| 8366 8373 | 
             
              "src/utils.ts"() {
         | 
| @@ -8419,7 +8426,7 @@ var init_views = __esm({ | |
| 8419 8426 | 
             
                import_hanji = __toESM(require_hanji());
         | 
| 8420 8427 | 
             
                init_utils();
         | 
| 8421 8428 | 
             
                warning = (msg) => {
         | 
| 8422 | 
            -
                  (0, import_hanji.render)( | 
| 8429 | 
            +
                  (0, import_hanji.render)(`[${source_default.yellow("Warning")}] ${msg}`);
         | 
| 8423 8430 | 
             
                };
         | 
| 8424 8431 | 
             
                error = (error2, greyMsg = "") => {
         | 
| 8425 8432 | 
             
                  return `${source_default.bgRed.bold(" Error ")} ${error2} ${greyMsg ? source_default.grey(greyMsg) : ""}`.trim();
         | 
| @@ -9743,7 +9750,7 @@ var require_difflib = __commonJS({ | |
| 9743 9750 | 
             
                    return `${beginning},${beginning + length - 1}`;
         | 
| 9744 9751 | 
             
                  };
         | 
| 9745 9752 | 
             
                  contextDiff = function(a, b, { fromfile, tofile, fromfiledate, tofiledate, n, lineterm } = {}) {
         | 
| 9746 | 
            -
                    var _2, file1Range, file2Range, first, fromdate, group, i1, i2, j1, j2, l, last, len, len1, len2, len3, len4, line, lines, m, o, p,  | 
| 9753 | 
            +
                    var _2, file1Range, file2Range, first, fromdate, group, i1, i2, j1, j2, l, last, len, len1, len2, len3, len4, line, lines, m, o, p, prefix2, q, ref, ref1, ref2, started, tag, todate;
         | 
| 9747 9754 | 
             
                    if (fromfile == null) {
         | 
| 9748 9755 | 
             
                      fromfile = "";
         | 
| 9749 9756 | 
             
                    }
         | 
| @@ -9762,7 +9769,7 @@ var require_difflib = __commonJS({ | |
| 9762 9769 | 
             
                    if (lineterm == null) {
         | 
| 9763 9770 | 
             
                      lineterm = "\n";
         | 
| 9764 9771 | 
             
                    }
         | 
| 9765 | 
            -
                     | 
| 9772 | 
            +
                    prefix2 = {
         | 
| 9766 9773 | 
             
                      insert: "+ ",
         | 
| 9767 9774 | 
             
                      delete: "- ",
         | 
| 9768 9775 | 
             
                      replace: "! ",
         | 
| @@ -9798,7 +9805,7 @@ var require_difflib = __commonJS({ | |
| 9798 9805 | 
             
                              ref1 = a.slice(i1, i2);
         | 
| 9799 9806 | 
             
                              for (o = 0, len2 = ref1.length; o < len2; o++) {
         | 
| 9800 9807 | 
             
                                line = ref1[o];
         | 
| 9801 | 
            -
                                lines.push( | 
| 9808 | 
            +
                                lines.push(prefix2[tag] + line);
         | 
| 9802 9809 | 
             
                              }
         | 
| 9803 9810 | 
             
                            }
         | 
| 9804 9811 | 
             
                          }
         | 
| @@ -9820,7 +9827,7 @@ var require_difflib = __commonJS({ | |
| 9820 9827 | 
             
                              ref2 = b.slice(j1, j2);
         | 
| 9821 9828 | 
             
                              for (q = 0, len4 = ref2.length; q < len4; q++) {
         | 
| 9822 9829 | 
             
                                line = ref2[q];
         | 
| 9823 | 
            -
                                lines.push( | 
| 9830 | 
            +
                                lines.push(prefix2[tag] + line);
         | 
| 9824 9831 | 
             
                              }
         | 
| 9825 9832 | 
             
                            }
         | 
| 9826 9833 | 
             
                          }
         | 
| @@ -9833,7 +9840,7 @@ var require_difflib = __commonJS({ | |
| 9833 9840 | 
             
                    return new Differ(linejunk, charjunk).compare(a, b);
         | 
| 9834 9841 | 
             
                  };
         | 
| 9835 9842 | 
             
                  restore = function(delta, which) {
         | 
| 9836 | 
            -
                    var l, len, line, lines,  | 
| 9843 | 
            +
                    var l, len, line, lines, prefixes2, ref, tag;
         | 
| 9837 9844 | 
             
                    tag = {
         | 
| 9838 9845 | 
             
                      1: "- ",
         | 
| 9839 9846 | 
             
                      2: "+ "
         | 
| @@ -9841,11 +9848,11 @@ var require_difflib = __commonJS({ | |
| 9841 9848 | 
             
                    if (!tag) {
         | 
| 9842 9849 | 
             
                      throw new Error(`unknow delta choice (must be 1 or 2): ${which}`);
         | 
| 9843 9850 | 
             
                    }
         | 
| 9844 | 
            -
                     | 
| 9851 | 
            +
                    prefixes2 = ["  ", tag];
         | 
| 9845 9852 | 
             
                    lines = [];
         | 
| 9846 9853 | 
             
                    for (l = 0, len = delta.length; l < len; l++) {
         | 
| 9847 9854 | 
             
                      line = delta[l];
         | 
| 9848 | 
            -
                      if (ref = line.slice(0, 2), indexOf.call( | 
| 9855 | 
            +
                      if (ref = line.slice(0, 2), indexOf.call(prefixes2, ref) >= 0) {
         | 
| 9849 9856 | 
             
                        lines.push(line.slice(2));
         | 
| 9850 9857 | 
             
                      }
         | 
| 9851 9858 | 
             
                    }
         | 
| @@ -9986,8 +9993,8 @@ var require_has_flag = __commonJS({ | |
| 9986 9993 | 
             
                module2.exports = function(flag, argv) {
         | 
| 9987 9994 | 
             
                  argv = argv || process.argv;
         | 
| 9988 9995 | 
             
                  var terminatorPos = argv.indexOf("--");
         | 
| 9989 | 
            -
                  var  | 
| 9990 | 
            -
                  var pos = argv.indexOf( | 
| 9996 | 
            +
                  var prefix2 = /^-{1,2}/.test(flag) ? "" : "--";
         | 
| 9997 | 
            +
                  var pos = argv.indexOf(prefix2 + flag);
         | 
| 9991 9998 | 
             
                  return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);
         | 
| 9992 9999 | 
             
                };
         | 
| 9993 10000 | 
             
              }
         | 
| @@ -10596,7 +10603,7 @@ var require_colorize = __commonJS({ | |
| 10596 10603 | 
             
                };
         | 
| 10597 10604 | 
             
                var subcolorizeToCallback = function(options, key, diff2, output, color2, indent) {
         | 
| 10598 10605 | 
             
                  let subvalue;
         | 
| 10599 | 
            -
                  const  | 
| 10606 | 
            +
                  const prefix2 = key ? `${key}: ` : "";
         | 
| 10600 10607 | 
             
                  const subindent = indent + "  ";
         | 
| 10601 10608 | 
             
                  const outputElisions = (n) => {
         | 
| 10602 10609 | 
             
                    const maxElisions = options.maxElisions === void 0 ? Infinity : options.maxElisions;
         | 
| @@ -10614,7 +10621,7 @@ var require_colorize = __commonJS({ | |
| 10614 10621 | 
             
                        subcolorizeToCallback(options, key, diff2.__old, output, "-", indent);
         | 
| 10615 10622 | 
             
                        return subcolorizeToCallback(options, key, diff2.__new, output, "+", indent);
         | 
| 10616 10623 | 
             
                      } else {
         | 
| 10617 | 
            -
                        output(color2, `${indent}${ | 
| 10624 | 
            +
                        output(color2, `${indent}${prefix2}{`);
         | 
| 10618 10625 | 
             
                        for (const subkey of Object.keys(diff2)) {
         | 
| 10619 10626 | 
             
                          let m;
         | 
| 10620 10627 | 
             
                          subvalue = diff2[subkey];
         | 
| @@ -10629,7 +10636,7 @@ var require_colorize = __commonJS({ | |
| 10629 10636 | 
             
                        return output(color2, `${indent}}`);
         | 
| 10630 10637 | 
             
                      }
         | 
| 10631 10638 | 
             
                    case "array": {
         | 
| 10632 | 
            -
                      output(color2, `${indent}${ | 
| 10639 | 
            +
                      output(color2, `${indent}${prefix2}[`);
         | 
| 10633 10640 | 
             
                      let looksLikeDiff = true;
         | 
| 10634 10641 | 
             
                      for (const item of diff2) {
         | 
| 10635 10642 | 
             
                        if (extendedTypeOf(item) !== "array" || !(item.length === 2 || item.length === 1 && item[0] === " ") || !(typeof item[0] === "string") || item[0].length !== 1 || ![" ", "-", "+", "~"].includes(item[0])) {
         | 
| @@ -10668,7 +10675,7 @@ var require_colorize = __commonJS({ | |
| 10668 10675 | 
             
                    }
         | 
| 10669 10676 | 
             
                    default:
         | 
| 10670 10677 | 
             
                      if (diff2 === 0 || diff2 === null || diff2 === false || diff2 === "" || diff2) {
         | 
| 10671 | 
            -
                        return output(color2, indent +  | 
| 10678 | 
            +
                        return output(color2, indent + prefix2 + JSON.stringify(diff2));
         | 
| 10672 10679 | 
             
                      }
         | 
| 10673 10680 | 
             
                  }
         | 
| 10674 10681 | 
             
                };
         | 
| @@ -11470,7 +11477,20 @@ var init_jsonDiffer = __esm({ | |
| 11470 11477 | 
             
            });
         | 
| 11471 11478 |  | 
| 11472 11479 | 
             
            // src/sqlgenerator.ts
         | 
| 11473 | 
            -
             | 
| 11480 | 
            +
            function fromJson(statements, dialect7, action, json2) {
         | 
| 11481 | 
            +
              const result = statements.flatMap((statement) => {
         | 
| 11482 | 
            +
                const filtered = convertors.filter((it) => {
         | 
| 11483 | 
            +
                  return it.can(statement, dialect7);
         | 
| 11484 | 
            +
                });
         | 
| 11485 | 
            +
                const convertor = filtered.length === 1 ? filtered[0] : void 0;
         | 
| 11486 | 
            +
                if (!convertor) {
         | 
| 11487 | 
            +
                  return "";
         | 
| 11488 | 
            +
                }
         | 
| 11489 | 
            +
                return convertor.convert(statement, json2, action);
         | 
| 11490 | 
            +
              }).filter((it) => it !== "");
         | 
| 11491 | 
            +
              return result;
         | 
| 11492 | 
            +
            }
         | 
| 11493 | 
            +
            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;
         | 
| 11474 11494 | 
             
            var init_sqlgenerator = __esm({
         | 
| 11475 11495 | 
             
              "src/sqlgenerator.ts"() {
         | 
| 11476 11496 | 
             
                "use strict";
         | 
| @@ -11622,7 +11642,7 @@ var init_sqlgenerator = __esm({ | |
| 11622 11642 | 
             
                };
         | 
| 11623 11643 | 
             
                SQLiteCreateTableConvertor = class extends Convertor {
         | 
| 11624 11644 | 
             
                  can(statement, dialect7) {
         | 
| 11625 | 
            -
                    return statement.type === "sqlite_create_table" && dialect7 === "sqlite";
         | 
| 11645 | 
            +
                    return statement.type === "sqlite_create_table" && (dialect7 === "sqlite" || dialect7 === "turso");
         | 
| 11626 11646 | 
             
                  }
         | 
| 11627 11647 | 
             
                  convert(st) {
         | 
| 11628 11648 | 
             
                    const {
         | 
| @@ -11792,32 +11812,6 @@ var init_sqlgenerator = __esm({ | |
| 11792 11812 | 
             
                    return `ALTER TABLE \`${statement.tableName}\` DROP INDEX \`${unsquashed.name}\`;`;
         | 
| 11793 11813 | 
             
                  }
         | 
| 11794 11814 | 
             
                };
         | 
| 11795 | 
            -
                SQLiteAlterTableAddUniqueConstraintConvertor = class extends Convertor {
         | 
| 11796 | 
            -
                  can(statement, dialect7) {
         | 
| 11797 | 
            -
                    return statement.type === "create_unique_constraint" && dialect7 === "sqlite";
         | 
| 11798 | 
            -
                  }
         | 
| 11799 | 
            -
                  convert(statement) {
         | 
| 11800 | 
            -
                    return `/*
         | 
| 11801 | 
            -
             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
         | 
| 11802 | 
            -
             Please refer to: https://www.techonthenet.com/sqlite/unique.php
         | 
| 11803 | 
            -
             | 
| 11804 | 
            -
             Due to that we don't generate migration automatically and it has to be done manually
         | 
| 11805 | 
            -
            */`;
         | 
| 11806 | 
            -
                  }
         | 
| 11807 | 
            -
                };
         | 
| 11808 | 
            -
                SQLiteAlterTableDropUniqueConstraintConvertor = class extends Convertor {
         | 
| 11809 | 
            -
                  can(statement, dialect7) {
         | 
| 11810 | 
            -
                    return statement.type === "delete_unique_constraint" && dialect7 === "sqlite";
         | 
| 11811 | 
            -
                  }
         | 
| 11812 | 
            -
                  convert(statement) {
         | 
| 11813 | 
            -
                    return `/*
         | 
| 11814 | 
            -
             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
         | 
| 11815 | 
            -
             Please refer to: https://www.techonthenet.com/sqlite/unique.php
         | 
| 11816 | 
            -
             | 
| 11817 | 
            -
             Due to that we don't generate migration automatically and it has to be done manually
         | 
| 11818 | 
            -
            */`;
         | 
| 11819 | 
            -
                  }
         | 
| 11820 | 
            -
                };
         | 
| 11821 11815 | 
             
                CreatePgSequenceConvertor = class extends Convertor {
         | 
| 11822 11816 | 
             
                  can(statement, dialect7) {
         | 
| 11823 11817 | 
             
                    return statement.type === "create_sequence" && dialect7 === "postgresql";
         | 
| @@ -11925,7 +11919,7 @@ var init_sqlgenerator = __esm({ | |
| 11925 11919 | 
             
                };
         | 
| 11926 11920 | 
             
                SQLiteDropTableConvertor = class extends Convertor {
         | 
| 11927 11921 | 
             
                  can(statement, dialect7) {
         | 
| 11928 | 
            -
                    return statement.type === "drop_table" && dialect7 === "sqlite";
         | 
| 11922 | 
            +
                    return statement.type === "drop_table" && (dialect7 === "sqlite" || dialect7 === "turso");
         | 
| 11929 11923 | 
             
                  }
         | 
| 11930 11924 | 
             
                  convert(statement) {
         | 
| 11931 11925 | 
             
                    const { tableName } = statement;
         | 
| @@ -11945,7 +11939,7 @@ var init_sqlgenerator = __esm({ | |
| 11945 11939 | 
             
                };
         | 
| 11946 11940 | 
             
                SqliteRenameTableConvertor = class extends Convertor {
         | 
| 11947 11941 | 
             
                  can(statement, dialect7) {
         | 
| 11948 | 
            -
                    return statement.type === "rename_table" && dialect7 === "sqlite";
         | 
| 11942 | 
            +
                    return statement.type === "rename_table" && (dialect7 === "sqlite" || dialect7 === "turso");
         | 
| 11949 11943 | 
             
                  }
         | 
| 11950 11944 | 
             
                  convert(statement) {
         | 
| 11951 11945 | 
             
                    const { tableNameFrom, tableNameTo } = statement;
         | 
| @@ -11982,11 +11976,11 @@ var init_sqlgenerator = __esm({ | |
| 11982 11976 | 
             
                };
         | 
| 11983 11977 | 
             
                SQLiteAlterTableRenameColumnConvertor = class extends Convertor {
         | 
| 11984 11978 | 
             
                  can(statement, dialect7) {
         | 
| 11985 | 
            -
                    return statement.type === "alter_table_rename_column" && dialect7 === "sqlite";
         | 
| 11979 | 
            +
                    return statement.type === "alter_table_rename_column" && (dialect7 === "sqlite" || dialect7 === "turso");
         | 
| 11986 11980 | 
             
                  }
         | 
| 11987 11981 | 
             
                  convert(statement) {
         | 
| 11988 11982 | 
             
                    const { tableName, oldColumnName, newColumnName } = statement;
         | 
| 11989 | 
            -
                    return `ALTER TABLE \`${tableName}\` RENAME COLUMN  | 
| 11983 | 
            +
                    return `ALTER TABLE \`${tableName}\` RENAME COLUMN "${oldColumnName}" TO "${newColumnName}";`;
         | 
| 11990 11984 | 
             
                  }
         | 
| 11991 11985 | 
             
                };
         | 
| 11992 11986 | 
             
                PgAlterTableDropColumnConvertor = class extends Convertor {
         | 
| @@ -12010,7 +12004,7 @@ var init_sqlgenerator = __esm({ | |
| 12010 12004 | 
             
                };
         | 
| 12011 12005 | 
             
                SQLiteAlterTableDropColumnConvertor = class extends Convertor {
         | 
| 12012 12006 | 
             
                  can(statement, dialect7) {
         | 
| 12013 | 
            -
                    return statement.type === "alter_table_drop_column" && dialect7 === "sqlite";
         | 
| 12007 | 
            +
                    return statement.type === "alter_table_drop_column" && (dialect7 === "sqlite" || dialect7 === "turso");
         | 
| 12014 12008 | 
             
                  }
         | 
| 12015 12009 | 
             
                  convert(statement) {
         | 
| 12016 12010 | 
             
                    const { tableName, columnName } = statement;
         | 
| @@ -12063,7 +12057,7 @@ var init_sqlgenerator = __esm({ | |
| 12063 12057 | 
             
                };
         | 
| 12064 12058 | 
             
                SQLiteAlterTableAddColumnConvertor = class extends Convertor {
         | 
| 12065 12059 | 
             
                  can(statement, dialect7) {
         | 
| 12066 | 
            -
                    return statement.type === "sqlite_alter_table_add_column" && dialect7 === "sqlite";
         | 
| 12060 | 
            +
                    return statement.type === "sqlite_alter_table_add_column" && (dialect7 === "sqlite" || dialect7 === "turso");
         | 
| 12067 12061 | 
             
                  }
         | 
| 12068 12062 | 
             
                  convert(statement) {
         | 
| 12069 12063 | 
             
                    const { tableName, column: column4, referenceData } = statement;
         | 
| @@ -12087,21 +12081,6 @@ var init_sqlgenerator = __esm({ | |
| 12087 12081 | 
             
                    return `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET DATA TYPE ${newDataType};`;
         | 
| 12088 12082 | 
             
                  }
         | 
| 12089 12083 | 
             
                };
         | 
| 12090 | 
            -
                SQLiteAlterTableAlterColumnSetTypeConvertor = class extends Convertor {
         | 
| 12091 | 
            -
                  can(statement, dialect7) {
         | 
| 12092 | 
            -
                    return statement.type === "alter_table_alter_column_set_type" && dialect7 === "sqlite";
         | 
| 12093 | 
            -
                  }
         | 
| 12094 | 
            -
                  convert(statement) {
         | 
| 12095 | 
            -
                    return `/*
         | 
| 12096 | 
            -
             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
         | 
| 12097 | 
            -
             Please refer to: https://www.techonthenet.com/sqlite/tables/alter_table.php
         | 
| 12098 | 
            -
                              https://www.sqlite.org/lang_altertable.html
         | 
| 12099 | 
            -
                              https://stackoverflow.com/questions/2083543/modify-a-columns-type-in-sqlite3
         | 
| 12100 | 
            -
             | 
| 12101 | 
            -
             Due to that we don't generate migration automatically and it has to be done manually
         | 
| 12102 | 
            -
            */`;
         | 
| 12103 | 
            -
                  }
         | 
| 12104 | 
            -
                };
         | 
| 12105 12084 | 
             
                PgAlterTableAlterColumnSetDefaultConvertor = class extends Convertor {
         | 
| 12106 12085 | 
             
                  can(statement, dialect7) {
         | 
| 12107 12086 | 
             
                    return statement.type === "alter_table_alter_column_set_default" && dialect7 === "postgresql";
         | 
| @@ -12112,21 +12091,6 @@ var init_sqlgenerator = __esm({ | |
| 12112 12091 | 
             
                    return `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET DEFAULT ${statement.newDefaultValue};`;
         | 
| 12113 12092 | 
             
                  }
         | 
| 12114 12093 | 
             
                };
         | 
| 12115 | 
            -
                SqliteAlterTableAlterColumnSetDefaultConvertor = class extends Convertor {
         | 
| 12116 | 
            -
                  can(statement, dialect7) {
         | 
| 12117 | 
            -
                    return statement.type === "alter_table_alter_column_set_default" && dialect7 === "sqlite";
         | 
| 12118 | 
            -
                  }
         | 
| 12119 | 
            -
                  convert(statement) {
         | 
| 12120 | 
            -
                    return `/*
         | 
| 12121 | 
            -
             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
         | 
| 12122 | 
            -
             Please refer to: https://www.techonthenet.com/sqlite/tables/alter_table.php
         | 
| 12123 | 
            -
                              https://www.sqlite.org/lang_altertable.html
         | 
| 12124 | 
            -
                              https://stackoverflow.com/questions/2083543/modify-a-columns-type-in-sqlite3
         | 
| 12125 | 
            -
             | 
| 12126 | 
            -
             Due to that we don't generate migration automatically and it has to be done manually
         | 
| 12127 | 
            -
            */`;
         | 
| 12128 | 
            -
                  }
         | 
| 12129 | 
            -
                };
         | 
| 12130 12094 | 
             
                PgAlterTableAlterColumnDropDefaultConvertor = class extends Convertor {
         | 
| 12131 12095 | 
             
                  can(statement, dialect7) {
         | 
| 12132 12096 | 
             
                    return statement.type === "alter_table_alter_column_drop_default" && dialect7 === "postgresql";
         | 
| @@ -12225,7 +12189,7 @@ var init_sqlgenerator = __esm({ | |
| 12225 12189 | 
             
                };
         | 
| 12226 12190 | 
             
                SqliteAlterTableAlterColumnDropGeneratedConvertor = class extends Convertor {
         | 
| 12227 12191 | 
             
                  can(statement, dialect7) {
         | 
| 12228 | 
            -
                    return statement.type === "alter_table_alter_column_drop_generated" && dialect7 === "sqlite";
         | 
| 12192 | 
            +
                    return statement.type === "alter_table_alter_column_drop_generated" && (dialect7 === "sqlite" || dialect7 === "turso");
         | 
| 12229 12193 | 
             
                  }
         | 
| 12230 12194 | 
             
                  convert(statement) {
         | 
| 12231 12195 | 
             
                    const {
         | 
| @@ -12266,7 +12230,7 @@ var init_sqlgenerator = __esm({ | |
| 12266 12230 | 
             
                };
         | 
| 12267 12231 | 
             
                SqliteAlterTableAlterColumnSetExpressionConvertor = class extends Convertor {
         | 
| 12268 12232 | 
             
                  can(statement, dialect7) {
         | 
| 12269 | 
            -
                    return statement.type === "alter_table_alter_column_set_generated" && dialect7 === "sqlite";
         | 
| 12233 | 
            +
                    return statement.type === "alter_table_alter_column_set_generated" && (dialect7 === "sqlite" || dialect7 === "turso");
         | 
| 12270 12234 | 
             
                  }
         | 
| 12271 12235 | 
             
                  convert(statement) {
         | 
| 12272 12236 | 
             
                    const {
         | 
| @@ -12307,7 +12271,7 @@ var init_sqlgenerator = __esm({ | |
| 12307 12271 | 
             
                };
         | 
| 12308 12272 | 
             
                SqliteAlterTableAlterColumnAlterGeneratedConvertor = class extends Convertor {
         | 
| 12309 12273 | 
             
                  can(statement, dialect7) {
         | 
| 12310 | 
            -
                    return statement.type === "alter_table_alter_column_alter_generated" && dialect7 === "sqlite";
         | 
| 12274 | 
            +
                    return statement.type === "alter_table_alter_column_alter_generated" && (dialect7 === "sqlite" || dialect7 === "turso");
         | 
| 12311 12275 | 
             
                  }
         | 
| 12312 12276 | 
             
                  convert(statement) {
         | 
| 12313 12277 | 
             
                    const {
         | 
| @@ -12400,6 +12364,67 @@ var init_sqlgenerator = __esm({ | |
| 12400 12364 | 
             
                    return `ALTER TABLE \`${statement.tableName}\` DROP PRIMARY KEY`;
         | 
| 12401 12365 | 
             
                  }
         | 
| 12402 12366 | 
             
                };
         | 
| 12367 | 
            +
                LibSQLModifyColumn = class extends Convertor {
         | 
| 12368 | 
            +
                  can(statement, dialect7) {
         | 
| 12369 | 
            +
                    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 === "turso";
         | 
| 12370 | 
            +
                  }
         | 
| 12371 | 
            +
                  convert(statement, json2) {
         | 
| 12372 | 
            +
                    const { tableName, columnName } = statement;
         | 
| 12373 | 
            +
                    let columnType = ``;
         | 
| 12374 | 
            +
                    let columnDefault = "";
         | 
| 12375 | 
            +
                    let columnNotNull = "";
         | 
| 12376 | 
            +
                    const sqlStatements = [];
         | 
| 12377 | 
            +
                    const indexes = [];
         | 
| 12378 | 
            +
                    for (const table4 of Object.values(json2.tables)) {
         | 
| 12379 | 
            +
                      for (const index4 of Object.values(table4.indexes)) {
         | 
| 12380 | 
            +
                        const unsquashed = SQLiteSquasher.unsquashIdx(index4);
         | 
| 12381 | 
            +
                        sqlStatements.push(`DROP INDEX IF EXISTS "${unsquashed.name}";`);
         | 
| 12382 | 
            +
                        indexes.push({ ...unsquashed, tableName: table4.name });
         | 
| 12383 | 
            +
                      }
         | 
| 12384 | 
            +
                    }
         | 
| 12385 | 
            +
                    switch (statement.type) {
         | 
| 12386 | 
            +
                      case "alter_table_alter_column_set_type":
         | 
| 12387 | 
            +
                        columnType = ` ${statement.newDataType}`;
         | 
| 12388 | 
            +
                        columnDefault = statement.columnDefault ? ` DEFAULT ${statement.columnDefault}` : "";
         | 
| 12389 | 
            +
                        columnNotNull = statement.columnNotNull ? ` NOT NULL` : "";
         | 
| 12390 | 
            +
                        break;
         | 
| 12391 | 
            +
                      case "alter_table_alter_column_drop_notnull":
         | 
| 12392 | 
            +
                        columnType = ` ${statement.newDataType}`;
         | 
| 12393 | 
            +
                        columnDefault = statement.columnDefault ? ` DEFAULT ${statement.columnDefault}` : "";
         | 
| 12394 | 
            +
                        columnNotNull = "";
         | 
| 12395 | 
            +
                        break;
         | 
| 12396 | 
            +
                      case "alter_table_alter_column_set_notnull":
         | 
| 12397 | 
            +
                        columnType = ` ${statement.newDataType}`;
         | 
| 12398 | 
            +
                        columnDefault = statement.columnDefault ? ` DEFAULT ${statement.columnDefault}` : "";
         | 
| 12399 | 
            +
                        columnNotNull = ` NOT NULL`;
         | 
| 12400 | 
            +
                        break;
         | 
| 12401 | 
            +
                      case "alter_table_alter_column_set_default":
         | 
| 12402 | 
            +
                        columnType = ` ${statement.newDataType}`;
         | 
| 12403 | 
            +
                        columnDefault = ` DEFAULT ${statement.newDefaultValue}`;
         | 
| 12404 | 
            +
                        columnNotNull = statement.columnNotNull ? ` NOT NULL` : "";
         | 
| 12405 | 
            +
                        break;
         | 
| 12406 | 
            +
                      case "alter_table_alter_column_drop_default":
         | 
| 12407 | 
            +
                        columnType = ` ${statement.newDataType}`;
         | 
| 12408 | 
            +
                        columnDefault = "";
         | 
| 12409 | 
            +
                        columnNotNull = statement.columnNotNull ? ` NOT NULL` : "";
         | 
| 12410 | 
            +
                        break;
         | 
| 12411 | 
            +
                    }
         | 
| 12412 | 
            +
                    columnDefault = columnDefault instanceof Date ? columnDefault.toISOString() : columnDefault;
         | 
| 12413 | 
            +
                    sqlStatements.push(
         | 
| 12414 | 
            +
                      `ALTER TABLE \`${tableName}\` ALTER COLUMN "${columnName}" TO "${columnName}"${columnType}${columnNotNull}${columnDefault};`
         | 
| 12415 | 
            +
                    );
         | 
| 12416 | 
            +
                    for (const index4 of indexes) {
         | 
| 12417 | 
            +
                      const indexPart = index4.isUnique ? "UNIQUE INDEX" : "INDEX";
         | 
| 12418 | 
            +
                      const whereStatement = index4.where ? ` WHERE ${index4.where}` : "";
         | 
| 12419 | 
            +
                      const uniqueString = index4.columns.map((it) => `\`${it}\``).join(",");
         | 
| 12420 | 
            +
                      const tableName2 = index4.tableName;
         | 
| 12421 | 
            +
                      sqlStatements.push(
         | 
| 12422 | 
            +
                        `CREATE ${indexPart} \`${index4.name}\` ON \`${tableName2}\` (${uniqueString})${whereStatement};`
         | 
| 12423 | 
            +
                      );
         | 
| 12424 | 
            +
                    }
         | 
| 12425 | 
            +
                    return sqlStatements;
         | 
| 12426 | 
            +
                  }
         | 
| 12427 | 
            +
                };
         | 
| 12403 12428 | 
             
                MySqlModifyColumn = class extends Convertor {
         | 
| 12404 12429 | 
             
                  can(statement, dialect7) {
         | 
| 12405 12430 | 
             
                    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";
         | 
| @@ -12537,21 +12562,6 @@ var init_sqlgenerator = __esm({ | |
| 12537 12562 | 
             
                    return `ALTER TABLE \`${tableName}\` MODIFY COLUMN \`${columnName}\`${columnType}${columnAutoincrement}${columnGenerated}${columnNotNull}${columnDefault}${columnOnUpdate};`;
         | 
| 12538 12563 | 
             
                  }
         | 
| 12539 12564 | 
             
                };
         | 
| 12540 | 
            -
                SqliteAlterTableAlterColumnDropDefaultConvertor = class extends Convertor {
         | 
| 12541 | 
            -
                  can(statement, dialect7) {
         | 
| 12542 | 
            -
                    return statement.type === "alter_table_alter_column_drop_default" && dialect7 === "sqlite";
         | 
| 12543 | 
            -
                  }
         | 
| 12544 | 
            -
                  convert(statement) {
         | 
| 12545 | 
            -
                    return `/*
         | 
| 12546 | 
            -
             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
         | 
| 12547 | 
            -
             Please refer to: https://www.techonthenet.com/sqlite/tables/alter_table.php
         | 
| 12548 | 
            -
                              https://www.sqlite.org/lang_altertable.html
         | 
| 12549 | 
            -
                              https://stackoverflow.com/questions/2083543/modify-a-columns-type-in-sqlite3
         | 
| 12550 | 
            -
             | 
| 12551 | 
            -
             Due to that we don't generate migration automatically and it has to be done manually
         | 
| 12552 | 
            -
            */`;
         | 
| 12553 | 
            -
                  }
         | 
| 12554 | 
            -
                };
         | 
| 12555 12565 | 
             
                PgAlterTableCreateCompositePrimaryKeyConvertor = class extends Convertor {
         | 
| 12556 12566 | 
             
                  can(statement, dialect7) {
         | 
| 12557 12567 | 
             
                    return statement.type === "create_composite_pk" && dialect7 === "postgresql";
         | 
| @@ -12616,85 +12626,6 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT ${statement.newCo | |
| 12616 12626 | 
             
                    return `ALTER TABLE \`${statement.tableName}\` DROP PRIMARY KEY, ADD PRIMARY KEY(\`${newColumns.join("`,`")}\`);`;
         | 
| 12617 12627 | 
             
                  }
         | 
| 12618 12628 | 
             
                };
         | 
| 12619 | 
            -
                SqliteAlterTableCreateCompositePrimaryKeyConvertor = class extends Convertor {
         | 
| 12620 | 
            -
                  can(statement, dialect7) {
         | 
| 12621 | 
            -
                    return statement.type === "create_composite_pk" && dialect7 === "sqlite";
         | 
| 12622 | 
            -
                  }
         | 
| 12623 | 
            -
                  convert(statement) {
         | 
| 12624 | 
            -
                    let msg = "/*\n";
         | 
| 12625 | 
            -
                    msg += `You're trying to add PRIMARY KEY(${statement.data}) to '${statement.tableName}' table
         | 
| 12626 | 
            -
            `;
         | 
| 12627 | 
            -
                    msg += "SQLite does not support adding primary key to an already created table\n";
         | 
| 12628 | 
            -
                    msg += "You can do it in 3 steps with drizzle orm:\n";
         | 
| 12629 | 
            -
                    msg += " - create new mirror table with needed pk, rename current table to old_table, generate SQL\n";
         | 
| 12630 | 
            -
                    msg += " - migrate old data from one table to another\n";
         | 
| 12631 | 
            -
                    msg += " - delete old_table in schema, generate sql\n\n";
         | 
| 12632 | 
            -
                    msg += "or create manual migration like below:\n\n";
         | 
| 12633 | 
            -
                    msg += "ALTER TABLE table_name RENAME TO old_table;\n";
         | 
| 12634 | 
            -
                    msg += "CREATE TABLE table_name (\n";
         | 
| 12635 | 
            -
                    msg += "	column1 datatype [ NULL | NOT NULL ],\n";
         | 
| 12636 | 
            -
                    msg += "	column2 datatype [ NULL | NOT NULL ],\n";
         | 
| 12637 | 
            -
                    msg += "	...\n";
         | 
| 12638 | 
            -
                    msg += "	PRIMARY KEY (pk_col1, pk_col2, ... pk_col_n)\n";
         | 
| 12639 | 
            -
                    msg += " );\n";
         | 
| 12640 | 
            -
                    msg += "INSERT INTO table_name SELECT * FROM old_table;\n\n";
         | 
| 12641 | 
            -
                    msg += "Due to that we don't generate migration automatically and it has to be done manually\n";
         | 
| 12642 | 
            -
                    msg += "*/\n";
         | 
| 12643 | 
            -
                    return msg;
         | 
| 12644 | 
            -
                  }
         | 
| 12645 | 
            -
                };
         | 
| 12646 | 
            -
                SqliteAlterTableDeleteCompositePrimaryKeyConvertor = class extends Convertor {
         | 
| 12647 | 
            -
                  can(statement, dialect7) {
         | 
| 12648 | 
            -
                    return statement.type === "delete_composite_pk" && dialect7 === "sqlite";
         | 
| 12649 | 
            -
                  }
         | 
| 12650 | 
            -
                  convert(statement) {
         | 
| 12651 | 
            -
                    let msg = "/*\n";
         | 
| 12652 | 
            -
                    msg += `You're trying to delete PRIMARY KEY(${statement.data}) from '${statement.tableName}' table
         | 
| 12653 | 
            -
            `;
         | 
| 12654 | 
            -
                    msg += "SQLite does not supportprimary key deletion from existing table\n";
         | 
| 12655 | 
            -
                    msg += "You can do it in 3 steps with drizzle orm:\n";
         | 
| 12656 | 
            -
                    msg += " - create new mirror table table without pk, rename current table to old_table, generate SQL\n";
         | 
| 12657 | 
            -
                    msg += " - migrate old data from one table to another\n";
         | 
| 12658 | 
            -
                    msg += " - delete old_table in schema, generate sql\n\n";
         | 
| 12659 | 
            -
                    msg += "or create manual migration like below:\n\n";
         | 
| 12660 | 
            -
                    msg += "ALTER TABLE table_name RENAME TO old_table;\n";
         | 
| 12661 | 
            -
                    msg += "CREATE TABLE table_name (\n";
         | 
| 12662 | 
            -
                    msg += "	column1 datatype [ NULL | NOT NULL ],\n";
         | 
| 12663 | 
            -
                    msg += "	column2 datatype [ NULL | NOT NULL ],\n";
         | 
| 12664 | 
            -
                    msg += "	...\n";
         | 
| 12665 | 
            -
                    msg += "	PRIMARY KEY (pk_col1, pk_col2, ... pk_col_n)\n";
         | 
| 12666 | 
            -
                    msg += " );\n";
         | 
| 12667 | 
            -
                    msg += "INSERT INTO table_name SELECT * FROM old_table;\n\n";
         | 
| 12668 | 
            -
                    msg += "Due to that we don't generate migration automatically and it has to be done manually\n";
         | 
| 12669 | 
            -
                    msg += "*/\n";
         | 
| 12670 | 
            -
                    return msg;
         | 
| 12671 | 
            -
                  }
         | 
| 12672 | 
            -
                };
         | 
| 12673 | 
            -
                SqliteAlterTableAlterCompositePrimaryKeyConvertor = class extends Convertor {
         | 
| 12674 | 
            -
                  can(statement, dialect7) {
         | 
| 12675 | 
            -
                    return statement.type === "alter_composite_pk" && dialect7 === "sqlite";
         | 
| 12676 | 
            -
                  }
         | 
| 12677 | 
            -
                  convert(statement) {
         | 
| 12678 | 
            -
                    let msg = "/*\n";
         | 
| 12679 | 
            -
                    msg += "SQLite does not support altering primary key\n";
         | 
| 12680 | 
            -
                    msg += "You can do it in 3 steps with drizzle orm:\n";
         | 
| 12681 | 
            -
                    msg += " - create new mirror table with needed pk, rename current table to old_table, generate SQL\n";
         | 
| 12682 | 
            -
                    msg += " - migrate old data from one table to another\n";
         | 
| 12683 | 
            -
                    msg += " - delete old_table in schema, generate sql\n\n";
         | 
| 12684 | 
            -
                    msg += "or create manual migration like below:\n\n";
         | 
| 12685 | 
            -
                    msg += "ALTER TABLE table_name RENAME TO old_table;\n";
         | 
| 12686 | 
            -
                    msg += "CREATE TABLE table_name (\n";
         | 
| 12687 | 
            -
                    msg += "	column1 datatype [ NULL | NOT NULL ],\n";
         | 
| 12688 | 
            -
                    msg += "	column2 datatype [ NULL | NOT NULL ],\n";
         | 
| 12689 | 
            -
                    msg += "	...\n";
         | 
| 12690 | 
            -
                    msg += "	PRIMARY KEY (pk_col1, pk_col2, ... pk_col_n)\n";
         | 
| 12691 | 
            -
                    msg += " );\n";
         | 
| 12692 | 
            -
                    msg += "INSERT INTO table_name SELECT * FROM old_table;\n\n";
         | 
| 12693 | 
            -
                    msg += "Due to that we don't generate migration automatically and it has to be done manually\n";
         | 
| 12694 | 
            -
                    msg += "*/\n";
         | 
| 12695 | 
            -
                    return msg;
         | 
| 12696 | 
            -
                  }
         | 
| 12697 | 
            -
                };
         | 
| 12698 12629 | 
             
                PgAlterTableAlterColumnSetPrimaryKeyConvertor = class extends Convertor {
         | 
| 12699 12630 | 
             
                  can(statement, dialect7) {
         | 
| 12700 12631 | 
             
                    return statement.type === "alter_table_alter_column_set_pk" && dialect7 === "postgresql";
         | 
| @@ -12739,51 +12670,6 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT ${statement.newCo | |
| 12739 12670 | 
             
                    return `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET NOT NULL;`;
         | 
| 12740 12671 | 
             
                  }
         | 
| 12741 12672 | 
             
                };
         | 
| 12742 | 
            -
                SqliteAlterTableAlterColumnSetNotNullConvertor = class extends Convertor {
         | 
| 12743 | 
            -
                  can(statement, dialect7) {
         | 
| 12744 | 
            -
                    return statement.type === "alter_table_alter_column_set_notnull" && dialect7 === "sqlite";
         | 
| 12745 | 
            -
                  }
         | 
| 12746 | 
            -
                  convert(statement) {
         | 
| 12747 | 
            -
                    return `/*
         | 
| 12748 | 
            -
             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
         | 
| 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 | 
            -
                SqliteAlterTableAlterColumnSetAutoincrementConvertor = class extends Convertor {
         | 
| 12758 | 
            -
                  can(statement, dialect7) {
         | 
| 12759 | 
            -
                    return statement.type === "alter_table_alter_column_set_autoincrement" && dialect7 === "sqlite";
         | 
| 12760 | 
            -
                  }
         | 
| 12761 | 
            -
                  convert(statement) {
         | 
| 12762 | 
            -
                    return `/*
         | 
| 12763 | 
            -
             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
         | 
| 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 | 
            -
                SqliteAlterTableAlterColumnDropAutoincrementConvertor = class extends Convertor {
         | 
| 12773 | 
            -
                  can(statement, dialect7) {
         | 
| 12774 | 
            -
                    return statement.type === "alter_table_alter_column_drop_autoincrement" && dialect7 === "sqlite";
         | 
| 12775 | 
            -
                  }
         | 
| 12776 | 
            -
                  convert(statement) {
         | 
| 12777 | 
            -
                    return `/*
         | 
| 12778 | 
            -
             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
         | 
| 12779 | 
            -
             Please refer to: https://www.techonthenet.com/sqlite/tables/alter_table.php
         | 
| 12780 | 
            -
                              https://www.sqlite.org/lang_altertable.html
         | 
| 12781 | 
            -
                              https://stackoverflow.com/questions/2083543/modify-a-columns-type-in-sqlite3
         | 
| 12782 | 
            -
             | 
| 12783 | 
            -
             Due to that we don't generate migration automatically and it has to be done manually
         | 
| 12784 | 
            -
            */`;
         | 
| 12785 | 
            -
                  }
         | 
| 12786 | 
            -
                };
         | 
| 12787 12673 | 
             
                PgAlterTableAlterColumnDropNotNullConvertor = class extends Convertor {
         | 
| 12788 12674 | 
             
                  can(statement, dialect7) {
         | 
| 12789 12675 | 
             
                    return statement.type === "alter_table_alter_column_drop_notnull" && dialect7 === "postgresql";
         | 
| @@ -12794,21 +12680,6 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT ${statement.newCo | |
| 12794 12680 | 
             
                    return `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" DROP NOT NULL;`;
         | 
| 12795 12681 | 
             
                  }
         | 
| 12796 12682 | 
             
                };
         | 
| 12797 | 
            -
                SqliteAlterTableAlterColumnDropNotNullConvertor = class extends Convertor {
         | 
| 12798 | 
            -
                  can(statement, dialect7) {
         | 
| 12799 | 
            -
                    return statement.type === "alter_table_alter_column_drop_notnull" && dialect7 === "sqlite";
         | 
| 12800 | 
            -
                  }
         | 
| 12801 | 
            -
                  convert(statement) {
         | 
| 12802 | 
            -
                    return `/*
         | 
| 12803 | 
            -
             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
         | 
| 12804 | 
            -
             Please refer to: https://www.techonthenet.com/sqlite/tables/alter_table.php
         | 
| 12805 | 
            -
                              https://www.sqlite.org/lang_altertable.html
         | 
| 12806 | 
            -
                              https://stackoverflow.com/questions/2083543/modify-a-columns-type-in-sqlite3
         | 
| 12807 | 
            -
             | 
| 12808 | 
            -
             Due to that we don't generate migration automatically and it has to be done manually
         | 
| 12809 | 
            -
            */`;
         | 
| 12810 | 
            -
                  }
         | 
| 12811 | 
            -
                };
         | 
| 12812 12683 | 
             
                PgCreateForeignKeyConvertor = class extends Convertor {
         | 
| 12813 12684 | 
             
                  can(statement, dialect7) {
         | 
| 12814 12685 | 
             
                    return statement.type === "create_reference" && dialect7 === "postgresql";
         | 
| @@ -12839,18 +12710,21 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT ${statement.newCo | |
| 12839 12710 | 
             
                    return sql2;
         | 
| 12840 12711 | 
             
                  }
         | 
| 12841 12712 | 
             
                };
         | 
| 12842 | 
            -
                 | 
| 12713 | 
            +
                LibSQLCreateForeignKeyConvertor = class extends Convertor {
         | 
| 12843 12714 | 
             
                  can(statement, dialect7) {
         | 
| 12844 | 
            -
                    return statement.type === "create_reference" && dialect7 === " | 
| 12715 | 
            +
                    return statement.type === "create_reference" && dialect7 === "turso";
         | 
| 12845 12716 | 
             
                  }
         | 
| 12846 | 
            -
                  convert(statement) {
         | 
| 12847 | 
            -
                     | 
| 12848 | 
            -
              | 
| 12849 | 
            -
              | 
| 12850 | 
            -
             | 
| 12851 | 
            -
             | 
| 12852 | 
            -
              | 
| 12853 | 
            -
             | 
| 12717 | 
            +
                  convert(statement, json2, action) {
         | 
| 12718 | 
            +
                    const { columnsFrom, columnsTo, tableFrom, onDelete, onUpdate, tableTo } = action === "push" ? SQLiteSquasher.unsquashPushFK(statement.data) : SQLiteSquasher.unsquashFK(statement.data);
         | 
| 12719 | 
            +
                    const { columnDefault, columnNotNull, columnType } = statement;
         | 
| 12720 | 
            +
                    const onDeleteStatement = onDelete ? ` ON DELETE ${onDelete}` : "";
         | 
| 12721 | 
            +
                    const onUpdateStatement = onUpdate ? ` ON UPDATE ${onUpdate}` : "";
         | 
| 12722 | 
            +
                    const columnsDefaultValue = columnDefault ? ` DEFAULT ${columnDefault}` : "";
         | 
| 12723 | 
            +
                    const columnNotNullValue = columnNotNull ? ` NOT NULL` : "";
         | 
| 12724 | 
            +
                    const columnTypeValue = columnType ? ` ${columnType}` : "";
         | 
| 12725 | 
            +
                    const columnFrom = columnsFrom[0];
         | 
| 12726 | 
            +
                    const columnTo = columnsTo[0];
         | 
| 12727 | 
            +
                    return `ALTER TABLE \`${tableFrom}\` ALTER COLUMN "${columnFrom}" TO "${columnFrom}"${columnTypeValue}${columnNotNullValue}${columnsDefaultValue} REFERENCES ${tableTo}(${columnTo})${onDeleteStatement}${onUpdateStatement};`;
         | 
| 12854 12728 | 
             
                  }
         | 
| 12855 12729 | 
             
                };
         | 
| 12856 12730 | 
             
                MySqlCreateForeignKeyConvertor = class extends Convertor {
         | 
| @@ -12899,20 +12773,6 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT ${statement.newCo | |
| 12899 12773 | 
             
                    return sql2;
         | 
| 12900 12774 | 
             
                  }
         | 
| 12901 12775 | 
             
                };
         | 
| 12902 | 
            -
                SqliteAlterForeignKeyConvertor = class extends Convertor {
         | 
| 12903 | 
            -
                  can(statement, dialect7) {
         | 
| 12904 | 
            -
                    return statement.type === "alter_reference" && dialect7 === "sqlite";
         | 
| 12905 | 
            -
                  }
         | 
| 12906 | 
            -
                  convert(statement) {
         | 
| 12907 | 
            -
                    return `/*
         | 
| 12908 | 
            -
             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
         | 
| 12909 | 
            -
             Please refer to: https://www.techonthenet.com/sqlite/tables/alter_table.php
         | 
| 12910 | 
            -
                              https://www.sqlite.org/lang_altertable.html
         | 
| 12911 | 
            -
             | 
| 12912 | 
            -
             Due to that we don't generate migration automatically and it has to be done manually
         | 
| 12913 | 
            -
            */`;
         | 
| 12914 | 
            -
                  }
         | 
| 12915 | 
            -
                };
         | 
| 12916 12776 | 
             
                PgDeleteForeignKeyConvertor = class extends Convertor {
         | 
| 12917 12777 | 
             
                  can(statement, dialect7) {
         | 
| 12918 12778 | 
             
                    return statement.type === "delete_reference" && dialect7 === "postgresql";
         | 
| @@ -12925,20 +12785,6 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT ${statement.newCo | |
| 12925 12785 | 
             
            `;
         | 
| 12926 12786 | 
             
                  }
         | 
| 12927 12787 | 
             
                };
         | 
| 12928 | 
            -
                SqliteDeleteForeignKeyConvertor = class extends Convertor {
         | 
| 12929 | 
            -
                  can(statement, dialect7) {
         | 
| 12930 | 
            -
                    return statement.type === "delete_reference" && dialect7 === "sqlite";
         | 
| 12931 | 
            -
                  }
         | 
| 12932 | 
            -
                  convert(statement) {
         | 
| 12933 | 
            -
                    return `/*
         | 
| 12934 | 
            -
             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
         | 
| 12935 | 
            -
             Please refer to: https://www.techonthenet.com/sqlite/tables/alter_table.php
         | 
| 12936 | 
            -
                              https://www.sqlite.org/lang_altertable.html
         | 
| 12937 | 
            -
             | 
| 12938 | 
            -
             Due to that we don't generate migration automatically and it has to be done manually
         | 
| 12939 | 
            -
            */`;
         | 
| 12940 | 
            -
                  }
         | 
| 12941 | 
            -
                };
         | 
| 12942 12788 | 
             
                MySqlDeleteForeignKeyConvertor = class extends Convertor {
         | 
| 12943 12789 | 
             
                  can(statement, dialect7) {
         | 
| 12944 12790 | 
             
                    return statement.type === "delete_reference" && dialect7 === "mysql";
         | 
| @@ -12999,7 +12845,7 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT ${statement.newCo | |
| 12999 12845 | 
             
                };
         | 
| 13000 12846 | 
             
                CreateSqliteIndexConvertor = class extends Convertor {
         | 
| 13001 12847 | 
             
                  can(statement, dialect7) {
         | 
| 13002 | 
            -
                    return statement.type === "create_index" && dialect7 === "sqlite";
         | 
| 12848 | 
            +
                    return statement.type === "create_index" && (dialect7 === "sqlite" || dialect7 === "turso");
         | 
| 13003 12849 | 
             
                  }
         | 
| 13004 12850 | 
             
                  convert(statement) {
         | 
| 13005 12851 | 
             
                    const { name: name2, columns, isUnique, where } = SQLiteSquasher.unsquashIdx(
         | 
| @@ -13086,7 +12932,7 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT ${statement.newCo | |
| 13086 12932 | 
             
                };
         | 
| 13087 12933 | 
             
                SqliteDropIndexConvertor = class extends Convertor {
         | 
| 13088 12934 | 
             
                  can(statement, dialect7) {
         | 
| 13089 | 
            -
                    return statement.type === "drop_index" && dialect7 === "sqlite";
         | 
| 12935 | 
            +
                    return statement.type === "drop_index" && (dialect7 === "sqlite" || dialect7 === "turso");
         | 
| 13090 12936 | 
             
                  }
         | 
| 13091 12937 | 
             
                  convert(statement) {
         | 
| 13092 12938 | 
             
                    const { name: name2 } = PgSquasher.unsquashIdx(statement.data);
         | 
| @@ -13102,10 +12948,96 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT ${statement.newCo | |
| 13102 12948 | 
             
                    return `DROP INDEX \`${name2}\` ON \`${statement.tableName}\`;`;
         | 
| 13103 12949 | 
             
                  }
         | 
| 13104 12950 | 
             
                };
         | 
| 12951 | 
            +
                SQLiteRecreateTableConvertor = class extends Convertor {
         | 
| 12952 | 
            +
                  can(statement, dialect7) {
         | 
| 12953 | 
            +
                    return statement.type === "recreate_table" && dialect7 === "sqlite";
         | 
| 12954 | 
            +
                  }
         | 
| 12955 | 
            +
                  convert(statement) {
         | 
| 12956 | 
            +
                    const { tableName, columns, compositePKs, referenceData } = statement;
         | 
| 12957 | 
            +
                    const columnNames = columns.map((it) => `"${it.name}"`).join(", ");
         | 
| 12958 | 
            +
                    const newTableName = `__new_${tableName}`;
         | 
| 12959 | 
            +
                    const sqlStatements = [];
         | 
| 12960 | 
            +
                    sqlStatements.push(`PRAGMA foreign_keys=OFF;`);
         | 
| 12961 | 
            +
                    sqlStatements.push(
         | 
| 12962 | 
            +
                      new SQLiteCreateTableConvertor().convert({
         | 
| 12963 | 
            +
                        type: "sqlite_create_table",
         | 
| 12964 | 
            +
                        tableName: newTableName,
         | 
| 12965 | 
            +
                        columns,
         | 
| 12966 | 
            +
                        referenceData,
         | 
| 12967 | 
            +
                        compositePKs
         | 
| 12968 | 
            +
                      })
         | 
| 12969 | 
            +
                    );
         | 
| 12970 | 
            +
                    sqlStatements.push(
         | 
| 12971 | 
            +
                      `INSERT INTO \`${newTableName}\`(${columnNames}) SELECT ${columnNames} FROM \`${tableName}\`;`
         | 
| 12972 | 
            +
                    );
         | 
| 12973 | 
            +
                    sqlStatements.push(
         | 
| 12974 | 
            +
                      new SQLiteDropTableConvertor().convert({
         | 
| 12975 | 
            +
                        type: "drop_table",
         | 
| 12976 | 
            +
                        tableName,
         | 
| 12977 | 
            +
                        schema: ""
         | 
| 12978 | 
            +
                      })
         | 
| 12979 | 
            +
                    );
         | 
| 12980 | 
            +
                    sqlStatements.push(
         | 
| 12981 | 
            +
                      new SqliteRenameTableConvertor().convert({
         | 
| 12982 | 
            +
                        fromSchema: "",
         | 
| 12983 | 
            +
                        tableNameFrom: newTableName,
         | 
| 12984 | 
            +
                        tableNameTo: tableName,
         | 
| 12985 | 
            +
                        toSchema: "",
         | 
| 12986 | 
            +
                        type: "rename_table"
         | 
| 12987 | 
            +
                      })
         | 
| 12988 | 
            +
                    );
         | 
| 12989 | 
            +
                    sqlStatements.push(`PRAGMA foreign_keys=ON;`);
         | 
| 12990 | 
            +
                    return sqlStatements;
         | 
| 12991 | 
            +
                  }
         | 
| 12992 | 
            +
                };
         | 
| 12993 | 
            +
                LibSQLRecreateTableConvertor = class extends Convertor {
         | 
| 12994 | 
            +
                  can(statement, dialect7) {
         | 
| 12995 | 
            +
                    return statement.type === "recreate_table" && dialect7 === "turso";
         | 
| 12996 | 
            +
                  }
         | 
| 12997 | 
            +
                  convert(statement) {
         | 
| 12998 | 
            +
                    const { tableName, columns, compositePKs, referenceData } = statement;
         | 
| 12999 | 
            +
                    const columnNames = columns.map((it) => `"${it.name}"`).join(", ");
         | 
| 13000 | 
            +
                    const newTableName = `__new_${tableName}`;
         | 
| 13001 | 
            +
                    const sqlStatements = [];
         | 
| 13002 | 
            +
                    sqlStatements.push(`PRAGMA foreign_keys=OFF;`);
         | 
| 13003 | 
            +
                    sqlStatements.push(
         | 
| 13004 | 
            +
                      new SQLiteCreateTableConvertor().convert({
         | 
| 13005 | 
            +
                        type: "sqlite_create_table",
         | 
| 13006 | 
            +
                        tableName: newTableName,
         | 
| 13007 | 
            +
                        columns,
         | 
| 13008 | 
            +
                        referenceData,
         | 
| 13009 | 
            +
                        compositePKs
         | 
| 13010 | 
            +
                      })
         | 
| 13011 | 
            +
                    );
         | 
| 13012 | 
            +
                    sqlStatements.push(
         | 
| 13013 | 
            +
                      `INSERT INTO \`${newTableName}\`(${columnNames}) SELECT ${columnNames} FROM \`${tableName}\`;`
         | 
| 13014 | 
            +
                    );
         | 
| 13015 | 
            +
                    sqlStatements.push(
         | 
| 13016 | 
            +
                      new SQLiteDropTableConvertor().convert({
         | 
| 13017 | 
            +
                        type: "drop_table",
         | 
| 13018 | 
            +
                        tableName,
         | 
| 13019 | 
            +
                        schema: ""
         | 
| 13020 | 
            +
                      })
         | 
| 13021 | 
            +
                    );
         | 
| 13022 | 
            +
                    sqlStatements.push(
         | 
| 13023 | 
            +
                      new SqliteRenameTableConvertor().convert({
         | 
| 13024 | 
            +
                        fromSchema: "",
         | 
| 13025 | 
            +
                        tableNameFrom: newTableName,
         | 
| 13026 | 
            +
                        tableNameTo: tableName,
         | 
| 13027 | 
            +
                        toSchema: "",
         | 
| 13028 | 
            +
                        type: "rename_table"
         | 
| 13029 | 
            +
                      })
         | 
| 13030 | 
            +
                    );
         | 
| 13031 | 
            +
                    sqlStatements.push(`PRAGMA foreign_keys=ON;`);
         | 
| 13032 | 
            +
                    return sqlStatements;
         | 
| 13033 | 
            +
                  }
         | 
| 13034 | 
            +
                };
         | 
| 13105 13035 | 
             
                convertors = [];
         | 
| 13106 13036 | 
             
                convertors.push(new PgCreateTableConvertor());
         | 
| 13107 13037 | 
             
                convertors.push(new MySqlCreateTableConvertor());
         | 
| 13108 13038 | 
             
                convertors.push(new SQLiteCreateTableConvertor());
         | 
| 13039 | 
            +
                convertors.push(new SQLiteRecreateTableConvertor());
         | 
| 13040 | 
            +
                convertors.push(new LibSQLRecreateTableConvertor());
         | 
| 13109 13041 | 
             
                convertors.push(new CreateTypeEnumConvertor());
         | 
| 13110 13042 | 
             
                convertors.push(new CreatePgSequenceConvertor());
         | 
| 13111 13043 | 
             
                convertors.push(new DropPgSequenceConvertor());
         | 
| @@ -13153,6 +13085,7 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT ${statement.newCo | |
| 13153 13085 | 
             
                convertors.push(new SqliteAlterTableAlterColumnAlterGeneratedConvertor());
         | 
| 13154 13086 | 
             
                convertors.push(new SqliteAlterTableAlterColumnSetExpressionConvertor());
         | 
| 13155 13087 | 
             
                convertors.push(new MySqlModifyColumn());
         | 
| 13088 | 
            +
                convertors.push(new LibSQLModifyColumn());
         | 
| 13156 13089 | 
             
                convertors.push(new PgCreateForeignKeyConvertor());
         | 
| 13157 13090 | 
             
                convertors.push(new MySqlCreateForeignKeyConvertor());
         | 
| 13158 13091 | 
             
                convertors.push(new PgAlterForeignKeyConvertor());
         | 
| @@ -13164,24 +13097,10 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT ${statement.newCo | |
| 13164 13097 | 
             
                convertors.push(new PgAlterTableSetSchemaConvertor());
         | 
| 13165 13098 | 
             
                convertors.push(new PgAlterTableSetNewSchemaConvertor());
         | 
| 13166 13099 | 
             
                convertors.push(new PgAlterTableRemoveFromSchemaConvertor());
         | 
| 13167 | 
            -
                convertors.push(new  | 
| 13168 | 
            -
                convertors.push(new SqliteAlterForeignKeyConvertor());
         | 
| 13169 | 
            -
                convertors.push(new SqliteDeleteForeignKeyConvertor());
         | 
| 13170 | 
            -
                convertors.push(new SqliteCreateForeignKeyConvertor());
         | 
| 13171 | 
            -
                convertors.push(new SQLiteAlterTableAddUniqueConstraintConvertor());
         | 
| 13172 | 
            -
                convertors.push(new SQLiteAlterTableDropUniqueConstraintConvertor());
         | 
| 13100 | 
            +
                convertors.push(new LibSQLCreateForeignKeyConvertor());
         | 
| 13173 13101 | 
             
                convertors.push(new PgAlterTableAlterColumnDropGenerated());
         | 
| 13174 13102 | 
             
                convertors.push(new PgAlterTableAlterColumnSetGenerated());
         | 
| 13175 13103 | 
             
                convertors.push(new PgAlterTableAlterColumnAlterGenerated());
         | 
| 13176 | 
            -
                convertors.push(new SqliteAlterTableAlterColumnSetNotNullConvertor());
         | 
| 13177 | 
            -
                convertors.push(new SqliteAlterTableAlterColumnDropNotNullConvertor());
         | 
| 13178 | 
            -
                convertors.push(new SqliteAlterTableAlterColumnSetDefaultConvertor());
         | 
| 13179 | 
            -
                convertors.push(new SqliteAlterTableAlterColumnDropDefaultConvertor());
         | 
| 13180 | 
            -
                convertors.push(new SqliteAlterTableAlterColumnSetAutoincrementConvertor());
         | 
| 13181 | 
            -
                convertors.push(new SqliteAlterTableAlterColumnDropAutoincrementConvertor());
         | 
| 13182 | 
            -
                convertors.push(new SqliteAlterTableCreateCompositePrimaryKeyConvertor());
         | 
| 13183 | 
            -
                convertors.push(new SqliteAlterTableDeleteCompositePrimaryKeyConvertor());
         | 
| 13184 | 
            -
                convertors.push(new SqliteAlterTableAlterCompositePrimaryKeyConvertor());
         | 
| 13185 13104 | 
             
                convertors.push(new PgAlterTableCreateCompositePrimaryKeyConvertor());
         | 
| 13186 13105 | 
             
                convertors.push(new PgAlterTableDeleteCompositePrimaryKeyConvertor());
         | 
| 13187 13106 | 
             
                convertors.push(new PgAlterTableAlterCompositePrimaryKeyConvertor());
         | 
| @@ -13190,19 +13109,6 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT ${statement.newCo | |
| 13190 13109 | 
             
                convertors.push(new MySqlAlterTableCreateCompositePrimaryKeyConvertor());
         | 
| 13191 13110 | 
             
                convertors.push(new MySqlAlterTableAddPk());
         | 
| 13192 13111 | 
             
                convertors.push(new MySqlAlterTableAlterCompositePrimaryKeyConvertor());
         | 
| 13193 | 
            -
                fromJson = (statements, dialect7) => {
         | 
| 13194 | 
            -
                  const result = statements.flatMap((statement) => {
         | 
| 13195 | 
            -
                    const filtered = convertors.filter((it) => {
         | 
| 13196 | 
            -
                      return it.can(statement, dialect7);
         | 
| 13197 | 
            -
                    });
         | 
| 13198 | 
            -
                    const convertor = filtered.length === 1 ? filtered[0] : void 0;
         | 
| 13199 | 
            -
                    if (!convertor) {
         | 
| 13200 | 
            -
                      return "";
         | 
| 13201 | 
            -
                    }
         | 
| 13202 | 
            -
                    return convertor.convert(statement);
         | 
| 13203 | 
            -
                  }).filter((it) => it !== "");
         | 
| 13204 | 
            -
                  return result;
         | 
| 13205 | 
            -
                };
         | 
| 13206 13112 | 
             
                https: `
         | 
| 13207 13113 | 
             
            create table users (
         | 
| 13208 13114 | 
             
            	id int,
         | 
| @@ -13229,12 +13135,248 @@ drop type __venum; | |
| 13229 13135 | 
             
              }
         | 
| 13230 13136 | 
             
            });
         | 
| 13231 13137 |  | 
| 13138 | 
            +
            // src/cli/commands/sqlitePushUtils.ts
         | 
| 13139 | 
            +
            var _moveDataStatements, getOldTableName, getNewTableName, logSuggestionsAndReturn;
         | 
| 13140 | 
            +
            var init_sqlitePushUtils = __esm({
         | 
| 13141 | 
            +
              "src/cli/commands/sqlitePushUtils.ts"() {
         | 
| 13142 | 
            +
                "use strict";
         | 
| 13143 | 
            +
                init_source();
         | 
| 13144 | 
            +
                init_sqliteSchema();
         | 
| 13145 | 
            +
                init_sqlgenerator();
         | 
| 13146 | 
            +
                init_utils();
         | 
| 13147 | 
            +
                _moveDataStatements = (tableName, json, dataLoss = false) => {
         | 
| 13148 | 
            +
                  const statements = [];
         | 
| 13149 | 
            +
                  const newTableName = `__new_${tableName}`;
         | 
| 13150 | 
            +
                  const tableColumns = Object.values(json.tables[tableName].columns);
         | 
| 13151 | 
            +
                  const referenceData = Object.values(json.tables[tableName].foreignKeys);
         | 
| 13152 | 
            +
                  const compositePKs = Object.values(
         | 
| 13153 | 
            +
                    json.tables[tableName].compositePrimaryKeys
         | 
| 13154 | 
            +
                  ).map((it) => SQLiteSquasher.unsquashPK(it));
         | 
| 13155 | 
            +
                  const fks = referenceData.map((it) => SQLiteSquasher.unsquashPushFK(it));
         | 
| 13156 | 
            +
                  statements.push(
         | 
| 13157 | 
            +
                    new SQLiteCreateTableConvertor().convert({
         | 
| 13158 | 
            +
                      type: "sqlite_create_table",
         | 
| 13159 | 
            +
                      tableName: newTableName,
         | 
| 13160 | 
            +
                      columns: tableColumns,
         | 
| 13161 | 
            +
                      referenceData: fks,
         | 
| 13162 | 
            +
                      compositePKs
         | 
| 13163 | 
            +
                    })
         | 
| 13164 | 
            +
                  );
         | 
| 13165 | 
            +
                  if (!dataLoss) {
         | 
| 13166 | 
            +
                    const columns = Object.keys(json.tables[tableName].columns).map(
         | 
| 13167 | 
            +
                      (c) => `"${c}"`
         | 
| 13168 | 
            +
                    );
         | 
| 13169 | 
            +
                    statements.push(
         | 
| 13170 | 
            +
                      `INSERT INTO \`${newTableName}\`(${columns.join(
         | 
| 13171 | 
            +
                        ", "
         | 
| 13172 | 
            +
                      )}) SELECT ${columns.join(", ")} FROM \`${tableName}\`;`
         | 
| 13173 | 
            +
                    );
         | 
| 13174 | 
            +
                  }
         | 
| 13175 | 
            +
                  statements.push(
         | 
| 13176 | 
            +
                    new SQLiteDropTableConvertor().convert({
         | 
| 13177 | 
            +
                      type: "drop_table",
         | 
| 13178 | 
            +
                      tableName,
         | 
| 13179 | 
            +
                      schema: ""
         | 
| 13180 | 
            +
                    })
         | 
| 13181 | 
            +
                  );
         | 
| 13182 | 
            +
                  statements.push(
         | 
| 13183 | 
            +
                    new SqliteRenameTableConvertor().convert({
         | 
| 13184 | 
            +
                      fromSchema: "",
         | 
| 13185 | 
            +
                      tableNameFrom: newTableName,
         | 
| 13186 | 
            +
                      tableNameTo: tableName,
         | 
| 13187 | 
            +
                      toSchema: "",
         | 
| 13188 | 
            +
                      type: "rename_table"
         | 
| 13189 | 
            +
                    })
         | 
| 13190 | 
            +
                  );
         | 
| 13191 | 
            +
                  for (const idx of Object.values(json.tables[tableName].indexes)) {
         | 
| 13192 | 
            +
                    statements.push(
         | 
| 13193 | 
            +
                      new CreateSqliteIndexConvertor().convert({
         | 
| 13194 | 
            +
                        type: "create_index",
         | 
| 13195 | 
            +
                        tableName,
         | 
| 13196 | 
            +
                        schema: "",
         | 
| 13197 | 
            +
                        data: idx
         | 
| 13198 | 
            +
                      })
         | 
| 13199 | 
            +
                    );
         | 
| 13200 | 
            +
                  }
         | 
| 13201 | 
            +
                  return statements;
         | 
| 13202 | 
            +
                };
         | 
| 13203 | 
            +
                getOldTableName = (tableName, meta) => {
         | 
| 13204 | 
            +
                  for (const key of Object.keys(meta.tables)) {
         | 
| 13205 | 
            +
                    const value = meta.tables[key];
         | 
| 13206 | 
            +
                    if (`"${tableName}"` === value) {
         | 
| 13207 | 
            +
                      return key.substring(1, key.length - 1);
         | 
| 13208 | 
            +
                    }
         | 
| 13209 | 
            +
                  }
         | 
| 13210 | 
            +
                  return tableName;
         | 
| 13211 | 
            +
                };
         | 
| 13212 | 
            +
                getNewTableName = (tableName, meta) => {
         | 
| 13213 | 
            +
                  if (typeof meta.tables[`"${tableName}"`] !== "undefined") {
         | 
| 13214 | 
            +
                    return meta.tables[`"${tableName}"`].substring(
         | 
| 13215 | 
            +
                      1,
         | 
| 13216 | 
            +
                      meta.tables[`"${tableName}"`].length - 1
         | 
| 13217 | 
            +
                    );
         | 
| 13218 | 
            +
                  }
         | 
| 13219 | 
            +
                  return tableName;
         | 
| 13220 | 
            +
                };
         | 
| 13221 | 
            +
                logSuggestionsAndReturn = async (connection, statements, json1, json2, meta) => {
         | 
| 13222 | 
            +
                  let shouldAskForApprove = false;
         | 
| 13223 | 
            +
                  const statementsToExecute = [];
         | 
| 13224 | 
            +
                  const infoToPrint = [];
         | 
| 13225 | 
            +
                  const tablesToRemove = [];
         | 
| 13226 | 
            +
                  const columnsToRemove = [];
         | 
| 13227 | 
            +
                  const schemasToRemove = [];
         | 
| 13228 | 
            +
                  const tablesToTruncate = [];
         | 
| 13229 | 
            +
                  for (const statement of statements) {
         | 
| 13230 | 
            +
                    if (statement.type === "drop_table") {
         | 
| 13231 | 
            +
                      const res = await connection.query(
         | 
| 13232 | 
            +
                        `select count(*) as count from \`${statement.tableName}\``
         | 
| 13233 | 
            +
                      );
         | 
| 13234 | 
            +
                      const count2 = Number(res[0].count);
         | 
| 13235 | 
            +
                      if (count2 > 0) {
         | 
| 13236 | 
            +
                        infoToPrint.push(
         | 
| 13237 | 
            +
                          `\xB7 You're about to delete ${source_default.underline(
         | 
| 13238 | 
            +
                            statement.tableName
         | 
| 13239 | 
            +
                          )} table with ${count2} items`
         | 
| 13240 | 
            +
                        );
         | 
| 13241 | 
            +
                        tablesToRemove.push(statement.tableName);
         | 
| 13242 | 
            +
                        shouldAskForApprove = true;
         | 
| 13243 | 
            +
                      }
         | 
| 13244 | 
            +
                      const fromJsonStatement = fromJson([statement], "sqlite", "push");
         | 
| 13245 | 
            +
                      statementsToExecute.push(
         | 
| 13246 | 
            +
                        ...Array.isArray(fromJsonStatement) ? fromJsonStatement : [fromJsonStatement]
         | 
| 13247 | 
            +
                      );
         | 
| 13248 | 
            +
                    } else if (statement.type === "alter_table_drop_column") {
         | 
| 13249 | 
            +
                      const tableName = statement.tableName;
         | 
| 13250 | 
            +
                      const columnName = statement.columnName;
         | 
| 13251 | 
            +
                      const res = await connection.query(
         | 
| 13252 | 
            +
                        `select count(\`${tableName}\`.\`${columnName}\`) as count from \`${tableName}\``
         | 
| 13253 | 
            +
                      );
         | 
| 13254 | 
            +
                      const count2 = Number(res[0].count);
         | 
| 13255 | 
            +
                      if (count2 > 0) {
         | 
| 13256 | 
            +
                        infoToPrint.push(
         | 
| 13257 | 
            +
                          `\xB7 You're about to delete ${source_default.underline(
         | 
| 13258 | 
            +
                            columnName
         | 
| 13259 | 
            +
                          )} column in ${tableName} table with ${count2} items`
         | 
| 13260 | 
            +
                        );
         | 
| 13261 | 
            +
                        columnsToRemove.push(`${tableName}_${statement.columnName}`);
         | 
| 13262 | 
            +
                        shouldAskForApprove = true;
         | 
| 13263 | 
            +
                      }
         | 
| 13264 | 
            +
                      const fromJsonStatement = fromJson([statement], "sqlite", "push");
         | 
| 13265 | 
            +
                      statementsToExecute.push(
         | 
| 13266 | 
            +
                        ...Array.isArray(fromJsonStatement) ? fromJsonStatement : [fromJsonStatement]
         | 
| 13267 | 
            +
                      );
         | 
| 13268 | 
            +
                    } else if (statement.type === "sqlite_alter_table_add_column" && (statement.column.notNull && !statement.column.default)) {
         | 
| 13269 | 
            +
                      const tableName = statement.tableName;
         | 
| 13270 | 
            +
                      const columnName = statement.column.name;
         | 
| 13271 | 
            +
                      const res = await connection.query(
         | 
| 13272 | 
            +
                        `select count(*) as count from \`${tableName}\``
         | 
| 13273 | 
            +
                      );
         | 
| 13274 | 
            +
                      const count2 = Number(res[0].count);
         | 
| 13275 | 
            +
                      if (count2 > 0) {
         | 
| 13276 | 
            +
                        infoToPrint.push(
         | 
| 13277 | 
            +
                          `\xB7 You're about to add not-null ${source_default.underline(
         | 
| 13278 | 
            +
                            columnName
         | 
| 13279 | 
            +
                          )} column without default value, which contains ${count2} items`
         | 
| 13280 | 
            +
                        );
         | 
| 13281 | 
            +
                        tablesToTruncate.push(tableName);
         | 
| 13282 | 
            +
                        statementsToExecute.push(`delete from ${tableName};`);
         | 
| 13283 | 
            +
                        shouldAskForApprove = true;
         | 
| 13284 | 
            +
                      }
         | 
| 13285 | 
            +
                      const fromJsonStatement = fromJson([statement], "sqlite", "push");
         | 
| 13286 | 
            +
                      statementsToExecute.push(
         | 
| 13287 | 
            +
                        ...Array.isArray(fromJsonStatement) ? fromJsonStatement : [fromJsonStatement]
         | 
| 13288 | 
            +
                      );
         | 
| 13289 | 
            +
                    } else if (statement.type === "recreate_table") {
         | 
| 13290 | 
            +
                      const tableName = statement.tableName;
         | 
| 13291 | 
            +
                      const oldTableName = getOldTableName(tableName, meta);
         | 
| 13292 | 
            +
                      let dataLoss = false;
         | 
| 13293 | 
            +
                      const prevColumnNames = Object.keys(json1.tables[oldTableName].columns);
         | 
| 13294 | 
            +
                      const currentColumnNames = Object.keys(json2.tables[tableName].columns);
         | 
| 13295 | 
            +
                      const { removedColumns, addedColumns } = findAddedAndRemoved(
         | 
| 13296 | 
            +
                        prevColumnNames,
         | 
| 13297 | 
            +
                        currentColumnNames
         | 
| 13298 | 
            +
                      );
         | 
| 13299 | 
            +
                      if (removedColumns.length) {
         | 
| 13300 | 
            +
                        for (const removedColumn of removedColumns) {
         | 
| 13301 | 
            +
                          const res = await connection.query(
         | 
| 13302 | 
            +
                            `select count(\`${tableName}\`.\`${removedColumn}\`) as count from \`${tableName}\``
         | 
| 13303 | 
            +
                          );
         | 
| 13304 | 
            +
                          const count2 = Number(res[0].count);
         | 
| 13305 | 
            +
                          if (count2 > 0) {
         | 
| 13306 | 
            +
                            infoToPrint.push(
         | 
| 13307 | 
            +
                              `\xB7 You're about to delete ${source_default.underline(
         | 
| 13308 | 
            +
                                removedColumn
         | 
| 13309 | 
            +
                              )} column in ${tableName} table with ${count2} items`
         | 
| 13310 | 
            +
                            );
         | 
| 13311 | 
            +
                            columnsToRemove.push(removedColumn);
         | 
| 13312 | 
            +
                            shouldAskForApprove = true;
         | 
| 13313 | 
            +
                          }
         | 
| 13314 | 
            +
                        }
         | 
| 13315 | 
            +
                      }
         | 
| 13316 | 
            +
                      if (addedColumns.length) {
         | 
| 13317 | 
            +
                        for (const addedColumn of addedColumns) {
         | 
| 13318 | 
            +
                          const [res] = await connection.query(
         | 
| 13319 | 
            +
                            `select count(*) as count from \`${tableName}\``
         | 
| 13320 | 
            +
                          );
         | 
| 13321 | 
            +
                          const columnConf = json2.tables[tableName].columns[addedColumn];
         | 
| 13322 | 
            +
                          const count2 = Number(res.count);
         | 
| 13323 | 
            +
                          if (count2 > 0 && columnConf.notNull && !columnConf.default) {
         | 
| 13324 | 
            +
                            dataLoss = true;
         | 
| 13325 | 
            +
                            infoToPrint.push(
         | 
| 13326 | 
            +
                              `\xB7 You're about to add not-null ${source_default.underline(
         | 
| 13327 | 
            +
                                addedColumn
         | 
| 13328 | 
            +
                              )} column without default value to table, which contains ${count2} items`
         | 
| 13329 | 
            +
                            );
         | 
| 13330 | 
            +
                            shouldAskForApprove = true;
         | 
| 13331 | 
            +
                            tablesToTruncate.push(tableName);
         | 
| 13332 | 
            +
                            statementsToExecute.push(`DELETE FROM \`${tableName}\`;`);
         | 
| 13333 | 
            +
                          }
         | 
| 13334 | 
            +
                        }
         | 
| 13335 | 
            +
                      }
         | 
| 13336 | 
            +
                      const tablesReferencingCurrent = [];
         | 
| 13337 | 
            +
                      for (const table4 of Object.values(json2.tables)) {
         | 
| 13338 | 
            +
                        const tablesRefs = Object.values(json2.tables[table4.name].foreignKeys).filter((t) => SQLiteSquasher.unsquashPushFK(t).tableTo === tableName).map((it) => SQLiteSquasher.unsquashPushFK(it).tableFrom);
         | 
| 13339 | 
            +
                        tablesReferencingCurrent.push(...tablesRefs);
         | 
| 13340 | 
            +
                      }
         | 
| 13341 | 
            +
                      if (!tablesReferencingCurrent.length) {
         | 
| 13342 | 
            +
                        statementsToExecute.push(..._moveDataStatements(tableName, json2, dataLoss));
         | 
| 13343 | 
            +
                        continue;
         | 
| 13344 | 
            +
                      }
         | 
| 13345 | 
            +
                      const [{ foreign_keys: pragmaState }] = await connection.query(`PRAGMA foreign_keys;`);
         | 
| 13346 | 
            +
                      if (pragmaState) {
         | 
| 13347 | 
            +
                        statementsToExecute.push(`PRAGMA foreign_keys=OFF;`);
         | 
| 13348 | 
            +
                      }
         | 
| 13349 | 
            +
                      statementsToExecute.push(..._moveDataStatements(tableName, json2, dataLoss));
         | 
| 13350 | 
            +
                      if (pragmaState) {
         | 
| 13351 | 
            +
                        statementsToExecute.push(`PRAGMA foreign_keys=ON;`);
         | 
| 13352 | 
            +
                      }
         | 
| 13353 | 
            +
                    } else {
         | 
| 13354 | 
            +
                      const fromJsonStatement = fromJson([statement], "sqlite", "push");
         | 
| 13355 | 
            +
                      statementsToExecute.push(
         | 
| 13356 | 
            +
                        ...Array.isArray(fromJsonStatement) ? fromJsonStatement : [fromJsonStatement]
         | 
| 13357 | 
            +
                      );
         | 
| 13358 | 
            +
                    }
         | 
| 13359 | 
            +
                  }
         | 
| 13360 | 
            +
                  return {
         | 
| 13361 | 
            +
                    statementsToExecute,
         | 
| 13362 | 
            +
                    shouldAskForApprove,
         | 
| 13363 | 
            +
                    infoToPrint,
         | 
| 13364 | 
            +
                    columnsToRemove: [...new Set(columnsToRemove)],
         | 
| 13365 | 
            +
                    schemasToRemove: [...new Set(schemasToRemove)],
         | 
| 13366 | 
            +
                    tablesToTruncate: [...new Set(tablesToTruncate)],
         | 
| 13367 | 
            +
                    tablesToRemove: [...new Set(tablesToRemove)]
         | 
| 13368 | 
            +
                  };
         | 
| 13369 | 
            +
                };
         | 
| 13370 | 
            +
              }
         | 
| 13371 | 
            +
            });
         | 
| 13372 | 
            +
             | 
| 13232 13373 | 
             
            // src/jsonStatements.ts
         | 
| 13233 | 
            -
            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;
         | 
| 13374 | 
            +
            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;
         | 
| 13234 13375 | 
             
            var init_jsonStatements = __esm({
         | 
| 13235 13376 | 
             
              "src/jsonStatements.ts"() {
         | 
| 13236 13377 | 
             
                "use strict";
         | 
| 13237 13378 | 
             
                init_source();
         | 
| 13379 | 
            +
                init_sqlitePushUtils();
         | 
| 13238 13380 | 
             
                init_views();
         | 
| 13239 13381 | 
             
                init_mysqlSchema();
         | 
| 13240 13382 | 
             
                init_pgSchema();
         | 
| @@ -14018,6 +14160,49 @@ var init_jsonStatements = __esm({ | |
| 14018 14160 | 
             
                    const columnPk = json2.tables[tableName].columns[columnName].primaryKey;
         | 
| 14019 14161 | 
             
                    const columnGenerated = json2.tables[tableName].columns[columnName].generated;
         | 
| 14020 14162 | 
             
                    const compositePk = json2.tables[tableName].compositePrimaryKeys[`${tableName}_${columnName}`];
         | 
| 14163 | 
            +
                    if (column4.autoincrement?.type === "added") {
         | 
| 14164 | 
            +
                      statements.push({
         | 
| 14165 | 
            +
                        type: "alter_table_alter_column_set_autoincrement",
         | 
| 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 === "changed") {
         | 
| 14178 | 
            +
                      const type = column4.autoincrement.new ? "alter_table_alter_column_set_autoincrement" : "alter_table_alter_column_drop_autoincrement";
         | 
| 14179 | 
            +
                      statements.push({
         | 
| 14180 | 
            +
                        type,
         | 
| 14181 | 
            +
                        tableName,
         | 
| 14182 | 
            +
                        columnName,
         | 
| 14183 | 
            +
                        schema: schema4,
         | 
| 14184 | 
            +
                        newDataType: columnType,
         | 
| 14185 | 
            +
                        columnDefault,
         | 
| 14186 | 
            +
                        columnOnUpdate,
         | 
| 14187 | 
            +
                        columnNotNull,
         | 
| 14188 | 
            +
                        columnAutoIncrement,
         | 
| 14189 | 
            +
                        columnPk
         | 
| 14190 | 
            +
                      });
         | 
| 14191 | 
            +
                    }
         | 
| 14192 | 
            +
                    if (column4.autoincrement?.type === "deleted") {
         | 
| 14193 | 
            +
                      statements.push({
         | 
| 14194 | 
            +
                        type: "alter_table_alter_column_drop_autoincrement",
         | 
| 14195 | 
            +
                        tableName,
         | 
| 14196 | 
            +
                        columnName,
         | 
| 14197 | 
            +
                        schema: schema4,
         | 
| 14198 | 
            +
                        newDataType: columnType,
         | 
| 14199 | 
            +
                        columnDefault,
         | 
| 14200 | 
            +
                        columnOnUpdate,
         | 
| 14201 | 
            +
                        columnNotNull,
         | 
| 14202 | 
            +
                        columnAutoIncrement,
         | 
| 14203 | 
            +
                        columnPk
         | 
| 14204 | 
            +
                      });
         | 
| 14205 | 
            +
                    }
         | 
| 14021 14206 | 
             
                    if (typeof column4.name !== "string") {
         | 
| 14022 14207 | 
             
                      statements.push({
         | 
| 14023 14208 | 
             
                        type: "alter_table_rename_column",
         | 
| @@ -14281,6 +14466,37 @@ var init_jsonStatements = __esm({ | |
| 14281 14466 | 
             
                    };
         | 
| 14282 14467 | 
             
                  });
         | 
| 14283 14468 | 
             
                };
         | 
| 14469 | 
            +
                prepareLibSQLCreateReferencesJson = (tableName, schema4, foreignKeys, json2, action) => {
         | 
| 14470 | 
            +
                  return Object.values(foreignKeys).map((fkData) => {
         | 
| 14471 | 
            +
                    const { columnsFrom, tableFrom, columnsTo } = action === "push" ? SQLiteSquasher.unsquashPushFK(fkData) : SQLiteSquasher.unsquashFK(fkData);
         | 
| 14472 | 
            +
                    let isMulticolumn = false;
         | 
| 14473 | 
            +
                    if (columnsFrom.length > 1 || columnsTo.length > 1) {
         | 
| 14474 | 
            +
                      isMulticolumn = true;
         | 
| 14475 | 
            +
                      return {
         | 
| 14476 | 
            +
                        type: "create_reference",
         | 
| 14477 | 
            +
                        tableName,
         | 
| 14478 | 
            +
                        data: fkData,
         | 
| 14479 | 
            +
                        schema: schema4,
         | 
| 14480 | 
            +
                        isMulticolumn
         | 
| 14481 | 
            +
                      };
         | 
| 14482 | 
            +
                    }
         | 
| 14483 | 
            +
                    const columnFrom = columnsFrom[0];
         | 
| 14484 | 
            +
                    const {
         | 
| 14485 | 
            +
                      notNull: columnNotNull,
         | 
| 14486 | 
            +
                      default: columnDefault,
         | 
| 14487 | 
            +
                      type: columnType
         | 
| 14488 | 
            +
                    } = json2.tables[tableFrom].columns[columnFrom];
         | 
| 14489 | 
            +
                    return {
         | 
| 14490 | 
            +
                      type: "create_reference",
         | 
| 14491 | 
            +
                      tableName,
         | 
| 14492 | 
            +
                      data: fkData,
         | 
| 14493 | 
            +
                      schema: schema4,
         | 
| 14494 | 
            +
                      columnNotNull,
         | 
| 14495 | 
            +
                      columnDefault,
         | 
| 14496 | 
            +
                      columnType
         | 
| 14497 | 
            +
                    };
         | 
| 14498 | 
            +
                  });
         | 
| 14499 | 
            +
                };
         | 
| 14284 14500 | 
             
                prepareDropReferencesJson = (tableName, schema4, foreignKeys) => {
         | 
| 14285 14501 | 
             
                  return Object.values(foreignKeys).map((fkData) => {
         | 
| 14286 14502 | 
             
                    return {
         | 
| @@ -14291,6 +14507,53 @@ var init_jsonStatements = __esm({ | |
| 14291 14507 | 
             
                    };
         | 
| 14292 14508 | 
             
                  });
         | 
| 14293 14509 | 
             
                };
         | 
| 14510 | 
            +
                prepareLibSQLDropReferencesJson = (tableName, schema4, foreignKeys, json2, meta, action) => {
         | 
| 14511 | 
            +
                  const statements = Object.values(foreignKeys).map((fkData) => {
         | 
| 14512 | 
            +
                    const { columnsFrom, tableFrom, columnsTo, name: name2, tableTo, onDelete, onUpdate } = action === "push" ? SQLiteSquasher.unsquashPushFK(fkData) : SQLiteSquasher.unsquashFK(fkData);
         | 
| 14513 | 
            +
                    const keys = Object.keys(json2.tables[tableName].columns);
         | 
| 14514 | 
            +
                    const filtered = columnsFrom.filter((it) => keys.includes(it));
         | 
| 14515 | 
            +
                    const fullDrop = filtered.length === 0;
         | 
| 14516 | 
            +
                    if (fullDrop) return;
         | 
| 14517 | 
            +
                    let isMulticolumn = false;
         | 
| 14518 | 
            +
                    if (columnsFrom.length > 1 || columnsTo.length > 1) {
         | 
| 14519 | 
            +
                      isMulticolumn = true;
         | 
| 14520 | 
            +
                      return {
         | 
| 14521 | 
            +
                        type: "delete_reference",
         | 
| 14522 | 
            +
                        tableName,
         | 
| 14523 | 
            +
                        data: fkData,
         | 
| 14524 | 
            +
                        schema: schema4,
         | 
| 14525 | 
            +
                        isMulticolumn
         | 
| 14526 | 
            +
                      };
         | 
| 14527 | 
            +
                    }
         | 
| 14528 | 
            +
                    const columnFrom = columnsFrom[0];
         | 
| 14529 | 
            +
                    const newTableName = getNewTableName(tableFrom, meta);
         | 
| 14530 | 
            +
                    const {
         | 
| 14531 | 
            +
                      notNull: columnNotNull,
         | 
| 14532 | 
            +
                      default: columnDefault,
         | 
| 14533 | 
            +
                      type: columnType
         | 
| 14534 | 
            +
                    } = json2.tables[newTableName].columns[columnFrom];
         | 
| 14535 | 
            +
                    const fkToSquash = {
         | 
| 14536 | 
            +
                      columnsFrom,
         | 
| 14537 | 
            +
                      columnsTo,
         | 
| 14538 | 
            +
                      name: name2,
         | 
| 14539 | 
            +
                      tableFrom: newTableName,
         | 
| 14540 | 
            +
                      tableTo,
         | 
| 14541 | 
            +
                      onDelete,
         | 
| 14542 | 
            +
                      onUpdate
         | 
| 14543 | 
            +
                    };
         | 
| 14544 | 
            +
                    const foreignKey = action === "push" ? SQLiteSquasher.squashPushFK(fkToSquash) : SQLiteSquasher.squashFK(fkToSquash);
         | 
| 14545 | 
            +
                    return {
         | 
| 14546 | 
            +
                      type: "delete_reference",
         | 
| 14547 | 
            +
                      tableName,
         | 
| 14548 | 
            +
                      data: foreignKey,
         | 
| 14549 | 
            +
                      schema: schema4,
         | 
| 14550 | 
            +
                      columnNotNull,
         | 
| 14551 | 
            +
                      columnDefault,
         | 
| 14552 | 
            +
                      columnType
         | 
| 14553 | 
            +
                    };
         | 
| 14554 | 
            +
                  });
         | 
| 14555 | 
            +
                  return statements.filter((it) => it);
         | 
| 14556 | 
            +
                };
         | 
| 14294 14557 | 
             
                prepareAlterReferencesJson = (tableName, schema4, foreignKeys) => {
         | 
| 14295 14558 | 
             
                  const stmts = [];
         | 
| 14296 14559 | 
             
                  Object.values(foreignKeys).map((val) => {
         | 
| @@ -14444,10 +14707,292 @@ var init_jsonStatements = __esm({ | |
| 14444 14707 | 
             
              }
         | 
| 14445 14708 | 
             
            });
         | 
| 14446 14709 |  | 
| 14710 | 
            +
            // src/statementCombiner.ts
         | 
| 14711 | 
            +
            var prepareLibSQLRecreateTable, prepareSQLiteRecreateTable, libSQLCombineStatements, sqliteCombineStatements;
         | 
| 14712 | 
            +
            var init_statementCombiner = __esm({
         | 
| 14713 | 
            +
              "src/statementCombiner.ts"() {
         | 
| 14714 | 
            +
                "use strict";
         | 
| 14715 | 
            +
                init_jsonStatements();
         | 
| 14716 | 
            +
                init_sqliteSchema();
         | 
| 14717 | 
            +
                prepareLibSQLRecreateTable = (table4, action) => {
         | 
| 14718 | 
            +
                  const { name: name2, columns, uniqueConstraints, indexes } = table4;
         | 
| 14719 | 
            +
                  const composites = Object.values(table4.compositePrimaryKeys).map(
         | 
| 14720 | 
            +
                    (it) => SQLiteSquasher.unsquashPK(it)
         | 
| 14721 | 
            +
                  );
         | 
| 14722 | 
            +
                  const references2 = Object.values(table4.foreignKeys);
         | 
| 14723 | 
            +
                  const fks = references2.map(
         | 
| 14724 | 
            +
                    (it) => action === "push" ? SQLiteSquasher.unsquashPushFK(it) : SQLiteSquasher.unsquashFK(it)
         | 
| 14725 | 
            +
                  );
         | 
| 14726 | 
            +
                  const statements = [
         | 
| 14727 | 
            +
                    {
         | 
| 14728 | 
            +
                      type: "recreate_table",
         | 
| 14729 | 
            +
                      tableName: name2,
         | 
| 14730 | 
            +
                      columns: Object.values(columns),
         | 
| 14731 | 
            +
                      compositePKs: composites,
         | 
| 14732 | 
            +
                      referenceData: fks,
         | 
| 14733 | 
            +
                      uniqueConstraints: Object.values(uniqueConstraints)
         | 
| 14734 | 
            +
                    }
         | 
| 14735 | 
            +
                  ];
         | 
| 14736 | 
            +
                  if (Object.keys(indexes).length) {
         | 
| 14737 | 
            +
                    statements.push(...prepareCreateIndexesJson(name2, "", indexes));
         | 
| 14738 | 
            +
                  }
         | 
| 14739 | 
            +
                  return statements;
         | 
| 14740 | 
            +
                };
         | 
| 14741 | 
            +
                prepareSQLiteRecreateTable = (table4, action) => {
         | 
| 14742 | 
            +
                  const { name: name2, columns, uniqueConstraints, indexes } = table4;
         | 
| 14743 | 
            +
                  const composites = Object.values(table4.compositePrimaryKeys).map(
         | 
| 14744 | 
            +
                    (it) => SQLiteSquasher.unsquashPK(it)
         | 
| 14745 | 
            +
                  );
         | 
| 14746 | 
            +
                  const references2 = Object.values(table4.foreignKeys);
         | 
| 14747 | 
            +
                  const fks = references2.map(
         | 
| 14748 | 
            +
                    (it) => action === "push" ? SQLiteSquasher.unsquashPushFK(it) : SQLiteSquasher.unsquashFK(it)
         | 
| 14749 | 
            +
                  );
         | 
| 14750 | 
            +
                  const statements = [
         | 
| 14751 | 
            +
                    {
         | 
| 14752 | 
            +
                      type: "recreate_table",
         | 
| 14753 | 
            +
                      tableName: name2,
         | 
| 14754 | 
            +
                      columns: Object.values(columns),
         | 
| 14755 | 
            +
                      compositePKs: composites,
         | 
| 14756 | 
            +
                      referenceData: fks,
         | 
| 14757 | 
            +
                      uniqueConstraints: Object.values(uniqueConstraints)
         | 
| 14758 | 
            +
                    }
         | 
| 14759 | 
            +
                  ];
         | 
| 14760 | 
            +
                  if (Object.keys(indexes).length) {
         | 
| 14761 | 
            +
                    statements.push(...prepareCreateIndexesJson(name2, "", indexes));
         | 
| 14762 | 
            +
                  }
         | 
| 14763 | 
            +
                  return statements;
         | 
| 14764 | 
            +
                };
         | 
| 14765 | 
            +
                libSQLCombineStatements = (statements, json2, action) => {
         | 
| 14766 | 
            +
                  const newStatements = {};
         | 
| 14767 | 
            +
                  for (const statement of statements) {
         | 
| 14768 | 
            +
                    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") {
         | 
| 14769 | 
            +
                      const tableName2 = statement.tableName;
         | 
| 14770 | 
            +
                      const statementsForTable2 = newStatements[tableName2];
         | 
| 14771 | 
            +
                      if (!statementsForTable2) {
         | 
| 14772 | 
            +
                        newStatements[tableName2] = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         | 
| 14773 | 
            +
                        continue;
         | 
| 14774 | 
            +
                      }
         | 
| 14775 | 
            +
                      if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
         | 
| 14776 | 
            +
                        const wasRename = statementsForTable2.some(({ type }) => type === "rename_table");
         | 
| 14777 | 
            +
                        const preparedStatements = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         | 
| 14778 | 
            +
                        if (wasRename) {
         | 
| 14779 | 
            +
                          newStatements[tableName2].push(...preparedStatements);
         | 
| 14780 | 
            +
                        } else {
         | 
| 14781 | 
            +
                          newStatements[tableName2] = preparedStatements;
         | 
| 14782 | 
            +
                        }
         | 
| 14783 | 
            +
                        continue;
         | 
| 14784 | 
            +
                      }
         | 
| 14785 | 
            +
                      continue;
         | 
| 14786 | 
            +
                    }
         | 
| 14787 | 
            +
                    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") {
         | 
| 14788 | 
            +
                      const { tableName: tableName2, columnName, columnPk } = statement;
         | 
| 14789 | 
            +
                      const columnIsPartOfForeignKey = Object.values(
         | 
| 14790 | 
            +
                        json2.tables[tableName2].foreignKeys
         | 
| 14791 | 
            +
                      ).some((it) => {
         | 
| 14792 | 
            +
                        const unsquashFk = action === "push" ? SQLiteSquasher.unsquashPushFK(it) : SQLiteSquasher.unsquashFK(it);
         | 
| 14793 | 
            +
                        return unsquashFk.columnsFrom.includes(columnName);
         | 
| 14794 | 
            +
                      });
         | 
| 14795 | 
            +
                      const statementsForTable2 = newStatements[tableName2];
         | 
| 14796 | 
            +
                      if (!statementsForTable2 && (columnIsPartOfForeignKey || columnPk)) {
         | 
| 14797 | 
            +
                        newStatements[tableName2] = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         | 
| 14798 | 
            +
                        continue;
         | 
| 14799 | 
            +
                      }
         | 
| 14800 | 
            +
                      if (statementsForTable2 && (columnIsPartOfForeignKey || columnPk)) {
         | 
| 14801 | 
            +
                        if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
         | 
| 14802 | 
            +
                          const wasRename = statementsForTable2.some(({ type }) => type === "rename_table");
         | 
| 14803 | 
            +
                          const preparedStatements = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         | 
| 14804 | 
            +
                          if (wasRename) {
         | 
| 14805 | 
            +
                            newStatements[tableName2].push(...preparedStatements);
         | 
| 14806 | 
            +
                          } else {
         | 
| 14807 | 
            +
                            newStatements[tableName2] = preparedStatements;
         | 
| 14808 | 
            +
                          }
         | 
| 14809 | 
            +
                        }
         | 
| 14810 | 
            +
                        continue;
         | 
| 14811 | 
            +
                      }
         | 
| 14812 | 
            +
                      if (statementsForTable2 && !(columnIsPartOfForeignKey || columnPk)) {
         | 
| 14813 | 
            +
                        if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
         | 
| 14814 | 
            +
                          newStatements[tableName2].push(statement);
         | 
| 14815 | 
            +
                        }
         | 
| 14816 | 
            +
                        continue;
         | 
| 14817 | 
            +
                      }
         | 
| 14818 | 
            +
                      newStatements[tableName2] = [statement];
         | 
| 14819 | 
            +
                      continue;
         | 
| 14820 | 
            +
                    }
         | 
| 14821 | 
            +
                    if (statement.type === "create_reference") {
         | 
| 14822 | 
            +
                      const tableName2 = statement.tableName;
         | 
| 14823 | 
            +
                      const data = action === "push" ? SQLiteSquasher.unsquashPushFK(statement.data) : SQLiteSquasher.unsquashFK(statement.data);
         | 
| 14824 | 
            +
                      const statementsForTable2 = newStatements[tableName2];
         | 
| 14825 | 
            +
                      if (!statementsForTable2) {
         | 
| 14826 | 
            +
                        newStatements[tableName2] = statement.isMulticolumn ? prepareLibSQLRecreateTable(json2.tables[tableName2], action) : [statement];
         | 
| 14827 | 
            +
                        continue;
         | 
| 14828 | 
            +
                      }
         | 
| 14829 | 
            +
                      if (!statement.isMulticolumn && statementsForTable2.some(
         | 
| 14830 | 
            +
                        (st) => st.type === "sqlite_alter_table_add_column" && st.column.name === data.columnsFrom[0]
         | 
| 14831 | 
            +
                      )) {
         | 
| 14832 | 
            +
                        continue;
         | 
| 14833 | 
            +
                      }
         | 
| 14834 | 
            +
                      if (statement.isMulticolumn) {
         | 
| 14835 | 
            +
                        if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
         | 
| 14836 | 
            +
                          const wasRename = statementsForTable2.some(({ type }) => type === "rename_table");
         | 
| 14837 | 
            +
                          const preparedStatements = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         | 
| 14838 | 
            +
                          if (wasRename) {
         | 
| 14839 | 
            +
                            newStatements[tableName2].push(...preparedStatements);
         | 
| 14840 | 
            +
                          } else {
         | 
| 14841 | 
            +
                            newStatements[tableName2] = preparedStatements;
         | 
| 14842 | 
            +
                          }
         | 
| 14843 | 
            +
                          continue;
         | 
| 14844 | 
            +
                        }
         | 
| 14845 | 
            +
                        continue;
         | 
| 14846 | 
            +
                      }
         | 
| 14847 | 
            +
                      if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
         | 
| 14848 | 
            +
                        newStatements[tableName2].push(statement);
         | 
| 14849 | 
            +
                      }
         | 
| 14850 | 
            +
                      continue;
         | 
| 14851 | 
            +
                    }
         | 
| 14852 | 
            +
                    if (statement.type === "delete_reference") {
         | 
| 14853 | 
            +
                      const tableName2 = statement.tableName;
         | 
| 14854 | 
            +
                      const statementsForTable2 = newStatements[tableName2];
         | 
| 14855 | 
            +
                      if (!statementsForTable2) {
         | 
| 14856 | 
            +
                        newStatements[tableName2] = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         | 
| 14857 | 
            +
                        continue;
         | 
| 14858 | 
            +
                      }
         | 
| 14859 | 
            +
                      if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
         | 
| 14860 | 
            +
                        const wasRename = statementsForTable2.some(({ type }) => type === "rename_table");
         | 
| 14861 | 
            +
                        const preparedStatements = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         | 
| 14862 | 
            +
                        if (wasRename) {
         | 
| 14863 | 
            +
                          newStatements[tableName2].push(...preparedStatements);
         | 
| 14864 | 
            +
                        } else {
         | 
| 14865 | 
            +
                          newStatements[tableName2] = preparedStatements;
         | 
| 14866 | 
            +
                        }
         | 
| 14867 | 
            +
                        continue;
         | 
| 14868 | 
            +
                      }
         | 
| 14869 | 
            +
                      continue;
         | 
| 14870 | 
            +
                    }
         | 
| 14871 | 
            +
                    if (statement.type === "sqlite_alter_table_add_column" && statement.column.primaryKey) {
         | 
| 14872 | 
            +
                      const tableName2 = statement.tableName;
         | 
| 14873 | 
            +
                      const statementsForTable2 = newStatements[tableName2];
         | 
| 14874 | 
            +
                      if (!statementsForTable2) {
         | 
| 14875 | 
            +
                        newStatements[tableName2] = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         | 
| 14876 | 
            +
                        continue;
         | 
| 14877 | 
            +
                      }
         | 
| 14878 | 
            +
                      if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
         | 
| 14879 | 
            +
                        const wasRename = statementsForTable2.some(({ type }) => type === "rename_table");
         | 
| 14880 | 
            +
                        const preparedStatements = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         | 
| 14881 | 
            +
                        if (wasRename) {
         | 
| 14882 | 
            +
                          newStatements[tableName2].push(...preparedStatements);
         | 
| 14883 | 
            +
                        } else {
         | 
| 14884 | 
            +
                          newStatements[tableName2] = preparedStatements;
         | 
| 14885 | 
            +
                        }
         | 
| 14886 | 
            +
                        continue;
         | 
| 14887 | 
            +
                      }
         | 
| 14888 | 
            +
                      continue;
         | 
| 14889 | 
            +
                    }
         | 
| 14890 | 
            +
                    const tableName = statement.type === "rename_table" ? statement.tableNameTo : statement.tableName;
         | 
| 14891 | 
            +
                    const statementsForTable = newStatements[tableName];
         | 
| 14892 | 
            +
                    if (!statementsForTable) {
         | 
| 14893 | 
            +
                      newStatements[tableName] = [statement];
         | 
| 14894 | 
            +
                      continue;
         | 
| 14895 | 
            +
                    }
         | 
| 14896 | 
            +
                    if (!statementsForTable.some(({ type }) => type === "recreate_table")) {
         | 
| 14897 | 
            +
                      newStatements[tableName].push(statement);
         | 
| 14898 | 
            +
                    }
         | 
| 14899 | 
            +
                  }
         | 
| 14900 | 
            +
                  const combinedStatements = Object.values(newStatements).flat();
         | 
| 14901 | 
            +
                  const renamedTables = combinedStatements.filter((it) => it.type === "rename_table");
         | 
| 14902 | 
            +
                  const renamedColumns = combinedStatements.filter((it) => it.type === "alter_table_rename_column");
         | 
| 14903 | 
            +
                  const rest = combinedStatements.filter((it) => it.type !== "rename_table" && it.type !== "alter_table_rename_column");
         | 
| 14904 | 
            +
                  return [...renamedTables, ...renamedColumns, ...rest];
         | 
| 14905 | 
            +
                };
         | 
| 14906 | 
            +
                sqliteCombineStatements = (statements, json2, action) => {
         | 
| 14907 | 
            +
                  const newStatements = {};
         | 
| 14908 | 
            +
                  for (const statement of statements) {
         | 
| 14909 | 
            +
                    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") {
         | 
| 14910 | 
            +
                      const tableName2 = statement.tableName;
         | 
| 14911 | 
            +
                      const statementsForTable2 = newStatements[tableName2];
         | 
| 14912 | 
            +
                      if (!statementsForTable2) {
         | 
| 14913 | 
            +
                        newStatements[tableName2] = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         | 
| 14914 | 
            +
                        continue;
         | 
| 14915 | 
            +
                      }
         | 
| 14916 | 
            +
                      if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
         | 
| 14917 | 
            +
                        const wasRename = statementsForTable2.some(({ type }) => type === "rename_table");
         | 
| 14918 | 
            +
                        const preparedStatements = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         | 
| 14919 | 
            +
                        if (wasRename) {
         | 
| 14920 | 
            +
                          newStatements[tableName2].push(...preparedStatements);
         | 
| 14921 | 
            +
                        } else {
         | 
| 14922 | 
            +
                          newStatements[tableName2] = preparedStatements;
         | 
| 14923 | 
            +
                        }
         | 
| 14924 | 
            +
                        continue;
         | 
| 14925 | 
            +
                      }
         | 
| 14926 | 
            +
                      continue;
         | 
| 14927 | 
            +
                    }
         | 
| 14928 | 
            +
                    if (statement.type === "sqlite_alter_table_add_column" && statement.column.primaryKey) {
         | 
| 14929 | 
            +
                      const tableName2 = statement.tableName;
         | 
| 14930 | 
            +
                      const statementsForTable2 = newStatements[tableName2];
         | 
| 14931 | 
            +
                      if (!statementsForTable2) {
         | 
| 14932 | 
            +
                        newStatements[tableName2] = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         | 
| 14933 | 
            +
                        continue;
         | 
| 14934 | 
            +
                      }
         | 
| 14935 | 
            +
                      if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
         | 
| 14936 | 
            +
                        const wasRename = statementsForTable2.some(({ type }) => type === "rename_table");
         | 
| 14937 | 
            +
                        const preparedStatements = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         | 
| 14938 | 
            +
                        if (wasRename) {
         | 
| 14939 | 
            +
                          newStatements[tableName2].push(...preparedStatements);
         | 
| 14940 | 
            +
                        } else {
         | 
| 14941 | 
            +
                          newStatements[tableName2] = preparedStatements;
         | 
| 14942 | 
            +
                        }
         | 
| 14943 | 
            +
                        continue;
         | 
| 14944 | 
            +
                      }
         | 
| 14945 | 
            +
                      continue;
         | 
| 14946 | 
            +
                    }
         | 
| 14947 | 
            +
                    if (statement.type === "create_reference") {
         | 
| 14948 | 
            +
                      const tableName2 = statement.tableName;
         | 
| 14949 | 
            +
                      const data = action === "push" ? SQLiteSquasher.unsquashPushFK(statement.data) : SQLiteSquasher.unsquashFK(statement.data);
         | 
| 14950 | 
            +
                      const statementsForTable2 = newStatements[tableName2];
         | 
| 14951 | 
            +
                      if (!statementsForTable2) {
         | 
| 14952 | 
            +
                        newStatements[tableName2] = prepareSQLiteRecreateTable(json2.tables[tableName2], action);
         | 
| 14953 | 
            +
                        continue;
         | 
| 14954 | 
            +
                      }
         | 
| 14955 | 
            +
                      if (data.columnsFrom.length === 1 && statementsForTable2.some(
         | 
| 14956 | 
            +
                        (st) => st.type === "sqlite_alter_table_add_column" && st.column.name === data.columnsFrom[0]
         | 
| 14957 | 
            +
                      )) {
         | 
| 14958 | 
            +
                        continue;
         | 
| 14959 | 
            +
                      }
         | 
| 14960 | 
            +
                      if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
         | 
| 14961 | 
            +
                        const wasRename = statementsForTable2.some(({ type }) => type === "rename_table");
         | 
| 14962 | 
            +
                        const preparedStatements = prepareLibSQLRecreateTable(json2.tables[tableName2], action);
         | 
| 14963 | 
            +
                        if (wasRename) {
         | 
| 14964 | 
            +
                          newStatements[tableName2].push(...preparedStatements);
         | 
| 14965 | 
            +
                        } else {
         | 
| 14966 | 
            +
                          newStatements[tableName2] = preparedStatements;
         | 
| 14967 | 
            +
                        }
         | 
| 14968 | 
            +
                        continue;
         | 
| 14969 | 
            +
                      }
         | 
| 14970 | 
            +
                      continue;
         | 
| 14971 | 
            +
                    }
         | 
| 14972 | 
            +
                    const tableName = statement.type === "rename_table" ? statement.tableNameTo : statement.tableName;
         | 
| 14973 | 
            +
                    const statementsForTable = newStatements[tableName];
         | 
| 14974 | 
            +
                    if (!statementsForTable) {
         | 
| 14975 | 
            +
                      newStatements[tableName] = [statement];
         | 
| 14976 | 
            +
                      continue;
         | 
| 14977 | 
            +
                    }
         | 
| 14978 | 
            +
                    if (!statementsForTable.some(({ type }) => type === "recreate_table")) {
         | 
| 14979 | 
            +
                      newStatements[tableName].push(statement);
         | 
| 14980 | 
            +
                    }
         | 
| 14981 | 
            +
                  }
         | 
| 14982 | 
            +
                  const combinedStatements = Object.values(newStatements).flat();
         | 
| 14983 | 
            +
                  const renamedTables = combinedStatements.filter((it) => it.type === "rename_table");
         | 
| 14984 | 
            +
                  const renamedColumns = combinedStatements.filter((it) => it.type === "alter_table_rename_column");
         | 
| 14985 | 
            +
                  const rest = combinedStatements.filter((it) => it.type !== "rename_table" && it.type !== "alter_table_rename_column");
         | 
| 14986 | 
            +
                  return [...renamedTables, ...renamedColumns, ...rest];
         | 
| 14987 | 
            +
                };
         | 
| 14988 | 
            +
              }
         | 
| 14989 | 
            +
            });
         | 
| 14990 | 
            +
             | 
| 14447 14991 | 
             
            // src/snapshotsDiffer.ts
         | 
| 14448 14992 | 
             
            var snapshotsDiffer_exports = {};
         | 
| 14449 14993 | 
             
            __export(snapshotsDiffer_exports, {
         | 
| 14450 14994 | 
             
              alteredTableScheme: () => alteredTableScheme,
         | 
| 14995 | 
            +
              applyLibSQLSnapshotsDiff: () => applyLibSQLSnapshotsDiff,
         | 
| 14451 14996 | 
             
              applyMysqlSnapshotsDiff: () => applyMysqlSnapshotsDiff,
         | 
| 14452 14997 | 
             
              applyPgSnapshotsDiff: () => applyPgSnapshotsDiff,
         | 
| 14453 14998 | 
             
              applySqliteSnapshotsDiff: () => applySqliteSnapshotsDiff,
         | 
| @@ -14457,7 +15002,7 @@ __export(snapshotsDiffer_exports, { | |
| 14457 15002 | 
             
              makePatched: () => makePatched,
         | 
| 14458 15003 | 
             
              makeSelfOrPatched: () => makeSelfOrPatched
         | 
| 14459 15004 | 
             
            });
         | 
| 14460 | 
            -
            var makeChanged, makeSelfOrChanged, makePatched, makeSelfOrPatched, columnSchema, alteredColumnSchema, enumSchema2, changedEnumSchema, tableScheme, alteredTableScheme, diffResultScheme, diffResultSchemeMysql, diffResultSchemeSQLite, schemaChangeFor, nameChangeFor, nameSchemaChangeFor, columnChangeFor, applyPgSnapshotsDiff, applyMysqlSnapshotsDiff, applySqliteSnapshotsDiff;
         | 
| 15005 | 
            +
            var makeChanged, makeSelfOrChanged, makePatched, makeSelfOrPatched, columnSchema, alteredColumnSchema, enumSchema2, changedEnumSchema, tableScheme, alteredTableScheme, diffResultScheme, diffResultSchemeMysql, diffResultSchemeSQLite, schemaChangeFor, nameChangeFor, nameSchemaChangeFor, columnChangeFor, applyPgSnapshotsDiff, applyMysqlSnapshotsDiff, applySqliteSnapshotsDiff, applyLibSQLSnapshotsDiff;
         | 
| 14461 15006 | 
             
            var init_snapshotsDiffer = __esm({
         | 
| 14462 15007 | 
             
              "src/snapshotsDiffer.ts"() {
         | 
| 14463 15008 | 
             
                "use strict";
         | 
| @@ -14469,6 +15014,7 @@ var init_snapshotsDiffer = __esm({ | |
| 14469 15014 | 
             
                init_mysqlSchema();
         | 
| 14470 15015 | 
             
                init_pgSchema();
         | 
| 14471 15016 | 
             
                init_sqliteSchema();
         | 
| 15017 | 
            +
                init_statementCombiner();
         | 
| 14472 15018 | 
             
                init_utils();
         | 
| 14473 15019 | 
             
                makeChanged = (schema4) => {
         | 
| 14474 15020 | 
             
                  return objectType({
         | 
| @@ -15817,7 +16363,8 @@ var init_snapshotsDiffer = __esm({ | |
| 15817 16363 | 
             
                  jsonStatements.push(...jsonDropColumnsStatemets);
         | 
| 15818 16364 | 
             
                  jsonStatements.push(...jsonAlteredCompositePKs);
         | 
| 15819 16365 | 
             
                  jsonStatements.push(...jsonAlteredUniqueConstraints);
         | 
| 15820 | 
            -
                  const  | 
| 16366 | 
            +
                  const combinedJsonStatements = sqliteCombineStatements(jsonStatements, json2, action);
         | 
| 16367 | 
            +
                  const sqlStatements = fromJson(combinedJsonStatements, "sqlite");
         | 
| 15821 16368 | 
             
                  const uniqueSqlStatements = [];
         | 
| 15822 16369 | 
             
                  sqlStatements.forEach((ss) => {
         | 
| 15823 16370 | 
             
                    if (!uniqueSqlStatements.includes(ss)) {
         | 
| @@ -15829,7 +16376,297 @@ var init_snapshotsDiffer = __esm({ | |
| 15829 16376 | 
             
                  });
         | 
| 15830 16377 | 
             
                  const _meta = prepareMigrationMeta([], rTables, rColumns);
         | 
| 15831 16378 | 
             
                  return {
         | 
| 15832 | 
            -
                    statements:  | 
| 16379 | 
            +
                    statements: combinedJsonStatements,
         | 
| 16380 | 
            +
                    sqlStatements: uniqueSqlStatements,
         | 
| 16381 | 
            +
                    _meta
         | 
| 16382 | 
            +
                  };
         | 
| 16383 | 
            +
                };
         | 
| 16384 | 
            +
                applyLibSQLSnapshotsDiff = async (json1, json2, tablesResolver2, columnsResolver2, prevFull, curFull, action) => {
         | 
| 16385 | 
            +
                  const tablesDiff = diffSchemasOrTables(json1.tables, json2.tables);
         | 
| 16386 | 
            +
                  const {
         | 
| 16387 | 
            +
                    created: createdTables,
         | 
| 16388 | 
            +
                    deleted: deletedTables,
         | 
| 16389 | 
            +
                    renamed: renamedTables
         | 
| 16390 | 
            +
                  } = await tablesResolver2({
         | 
| 16391 | 
            +
                    created: tablesDiff.added,
         | 
| 16392 | 
            +
                    deleted: tablesDiff.deleted
         | 
| 16393 | 
            +
                  });
         | 
| 16394 | 
            +
                  const tablesPatchedSnap1 = copy(json1);
         | 
| 16395 | 
            +
                  tablesPatchedSnap1.tables = mapEntries(tablesPatchedSnap1.tables, (_2, it) => {
         | 
| 16396 | 
            +
                    const { name: name2 } = nameChangeFor(it, renamedTables);
         | 
| 16397 | 
            +
                    it.name = name2;
         | 
| 16398 | 
            +
                    return [name2, it];
         | 
| 16399 | 
            +
                  });
         | 
| 16400 | 
            +
                  const res = diffColumns(tablesPatchedSnap1.tables, json2.tables);
         | 
| 16401 | 
            +
                  const columnRenames = [];
         | 
| 16402 | 
            +
                  const columnCreates = [];
         | 
| 16403 | 
            +
                  const columnDeletes = [];
         | 
| 16404 | 
            +
                  for (let entry of Object.values(res)) {
         | 
| 16405 | 
            +
                    const { renamed, created, deleted } = await columnsResolver2({
         | 
| 16406 | 
            +
                      tableName: entry.name,
         | 
| 16407 | 
            +
                      schema: entry.schema,
         | 
| 16408 | 
            +
                      deleted: entry.columns.deleted,
         | 
| 16409 | 
            +
                      created: entry.columns.added
         | 
| 16410 | 
            +
                    });
         | 
| 16411 | 
            +
                    if (created.length > 0) {
         | 
| 16412 | 
            +
                      columnCreates.push({
         | 
| 16413 | 
            +
                        table: entry.name,
         | 
| 16414 | 
            +
                        columns: created
         | 
| 16415 | 
            +
                      });
         | 
| 16416 | 
            +
                    }
         | 
| 16417 | 
            +
                    if (deleted.length > 0) {
         | 
| 16418 | 
            +
                      columnDeletes.push({
         | 
| 16419 | 
            +
                        table: entry.name,
         | 
| 16420 | 
            +
                        columns: deleted
         | 
| 16421 | 
            +
                      });
         | 
| 16422 | 
            +
                    }
         | 
| 16423 | 
            +
                    if (renamed.length > 0) {
         | 
| 16424 | 
            +
                      columnRenames.push({
         | 
| 16425 | 
            +
                        table: entry.name,
         | 
| 16426 | 
            +
                        renames: renamed
         | 
| 16427 | 
            +
                      });
         | 
| 16428 | 
            +
                    }
         | 
| 16429 | 
            +
                  }
         | 
| 16430 | 
            +
                  const columnRenamesDict = columnRenames.reduce(
         | 
| 16431 | 
            +
                    (acc, it) => {
         | 
| 16432 | 
            +
                      acc[it.table] = it.renames;
         | 
| 16433 | 
            +
                      return acc;
         | 
| 16434 | 
            +
                    },
         | 
| 16435 | 
            +
                    {}
         | 
| 16436 | 
            +
                  );
         | 
| 16437 | 
            +
                  const columnsPatchedSnap1 = copy(tablesPatchedSnap1);
         | 
| 16438 | 
            +
                  columnsPatchedSnap1.tables = mapEntries(
         | 
| 16439 | 
            +
                    columnsPatchedSnap1.tables,
         | 
| 16440 | 
            +
                    (tableKey2, tableValue) => {
         | 
| 16441 | 
            +
                      const patchedColumns = mapKeys(
         | 
| 16442 | 
            +
                        tableValue.columns,
         | 
| 16443 | 
            +
                        (columnKey, column4) => {
         | 
| 16444 | 
            +
                          const rens = columnRenamesDict[tableValue.name] || [];
         | 
| 16445 | 
            +
                          const newName = columnChangeFor(columnKey, rens);
         | 
| 16446 | 
            +
                          column4.name = newName;
         | 
| 16447 | 
            +
                          return newName;
         | 
| 16448 | 
            +
                        }
         | 
| 16449 | 
            +
                      );
         | 
| 16450 | 
            +
                      tableValue.columns = patchedColumns;
         | 
| 16451 | 
            +
                      return [tableKey2, tableValue];
         | 
| 16452 | 
            +
                    }
         | 
| 16453 | 
            +
                  );
         | 
| 16454 | 
            +
                  const diffResult = applyJsonDiff(columnsPatchedSnap1, json2);
         | 
| 16455 | 
            +
                  const typedResult = diffResultSchemeSQLite.parse(diffResult);
         | 
| 16456 | 
            +
                  const tablesMap = {};
         | 
| 16457 | 
            +
                  typedResult.alteredTablesWithColumns.forEach((obj) => {
         | 
| 16458 | 
            +
                    tablesMap[obj.name] = obj;
         | 
| 16459 | 
            +
                  });
         | 
| 16460 | 
            +
                  const jsonCreateTables = createdTables.map((it) => {
         | 
| 16461 | 
            +
                    return prepareSQLiteCreateTable(it, action);
         | 
| 16462 | 
            +
                  });
         | 
| 16463 | 
            +
                  const jsonCreateIndexesForCreatedTables = createdTables.map((it) => {
         | 
| 16464 | 
            +
                    return prepareCreateIndexesJson(
         | 
| 16465 | 
            +
                      it.name,
         | 
| 16466 | 
            +
                      it.schema,
         | 
| 16467 | 
            +
                      it.indexes,
         | 
| 16468 | 
            +
                      curFull.internal
         | 
| 16469 | 
            +
                    );
         | 
| 16470 | 
            +
                  }).flat();
         | 
| 16471 | 
            +
                  const jsonDropTables = deletedTables.map((it) => {
         | 
| 16472 | 
            +
                    return prepareDropTableJson(it);
         | 
| 16473 | 
            +
                  });
         | 
| 16474 | 
            +
                  const jsonRenameTables = renamedTables.map((it) => {
         | 
| 16475 | 
            +
                    return prepareRenameTableJson(it.from, it.to);
         | 
| 16476 | 
            +
                  });
         | 
| 16477 | 
            +
                  const jsonRenameColumnsStatements = columnRenames.map((it) => prepareRenameColumns(it.table, "", it.renames)).flat();
         | 
| 16478 | 
            +
                  const jsonDropColumnsStatemets = columnDeletes.map((it) => _prepareDropColumns(it.table, "", it.columns)).flat();
         | 
| 16479 | 
            +
                  const jsonAddColumnsStatemets = columnCreates.map((it) => {
         | 
| 16480 | 
            +
                    return _prepareSqliteAddColumns(
         | 
| 16481 | 
            +
                      it.table,
         | 
| 16482 | 
            +
                      it.columns,
         | 
| 16483 | 
            +
                      tablesMap[it.table] && tablesMap[it.table].addedForeignKeys ? Object.values(tablesMap[it.table].addedForeignKeys) : []
         | 
| 16484 | 
            +
                    );
         | 
| 16485 | 
            +
                  }).flat();
         | 
| 16486 | 
            +
                  const rColumns = jsonRenameColumnsStatements.map((it) => {
         | 
| 16487 | 
            +
                    const tableName = it.tableName;
         | 
| 16488 | 
            +
                    const schema4 = it.schema;
         | 
| 16489 | 
            +
                    return {
         | 
| 16490 | 
            +
                      from: { schema: schema4, table: tableName, column: it.oldColumnName },
         | 
| 16491 | 
            +
                      to: { schema: schema4, table: tableName, column: it.newColumnName }
         | 
| 16492 | 
            +
                    };
         | 
| 16493 | 
            +
                  });
         | 
| 16494 | 
            +
                  const rTables = renamedTables.map((it) => {
         | 
| 16495 | 
            +
                    return { from: it.from, to: it.to };
         | 
| 16496 | 
            +
                  });
         | 
| 16497 | 
            +
                  const _meta = prepareMigrationMeta([], rTables, rColumns);
         | 
| 16498 | 
            +
                  const allAltered = typedResult.alteredTablesWithColumns;
         | 
| 16499 | 
            +
                  const jsonAddedCompositePKs = [];
         | 
| 16500 | 
            +
                  const jsonDeletedCompositePKs = [];
         | 
| 16501 | 
            +
                  const jsonAlteredCompositePKs = [];
         | 
| 16502 | 
            +
                  const jsonAddedUniqueConstraints = [];
         | 
| 16503 | 
            +
                  const jsonDeletedUniqueConstraints = [];
         | 
| 16504 | 
            +
                  const jsonAlteredUniqueConstraints = [];
         | 
| 16505 | 
            +
                  allAltered.forEach((it) => {
         | 
| 16506 | 
            +
                    let addedColumns = [];
         | 
| 16507 | 
            +
                    for (const addedPkName of Object.keys(it.addedCompositePKs)) {
         | 
| 16508 | 
            +
                      const addedPkColumns = it.addedCompositePKs[addedPkName];
         | 
| 16509 | 
            +
                      addedColumns = SQLiteSquasher.unsquashPK(addedPkColumns);
         | 
| 16510 | 
            +
                    }
         | 
| 16511 | 
            +
                    let deletedColumns = [];
         | 
| 16512 | 
            +
                    for (const deletedPkName of Object.keys(it.deletedCompositePKs)) {
         | 
| 16513 | 
            +
                      const deletedPkColumns = it.deletedCompositePKs[deletedPkName];
         | 
| 16514 | 
            +
                      deletedColumns = SQLiteSquasher.unsquashPK(deletedPkColumns);
         | 
| 16515 | 
            +
                    }
         | 
| 16516 | 
            +
                    const doPerformDeleteAndCreate = JSON.stringify(addedColumns) !== JSON.stringify(deletedColumns);
         | 
| 16517 | 
            +
                    let addedCompositePKs = [];
         | 
| 16518 | 
            +
                    let deletedCompositePKs = [];
         | 
| 16519 | 
            +
                    let alteredCompositePKs = [];
         | 
| 16520 | 
            +
                    if (doPerformDeleteAndCreate) {
         | 
| 16521 | 
            +
                      addedCompositePKs = prepareAddCompositePrimaryKeySqlite(
         | 
| 16522 | 
            +
                        it.name,
         | 
| 16523 | 
            +
                        it.addedCompositePKs
         | 
| 16524 | 
            +
                      );
         | 
| 16525 | 
            +
                      deletedCompositePKs = prepareDeleteCompositePrimaryKeySqlite(
         | 
| 16526 | 
            +
                        it.name,
         | 
| 16527 | 
            +
                        it.deletedCompositePKs
         | 
| 16528 | 
            +
                      );
         | 
| 16529 | 
            +
                    }
         | 
| 16530 | 
            +
                    alteredCompositePKs = prepareAlterCompositePrimaryKeySqlite(
         | 
| 16531 | 
            +
                      it.name,
         | 
| 16532 | 
            +
                      it.alteredCompositePKs
         | 
| 16533 | 
            +
                    );
         | 
| 16534 | 
            +
                    let addedUniqueConstraints = [];
         | 
| 16535 | 
            +
                    let deletedUniqueConstraints = [];
         | 
| 16536 | 
            +
                    let alteredUniqueConstraints = [];
         | 
| 16537 | 
            +
                    addedUniqueConstraints = prepareAddUniqueConstraintPg(
         | 
| 16538 | 
            +
                      it.name,
         | 
| 16539 | 
            +
                      it.schema,
         | 
| 16540 | 
            +
                      it.addedUniqueConstraints
         | 
| 16541 | 
            +
                    );
         | 
| 16542 | 
            +
                    deletedUniqueConstraints = prepareDeleteUniqueConstraintPg(
         | 
| 16543 | 
            +
                      it.name,
         | 
| 16544 | 
            +
                      it.schema,
         | 
| 16545 | 
            +
                      it.deletedUniqueConstraints
         | 
| 16546 | 
            +
                    );
         | 
| 16547 | 
            +
                    if (it.alteredUniqueConstraints) {
         | 
| 16548 | 
            +
                      const added = {};
         | 
| 16549 | 
            +
                      const deleted = {};
         | 
| 16550 | 
            +
                      for (const k of Object.keys(it.alteredUniqueConstraints)) {
         | 
| 16551 | 
            +
                        added[k] = it.alteredUniqueConstraints[k].__new;
         | 
| 16552 | 
            +
                        deleted[k] = it.alteredUniqueConstraints[k].__old;
         | 
| 16553 | 
            +
                      }
         | 
| 16554 | 
            +
                      addedUniqueConstraints.push(
         | 
| 16555 | 
            +
                        ...prepareAddUniqueConstraintPg(it.name, it.schema, added)
         | 
| 16556 | 
            +
                      );
         | 
| 16557 | 
            +
                      deletedUniqueConstraints.push(
         | 
| 16558 | 
            +
                        ...prepareDeleteUniqueConstraintPg(it.name, it.schema, deleted)
         | 
| 16559 | 
            +
                      );
         | 
| 16560 | 
            +
                    }
         | 
| 16561 | 
            +
                    jsonAddedCompositePKs.push(...addedCompositePKs);
         | 
| 16562 | 
            +
                    jsonDeletedCompositePKs.push(...deletedCompositePKs);
         | 
| 16563 | 
            +
                    jsonAlteredCompositePKs.push(...alteredCompositePKs);
         | 
| 16564 | 
            +
                    jsonAddedUniqueConstraints.push(...addedUniqueConstraints);
         | 
| 16565 | 
            +
                    jsonDeletedUniqueConstraints.push(...deletedUniqueConstraints);
         | 
| 16566 | 
            +
                    jsonAlteredUniqueConstraints.push(...alteredUniqueConstraints);
         | 
| 16567 | 
            +
                  });
         | 
| 16568 | 
            +
                  const jsonTableAlternations = allAltered.map((it) => {
         | 
| 16569 | 
            +
                    return prepareSqliteAlterColumns(it.name, it.schema, it.altered, json2);
         | 
| 16570 | 
            +
                  }).flat();
         | 
| 16571 | 
            +
                  const jsonCreateIndexesForAllAlteredTables = allAltered.map((it) => {
         | 
| 16572 | 
            +
                    return prepareCreateIndexesJson(
         | 
| 16573 | 
            +
                      it.name,
         | 
| 16574 | 
            +
                      it.schema,
         | 
| 16575 | 
            +
                      it.addedIndexes || {},
         | 
| 16576 | 
            +
                      curFull.internal
         | 
| 16577 | 
            +
                    );
         | 
| 16578 | 
            +
                  }).flat();
         | 
| 16579 | 
            +
                  const jsonDropIndexesForAllAlteredTables = allAltered.map((it) => {
         | 
| 16580 | 
            +
                    return prepareDropIndexesJson(
         | 
| 16581 | 
            +
                      it.name,
         | 
| 16582 | 
            +
                      it.schema,
         | 
| 16583 | 
            +
                      it.deletedIndexes || {}
         | 
| 16584 | 
            +
                    );
         | 
| 16585 | 
            +
                  }).flat();
         | 
| 16586 | 
            +
                  allAltered.forEach((it) => {
         | 
| 16587 | 
            +
                    const droppedIndexes = Object.keys(it.alteredIndexes).reduce(
         | 
| 16588 | 
            +
                      (current, item) => {
         | 
| 16589 | 
            +
                        current[item] = it.alteredIndexes[item].__old;
         | 
| 16590 | 
            +
                        return current;
         | 
| 16591 | 
            +
                      },
         | 
| 16592 | 
            +
                      {}
         | 
| 16593 | 
            +
                    );
         | 
| 16594 | 
            +
                    const createdIndexes = Object.keys(it.alteredIndexes).reduce(
         | 
| 16595 | 
            +
                      (current, item) => {
         | 
| 16596 | 
            +
                        current[item] = it.alteredIndexes[item].__new;
         | 
| 16597 | 
            +
                        return current;
         | 
| 16598 | 
            +
                      },
         | 
| 16599 | 
            +
                      {}
         | 
| 16600 | 
            +
                    );
         | 
| 16601 | 
            +
                    jsonCreateIndexesForAllAlteredTables.push(
         | 
| 16602 | 
            +
                      ...prepareCreateIndexesJson(
         | 
| 16603 | 
            +
                        it.name,
         | 
| 16604 | 
            +
                        it.schema,
         | 
| 16605 | 
            +
                        createdIndexes || {},
         | 
| 16606 | 
            +
                        curFull.internal
         | 
| 16607 | 
            +
                      )
         | 
| 16608 | 
            +
                    );
         | 
| 16609 | 
            +
                    jsonDropIndexesForAllAlteredTables.push(
         | 
| 16610 | 
            +
                      ...prepareDropIndexesJson(it.name, it.schema, droppedIndexes || {})
         | 
| 16611 | 
            +
                    );
         | 
| 16612 | 
            +
                  });
         | 
| 16613 | 
            +
                  const jsonReferencesForAllAlteredTables = allAltered.map((it) => {
         | 
| 16614 | 
            +
                    const forAdded = prepareLibSQLCreateReferencesJson(
         | 
| 16615 | 
            +
                      it.name,
         | 
| 16616 | 
            +
                      it.schema,
         | 
| 16617 | 
            +
                      it.addedForeignKeys,
         | 
| 16618 | 
            +
                      json2,
         | 
| 16619 | 
            +
                      action
         | 
| 16620 | 
            +
                    );
         | 
| 16621 | 
            +
                    const forAltered = prepareLibSQLDropReferencesJson(
         | 
| 16622 | 
            +
                      it.name,
         | 
| 16623 | 
            +
                      it.schema,
         | 
| 16624 | 
            +
                      it.deletedForeignKeys,
         | 
| 16625 | 
            +
                      json2,
         | 
| 16626 | 
            +
                      _meta,
         | 
| 16627 | 
            +
                      action
         | 
| 16628 | 
            +
                    );
         | 
| 16629 | 
            +
                    const alteredFKs = prepareAlterReferencesJson(it.name, it.schema, it.alteredForeignKeys);
         | 
| 16630 | 
            +
                    return [...forAdded, ...forAltered, ...alteredFKs];
         | 
| 16631 | 
            +
                  }).flat();
         | 
| 16632 | 
            +
                  const jsonCreatedReferencesForAlteredTables = jsonReferencesForAllAlteredTables.filter(
         | 
| 16633 | 
            +
                    (t) => t.type === "create_reference"
         | 
| 16634 | 
            +
                  );
         | 
| 16635 | 
            +
                  const jsonDroppedReferencesForAlteredTables = jsonReferencesForAllAlteredTables.filter(
         | 
| 16636 | 
            +
                    (t) => t.type === "delete_reference"
         | 
| 16637 | 
            +
                  );
         | 
| 16638 | 
            +
                  const jsonStatements = [];
         | 
| 16639 | 
            +
                  jsonStatements.push(...jsonCreateTables);
         | 
| 16640 | 
            +
                  jsonStatements.push(...jsonDropTables);
         | 
| 16641 | 
            +
                  jsonStatements.push(...jsonRenameTables);
         | 
| 16642 | 
            +
                  jsonStatements.push(...jsonRenameColumnsStatements);
         | 
| 16643 | 
            +
                  jsonStatements.push(...jsonDroppedReferencesForAlteredTables);
         | 
| 16644 | 
            +
                  jsonStatements.push(...jsonDropIndexesForAllAlteredTables);
         | 
| 16645 | 
            +
                  jsonStatements.push(...jsonDeletedCompositePKs);
         | 
| 16646 | 
            +
                  jsonStatements.push(...jsonTableAlternations);
         | 
| 16647 | 
            +
                  jsonStatements.push(...jsonAddedCompositePKs);
         | 
| 16648 | 
            +
                  jsonStatements.push(...jsonAddColumnsStatemets);
         | 
| 16649 | 
            +
                  jsonStatements.push(...jsonCreateIndexesForCreatedTables);
         | 
| 16650 | 
            +
                  jsonStatements.push(...jsonCreateIndexesForAllAlteredTables);
         | 
| 16651 | 
            +
                  jsonStatements.push(...jsonCreatedReferencesForAlteredTables);
         | 
| 16652 | 
            +
                  jsonStatements.push(...jsonDropColumnsStatemets);
         | 
| 16653 | 
            +
                  jsonStatements.push(...jsonAlteredCompositePKs);
         | 
| 16654 | 
            +
                  jsonStatements.push(...jsonAlteredUniqueConstraints);
         | 
| 16655 | 
            +
                  const combinedJsonStatements = libSQLCombineStatements(jsonStatements, json2, action);
         | 
| 16656 | 
            +
                  const sqlStatements = fromJson(
         | 
| 16657 | 
            +
                    combinedJsonStatements,
         | 
| 16658 | 
            +
                    "turso",
         | 
| 16659 | 
            +
                    action,
         | 
| 16660 | 
            +
                    json2
         | 
| 16661 | 
            +
                  );
         | 
| 16662 | 
            +
                  const uniqueSqlStatements = [];
         | 
| 16663 | 
            +
                  sqlStatements.forEach((ss) => {
         | 
| 16664 | 
            +
                    if (!uniqueSqlStatements.includes(ss)) {
         | 
| 16665 | 
            +
                      uniqueSqlStatements.push(ss);
         | 
| 16666 | 
            +
                    }
         | 
| 16667 | 
            +
                  });
         | 
| 16668 | 
            +
                  return {
         | 
| 16669 | 
            +
                    statements: combinedJsonStatements,
         | 
| 15833 16670 | 
             
                    sqlStatements: uniqueSqlStatements,
         | 
| 15834 16671 | 
             
                    _meta
         | 
| 15835 16672 | 
             
                  };
         | 
| @@ -15853,7 +16690,7 @@ var init_schemaValidator = __esm({ | |
| 15853 16690 | 
             
                init_mysqlSchema();
         | 
| 15854 16691 | 
             
                init_pgSchema();
         | 
| 15855 16692 | 
             
                init_sqliteSchema();
         | 
| 15856 | 
            -
                dialects = ["postgresql", "mysql", "sqlite"];
         | 
| 16693 | 
            +
                dialects = ["postgresql", "mysql", "sqlite", "turso"];
         | 
| 15857 16694 | 
             
                dialect3 = enumType(dialects);
         | 
| 15858 16695 | 
             
                commonSquashedSchema = unionType([
         | 
| 15859 16696 | 
             
                  pgSchemaSquashed,
         | 
| @@ -15865,7 +16702,7 @@ var init_schemaValidator = __esm({ | |
| 15865 16702 | 
             
            });
         | 
| 15866 16703 |  | 
| 15867 16704 | 
             
            // src/cli/validations/common.ts
         | 
| 15868 | 
            -
            var sqliteDriversLiterals, postgresqlDriversLiterals, sqliteDriver, postgresDriver, driver, configMigrations, configCommonSchema, casing, introspectParams, configIntrospectCliSchema, configGenerateSchema, configPushSchema;
         | 
| 16705 | 
            +
            var sqliteDriversLiterals, postgresqlDriversLiterals, prefixes, prefix, sqliteDriver, postgresDriver, driver, configMigrations, configCommonSchema, casing, introspectParams, configIntrospectCliSchema, configGenerateSchema, configPushSchema;
         | 
| 15869 16706 | 
             
            var init_common = __esm({
         | 
| 15870 16707 | 
             
              "src/cli/validations/common.ts"() {
         | 
| 15871 16708 | 
             
                "use strict";
         | 
| @@ -15873,7 +16710,6 @@ var init_common = __esm({ | |
| 15873 16710 | 
             
                init_schemaValidator();
         | 
| 15874 16711 | 
             
                init_outputs();
         | 
| 15875 16712 | 
             
                sqliteDriversLiterals = [
         | 
| 15876 | 
            -
                  literalType("turso"),
         | 
| 15877 16713 | 
             
                  literalType("d1-http"),
         | 
| 15878 16714 | 
             
                  literalType("expo")
         | 
| 15879 16715 | 
             
                ];
         | 
| @@ -15881,12 +16717,24 @@ var init_common = __esm({ | |
| 15881 16717 | 
             
                  literalType("aws-data-api"),
         | 
| 15882 16718 | 
             
                  literalType("pglite")
         | 
| 15883 16719 | 
             
                ];
         | 
| 16720 | 
            +
                prefixes = [
         | 
| 16721 | 
            +
                  "index",
         | 
| 16722 | 
            +
                  "timestamp",
         | 
| 16723 | 
            +
                  "supabase",
         | 
| 16724 | 
            +
                  "unix",
         | 
| 16725 | 
            +
                  "none"
         | 
| 16726 | 
            +
                ];
         | 
| 16727 | 
            +
                prefix = enumType(prefixes);
         | 
| 16728 | 
            +
                {
         | 
| 16729 | 
            +
                  const _2 = "";
         | 
| 16730 | 
            +
                }
         | 
| 15884 16731 | 
             
                sqliteDriver = unionType(sqliteDriversLiterals);
         | 
| 15885 16732 | 
             
                postgresDriver = unionType(postgresqlDriversLiterals);
         | 
| 15886 16733 | 
             
                driver = unionType([sqliteDriver, postgresDriver]);
         | 
| 15887 16734 | 
             
                configMigrations = objectType({
         | 
| 15888 16735 | 
             
                  table: stringType().optional(),
         | 
| 15889 | 
            -
                  schema: stringType().optional()
         | 
| 16736 | 
            +
                  schema: stringType().optional(),
         | 
| 16737 | 
            +
                  prefix: prefix.optional().default("index")
         | 
| 15890 16738 | 
             
                }).optional();
         | 
| 15891 16739 | 
             
                configCommonSchema = objectType({
         | 
| 15892 16740 | 
             
                  dialect: dialect3,
         | 
| @@ -25638,267 +26486,6 @@ var init_selector_ui = __esm({ | |
| 25638 26486 | 
             
              }
         | 
| 25639 26487 | 
             
            });
         | 
| 25640 26488 |  | 
| 25641 | 
            -
            // src/cli/validations/cli.ts
         | 
| 25642 | 
            -
            var pushParams, pullParams, configCheck, cliConfigCheck;
         | 
| 25643 | 
            -
            var init_cli = __esm({
         | 
| 25644 | 
            -
              "src/cli/validations/cli.ts"() {
         | 
| 25645 | 
            -
                "use strict";
         | 
| 25646 | 
            -
                init_lib();
         | 
| 25647 | 
            -
                init_schemaValidator();
         | 
| 25648 | 
            -
                init_common();
         | 
| 25649 | 
            -
                pushParams = objectType({
         | 
| 25650 | 
            -
                  dialect: dialect3,
         | 
| 25651 | 
            -
                  schema: unionType([stringType(), stringType().array()]),
         | 
| 25652 | 
            -
                  tablesFilter: unionType([stringType(), stringType().array()]).optional(),
         | 
| 25653 | 
            -
                  schemaFilter: unionType([stringType(), stringType().array()]).optional().default(["public"]),
         | 
| 25654 | 
            -
                  extensionsFilters: literalType("postgis").array().optional(),
         | 
| 25655 | 
            -
                  verbose: booleanType().optional(),
         | 
| 25656 | 
            -
                  strict: booleanType().optional()
         | 
| 25657 | 
            -
                }).passthrough();
         | 
| 25658 | 
            -
                pullParams = objectType({
         | 
| 25659 | 
            -
                  config: stringType().optional(),
         | 
| 25660 | 
            -
                  dialect: dialect3,
         | 
| 25661 | 
            -
                  out: stringType().optional().default("drizzle"),
         | 
| 25662 | 
            -
                  tablesFilter: unionType([stringType(), stringType().array()]).optional(),
         | 
| 25663 | 
            -
                  schemaFilter: unionType([stringType(), stringType().array()]).optional().default(["public"]),
         | 
| 25664 | 
            -
                  extensionsFilters: literalType("postgis").array().optional(),
         | 
| 25665 | 
            -
                  casing,
         | 
| 25666 | 
            -
                  breakpoints: booleanType().optional().default(true)
         | 
| 25667 | 
            -
                }).passthrough();
         | 
| 25668 | 
            -
                configCheck = objectType({
         | 
| 25669 | 
            -
                  dialect: dialect3.optional(),
         | 
| 25670 | 
            -
                  out: stringType().optional()
         | 
| 25671 | 
            -
                });
         | 
| 25672 | 
            -
                cliConfigCheck = intersectionType(
         | 
| 25673 | 
            -
                  objectType({
         | 
| 25674 | 
            -
                    config: stringType().optional()
         | 
| 25675 | 
            -
                  }),
         | 
| 25676 | 
            -
                  configCheck
         | 
| 25677 | 
            -
                );
         | 
| 25678 | 
            -
              }
         | 
| 25679 | 
            -
            });
         | 
| 25680 | 
            -
             | 
| 25681 | 
            -
            // src/cli/validations/mysql.ts
         | 
| 25682 | 
            -
            var mysqlCredentials;
         | 
| 25683 | 
            -
            var init_mysql = __esm({
         | 
| 25684 | 
            -
              "src/cli/validations/mysql.ts"() {
         | 
| 25685 | 
            -
                "use strict";
         | 
| 25686 | 
            -
                init_lib();
         | 
| 25687 | 
            -
                init_views();
         | 
| 25688 | 
            -
                init_common();
         | 
| 25689 | 
            -
                init_outputs();
         | 
| 25690 | 
            -
                mysqlCredentials = unionType([
         | 
| 25691 | 
            -
                  objectType({
         | 
| 25692 | 
            -
                    host: stringType().min(1),
         | 
| 25693 | 
            -
                    port: coerce.number().min(1).optional(),
         | 
| 25694 | 
            -
                    user: stringType().min(1).optional(),
         | 
| 25695 | 
            -
                    password: stringType().min(1).optional(),
         | 
| 25696 | 
            -
                    database: stringType().min(1),
         | 
| 25697 | 
            -
                    ssl: unionType([
         | 
| 25698 | 
            -
                      stringType(),
         | 
| 25699 | 
            -
                      objectType({
         | 
| 25700 | 
            -
                        pfx: stringType().optional(),
         | 
| 25701 | 
            -
                        key: stringType().optional(),
         | 
| 25702 | 
            -
                        passphrase: stringType().optional(),
         | 
| 25703 | 
            -
                        cert: stringType().optional(),
         | 
| 25704 | 
            -
                        ca: unionType([stringType(), stringType().array()]).optional(),
         | 
| 25705 | 
            -
                        crl: unionType([stringType(), stringType().array()]).optional(),
         | 
| 25706 | 
            -
                        ciphers: stringType().optional(),
         | 
| 25707 | 
            -
                        rejectUnauthorized: booleanType().optional()
         | 
| 25708 | 
            -
                      })
         | 
| 25709 | 
            -
                    ]).optional()
         | 
| 25710 | 
            -
                  }),
         | 
| 25711 | 
            -
                  objectType({
         | 
| 25712 | 
            -
                    url: stringType().min(1)
         | 
| 25713 | 
            -
                  })
         | 
| 25714 | 
            -
                ]);
         | 
| 25715 | 
            -
              }
         | 
| 25716 | 
            -
            });
         | 
| 25717 | 
            -
             | 
| 25718 | 
            -
            // src/cli/validations/postgres.ts
         | 
| 25719 | 
            -
            var postgresCredentials;
         | 
| 25720 | 
            -
            var init_postgres = __esm({
         | 
| 25721 | 
            -
              "src/cli/validations/postgres.ts"() {
         | 
| 25722 | 
            -
                "use strict";
         | 
| 25723 | 
            -
                init_lib();
         | 
| 25724 | 
            -
                init_views();
         | 
| 25725 | 
            -
                init_common();
         | 
| 25726 | 
            -
                postgresCredentials = unionType([
         | 
| 25727 | 
            -
                  objectType({
         | 
| 25728 | 
            -
                    driver: undefinedType(),
         | 
| 25729 | 
            -
                    host: stringType().min(1),
         | 
| 25730 | 
            -
                    port: coerce.number().min(1).optional(),
         | 
| 25731 | 
            -
                    user: stringType().min(1).optional(),
         | 
| 25732 | 
            -
                    password: stringType().min(1).optional(),
         | 
| 25733 | 
            -
                    database: stringType().min(1),
         | 
| 25734 | 
            -
                    ssl: unionType([
         | 
| 25735 | 
            -
                      literalType("require"),
         | 
| 25736 | 
            -
                      literalType("allow"),
         | 
| 25737 | 
            -
                      literalType("prefer"),
         | 
| 25738 | 
            -
                      literalType("verify-full"),
         | 
| 25739 | 
            -
                      booleanType(),
         | 
| 25740 | 
            -
                      objectType({}).passthrough()
         | 
| 25741 | 
            -
                    ]).optional()
         | 
| 25742 | 
            -
                  }).transform((o) => {
         | 
| 25743 | 
            -
                    delete o.driver;
         | 
| 25744 | 
            -
                    return o;
         | 
| 25745 | 
            -
                  }),
         | 
| 25746 | 
            -
                  objectType({
         | 
| 25747 | 
            -
                    driver: undefinedType(),
         | 
| 25748 | 
            -
                    url: stringType().min(1)
         | 
| 25749 | 
            -
                  }).transform((o) => {
         | 
| 25750 | 
            -
                    delete o.driver;
         | 
| 25751 | 
            -
                    return o;
         | 
| 25752 | 
            -
                  }),
         | 
| 25753 | 
            -
                  objectType({
         | 
| 25754 | 
            -
                    driver: literalType("aws-data-api"),
         | 
| 25755 | 
            -
                    database: stringType().min(1),
         | 
| 25756 | 
            -
                    secretArn: stringType().min(1),
         | 
| 25757 | 
            -
                    resourceArn: stringType().min(1)
         | 
| 25758 | 
            -
                  }),
         | 
| 25759 | 
            -
                  objectType({
         | 
| 25760 | 
            -
                    driver: literalType("pglite"),
         | 
| 25761 | 
            -
                    url: stringType().min(1)
         | 
| 25762 | 
            -
                  })
         | 
| 25763 | 
            -
                ]);
         | 
| 25764 | 
            -
              }
         | 
| 25765 | 
            -
            });
         | 
| 25766 | 
            -
             | 
| 25767 | 
            -
            // src/cli/validations/sqlite.ts
         | 
| 25768 | 
            -
            var sqliteCredentials;
         | 
| 25769 | 
            -
            var init_sqlite = __esm({
         | 
| 25770 | 
            -
              "src/cli/validations/sqlite.ts"() {
         | 
| 25771 | 
            -
                "use strict";
         | 
| 25772 | 
            -
                init_global();
         | 
| 25773 | 
            -
                init_lib();
         | 
| 25774 | 
            -
                init_views();
         | 
| 25775 | 
            -
                init_common();
         | 
| 25776 | 
            -
                sqliteCredentials = unionType([
         | 
| 25777 | 
            -
                  objectType({
         | 
| 25778 | 
            -
                    driver: literalType("turso"),
         | 
| 25779 | 
            -
                    url: stringType().min(1),
         | 
| 25780 | 
            -
                    authToken: stringType().min(1).optional()
         | 
| 25781 | 
            -
                  }),
         | 
| 25782 | 
            -
                  objectType({
         | 
| 25783 | 
            -
                    driver: literalType("d1-http"),
         | 
| 25784 | 
            -
                    accountId: stringType().min(1),
         | 
| 25785 | 
            -
                    databaseId: stringType().min(1),
         | 
| 25786 | 
            -
                    token: stringType().min(1)
         | 
| 25787 | 
            -
                  }),
         | 
| 25788 | 
            -
                  objectType({
         | 
| 25789 | 
            -
                    driver: undefinedType(),
         | 
| 25790 | 
            -
                    url: stringType().min(1)
         | 
| 25791 | 
            -
                  }).transform((o) => {
         | 
| 25792 | 
            -
                    delete o.driver;
         | 
| 25793 | 
            -
                    return o;
         | 
| 25794 | 
            -
                  })
         | 
| 25795 | 
            -
                ]);
         | 
| 25796 | 
            -
              }
         | 
| 25797 | 
            -
            });
         | 
| 25798 | 
            -
             | 
| 25799 | 
            -
            // src/cli/validations/studio.ts
         | 
| 25800 | 
            -
            var credentials, studioCliParams, studioConfig;
         | 
| 25801 | 
            -
            var init_studio = __esm({
         | 
| 25802 | 
            -
              "src/cli/validations/studio.ts"() {
         | 
| 25803 | 
            -
                "use strict";
         | 
| 25804 | 
            -
                init_lib();
         | 
| 25805 | 
            -
                init_schemaValidator();
         | 
| 25806 | 
            -
                init_mysql();
         | 
| 25807 | 
            -
                init_postgres();
         | 
| 25808 | 
            -
                init_sqlite();
         | 
| 25809 | 
            -
                credentials = intersectionType(
         | 
| 25810 | 
            -
                  postgresCredentials,
         | 
| 25811 | 
            -
                  mysqlCredentials,
         | 
| 25812 | 
            -
                  sqliteCredentials
         | 
| 25813 | 
            -
                );
         | 
| 25814 | 
            -
                studioCliParams = objectType({
         | 
| 25815 | 
            -
                  port: coerce.number().optional().default(4983),
         | 
| 25816 | 
            -
                  host: stringType().optional().default("127.0.0.1"),
         | 
| 25817 | 
            -
                  config: stringType().optional()
         | 
| 25818 | 
            -
                });
         | 
| 25819 | 
            -
                studioConfig = objectType({
         | 
| 25820 | 
            -
                  dialect: dialect3,
         | 
| 25821 | 
            -
                  schema: unionType([stringType(), stringType().array()]).optional()
         | 
| 25822 | 
            -
                });
         | 
| 25823 | 
            -
              }
         | 
| 25824 | 
            -
            });
         | 
| 25825 | 
            -
             | 
| 25826 | 
            -
            // src/cli/commands/_es5.ts
         | 
| 25827 | 
            -
            var es5_exports = {};
         | 
| 25828 | 
            -
            __export(es5_exports, {
         | 
| 25829 | 
            -
              default: () => es5_default
         | 
| 25830 | 
            -
            });
         | 
| 25831 | 
            -
            var _, es5_default;
         | 
| 25832 | 
            -
            var init_es5 = __esm({
         | 
| 25833 | 
            -
              "src/cli/commands/_es5.ts"() {
         | 
| 25834 | 
            -
                "use strict";
         | 
| 25835 | 
            -
                _ = "";
         | 
| 25836 | 
            -
                es5_default = _;
         | 
| 25837 | 
            -
              }
         | 
| 25838 | 
            -
            });
         | 
| 25839 | 
            -
             | 
| 25840 | 
            -
            // src/cli/commands/utils.ts
         | 
| 25841 | 
            -
            var import_hanji6, assertES5, safeRegister, migrateConfig;
         | 
| 25842 | 
            -
            var init_utils6 = __esm({
         | 
| 25843 | 
            -
              "src/cli/commands/utils.ts"() {
         | 
| 25844 | 
            -
                "use strict";
         | 
| 25845 | 
            -
                import_hanji6 = __toESM(require_hanji());
         | 
| 25846 | 
            -
                init_lib();
         | 
| 25847 | 
            -
                init_global();
         | 
| 25848 | 
            -
                init_schemaValidator();
         | 
| 25849 | 
            -
                init_serializer();
         | 
| 25850 | 
            -
                init_cli();
         | 
| 25851 | 
            -
                init_common();
         | 
| 25852 | 
            -
                init_mysql();
         | 
| 25853 | 
            -
                init_outputs();
         | 
| 25854 | 
            -
                init_postgres();
         | 
| 25855 | 
            -
                init_sqlite();
         | 
| 25856 | 
            -
                init_studio();
         | 
| 25857 | 
            -
                init_views();
         | 
| 25858 | 
            -
                assertES5 = async (unregister) => {
         | 
| 25859 | 
            -
                  try {
         | 
| 25860 | 
            -
                    init_es5();
         | 
| 25861 | 
            -
                  } catch (e) {
         | 
| 25862 | 
            -
                    if ("errors" in e && Array.isArray(e.errors) && e.errors.length > 0) {
         | 
| 25863 | 
            -
                      const es5Error = e.errors.filter((it) => it.text?.includes(`("es5") is not supported yet`)).length > 0;
         | 
| 25864 | 
            -
                      if (es5Error) {
         | 
| 25865 | 
            -
                        console.log(
         | 
| 25866 | 
            -
                          error(
         | 
| 25867 | 
            -
                            `Please change compilerOptions.target from 'es5' to 'es6' or above in your tsconfig.json`
         | 
| 25868 | 
            -
                          )
         | 
| 25869 | 
            -
                        );
         | 
| 25870 | 
            -
                        process.exit(1);
         | 
| 25871 | 
            -
                      }
         | 
| 25872 | 
            -
                    }
         | 
| 25873 | 
            -
                    console.error(e);
         | 
| 25874 | 
            -
                    process.exit(1);
         | 
| 25875 | 
            -
                  }
         | 
| 25876 | 
            -
                };
         | 
| 25877 | 
            -
                safeRegister = async () => {
         | 
| 25878 | 
            -
                  const { register } = require("esbuild-register/dist/node");
         | 
| 25879 | 
            -
                  let res;
         | 
| 25880 | 
            -
                  try {
         | 
| 25881 | 
            -
                    res = register({
         | 
| 25882 | 
            -
                      format: "cjs",
         | 
| 25883 | 
            -
                      loader: "ts"
         | 
| 25884 | 
            -
                    });
         | 
| 25885 | 
            -
                  } catch {
         | 
| 25886 | 
            -
                    res = {
         | 
| 25887 | 
            -
                      unregister: () => {
         | 
| 25888 | 
            -
                      }
         | 
| 25889 | 
            -
                    };
         | 
| 25890 | 
            -
                  }
         | 
| 25891 | 
            -
                  await assertES5(res.unregister);
         | 
| 25892 | 
            -
                  return res;
         | 
| 25893 | 
            -
                };
         | 
| 25894 | 
            -
                migrateConfig = objectType({
         | 
| 25895 | 
            -
                  dialect: dialect3,
         | 
| 25896 | 
            -
                  out: stringType().optional().default("drizzle"),
         | 
| 25897 | 
            -
                  migrations: configMigrations
         | 
| 25898 | 
            -
                });
         | 
| 25899 | 
            -
              }
         | 
| 25900 | 
            -
            });
         | 
| 25901 | 
            -
             | 
| 25902 26489 | 
             
            // ../drizzle-orm/dist/sqlite-core/alias.js
         | 
| 25903 26490 | 
             
            var init_alias3 = __esm({
         | 
| 25904 26491 | 
             
              "../drizzle-orm/dist/sqlite-core/alias.js"() {
         | 
| @@ -29005,7 +29592,7 @@ function getTableConfig2(table4) { | |
| 29005 29592 | 
             
                name: name2
         | 
| 29006 29593 | 
             
              };
         | 
| 29007 29594 | 
             
            }
         | 
| 29008 | 
            -
            var  | 
| 29595 | 
            +
            var init_utils6 = __esm({
         | 
| 29009 29596 | 
             
              "../drizzle-orm/dist/sqlite-core/utils.js"() {
         | 
| 29010 29597 | 
             
                "use strict";
         | 
| 29011 29598 | 
             
                init_entity();
         | 
| @@ -29141,7 +29728,7 @@ var init_sqlite_core = __esm({ | |
| 29141 29728 | 
             
                init_subquery3();
         | 
| 29142 29729 | 
             
                init_table3();
         | 
| 29143 29730 | 
             
                init_unique_constraint2();
         | 
| 29144 | 
            -
                 | 
| 29731 | 
            +
                init_utils6();
         | 
| 29145 29732 | 
             
                init_view2();
         | 
| 29146 29733 | 
             
              }
         | 
| 29147 29734 | 
             
            });
         | 
| @@ -33562,7 +34149,7 @@ function getTableConfig3(table4) { | |
| 33562 34149 | 
             
                baseName
         | 
| 33563 34150 | 
             
              };
         | 
| 33564 34151 | 
             
            }
         | 
| 33565 | 
            -
            var  | 
| 34152 | 
            +
            var init_utils7 = __esm({
         | 
| 33566 34153 | 
             
              "../drizzle-orm/dist/mysql-core/utils.js"() {
         | 
| 33567 34154 | 
             
                "use strict";
         | 
| 33568 34155 | 
             
                init_entity();
         | 
| @@ -33594,7 +34181,7 @@ var init_mysql_core = __esm({ | |
| 33594 34181 | 
             
                init_subquery4();
         | 
| 33595 34182 | 
             
                init_table4();
         | 
| 33596 34183 | 
             
                init_unique_constraint3();
         | 
| 33597 | 
            -
                 | 
| 34184 | 
            +
                init_utils7();
         | 
| 33598 34185 | 
             
                init_view_common4();
         | 
| 33599 34186 | 
             
                init_view3();
         | 
| 33600 34187 | 
             
              }
         | 
| @@ -34151,6 +34738,297 @@ We have encountered a collision between the index name on columns ${source_defau | |
| 34151 34738 | 
             
              }
         | 
| 34152 34739 | 
             
            });
         | 
| 34153 34740 |  | 
| 34741 | 
            +
            // src/cli/validations/cli.ts
         | 
| 34742 | 
            +
            var cliConfigGenerate, pushParams, pullParams, configCheck, cliConfigCheck;
         | 
| 34743 | 
            +
            var init_cli = __esm({
         | 
| 34744 | 
            +
              "src/cli/validations/cli.ts"() {
         | 
| 34745 | 
            +
                "use strict";
         | 
| 34746 | 
            +
                init_lib();
         | 
| 34747 | 
            +
                init_schemaValidator();
         | 
| 34748 | 
            +
                init_common();
         | 
| 34749 | 
            +
                cliConfigGenerate = objectType({
         | 
| 34750 | 
            +
                  dialect: dialect3.optional(),
         | 
| 34751 | 
            +
                  schema: unionType([stringType(), stringType().array()]).optional(),
         | 
| 34752 | 
            +
                  out: stringType().optional().default("./drizzle"),
         | 
| 34753 | 
            +
                  config: stringType().optional(),
         | 
| 34754 | 
            +
                  name: stringType().optional(),
         | 
| 34755 | 
            +
                  prefix: prefix.optional(),
         | 
| 34756 | 
            +
                  breakpoints: booleanType().optional().default(true),
         | 
| 34757 | 
            +
                  custom: booleanType().optional().default(false)
         | 
| 34758 | 
            +
                }).strict();
         | 
| 34759 | 
            +
                pushParams = objectType({
         | 
| 34760 | 
            +
                  dialect: dialect3,
         | 
| 34761 | 
            +
                  schema: unionType([stringType(), stringType().array()]),
         | 
| 34762 | 
            +
                  tablesFilter: unionType([stringType(), stringType().array()]).optional(),
         | 
| 34763 | 
            +
                  schemaFilter: unionType([stringType(), stringType().array()]).optional().default(["public"]),
         | 
| 34764 | 
            +
                  extensionsFilters: literalType("postgis").array().optional(),
         | 
| 34765 | 
            +
                  verbose: booleanType().optional(),
         | 
| 34766 | 
            +
                  strict: booleanType().optional()
         | 
| 34767 | 
            +
                }).passthrough();
         | 
| 34768 | 
            +
                pullParams = objectType({
         | 
| 34769 | 
            +
                  config: stringType().optional(),
         | 
| 34770 | 
            +
                  dialect: dialect3,
         | 
| 34771 | 
            +
                  out: stringType().optional().default("drizzle"),
         | 
| 34772 | 
            +
                  tablesFilter: unionType([stringType(), stringType().array()]).optional(),
         | 
| 34773 | 
            +
                  schemaFilter: unionType([stringType(), stringType().array()]).optional().default(["public"]),
         | 
| 34774 | 
            +
                  extensionsFilters: literalType("postgis").array().optional(),
         | 
| 34775 | 
            +
                  casing,
         | 
| 34776 | 
            +
                  breakpoints: booleanType().optional().default(true),
         | 
| 34777 | 
            +
                  migrations: objectType({
         | 
| 34778 | 
            +
                    prefix: prefix.optional().default("index")
         | 
| 34779 | 
            +
                  }).optional()
         | 
| 34780 | 
            +
                }).passthrough();
         | 
| 34781 | 
            +
                configCheck = objectType({
         | 
| 34782 | 
            +
                  dialect: dialect3.optional(),
         | 
| 34783 | 
            +
                  out: stringType().optional()
         | 
| 34784 | 
            +
                });
         | 
| 34785 | 
            +
                cliConfigCheck = intersectionType(
         | 
| 34786 | 
            +
                  objectType({
         | 
| 34787 | 
            +
                    config: stringType().optional()
         | 
| 34788 | 
            +
                  }),
         | 
| 34789 | 
            +
                  configCheck
         | 
| 34790 | 
            +
                );
         | 
| 34791 | 
            +
              }
         | 
| 34792 | 
            +
            });
         | 
| 34793 | 
            +
             | 
| 34794 | 
            +
            // src/cli/validations/libsql.ts
         | 
| 34795 | 
            +
            var libSQLCredentials;
         | 
| 34796 | 
            +
            var init_libsql = __esm({
         | 
| 34797 | 
            +
              "src/cli/validations/libsql.ts"() {
         | 
| 34798 | 
            +
                "use strict";
         | 
| 34799 | 
            +
                init_lib();
         | 
| 34800 | 
            +
                init_views();
         | 
| 34801 | 
            +
                init_common();
         | 
| 34802 | 
            +
                libSQLCredentials = objectType({
         | 
| 34803 | 
            +
                  url: stringType().min(1),
         | 
| 34804 | 
            +
                  authToken: stringType().min(1).optional()
         | 
| 34805 | 
            +
                });
         | 
| 34806 | 
            +
              }
         | 
| 34807 | 
            +
            });
         | 
| 34808 | 
            +
             | 
| 34809 | 
            +
            // src/cli/validations/mysql.ts
         | 
| 34810 | 
            +
            var mysqlCredentials;
         | 
| 34811 | 
            +
            var init_mysql = __esm({
         | 
| 34812 | 
            +
              "src/cli/validations/mysql.ts"() {
         | 
| 34813 | 
            +
                "use strict";
         | 
| 34814 | 
            +
                init_lib();
         | 
| 34815 | 
            +
                init_views();
         | 
| 34816 | 
            +
                init_common();
         | 
| 34817 | 
            +
                init_outputs();
         | 
| 34818 | 
            +
                mysqlCredentials = unionType([
         | 
| 34819 | 
            +
                  objectType({
         | 
| 34820 | 
            +
                    host: stringType().min(1),
         | 
| 34821 | 
            +
                    port: coerce.number().min(1).optional(),
         | 
| 34822 | 
            +
                    user: stringType().min(1).optional(),
         | 
| 34823 | 
            +
                    password: stringType().min(1).optional(),
         | 
| 34824 | 
            +
                    database: stringType().min(1),
         | 
| 34825 | 
            +
                    ssl: unionType([
         | 
| 34826 | 
            +
                      stringType(),
         | 
| 34827 | 
            +
                      objectType({
         | 
| 34828 | 
            +
                        pfx: stringType().optional(),
         | 
| 34829 | 
            +
                        key: stringType().optional(),
         | 
| 34830 | 
            +
                        passphrase: stringType().optional(),
         | 
| 34831 | 
            +
                        cert: stringType().optional(),
         | 
| 34832 | 
            +
                        ca: unionType([stringType(), stringType().array()]).optional(),
         | 
| 34833 | 
            +
                        crl: unionType([stringType(), stringType().array()]).optional(),
         | 
| 34834 | 
            +
                        ciphers: stringType().optional(),
         | 
| 34835 | 
            +
                        rejectUnauthorized: booleanType().optional()
         | 
| 34836 | 
            +
                      })
         | 
| 34837 | 
            +
                    ]).optional()
         | 
| 34838 | 
            +
                  }),
         | 
| 34839 | 
            +
                  objectType({
         | 
| 34840 | 
            +
                    url: stringType().min(1)
         | 
| 34841 | 
            +
                  })
         | 
| 34842 | 
            +
                ]);
         | 
| 34843 | 
            +
              }
         | 
| 34844 | 
            +
            });
         | 
| 34845 | 
            +
             | 
| 34846 | 
            +
            // src/cli/validations/postgres.ts
         | 
| 34847 | 
            +
            var postgresCredentials;
         | 
| 34848 | 
            +
            var init_postgres = __esm({
         | 
| 34849 | 
            +
              "src/cli/validations/postgres.ts"() {
         | 
| 34850 | 
            +
                "use strict";
         | 
| 34851 | 
            +
                init_lib();
         | 
| 34852 | 
            +
                init_views();
         | 
| 34853 | 
            +
                init_common();
         | 
| 34854 | 
            +
                postgresCredentials = unionType([
         | 
| 34855 | 
            +
                  objectType({
         | 
| 34856 | 
            +
                    driver: undefinedType(),
         | 
| 34857 | 
            +
                    host: stringType().min(1),
         | 
| 34858 | 
            +
                    port: coerce.number().min(1).optional(),
         | 
| 34859 | 
            +
                    user: stringType().min(1).optional(),
         | 
| 34860 | 
            +
                    password: stringType().min(1).optional(),
         | 
| 34861 | 
            +
                    database: stringType().min(1),
         | 
| 34862 | 
            +
                    ssl: unionType([
         | 
| 34863 | 
            +
                      literalType("require"),
         | 
| 34864 | 
            +
                      literalType("allow"),
         | 
| 34865 | 
            +
                      literalType("prefer"),
         | 
| 34866 | 
            +
                      literalType("verify-full"),
         | 
| 34867 | 
            +
                      booleanType(),
         | 
| 34868 | 
            +
                      objectType({}).passthrough()
         | 
| 34869 | 
            +
                    ]).optional()
         | 
| 34870 | 
            +
                  }).transform((o) => {
         | 
| 34871 | 
            +
                    delete o.driver;
         | 
| 34872 | 
            +
                    return o;
         | 
| 34873 | 
            +
                  }),
         | 
| 34874 | 
            +
                  objectType({
         | 
| 34875 | 
            +
                    driver: undefinedType(),
         | 
| 34876 | 
            +
                    url: stringType().min(1)
         | 
| 34877 | 
            +
                  }).transform((o) => {
         | 
| 34878 | 
            +
                    delete o.driver;
         | 
| 34879 | 
            +
                    return o;
         | 
| 34880 | 
            +
                  }),
         | 
| 34881 | 
            +
                  objectType({
         | 
| 34882 | 
            +
                    driver: literalType("aws-data-api"),
         | 
| 34883 | 
            +
                    database: stringType().min(1),
         | 
| 34884 | 
            +
                    secretArn: stringType().min(1),
         | 
| 34885 | 
            +
                    resourceArn: stringType().min(1)
         | 
| 34886 | 
            +
                  }),
         | 
| 34887 | 
            +
                  objectType({
         | 
| 34888 | 
            +
                    driver: literalType("pglite"),
         | 
| 34889 | 
            +
                    url: stringType().min(1)
         | 
| 34890 | 
            +
                  })
         | 
| 34891 | 
            +
                ]);
         | 
| 34892 | 
            +
              }
         | 
| 34893 | 
            +
            });
         | 
| 34894 | 
            +
             | 
| 34895 | 
            +
            // src/cli/validations/sqlite.ts
         | 
| 34896 | 
            +
            var sqliteCredentials;
         | 
| 34897 | 
            +
            var init_sqlite = __esm({
         | 
| 34898 | 
            +
              "src/cli/validations/sqlite.ts"() {
         | 
| 34899 | 
            +
                "use strict";
         | 
| 34900 | 
            +
                init_global();
         | 
| 34901 | 
            +
                init_lib();
         | 
| 34902 | 
            +
                init_views();
         | 
| 34903 | 
            +
                init_common();
         | 
| 34904 | 
            +
                sqliteCredentials = unionType([
         | 
| 34905 | 
            +
                  objectType({
         | 
| 34906 | 
            +
                    driver: literalType("turso"),
         | 
| 34907 | 
            +
                    url: stringType().min(1),
         | 
| 34908 | 
            +
                    authToken: stringType().min(1).optional()
         | 
| 34909 | 
            +
                  }),
         | 
| 34910 | 
            +
                  objectType({
         | 
| 34911 | 
            +
                    driver: literalType("d1-http"),
         | 
| 34912 | 
            +
                    accountId: stringType().min(1),
         | 
| 34913 | 
            +
                    databaseId: stringType().min(1),
         | 
| 34914 | 
            +
                    token: stringType().min(1)
         | 
| 34915 | 
            +
                  }),
         | 
| 34916 | 
            +
                  objectType({
         | 
| 34917 | 
            +
                    driver: undefinedType(),
         | 
| 34918 | 
            +
                    url: stringType().min(1)
         | 
| 34919 | 
            +
                  }).transform((o) => {
         | 
| 34920 | 
            +
                    delete o.driver;
         | 
| 34921 | 
            +
                    return o;
         | 
| 34922 | 
            +
                  })
         | 
| 34923 | 
            +
                ]);
         | 
| 34924 | 
            +
              }
         | 
| 34925 | 
            +
            });
         | 
| 34926 | 
            +
             | 
| 34927 | 
            +
            // src/cli/validations/studio.ts
         | 
| 34928 | 
            +
            var credentials, studioCliParams, studioConfig;
         | 
| 34929 | 
            +
            var init_studio = __esm({
         | 
| 34930 | 
            +
              "src/cli/validations/studio.ts"() {
         | 
| 34931 | 
            +
                "use strict";
         | 
| 34932 | 
            +
                init_lib();
         | 
| 34933 | 
            +
                init_schemaValidator();
         | 
| 34934 | 
            +
                init_mysql();
         | 
| 34935 | 
            +
                init_postgres();
         | 
| 34936 | 
            +
                init_sqlite();
         | 
| 34937 | 
            +
                credentials = intersectionType(
         | 
| 34938 | 
            +
                  postgresCredentials,
         | 
| 34939 | 
            +
                  mysqlCredentials,
         | 
| 34940 | 
            +
                  sqliteCredentials
         | 
| 34941 | 
            +
                );
         | 
| 34942 | 
            +
                studioCliParams = objectType({
         | 
| 34943 | 
            +
                  port: coerce.number().optional().default(4983),
         | 
| 34944 | 
            +
                  host: stringType().optional().default("127.0.0.1"),
         | 
| 34945 | 
            +
                  config: stringType().optional()
         | 
| 34946 | 
            +
                });
         | 
| 34947 | 
            +
                studioConfig = objectType({
         | 
| 34948 | 
            +
                  dialect: dialect3,
         | 
| 34949 | 
            +
                  schema: unionType([stringType(), stringType().array()]).optional()
         | 
| 34950 | 
            +
                });
         | 
| 34951 | 
            +
              }
         | 
| 34952 | 
            +
            });
         | 
| 34953 | 
            +
             | 
| 34954 | 
            +
            // src/cli/commands/_es5.ts
         | 
| 34955 | 
            +
            var es5_exports = {};
         | 
| 34956 | 
            +
            __export(es5_exports, {
         | 
| 34957 | 
            +
              default: () => es5_default
         | 
| 34958 | 
            +
            });
         | 
| 34959 | 
            +
            var _, es5_default;
         | 
| 34960 | 
            +
            var init_es5 = __esm({
         | 
| 34961 | 
            +
              "src/cli/commands/_es5.ts"() {
         | 
| 34962 | 
            +
                "use strict";
         | 
| 34963 | 
            +
                _ = "";
         | 
| 34964 | 
            +
                es5_default = _;
         | 
| 34965 | 
            +
              }
         | 
| 34966 | 
            +
            });
         | 
| 34967 | 
            +
             | 
| 34968 | 
            +
            // src/cli/commands/utils.ts
         | 
| 34969 | 
            +
            var import_hanji7, assertES5, safeRegister, migrateConfig;
         | 
| 34970 | 
            +
            var init_utils8 = __esm({
         | 
| 34971 | 
            +
              "src/cli/commands/utils.ts"() {
         | 
| 34972 | 
            +
                "use strict";
         | 
| 34973 | 
            +
                import_hanji7 = __toESM(require_hanji());
         | 
| 34974 | 
            +
                init_lib();
         | 
| 34975 | 
            +
                init_global();
         | 
| 34976 | 
            +
                init_schemaValidator();
         | 
| 34977 | 
            +
                init_serializer();
         | 
| 34978 | 
            +
                init_cli();
         | 
| 34979 | 
            +
                init_common();
         | 
| 34980 | 
            +
                init_libsql();
         | 
| 34981 | 
            +
                init_libsql();
         | 
| 34982 | 
            +
                init_mysql();
         | 
| 34983 | 
            +
                init_outputs();
         | 
| 34984 | 
            +
                init_postgres();
         | 
| 34985 | 
            +
                init_sqlite();
         | 
| 34986 | 
            +
                init_studio();
         | 
| 34987 | 
            +
                init_views();
         | 
| 34988 | 
            +
                assertES5 = async (unregister) => {
         | 
| 34989 | 
            +
                  try {
         | 
| 34990 | 
            +
                    init_es5();
         | 
| 34991 | 
            +
                  } catch (e) {
         | 
| 34992 | 
            +
                    if ("errors" in e && Array.isArray(e.errors) && e.errors.length > 0) {
         | 
| 34993 | 
            +
                      const es5Error = e.errors.filter((it) => it.text?.includes(`("es5") is not supported yet`)).length > 0;
         | 
| 34994 | 
            +
                      if (es5Error) {
         | 
| 34995 | 
            +
                        console.log(
         | 
| 34996 | 
            +
                          error(
         | 
| 34997 | 
            +
                            `Please change compilerOptions.target from 'es5' to 'es6' or above in your tsconfig.json`
         | 
| 34998 | 
            +
                          )
         | 
| 34999 | 
            +
                        );
         | 
| 35000 | 
            +
                        process.exit(1);
         | 
| 35001 | 
            +
                      }
         | 
| 35002 | 
            +
                    }
         | 
| 35003 | 
            +
                    console.error(e);
         | 
| 35004 | 
            +
                    process.exit(1);
         | 
| 35005 | 
            +
                  }
         | 
| 35006 | 
            +
                };
         | 
| 35007 | 
            +
                safeRegister = async () => {
         | 
| 35008 | 
            +
                  const { register } = require("esbuild-register/dist/node");
         | 
| 35009 | 
            +
                  let res;
         | 
| 35010 | 
            +
                  try {
         | 
| 35011 | 
            +
                    res = register({
         | 
| 35012 | 
            +
                      format: "cjs",
         | 
| 35013 | 
            +
                      loader: "ts"
         | 
| 35014 | 
            +
                    });
         | 
| 35015 | 
            +
                  } catch {
         | 
| 35016 | 
            +
                    res = {
         | 
| 35017 | 
            +
                      unregister: () => {
         | 
| 35018 | 
            +
                      }
         | 
| 35019 | 
            +
                    };
         | 
| 35020 | 
            +
                  }
         | 
| 35021 | 
            +
                  await assertES5(res.unregister);
         | 
| 35022 | 
            +
                  return res;
         | 
| 35023 | 
            +
                };
         | 
| 35024 | 
            +
                migrateConfig = objectType({
         | 
| 35025 | 
            +
                  dialect: dialect3,
         | 
| 35026 | 
            +
                  out: stringType().optional().default("drizzle"),
         | 
| 35027 | 
            +
                  migrations: configMigrations
         | 
| 35028 | 
            +
                });
         | 
| 35029 | 
            +
              }
         | 
| 35030 | 
            +
            });
         | 
| 35031 | 
            +
             | 
| 34154 35032 | 
             
            // src/serializer/pgImports.ts
         | 
| 34155 35033 | 
             
            var prepareFromExports;
         | 
| 34156 35034 | 
             
            var init_pgImports = __esm({
         | 
| @@ -34158,7 +35036,7 @@ var init_pgImports = __esm({ | |
| 34158 35036 | 
             
                "use strict";
         | 
| 34159 35037 | 
             
                init_dist();
         | 
| 34160 35038 | 
             
                init_pg_core();
         | 
| 34161 | 
            -
                 | 
| 35039 | 
            +
                init_utils8();
         | 
| 34162 35040 | 
             
                prepareFromExports = (exports2) => {
         | 
| 34163 35041 | 
             
                  const tables = [];
         | 
| 34164 35042 | 
             
                  const enums = [];
         | 
| @@ -34197,7 +35075,7 @@ var init_sqliteImports = __esm({ | |
| 34197 35075 | 
             
                "use strict";
         | 
| 34198 35076 | 
             
                init_dist();
         | 
| 34199 35077 | 
             
                init_sqlite_core();
         | 
| 34200 | 
            -
                 | 
| 35078 | 
            +
                init_utils8();
         | 
| 34201 35079 | 
             
                prepareFromExports2 = (exports2) => {
         | 
| 34202 35080 | 
             
                  const tables = [];
         | 
| 34203 35081 | 
             
                  const i0values = Object.values(exports2);
         | 
| @@ -34235,7 +35113,7 @@ var init_mysqlImports = __esm({ | |
| 34235 35113 | 
             
                "use strict";
         | 
| 34236 35114 | 
             
                init_dist();
         | 
| 34237 35115 | 
             
                init_mysql_core();
         | 
| 34238 | 
            -
                 | 
| 35116 | 
            +
                init_utils8();
         | 
| 34239 35117 | 
             
                prepareFromExports3 = (exports2) => {
         | 
| 34240 35118 | 
             
                  const tables = [];
         | 
| 34241 35119 | 
             
                  const i0values = Object.values(exports2);
         | 
| @@ -34865,7 +35743,6 @@ var pgSuggestions = async (db, statements) => { | |
| 34865 35743 | 
             
            // src/cli/commands/pgUp.ts
         | 
| 34866 35744 | 
             
            init_pgSchema();
         | 
| 34867 35745 | 
             
            init_utils();
         | 
| 34868 | 
            -
            init_utils6();
         | 
| 34869 35746 | 
             
            var updateUpToV6 = (json) => {
         | 
| 34870 35747 | 
             
              const schema4 = pgSchemaV5.parse(json);
         | 
| 34871 35748 | 
             
              const tables = Object.fromEntries(
         | 
| @@ -34929,7 +35806,7 @@ var updateUpToV7 = (json) => { | |
| 34929 35806 | 
             
            };
         | 
| 34930 35807 |  | 
| 34931 35808 | 
             
            // src/cli/commands/sqliteIntrospect.ts
         | 
| 34932 | 
            -
            var  | 
| 35809 | 
            +
            var import_hanji6 = __toESM(require_hanji());
         | 
| 34933 35810 | 
             
            init_mjs();
         | 
| 34934 35811 | 
             
            init_global();
         | 
| 34935 35812 |  | 
| @@ -35068,289 +35945,13 @@ var sqlitePushIntrospect = async (db, filters) => { | |
| 35068 35945 | 
             
                "Pulling schema from database...",
         | 
| 35069 35946 | 
             
                "Pulling schema from database..."
         | 
| 35070 35947 | 
             
              );
         | 
| 35071 | 
            -
              const res = await (0,  | 
| 35948 | 
            +
              const res = await (0, import_hanji6.renderWithTask)(progress, fromDatabase2(db, filter2));
         | 
| 35072 35949 | 
             
              const schema4 = { id: originUUID, prevId: "", ...res };
         | 
| 35073 35950 | 
             
              return { schema: schema4 };
         | 
| 35074 35951 | 
             
            };
         | 
| 35075 35952 |  | 
| 35076 | 
            -
            // src/cli/commands/sqlitePushUtils.ts
         | 
| 35077 | 
            -
            init_source();
         | 
| 35078 | 
            -
            init_sqliteSchema();
         | 
| 35079 | 
            -
            init_sqlgenerator();
         | 
| 35080 | 
            -
            var _moveDataStatements = (tableName, json, dataLoss = false) => {
         | 
| 35081 | 
            -
              const statements = [];
         | 
| 35082 | 
            -
              statements.push(
         | 
| 35083 | 
            -
                new SqliteRenameTableConvertor().convert({
         | 
| 35084 | 
            -
                  type: "rename_table",
         | 
| 35085 | 
            -
                  tableNameFrom: tableName,
         | 
| 35086 | 
            -
                  tableNameTo: `__old_push_${tableName}`,
         | 
| 35087 | 
            -
                  fromSchema: "",
         | 
| 35088 | 
            -
                  toSchema: ""
         | 
| 35089 | 
            -
                })
         | 
| 35090 | 
            -
              );
         | 
| 35091 | 
            -
              const tableColumns = Object.values(json.tables[tableName].columns);
         | 
| 35092 | 
            -
              const referenceData = Object.values(json.tables[tableName].foreignKeys);
         | 
| 35093 | 
            -
              const compositePKs = Object.values(
         | 
| 35094 | 
            -
                json.tables[tableName].compositePrimaryKeys
         | 
| 35095 | 
            -
              ).map((it) => SQLiteSquasher.unsquashPK(it));
         | 
| 35096 | 
            -
              const fks = referenceData.map((it) => SQLiteSquasher.unsquashPushFK(it));
         | 
| 35097 | 
            -
              statements.push(
         | 
| 35098 | 
            -
                new SQLiteCreateTableConvertor().convert({
         | 
| 35099 | 
            -
                  type: "sqlite_create_table",
         | 
| 35100 | 
            -
                  tableName,
         | 
| 35101 | 
            -
                  columns: tableColumns,
         | 
| 35102 | 
            -
                  referenceData: fks,
         | 
| 35103 | 
            -
                  compositePKs
         | 
| 35104 | 
            -
                })
         | 
| 35105 | 
            -
              );
         | 
| 35106 | 
            -
              if (!dataLoss) {
         | 
| 35107 | 
            -
                statements.push(
         | 
| 35108 | 
            -
                  `INSERT INTO "${tableName}" SELECT * FROM "__old_push_${tableName}";`
         | 
| 35109 | 
            -
                );
         | 
| 35110 | 
            -
              }
         | 
| 35111 | 
            -
              statements.push(
         | 
| 35112 | 
            -
                new SQLiteDropTableConvertor().convert({
         | 
| 35113 | 
            -
                  type: "drop_table",
         | 
| 35114 | 
            -
                  tableName: `__old_push_${tableName}`,
         | 
| 35115 | 
            -
                  schema: ""
         | 
| 35116 | 
            -
                })
         | 
| 35117 | 
            -
              );
         | 
| 35118 | 
            -
              for (const idx of Object.values(json.tables[tableName].indexes)) {
         | 
| 35119 | 
            -
                statements.push(
         | 
| 35120 | 
            -
                  new CreateSqliteIndexConvertor().convert({
         | 
| 35121 | 
            -
                    type: "create_index",
         | 
| 35122 | 
            -
                    tableName,
         | 
| 35123 | 
            -
                    schema: "",
         | 
| 35124 | 
            -
                    data: idx
         | 
| 35125 | 
            -
                  })
         | 
| 35126 | 
            -
                );
         | 
| 35127 | 
            -
              }
         | 
| 35128 | 
            -
              return statements;
         | 
| 35129 | 
            -
            };
         | 
| 35130 | 
            -
            var getOldTableName = (tableName, meta) => {
         | 
| 35131 | 
            -
              for (const key of Object.keys(meta.tables)) {
         | 
| 35132 | 
            -
                const value = meta.tables[key];
         | 
| 35133 | 
            -
                if (`"${tableName}"` === value) {
         | 
| 35134 | 
            -
                  return key.substring(1, key.length - 1);
         | 
| 35135 | 
            -
                }
         | 
| 35136 | 
            -
              }
         | 
| 35137 | 
            -
              return tableName;
         | 
| 35138 | 
            -
            };
         | 
| 35139 | 
            -
            var getNewTableName = (tableName, meta) => {
         | 
| 35140 | 
            -
              if (typeof meta.tables[`"${tableName}"`] !== "undefined") {
         | 
| 35141 | 
            -
                return meta.tables[`"${tableName}"`].substring(
         | 
| 35142 | 
            -
                  1,
         | 
| 35143 | 
            -
                  meta.tables[`"${tableName}"`].length - 1
         | 
| 35144 | 
            -
                );
         | 
| 35145 | 
            -
              }
         | 
| 35146 | 
            -
              return tableName;
         | 
| 35147 | 
            -
            };
         | 
| 35148 | 
            -
            var logSuggestionsAndReturn = async (connection, statements, json1, json2, meta) => {
         | 
| 35149 | 
            -
              let shouldAskForApprove = false;
         | 
| 35150 | 
            -
              const statementsToExecute = [];
         | 
| 35151 | 
            -
              const infoToPrint = [];
         | 
| 35152 | 
            -
              const tablesToRemove = [];
         | 
| 35153 | 
            -
              const columnsToRemove = [];
         | 
| 35154 | 
            -
              const schemasToRemove = [];
         | 
| 35155 | 
            -
              const tablesToTruncate = [];
         | 
| 35156 | 
            -
              const tablesContext = {};
         | 
| 35157 | 
            -
              for (const statement of statements) {
         | 
| 35158 | 
            -
                if (statement.type === "drop_table") {
         | 
| 35159 | 
            -
                  const res = await connection.query(
         | 
| 35160 | 
            -
                    `select count(*) as count from \`${statement.tableName}\``
         | 
| 35161 | 
            -
                  );
         | 
| 35162 | 
            -
                  const count2 = Number(res[0].count);
         | 
| 35163 | 
            -
                  if (count2 > 0) {
         | 
| 35164 | 
            -
                    infoToPrint.push(
         | 
| 35165 | 
            -
                      `\xB7 You're about to delete ${source_default.underline(
         | 
| 35166 | 
            -
                        statement.tableName
         | 
| 35167 | 
            -
                      )} table with ${count2} items`
         | 
| 35168 | 
            -
                    );
         | 
| 35169 | 
            -
                    tablesToRemove.push(statement.tableName);
         | 
| 35170 | 
            -
                    shouldAskForApprove = true;
         | 
| 35171 | 
            -
                  }
         | 
| 35172 | 
            -
                  const stmnt = fromJson([statement], "sqlite")[0];
         | 
| 35173 | 
            -
                  statementsToExecute.push(stmnt);
         | 
| 35174 | 
            -
                } else if (statement.type === "alter_table_drop_column") {
         | 
| 35175 | 
            -
                  const newTableName = getOldTableName(statement.tableName, meta);
         | 
| 35176 | 
            -
                  const columnIsPartOfPk = Object.values(
         | 
| 35177 | 
            -
                    json1.tables[newTableName].compositePrimaryKeys
         | 
| 35178 | 
            -
                  ).find((c) => SQLiteSquasher.unsquashPK(c).includes(statement.columnName));
         | 
| 35179 | 
            -
                  const columnIsPartOfIndex = Object.values(
         | 
| 35180 | 
            -
                    json1.tables[newTableName].indexes
         | 
| 35181 | 
            -
                  ).find((c) => SQLiteSquasher.unsquashIdx(c).columns.includes(statement.columnName));
         | 
| 35182 | 
            -
                  const columnIsPk = json1.tables[newTableName].columns[statement.columnName].primaryKey;
         | 
| 35183 | 
            -
                  const columnIsPartOfFk = Object.values(
         | 
| 35184 | 
            -
                    json1.tables[newTableName].foreignKeys
         | 
| 35185 | 
            -
                  ).find(
         | 
| 35186 | 
            -
                    (t) => SQLiteSquasher.unsquashPushFK(t).columnsFrom.includes(
         | 
| 35187 | 
            -
                      statement.columnName
         | 
| 35188 | 
            -
                    )
         | 
| 35189 | 
            -
                  );
         | 
| 35190 | 
            -
                  const res = await connection.query(
         | 
| 35191 | 
            -
                    `select count(*) as count from \`${newTableName}\``
         | 
| 35192 | 
            -
                  );
         | 
| 35193 | 
            -
                  const count2 = Number(res[0].count);
         | 
| 35194 | 
            -
                  if (count2 > 0) {
         | 
| 35195 | 
            -
                    infoToPrint.push(
         | 
| 35196 | 
            -
                      `\xB7 You're about to delete ${source_default.underline(
         | 
| 35197 | 
            -
                        statement.columnName
         | 
| 35198 | 
            -
                      )} column in ${newTableName} table with ${count2} items`
         | 
| 35199 | 
            -
                    );
         | 
| 35200 | 
            -
                    columnsToRemove.push(`${newTableName}_${statement.columnName}`);
         | 
| 35201 | 
            -
                    shouldAskForApprove = true;
         | 
| 35202 | 
            -
                  }
         | 
| 35203 | 
            -
                  if (columnIsPk || columnIsPartOfPk || columnIsPartOfIndex || columnIsPartOfFk) {
         | 
| 35204 | 
            -
                    tablesContext[newTableName] = [
         | 
| 35205 | 
            -
                      ..._moveDataStatements(statement.tableName, json2, true)
         | 
| 35206 | 
            -
                    ];
         | 
| 35207 | 
            -
                    const tablesReferncingCurrent = [];
         | 
| 35208 | 
            -
                    for (const table4 of Object.values(json1.tables)) {
         | 
| 35209 | 
            -
                      const tablesRefs = Object.values(json1.tables[table4.name].foreignKeys).filter(
         | 
| 35210 | 
            -
                        (t) => SQLiteSquasher.unsquashPushFK(t).tableTo === newTableName
         | 
| 35211 | 
            -
                      ).map((t) => SQLiteSquasher.unsquashPushFK(t).tableFrom);
         | 
| 35212 | 
            -
                      tablesReferncingCurrent.push(...tablesRefs);
         | 
| 35213 | 
            -
                    }
         | 
| 35214 | 
            -
                    const uniqueTableRefs = [...new Set(tablesReferncingCurrent)];
         | 
| 35215 | 
            -
                    for (const table4 of uniqueTableRefs) {
         | 
| 35216 | 
            -
                      if (typeof tablesContext[table4] === "undefined") {
         | 
| 35217 | 
            -
                        tablesContext[table4] = [..._moveDataStatements(table4, json2)];
         | 
| 35218 | 
            -
                      }
         | 
| 35219 | 
            -
                    }
         | 
| 35220 | 
            -
                  } else {
         | 
| 35221 | 
            -
                    if (typeof tablesContext[newTableName] === "undefined") {
         | 
| 35222 | 
            -
                      const stmnt = fromJson([statement], "sqlite")[0];
         | 
| 35223 | 
            -
                      statementsToExecute.push(stmnt);
         | 
| 35224 | 
            -
                    }
         | 
| 35225 | 
            -
                  }
         | 
| 35226 | 
            -
                } else if (statement.type === "sqlite_alter_table_add_column") {
         | 
| 35227 | 
            -
                  const newTableName = getOldTableName(statement.tableName, meta);
         | 
| 35228 | 
            -
                  if (statement.column.notNull && !statement.column.default) {
         | 
| 35229 | 
            -
                    const res = await connection.query(
         | 
| 35230 | 
            -
                      `select count(*) as count from \`${newTableName}\``
         | 
| 35231 | 
            -
                    );
         | 
| 35232 | 
            -
                    const count2 = Number(res[0].count);
         | 
| 35233 | 
            -
                    if (count2 > 0) {
         | 
| 35234 | 
            -
                      infoToPrint.push(
         | 
| 35235 | 
            -
                        `\xB7 You're about to add not-null ${source_default.underline(
         | 
| 35236 | 
            -
                          statement.column.name
         | 
| 35237 | 
            -
                        )} column without default value, which contains ${count2} items`
         | 
| 35238 | 
            -
                      );
         | 
| 35239 | 
            -
                      tablesToTruncate.push(newTableName);
         | 
| 35240 | 
            -
                      statementsToExecute.push(`delete from ${newTableName};`);
         | 
| 35241 | 
            -
                      shouldAskForApprove = true;
         | 
| 35242 | 
            -
                    }
         | 
| 35243 | 
            -
                  }
         | 
| 35244 | 
            -
                  if (statement.column.primaryKey) {
         | 
| 35245 | 
            -
                    tablesContext[newTableName] = [
         | 
| 35246 | 
            -
                      ..._moveDataStatements(statement.tableName, json2, true)
         | 
| 35247 | 
            -
                    ];
         | 
| 35248 | 
            -
                    const tablesReferncingCurrent = [];
         | 
| 35249 | 
            -
                    for (const table4 of Object.values(json1.tables)) {
         | 
| 35250 | 
            -
                      const tablesRefs = Object.values(json1.tables[table4.name].foreignKeys).filter(
         | 
| 35251 | 
            -
                        (t) => SQLiteSquasher.unsquashPushFK(t).tableTo === newTableName
         | 
| 35252 | 
            -
                      ).map((t) => SQLiteSquasher.unsquashPushFK(t).tableFrom);
         | 
| 35253 | 
            -
                      tablesReferncingCurrent.push(...tablesRefs);
         | 
| 35254 | 
            -
                    }
         | 
| 35255 | 
            -
                    const uniqueTableRefs = [...new Set(tablesReferncingCurrent)];
         | 
| 35256 | 
            -
                    for (const table4 of uniqueTableRefs) {
         | 
| 35257 | 
            -
                      if (typeof tablesContext[table4] === "undefined") {
         | 
| 35258 | 
            -
                        tablesContext[table4] = [..._moveDataStatements(table4, json2)];
         | 
| 35259 | 
            -
                      }
         | 
| 35260 | 
            -
                    }
         | 
| 35261 | 
            -
                  } else {
         | 
| 35262 | 
            -
                    if (typeof tablesContext[newTableName] === "undefined") {
         | 
| 35263 | 
            -
                      const stmnt = fromJson([statement], "sqlite")[0];
         | 
| 35264 | 
            -
                      statementsToExecute.push(stmnt);
         | 
| 35265 | 
            -
                    }
         | 
| 35266 | 
            -
                  }
         | 
| 35267 | 
            -
                } 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") {
         | 
| 35268 | 
            -
                  if (!(statement.type === "alter_table_alter_column_set_notnull" && statement.columnPk)) {
         | 
| 35269 | 
            -
                    const newTableName = getOldTableName(statement.tableName, meta);
         | 
| 35270 | 
            -
                    if (statement.type === "alter_table_alter_column_set_notnull" && typeof statement.columnDefault === "undefined") {
         | 
| 35271 | 
            -
                      const res = await connection.query(
         | 
| 35272 | 
            -
                        `select count(*) as count from \`${newTableName}\``
         | 
| 35273 | 
            -
                      );
         | 
| 35274 | 
            -
                      const count2 = Number(res[0].count);
         | 
| 35275 | 
            -
                      if (count2 > 0) {
         | 
| 35276 | 
            -
                        infoToPrint.push(
         | 
| 35277 | 
            -
                          `\xB7 You're about to add not-null constraint to ${source_default.underline(
         | 
| 35278 | 
            -
                            statement.columnName
         | 
| 35279 | 
            -
                          )} column without default value, which contains ${count2} items`
         | 
| 35280 | 
            -
                        );
         | 
| 35281 | 
            -
                        tablesToTruncate.push(newTableName);
         | 
| 35282 | 
            -
                        shouldAskForApprove = true;
         | 
| 35283 | 
            -
                      }
         | 
| 35284 | 
            -
                      tablesContext[newTableName] = _moveDataStatements(
         | 
| 35285 | 
            -
                        statement.tableName,
         | 
| 35286 | 
            -
                        json1,
         | 
| 35287 | 
            -
                        true
         | 
| 35288 | 
            -
                      );
         | 
| 35289 | 
            -
                    } else {
         | 
| 35290 | 
            -
                      if (typeof tablesContext[newTableName] === "undefined") {
         | 
| 35291 | 
            -
                        tablesContext[newTableName] = _moveDataStatements(
         | 
| 35292 | 
            -
                          statement.tableName,
         | 
| 35293 | 
            -
                          json1
         | 
| 35294 | 
            -
                        );
         | 
| 35295 | 
            -
                      }
         | 
| 35296 | 
            -
                    }
         | 
| 35297 | 
            -
                    const tablesReferncingCurrent = [];
         | 
| 35298 | 
            -
                    for (const table4 of Object.values(json1.tables)) {
         | 
| 35299 | 
            -
                      const tablesRefs = Object.values(json1.tables[table4.name].foreignKeys).filter(
         | 
| 35300 | 
            -
                        (t) => SQLiteSquasher.unsquashPushFK(t).tableTo === newTableName
         | 
| 35301 | 
            -
                      ).map((t) => {
         | 
| 35302 | 
            -
                        return getNewTableName(
         | 
| 35303 | 
            -
                          SQLiteSquasher.unsquashPushFK(t).tableFrom,
         | 
| 35304 | 
            -
                          meta
         | 
| 35305 | 
            -
                        );
         | 
| 35306 | 
            -
                      });
         | 
| 35307 | 
            -
                      tablesReferncingCurrent.push(...tablesRefs);
         | 
| 35308 | 
            -
                    }
         | 
| 35309 | 
            -
                    const uniqueTableRefs = [...new Set(tablesReferncingCurrent)];
         | 
| 35310 | 
            -
                    for (const table4 of uniqueTableRefs) {
         | 
| 35311 | 
            -
                      if (typeof tablesContext[table4] === "undefined") {
         | 
| 35312 | 
            -
                        tablesContext[table4] = [..._moveDataStatements(table4, json1)];
         | 
| 35313 | 
            -
                      }
         | 
| 35314 | 
            -
                    }
         | 
| 35315 | 
            -
                  }
         | 
| 35316 | 
            -
                } else if (statement.type === "create_reference" || statement.type === "delete_reference" || statement.type === "alter_reference") {
         | 
| 35317 | 
            -
                  const fk4 = SQLiteSquasher.unsquashPushFK(statement.data);
         | 
| 35318 | 
            -
                  if (typeof tablesContext[statement.tableName] === "undefined") {
         | 
| 35319 | 
            -
                    tablesContext[statement.tableName] = _moveDataStatements(
         | 
| 35320 | 
            -
                      statement.tableName,
         | 
| 35321 | 
            -
                      json2
         | 
| 35322 | 
            -
                    );
         | 
| 35323 | 
            -
                  }
         | 
| 35324 | 
            -
                } 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") {
         | 
| 35325 | 
            -
                  const newTableName = getOldTableName(statement.tableName, meta);
         | 
| 35326 | 
            -
                  if (typeof tablesContext[newTableName] === "undefined") {
         | 
| 35327 | 
            -
                    tablesContext[newTableName] = _moveDataStatements(
         | 
| 35328 | 
            -
                      statement.tableName,
         | 
| 35329 | 
            -
                      json2
         | 
| 35330 | 
            -
                    );
         | 
| 35331 | 
            -
                  }
         | 
| 35332 | 
            -
                } else {
         | 
| 35333 | 
            -
                  const stmnt = fromJson([statement], "sqlite");
         | 
| 35334 | 
            -
                  if (typeof stmnt !== "undefined") {
         | 
| 35335 | 
            -
                    statementsToExecute.push(...stmnt);
         | 
| 35336 | 
            -
                  }
         | 
| 35337 | 
            -
                }
         | 
| 35338 | 
            -
              }
         | 
| 35339 | 
            -
              for (const context of Object.values(tablesContext)) {
         | 
| 35340 | 
            -
                statementsToExecute.push(...context);
         | 
| 35341 | 
            -
              }
         | 
| 35342 | 
            -
              return {
         | 
| 35343 | 
            -
                statementsToExecute,
         | 
| 35344 | 
            -
                shouldAskForApprove,
         | 
| 35345 | 
            -
                infoToPrint,
         | 
| 35346 | 
            -
                columnsToRemove: [...new Set(columnsToRemove)],
         | 
| 35347 | 
            -
                schemasToRemove: [...new Set(schemasToRemove)],
         | 
| 35348 | 
            -
                tablesToTruncate: [...new Set(tablesToTruncate)],
         | 
| 35349 | 
            -
                tablesToRemove: [...new Set(tablesToRemove)]
         | 
| 35350 | 
            -
              };
         | 
| 35351 | 
            -
            };
         | 
| 35352 | 
            -
             | 
| 35353 35953 | 
             
            // src/api.ts
         | 
| 35954 | 
            +
            init_sqlitePushUtils();
         | 
| 35354 35955 | 
             
            init_global();
         | 
| 35355 35956 | 
             
            init_migrationPreparator();
         | 
| 35356 35957 | 
             
            init_mysqlSchema();
         |