@jonathanyee/devtunnel-ctl 0.1.0 → 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.
@@ -0,0 +1,80 @@
1
+ import { record, safeFault, bounded, Fault } from "./core.js";
2
+ import { validateHost } from "./host.js";
3
+ import { runHostSdk } from "./host-sdk.js";
4
+ const life = new AbortController();
5
+ let started = false, pending = 0;
6
+ let endpointAck;
7
+ const send = (message) => {
8
+ if (!process.connected || (pending > 0 && message.kind === 'heartbeat'))
9
+ return;
10
+ if (pending >= 32) {
11
+ life.abort();
12
+ throw new Fault('protocol', 'Host worker IPC backlog exceeded its limit.');
13
+ }
14
+ pending++;
15
+ process.send?.(message, error => {
16
+ pending--;
17
+ if (error)
18
+ life.abort();
19
+ });
20
+ };
21
+ const report = (message) => {
22
+ if (message.kind !== 'endpoint') {
23
+ send(message);
24
+ return;
25
+ }
26
+ return bounded(() => new Promise((resolve, reject) => {
27
+ if (endpointAck) {
28
+ reject(new Fault('protocol'));
29
+ return;
30
+ }
31
+ endpointAck = { id: message.id, resolve };
32
+ send(message);
33
+ }), 2000, life.signal).finally(() => { endpointAck = undefined; });
34
+ };
35
+ const disconnected = () => life.abort();
36
+ process.once('disconnect', disconnected);
37
+ process.once('SIGTERM', disconnected);
38
+ process.once('SIGINT', disconnected);
39
+ const initial = setTimeout(() => { life.abort(); process.disconnect?.(); }, 5000);
40
+ process.on('message', value => {
41
+ if (!record(value)) {
42
+ life.abort();
43
+ return;
44
+ }
45
+ if (value.kind === 'stop') {
46
+ life.abort();
47
+ return;
48
+ }
49
+ if (value.kind === 'endpoint-recorded' && value.id === endpointAck?.id) {
50
+ endpointAck?.resolve();
51
+ return;
52
+ }
53
+ if (value.kind !== 'start' || started) {
54
+ life.abort();
55
+ return;
56
+ }
57
+ started = true;
58
+ clearTimeout(initial);
59
+ let options;
60
+ try {
61
+ options = validateHost(value.options);
62
+ }
63
+ catch {
64
+ send({ kind: 'fault', code: 'invalid-config', retryAfterMs: 0 });
65
+ process.disconnect?.();
66
+ return;
67
+ }
68
+ const heartbeat = setInterval(() => send({ kind: 'heartbeat' }), 1000);
69
+ void runHostSdk(options, report, life.signal).catch(error => {
70
+ const fault = safeFault(error);
71
+ send({ kind: 'fault', code: fault.code, retryAfterMs: fault.retryAfterMs });
72
+ }).finally(() => {
73
+ clearInterval(heartbeat);
74
+ if (process.connected)
75
+ process.disconnect();
76
+ });
77
+ });
78
+ if (!process.send)
79
+ throw new Fault('invalid-config', 'The host worker requires a supervisor IPC channel.');
80
+ //# sourceMappingURL=host-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-worker.js","sourceRoot":"","sources":["../src/host-worker.ts"],"names":[],"mappings":"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"}
package/dist/host.d.ts ADDED
@@ -0,0 +1,43 @@
1
+ import type { Clock, FaultCode } from './core.ts';
2
+ export interface HostOptions {
3
+ tunnelId: string;
4
+ clusterId?: string;
5
+ helperPath: string;
6
+ probePorts: number[];
7
+ }
8
+ export interface HostStatus {
9
+ kind: 'status';
10
+ state: 'connecting' | 'connected' | 'verified' | 'degraded';
11
+ relayConnected: boolean;
12
+ ports: number[];
13
+ localUnavailable: number[];
14
+ verifiedPorts: number[];
15
+ probeFault?: FaultCode;
16
+ }
17
+ export type HostMessage = HostStatus | {
18
+ kind: 'heartbeat';
19
+ } | {
20
+ kind: 'endpoint';
21
+ id: string;
22
+ tunnelId: string;
23
+ clusterId: string;
24
+ } | {
25
+ kind: 'fault';
26
+ code: FaultCode;
27
+ retryAfterMs: number;
28
+ } | {
29
+ kind: 'retry';
30
+ attempt: number;
31
+ nextRetryAt: number;
32
+ };
33
+ export declare function validateHost(value: unknown): HostOptions;
34
+ export declare function parseHostMessage(value: unknown): HostMessage | undefined;
35
+ export interface HostDependencies {
36
+ worker(options: HostOptions, emit: (message: HostMessage) => void, signal: AbortSignal): Promise<void>;
37
+ report(message: HostMessage): void;
38
+ clock?: Clock;
39
+ random?: () => number;
40
+ sleep?(ms: number, signal: AbortSignal): Promise<void>;
41
+ }
42
+ export declare function sleep(ms: number, signal: AbortSignal): Promise<void>;
43
+ export declare function superviseHost(options: HostOptions, deps: HostDependencies, signal: AbortSignal): Promise<void>;
package/dist/host.js ADDED
@@ -0,0 +1,158 @@
1
+ import { isAbsolute } from 'node:path';
2
+ import { bounded, clock, Fault, isFaultCode, record, safeFault } from "./core.js";
3
+ const port = (v) => Number.isInteger(v) && Number(v) > 0 && Number(v) <= 65535;
4
+ const id = /^[a-z0-9][a-z0-9-]{0,62}$/i;
5
+ const terminal = (code) => ['login-required', 'access-denied', 'invalid-config', 'host-superseded', 'host-cleanup-failed'].includes(code);
6
+ export function validateHost(value) {
7
+ if (!record(value) || typeof value.tunnelId !== 'string' ||
8
+ typeof value.helperPath !== 'string' || !isAbsolute(value.helperPath) ||
9
+ /[\0\r\n]/.test(value.helperPath) || !Array.isArray(value.probePorts) ||
10
+ value.probePorts.length > 16 || !value.probePorts.every(port) ||
11
+ new Set(value.probePorts).size !== value.probePorts.length)
12
+ throw new Fault('invalid-config', 'Invalid host options or probe ports.');
13
+ const [tunnelId, suffix, extra] = value.tunnelId.split('.');
14
+ const clusterId = value.clusterId ?? suffix;
15
+ if (!tunnelId || !id.test(tunnelId) || extra !== undefined ||
16
+ (clusterId !== undefined && (typeof clusterId !== 'string' || !id.test(clusterId))) ||
17
+ (suffix !== undefined && value.clusterId !== undefined && suffix !== value.clusterId)) {
18
+ throw new Fault('invalid-config', 'Invalid host tunnel or cluster ID.');
19
+ }
20
+ return { tunnelId, ...(clusterId ? { clusterId: String(clusterId) } : {}),
21
+ helperPath: value.helperPath, probePorts: [...value.probePorts] };
22
+ }
23
+ export function parseHostMessage(value) {
24
+ if (!record(value))
25
+ return;
26
+ if (value.kind === 'heartbeat')
27
+ return { kind: 'heartbeat' };
28
+ if (value.kind === 'retry' && Number.isSafeInteger(value.attempt) && Number(value.attempt) > 0 &&
29
+ typeof value.nextRetryAt === 'number' && Number.isFinite(value.nextRetryAt) && value.nextRetryAt >= 0) {
30
+ return { kind: 'retry', attempt: Number(value.attempt), nextRetryAt: value.nextRetryAt };
31
+ }
32
+ if (value.kind === 'endpoint' && typeof value.id === 'string' && /^[a-f0-9-]{36}-relay$/.test(value.id) &&
33
+ typeof value.tunnelId === 'string' && id.test(value.tunnelId) && typeof value.clusterId === 'string' && id.test(value.clusterId)) {
34
+ return { kind: 'endpoint', id: value.id, tunnelId: value.tunnelId, clusterId: value.clusterId };
35
+ }
36
+ if (value.kind === 'fault' && isFaultCode(value.code) && typeof value.retryAfterMs === 'number' &&
37
+ Number.isFinite(value.retryAfterMs) && value.retryAfterMs >= 0 && value.retryAfterMs <= 86400000) {
38
+ return { kind: 'fault', code: value.code, retryAfterMs: value.retryAfterMs };
39
+ }
40
+ if (value.kind !== 'status' || !['connecting', 'connected', 'verified', 'degraded'].includes(String(value.state)) ||
41
+ typeof value.relayConnected !== 'boolean' || (value.probeFault !== undefined && !isFaultCode(value.probeFault)))
42
+ return;
43
+ const arrays = [value.ports, value.localUnavailable, value.verifiedPorts];
44
+ if (!arrays.every(a => Array.isArray(a) && a.length <= 1024 && a.every(port) && new Set(a).size === a.length))
45
+ return;
46
+ const ports = value.ports, localUnavailable = value.localUnavailable, verifiedPorts = value.verifiedPorts;
47
+ if (localUnavailable.some(p => !ports.includes(p)) || verifiedPorts.some(p => !ports.includes(p) || localUnavailable.includes(p)) ||
48
+ (verifiedPorts.length > 0 && !value.relayConnected) || (value.state === 'verified' && (!value.relayConnected || !verifiedPorts.length)))
49
+ return;
50
+ return { kind: 'status', state: value.state, relayConnected: value.relayConnected,
51
+ ports: [...ports], localUnavailable: [...localUnavailable], verifiedPorts: [...verifiedPorts],
52
+ ...(isFaultCode(value.probeFault) ? { probeFault: value.probeFault } : {}) };
53
+ }
54
+ export function sleep(ms, signal) {
55
+ return new Promise((resolve, reject) => {
56
+ if (signal.aborted) {
57
+ reject(new Fault('aborted'));
58
+ return;
59
+ }
60
+ const aborted = () => { clearTimeout(timer); reject(new Fault('aborted')); };
61
+ const timer = setTimeout(() => { signal.removeEventListener('abort', aborted); resolve(); }, ms);
62
+ signal.addEventListener('abort', aborted, { once: true });
63
+ });
64
+ }
65
+ export async function superviseHost(options, deps, signal) {
66
+ const timer = deps.clock ?? clock;
67
+ let attempt = 0;
68
+ while (!signal.aborted) {
69
+ const life = new AbortController();
70
+ const parentAbort = () => life.abort();
71
+ signal.addEventListener('abort', parentAbort, { once: true });
72
+ const started = timer.now();
73
+ let lastHeartbeat = started, established = false, failure;
74
+ let cancelWatch = () => { };
75
+ const watch = () => {
76
+ if (timer.now() - lastHeartbeat > 15000 || (!established && timer.now() - started > 45000)) {
77
+ failure ??= new Fault('timeout');
78
+ life.abort();
79
+ return;
80
+ }
81
+ cancelWatch = timer.later(1000, watch);
82
+ };
83
+ watch();
84
+ let cancelAbort = () => { };
85
+ const aborted = new Promise(resolve => {
86
+ const abort = () => resolve();
87
+ life.signal.addEventListener('abort', abort, { once: true });
88
+ cancelAbort = () => life.signal.removeEventListener('abort', abort);
89
+ });
90
+ const work = Promise.resolve().then(() => {
91
+ if (signal.aborted)
92
+ life.abort();
93
+ return deps.worker(options, message => {
94
+ if (life.signal.aborted)
95
+ return;
96
+ if (message.kind === 'heartbeat') {
97
+ lastHeartbeat = timer.now();
98
+ return;
99
+ }
100
+ if (message.kind === 'fault') {
101
+ failure = new Fault(message.code, undefined, message.retryAfterMs);
102
+ life.abort();
103
+ }
104
+ else if (message.kind === 'status') {
105
+ established ||= message.relayConnected;
106
+ if ((message.state === 'verified' && options.probePorts.every(p => message.verifiedPorts.includes(p))) ||
107
+ (!options.probePorts.length && message.relayConnected))
108
+ attempt = 0;
109
+ deps.report(message);
110
+ }
111
+ }, life.signal);
112
+ });
113
+ try {
114
+ await Promise.race([work, aborted]);
115
+ }
116
+ catch (error) {
117
+ failure ??= safeFault(error);
118
+ }
119
+ finally {
120
+ life.abort();
121
+ cancelWatch();
122
+ cancelAbort();
123
+ signal.removeEventListener('abort', parentAbort);
124
+ }
125
+ // A replacement cannot overlap a worker that has not confirmed its exit.
126
+ try {
127
+ await bounded(() => work.catch(error => {
128
+ const fault = safeFault(error);
129
+ if (!failure || terminal(fault.code))
130
+ failure = fault;
131
+ }), 25000, undefined, undefined, timer);
132
+ }
133
+ catch {
134
+ throw new Fault('internal', 'Host worker exit could not be confirmed; refusing overlapping hosts.');
135
+ }
136
+ if (signal.aborted) {
137
+ if (failure?.code === 'host-cleanup-failed') {
138
+ deps.report({ kind: 'fault', code: failure.code, retryAfterMs: failure.retryAfterMs });
139
+ }
140
+ return;
141
+ }
142
+ failure ??= new Fault('retrying');
143
+ deps.report({ kind: 'fault', code: failure.code, retryAfterMs: failure.retryAfterMs });
144
+ if (terminal(failure.code))
145
+ return;
146
+ const backoff = Math.min(15000, 1000 * 2 ** Math.min(attempt++, 5));
147
+ const delay = Math.max(failure.retryAfterMs, Math.round(backoff * (0.5 + (deps.random ?? Math.random)() * 0.5)));
148
+ deps.report({ kind: 'retry', attempt, nextRetryAt: timer.now() + delay });
149
+ try {
150
+ await (deps.sleep ?? sleep)(delay, signal);
151
+ }
152
+ catch (error) {
153
+ if (!signal.aborted)
154
+ throw error;
155
+ }
156
+ }
157
+ }
158
+ //# sourceMappingURL=host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../src/host.ts"],"names":[],"mappings":"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"}
package/dist/launchd.d.ts CHANGED
@@ -5,6 +5,11 @@ interface AgentPaths {
5
5
  entry: string;
6
6
  state: string;
7
7
  }
