@vscode/component-explorer-cli 0.2.1-17 → 0.2.1-171

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.
Files changed (281) hide show
  1. package/README.md +130 -12
  2. package/dist/WorktreePool.d.ts +5 -4
  3. package/dist/WorktreePool.d.ts.map +1 -1
  4. package/dist/WorktreePool.js +3 -3
  5. package/dist/WorktreePool.js.map +1 -1
  6. package/dist/_virtual/_build-info.js +1 -1
  7. package/dist/browserPage.d.ts +55 -1
  8. package/dist/browserPage.d.ts.map +1 -1
  9. package/dist/browserPage.js +103 -7
  10. package/dist/browserPage.js.map +1 -1
  11. package/dist/browserPage.test.d.ts +2 -0
  12. package/dist/browserPage.test.d.ts.map +1 -0
  13. package/dist/commands/acceptCommand.d.ts +1 -1
  14. package/dist/commands/acceptCommand.d.ts.map +1 -1
  15. package/dist/commands/acceptCommand.js +21 -14
  16. package/dist/commands/acceptCommand.js.map +1 -1
  17. package/dist/commands/checkStabilityCommand.d.ts +2 -0
  18. package/dist/commands/checkStabilityCommand.d.ts.map +1 -1
  19. package/dist/commands/checkStabilityCommand.js +25 -8
  20. package/dist/commands/checkStabilityCommand.js.map +1 -1
  21. package/dist/commands/compareCommand.d.ts +1 -1
  22. package/dist/commands/compareCommand.d.ts.map +1 -1
  23. package/dist/commands/compareCommand.js +31 -22
  24. package/dist/commands/compareCommand.js.map +1 -1
  25. package/dist/commands/inputArg.d.ts +33 -0
  26. package/dist/commands/inputArg.d.ts.map +1 -0
  27. package/dist/commands/inputArg.js +103 -0
  28. package/dist/commands/inputArg.js.map +1 -0
  29. package/dist/commands/mcpCommand.d.ts.map +1 -1
  30. package/dist/commands/mcpCommand.js +18 -12
  31. package/dist/commands/mcpCommand.js.map +1 -1
  32. package/dist/commands/renderCommand.d.ts +10 -1
  33. package/dist/commands/renderCommand.d.ts.map +1 -1
  34. package/dist/commands/renderCommand.js +390 -61
  35. package/dist/commands/renderCommand.js.map +1 -1
  36. package/dist/commands/renderCommand.test.d.ts +2 -0
  37. package/dist/commands/renderCommand.test.d.ts.map +1 -0
  38. package/dist/commands/serveCommand.d.ts +4 -1
  39. package/dist/commands/serveCommand.d.ts.map +1 -1
  40. package/dist/commands/serveCommand.js +105 -36
  41. package/dist/commands/serveCommand.js.map +1 -1
  42. package/dist/commands/serviceDiffCommitsCommand.d.ts.map +1 -1
  43. package/dist/commands/serviceDiffCommitsCommand.js +10 -9
  44. package/dist/commands/serviceDiffCommitsCommand.js.map +1 -1
  45. package/dist/commands/watchCommand.d.ts +1 -0
  46. package/dist/commands/watchCommand.d.ts.map +1 -1
  47. package/dist/commands/watchCommand.js +31 -20
  48. package/dist/commands/watchCommand.js.map +1 -1
  49. package/dist/comparison.d.ts +4 -3
  50. package/dist/comparison.d.ts.map +1 -1
  51. package/dist/comparison.js +17 -14
  52. package/dist/comparison.js.map +1 -1
  53. package/dist/component-explorer-config.schema.json +55 -2
  54. package/dist/componentExplorer.d.ts +110 -12
  55. package/dist/componentExplorer.d.ts.map +1 -1
  56. package/dist/componentExplorer.js +177 -24
  57. package/dist/componentExplorer.js.map +1 -1
  58. package/dist/config.d.ts +33 -4
  59. package/dist/config.d.ts.map +1 -1
  60. package/dist/config.js +64 -27
  61. package/dist/config.js.map +1 -1
  62. package/dist/coverage.d.ts +64 -0
  63. package/dist/coverage.d.ts.map +1 -0
  64. package/dist/coverage.js +212 -0
  65. package/dist/coverage.js.map +1 -0
  66. package/dist/daemon/DaemonService.d.ts +5 -199
  67. package/dist/daemon/DaemonService.d.ts.map +1 -1
  68. package/dist/daemon/DaemonService.js +248 -300
  69. package/dist/daemon/DaemonService.js.map +1 -1
  70. package/dist/daemon/approvalStore.d.ts +2 -1
  71. package/dist/daemon/approvalStore.d.ts.map +1 -1
  72. package/dist/daemon/approvalStore.js +4 -3
  73. package/dist/daemon/approvalStore.js.map +1 -1
  74. package/dist/daemon/client.d.ts +76 -5
  75. package/dist/daemon/client.d.ts.map +1 -1
  76. package/dist/daemon/daemonRpc.test.d.ts +2 -0
  77. package/dist/daemon/daemonRpc.test.d.ts.map +1 -0
  78. package/dist/daemon/endpointServer.d.ts +4 -0
  79. package/dist/daemon/endpointServer.d.ts.map +1 -0
  80. package/dist/daemon/endpointServer.js +24 -0
  81. package/dist/daemon/endpointServer.js.map +1 -0
  82. package/dist/daemon/inProcessClient.d.ts +3 -9
  83. package/dist/daemon/inProcessClient.d.ts.map +1 -1
  84. package/dist/daemon/inProcessClient.js +29 -30
  85. package/dist/daemon/inProcessClient.js.map +1 -1
  86. package/dist/daemon/lifecycle.d.ts +5 -5
  87. package/dist/daemon/lifecycle.d.ts.map +1 -1
  88. package/dist/daemon/lifecycle.js +4 -3
  89. package/dist/daemon/lifecycle.js.map +1 -1
  90. package/dist/daemon/pipeClient.d.ts +2 -3
  91. package/dist/daemon/pipeClient.d.ts.map +1 -1
  92. package/dist/daemon/pipeClient.js +93 -194
  93. package/dist/daemon/pipeClient.js.map +1 -1
  94. package/dist/daemon/pipeName.d.ts +3 -3
  95. package/dist/daemon/pipeName.d.ts.map +1 -1
  96. package/dist/daemon/pipeName.js +6 -5
  97. package/dist/daemon/pipeName.js.map +1 -1
  98. package/dist/daemon/pipeServer.d.ts +2 -2
  99. package/dist/daemon/pipeServer.d.ts.map +1 -1
  100. package/dist/daemon/pipeServer.js +79 -70
  101. package/dist/daemon/pipeServer.js.map +1 -1
  102. package/dist/daemon/registerDaemonConnection.d.ts +7 -0
  103. package/dist/daemon/registerDaemonConnection.d.ts.map +1 -0
  104. package/dist/daemon/registerDaemonConnection.js +37 -0
  105. package/dist/daemon/registerDaemonConnection.js.map +1 -0
  106. package/dist/daemon/transports.test.d.ts +2 -0
  107. package/dist/daemon/transports.test.d.ts.map +1 -0
  108. package/dist/daemon/types.d.ts +1655 -8
  109. package/dist/daemon/types.d.ts.map +1 -1
  110. package/dist/daemon/types.js +4 -0
  111. package/dist/daemon/types.js.map +1 -0
  112. package/dist/daemon/version.d.ts +1 -5
  113. package/dist/daemon/version.d.ts.map +1 -1
  114. package/dist/daemon/version.js +3 -7
  115. package/dist/daemon/version.js.map +1 -1
  116. package/dist/dependencyInstaller.d.ts +2 -1
  117. package/dist/dependencyInstaller.d.ts.map +1 -1
  118. package/dist/dependencyInstaller.js +4 -4
  119. package/dist/dependencyInstaller.js.map +1 -1
  120. package/dist/explorerSession.d.ts +5 -1
  121. package/dist/explorerSession.d.ts.map +1 -1
  122. package/dist/explorerSession.js +24 -7
  123. package/dist/explorerSession.js.map +1 -1
  124. package/dist/external/linkrpc/typescript/packages/linkrpc/dist/chunks/inspectionHost-BA6ZmC_P.js +2523 -0
  125. package/dist/external/linkrpc/typescript/packages/linkrpc/dist/chunks/inspectionHost-BA6ZmC_P.js.map +1 -0
  126. package/dist/external/linkrpc/typescript/packages/linkrpc/dist/chunks/src-DYVSK_tz.js +1871 -0
  127. package/dist/external/linkrpc/typescript/packages/linkrpc/dist/chunks/src-DYVSK_tz.js.map +1 -0
  128. package/dist/external/linkrpc/typescript/packages/linkrpc/dist/chunks/webSocketTransport-Ct4OIdG9.js +220 -0
  129. package/dist/external/linkrpc/typescript/packages/linkrpc/dist/chunks/webSocketTransport-Ct4OIdG9.js.map +1 -0
  130. package/dist/external/linkrpc/typescript/packages/linkrpc/dist/node.js +721 -0
  131. package/dist/external/linkrpc/typescript/packages/linkrpc/dist/node.js.map +1 -0
  132. package/dist/git/gitCommitResolver.d.ts +2 -1
  133. package/dist/git/gitCommitResolver.d.ts.map +1 -1
  134. package/dist/git/gitCommitResolver.js +8 -8
  135. package/dist/git/gitCommitResolver.js.map +1 -1
  136. package/dist/git/gitIndexResolver.d.ts +2 -1
  137. package/dist/git/gitIndexResolver.d.ts.map +1 -1
  138. package/dist/git/gitIndexResolver.js +7 -7
  139. package/dist/git/gitIndexResolver.js.map +1 -1
  140. package/dist/git/gitService.d.ts +5 -4
  141. package/dist/git/gitService.d.ts.map +1 -1
  142. package/dist/git/gitService.js.map +1 -1
  143. package/dist/git/gitUtils.d.ts +6 -5
  144. package/dist/git/gitUtils.d.ts.map +1 -1
  145. package/dist/git/gitUtils.js +5 -4
  146. package/dist/git/gitUtils.js.map +1 -1
  147. package/dist/git/gitWorktreeManager.d.ts +15 -14
  148. package/dist/git/gitWorktreeManager.d.ts.map +1 -1
  149. package/dist/git/gitWorktreeManager.js +10 -11
  150. package/dist/git/gitWorktreeManager.js.map +1 -1
  151. package/dist/git/testUtils.d.ts +2 -1
  152. package/dist/git/testUtils.d.ts.map +1 -1
  153. package/dist/index.d.ts +0 -2
  154. package/dist/index.js +10 -1
  155. package/dist/index.js.map +1 -1
  156. package/dist/js-component-explorer/packages/common/dist/daemonRpc.js +165 -0
  157. package/dist/js-component-explorer/packages/common/dist/daemonRpc.js.map +1 -0
  158. package/dist/js-component-explorer/packages/common/dist/explorerUrl.js +21 -0
  159. package/dist/js-component-explorer/packages/common/dist/explorerUrl.js.map +1 -0
  160. package/dist/js-component-explorer/packages/common/dist/renderManifest.js +68 -0
  161. package/dist/js-component-explorer/packages/common/dist/renderManifest.js.map +1 -0
  162. package/dist/js-component-explorer/packages/semver/dist/index.js.map +1 -0
  163. package/dist/manifest.schema.json +44 -16
  164. package/dist/mcp/DaemonAccessor.d.ts +2 -3
  165. package/dist/mcp/DaemonAccessor.d.ts.map +1 -1
  166. package/dist/mcp/McpServer.d.ts +1 -1
  167. package/dist/mcp/McpServer.d.ts.map +1 -1
  168. package/dist/mcp/McpServer.js +252 -159
  169. package/dist/mcp/McpServer.js.map +1 -1
  170. package/dist/path.d.ts +30 -0
  171. package/dist/path.d.ts.map +1 -0
  172. package/dist/path.js +78 -0
  173. package/dist/path.js.map +1 -0
  174. package/dist/processTree.d.ts +6 -1
  175. package/dist/processTree.d.ts.map +1 -1
  176. package/dist/processTree.js +48 -5
  177. package/dist/processTree.js.map +1 -1
  178. package/dist/renderManifest.d.ts +70 -5
  179. package/dist/renderManifest.js +1 -1
  180. package/dist/server/httpServer.d.ts +1 -1
  181. package/dist/server/httpServer.d.ts.map +1 -1
  182. package/dist/server/httpServer.js +4 -8
  183. package/dist/server/httpServer.js.map +1 -1
  184. package/dist/server/serverConfig.d.ts +23 -8
  185. package/dist/server/serverConfig.d.ts.map +1 -1
  186. package/dist/server/serverConfig.js +11 -18
  187. package/dist/server/serverConfig.js.map +1 -1
  188. package/dist/server/viteServer.d.ts +16 -3
  189. package/dist/server/viteServer.d.ts.map +1 -1
  190. package/dist/server/viteServer.js +86 -5
  191. package/dist/server/viteServer.js.map +1 -1
  192. package/dist/storage.d.ts +2 -1
  193. package/dist/storage.d.ts.map +1 -1
  194. package/dist/storage.js +1 -1
  195. package/dist/storage.js.map +1 -1
  196. package/dist/utils.d.ts +3 -30
  197. package/dist/utils.d.ts.map +1 -1
  198. package/dist/utils.js +4 -24
  199. package/dist/utils.js.map +1 -1
  200. package/dist/visualCache.d.ts +2 -1
  201. package/dist/visualCache.d.ts.map +1 -1
  202. package/dist/visualCache.js +4 -3
  203. package/dist/visualCache.js.map +1 -1
  204. package/dist/viteProjectRef.d.ts +4 -12
  205. package/dist/viteProjectRef.d.ts.map +1 -1
  206. package/dist/viteProjectRef.js +9 -17
  207. package/dist/viteProjectRef.js.map +1 -1
  208. package/dist/vscode-observables/observables/dist/disposables.js.map +1 -0
  209. package/dist/vscode-observables/observables/dist/observableInternal/base.js.map +1 -0
  210. package/dist/vscode-observables/observables/dist/observableInternal/commonFacade/deps.js.map +1 -0
  211. package/dist/vscode-observables/observables/dist/observableInternal/debugLocation.js.map +1 -0
  212. package/dist/vscode-observables/observables/dist/observableInternal/debugName.js.map +1 -0
  213. package/dist/vscode-observables/observables/dist/observableInternal/index.js.map +1 -0
  214. package/dist/vscode-observables/observables/dist/observableInternal/logging/consoleObservableLogger.js.map +1 -0
  215. package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/logging/debugGetDependencyGraph.js +1 -1
  216. package/dist/vscode-observables/observables/dist/observableInternal/logging/debugGetDependencyGraph.js.map +1 -0
  217. package/dist/vscode-observables/observables/dist/observableInternal/logging/logging.js.map +1 -0
  218. package/dist/vscode-observables/observables/dist/observableInternal/observables/baseObservable.js.map +1 -0
  219. package/dist/vscode-observables/observables/dist/observableInternal/observables/derived.js.map +1 -0
  220. package/dist/vscode-observables/observables/dist/observableInternal/observables/derivedImpl.js.map +1 -0
  221. package/dist/vscode-observables/observables/dist/observableInternal/observables/observableFromEvent.js.map +1 -0
  222. package/dist/vscode-observables/observables/dist/observableInternal/observables/observableValue.js.map +1 -0
  223. package/dist/{external/vscode-observables/observables/dist/observableInternal/reactions/autorun.js → vscode-observables/observables/dist/observableInternal/reactions/createEffect.js} +9 -5
  224. package/dist/vscode-observables/observables/dist/observableInternal/reactions/createEffect.js.map +1 -0
  225. package/dist/{external/vscode-observables/observables/dist/observableInternal/reactions/autorunImpl.js → vscode-observables/observables/dist/observableInternal/reactions/createEffectImpl.js} +1 -1
  226. package/dist/vscode-observables/observables/dist/observableInternal/reactions/createEffectImpl.js.map +1 -0
  227. package/dist/vscode-observables/observables/dist/observableInternal/transaction.js.map +1 -0
  228. package/dist/vscode-observables/observables/dist/observableInternal/utils/utils.js.map +1 -0
  229. package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/utils/utilsCancellation.js +2 -2
  230. package/dist/vscode-observables/observables/dist/observableInternal/utils/utilsCancellation.js.map +1 -0
  231. package/package.json +18 -15
  232. package/dist/commands/artifactCommand.d.ts +0 -14
  233. package/dist/commands/artifactCommand.d.ts.map +0 -1
  234. package/dist/external/vscode-observables/observables/dist/disposables.js.map +0 -1
  235. package/dist/external/vscode-observables/observables/dist/observableInternal/base.js.map +0 -1
  236. package/dist/external/vscode-observables/observables/dist/observableInternal/commonFacade/deps.js.map +0 -1
  237. package/dist/external/vscode-observables/observables/dist/observableInternal/debugLocation.js.map +0 -1
  238. package/dist/external/vscode-observables/observables/dist/observableInternal/debugName.js.map +0 -1
  239. package/dist/external/vscode-observables/observables/dist/observableInternal/index.js.map +0 -1
  240. package/dist/external/vscode-observables/observables/dist/observableInternal/logging/consoleObservableLogger.js.map +0 -1
  241. package/dist/external/vscode-observables/observables/dist/observableInternal/logging/debugGetDependencyGraph.js.map +0 -1
  242. package/dist/external/vscode-observables/observables/dist/observableInternal/logging/logging.js.map +0 -1
  243. package/dist/external/vscode-observables/observables/dist/observableInternal/observables/baseObservable.js.map +0 -1
  244. package/dist/external/vscode-observables/observables/dist/observableInternal/observables/derived.js.map +0 -1
  245. package/dist/external/vscode-observables/observables/dist/observableInternal/observables/derivedImpl.js.map +0 -1
  246. package/dist/external/vscode-observables/observables/dist/observableInternal/observables/observableFromEvent.js.map +0 -1
  247. package/dist/external/vscode-observables/observables/dist/observableInternal/observables/observableValue.js.map +0 -1
  248. package/dist/external/vscode-observables/observables/dist/observableInternal/reactions/autorun.js.map +0 -1
  249. package/dist/external/vscode-observables/observables/dist/observableInternal/reactions/autorunImpl.js.map +0 -1
  250. package/dist/external/vscode-observables/observables/dist/observableInternal/transaction.js.map +0 -1
  251. package/dist/external/vscode-observables/observables/dist/observableInternal/utils/utils.js.map +0 -1
  252. package/dist/external/vscode-observables/observables/dist/observableInternal/utils/utilsCancellation.js.map +0 -1
  253. package/dist/formatValue.js +0 -96
  254. package/dist/formatValue.js.map +0 -1
  255. package/dist/packages/common/dist/renderManifest.js +0 -46
  256. package/dist/packages/common/dist/renderManifest.js.map +0 -1
  257. package/dist/packages/semver/dist/index.js.map +0 -1
  258. package/dist/packages/simple-api/dist/chunk-FJ7AVNQE.js +0 -138
  259. package/dist/packages/simple-api/dist/chunk-FJ7AVNQE.js.map +0 -1
  260. package/dist/packages/simple-api/dist/chunk-TTRCY65Z.js +0 -27
  261. package/dist/packages/simple-api/dist/chunk-TTRCY65Z.js.map +0 -1
  262. package/dist/packages/simple-api/dist/chunk-WNXMRXWV.js +0 -28
  263. package/dist/packages/simple-api/dist/chunk-WNXMRXWV.js.map +0 -1
  264. package/dist/packages/simple-api/dist/express.js +0 -104
  265. package/dist/packages/simple-api/dist/express.js.map +0 -1
  266. /package/dist/{packages → js-component-explorer/packages}/semver/dist/index.js +0 -0
  267. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/disposables.js +0 -0
  268. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/base.js +0 -0
  269. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/commonFacade/deps.js +0 -0
  270. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/debugLocation.js +0 -0
  271. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/debugName.js +0 -0
  272. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/index.js +0 -0
  273. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/logging/consoleObservableLogger.js +0 -0
  274. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/logging/logging.js +0 -0
  275. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/observables/baseObservable.js +0 -0
  276. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/observables/derived.js +0 -0
  277. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/observables/derivedImpl.js +0 -0
  278. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/observables/observableFromEvent.js +0 -0
  279. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/observables/observableValue.js +0 -0
  280. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/transaction.js +0 -0
  281. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/utils/utils.js +0 -0
