alchemy 0.57.1 → 0.58.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.
- package/bin/alchemy.js +1 -1
- package/lib/apply.js +3 -3
- package/lib/apply.js.map +1 -1
- package/lib/cloudflare/api-error.js +1 -1
- package/lib/cloudflare/api-error.js.map +1 -1
- package/lib/cloudflare/api-response.d.ts +19 -0
- package/lib/cloudflare/api-response.d.ts.map +1 -1
- package/lib/cloudflare/api-response.js.map +1 -1
- package/lib/cloudflare/compatibility-date.gen.d.ts +1 -1
- package/lib/cloudflare/compatibility-date.gen.js +1 -1
- package/lib/cloudflare/d1-import.d.ts.map +1 -1
- package/lib/cloudflare/d1-import.js.map +1 -1
- package/lib/cloudflare/index.d.ts +1 -0
- package/lib/cloudflare/index.d.ts.map +1 -1
- package/lib/cloudflare/index.js +1 -0
- package/lib/cloudflare/index.js.map +1 -1
- package/lib/cloudflare/tunnel.d.ts +448 -0
- package/lib/cloudflare/tunnel.d.ts.map +1 -0
- package/lib/cloudflare/tunnel.js +467 -0
- package/lib/cloudflare/tunnel.js.map +1 -0
- package/lib/cloudflare/worker-ref.d.ts +1 -0
- package/lib/cloudflare/worker-ref.d.ts.map +1 -1
- package/lib/cloudflare/worker-ref.js.map +1 -1
- package/lib/cloudflare/worker-stub.d.ts +1 -0
- package/lib/cloudflare/worker-stub.d.ts.map +1 -1
- package/lib/cloudflare/worker-stub.js.map +1 -1
- package/lib/cloudflare/worker.d.ts +1 -0
- package/lib/cloudflare/worker.d.ts.map +1 -1
- package/lib/cloudflare/worker.js.map +1 -1
- package/lib/destroy.d.ts.map +1 -1
- package/lib/destroy.js +4 -8
- package/lib/destroy.js.map +1 -1
- package/lib/secret.d.ts +9 -0
- package/lib/secret.d.ts.map +1 -1
- package/lib/secret.js +13 -0
- package/lib/secret.js.map +1 -1
- package/package.json +1 -1
- package/src/apply.ts +5 -6
- package/src/cloudflare/api-error.ts +2 -2
- package/src/cloudflare/api-response.ts +22 -0
- package/src/cloudflare/compatibility-date.gen.ts +1 -1
- package/src/cloudflare/d1-import.ts +1 -14
- package/src/cloudflare/index.ts +1 -0
- package/src/cloudflare/tunnel.ts +911 -0
- package/src/cloudflare/worker-ref.ts +1 -0
- package/src/cloudflare/worker-stub.ts +1 -0
- package/src/cloudflare/worker.ts +1 -0
- package/src/destroy.ts +4 -8
- package/src/secret.ts +15 -0
|
@@ -0,0 +1,467 @@
|
|
|
1
|
+
import { alchemy } from "../alchemy.js";
|
|
2
|
+
import { Resource, ResourceKind } from "../resource.js";
|
|
3
|
+
import { logger } from "../util/logger.js";
|
|
4
|
+
import { handleApiError } from "./api-error.js";
|
|
5
|
+
import { createCloudflareApi, } from "./api.js";
|
|
6
|
+
import { DnsRecords } from "./dns-records.js";
|
|
7
|
+
import { findZoneForHostname } from "./zone.js";
|
|
8
|
+
export function isTunnel(resource) {
|
|
9
|
+
return resource[ResourceKind] === "cloudflare::Tunnel";
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Creates and manages a Cloudflare Tunnel, which provides a secure connection between
|
|
13
|
+
* your origin server and Cloudflare's edge. This resource handles the tunnel lifecycle
|
|
14
|
+
* (create, update, delete) and configuration.
|
|
15
|
+
*
|
|
16
|
+
* @remarks
|
|
17
|
+
* After creating a tunnel, use the returned credentials and token to run the
|
|
18
|
+
* cloudflared connector on your origin server.
|
|
19
|
+
*
|
|
20
|
+
* When hostnames are specified in ingress rules, this resource automatically creates
|
|
21
|
+
* the required DNS CNAME records pointing to <tunnel-id>.cfargotunnel.com, following
|
|
22
|
+
* the Cloudflare API documentation for connecting applications (step 3a).
|
|
23
|
+
*
|
|
24
|
+
* @see https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/
|
|
25
|
+
* @see https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/get-started/create-remote-tunnel-api/
|
|
26
|
+
* @see https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/configure-tunnels/
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* // Create a basic tunnel
|
|
30
|
+
* const tunnel = await Tunnel("my-app", {
|
|
31
|
+
* name: "my-app-tunnel"
|
|
32
|
+
* });
|
|
33
|
+
*
|
|
34
|
+
* // Run cloudflared with:
|
|
35
|
+
* // cloudflared tunnel run --token <tunnel.token.unencrypted>
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* // Create a tunnel with ingress configuration for a web app
|
|
39
|
+
* // DNS records are automatically created for each hostname
|
|
40
|
+
* const webTunnel = await Tunnel("web-app", {
|
|
41
|
+
* name: "web-app-tunnel",
|
|
42
|
+
* ingress: [
|
|
43
|
+
* {
|
|
44
|
+
* hostname: "app.example.com",
|
|
45
|
+
* service: "http://localhost:3000"
|
|
46
|
+
* },
|
|
47
|
+
* {
|
|
48
|
+
* service: "http_status:404" // catch-all rule
|
|
49
|
+
* }
|
|
50
|
+
* ]
|
|
51
|
+
* });
|
|
52
|
+
* // A CNAME record for app.example.com → webTunnel.tunnelId.cfargotunnel.com
|
|
53
|
+
* // is automatically created in the appropriate zone
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* // Create a tunnel with multiple services and origin configuration
|
|
57
|
+
* const apiTunnel = await Tunnel("api", {
|
|
58
|
+
* name: "api-tunnel",
|
|
59
|
+
* ingress: [
|
|
60
|
+
* {
|
|
61
|
+
* hostname: "api.example.com",
|
|
62
|
+
* path: "/v1/*",
|
|
63
|
+
* service: "http://localhost:8080",
|
|
64
|
+
* originRequest: {
|
|
65
|
+
* httpHostHeader: "api.internal",
|
|
66
|
+
* connectTimeout: 30
|
|
67
|
+
* }
|
|
68
|
+
* },
|
|
69
|
+
* {
|
|
70
|
+
* hostname: "api.example.com",
|
|
71
|
+
* path: "/v2/*",
|
|
72
|
+
* service: "http://localhost:8081"
|
|
73
|
+
* },
|
|
74
|
+
* {
|
|
75
|
+
* service: "http_status:404"
|
|
76
|
+
* }
|
|
77
|
+
* ]
|
|
78
|
+
* });
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* // Create a tunnel for private network access with WARP
|
|
82
|
+
* const privateTunnel = await Tunnel("private-network", {
|
|
83
|
+
* name: "private-network-tunnel",
|
|
84
|
+
* warpRouting: {
|
|
85
|
+
* enabled: true
|
|
86
|
+
* }
|
|
87
|
+
* });
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* // Create a tunnel with origin request configuration
|
|
91
|
+
* const secureTunnel = await Tunnel("secure", {
|
|
92
|
+
* name: "secure-tunnel",
|
|
93
|
+
* originRequest: {
|
|
94
|
+
* noTLSVerify: false,
|
|
95
|
+
* connectTimeout: 30,
|
|
96
|
+
* httpHostHeader: "internal.service"
|
|
97
|
+
* },
|
|
98
|
+
* ingress: [
|
|
99
|
+
* {
|
|
100
|
+
* hostname: "secure.example.com",
|
|
101
|
+
* service: "https://localhost:8443"
|
|
102
|
+
* },
|
|
103
|
+
* {
|
|
104
|
+
* service: "http_status:404"
|
|
105
|
+
* }
|
|
106
|
+
* ]
|
|
107
|
+
* });
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* // Adopt an existing tunnel if it already exists
|
|
111
|
+
* const existingTunnel = await Tunnel("existing", {
|
|
112
|
+
* name: "existing-tunnel",
|
|
113
|
+
* adopt: true,
|
|
114
|
+
* ingress: [
|
|
115
|
+
* {
|
|
116
|
+
* hostname: "updated.example.com",
|
|
117
|
+
* service: "http://localhost:5000"
|
|
118
|
+
* },
|
|
119
|
+
* {
|
|
120
|
+
* service: "http_status:404"
|
|
121
|
+
* }
|
|
122
|
+
* ]
|
|
123
|
+
* });
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* // Tunnel with automatic DNS record creation
|
|
127
|
+
* // The Tunnel resource automatically creates DNS records for hostnames in ingress rules
|
|
128
|
+
* const appTunnel = await Tunnel("app", {
|
|
129
|
+
* name: "app-tunnel",
|
|
130
|
+
* ingress: [
|
|
131
|
+
* {
|
|
132
|
+
* hostname: "app.example.com",
|
|
133
|
+
* service: "http://localhost:3000"
|
|
134
|
+
* },
|
|
135
|
+
* {
|
|
136
|
+
* hostname: "api.example.com",
|
|
137
|
+
* service: "http://localhost:8080"
|
|
138
|
+
* },
|
|
139
|
+
* {
|
|
140
|
+
* service: "http_status:404"
|
|
141
|
+
* }
|
|
142
|
+
* ]
|
|
143
|
+
* });
|
|
144
|
+
* // DNS CNAME records are automatically created:
|
|
145
|
+
* // - app.example.com → {tunnelId}.cfargotunnel.com
|
|
146
|
+
* // - api.example.com → {tunnelId}.cfargotunnel.com
|
|
147
|
+
*
|
|
148
|
+
* // Run the tunnel:
|
|
149
|
+
* // cloudflared tunnel run --token <appTunnel.token.unencrypted>
|
|
150
|
+
*
|
|
151
|
+
* @example
|
|
152
|
+
* // For advanced DNS control, you can still manually manage DNS records
|
|
153
|
+
* // by omitting hostnames from ingress rules:
|
|
154
|
+
* const tunnel = await Tunnel("manual-dns", {
|
|
155
|
+
* name: "manual-dns-tunnel",
|
|
156
|
+
* ingress: [
|
|
157
|
+
* {
|
|
158
|
+
* service: "http://localhost:3000"
|
|
159
|
+
* },
|
|
160
|
+
* {
|
|
161
|
+
* service: "http_status:404"
|
|
162
|
+
* }
|
|
163
|
+
* ]
|
|
164
|
+
* });
|
|
165
|
+
* // Then create DNS records separately with custom configuration
|
|
166
|
+
*/
|
|
167
|
+
export const Tunnel = Resource("cloudflare::Tunnel", async function (id, props) {
|
|
168
|
+
// Create Cloudflare API client with automatic account discovery
|
|
169
|
+
const api = await createCloudflareApi(props);
|
|
170
|
+
const name = props.name ?? id;
|
|
171
|
+
if (this.phase === "delete") {
|
|
172
|
+
// For delete operations, check if the tunnel ID exists in the output
|
|
173
|
+
const tunnelId = this.output?.tunnelId;
|
|
174
|
+
if (tunnelId && props.delete !== false) {
|
|
175
|
+
await deleteTunnel(api, tunnelId);
|
|
176
|
+
}
|
|
177
|
+
// Return destroyed state
|
|
178
|
+
return this.destroy();
|
|
179
|
+
}
|
|
180
|
+
// For create or update operations
|
|
181
|
+
let tunnelData;
|
|
182
|
+
if (this.phase === "update" && this.output?.tunnelId) {
|
|
183
|
+
// Get existing tunnel data
|
|
184
|
+
tunnelData = await getTunnel(api, this.output.tunnelId);
|
|
185
|
+
// Check if name is being changed - tunnel names are immutable
|
|
186
|
+
if (props.name && props.name !== tunnelData.name) {
|
|
187
|
+
this.replace(true);
|
|
188
|
+
}
|
|
189
|
+
// Update configuration if provided
|
|
190
|
+
if ((props.ingress || props.warpRouting || props.originRequest) &&
|
|
191
|
+
props.configSrc !== "local") {
|
|
192
|
+
const config = {
|
|
193
|
+
ingress: props.ingress,
|
|
194
|
+
warpRouting: props.warpRouting,
|
|
195
|
+
originRequest: props.originRequest,
|
|
196
|
+
};
|
|
197
|
+
await updateTunnelConfiguration(api, this.output.tunnelId, config);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
// Create new tunnel
|
|
202
|
+
try {
|
|
203
|
+
tunnelData = await createTunnel(api, {
|
|
204
|
+
name,
|
|
205
|
+
configSrc: props.configSrc,
|
|
206
|
+
tunnelSecret: props.tunnelSecret,
|
|
207
|
+
metadata: props.metadata,
|
|
208
|
+
});
|
|
209
|
+
// Configure tunnel if config is provided
|
|
210
|
+
if ((props.ingress || props.warpRouting || props.originRequest) &&
|
|
211
|
+
props.configSrc !== "local") {
|
|
212
|
+
await updateTunnelConfiguration(api, tunnelData.id, {
|
|
213
|
+
ingress: props.ingress,
|
|
214
|
+
warpRouting: props.warpRouting,
|
|
215
|
+
originRequest: props.originRequest,
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
catch (error) {
|
|
220
|
+
// Check if this is a "tunnel already exists" error and adopt is enabled
|
|
221
|
+
if (props.adopt &&
|
|
222
|
+
error instanceof Error &&
|
|
223
|
+
(error.message.includes("already have a tunnel with this name") ||
|
|
224
|
+
error.message.includes("already exists"))) {
|
|
225
|
+
console.log(error);
|
|
226
|
+
logger.log(`Tunnel '${name}' already exists, adopting it`);
|
|
227
|
+
// Find the existing tunnel by name
|
|
228
|
+
const existingTunnel = await findTunnelByName(api, name);
|
|
229
|
+
if (!existingTunnel) {
|
|
230
|
+
throw new Error(`Failed to find existing tunnel '${name}' for adoption`);
|
|
231
|
+
}
|
|
232
|
+
tunnelData = existingTunnel;
|
|
233
|
+
// Update configuration if provided
|
|
234
|
+
if ((props.ingress || props.warpRouting || props.originRequest) &&
|
|
235
|
+
props.configSrc !== "local") {
|
|
236
|
+
const config = {
|
|
237
|
+
ingress: props.ingress,
|
|
238
|
+
warpRouting: props.warpRouting,
|
|
239
|
+
originRequest: props.originRequest,
|
|
240
|
+
};
|
|
241
|
+
await updateTunnelConfiguration(api, existingTunnel.id, config);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
// Re-throw the error if adopt is false or it's not an "already exists" error
|
|
246
|
+
throw error;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
// Handle DNS records for ingress hostnames
|
|
251
|
+
let dnsRecords = this.output?.dnsRecords || {};
|
|
252
|
+
// Extract hostnames from ingress rules
|
|
253
|
+
const hostnames = new Set();
|
|
254
|
+
if (props.ingress) {
|
|
255
|
+
for (const rule of props.ingress) {
|
|
256
|
+
if (rule.hostname && !rule.hostname.includes("*")) {
|
|
257
|
+
// Skip wildcard hostnames as they need special handling
|
|
258
|
+
hostnames.add(rule.hostname);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
// Create or update DNS records for each hostname
|
|
263
|
+
if (hostnames.size > 0) {
|
|
264
|
+
// Group hostnames by zone
|
|
265
|
+
const hostnamesByZone = new Map();
|
|
266
|
+
for (const hostname of hostnames) {
|
|
267
|
+
const { zoneId } = await findZoneForHostname(api, hostname);
|
|
268
|
+
if (!hostnamesByZone.has(zoneId)) {
|
|
269
|
+
hostnamesByZone.set(zoneId, { zoneId, hostnames: [] });
|
|
270
|
+
}
|
|
271
|
+
hostnamesByZone.get(zoneId).hostnames.push(hostname);
|
|
272
|
+
}
|
|
273
|
+
// Create DNS records for each zone in parallel
|
|
274
|
+
const dnsPromises = Array.from(hostnamesByZone.entries()).map(async ([zoneId, { hostnames: zoneHostnames }]) => {
|
|
275
|
+
const dnsResourceId = `${id}-dns-${zoneId}`;
|
|
276
|
+
const dnsResource = await DnsRecords(dnsResourceId, {
|
|
277
|
+
zoneId,
|
|
278
|
+
records: zoneHostnames.map((hostname) => ({
|
|
279
|
+
name: hostname,
|
|
280
|
+
type: "CNAME",
|
|
281
|
+
content: `${tunnelData.id}.cfargotunnel.com`,
|
|
282
|
+
proxied: true,
|
|
283
|
+
comment: `Cloudflare Tunnel: ${tunnelData.name}`,
|
|
284
|
+
})),
|
|
285
|
+
});
|
|
286
|
+
// Return records for mapping storage
|
|
287
|
+
return dnsResource.records;
|
|
288
|
+
});
|
|
289
|
+
const allDnsRecords = await Promise.all(dnsPromises);
|
|
290
|
+
// Store DNS record mappings
|
|
291
|
+
for (const records of allDnsRecords) {
|
|
292
|
+
for (const record of records) {
|
|
293
|
+
dnsRecords[record.name] = record.id;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
// Clean up DNS records that are no longer needed
|
|
298
|
+
const currentHostnames = Array.from(hostnames);
|
|
299
|
+
for (const hostname of Object.keys(dnsRecords)) {
|
|
300
|
+
if (!currentHostnames.includes(hostname)) {
|
|
301
|
+
delete dnsRecords[hostname];
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
// Transform API response to our interface
|
|
305
|
+
return this({
|
|
306
|
+
tunnelId: tunnelData.id,
|
|
307
|
+
accountTag: tunnelData.account_tag,
|
|
308
|
+
name: tunnelData.name,
|
|
309
|
+
createdAt: tunnelData.created_at,
|
|
310
|
+
deletedAt: tunnelData.deleted_at,
|
|
311
|
+
credentials: tunnelData.credentials_file
|
|
312
|
+
? {
|
|
313
|
+
accountTag: tunnelData.credentials_file.AccountTag,
|
|
314
|
+
tunnelId: tunnelData.credentials_file.TunnelID,
|
|
315
|
+
tunnelName: tunnelData.credentials_file.TunnelName,
|
|
316
|
+
tunnelSecret: alchemy.secret(tunnelData.credentials_file.TunnelSecret),
|
|
317
|
+
}
|
|
318
|
+
: this.output?.credentials || {
|
|
319
|
+
accountTag: tunnelData.account_tag,
|
|
320
|
+
tunnelId: tunnelData.id,
|
|
321
|
+
tunnelName: tunnelData.name,
|
|
322
|
+
tunnelSecret: alchemy.secret(""),
|
|
323
|
+
},
|
|
324
|
+
token: tunnelData.token
|
|
325
|
+
? alchemy.secret(tunnelData.token)
|
|
326
|
+
: this.output?.token || alchemy.secret(""),
|
|
327
|
+
metadata: props.metadata,
|
|
328
|
+
ingress: props.ingress,
|
|
329
|
+
warpRouting: props.warpRouting,
|
|
330
|
+
originRequest: props.originRequest,
|
|
331
|
+
configSrc: props.configSrc,
|
|
332
|
+
dnsRecords: Object.keys(dnsRecords).length > 0 ? dnsRecords : undefined,
|
|
333
|
+
});
|
|
334
|
+
});
|
|
335
|
+
/**
|
|
336
|
+
* Get tunnel details
|
|
337
|
+
* @internal
|
|
338
|
+
*/
|
|
339
|
+
export async function getTunnel(api, tunnelId) {
|
|
340
|
+
const response = await api.get(`/accounts/${api.accountId}/cfd_tunnel/${tunnelId}`);
|
|
341
|
+
if (!response.ok) {
|
|
342
|
+
await handleApiError(response, "get", "tunnel", tunnelId);
|
|
343
|
+
}
|
|
344
|
+
const data = (await response.json());
|
|
345
|
+
return data.result;
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* Get tunnel configuration
|
|
349
|
+
* @internal
|
|
350
|
+
*/
|
|
351
|
+
export async function getTunnelConfiguration(api, tunnelId) {
|
|
352
|
+
const response = await api.get(`/accounts/${api.accountId}/cfd_tunnel/${tunnelId}/configurations`);
|
|
353
|
+
if (!response.ok) {
|
|
354
|
+
await handleApiError(response, "get configuration", "tunnel", tunnelId);
|
|
355
|
+
}
|
|
356
|
+
const data = (await response.json());
|
|
357
|
+
return data.result.config;
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* Delete a tunnel
|
|
361
|
+
* @internal
|
|
362
|
+
*/
|
|
363
|
+
async function deleteTunnel(api, tunnelId) {
|
|
364
|
+
const response = await api.delete(`/accounts/${api.accountId}/cfd_tunnel/${tunnelId}`);
|
|
365
|
+
if (!response.ok && response.status !== 404) {
|
|
366
|
+
await handleApiError(response, "delete", "tunnel", tunnelId);
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Create a new tunnel
|
|
371
|
+
* @internal
|
|
372
|
+
*/
|
|
373
|
+
async function createTunnel(api, props) {
|
|
374
|
+
const payload = {
|
|
375
|
+
name: props.name,
|
|
376
|
+
config_src: props.configSrc || "cloudflare",
|
|
377
|
+
};
|
|
378
|
+
if (props.tunnelSecret) {
|
|
379
|
+
payload.tunnel_secret = props.tunnelSecret.unencrypted;
|
|
380
|
+
}
|
|
381
|
+
if (props.metadata) {
|
|
382
|
+
payload.metadata = props.metadata;
|
|
383
|
+
}
|
|
384
|
+
const response = await api.post(`/accounts/${api.accountId}/cfd_tunnel`, payload);
|
|
385
|
+
if (!response.ok) {
|
|
386
|
+
await handleApiError(response, "create", "tunnel", props.name);
|
|
387
|
+
}
|
|
388
|
+
const data = (await response.json());
|
|
389
|
+
return data.result;
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Update tunnel configuration
|
|
393
|
+
* @internal
|
|
394
|
+
*/
|
|
395
|
+
async function updateTunnelConfiguration(api, tunnelId, config) {
|
|
396
|
+
const response = await api.put(`/accounts/${api.accountId}/cfd_tunnel/${tunnelId}/configurations`, { config });
|
|
397
|
+
if (!response.ok) {
|
|
398
|
+
await handleApiError(response, "update configuration", "tunnel", tunnelId);
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* List all tunnels with pagination support
|
|
403
|
+
* @internal
|
|
404
|
+
*/
|
|
405
|
+
export async function listTunnels(api, options) {
|
|
406
|
+
const tunnels = [];
|
|
407
|
+
let page = 1;
|
|
408
|
+
const perPage = 100; // Maximum allowed by API
|
|
409
|
+
let hasMorePages = true;
|
|
410
|
+
const limit = options?.limit;
|
|
411
|
+
const includeDeleted = options?.includeDeleted ?? false;
|
|
412
|
+
while (hasMorePages) {
|
|
413
|
+
const params = new URLSearchParams({
|
|
414
|
+
page: page.toString(),
|
|
415
|
+
per_page: perPage.toString(),
|
|
416
|
+
});
|
|
417
|
+
if (!includeDeleted) {
|
|
418
|
+
params.append("is_deleted", "false");
|
|
419
|
+
}
|
|
420
|
+
const response = await api.get(`/accounts/${api.accountId}/cfd_tunnel?${params.toString()}`);
|
|
421
|
+
if (!response.ok) {
|
|
422
|
+
await handleApiError(response, "list", "tunnel", "all");
|
|
423
|
+
}
|
|
424
|
+
const data = (await response.json());
|
|
425
|
+
tunnels.push(...data.result);
|
|
426
|
+
const resultInfo = data.result_info;
|
|
427
|
+
// Check if we've reached the limit
|
|
428
|
+
if (limit && tunnels.length >= limit) {
|
|
429
|
+
return tunnels.slice(0, limit);
|
|
430
|
+
}
|
|
431
|
+
// Check if we've seen all pages
|
|
432
|
+
hasMorePages =
|
|
433
|
+
resultInfo.page * resultInfo.per_page < resultInfo.total_count;
|
|
434
|
+
page++;
|
|
435
|
+
}
|
|
436
|
+
return tunnels;
|
|
437
|
+
}
|
|
438
|
+
/**
|
|
439
|
+
* Find a tunnel by name with pagination support
|
|
440
|
+
* @internal
|
|
441
|
+
*/
|
|
442
|
+
export async function findTunnelByName(api, name) {
|
|
443
|
+
let page = 1;
|
|
444
|
+
const perPage = 100; // Maximum allowed by API
|
|
445
|
+
let hasMorePages = true;
|
|
446
|
+
while (hasMorePages) {
|
|
447
|
+
const response = await api.get(`/accounts/${api.accountId}/cfd_tunnel?page=${page}&per_page=${perPage}&is_deleted=false`);
|
|
448
|
+
if (!response.ok) {
|
|
449
|
+
await handleApiError(response, "list", "tunnel", "all");
|
|
450
|
+
}
|
|
451
|
+
const data = (await response.json());
|
|
452
|
+
const tunnels = data.result;
|
|
453
|
+
const resultInfo = data.result_info;
|
|
454
|
+
// Look for a tunnel with matching name
|
|
455
|
+
const match = tunnels.find((tunnel) => tunnel.name === name);
|
|
456
|
+
if (match) {
|
|
457
|
+
return match;
|
|
458
|
+
}
|
|
459
|
+
// Check if we've seen all pages
|
|
460
|
+
hasMorePages =
|
|
461
|
+
resultInfo.page * resultInfo.per_page < resultInfo.total_count;
|
|
462
|
+
page++;
|
|
463
|
+
}
|
|
464
|
+
// No matching tunnel found
|
|
465
|
+
return null;
|
|
466
|
+
}
|
|
467
|
+
//# sourceMappingURL=tunnel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tunnel.js","sourceRoot":"","sources":["../../src/cloudflare/tunnel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-ref.d.ts","sourceRoot":"","sources":["../../src/cloudflare/worker-ref.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE1D;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,CACnB,GAAG,SAAS,GAAG,CAAC,uBAAuB,GAAG,GAAG,CAAC,uBAAuB,IACnE,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG;IACvC;;OAEG;IACH,OAAO,CAAC,EAAE,GAAG,CAAC;CACf,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,SAAS,CACvB,GAAG,SAAS,GAAG,CAAC,uBAAuB,GAAG,GAAG,CAAC,uBAAuB,EACrE,OAAO,CAAC,EAAE;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,SAAS,CAAC,GAAG,CAAC,CAKjB"}
|
|
1
|
+
{"version":3,"file":"worker-ref.d.ts","sourceRoot":"","sources":["../../src/cloudflare/worker-ref.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE1D;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,CACnB,GAAG,SAAS,GAAG,CAAC,uBAAuB,GAAG,GAAG,CAAC,uBAAuB,IACnE,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG;IACvC;;OAEG;IACH,OAAO,CAAC,EAAE,GAAG,CAAC;CACf,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,SAAS,CACvB,GAAG,SAAS,GAAG,CAAC,uBAAuB,GAAG,GAAG,CAAC,uBAAuB,EACrE,OAAO,CAAC,EAAE;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,SAAS,CAAC,GAAG,CAAC,CAKjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-ref.js","sourceRoot":"","sources":["../../src/cloudflare/worker-ref.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"worker-ref.js","sourceRoot":"","sources":["../../src/cloudflare/worker-ref.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,SAAS,CAEvB,OAID;IACC,OAAO;QACL,GAAG,OAAO;QACV,IAAI,EAAE,SAAS;KACE,CAAC;AACtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-stub.d.ts","sourceRoot":"","sources":["../../src/cloudflare/worker-stub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAgB,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,UAAU,CAAC;AAGlB;;GAEG;AACH,MAAM,WAAW,eAAe,CAC9B,GAAG,SAAS,GAAG,CAAC,uBAAuB,GAAG,GAAG,CAAC,uBAAuB,CACrE,SAAQ,oBAAoB;IAC5B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;OAKG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd;;;;OAIG;IACH,GAAG,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,UAAU,CACzB,GAAG,SAAS,GAAG,CAAC,uBAAuB,GAAG,GAAG,CAAC,uBAAuB,CACrE,SAAQ,QAAQ,CAAC,wBAAwB,CAAC;IAC1C,IAAI,EAAE,SAAS,CAAC;IAChB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,IAAI,UAAU,CAEvE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,UAAU,mFACrB,GAAG,SAAS,GAAG,CAAC,uBAAuB,sCACjC,OAAO,CAAC,UAAU,CAAC,OAAO,MAAM,SAAS,eAAe,CAAC,GAAG,CAAC,KAAG,OAAO,CAC7E,UAAU,CAAC,GAAG,CAAC,CAChB,CA8BC,CAAC"}
|
|
1
|
+
{"version":3,"file":"worker-stub.d.ts","sourceRoot":"","sources":["../../src/cloudflare/worker-stub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAgB,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,UAAU,CAAC;AAGlB;;GAEG;AACH,MAAM,WAAW,eAAe,CAC9B,GAAG,SAAS,GAAG,CAAC,uBAAuB,GAAG,GAAG,CAAC,uBAAuB,CACrE,SAAQ,oBAAoB;IAC5B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;OAKG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd;;;;OAIG;IACH,GAAG,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,UAAU,CACzB,GAAG,SAAS,GAAG,CAAC,uBAAuB,GAAG,GAAG,CAAC,uBAAuB,CACrE,SAAQ,QAAQ,CAAC,wBAAwB,CAAC;IAC1C,IAAI,EAAE,SAAS,CAAC;IAChB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,IAAI,UAAU,CAEvE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,UAAU,mFACrB,GAAG,SAAS,GAAG,CAAC,uBAAuB,sCACjC,OAAO,CAAC,UAAU,CAAC,OAAO,MAAM,SAAS,eAAe,CAAC,GAAG,CAAC,KAAG,OAAO,CAC7E,UAAU,CAAC,GAAG,CAAC,CAChB,CA8BC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-stub.js","sourceRoot":"","sources":["../../src/cloudflare/worker-stub.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"worker-stub.js","sourceRoot":"","sources":["../../src/cloudflare/worker-stub.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/cloudflare/worker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/cloudflare/worker.ts"],"names":[],"mappings":"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"}
|