@cardelli/ambit 0.1.4 → 0.2.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/esm/cli/commands/create/index.d.ts +2 -0
- package/esm/cli/commands/create/index.d.ts.map +1 -0
- package/esm/cli/commands/create/index.js +292 -0
- package/esm/cli/commands/create/machine.d.ts +33 -0
- package/esm/cli/commands/create/machine.d.ts.map +1 -0
- package/esm/cli/commands/create/machine.js +162 -0
- package/esm/cli/commands/deploy/index.d.ts +2 -0
- package/esm/cli/commands/deploy/index.d.ts.map +1 -0
- package/esm/cli/commands/deploy/index.js +290 -0
- package/esm/cli/commands/deploy/machine.d.ts +52 -0
- package/esm/cli/commands/deploy/machine.d.ts.map +1 -0
- package/esm/cli/commands/deploy/machine.js +116 -0
- package/esm/cli/commands/deploy/modes.d.ts +18 -0
- package/esm/cli/commands/deploy/modes.d.ts.map +1 -0
- package/esm/cli/commands/deploy/modes.js +152 -0
- package/esm/cli/commands/destroy/app.d.ts +2 -0
- package/esm/cli/commands/destroy/app.d.ts.map +1 -0
- package/esm/cli/commands/destroy/app.js +173 -0
- package/esm/cli/commands/destroy/index.d.ts +2 -0
- package/esm/cli/commands/destroy/index.d.ts.map +1 -0
- package/esm/cli/commands/destroy/index.js +63 -0
- package/esm/cli/commands/destroy/network.d.ts +2 -0
- package/esm/cli/commands/destroy/network.d.ts.map +1 -0
- package/esm/cli/commands/destroy/network.js +210 -0
- package/esm/cli/commands/doctor.d.ts.map +1 -0
- package/esm/cli/commands/doctor.js +295 -0
- package/esm/{src/cli → cli}/commands/list.d.ts.map +1 -1
- package/esm/{src/cli → cli}/commands/list.js +39 -54
- package/esm/cli/commands/status.d.ts.map +1 -0
- package/esm/cli/commands/status.js +331 -0
- package/esm/cli/mod.d.ts.map +1 -0
- package/esm/{src/cli → cli}/mod.js +4 -4
- package/esm/deno.d.ts +4 -18
- package/esm/deno.js +5 -19
- package/esm/deps/jsr.io/@std/path/1.1.4/constants.d.ts +1 -1
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/json-schema-generator.d.ts +1 -1
- package/esm/lib/args.d.ts +11 -0
- package/esm/lib/args.d.ts.map +1 -0
- package/esm/lib/args.js +28 -0
- package/esm/lib/cli.d.ts +0 -2
- package/esm/lib/cli.d.ts.map +1 -1
- package/esm/lib/cli.js +41 -27
- package/esm/lib/command.d.ts +21 -49
- package/esm/lib/command.d.ts.map +1 -1
- package/esm/lib/command.js +55 -95
- package/esm/lib/machine.d.ts +11 -0
- package/esm/lib/machine.d.ts.map +1 -0
- package/esm/lib/machine.js +15 -0
- package/esm/lib/output.d.ts +3 -2
- package/esm/lib/output.d.ts.map +1 -1
- package/esm/lib/output.js +25 -11
- package/esm/lib/result.d.ts +18 -7
- package/esm/lib/result.d.ts.map +1 -1
- package/esm/lib/result.js +46 -1
- package/esm/main.d.ts +6 -6
- package/esm/main.d.ts.map +1 -1
- package/esm/main.js +7 -9
- package/esm/providers/fly.d.ts +81 -0
- package/esm/providers/fly.d.ts.map +1 -0
- package/esm/providers/fly.js +372 -0
- package/esm/providers/tailscale.d.ts +31 -0
- package/esm/providers/tailscale.d.ts.map +1 -0
- package/esm/providers/tailscale.js +150 -0
- package/esm/{src/schemas → schemas}/fly.d.ts +1 -11
- package/esm/schemas/fly.d.ts.map +1 -0
- package/esm/{src/schemas → schemas}/fly.js +14 -56
- package/esm/{src/schemas → schemas}/tailscale.d.ts +1 -2
- package/esm/schemas/tailscale.d.ts.map +1 -0
- package/esm/{src/schemas → schemas}/tailscale.js +2 -3
- package/esm/src/{docker/router → router}/Dockerfile +0 -11
- package/esm/src/router/start.sh +101 -0
- package/esm/util/constants.d.ts +13 -0
- package/esm/util/constants.d.ts.map +1 -0
- package/esm/util/constants.js +34 -0
- package/esm/{src → util}/credentials.d.ts +0 -1
- package/esm/util/credentials.d.ts.map +1 -0
- package/esm/{src → util}/credentials.js +3 -5
- package/esm/{src → util}/discovery.d.ts +20 -4
- package/esm/util/discovery.d.ts.map +1 -0
- package/esm/{src → util}/discovery.js +38 -15
- package/esm/util/fly-transforms.d.ts +27 -0
- package/esm/util/fly-transforms.d.ts.map +1 -0
- package/esm/util/fly-transforms.js +87 -0
- package/esm/{src → util}/guard.d.ts +1 -2
- package/esm/util/guard.d.ts.map +1 -0
- package/esm/{src → util}/guard.js +27 -27
- package/esm/util/naming.d.ts +5 -0
- package/esm/util/naming.d.ts.map +1 -0
- package/esm/util/naming.js +12 -0
- package/esm/{src → util}/resolve.d.ts +2 -3
- package/esm/util/resolve.d.ts.map +1 -0
- package/esm/{src → util}/resolve.js +1 -2
- package/esm/util/session.d.ts +16 -0
- package/esm/util/session.d.ts.map +1 -0
- package/esm/util/session.js +19 -0
- package/esm/util/tailscale-local.d.ts +13 -0
- package/esm/util/tailscale-local.d.ts.map +1 -0
- package/esm/util/tailscale-local.js +63 -0
- package/esm/{src → util}/template.d.ts +2 -4
- package/esm/util/template.d.ts.map +1 -0
- package/esm/{src → util}/template.js +14 -17
- package/package.json +1 -43
- package/esm/lib/paths.d.ts +0 -3
- package/esm/lib/paths.d.ts.map +0 -1
- package/esm/lib/paths.js +0 -5
- package/esm/src/cli/commands/create.d.ts +0 -2
- package/esm/src/cli/commands/create.d.ts.map +0 -1
- package/esm/src/cli/commands/create.js +0 -294
- package/esm/src/cli/commands/deploy.d.ts +0 -2
- package/esm/src/cli/commands/deploy.d.ts.map +0 -1
- package/esm/src/cli/commands/deploy.js +0 -426
- package/esm/src/cli/commands/destroy.d.ts +0 -2
- package/esm/src/cli/commands/destroy.d.ts.map +0 -1
- package/esm/src/cli/commands/destroy.js +0 -340
- package/esm/src/cli/commands/doctor.d.ts.map +0 -1
- package/esm/src/cli/commands/doctor.js +0 -141
- package/esm/src/cli/commands/status.d.ts.map +0 -1
- package/esm/src/cli/commands/status.js +0 -152
- package/esm/src/cli/mod.d.ts.map +0 -1
- package/esm/src/credentials.d.ts.map +0 -1
- package/esm/src/discovery.d.ts.map +0 -1
- package/esm/src/docker/router/start.sh +0 -146
- package/esm/src/guard.d.ts.map +0 -1
- package/esm/src/providers/fly.d.ts +0 -70
- package/esm/src/providers/fly.d.ts.map +0 -1
- package/esm/src/providers/fly.js +0 -411
- package/esm/src/providers/tailscale.d.ts +0 -31
- package/esm/src/providers/tailscale.d.ts.map +0 -1
- package/esm/src/providers/tailscale.js +0 -195
- package/esm/src/resolve.d.ts.map +0 -1
- package/esm/src/schemas/config.d.ts +0 -5
- package/esm/src/schemas/config.d.ts.map +0 -1
- package/esm/src/schemas/config.js +0 -22
- package/esm/src/schemas/fly.d.ts.map +0 -1
- package/esm/src/schemas/tailscale.d.ts.map +0 -1
- package/esm/src/template.d.ts.map +0 -1
- /package/esm/{src/cli → cli}/commands/doctor.d.ts +0 -0
- /package/esm/{src/cli → cli}/commands/list.d.ts +0 -0
- /package/esm/{src/cli → cli}/commands/status.d.ts +0 -0
- /package/esm/{src/cli → cli}/mod.d.ts +0 -0
- /package/esm/src/{docker/router → router}/fly.toml +0 -0
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
// =============================================================================
|
|
2
|
-
// Tailscale API Client
|
|
3
|
-
// =============================================================================
|
|
4
|
-
import "../../_dnt.polyfills.js";
|
|
5
|
-
import { commandExists, die } from "../../lib/cli.js";
|
|
6
|
-
import { runCommand } from "../../lib/command.js";
|
|
7
|
-
import { createAuthKeyPayload, TailscaleDevicesListSchema, } from "../schemas/tailscale.js";
|
|
8
|
-
// =============================================================================
|
|
9
|
-
// Constants
|
|
10
|
-
// =============================================================================
|
|
11
|
-
const API_BASE = "https://api.tailscale.com/api/v2";
|
|
12
|
-
// =============================================================================
|
|
13
|
-
// Create Tailscale Provider
|
|
14
|
-
// =============================================================================
|
|
15
|
-
export const createTailscaleProvider = (tailnet, apiKey) => {
|
|
16
|
-
const headers = () => ({
|
|
17
|
-
"Content-Type": "application/json",
|
|
18
|
-
Accept: "application/json",
|
|
19
|
-
Authorization: `Basic ${btoa(apiKey + ":")}`,
|
|
20
|
-
});
|
|
21
|
-
const request = async (method, path, body) => {
|
|
22
|
-
try {
|
|
23
|
-
const response = await fetch(`${API_BASE}${path}`, {
|
|
24
|
-
method,
|
|
25
|
-
headers: headers(),
|
|
26
|
-
body: body ? JSON.stringify(body) : undefined,
|
|
27
|
-
});
|
|
28
|
-
if (!response.ok) {
|
|
29
|
-
const text = await response.text();
|
|
30
|
-
return {
|
|
31
|
-
ok: false,
|
|
32
|
-
status: response.status,
|
|
33
|
-
error: text || `HTTP ${response.status}`,
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
const text = await response.text();
|
|
37
|
-
if (!text) {
|
|
38
|
-
return { ok: true, status: response.status };
|
|
39
|
-
}
|
|
40
|
-
return { ok: true, status: response.status, data: JSON.parse(text) };
|
|
41
|
-
}
|
|
42
|
-
catch (error) {
|
|
43
|
-
return {
|
|
44
|
-
ok: false,
|
|
45
|
-
status: 0,
|
|
46
|
-
error: error instanceof Error ? error.message : String(error),
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
const effectiveTailnet = tailnet || "-";
|
|
51
|
-
return {
|
|
52
|
-
async validateApiKey() {
|
|
53
|
-
const result = await request("GET", `/tailnet/${effectiveTailnet}/devices`);
|
|
54
|
-
return result.ok;
|
|
55
|
-
},
|
|
56
|
-
async createAuthKey(opts) {
|
|
57
|
-
const payload = createAuthKeyPayload(opts ?? {});
|
|
58
|
-
const result = await request("POST", `/tailnet/${effectiveTailnet}/keys`, payload);
|
|
59
|
-
if (!result.ok || !result.data?.key) {
|
|
60
|
-
return die(`Failed to Create Auth Key: ${result.error}`);
|
|
61
|
-
}
|
|
62
|
-
return result.data.key;
|
|
63
|
-
},
|
|
64
|
-
async listDevices() {
|
|
65
|
-
const result = await request("GET", `/tailnet/${effectiveTailnet}/devices`);
|
|
66
|
-
if (!result.ok) {
|
|
67
|
-
return die(`Failed to List Devices: ${result.error}`);
|
|
68
|
-
}
|
|
69
|
-
const parsed = TailscaleDevicesListSchema.safeParse(result.data);
|
|
70
|
-
return parsed.success ? parsed.data.devices : [];
|
|
71
|
-
},
|
|
72
|
-
async getDeviceByHostname(hostname) {
|
|
73
|
-
const devices = await this.listDevices();
|
|
74
|
-
// Exact match first (expected with persistent state)
|
|
75
|
-
const exact = devices.find((d) => d.hostname === hostname);
|
|
76
|
-
if (exact)
|
|
77
|
-
return exact;
|
|
78
|
-
// Fallback: find by prefix if Tailscale added suffix (e.g., hostname-1)
|
|
79
|
-
// Prefer online devices, then most recently seen
|
|
80
|
-
const prefixMatches = devices
|
|
81
|
-
.filter((d) => d.hostname.startsWith(hostname + "-"))
|
|
82
|
-
.sort((a, b) => {
|
|
83
|
-
if (a.online && !b.online)
|
|
84
|
-
return -1;
|
|
85
|
-
if (!a.online && b.online)
|
|
86
|
-
return 1;
|
|
87
|
-
const aTime = a.lastSeen ? new Date(a.lastSeen).getTime() : 0;
|
|
88
|
-
const bTime = b.lastSeen ? new Date(b.lastSeen).getTime() : 0;
|
|
89
|
-
return bTime - aTime;
|
|
90
|
-
});
|
|
91
|
-
return prefixMatches[0] ?? null;
|
|
92
|
-
},
|
|
93
|
-
async deleteDevice(id) {
|
|
94
|
-
const result = await request("DELETE", `/device/${id}`);
|
|
95
|
-
if (!result.ok) {
|
|
96
|
-
return die(`Failed to Delete Device: ${result.error}`);
|
|
97
|
-
}
|
|
98
|
-
},
|
|
99
|
-
async approveSubnetRoutes(deviceId, routes) {
|
|
100
|
-
const result = await request("POST", `/device/${deviceId}/routes`, { routes });
|
|
101
|
-
if (!result.ok) {
|
|
102
|
-
return die(`Failed to Approve Routes: ${result.error}`);
|
|
103
|
-
}
|
|
104
|
-
},
|
|
105
|
-
async setSplitDns(domain, nameservers) {
|
|
106
|
-
// PATCH performs partial update - only specified domains are modified
|
|
107
|
-
const result = await request("PATCH", `/tailnet/${effectiveTailnet}/dns/split-dns`, { [domain]: nameservers });
|
|
108
|
-
if (!result.ok) {
|
|
109
|
-
return die(`Failed to Configure Split DNS: ${result.error}`);
|
|
110
|
-
}
|
|
111
|
-
},
|
|
112
|
-
async clearSplitDns(domain) {
|
|
113
|
-
const result = await request("PATCH", `/tailnet/${effectiveTailnet}/dns/split-dns`, { [domain]: null });
|
|
114
|
-
if (!result.ok) {
|
|
115
|
-
return die(`Failed to Clear Split DNS: ${result.error}`);
|
|
116
|
-
}
|
|
117
|
-
},
|
|
118
|
-
async getPolicyFile() {
|
|
119
|
-
const result = await request("GET", `/tailnet/${effectiveTailnet}/acl`);
|
|
120
|
-
if (!result.ok || !result.data) {
|
|
121
|
-
return null;
|
|
122
|
-
}
|
|
123
|
-
return result.data;
|
|
124
|
-
},
|
|
125
|
-
async isTagOwnerConfigured(tag) {
|
|
126
|
-
const policy = await this.getPolicyFile();
|
|
127
|
-
if (!policy)
|
|
128
|
-
return false;
|
|
129
|
-
const tagOwners = policy.tagOwners;
|
|
130
|
-
if (!tagOwners)
|
|
131
|
-
return false;
|
|
132
|
-
return tag in tagOwners;
|
|
133
|
-
},
|
|
134
|
-
async isAutoApproverConfigured(tag) {
|
|
135
|
-
const policy = await this.getPolicyFile();
|
|
136
|
-
if (!policy)
|
|
137
|
-
return false;
|
|
138
|
-
const autoApprovers = policy.autoApprovers;
|
|
139
|
-
if (!autoApprovers)
|
|
140
|
-
return false;
|
|
141
|
-
const routes = autoApprovers.routes;
|
|
142
|
-
if (!routes)
|
|
143
|
-
return false;
|
|
144
|
-
return Object.values(routes).some((approvers) => Array.isArray(approvers) && approvers.includes(tag));
|
|
145
|
-
},
|
|
146
|
-
};
|
|
147
|
-
};
|
|
148
|
-
// =============================================================================
|
|
149
|
-
// Wait for Device
|
|
150
|
-
// =============================================================================
|
|
151
|
-
export const waitForDevice = async (provider, hostname, timeoutMs = 120000) => {
|
|
152
|
-
const startTime = Date.now();
|
|
153
|
-
const pollInterval = 5000;
|
|
154
|
-
while (Date.now() - startTime < timeoutMs) {
|
|
155
|
-
const device = await provider.getDeviceByHostname(hostname);
|
|
156
|
-
if (device) {
|
|
157
|
-
return device;
|
|
158
|
-
}
|
|
159
|
-
await new Promise((resolve) => setTimeout(resolve, pollInterval));
|
|
160
|
-
}
|
|
161
|
-
return die(`Timeout Waiting for Device '${hostname}'`);
|
|
162
|
-
};
|
|
163
|
-
// =============================================================================
|
|
164
|
-
// Local Tailscale CLI
|
|
165
|
-
// =============================================================================
|
|
166
|
-
/**
|
|
167
|
-
* Check if the tailscale CLI is installed.
|
|
168
|
-
*/
|
|
169
|
-
export const isTailscaleInstalled = async () => {
|
|
170
|
-
return await commandExists("tailscale");
|
|
171
|
-
};
|
|
172
|
-
/**
|
|
173
|
-
* Check if accept-routes is enabled on the local client.
|
|
174
|
-
*/
|
|
175
|
-
export const isAcceptRoutesEnabled = async () => {
|
|
176
|
-
const result = await runCommand(["tailscale", "debug", "prefs"]);
|
|
177
|
-
if (!result.success) {
|
|
178
|
-
return false;
|
|
179
|
-
}
|
|
180
|
-
try {
|
|
181
|
-
const prefs = JSON.parse(result.stdout);
|
|
182
|
-
return prefs.RouteAll === true;
|
|
183
|
-
}
|
|
184
|
-
catch {
|
|
185
|
-
return false;
|
|
186
|
-
}
|
|
187
|
-
};
|
|
188
|
-
/**
|
|
189
|
-
* Enable accept-routes on the local client.
|
|
190
|
-
* Returns true if successful, false if it failed (likely permissions).
|
|
191
|
-
*/
|
|
192
|
-
export const enableAcceptRoutes = async () => {
|
|
193
|
-
const result = await runCommand(["tailscale", "set", "--accept-routes"]);
|
|
194
|
-
return result.success;
|
|
195
|
-
};
|
package/esm/src/resolve.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/src/resolve.ts"],"names":[],"mappings":"AAGA,OAAO,sBAAsB,CAAC;AAI9B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAMtD;;GAEG;AACH,eAAO,MAAM,UAAU,GACrB,KAAK,WAAW,EAChB,MAAM;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,EACtC,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KACnC,OAAO,CAAC,MAAM,CA6BhB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/src/schemas/config.ts"],"names":[],"mappings":"AAOA,OAAO,yBAAyB,CAAC;AAKjC,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,KAAG,MAAgC,CAAC;AAEhF,eAAO,MAAM,aAAa,GAAI,WAAW,MAAM,KAAG,MAKjD,CAAC;AAMF,eAAO,MAAM,YAAY,QAAO,MAG/B,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
// =============================================================================
|
|
2
|
-
// Configuration Helpers
|
|
3
|
-
// =============================================================================
|
|
4
|
-
// =============================================================================
|
|
5
|
-
// Derived Values
|
|
6
|
-
// =============================================================================
|
|
7
|
-
import "../../_dnt.polyfills.js";
|
|
8
|
-
import * as dntShim from "../../_dnt.shims.js";
|
|
9
|
-
export const getRouterTag = (network) => `tag:ambit-${network}`;
|
|
10
|
-
export const extractSubnet = (privateIp) => {
|
|
11
|
-
// privateIp format: fdaa:X:XXXX::Y
|
|
12
|
-
// Extract first 3 hextets and append ::/48
|
|
13
|
-
const parts = privateIp.split(":");
|
|
14
|
-
return `${parts[0]}:${parts[1]}:${parts[2]}::/48`;
|
|
15
|
-
};
|
|
16
|
-
// =============================================================================
|
|
17
|
-
// Config Directory
|
|
18
|
-
// =============================================================================
|
|
19
|
-
export const getConfigDir = () => {
|
|
20
|
-
const home = dntShim.Deno.env.get("HOME") || dntShim.Deno.env.get("USERPROFILE") || "";
|
|
21
|
-
return `${home}/.config/ambit`;
|
|
22
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fly.d.ts","sourceRoot":"","sources":["../../../src/src/schemas/fly.ts"],"names":[],"mappings":"AAGA,OAAO,yBAAyB,CAAC;AAGjC,OAAO,EAAE,CAAC,EAAE,MAAM,+CAA+C,CAAC;AAMlE,eAAO,MAAM,aAAa;;iBAEV,CAAC;AAEjB,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAMpD,eAAO,MAAM,YAAY;;;;;;iBAMT,CAAC;AAEjB,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,eAAO,MAAM,iBAAiB;;;;;;kBAAwB,CAAC;AAMvD,eAAO,MAAM,eAAe;;;;;iBAKZ,CAAC;AAEjB,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAMxD,eAAO,MAAM,qBAAqB;;;;iBAIlB,CAAC;AAEjB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;iBAgBnB,CAAC;AAEjB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;iBASb,CAAC;AAEjB,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;kBAA4B,CAAC;AAM/D,eAAO,MAAM,aAAa,uCAAmC,CAAC;AAM9D,eAAO,MAAM,eAAe;;;iBAGZ,CAAC;AAMjB;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,UAAU,MAAM,KACf,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,QAiBtC,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,KAC5C,eAAe,GAAG,eAAe,GAAG,eAOtC,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAMpD,eAAO,MAAM,kBAAkB;;;;;iBAGf,CAAC;AAEjB,eAAO,MAAM,WAAW;;;;;;;;;;;;iBAOR,CAAC;AAEjB,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEhD,eAAO,MAAM,eAAe;;;;;;;;;;;;kBAAuB,CAAC;AAMpD,eAAO,MAAM,gBAAgB;;;;;;;iBAKb,CAAC;AAEjB,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,oBAAoB;;;;;;;;;;iBAGjB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tailscale.d.ts","sourceRoot":"","sources":["../../../src/src/schemas/tailscale.ts"],"names":[],"mappings":"AAGA,OAAO,yBAAyB,CAAC;AAGjC,OAAO,EAAE,CAAC,EAAE,MAAM,+CAA+C,CAAC;AAMlE,eAAO,MAAM,sBAAsB;;;;;iBAKjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAMtE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;iBAclB,CAAC;AAEjB,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;iBAErC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAM9E,eAAO,MAAM,qBAAqB;;;iBAGhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAMpE,eAAO,MAAM,6BAA6B;;iBAExC,CAAC;AAEH,eAAO,MAAM,uBAAuB,mDAGnC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAMxE,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAMlE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,eAAO,MAAM,oBAAoB,GAAI,MAAM,mBAAmB,KAAG,MA+BhE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/src/template.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAM/C,2EAA2E;AAC3E,MAAM,MAAM,iBAAiB,GACzB,UAAU,GACV,aAAa,GACb,WAAW,GACX,kBAAkB,GAClB,cAAc,GACd,kBAAkB,GAClB,cAAc,GACd,cAAc,CAAC;AAMnB,wCAAwC;AACxC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;CACzB;AAED,iDAAiD;AACjD,MAAM,MAAM,mBAAmB,GAAG,MAAM,CACtC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EACxC,iBAAiB,CAClB,CAAC;AAgCF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,KAAG,WAAW,GAAG,IAyB5D,CAAC;AAMF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,GACxB,KAAK,WAAW,KACf,OAAO,CAAC,mBAAmB,CAsH7B,CAAC"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|