@gitpod/gitpod-protocol 0.1.5-wth-argo.0 → 0.1.5-wth-test.41

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 (253) hide show
  1. package/data/builtin-theia-plugins.json +9 -9
  2. package/data/gitpod-schema.json +8 -22
  3. package/lib/accounting-protocol.d.ts +155 -0
  4. package/lib/accounting-protocol.d.ts.map +1 -0
  5. package/lib/accounting-protocol.js +109 -0
  6. package/lib/accounting-protocol.js.map +1 -0
  7. package/lib/admin-protocol.d.ts +20 -4
  8. package/lib/admin-protocol.d.ts.map +1 -1
  9. package/lib/admin-protocol.js +15 -0
  10. package/lib/admin-protocol.js.map +1 -1
  11. package/lib/analytics.d.ts +45 -0
  12. package/lib/analytics.d.ts.map +1 -0
  13. package/lib/{util/without.js → analytics.js} +4 -2
  14. package/lib/analytics.js.map +1 -0
  15. package/lib/context-url.d.ts +18 -0
  16. package/lib/context-url.d.ts.map +1 -0
  17. package/lib/context-url.js +49 -0
  18. package/lib/context-url.js.map +1 -0
  19. package/lib/{util/context-url.spec.d.ts → context-url.spec.d.ts} +3 -1
  20. package/lib/context-url.spec.d.ts.map +1 -0
  21. package/lib/context-url.spec.js +73 -0
  22. package/lib/context-url.spec.js.map +1 -0
  23. package/lib/email-protocol.d.ts +1 -2
  24. package/lib/email-protocol.d.ts.map +1 -1
  25. package/lib/email-protocol.js +4 -4
  26. package/lib/email-protocol.js.map +1 -1
  27. package/lib/encryption/container-module.js +5 -4
  28. package/lib/encryption/container-module.js.map +1 -1
  29. package/lib/encryption/encryption-engine.js +19 -20
  30. package/lib/encryption/encryption-engine.js.map +1 -1
  31. package/lib/encryption/encryption-engine.spec.js +29 -36
  32. package/lib/encryption/encryption-engine.spec.js.map +1 -1
  33. package/lib/encryption/encryption-service.js +29 -43
  34. package/lib/encryption/encryption-service.js.map +1 -1
  35. package/lib/encryption/key-provider.js +25 -30
  36. package/lib/encryption/key-provider.js.map +1 -1
  37. package/lib/env.d.ts +1 -2
  38. package/lib/env.d.ts.map +1 -1
  39. package/lib/env.js +20 -21
  40. package/lib/env.js.map +1 -1
  41. package/lib/gitpod-file-parser.js +25 -41
  42. package/lib/gitpod-file-parser.js.map +1 -1
  43. package/lib/gitpod-file-parser.spec.js +116 -116
  44. package/lib/gitpod-file-parser.spec.js.map +1 -1
  45. package/lib/gitpod-service.d.ts +132 -18
  46. package/lib/gitpod-service.d.ts.map +1 -1
  47. package/lib/gitpod-service.js +168 -256
  48. package/lib/gitpod-service.js.map +1 -1
  49. package/lib/headless-workspace-log.d.ts +8 -11
  50. package/lib/headless-workspace-log.d.ts.map +1 -1
  51. package/lib/headless-workspace-log.js +4 -7
  52. package/lib/headless-workspace-log.js.map +1 -1
  53. package/lib/ide-frontend-service.d.ts +4 -0
  54. package/lib/ide-frontend-service.d.ts.map +1 -1
  55. package/lib/index.d.ts +4 -0
  56. package/lib/index.d.ts.map +1 -1
  57. package/lib/index.js +5 -1
  58. package/lib/index.js.map +1 -1
  59. package/lib/messaging/browser/connection.d.ts +5 -3
  60. package/lib/messaging/browser/connection.d.ts.map +1 -1
  61. package/lib/messaging/browser/connection.js +183 -33
  62. package/lib/messaging/browser/connection.js.map +1 -1
  63. package/lib/messaging/browser/window-connection.js +35 -55
  64. package/lib/messaging/browser/window-connection.js.map +1 -1
  65. package/lib/messaging/client-call-metrics.d.ts +35 -0
  66. package/lib/messaging/client-call-metrics.d.ts.map +1 -0
  67. package/lib/messaging/client-call-metrics.js +83 -0
  68. package/lib/messaging/client-call-metrics.js.map +1 -0
  69. package/lib/messaging/connection-error-handler.js +11 -23
  70. package/lib/messaging/connection-error-handler.js.map +1 -1
  71. package/lib/messaging/error.d.ts +3 -1
  72. package/lib/messaging/error.d.ts.map +1 -1
  73. package/lib/messaging/error.js +6 -2
  74. package/lib/messaging/error.js.map +1 -1
  75. package/lib/messaging/handler.d.ts +10 -0
  76. package/lib/messaging/handler.d.ts.map +1 -1
  77. package/lib/messaging/node/connection.js +22 -22
  78. package/lib/messaging/node/connection.js.map +1 -1
  79. package/lib/messaging/proxy-factory.d.ts +2 -0
  80. package/lib/messaging/proxy-factory.d.ts.map +1 -1
  81. package/lib/messaging/proxy-factory.js +74 -159
  82. package/lib/messaging/proxy-factory.js.map +1 -1
  83. package/lib/payment-protocol.d.ts +18 -0
  84. package/lib/payment-protocol.d.ts.map +1 -0
  85. package/lib/payment-protocol.js +13 -0
  86. package/lib/payment-protocol.js.map +1 -0
  87. package/lib/permission.d.ts +2 -1
  88. package/lib/permission.d.ts.map +1 -1
  89. package/lib/permission.js +14 -13
  90. package/lib/permission.js.map +1 -1
  91. package/lib/plans.d.ts +210 -0
  92. package/lib/plans.d.ts.map +1 -0
  93. package/lib/plans.js +570 -0
  94. package/lib/plans.js.map +1 -0
  95. package/lib/protocol.d.ts +94 -16
  96. package/lib/protocol.d.ts.map +1 -1
  97. package/lib/protocol.js +104 -130
  98. package/lib/protocol.js.map +1 -1
  99. package/lib/snapshot-url.d.ts +14 -0
  100. package/lib/snapshot-url.d.ts.map +1 -0
  101. package/lib/snapshot-url.js +26 -0
  102. package/lib/snapshot-url.js.map +1 -0
  103. package/{src/util/without.ts → lib/snapshot-url.spec.d.ts} +2 -3
  104. package/lib/snapshot-url.spec.d.ts.map +1 -0
  105. package/lib/snapshot-url.spec.js +41 -0
  106. package/lib/snapshot-url.spec.js.map +1 -0
  107. package/lib/team-subscription-protocol.d.ts +73 -0
  108. package/lib/team-subscription-protocol.d.ts.map +1 -0
  109. package/lib/team-subscription-protocol.js +63 -0
  110. package/lib/team-subscription-protocol.js.map +1 -0
  111. package/lib/teams-projects-protocol.d.ts +103 -0
  112. package/lib/teams-projects-protocol.d.ts.map +1 -0
  113. package/lib/teams-projects-protocol.js +23 -0
  114. package/lib/teams-projects-protocol.js.map +1 -0
  115. package/lib/util/analytics.d.ts +8 -0
  116. package/lib/util/analytics.d.ts.map +1 -0
  117. package/lib/util/analytics.js +79 -0
  118. package/lib/util/analytics.js.map +1 -0
  119. package/lib/util/async-iterator.js +55 -133
  120. package/lib/util/async-iterator.js.map +1 -1
  121. package/lib/util/cancelable.js +17 -59
  122. package/lib/util/cancelable.js.map +1 -1
  123. package/lib/util/date-time.js +8 -8
  124. package/lib/util/date-time.js.map +1 -1
  125. package/lib/util/deferred.js +10 -12
  126. package/lib/util/deferred.js.map +1 -1
  127. package/lib/util/disposable.js +26 -39
  128. package/lib/util/disposable.js.map +1 -1
  129. package/lib/util/event.js +58 -74
  130. package/lib/util/event.js.map +1 -1
  131. package/lib/util/garbage-collected-cache.js +22 -46
  132. package/lib/util/garbage-collected-cache.js.map +1 -1
  133. package/lib/util/generate-workspace-id.d.ts.map +1 -1
  134. package/lib/util/generate-workspace-id.js +13 -67
  135. package/lib/util/generate-workspace-id.js.map +1 -1
  136. package/lib/util/generate-workspace-id.spec.js +34 -79
  137. package/lib/util/generate-workspace-id.spec.js.map +1 -1
  138. package/lib/util/gitpod-cookie.d.ts +20 -0
  139. package/lib/util/gitpod-cookie.d.ts.map +1 -0
  140. package/lib/util/gitpod-cookie.js +44 -0
  141. package/lib/util/gitpod-cookie.js.map +1 -0
  142. package/lib/util/gitpod-host-url.d.ts +1 -1
  143. package/lib/util/gitpod-host-url.d.ts.map +1 -1
  144. package/lib/util/gitpod-host-url.js +98 -98
  145. package/lib/util/gitpod-host-url.js.map +1 -1
  146. package/lib/util/gitpod-host-url.spec.d.ts +7 -1
  147. package/lib/util/gitpod-host-url.spec.d.ts.map +1 -1
  148. package/lib/util/gitpod-host-url.spec.js +103 -31
  149. package/lib/util/gitpod-host-url.spec.js.map +1 -1
  150. package/lib/util/grpc.d.ts +15 -0
  151. package/lib/util/grpc.d.ts.map +1 -0
  152. package/lib/util/grpc.js +18 -0
  153. package/lib/util/grpc.js.map +1 -0
  154. package/lib/util/logging.d.ts +49 -33
  155. package/lib/util/logging.d.ts.map +1 -1
  156. package/lib/util/logging.js +107 -110
  157. package/lib/util/logging.js.map +1 -1
  158. package/lib/util/make-link.js +2 -2
  159. package/lib/util/make-link.js.map +1 -1
  160. package/lib/util/parse-workspace-id.d.ts +10 -0
  161. package/lib/util/parse-workspace-id.d.ts.map +1 -1
  162. package/lib/util/parse-workspace-id.js +32 -7
  163. package/lib/util/parse-workspace-id.js.map +1 -1
  164. package/lib/util/parse-workspace-id.spec.d.ts +4 -0
  165. package/lib/util/parse-workspace-id.spec.d.ts.map +1 -1
  166. package/lib/util/parse-workspace-id.spec.js +123 -84
  167. package/lib/util/parse-workspace-id.spec.js.map +1 -1
  168. package/lib/util/queue.js +16 -55
  169. package/lib/util/queue.js.map +1 -1
  170. package/lib/util/queue.spec.js +144 -288
  171. package/lib/util/queue.spec.js.map +1 -1
  172. package/lib/util/repeater.js +35 -88
  173. package/lib/util/repeater.js.map +1 -1
  174. package/lib/util/safe-promise.js +9 -12
  175. package/lib/util/safe-promise.js.map +1 -1
  176. package/lib/util/semaphore.js +15 -46
  177. package/lib/util/semaphore.js.map +1 -1
  178. package/lib/util/skip-if.js +6 -6
  179. package/lib/util/skip-if.js.map +1 -1
  180. package/lib/util/timeutil.js +28 -16
  181. package/lib/util/timeutil.js.map +1 -1
  182. package/lib/util/timeutil.spec.js +21 -24
  183. package/lib/util/timeutil.spec.js.map +1 -1
  184. package/lib/util/tracing.js +43 -47
  185. package/lib/util/tracing.js.map +1 -1
  186. package/lib/util/workspace-port-authentication.js +3 -2
  187. package/lib/util/workspace-port-authentication.js.map +1 -1
  188. package/lib/workspace-cluster.d.ts +74 -0
  189. package/lib/workspace-cluster.d.ts.map +1 -0
  190. package/lib/workspace-cluster.js +16 -0
  191. package/lib/workspace-cluster.js.map +1 -0
  192. package/lib/workspace-instance.d.ts +7 -2
  193. package/lib/workspace-instance.d.ts.map +1 -1
  194. package/lib/wsready.d.ts +1 -1
  195. package/lib/wsready.js +2 -2
  196. package/package.json +28 -16
  197. package/pkg-yarn.lock +17 -9
  198. package/src/accounting-protocol.ts +229 -0
  199. package/src/admin-protocol.ts +39 -5
  200. package/src/analytics.ts +54 -0
  201. package/src/context-url.spec.ts +39 -0
  202. package/src/context-url.ts +51 -0
  203. package/src/email-protocol.ts +2 -3
  204. package/src/env.ts +10 -10
  205. package/src/gitpod-service.ts +198 -33
  206. package/src/headless-workspace-log.ts +7 -11
  207. package/src/ide-frontend-service.ts +4 -0
  208. package/src/index.ts +5 -1
  209. package/src/messaging/browser/connection.ts +195 -14
  210. package/src/messaging/client-call-metrics.ts +97 -0
  211. package/src/messaging/error.ts +8 -2
  212. package/src/messaging/handler.ts +12 -0
  213. package/src/messaging/node/connection.ts +2 -2
  214. package/src/messaging/proxy-factory.ts +14 -6
  215. package/src/payment-protocol.ts +20 -0
  216. package/src/permission.ts +2 -1
  217. package/src/plans.ts +632 -0
  218. package/src/protocol.ts +153 -43
  219. package/src/snapshot-url.spec.ts +25 -0
  220. package/src/snapshot-url.ts +27 -0
  221. package/src/team-subscription-protocol.ts +113 -0
  222. package/src/teams-projects-protocol.ts +132 -0
  223. package/src/util/analytics.ts +87 -0
  224. package/src/util/deferred.ts +1 -1
  225. package/src/util/garbage-collected-cache.ts +2 -2
  226. package/src/util/generate-workspace-id.spec.ts +3 -3
  227. package/src/util/generate-workspace-id.ts +2 -0
  228. package/src/util/gitpod-cookie.ts +39 -0
  229. package/src/util/gitpod-host-url.spec.ts +25 -1
  230. package/src/util/gitpod-host-url.ts +23 -10
  231. package/src/util/grpc.ts +15 -0
  232. package/src/util/logging.ts +102 -38
  233. package/src/util/parse-workspace-id.spec.ts +21 -1
  234. package/src/util/parse-workspace-id.ts +32 -6
  235. package/src/util/queue.spec.ts +1 -1
  236. package/src/util/semaphore.ts +2 -2
  237. package/src/util/skip-if.ts +1 -1
  238. package/src/util/timeutil.ts +4 -4
  239. package/src/workspace-cluster.ts +96 -0
  240. package/src/workspace-instance.ts +31 -13
  241. package/src/wsready.ts +2 -2
  242. package/lib/util/context-url.d.ts +0 -13
  243. package/lib/util/context-url.d.ts.map +0 -1
  244. package/lib/util/context-url.js +0 -26
  245. package/lib/util/context-url.js.map +0 -1
  246. package/lib/util/context-url.spec.d.ts.map +0 -1
  247. package/lib/util/context-url.spec.js +0 -52
  248. package/lib/util/context-url.spec.js.map +0 -1
  249. package/lib/util/without.d.ts +0 -7
  250. package/lib/util/without.d.ts.map +0 -1
  251. package/lib/util/without.js.map +0 -1
  252. package/src/util/context-url.spec.ts +0 -25
  253. package/src/util/context-url.ts +0 -23
