@vscode/component-explorer-cli 0.2.1-162 → 0.2.1-164
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/README.md +90 -0
- package/dist/_virtual/_build-info.js +1 -1
- package/dist/commands/mcpCommand.js +6 -1
- package/dist/commands/mcpCommand.js.map +1 -1
- package/dist/commands/serveCommand.d.ts +4 -1
- package/dist/commands/serveCommand.d.ts.map +1 -1
- package/dist/commands/serveCommand.js +91 -25
- package/dist/commands/serveCommand.js.map +1 -1
- package/dist/daemon/DaemonService.d.ts +5 -208
- package/dist/daemon/DaemonService.d.ts.map +1 -1
- package/dist/daemon/DaemonService.js +228 -304
- package/dist/daemon/DaemonService.js.map +1 -1
- package/dist/daemon/client.d.ts +76 -5
- package/dist/daemon/client.d.ts.map +1 -1
- package/dist/daemon/daemonRpc.test.d.ts +2 -0
- package/dist/daemon/daemonRpc.test.d.ts.map +1 -0
- package/dist/daemon/endpointServer.d.ts +4 -0
- package/dist/daemon/endpointServer.d.ts.map +1 -0
- package/dist/daemon/endpointServer.js +24 -0
- package/dist/daemon/endpointServer.js.map +1 -0
- package/dist/daemon/inProcessClient.d.ts +3 -9
- package/dist/daemon/inProcessClient.d.ts.map +1 -1
- package/dist/daemon/inProcessClient.js +29 -30
- package/dist/daemon/inProcessClient.js.map +1 -1
- package/dist/daemon/lifecycle.d.ts +4 -5
- package/dist/daemon/lifecycle.d.ts.map +1 -1
- package/dist/daemon/lifecycle.js +3 -2
- package/dist/daemon/lifecycle.js.map +1 -1
- package/dist/daemon/pipeClient.d.ts +2 -3
- package/dist/daemon/pipeClient.d.ts.map +1 -1
- package/dist/daemon/pipeClient.js +93 -195
- package/dist/daemon/pipeClient.js.map +1 -1
- package/dist/daemon/pipeName.d.ts +2 -2
- package/dist/daemon/pipeName.d.ts.map +1 -1
- package/dist/daemon/pipeName.js +6 -4
- package/dist/daemon/pipeName.js.map +1 -1
- package/dist/daemon/pipeServer.d.ts +2 -2
- package/dist/daemon/pipeServer.d.ts.map +1 -1
- package/dist/daemon/pipeServer.js +79 -70
- package/dist/daemon/pipeServer.js.map +1 -1
- package/dist/daemon/registerDaemonConnection.d.ts +7 -0
- package/dist/daemon/registerDaemonConnection.d.ts.map +1 -0
- package/dist/daemon/registerDaemonConnection.js +37 -0
- package/dist/daemon/registerDaemonConnection.js.map +1 -0
- package/dist/daemon/transports.test.d.ts +2 -0
- package/dist/daemon/transports.test.d.ts.map +1 -0
- package/dist/daemon/types.d.ts +1655 -8
- package/dist/daemon/types.d.ts.map +1 -1
- package/dist/daemon/types.js +4 -0
- package/dist/daemon/types.js.map +1 -0
- package/dist/daemon/version.d.ts +1 -5
- package/dist/daemon/version.d.ts.map +1 -1
- package/dist/daemon/version.js +2 -6
- package/dist/daemon/version.js.map +1 -1
- package/dist/external/linkrpc/typescript/packages/linkrpc/dist/chunks/inspectionHost-BA6ZmC_P.js +2523 -0
- package/dist/external/linkrpc/typescript/packages/linkrpc/dist/chunks/inspectionHost-BA6ZmC_P.js.map +1 -0
- package/dist/external/linkrpc/typescript/packages/linkrpc/dist/chunks/src-DYVSK_tz.js +1871 -0
- package/dist/external/linkrpc/typescript/packages/linkrpc/dist/chunks/src-DYVSK_tz.js.map +1 -0
- package/dist/external/linkrpc/typescript/packages/linkrpc/dist/chunks/webSocketTransport-Ct4OIdG9.js +220 -0
- package/dist/external/linkrpc/typescript/packages/linkrpc/dist/chunks/webSocketTransport-Ct4OIdG9.js.map +1 -0
- package/dist/external/linkrpc/typescript/packages/linkrpc/dist/node.js +721 -0
- package/dist/external/linkrpc/typescript/packages/linkrpc/dist/node.js.map +1 -0
- package/dist/index.d.ts +0 -2
- package/dist/js-component-explorer/packages/common/dist/daemonRpc.js +165 -0
- package/dist/js-component-explorer/packages/common/dist/daemonRpc.js.map +1 -0
- package/dist/mcp/DaemonAccessor.d.ts +2 -3
- package/dist/mcp/DaemonAccessor.d.ts.map +1 -1
- package/dist/mcp/McpServer.d.ts +1 -1
- package/dist/mcp/McpServer.d.ts.map +1 -1
- package/dist/mcp/McpServer.js +69 -58
- package/dist/mcp/McpServer.js.map +1 -1
- package/dist/renderManifest.d.ts +70 -5
- package/dist/server/serverConfig.d.ts +0 -2
- package/dist/server/serverConfig.d.ts.map +1 -1
- package/dist/server/serverConfig.js.map +1 -1
- package/dist/server/viteServer.d.ts +0 -2
- package/dist/server/viteServer.d.ts.map +1 -1
- package/dist/server/viteServer.js.map +1 -1
- package/package.json +9 -8
- package/dist/formatValue.js +0 -96
- package/dist/formatValue.js.map +0 -1
- package/dist/js-component-explorer/packages/simple-api/dist/chunk-FJ7AVNQE.js +0 -138
- package/dist/js-component-explorer/packages/simple-api/dist/chunk-FJ7AVNQE.js.map +0 -1
- package/dist/js-component-explorer/packages/simple-api/dist/chunk-TTRCY65Z.js +0 -27
- package/dist/js-component-explorer/packages/simple-api/dist/chunk-TTRCY65Z.js.map +0 -1
- package/dist/js-component-explorer/packages/simple-api/dist/chunk-WNXMRXWV.js +0 -28
- package/dist/js-component-explorer/packages/simple-api/dist/chunk-WNXMRXWV.js.map +0 -1
- package/dist/js-component-explorer/packages/simple-api/dist/express.js +0 -104
- package/dist/js-component-explorer/packages/simple-api/dist/express.js.map +0 -1
package/README.md
CHANGED
|
@@ -14,6 +14,15 @@ CLI-managed Chromium browsers disable partial rasterization so repeated captures
|
|
|
14
14
|
of rounded, antialiased edges do not depend on previously painted tile contents.
|
|
15
15
|
Screenshots are still compared without introducing pixel tolerances.
|
|
16
16
|
|
|
17
|
+
### Daemon compatibility
|
|
18
|
+
|
|
19
|
+
Daemon communication uses LinkRPC over a local named pipe or Unix socket.
|
|
20
|
+
Compatibility is checked using LinkRPC interface hashes rather than manually
|
|
21
|
+
maintained daemon or plugin protocol versions. Restart existing daemon sessions
|
|
22
|
+
after upgrading. Pre-LinkRPC daemons use a different pipe namespace. The Explorer's
|
|
23
|
+
Vite server bridges a same-origin WebSocket connection to the daemon; no additional
|
|
24
|
+
daemon TCP port or RPC hub is required.
|
|
25
|
+
|
|
17
26
|
## Commands
|
|
18
27
|
|
|
19
28
|
### `render`
|
|
@@ -163,6 +172,7 @@ component-explorer serve -p <config> [options]
|
|
|
163
172
|
| `--background` | Spawn as a detached background process |
|
|
164
173
|
| `--attach` | Attach to a running daemon and stream events |
|
|
165
174
|
| `--kill` | Shut down a running daemon |
|
|
175
|
+
| `--endpoint <uri>` | LinkRPC endpoint, defaulting to `LINKRPC_ENDPOINT`. Supports stdio, listening, and outbound connections. Requires a foreground daemon; diagnostics go to stderr. |
|
|
166
176
|
| `-v, --verbose` | Increase log verbosity |
|
|
167
177
|
|
|
168
178
|
Without flags, starts a foreground daemon. Combine `--background` and `--attach` to ensure a daemon is running and then stream its events.
|
|
@@ -184,6 +194,86 @@ component-explorer serve -p config.json --background --attach
|
|
|
184
194
|
component-explorer serve -p config.json --kill
|
|
185
195
|
```
|
|
186
196
|
|
|
197
|
+
To drive a foreground daemon from the [LinkRPC CLI](https://github.com/hediet/linkrpc/tree/main/typescript/packages/linkrpc-cli), use a `cmd-stdio:` endpoint. It launches the server as a child, keeps one connection for the entire batch, and closes the server when the connection ends. The daemon still starts its local pipe for Explorer browser connections.
|
|
198
|
+
|
|
199
|
+
After initialization, `component-explorer.daemon` is the default interface: both `sessions` and `component-explorer.daemon::sessions` call the same handler. This uses LinkRPC's `defaultInterfaceTarget`, retaining native metadata and streaming rather than the foreign-protocol bare client mode. No-argument requests accept omitted parameters, and `--p:<name>` supplies individual parameters without a JSON object.
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
rpc --endpoint-cmd-stdio "component-explorer serve -p config.json --endpoint stdio" batch \
|
|
203
|
+
--call component-explorer.daemon-initialization::initialize \
|
|
204
|
+
--p:clientName rpc \
|
|
205
|
+
--call sessions \
|
|
206
|
+
--call shutdown
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
For separate CLI invocations, create a persistent connection owned by the current
|
|
210
|
+
folder's context. The broker keeps the same
|
|
211
|
+
initialized connection to the foreground daemon; reusing the original
|
|
212
|
+
`cmd:` or `cmd-stdio:` URL instead would launch a new child for each invocation.
|
|
213
|
+
|
|
214
|
+
```powershell
|
|
215
|
+
rpc --endpoint-cmd "component-explorer serve -p config.json" `
|
|
216
|
+
connection create --new-context . --timeout inf
|
|
217
|
+
try {
|
|
218
|
+
rpc call component-explorer.daemon-initialization::initialize --p:clientName rpc
|
|
219
|
+
rpc call sessions
|
|
220
|
+
rpc call approvalsApprove `
|
|
221
|
+
--p:fixtureId TestButton --p:originalHash before --p:modifiedHash after --p:comment "Reviewed"
|
|
222
|
+
rpc call approvalsLookup `
|
|
223
|
+
--p:fixtureId TestButton --p:originalHash before --p:modifiedHash after
|
|
224
|
+
rpc call approvalsRevoke `
|
|
225
|
+
--p:fixtureId TestButton --p:originalHash before --p:modifiedHash after
|
|
226
|
+
rpc call approvalsLookup `
|
|
227
|
+
--p:fixtureId TestButton --p:originalHash before --p:modifiedHash after
|
|
228
|
+
} finally {
|
|
229
|
+
rpc context remove
|
|
230
|
+
}
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
The final lookup returns `null`. Subsequent calls discover the folder context
|
|
234
|
+
automatically. `--new-context .` refuses to overwrite an existing context.
|
|
235
|
+
Removing the context destroys its owned connection and stops the child daemon.
|
|
236
|
+
Contexts store defaults in the global user store, not in a project file.
|
|
237
|
+
|
|
238
|
+
Every `connection create` requires an explicit `--timeout` (transport inactivity)
|
|
239
|
+
or `--ttl` (maximum lifetime). Both accept `inf`; an omitted limit is also
|
|
240
|
+
unlimited. The example explicitly opts out of inactivity expiration and has no
|
|
241
|
+
TTL. Use finite limits for unattended workflows that need expiration even if
|
|
242
|
+
cleanup is interrupted.
|
|
243
|
+
|
|
244
|
+
Alternatively, store the returned broker endpoint in `LINKRPC_ENDPOINT` and use
|
|
245
|
+
`rpc --use-env` for each call, followed by `rpc --use-env connection destroy`.
|
|
246
|
+
Treat endpoints and context storage as private: broker endpoints contain access
|
|
247
|
+
tokens, and context tokens are stored unencrypted.
|
|
248
|
+
|
|
249
|
+
`--endpoint-cmd` and `cmd:` instead inject `LINKRPC_ENDPOINT` and `LINKRPC_TOKEN`.
|
|
250
|
+
The daemon reads these directly, so
|
|
251
|
+
`rpc --endpoint-cmd "component-explorer serve -p config.json"` needs no
|
|
252
|
+
transport-specific daemon flag.
|
|
253
|
+
|
|
254
|
+
The endpoint transport and initialization-interface reflection are available while
|
|
255
|
+
sessions start. The daemon `initialize` call waits for session setup before
|
|
256
|
+
registering service methods, so slow Vite startup does not consume the command
|
|
257
|
+
endpoint's child-connection deadline. Startup errors close the endpoint and clean
|
|
258
|
+
up initialized sessions. Closing a stdio or outbound endpoint shuts down the
|
|
259
|
+
daemon; rejecting an individual client on a listening endpoint only logs that
|
|
260
|
+
peer's error and leaves other clients and sessions running.
|
|
261
|
+
|
|
262
|
+
The same `--endpoint` option (or `LINKRPC_ENDPOINT`) supports:
|
|
263
|
+
|
|
264
|
+
| Endpoint | Behavior |
|
|
265
|
+
|---|---|
|
|
266
|
+
| `stdio` or `stdio:` | Serve on stdin/stdout |
|
|
267
|
+
| `ws://host:port` / `wss://host:port` | Connect to an existing WebSocket peer |
|
|
268
|
+
| `unix:/path/to/socket` / `npipe://./pipe/name` | Connect to an existing local socket |
|
|
269
|
+
| `listen:ws://127.0.0.1:3001` | Accept WebSocket clients (`:0` chooses an available port) |
|
|
270
|
+
| `listen:unix:/path/to/socket` / `listen:npipe://./pipe/name` | Accept local socket clients |
|
|
271
|
+
|
|
272
|
+
Listeners require a nonempty `LINKRPC_TOKEN` (or a URI token). Connecting peers
|
|
273
|
+
must supply the same token. Startup prints the resolved endpoint without its
|
|
274
|
+
token to stderr. The ordinary local daemon pipe remains available for the
|
|
275
|
+
Explorer UI regardless of the additional endpoint mode.
|
|
276
|
+
|
|
187
277
|
### `mcp`
|
|
188
278
|
|
|
189
279
|
Start a [Model Context Protocol](https://modelcontextprotocol.io/) server over stdio. Auto-starts a daemon if one is not already running.
|
|
@@ -119,7 +119,8 @@ class InProcessDaemonAccessor {
|
|
|
119
119
|
idleTimeoutMs: 0,
|
|
120
120
|
});
|
|
121
121
|
this._asyncCleanupFns.push(() => service.dispose());
|
|
122
|
-
const client = createInProcessClient(service
|
|
122
|
+
const client = createInProcessClient(service, { clientName: 'mcp-inproc' });
|
|
123
|
+
this._asyncCleanupFns.push(async () => client.dispose());
|
|
123
124
|
this._connection.set(client, undefined);
|
|
124
125
|
return client;
|
|
125
126
|
}
|
|
@@ -153,6 +154,7 @@ class ExternalDaemonAccessor {
|
|
|
153
154
|
get noDaemonHint() { return this._options.noAutostartHint; }
|
|
154
155
|
_onConnectionError = () => {
|
|
155
156
|
if (this._connection.get()) {
|
|
157
|
+
this._connection.get()?.dispose();
|
|
156
158
|
this._connection.set(undefined, undefined);
|
|
157
159
|
this._logger.debug('Daemon connection lost');
|
|
158
160
|
}
|
|
@@ -171,6 +173,9 @@ class ExternalDaemonAccessor {
|
|
|
171
173
|
this._logger.debug('Daemon connection established');
|
|
172
174
|
this._connection.set(client, undefined);
|
|
173
175
|
}
|
|
176
|
+
else {
|
|
177
|
+
client.dispose();
|
|
178
|
+
}
|
|
174
179
|
return;
|
|
175
180
|
}
|
|
176
181
|
this._onConnectionError();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpCommand.js","sources":["../../src/commands/mcpCommand.ts"],"sourcesContent":[null],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"mcpCommand.js","sources":["../../src/commands/mcpCommand.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAYM,MAAO,UAAW,SAAQ,OAAO,CAAA;IACtC,OAAgB,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AAEjC,IAAA,OAAgB,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AACrC,QAAA,WAAW,EAAE,2EAA2E;AACxF,QAAA,QAAQ,EAAE;YACT,CAAC,sCAAsC,EAAE,8BAA8B,CAAC;YACxE,CAAC,4BAA4B,EAAE,2CAA2C,CAAC;YAC3E,CAAC,yBAAyB,EAAE,iEAAiE,CAAC;AAC9F,SAAA;AACD,KAAA,CAAC;AAEO,IAAA,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,8CAA8C,EAAE,CAAC;AAC5G,IAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,8CAA8C,EAAE,CAAC;AACtG,IAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,oEAAoE,EAAE,CAAC;AAC9I,IAAA,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,iFAAiF,EAAE,CAAC;AACrJ,IAAA,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,uEAAuE,EAAE,CAAC;AACtJ,IAAA,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,EAAE,WAAW,EAAE,8FAA8F,EAAE,CAAC;AACpK,IAAA,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,WAAW,EAAE,mDAAmD,EAAE,CAAC;AAE5H,IAAA,MAAM,OAAO,GAAA;AACZ,QAAA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACjJ,YAAY,CAAC,MAAM,CAAC;QAEpB,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACxC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uDAAuD,CAAC;YAClF;QACD;QAEA,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;AACtD,QAAA,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE;QACzC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,eAAe,CAAC,WAAW,EAAE,WAAW,CAAC;AAC7E,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;YACzB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8DAA8D,CAAC;YACzF,WAAW,CAAC,OAAO,EAAE;YACrB;QACD;;QAGA,MAAM,eAAe,GAA4B,EAAE;QACnD,IAAI,SAAS,GAAG,KAAK;AACrB,QAAA,MAAM,OAAO,GAAG,YAAW;YAC1B,IAAI,SAAS,EAAE;gBAAE;YAAQ;YACzB,SAAS,GAAG,IAAI;AAChB,YAAA,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC;AAC9B,YAAA,KAAK,MAAM,EAAE,IAAI,eAAe,EAAE;gBAAE,MAAM,EAAE,EAAE;YAAE;YAChD,WAAW,CAAC,OAAO,EAAE;AACtB,QAAA,CAAC;QACD,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,OAAO,GAAG,KAAI;YAC7C,MAAM,CAAC,GAAG,CAAC,CAAA,oBAAA,EAAuB,GAAG,CAAC,OAAO,CAAA,CAAE,CAAC;YAChD,MAAM,OAAO,EAAE;AAChB,QAAA,CAAC,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,OAAO,GAAG,KAAI;YAC9C,MAAM,CAAC,GAAG,CAAC,CAAA,qBAAA,EAAwB,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA,CAAE,CAAC;YACtF,MAAM,OAAO,EAAE;AAChB,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAW;AAC/B,YAAA,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC;YAC/B,MAAM,OAAO,EAAE;AACf,YAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAChB,QAAA,CAAC,CAAC;AAEF,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC;AACrB,cAAE,IAAI,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE;gBACjD,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,OAAO,EAAE,IAAI,CAAC,OAAO;aACrB;cACC,IAAI,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC;AAE/D,QAAA,MAAM,0BAA0B,CAAC,MAAM,CAAC,QAAQ,EAAE;AACjD,YAAA,aAAa,EAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,GAAG,SAAS;AAC7E,SAAA,CAAC;AACF,QAAA,MAAM,CAAC,GAAG,CAAC,CAAA,kBAAA,EAAqB,IAAI,CAAC,SAAS,GAAG,UAAU,GAAG,YAAY,CAAA,QAAA,CAAU,CAAC;QAErF,MAAM,IAAI,OAAO,CAAO,MAAK,EAAG,CAAC,CAAC;IACnC;;AAGD;AACA;AACA;AAEA,MAAM,uBAAuB,CAAA;AAKV,IAAA,OAAA;AACA,IAAA,OAAA;AACA,IAAA,gBAAA;AAND,IAAA,WAAW,GAAG,eAAe,CAA2B,QAAQ,EAAE,SAAS,CAAC;IACrF,gBAAgB,GAAG,KAAK;AAEhC,IAAA,WAAA,CACkB,OAAuB,EACvB,OAAsB,EACtB,gBAAyC,EAAA;QAFzC,IAAA,CAAA,OAAO,GAAP,OAAO;QACP,IAAA,CAAA,OAAO,GAAP,OAAO;QACP,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;IAC9B;IAEJ,IAAI,UAAU,KAA4C,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC;AAEnF,IAAA,MAAM,gBAAgB,GAAA;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;QACtC,IAAI,OAAO,EAAE;AAAE,YAAA,OAAO,OAAO;QAAE;AAE/B,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAAE,YAAA,OAAO,SAAS;QAAE;AAC/C,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;AAC5B,QAAA,IAAI;AACH,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC;AACjD,YAAA,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE;AACjF,gBAAA,aAAa,EAAE,CAAC;AAChB,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;AACnD,YAAA,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;AAC3E,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,OAAO,EAAE,CAAC;YACxD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;AACvC,YAAA,OAAO,MAAM;QACd;QAAE,OAAO,GAAG,EAAE;YACb,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,sCAAsC,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA,CAAE,CAAC;AAC1G,YAAA,OAAO,SAAS;QACjB;gBAAU;AACT,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;QAC9B;IACD;AACA;AAaD,MAAM,sBAAsB,CAAA;AAST,IAAA,OAAA;AACA,IAAA,QAAA;AATD,IAAA,WAAW,GAAG,eAAe,CAA2B,QAAQ,EAAE,SAAS,CAAC;AAC5E,IAAA,SAAS;AACT,IAAA,WAAW;AACX,IAAA,WAAW;IACpB,kBAAkB,GAAG,KAAK;AAElC,IAAA,WAAA,CACC,WAAyB,EACR,OAAsB,EACtB,QAA+B,EAAA;QAD/B,IAAA,CAAA,OAAO,GAAP,OAAO;QACP,IAAA,CAAA,QAAQ,GAAR,QAAQ;AAEzB,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW;AAC9B,QAAA,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC;AACzE,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;QACzB,IAAI,CAAC,WAAW,GAAG,CAAA,IAAA,EAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA,CAAE;QAChG,OAAO,CAAC,KAAK,CAAC,CAAA,aAAA,EAAgB,QAAQ,CAAA,UAAA,EAAa,UAAU,CAAA,CAAA,CAAG,CAAC;IAClE;IAEA,IAAI,UAAU,KAA4C,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC;IACnF,IAAI,YAAY,GAAA,EAAyB,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAE9D,kBAAkB,GAAG,MAAK;AAC1C,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE;YAC3B,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE;YACjC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC;AAC1C,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC;QAC7C;AACD,IAAA,CAAC;AAED,IAAA,MAAM,gBAAgB,GAAA;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;QACtC,IAAI,OAAO,EAAE;AAAE,YAAA,OAAO,OAAO;QAAE;QAE/B,OAAO,iBAAiB,CACvB,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,EAC5B,MAAM,IAAI,CAAC,KAAK,EAAE,CAClB;IACF;AAEQ,IAAA,MAAM,KAAK,GAAA;QAClB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC7H,IAAI,MAAM,EAAE;YACX,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE;AAC5B,gBAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC;gBACnD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;YACxC;iBAAO;gBACN,MAAM,CAAC,OAAO,EAAE;YACjB;YACA;QACD;QAEA,IAAI,CAAC,kBAAkB,EAAE;AAEzB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC3D,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;AAC9B,YAAA,IAAI;gBACH,MAAM,MAAM,GAAG,MAAM,8BAA8B,CAAC,IAAI,CAAC,WAAW,EAAE;oBACrE,UAAU,EAAE,IAAI,CAAC,WAAW;oBAC5B,iBAAiB,EAAE,IAAI,CAAC,kBAAkB;oBAC1C,MAAM,EAAE,IAAI,CAAC,OAAO;AACpB,oBAAA,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO;AAChC,oBAAA,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO;AAC9B,iBAAA,CAAC;gBACF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;YACxC;YAAE,OAAO,GAAG,EAAE;gBACb,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,0BAA0B,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA,CAAE,CAAC;YACjG;oBAAU;AACT,gBAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;YAChC;QACD;IACD;AACA;AAED;;;AAGG;AACH,eAAe,iBAAiB,CAC/B,GAAmC,EACnC,IAAyB,EACzB,YAAoB,IAAI,EAAA;AAExB,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;IAC5B,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,SAAS,EAAE;QAC1C,MAAM,IAAI,EAAE;AACZ,QAAA,MAAM,MAAM,GAAG,GAAG,EAAE;QACpB,IAAI,MAAM,EAAE;AAAE,YAAA,OAAO,MAAM;QAAE;AAC7B,QAAA,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACvD;AACA,IAAA,OAAO,SAAS;AACjB;;;;"}
|
|
@@ -9,16 +9,19 @@ export declare class ServeCommand extends Command {
|
|
|
9
9
|
readonly attach: boolean;
|
|
10
10
|
readonly kill: boolean;
|
|
11
11
|
readonly killIfRunning: boolean;
|
|
12
|
+
readonly endpoint: string | undefined;
|
|
12
13
|
readonly headed: boolean;
|
|
13
14
|
readonly redirectionPort: string | undefined;
|
|
14
15
|
readonly redirectionHost: string | undefined;
|
|
15
16
|
readonly idleTimeoutMs: string;
|
|
16
|
-
execute(): Promise<void>;
|
|
17
|
+
execute(): Promise<number | void>;
|
|
18
|
+
private _execute;
|
|
17
19
|
private _killExistingAndWait;
|
|
18
20
|
private _ensureBackground;
|
|
19
21
|
private _attach;
|
|
20
22
|
private _printSessionUrls;
|
|
21
23
|
private _printEvent;
|
|
24
|
+
private get _rpcEndpoint();
|
|
22
25
|
private _startDaemon;
|
|
23
26
|
private _startRedirectionServer;
|
|
24
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serveCommand.d.ts","sourceRoot":"","sources":["../../src/commands/serveCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"serveCommand.d.ts","sourceRoot":"","sources":["../../src/commands/serveCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAqB5C,qBAAa,YAAa,SAAQ,OAAO;IACxC,OAAgB,KAAK,aAAe;IAEpC,OAAgB,KAAK,4BAmBlB;IAEH,QAAQ,CAAC,OAAO,SAAsG;IACtH,QAAQ,CAAC,OAAO,qBAAgG;IAChH,QAAQ,CAAC,OAAO,SAAwI;IACxJ,QAAQ,CAAC,UAAU,UAAoG;IACvH,QAAQ,CAAC,MAAM,UAAsG;IACrH,QAAQ,CAAC,IAAI,UAAkF;IAC/F,QAAQ,CAAC,aAAa,UAAqH;IAC3I,QAAQ,CAAC,QAAQ,qBAAmG;IACpH,QAAQ,CAAC,MAAM,UAAwG;IACvH,QAAQ,CAAC,eAAe,qBAA8H;IACtJ,QAAQ,CAAC,eAAe,qBAAsH;IAC9I,QAAQ,CAAC,aAAa,SAA0J;IAE1K,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YAUzB,QAAQ;YAqER,oBAAoB;YAqBpB,iBAAiB;YAgEjB,OAAO;IAmBrB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,WAAW;IAenB,OAAO,KAAK,YAAY,GAEvB;YAEa,YAAY;IAqF1B,OAAO,CAAC,uBAAuB;CAyB/B"}
|
|
@@ -16,6 +16,7 @@ import { ResolvedConfig } from '../config.js';
|
|
|
16
16
|
import { AbsolutePath } from '../path.js';
|
|
17
17
|
import { DaemonService } from '../daemon/DaemonService.js';
|
|
18
18
|
import { startPipeServer } from '../daemon/pipeServer.js';
|
|
19
|
+
import { startDaemonEndpoint } from '../daemon/endpointServer.js';
|
|
19
20
|
import { daemonPipeInfo } from '../daemon/pipeName.js';
|
|
20
21
|
import { tryConnect, waitForDaemon } from '../daemon/lifecycle.js';
|
|
21
22
|
import '../js-component-explorer/packages/common/dist/renderManifest.js';
|
|
@@ -33,6 +34,7 @@ Without flags: starts a foreground daemon. Errors if one is already running.
|
|
|
33
34
|
--background --attach: ensures a daemon is running, then attaches.
|
|
34
35
|
--kill: shuts down a running daemon.
|
|
35
36
|
--kill-if-running: kills any existing daemon before starting a new one.
|
|
37
|
+
--endpoint: configures LinkRPC stdio, listener, or outbound transport (defaults to LINKRPC_ENDPOINT).
|
|
36
38
|
`,
|
|
37
39
|
examples: [
|
|
38
40
|
['Start in foreground', '$0 serve -p config.json'],
|
|
@@ -50,11 +52,28 @@ Without flags: starts a foreground daemon. Errors if one is already running.
|
|
|
50
52
|
attach = Option.Boolean('--attach', false, { description: 'Attach to a running daemon and stream events' });
|
|
51
53
|
kill = Option.Boolean('--kill', false, { description: 'Shut down a running daemon' });
|
|
52
54
|
killIfRunning = Option.Boolean('--kill-if-running', false, { description: 'Kill any existing daemon before starting a new one' });
|
|
55
|
+
endpoint = Option.String('--endpoint', { description: 'LinkRPC endpoint (defaults to LINKRPC_ENDPOINT)' });
|
|
53
56
|
headed = Option.Boolean('--headed', false, { description: 'Show the browser window (useful for debugging)' });
|
|
54
57
|
redirectionPort = Option.String('--redirectionPort', { description: 'Start an HTTP server that redirects /___explorer to the session URL' });
|
|
55
58
|
redirectionHost = Option.String('--redirectionHost', { description: 'Host to bind the redirection server to (default: localhost)' });
|
|
56
59
|
idleTimeoutMs = Option.String('--idle-timeout-ms', '0', { hidden: true, description: 'Internal: idle timeout in milliseconds before auto-shutdown (0 = no timeout)' });
|
|
57
60
|
async execute() {
|
|
61
|
+
if (this._rpcEndpoint === undefined) {
|
|
62
|
+
return this._execute();
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
return await this._execute();
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
this.context.stderr.write(`Error: ${error instanceof Error ? error.stack ?? error.message : String(error)}\n`);
|
|
69
|
+
return 1;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
async _execute() {
|
|
73
|
+
if (this._rpcEndpoint !== undefined && (this.background || this.attach || this.kill || this.killIfRunning)) {
|
|
74
|
+
this.context.stderr.write('Error: LinkRPC endpoints require a foreground daemon and cannot be combined with --background, --attach, --kill, or --kill-if-running.\n');
|
|
75
|
+
return 1;
|
|
76
|
+
}
|
|
58
77
|
const configPath = AbsolutePath.resolve(this.project);
|
|
59
78
|
const disposables = new DisposableStore();
|
|
60
79
|
const config = await ResolvedConfig.fromProjectPath(configPath, disposables);
|
|
@@ -70,7 +89,12 @@ Without flags: starts a foreground daemon. Errors if one is already running.
|
|
|
70
89
|
this.context.stderr.write('No daemon running.\n');
|
|
71
90
|
return;
|
|
72
91
|
}
|
|
73
|
-
|
|
92
|
+
try {
|
|
93
|
+
await client.methods.shutdown({});
|
|
94
|
+
}
|
|
95
|
+
finally {
|
|
96
|
+
client.dispose();
|
|
97
|
+
}
|
|
74
98
|
this.context.stdout.write('Daemon shut down.\n');
|
|
75
99
|
return;
|
|
76
100
|
}
|
|
@@ -84,7 +108,7 @@ Without flags: starts a foreground daemon. Errors if one is already running.
|
|
|
84
108
|
this.context.stderr.write('Failed to connect after starting daemon.\n');
|
|
85
109
|
return;
|
|
86
110
|
}
|
|
87
|
-
const sessions = await client.methods.sessions();
|
|
111
|
+
const sessions = await client.methods.sessions({});
|
|
88
112
|
this._printSessionUrls(sessions);
|
|
89
113
|
return this._attach(client, pipeName, pipeSource);
|
|
90
114
|
}
|
|
@@ -102,6 +126,7 @@ Without flags: starts a foreground daemon. Errors if one is already running.
|
|
|
102
126
|
// Default: start foreground daemon
|
|
103
127
|
const existing = await tryConnect(pipeName, { clientName: 'cli-serve' });
|
|
104
128
|
if (existing) {
|
|
129
|
+
existing.dispose();
|
|
105
130
|
this.context.stderr.write(`Daemon already running (pipe: ${pipeName}, source: ${pipeSource}).\n`);
|
|
106
131
|
this.context.stderr.write(` Attach: component-explorer serve -p ${configPath} --attach\n`);
|
|
107
132
|
this.context.stderr.write(` Kill: component-explorer serve -p ${configPath} --kill\n`);
|
|
@@ -115,19 +140,28 @@ Without flags: starts a foreground daemon. Errors if one is already running.
|
|
|
115
140
|
return;
|
|
116
141
|
}
|
|
117
142
|
this.context.stdout.write('Killing existing daemon...\n');
|
|
118
|
-
|
|
143
|
+
try {
|
|
144
|
+
await client.methods.shutdown({});
|
|
145
|
+
}
|
|
146
|
+
finally {
|
|
147
|
+
client.dispose();
|
|
148
|
+
}
|
|
119
149
|
const deadline = Date.now() + 10_000;
|
|
120
150
|
while (Date.now() < deadline) {
|
|
121
|
-
|
|
151
|
+
const probe = await tryConnect(pipeName, { clientName: 'cli-kill-existing' });
|
|
152
|
+
if (!probe) {
|
|
122
153
|
this.context.stdout.write('Existing daemon stopped.\n');
|
|
123
154
|
return;
|
|
124
155
|
}
|
|
156
|
+
probe.dispose();
|
|
125
157
|
await new Promise(r => setTimeout(r, 200));
|
|
126
158
|
}
|
|
127
159
|
throw new Error('Existing daemon did not shut down within 10s');
|
|
128
160
|
}
|
|
129
161
|
async _ensureBackground(pipeName, pipeSource, configPath) {
|
|
130
|
-
|
|
162
|
+
const existing = await tryConnect(pipeName, { clientName: 'cli-serve' });
|
|
163
|
+
if (existing) {
|
|
164
|
+
existing.dispose();
|
|
131
165
|
this.context.stdout.write('Daemon already running.\n');
|
|
132
166
|
return;
|
|
133
167
|
}
|
|
@@ -195,23 +229,27 @@ Without flags: starts a foreground daemon. Errors if one is already running.
|
|
|
195
229
|
async _attach(client, pipeName, pipeSource) {
|
|
196
230
|
this.context.stdout.write(`Attached to daemon (pipe: ${pipeName}, source: ${pipeSource})\n`);
|
|
197
231
|
this.context.stdout.write('Listening for events... (Ctrl+C to detach)\n\n');
|
|
198
|
-
const
|
|
199
|
-
|
|
200
|
-
|
|
232
|
+
const call = client.methods.events({}, { onMessage: event => this._printEvent(event) });
|
|
233
|
+
try {
|
|
234
|
+
await call;
|
|
235
|
+
}
|
|
236
|
+
finally {
|
|
237
|
+
void call.cancel('attach ended').finally(() => call.dispose?.('attach ended')).catch(() => { });
|
|
238
|
+
client.dispose();
|
|
201
239
|
}
|
|
202
240
|
this.context.stdout.write('\nEvent stream ended.\n');
|
|
203
241
|
}
|
|
204
|
-
_printSessionUrls(sessions) {
|
|
242
|
+
_printSessionUrls(sessions, output = this.context.stdout) {
|
|
205
243
|
for (const s of sessions) {
|
|
206
244
|
if (s.isLoading) {
|
|
207
|
-
|
|
245
|
+
output.write(` ${s.name}: (loading)\n`);
|
|
208
246
|
}
|
|
209
247
|
else {
|
|
210
248
|
const explorerUrl = buildExplorerUrl({ baseUrl: s.serverUrl, pathname: EXPLORER_ROUTE });
|
|
211
|
-
|
|
249
|
+
output.write(` ${s.name}: ${explorerUrl} (${s.sourceKind})\n`);
|
|
212
250
|
}
|
|
213
251
|
}
|
|
214
|
-
|
|
252
|
+
output.write('\n');
|
|
215
253
|
}
|
|
216
254
|
_printEvent(event) {
|
|
217
255
|
const ts = new Date().toLocaleTimeString();
|
|
@@ -227,14 +265,26 @@ Without flags: starts a foreground daemon. Errors if one is already running.
|
|
|
227
265
|
break;
|
|
228
266
|
}
|
|
229
267
|
}
|
|
268
|
+
get _rpcEndpoint() {
|
|
269
|
+
return this.endpoint ?? process.env.LINKRPC_ENDPOINT;
|
|
270
|
+
}
|
|
230
271
|
async _startDaemon(pipeName, pipeSource, configPath) {
|
|
231
|
-
const
|
|
272
|
+
const output = this._rpcEndpoint !== undefined ? this.context.stderr : this.context.stdout;
|
|
273
|
+
const logger = new ConsoleLogger('serve', output, verbosityToLogLevel(this.verbose), createLogFileOptions(this.logFile, this.verbose));
|
|
232
274
|
logBuildInfo(logger);
|
|
233
275
|
logger.log(`Reading config from ${configPath}`);
|
|
234
276
|
const disposables = new DisposableStore();
|
|
235
277
|
const resolvedConfig = await ResolvedConfig.fromFile(configPath, disposables);
|
|
236
|
-
|
|
237
|
-
|
|
278
|
+
let service;
|
|
279
|
+
let endpointClosed = false;
|
|
280
|
+
const serviceReady = Promise.resolve().then(async () => {
|
|
281
|
+
logger.log('Setting up sessions...');
|
|
282
|
+
service = await DaemonService.create(resolvedConfig, logger, pipeName, { headed: this.headed, idleTimeoutMs: parseInt(this.idleTimeoutMs, 10) });
|
|
283
|
+
if (endpointClosed) {
|
|
284
|
+
service.requestShutdown();
|
|
285
|
+
}
|
|
286
|
+
return service;
|
|
287
|
+
});
|
|
238
288
|
// Ensure cleanup on crashes/uncaught errors
|
|
239
289
|
let cleanedUp = false;
|
|
240
290
|
const cleanup = async () => {
|
|
@@ -243,7 +293,7 @@ Without flags: starts a foreground daemon. Errors if one is already running.
|
|
|
243
293
|
}
|
|
244
294
|
cleanedUp = true;
|
|
245
295
|
logger.debug('Cleaning up...');
|
|
246
|
-
await service
|
|
296
|
+
await service?.dispose();
|
|
247
297
|
disposables.dispose();
|
|
248
298
|
};
|
|
249
299
|
process.on('uncaughtException', async (err) => {
|
|
@@ -255,27 +305,43 @@ Without flags: starts a foreground daemon. Errors if one is already running.
|
|
|
255
305
|
await cleanup();
|
|
256
306
|
});
|
|
257
307
|
let server;
|
|
308
|
+
let rpcEndpoint;
|
|
258
309
|
let redirectServer;
|
|
310
|
+
const endpointReady = this._rpcEndpoint === undefined ? Promise.resolve(undefined)
|
|
311
|
+
: startDaemonEndpoint(this._rpcEndpoint, serviceReady, logger).then(endpoint => {
|
|
312
|
+
rpcEndpoint = endpoint;
|
|
313
|
+
void endpoint.closed.then(() => {
|
|
314
|
+
endpointClosed = true;
|
|
315
|
+
service?.requestShutdown();
|
|
316
|
+
});
|
|
317
|
+
return endpoint;
|
|
318
|
+
});
|
|
259
319
|
try {
|
|
320
|
+
const [readyService] = await Promise.all([serviceReady, endpointReady]);
|
|
260
321
|
logger.log(`Starting pipe server on ${pipeName} (source: ${pipeSource})`);
|
|
261
|
-
server = await startPipeServer(pipeName,
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
322
|
+
server = await startPipeServer(pipeName, readyService, logger);
|
|
323
|
+
if (rpcEndpoint) {
|
|
324
|
+
output.write(`LinkRPC endpoint: ${rpcEndpoint.endpoint}\n`);
|
|
325
|
+
}
|
|
326
|
+
output.write(`Daemon listening on ${pipeName} (source: ${pipeSource})\n`);
|
|
327
|
+
output.write('Press Ctrl+C to stop.\n\n');
|
|
328
|
+
this._printSessionUrls(readyService.getSessionInfos(), output);
|
|
265
329
|
const redirectPort = this.redirectionPort
|
|
266
330
|
? parseInt(this.redirectionPort, 10)
|
|
267
331
|
: resolvedConfig.redirection?.port;
|
|
268
332
|
const redirectHost = this.redirectionHost ?? resolvedConfig.redirection?.host ?? 'localhost';
|
|
269
333
|
if (redirectPort) {
|
|
270
|
-
redirectServer = this._startRedirectionServer(
|
|
334
|
+
redirectServer = this._startRedirectionServer(readyService, redirectPort, redirectHost);
|
|
271
335
|
}
|
|
272
336
|
process.on('SIGINT', () => {
|
|
273
|
-
|
|
337
|
+
readyService.requestShutdown();
|
|
274
338
|
});
|
|
275
|
-
await
|
|
339
|
+
await readyService.runEventLoop();
|
|
276
340
|
}
|
|
277
341
|
finally {
|
|
278
|
-
|
|
342
|
+
await Promise.allSettled([serviceReady, endpointReady]);
|
|
343
|
+
output.write('\nShutting down...\n');
|
|
344
|
+
rpcEndpoint?.dispose();
|
|
279
345
|
redirectServer?.dispose();
|
|
280
346
|
server?.close();
|
|
281
347
|
await cleanup();
|
|
@@ -300,7 +366,7 @@ Without flags: starts a foreground daemon. Errors if one is already running.
|
|
|
300
366
|
}
|
|
301
367
|
});
|
|
302
368
|
server.listen(port, host, () => {
|
|
303
|
-
this.context.stdout.write(`Redirection server listening on http://${host}:${port}\n`);
|
|
369
|
+
(this._rpcEndpoint !== undefined ? this.context.stderr : this.context.stdout).write(`Redirection server listening on http://${host}:${port}\n`);
|
|
304
370
|
});
|
|
305
371
|
return { dispose: () => server.close() };
|
|
306
372
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serveCommand.js","sources":["../../src/commands/serveCommand.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAmBM,MAAO,YAAa,SAAQ,OAAO,CAAA;IACxC,OAAgB,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;AAEnC,IAAA,OAAgB,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AACrC,QAAA,WAAW,EAAE,iDAAiD;AAC9D,QAAA,OAAO,EAAE;;;;;;;AAOR,EAAA,CAAA;AACD,QAAA,QAAQ,EAAE;YACT,CAAC,qBAAqB,EAAE,yBAAyB,CAAC;YAClD,CAAC,qBAAqB,EAAE,sCAAsC,CAAC;YAC/D,CAAC,0BAA0B,EAAE,kCAAkC,CAAC;YAChE,CAAC,wBAAwB,EAAE,+CAA+C,CAAC;YAC3E,CAAC,qBAAqB,EAAE,gCAAgC,CAAC;YACzD,CAAC,yBAAyB,EAAE,2CAA2C,CAAC;AACxE,SAAA;AACD,KAAA,CAAC;AAEO,IAAA,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,8CAA8C,EAAE,CAAC;AAC5G,IAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,8CAA8C,EAAE,CAAC;AACtG,IAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,oEAAoE,EAAE,CAAC;AAC9I,IAAA,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,wCAAwC,EAAE,CAAC;AAC7G,IAAA,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,8CAA8C,EAAE,CAAC;AAC3G,IAAA,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;AACrF,IAAA,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,oDAAoD,EAAE,CAAC;AACjI,IAAA,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,gDAAgD,EAAE,CAAC;AAC7G,IAAA,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,WAAW,EAAE,qEAAqE,EAAE,CAAC;AAC5I,IAAA,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,WAAW,EAAE,6DAA6D,EAAE,CAAC;AACpI,IAAA,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,8EAA8E,EAAE,CAAC;AAE/K,IAAA,MAAM,OAAO,GAAA;QACZ,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;AACrD,QAAA,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE;QACzC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,eAAe,CAAC,UAAU,EAAE,WAAW,CAAC;AAC5E,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;YACzB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gEAAgE,CAAC;YAC3F,WAAW,CAAC,OAAO,EAAE;YACrB;QACD;AAEA,QAAA,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,UAAU,CAAC;AAEnE,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACd,YAAA,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;YACrE,IAAI,CAAC,MAAM,EAAE;gBACZ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC;gBACjD;YACD;AACA,YAAA,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC/B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC;YAChD;QACD;AAEA,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACvB,YAAA,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;QAC1C;QAEA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,EAAE;YACnC,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC;AAC9D,YAAA,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;YACvE,IAAI,CAAC,MAAM,EAAE;gBACZ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC;gBACvE;YACD;YACA,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAmB;AACjE,YAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;YAChC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC;QAClD;AAEA,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC;QAChE;AAEA,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AAChB,YAAA,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;YACvE,IAAI,CAAC,MAAM,EAAE;AACZ,gBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,0DAAA,EAA6D,IAAI,CAAC,OAAO,CAAA,EAAA,CAAI,CAAC;gBACxG;YACD;YACA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC;QAClD;;AAGA,QAAA,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;QACxE,IAAI,QAAQ,EAAE;AACb,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,8BAAA,EAAiC,QAAQ,CAAA,UAAA,EAAa,UAAU,CAAA,IAAA,CAAM,CAAC;YACjG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,uCAAA,EAA0C,UAAU,CAAA,WAAA,CAAa,CAAC;YAC5F,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,uCAAA,EAA0C,UAAU,CAAA,SAAA,CAAW,CAAC;YAC1F;QACD;QACA,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC;IAC3D;IAEQ,MAAM,oBAAoB,CAAC,QAAgB,EAAA;AAClD,QAAA,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC;QAC9E,IAAI,CAAC,MAAM,EAAE;YAAE;QAAQ;QAEvB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC;AACzD,QAAA,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;QAE/B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM;AACpC,QAAA,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE;AAC7B,YAAA,IAAI,CAAC,MAAM,UAAU,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC,EAAE;gBACrE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC;gBACvD;YACD;AACA,YAAA,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3C;AACA,QAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC;IAChE;AAEQ,IAAA,MAAM,iBAAiB,CAAC,QAAgB,EAAE,UAAkB,EAAE,UAAwB,EAAA;AAC7F,QAAA,IAAI,MAAM,UAAU,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,EAAE;YAC5D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC;YACtD;QACD;QAEA,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CACjC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAC5C,aAAa,CACb;AAED,QAAA,MAAM,IAAI,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC;AACpE,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE;AAC1D,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC;QAAE;AAC3D,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE;AAC1C,QAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AACrD,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;YAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,eAAe,CAAC;QAAE;AAClF,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;YAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,eAAe,CAAC;QAAE;;AAGlF,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,6BAA6B,IAAI,CAAC,GAAG,EAAE,CAAA,IAAA,CAAM,CAAC;QACrF,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC;AAEvC,QAAA,MAAM,KAAK,GAAG,KAAK,CAClB,OAAO,CAAC,QAAQ,EAChB,IAAI,EACJ,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CACtE;QACD,KAAK,CAAC,KAAK,EAAE;;QAGb,IAAI,QAAQ,GAAkB,IAAI;QAClC,IAAI,UAAU,GAAkB,IAAI;QACpC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAI,EAAG,QAAQ,GAAG,IAAI,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAE7E,QAAA,IAAI;YACH,MAAM,aAAa,CAAC,QAAQ,EAAE;AAC7B,gBAAA,SAAS,EAAE,MAAM;AACjB,gBAAA,UAAU,EAAE,WAAW;AACvB,gBAAA,cAAc,EAAE,MAAM,QAAQ,KAAK,IAAI;AACvC,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,sBAAA,EAAyB,QAAQ,CAAA,UAAA,EAAa,UAAU,CAAA,GAAA,CAAK,CAAC;QACzF;QAAE,OAAO,GAAG,EAAE;;AAEb,YAAA,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;YACnB,IAAI,WAAW,GAAG,EAAE;AACpB,YAAA,IAAI;AACH,gBAAA,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE;YACvD;AAAE,YAAA,MAAM,2BAA2B;AAEnC,YAAA,IAAI,QAAQ,KAAK,IAAI,EAAE;AACtB,gBAAA,MAAM,MAAM,GAAG,WAAW,GAAG,CAAA,kBAAA,EAAqB,WAAW,CAAA,CAAE,GAAG,EAAE;gBACpE,MAAM,IAAI,KAAK,CAAC,CAAA,gCAAA,EAAmC,QAAQ,CAAA,EAAG,UAAU,GAAG,aAAa,UAAU,CAAA,CAAA,CAAG,GAAG,EAAE,CAAA,uBAAA,EAA0B,MAAM,CAAA,CAAE,CAAC;YAC9I;AACA,YAAA,MAAM,MAAM,GAAG,WAAW,GAAG,CAAA,kBAAA,EAAqB,WAAW,CAAA,CAAE,GAAG,4CAA4C;YAC9G,MAAM,IAAI,KAAK,CAAC,CAAA,EAAG,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA,EAAG,MAAM,CAAA,CAAE,CAAC;QAChF;gBAAU;AACT,YAAA,IAAI;AAAE,gBAAA,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;YAAE;AAAE,YAAA,MAAM,8BAA8B;AACjE,YAAA,IAAI;AAAE,gBAAA,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE;AAAE,YAAA,MAAM,4BAA4B;QACnE;IACD;AAEQ,IAAA,MAAM,OAAO,CACpB,MAAmD,EACnD,QAAgB,EAChB,UAAkB,EAAA;AAElB,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,0BAAA,EAA6B,QAAQ,CAAA,UAAA,EAAa,UAAU,CAAA,GAAA,CAAK,CAAC;QAC5F,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gDAAgD,CAAC;QAE3E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,EAAgC;AAE1E,QAAA,WAAW,MAAM,KAAK,IAAI,MAAM,EAAE;AACjC,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QACxB;QAEA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC;IACrD;AAEQ,IAAA,iBAAiB,CAAC,QAAuB,EAAA;AAChD,QAAA,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE;AACzB,YAAA,IAAI,CAAC,CAAC,SAAS,EAAE;AAChB,gBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,EAAA,EAAK,CAAC,CAAC,IAAI,CAAA,aAAA,CAAe,CAAC;YACtD;iBAAO;AACN,gBAAA,MAAM,WAAW,GAAG,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;AACxF,gBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,EAAA,EAAK,CAAC,CAAC,IAAI,CAAA,EAAA,EAAK,WAAW,CAAA,EAAA,EAAK,CAAC,CAAC,UAAU,CAAA,GAAA,CAAK,CAAC;YAC7E;QACD;QACA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;IAChC;AAEQ,IAAA,WAAW,CAAC,KAAkB,EAAA;QACrC,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,kBAAkB,EAAE;AAC1C,QAAA,QAAQ,KAAK,CAAC,IAAI;AACjB,YAAA,KAAK,eAAe;AACnB,gBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,EAAE,oBAAoB,KAAK,CAAC,WAAW,CAAA,eAAA,EAAkB,KAAK,CAAC,YAAY,CAAA,EAAA,CAAI,CAAC;gBAC9G;AACD,YAAA,KAAK,YAAY;AAChB,gBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,EAAE,oBAAoB,KAAK,CAAC,WAAW,CAAA,YAAA,EAAe,KAAK,CAAC,SAAS,CAAA,EAAA,CAAI,CAAC;gBACxG;AACD,YAAA,KAAK,KAAK;AACT,gBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,EAAE,MAAM,KAAK,CAAC,KAAK,CAAA,EAAA,EAAK,KAAK,CAAC,OAAO,CAAA,EAAA,CAAI,CAAC;gBACxE;;IAEH;AAEQ,IAAA,MAAM,YAAY,CAAC,QAAgB,EAAE,UAAkB,EAAE,UAAwB,EAAA;AACxF,QAAA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACnJ,YAAY,CAAC,MAAM,CAAC;AAEpB,QAAA,MAAM,CAAC,GAAG,CAAC,uBAAuB,UAAU,CAAA,CAAE,CAAC;AAC/C,QAAA,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE;QACzC,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;AAE7E,QAAA,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC;AACpC,QAAA,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,CAAC;;QAGtJ,IAAI,SAAS,GAAG,KAAK;AACrB,QAAA,MAAM,OAAO,GAAG,YAAW;YAC1B,IAAI,SAAS,EAAE;gBAAE;YAAQ;YACzB,SAAS,GAAG,IAAI;AAChB,YAAA,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC;AAC9B,YAAA,MAAM,OAAO,CAAC,OAAO,EAAE;YACvB,WAAW,CAAC,OAAO,EAAE;AACtB,QAAA,CAAC;QACD,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,OAAO,GAAG,KAAI;YAC7C,MAAM,CAAC,GAAG,CAAC,CAAA,oBAAA,EAAuB,GAAG,CAAC,OAAO,CAAA,CAAE,CAAC;YAChD,MAAM,OAAO,EAAE;AAChB,QAAA,CAAC,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,OAAO,GAAG,KAAI;YAC9C,MAAM,CAAC,GAAG,CAAC,CAAA,qBAAA,EAAwB,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA,CAAE,CAAC;YACtF,MAAM,OAAO,EAAE;AAChB,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,MAA+B;AACnC,QAAA,IAAI,cAAuC;AAC3C,QAAA,IAAI;YACH,MAAM,CAAC,GAAG,CAAC,CAAA,wBAAA,EAA2B,QAAQ,CAAA,UAAA,EAAa,UAAU,CAAA,CAAA,CAAG,CAAC;YACzE,MAAM,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;AAEzD,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,oBAAA,EAAuB,QAAQ,CAAA,UAAA,EAAa,UAAU,CAAA,GAAA,CAAK,CAAC;YACtF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC;YAEtD,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;AAEjD,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC;kBACvB,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE;AACnC,kBAAE,cAAc,CAAC,WAAW,EAAE,IAAI;AACnC,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,IAAI,cAAc,CAAC,WAAW,EAAE,IAAI,IAAI,WAAW;YAC5F,IAAI,YAAY,EAAE;gBACjB,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC;YACnF;AAEA,YAAA,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAK;gBACzB,OAAO,CAAC,eAAe,EAAE;AAC1B,YAAA,CAAC,CAAC;AAEF,YAAA,MAAM,OAAO,CAAC,YAAY,EAAE;QAC7B;gBAAU;YACT,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC;YACjD,cAAc,EAAE,OAAO,EAAE;YACzB,MAAM,EAAE,KAAK,EAAE;YACf,MAAM,OAAO,EAAE;QAChB;IACD;AAEQ,IAAA,uBAAuB,CAAC,OAAsB,EAAE,IAAY,EAAE,IAAY,EAAA;AACjF,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,EAAE,GAAG,KAAI;AACnD,YAAA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,CAAA,OAAA,EAAU,GAAG,CAAC,OAAO,CAAC,IAAI,CAAA,CAAE,CAAC;YACjE,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC;AAEvD,YAAA,IAAI;gBACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,WAAW,IAAI,SAAS,CAAC;gBACtE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;AACzC,gBAAA,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ;AAC9B,gBAAA,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC;AACtC,gBAAA,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM;AAC1B,gBAAA,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC7C,GAAG,CAAC,GAAG,EAAE;YACV;AAAE,YAAA,MAAM;AACP,gBAAA,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC;AAClB,gBAAA,GAAG,CAAC,GAAG,CAAC,2BAA2B,CAAC;YACrC;AACD,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAK;AAC9B,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,uCAAA,EAA0C,IAAI,CAAA,CAAA,EAAI,IAAI,CAAA,EAAA,CAAI,CAAC;AACtF,QAAA,CAAC,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC,KAAK,EAAE,EAAE;IACzC;;;;;"}
|
|
1
|
+
{"version":3,"file":"serveCommand.js","sources":["../../src/commands/serveCommand.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|