d1s 0.2.6 → 0.2.8

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.
Files changed (247) hide show
  1. package/README.md +3 -1
  2. package/dist/.next/.next/BUILD_ID +1 -1
  3. package/dist/.next/.next/app-build-manifest.json +34 -27
  4. package/dist/.next/.next/app-path-routes-manifest.json +1 -1
  5. package/dist/.next/.next/build-manifest.json +2 -2
  6. package/dist/.next/.next/cache/.rscinfo +1 -1
  7. package/dist/.next/.next/cache/.tsbuildinfo +1 -1
  8. package/dist/.next/.next/cache/webpack/client-development/0.pack.gz +0 -0
  9. package/dist/.next/.next/cache/webpack/client-development/1.pack.gz +0 -0
  10. package/dist/.next/.next/cache/webpack/client-development/2.pack.gz +0 -0
  11. package/dist/.next/.next/cache/webpack/client-development/3.pack.gz +0 -0
  12. package/dist/.next/.next/cache/webpack/client-development/4.pack.gz +0 -0
  13. package/dist/.next/.next/cache/webpack/client-development/index.pack.gz +0 -0
  14. package/dist/.next/.next/cache/webpack/client-development/index.pack.gz.old +0 -0
  15. package/dist/.next/.next/cache/webpack/client-production/0.pack +0 -0
  16. package/dist/.next/.next/cache/webpack/client-production/1.pack +0 -0
  17. package/dist/.next/.next/cache/webpack/client-production/10.pack +0 -0
  18. package/dist/.next/.next/cache/webpack/client-production/11.pack +0 -0
  19. package/dist/.next/.next/cache/webpack/client-production/12.pack +0 -0
  20. package/dist/.next/.next/cache/webpack/client-production/13.pack +0 -0
  21. package/dist/.next/.next/cache/webpack/client-production/14.pack +0 -0
  22. package/dist/.next/.next/cache/webpack/client-production/2.pack +0 -0
  23. package/dist/.next/.next/cache/webpack/client-production/3.pack +0 -0
  24. package/dist/.next/.next/cache/webpack/client-production/4.pack +0 -0
  25. package/dist/.next/.next/cache/webpack/client-production/5.pack +0 -0
  26. package/dist/.next/.next/cache/webpack/client-production/6.pack +0 -0
  27. package/dist/.next/.next/cache/webpack/client-production/7.pack +0 -0
  28. package/dist/.next/.next/cache/webpack/client-production/8.pack +0 -0
  29. package/dist/.next/.next/cache/webpack/client-production/9.pack +0 -0
  30. package/dist/.next/.next/cache/webpack/client-production/index.pack +0 -0
  31. package/dist/.next/.next/cache/webpack/client-production/index.pack.old +0 -0
  32. package/dist/.next/.next/cache/webpack/edge-server-production/index.pack +0 -0
  33. package/dist/.next/.next/cache/webpack/server-development/0.pack.gz +0 -0
  34. package/dist/.next/.next/cache/webpack/server-development/1.pack.gz +0 -0
  35. package/dist/.next/.next/cache/webpack/server-development/2.pack.gz +0 -0
  36. package/dist/.next/.next/cache/webpack/server-development/3.pack.gz +0 -0
  37. package/dist/.next/.next/cache/webpack/server-development/4.pack.gz +0 -0
  38. package/dist/.next/.next/cache/webpack/server-development/index.pack.gz +0 -0
  39. package/dist/.next/.next/cache/webpack/server-development/index.pack.gz.old +0 -0
  40. package/dist/.next/.next/cache/webpack/server-production/0.pack +0 -0
  41. package/dist/.next/.next/cache/webpack/server-production/1.pack +0 -0
  42. package/dist/.next/.next/cache/webpack/server-production/10.pack +0 -0
  43. package/dist/.next/.next/cache/webpack/server-production/11.pack +0 -0
  44. package/dist/.next/.next/cache/webpack/server-production/12.pack +0 -0
  45. package/dist/.next/.next/cache/webpack/server-production/13.pack +0 -0
  46. package/dist/.next/.next/cache/webpack/server-production/2.pack +0 -0
  47. package/dist/.next/.next/cache/webpack/server-production/3.pack +0 -0
  48. package/dist/.next/.next/cache/webpack/server-production/4.pack +0 -0
  49. package/dist/.next/.next/cache/webpack/server-production/5.pack +0 -0
  50. package/dist/.next/.next/cache/webpack/server-production/6.pack +0 -0
  51. package/dist/.next/.next/cache/webpack/server-production/7.pack +0 -0
  52. package/dist/.next/.next/cache/webpack/server-production/8.pack +0 -0
  53. package/dist/.next/.next/cache/webpack/server-production/9.pack +0 -0
  54. package/dist/.next/.next/cache/webpack/server-production/index.pack +0 -0
  55. package/dist/.next/.next/cache/webpack/server-production/index.pack.old +0 -0
  56. package/dist/.next/.next/next-minimal-server.js.nft.json +1 -1
  57. package/dist/.next/.next/next-server.js.nft.json +1 -1
  58. package/dist/.next/.next/prerender-manifest.json +1 -1
  59. package/dist/.next/.next/server/app/_not-found/page.js +1 -1
  60. package/dist/.next/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  61. package/dist/.next/.next/server/app/_not-found.html +1 -1
  62. package/dist/.next/.next/server/app/_not-found.rsc +2 -2
  63. package/dist/.next/.next/server/app/api/cloudflare/route.js +1 -1
  64. package/dist/.next/.next/server/app/api/cloudflare/route.js.nft.json +1 -1
  65. package/dist/.next/.next/server/app/api/cloudflare/route_client-reference-manifest.js +1 -1
  66. package/dist/.next/.next/server/app/api/databases/route.js +1 -1
  67. package/dist/.next/.next/server/app/api/databases/route.js.nft.json +1 -1
  68. package/dist/.next/.next/server/app/api/databases/route_client-reference-manifest.js +1 -1
  69. package/dist/.next/.next/server/app/api/migrations/sync/route.js +3 -3
  70. package/dist/.next/.next/server/app/api/migrations/sync/route.js.nft.json +1 -1
  71. package/dist/.next/.next/server/app/api/migrations/sync/route_client-reference-manifest.js +1 -1
  72. package/dist/.next/.next/server/app/api/migrations/sync-files/route.js +1 -1
  73. package/dist/.next/.next/server/app/api/migrations/sync-files/route.js.nft.json +1 -1
  74. package/dist/.next/.next/server/app/api/migrations/sync-files/route_client-reference-manifest.js +1 -1
  75. package/dist/.next/.next/server/app/api/pull-remote/confirm/route.js +1 -1
  76. package/dist/.next/.next/server/app/api/pull-remote/confirm/route.js.nft.json +1 -1
  77. package/dist/.next/.next/server/app/api/pull-remote/confirm/route_client-reference-manifest.js +1 -1
  78. package/dist/.next/.next/server/app/api/pull-remote/preview/route.js +1 -1
  79. package/dist/.next/.next/server/app/api/pull-remote/preview/route.js.nft.json +1 -1
  80. package/dist/.next/.next/server/app/api/pull-remote/preview/route_client-reference-manifest.js +1 -1
  81. package/dist/.next/.next/server/app/api/push-remote/confirm/route.js +2 -2
  82. package/dist/.next/.next/server/app/api/push-remote/confirm/route.js.nft.json +1 -1
  83. package/dist/.next/.next/server/app/api/push-remote/confirm/route_client-reference-manifest.js +1 -1
  84. package/dist/.next/.next/server/app/api/push-remote/preview/route.js +2 -2
  85. package/dist/.next/.next/server/app/api/push-remote/preview/route.js.nft.json +1 -1
  86. package/dist/.next/.next/server/app/api/push-remote/preview/route_client-reference-manifest.js +1 -1
  87. package/dist/.next/.next/server/app/api/query/route.js +2 -2
  88. package/dist/.next/.next/server/app/api/query/route.js.nft.json +1 -1
  89. package/dist/.next/.next/server/app/api/query/route_client-reference-manifest.js +1 -1
  90. package/dist/.next/.next/server/app/api/tables/[name]/route.js +4 -4
  91. package/dist/.next/.next/server/app/api/tables/[name]/route.js.nft.json +1 -1
  92. package/dist/.next/.next/server/app/api/tables/[name]/route_client-reference-manifest.js +1 -1
  93. package/dist/.next/.next/server/app/api/tables/route.js +2 -2
  94. package/dist/.next/.next/server/app/api/tables/route.js.nft.json +1 -1
  95. package/dist/.next/.next/server/app/api/tables/route_client-reference-manifest.js +1 -1
  96. package/dist/.next/.next/server/app/api/update/route.js +5 -0
  97. package/dist/.next/.next/server/app/api/update/route.js.nft.json +1 -0
  98. package/dist/.next/.next/server/app/api/update/route_client-reference-manifest.js +1 -0
  99. package/dist/.next/.next/server/app/index.html +3 -3
  100. package/dist/.next/.next/server/app/index.rsc +3 -3
  101. package/dist/.next/.next/server/app/page.js +14 -12
  102. package/dist/.next/.next/server/app/page_client-reference-manifest.js +1 -1
  103. package/dist/.next/.next/server/app-paths-manifest.json +4 -3
  104. package/dist/.next/.next/server/chunks/336.js +1 -1
  105. package/dist/.next/.next/server/chunks/391.js +23 -0
  106. package/dist/.next/.next/server/chunks/452.js +1 -0
  107. package/dist/.next/.next/server/chunks/627.js +3 -3
  108. package/dist/.next/.next/server/chunks/638.js +3 -3
  109. package/dist/.next/.next/server/chunks/801.js +55 -0
  110. package/dist/.next/.next/server/chunks/992.js +3 -3
  111. package/dist/.next/.next/server/pages/404.html +1 -1
  112. package/dist/.next/.next/server/pages/500.html +1 -1
  113. package/dist/.next/.next/server/pages/_app.js +1 -1
  114. package/dist/.next/.next/server/pages/_document.js +1 -1
  115. package/dist/.next/.next/server/pages/_error.js +1 -1
  116. package/dist/.next/.next/server/pages-manifest.json +1 -1
  117. package/dist/.next/.next/server/server-reference-manifest.json +1 -1
  118. package/dist/.next/.next/static/JrwgdSDcipr0Zh7k19Cj_/_buildManifest.js +1 -0
  119. package/dist/.next/.next/static/chunks/958-98887928efebfdf7.js +1 -0
  120. package/dist/.next/.next/static/chunks/app/api/cloudflare/route-5133155a604f2719.js +1 -0
  121. package/dist/.next/.next/static/chunks/app/api/databases/route-63a31080b565794e.js +1 -0
  122. package/dist/.next/.next/static/chunks/app/api/migrations/sync/route-d97667565b4a59b6.js +1 -0
  123. package/dist/.next/.next/static/chunks/app/api/migrations/sync-files/route-7089bcbfeb6b5260.js +1 -0
  124. package/dist/.next/.next/static/chunks/app/api/pull-remote/confirm/route-9143e6e4c3f05162.js +1 -0
  125. package/dist/.next/.next/static/chunks/app/api/pull-remote/preview/route-c963d143a51aed66.js +1 -0
  126. package/dist/.next/.next/static/chunks/app/api/push-remote/confirm/route-072132c0a6cb3df3.js +1 -0
  127. package/dist/.next/.next/static/chunks/app/api/push-remote/preview/route-ca6bf35aa72661ee.js +1 -0
  128. package/dist/.next/.next/static/chunks/app/api/query/route-1466f6b7ffd8b6c0.js +1 -0
  129. package/dist/.next/.next/static/chunks/app/api/tables/[name]/route-898d3f85fc8544c4.js +1 -0
  130. package/dist/.next/.next/static/chunks/app/api/tables/route-91650359fc3735cb.js +1 -0
  131. package/dist/.next/.next/static/chunks/app/api/update/route-504d663df9124f97.js +1 -0
  132. package/dist/.next/.next/static/chunks/app/page-2c28a255a4ecd8d4.js +1 -0
  133. package/dist/.next/.next/static/chunks/app/page-3db7feef57019055.js +1 -0
  134. package/dist/.next/.next/static/css/4957328384ed5c42.css +3 -0
  135. package/dist/.next/.next/static/gc8l1G6KXOeLLOM7VJip6/_buildManifest.js +1 -0
  136. package/dist/.next/.next/static/kYsJoni86CJWDuTkc1xU6/_buildManifest.js +1 -0
  137. package/dist/.next/.next/static/kYsJoni86CJWDuTkc1xU6/_ssgManifest.js +1 -0
  138. package/dist/.next/.next/static/scC5qwQC9H7rR1groM0Q-/_ssgManifest.js +1 -0
  139. package/dist/.next/.next/static/tEHOI_-t-iqfJClNzuo9m/_buildManifest.js +1 -0
  140. package/dist/.next/.next/static/tEHOI_-t-iqfJClNzuo9m/_ssgManifest.js +1 -0
  141. package/dist/.next/.next/static/vin2VQs5pM_dH2e2_I7AN/_buildManifest.js +1 -0
  142. package/dist/.next/.next/static/vin2VQs5pM_dH2e2_I7AN/_ssgManifest.js +1 -0
  143. package/dist/.next/.next/static/wHKwQhaxin5_i06GFVDHb/_buildManifest.js +1 -0
  144. package/dist/.next/.next/static/wHKwQhaxin5_i06GFVDHb/_ssgManifest.js +1 -0
  145. package/dist/.next/.next/static/xW4MspD8XibrhXDi_q2IO/_ssgManifest.js +1 -0
  146. package/dist/.next/.next/trace +3 -3
  147. package/dist/.next/.next/types/app/api/update/route.ts +347 -0
  148. package/dist/.next/BUILD_ID +1 -1
  149. package/dist/.next/app-build-manifest.json +17 -17
  150. package/dist/.next/app-path-routes-manifest.json +1 -1
  151. package/dist/.next/build-manifest.json +2 -2
  152. package/dist/.next/cache/.rscinfo +1 -1
  153. package/dist/.next/cache/.tsbuildinfo +1 -1
  154. package/dist/.next/cache/webpack/client-production/0.pack +0 -0
  155. package/dist/.next/cache/webpack/client-production/index.pack +0 -0
  156. package/dist/.next/cache/webpack/edge-server-production/index.pack +0 -0
  157. package/dist/.next/cache/webpack/server-production/0.pack +0 -0
  158. package/dist/.next/cache/webpack/server-production/index.pack +0 -0
  159. package/dist/.next/next-minimal-server.js.nft.json +1 -1
  160. package/dist/.next/next-server.js.nft.json +1 -1
  161. package/dist/.next/prerender-manifest.json +1 -1
  162. package/dist/.next/server/app/_not-found.html +1 -1
  163. package/dist/.next/server/app/_not-found.rsc +1 -1
  164. package/dist/.next/server/app/api/cloudflare/route.js +1 -1
  165. package/dist/.next/server/app/api/databases/route.js +1 -1
  166. package/dist/.next/server/app/api/migrations/sync/route.js +3 -3
  167. package/dist/.next/server/app/api/migrations/sync/route.js.nft.json +1 -1
  168. package/dist/.next/server/app/api/migrations/sync-files/route.js +1 -1
  169. package/dist/.next/server/app/api/migrations/sync-files/route.js.nft.json +1 -1
  170. package/dist/.next/server/app/api/pull-remote/confirm/route.js +1 -1
  171. package/dist/.next/server/app/api/pull-remote/confirm/route.js.nft.json +1 -1
  172. package/dist/.next/server/app/api/pull-remote/preview/route.js +1 -1
  173. package/dist/.next/server/app/api/pull-remote/preview/route.js.nft.json +1 -1
  174. package/dist/.next/server/app/api/push-remote/confirm/route.js +2 -2
  175. package/dist/.next/server/app/api/push-remote/confirm/route.js.nft.json +1 -1
  176. package/dist/.next/server/app/api/push-remote/preview/route.js +2 -2
  177. package/dist/.next/server/app/api/push-remote/preview/route.js.nft.json +1 -1
  178. package/dist/.next/server/app/api/query/route.js +2 -2
  179. package/dist/.next/server/app/api/query/route.js.nft.json +1 -1
  180. package/dist/.next/server/app/api/tables/[name]/route.js +4 -4
  181. package/dist/.next/server/app/api/tables/route.js +2 -2
  182. package/dist/.next/server/app/index.html +1 -1
  183. package/dist/.next/server/app/index.rsc +1 -1
  184. package/dist/.next/server/app-paths-manifest.json +6 -6
  185. package/dist/.next/server/chunks/801.js +55 -0
  186. package/dist/.next/server/pages/404.html +1 -1
  187. package/dist/.next/server/pages/500.html +1 -1
  188. package/dist/.next/server/server-reference-manifest.json +1 -1
  189. package/dist/.next/static/ZwNOdZJ0LOtE0AJMNWwzY/_buildManifest.js +1 -0
  190. package/dist/.next/static/ZwNOdZJ0LOtE0AJMNWwzY/_ssgManifest.js +1 -0
  191. package/dist/.next/trace +14 -14
  192. package/dist/app/api/cloudflare/route.js +5 -1
  193. package/dist/app/api/databases/route.js +3 -4
  194. package/dist/app/api/migrations/sync/route.js +5 -3
  195. package/dist/app/api/pull-remote/confirm/route.js +24 -23
  196. package/dist/app/api/pull-remote/preview/route.js +4 -3
  197. package/dist/app/api/push-remote/preview/route.js +3 -2
  198. package/dist/app/api/query/route.js +11 -3
  199. package/dist/app/api/tables/[name]/route.js +3 -2
  200. package/dist/app/api/tables/route.js +6 -2
  201. package/dist/app/app/api/cloudflare/route.js +5 -1
  202. package/dist/app/app/api/databases/route.js +3 -4
  203. package/dist/app/app/api/migrations/sync/route.js +5 -3
  204. package/dist/app/app/api/pull-remote/confirm/route.js +24 -23
  205. package/dist/app/app/api/pull-remote/preview/route.js +4 -3
  206. package/dist/app/app/api/push-remote/preview/route.js +3 -2
  207. package/dist/app/app/api/query/route.js +11 -3
  208. package/dist/app/app/api/tables/[name]/route.js +3 -2
  209. package/dist/app/app/api/tables/route.js +6 -2
  210. package/dist/app/app/api/update/route.js +11 -0
  211. package/dist/app/app/page.jsx +7 -1
  212. package/dist/d1-studio.js +94 -58
  213. package/dist/lib/database-queue.js +34 -30
  214. package/dist/lib/find-wrangler-config.js +14 -8
  215. package/dist/lib/logger.js +11 -2
  216. package/dist/lib/migrations.js +4 -4
  217. package/dist/lib/schema-operations.js +4 -1
  218. package/dist/lib/sql-operations.js +8 -1
  219. package/package.json +3 -1
  220. package/scripts/studio.js +94 -58
  221. package/scripts/test.js +280 -82
  222. package/src/app/api/cloudflare/route.js +5 -1
  223. package/src/app/api/databases/route.js +3 -4
  224. package/src/app/api/migrations/sync/route.js +5 -3
  225. package/src/app/api/pull-remote/confirm/route.js +24 -23
  226. package/src/app/api/pull-remote/preview/route.js +4 -3
  227. package/src/app/api/push-remote/preview/route.js +3 -2
  228. package/src/app/api/query/route.js +11 -3
  229. package/src/app/api/tables/[name]/route.js +3 -2
  230. package/src/app/api/tables/route.js +6 -2
  231. package/src/app/api/update/route.js +11 -0
  232. package/src/app/page.jsx +7 -1
  233. package/src/components/update-banner.jsx +64 -0
  234. package/src/lib/database-queue.js +34 -30
  235. package/src/lib/find-wrangler-config.js +14 -8
  236. package/src/lib/logger.js +11 -2
  237. package/src/lib/migrations.js +4 -4
  238. package/src/lib/schema-operations.js +4 -1
  239. package/src/lib/sql-operations.js +8 -1
  240. package/dist/.next/.next/server/chunks/603.js +0 -55
  241. package/dist/.next/server/chunks/603.js +0 -55
  242. /package/dist/.next/.next/static/{HsZ8OanS5v86DqC9rErO- → IWRJZhjf8U8mjzz4h0VNE}/_buildManifest.js +0 -0
  243. /package/dist/.next/.next/static/{HsZ8OanS5v86DqC9rErO- → IWRJZhjf8U8mjzz4h0VNE}/_ssgManifest.js +0 -0
  244. /package/dist/.next/.next/static/{q6WmQmyONe88bMN0_jrC2 → JrwgdSDcipr0Zh7k19Cj_}/_ssgManifest.js +0 -0
  245. /package/dist/.next/{static/Tk1fnz_CXLavm23ZEeChG → .next/static/gc8l1G6KXOeLLOM7VJip6}/_ssgManifest.js +0 -0
  246. /package/dist/.next/.next/static/{q6WmQmyONe88bMN0_jrC2 → scC5qwQC9H7rR1groM0Q-}/_buildManifest.js +0 -0
  247. /package/dist/.next/{static/Tk1fnz_CXLavm23ZEeChG → .next/static/xW4MspD8XibrhXDi_q2IO}/_buildManifest.js +0 -0
