alchemy 0.80.1 → 0.81.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.
Files changed (53) hide show
  1. package/bin/alchemy.js +1660 -1382
  2. package/bin/services/execute-alchemy.ts +18 -6
  3. package/lib/alchemy.js +1 -1
  4. package/lib/alchemy.js.map +1 -1
  5. package/lib/cloudflare/compatibility-date.gen.d.ts +1 -1
  6. package/lib/cloudflare/compatibility-date.gen.js +1 -1
  7. package/lib/cloudflare/hyperdrive.d.ts +23 -5
  8. package/lib/cloudflare/hyperdrive.d.ts.map +1 -1
  9. package/lib/cloudflare/hyperdrive.js.map +1 -1
  10. package/lib/cloudflare/index.d.ts +3 -0
  11. package/lib/cloudflare/index.d.ts.map +1 -1
  12. package/lib/cloudflare/index.js +3 -0
  13. package/lib/cloudflare/index.js.map +1 -1
  14. package/lib/cloudflare/miniflare/miniflare-worker-proxy.d.ts.map +1 -1
  15. package/lib/cloudflare/miniflare/miniflare-worker-proxy.js +7 -0
  16. package/lib/cloudflare/miniflare/miniflare-worker-proxy.js.map +1 -1
  17. package/lib/cloudflare/queue.d.ts +0 -3
  18. package/lib/cloudflare/queue.d.ts.map +1 -1
  19. package/lib/cloudflare/queue.js +53 -31
  20. package/lib/cloudflare/queue.js.map +1 -1
  21. package/lib/cloudflare/redirect-rule.d.ts +12 -2
  22. package/lib/cloudflare/redirect-rule.d.ts.map +1 -1
  23. package/lib/cloudflare/redirect-rule.js +73 -98
  24. package/lib/cloudflare/redirect-rule.js.map +1 -1
  25. package/lib/cloudflare/tunnel-route.d.ts +172 -0
  26. package/lib/cloudflare/tunnel-route.d.ts.map +1 -0
  27. package/lib/cloudflare/tunnel-route.js +251 -0
  28. package/lib/cloudflare/tunnel-route.js.map +1 -0
  29. package/lib/cloudflare/warp-default-profile.d.ts +133 -0
  30. package/lib/cloudflare/warp-default-profile.d.ts.map +1 -0
  31. package/lib/cloudflare/warp-default-profile.js +138 -0
  32. package/lib/cloudflare/warp-default-profile.js.map +1 -0
  33. package/lib/cloudflare/warp-device-profile.d.ts +272 -0
  34. package/lib/cloudflare/warp-device-profile.d.ts.map +1 -0
  35. package/lib/cloudflare/warp-device-profile.js +291 -0
  36. package/lib/cloudflare/warp-device-profile.js.map +1 -0
  37. package/lib/scope.d.ts +1 -1
  38. package/lib/scope.d.ts.map +1 -1
  39. package/lib/scope.js +1 -1
  40. package/lib/scope.js.map +1 -1
  41. package/package.json +1 -1
  42. package/src/alchemy.ts +1 -1
  43. package/src/cloudflare/compatibility-date.gen.ts +1 -1
  44. package/src/cloudflare/hyperdrive.ts +27 -5
  45. package/src/cloudflare/index.ts +3 -0
  46. package/src/cloudflare/miniflare/miniflare-worker-proxy.ts +11 -0
  47. package/src/cloudflare/queue.ts +97 -56
  48. package/src/cloudflare/redirect-rule.ts +129 -150
  49. package/src/cloudflare/tunnel-route.ts +495 -0
  50. package/src/cloudflare/warp-default-profile.ts +320 -0
  51. package/src/cloudflare/warp-device-profile.ts +616 -0
  52. package/src/scope.ts +2 -2
  53. package/workers/tunnel-proxy.js +1 -1
@@ -1,5 +1,6 @@
1
1
  import { Resource } from "../resource.js";
2
2
  import { createCloudflareApi, } from "./api.js";
