d1s 0.2.10 → 0.2.12

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 (329) hide show
  1. package/dist/.next/.next/BUILD_ID +1 -1
  2. package/dist/.next/.next/app-build-manifest.json +33 -33
  3. package/dist/.next/.next/app-path-routes-manifest.json +1 -1
  4. package/dist/.next/.next/build-manifest.json +3 -3
  5. package/dist/.next/.next/cache/.rscinfo +1 -1
  6. package/dist/.next/.next/cache/.tsbuildinfo +1 -1
  7. package/dist/.next/.next/cache/webpack/client-production/0.pack +0 -0
  8. package/dist/.next/.next/cache/webpack/client-production/1.pack +0 -0
  9. package/dist/.next/.next/cache/webpack/client-production/10.pack +0 -0
  10. package/dist/.next/.next/cache/webpack/client-production/11.pack +0 -0
  11. package/dist/.next/.next/cache/webpack/client-production/12.pack +0 -0
  12. package/dist/.next/.next/cache/webpack/client-production/2.pack +0 -0
  13. package/dist/.next/.next/cache/webpack/client-production/3.pack +0 -0
  14. package/dist/.next/.next/cache/webpack/client-production/4.pack +0 -0
  15. package/dist/.next/.next/cache/webpack/client-production/5.pack +0 -0
  16. package/dist/.next/.next/cache/webpack/client-production/6.pack +0 -0
  17. package/dist/.next/.next/cache/webpack/client-production/7.pack +0 -0
  18. package/dist/.next/.next/cache/webpack/client-production/8.pack +0 -0
  19. package/dist/.next/.next/cache/webpack/client-production/9.pack +0 -0
  20. package/dist/.next/.next/cache/webpack/client-production/index.pack +0 -0
  21. package/dist/.next/.next/cache/webpack/client-production/index.pack.old +0 -0
  22. package/dist/.next/.next/cache/webpack/edge-server-production/index.pack +0 -0
  23. package/dist/.next/.next/cache/webpack/server-production/0.pack +0 -0
  24. package/dist/.next/.next/cache/webpack/server-production/1.pack +0 -0
  25. package/dist/.next/.next/cache/webpack/server-production/index.pack +0 -0
  26. package/dist/.next/.next/cache/webpack/server-production/index.pack.old +0 -0
  27. package/dist/.next/.next/next-minimal-server.js.nft.json +1 -1
  28. package/dist/.next/.next/next-server.js.nft.json +1 -1
  29. package/dist/.next/.next/prerender-manifest.json +1 -1
  30. package/dist/.next/.next/required-server-files.json +1 -1
  31. package/dist/.next/.next/server/app/_not-found/page.js +1 -1
  32. package/dist/.next/.next/server/app/_not-found/page.js.nft.json +1 -1
  33. package/dist/.next/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  34. package/dist/.next/.next/server/app/_not-found.html +1 -1
  35. package/dist/.next/.next/server/app/_not-found.rsc +4 -4
  36. package/dist/.next/.next/server/app/api/cloudflare/route.js +1 -1
  37. package/dist/.next/.next/server/app/api/cloudflare/route_client-reference-manifest.js +1 -1
  38. package/dist/.next/.next/server/app/api/databases/route.js +1 -1
  39. package/dist/.next/.next/server/app/api/databases/route_client-reference-manifest.js +1 -1
  40. package/dist/.next/.next/server/app/api/migrations/sync/route.js +5 -5
  41. package/dist/.next/.next/server/app/api/migrations/sync/route_client-reference-manifest.js +1 -1
  42. package/dist/.next/.next/server/app/api/migrations/sync-files/route.js +3 -3
  43. package/dist/.next/.next/server/app/api/migrations/sync-files/route_client-reference-manifest.js +1 -1
  44. package/dist/.next/.next/server/app/api/pull-data/confirm/route.js +1 -1
  45. package/dist/.next/.next/server/app/api/pull-data/confirm/route_client-reference-manifest.js +1 -1
  46. package/dist/.next/.next/server/app/api/pull-remote/confirm/route.js +2 -2
  47. package/dist/.next/.next/server/app/api/pull-remote/confirm/route_client-reference-manifest.js +1 -1
  48. package/dist/.next/.next/server/app/api/pull-remote/preview/route.js +4 -4
  49. package/dist/.next/.next/server/app/api/pull-remote/preview/route_client-reference-manifest.js +1 -1
  50. package/dist/.next/.next/server/app/api/push-remote/confirm/route.js +5 -5
  51. package/dist/.next/.next/server/app/api/push-remote/confirm/route_client-reference-manifest.js +1 -1
  52. package/dist/.next/.next/server/app/api/push-remote/preview/route.js +4 -4
  53. package/dist/.next/.next/server/app/api/push-remote/preview/route_client-reference-manifest.js +1 -1
  54. package/dist/.next/.next/server/app/api/query/route.js +3 -3
  55. package/dist/.next/.next/server/app/api/query/route_client-reference-manifest.js +1 -1
  56. package/dist/.next/.next/server/app/api/tables/[name]/route.js +5 -5
  57. package/dist/.next/.next/server/app/api/tables/[name]/route_client-reference-manifest.js +1 -1
  58. package/dist/.next/.next/server/app/api/tables/route.js +2 -2
  59. package/dist/.next/.next/server/app/api/tables/route_client-reference-manifest.js +1 -1
  60. package/dist/.next/.next/server/app/api/update/route.js +1 -1
  61. package/dist/.next/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  62. package/dist/.next/.next/server/app/index.html +3 -3
  63. package/dist/.next/.next/server/app/index.rsc +5 -5
  64. package/dist/.next/.next/server/app/page.js +11 -13
  65. package/dist/.next/.next/server/app/page.js.nft.json +1 -1
  66. package/dist/.next/.next/server/app/page_client-reference-manifest.js +1 -1
  67. package/dist/.next/.next/server/app-paths-manifest.json +3 -3
  68. package/dist/.next/.next/server/chunks/226.js +12 -12
  69. package/dist/.next/.next/server/chunks/391.js +5 -5
  70. package/dist/.next/.next/server/chunks/452.js +1 -1
  71. package/dist/.next/.next/server/chunks/572.js +1 -0
  72. package/dist/.next/.next/server/chunks/627.js +3 -3
  73. package/dist/.next/.next/server/chunks/638.js +3 -3
  74. package/dist/.next/.next/server/chunks/992.js +3 -3
  75. package/dist/.next/.next/server/middleware-build-manifest.js +1 -1
  76. package/dist/.next/.next/server/next-font-manifest.js +1 -1
  77. package/dist/.next/.next/server/next-font-manifest.json +1 -1
  78. package/dist/.next/.next/server/pages/404.html +1 -1
  79. package/dist/.next/.next/server/pages/500.html +1 -1
  80. package/dist/.next/.next/server/pages/_app.js +1 -1
  81. package/dist/.next/.next/server/pages/_document.js +1 -1
  82. package/dist/.next/.next/server/pages/_error.js +1 -1
  83. package/dist/.next/.next/server/server-reference-manifest.json +1 -1
  84. package/dist/.next/.next/static/chunks/576-18a2209e1ed26aad.js +1 -0
  85. package/dist/.next/.next/static/chunks/{92-c4466e0f1ca8a3a8.js → 92-5f7522943fcb72a8.js} +1 -1
  86. package/dist/.next/.next/static/chunks/app/{layout-be6ee67cf0c92654.js → layout-40ec07d04681ba81.js} +1 -1
  87. package/dist/.next/.next/static/chunks/app/page-f05cd0fc436bf9bc.js +1 -0
  88. package/dist/.next/.next/static/chunks/{main-app-fa35024de9bd9284.js → main-app-4506e88db72db4b7.js} +1 -1
  89. package/dist/.next/.next/static/css/7c16f57d325d0d7d.css +3 -0
  90. package/dist/.next/.next/static/gABGrAoO8IPArDo_Ns_7g/_buildManifest.js +1 -0
  91. package/dist/.next/.next/static/gABGrAoO8IPArDo_Ns_7g/_ssgManifest.js +1 -0
  92. package/dist/.next/.next/static/gh-QfIUVo4FTTduYCVKT6/_buildManifest.js +1 -0
  93. package/dist/.next/.next/static/gh-QfIUVo4FTTduYCVKT6/_ssgManifest.js +1 -0
  94. package/dist/.next/.next/static/media/8d697b304b401681-s.woff2 +0 -0
  95. package/dist/.next/.next/static/media/9610d9e46709d722-s.woff2 +0 -0
  96. package/dist/.next/.next/static/ybCx6L6gHqtODbKmlhU-d/_buildManifest.js +1 -0
  97. package/dist/.next/.next/static/ybCx6L6gHqtODbKmlhU-d/_ssgManifest.js +1 -0
  98. package/dist/.next/.next/trace +3 -3
  99. package/dist/.next/.next/types/app/api/cloudflare/route.ts +1 -1
  100. package/dist/.next/.next/types/app/api/databases/route.ts +1 -1
  101. package/dist/.next/.next/types/app/api/migrations/sync/route.ts +1 -1
  102. package/dist/.next/.next/types/app/api/migrations/sync-files/route.ts +1 -1
  103. package/dist/.next/.next/types/app/api/pull-data/confirm/route.ts +1 -1
  104. package/dist/.next/.next/types/app/api/pull-remote/confirm/route.ts +1 -1
  105. package/dist/.next/.next/types/app/api/pull-remote/preview/route.ts +1 -1
  106. package/dist/.next/.next/types/app/api/push-remote/confirm/route.ts +1 -1
  107. package/dist/.next/.next/types/app/api/push-remote/preview/route.ts +1 -1
  108. package/dist/.next/.next/types/app/api/query/route.ts +1 -1
  109. package/dist/.next/.next/types/app/api/tables/[name]/route.ts +1 -1
  110. package/dist/.next/.next/types/app/api/tables/route.ts +1 -1
  111. package/dist/.next/.next/types/app/api/update/route.ts +1 -1
  112. package/dist/.next/.next/types/app/page.ts +1 -1
  113. package/dist/.next/BUILD_ID +1 -1
  114. package/dist/.next/app-build-manifest.json +32 -32
  115. package/dist/.next/app-path-routes-manifest.json +1 -1
  116. package/dist/.next/build-manifest.json +3 -3
  117. package/dist/.next/cache/.rscinfo +1 -1
  118. package/dist/.next/cache/.tsbuildinfo +1 -1
  119. package/dist/.next/cache/webpack/client-production/0.pack +0 -0
  120. package/dist/.next/cache/webpack/client-production/1.pack +0 -0
  121. package/dist/.next/cache/webpack/client-production/2.pack +0 -0
  122. package/dist/.next/cache/webpack/client-production/index.pack +0 -0
  123. package/dist/.next/cache/webpack/client-production/index.pack.old +0 -0
  124. package/dist/.next/cache/webpack/edge-server-production/index.pack +0 -0
  125. package/dist/.next/cache/webpack/server-production/0.pack +0 -0
  126. package/dist/.next/cache/webpack/server-production/index.pack +0 -0
  127. package/dist/.next/next-minimal-server.js.nft.json +1 -1
  128. package/dist/.next/next-server.js.nft.json +1 -1
  129. package/dist/.next/prerender-manifest.json +1 -1
  130. package/dist/.next/required-server-files.json +1 -1
  131. package/dist/.next/server/app/_not-found/page.js +1 -1
  132. package/dist/.next/server/app/_not-found/page.js.nft.json +1 -1
  133. package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  134. package/dist/.next/server/app/_not-found.html +1 -1
  135. package/dist/.next/server/app/_not-found.rsc +4 -4
  136. package/dist/.next/server/app/api/cloudflare/route.js +1 -1
  137. package/dist/.next/server/app/api/cloudflare/route_client-reference-manifest.js +1 -1
  138. package/dist/.next/server/app/api/databases/route.js +1 -1
  139. package/dist/.next/server/app/api/databases/route_client-reference-manifest.js +1 -1
  140. package/dist/.next/server/app/api/migrations/sync/route.js +5 -5
  141. package/dist/.next/server/app/api/migrations/sync/route_client-reference-manifest.js +1 -1
  142. package/dist/.next/server/app/api/migrations/sync-files/route.js +3 -3
  143. package/dist/.next/server/app/api/migrations/sync-files/route_client-reference-manifest.js +1 -1
  144. package/dist/.next/server/app/api/pull-data/confirm/route.js +1 -1
  145. package/dist/.next/server/app/api/pull-data/confirm/route_client-reference-manifest.js +1 -1
  146. package/dist/.next/server/app/api/pull-remote/confirm/route.js +2 -2
  147. package/dist/.next/server/app/api/pull-remote/confirm/route_client-reference-manifest.js +1 -1
  148. package/dist/.next/server/app/api/pull-remote/preview/route.js +4 -4
  149. package/dist/.next/server/app/api/pull-remote/preview/route_client-reference-manifest.js +1 -1
  150. package/dist/.next/server/app/api/push-remote/confirm/route.js +5 -5
  151. package/dist/.next/server/app/api/push-remote/confirm/route_client-reference-manifest.js +1 -1
  152. package/dist/.next/server/app/api/push-remote/preview/route.js +4 -4
  153. package/dist/.next/server/app/api/push-remote/preview/route_client-reference-manifest.js +1 -1
  154. package/dist/.next/server/app/api/query/route.js +3 -3
  155. package/dist/.next/server/app/api/query/route_client-reference-manifest.js +1 -1
  156. package/dist/.next/server/app/api/tables/[name]/route.js +5 -5
  157. package/dist/.next/server/app/api/tables/[name]/route_client-reference-manifest.js +1 -1
  158. package/dist/.next/server/app/api/tables/route.js +2 -2
  159. package/dist/.next/server/app/api/tables/route_client-reference-manifest.js +1 -1
  160. package/dist/.next/server/app/api/update/route.js +1 -1
  161. package/dist/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  162. package/dist/.next/server/app/index.html +3 -3
  163. package/dist/.next/server/app/index.rsc +5 -5
  164. package/dist/.next/server/app/page.js +11 -13
  165. package/dist/.next/server/app/page.js.nft.json +1 -1
  166. package/dist/.next/server/app/page_client-reference-manifest.js +1 -1
  167. package/dist/.next/server/app-paths-manifest.json +2 -2
  168. package/dist/.next/server/chunks/226.js +12 -12
  169. package/dist/.next/server/chunks/391.js +5 -5
  170. package/dist/.next/server/chunks/452.js +1 -1
  171. package/dist/.next/server/chunks/572.js +1 -0
  172. package/dist/.next/server/chunks/627.js +3 -3
  173. package/dist/.next/server/chunks/638.js +3 -3
  174. package/dist/.next/server/chunks/992.js +3 -3
  175. package/dist/.next/server/middleware-build-manifest.js +1 -1
  176. package/dist/.next/server/next-font-manifest.js +1 -1
  177. package/dist/.next/server/next-font-manifest.json +1 -1
  178. package/dist/.next/server/pages/404.html +1 -1
  179. package/dist/.next/server/pages/500.html +1 -1
  180. package/dist/.next/server/pages/_app.js +1 -1
  181. package/dist/.next/server/pages/_document.js +1 -1
  182. package/dist/.next/server/pages/_error.js +1 -1
  183. package/dist/.next/server/server-reference-manifest.json +1 -1
  184. package/dist/.next/static/IX-QLbm7scYnyqWeeimal/_buildManifest.js +1 -0
  185. package/dist/.next/static/IX-QLbm7scYnyqWeeimal/_ssgManifest.js +1 -0
  186. package/dist/.next/static/chunks/576-18a2209e1ed26aad.js +1 -0
  187. package/dist/.next/static/chunks/{92-c4466e0f1ca8a3a8.js → 92-5f7522943fcb72a8.js} +1 -1
  188. package/dist/.next/static/chunks/app/{layout-be6ee67cf0c92654.js → layout-40ec07d04681ba81.js} +1 -1
  189. package/dist/.next/static/chunks/app/page-f05cd0fc436bf9bc.js +1 -0
  190. package/dist/.next/static/chunks/{main-app-fa35024de9bd9284.js → main-app-4506e88db72db4b7.js} +1 -1
  191. package/dist/.next/static/css/7c16f57d325d0d7d.css +3 -0
  192. package/dist/.next/static/media/8d697b304b401681-s.woff2 +0 -0
  193. package/dist/.next/static/media/9610d9e46709d722-s.woff2 +0 -0
  194. package/dist/.next/trace +3 -16
  195. package/dist/.next/types/app/api/cloudflare/route.ts +1 -1
  196. package/dist/.next/types/app/api/databases/route.ts +1 -1
  197. package/dist/.next/types/app/api/migrations/sync/route.ts +1 -1
  198. package/dist/.next/types/app/api/migrations/sync-files/route.ts +1 -1
  199. package/dist/.next/types/app/api/pull-data/confirm/route.ts +1 -1
  200. package/dist/.next/types/app/api/pull-remote/confirm/route.ts +1 -1
  201. package/dist/.next/types/app/api/pull-remote/preview/route.ts +1 -1
  202. package/dist/.next/types/app/api/push-remote/confirm/route.ts +1 -1
  203. package/dist/.next/types/app/api/push-remote/preview/route.ts +1 -1
  204. package/dist/.next/types/app/api/query/route.ts +1 -1
  205. package/dist/.next/types/app/api/tables/[name]/route.ts +1 -1
  206. package/dist/.next/types/app/api/tables/route.ts +1 -1
  207. package/dist/.next/types/app/api/update/route.ts +1 -1
  208. package/dist/.next/types/app/page.ts +1 -1
  209. package/dist/app/api/tables/[name]/route.js +22 -10
  210. package/dist/app/globals.css +39 -0
  211. package/dist/app/page.jsx +13 -23
  212. package/dist/d1-studio.js +34 -4
  213. package/dist/lib/data-type-handlers.js +426 -0
  214. package/dist/lib/sql-operations.js +32 -8
  215. package/dist/lib/sql-sanitizer.js +233 -0
  216. package/package.json +3 -9
  217. package/dist/.next/.next/cache/webpack/server-production/2.pack +0 -0
  218. package/dist/.next/.next/server/chunks/90.js +0 -1
  219. package/dist/.next/.next/static/chunks/700-dc8f9f08b166c5e6.js +0 -1
  220. package/dist/.next/.next/static/chunks/app/page-16ec561fc8bebb5d.js +0 -1
  221. package/dist/.next/.next/static/css/0c512cea5f3d317a.css +0 -3
  222. package/dist/.next/server/chunks/90.js +0 -1
  223. package/dist/.next/static/chunks/700-dc8f9f08b166c5e6.js +0 -1
  224. package/dist/.next/static/chunks/app/page-16ec561fc8bebb5d.js +0 -1
  225. package/dist/.next/static/css/0c512cea5f3d317a.css +0 -3
  226. package/dist/app/app/api/cloudflare/route.js +0 -150
  227. package/dist/app/app/api/databases/route.js +0 -71
  228. package/dist/app/app/api/migrations/sync/route.js +0 -174
  229. package/dist/app/app/api/migrations/sync-files/route.js +0 -172
  230. package/dist/app/app/api/pull-data/confirm/route.js +0 -230
  231. package/dist/app/app/api/pull-remote/confirm/route.js +0 -278
  232. package/dist/app/app/api/pull-remote/preview/route.js +0 -144
  233. package/dist/app/app/api/push-remote/confirm/route.js +0 -196
  234. package/dist/app/app/api/push-remote/preview/route.js +0 -179
  235. package/dist/app/app/api/query/route.js +0 -168
  236. package/dist/app/app/api/tables/[name]/route.js +0 -174
  237. package/dist/app/app/api/tables/route.js +0 -178
  238. package/dist/app/app/api/update/route.js +0 -45
  239. package/dist/app/app/globals.css +0 -93
  240. package/dist/app/app/layout.jsx +0 -35
  241. package/dist/app/app/page.jsx +0 -44
  242. package/next.config.mjs +0 -18
  243. package/postcss.config.mjs +0 -8
  244. package/scripts/studio.js +0 -169
  245. package/scripts/test.js +0 -366
  246. package/src/app/api/cloudflare/route.js +0 -150
  247. package/src/app/api/databases/route.js +0 -71
  248. package/src/app/api/migrations/sync/route.js +0 -174
  249. package/src/app/api/migrations/sync-files/route.js +0 -172
  250. package/src/app/api/pull-data/confirm/route.js +0 -230
  251. package/src/app/api/pull-remote/confirm/route.js +0 -278
  252. package/src/app/api/pull-remote/preview/route.js +0 -144
  253. package/src/app/api/push-remote/confirm/route.js +0 -196
  254. package/src/app/api/push-remote/preview/route.js +0 -179
  255. package/src/app/api/query/route.js +0 -168
  256. package/src/app/api/tables/[name]/route.js +0 -174
  257. package/src/app/api/tables/route.js +0 -178
  258. package/src/app/api/update/route.js +0 -45
  259. package/src/app/globals.css +0 -93
  260. package/src/app/layout.jsx +0 -35
  261. package/src/app/page.jsx +0 -44
  262. package/src/components/cloudflare-credentials-modal.jsx +0 -94
  263. package/src/components/column-selector.jsx +0 -133
  264. package/src/components/column-sorting.jsx +0 -65
  265. package/src/components/delete-records-dialog.jsx +0 -64
  266. package/src/components/download-button.jsx +0 -205
  267. package/src/components/edit-error-alert.jsx +0 -30
  268. package/src/components/editable-cell.jsx +0 -163
  269. package/src/components/editable-row.jsx +0 -169
  270. package/src/components/environment-handler.jsx +0 -332
  271. package/src/components/environment-select.jsx +0 -62
  272. package/src/components/pull-preview-toast.jsx +0 -215
  273. package/src/components/push-error-alert.jsx +0 -72
  274. package/src/components/push-preview-toast.jsx +0 -183
  275. package/src/components/query-results.jsx +0 -112
  276. package/src/components/refresh-button.jsx +0 -61
  277. package/src/components/resize-columns.jsx +0 -101
  278. package/src/components/sidebar.jsx +0 -254
  279. package/src/components/sql-editor.jsx +0 -411
  280. package/src/components/sql-error-display.jsx +0 -167
  281. package/src/components/sync-migrations-button.jsx +0 -87
  282. package/src/components/table-error-dialog.jsx +0 -65
  283. package/src/components/table-toolbar.jsx +0 -285
  284. package/src/components/table-view.jsx +0 -843
  285. package/src/components/ui/alert.jsx +0 -47
  286. package/src/components/ui/button.jsx +0 -48
  287. package/src/components/ui/card.jsx +0 -50
  288. package/src/components/ui/checkbox.jsx +0 -24
  289. package/src/components/ui/collapsible.jsx +0 -11
  290. package/src/components/ui/dialog.jsx +0 -96
  291. package/src/components/ui/dropdown-menu.jsx +0 -158
  292. package/src/components/ui/input.jsx +0 -19
  293. package/src/components/ui/scroll-area.jsx +0 -40
  294. package/src/components/ui/select.jsx +0 -121
  295. package/src/components/ui/separator.jsx +0 -25
  296. package/src/components/ui/sheet.jsx +0 -109
  297. package/src/components/ui/sidebar.jsx +0 -620
  298. package/src/components/ui/skeleton.jsx +0 -14
  299. package/src/components/ui/table.jsx +0 -86
  300. package/src/components/ui/tabs.jsx +0 -43
  301. package/src/components/ui/toast.jsx +0 -86
  302. package/src/components/ui/toaster.jsx +0 -35
  303. package/src/components/ui/tooltip.jsx +0 -28
  304. package/src/components/update-banner.jsx +0 -93
  305. package/src/context/database-context.js +0 -510
  306. package/src/hooks/use-mobile.jsx +0 -19
  307. package/src/hooks/use-sql-error.ts +0 -23
  308. package/src/hooks/use-toast.js +0 -155
  309. package/src/lib/database-queue.js +0 -37
  310. package/src/lib/error.js +0 -20
  311. package/src/lib/find-wrangler-config.js +0 -74
  312. package/src/lib/license.js +0 -99
  313. package/src/lib/logger.js +0 -58
  314. package/src/lib/migrations.js +0 -415
  315. package/src/lib/parse-sql-error.js +0 -200
  316. package/src/lib/request-deduplication.js +0 -24
  317. package/src/lib/schema-operations.js +0 -106
  318. package/src/lib/sql-error-types.js +0 -14
  319. package/src/lib/sql-operations.js +0 -647
  320. package/src/lib/utils.js +0 -6
  321. package/src/lib/version-utils.js +0 -34
  322. /package/dist/.next/.next/static/{5dBGGUmK5q7of4h5Rahrg → Y9mYu4WBghepP5oT_3OdR}/_buildManifest.js +0 -0
  323. /package/dist/.next/.next/static/{5dBGGUmK5q7of4h5Rahrg → Y9mYu4WBghepP5oT_3OdR}/_ssgManifest.js +0 -0
  324. /package/dist/.next/.next/static/{PflNFnmFsNegSqhzjI6lA → ae3gNmoSGm-R5LJC4UagI}/_buildManifest.js +0 -0
  325. /package/dist/.next/.next/static/{PflNFnmFsNegSqhzjI6lA → ae3gNmoSGm-R5LJC4UagI}/_ssgManifest.js +0 -0
  326. /package/dist/.next/.next/static/{p8875OZM4iDNsPzmoyLe7 → bKfUJeuvAQlBmR3TjrfkH}/_buildManifest.js +0 -0
  327. /package/dist/.next/.next/static/{p8875OZM4iDNsPzmoyLe7 → bKfUJeuvAQlBmR3TjrfkH}/_ssgManifest.js +0 -0
  328. /package/dist/.next/{static 2/5dBGGUmK5q7of4h5Rahrg → .next/static/ejYPqJ2kVicVp5EFWOZIC}/_buildManifest.js +0 -0
  329. /package/dist/.next/{static 2/5dBGGUmK5q7of4h5Rahrg → .next/static/ejYPqJ2kVicVp5EFWOZIC}/_ssgManifest.js +0 -0