@@ -8,6 +8,10 @@ import { Disposable } from "./util/disposable";
8
8
  export declare type IDEFrontendState = 'init' | 'ready' | 'terminated';
9
9
  export interface IDEFrontendService {
10
10
  readonly state: IDEFrontendState;
11
+ /**
12
+ * A cause of the ide frontend application failure when state is terminated.
13
+ */
14
+ readonly failureCause?: Error;
11
15
  readonly onDidChange: Event<void>;
12
16
  /**
13
17
  * Starts the ide frontend application.
@@ -1 +1 @@
1
- {"version":3,"file":"ide-frontend-service.d.ts","sourceRoot":"","sources":["../src/ide-frontend-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,oBAAY,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,CAAC;AAE/D,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC;;;;;;;OAOG;IACH,KAAK,IAAI,UAAU,CAAC;CACvB"}
1
+ {"version":3,"file":"ide-frontend-service.d.ts","sourceRoot":"","sources":["../src/ide-frontend-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,oBAAY,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,CAAC;AAE/D,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC;;;;;;;OAOG;IACH,KAAK,IAAI,UAAU,CAAC;CACvB"}
package/lib/index.d.ts CHANGED
@@ -13,4 +13,8 @@ export * from './workspace-instance';
13
13
  export * from './permission';
14
14
  export * from './admin-protocol';
15
15
  export * from './email-protocol';
16
+ export * from './headless-workspace-log';
17
+ export * from './context-url';
18
+ export * from './teams-projects-protocol';
19
+ export * from './snapshot-url';
16
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC"}
package/lib/index.js CHANGED
@@ -12,7 +12,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
12
12
  o[k2] = m[k];
13
13
  }));
14
14
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
15
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
16
16
  };
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  __exportStar(require("./protocol"), exports);
@@ -25,4 +25,8 @@ __exportStar(require("./workspace-instance"), exports);
25
25
  __exportStar(require("./permission"), exports);
26
26
  __exportStar(require("./admin-protocol"), exports);
27
27
  __exportStar(require("./email-protocol"), exports);
28
+ __exportStar(require("./headless-workspace-log"), exports);
29
+ __exportStar(require("./context-url"), exports);
30
+ __exportStar(require("./teams-projects-protocol"), exports);
31
+ __exportStar(require("./snapshot-url"), exports);
28
32
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,6CAA2B;AAC3B,mDAAiC;AACjC,oDAAkC;AAClC,+CAA6B;AAC7B,+CAA6B;AAC7B,qDAAmC;AACnC,uDAAqC;AACrC,+CAA6B;AAC7B,mDAAiC;AACjC,mDAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,6CAA2B;AAC3B,mDAAiC;AACjC,oDAAkC;AAClC,+CAA6B;AAC7B,+CAA6B;AAC7B,qDAAmC;AACnC,uDAAqC;AACrC,+CAA6B;AAC7B,mDAAiC;AACjC,mDAAiC;AACjC,2DAAyC;AACzC,gDAA8B;AAC9B,4DAA0C;AAC1C,iDAA+B"}
@@ -1,8 +1,10 @@
1
1
  import { Logger } from "vscode-ws-jsonrpc";
2
2
  import { JsonRpcProxy } from "../proxy-factory";
3
- import { ConnectionHandler } from "../handler";
3
+ import { ConnectionEventHandler, ConnectionHandler } from "../handler";
4
+ import ReconnectingWebSocket, { Event } from 'reconnecting-websocket';
4
5
  export interface WebSocketOptions {
5
6
  onerror?: (event: Event) => void;
7
+ onListening?: (socket: ReconnectingWebSocket) => void;
6
8
  }
7
9
  export declare class WebSocketConnectionProvider {
8
10
  /**
@@ -12,11 +14,11 @@ export declare class WebSocketConnectionProvider {
12
14
  * An optional target can be provided to handle
13
15
  * notifications and requests from a remote side.
14
16
  */
15
- createProxy<T extends object>(path: string, target?: object, options?: WebSocketOptions): JsonRpcProxy<T>;
17
+ createProxy<T extends object>(path: string | Promise<string>, target?: object, options?: WebSocketOptions): JsonRpcProxy<T>;
16
18
  /**
17
19
  * Install a connection handler for the given path.
18
20
  */
19
- listen(handler: ConnectionHandler, options?: WebSocketOptions): void;
21
+ listen(handler: ConnectionHandler, eventHandler: ConnectionEventHandler, options?: WebSocketOptions): WebSocket;
20
22
  protected createLogger(): Logger;
21
23
  /**
22
24
  * Creates a web socket for the given url
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/messaging/browser/connection.ts"],"names":[],"mappings":"AAOA,OAAO,EAAsB,MAAM,EAAiB,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAuB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/C,MAAM,WAAW,gBAAgB;IAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACpC;AAED,qBAAa,2BAA2B;IAEpC;;;;;;OAMG;IACH,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC;IASzG;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAsBpE,SAAS,CAAC,YAAY,IAAI,MAAM;IAIhC;;OAEG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS;CAW1C"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/messaging/browser/connection.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAAuC,MAAM,mBAAmB,CAAC;AAIhF,OAAO,EAAuB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,qBAAqB,EAAE,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAEtE,MAAM,WAAW,gBAAgB;IAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACzD;AAED,qBAAa,2BAA2B;IAEpC;;;;;;OAMG;IACH,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC;IAyB3H;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,sBAAsB,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS;IAwB/G,SAAS,CAAC,YAAY,IAAI,MAAM;IAIhC;;OAEG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS;CAW1C"}
@@ -7,12 +7,13 @@
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.WebSocketConnectionProvider = void 0;
10
- var vscode_ws_jsonrpc_1 = require("vscode-ws-jsonrpc");
11
- var proxy_factory_1 = require("../proxy-factory");
12
- var reconnecting_websocket_1 = require("reconnecting-websocket");
13
- var WebSocketConnectionProvider = /** @class */ (function () {
14
- function WebSocketConnectionProvider() {
15
- }
10
+ const vscode_ws_jsonrpc_1 = require("vscode-ws-jsonrpc");
11
+ const vscode_jsonrpc_1 = require("vscode-jsonrpc");
12
+ const messageWriter_1 = require("vscode-jsonrpc/lib/messageWriter");
13
+ const messageReader_1 = require("vscode-jsonrpc/lib/messageReader");
14
+ const proxy_factory_1 = require("../proxy-factory");
15
+ const reconnecting_websocket_1 = require("reconnecting-websocket");
16
+ class WebSocketConnectionProvider {
16
17
  /**
17
18
  * Create a proxy object to remote interface of T type
18
19
  * over a web socket connection for the given path.
@@ -20,45 +21,56 @@ var WebSocketConnectionProvider = /** @class */ (function () {
20
21
  * An optional target can be provided to handle
21
22
  * notifications and requests from a remote side.
22
23
  */
23
- WebSocketConnectionProvider.prototype.createProxy = function (path, target, options) {
24
- var factory = new proxy_factory_1.JsonRpcProxyFactory(target);
25
- this.listen({
26
- path: path,
27
- onConnection: function (c) { return factory.listen(c); }
28
- }, options);
24
+ createProxy(path, target, options) {
25
+ const factory = new proxy_factory_1.JsonRpcProxyFactory(target);
26
+ const startListening = (path) => {
27
+ const socket = this.listen({
28
+ path,
29
+ onConnection: c => factory.listen(c),
30
+ }, {
31
+ onTransportDidClose: () => factory.fireConnectionClosed(),
32
+ onTransportDidOpen: () => factory.fireConnectionOpened(),
33
+ }, options);
34
+ if (options === null || options === void 0 ? void 0 : options.onListening) {
35
+ options.onListening(socket);
36
+ }
37
+ };
38
+ if (typeof path === "string") {
39
+ startListening(path);
40
+ }
41
+ else {
42
+ path.then(path => startListening(path));
43
+ }
29
44
  return factory.createProxy();
30
- };
45
+ }
31
46
  /**
32
47
  * Install a connection handler for the given path.
33
48
  */
34
- WebSocketConnectionProvider.prototype.listen = function (handler, options) {
35
- var url = handler.path;
36
- var webSocket = this.createWebSocket(url);
37
- var logger = this.createLogger();
49
+ listen(handler, eventHandler, options) {
50
+ const url = handler.path;
51
+ const webSocket = this.createWebSocket(url);
52
+ const logger = this.createLogger();
38
53
  if (options && options.onerror) {
39
- var onerror_1 = options.onerror;
40
- webSocket.addEventListener('error', function (event) {
41
- onerror_1(event);
54
+ const onerror = options.onerror;
55
+ webSocket.addEventListener('error', (event) => {
56
+ onerror(event);
42
57
  });
43
58
  }
44
59
  else {
45
- webSocket.addEventListener('error', function (error) {
60
+ webSocket.addEventListener('error', (error) => {
46
61
  logger.error(JSON.stringify(error));
47
62
  });
48
63
  }
49
- vscode_ws_jsonrpc_1.listen({
50
- webSocket: webSocket,
51
- onConnection: function (connection) { return handler.onConnection(connection); },
52
- logger: logger
53
- });
54
- };
55
- WebSocketConnectionProvider.prototype.createLogger = function () {
64
+ doListen(webSocket, handler, eventHandler, logger);
65
+ return webSocket;
66
+ }
67
+ createLogger() {
56
68
  return new vscode_ws_jsonrpc_1.ConsoleLogger();
57
- };
69
+ }
58
70
  /**
59
71
  * Creates a web socket for the given url
60
72
  */
61
- WebSocketConnectionProvider.prototype.createWebSocket = function (url) {
73
+ createWebSocket(url) {
62
74
  return new reconnecting_websocket_1.default(url, undefined, {
63
75
  maxReconnectionDelay: 10000,
64
76
  minReconnectionDelay: 1000,
@@ -67,8 +79,146 @@ var WebSocketConnectionProvider = /** @class */ (function () {
67
79
  debug: false,
68
80
  WebSocket: WebSocket
69
81
  });
70
- };
71
- return WebSocketConnectionProvider;
72
- }());
82
+ }
83
+ }
73
84
  exports.WebSocketConnectionProvider = WebSocketConnectionProvider;
85
+ // The following was extracted from vscode-ws-jsonrpc to make these changes:
86
+ // - switch from WebSocket to ReconnectingWebSocket
87
+ // - webSocket.onopen: making sure it's only ever called once so we're re-using MessageConnection
88
+ // - WebSocketMessageWriter: buffer and re-try messages instead of throwing an error immidiately
89
+ // - WebSocketMessageReader: don't close MessageConnection on 'socket.onclose'
90
+ function doListen(resocket, handler, eventHandler, logger) {
91
+ resocket.addEventListener("close", () => eventHandler.onTransportDidClose());
92
+ let alreadyOpened = false;
93
+ resocket.onopen = () => {
94
+ // trigerr "open" every time we re-open the underlying websocket
95
+ eventHandler.onTransportDidOpen();
96
+ // make sure we're only ever creating one MessageConnection, irregardless of how many times we have to re-open the underlying (reconnecting) websocket
97
+ if (alreadyOpened) {
98
+ return;
99
+ }
100
+ alreadyOpened = true;
101
+ const connection = createWebSocketConnection(resocket, logger);
102
+ handler.onConnection(connection);
103
+ };
104
+ }
105
+ function createWebSocketConnection(resocket, logger) {
106
+ const socket = (0, vscode_ws_jsonrpc_1.toSocket)(resocket);
107
+ const messageReader = new NonClosingWebSocketMessageReader(socket);
108
+ const messageWriter = new BufferingWebSocketMessageWriter(resocket, logger);
109
+ const connection = (0, vscode_jsonrpc_1.createMessageConnection)(messageReader, messageWriter, logger);
110
+ connection.onClose(() => connection.dispose());
111
+ return connection;
112
+ }
113
+ /**
114
+ * This takes vscode-ws-jsonrpc/lib/socket/writer/WebSocketMessageWriter and adds a buffer
115
+ */
116
+ class BufferingWebSocketMessageWriter extends messageWriter_1.AbstractMessageWriter {
117
+ constructor(socket, logger) {
118
+ super();
119
+ this.errorCount = 0;
120
+ this.buffer = [];
121
+ this.socket = socket;
122
+ this.logger = logger;
123
+ socket.addEventListener("open", (event) => this.flushBuffer());
124
+ }
125
+ write(msg) {
126
+ if (this.socket.readyState !== reconnecting_websocket_1.default.OPEN) {
127
+ this.bufferMsg(msg);
128
+ return;
129
+ }
130
+ try {
131
+ const content = JSON.stringify(msg);
132
+ this.socket.send(content);
133
+ }
134
+ catch (e) {
135
+ this.errorCount++;
136
+ this.fireError(e, msg, this.errorCount);
137
+ this.bufferMsg(msg);
138
+ }
139
+ }
140
+ flushBuffer() {
141
+ if (this.buffer.length === 0) {
142
+ return;
143
+ }
144
+ const buffer = [...this.buffer];
145
+ this.buffer = [];
146
+ for (const msg of buffer) {
147
+ this.write(msg);
148
+ }
149
+ //this.logger.info(`flushed buffer (${this.buffer.length})`)
150
+ }
151
+ bufferMsg(msg) {
152
+ this.buffer.push(msg);
153
+ //this.logger.info(`buffered message (${this.buffer.length})`);
154
+ }
155
+ }
156
+ /**
157
+ * This takes vscode-ws-jsonrpc/lib/socket/reader/WebSocketMessageReader and removes the "onClose -> fireClose" connection
158
+ */
159
+ class NonClosingWebSocketMessageReader extends messageReader_1.AbstractMessageReader {
160
+ constructor(socket) {
161
+ super();
162
+ this.events = [];
163
+ this.state = 'initial';
164
+ this.callback = () => { };
165
+ this.socket = socket;
166
+ this.socket.onMessage(message => this.readMessage(message));
167
+ this.socket.onError(error => this.fireError(error));
168
+ this.socket.onClose((code, reason) => {
169
+ if (code !== 1000) {
170
+ const error = {
171
+ name: '' + code,
172
+ message: `Error during socket reconnect: code = ${code}, reason = ${reason}`
173
+ };
174
+ this.fireError(error);
175
+ }
176
+ // this.fireClose(); // <-- reason for this class to be copied over
177
+ });
178
+ }
179
+ listen(callback) {
180
+ if (this.state === 'initial') {
181
+ this.state = 'listening';
182
+ this.callback = callback;
183
+ while (this.events.length !== 0) {
184
+ const event = this.events.pop();
185
+ if (event.message) {
186
+ this.readMessage(event.message);
187
+ }
188
+ else if (event.error) {
189
+ this.fireError(event.error);
190
+ }
191
+ else {
192
+ this.fireClose();
193
+ }
194
+ }
195
+ }
196
+ }
197
+ readMessage(message) {
198
+ if (this.state === 'initial') {
199
+ this.events.splice(0, 0, { message });
200
+ }
201
+ else if (this.state === 'listening') {
202
+ const data = JSON.parse(message);
203
+ this.callback(data);
204
+ }
205
+ }
206
+ fireError(error) {
207
+ if (this.state === 'initial') {
208
+ this.events.splice(0, 0, { error });
209
+ }
210
+ else if (this.state === 'listening') {
211
+ super.fireError(error);
212
+ }
213
+ }
214
+ fireClose() {
215
+ if (this.state === 'initial') {
216
+ this.events.splice(0, 0, {});
217
+ }
218
+ else if (this.state === 'listening') {
219
+ super.fireClose();
220
+ }
221
+ this.state = 'closed';
222
+ }
223
+ }
74
224
  //# sourceMappingURL=connection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/messaging/browser/connection.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,uDAA8E;AAC9E,kDAAqE;AAErE,iEAA2D;AAM3D;IAAA;IA6DA,CAAC;IA3DG;;;;;;OAMG;IACH,iDAAW,GAAX,UAA8B,IAAY,EAAE,MAAe,EAAE,OAA0B;QACnF,IAAM,OAAO,GAAG,IAAI,mCAAmB,CAAI,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC;YACR,IAAI,MAAA;YACJ,YAAY,EAAE,UAAA,CAAC,IAAI,OAAA,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAjB,CAAiB;SACvC,EAAE,OAAO,CAAC,CAAC;QACZ,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,4CAAM,GAAN,UAAO,OAA0B,EAAE,OAA0B;QACzD,IAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAE5C,IAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACnC,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE;YAC5B,IAAM,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAChC,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAC,KAAK;gBACtC,SAAO,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC,CAAC,CAAC;SACN;aAAM;YACH,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAC,KAAY;gBAC7C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;SACN;QACD,0BAAQ,CAAC;YACL,SAAS,WAAA;YACT,YAAY,EAAE,UAAA,UAAU,IAAI,OAAA,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,EAAhC,CAAgC;YAC5D,MAAM,QAAA;SACT,CAAC,CAAC;IACP,CAAC;IAES,kDAAY,GAAtB;QACI,OAAO,IAAI,iCAAa,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,qDAAe,GAAf,UAAgB,GAAW;QACvB,OAAO,IAAI,gCAAqB,CAAC,GAAG,EAAE,SAAS,EAAE;YAC7C,oBAAoB,EAAE,KAAK;YAC3B,oBAAoB,EAAE,IAAI;YAC1B,2BAA2B,EAAE,GAAG;YAChC,UAAU,EAAE,QAAQ;YACpB,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,SAAS;SACvB,CAAQ,CAAC;IACd,CAAC;IAEL,kCAAC;AAAD,CAAC,AA7DD,IA6DC;AA7DY,kEAA2B"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/messaging/browser/connection.ts"],"names":[],"mappings":"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"}
@@ -4,85 +4,65 @@
4
4
  * Licensed under the GNU Affero General Public License (AGPL).
5
5
  * See License-AGPL.txt in the project root for license information.
6
6
  */
7
- var __extends = (this && this.__extends) || (function () {
8
- var extendStatics = function (d, b) {
9
- extendStatics = Object.setPrototypeOf ||
10
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
11
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
12
- return extendStatics(d, b);
13
- };
14
- return function (d, b) {
15
- extendStatics(d, b);
16
- function __() { this.constructor = d; }
17
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18
- };
19
- })();
20
7
  Object.defineProperty(exports, "__esModule", { value: true });
21
8
  exports.createWindowMessageConnection = exports.WindowMessageReader = exports.WindowMessageWriter = void 0;
22
- var messageWriter_1 = require("vscode-jsonrpc/lib/messageWriter");
23
- var messageReader_1 = require("vscode-jsonrpc/lib/messageReader");
24
- var main_1 = require("vscode-jsonrpc/lib/main");
25
- var vscode_ws_jsonrpc_1 = require("vscode-ws-jsonrpc");
9
+ const messageWriter_1 = require("vscode-jsonrpc/lib/messageWriter");
10
+ const messageReader_1 = require("vscode-jsonrpc/lib/messageReader");
11
+ const main_1 = require("vscode-jsonrpc/lib/main");
12
+ const vscode_ws_jsonrpc_1 = require("vscode-ws-jsonrpc");
26
13
  function isWindowMessage(value) {
27
14
  return !!value && typeof value === 'object' &&
28
15
  ('jsonrpc' in value && typeof value['jsonrpc'] === 'string') &&
29
16
  ('serviceId' in value && typeof value['serviceId'] === 'string');
30
17
  }
31
- var WindowMessageWriter = /** @class */ (function (_super) {
32
- __extends(WindowMessageWriter, _super);
33
- function WindowMessageWriter(serviceId, window, targetOrigin) {
34
- var _this = _super.call(this) || this;
35
- _this.serviceId = serviceId;
36
- _this.window = window;
37
- _this.targetOrigin = targetOrigin;
38
- return _this;
18
+ class WindowMessageWriter extends messageWriter_1.AbstractMessageWriter {
19
+ constructor(serviceId, window, targetOrigin) {
20
+ super();
21
+ this.serviceId = serviceId;
22
+ this.window = window;
23
+ this.targetOrigin = targetOrigin;
39
24
  }
40
- WindowMessageWriter.prototype.write = function (msg) {
41
- var serviceId = this.serviceId;
42
- this.window.postMessage(Object.assign(msg, { serviceId: serviceId }), this.targetOrigin);
43
- };
44
- return WindowMessageWriter;
45
- }(messageWriter_1.AbstractMessageWriter));
25
+ write(msg) {
26
+ const { serviceId } = this;
27
+ this.window.postMessage(Object.assign(msg, { serviceId }), this.targetOrigin);
28
+ }
29
+ }
46
30
  exports.WindowMessageWriter = WindowMessageWriter;
47
- var WindowMessageReader = /** @class */ (function (_super) {
48
- __extends(WindowMessageReader, _super);
49
- function WindowMessageReader(serviceId, sourceOrigin) {
50
- var _this = _super.call(this) || this;
51
- _this.serviceId = serviceId;
52
- _this.sourceOrigin = sourceOrigin;
53
- _this.buffer = [];
54
- window.addEventListener('message', function (event) {
55
- if (_this.sourceOrigin !== '*' && event.origin !== _this.sourceOrigin) {
31
+ class WindowMessageReader extends messageReader_1.AbstractMessageReader {
32
+ constructor(serviceId, sourceOrigin) {
33
+ super();
34
+ this.serviceId = serviceId;
35
+ this.sourceOrigin = sourceOrigin;
36
+ this.buffer = [];
37
+ window.addEventListener('message', event => {
38
+ if (this.sourceOrigin !== '*' && event.origin !== this.sourceOrigin) {
56
39
  return;
57
40
  }
58
- if (!isWindowMessage(event.data) || event.data.serviceId !== _this.serviceId) {
41
+ if (!isWindowMessage(event.data) || event.data.serviceId !== this.serviceId) {
59
42
  return;
60
43
  }
61
- if (_this.callback) {
62
- _this.callback(event.data);
44
+ if (this.callback) {
45
+ this.callback(event.data);
63
46
  }
64
47
  else {
65
- _this.buffer.push(event.data);
48
+ this.buffer.push(event.data);
66
49
  }
67
50
  }, false);
68
- return _this;
69
51
  }
70
- WindowMessageReader.prototype.listen = function (callback) {
71
- var message;
52
+ listen(callback) {
53
+ let message;
72
54
  while (message = this.buffer.pop()) {
73
55
  callback(message);
74
56
  }
75
57
  Object.freeze(this.buffer);
76
58
  this.callback = callback;
77
- };
78
- return WindowMessageReader;
79
- }(messageReader_1.AbstractMessageReader));
59
+ }
60
+ }
80
61
  exports.WindowMessageReader = WindowMessageReader;
81
- function createWindowMessageConnection(serviceId, window, sourceOrigin, targetOrigin) {
82
- if (targetOrigin === void 0) { targetOrigin = sourceOrigin; }
83
- var reader = new WindowMessageReader(serviceId, sourceOrigin);
84
- var writer = new WindowMessageWriter(serviceId, window, targetOrigin);
85
- return main_1.createMessageConnection(reader, writer, new vscode_ws_jsonrpc_1.ConsoleLogger());
62
+ function createWindowMessageConnection(serviceId, window, sourceOrigin, targetOrigin = sourceOrigin) {
63
+ const reader = new WindowMessageReader(serviceId, sourceOrigin);
64
+ const writer = new WindowMessageWriter(serviceId, window, targetOrigin);
65
+ return (0, main_1.createMessageConnection)(reader, writer, new vscode_ws_jsonrpc_1.ConsoleLogger());
86
66
  }
87
67
  exports.createWindowMessageConnection = createWindowMessageConnection;
88
68
  //# sourceMappingURL=window-connection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"window-connection.js","sourceRoot":"","sources":["../../../src/messaging/browser/window-connection.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAGH,kEAAwF;AACxF,kEAAsG;AACtG,gDAAqF;AACrF,uDAAkD;AAKlD,SAAS,eAAe,CAAC,KAAU;IAC/B,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QACvC,CAAC,SAAS,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC;QAC5D,CAAC,WAAW,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,QAAQ,CAAC,CAAC;AACzE,CAAC;AAED;IAAyC,uCAAqB;IAE1D,6BAAqB,SAAiB,EAAW,MAAc,EAAW,YAAoB;QAA9F,YACI,iBAAO,SACV;QAFoB,eAAS,GAAT,SAAS,CAAQ;QAAW,YAAM,GAAN,MAAM,CAAQ;QAAW,kBAAY,GAAZ,YAAY,CAAQ;;IAE9F,CAAC;IAED,mCAAK,GAAL,UAAM,GAAY;QACN,IAAA,SAAS,GAAK,IAAI,UAAT,CAAU;QAC3B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,WAAA,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAClF,CAAC;IAEL,0BAAC;AAAD,CAAC,AAXD,CAAyC,qCAAqB,GAW7D;AAXY,kDAAmB;AAahC;IAAyC,uCAAqB;IAK1D,6BAAqB,SAAiB,EAAW,YAAoB;QAArE,YACI,iBAAO,SAcV;QAfoB,eAAS,GAAT,SAAS,CAAQ;QAAW,kBAAY,GAAZ,YAAY,CAAQ;QAFlD,YAAM,GAAc,EAAE,CAAC;QAItC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAA,KAAK;YACpC,IAAI,KAAI,CAAC,YAAY,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,KAAI,CAAC,YAAY,EAAE;gBACjE,OAAO;aACV;YACD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,KAAI,CAAC,SAAS,EAAE;gBACzE,OAAO;aACV;YACD,IAAI,KAAI,CAAC,QAAQ,EAAE;gBACf,KAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC7B;iBAAM;gBACH,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAChC;QACL,CAAC,EAAE,KAAK,CAAC,CAAC;;IACd,CAAC;IAED,oCAAM,GAAN,UAAO,QAAsB;QACzB,IAAI,OAAO,CAAC;QACZ,OAAO,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE;YAChC,QAAQ,CAAC,OAAO,CAAC,CAAC;SACrB;QACD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAEL,0BAAC;AAAD,CAAC,AA/BD,CAAyC,qCAAqB,GA+B7D;AA/BY,kDAAmB;AAiChC,SAAgB,6BAA6B,CAAC,SAAiB,EAAE,MAAc,EAAE,YAAoB,EAAE,YAA2B;IAA3B,6BAAA,EAAA,2BAA2B;IAC9H,IAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAChE,IAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IACxE,OAAO,8BAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,iCAAa,EAAE,CAAC,CAAC;AACxE,CAAC;AAJD,sEAIC"}
1
+ {"version":3,"file":"window-connection.js","sourceRoot":"","sources":["../../../src/messaging/browser/window-connection.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAGH,oEAAwF;AACxF,oEAAsG;AACtG,kDAAqF;AACrF,yDAAkD;AAKlD,SAAS,eAAe,CAAC,KAAU;IAC/B,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QACvC,CAAC,SAAS,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC;QAC5D,CAAC,WAAW,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,QAAQ,CAAC,CAAC;AACzE,CAAC;AAED,MAAa,mBAAoB,SAAQ,qCAAqB;IAE1D,YAAqB,SAAiB,EAAW,MAAc,EAAW,YAAoB;QAC1F,KAAK,EAAE,CAAC;QADS,cAAS,GAAT,SAAS,CAAQ;QAAW,WAAM,GAAN,MAAM,CAAQ;QAAW,iBAAY,GAAZ,YAAY,CAAQ;IAE9F,CAAC;IAED,KAAK,CAAC,GAAY;QACd,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAClF,CAAC;CAEJ;AAXD,kDAWC;AAED,MAAa,mBAAoB,SAAQ,qCAAqB;IAK1D,YAAqB,SAAiB,EAAW,YAAoB;QACjE,KAAK,EAAE,CAAC;QADS,cAAS,GAAT,SAAS,CAAQ;QAAW,iBAAY,GAAZ,YAAY,CAAQ;QAFlD,WAAM,GAAc,EAAE,CAAC;QAItC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;YACvC,IAAI,IAAI,CAAC,YAAY,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,YAAY,EAAE;gBACjE,OAAO;aACV;YACD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE;gBACzE,OAAO;aACV;YACD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC7B;iBAAM;gBACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAChC;QACL,CAAC,EAAE,KAAK,CAAC,CAAC;IACd,CAAC;IAED,MAAM,CAAC,QAAsB;QACzB,IAAI,OAAO,CAAC;QACZ,OAAO,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE;YAChC,QAAQ,CAAC,OAAO,CAAC,CAAC;SACrB;QACD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;CAEJ;AA/BD,kDA+BC;AAED,SAAgB,6BAA6B,CAAC,SAAiB,EAAE,MAAc,EAAE,YAAoB,EAAE,YAAY,GAAG,YAAY;IAC9H,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IACxE,OAAO,IAAA,8BAAuB,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,iCAAa,EAAE,CAAC,CAAC;AACxE,CAAC;AAJD,sEAIC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Copyright (c) 2021 Gitpod GmbH. All rights reserved.
3
+ * Licensed under the GNU Affero General Public License (AGPL).
4
+ * See License-AGPL.txt in the project root for license information.
5
+ */
6
+ import * as prometheusClient from 'prom-client';
7
+ declare type GrpcMethodType = 'unary' | 'client_stream' | 'server_stream' | 'bidi_stream';
8
+ export interface IGrpcCallMetricsLabels {
9
+ service: string;
10
+ method: string;
11
+ type: GrpcMethodType;
12
+ }
13
+ export interface IGrpcCallMetricsLabelsWithCode extends IGrpcCallMetricsLabels {
14
+ code: string;
15
+ }
16
+ export declare const IClientCallMetrics: unique symbol;
17
+ export interface IClientCallMetrics {
18
+ started(labels: IGrpcCallMetricsLabels): void;
19
+ sent(labels: IGrpcCallMetricsLabels): void;
20
+ received(labels: IGrpcCallMetricsLabels): void;
21
+ handled(labels: IGrpcCallMetricsLabelsWithCode): void;
22
+ }
23
+ export declare class PrometheusClientCallMetrics implements IClientCallMetrics {
24
+ readonly startedCounter: prometheusClient.Counter<string>;
25
+ readonly sentCounter: prometheusClient.Counter<string>;
26
+ readonly receivedCounter: prometheusClient.Counter<string>;
27
+ readonly handledCounter: prometheusClient.Counter<string>;
28
+ constructor();
29
+ started(labels: IGrpcCallMetricsLabels): void;
30
+ sent(labels: IGrpcCallMetricsLabels): void;
31
+ received(labels: IGrpcCallMetricsLabels): void;
32
+ handled(labels: IGrpcCallMetricsLabelsWithCode): void;
33
+ }
34
+ export {};
35
+ //# sourceMappingURL=client-call-metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-call-metrics.d.ts","sourceRoot":"","sources":["../../src/messaging/client-call-metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,gBAAgB,MAAM,aAAa,CAAC;AAEhD,aAAK,cAAc,GAAG,OAAO,GAAG,eAAe,GAAG,eAAe,GAAG,aAAa,CAAC;AAClF,MAAM,WAAW,sBAAsB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,cAAc,CAAC;CACrB;AAED,MAAM,WAAW,8BAA+B,SAAQ,sBAAsB;IAC7E,IAAI,EAAE,MAAM,CAAA;CACZ;AAED,eAAO,MAAM,kBAAkB,eAA+B,CAAC;AAE/D,MAAM,WAAW,kBAAkB;IAClC,OAAO,CAAC,MAAM,EAAE,sBAAsB,GAAI,IAAI,CAAC;IAC5C,IAAI,CAAC,MAAM,EAAE,sBAAsB,GAAI,IAAI,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,sBAAsB,GAAI,IAAI,CAAC;IAChD,OAAO,CAAC,MAAM,EAAE,8BAA8B,GAAI,IAAI,CAAC;CAC1D;AAED,qBACa,2BAA4B,YAAW,kBAAkB;IAErE,QAAQ,CAAC,cAAc,EAAE,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvD,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3D,QAAQ,CAAC,cAAc,EAAE,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;;IA6B1D,OAAO,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAQ7C,IAAI,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAQ1C,QAAQ,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAQ9C,OAAO,CAAC,MAAM,EAAE,8BAA8B,GAAG,IAAI;CAQrD"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) 2021 Gitpod GmbH. All rights reserved.
4
+ * Licensed under the GNU Affero General Public License (AGPL).
5
+ * See License-AGPL.txt in the project root for license information.
6
+ */
7
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
8
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
9
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
10
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
11
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
12
+ };
13
+ var __metadata = (this && this.__metadata) || function (k, v) {
14
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.PrometheusClientCallMetrics = exports.IClientCallMetrics = void 0;
18
+ const inversify_1 = require("inversify");
19
+ const prometheusClient = require("prom-client");
20
+ exports.IClientCallMetrics = Symbol("IClientCallMetrics");
21
+ let PrometheusClientCallMetrics = class PrometheusClientCallMetrics {
22
+ constructor() {
23
+ this.startedCounter = new prometheusClient.Counter({
24
+ name: 'grpc_client_started_total',
25
+ help: 'Total number of RPCs started on the client.',
26
+ labelNames: ['grpc_service', 'grpc_method', 'grpc_type'],
27
+ registers: [prometheusClient.register]
28
+ });
29
+ this.sentCounter = new prometheusClient.Counter({
30
+ name: 'grpc_client_msg_sent_total',
31
+ help: ' Total number of gRPC stream messages sent by the client.',
32
+ labelNames: ['grpc_service', 'grpc_method', 'grpc_type'],
33
+ registers: [prometheusClient.register]
34
+ });
35
+ this.receivedCounter = new prometheusClient.Counter({
36
+ name: 'grpc_client_msg_received_total',
37
+ help: 'Total number of RPC stream messages received by the client.',
38
+ labelNames: ['grpc_service', 'grpc_method', 'grpc_type'],
39
+ registers: [prometheusClient.register]
40
+ });
41
+ this.handledCounter = new prometheusClient.Counter({
42
+ name: 'grpc_client_handled_total',
43
+ help: 'Total number of RPCs completed by the client, regardless of success or failure.',
44
+ labelNames: ['grpc_service', 'grpc_method', 'grpc_type', 'grpc_code'],
45
+ registers: [prometheusClient.register]
46
+ });
47
+ }
48
+ started(labels) {
49
+ this.startedCounter.inc({
50
+ grpc_service: labels.service,
51
+ grpc_method: labels.method,
52
+ grpc_type: labels.type
53
+ });
54
+ }
55
+ sent(labels) {
56
+ this.sentCounter.inc({
57
+ grpc_service: labels.service,
58
+ grpc_method: labels.method,
59
+ grpc_type: labels.type
60
+ });
61
+ }
62
+ received(labels) {
63
+ this.receivedCounter.inc({
64
+ grpc_service: labels.service,
65
+ grpc_method: labels.method,
66
+ grpc_type: labels.type
67
+ });
68
+ }
69
+ handled(labels) {
70
+ this.handledCounter.inc({
71
+ grpc_service: labels.service,
72
+ grpc_method: labels.method,
73
+ grpc_type: labels.type,
74
+ grpc_code: labels.code
75
+ });
76
+ }
77
+ };
78
+ PrometheusClientCallMetrics = __decorate([
79
+ (0, inversify_1.injectable)(),
80
+ __metadata("design:paramtypes", [])
81
+ ], PrometheusClientCallMetrics);
82
+ exports.PrometheusClientCallMetrics = PrometheusClientCallMetrics;
83
+ //# sourceMappingURL=client-call-metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-call-metrics.js","sourceRoot":"","sources":["../../src/messaging/client-call-metrics.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,yCAAuC;AACvC,gDAAgD;AAanC,QAAA,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAU/D,IAAa,2BAA2B,GAAxC,MAAa,2BAA2B;IAOvC;QACC,IAAI,CAAC,cAAc,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC;YAClD,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,6CAA6C;YACnD,UAAU,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,WAAW,CAAC;YACxD,SAAS,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC;SACtC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC;YAC/C,IAAI,EAAE,4BAA4B;YAClC,IAAI,EAAE,2DAA2D;YACjE,UAAU,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,WAAW,CAAC;YACxD,SAAS,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC;SACtC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC;YACnD,IAAI,EAAE,gCAAgC;YACtC,IAAI,EAAE,6DAA6D;YACnE,UAAU,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,WAAW,CAAC;YACxD,SAAS,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC;SACtC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC;YAClD,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,iFAAiF;YACvF,UAAU,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,CAAC;YACrE,SAAS,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC;SACtC,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,MAA8B;QACrC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;YACvB,YAAY,EAAE,MAAM,CAAC,OAAO;YAC5B,WAAW,EAAE,MAAM,CAAC,MAAM;YAC1B,SAAS,EAAE,MAAM,CAAC,IAAI;SACtB,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAA8B;QAClC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;YACpB,YAAY,EAAE,MAAM,CAAC,OAAO;YAC5B,WAAW,EAAE,MAAM,CAAC,MAAM;YAC1B,SAAS,EAAE,MAAM,CAAC,IAAI;SACtB,CAAC,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,MAA8B;QACtC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;YACxB,YAAY,EAAE,MAAM,CAAC,OAAO;YAC5B,WAAW,EAAE,MAAM,CAAC,MAAM;YAC1B,SAAS,EAAE,MAAM,CAAC,IAAI;SACtB,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,MAAsC;QAC7C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;YACvB,YAAY,EAAE,MAAM,CAAC,OAAO;YAC5B,WAAW,EAAE,MAAM,CAAC,MAAM;YAC1B,SAAS,EAAE,MAAM,CAAC,IAAI;YACtB,SAAS,EAAE,MAAM,CAAC,IAAI;SACtB,CAAC,CAAC;IACJ,CAAC;CACD,CAAA;AAlEY,2BAA2B;IADvC,IAAA,sBAAU,GAAE;;GACA,2BAA2B,CAkEvC;AAlEY,kEAA2B"}