alchemy 0.84.0 → 0.85.0

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 (97) hide show
  1. package/bin/alchemy.js +1 -1
  2. package/lib/cloudflare/api-error.d.ts +11 -0
  3. package/lib/cloudflare/api-error.d.ts.map +1 -1
  4. package/lib/cloudflare/api-error.js +11 -0
  5. package/lib/cloudflare/api-error.js.map +1 -1
  6. package/lib/cloudflare/api.js +1 -1
  7. package/lib/cloudflare/api.js.map +1 -1
  8. package/lib/cloudflare/bindings.d.ts +12 -2
  9. package/lib/cloudflare/bindings.d.ts.map +1 -1
  10. package/lib/cloudflare/bindings.js.map +1 -1
  11. package/lib/cloudflare/bound.d.ts +2 -1
  12. package/lib/cloudflare/bound.d.ts.map +1 -1
  13. package/lib/cloudflare/d1-database.d.ts.map +1 -1
  14. package/lib/cloudflare/d1-database.js +9 -1
  15. package/lib/cloudflare/d1-database.js.map +1 -1
  16. package/lib/cloudflare/index.d.ts +1 -0
  17. package/lib/cloudflare/index.d.ts.map +1 -1
  18. package/lib/cloudflare/index.js +1 -0
  19. package/lib/cloudflare/index.js.map +1 -1
  20. package/lib/cloudflare/miniflare/build-worker-options.d.ts.map +1 -1
  21. package/lib/cloudflare/miniflare/build-worker-options.js +15 -0
  22. package/lib/cloudflare/miniflare/build-worker-options.js.map +1 -1
  23. package/lib/cloudflare/miniflare/miniflare-controller.d.ts +1 -1
  24. package/lib/cloudflare/miniflare/miniflare-controller.d.ts.map +1 -1
  25. package/lib/cloudflare/miniflare/miniflare-worker-proxy.d.ts.map +1 -1
  26. package/lib/cloudflare/miniflare/miniflare-worker-proxy.js +41 -3
  27. package/lib/cloudflare/miniflare/miniflare-worker-proxy.js.map +1 -1
  28. package/lib/cloudflare/vpc-service.d.ts +288 -0
  29. package/lib/cloudflare/vpc-service.d.ts.map +1 -0
  30. package/lib/cloudflare/vpc-service.js +238 -0
  31. package/lib/cloudflare/vpc-service.js.map +1 -0
  32. package/lib/cloudflare/worker-metadata.d.ts +1 -0
  33. package/lib/cloudflare/worker-metadata.d.ts.map +1 -1
  34. package/lib/cloudflare/worker-metadata.js +8 -0
  35. package/lib/cloudflare/worker-metadata.js.map +1 -1
  36. package/lib/cloudflare/worker.d.ts +9 -0
  37. package/lib/cloudflare/worker.d.ts.map +1 -1
  38. package/lib/cloudflare/worker.js.map +1 -1
  39. package/lib/cloudflare/wrangler.json.d.ts.map +1 -1
  40. package/lib/cloudflare/wrangler.json.js +9 -0
  41. package/lib/cloudflare/wrangler.json.js.map +1 -1
  42. package/lib/planetscale/api/sdk.gen.d.ts +874 -190
  43. package/lib/planetscale/api/sdk.gen.d.ts.map +1 -1
  44. package/lib/planetscale/api/sdk.gen.js +1250 -306
  45. package/lib/planetscale/api/sdk.gen.js.map +1 -1
  46. package/lib/planetscale/api/types.gen.d.ts +8241 -4128
  47. package/lib/planetscale/api/types.gen.d.ts.map +1 -1
  48. package/lib/planetscale/branch.js +4 -4
  49. package/lib/planetscale/branch.js.map +1 -1
  50. package/lib/planetscale/database.d.ts +43 -24
  51. package/lib/planetscale/database.d.ts.map +1 -1
  52. package/lib/planetscale/database.js +39 -18
  53. package/lib/planetscale/database.js.map +1 -1
  54. package/lib/planetscale/default-role.d.ts +51 -0
  55. package/lib/planetscale/default-role.d.ts.map +1 -0
  56. package/lib/planetscale/default-role.js +100 -0
  57. package/lib/planetscale/default-role.js.map +1 -0
  58. package/lib/planetscale/index.d.ts +1 -0
  59. package/lib/planetscale/index.d.ts.map +1 -1
  60. package/lib/planetscale/index.js +1 -0
  61. package/lib/planetscale/index.js.map +1 -1
  62. package/lib/planetscale/organization.js +1 -1
  63. package/lib/planetscale/organization.js.map +1 -1
  64. package/lib/planetscale/role.d.ts +1 -1
  65. package/lib/planetscale/role.d.ts.map +1 -1
  66. package/lib/planetscale/role.js +1 -1
  67. package/lib/planetscale/role.js.map +1 -1
  68. package/lib/planetscale/utils.d.ts +1 -1
  69. package/lib/planetscale/utils.d.ts.map +1 -1
  70. package/lib/planetscale/utils.js +9 -10
  71. package/lib/planetscale/utils.js.map +1 -1
  72. package/lib/state/sqlite-state-store.js +2 -0
  73. package/lib/state/sqlite-state-store.js.map +1 -1
  74. package/package.json +2 -2
  75. package/src/cloudflare/api-error.ts +19 -0
  76. package/src/cloudflare/api.ts +1 -1
  77. package/src/cloudflare/bindings.ts +15 -2
  78. package/src/cloudflare/bound.ts +6 -3
  79. package/src/cloudflare/d1-database.ts +11 -4
  80. package/src/cloudflare/index.ts +1 -0
  81. package/src/cloudflare/miniflare/build-worker-options.ts +30 -18
  82. package/src/cloudflare/miniflare/miniflare-worker-proxy.ts +47 -2
  83. package/src/cloudflare/vpc-service.ts +466 -0
  84. package/src/cloudflare/worker-metadata.ts +8 -0
  85. package/src/cloudflare/worker.ts +9 -0
  86. package/src/cloudflare/wrangler.json.ts +8 -0
  87. package/src/planetscale/api/sdk.gen.ts +2331 -987
  88. package/src/planetscale/api/types.gen.ts +8980 -4574
  89. package/src/planetscale/branch.ts +4 -4
  90. package/src/planetscale/database.ts +87 -46
  91. package/src/planetscale/default-role.ts +162 -0
  92. package/src/planetscale/index.ts +1 -0
  93. package/src/planetscale/organization.ts +1 -1
  94. package/src/planetscale/role.ts +3 -2
  95. package/src/planetscale/utils.ts +10 -10
  96. package/src/state/sqlite-state-store.ts +2 -0
  97. package/workers/tunnel-proxy.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/planetscale/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,MAAM,sBAAsB,GAC9B,QAAQ,GACR,OAAO,GACP,OAAO,GACP,OAAO,GACP,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,IAAI,CAAC,EAAE,OAAO,GAAG,YAAY,CAAC;IAC9B,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,CAaT;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,iBAAiB,EACtB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,cAAc,CAAC,CAUzB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,iBAAiB,EACtB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,iBAAiB,EACtB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;;;GAIG;AACH,wBAAsB,iCAAiC,CACrD,GAAG,EAAE,iBAAiB,EACtB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,GAAG,YAAY,EAC5B,mBAAmB,EAAE,sBAAsB,GAC1C,OAAO,CAAC,IAAI,CAAC,CA2Bf"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/planetscale/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,MAAM,sBAAsB,GAC9B,QAAQ,GACR,MAAM,GACN,OAAO,GACP,OAAO,GACP,OAAO,GACP,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,IAAI,CAAC,EAAE,OAAO,GAAG,YAAY,CAAC;IAC9B,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,CAaT;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,iBAAiB,EACtB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,cAAc,CAAC,CAUzB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,iBAAiB,EACtB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,iBAAiB,EACtB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;;;GAIG;AACH,wBAAsB,iCAAiC,CACrD,GAAG,EAAE,iBAAiB,EACtB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,GAAG,YAAY,EAC5B,mBAAmB,EAAE,sBAAsB,GAC1C,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
