@iamken/cloudtunnel 0.11.1 → 0.11.2
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.
|
@@ -42,7 +42,12 @@ async function listCargoCnames(token, zoneId) {
|
|
|
42
42
|
return all.filter((r) => r.content.endsWith(".cfargotunnel.com"));
|
|
43
43
|
}
|
|
44
44
|
async function deleteDnsRecord(token, zoneId, recordId) {
|
|
45
|
-
|
|
45
|
+
try {
|
|
46
|
+
await cfRequest(token, "DELETE", `/zones/${zoneId}/dns_records/${recordId}`);
|
|
47
|
+
} catch (err) {
|
|
48
|
+
if (err instanceof CliError && err.status === 404) return;
|
|
49
|
+
throw err;
|
|
50
|
+
}
|
|
46
51
|
}
|
|
47
52
|
|
|
48
53
|
export {
|
|
@@ -54,4 +59,4 @@ export {
|
|
|
54
59
|
listCargoCnames,
|
|
55
60
|
deleteDnsRecord
|
|
56
61
|
};
|
|
57
|
-
//# sourceMappingURL=chunk-
|
|
62
|
+
//# sourceMappingURL=chunk-BIGZFMQ6.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cloudflare/dns.ts"],"sourcesContent":["import { cfPaginate, cfRequest } from \"./client.js\";\nimport type { DnsRecord } from \"./types.js\";\nimport { CliError } from \"../ui/errors.js\";\n\n/** DNS records created by cloudtunnel carry this comment (ownership marker). */\nexport const MANAGED_DNS_COMMENT = \"managed-by:cloudtunnel\";\n\nexport function cargoTarget(tunnelId: string): string {\n return `${tunnelId}.cfargotunnel.com`;\n}\n\nexport function isManagedDns(record: DnsRecord): boolean {\n return record.comment === MANAGED_DNS_COMMENT;\n}\n\n/** Create the proxied CNAME that routes a subdomain to the tunnel. Asserts the\n * record came back orange-clouded (grey-cloud would silently break routing). */\nexport async function createCname(\n token: string,\n zoneId: string,\n name: string,\n tunnelId: string,\n): Promise<DnsRecord> {\n const env = await cfRequest<DnsRecord>(token, \"POST\", `/zones/${zoneId}/dns_records`, {\n type: \"CNAME\",\n name,\n content: cargoTarget(tunnelId),\n proxied: true,\n ttl: 1,\n comment: MANAGED_DNS_COMMENT,\n });\n if (env.result.proxied !== true) {\n throw new CliError(`DNS record for ${name} was created grey-clouded (not proxied).`, {\n hint: \"cfargotunnel routing requires a proxied (orange-cloud) record\",\n });\n }\n return env.result;\n}\n\nexport async function findCname(\n token: string,\n zoneId: string,\n fqdn: string,\n): Promise<DnsRecord | undefined> {\n const env = await cfRequest<DnsRecord[]>(\n token,\n \"GET\",\n `/zones/${zoneId}/dns_records?type=CNAME&name=${encodeURIComponent(fqdn)}`,\n );\n return env.result?.[0];\n}\n\n/** CNAMEs in the zone that point at a cfargotunnel target (any tool's). */\nexport async function listCargoCnames(token: string, zoneId: string): Promise<DnsRecord[]> {\n const all = await cfPaginate<DnsRecord>(token, `/zones/${zoneId}/dns_records?type=CNAME`);\n return all.filter((r) => r.content.endsWith(\".cfargotunnel.com\"));\n}\n\nexport async function deleteDnsRecord(token: string, zoneId: string, recordId: string): Promise<void> {\n await cfRequest<unknown>(token, \"DELETE\", `/zones/${zoneId}/dns_records/${recordId}`);\n}\n"],"mappings":";;;;;;;;AAKO,IAAM,sBAAsB;AAE5B,SAAS,YAAY,UAA0B;AACpD,SAAO,GAAG,QAAQ;AACpB;AAEO,SAAS,aAAa,QAA4B;AACvD,SAAO,OAAO,YAAY;AAC5B;AAIA,eAAsB,YACpB,OACA,QACA,MACA,UACoB;AACpB,QAAM,MAAM,MAAM,UAAqB,OAAO,QAAQ,UAAU,MAAM,gBAAgB;AAAA,IACpF,MAAM;AAAA,IACN;AAAA,IACA,SAAS,YAAY,QAAQ;AAAA,IAC7B,SAAS;AAAA,IACT,KAAK;AAAA,IACL,SAAS;AAAA,EACX,CAAC;AACD,MAAI,IAAI,OAAO,YAAY,MAAM;AAC/B,UAAM,IAAI,SAAS,kBAAkB,IAAI,4CAA4C;AAAA,MACnF,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AACA,SAAO,IAAI;AACb;AAEA,eAAsB,UACpB,OACA,QACA,MACgC;AAChC,QAAM,MAAM,MAAM;AAAA,IAChB;AAAA,IACA;AAAA,IACA,UAAU,MAAM,gCAAgC,mBAAmB,IAAI,CAAC;AAAA,EAC1E;AACA,SAAO,IAAI,SAAS,CAAC;AACvB;AAGA,eAAsB,gBAAgB,OAAe,QAAsC;AACzF,QAAM,MAAM,MAAM,WAAsB,OAAO,UAAU,MAAM,yBAAyB;AACxF,SAAO,IAAI,OAAO,CAAC,MAAM,EAAE,QAAQ,SAAS,mBAAmB,CAAC;AAClE;AAEA,eAAsB,gBAAgB,OAAe,QAAgB,UAAiC;AACpG,
|
|
1
|
+
{"version":3,"sources":["../src/cloudflare/dns.ts"],"sourcesContent":["import { cfPaginate, cfRequest } from \"./client.js\";\nimport type { DnsRecord } from \"./types.js\";\nimport { CliError } from \"../ui/errors.js\";\n\n/** DNS records created by cloudtunnel carry this comment (ownership marker). */\nexport const MANAGED_DNS_COMMENT = \"managed-by:cloudtunnel\";\n\nexport function cargoTarget(tunnelId: string): string {\n return `${tunnelId}.cfargotunnel.com`;\n}\n\nexport function isManagedDns(record: DnsRecord): boolean {\n return record.comment === MANAGED_DNS_COMMENT;\n}\n\n/** Create the proxied CNAME that routes a subdomain to the tunnel. Asserts the\n * record came back orange-clouded (grey-cloud would silently break routing). */\nexport async function createCname(\n token: string,\n zoneId: string,\n name: string,\n tunnelId: string,\n): Promise<DnsRecord> {\n const env = await cfRequest<DnsRecord>(token, \"POST\", `/zones/${zoneId}/dns_records`, {\n type: \"CNAME\",\n name,\n content: cargoTarget(tunnelId),\n proxied: true,\n ttl: 1,\n comment: MANAGED_DNS_COMMENT,\n });\n if (env.result.proxied !== true) {\n throw new CliError(`DNS record for ${name} was created grey-clouded (not proxied).`, {\n hint: \"cfargotunnel routing requires a proxied (orange-cloud) record\",\n });\n }\n return env.result;\n}\n\nexport async function findCname(\n token: string,\n zoneId: string,\n fqdn: string,\n): Promise<DnsRecord | undefined> {\n const env = await cfRequest<DnsRecord[]>(\n token,\n \"GET\",\n `/zones/${zoneId}/dns_records?type=CNAME&name=${encodeURIComponent(fqdn)}`,\n );\n return env.result?.[0];\n}\n\n/** CNAMEs in the zone that point at a cfargotunnel target (any tool's). */\nexport async function listCargoCnames(token: string, zoneId: string): Promise<DnsRecord[]> {\n const all = await cfPaginate<DnsRecord>(token, `/zones/${zoneId}/dns_records?type=CNAME`);\n return all.filter((r) => r.content.endsWith(\".cfargotunnel.com\"));\n}\n\nexport async function deleteDnsRecord(token: string, zoneId: string, recordId: string): Promise<void> {\n try {\n await cfRequest<unknown>(token, \"DELETE\", `/zones/${zoneId}/dns_records/${recordId}`);\n } catch (err) {\n if (err instanceof CliError && err.status === 404) return;\n throw err;\n }\n}\n"],"mappings":";;;;;;;;AAKO,IAAM,sBAAsB;AAE5B,SAAS,YAAY,UAA0B;AACpD,SAAO,GAAG,QAAQ;AACpB;AAEO,SAAS,aAAa,QAA4B;AACvD,SAAO,OAAO,YAAY;AAC5B;AAIA,eAAsB,YACpB,OACA,QACA,MACA,UACoB;AACpB,QAAM,MAAM,MAAM,UAAqB,OAAO,QAAQ,UAAU,MAAM,gBAAgB;AAAA,IACpF,MAAM;AAAA,IACN;AAAA,IACA,SAAS,YAAY,QAAQ;AAAA,IAC7B,SAAS;AAAA,IACT,KAAK;AAAA,IACL,SAAS;AAAA,EACX,CAAC;AACD,MAAI,IAAI,OAAO,YAAY,MAAM;AAC/B,UAAM,IAAI,SAAS,kBAAkB,IAAI,4CAA4C;AAAA,MACnF,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AACA,SAAO,IAAI;AACb;AAEA,eAAsB,UACpB,OACA,QACA,MACgC;AAChC,QAAM,MAAM,MAAM;AAAA,IAChB;AAAA,IACA;AAAA,IACA,UAAU,MAAM,gCAAgC,mBAAmB,IAAI,CAAC;AAAA,EAC1E;AACA,SAAO,IAAI,SAAS,CAAC;AACvB;AAGA,eAAsB,gBAAgB,OAAe,QAAsC;AACzF,QAAM,MAAM,MAAM,WAAsB,OAAO,UAAU,MAAM,yBAAyB;AACxF,SAAO,IAAI,OAAO,CAAC,MAAM,EAAE,QAAQ,SAAS,mBAAmB,CAAC;AAClE;AAEA,eAAsB,gBAAgB,OAAe,QAAgB,UAAiC;AACpG,MAAI;AACF,UAAM,UAAmB,OAAO,UAAU,UAAU,MAAM,gBAAgB,QAAQ,EAAE;AAAA,EACtF,SAAS,KAAK;AACZ,QAAI,eAAe,YAAY,IAAI,WAAW,IAAK;AACnD,UAAM;AAAA,EACR;AACF;","names":[]}
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
findCname,
|
|
8
8
|
isManagedDns,
|
|
9
9
|
listCargoCnames
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-BIGZFMQ6.js";
|
|
11
11
|
import "./chunk-7XACBYL7.js";
|
|
12
12
|
export {
|
|
13
13
|
MANAGED_DNS_COMMENT,
|
|
@@ -18,4 +18,4 @@ export {
|
|
|
18
18
|
isManagedDns,
|
|
19
19
|
listCargoCnames
|
|
20
20
|
};
|
|
21
|
-
//# sourceMappingURL=dns-
|
|
21
|
+
//# sourceMappingURL=dns-3WHXRL6V.js.map
|
package/dist/index.js
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
deleteDnsRecord,
|
|
9
9
|
findCname,
|
|
10
10
|
isManagedDns
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-BIGZFMQ6.js";
|
|
12
12
|
import {
|
|
13
13
|
CliError,
|
|
14
14
|
DEFAULT_API_BASE,
|
|
@@ -1466,7 +1466,7 @@ async function resolveRemoteTarget(cf, target) {
|
|
|
1466
1466
|
}
|
|
1467
1467
|
const tunnel = matches[0];
|
|
1468
1468
|
if (!tunnel) return null;
|
|
1469
|
-
const { listCargoCnames } = await import("./dns-
|
|
1469
|
+
const { listCargoCnames } = await import("./dns-3WHXRL6V.js");
|
|
1470
1470
|
const { listZones: listZones3 } = await import("./zones-XNCXYCB4.js");
|
|
1471
1471
|
for (const zone of await listZones3(cf.token)) {
|
|
1472
1472
|
const rec = (await listCargoCnames(cf.token, zone.id)).find((r) => tunnelIdFromCname2(r.content) === tunnel.id);
|
|
@@ -1505,7 +1505,7 @@ async function listAll(cf, opts = {}) {
|
|
|
1505
1505
|
};
|
|
1506
1506
|
}));
|
|
1507
1507
|
if (opts.all) {
|
|
1508
|
-
const { listCargoCnames } = await import("./dns-
|
|
1508
|
+
const { listCargoCnames } = await import("./dns-3WHXRL6V.js");
|
|
1509
1509
|
const { listZones: listZones3 } = await import("./zones-XNCXYCB4.js");
|
|
1510
1510
|
const tracked = new Set(entries.map(entryFqdn));
|
|
1511
1511
|
const unmanaged = [];
|
package/package.json
CHANGED
|
File without changes
|