alchemy 0.15.4 → 0.15.6

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.
@@ -23,6 +23,7 @@ export * from "./queue-consumer.js";
23
23
  export * from "./queue.js";
24
24
  export * from "./r2-rest-state-store.js";
25
25
  export * from "./redwood.js";
26
+ export * from "./route.js";
26
27
  export * from "./tanstack-start.js";
27
28
  export * from "./vectorize-index.js";
28
29
  export * from "./vectorize-metadata-index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cloudflare/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uCAAuC,CAAC;AACtD,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cloudflare/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uCAAuC,CAAC;AACtD,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC"}
@@ -23,6 +23,7 @@ export * from "./queue-consumer.js";
23
23
  export * from "./queue.js";
24
24
  export * from "./r2-rest-state-store.js";
25
25
  export * from "./redwood.js";
26
+ export * from "./route.js";
26
27
  export * from "./tanstack-start.js";
27
28
  export * from "./vectorize-index.js";
28
29
  export * from "./vectorize-metadata-index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cloudflare/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uCAAuC,CAAC;AACtD,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cloudflare/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uCAAuC,CAAC;AACtD,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC"}
@@ -14,6 +14,20 @@ export interface KVNamespaceProps extends CloudflareApiOptions {
14
14
  * Only used for initial setup or updates
15
15
  */
16
16
  values?: KVPair[];
17
+ /**
18
+ * Whether to adopt an existing namespace with the same title if it exists
19
+ * If true and a namespace with the same title exists, it will be adopted rather than creating a new one
20
+ *
21
+ * @default false
22
+ */
23
+ adopt?: boolean;
24
+ /**
25
+ * Whether to delete the namespace.
26
+ * If set to false, the namespace will remain but the resource will be removed from state
27
+ *
28
+ * @default true
29
+ */
30
+ delete?: boolean;
17
31
  }
18
32
  /**
19
33
  * Key-value pair to store in a KV Namespace
@@ -93,6 +107,24 @@ export interface KVNamespace extends Resource<"cloudflare::KVNamespace">, KVName
93
107
  * }
94
108
  * }]
95
109
  * });
110
+ *
111
+ * @example
112
+ * // Adopt an existing namespace if it already exists instead of failing
113
+ * const existingNamespace = await KVNamespace("existing-ns", {
114
+ * title: "existing-namespace",
115
+ * adopt: true,
116
+ * values: [{
117
+ * key: "config",
118
+ * value: { setting: "updated-value" }
119
+ * }]
120
+ * });
121
+ *
122
+ * @example
123
+ * // When removing from Alchemy state, keep the namespace in Cloudflare
124
+ * const preservedNamespace = await KVNamespace("preserve-ns", {
125
+ * title: "preserved-namespace",
126
+ * delete: false
127
+ * });
96
128
  */
97
129
  export declare const KVNamespace: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | ((this: Context<KVNamespace>, id: string, props: KVNamespaceProps) => Promise<KVNamespace>);