@@ -23,7 +23,7 @@ export async function waitForBranchReady(api, organization, database, branch) {
23
23
  const { data } = await poll({
24
24
  description: `branch "${branch}" ready`,
25
25
  fn: () => api.getBranch({
26
- path: { organization, database, name: branch },
26
+ path: { organization, database, branch },
27
27
  }),
28
28
  predicate: ({ data }) => data.ready,
29
29
  });
@@ -36,7 +36,7 @@ export async function waitForDatabaseReady(api, organization, database) {
36
36
  await poll({
37
37
  description: `database "${database}" ready`,
38
38
  fn: () => api.getDatabase({
39
- path: { organization, name: database },
39
+ path: { organization, database },
40
40
  }),
41
41
  predicate: ({ data }) => data.ready,
42
42
  });
@@ -69,9 +69,8 @@ export async function ensureProductionBranchClusterSize(api, organization, datab
69
69
  break;
70
70
  }
71
71
  case "postgresql": {
72
- // Postgres databases must be resized first before promoting, otherwise 500 error
72
+ // Postgres databases do not need to be promoted; PS_DEV is development and all others are production
73
73
  await ensurePostgresClusterSize(api, organization, database, branch, expectedClusterSize);
74
- await ensureProductionBranch(api, organization, database, branch);
75
74
  break;
76
75
  }
77
76
  }
@@ -79,20 +78,20 @@ export async function ensureProductionBranchClusterSize(api, organization, datab
79
78
  /**
80
79
  * Checks if a branch is production and promotes it if it is not.
81
80
  */
82
- async function ensureProductionBranch(api, organization, database, name) {
81
+ async function ensureProductionBranch(api, organization, database, branch) {
83
82
  const { data } = await api.getBranch({
84
83
  path: {
85
84
  organization,
86
85
  database,
87
- name,
86
+ branch,
88
87
  },
89
88
  });
90
89
  if (!data.production) {
91
90
  if (!data.ready) {
92
- await waitForBranchReady(api, organization, database, name);
91
+ await waitForBranchReady(api, organization, database, branch);
93
92
  }
94
93
  await api.promoteBranch({
95
- path: { organization, database, name },
94
+ path: { organization, database, branch },
96
95
  });
97
96
  }
98
97
  }
@@ -121,7 +120,7 @@ async function ensureMySQLClusterSize(api, organization, database, branch, expec
121
120
  path: {
122
121
  organization,
123
122
  database,
124
- name: branch,
123
+ branch,
125
124
  },
126
125
  body: { cluster_size: expectedClusterSize },
127
126
  });
@@ -137,7 +136,7 @@ async function ensurePostgresClusterSize(api, organization, database, branch, ex
137
136
  path: {
138
137
  organization,
139
138
  database,
140
- name: branch,
139
+ branch,
141
140
  },
142
141
  });
143
142
  if (data.cluster_name === expectedClusterSize) {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/planetscale/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/planetscale/utils.ts"],"names":[],"mappings":"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"}
@@ -61,6 +61,7 @@ async function createBunSQLiteDatabase(options) {
61
61
  create: true,
62
62
  ...bunOptions,
63
63
  });
64
+ client.exec("PRAGMA busy_timeout = 5000;");
64
65
  client.exec("PRAGMA journal_mode = WAL;");
65
66
  const db = drizzle(client, {
66
67
  schema,
@@ -80,6 +81,7 @@ async function createLibSQLDatabase(options) {
80
81
  const { migrate } = await import("drizzle-orm/libsql/migrator");
81
82
  const schema = await import("./schema.js");
82
83
  const client = createClient({ url, ...options });
84
+ await client.execute("PRAGMA busy_timeout = 5000;");
83
85
  await client.execute("PRAGMA journal_mode = WAL;");
84
86
  const db = drizzle(client, {
85
87
  schema,
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-state-store.js","sourceRoot":"","sources":["../../src/state/sqlite-state-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite-state-store.js","sourceRoot":"","sources":["../../src/state/sqlite-state-store.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "alchemy",
3
- "version": "0.84.0",
3
+ "version": "0.85.0",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Sam Goodwin <sam@alchemy.run>",
6
6
  "homepage": "https://alchemy.run",
@@ -225,7 +225,7 @@
225
225
  "rwsdk": "^1.0.0-beta.51",
226
226
  "stripe": "^18.5.0",
227
227
  "vite": ">=6.0.0",
228
- "wrangler": "^4.60.0"
228
+ "wrangler": "^4.65.0"
229
229
  },
230
230
  "peerDependenciesMeta": {
231
231
  "@astrojs/cloudflare": {
@@ -1,3 +1,5 @@
1
+ import type { CloudflareApiErrorPayload } from "./api-response";
2
+
1
3
  /**
2
4
  * Custom error class for Cloudflare API errors
3
5
  * Includes HTTP status information from the Response
@@ -66,3 +68,20 @@ export async function handleApiError(
66
68
  }: ${errors.map((error) => `${error.code}: ${error.message}`).join(", ")}`;
67
69
  throw new CloudflareApiError(errorMessage, response, errors);
68
70
  }
71
+
72
+ /**
73
+ * Helper function to check if an error is a Cloudflare API error.
74
+ * Optional match criteria can be provided to check for a specific HTTP status code or error code.
75
+ */
76
+ export function isCloudflareApiError(
77
+ error: unknown,
78
+ match: { status?: number; code?: number } = {},
79
+ ): error is CloudflareApiError & { errorData: CloudflareApiErrorPayload[] } {
80
+ return (
81
+ error instanceof CloudflareApiError &&
82
+ (match.status === undefined || error.status === match.status) &&
83
+ (match.code === undefined ||
84
+ (Array.isArray(error.errorData) &&
85
+ error.errorData.some((e) => "code" in e && e.code === match.code)))
86
+ );
87
+ }
@@ -113,7 +113,7 @@ export const createCloudflareApi = memoize(
113
113
  baseUrl,
114
114
  profile,
115
115
  credentials,
116
- accountId: provider.metadata.id,
116
+ accountId: accountId ?? provider.metadata.id,
117
117
  });
118
118
  } catch (error) {
119
119
  throw new Error(
@@ -26,6 +26,7 @@ import type { SecretRef as CloudflareSecretRef } from "./secret-ref.ts";
26
26
  import type { Secret as CloudflareSecret } from "./secret.ts";
27
27
  import type { VectorizeIndex } from "./vectorize-index.ts";
28
28
  import type { VersionMetadata } from "./version-metadata.ts";
29
+ import type { VpcService } from "./vpc-service.ts";
29
30
  import type { WorkerLoader } from "./worker-loader.ts";
30
31
  import type { WorkerRef } from "./worker-ref.ts";
31
32
  import type { WorkerStub } from "./worker-stub.ts";
@@ -82,7 +83,8 @@ export type Binding =
82
83
  | BrowserRendering
83
84
  | VersionMetadata
84
85
  | Self
85
- | Json;
86
+ | Json
87
+ | VpcService;
86
88
 
87
89
  export type Self<
88
90
  RPC extends Rpc.WorkerEntrypointBranded = Rpc.WorkerEntrypointBranded,
@@ -143,7 +145,8 @@ export type WorkerBindingSpec =
143
145
  | WorkerBindingVersionMetadata
144
146
  | WorkerBindingWasmModule
145
147
  | WorkerBindingWorkerLoader
146
- | WorkerBindingWorkflow;
148
+ | WorkerBindingWorkflow
149
+ | WorkerBindingVpcService;
147
150
 
148
151
  /**
149
152
  * AI binding type
@@ -499,6 +502,16 @@ export interface WorkerBindingWorkflow {
499
502
  script_name?: string;
500
503
  }
501
504
 
505
+ export interface WorkerBindingVpcService {
506
+ /** The name of the binding */
507
+ name: string;
508
+ /** Type identifier for VPC Service binding */
509
+ type: "vpc_service";
510
+ /** VPC Service name */
511
+ service_name: string;
512
+ service_id: string;
513
+ }
514
+
502
515
  /**
503
516
  * Images binding type
504
517
  */
@@ -20,6 +20,7 @@ import type { SecretRef as CloudflareSecretRef } from "./secret-ref.ts";
20
20
  import type { Secret as CloudflareSecret } from "./secret.ts";
21
21
  import type { VectorizeIndex as _VectorizeIndex } from "./vectorize-index.ts";
22
22
  import type { VersionMetadata as _VersionMetadata } from "./version-metadata.ts";
23
+ import type { VpcService as _VpcService } from "./vpc-service.ts";
23
24
  import type { WorkerLoader as _WorkerLoader } from "./worker-loader.ts";
24
25
  import type { WorkerRef } from "./worker-ref.ts";
25
26
  import type { WorkerStub } from "./worker-stub.ts";
@@ -105,6 +106,8 @@ export type Bound<T extends Binding> =
105
106
  Obj &
106
107
  Rpc.DurableObjectBranded
107
108
  >
108
- : T extends undefined
109
- ? undefined
110
- : Service;
109
+ : T extends _VpcService
110
+ ? Fetcher
111
+ : T extends undefined
112
+ ? undefined
113
+ : Service;
@@ -540,10 +540,17 @@ export async function deleteDatabase(
540
540
  api: CloudflareApi,
541
541
  databaseId: string,
542
542
  ): Promise<void> {
543
- await extractCloudflareResult(
544
- `delete D1 database "${databaseId}"`,
545
- api.delete(`/accounts/${api.accountId}/d1/database/${databaseId}`),
546
- );
543
+ try {
544
+ await extractCloudflareResult(
545
+ `delete D1 database "${databaseId}"`,
546
+ api.delete(`/accounts/${api.accountId}/d1/database/${databaseId}`),
547
+ );
548
+ } catch (error) {
549
+ if (error instanceof CloudflareApiError && error.status === 404) {
550
+ return;
551
+ }
552
+ throw error;
553
+ }
547
554
  }
548
555
 
549
556
  /**
@@ -70,6 +70,7 @@ export * from "./vectorize-index.ts";
70
70
  export * from "./vectorize-metadata-index.ts";
71
71
  export * from "./version-metadata.ts";
72
72
  export * from "./vite/vite.ts";
73
+ export * from "./vpc-service.ts";
73
74
  export * from "./warp-default-profile.ts";
74
75
  export * from "./warp-device-profile.ts";
75
76
  export * from "./website.ts";
@@ -31,29 +31,26 @@ export interface MiniflareWorkerInput {
31
31
  cwd: string;
32
32
  }
33
33
 
34
- type RemoteOnlyBindingType =
35
- | "ai"
36
- | "browser"
37
- | "dispatch_namespace"
38
- | "mtls_certificate"
39
- | "vectorize";
40
- type RemoteOptionalBindingType =
41
- | "d1"
42
- | "images"
43
- | "kv_namespace"
44
- | "queue"
45
- | "r2_bucket";
46
-
47
34
  type RemoteBinding =
35
+ // Supported remote bindings that are NOT a fetcher require the `raw` flag.
48
36
  | (Extract<
49
37
  WorkerBindingSpec,
50
38
  {
51
- type: RemoteOnlyBindingType | RemoteOptionalBindingType;
39
+ type:
40
+ | "ai"
41
+ | "browser"
42
+ | "dispatch_namespace"
43
+ | "mtls_certificate"
44
+ | "vectorize"
45
+ | "d1"
46
+ | "images"
47
+ | "kv_namespace"
48
+ | "queue"
49
+ | "r2_bucket";
52
50
  }
53
- > & {
54
- raw: true;
55
- })
56
- | WorkerBindingService;
51
+ > & { raw: true })
52
+ // Fetcher type bindings do not require the `raw` flag and will throw an error if it is present.
53
+ | Extract<WorkerBindingSpec, { type: "service" | "vpc_service" }>;
57
54
 
58
55
  type BaseWorkerOptions = {
59
56
  [K in keyof miniflare.WorkerOptions]: K extends
@@ -324,6 +321,15 @@ export const buildWorkerOptions = async (
324
321
  };
325
322
  break;
326
323
  }
324
+ case "vpc_service": {
325
+ remoteBindings.push({
326
+ type: "vpc_service",
327
+ name: key,
328
+ service_name: binding.name,
329
+ service_id: binding.serviceId,
330
+ });
331
+ break;
332
+ }
327
333
  case "worker_loader": {
328
334
  (options.workerLoaders ??= {})[key] = {};
329
335
  break;
@@ -447,6 +453,12 @@ export const buildWorkerOptions = async (
447
453
  remoteProxyConnectionString: remoteProxy.connectionString,
448
454
  };
449
455
  break;
456
+ case "vpc_service":
457
+ (options.vpcServices ??= {})[binding.name] = {
458
+ service_id: binding.service_id,
459
+ remoteProxyConnectionString: remoteProxy.connectionString,
460
+ };
461
+ break;
450
462
  default: {
451
463
  assertNever(binding);
452
464
  }
@@ -32,10 +32,12 @@ export async function createMiniflareWorkerProxy(options: {
32
32
 
33
33
  server.on("request", async (req, res) => {
34
34
  try {
35
- const response = await handleFetch(req);
35
+ const response = await handleFetch(req, res);
36
36
  writeMiniflareResponseToNode(response, res);
37
37
  } catch (error) {
38
- console.error(error);
38
+ if (!(error instanceof DOMException && error.name === "AbortError")) {
39
+ console.error(error);
40
+ }
39
41
  const response = MiniflareWorkerProxyError.fromUnknown(error).toResponse(
40
42
  options.mode,
41
43
  );
@@ -45,6 +47,7 @@ export async function createMiniflareWorkerProxy(options: {
45
47
 
46
48
  const handleFetch = async (
47
49
  req: http.IncomingMessage,
50
+ res: http.ServerResponse,
48
51
  ): Promise<miniflare.Response> => {
49
52
  const info = parseIncomingMessage(req);
50
53
  options.transformRequest?.(info);
@@ -60,12 +63,14 @@ export async function createMiniflareWorkerProxy(options: {
60
63
  info.url.pathname = "/cdn-cgi/handler/scheduled";
61
64
  }
62
65
 
66
+ const signal = getDisconnectSignal(req, res);
63
67
  const request = new miniflare.Request(info.url, {
64
68
  method: info.method,
65
69
  headers: info.headers,
66
70
  body: info.body,
67
71
  redirect: info.redirect,
68
72
  duplex: info.duplex,
73
+ signal,
69
74
  });
70
75
  return await options.miniflare.dispatchFetch(request);
71
76
  };
@@ -114,6 +119,46 @@ export async function createMiniflareWorkerProxy(options: {
114
119
  };
115
120
  }
116
121
 
122
+ /**
123
+ * Creates an abort signal that is triggered when the downstream client
124
+ * disconnects before the response is fully written.
125
+ *
126
+ * This signal should be forwarded to Miniflare dispatch so Worker `req.signal`
127
+ * listeners can observe local client cancellation.
128
+ */
129
+ function getDisconnectSignal(
130
+ req: http.IncomingMessage,
131
+ res: http.ServerResponse,
132
+ ): AbortSignal {
133
+ const controller = new AbortController();
134
+ const onAbort = () => {
135
+ if (!controller.signal.aborted) {
136
+ controller.abort();
137
+ }
138
+ cleanup();
139
+ };
140
+ const onClose = () => {
141
+ if (!res.writableEnded) {
142
+ onAbort();
143
+ return;
144
+ }
145
+ cleanup();
146
+ };
147
+ const cleanup = () => {
148
+ req.off("aborted", onAbort);
149
+ req.socket?.off("close", onClose);
150
+ res.off("close", onClose);
151
+ res.off("finish", cleanup);
152
+ };
153
+
154
+ req.on("aborted", onAbort);
155
+ req.socket?.on("close", onClose);
156
+ res.on("close", onClose);
157
+ res.on("finish", cleanup);
158
+
159
+ return controller.signal;
160
+ }
161
+
117
162
  /**
118
163
  * Listens on the given port, retrying on the next port if the port is already in use.
119
164
  */