alchemy 0.45.6 → 0.46.1
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/README.md +2 -2
- package/bin/alchemy.mjs +19280 -15136
- package/bin/alchemy.ts +14 -56
- package/bin/commands/create.ts +307 -137
- package/bin/commands/deploy.ts +23 -0
- package/bin/commands/destroy.ts +19 -0
- package/bin/commands/dev.ts +21 -0
- package/bin/commands/login.ts +63 -0
- package/bin/commands/run.ts +29 -0
- package/bin/services/dependencies.ts +0 -5
- package/bin/services/execute-alchemy.ts +160 -0
- package/bin/services/git.ts +27 -0
- package/bin/services/github-workflow.ts +229 -0
- package/bin/services/package-manager.ts +51 -68
- package/bin/services/template-manager.ts +10 -21
- package/bin/trpc.ts +3 -0
- package/bin/types.ts +4 -2
- package/lib/apply.d.ts +2 -0
- package/lib/apply.d.ts.map +1 -1
- package/lib/apply.js +26 -8
- package/lib/apply.js.map +1 -1
- package/lib/build-date.d.ts +1 -1
- package/lib/build-date.js +1 -1
- package/lib/cloudflare/ai.d.ts +8 -4
- package/lib/cloudflare/ai.d.ts.map +1 -1
- package/lib/cloudflare/ai.js +6 -8
- package/lib/cloudflare/ai.js.map +1 -1
- package/lib/cloudflare/analytics-engine.d.ts +11 -7
- package/lib/cloudflare/analytics-engine.d.ts.map +1 -1
- package/lib/cloudflare/analytics-engine.js +11 -9
- package/lib/cloudflare/analytics-engine.js.map +1 -1
- package/lib/cloudflare/{types.d.ts → api-response.d.ts} +6 -1
- package/lib/cloudflare/api-response.d.ts.map +1 -0
- package/lib/cloudflare/api-response.js +38 -0
- package/lib/cloudflare/api-response.js.map +1 -0
- package/lib/cloudflare/api.d.ts +9 -5
- package/lib/cloudflare/api.d.ts.map +1 -1
- package/lib/cloudflare/api.js +6 -46
- package/lib/cloudflare/api.js.map +1 -1
- package/lib/cloudflare/auth.d.ts +16 -35
- package/lib/cloudflare/auth.d.ts.map +1 -1
- package/lib/cloudflare/auth.js +50 -129
- package/lib/cloudflare/auth.js.map +1 -1
- package/lib/cloudflare/browser-rendering.d.ts +12 -3
- package/lib/cloudflare/browser-rendering.d.ts.map +1 -1
- package/lib/cloudflare/browser-rendering.js +12 -2
- package/lib/cloudflare/browser-rendering.js.map +1 -1
- package/lib/cloudflare/bundle/fs.d.ts.map +1 -1
- package/lib/cloudflare/bundle/fs.js +3 -0
- package/lib/cloudflare/bundle/fs.js.map +1 -1
- package/lib/cloudflare/bundle/internal-worker-bundle.d.ts +6 -0
- package/lib/cloudflare/bundle/internal-worker-bundle.d.ts.map +1 -0
- package/lib/cloudflare/bundle/internal-worker-bundle.js +14 -0
- package/lib/cloudflare/bundle/internal-worker-bundle.js.map +1 -0
- package/lib/cloudflare/compatibility-presets.d.ts +22 -0
- package/lib/cloudflare/compatibility-presets.d.ts.map +1 -0
- package/lib/cloudflare/compatibility-presets.js +27 -0
- package/lib/cloudflare/compatibility-presets.js.map +1 -0
- package/lib/cloudflare/container.d.ts +5 -1
- package/lib/cloudflare/container.d.ts.map +1 -1
- package/lib/cloudflare/container.js +42 -2
- package/lib/cloudflare/container.js.map +1 -1
- package/lib/cloudflare/dispatch-namespace.d.ts +5 -0
- package/lib/cloudflare/dispatch-namespace.d.ts.map +1 -1
- package/lib/cloudflare/dispatch-namespace.js +8 -0
- package/lib/cloudflare/dispatch-namespace.js.map +1 -1
- package/lib/cloudflare/durable-object-namespace.d.ts +23 -15
- package/lib/cloudflare/durable-object-namespace.d.ts.map +1 -1
- package/lib/cloudflare/durable-object-namespace.js +22 -21
- package/lib/cloudflare/durable-object-namespace.js.map +1 -1
- package/lib/cloudflare/hyperdrive.d.ts +19 -5
- package/lib/cloudflare/hyperdrive.d.ts.map +1 -1
- package/lib/cloudflare/hyperdrive.js +14 -0
- package/lib/cloudflare/hyperdrive.js.map +1 -1
- package/lib/cloudflare/images.d.ts +27 -17
- package/lib/cloudflare/images.d.ts.map +1 -1
- package/lib/cloudflare/images.js +13 -8
- package/lib/cloudflare/images.js.map +1 -1
- package/lib/cloudflare/index.d.ts +1 -3
- package/lib/cloudflare/index.d.ts.map +1 -1
- package/lib/cloudflare/index.js +1 -3
- package/lib/cloudflare/index.js.map +1 -1
- package/lib/cloudflare/miniflare/miniflare.d.ts +3 -3
- package/lib/cloudflare/miniflare/miniflare.d.ts.map +1 -1
- package/lib/cloudflare/miniflare/miniflare.js +7 -7
- package/lib/cloudflare/miniflare/miniflare.js.map +1 -1
- package/lib/cloudflare/miniflare/{mixed-mode.d.ts → remote-binding-proxy.d.ts} +5 -5
- package/lib/cloudflare/miniflare/remote-binding-proxy.d.ts.map +1 -0
- package/lib/cloudflare/miniflare/{mixed-mode.js → remote-binding-proxy.js} +16 -52
- package/lib/cloudflare/miniflare/remote-binding-proxy.js.map +1 -0
- package/lib/cloudflare/oauth.d.ts +22 -0
- package/lib/cloudflare/oauth.d.ts.map +1 -0
- package/lib/cloudflare/oauth.js +213 -0
- package/lib/cloudflare/oauth.js.map +1 -0
- package/lib/cloudflare/state.d.ts +26 -0
- package/lib/cloudflare/state.d.ts.map +1 -0
- package/lib/cloudflare/state.js +14 -0
- package/lib/cloudflare/state.js.map +1 -0
- package/lib/cloudflare/user.d.ts +2 -2
- package/lib/cloudflare/user.d.ts.map +1 -1
- package/lib/cloudflare/user.js +24 -47
- package/lib/cloudflare/user.js.map +1 -1
- package/lib/cloudflare/vectorize-index.d.ts.map +1 -1
- package/lib/cloudflare/vectorize-index.js +5 -2
- package/lib/cloudflare/vectorize-index.js.map +1 -1
- package/lib/cloudflare/version-metadata.d.ts +15 -3
- package/lib/cloudflare/version-metadata.d.ts.map +1 -1
- package/lib/cloudflare/version-metadata.js +11 -2
- package/lib/cloudflare/version-metadata.js.map +1 -1
- package/lib/cloudflare/vite.d.ts.map +1 -1
- package/lib/cloudflare/vite.js +2 -1
- package/lib/cloudflare/vite.js.map +1 -1
- package/lib/cloudflare/worker-metadata.d.ts +13 -2
- package/lib/cloudflare/worker-metadata.d.ts.map +1 -1
- package/lib/cloudflare/worker-metadata.js +10 -15
- package/lib/cloudflare/worker-metadata.js.map +1 -1
- package/lib/cloudflare/worker-subdomain.d.ts +7 -0
- package/lib/cloudflare/worker-subdomain.d.ts.map +1 -1
- package/lib/cloudflare/worker-subdomain.js +17 -22
- package/lib/cloudflare/worker-subdomain.js.map +1 -1
- package/lib/cloudflare/{worker/tail.d.ts → worker-tail.d.ts} +2 -2
- package/lib/cloudflare/worker-tail.d.ts.map +1 -0
- package/lib/cloudflare/{worker/tail.js → worker-tail.js} +11 -9
- package/lib/cloudflare/worker-tail.js.map +1 -0
- package/lib/cloudflare/worker.d.ts +19 -8
- package/lib/cloudflare/worker.d.ts.map +1 -1
- package/lib/cloudflare/worker.js +35 -10
- package/lib/cloudflare/worker.js.map +1 -1
- package/lib/cloudflare/workflow.d.ts +22 -11
- package/lib/cloudflare/workflow.d.ts.map +1 -1
- package/lib/cloudflare/workflow.js +23 -18
- package/lib/cloudflare/workflow.js.map +1 -1
- package/lib/context.d.ts +2 -2
- package/lib/context.d.ts.map +1 -1
- package/lib/docker/api.d.ts.map +1 -1
- package/lib/docker/api.js +30 -8
- package/lib/docker/api.js.map +1 -1
- package/lib/fs/file-system-state-store.d.ts +5 -20
- package/lib/fs/file-system-state-store.d.ts.map +1 -1
- package/lib/fs/file-system-state-store.js +5 -121
- package/lib/fs/file-system-state-store.js.map +1 -1
- package/lib/fs/index.d.ts +0 -1
- package/lib/fs/index.d.ts.map +1 -1
- package/lib/fs/index.js +0 -1
- package/lib/fs/index.js.map +1 -1
- package/lib/llms.cloudflare.txt +6 -5
- package/lib/planetscale/password.js +1 -1
- package/lib/planetscale/password.js.map +1 -1
- package/lib/scope.d.ts.map +1 -1
- package/lib/scope.js +3 -6
- package/lib/scope.js.map +1 -1
- package/lib/state/cloudflare-state-store.d.ts +34 -0
- package/lib/state/cloudflare-state-store.d.ts.map +1 -0
- package/lib/state/cloudflare-state-store.js +116 -0
- package/lib/state/cloudflare-state-store.js.map +1 -0
- package/lib/state/d1-state-store.d.ts +15 -0
- package/lib/state/d1-state-store.d.ts.map +1 -0
- package/lib/{cloudflare → state}/d1-state-store.js +31 -27
- package/lib/state/d1-state-store.js.map +1 -0
- package/lib/{cloudflare/do-state-store/types.d.ts → state/dofs-state-store/api.d.ts} +1 -1
- package/lib/state/dofs-state-store/api.d.ts.map +1 -0
- package/lib/state/dofs-state-store/api.js +1 -0
- package/lib/state/dofs-state-store/api.js.map +1 -0
- package/lib/{cloudflare/do-state-store/store.d.ts → state/dofs-state-store/index.d.ts} +10 -5
- package/lib/state/dofs-state-store/index.d.ts.map +1 -0
- package/lib/{cloudflare/do-state-store/store.js → state/dofs-state-store/index.js} +15 -11
- package/lib/state/dofs-state-store/index.js.map +1 -0
- package/lib/{cloudflare/do-state-store/internal.d.ts → state/dofs-state-store/store.d.ts} +4 -5
- package/lib/state/dofs-state-store/store.d.ts.map +1 -0
- package/lib/{cloudflare/do-state-store/internal.js → state/dofs-state-store/store.js} +7 -22
- package/lib/state/dofs-state-store/store.js.map +1 -0
- package/lib/state/file-system-state-store.d.ts +21 -0
- package/lib/state/file-system-state-store.d.ts.map +1 -0
- package/lib/state/file-system-state-store.js +122 -0
- package/lib/state/file-system-state-store.js.map +1 -0
- package/lib/state/index.d.ts +7 -0
- package/lib/state/index.d.ts.map +1 -0
- package/lib/state/index.js +7 -0
- package/lib/state/index.js.map +1 -0
- package/lib/state/migrations.d.ts +2 -0
- package/lib/state/migrations.d.ts.map +1 -0
- package/lib/state/migrations.js +3 -0
- package/lib/state/migrations.js.map +1 -0
- package/lib/state/operations.d.ts +36 -0
- package/lib/state/operations.d.ts.map +1 -0
- package/lib/state/operations.js +126 -0
- package/lib/state/operations.js.map +1 -0
- package/lib/state/proxy.d.ts +53 -0
- package/lib/state/proxy.d.ts.map +1 -0
- package/lib/state/proxy.js +65 -0
- package/lib/state/proxy.js.map +1 -0
- package/lib/{cloudflare → state}/r2-rest-state-store.d.ts +3 -1
- package/lib/state/r2-rest-state-store.d.ts.map +1 -0
- package/lib/{cloudflare → state}/r2-rest-state-store.js +6 -4
- package/lib/state/r2-rest-state-store.js.map +1 -0
- package/lib/state/schema.d.ts.map +1 -0
- package/lib/state/schema.js.map +1 -0
- package/lib/{sqlite → state}/sqlite-state-store.d.ts +5 -3
- package/lib/state/sqlite-state-store.d.ts.map +1 -0
- package/lib/{sqlite → state}/sqlite-state-store.js +15 -6
- package/lib/state/sqlite-state-store.js.map +1 -0
- package/lib/test/vitest.d.ts.map +1 -1
- package/lib/test/vitest.js +3 -6
- package/lib/test/vitest.js.map +1 -1
- package/lib/util/detect-node-runtime.d.ts +3 -0
- package/lib/util/detect-node-runtime.d.ts.map +1 -0
- package/lib/util/detect-node-runtime.js +10 -0
- package/lib/util/detect-node-runtime.js.map +1 -0
- package/lib/util/detect-package-manager.d.ts +2 -2
- package/lib/util/detect-package-manager.d.ts.map +1 -1
- package/lib/util/detect-package-manager.js +15 -5
- package/lib/util/detect-package-manager.js.map +1 -1
- package/lib/util/http-server.d.ts.map +1 -0
- package/lib/{cloudflare/miniflare → util}/http-server.js +1 -1
- package/lib/util/http-server.js.map +1 -0
- package/lib/util/memoize.d.ts +1 -0
- package/lib/util/memoize.d.ts.map +1 -1
- package/lib/util/memoize.js +2 -8
- package/lib/util/memoize.js.map +1 -1
- package/lib/util/neverthrow.d.ts +16 -0
- package/lib/util/neverthrow.d.ts.map +1 -0
- package/lib/util/neverthrow.js +46 -0
- package/lib/util/neverthrow.js.map +1 -0
- package/package.json +18 -16
- package/src/apply.ts +31 -10
- package/src/build-date.ts +1 -1
- package/src/cloudflare/ai.ts +10 -5
- package/src/cloudflare/analytics-engine.ts +20 -11
- package/src/cloudflare/{types.ts → api-response.ts} +31 -0
- package/src/cloudflare/api.ts +18 -57
- package/src/cloudflare/auth.ts +79 -211
- package/src/cloudflare/browser-rendering.ts +16 -2
- package/src/cloudflare/bundle/fs.ts +5 -0
- package/src/cloudflare/bundle/internal-worker-bundle.ts +21 -0
- package/src/cloudflare/compatibility-presets.ts +34 -0
- package/src/cloudflare/container.ts +70 -3
- package/src/cloudflare/dispatch-namespace.ts +28 -0
- package/src/cloudflare/durable-object-namespace.ts +38 -27
- package/src/cloudflare/hyperdrive.ts +19 -5
- package/src/cloudflare/images.ts +32 -17
- package/src/cloudflare/index.ts +1 -3
- package/src/cloudflare/miniflare/miniflare.ts +10 -7
- package/src/cloudflare/miniflare/{mixed-mode.ts → remote-binding-proxy.ts} +25 -75
- package/src/cloudflare/oauth.ts +300 -0
- package/src/cloudflare/state.ts +35 -0
- package/src/cloudflare/user.ts +40 -73
- package/src/cloudflare/vectorize-index.ts +7 -2
- package/src/cloudflare/version-metadata.ts +19 -2
- package/src/cloudflare/vite.ts +2 -1
- package/src/cloudflare/worker-metadata.ts +18 -43
- package/src/cloudflare/worker-subdomain.ts +43 -37
- package/src/cloudflare/{worker/tail.ts → worker-tail.ts} +13 -10
- package/src/cloudflare/worker.ts +74 -23
- package/src/cloudflare/workflow.ts +38 -19
- package/src/context.ts +2 -2
- package/src/docker/api.ts +33 -8
- package/src/fs/file-system-state-store.ts +5 -148
- package/src/fs/index.ts +0 -1
- package/src/llms.cloudflare.txt +6 -5
- package/src/planetscale/password.ts +1 -1
- package/src/scope.ts +3 -6
- package/src/state/cloudflare-state-store.ts +170 -0
- package/src/state/d1-state-store.ts +102 -0
- package/src/{cloudflare/do-state-store/store.ts → state/dofs-state-store/index.ts} +20 -13
- package/src/{cloudflare/do-state-store/internal.ts → state/dofs-state-store/store.ts} +9 -27
- package/src/state/file-system-state-store.ts +149 -0
- package/src/state/index.ts +6 -0
- package/src/state/migrations.ts +9 -0
- package/src/state/operations.ts +152 -0
- package/src/state/proxy.ts +132 -0
- package/src/{cloudflare → state}/r2-rest-state-store.ts +11 -8
- package/src/{sqlite → state}/sqlite-state-store.ts +18 -10
- package/src/test/vitest.ts +8 -6
- package/src/util/detect-node-runtime.ts +12 -0
- package/src/util/detect-package-manager.ts +19 -6
- package/src/{cloudflare/miniflare → util}/http-server.ts +1 -1
- package/src/util/memoize.ts +2 -8
- package/src/util/neverthrow.ts +64 -0
- package/templates/astro/package.json +3 -3
- package/templates/nuxt/package.json +3 -3
- package/templates/react-router/package.json +3 -3
- package/templates/rwsdk/alchemy.run.ts +1 -1
- package/templates/rwsdk/package.json +3 -3
- package/templates/sveltekit/package.json +3 -3
- package/templates/tanstack-start/package.json +3 -3
- package/templates/typescript/package.json +3 -2
- package/templates/typescript/tsconfig.json +1 -0
- package/templates/vite/package.json +3 -3
- package/workers/cloudflare-state-store.js +5638 -0
- package/workers/cloudflare-state-store.ts +108 -0
- package/workers/{do-state-store.js → dofs-state-store.js} +4 -4
- package/workers/{do-state-store.ts → dofs-state-store.ts} +12 -8
- package/workers/{mixed-mode-proxy-worker.js → remote-binding-proxy.js} +3 -3
- package/workers/remote-binding-proxy.ts +45 -0
- package/lib/cloudflare/d1-state-store.d.ts +0 -10
- package/lib/cloudflare/d1-state-store.d.ts.map +0 -1
- package/lib/cloudflare/d1-state-store.js.map +0 -1
- package/lib/cloudflare/do-state-store/index.d.ts +0 -2
- package/lib/cloudflare/do-state-store/index.d.ts.map +0 -1
- package/lib/cloudflare/do-state-store/index.js +0 -2
- package/lib/cloudflare/do-state-store/index.js.map +0 -1
- package/lib/cloudflare/do-state-store/internal.d.ts.map +0 -1
- package/lib/cloudflare/do-state-store/internal.js.map +0 -1
- package/lib/cloudflare/do-state-store/store.d.ts.map +0 -1
- package/lib/cloudflare/do-state-store/store.js.map +0 -1
- package/lib/cloudflare/do-state-store/types.d.ts.map +0 -1
- package/lib/cloudflare/do-state-store/types.js +0 -1
- package/lib/cloudflare/do-state-store/types.js.map +0 -1
- package/lib/cloudflare/miniflare/http-server.d.ts.map +0 -1
- package/lib/cloudflare/miniflare/http-server.js.map +0 -1
- package/lib/cloudflare/miniflare/mixed-mode.d.ts.map +0 -1
- package/lib/cloudflare/miniflare/mixed-mode.js.map +0 -1
- package/lib/cloudflare/r2-rest-state-store.d.ts.map +0 -1
- package/lib/cloudflare/r2-rest-state-store.js.map +0 -1
- package/lib/cloudflare/types.d.ts.map +0 -1
- package/lib/cloudflare/types.js +0 -19
- package/lib/cloudflare/types.js.map +0 -1
- package/lib/cloudflare/worker/shared.d.ts +0 -4
- package/lib/cloudflare/worker/shared.d.ts.map +0 -1
- package/lib/cloudflare/worker/shared.js +0 -21
- package/lib/cloudflare/worker/shared.js.map +0 -1
- package/lib/cloudflare/worker/tail.d.ts.map +0 -1
- package/lib/cloudflare/worker/tail.js.map +0 -1
- package/lib/sqlite/base-sqlite-state-store.d.ts +0 -31
- package/lib/sqlite/base-sqlite-state-store.d.ts.map +0 -1
- package/lib/sqlite/base-sqlite-state-store.js +0 -124
- package/lib/sqlite/base-sqlite-state-store.js.map +0 -1
- package/lib/sqlite/index.d.ts +0 -2
- package/lib/sqlite/index.d.ts.map +0 -1
- package/lib/sqlite/index.js +0 -2
- package/lib/sqlite/index.js.map +0 -1
- package/lib/sqlite/schema.d.ts.map +0 -1
- package/lib/sqlite/schema.js.map +0 -1
- package/lib/sqlite/sqlite-state-store.d.ts.map +0 -1
- package/lib/sqlite/sqlite-state-store.js.map +0 -1
- package/src/cloudflare/d1-state-store.ts +0 -105
- package/src/cloudflare/do-state-store/index.ts +0 -1
- package/src/cloudflare/worker/shared.ts +0 -30
- package/src/sqlite/base-sqlite-state-store.ts +0 -199
- package/src/sqlite/index.ts +0 -1
- package/templates/typescript/src/worker.js +0 -5
- package/workers/mixed-mode-proxy-worker.ts +0 -46
- /package/drizzle/{0000_busy_mauler.sql → default/0000_busy_mauler.sql} +0 -0
- /package/drizzle/{0001_concerned_iceman.sql → default/0001_concerned_iceman.sql} +0 -0
- /package/drizzle/{meta → default/meta}/0000_snapshot.json +0 -0
- /package/drizzle/{meta → default/meta}/0001_snapshot.json +0 -0
- /package/drizzle/{meta → default/meta}/_journal.json +0 -0
- /package/lib/{sqlite → state}/schema.d.ts +0 -0
- /package/lib/{sqlite → state}/schema.js +0 -0
- /package/lib/{cloudflare/miniflare → util}/http-server.d.ts +0 -0
- /package/src/{cloudflare/do-state-store/types.ts → state/dofs-state-store/api.ts} +0 -0
- /package/src/{sqlite → state}/schema.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"miniflare.d.ts","sourceRoot":"","sources":["../../../src/cloudflare/miniflare/miniflare.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EAGd,KAAK,aAAa,EACnB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"miniflare.d.ts","sourceRoot":"","sources":["../../../src/cloudflare/miniflare/miniflare.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EAGd,KAAK,aAAa,EACnB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,2BAA2B,CAAC;AAEnC,cAAM,eAAe;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,6BAAoC;IAC3C,OAAO,0BAAiC;IACxC,oBAAoB,kCAAyC;IAE7D,MAAM;gBACI,sBAAsB;iBACrB,oBAAoB,CAAC,UAAU,CAAC;OAaxC;IACH,MAAM;gBAfI,sBAAsB;iBACrB,oBAAoB,CAAC,UAAU,CAAC;OAcV;IAE3B,IAAI,CAAC,MAAM,EAAE,sBAAsB;IASnC,KAAK;YAIG,GAAG;YA2CH,OAAO;YAaP,yBAAyB;IAuBvC,OAAO,CAAC,oBAAoB;YAwCd,gBAAgB;CAgB/B;AAED,qBAAa,uBAAwB,SAAQ,KAAK;;CAMjD;AAiBD,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,yBAAyB,EAAE,eAAe,GAAG,SAAS,CAAC;CAC5D;AAED,eAAO,MAAM,eAAe,iBAK1B,CAAC"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { MiniflareCoreError, } from "miniflare";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { findOpenPort } from "../../util/find-open-port.js";
|
|
4
|
+
import { HTTPServer } from "../../util/http-server.js";
|
|
4
5
|
import { logger } from "../../util/logger.js";
|
|
5
6
|
import { promiseWithResolvers, } from "../../util/promise-with-resolvers.js";
|
|
6
|
-
import { HTTPServer } from "./http-server.js";
|
|
7
7
|
import { buildMiniflareWorkerOptions, buildRemoteBindings, } from "./miniflare-worker-options.js";
|
|
8
|
-
import {
|
|
8
|
+
import { createRemoteProxyWorker, } from "./remote-binding-proxy.js";
|
|
9
9
|
class MiniflareServer {
|
|
10
10
|
miniflare;
|
|
11
11
|
workers = new Map();
|
|
12
12
|
servers = new Map();
|
|
13
|
-
|
|
13
|
+
remoteBindingProxies = new Map();
|
|
14
14
|
stream = new WritableStream({
|
|
15
15
|
write: async ({ worker, promise }) => {
|
|
16
16
|
try {
|
|
@@ -75,7 +75,7 @@ class MiniflareServer {
|
|
|
75
75
|
await Promise.all([
|
|
76
76
|
this.miniflare?.dispose(),
|
|
77
77
|
...Array.from(this.servers.values()).map((server) => server.stop()),
|
|
78
|
-
...Array.from(this.
|
|
78
|
+
...Array.from(this.remoteBindingProxies.values()).map((proxy) => proxy.server.stop()),
|
|
79
79
|
]);
|
|
80
80
|
this.miniflare = undefined;
|
|
81
81
|
this.workers.clear();
|
|
@@ -86,15 +86,15 @@ class MiniflareServer {
|
|
|
86
86
|
if (bindings.length === 0) {
|
|
87
87
|
return undefined;
|
|
88
88
|
}
|
|
89
|
-
const existing = this.
|
|
89
|
+
const existing = this.remoteBindingProxies.get(worker.name);
|
|
90
90
|
if (existing?.bindings.every((b) => bindings.find((b2) => b2.name === b.name && b2.type === b.type))) {
|
|
91
91
|
return existing.connectionString;
|
|
92
92
|
}
|
|
93
|
-
const proxy = await
|
|
93
|
+
const proxy = await createRemoteProxyWorker({
|
|
94
94
|
name: `mixed-mode-proxy-${crypto.randomUUID()}`,
|
|
95
95
|
bindings,
|
|
96
96
|
});
|
|
97
|
-
this.
|
|
97
|
+
this.remoteBindingProxies.set(worker.name, proxy);
|
|
98
98
|
return proxy.connectionString;
|
|
99
99
|
}
|
|
100
100
|
createRequestHandler(name) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"miniflare.js","sourceRoot":"","sources":["../../../src/cloudflare/miniflare/miniflare.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,GAKnB,MAAM,WAAW,CAAC;AACnB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"miniflare.js","sourceRoot":"","sources":["../../../src/cloudflare/miniflare/miniflare.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { RemoteProxyConnectionString } from "miniflare";
|
|
2
|
+
import { HTTPServer } from "../../util/http-server.ts";
|
|
2
3
|
import type { WorkerBindingSpec } from "../bindings.ts";
|
|
3
|
-
|
|
4
|
-
export declare function createMixedModeProxy(input: {
|
|
4
|
+
export declare function createRemoteProxyWorker(input: {
|
|
5
5
|
name: string;
|
|
6
6
|
bindings: WorkerBindingSpec[];
|
|
7
|
-
}): Promise<
|
|
8
|
-
export declare class
|
|
7
|
+
}): Promise<RemoteBindingProxy>;
|
|
8
|
+
export declare class RemoteBindingProxy {
|
|
9
9
|
readonly url: string;
|
|
10
10
|
readonly token: string;
|
|
11
11
|
readonly bindings: WorkerBindingSpec[];
|
|
@@ -14,4 +14,4 @@ export declare class MixedModeProxy {
|
|
|
14
14
|
get connectionString(): RemoteProxyConnectionString;
|
|
15
15
|
fetch(req: Request): Promise<Response>;
|
|
16
16
|
}
|
|
17
|
-
//# sourceMappingURL=
|
|
17
|
+
//# sourceMappingURL=remote-binding-proxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote-binding-proxy.d.ts","sourceRoot":"","sources":["../../../src/cloudflare/miniflare/remote-binding-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAGvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAoBxD,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B,+BA2BA;AAED,qBAAa,kBAAkB;IAI3B,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,EAAE;IALxC,MAAM,EAAE,UAAU,CAAC;gBAGR,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,iBAAiB,EAAE;IAOxC,IAAI,gBAAgB,IAKb,2BAA2B,CACjC;IAEK,KAAK,CAAC,GAAG,EAAE,OAAO;CA4BzB"}
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
+
import { HTTPServer } from "../../util/http-server.js";
|
|
2
|
+
import { extractCloudflareResult } from "../api-response.js";
|
|
1
3
|
import { createCloudflareApi } from "../api.js";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
export async function createMixedModeProxy(input) {
|
|
4
|
+
import { getInternalWorkerBundle } from "../bundle/internal-worker-bundle.js";
|
|
5
|
+
export async function createRemoteProxyWorker(input) {
|
|
5
6
|
const api = await createCloudflareApi();
|
|
6
|
-
const script = await
|
|
7
|
+
const script = await getInternalWorkerBundle("remote-binding-proxy");
|
|
7
8
|
const [token, subdomain] = await Promise.all([
|
|
8
9
|
createWorkersPreviewToken(api, {
|
|
9
10
|
name: input.name,
|
|
10
11
|
metadata: {
|
|
11
|
-
main_module: script.name,
|
|
12
|
+
main_module: script.file.name,
|
|
12
13
|
compatibility_date: "2025-06-16",
|
|
13
14
|
bindings: input.bindings,
|
|
14
15
|
observability: {
|
|
15
16
|
enabled: false,
|
|
16
17
|
},
|
|
17
18
|
},
|
|
18
|
-
files: [script],
|
|
19
|
+
files: [script.file],
|
|
19
20
|
session: {
|
|
20
21
|
workers_dev: true,
|
|
21
22
|
minimal_mode: true,
|
|
22
23
|
},
|
|
23
24
|
}),
|
|
24
|
-
getAccountSubdomain(api),
|
|
25
|
+
import("../worker-subdomain.js").then((m) => m.getAccountSubdomain(api)),
|
|
25
26
|
]);
|
|
26
|
-
return new
|
|
27
|
+
return new RemoteBindingProxy(`https://${input.name}.${subdomain}.workers.dev`, token, input.bindings);
|
|
27
28
|
}
|
|
28
|
-
|
|
29
|
-
export class MixedModeProxy {
|
|
29
|
+
export class RemoteBindingProxy {
|
|
30
30
|
url;
|
|
31
31
|
token;
|
|
32
32
|
bindings;
|
|
@@ -62,26 +62,6 @@ export class MixedModeProxy {
|
|
|
62
62
|
const responseHeaders = new Headers(res.headers);
|
|
63
63
|
responseHeaders.delete("transfer-encoding");
|
|
64
64
|
responseHeaders.delete("content-encoding");
|
|
65
|
-
if (DEBUG) {
|
|
66
|
-
const clone = res.clone();
|
|
67
|
-
console.log({
|
|
68
|
-
request: {
|
|
69
|
-
url: url.toString(),
|
|
70
|
-
method: req.method,
|
|
71
|
-
headers,
|
|
72
|
-
body: req.body,
|
|
73
|
-
},
|
|
74
|
-
response: {
|
|
75
|
-
status: res.status,
|
|
76
|
-
headers: res.headers,
|
|
77
|
-
body: await res.text(),
|
|
78
|
-
},
|
|
79
|
-
});
|
|
80
|
-
return new Response(clone.body, {
|
|
81
|
-
status: clone.status,
|
|
82
|
-
headers: responseHeaders,
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
65
|
return new Response(res.body, {
|
|
86
66
|
status: res.status,
|
|
87
67
|
headers: responseHeaders,
|
|
@@ -96,13 +76,11 @@ async function createWorkersPreviewToken(api, input) {
|
|
|
96
76
|
formData.append(file.name, file);
|
|
97
77
|
}
|
|
98
78
|
formData.append("wrangler-session-config", JSON.stringify(input.session));
|
|
99
|
-
const res = await api
|
|
100
|
-
.post(`/accounts/${api.accountId}/workers/scripts/${input.name}/edge-preview`, formData, {
|
|
79
|
+
const res = await extractCloudflareResult("create workers preview token", api.post(`/accounts/${api.accountId}/workers/scripts/${input.name}/edge-preview`, formData, {
|
|
101
80
|
headers: {
|
|
102
81
|
"cf-preview-upload-config-token": session.token,
|
|
103
82
|
},
|
|
104
|
-
})
|
|
105
|
-
.then((res) => parseCloudflareResponse(res, "Failed to create workers preview token"));
|
|
83
|
+
}));
|
|
106
84
|
// Fire and forget prewarm call
|
|
107
85
|
// (see https://github.com/cloudflare/workers-sdk/blob/6c6afbd6072b96e78e67d3a863ed849c6aa49472/packages/wrangler/src/dev/create-worker-preview.ts#L338)
|
|
108
86
|
void prewarm(session.prewarm, res.preview_token);
|
|
@@ -119,26 +97,12 @@ async function prewarm(url, previewToken) {
|
|
|
119
97
|
}
|
|
120
98
|
}
|
|
121
99
|
async function createWorkersPreviewSession(api) {
|
|
122
|
-
const { exchange_url } = await api
|
|
123
|
-
|
|
124
|
-
.then((res) => parseCloudflareResponse(res, "Failed to create workers preview session"));
|
|
125
|
-
return await fetch(exchange_url).then((res) => parseResponse(res, "Failed to create workers preview session"));
|
|
126
|
-
}
|
|
127
|
-
async function parseResponse(res, message) {
|
|
100
|
+
const { exchange_url } = await extractCloudflareResult("create workers preview session", api.get(`/accounts/${api.accountId}/workers/subdomain/edge-preview`));
|
|
101
|
+
const res = await fetch(exchange_url);
|
|
128
102
|
if (!res.ok) {
|
|
129
|
-
throw new Error(
|
|
103
|
+
throw new Error(`Failed to create workers preview session: ${res.status} ${res.statusText}`);
|
|
130
104
|
}
|
|
131
105
|
const json = await res.json();
|
|
132
106
|
return json;
|
|
133
107
|
}
|
|
134
|
-
|
|
135
|
-
const json = await res.json();
|
|
136
|
-
if (!json.success) {
|
|
137
|
-
throw new Error(`${message} (${res.status} ${res.statusText} - ${json.errors.map((e) => `${e.code}: ${e.message}`).join(", ")})`);
|
|
138
|
-
}
|
|
139
|
-
if (!json.result) {
|
|
140
|
-
throw new Error(`${message} (${res.status} ${res.statusText})`);
|
|
141
|
-
}
|
|
142
|
-
return json.result;
|
|
143
|
-
}
|
|
144
|
-
//# sourceMappingURL=mixed-mode.js.map
|
|
108
|
+
//# sourceMappingURL=remote-binding-proxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote-binding-proxy.js","sourceRoot":"","sources":["../../../src/cloudflare/miniflare/remote-binding-proxy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAsB,MAAM,WAAW,CAAC;AAEpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAmB9E,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,KAG7C;IACC,MAAM,GAAG,GAAG,MAAM,mBAAmB,EAAE,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,sBAAsB,CAAC,CAAC;IACrE,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC3C,yBAAyB,CAAC,GAAG,EAAE;YAC7B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE;gBACR,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;gBAC7B,kBAAkB,EAAE,YAAY;gBAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,aAAa,EAAE;oBACb,OAAO,EAAE,KAAK;iBACf;aACF;YACD,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;YACpB,OAAO,EAAE;gBACP,WAAW,EAAE,IAAI;gBACjB,YAAY,EAAE,IAAI;aACnB;SACF,CAAC;QACF,MAAM,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;KACzE,CAAC,CAAC;IACH,OAAO,IAAI,kBAAkB,CAC3B,WAAW,KAAK,CAAC,IAAI,IAAI,SAAS,cAAc,EAChD,KAAK,EACL,KAAK,CAAC,QAAQ,CACf,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,kBAAkB;IAIlB;IACA;IACA;IALX,MAAM,CAAa;IAEnB,YACW,GAAW,EACX,KAAa,EACb,QAA6B;QAF7B,QAAG,GAAH,GAAG,CAAQ;QACX,UAAK,GAAL,KAAK,CAAQ;QACb,aAAQ,GAAR,QAAQ,CAAqB;QAEtC,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC;YAC3B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,IAAI,gBAAgB;QAClB,MAAM,QAAQ,GACZ,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QACrE,OAAO,IAAI,GAAG,CACZ,UAAU,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CACV,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAY;QACtB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC3B,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QAEvB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;QAChD,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAEnC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,OAAO;YACP,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QAEH,qDAAqD;QACrD,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjD,eAAe,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC5C,eAAe,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAE3C,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE;YAC5B,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,OAAO,EAAE,eAAe;SACzB,CAAC,CAAC;IACL,CAAC;CACF;AAED,KAAK,UAAU,yBAAyB,CACtC,GAAkB,EAClB,KAKC;IAED,MAAM,OAAO,GAAG,MAAM,2BAA2B,CAAC,GAAG,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5D,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,QAAQ,CAAC,MAAM,CAAC,yBAAyB,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1E,MAAM,GAAG,GAAG,MAAM,uBAAuB,CACvC,8BAA8B,EAC9B,GAAG,CAAC,IAAI,CACN,aAAa,GAAG,CAAC,SAAS,oBAAoB,KAAK,CAAC,IAAI,eAAe,EACvE,QAAQ,EACR;QACE,OAAO,EAAE;YACP,gCAAgC,EAAE,OAAO,CAAC,KAAK;SAChD;KACF,CACF,CACF,CAAC;IACF,+BAA+B;IAC/B,wJAAwJ;IACxJ,KAAK,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;IACjD,OAAO,GAAG,CAAC,aAAa,CAAC;AAC3B,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,GAAW,EAAE,YAAoB;IACtD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC3B,OAAO,EAAE;YACP,0BAA0B,EAAE,YAAY;SACzC;KACF,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,6BAA6B,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC;AAED,KAAK,UAAU,2BAA2B,CAAC,GAAkB;IAC3D,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,uBAAuB,CAIpD,gCAAgC,EAChC,GAAG,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,SAAS,iCAAiC,CAAC,CACrE,CAAC;IACF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC;IACtC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,6CAA6C,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAC5E,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAA0B,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IACrD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ResultAsync } from "neverthrow";
|
|
2
|
+
export declare const DEFAULT_SCOPES: string[];
|
|
3
|
+
interface WranglerConfig {
|
|
4
|
+
oauth_token: string;
|
|
5
|
+
refresh_token: string;
|
|
6
|
+
expiration_time: Date;
|
|
7
|
+
scopes: string[];
|
|
8
|
+
}
|
|
9
|
+
export declare const getRefreshedWranglerConfig: () => ResultAsync<WranglerConfig, OAuthError>;
|
|
10
|
+
export declare const wranglerLogin: (scopes?: string[], log?: (message: string) => void) => ResultAsync<WranglerConfig, OAuthError>;
|
|
11
|
+
interface OAuthErrorParams {
|
|
12
|
+
error: string;
|
|
13
|
+
error_description: string;
|
|
14
|
+
error_verbose?: string;
|
|
15
|
+
error_hint?: string;
|
|
16
|
+
status_code: number;
|
|
17
|
+
}
|
|
18
|
+
declare class OAuthError extends Error {
|
|
19
|
+
constructor(params: OAuthErrorParams);
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=oauth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/cloudflare/oauth.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,WAAW,EAAE,MAAM,YAAY,CAAC;AAoB3D,eAAO,MAAM,cAAc,UAkB1B,CAAC;AAGF,UAAU,cAAc;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAID,eAAO,MAAM,0BAA0B,+CAkBtC,CAAC;AAwDF,eAAO,MAAM,aAAa,GACxB,SAAQ,MAAM,EAAmB,EACjC,MAAK,CAAC,OAAO,EAAE,MAAM,KAAK,IAAkB,4CAgF7C,CAAC;AA6BF,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,cAAM,UAAW,SAAQ,KAAK;gBAChB,MAAM,EAAE,gBAAgB;CAKrC"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import kleur from "kleur";
|
|
2
|
+
import { err, ok, okAsync, ResultAsync } from "neverthrow";
|
|
3
|
+
import assert from "node:assert";
|
|
4
|
+
import crypto from "node:crypto";
|
|
5
|
+
import fs from "node:fs/promises";
|
|
6
|
+
import os from "node:os";
|
|
7
|
+
import path from "node:path";
|
|
8
|
+
import open from "open";
|
|
9
|
+
import { HTTPServer } from "../util/http-server.js";
|
|
10
|
+
import { memoize } from "../util/memoize.js";
|
|
11
|
+
import { detached, ensure, fetchJSON, HTTPError, singleFlight, } from "../util/neverthrow.js";
|
|
12
|
+
import { createXdgAppPaths } from "../util/xdg-paths.js";
|
|
13
|
+
const CLIENT_ID = "54d11594-84e4-41aa-b438-e81b8fa78ee7";
|
|
14
|
+
const REDIRECT_URI = "http://localhost:8976/oauth/callback";
|
|
15
|
+
export const DEFAULT_SCOPES = [
|
|
16
|
+
"account:read",
|
|
17
|
+
"user:read",
|
|
18
|
+
"workers:write",
|
|
19
|
+
"workers_kv:write",
|
|
20
|
+
"workers_routes:write",
|
|
21
|
+
"workers_scripts:write",
|
|
22
|
+
"workers_tail:read",
|
|
23
|
+
"d1:write",
|
|
24
|
+
"pages:write",
|
|
25
|
+
"zone:read",
|
|
26
|
+
"ssl_certs:write",
|
|
27
|
+
"ai:write",
|
|
28
|
+
"queues:write",
|
|
29
|
+
"pipelines:write",
|
|
30
|
+
"secrets_store:write",
|
|
31
|
+
"containers:write",
|
|
32
|
+
"cloudchamber:write",
|
|
33
|
+
];
|
|
34
|
+
const ALCHEMY_BASE_URL = "https://alchemy.run";
|
|
35
|
+
let cached;
|
|
36
|
+
export const getRefreshedWranglerConfig = singleFlight(() => readWranglerConfig()
|
|
37
|
+
.andThen((config) => {
|
|
38
|
+
if (config.expiration_time.getTime() > Date.now() + 10 * 1000) {
|
|
39
|
+
return ok(config);
|
|
40
|
+
}
|
|
41
|
+
return fetchToken({
|
|
42
|
+
grant_type: "refresh_token",
|
|
43
|
+
refresh_token: config.refresh_token,
|
|
44
|
+
client_id: CLIENT_ID,
|
|
45
|
+
});
|
|
46
|
+
})
|
|
47
|
+
.orElse((error) => {
|
|
48
|
+
if (isInteractive()) {
|
|
49
|
+
return wranglerLogin();
|
|
50
|
+
}
|
|
51
|
+
return err(error);
|
|
52
|
+
}));
|
|
53
|
+
const getWranglerConfigPath = memoize(async () => {
|
|
54
|
+
const xdgConfigDir = createXdgAppPaths(".wrangler").config();
|
|
55
|
+
const legacyConfigDir = path.join(os.homedir(), ".wrangler");
|
|
56
|
+
const configDir = (await fs
|
|
57
|
+
.stat(legacyConfigDir)
|
|
58
|
+
.then((stat) => stat.isDirectory())
|
|
59
|
+
.catch(() => false))
|
|
60
|
+
? legacyConfigDir
|
|
61
|
+
: xdgConfigDir;
|
|
62
|
+
return path.join(configDir, "config", "default.toml");
|
|
63
|
+
});
|
|
64
|
+
const readWranglerConfig = () => {
|
|
65
|
+
if (cached) {
|
|
66
|
+
return okAsync(cached);
|
|
67
|
+
}
|
|
68
|
+
return ResultAsync.fromPromise(getWranglerConfigPath().then(async (path) => {
|
|
69
|
+
const text = await fs.readFile(path, "utf-8");
|
|
70
|
+
const toml = await import("@iarna/toml");
|
|
71
|
+
const config = toml.parse(text.replace(/\r\n/g, "\n"));
|
|
72
|
+
assert(typeof config.oauth_token === "string");
|
|
73
|
+
assert(typeof config.refresh_token === "string");
|
|
74
|
+
assert(config.expiration_time instanceof Date);
|
|
75
|
+
assert(Array.isArray(config.scopes));
|
|
76
|
+
return {
|
|
77
|
+
oauth_token: config.oauth_token,
|
|
78
|
+
refresh_token: config.refresh_token,
|
|
79
|
+
expiration_time: new Date(config.expiration_time),
|
|
80
|
+
scopes: config.scopes,
|
|
81
|
+
};
|
|
82
|
+
}), () => new Error("Cloudflare credentials are missing or invalid."));
|
|
83
|
+
};
|
|
84
|
+
const writeWranglerConfig = (config) => {
|
|
85
|
+
cached = config;
|
|
86
|
+
return ResultAsync.fromSafePromise(getWranglerConfigPath()).map(async (configPath) => {
|
|
87
|
+
const toml = await import("@iarna/toml");
|
|
88
|
+
await fs.writeFile(configPath, toml.stringify({
|
|
89
|
+
oauth_token: config.oauth_token,
|
|
90
|
+
refresh_token: config.refresh_token,
|
|
91
|
+
expiration_time: config.expiration_time,
|
|
92
|
+
scopes: config.scopes,
|
|
93
|
+
}));
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
export const wranglerLogin = (scopes = DEFAULT_SCOPES, log = console.log) => {
|
|
97
|
+
const challenge = generateAuthorizationURL(scopes);
|
|
98
|
+
log([
|
|
99
|
+
"Opening browser to authorize with Cloudflare...",
|
|
100
|
+
"",
|
|
101
|
+
kleur.gray("If you are not automatically redirected, please open the following URL in your browser:"),
|
|
102
|
+
challenge.url,
|
|
103
|
+
].join("\n"));
|
|
104
|
+
open(challenge.url);
|
|
105
|
+
const { result, ok, err } = detached();
|
|
106
|
+
const renderResponse = async (type) => {
|
|
107
|
+
return Response.redirect(`${ALCHEMY_BASE_URL}/auth/${type}`);
|
|
108
|
+
};
|
|
109
|
+
const server = new HTTPServer({
|
|
110
|
+
port: 8976,
|
|
111
|
+
fetch: async (request) => {
|
|
112
|
+
const url = new URL(request.url);
|
|
113
|
+
if (url.pathname !== "/oauth/callback") {
|
|
114
|
+
return new Response("Not found", { status: 404 });
|
|
115
|
+
}
|
|
116
|
+
const error = url.searchParams.get("error");
|
|
117
|
+
const error_description = url.searchParams.get("error_description");
|
|
118
|
+
const code = url.searchParams.get("code");
|
|
119
|
+
const state = url.searchParams.get("state");
|
|
120
|
+
if (error) {
|
|
121
|
+
err(new OAuthError({
|
|
122
|
+
error,
|
|
123
|
+
error_description: error_description ?? "Unknown error",
|
|
124
|
+
status_code: 400,
|
|
125
|
+
}));
|
|
126
|
+
return renderResponse("error");
|
|
127
|
+
}
|
|
128
|
+
if (!code || !state || state !== challenge.state) {
|
|
129
|
+
err(new OAuthError({
|
|
130
|
+
error: "invalid_request",
|
|
131
|
+
error_description: "Invalid request",
|
|
132
|
+
status_code: 400,
|
|
133
|
+
}));
|
|
134
|
+
return renderResponse("error");
|
|
135
|
+
}
|
|
136
|
+
const tokens = await fetchToken({
|
|
137
|
+
grant_type: "authorization_code",
|
|
138
|
+
code,
|
|
139
|
+
code_verifier: challenge.verifier,
|
|
140
|
+
client_id: CLIENT_ID,
|
|
141
|
+
redirect_uri: REDIRECT_URI,
|
|
142
|
+
});
|
|
143
|
+
if (tokens.isErr()) {
|
|
144
|
+
err(tokens.error);
|
|
145
|
+
return renderResponse("error");
|
|
146
|
+
}
|
|
147
|
+
ok(tokens.value);
|
|
148
|
+
return renderResponse("success");
|
|
149
|
+
},
|
|
150
|
+
});
|
|
151
|
+
const timeout = setTimeout(() => {
|
|
152
|
+
err(new OAuthError({
|
|
153
|
+
error: "timeout",
|
|
154
|
+
error_description: "Authorization timed out after 5 minutes",
|
|
155
|
+
status_code: 408,
|
|
156
|
+
}));
|
|
157
|
+
}, 1000 * 60 * 5);
|
|
158
|
+
return ensure(result, () => {
|
|
159
|
+
clearTimeout(timeout);
|
|
160
|
+
void server.stop();
|
|
161
|
+
});
|
|
162
|
+
};
|
|
163
|
+
const generateAuthorizationURL = (scopes) => {
|
|
164
|
+
const state = crypto.randomBytes(32).toString("base64url");
|
|
165
|
+
const verifier = crypto.randomBytes(96).toString("base64url");
|
|
166
|
+
const challenge = crypto
|
|
167
|
+
.createHash("sha256")
|
|
168
|
+
.update(verifier)
|
|
169
|
+
.digest("base64url");
|
|
170
|
+
const url = new URL("https://dash.cloudflare.com/oauth2/auth");
|
|
171
|
+
url.search = new URLSearchParams({
|
|
172
|
+
response_type: "code",
|
|
173
|
+
client_id: CLIENT_ID,
|
|
174
|
+
redirect_uri: "http://localhost:8976/oauth/callback",
|
|
175
|
+
scope: [...scopes, "offline_access"].join(" "),
|
|
176
|
+
state,
|
|
177
|
+
code_challenge: challenge,
|
|
178
|
+
code_challenge_method: "S256",
|
|
179
|
+
}).toString();
|
|
180
|
+
return { url: url.toString(), state, verifier };
|
|
181
|
+
};
|
|
182
|
+
class OAuthError extends Error {
|
|
183
|
+
constructor(params) {
|
|
184
|
+
super(`Cloudflare authentication failed with error ${params.error} (${params.status_code}): ${params.error_description}`);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
const fetchToken = (body) => {
|
|
188
|
+
return fetchJSON("https://dash.cloudflare.com/oauth2/token", {
|
|
189
|
+
method: "POST",
|
|
190
|
+
headers: {
|
|
191
|
+
"Content-Type": "application/x-www-form-urlencoded",
|
|
192
|
+
},
|
|
193
|
+
body: new URLSearchParams(body),
|
|
194
|
+
})
|
|
195
|
+
.map((tokens) => ({
|
|
196
|
+
oauth_token: tokens.access_token,
|
|
197
|
+
refresh_token: tokens.refresh_token,
|
|
198
|
+
expiration_time: new Date(Date.now() + tokens.expires_in * 1000),
|
|
199
|
+
scopes: tokens.scope.split(" "),
|
|
200
|
+
}))
|
|
201
|
+
.mapErr((error) => error instanceof HTTPError
|
|
202
|
+
? new OAuthError({
|
|
203
|
+
error: "http_error",
|
|
204
|
+
error_description: error.message,
|
|
205
|
+
status_code: error.status,
|
|
206
|
+
})
|
|
207
|
+
: new OAuthError(error))
|
|
208
|
+
.andTee((config) => writeWranglerConfig(config));
|
|
209
|
+
};
|
|
210
|
+
const isInteractive = () => {
|
|
211
|
+
return process.stdin.isTTY && process.stdout.isTTY && !process.env.CI;
|
|
212
|
+
};
|
|
213
|
+
//# sourceMappingURL=oauth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/cloudflare/oauth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { D1StateStore as _D1StateStore, DOFSStateStore as _DOFSStateStore, R2RestStateStore as _R2RestStateStore } from "../state/index.ts";
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated Use `R2RestStateStore` from `alchemy/state` instead.
|
|
4
|
+
*/
|
|
5
|
+
export declare const R2RestStateStore: typeof _R2RestStateStore;
|
|
6
|
+
/**
|
|
7
|
+
* @deprecated Use `R2RestStateStore` from `alchemy/state` instead.
|
|
8
|
+
*/
|
|
9
|
+
export type R2RestStateStore = _R2RestStateStore;
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated This state store is no longer recommended for production use. Please use {@link https://alchemy.run/guides/cloudflare-state-store/ CloudflareStateStore} from `alchemy/state` instead.
|
|
12
|
+
*/
|
|
13
|
+
export declare const DOStateStore: typeof _DOFSStateStore;
|
|
14
|
+
/**
|
|
15
|
+
* @deprecated Use `DOStateStore` from `alchemy/state` instead.
|
|
16
|
+
*/
|
|
17
|
+
export type DOStateStore = _DOFSStateStore;
|
|
18
|
+
/**
|
|
19
|
+
* @deprecated Use `D1StateStore` from `alchemy/state` instead.
|
|
20
|
+
*/
|
|
21
|
+
export declare const D1StateStore: typeof _D1StateStore;
|
|
22
|
+
/**
|
|
23
|
+
* @deprecated Use `D1StateStore` from `alchemy/state` instead.
|
|
24
|
+
*/
|
|
25
|
+
export type D1StateStore = _D1StateStore;
|
|
26
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/cloudflare/state.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,IAAI,aAAa,EAC7B,cAAc,IAAI,eAAe,EACjC,gBAAgB,IAAI,iBAAiB,EACtC,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,eAAO,MAAM,gBAAgB,0BAAoB,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,YAAY,wBAAkB,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,eAAe,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,YAAY,sBAAgB,CAAC;AAE1C;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { D1StateStore as _D1StateStore, DOFSStateStore as _DOFSStateStore, R2RestStateStore as _R2RestStateStore, } from "../state/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated Use `R2RestStateStore` from `alchemy/state` instead.
|
|
4
|
+
*/
|
|
5
|
+
export const R2RestStateStore = _R2RestStateStore;
|
|
6
|
+
/**
|
|
7
|
+
* @deprecated This state store is no longer recommended for production use. Please use {@link https://alchemy.run/guides/cloudflare-state-store/ CloudflareStateStore} from `alchemy/state` instead.
|
|
8
|
+
*/
|
|
9
|
+
export const DOStateStore = _DOFSStateStore;
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated Use `D1StateStore` from `alchemy/state` instead.
|
|
12
|
+
*/
|
|
13
|
+
export const D1StateStore = _D1StateStore;
|
|
14
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/cloudflare/state.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,IAAI,aAAa,EAC7B,cAAc,IAAI,eAAe,EACjC,gBAAgB,IAAI,iBAAiB,GACtC,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAOlD;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC;AAO5C;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC"}
|
package/lib/cloudflare/user.d.ts
CHANGED
|
@@ -46,6 +46,6 @@ export interface CloudflareOrganization {
|
|
|
46
46
|
permissions: string[];
|
|
47
47
|
roles: string[];
|
|
48
48
|
}
|
|
49
|
-
export declare
|
|
50
|
-
export declare
|
|
49
|
+
export declare const getCloudflareAccountId: (options: CloudflareAuthOptions) => Promise<string>;
|
|
50
|
+
export declare const getUserEmailFromApiKey: (apiKey: string) => Promise<string>;
|
|
51
51
|
//# sourceMappingURL=user.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/cloudflare/user.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/cloudflare/user.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAI3C,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,GAAG,aAAa,GAAG,cAAc,CAAC;IAClD,QAAQ,EAAE;QACR,iBAAiB,EAAE,OAAO,CAAC;QAC3B,kBAAkB,EAAE,IAAI,CAAC;QACzB,sBAAsB,EAAE,IAAI,CAAC;QAC7B,mBAAmB,EAAE,IAAI,CAAC;KAC3B,CAAC;IACF,YAAY,EAAE;QACZ,qBAAqB,EAAE;YACrB,OAAO,EAAE,MAAM,CAAC;YAChB,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,aAAa,EAAE,sBAAsB,EAAE,CAAC;IACxC,gBAAgB,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACvC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,iCAAiC,EAAE,OAAO,CAAC;IAC3C,gCAAgC,EAAE,OAAO,CAAC;IAC1C,aAAa,EAAE,OAAO,CAAC;IACvB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,eAAO,MAAM,sBAAsB,qDAyBlC,CAAC;AAEF,eAAO,MAAM,sBAAsB,qCAiBlC,CAAC"}
|