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.
- package/dist/.next/.next/BUILD_ID +1 -1
- package/dist/.next/.next/app-build-manifest.json +33 -33
- package/dist/.next/.next/app-path-routes-manifest.json +1 -1
- package/dist/.next/.next/build-manifest.json +3 -3
- package/dist/.next/.next/cache/.rscinfo +1 -1
- package/dist/.next/.next/cache/.tsbuildinfo +1 -1
- package/dist/.next/.next/cache/webpack/client-production/0.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/1.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/10.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/11.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/12.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/2.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/3.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/4.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/5.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/6.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/7.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/8.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/9.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/index.pack +0 -0
- package/dist/.next/.next/cache/webpack/client-production/index.pack.old +0 -0
- package/dist/.next/.next/cache/webpack/edge-server-production/index.pack +0 -0
- package/dist/.next/.next/cache/webpack/server-production/0.pack +0 -0
- package/dist/.next/.next/cache/webpack/server-production/1.pack +0 -0
- package/dist/.next/.next/cache/webpack/server-production/index.pack +0 -0
- package/dist/.next/.next/cache/webpack/server-production/index.pack.old +0 -0
- package/dist/.next/.next/next-minimal-server.js.nft.json +1 -1
- package/dist/.next/.next/next-server.js.nft.json +1 -1
- package/dist/.next/.next/prerender-manifest.json +1 -1
- package/dist/.next/.next/required-server-files.json +1 -1
- package/dist/.next/.next/server/app/_not-found/page.js +1 -1
- package/dist/.next/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/dist/.next/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/_not-found.html +1 -1
- package/dist/.next/.next/server/app/_not-found.rsc +4 -4
- package/dist/.next/.next/server/app/api/cloudflare/route.js +1 -1
- package/dist/.next/.next/server/app/api/cloudflare/route_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/api/databases/route.js +1 -1
- package/dist/.next/.next/server/app/api/databases/route_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/api/migrations/sync/route.js +5 -5
- package/dist/.next/.next/server/app/api/migrations/sync/route_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/api/migrations/sync-files/route.js +3 -3
- package/dist/.next/.next/server/app/api/migrations/sync-files/route_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/api/pull-data/confirm/route.js +1 -1
- package/dist/.next/.next/server/app/api/pull-data/confirm/route_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/api/pull-remote/confirm/route.js +2 -2
- package/dist/.next/.next/server/app/api/pull-remote/confirm/route_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/api/pull-remote/preview/route.js +4 -4
- package/dist/.next/.next/server/app/api/pull-remote/preview/route_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/api/push-remote/confirm/route.js +5 -5
- package/dist/.next/.next/server/app/api/push-remote/confirm/route_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/api/push-remote/preview/route.js +4 -4
- package/dist/.next/.next/server/app/api/push-remote/preview/route_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/api/query/route.js +3 -3
- package/dist/.next/.next/server/app/api/query/route_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/api/tables/[name]/route.js +5 -5
- package/dist/.next/.next/server/app/api/tables/[name]/route_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/api/tables/route.js +2 -2
- package/dist/.next/.next/server/app/api/tables/route_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/api/update/route.js +1 -1
- package/dist/.next/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app/index.html +3 -3
- package/dist/.next/.next/server/app/index.rsc +5 -5
- package/dist/.next/.next/server/app/page.js +11 -13
- package/dist/.next/.next/server/app/page.js.nft.json +1 -1
- package/dist/.next/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/.next/.next/server/app-paths-manifest.json +3 -3
- package/dist/.next/.next/server/chunks/226.js +12 -12
- package/dist/.next/.next/server/chunks/391.js +5 -5
- package/dist/.next/.next/server/chunks/452.js +1 -1
- package/dist/.next/.next/server/chunks/572.js +1 -0
- package/dist/.next/.next/server/chunks/627.js +3 -3
- package/dist/.next/.next/server/chunks/638.js +3 -3
- package/dist/.next/.next/server/chunks/992.js +3 -3
- package/dist/.next/.next/server/middleware-build-manifest.js +1 -1
- package/dist/.next/.next/server/next-font-manifest.js +1 -1
- package/dist/.next/.next/server/next-font-manifest.json +1 -1
- package/dist/.next/.next/server/pages/404.html +1 -1
- package/dist/.next/.next/server/pages/500.html +1 -1
- package/dist/.next/.next/server/pages/_app.js +1 -1
- package/dist/.next/.next/server/pages/_document.js +1 -1
- package/dist/.next/.next/server/pages/_error.js +1 -1
- package/dist/.next/.next/server/server-reference-manifest.json +1 -1
- package/dist/.next/.next/static/chunks/576-18a2209e1ed26aad.js +1 -0
- package/dist/.next/.next/static/chunks/{92-c4466e0f1ca8a3a8.js → 92-5f7522943fcb72a8.js} +1 -1
- package/dist/.next/.next/static/chunks/app/{layout-be6ee67cf0c92654.js → layout-40ec07d04681ba81.js} +1 -1
- package/dist/.next/.next/static/chunks/app/page-f05cd0fc436bf9bc.js +1 -0
- package/dist/.next/.next/static/chunks/{main-app-fa35024de9bd9284.js → main-app-4506e88db72db4b7.js} +1 -1
- package/dist/.next/.next/static/css/7c16f57d325d0d7d.css +3 -0
- package/dist/.next/.next/static/gABGrAoO8IPArDo_Ns_7g/_buildManifest.js +1 -0
- package/dist/.next/.next/static/gABGrAoO8IPArDo_Ns_7g/_ssgManifest.js +1 -0
- package/dist/.next/.next/static/gh-QfIUVo4FTTduYCVKT6/_buildManifest.js +1 -0
- package/dist/.next/.next/static/gh-QfIUVo4FTTduYCVKT6/_ssgManifest.js +1 -0
- package/dist/.next/.next/static/media/8d697b304b401681-s.woff2 +0 -0
- package/dist/.next/.next/static/media/9610d9e46709d722-s.woff2 +0 -0
- package/dist/.next/.next/static/ybCx6L6gHqtODbKmlhU-d/_buildManifest.js +1 -0
- package/dist/.next/.next/static/ybCx6L6gHqtODbKmlhU-d/_ssgManifest.js +1 -0
- package/dist/.next/.next/trace +3 -3
- package/dist/.next/.next/types/app/api/cloudflare/route.ts +1 -1
- package/dist/.next/.next/types/app/api/databases/route.ts +1 -1
- package/dist/.next/.next/types/app/api/migrations/sync/route.ts +1 -1
- package/dist/.next/.next/types/app/api/migrations/sync-files/route.ts +1 -1
- package/dist/.next/.next/types/app/api/pull-data/confirm/route.ts +1 -1
- package/dist/.next/.next/types/app/api/pull-remote/confirm/route.ts +1 -1
- package/dist/.next/.next/types/app/api/pull-remote/preview/route.ts +1 -1
- package/dist/.next/.next/types/app/api/push-remote/confirm/route.ts +1 -1
- package/dist/.next/.next/types/app/api/push-remote/preview/route.ts +1 -1
- package/dist/.next/.next/types/app/api/query/route.ts +1 -1
- package/dist/.next/.next/types/app/api/tables/[name]/route.ts +1 -1
- package/dist/.next/.next/types/app/api/tables/route.ts +1 -1
- package/dist/.next/.next/types/app/api/update/route.ts +1 -1
- package/dist/.next/.next/types/app/page.ts +1 -1
- package/dist/.next/BUILD_ID +1 -1
- package/dist/.next/app-build-manifest.json +32 -32
- package/dist/.next/app-path-routes-manifest.json +1 -1
- package/dist/.next/build-manifest.json +3 -3
- package/dist/.next/cache/.rscinfo +1 -1
- package/dist/.next/cache/.tsbuildinfo +1 -1
- package/dist/.next/cache/webpack/client-production/0.pack +0 -0
- package/dist/.next/cache/webpack/client-production/1.pack +0 -0
- package/dist/.next/cache/webpack/client-production/2.pack +0 -0
- package/dist/.next/cache/webpack/client-production/index.pack +0 -0
- package/dist/.next/cache/webpack/client-production/index.pack.old +0 -0
- package/dist/.next/cache/webpack/edge-server-production/index.pack +0 -0
- package/dist/.next/cache/webpack/server-production/0.pack +0 -0
- package/dist/.next/cache/webpack/server-production/index.pack +0 -0
- package/dist/.next/next-minimal-server.js.nft.json +1 -1
- package/dist/.next/next-server.js.nft.json +1 -1
- package/dist/.next/prerender-manifest.json +1 -1
- package/dist/.next/required-server-files.json +1 -1
- package/dist/.next/server/app/_not-found/page.js +1 -1
- package/dist/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/_not-found.html +1 -1
- package/dist/.next/server/app/_not-found.rsc +4 -4
- package/dist/.next/server/app/api/cloudflare/route.js +1 -1
- package/dist/.next/server/app/api/cloudflare/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/databases/route.js +1 -1
- package/dist/.next/server/app/api/databases/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/migrations/sync/route.js +5 -5
- package/dist/.next/server/app/api/migrations/sync/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/migrations/sync-files/route.js +3 -3
- package/dist/.next/server/app/api/migrations/sync-files/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/pull-data/confirm/route.js +1 -1
- package/dist/.next/server/app/api/pull-data/confirm/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/pull-remote/confirm/route.js +2 -2
- package/dist/.next/server/app/api/pull-remote/confirm/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/pull-remote/preview/route.js +4 -4
- package/dist/.next/server/app/api/pull-remote/preview/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/push-remote/confirm/route.js +5 -5
- package/dist/.next/server/app/api/push-remote/confirm/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/push-remote/preview/route.js +4 -4
- package/dist/.next/server/app/api/push-remote/preview/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/query/route.js +3 -3
- package/dist/.next/server/app/api/query/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/tables/[name]/route.js +5 -5
- package/dist/.next/server/app/api/tables/[name]/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/tables/route.js +2 -2
- package/dist/.next/server/app/api/tables/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/update/route.js +1 -1
- package/dist/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/index.html +3 -3
- package/dist/.next/server/app/index.rsc +5 -5
- package/dist/.next/server/app/page.js +11 -13
- package/dist/.next/server/app/page.js.nft.json +1 -1
- package/dist/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app-paths-manifest.json +2 -2
- package/dist/.next/server/chunks/226.js +12 -12
- package/dist/.next/server/chunks/391.js +5 -5
- package/dist/.next/server/chunks/452.js +1 -1
- package/dist/.next/server/chunks/572.js +1 -0
- package/dist/.next/server/chunks/627.js +3 -3
- package/dist/.next/server/chunks/638.js +3 -3
- package/dist/.next/server/chunks/992.js +3 -3
- package/dist/.next/server/middleware-build-manifest.js +1 -1
- package/dist/.next/server/next-font-manifest.js +1 -1
- package/dist/.next/server/next-font-manifest.json +1 -1
- package/dist/.next/server/pages/404.html +1 -1
- package/dist/.next/server/pages/500.html +1 -1
- package/dist/.next/server/pages/_app.js +1 -1
- package/dist/.next/server/pages/_document.js +1 -1
- package/dist/.next/server/pages/_error.js +1 -1
- package/dist/.next/server/server-reference-manifest.json +1 -1
- package/dist/.next/static/IX-QLbm7scYnyqWeeimal/_buildManifest.js +1 -0
- package/dist/.next/static/IX-QLbm7scYnyqWeeimal/_ssgManifest.js +1 -0
- package/dist/.next/static/chunks/576-18a2209e1ed26aad.js +1 -0
- package/dist/.next/static/chunks/{92-c4466e0f1ca8a3a8.js → 92-5f7522943fcb72a8.js} +1 -1
- package/dist/.next/static/chunks/app/{layout-be6ee67cf0c92654.js → layout-40ec07d04681ba81.js} +1 -1
- package/dist/.next/static/chunks/app/page-f05cd0fc436bf9bc.js +1 -0
- package/dist/.next/static/chunks/{main-app-fa35024de9bd9284.js → main-app-4506e88db72db4b7.js} +1 -1
- package/dist/.next/static/css/7c16f57d325d0d7d.css +3 -0
- package/dist/.next/static/media/8d697b304b401681-s.woff2 +0 -0
- package/dist/.next/static/media/9610d9e46709d722-s.woff2 +0 -0
- package/dist/.next/trace +3 -16
- package/dist/.next/types/app/api/cloudflare/route.ts +1 -1
- package/dist/.next/types/app/api/databases/route.ts +1 -1
- package/dist/.next/types/app/api/migrations/sync/route.ts +1 -1
- package/dist/.next/types/app/api/migrations/sync-files/route.ts +1 -1
- package/dist/.next/types/app/api/pull-data/confirm/route.ts +1 -1
- package/dist/.next/types/app/api/pull-remote/confirm/route.ts +1 -1
- package/dist/.next/types/app/api/pull-remote/preview/route.ts +1 -1
- package/dist/.next/types/app/api/push-remote/confirm/route.ts +1 -1
- package/dist/.next/types/app/api/push-remote/preview/route.ts +1 -1
- package/dist/.next/types/app/api/query/route.ts +1 -1
- package/dist/.next/types/app/api/tables/[name]/route.ts +1 -1
- package/dist/.next/types/app/api/tables/route.ts +1 -1
- package/dist/.next/types/app/api/update/route.ts +1 -1
- package/dist/.next/types/app/page.ts +1 -1
- package/dist/app/api/tables/[name]/route.js +22 -10
- package/dist/app/globals.css +39 -0
- package/dist/app/page.jsx +13 -23
- package/dist/d1-studio.js +34 -4
- package/dist/lib/data-type-handlers.js +426 -0
- package/dist/lib/sql-operations.js +32 -8
- package/dist/lib/sql-sanitizer.js +233 -0
- package/package.json +3 -9
- package/dist/.next/.next/cache/webpack/server-production/2.pack +0 -0
- package/dist/.next/.next/server/chunks/90.js +0 -1
- package/dist/.next/.next/static/chunks/700-dc8f9f08b166c5e6.js +0 -1
- package/dist/.next/.next/static/chunks/app/page-16ec561fc8bebb5d.js +0 -1
- package/dist/.next/.next/static/css/0c512cea5f3d317a.css +0 -3
- package/dist/.next/server/chunks/90.js +0 -1
- package/dist/.next/static/chunks/700-dc8f9f08b166c5e6.js +0 -1
- package/dist/.next/static/chunks/app/page-16ec561fc8bebb5d.js +0 -1
- package/dist/.next/static/css/0c512cea5f3d317a.css +0 -3
- package/dist/app/app/api/cloudflare/route.js +0 -150
- package/dist/app/app/api/databases/route.js +0 -71
- package/dist/app/app/api/migrations/sync/route.js +0 -174
- package/dist/app/app/api/migrations/sync-files/route.js +0 -172
- package/dist/app/app/api/pull-data/confirm/route.js +0 -230
- package/dist/app/app/api/pull-remote/confirm/route.js +0 -278
- package/dist/app/app/api/pull-remote/preview/route.js +0 -144
- package/dist/app/app/api/push-remote/confirm/route.js +0 -196
- package/dist/app/app/api/push-remote/preview/route.js +0 -179
- package/dist/app/app/api/query/route.js +0 -168
- package/dist/app/app/api/tables/[name]/route.js +0 -174
- package/dist/app/app/api/tables/route.js +0 -178
- package/dist/app/app/api/update/route.js +0 -45
- package/dist/app/app/globals.css +0 -93
- package/dist/app/app/layout.jsx +0 -35
- package/dist/app/app/page.jsx +0 -44
- package/next.config.mjs +0 -18
- package/postcss.config.mjs +0 -8
- package/scripts/studio.js +0 -169
- package/scripts/test.js +0 -366
- package/src/app/api/cloudflare/route.js +0 -150
- package/src/app/api/databases/route.js +0 -71
- package/src/app/api/migrations/sync/route.js +0 -174
- package/src/app/api/migrations/sync-files/route.js +0 -172
- package/src/app/api/pull-data/confirm/route.js +0 -230
- package/src/app/api/pull-remote/confirm/route.js +0 -278
- package/src/app/api/pull-remote/preview/route.js +0 -144
- package/src/app/api/push-remote/confirm/route.js +0 -196
- package/src/app/api/push-remote/preview/route.js +0 -179
- package/src/app/api/query/route.js +0 -168
- package/src/app/api/tables/[name]/route.js +0 -174
- package/src/app/api/tables/route.js +0 -178
- package/src/app/api/update/route.js +0 -45
- package/src/app/globals.css +0 -93
- package/src/app/layout.jsx +0 -35
- package/src/app/page.jsx +0 -44
- package/src/components/cloudflare-credentials-modal.jsx +0 -94
- package/src/components/column-selector.jsx +0 -133
- package/src/components/column-sorting.jsx +0 -65
- package/src/components/delete-records-dialog.jsx +0 -64
- package/src/components/download-button.jsx +0 -205
- package/src/components/edit-error-alert.jsx +0 -30
- package/src/components/editable-cell.jsx +0 -163
- package/src/components/editable-row.jsx +0 -169
- package/src/components/environment-handler.jsx +0 -332
- package/src/components/environment-select.jsx +0 -62
- package/src/components/pull-preview-toast.jsx +0 -215
- package/src/components/push-error-alert.jsx +0 -72
- package/src/components/push-preview-toast.jsx +0 -183
- package/src/components/query-results.jsx +0 -112
- package/src/components/refresh-button.jsx +0 -61
- package/src/components/resize-columns.jsx +0 -101
- package/src/components/sidebar.jsx +0 -254
- package/src/components/sql-editor.jsx +0 -411
- package/src/components/sql-error-display.jsx +0 -167
- package/src/components/sync-migrations-button.jsx +0 -87
- package/src/components/table-error-dialog.jsx +0 -65
- package/src/components/table-toolbar.jsx +0 -285
- package/src/components/table-view.jsx +0 -843
- package/src/components/ui/alert.jsx +0 -47
- package/src/components/ui/button.jsx +0 -48
- package/src/components/ui/card.jsx +0 -50
- package/src/components/ui/checkbox.jsx +0 -24
- package/src/components/ui/collapsible.jsx +0 -11
- package/src/components/ui/dialog.jsx +0 -96
- package/src/components/ui/dropdown-menu.jsx +0 -158
- package/src/components/ui/input.jsx +0 -19
- package/src/components/ui/scroll-area.jsx +0 -40
- package/src/components/ui/select.jsx +0 -121
- package/src/components/ui/separator.jsx +0 -25
- package/src/components/ui/sheet.jsx +0 -109
- package/src/components/ui/sidebar.jsx +0 -620
- package/src/components/ui/skeleton.jsx +0 -14
- package/src/components/ui/table.jsx +0 -86
- package/src/components/ui/tabs.jsx +0 -43
- package/src/components/ui/toast.jsx +0 -86
- package/src/components/ui/toaster.jsx +0 -35
- package/src/components/ui/tooltip.jsx +0 -28
- package/src/components/update-banner.jsx +0 -93
- package/src/context/database-context.js +0 -510
- package/src/hooks/use-mobile.jsx +0 -19
- package/src/hooks/use-sql-error.ts +0 -23
- package/src/hooks/use-toast.js +0 -155
- package/src/lib/database-queue.js +0 -37
- package/src/lib/error.js +0 -20
- package/src/lib/find-wrangler-config.js +0 -74
- package/src/lib/license.js +0 -99
- package/src/lib/logger.js +0 -58
- package/src/lib/migrations.js +0 -415
- package/src/lib/parse-sql-error.js +0 -200
- package/src/lib/request-deduplication.js +0 -24
- package/src/lib/schema-operations.js +0 -106
- package/src/lib/sql-error-types.js +0 -14
- package/src/lib/sql-operations.js +0 -647
- package/src/lib/utils.js +0 -6
- package/src/lib/version-utils.js +0 -34
- /package/dist/.next/.next/static/{5dBGGUmK5q7of4h5Rahrg → Y9mYu4WBghepP5oT_3OdR}/_buildManifest.js +0 -0
- /package/dist/.next/.next/static/{5dBGGUmK5q7of4h5Rahrg → Y9mYu4WBghepP5oT_3OdR}/_ssgManifest.js +0 -0
- /package/dist/.next/.next/static/{PflNFnmFsNegSqhzjI6lA → ae3gNmoSGm-R5LJC4UagI}/_buildManifest.js +0 -0
- /package/dist/.next/.next/static/{PflNFnmFsNegSqhzjI6lA → ae3gNmoSGm-R5LJC4UagI}/_ssgManifest.js +0 -0
- /package/dist/.next/.next/static/{p8875OZM4iDNsPzmoyLe7 → bKfUJeuvAQlBmR3TjrfkH}/_buildManifest.js +0 -0
- /package/dist/.next/.next/static/{p8875OZM4iDNsPzmoyLe7 → bKfUJeuvAQlBmR3TjrfkH}/_ssgManifest.js +0 -0
- /package/dist/.next/{static 2/5dBGGUmK5q7of4h5Rahrg → .next/static/ejYPqJ2kVicVp5EFWOZIC}/_buildManifest.js +0 -0
- /package/dist/.next/{static 2/5dBGGUmK5q7of4h5Rahrg → .next/static/ejYPqJ2kVicVp5EFWOZIC}/_ssgManifest.js +0 -0
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
// app/api/update/route.js
|
|
2
|
-
import { NextResponse } from 'next/server';
|
|
3
|
-
import pkg from '../../../../package.json' assert { type: 'json' };
|
|
4
|
-
|
|
5
|
-
export async function GET() {
|
|
6
|
-
try {
|
|
7
|
-
// Get current version from package.json
|
|
8
|
-
const currentVersion = pkg.version;
|
|
9
|
-
|
|
10
|
-
// Fetch the latest version from npm registry
|
|
11
|
-
const response = await fetch('https://registry.npmjs.org/d1s/latest', {
|
|
12
|
-
headers: {
|
|
13
|
-
'Accept': 'application/json',
|
|
14
|
-
'User-Agent': 'd1-studio'
|
|
15
|
-
},
|
|
16
|
-
// Add cache control to prevent excessive requests
|
|
17
|
-
cache: 'no-cache'
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
if (!response.ok) {
|
|
21
|
-
throw new Error('Failed to check for updates');
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const data = await response.json();
|
|
25
|
-
const latestVersion = data.version;
|
|
26
|
-
|
|
27
|
-
// Compare versions - only return update info if there's a newer version
|
|
28
|
-
if (latestVersion && currentVersion && latestVersion !== currentVersion) {
|
|
29
|
-
console.log(`Update available: ${currentVersion} → ${latestVersion}`);
|
|
30
|
-
return NextResponse.json({
|
|
31
|
-
update: {
|
|
32
|
-
latest: latestVersion,
|
|
33
|
-
current: currentVersion
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// No update available
|
|
39
|
-
return NextResponse.json({ update: null });
|
|
40
|
-
} catch (error) {
|
|
41
|
-
console.error('Error checking for updates:', error);
|
|
42
|
-
// Return null on error to prevent banner from showing
|
|
43
|
-
return NextResponse.json({ update: null });
|
|
44
|
-
}
|
|
45
|
-
}
|
package/dist/app/app/globals.css
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
@tailwind base;
|
|
2
|
-
@tailwind components;
|
|
3
|
-
@tailwind utilities;
|
|
4
|
-
|
|
5
|
-
body {
|
|
6
|
-
font-family: Arial, Helvetica, sans-serif;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
@layer base {
|
|
10
|
-
:root {
|
|
11
|
-
--background: 0 0% 100%;
|
|
12
|
-
--foreground: 240 10% 3.9%;
|
|
13
|
-
--card: 0 0% 100%;
|
|
14
|
-
--card-foreground: 240 10% 3.9%;
|
|
15
|
-
--popover: 0 0% 100%;
|
|
16
|
-
--popover-foreground: 240 10% 3.9%;
|
|
17
|
-
--primary: 240 5.9% 10%;
|
|
18
|
-
--primary-foreground: 0 0% 98%;
|
|
19
|
-
--secondary: 240 4.8% 95.9%;
|
|
20
|
-
--secondary-foreground: 240 5.9% 10%;
|
|
21
|
-
--muted: 240 4.8% 95.9%;
|
|
22
|
-
--muted-foreground: 240 3.8% 46.1%;
|
|
23
|
-
--accent: 240 4.8% 95.9%;
|
|
24
|
-
--accent-foreground: 240 5.9% 10%;
|
|
25
|
-
--destructive: 0 84.2% 60.2%;
|
|
26
|
-
--destructive-foreground: 0 0% 98%;
|
|
27
|
-
--border: 240 5.9% 90%;
|
|
28
|
-
--input: 240 5.9% 90%;
|
|
29
|
-
--ring: 240 10% 3.9%;
|
|
30
|
-
--chart-1: 12 76% 61%;
|
|
31
|
-
--chart-2: 173 58% 39%;
|
|
32
|
-
--chart-3: 197 37% 24%;
|
|
33
|
-
--chart-4: 43 74% 66%;
|
|
34
|
-
--chart-5: 27 87% 67%;
|
|
35
|
-
--radius: 0.5rem;
|
|
36
|
-
--sidebar-background: 0 0% 98%;
|
|
37
|
-
--sidebar-foreground: 240 5.3% 26.1%;
|
|
38
|
-
--sidebar-primary: 240 5.9% 10%;
|
|
39
|
-
--sidebar-primary-foreground: 0 0% 98%;
|
|
40
|
-
--sidebar-accent: 240 4.8% 95.9%;
|
|
41
|
-
--sidebar-accent-foreground: 240 5.9% 10%;
|
|
42
|
-
--sidebar-border: 220 13% 91%;
|
|
43
|
-
--sidebar-ring: 217.2 91.2% 59.8%;
|
|
44
|
-
}
|
|
45
|
-
.dark {
|
|
46
|
-
--background: 240 10% 3.9%;
|
|
47
|
-
--foreground: 0 0% 98%;
|
|
48
|
-
--card: 240 10% 3.9%;
|
|
49
|
-
--card-foreground: 0 0% 98%;
|
|
50
|
-
--popover: 240 10% 3.9%;
|
|
51
|
-
--popover-foreground: 0 0% 98%;
|
|
52
|
-
--primary: 0 0% 98%;
|
|
53
|
-
--primary-foreground: 240 5.9% 10%;
|
|
54
|
-
--secondary: 240 3.7% 15.9%;
|
|
55
|
-
--secondary-foreground: 0 0% 98%;
|
|
56
|
-
--muted: 240 3.7% 15.9%;
|
|
57
|
-
--muted-foreground: 240 5% 64.9%;
|
|
58
|
-
--accent: 240 3.7% 15.9%;
|
|
59
|
-
--accent-foreground: 0 0% 98%;
|
|
60
|
-
--destructive: 0 62.8% 30.6%;
|
|
61
|
-
--destructive-foreground: 0 0% 98%;
|
|
62
|
-
--border: 240 3.7% 15.9%;
|
|
63
|
-
--input: 240 3.7% 15.9%;
|
|
64
|
-
--ring: 240 4.9% 83.9%;
|
|
65
|
-
--chart-1: 220 70% 50%;
|
|
66
|
-
--chart-2: 160 60% 45%;
|
|
67
|
-
--chart-3: 30 80% 55%;
|
|
68
|
-
--chart-4: 280 65% 60%;
|
|
69
|
-
--chart-5: 340 75% 55%;
|
|
70
|
-
--sidebar-background: 240 5.9% 10%;
|
|
71
|
-
--sidebar-foreground: 240 4.8% 95.9%;
|
|
72
|
-
--sidebar-primary: 224.3 76.3% 48%;
|
|
73
|
-
--sidebar-primary-foreground: 0 0% 100%;
|
|
74
|
-
--sidebar-accent: 240 3.7% 15.9%;
|
|
75
|
-
--sidebar-accent-foreground: 240 4.8% 95.9%;
|
|
76
|
-
--sidebar-border: 240 3.7% 15.9%;
|
|
77
|
-
--sidebar-ring: 217.2 91.2% 59.8%;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
@layer base {
|
|
82
|
-
* {
|
|
83
|
-
@apply border-border;
|
|
84
|
-
}
|
|
85
|
-
body {
|
|
86
|
-
@apply bg-background text-foreground;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
.table-fixed {
|
|
91
|
-
table-layout: fixed;
|
|
92
|
-
width: 100%;
|
|
93
|
-
}
|
package/dist/app/app/layout.jsx
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
// app/layout.js
|
|
2
|
-
import { Geist, Geist_Mono } from "next/font/google";
|
|
3
|
-
import "./globals.css";
|
|
4
|
-
import { DatabaseProvider } from '@/context/database-context';
|
|
5
|
-
import { Toaster } from '@/components/ui/toaster'; // Change this import
|
|
6
|
-
|
|
7
|
-
const geistSans = Geist({
|
|
8
|
-
variable: "--font-geist-sans",
|
|
9
|
-
subsets: ["latin"],
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
const geistMono = Geist_Mono({
|
|
13
|
-
variable: "--font-geist-mono",
|
|
14
|
-
subsets: ["latin"],
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
export const metadata = {
|
|
18
|
-
title: "d1-studio",
|
|
19
|
-
description: "Native D1 database studio.",
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
export default function RootLayout({ children }) {
|
|
23
|
-
return (
|
|
24
|
-
<html lang="en">
|
|
25
|
-
<body
|
|
26
|
-
className={`${geistSans.variable} ${geistMono.variable} antialiased`}
|
|
27
|
-
>
|
|
28
|
-
<DatabaseProvider>
|
|
29
|
-
{children}
|
|
30
|
-
<Toaster /> {/* Add this component */}
|
|
31
|
-
</DatabaseProvider>
|
|
32
|
-
</body>
|
|
33
|
-
</html>
|
|
34
|
-
);
|
|
35
|
-
}
|
package/dist/app/app/page.jsx
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
// app/page.js
|
|
2
|
-
'use client'
|
|
3
|
-
|
|
4
|
-
import { useState } from 'react';
|
|
5
|
-
import { AppSidebar } from '../components/sidebar';
|
|
6
|
-
import { SQLEditor } from '../components/sql-editor';
|
|
7
|
-
import { TableView } from '../components/table-view';
|
|
8
|
-
import UpdateBanner from '@/components/update-banner';
|
|
9
|
-
|
|
10
|
-
export default function StudioPage() {
|
|
11
|
-
const [currentView, setCurrentView] = useState('sql-editor');
|
|
12
|
-
const [selectedTable, setSelectedTable] = useState(null);
|
|
13
|
-
|
|
14
|
-
const handleTableSelect = (tableName) => {
|
|
15
|
-
setSelectedTable(tableName);
|
|
16
|
-
setCurrentView('table-view');
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
return (
|
|
20
|
-
<div className="flex flex-col min-h-screen bg-background">
|
|
21
|
-
{/* Banner */}
|
|
22
|
-
<UpdateBanner />
|
|
23
|
-
|
|
24
|
-
{/* Main layout with adjusted positioning for banner */}
|
|
25
|
-
<div className="flex flex-1 mt-[var(--banner-height,0px)]">
|
|
26
|
-
{/* Sidebar with adjusted height */}
|
|
27
|
-
<AppSidebar
|
|
28
|
-
className="w-64 border-r fixed top-[var(--banner-height,0px)] h-[calc(100vh-var(--banner-height,0px))]"
|
|
29
|
-
currentView={currentView}
|
|
30
|
-
onNavigate={setCurrentView}
|
|
31
|
-
onTableSelect={handleTableSelect}
|
|
32
|
-
/>
|
|
33
|
-
|
|
34
|
-
{/* Main content with adjusted margin-top and height */}
|
|
35
|
-
<main className="ml-64 flex-1 h-[calc(100vh-var(--banner-height,0px))]">
|
|
36
|
-
{currentView === 'sql-editor' && <SQLEditor />}
|
|
37
|
-
{currentView === 'table-view' && selectedTable && (
|
|
38
|
-
<TableView tableName={selectedTable} />
|
|
39
|
-
)}
|
|
40
|
-
</main>
|
|
41
|
-
</div>
|
|
42
|
-
</div>
|
|
43
|
-
);
|
|
44
|
-
}
|
package/next.config.mjs
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
// next.config.mjs
|
|
2
|
-
|
|
3
|
-
/** @type {import('next').NextConfig} */
|
|
4
|
-
const nextConfig = {
|
|
5
|
-
serverExternalPackages: ['child_process', 'fs', 'util'],
|
|
6
|
-
webpack: (config, { isServer }) => {
|
|
7
|
-
if (isServer) {
|
|
8
|
-
// Mark certain modules as external to prevent bundling
|
|
9
|
-
config.externals.push({
|
|
10
|
-
'child_process': 'commonjs child_process',
|
|
11
|
-
'fs': 'commonjs fs',
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
return config;
|
|
15
|
-
},
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export default nextConfig;
|
package/postcss.config.mjs
DELETED
package/scripts/studio.js
DELETED
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import open from 'open';
|
|
4
|
-
import { fileURLToPath } from 'url';
|
|
5
|
-
import { dirname, join } from 'path';
|
|
6
|
-
import express from 'express';
|
|
7
|
-
import { createServer } from 'http';
|
|
8
|
-
import next from 'next';
|
|
9
|
-
import { findWranglerConfig } from '../src/lib/find-wrangler-config.js';
|
|
10
|
-
import logger from '../src/lib/logger.js';
|
|
11
|
-
import updateNotifier from 'update-notifier';
|
|
12
|
-
import pkg from '../package.json' with { type: 'json' };
|
|
13
|
-
|
|
14
|
-
// Check for debug flag
|
|
15
|
-
const hasDebugFlag = process.argv.includes('--debug');
|
|
16
|
-
if (hasDebugFlag) {
|
|
17
|
-
process.env.DEBUG = 'true';
|
|
18
|
-
logger.debug('Debug mode enabled');
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
const notifier = updateNotifier({ pkg, updateCheckInterval: 1000 * 60 * 60 * 24 });
|
|
22
|
-
notifier.notify({ defer: false });
|
|
23
|
-
|
|
24
|
-
// Compute the absolute path of this file and its directory
|
|
25
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
26
|
-
const __dirname = dirname(__filename);
|
|
27
|
-
|
|
28
|
-
async function startServer(port, projectDirectory) {
|
|
29
|
-
return new Promise((resolvePromise, rejectPromise) => {
|
|
30
|
-
// Determine Next.js app directory based on environment:
|
|
31
|
-
// In production (published package) __dirname is used.
|
|
32
|
-
// In development (npm link), assume the build is in the parent folder.
|
|
33
|
-
const isProduction = process.env.NODE_ENV !== 'development';
|
|
34
|
-
const nextAppDir = isProduction ? __dirname : join(__dirname, '..');
|
|
35
|
-
|
|
36
|
-
const dev = process.env.NODE_ENV === 'development';
|
|
37
|
-
const app = next({
|
|
38
|
-
dev,
|
|
39
|
-
dir: nextAppDir,
|
|
40
|
-
conf: {
|
|
41
|
-
distDir: '.next',
|
|
42
|
-
experimental: { appDir: true }
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
const handle = app.getRequestHandler();
|
|
46
|
-
|
|
47
|
-
app.prepare()
|
|
48
|
-
.then(() => {
|
|
49
|
-
const server = express();
|
|
50
|
-
process.env.PORT = port.toString();
|
|
51
|
-
process.env.D1_PROJECT_DIR = projectDirectory;
|
|
52
|
-
const httpServer = createServer((req, res) => handle(req, res));
|
|
53
|
-
|
|
54
|
-
server.all('*', (req, res) => handle(req, res));
|
|
55
|
-
|
|
56
|
-
httpServer.listen(port, (err) => {
|
|
57
|
-
if (err) {
|
|
58
|
-
logger.error(chalk.red(`Failed to start server: ${err}`));
|
|
59
|
-
rejectPromise(err);
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
logger.info(chalk.green(`Server started on port ${port}`));
|
|
63
|
-
resolvePromise(httpServer);
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
httpServer.on('error', (err) => {
|
|
67
|
-
logger.error(chalk.red(`Server error: ${err}`));
|
|
68
|
-
rejectPromise(err);
|
|
69
|
-
});
|
|
70
|
-
})
|
|
71
|
-
.catch((err) => {
|
|
72
|
-
logger.error(chalk.red(`Failed to prepare Next.js app: ${err}`));
|
|
73
|
-
rejectPromise(err);
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
async function startStudio() {
|
|
79
|
-
try {
|
|
80
|
-
logger.info(chalk.green('Initializing D1 Studio...'));
|
|
81
|
-
|
|
82
|
-
// Get wrangler configuration
|
|
83
|
-
try {
|
|
84
|
-
const userProjectPath = process.cwd();
|
|
85
|
-
if (!userProjectPath) {
|
|
86
|
-
logger.error(chalk.red('Error: Could not determine project directory'));
|
|
87
|
-
process.exit(1);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
const wranglerResult = await findWranglerConfig(userProjectPath);
|
|
91
|
-
if (!wranglerResult || !wranglerResult.config) {
|
|
92
|
-
logger.error(chalk.red('\nError: No wrangler.toml found in current directory'));
|
|
93
|
-
logger.info(chalk.yellow('Make sure you are in a Cloudflare Workers project directory'));
|
|
94
|
-
logger.info(chalk.yellow('with a valid wrangler.toml file.'));
|
|
95
|
-
process.exit(1);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
const { config, projectPath } = wranglerResult;
|
|
99
|
-
if (!config.d1_databases?.length) {
|
|
100
|
-
logger.error(chalk.red('\nError: No D1 databases configured in wrangler.toml'));
|
|
101
|
-
logger.info(chalk.yellow('\nAdd D1 configuration to your wrangler.toml:'));
|
|
102
|
-
logger.info(chalk.gray(`
|
|
103
|
-
[[d1_databases]]
|
|
104
|
-
binding = "DB"
|
|
105
|
-
database_name = "my-database"
|
|
106
|
-
database_id = "<your-database-id>"
|
|
107
|
-
`));
|
|
108
|
-
process.exit(1);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
logger.info(chalk.green('\nFound D1 databases:'));
|
|
112
|
-
config.d1_databases.forEach((db) => {
|
|
113
|
-
logger.info(chalk.blue(` - ${db.database_name} (${db.binding})`));
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
const port = 4000;
|
|
117
|
-
const url = `http://localhost:${port}`;
|
|
118
|
-
|
|
119
|
-
await startServer(port, projectPath);
|
|
120
|
-
|
|
121
|
-
logger.info(chalk.green(`
|
|
122
|
-
┌─────────────────────────────────────────┐
|
|
123
|
-
│ │
|
|
124
|
-
│ D1 Studio is running on port ${port} │
|
|
125
|
-
│ │
|
|
126
|
-
│ Local: ${url} │
|
|
127
|
-
│ │
|
|
128
|
-
└─────────────────────────────────────────┘
|
|
129
|
-
`));
|
|
130
|
-
|
|
131
|
-
await new Promise(resolve => setTimeout(resolve, 2000));
|
|
132
|
-
|
|
133
|
-
try {
|
|
134
|
-
await open(url, {
|
|
135
|
-
wait: false,
|
|
136
|
-
url: true,
|
|
137
|
-
app: { name: open.apps.chrome }
|
|
138
|
-
}).catch(() => {
|
|
139
|
-
return open(url, { wait: false, url: true });
|
|
140
|
-
});
|
|
141
|
-
} catch (browserError) {
|
|
142
|
-
logger.info(chalk.yellow('\nCould not automatically open browser.'));
|
|
143
|
-
logger.info(chalk.blue(`Please open your browser and navigate to: ${url}`));
|
|
144
|
-
}
|
|
145
|
-
} catch (configError) {
|
|
146
|
-
logger.error(chalk.red(`\nConfiguration error: ${configError.message}`));
|
|
147
|
-
process.exit(1);
|
|
148
|
-
}
|
|
149
|
-
} catch (error) {
|
|
150
|
-
logger.error(chalk.red(`\nFailed to start D1 Studio: ${error}`));
|
|
151
|
-
process.exit(1);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
// Handle termination
|
|
156
|
-
process.on('SIGINT', () => {
|
|
157
|
-
logger.info(chalk.yellow('\nShutting down D1 Studio...'));
|
|
158
|
-
process.exit(0);
|
|
159
|
-
});
|
|
160
|
-
|
|
161
|
-
process.on('SIGTERM', () => {
|
|
162
|
-
logger.info(chalk.yellow('\nShutting down D1 Studio...'));
|
|
163
|
-
process.exit(0);
|
|
164
|
-
});
|
|
165
|
-
|
|
166
|
-
startStudio().catch((error) => {
|
|
167
|
-
logger.error(chalk.red(`\nFailed to start D1 Studio: ${error}`));
|
|
168
|
-
process.exit(1);
|
|
169
|
-
});
|