3
+ import { getZoneByDomain } from "./zone.js";
3
4
  /**
4
5
  * A Cloudflare Redirect Rule enables URL redirects and rewrites using Cloudflare's Rules engine.
5
6
  * Supports wildcard redirects, static redirects, and dynamic redirects with expressions.
@@ -50,15 +51,27 @@ import { createCloudflareApi, } from "./api.js";
50
51
  *
51
52
  * @see https://developers.cloudflare.com/rules/url-forwarding/single-redirects/
52
53
  */
53
- export const RedirectRule = Resource("cloudflare::RedirectRule", async function (_id, props) {
54
+ export const RedirectRule = Resource("cloudflare::RedirectRule", async function (id, props) {
54
55
  // Create Cloudflare API client
55
56
  const api = await createCloudflareApi(props);
57
+ const description = props.description ?? this.scope.createPhysicalName(id);
56
58
  // Get zone ID
57
- const zoneId = typeof props.zone === "string" ? props.zone : props.zone.id;
59
+ const zoneId = typeof props.zone === "string"
60
+ ? props.zone.includes(".")
61
+ ? (await getZoneByDomain(api, props.zone))?.id
62
+ : props.zone
63
+ : props.zone.id;
64
+ if (!zoneId) {
65
+ throw new Error(`Zone ${props.zone} not found`);
66
+ }
58
67
  if (this.phase === "delete") {
59
68
  if (this.output?.ruleId && this.output?.rulesetId) {
60
- // Let delete errors propagate instead of swallowing them
61
- await deleteRedirectRule(api, zoneId, this.output.rulesetId, this.output.ruleId);
69
+ await deleteRule({
70
+ api,
71
+ zoneId,
72
+ rulesetId: this.output.rulesetId,
73
+ ruleId: this.output.ruleId,
74
+ });
62
75
  }
63
76
  return this.destroy();
64
77
  }
@@ -84,8 +97,13 @@ export const RedirectRule = Resource("cloudflare::RedirectRule", async function
84
97
  if (this.phase === "update" &&
85
98
  this.output?.ruleId &&
86
99
  this.output?.rulesetId) {
87
- // Update existing rule
88
- const updatedRule = await updateRedirectRule(api, zoneId, this.output.rulesetId, this.output.ruleId, {
100
+ // Update existing rule using PATCH API
101
+ const updatedRule = await updateRule({
102
+ api,
103
+ zoneId,
104
+ rulesetId: this.output.rulesetId,
105
+ ruleId: this.output.ruleId,
106
+ description,
89
107
  expression: ruleExpression,
90
108
  targetUrl: props.targetUrl,
91
109
  statusCode,
@@ -95,6 +113,7 @@ export const RedirectRule = Resource("cloudflare::RedirectRule", async function
95
113
  ruleId: updatedRule.id,
96
114
  rulesetId: this.output.rulesetId,
97
115
  zoneId,
116
+ description,
98
117
  requestUrl: props.requestUrl,
99
118
  expression: props.expression,
100
119
  targetUrl: props.targetUrl,
@@ -106,8 +125,12 @@ export const RedirectRule = Resource("cloudflare::RedirectRule", async function
106
125
  }
107
126
  // Get or create the redirect ruleset for this zone
108
127
  const rulesetId = await getOrCreateRedirectRuleset(api, zoneId);
109
- // Create the rule
110
- const createdRule = await createRedirectRule(api, zoneId, rulesetId, {
128
+ // Create the rule using POST API
129
+ const createdRule = await createRule({
130
+ api,
131
+ zoneId,
132
+ rulesetId,
133
+ description,
111
134
  expression: ruleExpression,
112
135
  targetUrl: props.targetUrl,
113
136
  statusCode,
@@ -117,6 +140,7 @@ export const RedirectRule = Resource("cloudflare::RedirectRule", async function
117
140
  ruleId: createdRule.id,
118
141
  rulesetId,
119
142
  zoneId,
143
+ description,
120
144
  requestUrl: props.requestUrl,
121
145
  expression: props.expression,
122
146
  targetUrl: props.targetUrl,
@@ -165,86 +189,57 @@ async function getOrCreateRedirectRuleset(api, zoneId) {
165
189
  return await createRedirectRuleset(api, zoneId);
166
190
  }
167
191
  /**
168
- * Create a new redirect rule by updating the ruleset
192
+ * Build the redirect rule body for API requests
169
193
  */
170
- async function createRedirectRule(api, zoneId, rulesetId, ruleData) {
171
- // Get current ruleset
172
- const ruleset = await getRuleset(api, zoneId, rulesetId);
173
- if (!ruleset) {
174
- throw new Error(`Ruleset ${rulesetId} not found`);
175
- }
176
- // Create new rule object
177
- const newRule = {
194
+ function buildRuleBody(data) {
195
+ return {
178
196
  action: "redirect",
179
- expression: ruleData.expression,
197
+ description: data.description,
198
+ expression: data.expression,
199
+ enabled: true,
180
200
  action_parameters: {
181
201
  from_value: {
182
- status_code: ruleData.statusCode,
202
+ status_code: data.statusCode,
183
203
  target_url: {
184
- value: ruleData.targetUrl,
204
+ value: data.targetUrl,
185
205
  },
186
- preserve_query_string: ruleData.preserveQueryString,
206
+ preserve_query_string: data.preserveQueryString,
187
207
  },
188
208
  },
189
- enabled: true,
190
209
  };
191
- // Update ruleset with new rule
192
- const response = await api.put(`/zones/${zoneId}/rulesets/${rulesetId}`, {
193
- name: ruleset.name,
194
- description: ruleset.description,
195
- kind: ruleset.kind,
196
- phase: ruleset.phase,
197
- rules: [...(ruleset.rules ?? []), newRule],
198
- });
210
+ }
211
+ /**
212
+ * Create a new redirect rule using the individual rule API
213
+ * @see https://developers.cloudflare.com/api/resources/rulesets/subresources/rules/methods/create/
214
+ */
215
+ async function createRule(data) {
216
+ const { api, zoneId, rulesetId, ...ruleFields } = data;
217
+ const response = await api.post(`/zones/${zoneId}/rulesets/${rulesetId}/rules`, buildRuleBody(ruleFields));
199
218
  if (!response.ok) {
200
219
  const errorBody = await response.text();
201
- throw new Error(`Failed to create redirect rule: ${response.statusText}\nResponse: ${errorBody}`);
220
+ throw new Error(`Failed to create redirect rule: ${response.status} ${response.statusText}\nResponse: ${errorBody}`);
202
221
  }
203
222
  const result = (await response.json());
204
- // Return the last rule (the one we just added)
223
+ // The API returns the updated ruleset, find the newly created rule (last one)
205
224
  const createdRule = result.result.rules[result.result.rules.length - 1];
225
+ if (!createdRule) {
226
+ throw new Error("Created rule not found in response");
227
+ }
206
228
  return createdRule;
207
229
  }
208
230
  /**
209
- * Update an existing redirect rule by updating the ruleset
231
+ * Update an existing redirect rule using the individual rule API
232
+ * @see https://developers.cloudflare.com/api/resources/rulesets/subresources/rules/methods/edit/
210
233
  */
211
- async function updateRedirectRule(api, zoneId, rulesetId, ruleId, ruleData) {
212
- // Get current ruleset
213
- const ruleset = await getRuleset(api, zoneId, rulesetId);
214
- if (!ruleset) {
215
- throw new Error(`Ruleset ${rulesetId} not found`);
234
+ async function updateRule(data) {
235
+ const { api, zoneId, rulesetId, ruleId, ...ruleFields } = data;
236
+ if (!ruleId) {
237
+ throw new Error("ruleId is required for update");
216
238
  }
217
- // Find and update the rule
218
- const updatedRules = ruleset.rules.map((rule) => {
219
- if (rule.id === ruleId) {
220
- return {
221
- ...rule,
222
- action: "redirect",
223
- expression: ruleData.expression,
224
- action_parameters: {
225
- from_value: {
226
- status_code: ruleData.statusCode,
227
- target_url: {
228
- value: ruleData.targetUrl,
229
- },
230
- preserve_query_string: ruleData.preserveQueryString,
231
- },
232
- },
233
- enabled: true,
234
- };
235
- }
236
- return rule;
237
- });
238
- // Update ruleset with modified rules
239
- const response = await api.put(`/zones/${zoneId}/rulesets/${rulesetId}`, {
240
- name: ruleset.name,
241
- description: ruleset.description,
242
- kind: ruleset.kind,
243
- phase: ruleset.phase,
244
- rules: updatedRules,
245
- });
239
+ const response = await api.patch(`/zones/${zoneId}/rulesets/${rulesetId}/rules/${ruleId}`, buildRuleBody(ruleFields));
246
240
  if (!response.ok) {
247
- throw new Error(`Failed to update redirect rule: ${response.statusText}`);
241
+ const errorBody = await response.text();
242
+ throw new Error(`Failed to update redirect rule: ${response.status} ${response.statusText}\nResponse: ${errorBody}`);
248
243
  }
249
244
  const result = (await response.json());
250
245
  // Find and return the updated rule
@@ -255,15 +250,17 @@ async function updateRedirectRule(api, zoneId, rulesetId, ruleId, ruleData) {
255
250
  return updatedRule;
256
251
  }
257
252
  /**
258
- * Get a ruleset with its rules
253
+ * Delete a redirect rule using the individual rule API
254
+ * @see https://developers.cloudflare.com/api/resources/rulesets/subresources/rules/methods/delete/
259
255
  */
260
- async function getRuleset(api, zoneId, rulesetId) {
261
- const response = await api.get(`/zones/${zoneId}/rulesets/${rulesetId}`);
262
- if (!response.ok) {
263
- return null;
256
+ async function deleteRule(data) {
257
+ const { api, zoneId, rulesetId, ruleId } = data;
258
+ const response = await api.delete(`/zones/${zoneId}/rulesets/${rulesetId}/rules/${ruleId}`);
259
+ // 404 is acceptable - rule may already be deleted
260
+ if (!response.ok && response.status !== 404) {
261
+ const errorBody = await response.text();
262
+ throw new Error(`Failed to delete redirect rule: ${response.status} ${response.statusText}\nResponse: ${errorBody}`);
264
263
  }
265
- const result = (await response.json());
266
- return result.result;
267
264
  }
268
265
  /**
269
266
  * Find a specific rule in a ruleset
@@ -274,31 +271,9 @@ export async function findRuleInRuleset(api, zoneId, rulesetId, ruleId) {
274
271
  throw new Error(`Failed to get ruleset: ${response.status} ${response.statusText}`);
275
272
  }
276
273
  const rulesetData = (await response.json());
277
- const rule = rulesetData.result.rules.find((r) => r.id === ruleId);
274
+ const rule = rulesetData.result.rules?.find((r) => r.id === ruleId);
278
275
  return rule || null;
279
276
  }
280
- /**
281
- * Delete a redirect rule by updating the ruleset to exclude it
282
- */
283
- async function deleteRedirectRule(api, zoneId, rulesetId, ruleId) {
284
- const ruleset = await getRuleset(api, zoneId, rulesetId);
285
- if (!ruleset) {
286
- throw new Error(`Ruleset ${rulesetId} not found for deletion`);
287
- }
288
- // Filter out the rule to delete
289
- const updatedRules = ruleset.rules.filter((rule) => rule.id !== ruleId);
290
- // Update the ruleset with the filtered rules
291
- const response = await api.put(`/zones/${zoneId}/rulesets/${rulesetId}`, {
292
- name: ruleset.name,
293
- description: ruleset.description,
294
- kind: ruleset.kind,
295
- phase: ruleset.phase,
296
- rules: updatedRules,
297
- });
298
- if (!response.ok) {
299
- throw new Error(`Failed to delete redirect rule: ${response.statusText}`);
300
- }
301
- }
302
277
  /**
303
278
  * Convert a wildcard URL pattern to a Cloudflare Rules expression
304
279
  * Uses operators available on Free plans (no regex matching)
@@ -1 +1 @@
1
- {"version":3,"file":"redirect-rule.js","sourceRoot":"","sources":["../../src/cloudflare/redirect-rule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redirect-rule.js","sourceRoot":"","sources":["../../src/cloudflare/redirect-rule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,mBAAmB,GAGpB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,eAAe,EAAa,MAAM,WAAW,CAAC;AAyKvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAClC,0BAA0B,EAC1B,KAAK,WAEH,EAAU,EACV,KAAwB;IAExB,+BAA+B;IAC/B,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAE7C,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAE3E,cAAc;IACd,MAAM,MAAM,GACV,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC5B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YACxB,CAAC,CAAC,CAAC,MAAM,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE;YAC9C,CAAC,CAAC,KAAK,CAAC,IAAI;QACd,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;IACpB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,IAAI,YAAY,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;YAClD,MAAM,UAAU,CAAC;gBACf,GAAG;gBACH,MAAM;gBACN,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAChC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;aAC3B,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,iBAAiB;IACjB,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CACb,2HAA2H,CAC5H,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,GAAG,CAAC;IAC3C,MAAM,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,IAAI,IAAI,CAAC;IAE9D,4BAA4B;IAC5B,IAAI,cAAsB,CAAC;IAC3B,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,gDAAgD;QAChD,cAAc,GAAG,8BAA8B,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACpE,CAAC;SAAM,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QAC5B,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,uCAAuC;QACvC,cAAc,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,IACE,IAAI,CAAC,KAAK,KAAK,QAAQ;QACvB,IAAI,CAAC,MAAM,EAAE,MAAM;QACnB,IAAI,CAAC,MAAM,EAAE,SAAS,EACtB,CAAC;QACD,uCAAuC;QACvC,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC;YACnC,GAAG;YACH,MAAM;YACN,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAChC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,WAAW;YACX,UAAU,EAAE,cAAc;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU;YACV,mBAAmB;SACpB,CAAC,CAAC;QAEH,OAAO;YACL,MAAM,EAAE,WAAW,CAAC,EAAE;YACtB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAChC,MAAM;YACN,WAAW;YACX,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU;YACV,mBAAmB;YACnB,OAAO,EAAE,WAAW,CAAC,OAAO,IAAI,IAAI;YACpC,WAAW,EAAE,WAAW,CAAC,YAAY;SACtC,CAAC;IACJ,CAAC;IAED,mDAAmD;IACnD,MAAM,SAAS,GAAG,MAAM,0BAA0B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAEhE,iCAAiC;IACjC,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC;QACnC,GAAG;QACH,MAAM;QACN,SAAS;QACT,WAAW;QACX,UAAU,EAAE,cAAc;QAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,UAAU;QACV,mBAAmB;KACpB,CAAC,CAAC;IAEH,OAAO;QACL,MAAM,EAAE,WAAW,CAAC,EAAE;QACtB,SAAS;QACT,MAAM;QACN,WAAW;QACX,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,UAAU;QACV,mBAAmB;QACnB,OAAO,EAAE,WAAW,CAAC,OAAO,IAAI,IAAI;QACpC,WAAW,EAAE,WAAW,CAAC,YAAY;KACtC,CAAC;AACJ,CAAC,CACF,CAAC;AAEF;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAC/B,GAAkB,EAClB,MAAc;IAEd,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,UAAU,MAAM,WAAW,CAAC,CAAC;IAE5D,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAEpC,CAAC;IACF,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CACxC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,+BAA+B,CAC/D,CAAC;IAEF,OAAO,eAAe,EAAE,EAAE,IAAI,IAAI,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,qBAAqB,CAClC,GAAkB,EAClB,MAAc;IAEd,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,MAAM,WAAW,EAAE;QAC3D,IAAI,EAAE,6BAA6B;QACnC,WAAW,EAAE,6BAA6B;QAC1C,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,+BAA+B;KACvC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,sCAAsC,QAAQ,CAAC,UAAU,EAAE,CAC5D,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GACV,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA0C,CAAC;IACnE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,0BAA0B,CACvC,GAAkB,EAClB,MAAc;IAEd,MAAM,iBAAiB,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAChE,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,OAAO,MAAM,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CACpB,IAA+D;IAE/D,OAAO;QACL,MAAM,EAAE,UAAmB;QAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,OAAO,EAAE,IAAI;QACb,iBAAiB,EAAE;YACjB,UAAU,EAAE;gBACV,WAAW,EAAE,IAAI,CAAC,UAAU;gBAC5B,UAAU,EAAE;oBACV,KAAK,EAAE,IAAI,CAAC,SAAS;iBACtB;gBACD,qBAAqB,EAAE,IAAI,CAAC,mBAAmB;aAChD;SACF;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,UAAU,CACvB,IAA8B;IAE9B,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC;IAEvD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAC7B,UAAU,MAAM,aAAa,SAAS,QAAQ,EAC9C,aAAa,CAAC,UAAU,CAAC,CAC1B,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,mCAAmC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,eAAe,SAAS,EAAE,CACpG,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GACV,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA0C,CAAC;IACnE,8EAA8E;IAC9E,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACxE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,UAAU,CAAC,IAAc;IACtC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC;IAE/D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,CAC9B,UAAU,MAAM,aAAa,SAAS,UAAU,MAAM,EAAE,EACxD,aAAa,CAAC,UAAU,CAAC,CAC1B,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,mCAAmC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,eAAe,SAAS,EAAE,CACpG,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GACV,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA0C,CAAC;IACnE,mCAAmC;IACnC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IAC3E,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,gBAAgB,MAAM,wBAAwB,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,UAAU,CAAC,IAKzB;IACC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAEhD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,MAAM,CAC/B,UAAU,MAAM,aAAa,SAAS,UAAU,MAAM,EAAE,CACzD,CAAC;IAEF,kDAAkD;IAClD,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,mCAAmC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,eAAe,SAAS,EAAE,CACpG,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAkB,EAClB,MAAc,EACd,SAAiB,EACjB,MAAc;IAEd,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,UAAU,MAAM,aAAa,SAAS,EAAE,CAAC,CAAC;IAEzE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,0BAA0B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACnE,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GACf,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA0C,CAAC;IACnE,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IAEpE,OAAO,IAAI,IAAI,IAAI,CAAC;AACtB,CAAC;AAED;;;GAGG;AACH,SAAS,8BAA8B,CAAC,WAAmB;IACzD,sCAAsC;IACtC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IAE9B,IAAI,UAAU,GAAG,EAAE,CAAC;IAEpB,4BAA4B;IAC5B,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,oEAAoE;QACpE,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,sDAAsD;YACtD,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;YACrD,UAAU,IAAI,wBAAwB,MAAM,GAAG,CAAC;QAClD,CAAC;aAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,oDAAoD;YACpD,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe;YAC1E,UAAU,IAAI,0BAA0B,MAAM,GAAG,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,uDAAuD;YACvD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,UAAU,IAAI,0BAA0B,KAAK,CAAC,CAAC,CAAC,8BAA8B,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;YAC5F,CAAC;iBAAM,CAAC;gBACN,mDAAmD;gBACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACtE,UAAU,IAAI,uBAAuB,UAAU,GAAG,CAAC;YACrD,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,UAAU,IAAI,iBAAiB,QAAQ,GAAG,CAAC;IAC7C,CAAC;IAED,4BAA4B;IAC5B,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,oCAAoC;YACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe;YAC1E,UAAU,IAAI,2CAA2C,MAAM,GAAG,CAAC;QACrE,CAAC;aAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,8BAA8B;YAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;YACrD,UAAU,IAAI,yCAAyC,MAAM,GAAG,CAAC;QACnE,CAAC;aAAM,CAAC;YACN,wCAAwC;YACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/C,UAAU,IAAI,2CAA2C,KAAK,CAAC,CAAC,CAAC,0CAA0C,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;YACzH,CAAC;iBAAM,CAAC;gBACN,iDAAiD;gBACjD,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;gBACpE,IAAI,eAAe,EAAE,CAAC;oBACpB,UAAU,IAAI,wCAAwC,eAAe,GAAG,CAAC;gBAC3E,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;QAC5B,UAAU,IAAI,kCAAkC,QAAQ,GAAG,CAAC;IAC9D,CAAC;IAED,kBAAkB;IAClB,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC9B,UAAU,IAAI,UAAU,CAAC;IAC3B,CAAC;SAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACpC,UAAU,IAAI,cAAc,CAAC;IAC/B,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,172 @@
1
+ import type { Context } from "../context.ts";
2
+ import { type CloudflareApi, type CloudflareApiOptions } from "./api.ts";
3
+ import type { Tunnel } from "./tunnel.ts";
4
+ /**
5
+ * Route data as returned by Cloudflare API
6
+ * @internal
7
+ */
8
+ interface CloudflareRoute {
9
+ id: string;
10
+ network: string;
11
+ tunnel_id: string;
12
+ comment?: string;
13
+ virtual_network_id?: string;
14
+ created_at: string;
15
+ deleted_at: string | null;
16
+ }
17
+ /**
18
+ * Properties for creating or updating a Cloudflare Tunnel Route
19
+ */
20
+ export interface TunnelRouteProps extends CloudflareApiOptions {
21
+ /**
22
+ * The private IPv4 or IPv6 range connected by the route, in CIDR notation
23
+ * (e.g., "172.16.0.0/16" or "2001:db8::/32")
24
+ *
25
+ * Note: The network CIDR is immutable and cannot be changed after creation.
26
+ * When updating a route, any network change will trigger a replacement.
27
+ */
28
+ network: string;
29
+ /**
30
+ * The tunnel to route traffic through
31
+ * Can be a Tunnel resource or a tunnel ID (UUID)
32
+ */
33
+ tunnel: string | Tunnel;
34
+ /**
35
+ * Optional remark describing the route
36
+ * @maxLength 100
37
+ */
38
+ comment?: string;
39
+ /**
40
+ * UUID of the virtual network
41
+ * If not provided, the route will be added to the default virtual network
42
+ */
43
+ virtualNetworkId?: string;
44
+ /**
45
+ * Whether to adopt an existing route with the same network and tunnel if it exists
46
+ * If true and a route with the same network and tunnel exists, it will be adopted rather than creating a new one
47
+ *
48
+ * @default false
49
+ */
50
+ adopt?: boolean;
51
+ /**
52
+ * Whether to delete the route when removed from Alchemy
53
+ * If set to false, the route will remain but the resource will be removed from state
54
+ *
55
+ * @default true
56
+ */
57
+ delete?: boolean;
58
+ /**
59
+ * Internal route ID for lifecycle management
60
+ * @internal
61
+ */
62
+ routeId?: string;
63
+ }
64
+ export declare function isTunnelRoute(resource: any): resource is TunnelRoute;
65
+ /**
66
+ * Output returned after TunnelRoute creation/update
67
+ */
68
+ export interface TunnelRoute extends Omit<TunnelRouteProps, "delete" | "tunnel" | "routeId"> {
69
+ /**
70
+ * The ID of the route
71
+ */
72
+ id: string;
73
+ /**
74
+ * The private IPv4 or IPv6 range connected by the route, in CIDR notation
75
+ */
76
+ network: string;
77
+ /**
78
+ * The UUID of the tunnel this route uses
79
+ */
80
+ tunnelId: string;
81
+ /**
82
+ * Optional remark describing the route
83
+ */
84
+ comment?: string;
85
+ /**
86
+ * UUID of the virtual network
87
+ */
88
+ virtualNetworkId?: string;
89
+ /**
90
+ * Time at which the route was created
91
+ */
92
+ createdAt: string;
93
+ /**
94
+ * Time at which the route was deleted (null if active)
95
+ */
96
+ deletedAt: string | null;
97
+ /**
98
+ * Resource type identifier for binding
99
+ * @internal
100
+ */
101
+ type: "cloudflare::TunnelRoute";
102
+ }
103
+ /**
104
+ * Creates and manages a Cloudflare Tunnel Route, which routes private network traffic
105
+ * through a Cloudflare Tunnel. This resource handles the route lifecycle (create, update, delete).
106
+ *
107
+ * @remarks
108
+ * Tunnel Routes enable private network access by routing CIDR ranges through Cloudflare Tunnels.
109
+ * This is commonly used for Zero Trust network access scenarios where you need to connect
110
+ * private networks to Cloudflare's edge.
111
+ *
112
+ * @see https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/private-net/
113
+ * @see https://developers.cloudflare.com/api/operations/zero-trust-networks-routes-create-a-tunnel-route
114
+ *
115
+ * @example
116
+ * // Create a basic tunnel route for a private network
117
+ * const tunnel = await Tunnel("my-tunnel", {
118
+ * name: "my-tunnel"
119
+ * });
120
+ *
121
+ * const route = await TunnelRoute("private-network", {
122
+ * network: "172.16.0.0/16",
123
+ * tunnel: tunnel
124
+ * });
125
+ *
126
+ * @example
127
+ * // Create a route with a comment and virtual network
128
+ * const route = await TunnelRoute("vpc-route", {
129
+ * network: "10.0.0.0/8",
130
+ * tunnel: "f70ff985-a4ef-4643-bbbc-4a0ed4fc8415",
131
+ * comment: "Main VPC network route",
132
+ * virtualNetworkId: "f70ff985-a4ef-4643-bbbc-4a0ed4fc8415"
133
+ * });
134
+ *
135
+ * @example
136
+ * // Adopt an existing route if it already exists
137
+ * const route = await TunnelRoute("existing-route", {
138
+ * network: "192.168.1.0/24",
139
+ * tunnel: tunnel,
140
+ * adopt: true,
141
+ * comment: "Updated comment"
142
+ * });
143
+ *
144
+ * @example
145
+ * // Create a route without deleting it when removed from Alchemy
146
+ * const route = await TunnelRoute("persistent-route", {
147
+ * network: "10.1.0.0/16",
148
+ * tunnel: tunnel,
149
+ * delete: false
150
+ * });
151
+ */
152
+ export declare const TunnelRoute: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | ((this: Context<TunnelRoute>, id: string, props: TunnelRouteProps) => Promise<TunnelRoute>);
153
+ /**
154
+ * Get tunnel route details
155
+ * @internal
156
+ */
157
+ export declare function getTunnelRoute(api: CloudflareApi, routeId: string): Promise<CloudflareRoute>;
158
+ /**
159
+ * List all tunnel routes with pagination support
160
+ * @internal
161
+ */
162
+ export declare function listTunnelRoutes(api: CloudflareApi, options?: {
163
+ /** Maximum number of routes to return */
164
+ limit?: number;
165
+ }): Promise<CloudflareRoute[]>;
166
+ /**
167
+ * Find a route by network and tunnel ID
168
+ * @internal
169
+ */
170
+ export declare function findRouteByNetworkAndTunnel(api: CloudflareApi, network: string, tunnelId: string): Promise<CloudflareRoute | null>;
171
+ export {};
172
+ //# sourceMappingURL=tunnel-route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tunnel-route.d.ts","sourceRoot":"","sources":["../../src/cloudflare/tunnel-route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAQ7C,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,oBAAoB,EAC1B,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;GAGG;AACH,UAAU,eAAe;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,oBAAoB;IAC5D;;;;;;OAMG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,GAAG,GAAG,QAAQ,IAAI,WAAW,CAEpE;AAED;;GAEG;AACH,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC/D;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB;;;OAGG;IACH,IAAI,EAAE,yBAAyB,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,eAAO,MAAM,WAAW,yFAGd,OAAO,CAAC,WAAW,CAAC,MACtB,MAAM,SACH,gBAAgB,KACtB,OAAO,CAAC,WAAW,CAAC,CAuHxB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,CAAC,CAY1B;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,aAAa,EAClB,OAAO,CAAC,EAAE;IACR,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACA,OAAO,CAAC,eAAe,EAAE,CAAC,CAuC5B;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CASjC"}