98
130
  export declare function createKVNamespace(api: CloudflareApi, props: KVNamespaceProps): Promise<{
@@ -100,4 +132,11 @@ export declare function createKVNamespace(api: CloudflareApi, props: KVNamespace
100
132
  }>;
101
133
  export declare function deleteKVNamespace(api: CloudflareApi, namespaceId: string): Promise<void>;
102
134
  export declare function insertKVRecords(api: CloudflareApi, namespaceId: string, props: KVNamespaceProps): Promise<void>;
135
+ /**
136
+ * Find a KV namespace by title with pagination support
137
+ */
138
+ export declare function findKVNamespaceByTitle(api: CloudflareApi, title: string): Promise<{
139
+ id: string;
140
+ createdAt?: number;
141
+ } | null>;
103
142
  //# sourceMappingURL=kv-namespace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"kv-namespace.d.ts","sourceRoot":"","sources":["../../src/cloudflare/kv-namespace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,oBAAoB,EAC1B,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,oBAAoB;IAC5D;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAEvB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WACf,SAAQ,QAAQ,CAAC,yBAAyB,CAAC,EACzC,gBAAgB;IAClB,IAAI,EAAE,cAAc,CAAC;IACrB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,WAAW,yFAGd,OAAO,CAAC,WAAW,CAAC,MACtB,MAAM,SACH,gBAAgB,0BA4C1B,CAAC;AAEF,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAazB;AAED,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,aAAa,EAClB,WAAW,EAAE,MAAM,iBAUpB;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,aAAa,EAClB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,gBAAgB,iBAkExB"}
1
+ {"version":3,"file":"kv-namespace.d.ts","sourceRoot":"","sources":["../../src/cloudflare/kv-namespace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,oBAAoB,EAC1B,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,oBAAoB;IAC5D;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAEvB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WACf,SAAQ,QAAQ,CAAC,yBAAyB,CAAC,EACzC,gBAAgB;IAClB,IAAI,EAAE,cAAc,CAAC;IACrB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,eAAO,MAAM,WAAW,yFAGd,OAAO,CAAC,WAAW,CAAC,MACtB,MAAM,SACH,gBAAgB,0BAyE1B,CAAC;AAEF,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAazB;AAED,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,aAAa,EAClB,WAAW,EAAE,MAAM,iBAUpB;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,aAAa,EAClB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,gBAAgB,iBA8DxB;AAYD;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAiDpD"}
@@ -37,6 +37,24 @@ import { createCloudflareApi, } from "./api.js";
37
37
  * }
38
38
  * }]
39
39
  * });
40
+ *
41
+ * @example
42
+ * // Adopt an existing namespace if it already exists instead of failing
43
+ * const existingNamespace = await KVNamespace("existing-ns", {
44
+ * title: "existing-namespace",
45
+ * adopt: true,
46
+ * values: [{
47
+ * key: "config",
48
+ * value: { setting: "updated-value" }
49
+ * }]
50
+ * });
51
+ *
52
+ * @example
53
+ * // When removing from Alchemy state, keep the namespace in Cloudflare
54
+ * const preservedNamespace = await KVNamespace("preserve-ns", {
55
+ * title: "preserved-namespace",
56
+ * delete: false
57
+ * });
40
58
  */