8
+ export declare const xml: (value: string) => string;
8
9
  export declare function launchAgent(paths: AgentPaths): string;
10
+ export declare function launchctl(args: string[], allowAbsent?: boolean): Promise<{
11
+ loaded: boolean;
12
+ pid?: number;
13
+ }>;
9
14
  export declare function service(action: string, store: Store, entry: string): Promise<unknown>;
10
15
  export {};
package/dist/launchd.js CHANGED
@@ -7,7 +7,7 @@ import { bounded, Fault } from "./core.js";
7
7
  import { DaemonLock } from "./lock.js";
8
8
  import { request } from "./rpc.js";
9
9
  import { executable } from "./paths.js";
10
- const xml = (value) => value.replace(/[<>&"']/g, ch => ({ '<': '&lt;', '>': '&gt;', '&': '&amp;', '"': '&quot;', "'": '&apos;' })[ch]);
10
+ export const xml = (value) => value.replace(/[<>&"']/g, ch => ({ '<': '&lt;', '>': '&gt;', '&': '&amp;', '"': '&quot;', "'": '&apos;' })[ch]);
11
11
  export function launchAgent(paths) {
12
12
  if (![paths.node, paths.entry, paths.state].every(p => isAbsolute(p) && !/[\0\r\n]/.test(p))) {
13
13
  throw new Fault('invalid-config', 'launchd requires absolute runtime, entrypoint and state paths.');
@@ -26,21 +26,25 @@ export function launchAgent(paths) {
26
26
  </dict></plist>
27
27
  `;
28
28
  }
29
- async function launchctl(args, allowAbsent = false) {
29
+ export async function launchctl(args, allowAbsent = false) {
30
30
  return bounded(signal => new Promise((resolve, reject) => {
31
31
  const child = spawn('/bin/launchctl', args, { shell: false, stdio: ['ignore', 'pipe', 'pipe'] });
32
- let bytes = 0;
32
+ let bytes = 0, stdout = '';
33
33
  const abort = () => { child.kill('SIGKILL'); };
34
34
  signal.addEventListener('abort', abort, { once: true });
35
35
  child.stdout.on('data', b => { bytes += b.length; if (bytes > 65536)
36
- abort(); });
36
+ abort();
37
+ else
38
+ stdout += b.toString(); });
37
39
  child.stderr.on('data', b => { bytes += b.length; if (bytes > 65536)
38
40
  abort(); });
39
41
  child.on('error', () => { signal.removeEventListener('abort', abort); reject(new Fault('internal', 'Cannot execute launchctl.')); });
40
42
  child.on('close', code => {
41
43
  signal.removeEventListener('abort', abort);
42
- if (code === 0)
43
- resolve({ loaded: true });
44
+ if (code === 0) {
45
+ const pid = /^\s*pid = ([1-9][0-9]*)\s*$/m.exec(stdout)?.[1];
46
+ resolve({ loaded: true, ...(pid ? { pid: Number(pid) } : {}) });
47
+ }
44
48
  else if (allowAbsent && code === 113)
45
49
  resolve({ loaded: false });
46
50
  else
@@ -1 +1 @@
1
- {"version":3,"file":"launchd.js","sourceRoot":"","sources":["../src/launchd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"launchd.js","sourceRoot":"","sources":["../src/launchd.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  import { TunnelRelayTunnelClient } from '@microsoft/dev-tunnels-connections';
2
2
  import { TunnelManagementHttpClient } from '@microsoft/dev-tunnels-management';
3
+ import type { CancellationToken } from '@microsoft/dev-tunnels-ssh';
3
4
  import type { Tunnel } from '@microsoft/dev-tunnels-contracts';
4
5
  import { Agent } from 'node:https';
5
6
  import type { Duplex } from 'node:stream';
6
7
  import type { Profile } from './config.ts';
7
8
  import { TokenProvider } from './auth.ts';
9
+ import type { TokenScope } from './auth.ts';
8
10
  import { Fault } from './core.ts';
9
11
  export interface TransportEvent {
10
12
  kind: 'relay' | 'keepalive-failed' | 'keepalive-succeeded' | 'retry';
@@ -19,7 +21,9 @@ export interface Session {
19
21
  export interface Transport {
20
22
  connect(profile: Profile, signal: AbortSignal, event: (event: TransportEvent) => void): Promise<Session>;
21
23
  }
22
- export declare function resolveTunnel(profile: Profile, tokens: TokenProvider, management: TunnelManagementHttpClient, signal: AbortSignal): Promise<Tunnel>;
24
+ export declare function sdkCall<T>(signal: AbortSignal, action: (cancellation: CancellationToken) => Promise<T>): Promise<T>;
25
+ export declare function sdkRefresh<T>(signal: AbortSignal, cancellation: CancellationToken | undefined, timeoutMs: number, action: (signal: AbortSignal) => Promise<T>): Promise<T>;
26
+ export declare function resolveTunnel(profile: Pick<Profile, 'tunnelId' | 'clusterId'>, tokens: TokenProvider, management: TunnelManagementHttpClient, signal: AbortSignal, scope?: TokenScope): Promise<Tunnel>;
23
27
  export declare class SdkTransport implements Transport {
24
28
  private readonly tokens;
25
29
  private readonly managementFactory;
@@ -5,7 +5,7 @@ import { TunnelConnectionMode } from '@microsoft/dev-tunnels-contracts';
5
5
  import { Agent } from 'node:https';
6
6
  import { TokenProvider } from "./auth.js";
7
7
  import { bounded, Fault, safeFault } from "./core.js";
8
- async function sdkCall(signal, action) {
8
+ export async function sdkCall(signal, action) {
9
9
  const source = new CancellationTokenSource();
10
10
  const abort = () => source.cancel();
11
11
  signal.addEventListener('abort', abort, { once: true });
@@ -19,7 +19,7 @@ async function sdkCall(signal, action) {
19
19
  source.dispose();
20
20
  }
21
21
  }
22
- async function sdkRefresh(signal, cancellation, timeoutMs, action) {
22
+ export async function sdkRefresh(signal, cancellation, timeoutMs, action) {
23
23
  const controller = new AbortController();
24
24
  const subscription = cancellation?.onCancellationRequested(() => controller.abort());
25
25
  if (cancellation?.isCancellationRequested)
@@ -31,9 +31,9 @@ async function sdkRefresh(signal, cancellation, timeoutMs, action) {
31
31
  subscription?.dispose();
32
32
  }
33
33
  }
34
- export async function resolveTunnel(profile, tokens, management, signal) {
34
+ export async function resolveTunnel(profile, tokens, management, signal, scope = 'connect') {
35
35
  for (let attempt = 0; attempt < 2; attempt++) {
36
- const token = await tokens.get(profile, signal, attempt > 0);
36
+ const token = await tokens.get(profile, signal, attempt > 0, scope);
37
37
  const clusterId = profile.clusterId ?? token.clusterId;
38
38
  if (!clusterId)
39
39
  throw new Fault('invalid-config', 'Specify --cluster: the token has no SDK routing hint.');
@@ -41,7 +41,7 @@ export async function resolveTunnel(profile, tokens, management, signal) {
41
41
  const tunnel = await bounded(inner => sdkCall(inner, cancellation => management.getTunnel({ tunnelId: profile.tunnelId, clusterId }, { accessToken: token.value, includePorts: true, followRedirects: true }, cancellation)), 8000, signal);
42
42
  if (!tunnel)
43
43
  throw new Fault('remote-unavailable');
44
- return { ...tunnel, accessTokens: { connect: token.value } };
44
+ return { ...tunnel, accessTokens: { [scope]: token.value } };
45
45
  }
46
46
  catch (error) {
47
47
  const fault = safeFault(error);
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-transport.js","sourceRoot":"","sources":["../src/sdk-transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdk-transport.js","sourceRoot":"","sources":["../src/sdk-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AACrH,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AACtG,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAGnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAgBtD,MAAM,CAAC,KAAK,UAAU,OAAO,CAAI,MAAmB,EAAE,MAAuD;IAC3G,MAAM,MAAM,GAAG,IAAI,uBAAuB,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACpC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,IAAI,MAAM,CAAC,OAAO;QAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IACpC,IAAI,CAAC;QAAC,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;YAClC,CAAC;QAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAAC,CAAC;AAC3E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAI,MAAmB,EAAE,YAA2C,EAClG,SAAiB,EAAE,MAA2C;IAC9D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,YAAY,GAAG,YAAY,EAAE,uBAAuB,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;IACrF,IAAI,YAAY,EAAE,uBAAuB;QAAE,UAAU,CAAC,KAAK,EAAE,CAAC;IAC9D,IAAI,CAAC;QAAC,OAAO,MAAM,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;YACtF,CAAC;QAAC,YAAY,EAAE,OAAO,EAAE,CAAC;IAAC,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAgD,EAAE,MAAqB,EAAE,UAAsC,EAAE,MAAmB,EACpI,QAAoB,SAAS;IAE7B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC;QACvD,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,uDAAuD,CAAC,CAAC;QAC3G,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CACvF,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,EACzC,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,YAAY,CACtF,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAClB,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACnD,OAAO,EAAE,GAAG,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAC/D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,IAAI,OAAO,KAAK,CAAC;gBAAE,SAAS;YAC/D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,OAAO,YAAY;IACN,MAAM,CAAgB;IACtB,iBAAiB,CAA+C;IAChE,aAAa,CAAgC;IAC9D,YAAY,MAAqB,EAC/B,oBAAoB,CAAC,KAAY,EAAE,EAAE,CAAC,IAAI,0BAA0B,CAClE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,qBAAqB,CAAC,sBAAsB,EACzF,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,EAC9B,aAAa,GAAG,GAAG,EAAE,CAAC,IAAI,uBAAuB,CAAC,SAAS,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC;QAEtE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,OAAgB,EAAE,MAAmB,EAAE,KAAkC;QACrF,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACjD,UAAU,CAAC,KAAK,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QAC5B,UAAU,CAAC,qBAAqB,GAAG,KAAK,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACpC,MAAM,CAAC,KAAK,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QACxB,MAAM,CAAC,uCAAuC,GAAG,KAAK,CAAC;QACvD,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,MAAM,aAAa,GAAG,CAAC,MAAc,EAAQ,EAAE;YAC7C,IAAI,MAAM,YAAY,YAAY;gBAAE,MAAM,CAAC,OAAO,EAAE,CAAC;YACrD,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC,CAAC;QACF,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAmB,EAAmB,EAAE;YAC9D,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;YAC7E,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,oBAAoB,CAAC,WAAW,CAAC,CAAC;YACvG,IAAI,CAAC,SAAS,EAAE,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAC9D,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE,CAAC;gBACnD,MAAM,IAAI,KAAK,CAAC,oBAAoB,EAAE,+EAA+E,CAAC,CAAC;YACzH,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QACF,MAAM,aAAa,GAA0B,EAAE,CAAC;QAChD,IAAI,QAAQ,GAAG,KAAK,EAAE,WAAW,GAAG,KAAK,EAAE,SAAS,GAAG,CAAC,EAAE,WAAW,GAAG,KAAK,EAAE,UAAU,GAAG,CAAC,CAAC;QAC9F,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,cAAiC,CAAC;QACtC,MAAM,oBAAoB,GAAG,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,eAAe,GAAG,CAAC,KAAc,EAAS,EAAE;YAChD,8EAA8E;YAC9E,IAAI,KAAK,YAAY,oBAAoB,IAAI,KAAK,CAAC,YAAY,CAAC,UAAU,KAAK,GAAG,IAAI,cAAc,EAAE,CAAC;gBACrG,OAAO,cAAc,CAAC;YACxB,CAAC;YACD,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC,CAAC;QACF,IAAI,QAAmC,CAAC;QACxC,MAAM,IAAI,GAAG,CAAC,CAAiB,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO;YAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7F,MAAM,OAAO,GAAG,GAAkB,EAAE;YAClC,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC;YAC9B,QAAQ,GAAG,IAAI,CAAC;YAChB,oBAAoB,EAAE,CAAC;YACvB,QAAQ,CAAC,KAAK,EAAE,CAAC;YACjB,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,KAAK,MAAM,MAAM,IAAI,OAAO;gBAAE,aAAa,CAAC,MAAM,CAAC,CAAC;YACpD,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC3C,KAAK,MAAM,YAAY,IAAI,aAAa;gBAAE,YAAY,CAAC,OAAO,EAAE,CAAC;YACjE,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACrG,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,GAAG,EAAE,GAAG,KAAK,OAAO,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1G,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,MAAM,CAAC,aAAa,GAAG;YACrB,iBAAiB,EAAE,KAAK,EAAE,GAAG,IAAuD,EAAE,EAAE;gBACtF,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,EAAE,4CAA4C,CAAC,CAAC;gBACvH,IAAI,CAAC;oBACH,OAAO,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EACjF,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EACzE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC5E,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAAC,KAAK,CAAC,OAAO,EAAE,CAAC;oBAAC,MAAM,KAAK,CAAC;gBAAC,CAAC;YACnD,CAAC;SACF,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAAC,MAAM,OAAO,EAAE,CAAC;YAAC,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;QAAC,CAAC;QACpE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE;YACpD,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,KAAK,gBAAgB,CAAC,SAAS,CAAC;YAC1D,MAAM,KAAK,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACjF,IAAI,SAAS,EAAE,CAAC;gBACd,WAAW,GAAG,IAAI,CAAC;gBAAC,UAAU,GAAG,CAAC,CAAC;gBAAC,SAAS,GAAG,CAAC,CAAC;gBAAC,WAAW,GAAG,KAAK,CAAC;gBACvE,oBAAoB,EAAE,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,CAAC,MAAM,KAAK,gBAAgB,CAAC,UAAU;oBACxC,CAAC,CAAC,CAAC,cAAc,KAAK,gBAAgB,CAAC,SAAS,IAAI,CAAC,CAAC,cAAc,KAAK,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC5G,SAAS,GAAG,CAAC,CAAC;oBAAC,WAAW,GAAG,KAAK,CAAC;oBACnC,oBAAoB,EAAE,CAAC;gBACzB,CAAC;gBACD,IAAI,WAAW,IAAI,CAAC,UAAU;oBAAE,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YACjE,CAAC;YACD,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC,CAAC;QACJ,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC;QACrF,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3F,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE;YACrD,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,gBAAgB,GAAG,CAAC,WAAW,IAAI,SAAS,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;YACzE,IAAI,gBAAgB;gBAAE,WAAW,GAAG,IAAI,CAAC;YACzC,yFAAyF;YACzF,CAAC,CAAC,KAAK,GAAG,CAAC,gBAAgB,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,CAAC;gBACtE,KAAK,CAAC,IAAI,KAAK,eAAe,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,cAAc,IAAI,CAAC,QAAQ,CAAC;YAC/F,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC,CAAC;QACJ,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE;YACxD,oBAAoB,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,YAAY,CAAC;YAC3B,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,KAAK,KAAK,YAAY,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;YACtF,CAAC,CAAC,iBAAiB,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE;gBAC/E,IAAI,CAAC,OAAO,EAAE;oBAAE,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC3C,IAAI,EAAE,SAAS,GAAG,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBACvD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1E,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACd,IAAI,CAAC,OAAO,EAAE;oBAAE,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC3C,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACf,IAAI,CAAC,OAAO,EAAE;oBAAE,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC/B,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;gBACvE,cAAc,GAAG,SAAS,CAAC;gBAC3B,MAAM,SAAS,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,CAAC;QACJ,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;YAC7C,CAAC,CAAC,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE;gBAC3E,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,0BAA0B,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK;aAC3F,EAAE,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CACnD,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YACzF,IAAI,QAAQ,IAAI,MAAM,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;YAC3D,OAAO;gBACL,IAAI,SAAS,KAAK,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,gBAAgB,KAAK,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC/F,IAAI,EAAE,KAAK,EAAC,UAAU,EAAC,EAAE;oBACvB,IAAI,QAAQ;wBAAE,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;oBACzC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAClE,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,EAAE,IAAI,EACxE,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;oBAC/D,IAAI,QAAQ,IAAI,UAAU,CAAC,OAAO,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;wBACvD,aAAa,CAAC,MAAM,CAAC,CAAC;wBACtB,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;oBAC7B,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACpB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;oBAChD,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;wBACxB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBACvB,4EAA4E;wBAC5E,IAAI,MAAM,YAAY,YAAY;4BAAE,MAAM,CAAC,OAAO,EAAE,CAAC;oBACvD,CAAC,CAAC,CAAC;oBACH,OAAO,MAAM,CAAC;gBAChB,CAAC;gBACD,OAAO;aACR,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACxG,MAAM,OAAO,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;YAChG,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
@@ -1,16 +1,17 @@
1
1
  {
2
2
  "name": "@jonathanyee/devtunnel-ctl",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@jonathanyee/devtunnel-ctl",
9
- "version": "0.1.0",
9
+ "version": "0.2.0",
10
10
  "license": "MIT",
11
11
  "os": [
12
12
  "darwin",
13
- "linux"
13
+ "linux",
14
+ "win32"
14
15
  ],
15
16
  "dependencies": {
16
17
  "@microsoft/dev-tunnels-connections": "1.3.61",
@@ -420,9 +421,9 @@
420
421
  }
421
422
  },
422
423
  "node_modules/follow-redirects": {
423
- "version": "1.16.1",
424
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.1.tgz",
425
- "integrity": "sha512-FNvFGzoMLWmE6Yj9spb/zjd7yiNCHiAW9/Tg9CXrQ8wuu32HtlJOwWO11OJafl5FfY3DxTdQ0vj42zU1kvv5jg==",
424
+ "version": "1.16.2",
425
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.2.tgz",
426
+ "integrity": "sha512-/kVP2U8z596Ia0gwFrwyIeo74ta5aVmSeU1FfAUMAmcEP5EP7zydmag3SLiN64NaRKef3lxsq7i/g7ltJQDGow==",
426
427
  "funding": [
427
428
  {
428
429
  "type": "individual",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@jonathanyee/devtunnel-ctl",
3
- "version": "0.1.0",
4
- "description": "Resilient SSH forwarding using the Microsoft Dev Tunnels SDK",
3
+ "version": "0.2.0",
4
+ "description": "Resilient hosting and SSH forwarding using the Microsoft Dev Tunnels SDK",
5
5
  "license": "MIT",
6
6
  "author": "jonyee",
7
7
  "repository": { "type": "git", "url": "git+https://github.com/jonyee/devtunnel-ctl.git" },
@@ -11,10 +11,10 @@
11
11
  "bin": { "devtunnel-ctl": "dist/main.js" },
12
12
  "files": ["dist", "npm-shrinkwrap.json"],
13
13
  "engines": { "node": ">=24" },
14
- "os": ["darwin", "linux"],
14
+ "os": ["darwin", "linux", "win32"],
15
15
  "publishConfig": { "access": "public", "registry": "https://registry.npmjs.org/" },
16
16
  "scripts": {
17
- "build": "tsc && chmod +x dist/main.js",
17
+ "build": "tsc && node -e \"if(process.platform!=='win32')require('node:fs').chmodSync('dist/main.js',0o755)\"",
18
18
  "typecheck": "tsc --noEmit && tsc -p tsconfig.tests.json",
19
19
  "test": "node --experimental-strip-types --test tests/*.test.ts",
20
20
  "prepack": "npm run build",