lim 0.30.2 → 0.31.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/dist/base-command.d.ts +3 -0
- package/dist/base-command.d.ts.map +1 -1
- package/dist/base-command.js +10 -0
- package/dist/base-command.js.map +1 -1
- package/dist/commands/android/app-logs.d.ts +17 -0
- package/dist/commands/android/app-logs.d.ts.map +1 -0
- package/dist/commands/android/app-logs.js +35 -0
- package/dist/commands/android/app-logs.js.map +1 -0
- package/dist/commands/android/create.d.ts +4 -0
- package/dist/commands/android/create.d.ts.map +1 -1
- package/dist/commands/android/create.js +45 -0
- package/dist/commands/android/create.js.map +1 -1
- package/dist/commands/android/events.d.ts +17 -0
- package/dist/commands/android/events.d.ts.map +1 -0
- package/dist/commands/android/events.js +35 -0
- package/dist/commands/android/events.js.map +1 -0
- package/dist/commands/android/record.d.ts +2 -0
- package/dist/commands/android/record.d.ts.map +1 -1
- package/dist/commands/android/record.js +27 -3
- package/dist/commands/android/record.js.map +1 -1
- package/dist/commands/android/recordings.d.ts +17 -0
- package/dist/commands/android/recordings.d.ts.map +1 -0
- package/dist/commands/android/recordings.js +35 -0
- package/dist/commands/android/recordings.js.map +1 -0
- package/dist/commands/android/tunnel/index.d.ts +29 -0
- package/dist/commands/android/tunnel/index.d.ts.map +1 -0
- package/dist/commands/android/tunnel/index.js +170 -0
- package/dist/commands/android/tunnel/index.js.map +1 -0
- package/dist/commands/android/tunnel/index.test.d.ts +2 -0
- package/dist/commands/android/tunnel/index.test.d.ts.map +1 -0
- package/dist/commands/android/tunnel/index.test.js +66 -0
- package/dist/commands/android/tunnel/index.test.js.map +1 -0
- package/dist/commands/android/tunnel/status.d.ts +17 -0
- package/dist/commands/android/tunnel/status.d.ts.map +1 -0
- package/dist/commands/android/tunnel/status.js +61 -0
- package/dist/commands/android/tunnel/status.js.map +1 -0
- package/dist/commands/android/tunnel/stop.d.ts +17 -0
- package/dist/commands/android/tunnel/stop.d.ts.map +1 -0
- package/dist/commands/android/tunnel/stop.js +50 -0
- package/dist/commands/android/tunnel/stop.js.map +1 -0
- package/dist/commands/ios/app-logs.d.ts +17 -0
- package/dist/commands/ios/app-logs.d.ts.map +1 -0
- package/dist/commands/ios/app-logs.js +35 -0
- package/dist/commands/ios/app-logs.js.map +1 -0
- package/dist/commands/ios/create.d.ts +4 -0
- package/dist/commands/ios/create.d.ts.map +1 -1
- package/dist/commands/ios/create.js +45 -0
- package/dist/commands/ios/create.js.map +1 -1
- package/dist/commands/ios/events.d.ts +17 -0
- package/dist/commands/ios/events.d.ts.map +1 -0
- package/dist/commands/ios/events.js +35 -0
- package/dist/commands/ios/events.js.map +1 -0
- package/dist/commands/ios/launch-app.js +1 -1
- package/dist/commands/ios/launch-app.js.map +1 -1
- package/dist/commands/ios/record.d.ts +2 -0
- package/dist/commands/ios/record.d.ts.map +1 -1
- package/dist/commands/ios/record.js +27 -3
- package/dist/commands/ios/record.js.map +1 -1
- package/dist/commands/ios/recordings.d.ts +17 -0
- package/dist/commands/ios/recordings.d.ts.map +1 -0
- package/dist/commands/ios/recordings.js +35 -0
- package/dist/commands/ios/recordings.js.map +1 -0
- package/dist/commands/ios/tunnel/index.d.ts +3 -9
- package/dist/commands/ios/tunnel/index.d.ts.map +1 -1
- package/dist/commands/ios/tunnel/index.js +33 -239
- package/dist/commands/ios/tunnel/index.js.map +1 -1
- package/dist/commands/ios/tunnel/status.d.ts.map +1 -1
- package/dist/commands/ios/tunnel/status.js +17 -41
- package/dist/commands/ios/tunnel/status.js.map +1 -1
- package/dist/commands/ios/tunnel/stop.d.ts +0 -4
- package/dist/commands/ios/tunnel/stop.d.ts.map +1 -1
- package/dist/commands/ios/tunnel/stop.js +13 -111
- package/dist/commands/ios/tunnel/stop.js.map +1 -1
- package/dist/commands/xcode/build.d.ts +1 -0
- package/dist/commands/xcode/build.d.ts.map +1 -1
- package/dist/commands/xcode/build.js +16 -0
- package/dist/commands/xcode/build.js.map +1 -1
- package/dist/lib/duration.d.ts +5 -0
- package/dist/lib/duration.d.ts.map +1 -1
- package/dist/lib/duration.js +21 -0
- package/dist/lib/duration.js.map +1 -1
- package/dist/lib/session-artifacts.d.ts +11 -0
- package/dist/lib/session-artifacts.d.ts.map +1 -0
- package/dist/lib/session-artifacts.js +30 -0
- package/dist/lib/session-artifacts.js.map +1 -0
- package/dist/lib/session-captures.d.ts +41 -0
- package/dist/lib/session-captures.d.ts.map +1 -0
- package/dist/lib/session-captures.js +55 -0
- package/dist/lib/session-captures.js.map +1 -0
- package/dist/lib/tunnel-command.d.ts +98 -0
- package/dist/lib/tunnel-command.d.ts.map +1 -0
- package/dist/lib/tunnel-command.js +542 -0
- package/dist/lib/tunnel-command.js.map +1 -0
- package/dist/lib/tunnel-command.test.d.ts +2 -0
- package/dist/lib/tunnel-command.test.d.ts.map +1 -0
- package/dist/lib/tunnel-command.test.js +91 -0
- package/dist/lib/tunnel-command.test.js.map +1 -0
- package/dist/lib/tunnel-har.d.ts +14 -0
- package/dist/lib/tunnel-har.d.ts.map +1 -0
- package/dist/lib/tunnel-har.js +150 -0
- package/dist/lib/tunnel-har.js.map +1 -0
- package/dist/lib/tunnel-har.test.d.ts +2 -0
- package/dist/lib/tunnel-har.test.d.ts.map +1 -0
- package/dist/lib/tunnel-har.test.js +164 -0
- package/dist/lib/tunnel-har.test.js.map +1 -0
- package/dist/lib/tunnel-process.d.ts +98 -0
- package/dist/lib/tunnel-process.d.ts.map +1 -0
- package/dist/lib/{ios-tunnel-process.js → tunnel-process.js} +87 -97
- package/dist/lib/tunnel-process.js.map +1 -0
- package/dist/lib/tunnel-process.test.d.ts +2 -0
- package/dist/lib/tunnel-process.test.d.ts.map +1 -0
- package/dist/lib/tunnel-process.test.js +428 -0
- package/dist/lib/tunnel-process.test.js.map +1 -0
- package/dist/lib/xcode-signing-options.d.ts +10 -0
- package/dist/lib/xcode-signing-options.d.ts.map +1 -1
- package/dist/lib/xcode-signing-options.js +42 -0
- package/dist/lib/xcode-signing-options.js.map +1 -1
- package/dist/lib/xcode-signing-options.test.js +32 -0
- package/dist/lib/xcode-signing-options.test.js.map +1 -1
- package/package.json +2 -2
- package/dist/lib/ios-tunnel-process.d.ts +0 -70
- package/dist/lib/ios-tunnel-process.d.ts.map +0 -1
- package/dist/lib/ios-tunnel-process.js.map +0 -1
- package/dist/lib/ios-tunnel-process.test.d.ts +0 -2
- package/dist/lib/ios-tunnel-process.test.d.ts.map +0 -1
- package/dist/lib/ios-tunnel-process.test.js +0 -339
- package/dist/lib/ios-tunnel-process.test.js.map +0 -1
|
@@ -3,10 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
7
|
-
exports.
|
|
6
|
+
exports.TUNNELS_ROOT = void 0;
|
|
7
|
+
exports.parseTunnelSelectors = parseTunnelSelectors;
|
|
8
8
|
exports.newTunnelOwner = newTunnelOwner;
|
|
9
|
-
exports.
|
|
9
|
+
exports.formatTunnelSelectors = formatTunnelSelectors;
|
|
10
10
|
exports.formatTunnelDialFailure = formatTunnelDialFailure;
|
|
11
11
|
exports.buildTunnelServeArgs = buildTunnelServeArgs;
|
|
12
12
|
exports.tunnelChildEnvironment = tunnelChildEnvironment;
|
|
@@ -17,9 +17,10 @@ exports.updateTunnelProcess = updateTunnelProcess;
|
|
|
17
17
|
exports.loadTunnelProcess = loadTunnelProcess;
|
|
18
18
|
exports.listTunnelProcesses = listTunnelProcesses;
|
|
19
19
|
exports.selectTunnelOwnersForStop = selectTunnelOwnersForStop;
|
|
20
|
-
exports.tunnelOwnerRemainsSelectedForStop = tunnelOwnerRemainsSelectedForStop;
|
|
21
20
|
exports.subscribeTunnelDisconnect = subscribeTunnelDisconnect;
|
|
22
21
|
exports.stopTunnelErrorIsNotFound = stopTunnelErrorIsNotFound;
|
|
22
|
+
exports.markTunnelProcessCancelled = markTunnelProcessCancelled;
|
|
23
|
+
exports.isTunnelProcessCancelled = isTunnelProcessCancelled;
|
|
23
24
|
exports.clearTunnelProcess = clearTunnelProcess;
|
|
24
25
|
exports.pruneTunnelLogs = pruneTunnelLogs;
|
|
25
26
|
exports.isProcessAlive = isProcessAlive;
|
|
@@ -33,46 +34,26 @@ exports.capTunnelLog = capTunnelLog;
|
|
|
33
34
|
const child_process_1 = require("child_process");
|
|
34
35
|
const crypto_1 = __importDefault(require("crypto"));
|
|
35
36
|
const fs_1 = __importDefault(require("fs"));
|
|
36
|
-
const net_1 = __importDefault(require("net"));
|
|
37
37
|
const os_1 = __importDefault(require("os"));
|
|
38
38
|
const path_1 = __importDefault(require("path"));
|
|
39
|
-
|
|
39
|
+
const api_1 = require("@limrun/api");
|
|
40
|
+
exports.TUNNELS_ROOT = path_1.default.join(os_1.default.homedir(), '.lim', 'tunnels');
|
|
40
41
|
const OWNER_PATTERN = /^[0-9a-f]{32}$/;
|
|
41
|
-
function
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const match = /^\[([^\]]+)\]:(\d+)$/.exec(value);
|
|
46
|
-
if (!match?.[1] || !match[2]) {
|
|
47
|
-
throw new Error(`Invalid route "${value}"; use [IPv6]:port`);
|
|
48
|
-
}
|
|
49
|
-
host = match[1];
|
|
50
|
-
portText = match[2];
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
const separator = value.lastIndexOf(':');
|
|
54
|
-
if (separator <= 0 || value.indexOf(':') !== separator) {
|
|
55
|
-
throw new Error(`Invalid route "${value}"; use host:port or [IPv6]:port`);
|
|
56
|
-
}
|
|
57
|
-
host = value.slice(0, separator);
|
|
58
|
-
portText = value.slice(separator + 1);
|
|
59
|
-
}
|
|
60
|
-
const port = Number(portText);
|
|
61
|
-
const route = canonicalizeTunnelRoute(host, port);
|
|
62
|
-
if (route) {
|
|
63
|
-
return route;
|
|
42
|
+
function parseTunnelSelectors(values, options = {}) {
|
|
43
|
+
const selectors = (0, api_1.validateDestinationTunnelSelectors)(values, options.minPort === undefined ? {} : { minRoutePort: options.minPort });
|
|
44
|
+
if (options.allowDomains === false && selectors.some((selector) => !selector.includes(':'))) {
|
|
45
|
+
throw new Error('This tunnel supports only localhost:port or literal IP:port selectors');
|
|
64
46
|
}
|
|
65
|
-
|
|
47
|
+
return selectors;
|
|
66
48
|
}
|
|
67
49
|
function newTunnelOwner() {
|
|
68
50
|
return crypto_1.default.randomBytes(16).toString('hex');
|
|
69
51
|
}
|
|
70
|
-
function
|
|
71
|
-
|
|
72
|
-
return `${host}:${route.port}`;
|
|
52
|
+
function formatTunnelSelectors(selectors) {
|
|
53
|
+
return [...selectors];
|
|
73
54
|
}
|
|
74
55
|
function formatTunnelDialFailure(failure) {
|
|
75
|
-
const correlationIds = `tunnel ${failure.tunnelId}, connection ${failure.connectionId}, ${failure.
|
|
56
|
+
const correlationIds = `tunnel ${failure.tunnelId}, connection ${failure.connectionId}, ${failure.selectorId}`;
|
|
76
57
|
const failureDetails = failure.osCode ? `${failure.reason}, ${failure.osCode}` : failure.reason;
|
|
77
58
|
return `Last dial failure: ${correlationIds} (${failureDetails})`;
|
|
78
59
|
}
|
|
@@ -80,14 +61,26 @@ function buildTunnelServeArgs(options) {
|
|
|
80
61
|
assertOwner(options.owner);
|
|
81
62
|
return [
|
|
82
63
|
options.scriptPath,
|
|
83
|
-
|
|
64
|
+
options.product,
|
|
84
65
|
'tunnel',
|
|
85
66
|
'--serve',
|
|
86
67
|
'--no-create',
|
|
87
68
|
'--id',
|
|
88
69
|
options.instanceId,
|
|
89
70
|
`--tunnel-owner=${options.owner}`,
|
|
90
|
-
...options.
|
|
71
|
+
...(options.verbose ? ['--verbose'] : []),
|
|
72
|
+
...(options.product === 'android' && options.inspect !== undefined ?
|
|
73
|
+
[options.inspect ? '--inspect' : '--no-inspect']
|
|
74
|
+
: []),
|
|
75
|
+
...(options.product === 'android' && options.persist ? ['--persist'] : []),
|
|
76
|
+
...(options.product === 'android' && options.ttlSeconds !== undefined ?
|
|
77
|
+
['--ttl', String(options.ttlSeconds)]
|
|
78
|
+
: []),
|
|
79
|
+
...(options.product === 'android' && options.harPath ? ['--har', options.harPath] : []),
|
|
80
|
+
...(options.product === 'android' && options.harBodyLimit !== undefined ?
|
|
81
|
+
['--har-body-limit', String(options.harBodyLimit)]
|
|
82
|
+
: []),
|
|
83
|
+
...formatTunnelSelectors(options.selectors).flatMap((selector) => ['--selector', selector]),
|
|
91
84
|
];
|
|
92
85
|
}
|
|
93
86
|
function tunnelChildEnvironment(apiKey, environment = process.env) {
|
|
@@ -123,7 +116,7 @@ function tunnelProcessDirectory(instanceId, root) {
|
|
|
123
116
|
const key = crypto_1.default.createHash('sha256').update(instanceId).digest('hex').slice(0, 12);
|
|
124
117
|
return path_1.default.join(root, key);
|
|
125
118
|
}
|
|
126
|
-
function tunnelProcessPaths(instanceId, owner, root = exports.
|
|
119
|
+
function tunnelProcessPaths(instanceId, owner, root = exports.TUNNELS_ROOT) {
|
|
127
120
|
assertOwner(owner);
|
|
128
121
|
const directory = tunnelProcessDirectory(instanceId, root);
|
|
129
122
|
return {
|
|
@@ -133,7 +126,7 @@ function tunnelProcessPaths(instanceId, owner, root = exports.IOS_TUNNELS_ROOT)
|
|
|
133
126
|
cancelled: path_1.default.join(directory, `${owner}.cancelled`),
|
|
134
127
|
};
|
|
135
128
|
}
|
|
136
|
-
function claimTunnelProcess(state, root = exports.
|
|
129
|
+
function claimTunnelProcess(state, root = exports.TUNNELS_ROOT) {
|
|
137
130
|
const paths = tunnelProcessPaths(state.instanceId, state.owner, root);
|
|
138
131
|
validateTunnelProcessState(state, state.instanceId, paths);
|
|
139
132
|
if (fs_1.default.existsSync(paths.cancelled))
|
|
@@ -157,7 +150,7 @@ function claimTunnelProcess(state, root = exports.IOS_TUNNELS_ROOT) {
|
|
|
157
150
|
fs_1.default.rmSync(temporary, { force: true });
|
|
158
151
|
}
|
|
159
152
|
}
|
|
160
|
-
function updateTunnelProcess(state, expectedOwner, root = exports.
|
|
153
|
+
function updateTunnelProcess(state, expectedOwner, root = exports.TUNNELS_ROOT) {
|
|
161
154
|
if (state.owner !== expectedOwner) {
|
|
162
155
|
throw new Error('Tunnel process ownership changed during startup');
|
|
163
156
|
}
|
|
@@ -182,7 +175,7 @@ function updateTunnelProcess(state, expectedOwner, root = exports.IOS_TUNNELS_RO
|
|
|
182
175
|
fs_1.default.rmSync(temporary, { force: true });
|
|
183
176
|
}
|
|
184
177
|
}
|
|
185
|
-
function loadTunnelProcess(instanceId, owner, root = exports.
|
|
178
|
+
function loadTunnelProcess(instanceId, owner, root = exports.TUNNELS_ROOT) {
|
|
186
179
|
const paths = tunnelProcessPaths(instanceId, owner, root);
|
|
187
180
|
try {
|
|
188
181
|
const state = JSON.parse(fs_1.default.readFileSync(paths.state, 'utf8'));
|
|
@@ -193,7 +186,7 @@ function loadTunnelProcess(instanceId, owner, root = exports.IOS_TUNNELS_ROOT) {
|
|
|
193
186
|
return undefined;
|
|
194
187
|
}
|
|
195
188
|
}
|
|
196
|
-
function listTunnelProcesses(instanceId, root = exports.
|
|
189
|
+
function listTunnelProcesses(instanceId, root = exports.TUNNELS_ROOT) {
|
|
197
190
|
const directory = tunnelProcessDirectory(instanceId, root);
|
|
198
191
|
let entries;
|
|
199
192
|
try {
|
|
@@ -218,9 +211,6 @@ function selectTunnelOwnersForStop(owners, tunnelId) {
|
|
|
218
211
|
return owners;
|
|
219
212
|
return owners.filter((state) => state.status === 'starting' || state.tunnelId === tunnelId);
|
|
220
213
|
}
|
|
221
|
-
function tunnelOwnerRemainsSelectedForStop(snapshot, current, tunnelId) {
|
|
222
|
-
return !tunnelId || snapshot.status === 'starting' || current.tunnelId === tunnelId;
|
|
223
|
-
}
|
|
224
214
|
function subscribeTunnelDisconnect(tunnel, onDisconnect) {
|
|
225
215
|
let disconnected = false;
|
|
226
216
|
let unsubscribe = () => { };
|
|
@@ -246,14 +236,15 @@ function subscribeTunnelDisconnect(tunnel, onDisconnect) {
|
|
|
246
236
|
function stopTunnelErrorIsNotFound(error) {
|
|
247
237
|
return error instanceof Error && error.message.startsWith('stopTunnel failed: 404 ');
|
|
248
238
|
}
|
|
249
|
-
|
|
239
|
+
/**
|
|
240
|
+
* Mark an owner as cancelled without removing its state. Cancellation is
|
|
241
|
+
* observed by the serving child before every reconnect attempt and by every
|
|
242
|
+
* state update, so a cancelled starting owner can never recreate the tunnel
|
|
243
|
+
* between our stop signal and its exit.
|
|
244
|
+
*/
|
|
245
|
+
function markTunnelProcessCancelled(instanceId, owner, root = exports.TUNNELS_ROOT) {
|
|
250
246
|
const paths = tunnelProcessPaths(instanceId, owner, root);
|
|
251
|
-
|
|
252
|
-
if (state && state.pid !== process.pid) {
|
|
253
|
-
const identity = tunnelOwnerProcessIdentity(state);
|
|
254
|
-
if (identity === 'match' || identity === 'unknown')
|
|
255
|
-
return false;
|
|
256
|
-
}
|
|
247
|
+
fs_1.default.mkdirSync(paths.directory, { recursive: true, mode: 0o700 });
|
|
257
248
|
try {
|
|
258
249
|
fs_1.default.writeFileSync(paths.cancelled, '', { flag: 'wx', mode: 0o600 });
|
|
259
250
|
}
|
|
@@ -261,6 +252,19 @@ function clearTunnelProcess(instanceId, owner, root = exports.IOS_TUNNELS_ROOT)
|
|
|
261
252
|
if (error.code !== 'EEXIST')
|
|
262
253
|
throw error;
|
|
263
254
|
}
|
|
255
|
+
}
|
|
256
|
+
function isTunnelProcessCancelled(instanceId, owner, root = exports.TUNNELS_ROOT) {
|
|
257
|
+
return fs_1.default.existsSync(tunnelProcessPaths(instanceId, owner, root).cancelled);
|
|
258
|
+
}
|
|
259
|
+
function clearTunnelProcess(instanceId, owner, root = exports.TUNNELS_ROOT) {
|
|
260
|
+
const paths = tunnelProcessPaths(instanceId, owner, root);
|
|
261
|
+
const state = loadTunnelProcess(instanceId, owner, root);
|
|
262
|
+
if (state && state.pid !== process.pid) {
|
|
263
|
+
const identity = tunnelOwnerProcessIdentity(state);
|
|
264
|
+
if (identity === 'match' || identity === 'unknown')
|
|
265
|
+
return false;
|
|
266
|
+
}
|
|
267
|
+
markTunnelProcessCancelled(instanceId, owner, root);
|
|
264
268
|
try {
|
|
265
269
|
fs_1.default.unlinkSync(paths.state);
|
|
266
270
|
pruneTunnelLogs(instanceId, root);
|
|
@@ -272,7 +276,7 @@ function clearTunnelProcess(instanceId, owner, root = exports.IOS_TUNNELS_ROOT)
|
|
|
272
276
|
throw error;
|
|
273
277
|
}
|
|
274
278
|
}
|
|
275
|
-
function pruneTunnelLogs(instanceId, root = exports.
|
|
279
|
+
function pruneTunnelLogs(instanceId, root = exports.TUNNELS_ROOT, retain = 5) {
|
|
276
280
|
const directory = tunnelProcessDirectory(instanceId, root);
|
|
277
281
|
let entries;
|
|
278
282
|
try {
|
|
@@ -397,56 +401,21 @@ function capTunnelLog(logPath, maxBytes = 5 * 1024 * 1024) {
|
|
|
397
401
|
throw error;
|
|
398
402
|
}
|
|
399
403
|
}
|
|
400
|
-
function
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
const canonical = typeof route?.host === 'string' ? canonicalizeTunnelRoute(route.host, route.port) : undefined;
|
|
407
|
-
const key = canonical ? `${canonical.host}\0${canonical.port}` : '';
|
|
408
|
-
if (canonical?.host !== route.host || canonical.port !== route.port || seen.has(key)) {
|
|
409
|
-
throw new Error('Invalid tunnel routes');
|
|
410
|
-
}
|
|
411
|
-
seen.add(key);
|
|
412
|
-
}
|
|
413
|
-
return routes;
|
|
414
|
-
}
|
|
415
|
-
function canonicalizeTunnelRoute(host, port) {
|
|
416
|
-
if (!Number.isInteger(port) || port < 1 || port > 65535 || port === 53) {
|
|
417
|
-
return undefined;
|
|
418
|
-
}
|
|
419
|
-
if (Buffer.byteLength(host, 'utf8') === host.length && host.toLowerCase() === 'localhost') {
|
|
420
|
-
return { host: 'localhost', port };
|
|
421
|
-
}
|
|
422
|
-
const ipVersion = net_1.default.isIP(host);
|
|
423
|
-
if (ipVersion === 4) {
|
|
424
|
-
return { host, port };
|
|
425
|
-
}
|
|
426
|
-
if (ipVersion !== 6) {
|
|
427
|
-
return undefined;
|
|
428
|
-
}
|
|
429
|
-
const canonical = new URL(`http://[${host}]/`).hostname.slice(1, -1);
|
|
430
|
-
if (canonical !== '::1' && /^::(?:[0-9a-f]{1,4}:)?[0-9a-f]{1,4}$/.test(canonical)) {
|
|
431
|
-
return undefined;
|
|
432
|
-
}
|
|
433
|
-
const mapped = /^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/.exec(canonical);
|
|
434
|
-
if (!mapped?.[1] || !mapped[2]) {
|
|
435
|
-
return { host: canonical, port };
|
|
404
|
+
function validateStoredSelectors(selectors) {
|
|
405
|
+
const canonical = (0, api_1.validateDestinationTunnelSelectors)(selectors);
|
|
406
|
+
// Persisted state must already be canonical; anything else was not
|
|
407
|
+
// written by us and is rejected rather than silently normalized.
|
|
408
|
+
if (JSON.stringify(selectors) !== JSON.stringify(canonical)) {
|
|
409
|
+
throw new Error('Invalid tunnel process state');
|
|
436
410
|
}
|
|
437
|
-
|
|
438
|
-
const low = Number.parseInt(mapped[2], 16);
|
|
439
|
-
return {
|
|
440
|
-
host: `${high >> 8}.${high & 0xff}.${low >> 8}.${low & 0xff}`,
|
|
441
|
-
port,
|
|
442
|
-
};
|
|
411
|
+
return canonical;
|
|
443
412
|
}
|
|
444
413
|
function validateTunnelProcessState(state, instanceId, paths) {
|
|
445
414
|
const startedAt = typeof state.startedAt === 'string' ? Date.parse(state.startedAt) : Number.NaN;
|
|
446
415
|
const startedAtValid = Number.isFinite(startedAt) && new Date(startedAt).toISOString() === state.startedAt;
|
|
447
416
|
const age = Date.now() - startedAt;
|
|
448
417
|
try {
|
|
449
|
-
|
|
418
|
+
validateStoredSelectors(state.selectors);
|
|
450
419
|
}
|
|
451
420
|
catch {
|
|
452
421
|
throw new Error('Invalid tunnel process state');
|
|
@@ -454,17 +423,38 @@ function validateTunnelProcessState(state, instanceId, paths) {
|
|
|
454
423
|
const readyFieldsValid = state.status !== 'ready' ||
|
|
455
424
|
(state.pid > 0 && typeof state.tunnelId === 'string' && state.tunnelId.length > 0);
|
|
456
425
|
const startingFieldsValid = state.status !== 'starting' || state.tunnelId === undefined;
|
|
426
|
+
const inspectionFieldsValid = (state.inspect === undefined || typeof state.inspect === 'boolean') &&
|
|
427
|
+
(state.persist === undefined || typeof state.persist === 'boolean') &&
|
|
428
|
+
(state.ttlSeconds === undefined ||
|
|
429
|
+
(Number.isInteger(state.ttlSeconds) &&
|
|
430
|
+
state.ttlSeconds > 0 &&
|
|
431
|
+
state.ttlSeconds <= api_1.DESTINATION_TUNNEL_MAX_TTL_SECONDS)) &&
|
|
432
|
+
(state.harPath === undefined || (typeof state.harPath === 'string' && state.harPath.length > 0)) &&
|
|
433
|
+
(state.harBodyLimit === undefined ||
|
|
434
|
+
(Number.isInteger(state.harBodyLimit) &&
|
|
435
|
+
state.harBodyLimit > 0 &&
|
|
436
|
+
state.harBodyLimit <= api_1.DESTINATION_TUNNEL_MAX_BODY_BYTES)) &&
|
|
437
|
+
(state.harPath === undefined || state.inspect === true) &&
|
|
438
|
+
(state.persist !== true || state.inspect === true) &&
|
|
439
|
+
(state.ttlSeconds === undefined || state.persist === true) &&
|
|
440
|
+
(state.product === 'android' ||
|
|
441
|
+
(state.inspect === undefined &&
|
|
442
|
+
state.persist === undefined &&
|
|
443
|
+
state.ttlSeconds === undefined &&
|
|
444
|
+
state.harPath === undefined));
|
|
457
445
|
if (typeof state.owner !== 'string' ||
|
|
458
446
|
!OWNER_PATTERN.test(state.owner) ||
|
|
459
447
|
!Number.isInteger(state.pid) ||
|
|
460
448
|
state.pid < 0 ||
|
|
461
449
|
state.instanceId !== instanceId ||
|
|
450
|
+
(state.product !== 'ios' && state.product !== 'android') ||
|
|
462
451
|
(state.status !== 'starting' && state.status !== 'ready') ||
|
|
463
452
|
!startedAtValid ||
|
|
464
453
|
age < 0 ||
|
|
465
454
|
state.logPath !== paths.log ||
|
|
466
455
|
!readyFieldsValid ||
|
|
467
|
-
!startingFieldsValid
|
|
456
|
+
!startingFieldsValid ||
|
|
457
|
+
!inspectionFieldsValid) {
|
|
468
458
|
throw new Error('Invalid tunnel process state');
|
|
469
459
|
}
|
|
470
460
|
}
|
|
@@ -499,4 +489,4 @@ function readFileSuffix(filePath, maxBytes) {
|
|
|
499
489
|
fs_1.default.closeSync(descriptor);
|
|
500
490
|
}
|
|
501
491
|
}
|
|
502
|
-
//# sourceMappingURL=
|
|
492
|
+
//# sourceMappingURL=tunnel-process.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tunnel-process.js","sourceRoot":"","sources":["../../src/lib/tunnel-process.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tunnel-process.test.d.ts","sourceRoot":"","sources":["../../src/lib/tunnel-process.test.ts"],"names":[],"mappings":""}
|