@@ -0,0 +1,220 @@
1
+ import { Ct as isRequest, xt as ErrorCode } from './inspectionHost-BA6ZmC_P.js';
2
+
3
+ /*---------------------------------------------------------------------------------------------
4
+ * Copyright (c) Microsoft Corporation. All rights reserved.
5
+ * Licensed under the MIT License. See License.txt in the project root for license information.
6
+ *--------------------------------------------------------------------------------------------*/
7
+ //#region src/transport/initialize.ts
8
+ /** Transport-only handshake, never forwarded to a routed service. */
9
+ const INITIALIZE_METHOD = "hubrpc::initialize";
10
+ const DEFAULT_HANDSHAKE_TIMEOUT_MS = 1e4;
11
+ const INITIALIZE_REQUEST_ID = 0;
12
+ /** Run the shared initialization on any transport. The caller owns disposal. */
13
+ async function runInitializeHandshake(transport, role, options = {}) {
14
+ const completed = new AbortController();
15
+ const signal = options.signal ? AbortSignal.any([options.signal, completed.signal]) : completed.signal;
16
+ if (signal?.aborted) throw cancellationError(signal);
17
+ let onAbort;
18
+ const aborted = new Promise((_resolve, reject) => {
19
+ onAbort = () => reject(cancellationError(signal));
20
+ signal?.addEventListener("abort", onAbort, { once: true });
21
+ });
22
+ try {
23
+ return await Promise.race([performInitializeHandshake(transport, role, {
24
+ ...options,
25
+ signal
26
+ }), aborted]);
27
+ } finally {
28
+ signal?.removeEventListener("abort", onAbort);
29
+ completed.abort();
30
+ }
31
+ }
32
+ async function performInitializeHandshake(transport, role, options) {
33
+ const timeoutMs = options.handshakeTimeoutMs ?? DEFAULT_HANDSHAKE_TIMEOUT_MS;
34
+ if (role.kind === "client") {
35
+ const reply = nextMessage(transport, timeoutMs, options.signal);
36
+ const params = {
37
+ protocolVersion: 1,
38
+ ...role.token !== void 0 ? { token: role.token } : {}
39
+ };
40
+ const sent = Promise.resolve().then(() => transport.send({
41
+ jsonrpc: "2.0",
42
+ id: INITIALIZE_REQUEST_ID,
43
+ method: INITIALIZE_METHOD,
44
+ params
45
+ }));
46
+ const [, message] = await Promise.all([sent, reply]);
47
+ if (isRequest(message) || !("id" in message) || message.id !== INITIALIZE_REQUEST_ID) throw new Error("hubrpc::initialize: unexpected reply to handshake");
48
+ if ("error" in message) throw new Error(`hubrpc::initialize rejected: ${message.error.message}`);
49
+ return {};
50
+ }
51
+ const first = await nextMessage(transport, timeoutMs, options.signal);
52
+ if (!isRequest(first) || first.method !== "hubrpc::initialize" && first.method !== "linkrpc::initialize") throw new Error("hubrpc::initialize: expected initialize as the first message");
53
+ const params = first.params ?? {};
54
+ const accepted = await role.isTokenAccepted(params.token);
55
+ if (options.signal?.aborted) throw cancellationError(options.signal);
56
+ if (!accepted) {
57
+ await transport.send({
58
+ jsonrpc: "2.0",
59
+ id: first.id,
60
+ error: {
61
+ code: ErrorCode.invalidRequest,
62
+ message: "unauthenticated"
63
+ }
64
+ });
65
+ throw new Error("hubrpc::initialize: unauthenticated");
66
+ }
67
+ await transport.send({
68
+ jsonrpc: "2.0",
69
+ id: first.id,
70
+ result: { protocolVersion: 1 }
71
+ });
72
+ return { token: params.token };
73
+ }
74
+ /** Detach after exactly one message, leaving buffered RPC messages for the channel. */
75
+ function nextMessage(transport, timeoutMs, signal) {
76
+ return new Promise((resolve, reject) => {
77
+ const cleanup = () => {
78
+ clearTimeout(timer);
79
+ signal?.removeEventListener("abort", abort);
80
+ transport.setListener(void 0);
81
+ };
82
+ const abort = () => {
83
+ cleanup();
84
+ reject(cancellationError(signal));
85
+ };
86
+ const timer = setTimeout(() => {
87
+ cleanup();
88
+ reject(/* @__PURE__ */ new Error("hubrpc::initialize: handshake timed out"));
89
+ }, timeoutMs);
90
+ if (signal?.aborted) {
91
+ abort();
92
+ return;
93
+ }
94
+ signal?.addEventListener("abort", abort, { once: true });
95
+ transport.setListener((message) => {
96
+ cleanup();
97
+ resolve(message);
98
+ });
99
+ });
100
+ }
101
+ function cancellationError(signal) {
102
+ return signal.reason instanceof Error && signal.reason.name !== "AbortError" ? signal.reason : /* @__PURE__ */ new Error("hubrpc::initialize: handshake cancelled");
103
+ }
104
+ //#endregion
105
+ //#region src/transport/webSocketTransport.ts
106
+ /**
107
+ * Client-side WebSocket transport: one JSON-RPC message per text frame.
108
+ * Shared by the Node and browser entries so either can reach a ws/wss hub
109
+ * without depending on `@hediet/linkrpc-hub`.
110
+ *
111
+ * Accepts native client and Node `ws` server sockets without a runtime `ws`
112
+ * dependency in the browser entry.
113
+ *
114
+ * Takes ownership of the socket: {@link dispose} closes it, and a peer
115
+ * close / error fires `onClose` exactly once.
116
+ */
117
+ var WebSocketTransport = class {
118
+ _ws;
119
+ _onClose;
120
+ _listener;
121
+ _buffer = [];
122
+ _closed = false;
123
+ constructor(_ws, _onClose) {
124
+ this._ws = _ws;
125
+ this._onClose = _onClose;
126
+ _ws.binaryType = "arraybuffer";
127
+ _ws.addEventListener("message", (event) => {
128
+ const data = event.data;
129
+ const text = typeof data === "string" ? data : data instanceof ArrayBuffer ? new TextDecoder().decode(data) : ArrayBuffer.isView(data) ? new TextDecoder().decode(data) : String(data);
130
+ for (const line of text.split("\n")) {
131
+ const trimmed = line.trim();
132
+ if (!trimmed) continue;
133
+ let parsed;
134
+ try {
135
+ parsed = JSON.parse(trimmed);
136
+ } catch {
137
+ continue;
138
+ }
139
+ this._deliver(parsed);
140
+ }
141
+ });
142
+ const onEnd = () => {
143
+ if (this._closed) return;
144
+ this._closed = true;
145
+ this._onClose?.();
146
+ };
147
+ _ws.addEventListener("close", onEnd);
148
+ _ws.addEventListener("error", onEnd);
149
+ }
150
+ send(message) {
151
+ if (this._closed) return;
152
+ if (this._ws.readyState !== 1) return;
153
+ this._ws.send(JSON.stringify(message));
154
+ }
155
+ setListener(listener) {
156
+ this._listener = listener;
157
+ if (listener) while (this._buffer.length > 0 && this._listener) {
158
+ const m = this._buffer.shift();
159
+ this._listener(m);
160
+ }
161
+ }
162
+ dispose() {
163
+ if (this._closed) return;
164
+ this._closed = true;
165
+ try {
166
+ this._ws.close();
167
+ } catch {}
168
+ this._onClose?.();
169
+ }
170
+ _deliver(m) {
171
+ if (this._listener) this._listener(m);
172
+ else this._buffer.push(m);
173
+ }
174
+ };
175
+ /**
176
+ * Open a WebSocket to `url` and resolve once it is connected. Rejects if the
177
+ * socket errors before open.
178
+ *
179
+ * Authentication is NOT done here: the hub's WebSocket server authenticates
180
+ * over the in-band `hubrpc::initialize` handshake (so browsers, which cannot
181
+ * set request headers on the `WebSocket` constructor, work too). Run
182
+ * {@link runInitializeHandshake} on the resulting {@link WebSocketTransport}.
183
+ *
184
+ * Uses the standard constructor overload; credentials belong in initialization.
185
+ */
186
+ function openWebSocket(url, opts = {}) {
187
+ return new Promise((resolve, reject) => {
188
+ if (opts.signal?.aborted) {
189
+ reject(/* @__PURE__ */ new Error("WebSocket connection cancelled"));
190
+ return;
191
+ }
192
+ const ws = opts.protocols === void 0 ? new WebSocket(url) : new WebSocket(url, opts.protocols);
193
+ const cleanup = () => {
194
+ clearTimeout(timer);
195
+ ws.removeEventListener("open", onOpen);
196
+ ws.removeEventListener("error", onError);
197
+ ws.removeEventListener("close", onError);
198
+ opts.signal?.removeEventListener("abort", onAbort);
199
+ };
200
+ const fail = (message) => {
201
+ cleanup();
202
+ ws.close();
203
+ reject(new Error(message));
204
+ };
205
+ const onOpen = () => {
206
+ cleanup();
207
+ resolve(ws);
208
+ };
209
+ const onError = () => fail("WebSocket connection failed");
210
+ const onAbort = () => fail("WebSocket connection cancelled");
211
+ const timer = setTimeout(() => fail("WebSocket connection timed out"), opts.timeoutMs ?? 1e4);
212
+ ws.addEventListener("open", onOpen, { once: true });
213
+ ws.addEventListener("error", onError, { once: true });
214
+ ws.addEventListener("close", onError, { once: true });
215
+ opts.signal?.addEventListener("abort", onAbort, { once: true });
216
+ });
217
+ }
218
+
219
+ export { INITIALIZE_METHOD as i, openWebSocket as r, runInitializeHandshake as s, WebSocketTransport as t };
220
+ //# sourceMappingURL=webSocketTransport-Ct4OIdG9.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webSocketTransport-Ct4OIdG9.js","sources":["../../../../../../../../../../../external/linkrpc/typescript/packages/linkrpc/dist/chunks/webSocketTransport-Ct4OIdG9.js"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Microsoft Corporation. All rights reserved.\n* Licensed under the MIT License. See License.txt in the project root for license information.\n*--------------------------------------------------------------------------------------------*/\nimport { Ct as isRequest, xt as ErrorCode } from \"./inspectionHost-BA6ZmC_P.js\";\n//#region src/transport/initialize.ts\n/** Transport-only handshake, never forwarded to a routed service. */\nconst INITIALIZE_METHOD = \"hubrpc::initialize\";\nconst LINKRPC_INITIALIZE_METHOD_ALIAS = \"linkrpc::initialize\";\nconst INITIALIZE_PROTOCOL_VERSION = 1;\nconst DEFAULT_HANDSHAKE_TIMEOUT_MS = 1e4;\nconst INITIALIZE_REQUEST_ID = 0;\n/** Run the shared initialization on any transport. The caller owns disposal. */\nasync function runInitializeHandshake(transport, role, options = {}) {\n\tconst completed = new AbortController();\n\tconst signal = options.signal ? AbortSignal.any([options.signal, completed.signal]) : completed.signal;\n\tif (signal?.aborted) throw cancellationError(signal);\n\tlet onAbort;\n\tconst aborted = new Promise((_resolve, reject) => {\n\t\tonAbort = () => reject(cancellationError(signal));\n\t\tsignal?.addEventListener(\"abort\", onAbort, { once: true });\n\t});\n\ttry {\n\t\treturn await Promise.race([performInitializeHandshake(transport, role, {\n\t\t\t...options,\n\t\t\tsignal\n\t\t}), aborted]);\n\t} finally {\n\t\tsignal?.removeEventListener(\"abort\", onAbort);\n\t\tcompleted.abort();\n\t}\n}\nasync function performInitializeHandshake(transport, role, options) {\n\tconst timeoutMs = options.handshakeTimeoutMs ?? DEFAULT_HANDSHAKE_TIMEOUT_MS;\n\tif (role.kind === \"client\") {\n\t\tconst reply = nextMessage(transport, timeoutMs, options.signal);\n\t\tconst params = {\n\t\t\tprotocolVersion: 1,\n\t\t\t...role.token !== void 0 ? { token: role.token } : {}\n\t\t};\n\t\tconst sent = Promise.resolve().then(() => transport.send({\n\t\t\tjsonrpc: \"2.0\",\n\t\t\tid: INITIALIZE_REQUEST_ID,\n\t\t\tmethod: INITIALIZE_METHOD,\n\t\t\tparams\n\t\t}));\n\t\tconst [, message] = await Promise.all([sent, reply]);\n\t\tif (isRequest(message) || !(\"id\" in message) || message.id !== INITIALIZE_REQUEST_ID) throw new Error(\"hubrpc::initialize: unexpected reply to handshake\");\n\t\tif (\"error\" in message) throw new Error(`hubrpc::initialize rejected: ${message.error.message}`);\n\t\treturn {};\n\t}\n\tconst first = await nextMessage(transport, timeoutMs, options.signal);\n\tif (!isRequest(first) || first.method !== \"hubrpc::initialize\" && first.method !== \"linkrpc::initialize\") throw new Error(\"hubrpc::initialize: expected initialize as the first message\");\n\tconst params = first.params ?? {};\n\tconst accepted = await role.isTokenAccepted(params.token);\n\tif (options.signal?.aborted) throw cancellationError(options.signal);\n\tif (!accepted) {\n\t\tawait transport.send({\n\t\t\tjsonrpc: \"2.0\",\n\t\t\tid: first.id,\n\t\t\terror: {\n\t\t\t\tcode: ErrorCode.invalidRequest,\n\t\t\t\tmessage: \"unauthenticated\"\n\t\t\t}\n\t\t});\n\t\tthrow new Error(\"hubrpc::initialize: unauthenticated\");\n\t}\n\tawait transport.send({\n\t\tjsonrpc: \"2.0\",\n\t\tid: first.id,\n\t\tresult: { protocolVersion: 1 }\n\t});\n\treturn { token: params.token };\n}\n/** Detach after exactly one message, leaving buffered RPC messages for the channel. */\nfunction nextMessage(transport, timeoutMs, signal) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst cleanup = () => {\n\t\t\tclearTimeout(timer);\n\t\t\tsignal?.removeEventListener(\"abort\", abort);\n\t\t\ttransport.setListener(void 0);\n\t\t};\n\t\tconst abort = () => {\n\t\t\tcleanup();\n\t\t\treject(cancellationError(signal));\n\t\t};\n\t\tconst timer = setTimeout(() => {\n\t\t\tcleanup();\n\t\t\treject(/* @__PURE__ */ new Error(\"hubrpc::initialize: handshake timed out\"));\n\t\t}, timeoutMs);\n\t\tif (signal?.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\t\tsignal?.addEventListener(\"abort\", abort, { once: true });\n\t\ttransport.setListener((message) => {\n\t\t\tcleanup();\n\t\t\tresolve(message);\n\t\t});\n\t});\n}\nfunction cancellationError(signal) {\n\treturn signal.reason instanceof Error && signal.reason.name !== \"AbortError\" ? signal.reason : /* @__PURE__ */ new Error(\"hubrpc::initialize: handshake cancelled\");\n}\n//#endregion\n//#region src/transport/webSocketTransport.ts\n/**\n* Client-side WebSocket transport: one JSON-RPC message per text frame.\n* Shared by the Node and browser entries so either can reach a ws/wss hub\n* without depending on `@hediet/linkrpc-hub`.\n*\n* Accepts native client and Node `ws` server sockets without a runtime `ws`\n* dependency in the browser entry.\n*\n* Takes ownership of the socket: {@link dispose} closes it, and a peer\n* close / error fires `onClose` exactly once.\n*/\nvar WebSocketTransport = class {\n\t_ws;\n\t_onClose;\n\t_listener;\n\t_buffer = [];\n\t_closed = false;\n\tconstructor(_ws, _onClose) {\n\t\tthis._ws = _ws;\n\t\tthis._onClose = _onClose;\n\t\t_ws.binaryType = \"arraybuffer\";\n\t\t_ws.addEventListener(\"message\", (event) => {\n\t\t\tconst data = event.data;\n\t\t\tconst text = typeof data === \"string\" ? data : data instanceof ArrayBuffer ? new TextDecoder().decode(data) : ArrayBuffer.isView(data) ? new TextDecoder().decode(data) : String(data);\n\t\t\tfor (const line of text.split(\"\\n\")) {\n\t\t\t\tconst trimmed = line.trim();\n\t\t\t\tif (!trimmed) continue;\n\t\t\t\tlet parsed;\n\t\t\t\ttry {\n\t\t\t\t\tparsed = JSON.parse(trimmed);\n\t\t\t\t} catch {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tthis._deliver(parsed);\n\t\t\t}\n\t\t});\n\t\tconst onEnd = () => {\n\t\t\tif (this._closed) return;\n\t\t\tthis._closed = true;\n\t\t\tthis._onClose?.();\n\t\t};\n\t\t_ws.addEventListener(\"close\", onEnd);\n\t\t_ws.addEventListener(\"error\", onEnd);\n\t}\n\tsend(message) {\n\t\tif (this._closed) return;\n\t\tif (this._ws.readyState !== 1) return;\n\t\tthis._ws.send(JSON.stringify(message));\n\t}\n\tsetListener(listener) {\n\t\tthis._listener = listener;\n\t\tif (listener) while (this._buffer.length > 0 && this._listener) {\n\t\t\tconst m = this._buffer.shift();\n\t\t\tthis._listener(m);\n\t\t}\n\t}\n\tdispose() {\n\t\tif (this._closed) return;\n\t\tthis._closed = true;\n\t\ttry {\n\t\t\tthis._ws.close();\n\t\t} catch {}\n\t\tthis._onClose?.();\n\t}\n\t_deliver(m) {\n\t\tif (this._listener) this._listener(m);\n\t\telse this._buffer.push(m);\n\t}\n};\n/**\n* Open a WebSocket to `url` and resolve once it is connected. Rejects if the\n* socket errors before open.\n*\n* Authentication is NOT done here: the hub's WebSocket server authenticates\n* over the in-band `hubrpc::initialize` handshake (so browsers, which cannot\n* set request headers on the `WebSocket` constructor, work too). Run\n* {@link runInitializeHandshake} on the resulting {@link WebSocketTransport}.\n*\n* Uses the standard constructor overload; credentials belong in initialization.\n*/\nfunction openWebSocket(url, opts = {}) {\n\treturn new Promise((resolve, reject) => {\n\t\tif (opts.signal?.aborted) {\n\t\t\treject(/* @__PURE__ */ new Error(\"WebSocket connection cancelled\"));\n\t\t\treturn;\n\t\t}\n\t\tconst ws = opts.protocols === void 0 ? new WebSocket(url) : new WebSocket(url, opts.protocols);\n\t\tconst cleanup = () => {\n\t\t\tclearTimeout(timer);\n\t\t\tws.removeEventListener(\"open\", onOpen);\n\t\t\tws.removeEventListener(\"error\", onError);\n\t\t\tws.removeEventListener(\"close\", onError);\n\t\t\topts.signal?.removeEventListener(\"abort\", onAbort);\n\t\t};\n\t\tconst fail = (message) => {\n\t\t\tcleanup();\n\t\t\tws.close();\n\t\t\treject(new Error(message));\n\t\t};\n\t\tconst onOpen = () => {\n\t\t\tcleanup();\n\t\t\tresolve(ws);\n\t\t};\n\t\tconst onError = () => fail(\"WebSocket connection failed\");\n\t\tconst onAbort = () => fail(\"WebSocket connection cancelled\");\n\t\tconst timer = setTimeout(() => fail(\"WebSocket connection timed out\"), opts.timeoutMs ?? 1e4);\n\t\tws.addEventListener(\"open\", onOpen, { once: true });\n\t\tws.addEventListener(\"error\", onError, { once: true });\n\t\tws.addEventListener(\"close\", onError, { once: true });\n\t\topts.signal?.addEventListener(\"abort\", onAbort, { once: true });\n\t});\n}\n/** Open and initialize native WebSocket; cancellation also closes a live connection. */\nasync function connectWebSocketTransport(url, options = {}) {\n\tconst socket = await openWebSocket(url, options);\n\tconst handshake = new AbortController();\n\tconst transport = new WebSocketTransport(socket, () => {\n\t\thandshake.abort();\n\t\toptions.signal?.removeEventListener(\"abort\", abort);\n\t\toptions.onClose?.();\n\t});\n\tconst abort = () => transport.dispose();\n\toptions.signal?.addEventListener(\"abort\", abort, { once: true });\n\ttry {\n\t\tif (options.signal?.aborted) throw new Error(\"WebSocket connection cancelled\");\n\t\tawait runInitializeHandshake(transport, {\n\t\t\tkind: \"client\",\n\t\t\ttoken: options.token\n\t\t}, {\n\t\t\thandshakeTimeoutMs: options.timeoutMs,\n\t\t\tsignal: handshake.signal\n\t\t});\n\t\treturn transport;\n\t} catch (error) {\n\t\ttransport.dispose();\n\t\tthrow error;\n\t}\n}\n//#endregion\nexport { INITIALIZE_PROTOCOL_VERSION as a, INITIALIZE_METHOD as i, connectWebSocketTransport as n, LINKRPC_INITIALIZE_METHOD_ALIAS as o, openWebSocket as r, runInitializeHandshake as s, WebSocketTransport as t };\n\n//# sourceMappingURL=webSocketTransport-Ct4OIdG9.js.map"],"names":[],"mappings":"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"}