@@ -1,183 +0,0 @@
1
- // components/push-preview-toast.jsx
2
- 'use client';
3
-
4
- import React, { useEffect, useState } from 'react';
5
- import { Button } from "@/components/ui/button";
6
- import { ScrollArea } from "@/components/ui/scroll-area";
7
- import {
8
- Table,
9
- TableBody,
10
- TableCell,
11
- TableHead,
12
- TableHeader,
13
- TableRow,
14
- } from "@/components/ui/table";
15
- import { Loader2, X } from "lucide-react";
16
- import { cn } from "@/lib/utils";
17
-
18
- export function PushPreviewToast({
19
- preview = [],
20
- onConfirm,
21
- onCancel,
22
- isConfirming,
23
- error,
24
- isLoading,
25
- success
26
- }) {
27
- const [isDetailsOpen, setIsDetailsOpen] = useState(true);
28
-
29
- // Handle loading state
30
- if (isLoading) {
31
- return (
32
- <div className="fixed bottom-4 right-4 z-50 font-sans w-[600px]">
33
- <div className="rounded-lg border p-4 shadow-lg bg-background">
34
- <div className="flex items-start gap-3">
35
- <Loader2 className="h-5 w-5 text-neutral-600 shrink-0 mt-0.5 animate-spin" />
36
- <div className="flex-1 space-y-3">
37
- <div className="space-y-1">
38
- <p className="font-medium text-neutral-800">
39
- Preparing Push Migration
40
- </p>
41
- <p className="text-sm text-neutral-600">
42
- Checking local migrations...
43
- </p>
44
- </div>
45
- </div>
46
- </div>
47
- </div>
48
- </div>
49
- );
50
- }
51
-
52
- if (!preview?.length) {
53
- return (
54
- <div className="fixed bottom-4 right-4 z-50 w-[600px]">
55
- <div className="rounded-lg border p-4">
56
- <p className="text-sm font-medium">No migrations to preview</p>
57
- </div>
58
- </div>
59
- );
60
- }
61
-
62
- // Calculate migration stats
63
- const pendingCount = preview.filter(m => m.action === 'will be applied').length;
64
- const skippedCount = preview.filter(m => m.action === 'skipped').length;
65
- const appliedCount = preview.filter(m => m.action === 'applied').length;
66
-
67
- // Get status style based on action
68
- const getStatusEmoji = (action) => {
69
- switch (action) {
70
- case 'will be applied':
71
- return '🕒️';
72
- case 'applied':
73
- case 'skipped':
74
- return '✅';
75
- case 'failed':
76
- return '❌';
77
- default:
78
- return '';
79
- }
80
- };
81
-
82
- return (
83
- <div className="fixed bottom-4 right-4 z-50 font-sans w-[600px]">
84
- <div className={cn(
85
- "rounded-lg border p-4 shadow-lg",
86
- error ? "bg-destructive/15" : "bg-background"
87
- )}>
88
- <div className="flex flex-col gap-3">
89
- {/* Header */}
90
- <div className="space-y-2">
91
- <div className="flex items-center justify-between">
92
- <h5 className="font-medium text-neutral-900">
93
- Push Migration Preview
94
- </h5>
95
- <button
96
- onClick={onCancel}
97
- className="text-neutral-500 hover:text-neutral-900 p-1 rounded-md hover:bg-neutral-100"
98
- >
99
- <X className="h-4 w-4" />
100
- </button>
101
- </div>
102
- <p className="text-sm text-neutral-700">
103
- {pendingCount} migration(s) 🕒️ pending, {skippedCount} to ✅ skip
104
- </p>
105
- {/* Status Messages */}
106
- {error ? (
107
- <p className="text-sm text-destructive font-medium mt-1">
108
- {error.message}
109
- </p>
110
- ) : success && (
111
- <p className="text-sm text-green-700 font-medium mt-1">
112
- {success}
113
- </p>
114
- )}
115
- </div>
116
-
117
- {/* Migration Details */}
118
- <div>
119
- <button
120
- onClick={() => setIsDetailsOpen(!isDetailsOpen)}
121
- className="text-sm font-medium hover:underline"
122
- >
123
- {isDetailsOpen ? 'Hide Details' : 'Show Details'}
124
- </button>
125
-
126
- {isDetailsOpen && (
127
- <ScrollArea className="h-[480px] mt-2 rounded border border-neutral-200">
128
- <Table>
129
- <TableHeader>
130
- <TableRow>
131
- <TableHead>Migration</TableHead>
132
- <TableHead className="text-center w-24">Status</TableHead>
133
- </TableRow>
134
- </TableHeader>
135
- <TableBody>
136
- {preview.map((item, index) => (
137
- <TableRow key={index}>
138
- <TableCell className="font-mono text-xs">
139
- {item.name}
140
- </TableCell>
141
- <TableCell className="text-center align-middle">
142
- {getStatusEmoji(item.action)}
143
- </TableCell>
144
- </TableRow>
145
- ))}
146
- </TableBody>
147
- </Table>
148
- </ScrollArea>
149
- )}
150
- </div>
151
-
152
- {/* Action Buttons */}
153
- <div className="flex gap-2 pt-1">
154
- <Button
155
- onClick={onConfirm}
156
- disabled={isConfirming || pendingCount === 0}
157
- className="flex-1"
158
- >
159
- {isConfirming ? (
160
- <>
161
- <Loader2 className="mr-2 h-4 w-4 animate-spin" />
162
- Confirming...
163
- </>
164
- ) : (
165
- 'Confirm Push'
166
- )}
167
- </Button>
168
- <Button
169
- variant="outline"
170
- onClick={onCancel}
171
- disabled={isConfirming}
172
- className="flex-1"
173
- >
174
- Cancel
175
- </Button>
176
- </div>
177
- </div>
178
- </div>
179
- </div>
180
- );
181
- }
182
-
183
- export default PushPreviewToast;
@@ -1,112 +0,0 @@
1
- 'use client';
2
-
3
- import React from 'react';
4
- import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table';
5
-
6
- function QuerySummary({ results }) {
7
- if (!results || !Array.isArray(results)) return null;
8
-
9
- return (
10
- <div className="text-xs font-medium text-neutral-900 flex items-center gap-2 mb-2">
11
- {results.length} {results.length === 1 ? 'row' : 'rows'} returned
12
- </div>
13
- );
14
- }
15
-
16
- /**
17
- * SQLErrorDisplay now logs the error object received from the parent.
18
- * It safely handles null/undefined errors and logs them to the console.
19
- */
20
- export function SQLErrorDisplay({ error }) {
21
- console.debug("SQLErrorDisplay - Received error prop:", error);
22
- // Create a safe fallback error object if needed.
23
- const safeError =
24
- error && typeof error.message === 'string'
25
- ? error
26
- : { message: 'An unknown error occurred', details: {} };
27
-
28
- return (
29
- <div>
30
- <div className="text-neutral-700 text-sm">{safeError.message}</div>
31
- {safeError.details?.stderr && (
32
- <pre className="mt-2 p-2 text-xs text-red-500 whitespace-pre-wrap">
33
- {safeError.details.stderr}
34
- </pre>
35
- )}
36
- </div>
37
- );
38
- }
39
-
40
- export function SQLResultsView({ query, results }) {
41
- if (!results?.length) {
42
- return (
43
- <div className="text-sm text-neutral-500">
44
- No results to display.
45
- </div>
46
- );
47
- }
48
-
49
- // Detect if the query is a PRAGMA table_info query
50
- const isSchemaQuery = query?.trim().toLowerCase().startsWith('pragma table_info');
51
-
52
- // Define columns for schema queries
53
- const schemaColumns = isSchemaQuery
54
- ? ['Column Name', 'Type', 'Not Null', 'Default Value', 'Primary Key']
55
- : Object.keys(results[0]);
56
-
57
- // Format schema rows if it's a schema query
58
- const formattedResults = isSchemaQuery
59
- ? results.map((row) => ({
60
- 'Column Name': row.name,
61
- 'Type': row.type,
62
- 'Not Null': row.notnull === 1 ? 'YES' : 'NO',
63
- 'Default Value': row.dflt_value || '(null)',
64
- 'Primary Key': row.pk === 1 ? 'YES' : 'NO',
65
- }))
66
- : results;
67
-
68
- return (
69
- <div className="flex flex-col h-full">
70
- <QuerySummary results={formattedResults} />
71
- <div className="flex-1 overflow-auto border rounded-lg">
72
- <div className="min-w-full">
73
- <Table>
74
- <TableHeader>
75
- <TableRow className="bg-muted/50">
76
- {schemaColumns.map((column) => (
77
- <TableHead
78
- key={column}
79
- className="font-mono text-xs font-medium text-muted-foreground"
80
- >
81
- {column}
82
- </TableHead>
83
- ))}
84
- </TableRow>
85
- </TableHeader>
86
- <TableBody>
87
- {formattedResults.map((row, rowIndex) => (
88
- <TableRow key={rowIndex} className="hover:bg-muted/50">
89
- {schemaColumns.map((column) => {
90
- const value = row[column];
91
- const displayValue = value === null ? '(null)' : String(value);
92
-
93
- return (
94
- <TableCell
95
- key={`${rowIndex}-${column}`}
96
- className="font-monospace text-xs whitespace-nowrap"
97
- >
98
- {displayValue}
99
- </TableCell>
100
- );
101
- })}
102
- </TableRow>
103
- ))}
104
- </TableBody>
105
- </Table>
106
- </div>
107
- </div>
108
- </div>
109
- );
110
- }
111
-
112
- export default SQLResultsView;
@@ -1,61 +0,0 @@
1
- // components/refresh-button.jsx
2
- 'use client';
3
-
4
- import React, { memo, useState } from 'react';
5
- import { Button } from "@/components/ui/button";
6
- import { RefreshCw, Loader2 } from 'lucide-react';
7
- import {
8
- Tooltip,
9
- TooltipContent,
10
- TooltipProvider,
11
- TooltipTrigger,
12
- } from "@/components/ui/tooltip";
13
-
14
- const RefreshButton = memo(({ onRefresh, disabled }) => {
15
- const [isRefreshing, setIsRefreshing] = useState(false);
16
-
17
- const handleRefresh = async () => {
18
- if (isRefreshing || disabled) return;
19
-
20
- setIsRefreshing(true);
21
- try {
22
- await onRefresh();
23
- } catch (error) {
24
- console.error('Refresh failed:', error);
25
- } finally {
26
- // Add a small delay before allowing another refresh
27
- setTimeout(() => {
28
- setIsRefreshing(false);
29
- }, 500);
30
- }
31
- };
32
-
33
- return (
34
- <TooltipProvider>
35
- <Tooltip>
36
- <TooltipTrigger asChild>
37
- <Button
38
- variant="outline"
39
- size="icon"
40
- onClick={handleRefresh}
41
- disabled={isRefreshing || disabled}
42
- className="h-8"
43
- >
44
- {isRefreshing ? (
45
- <Loader2 className="h-4 w-4 animate-spin" />
46
- ) : (
47
- <RefreshCw className="h-4 w-4" />
48
- )}
49
- </Button>
50
- </TooltipTrigger>
51
- <TooltipContent>
52
- <p>Refresh table data</p>
53
- </TooltipContent>
54
- </Tooltip>
55
- </TooltipProvider>
56
- );
57
- });
58
-
59
- RefreshButton.displayName = 'RefreshButton';
60
-
61
- export default RefreshButton;
@@ -1,101 +0,0 @@
1
- // components/resize-columns.jsx
2
- 'use client';
3
-
4
- import React, { useState, useCallback, useRef } from 'react';
5
-
6
- const MIN_COLUMN_WIDTH = 100;
7
-
8
- /**
9
- * A resizable table header component.
10
- */
11
- export const ResizableHeader = ({
12
- children,
13
- width,
14
- onResize,
15
- className = ""
16
- }) => {
17
- const [isResizing, setIsResizing] = useState(false);
18
- const headerRef = useRef(null);
19
-
20
- const startResizing = useCallback((e) => {
21
- e.preventDefault();
22
- setIsResizing(true);
23
-
24
- const startX = e.clientX;
25
- const startWidth = headerRef.current?.offsetWidth || 0;
26
-
27
- const handleMouseMove = (e) => {
28
- if (!headerRef.current) return;
29
-
30
- // Calculate the new width based on mouse movement
31
- const diff = e.clientX - startX;
32
- const newWidth = Math.max(startWidth + diff, MIN_COLUMN_WIDTH);
33
-
34
- // Update only the current column's width
35
- onResize(newWidth);
36
- };
37
-
38
- const handleMouseUp = () => {
39
- setIsResizing(false);
40
- document.removeEventListener("mousemove", handleMouseMove);
41
- document.removeEventListener("mouseup", handleMouseUp);
42
- };
43
-
44
- document.addEventListener("mousemove", handleMouseMove);
45
- document.addEventListener("mouseup", handleMouseUp);
46
- }, [onResize]);
47
-
48
- return (
49
- <th
50
- ref={headerRef}
51
- className={`relative ${className} ${isResizing ? 'select-none' : ''}`}
52
- style={{ width: `${width}px` }}
53
- >
54
- {children}
55
- <div
56
- className="absolute top-0 right-0 h-full w-1 cursor-col-resize group hover:bg-neutral-300"
57
- onMouseDown={startResizing}
58
- />
59
- </th>
60
- );
61
- };
62
-
63
- /**
64
- * A resizable table wrapper component.
65
- */
66
- export const ResizableTable = ({
67
- columns,
68
- children,
69
- onColumnsResize,
70
- className = ""
71
- }) => {
72
- const [columnWidths, setColumnWidths] = useState(
73
- columns.reduce((acc, col) => ({
74
- ...acc,
75
- [col.key]: col.width || 150
76
- }), {})
77
- );
78
-
79
- const handleColumnResize = useCallback((columnKey, newWidth) => {
80
- setColumnWidths((prev) => {
81
- const updated = { ...prev, [columnKey]: newWidth };
82
- onColumnsResize?.(updated); // Notify parent of updated widths
83
- return updated;
84
- });
85
- }, [onColumnsResize]);
86
-
87
- return (
88
- <div className={`w-full ${className}`}>
89
- {React.Children.map(children, child => {
90
- if (React.isValidElement(child)) {
91
- return React.cloneElement(child, {
92
- onResize: handleColumnResize, // ✅ Only pass valid props
93
- });
94
- }
95
- return child;
96
- })}
97
- </div>
98
- );
99
- };
100
-
101
- export default ResizableTable;