@@ -0,0 +1,55 @@
1
+ exports.id=801,exports.ids=[801],exports.modules={96487:()=>{},78335:()=>{},65949:(e,t,r)=>{"use strict";r.d(t,{S:()=>c});var a=r(79748),s=r(43149),i=r(72537),n=r(26789),l=r(81804);let E=null,o=null;async function c(e){try{let t;if(!e||"string"!=typeof e)throw Error("Project path is required and must be a string");if(E&&o===e)return E;let r=null,c=null;for(let t of["wrangler.toml","wrangler.json","wrangler.jsonc"])if(r=await (0,s.dJ)(t,{cwd:e})){c=t;break}if(!r)return l.A.warn(`No Wrangler configuration file found in: ${e}`),null;l.A.info(`Found ${c} at: ${r}`);let m=await (0,a.readFile)(r,"utf-8");return c.endsWith(".toml")?t=(0,i.parse)(m):(c.endsWith(".jsonc")&&(m=(0,n.A)(m)),t=JSON.parse(m)),E={config:t,projectPath:e},o=e,E}catch(e){throw l.A.error(`Error reading Wrangler configuration: ${e.message}`),e}}},81804:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var a=r(26399);let{combine:s,timestamp:i,printf:n,colorize:l}=a.format,E=(process.env.DEBUG,n(({level:e,message:t,timestamp:r})=>`${r} ${e}: ${t}`)),o=a.createLogger({level:"warn",format:s(i({format:"YYYY-MM-DD HH:mm:ss"}),l(),E),transports:[new a.transports.Console({level:"warn",silent:!1})]})},30961:(e,t,r)=>{"use strict";r.d(t,{CM:()=>A,GS:()=>R,Gc:()=>h,JD:()=>u,Sl:()=>N,ai:()=>p,hI:()=>f,k0:()=>T});var a=r(79748),s=r(28354),i=r(79646),n=r(55511),l=r(33873),E=r(19421),o=r(44218),c=r(81804);let m=(0,s.promisify)(i.exec);async function T(e,t,r="local",a=!1){let s="remote"===r?"--remote":"--local",i="remote"===r?`
2
+ CREATE TABLE IF NOT EXISTS d1_migrations (
3
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
4
+ name TEXT NOT NULL UNIQUE,
5
+ applied_at DATETIME DEFAULT CURRENT_TIMESTAMP
6
+ );
7
+ `:`
8
+ CREATE TABLE IF NOT EXISTS d1_migrations (
9
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
10
+ name TEXT NOT NULL UNIQUE,
11
+ checksum TEXT NULL,
12
+ applied_at DATETIME DEFAULT CURRENT_TIMESTAMP
13
+ );
14
+ `;try{await m(`wrangler d1 execute ${t} ${s} --command="${i.replace(/"/g,'\\"')}"`,{cwd:e}),a&&await m(`wrangler d1 execute ${t} ${s} --command="${"DELETE FROM d1_migrations;".replace(/"/g,'\\"')}"`,{cwd:e})}catch(e){throw c.A.error(`Failed to initialize migrations table in ${r}:`,e),e}}function d(e){let t=new Date().toISOString().replace(/[^0-9]/g,"").slice(0,-3),r=e.type.toLowerCase().replace(/_/g,"-");if("CREATE_INDEX"===e.type){let r=e.description.toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9-_]/g,"");return`${t}_create-index_${r}.sql`}{let a=`${t}_${{"create-table":"create-table","alter-table":"alter-table","drop-table":"drop-table","drop-index":"drop-index","create-view":"create-view","drop-view":"drop-view","add-foreign-key":"add-foreign-key","drop-foreign-key":"drop-foreign-key","add-constraint":"add-constraint","drop-constraint":"drop-constraint"}[r]||r}_${e.tableName}`;return"ALTER_TABLE"===e.type&&e.description&&(a+=`_${e.description}`),(a=a.toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9-_]/g,""))+".sql"}}async function u(e){let t=await (0,a.readFile)(e,"utf8");try{let e=(0,E.By)(t);return(0,E.Gq)(e),{isValid:!0,statement:e}}catch(e){return{isValid:!1,errors:e}}}async function R(e,t,r){try{let a=await (0,E.KK)(e,t,"SELECT name, applied_at FROM d1_migrations ORDER BY applied_at;",r,!0);if("string"==typeof a){let e=a.indexOf("[");if(-1!==e){let t=a.substring(e),r=JSON.parse(t);return r[0]?.results||[]}}return[]}catch(e){throw{type:E.wU.EXECUTION_ERROR,message:"Failed to get remote migrations",details:{error:e.message,suggestions:["Check remote database permissions","Verify credentials and connection"]}}}}async function p(e,t,{name:r,checksum:a},s="local"){let i="remote"===s?"--remote":"--local";if("local"===s&&a)try{await m(`wrangler d1 execute ${t} ${i} --command="SELECT checksum FROM d1_migrations LIMIT 1;"`,{cwd:e}).catch(()=>!1)||await m(`wrangler d1 execute ${t} ${i} --command="ALTER TABLE d1_migrations ADD COLUMN checksum TEXT;"`,{cwd:e})}catch(e){}let n="remote"!==s&&a?`
15
+ INSERT OR REPLACE INTO d1_migrations (name, checksum, applied_at)
16
+ VALUES ('${r}', '${a}', CURRENT_TIMESTAMP);
17
+ `:`
18
+ INSERT OR REPLACE INTO d1_migrations (name, applied_at)
19
+ VALUES ('${r}', CURRENT_TIMESTAMP);
20
+ `;try{await m(`wrangler d1 execute ${t} ${i} --command="${n.replace(/"/g,'\\"')}"`,{cwd:e})}catch(e){throw c.A.error("Failed to track migration:",e),e}}async function A(e,t,{name:r,checksum:a},s={},i=!1){let n=i||!a?`
21
+ INSERT OR REPLACE INTO d1_migrations (name, applied_at)
22
+ VALUES ('${r}', CURRENT_TIMESTAMP);
23
+ `:`
24
+ INSERT OR REPLACE INTO d1_migrations (name, checksum, applied_at)
25
+ VALUES ('${r}', '${a}', CURRENT_TIMESTAMP);
26
+ `;try{await (0,E.KK)(e,t,n,s,i)}catch(e){throw{type:E.wU.EXECUTION_ERROR,message:`Failed to record migration ${r}`,details:{file:r,error:e.message,suggestions:["Check if migration is already recorded"]}}}}async function f(e,t){try{let r=await R(e,t,{}),a=new Map(r.map(e=>[e.name,e]));return{applied:Array.from(a.keys()),count:a.size}}catch(e){throw c.A.error("Failed to compare migrations:",e),e}}function N(e){return(0,n.createHash)("sha256").update(e).digest("hex")}async function h(e,t,r){try{let s=l.join(e,"migrations");await (0,a.mkdir)(s,{recursive:!0});let i=[],n=[],c=[];for(let e of r)e.type===E.Pg.DATA_MODIFICATION?c.push(e):n.push(e);let m=new Map,T="__no_table__";for(let e of n){let t=e.tableName?e.tableName.toLowerCase():T;m.has(t)||m.set(t,[]),m.get(t).push(e)}let u=[...m.keys()].filter(e=>e!==T),R=[];if(u.length>0){let e=u.map(e=>m.get(e)[0]);R=(0,o.IC)(e)}for(let r of R){for(let n of m.get(r)||[])try{if(n.type===E.Pg.DROP_TABLE&&!await (0,E.F9)(e,t,{},n.tableName,!1))throw Error(`no such table: ${n.tableName}`);let r=await (0,E.KK)(e,t,n.sql);if(r&&(r.toLowerCase().includes("syntax error")||r.toLowerCase().includes("sqlite_error")))throw Error(r);let o=d(n),c=l.join(s,o),m=(0,E.tn)(n.sql);await (0,a.writeFile)(c,m,"utf8");let T=N(n.sql);await p(e,t,{name:o,checksum:T},"local"),i.push({type:n.type,table:n.tableName,migration:o,checksum:T})}catch(e){throw e}m.delete(r)}if(m.has(T))for(let r of m.get(T))try{await (0,E.KK)(e,t,r.sql);let n=d(r),o=l.join(s,n),c=(0,E.tn)(r.sql);await (0,a.writeFile)(o,c,"utf8");let m=N(r.sql);await p(e,t,{name:n,checksum:m},"local"),i.push({type:r.type,table:r.tableName||null,migration:n,checksum:m})}catch(e){throw e}for(let r of c)try{await (0,E.KK)(e,t,r.sql),i.push({type:r.type,table:r.tableName||null,executed:!0})}catch(e){throw e}return i}catch(e){throw e}}},44218:(e,t,r)=>{"use strict";r.d(t,{IC:()=>n,ZX:()=>i});var a=r(19421),s=r(81804);async function i(e,t,r={},n=!1){let l=`
27
+ SELECT name, type, sql
28
+ FROM sqlite_master
29
+ WHERE type IN ('table', 'index', 'trigger')
30
+ AND name NOT LIKE 'sqlite_%'
31
+ AND name != 'd1_migrations';
32
+ `;try{let s=await (0,a.KK)(e,t,l,r,n),i=JSON.parse(s);return i[0]?.results||[]}catch(e){throw s.A.error("Failed to get current schema:",e),{type:a.wU.EXECUTION_ERROR,message:"Failed to get current schema",details:{error:e.message,suggestions:["Check database permissions"]}}}}function n(e){let t=new Map;return e.filter(e=>"DATA_MODIFICATION"!==e.type).forEach(e=>{let r=(e.name||e.tableName).toLowerCase();if(t.has(r)||t.set(r,new Set),"CREATE_TABLE"===e.type){let a=e.sql.match(/FOREIGN\s+KEY\s*\([^)]+\)\s+REFERENCES\s+(\w+)/gi);a&&a.forEach(e=>{let a=e.match(/REFERENCES\s+(\w+)/i)[1].toLowerCase();t.get(r).add(a)})}}),function(e){let t=[],r=new Set,a=new Set;for(let s of e.keys())r.has(s)||function s(i){if(a.has(i))throw Error(`Circular dependency detected for table: ${i}`);if(!r.has(i)){for(let t of(a.add(i),e.get(i)||new Set)){if(!e.has(t))throw Error(`Missing table dependency: ${t}`);s(t)}a.delete(i),r.add(i),t.push(i)}}(s);return t}(t)}},19421:(e,t,r)=>{"use strict";r.d(t,{By:()=>c,F9:()=>p,Gq:()=>m,KK:()=>f,Pg:()=>l,QQ:()=>o,bp:()=>R,mA:()=>A,sP:()=>g,tn:()=>I,wU:()=>E,z6:()=>N});var a=r(28354),s=r(79646),i=r(81804);let n=(0,a.promisify)(s.exec),l={CREATE_TABLE:"CREATE_TABLE",ALTER_TABLE:"ALTER_TABLE",DROP_TABLE:"DROP_TABLE",CREATE_INDEX:"CREATE_INDEX",DROP_INDEX:"DROP_INDEX",DATA_MODIFICATION:"DATA_MODIFICATION"},E={VALIDATION_ERROR:"VALIDATION_ERROR",SYNTAX_ERROR:"SYNTAX_ERROR",EXECUTION_ERROR:"EXECUTION_ERROR",DEPENDENCY_ERROR:"DEPENDENCY_ERROR"};function o(e){return e.type!==l.DATA_MODIFICATION}function c(e){let t=e.trim().replace(/\s+/g," "),r=t.toUpperCase();if(r.startsWith("CREATE TABLE"))return{type:l.CREATE_TABLE,tableName:T(t,"CREATE TABLE"),sql:t,description:"create-table"};if(r.startsWith("ALTER TABLE")){let e=T(t,"ALTER TABLE"),a="";if(r.includes("RENAME")){let e=t.match(/RENAME\s+(?:COLUMN\s+)?([\w$]+)\s+TO\s+([\w$]+)/i);e&&(a=`rename-${e[1]}-to-${e[2]}`)}else if(r.includes("ADD COLUMN")){let e=t.match(/ADD\s+COLUMN\s+([\w$]+)(\s+[\w()]+)?/i);if(e){let t=e[1],r=e[2]?e[2].trim().replace(/\s+/g,"-"):"";a=r?`add-${t}-${r}`:`add-${t}`}}else if(r.includes("DROP COLUMN")){let e=t.match(/DROP\s+COLUMN\s+([\w$]+)/i);e&&(a=`drop-${e[1]}`)}else if(r.includes("MODIFY COLUMN")||r.includes("CHANGE COLUMN")){let e=t.match(/(?:MODIFY|CHANGE)\s+COLUMN\s+([\w$]+)(\s+[\w()]+)?/i);if(e){let t=e[1],r=e[2]?e[2].trim().replace(/\s+/g,"-"):"";a=r?`modify-${t}-to-${r}`:`modify-${t}`}}return{type:l.ALTER_TABLE,tableName:e,sql:t,description:a}}if(r.startsWith("DROP TABLE"))return{type:l.DROP_TABLE,tableName:T(t,"DROP TABLE"),sql:t,description:"drop-table"};if(r.startsWith("CREATE INDEX")||r.startsWith("CREATE UNIQUE INDEX")){let e=d(t),r=t.match(/INDEX\s+(?:IF\s+NOT\s+EXISTS\s+)?([\w$]+)/i),a=r?r[1]:"",s=t.match(/ON\s+[\w$]+\s*\(([^)]+)\)/i),i=(s?s[1].trim():"").replace(/\s+/g,"").replace(/,/g,"-").toLowerCase(),n=a;return i&&!n.toLowerCase().includes(i)&&(n+=`-${i}`),{type:l.CREATE_INDEX,tableName:e,sql:t,description:n}}if(r.startsWith("DROP INDEX")){let e=d(t),r=t.match(/DROP\s+INDEX\s+(?:IF\s+EXISTS\s+)?([\w$]+)/i),a=r?r[1]:"";return{type:l.DROP_INDEX,tableName:e,sql:t,description:a?`drop-index-${a}`:"drop-index"}}return{type:l.DATA_MODIFICATION,sql:t,description:"data-modification"}}function m(e){if(e.type!==l.DATA_MODIFICATION&&!e.tableName)throw{type:E.VALIDATION_ERROR,message:`Invalid SQL statement: unable to determine table name for "${e.type}".`,details:{sql:e.sql}};return e}function T(e,t){let r=e.match(RegExp(`${t}\\s+(?:IF\\s+(?:NOT\\s+)?EXISTS\\s+)?([\\w_]+)`,"i"));return r?r[1]:null}function d(e){let t=e.match(/ON\s+([\w_]+)/i);return t?t[1]:null}async function u(e){let t=e.match(/^\d+_create[-_]table[_-](.+)\.sql$/i);return t||(t=e.match(/^\d+_create[-](.+)-table\.sql$/i))||(t=e.match(/^\d+_alter[-_]table[_-](.+?)(?:[_-].+)?\.sql$/i))||(t=e.match(/^\d+_alter[-](.+?)-table(?:[_-].+)?\.sql$/i))||(t=e.match(/^\d+_create[-_]index[-_](.+)\.sql$/i))?t[1]:null}function R(e){return e.split("\n").filter(e=>!e.trim().startsWith("--")).join("\n").trim()}async function p(e,t,r,a,s=!1){let i=`SELECT name FROM sqlite_master WHERE type='table' AND name = '${a}' COLLATE NOCASE;`,n=await f(e,t,i,r,s);try{let e=n.indexOf("[");if(-1!==e){let t=n.substring(e),r=JSON.parse(t);return(r[0]?.results||[]).length>0}return!1}catch(e){return console.error("Error parsing tableExists result:",e),!1}}function A(e){return e.replace(/--.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").trim().split(";").map(e=>e.trim()).filter(e=>e.length>0).map(e=>c(e+";"))}async function f(e,t,r,a={},s=!1){try{let l=r.trim().replace(/\s+/g," "),E=l.toUpperCase();(E.startsWith("CREATE INDEX")||E.startsWith("CREATE UNIQUE INDEX"))&&!E.includes("IF NOT EXISTS")&&(l=E.startsWith("CREATE UNIQUE INDEX")?l.replace(/CREATE\s+UNIQUE\s+INDEX/i,"CREATE UNIQUE INDEX IF NOT EXISTS"):l.replace(/CREATE\s+INDEX/i,"CREATE INDEX IF NOT EXISTS"));let o="win32"===process.platform,c=`${o?"npx.cmd":"npx"} wrangler d1 execute ${t} ${s?"--remote":"--local"} --command="${l.replace(/"/g,'\\"')}"`;i.A.shouldLog("debug")&&i.A.debug("Executing command:",c);let m={cwd:e,env:{...process.env,...a},maxBuffer:0xa00000,shell:!0},{stdout:T,stderr:d}=await n(c,m);if(d&&!d.includes("\uD83C\uDF00"))throw Error(d);try{let e=T.indexOf("[");if(-1!==e)return T.substring(e)}catch(e){console.warn("JSON parse warning:",e)}return T}catch(e){throw console.error("SQL Execution error:",e),{type:E.EXECUTION_ERROR,message:"Failed to execute SQL command",details:{command:e.cmd,stderr:e.stderr,stdout:e.stdout,originalError:e.message,suggestions:["Ensure Node.js and Wrangler are installed","Check npx in PATH","Verify the D1 database exists and is configured","Check wrangler.toml configuration"]}}}}function N(e){let t=e.trim(),r=t.toUpperCase();return r.startsWith("CREATE TABLE")?function(e){let t=e.match(/CREATE\s+TABLE\s+(?:IF\s+NOT\s+EXISTS\s+)?(\w+)\s*\(([\s\S]*)\)/i);if(!t)return e;let[,r,a]=t,s=h(a).map(e=>e.trim()).filter(Boolean);return`CREATE TABLE ${r} (
33
+ ${s.join(",\n ")}
34
+ );`}(t):r.startsWith("CREATE INDEX")||r.startsWith("CREATE UNIQUE INDEX")?function(e){let t=e.match(/CREATE\s+(UNIQUE\s+)?INDEX\s+(?:IF\s+NOT\s+EXISTS\s+)?(\w+)\s+ON\s+(\w+)\s*\((.*)\)/i);if(!t)return e;let[,r,a,s,i]=t,n=i.split(",").map(e=>e.trim()).join(", ");return`CREATE ${r||""}INDEX ${a} ON ${s} (${n});`}(t):r.startsWith("ALTER TABLE")?function(e){let t=e.match(/ALTER\s+TABLE\s+(\w+)\s+(.*)/i);if(!t)return e;let[,r,a]=t,s=h(a);return 1===s.length?`ALTER TABLE ${r} ${s[0]};`:`ALTER TABLE ${r}
35
+ ${s.map((e,t)=>` ${e}${t<s.length-1?",":";"}`).join("\n")}`}(t):r.startsWith("DROP TABLE")||r.startsWith("DROP INDEX")?function(e){let t=e.match(/DROP\s+(TABLE|INDEX)\s+(?:IF\s+EXISTS\s+)?(\w+)/i);if(!t)return e;let[,r,a]=t;return`DROP ${r} IF EXISTS ${a};`}(t):r.startsWith("INSERT INTO")?function(e){let t=e.match(/INSERT\s+INTO\s+(\w+)\s*(\([^)]+\))?\s*VALUES\s*(.+)/i);if(!t)return e;let[,r,a,s]=t,i=h(s);return`INSERT INTO ${r}${a?` ${a}`:""}
36
+ VALUES
37
+ `+i.map((e,t)=>` ${e}${t<i.length-1?",":";"}`).join("\n")}(t):r.startsWith("UPDATE")?function(e){let t=e.match(/UPDATE\s+(\w+)\s+SET\s+(.+?)(?:\s+WHERE\s+(.+))?$/i);if(!t)return e;let[,r,a,s]=t,i=h(a),n=`UPDATE ${r}
38
+ SET
39
+ ${i.map(e=>` ${e.trim()}`).join(",\n")}`;return s&&(n+=`
40
+ WHERE
41
+ ${s.trim()}`),n+";"}(t):r.startsWith("DELETE FROM")?function(e){let t=e.match(/DELETE\s+FROM\s+(\w+)(?:\s+WHERE\s+(.+))?$/i);if(!t)return e;let[,r,a]=t,s=`DELETE FROM ${r}`;return a&&(s+=`
42
+ WHERE
43
+ ${a.trim()}`),s+";"}(t):r.startsWith("SELECT")?function(e){let t=e.match(/SELECT\s+(.+?)\s+FROM\s+(.+?)(?:\s+WHERE\s+(.+?))?(?:\s+GROUP\s+BY\s+(.+?))?(?:\s+HAVING\s+(.+?))?(?:\s+ORDER\s+BY\s+(.+?))?(?:\s+LIMIT\s+(.+?))?$/i);if(!t)return e;let[,r,a,s,i,n,l,E]=t,o=`SELECT
44
+ ${r.split(",").map(e=>e.trim()).join(",\n ")}
45
+ FROM
46
+ ${a.trim()}`;return s&&(o+=`
47
+ WHERE
48
+ ${s.trim()}`),i&&(o+=`
49
+ GROUP BY
50
+ ${i.trim()}`),n&&(o+=`
51
+ HAVING
52
+ ${n.trim()}`),l&&(o+=`
53
+ ORDER BY
54
+ ${l.trim()}`),E&&(o+=`
55
+ LIMIT ${E.trim()}`),o+";"}(t):t+";"}function h(e){let t=[],r="",a=0,s=!1,i="";for(let n of e)'"'===n&&"\\"!==i&&(s=!s),!s&&("("===n&&a++,")"===n&&a--),","!==n||0!==a||s?r+=n:(t.push(r.trim()),r=""),i=n;return r.trim()&&t.push(r.trim()),t}function I(e){return e.split(";").map(e=>e.trim()).filter(e=>e.length>0).map(e=>N(e)).join("\n\n")+"\n"}async function g(e,t,r,a){try{let s;let i=await u(r);if(i){let r=await f(e,t,`SELECT sql FROM sqlite_master WHERE type='table' AND name='${i}';`,a,!0);try{let e=JSON.parse(r);s=e[0]?.results?.[0]?.sql}catch(e){console.error("Error parsing sqlite_master result:",e)}}if(!s&&r.includes("create-index")){let i=r.match(/create-index[-_]([^_.]+)/);if(i){let r=await f(e,t,`SELECT sql FROM sqlite_master WHERE type='index' AND name='${i[1]}';`,a,!0),n=JSON.parse(r);s=n[0]?.results?.[0]?.sql}}if(!s&&i){let r=await f(e,t,`SELECT sql FROM sqlite_master WHERE name LIKE '%${i}%' LIMIT 1;`,a,!0);try{let e=JSON.parse(r);s=e[0]?.results?.[0]?.sql}catch(e){console.error("Error parsing fallback result:",e)}}if(!s)throw Error(`Could not retrieve SQL content for migration: ${r}`);return s+";"}catch(e){throw{type:E.EXECUTION_ERROR,message:`Failed to get migration file content: ${e.message}`,details:{file:r,error:e.message,suggestions:["Check if the table exists in the remote database","Verify the migration filename follows the expected pattern","Ensure you have permissions to access the remote database"]}}}}}};