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,167 +0,0 @@
1
- // components/sql-error-display.jsx
2
- import React from 'react';
3
- import { AlertCircle, X, ChevronDown, ChevronUp } from 'lucide-react';
4
- import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert";
5
- import { Button } from "@/components/ui/button";
6
- import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@/components/ui/collapsible";
7
-
8
- // Keep the original ErrorMessages mapping
9
- const ErrorMessages = {
10
- TABLE_EXISTS: {
11
- title: 'Table Already Exists',
12
- message: 'A table with this name already exists',
13
- action: 'Use a different table name or DROP the existing table first'
14
- },
15
- TABLE_NOT_FOUND: {
16
- title: 'Table Not Found',
17
- message: 'The specified table does not exist',
18
- action: 'Check the table name and ensure it exists'
19
- },
20
- SYNTAX_ERROR: {
21
- title: 'Syntax Error',
22
- message: 'There is a syntax error in your SQL query',
23
- action: 'Check your query syntax and try again'
24
- },
25
- CONSTRAINT_ERROR: {
26
- title: 'Constraint Violation',
27
- message: 'The operation violates a database constraint',
28
- action: 'Ensure your data meets all table constraints'
29
- },
30
- VALIDATION_ERROR: {
31
- title: 'Invalid Query',
32
- message: 'The query is not valid',
33
- action: 'Check your query and try again'
34
- },
35
- SQL_ERROR: {
36
- title: 'SQL Error',
37
- message: 'An error occurred while executing the query',
38
- action: 'Review your query and try again'
39
- },
40
- EXECUTION_ERROR: {
41
- title: 'Execution Error',
42
- message: 'An error occurred during query execution',
43
- action: 'Ensure Node.js is installed and your environment is configured correctly'
44
- },
45
- UNKNOWN_ERROR: {
46
- title: 'Unknown Error',
47
- message: 'An unexpected error occurred',
48
- action: 'Try again or contact support if the issue persists'
49
- }
50
- };
51
-
52
- export function SQLErrorDisplay({ error, onDismiss, onFixError }) {
53
- const [showDetails, setShowDetails] = React.useState(true);
54
-
55
- if (!error) return null;
56
-
57
- const isSyntaxError = error.type === 'SYNTAX_ERROR';
58
- const showQueryPreview = error.details?.originalQuery;
59
- const showErrorLocation = isSyntaxError && error.details?.errorLocation;
60
-
61
- // Get error info from ErrorMessages mapping
62
- const errorInfo = ErrorMessages[error.type] || ErrorMessages.UNKNOWN_ERROR;
63
-
64
- return (
65
- <Alert variant="destructive" className="mt-4 mb-4">
66
- <AlertCircle className="h-4 w-4" />
67
- <AlertTitle className="flex items-center justify-between">
68
- <span>{errorInfo.title}</span>
69
- {onDismiss && (
70
- <button
71
- onClick={onDismiss}
72
- className="p-1 hover:bg-destructive/10 rounded-full"
73
- >
74
- <X className="h-4 w-4" />
75
- </button>
76
- )}
77
- </AlertTitle>
78
-
79
- <AlertDescription className="mt-2">
80
- <div className="font-medium">{error.message || errorInfo.message}</div>
81
-
82
- <Collapsible
83
- open={showDetails}
84
- onOpenChange={setShowDetails}
85
- className="space-y-2 mt-4"
86
- >
87
- <CollapsibleTrigger className="flex items-center gap-2 text-sm font-medium">
88
- {showDetails ? (
89
- <ChevronUp className="h-4 w-4" />
90
- ) : (
91
- <ChevronDown className="h-4 w-4" />
92
- )}
93
- Error Details
94
- </CollapsibleTrigger>
95
-
96
- <CollapsibleContent className="space-y-4">
97
- {showQueryPreview && (
98
- <div className="mt-2">
99
- <div className="text-sm font-medium mb-1">Query preview:</div>
100
- <div className="relative">
101
- <pre className="text-xs bg-destructive/10 p-2 rounded overflow-x-auto whitespace-pre-wrap">
102
- {error.details.originalQuery}
103
- </pre>
104
- {showErrorLocation && (
105
- <div
106
- className="absolute left-0 top-0 w-full"
107
- style={{
108
- transform: `translateY(${Math.floor(error.details.offset / 50)}rem)`
109
- }}
110
- >
111
- <div
112
- className="absolute h-4 w-2 bg-red-500"
113
- style={{ left: `${(error.details.offset % 50) * 0.5}rem` }}
114
- />
115
- </div>
116
- )}
117
- </div>
118
- </div>
119
- )}
120
-
121
- {(error.details?.suggestions || errorInfo.action) && (
122
- <div className="mt-2">
123
- <div className="text-sm font-medium mb-1">Suggestions:</div>
124
- <ul className="list-disc pl-4 space-y-1">
125
- {error.details?.suggestions ? (
126
- error.details.suggestions.map((suggestion, index) => (
127
- <li key={index} className="text-sm text-destructive-foreground/90">
128
- {suggestion}
129
- </li>
130
- ))
131
- ) : (
132
- <li className="text-sm text-destructive-foreground/90">
133
- {errorInfo.action}
134
- </li>
135
- )}
136
- </ul>
137
- </div>
138
- )}
139
-
140
- {error.details?.error && (
141
- <div className="mt-2">
142
- <div className="text-sm font-medium mb-1">Technical details:</div>
143
- <pre className="text-xs bg-destructive/10 p-2 rounded overflow-x-auto">
144
- {error.details.error}
145
- </pre>
146
- </div>
147
- )}
148
-
149
- {onFixError && isSyntaxError && (
150
- <div className="mt-4">
151
- <Button
152
- variant="outline"
153
- size="sm"
154
- onClick={() => onFixError(error.details.errorLocation)}
155
- >
156
- Go to Error Location
157
- </Button>
158
- </div>
159
- )}
160
- </CollapsibleContent>
161
- </Collapsible>
162
- </AlertDescription>
163
- </Alert>
164
- );
165
- }
166
-
167
- export { ErrorMessages };
@@ -1,87 +0,0 @@
1
- // components/sync-migrations-button.jsx
2
- 'use client';
3
-
4
- import React, { memo, useState } from 'react';
5
- import { Button } from "@/components/ui/button";
6
- import { FolderSync, Loader2 } from 'lucide-react';
7
- import {
8
- Tooltip,
9
- TooltipContent,
10
- TooltipProvider,
11
- TooltipTrigger,
12
- } from "@/components/ui/tooltip";
13
- import { useToast } from "@/hooks/use-toast";
14
-
15
- const SyncMigrationsButton = memo(({ tableName, onSync }) => {
16
- const [isSyncing, setIsSyncing] = useState(false);
17
- const { toast } = useToast();
18
-
19
- // Only show for d1_migrations table
20
- if (tableName !== 'd1_migrations') return null;
21
-
22
- const handleSync = async () => {
23
- try {
24
- setIsSyncing(true);
25
- const response = await fetch('/api/migrations/sync-files', {
26
- method: 'POST'
27
- });
28
-
29
- const data = await response.json();
30
-
31
- if (!response.ok) {
32
- throw new Error(data.error || 'Failed to sync migrations');
33
- }
34
-
35
- const { added = [], removed = [] } = data.details || {};
36
-
37
- toast({
38
- title: "Migrations Synced",
39
- description: `Added: ${added.length}, Removed: ${removed.length}`
40
- });
41
-
42
- // Refresh the table data if sync was successful
43
- if (onSync) {
44
- await onSync();
45
- }
46
-
47
- } catch (error) {
48
- console.error('Error syncing migrations:', error);
49
- toast({
50
- variant: "destructive",
51
- title: "Sync Failed",
52
- description: error.message
53
- });
54
- } finally {
55
- setIsSyncing(false);
56
- }
57
- };
58
-
59
- return (
60
- <TooltipProvider>
61
- <Tooltip>
62
- <TooltipTrigger asChild>
63
- <Button
64
- variant="outline"
65
- size="icon"
66
- onClick={handleSync}
67
- disabled={isSyncing}
68
- className="h-8"
69
- >
70
- {isSyncing ? (
71
- <Loader2 className="h-4 w-4 animate-spin" />
72
- ) : (
73
- <FolderSync className="h-4 w-4" />
74
- )}
75
- </Button>
76
- </TooltipTrigger>
77
- <TooltipContent>
78
- <p>Sync migration files with d1_migrations table</p>
79
- </TooltipContent>
80
- </Tooltip>
81
- </TooltipProvider>
82
- );
83
- });
84
-
85
- SyncMigrationsButton.displayName = 'SyncMigrationsButton';
86
-
87
- export default SyncMigrationsButton;
@@ -1,65 +0,0 @@
1
- // components/table-error-dialog.jsx
2
- 'use client';
3
-
4
- import React from 'react';
5
- import {
6
- Dialog,
7
- DialogContent,
8
- DialogHeader,
9
- DialogTitle,
10
- } from "@/components/ui/dialog";
11
- import { Button } from "@/components/ui/button";
12
- import { AlertCircle } from 'lucide-react';
13
-
14
- // Simple function that focuses on just message display
15
- function getErrorInfo(error) {
16
- if (!error) {
17
- return {
18
- message: 'An unknown error occurred.',
19
- icon: AlertCircle,
20
- };
21
- }
22
- return {
23
- message: error.message,
24
- icon: AlertCircle,
25
- };
26
- }
27
-
28
- export function DatabaseErrorDialog({ isOpen, onClose, error }) {
29
- if (!error || !isOpen) return null;
30
-
31
- const { message, icon: Icon } = getErrorInfo(error);
32
-
33
- return (
34
- <Dialog open={isOpen} onOpenChange={onClose}>
35
- <DialogContent className="sm:max-w-md font-sans">
36
- <DialogHeader>
37
- <div className="flex items-center gap-2">
38
- <Icon className="h-4 w-4 text-red-500" />
39
- <DialogTitle>Error</DialogTitle>
40
- </div>
41
- </DialogHeader>
42
- <div className="space-y-4">
43
- <p className="bg-neutral-100 p-2 rounded-md text-neutral-900">
44
- {message}
45
- </p>
46
- {error.details?.suggestions && (
47
- <div className="text-sm space-y-1">
48
- <p className="font-medium">Suggestions:</p>
49
- <ul className="list-disc pl-4 space-y-1">
50
- {error.details.suggestions.map((suggestion, index) => (
51
- <li key={index}>{suggestion}</li>
52
- ))}
53
- </ul>
54
- </div>
55
- )}
56
- </div>
57
- <div className="flex justify-end gap-2 mt-4">
58
- <Button variant="default" onClick={onClose}>
59
- Got it
60
- </Button>
61
- </div>
62
- </DialogContent>
63
- </Dialog>
64
- );
65
- }
@@ -1,285 +0,0 @@
1
- // components/table-toolbar.jsx
2
- 'use client';
3
-
4
- import React, { memo } from 'react';
5
- import { Button } from "@/components/ui/button";
6
- import {
7
- Select,
8
- SelectContent,
9
- SelectItem,
10
- SelectTrigger,
11
- SelectValue,
12
- } from "@/components/ui/select";
13
- import {
14
- ArrowLeft,
15
- ArrowRight,
16
- SlidersHorizontal,
17
- Columns,
18
- Loader2
19
- } from 'lucide-react';
20
- import {
21
- Tooltip,
22
- TooltipContent,
23
- TooltipProvider,
24
- TooltipTrigger,
25
- } from "@/components/ui/tooltip";
26
- import RefreshButton from './refresh-button';
27
- import SyncMigrationsButton from './sync-migrations-button';
28
- import DownloadButton from './download-button';
29
- import ColumnSelector from './column-selector';
30
-
31
- const StaticControls = memo(({
32
- onAdd,
33
- onDelete,
34
- selectedCount,
35
- disabled,
36
- newRecordsCount,
37
- schema,
38
- visibleColumns,
39
- onColumnToggle
40
- }) => (
41
- <div className="flex items-center space-x-2">
42
- <TooltipProvider>
43
- <Tooltip>
44
- <TooltipTrigger asChild>
45
- {/* Wrapping the disabled button in a span so the tooltip can trigger */}
46
- <span>
47
- <Button
48
- size="sm"
49
- variant="outline"
50
- className="font-semibold opacity-50 cursor-not-allowed"
51
- disabled
52
- >
53
- <SlidersHorizontal className="h-4 w-4" />
54
- Filters
55
- </Button>
56
- </span>
57
- </TooltipTrigger>
58
- <TooltipContent>
59
- <p>Filters are not available yet. Coming soon!</p>
60
- </TooltipContent>
61
- </Tooltip>
62
- </TooltipProvider>
63
-
64
- <ColumnSelector
65
- schema={schema}
66
- visibleColumns={visibleColumns}
67
- onColumnToggle={onColumnToggle}
68
- />
69
-
70
- <div className="h-4 border-r mx-2" />
71
-
72
- <Button
73
- size="sm"
74
- variant="default"
75
- className="font-semibold"
76
- onClick={onAdd}
77
- >
78
- Add record
79
- </Button>
80
-
81
- {selectedCount > 0 && (
82
- <Button
83
- size="sm"
84
- className="font-semibold"
85
- onClick={onDelete}
86
- variant="destructive"
87
- disabled={disabled || newRecordsCount > 0}
88
- >
89
- Delete {selectedCount} {selectedCount === 1 ? 'record' : 'records'}
90
- </Button>
91
- )}
92
- </div>
93
- ));
94
-
95
- const RowCount = memo(({ totalRows }) => (
96
- <span className="text-sm text-neutral-600">
97
- {totalRows} {totalRows === 1 ? 'row' : 'rows'}
98
- </span>
99
- ));
100
-
101
- const PaginationControls = memo(({
102
- currentPage,
103
- totalPages,
104
- onPageChange,
105
- disabled,
106
- newRecordsCount
107
- }) => (
108
- <div className="flex items-center space-x-2">
109
- <Button
110
- variant="ghost"
111
- size="icon"
112
- onClick={() => {
113
- console.log("Pagination: navigating to previous page", currentPage - 1);
114
- onPageChange(currentPage - 1);
115
- }}
116
- disabled={currentPage === 1 || disabled || newRecordsCount > 0}
117
- className="h-8"
118
- >
119
- <ArrowLeft className="h-4 w-4" />
120
- </Button>
121
- <span className="text-sm">
122
- Page {currentPage} of {totalPages}
123
- </span>
124
- <Button
125
- variant="ghost"
126
- size="icon"
127
- onClick={() => {
128
- console.log("Pagination: navigating to next page", currentPage + 1);
129
- onPageChange(currentPage + 1);
130
- }}
131
- disabled={currentPage === totalPages || disabled || newRecordsCount > 0}
132
- className="h-8"
133
- >
134
- <ArrowRight className="h-4 w-4" />
135
- </Button>
136
- </div>
137
- ));
138
-
139
- const RowsPerPageSelect = memo(({ value, onValueChange, disabled, newRecordsCount }) => (
140
- <Select
141
- value={value.toString()}
142
- onValueChange={onValueChange}
143
- disabled={disabled || newRecordsCount > 0}
144
- >
145
- <SelectTrigger className="w-20 h-8">
146
- <SelectValue />
147
- </SelectTrigger>
148
- <SelectContent>
149
- <SelectItem value="50">50</SelectItem>
150
- <SelectItem value="100">100</SelectItem>
151
- <SelectItem value="250">250</SelectItem>
152
- </SelectContent>
153
- </Select>
154
- ));
155
-
156
- const SaveDiscardButtons = memo(({ onSave, onDiscard, totalChanges, isSaving }) => (
157
- <div className="flex items-center gap-2">
158
- <Button
159
- size="sm"
160
- variant="ghost"
161
- className="font-semibold"
162
- onClick={onDiscard}
163
- disabled={isSaving}
164
- >
165
- Discard changes
166
- </Button>
167
- <Button
168
- size="sm"
169
- className="font-semibold bg-green-600 hover:bg-green-700"
170
- variant="default"
171
- onClick={onSave}
172
- disabled={isSaving}
173
- >
174
- {isSaving ? (
175
- <>
176
- <Loader2 className="h-4 w-4 animate-spin" />
177
- Saving...
178
- </>
179
- ) : (
180
- `Save ${totalChanges} ${totalChanges === 1 ? 'change' : 'changes'}`
181
- )}
182
- </Button>
183
- </div>
184
- ));
185
-
186
- const TableToolbar = ({
187
- selectedCount = 0,
188
- onAdd,
189
- onDelete,
190
- onRefresh,
191
- totalRows = 0,
192
- currentPage = 1,
193
- totalPages = 1,
194
- onPageChange,
195
- rowsPerPage = 50,
196
- onRowsPerPageChange,
197
- tableName,
198
- onDownloadStart,
199
- onDownloadComplete,
200
- disabled = false,
201
- editCount = 0,
202
- newRecordsCount = 0,
203
- onSaveChanges,
204
- onDiscardChanges,
205
- isSaving = false,
206
- schema,
207
- visibleColumns,
208
- onColumnToggle,
209
- }) => {
210
- const handleRowsPerPageChange = (value) => {
211
- const newRowsPerPage = parseInt(value, 10);
212
- onRowsPerPageChange(newRowsPerPage);
213
- onPageChange(1); // Reset to first page when rows per page changes
214
- };
215
-
216
- const totalChanges = editCount + newRecordsCount;
217
-
218
- return (
219
- <div className="flex items-center justify-between p-3 border-b bg-background font-sans">
220
- <div className="flex items-center justify-between w-full">
221
- <StaticControls
222
- onAdd={onAdd}
223
- onDelete={onDelete}
224
- selectedCount={selectedCount}
225
- disabled={disabled || isSaving}
226
- newRecordsCount={newRecordsCount}
227
- schema={schema}
228
- visibleColumns={visibleColumns}
229
- onColumnToggle={onColumnToggle}
230
- />
231
-
232
- <div className="flex items-center gap-4">
233
- {totalChanges > 0 ? (
234
- <SaveDiscardButtons
235
- onSave={onSaveChanges}
236
- onDiscard={onDiscardChanges}
237
- totalChanges={totalChanges}
238
- isSaving={isSaving}
239
- />
240
- ) : (
241
- <div className="flex items-center space-x-2">
242
- <RowCount totalRows={totalRows} />
243
-
244
- <PaginationControls
245
- currentPage={currentPage}
246
- totalPages={totalPages}
247
- onPageChange={onPageChange}
248
- disabled={disabled}
249
- newRecordsCount={newRecordsCount}
250
- />
251
-
252
- <RowsPerPageSelect
253
- value={rowsPerPage}
254
- onValueChange={handleRowsPerPageChange}
255
- disabled={disabled}
256
- newRecordsCount={newRecordsCount}
257
- />
258
-
259
- <RefreshButton
260
- onRefresh={onRefresh}
261
- disabled={disabled}
262
- />
263
-
264
- <SyncMigrationsButton
265
- tableName={tableName}
266
- onSync={onRefresh}
267
- disabled={disabled}
268
- />
269
-
270
- <DownloadButton
271
- tableName={tableName}
272
- onDownloadStart={onDownloadStart}
273
- onDownloadComplete={onDownloadComplete}
274
- disabled={disabled}
275
- />
276
- </div>
277
- )}
278
- </div>
279
- </div>
280
- </div>
281
- );
282
- };
283
-
284
- TableToolbar.displayName = 'TableToolbar';
285
- export default memo(TableToolbar);