41
59
  export const KVNamespace = Resource("cloudflare::KVNamespace", async function (id, props) {
42
60
  // Create Cloudflare API client with automatic account discovery
@@ -44,7 +62,7 @@ export const KVNamespace = Resource("cloudflare::KVNamespace", async function (i
44
62
  if (this.phase === "delete") {
45
63
  // For delete operations, we need to check if the namespace ID exists in the output
46
64
  const namespaceId = this.output?.namespaceId;
47
- if (namespaceId) {
65
+ if (namespaceId && props.delete !== false) {
48
66
  await deleteKVNamespace(api, namespaceId);
49
67
  }
50
68
  // Return minimal output for deleted state
@@ -60,10 +78,32 @@ export const KVNamespace = Resource("cloudflare::KVNamespace", async function (i
60
78
  // Can't update a KV namespace title directly, just work with existing ID
61
79
  }
62
80
  else {
63
- // TODO: if it already exists, then check the tags to see if we own it and continue
64
- const { id } = await createKVNamespace(api, props);
65
- createdAt = Date.now();
66
- namespaceId = id;
81
+ try {
82
+ // Try to create the KV namespace
83
+ const { id } = await createKVNamespace(api, props);
84
+ createdAt = Date.now();
85
+ namespaceId = id;
86
+ }
87
+ catch (error) {
88
+ // Check if this is a "namespace already exists" error and adopt is enabled
89
+ if (props.adopt &&
90
+ error instanceof Error &&
91
+ error.message.includes("already exists")) {
92
+ console.log(`Namespace '${props.title}' already exists, adopting it`);
93
+ // Find the existing namespace by title
94
+ const existingNamespace = await findKVNamespaceByTitle(api, props.title);
95
+ if (!existingNamespace) {
96
+ throw new Error(`Failed to find existing namespace '${props.title}' for adoption`);
97
+ }
98
+ // Use the existing namespace ID
99
+ namespaceId = existingNamespace.id;
100
+ createdAt = existingNamespace.createdAt || Date.now();
101
+ }
102
+ else {
103
+ // Re-throw the error if adopt is false or it's not a "namespace already exists" error
104
+ throw error;
105
+ }
106
+ }
67
107
  }
68
108
  await insertKVRecords(api, namespaceId, props);
69
109
  return this({
@@ -115,28 +155,57 @@ export async function insertKVRecords(api, namespaceId, props) {
115
155
  }
116
156
  return item;
117
157
  });
118
- try {
119
- await withExponentialBackoff(async () => {
120
- const bulkResponse = await api.put(`/accounts/${api.accountId}/storage/kv/namespaces/${namespaceId}/bulk`, bulkPayload);
121
- if (!bulkResponse.ok) {
122
- const errorData = await bulkResponse.json().catch(() => ({
123
- errors: [{ message: bulkResponse.statusText }],
124
- }));
125
- const errorMessage = errorData.errors?.[0]?.message || bulkResponse.statusText;
126
- // Throw error to trigger retry
127
- throw new Error(`Error writing KV batch: ${errorMessage}`);
128
- }
129
- return bulkResponse;
130
- }, (error) => {
131
- // Retry on "namespace not found" errors as they're likely propagation delays
132
- return error.message?.includes("not found");
133
- }, 5, // 5 retry attempts
134
- 1000);
135
- }
136
- catch (error) {
137
- console.warn(error.message);
138
- }
158
+ await withExponentialBackoff(async () => {
159
+ const bulkResponse = await api.put(`/accounts/${api.accountId}/storage/kv/namespaces/${namespaceId}/bulk`, bulkPayload);
160
+ if (!bulkResponse.ok) {
161
+ const errorData = await bulkResponse.json().catch(() => ({
162
+ errors: [{ message: bulkResponse.statusText }],
163
+ }));
164
+ const errorMessage = errorData.errors?.[0]?.message || bulkResponse.statusText;
165
+ // Throw error to trigger retry
166
+ throw new Error(`Error writing KV batch: ${errorMessage}`);
167
+ }
168
+ return bulkResponse;
169
+ }, (error) => {
170
+ // Retry on "namespace not found" errors as they're likely propagation delays
171
+ return error.message?.includes("not found");
172
+ }, 5, // 5 retry attempts
173
+ 1000);
174
+ }
175
+ }
176
+ }
177
+ /**
178
+ * Find a KV namespace by title with pagination support
179
+ */
180
+ export async function findKVNamespaceByTitle(api, title) {
181
+ let page = 1;
182
+ const perPage = 100; // Maximum allowed by API
183
+ let hasMorePages = true;
184
+ while (hasMorePages) {
185
+ const response = await api.get(`/accounts/${api.accountId}/storage/kv/namespaces?page=${page}&per_page=${perPage}`);
186
+ if (!response.ok) {
187
+ await handleApiError(response, "list", "kv_namespace", "all");
188
+ }
189
+ const data = (await response.json());
190
+ const namespaces = data.result;
191
+ const resultInfo = data.result_info;
192
+ // Look for a namespace with matching title
193
+ const match = namespaces.find((ns) => ns.title === title);
194
+ if (match) {
195
+ return {
196
+ id: match.id,
197
+ // Convert ISO string to timestamp if available, otherwise use current time
198
+ createdAt: match.created_on
199
+ ? new Date(match.created_on).getTime()
200
+ : undefined,
201
+ };
139
202
  }
203
+ // Check if we've seen all pages
204
+ hasMorePages =
205
+ resultInfo.page * resultInfo.per_page < resultInfo.total_count;
206
+ page++;
140
207
  }
208
+ // No matching namespace found
209
+ return null;
141
210
  }
142
211
  //# sourceMappingURL=kv-namespace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"kv-namespace.js","sourceRoot":"","sources":["../../src/cloudflare/kv-namespace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kv-namespace.js","sourceRoot":"","sources":["../../src/cloudflare/kv-namespace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ import type { Context } from "../context.js";
2
+ import { Resource } from "../resource.js";
3
+ import { type CloudflareApi, type CloudflareApiOptions } from "./api.js";
4
+ import type { Worker } from "./worker.js";
5
+ /**
6
+ * Properties for creating or updating a Route
7
+ */
8
+ export interface RouteProps extends CloudflareApiOptions {
9
+ /**
10
+ * URL pattern for the route
11
+ * @example "example.com/*"
12
+ */
13
+ pattern: string;
14
+ /**
15
+ * Worker script for the route
16
+ * This can be a Worker resource or script name as a string
17
+ */
18
+ script: Worker | string;
19
+ /**
20
+ * Zone ID for the route
21
+ */
22
+ zoneId: string;
23
+ }
24
+ /**
25
+ * Output returned after Route creation/update
26
+ */
27
+ export interface Route extends Resource<"cloudflare::Route">, RouteProps {
28
+ /**
29
+ * The unique ID of the route
30
+ */
31
+ id: string;
32
+ /**
33
+ * The URL pattern for the route
34
+ */
35
+ pattern: string;
36
+ /**
37
+ * The Worker script name for the route
38
+ */
39
+ script: string;
40
+ /**
41
+ * The Zone ID for the route
42
+ */
43
+ zoneId: string;
44
+ }
45
+ /**
46
+ * Creates and manages Cloudflare Worker Routes.
47
+ *
48
+ * Routes map URL patterns to Worker scripts, allowing you to control which
49
+ * requests are handled by your Workers.
50
+ *
51
+ * @example
52
+ * // Create a route that maps all requests on a domain to a Worker
53
+ * const basicRoute = await Route("main-route", {
54
+ * pattern: "example.com/*",
55
+ * script: "my-worker",
56
+ * zoneId: "your-zone-id"
57
+ * });
58
+ *
59
+ * @example
60
+ * // Create a route using a Worker resource
61
+ * const worker = await Worker("api-worker", {
62
+ * script: `
63
+ * export default {
64
+ * fetch(request, env) {
65
+ * return new Response("Hello from API!");
66
+ * }
67
+ * }
68
+ * `
69
+ * });
70
+ *
71
+ * const apiRoute = await Route("api-route", {
72
+ * pattern: "api.example.com/*",
73
+ * script: worker,
74
+ * zoneId: "your-zone-id"
75
+ * });
76
+ *
77
+ * @see https://developers.cloudflare.com/workers/configuration/routes/
78
+ */
79
+ export declare const Route: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | ((this: Context<Route>, id: string, props: RouteProps) => Promise<Route>);
80
+ interface CloudflareRouteResponse {
81
+ result: {
82
+ id: string;
83
+ pattern: string;
84
+ script: string;
85
+ };
86
+ success: boolean;
87
+ errors: Array<{
88
+ code: number;
89
+ message: string;
90
+ }>;
91
+ messages: string[];
92
+ }
93
+ /**
94
+ * Get a route by ID
95
+ */
96
+ export declare function getRoute(api: CloudflareApi, zoneId: string, routeId: string): Promise<CloudflareRouteResponse>;
97
+ /**
98
+ * List all routes for a zone
99
+ */
100
+ export declare function listRoutes(api: CloudflareApi, zoneId: string): Promise<CloudflareRouteResponse>;
101
+ export {};
102
+ //# sourceMappingURL=route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../src/cloudflare/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,oBAAoB,EAC1B,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,oBAAoB;IACtD;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,KAAM,SAAQ,QAAQ,CAAC,mBAAmB,CAAC,EAAE,UAAU;IACtE;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,KAAK,yFAGR,OAAO,CAAC,KAAK,CAAC,MAChB,MAAM,SACH,UAAU,KAChB,OAAO,CAAC,KAAK,CAAC,CAkDlB,CAAC;AAEF,UAAU,uBAAuB;IAC/B,MAAM,EAAE;QACN,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAwED;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,uBAAuB,CAAC,CAWlC;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,uBAAuB,CAAC,CAWlC"}
@@ -0,0 +1,130 @@
1
+ import { Resource } from "../resource.js";
2
+ import { CloudflareApiError, handleApiError } from "./api-error.js";
3
+ import { createCloudflareApi, } from "./api.js";
4
+ /**
5
+ * Creates and manages Cloudflare Worker Routes.
6
+ *
7
+ * Routes map URL patterns to Worker scripts, allowing you to control which
8
+ * requests are handled by your Workers.
9
+ *
10
+ * @example
11
+ * // Create a route that maps all requests on a domain to a Worker
12
+ * const basicRoute = await Route("main-route", {
13
+ * pattern: "example.com/*",
14
+ * script: "my-worker",
15
+ * zoneId: "your-zone-id"
16
+ * });
17
+ *
18
+ * @example
19
+ * // Create a route using a Worker resource
20
+ * const worker = await Worker("api-worker", {
21
+ * script: `
22
+ * export default {
23
+ * fetch(request, env) {
24
+ * return new Response("Hello from API!");
25
+ * }
26
+ * }
27
+ * `
28
+ * });
29
+ *
30
+ * const apiRoute = await Route("api-route", {
31
+ * pattern: "api.example.com/*",
32
+ * script: worker,
33
+ * zoneId: "your-zone-id"
34
+ * });
35
+ *
36
+ * @see https://developers.cloudflare.com/workers/configuration/routes/
37
+ */
38
+ export const Route = Resource("cloudflare::Route", async function (id, props) {
39
+ const api = await createCloudflareApi(props);
40
+ // Get script name from script prop (either a string or a Worker resource)
41
+ const scriptName = typeof props.script === "string" ? props.script : props.script.name;
42
+ // Get zone ID from props
43
+ const { zoneId } = props;
44
+ if (this.phase === "delete") {
45
+ console.log("Deleting Route:", props.pattern);
46
+ // Only delete if we have an ID
47
+ if (this.output?.id) {
48
+ await deleteRoute(api, zoneId, this.output.id);
49
+ }
50
+ // Return void (a deleted route has no content)
51
+ return this.destroy();
52
+ }
53
+ let routeData;
54
+ if (this.phase === "update" && this.output?.id) {
55
+ console.log("Updating Route:", props.pattern);
56
+ // Update existing route
57
+ routeData = await updateRoute(api, zoneId, this.output.id, props.pattern, scriptName);
58
+ }
59
+ else {
60
+ console.log("Creating Route:", props.pattern);
61
+ // Create new route
62
+ routeData = await createRoute(api, zoneId, props.pattern, scriptName);
63
+ }
64
+ // Return the route resource
65
+ return this({
66
+ id: routeData.result.id,
67
+ pattern: routeData.result.pattern,
68
+ script: routeData.result.script,
69
+ zoneId,
70
+ });
71
+ });
72
+ /**
73
+ * Create a new route
74
+ */
75
+ async function createRoute(api, zoneId, pattern, script) {
76
+ const createResponse = await api.post(`/zones/${zoneId}/workers/routes`, {
77
+ pattern,
78
+ script,
79
+ });
80
+ if (!createResponse.ok) {
81
+ return await handleApiError(createResponse, "creating", "Route", pattern);
82
+ }
83
+ return (await createResponse.json());
84
+ }
85
+ /**
86
+ * Update a route
87
+ */
88
+ async function updateRoute(api, zoneId, routeId, pattern, script) {
89
+ const updateResponse = await api.put(`/zones/${zoneId}/workers/routes/${routeId}`, {
90
+ pattern,
91
+ script,
92
+ });
93
+ if (!updateResponse.ok) {
94
+ return await handleApiError(updateResponse, "updating", "Route", pattern);
95
+ }
96
+ return (await updateResponse.json());
97
+ }
98
+ /**
99
+ * Delete a route
100
+ */
101
+ async function deleteRoute(api, zoneId, routeId) {
102
+ const deleteResponse = await api.delete(`/zones/${zoneId}/workers/routes/${routeId}`);
103
+ if (!deleteResponse.ok && deleteResponse.status !== 404) {
104
+ const errorData = await deleteResponse.json().catch(() => ({
105
+ errors: [{ message: deleteResponse.statusText }],
106
+ }));
107
+ throw new CloudflareApiError(`Error deleting Route '${routeId}': ${errorData.errors?.[0]?.message || deleteResponse.statusText}`, deleteResponse);
108
+ }
109
+ }
110
+ /**
111
+ * Get a route by ID
112
+ */
113
+ export async function getRoute(api, zoneId, routeId) {
114
+ const response = await api.get(`/zones/${zoneId}/workers/routes/${routeId}`);
115
+ if (!response.ok) {
116
+ throw new CloudflareApiError(`Failed to get route ${routeId}: ${response.statusText}`, response);
117
+ }
118
+ return (await response.json());
119
+ }
120
+ /**
121
+ * List all routes for a zone
122
+ */
123
+ export async function listRoutes(api, zoneId) {
124
+ const response = await api.get(`/zones/${zoneId}/workers/routes`);
125
+ if (!response.ok) {
126
+ throw new CloudflareApiError(`Failed to list routes: ${response.statusText}`, response);
127
+ }
128
+ return (await response.json());
129
+ }
130
+ //# sourceMappingURL=route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../../src/cloudflare/route.ts"],"names":[],"mappings":"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"}
@@ -211,6 +211,12 @@ export interface Worker<B extends Bindings = Bindings> extends Resource<"cloudfl
211
211
  * url: true
212
212
  * });
213
213
  *
214
+ * await Route("route", {
215
+ * zoneId: zone.zoneId,
216
+ * worker: api,
217
+ * pattern: "api.example.com/*",
218
+ * });
219
+ *
214
220
  * @example
215
221
  * // Create a real-time chat worker using Durable Objects
216
222
  * // for state management:
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/cloudflare/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/cloudflare/worker.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAK1C,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,KAAK,QAAQ,EAAgC,MAAM,eAAe,CAAC;AAC5E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGxC,OAAO,EAAE,KAAK,WAAW,EAAsB,MAAM,mBAAmB,CAAC;AAQzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAGjE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,aAAa,CAAC,EACV,qBAAqB,GACrB,sBAAsB,GACtB,qBAAqB,GACrB,MAAM,CAAC;IAEX;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,yBAAyB,CAAC;IAErE;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,CACxD,SAAQ,oBAAoB;IAC5B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAEzC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAEvB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEb;;;;OAIG;IACH,GAAG,CAAC,EAAE;QACJ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB,CAAC;IAEF;;;;;OAKG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd;;;;;OAKG;IACH,aAAa,CAAC,EAAE;QACd;;;WAGG;QACH,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IAEF;;OAEG;IACH,UAAU,CAAC,EAAE,mBAAmB,CAAC;IAEjC;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE9B;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAEjB;;;;OAIG;IACH,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,MAAM,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,CACnD,SAAQ,QAAQ,CAAC,oBAAoB,CAAC,EACpC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IACxC,IAAI,EAAE,SAAS,CAAC;IAEhB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAC;IAExB;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IAGtB,GAAG,EAAE;SACF,WAAW,IAAI,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;KAChD,CAAC;IAEF;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2FG;AACH,eAAO,MAAM,MAAM,yFAKK,CAAC,SAAS,QAAQ,QAChC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAC7B,MAAM,SACH,WAAW,CAAC,CAAC,CAAC,KACpB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CA0MtB,CAAC"}
@@ -25,6 +25,12 @@ import { upsertWorkflow } from "./workflow.js";
25
25
  * url: true
26
26
  * });
27
27
  *
28
+ * await Route("route", {
29
+ * zoneId: zone.zoneId,
30
+ * worker: api,
31
+ * pattern: "api.example.com/*",
32
+ * });
33
+ *
28
34
  * @example
29
35
  * // Create a real-time chat worker using Durable Objects
30
36
  * // for state management: