@celljs/rpc 3.7.8 → 3.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. package/esm/common/annotation/autorpc.d.ts +5 -0
  2. package/esm/common/annotation/autorpc.js +14 -0
  3. package/esm/common/annotation/autorpc.js.map +1 -0
  4. package/esm/common/annotation/detached/autorpc.d.ts +2 -0
  5. package/esm/common/annotation/detached/autorpc.js +11 -0
  6. package/esm/common/annotation/detached/autorpc.js.map +1 -0
  7. package/esm/common/annotation/detached/index.d.ts +1 -0
  8. package/esm/common/annotation/detached/index.js +2 -0
  9. package/esm/common/annotation/detached/index.js.map +1 -0
  10. package/esm/common/annotation/index.d.ts +2 -0
  11. package/esm/common/annotation/index.js +3 -0
  12. package/esm/common/annotation/index.js.map +1 -0
  13. package/esm/common/annotation/rpc.d.ts +19 -0
  14. package/esm/common/annotation/rpc.js +36 -0
  15. package/esm/common/annotation/rpc.js.map +1 -0
  16. package/esm/common/channal/channel-protocol.d.ts +51 -0
  17. package/esm/common/channal/channel-protocol.js +34 -0
  18. package/esm/common/channal/channel-protocol.js.map +1 -0
  19. package/esm/common/channal/http-channel.d.ts +8 -0
  20. package/esm/common/channal/http-channel.js +22 -0
  21. package/esm/common/channal/http-channel.js.map +1 -0
  22. package/esm/common/channal/index.d.ts +2 -0
  23. package/esm/common/channal/index.js +3 -0
  24. package/esm/common/channal/index.js.map +1 -0
  25. package/esm/common/constants.d.ts +1 -0
  26. package/esm/common/constants.js +2 -0
  27. package/esm/common/constants.js.map +1 -0
  28. package/esm/common/converter/converter-protocol.d.ts +6 -0
  29. package/esm/common/converter/converter-protocol.js +3 -0
  30. package/esm/common/converter/converter-protocol.js.map +1 -0
  31. package/esm/common/converter/index.d.ts +1 -0
  32. package/esm/common/converter/index.js +2 -0
  33. package/esm/common/converter/index.js.map +1 -0
  34. package/esm/common/endpoint/endpoint-protocol.d.ts +4 -0
  35. package/esm/common/endpoint/endpoint-protocol.js +2 -0
  36. package/esm/common/endpoint/endpoint-protocol.js.map +1 -0
  37. package/esm/common/endpoint/endpoint-resolver.d.ts +12 -0
  38. package/esm/common/endpoint/endpoint-resolver.js +58 -0
  39. package/esm/common/endpoint/endpoint-resolver.js.map +1 -0
  40. package/esm/common/endpoint/index.d.ts +2 -0
  41. package/esm/common/endpoint/index.js +3 -0
  42. package/esm/common/endpoint/index.js.map +1 -0
  43. package/esm/common/error/error.d.ts +5 -0
  44. package/esm/common/error/error.js +8 -0
  45. package/esm/common/error/error.js.map +1 -0
  46. package/esm/common/error/index.d.ts +1 -0
  47. package/esm/common/error/index.js +2 -0
  48. package/esm/common/error/index.js.map +1 -0
  49. package/esm/common/factory/connection-factory.d.ts +9 -0
  50. package/esm/common/factory/connection-factory.js +25 -0
  51. package/esm/common/factory/connection-factory.js.map +1 -0
  52. package/esm/common/factory/index.d.ts +4 -0
  53. package/esm/common/factory/index.js +5 -0
  54. package/esm/common/factory/index.js.map +1 -0
  55. package/esm/common/factory/proxy-factory.d.ts +56 -0
  56. package/esm/common/factory/proxy-factory.js +177 -0
  57. package/esm/common/factory/proxy-factory.js.map +1 -0
  58. package/esm/common/factory/reader.d.ts +15 -0
  59. package/esm/common/factory/reader.js +44 -0
  60. package/esm/common/factory/reader.js.map +1 -0
  61. package/esm/common/factory/writer.d.ts +9 -0
  62. package/esm/common/factory/writer.js +21 -0
  63. package/esm/common/factory/writer.js.map +1 -0
  64. package/esm/common/handler/connection-handler.d.ts +6 -0
  65. package/esm/common/handler/connection-handler.js +4 -0
  66. package/esm/common/handler/connection-handler.js.map +1 -0
  67. package/esm/common/handler/handler-protocol.d.ts +6 -0
  68. package/esm/common/handler/handler-protocol.js +2 -0
  69. package/esm/common/handler/handler-protocol.js.map +1 -0
  70. package/esm/common/handler/index.d.ts +2 -0
  71. package/esm/common/handler/index.js +3 -0
  72. package/esm/common/handler/index.js.map +1 -0
  73. package/esm/common/index.d.ts +11 -0
  74. package/esm/common/index.js +12 -0
  75. package/esm/common/index.js.map +1 -0
  76. package/esm/common/module.d.ts +3 -0
  77. package/esm/common/module.js +20 -0
  78. package/esm/common/module.js.map +1 -0
  79. package/esm/common/processor/client-config-processor.d.ts +5 -0
  80. package/esm/common/processor/client-config-processor.js +17 -0
  81. package/esm/common/processor/client-config-processor.js.map +1 -0
  82. package/esm/common/processor/index.d.ts +2 -0
  83. package/esm/common/processor/index.js +3 -0
  84. package/esm/common/processor/index.js.map +1 -0
  85. package/esm/common/processor/processor-protocol.d.ts +5 -0
  86. package/esm/common/processor/processor-protocol.js +2 -0
  87. package/esm/common/processor/processor-protocol.js.map +1 -0
  88. package/esm/common/proxy/delegating-http-proxy-creator.d.ts +23 -0
  89. package/esm/common/proxy/delegating-http-proxy-creator.js +86 -0
  90. package/esm/common/proxy/delegating-http-proxy-creator.js.map +1 -0
  91. package/esm/common/proxy/http-proxy-creator.d.ts +42 -0
  92. package/esm/common/proxy/http-proxy-creator.js +139 -0
  93. package/esm/common/proxy/http-proxy-creator.js.map +1 -0
  94. package/esm/common/proxy/index.d.ts +4 -0
  95. package/esm/common/proxy/index.js +5 -0
  96. package/esm/common/proxy/index.js.map +1 -0
  97. package/esm/common/proxy/proxy-protocol.d.ts +20 -0
  98. package/esm/common/proxy/proxy-protocol.js +3 -0
  99. package/esm/common/proxy/proxy-protocol.js.map +1 -0
  100. package/esm/common/proxy/proxy-provider.d.ts +9 -0
  101. package/esm/common/proxy/proxy-provider.js +40 -0
  102. package/esm/common/proxy/proxy-provider.js.map +1 -0
  103. package/esm/common/utils/converter-util.d.ts +7 -0
  104. package/esm/common/utils/converter-util.js +29 -0
  105. package/esm/common/utils/converter-util.js.map +1 -0
  106. package/esm/common/utils/index.d.ts +3 -0
  107. package/esm/common/utils/index.js +4 -0
  108. package/esm/common/utils/index.js.map +1 -0
  109. package/esm/common/utils/logger.d.ts +8 -0
  110. package/esm/common/utils/logger.js +18 -0
  111. package/esm/common/utils/logger.js.map +1 -0
  112. package/esm/common/utils/rpc-util.d.ts +12 -0
  113. package/esm/common/utils/rpc-util.js +43 -0
  114. package/esm/common/utils/rpc-util.js.map +1 -0
  115. package/esm/node/channel/channel-manager.d.ts +9 -0
  116. package/esm/node/channel/channel-manager.js +56 -0
  117. package/esm/node/channel/channel-manager.js.map +1 -0
  118. package/esm/node/channel/channel-middleware.d.ts +7 -0
  119. package/esm/node/channel/channel-middleware.js +37 -0
  120. package/esm/node/channel/channel-middleware.js.map +1 -0
  121. package/esm/node/channel/channel-protocol.d.ts +12 -0
  122. package/esm/node/channel/channel-protocol.js +6 -0
  123. package/esm/node/channel/channel-protocol.js.map +1 -0
  124. package/esm/node/channel/channel-strategy.d.ts +9 -0
  125. package/esm/node/channel/channel-strategy.js +61 -0
  126. package/esm/node/channel/channel-strategy.js.map +1 -0
  127. package/esm/node/channel/index.d.ts +4 -0
  128. package/esm/node/channel/index.js +5 -0
  129. package/esm/node/channel/index.js.map +1 -0
  130. package/esm/node/handler/handler-adapter.d.ts +13 -0
  131. package/esm/node/handler/handler-adapter.js +52 -0
  132. package/esm/node/handler/handler-adapter.js.map +1 -0
  133. package/esm/node/handler/handler-protocol.d.ts +1 -0
  134. package/esm/node/handler/handler-protocol.js +2 -0
  135. package/esm/node/handler/handler-protocol.js.map +1 -0
  136. package/esm/node/handler/index.d.ts +2 -0
  137. package/esm/node/handler/index.js +3 -0
  138. package/esm/node/handler/index.js.map +1 -0
  139. package/esm/node/index.d.ts +2 -0
  140. package/esm/node/index.js +3 -0
  141. package/esm/node/index.js.map +1 -0
  142. package/esm/node/module.d.ts +3 -0
  143. package/esm/node/module.js +4 -0
  144. package/esm/node/module.js.map +1 -0
  145. package/esm/package.json +3 -0
  146. package/lib/common/annotation/autorpc.d.ts.map +1 -1
  147. package/lib/common/annotation/autorpc.js.map +1 -1
  148. package/lib/common/annotation/detached/autorpc.d.ts.map +1 -1
  149. package/lib/common/annotation/detached/autorpc.js.map +1 -1
  150. package/lib/common/annotation/rpc.js.map +1 -1
  151. package/lib/common/channal/channel-protocol.d.ts.map +1 -1
  152. package/lib/common/channal/channel-protocol.js.map +1 -1
  153. package/lib/common/channal/http-channel.d.ts.map +1 -1
  154. package/lib/common/channal/http-channel.js.map +1 -1
  155. package/lib/common/endpoint/endpoint-resolver.d.ts.map +1 -1
  156. package/lib/common/endpoint/endpoint-resolver.js.map +1 -1
  157. package/lib/common/error/error.d.ts.map +1 -1
  158. package/lib/common/error/error.js.map +1 -1
  159. package/lib/common/factory/connection-factory.d.ts.map +1 -1
  160. package/lib/common/factory/connection-factory.js.map +1 -1
  161. package/lib/common/factory/proxy-factory.d.ts +2 -2
  162. package/lib/common/factory/proxy-factory.d.ts.map +1 -1
  163. package/lib/common/factory/proxy-factory.js.map +1 -1
  164. package/lib/common/factory/reader.d.ts.map +1 -1
  165. package/lib/common/factory/reader.js.map +1 -1
  166. package/lib/common/factory/writer.d.ts.map +1 -1
  167. package/lib/common/factory/writer.js.map +1 -1
  168. package/lib/common/handler/connection-handler.d.ts.map +1 -1
  169. package/lib/common/handler/connection-handler.js.map +1 -1
  170. package/lib/common/module.d.ts.map +1 -1
  171. package/lib/common/module.js.map +1 -1
  172. package/lib/common/processor/client-config-processor.d.ts.map +1 -1
  173. package/lib/common/processor/client-config-processor.js.map +1 -1
  174. package/lib/common/proxy/delegating-http-proxy-creator.d.ts.map +1 -1
  175. package/lib/common/proxy/delegating-http-proxy-creator.js.map +1 -1
  176. package/lib/common/proxy/http-proxy-creator.d.ts.map +1 -1
  177. package/lib/common/proxy/http-proxy-creator.js.map +1 -1
  178. package/lib/common/proxy/proxy-provider.d.ts.map +1 -1
  179. package/lib/common/proxy/proxy-provider.js.map +1 -1
  180. package/lib/common/utils/converter-util.js.map +1 -1
  181. package/lib/common/utils/logger.d.ts.map +1 -1
  182. package/lib/common/utils/logger.js.map +1 -1
  183. package/lib/common/utils/rpc-util.js.map +1 -1
  184. package/lib/node/channel/channel-manager.d.ts.map +1 -1
  185. package/lib/node/channel/channel-manager.js.map +1 -1
  186. package/lib/node/channel/channel-middleware.d.ts.map +1 -1
  187. package/lib/node/channel/channel-middleware.js.map +1 -1
  188. package/lib/node/channel/channel-strategy.d.ts.map +1 -1
  189. package/lib/node/channel/channel-strategy.js.map +1 -1
  190. package/lib/node/handler/handler-adapter.d.ts.map +1 -1
  191. package/lib/node/handler/handler-adapter.js.map +1 -1
  192. package/lib/node/module.d.ts.map +1 -1
  193. package/lib/node/module.js.map +1 -1
  194. package/lib/package.spec.d.ts +1 -0
  195. package/lib/package.spec.js +5 -2
  196. package/lib/package.spec.js.map +1 -1
  197. package/package.json +103 -13
  198. package/src/package.spec.ts +1 -0
  199. package/LICENSE +0 -21
@@ -0,0 +1,177 @@
1
+ import { ResponseError, Emitter } from 'vscode-jsonrpc';
2
+ import { ApplicationError, getTargetClass, getPropertyNames } from '@celljs/core';
3
+ export class JsonRpcConnectionHandler {
4
+ constructor(path, targetFactory, errorConverters, pipeManager, logger) {
5
+ this.path = path;
6
+ this.targetFactory = targetFactory;
7
+ this.errorConverters = errorConverters;
8
+ this.pipeManager = pipeManager;
9
+ this.logger = logger;
10
+ }
11
+ onConnection(connection) {
12
+ const factory = new JsonRpcProxyFactory(undefined, this.errorConverters, this.pipeManager, this.logger);
13
+ const proxy = factory.createProxy();
14
+ factory.target = this.targetFactory(proxy);
15
+ factory.listen(connection);
16
+ }
17
+ }
18
+ export class JsonRpcProxyFactory {
19
+ constructor(target, errorConverters, pipeManager, logger) {
20
+ this.target = target;
21
+ this.errorConverters = errorConverters;
22
+ this.pipeManager = pipeManager;
23
+ this.logger = logger;
24
+ this.onDidOpenConnectionEmitter = new Emitter();
25
+ this.onDidCloseConnectionEmitter = new Emitter();
26
+ this.waitForConnection();
27
+ }
28
+ waitForConnection() {
29
+ this.connectionPromise = new Promise(resolve => this.connectionPromiseResolve = resolve);
30
+ this.connectionPromise.then(connection => {
31
+ connection.onClose(() => this.onDidCloseConnectionEmitter.fire(undefined));
32
+ this.onDidOpenConnectionEmitter.fire(undefined);
33
+ });
34
+ }
35
+ getRequestHandler(prop) {
36
+ return (...args) => this.onRequest(prop, ...args);
37
+ }
38
+ getNotificationHandler(prop) {
39
+ return (...args) => this.onNotification(prop, ...args);
40
+ }
41
+ registerMethods(connection) {
42
+ if (this.target) {
43
+ for (const prop of getPropertyNames(this.target)) {
44
+ if (typeof this.target[prop] === 'function') {
45
+ connection.onRequest(prop, this.getRequestHandler(prop));
46
+ connection.onNotification(prop, this.getNotificationHandler(prop));
47
+ }
48
+ }
49
+ }
50
+ }
51
+ listen(connection) {
52
+ this.registerMethods(connection);
53
+ connection.onDispose(() => this.waitForConnection());
54
+ connection.listen();
55
+ this.connectionPromiseResolve(connection);
56
+ }
57
+ async onRequest(method, ...args) {
58
+ var _a, _b, _c, _d;
59
+ const now = Date.now();
60
+ const message = `${getTargetClass(this.target).name}.${method}`;
61
+ // eslint-disable-next-line no-unused-expressions
62
+ (_a = this.logger) === null || _a === void 0 ? void 0 : _a.info(`starting ${message}`);
63
+ try {
64
+ // eslint-disable-next-line no-unused-expressions
65
+ await ((_b = this.pipeManager) === null || _b === void 0 ? void 0 : _b.apply({ target: this.target, method: method }, args));
66
+ return await this.target[method](...args);
67
+ }
68
+ catch (error) {
69
+ const e = this.serializeError(error);
70
+ if (e instanceof ResponseError) {
71
+ throw e;
72
+ }
73
+ const reason = e.message || '';
74
+ const stack = e.stack || '';
75
+ // eslint-disable-next-line no-unused-expressions
76
+ (_c = this.logger) === null || _c === void 0 ? void 0 : _c.error(`Request ${method} failed with error: ${reason}`, stack);
77
+ throw e;
78
+ }
79
+ finally {
80
+ // eslint-disable-next-line no-unused-expressions
81
+ (_d = this.logger) === null || _d === void 0 ? void 0 : _d.info(`ending ${message}, cost ${Date.now() - now}ms`);
82
+ }
83
+ }
84
+ onNotification(method, ...args) {
85
+ this.target[method](...args);
86
+ }
87
+ createProxy() {
88
+ const proxy = new Proxy(this, this);
89
+ return proxy;
90
+ }
91
+ get(target, p, receiver) {
92
+ const method = this.getInternalMethod(p.toString());
93
+ if (method) {
94
+ return method;
95
+ }
96
+ return this.createProxyMethod(p.toString());
97
+ }
98
+ getInternalMethod(method) {
99
+ if (method === JsonRpcProxyFactory.SET_CLIENT) {
100
+ return (client) => this.target = client;
101
+ }
102
+ if (method === JsonRpcProxyFactory.ON_DID_OPEN_CONNECTION) {
103
+ return this.onDidOpenConnectionEmitter.event;
104
+ }
105
+ if (method === JsonRpcProxyFactory.ON_DID_CLOSE_CONNECTION) {
106
+ return this.onDidCloseConnectionEmitter.event;
107
+ }
108
+ }
109
+ createProxyMethod(method) {
110
+ if (method === 'then') {
111
+ return undefined;
112
+ }
113
+ const isNotify = this.isNotification(method);
114
+ return async (...args) => {
115
+ const capturedError = new Error(`Request '${method}' failed`);
116
+ const connection = await this.connectionPromise;
117
+ if (isNotify) {
118
+ connection.sendNotification(method, ...args);
119
+ }
120
+ else {
121
+ try {
122
+ return await connection.sendRequest(method, ...args);
123
+ }
124
+ catch (err) {
125
+ throw this.deserializeError(capturedError, err);
126
+ }
127
+ }
128
+ };
129
+ }
130
+ isNotification(p) {
131
+ return p.toString().startsWith('notify') || p.toString().startsWith('on');
132
+ }
133
+ serializeError(e) {
134
+ if (this.errorConverters) {
135
+ for (const converter of this.errorConverters) {
136
+ const serialized = converter.serialize(e);
137
+ if (serialized) {
138
+ e = serialized;
139
+ break;
140
+ }
141
+ }
142
+ }
143
+ if (ApplicationError.is(e)) {
144
+ return new ResponseError(e.code, '', Object.assign({ kind: 'application' }, e.toJson()));
145
+ }
146
+ return e;
147
+ }
148
+ deserializeError(capturedError, e) {
149
+ if (e instanceof ResponseError) {
150
+ const capturedStack = capturedError.stack || '';
151
+ if (e.data && e.data.kind === 'application') {
152
+ const { stack, data, message } = e.data;
153
+ e = ApplicationError.fromJson(e.code, {
154
+ message: message || capturedError.message,
155
+ data,
156
+ stack: `${capturedStack}\nCaused by: ${stack}`
157
+ });
158
+ }
159
+ else {
160
+ e.stack = capturedStack;
161
+ }
162
+ }
163
+ if (this.errorConverters) {
164
+ for (const converter of this.errorConverters) {
165
+ const deserialized = converter.deserialize(e);
166
+ if (deserialized) {
167
+ return deserialized;
168
+ }
169
+ }
170
+ }
171
+ return e;
172
+ }
173
+ }
174
+ JsonRpcProxyFactory.SET_CLIENT = 'setClient';
175
+ JsonRpcProxyFactory.ON_DID_OPEN_CONNECTION = 'onDidOpenConnection';
176
+ JsonRpcProxyFactory.ON_DID_CLOSE_CONNECTION = 'onDidCloseConnection';
177
+ //# sourceMappingURL=proxy-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy-factory.js","sourceRoot":"","sources":["../../../src/common/factory/proxy-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,aAAa,EAAE,OAAO,EAAS,MAAM,gBAAgB,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAsB,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAoBtG,MAAM,OAAO,wBAAwB;IACjC,YACa,IAAY,EACZ,aAA8C,EAC9C,eAAiC,EACjC,WAAwB,EACxB,MAAc;oBAJd,IAAI;6BACJ,aAAa;+BACb,eAAe;2BACf,WAAW;sBACX,MAAM;IACf,CAAC;IAEL,YAAY,CAAC,UAA6B;QACtC,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAI,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3G,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QACpC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;CACJ;AAED,MAAM,OAAO,mBAAmB;IAY5B,YACW,MAAY,EACT,eAAkC,EAClC,WAAyB,EACzB,MAAe;QAHlB,WAAM,GAAN,MAAM,CAAM;QACT,oBAAe,GAAf,eAAe,CAAmB;QAClC,gBAAW,GAAX,WAAW,CAAc;QACzB,WAAM,GAAN,MAAM,CAAS;QAXZ,+BAA0B,GAAG,IAAI,OAAO,EAAQ,CAAC;QACjD,gCAA2B,GAAG,IAAI,OAAO,EAAQ,CAAC;QAW/D,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC7B,CAAC;IAES,iBAAiB;QACvB,IAAI,CAAC,iBAAiB,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAC3C,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAC1C,CAAC;QACF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACrC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CACpB,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,SAAS,CAAC,CACnD,CAAC;YACF,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACP,CAAC;IAES,iBAAiB,CAAC,IAAY;QACpC,OAAO,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAC7D,CAAC;IAES,sBAAsB,CAAC,IAAY;QACzC,OAAO,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAClE,CAAC;IAES,eAAe,CAAC,UAA6B;QACnD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/C,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC;oBAC1C,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;oBACzD,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;gBACvE,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,MAAM,CAAC,UAA6B;QAChC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACjC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACrD,UAAU,CAAC,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAES,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,GAAG,IAAW;;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC;QAChE,iDAAiD;QACjD,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC;YACD,iDAAiD;YACjD,OAAM,MAAA,IAAI,CAAC,WAAW,0CAAE,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,CAAA,CAAC;YAE7E,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,CAAC,YAAY,aAAa,EAAE,CAAC;gBAC7B,MAAM,CAAC,CAAC;YACZ,CAAC;YACD,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC5B,iDAAiD;YACjD,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,CAAC,WAAW,MAAM,uBAAuB,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;YAC5E,MAAM,CAAC,CAAC;QACZ,CAAC;gBAAS,CAAC;YACP,iDAAiD;YACjD,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,CAAC,UAAU,OAAO,UAAU,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;QAEvE,CAAC;IACL,CAAC;IAES,cAAc,CAAC,MAAc,EAAE,GAAG,IAAW;QACnD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,WAAW;QACP,MAAM,KAAK,GAAG,IAAI,KAAK,CAAI,IAAW,EAAE,IAAI,CAAC,CAAC;QAC9C,OAAO,KAAY,CAAC;IACxB,CAAC;IAED,GAAG,CAAC,MAAS,EAAE,CAAc,EAAE,QAAa;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpD,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChD,CAAC;IAES,iBAAiB,CAAC,MAAc;QACtC,IAAI,MAAM,KAAK,mBAAmB,CAAC,UAAU,EAAE,CAAC;YAC5C,OAAQ,CAAC,MAAW,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAClD,CAAC;QACD,IAAI,MAAM,KAAK,mBAAmB,CAAC,sBAAsB,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC;QACjD,CAAC;QACD,IAAI,MAAM,KAAK,mBAAmB,CAAC,uBAAuB,EAAE,CAAC;YACzD,OAAO,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC;QAClD,CAAC;IACL,CAAC;IAES,iBAAiB,CAAC,MAAc;QACtC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC7C,OAAO,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE;YAC5B,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC,YAAY,MAAM,UAAU,CAAC,CAAC;YAC9D,MAAM,UAAU,GAAI,MAAM,IAAI,CAAC,iBAAiB,CAAC;YACjD,IAAI,QAAQ,EAAE,CAAC;gBACX,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC;oBACD,OAAO,MAAM,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,IAAI,CAAiB,CAAC;gBACzE,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACX,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;gBACpD,CAAC;YACL,CAAC;QACL,CAAC,CAAC;IACN,CAAC;IAES,cAAc,CAAC,CAAc;QACnC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC;IAES,cAAc,CAAC,CAAM;QAC3B,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC3C,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC1C,IAAI,UAAU,EAAE,CAAC;oBACb,CAAC,GAAG,UAAU,CAAC;oBACf,MAAM;gBACV,CAAC;YACL,CAAC;QACL,CAAC;QACD,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAC/B,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CACrD,CAAC;QACN,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IACS,gBAAgB,CAAC,aAAoB,EAAE,CAAM;QACnD,IAAI,CAAC,YAAY,aAAa,EAAE,CAAC;YAC7B,MAAM,aAAa,GAAG,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC;YAChD,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBAC1C,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;gBACxC,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE;oBAClC,OAAO,EAAE,OAAO,IAAI,aAAa,CAAC,OAAO;oBACzC,IAAI;oBACJ,KAAK,EAAE,GAAG,aAAa,gBAAgB,KAAK,EAAE;iBACjD,CAAC,CAAC;YACP,CAAC;iBAAM,CAAC;gBACJ,CAAC,CAAC,KAAK,GAAG,aAAa,CAAC;YAC5B,CAAC;QACL,CAAC;QACD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC3C,MAAM,YAAY,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAC9C,IAAI,YAAY,EAAE,CAAC;oBACf,OAAO,YAAY,CAAC;gBACxB,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC;CAEJ;AAlLkB,8BAAU,GAAG,WAAW,AAAd,CAAe;AACzB,0CAAsB,GAAG,qBAAqB,AAAxB,CAAyB;AAC/C,2CAAuB,GAAG,sBAAsB,AAAzB,CAA0B"}
@@ -0,0 +1,15 @@
1
+ import { DataCallback, AbstractMessageReader, Disposable } from 'vscode-jsonrpc';
2
+ import { Channel } from '../channal/channel-protocol.js';
3
+ export declare class ChannelMessageReader extends AbstractMessageReader {
4
+ protected readonly channel: Channel;
5
+ protected state: 'initial' | 'listening' | 'closed';
6
+ protected callback: DataCallback | undefined;
7
+ protected readonly events: {
8
+ message?: any;
9
+ error?: any;
10
+ }[];
11
+ constructor(channel: Channel);
12
+ listen(callback: DataCallback): Disposable;
13
+ protected readMessage(message: any): void;
14
+ protected fireError(error: any): void;
15
+ }
@@ -0,0 +1,44 @@
1
+ import { AbstractMessageReader, Disposable } from 'vscode-jsonrpc';
2
+ export class ChannelMessageReader extends AbstractMessageReader {
3
+ constructor(channel) {
4
+ super();
5
+ this.channel = channel;
6
+ this.state = 'initial';
7
+ this.events = [];
8
+ this.channel.onMessage(message => this.readMessage(message));
9
+ }
10
+ listen(callback) {
11
+ if (this.state === 'initial') {
12
+ this.state = 'listening';
13
+ this.callback = callback;
14
+ while (this.events.length !== 0) {
15
+ const event = this.events.pop();
16
+ if (event.message) {
17
+ this.readMessage(event.message);
18
+ }
19
+ else if (event.error) {
20
+ this.fireError(event.error);
21
+ }
22
+ }
23
+ }
24
+ return Disposable.create(() => { });
25
+ }
26
+ readMessage(message) {
27
+ if (this.state === 'initial') {
28
+ this.events.splice(0, 0, { message });
29
+ }
30
+ else if (this.state === 'listening') {
31
+ const data = JSON.parse(message);
32
+ this.callback(data);
33
+ }
34
+ }
35
+ fireError(error) {
36
+ if (this.state === 'initial') {
37
+ this.events.splice(0, 0, { error });
38
+ }
39
+ else if (this.state === 'listening') {
40
+ super.fireError(error);
41
+ }
42
+ }
43
+ }
44
+ //# sourceMappingURL=reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reader.js","sourceRoot":"","sources":["../../../src/common/factory/reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,qBAAqB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjF,MAAM,OAAO,oBAAqB,SAAQ,qBAAqB;IAM3D,YAA+B,OAAgB;QAC3C,KAAK,EAAE,CAAC;QADmB,YAAO,GAAP,OAAO,CAAS;QAJrC,UAAK,GAAuC,SAAS,CAAC;QAE7C,WAAM,GAAqC,EAAE,CAAC;QAI7D,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAC7B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAC5B,CAAC;IACN,CAAC;IAED,MAAM,CAAC,QAAsB;QACzB,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;YACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAG,CAAC;gBACjC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAChB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACpC,CAAC;qBAAM,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBACrB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAChC,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IAES,WAAW,CAAC,OAAY;QAC9B,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjC,IAAI,CAAC,QAAS,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IACL,CAAC;IAEkB,SAAS,CAAC,KAAU;QACnC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACxC,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YACpC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACL,CAAC;CAEJ"}
@@ -0,0 +1,9 @@
1
+ import { Message, AbstractMessageWriter } from 'vscode-jsonrpc';
2
+ import { Channel } from '../channal/index.js';
3
+ export declare class ChannelMessageWriter extends AbstractMessageWriter {
4
+ protected readonly channel: Channel;
5
+ protected errorCount: number;
6
+ constructor(channel: Channel);
7
+ write(msg: Message): Promise<void>;
8
+ end(): void;
9
+ }
@@ -0,0 +1,21 @@
1
+ import { AbstractMessageWriter } from 'vscode-jsonrpc';
2
+ export class ChannelMessageWriter extends AbstractMessageWriter {
3
+ constructor(channel) {
4
+ super();
5
+ this.channel = channel;
6
+ this.errorCount = 0;
7
+ }
8
+ async write(msg) {
9
+ try {
10
+ const content = JSON.stringify(msg);
11
+ this.channel.send(content);
12
+ }
13
+ catch (e) {
14
+ this.errorCount++;
15
+ this.fireError(e, msg, this.errorCount);
16
+ }
17
+ }
18
+ end() {
19
+ }
20
+ }
21
+ //# sourceMappingURL=writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writer.js","sourceRoot":"","sources":["../../../src/common/factory/writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAGhE,MAAM,OAAO,oBAAqB,SAAQ,qBAAqB;IAI3D,YAA+B,OAAgB;QAC3C,KAAK,EAAE,CAAC;QADmB,YAAO,GAAP,OAAO,CAAS;QAFrC,eAAU,GAAG,CAAC,CAAC;IAIzB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAY;QACpB,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC;IACL,CAAC;IAED,GAAG;IAEH,CAAC;CAEJ"}
@@ -0,0 +1,6 @@
1
+ import { MessageConnection } from 'vscode-jsonrpc';
2
+ import { ConnectionHandler } from './handler-protocol.js';
3
+ export declare class NoOpConnectionHandler implements ConnectionHandler {
4
+ readonly path: string;
5
+ onConnection(connection: MessageConnection): void;
6
+ }
@@ -0,0 +1,4 @@
1
+ export class NoOpConnectionHandler {
2
+ onConnection(connection) { }
3
+ }
4
+ //# sourceMappingURL=connection-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-handler.js","sourceRoot":"","sources":["../../../src/common/handler/connection-handler.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,qBAAqB;IAE9B,YAAY,CAAC,UAA6B,IAAS,CAAC;CACvD"}
@@ -0,0 +1,6 @@
1
+ import { MessageConnection } from 'vscode-jsonrpc';
2
+ export declare const ConnectionHandler: unique symbol;
3
+ export interface ConnectionHandler {
4
+ readonly path: string;
5
+ onConnection(connection: MessageConnection): void;
6
+ }
@@ -0,0 +1,2 @@
1
+ export const ConnectionHandler = Symbol('ConnectionHandler');
2
+ //# sourceMappingURL=handler-protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler-protocol.js","sourceRoot":"","sources":["../../../src/common/handler/handler-protocol.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './connection-handler.js';
2
+ export * from './handler-protocol.js';
@@ -0,0 +1,3 @@
1
+ export * from './connection-handler.js';
2
+ export * from './handler-protocol.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/handler/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,11 @@
1
+ export * from './annotation/index.js';
2
+ export * from './channal/index.js';
3
+ export * from './endpoint/index.js';
4
+ export * from './error/index.js';
5
+ export * from './factory/index.js';
6
+ export * from './handler/index.js';
7
+ export * from './proxy/index.js';
8
+ export * from './utils/index.js';
9
+ export * from './constants.js';
10
+ export * from './converter/index.js';
11
+ export * from './processor/index.js';
@@ -0,0 +1,12 @@
1
+ export * from './annotation/index.js';
2
+ export * from './channal/index.js';
3
+ export * from './endpoint/index.js';
4
+ export * from './error/index.js';
5
+ export * from './factory/index.js';
6
+ export * from './handler/index.js';
7
+ export * from './proxy/index.js';
8
+ export * from './utils/index.js';
9
+ export * from './constants.js';
10
+ export * from './converter/index.js';
11
+ export * from './processor/index.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ import './index.js';
2
+ declare const _default: import("inversify").interfaces.ContainerModule;
3
+ export default _default;
@@ -0,0 +1,20 @@
1
+ import { autoBind } from '@celljs/core';
2
+ import { ProxyProvider } from './proxy/index.js';
3
+ import { ID_KEY, RPC } from './annotation/index.js';
4
+ import { RpcUtil, ConverterUtil } from './utils/index.js';
5
+ import './index.js';
6
+ export default autoBind(bind => {
7
+ bind(RPC).toDynamicValue(ctx => {
8
+ var _a;
9
+ const id = (_a = ctx.currentRequest.target.getCustomTags()) === null || _a === void 0 ? void 0 : _a.find(m => m.key === ID_KEY).value;
10
+ const path = RpcUtil.toPath(id);
11
+ const proxyProvider = ctx.container.get(ProxyProvider);
12
+ const errorConverters = ConverterUtil.getGlobalErrorConverters(ctx.container);
13
+ const errorConverter = ConverterUtil.getErrorConverters(id, ctx.container);
14
+ if (errorConverter) {
15
+ errorConverters.push(errorConverter);
16
+ }
17
+ return proxyProvider.provide(path, errorConverters);
18
+ });
19
+ });
20
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/common/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,SAAS,CAAC;AAEjB,eAAe,QAAQ,CAAC,IAAI,CAAC,EAAE;IAE3B,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;;QAC3B,MAAM,EAAE,GAAG,MAAA,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,EAAG,KAAK,CAAC;QACzF,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAgB,aAAa,CAAC,CAAC;QACtE,MAAM,eAAe,GAAG,aAAa,CAAC,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9E,MAAM,cAAc,GAAG,aAAa,CAAC,kBAAkB,CAAC,EAAE,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3E,IAAI,cAAc,EAAE,CAAC;YACjB,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AAEP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { ClientConfigProcessor } from './processor-protocol.js';
2
+ import { AxiosRequestConfig } from 'axios';
3
+ export declare class NoOpClientConfigProcessor implements ClientConfigProcessor {
4
+ process(config: AxiosRequestConfig): Promise<void>;
5
+ }
@@ -0,0 +1,17 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ 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;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Component } from '@celljs/core';
8
+ import { ClientConfigProcessor } from './processor-protocol.js';
9
+ let NoOpClientConfigProcessor = class NoOpClientConfigProcessor {
10
+ async process(config) {
11
+ }
12
+ };
13
+ NoOpClientConfigProcessor = __decorate([
14
+ Component(ClientConfigProcessor)
15
+ ], NoOpClientConfigProcessor);
16
+ export { NoOpClientConfigProcessor };
17
+ //# sourceMappingURL=client-config-processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-config-processor.js","sourceRoot":"","sources":["../../../src/common/processor/client-config-processor.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAItD,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IAElC,KAAK,CAAC,OAAO,CAAC,MAA0B;IAExC,CAAC;CAEJ,CAAA;AANY,yBAAyB;IADrC,SAAS,CAAC,qBAAqB,CAAC;GACpB,yBAAyB,CAMrC"}
@@ -0,0 +1,2 @@
1
+ export * from './processor-protocol.js';
2
+ export * from './client-config-processor.js';
@@ -0,0 +1,3 @@
1
+ export * from './processor-protocol.js';
2
+ export * from './client-config-processor.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/processor/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { AxiosRequestConfig } from 'axios';
2
+ export declare const ClientConfigProcessor: unique symbol;
3
+ export interface ClientConfigProcessor {
4
+ process(config: AxiosRequestConfig): Promise<void>;
5
+ }
@@ -0,0 +1,2 @@
1
+ export const ClientConfigProcessor = Symbol('ClientConfigProcessor');
2
+ //# sourceMappingURL=processor-protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processor-protocol.js","sourceRoot":"","sources":["../../../src/common/processor/processor-protocol.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { RestOperations } from '@celljs/http';
2
+ import { ProxyCreator } from './proxy-protocol.js';
3
+ import { EndpointResolver } from '../endpoint/index.js';
4
+ import { ConnnectionFactory, JsonRpcProxy } from '../factory/index.js';
5
+ import { Channel } from '../channal/index.js';
6
+ import { ErrorConverter } from '../converter/index.js';
7
+ import { AxiosRequestConfig } from 'axios';
8
+ import { ClientConfigProcessor } from '../processor/index.js';
9
+ export declare class DelegatingHttpProxyCreator implements ProxyCreator {
10
+ protected connnectionFactory: ConnnectionFactory<Channel>;
11
+ protected endpointResolver: EndpointResolver;
12
+ protected restOperations: RestOperations;
13
+ protected clientConfigProcessor: ClientConfigProcessor;
14
+ protected readonly clientConfig: AxiosRequestConfig;
15
+ protected readonly maxCount: number;
16
+ protected readonly maxLength: number;
17
+ protected readonly timerDelay: number;
18
+ protected readonly enabled: boolean;
19
+ protected delegate: ProxyCreator;
20
+ protected init(): void;
21
+ create<T extends object>(path: string, errorConverters?: ErrorConverter[], target?: object | undefined): JsonRpcProxy<T>;
22
+ support(path: string): number;
23
+ }
@@ -0,0 +1,86 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ 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;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Component, Autowired, Value, PostConstruct } from '@celljs/core';
11
+ import { RestOperations } from '@celljs/http';
12
+ import { ProxyCreator } from './proxy-protocol.js';
13
+ import { EndpointResolver } from '../endpoint/index.js';
14
+ import { ConnnectionFactory } from '../factory/index.js';
15
+ import { ClientConfigProcessor } from '../processor/index.js';
16
+ import { HttpProxyCreator } from './http-proxy-creator.js';
17
+ let DelegatingHttpProxyCreator = class DelegatingHttpProxyCreator {
18
+ init() {
19
+ this.delegate = new HttpProxyCreator({
20
+ connnectionFactory: this.connnectionFactory,
21
+ endpointResolver: this.endpointResolver,
22
+ restOperations: this.restOperations,
23
+ clientConfigProcessor: this.clientConfigProcessor,
24
+ clientConfig: this.clientConfig,
25
+ merge: {
26
+ maxCount: this.maxCount,
27
+ maxLength: this.maxLength,
28
+ timerDelay: this.timerDelay,
29
+ enabled: this.enabled
30
+ }
31
+ });
32
+ }
33
+ create(path, errorConverters, target) {
34
+ return this.delegate.create(path, errorConverters, target);
35
+ }
36
+ support(path) {
37
+ return this.delegate.support(path);
38
+ }
39
+ };
40
+ __decorate([
41
+ Autowired(ConnnectionFactory),
42
+ __metadata("design:type", Object)
43
+ ], DelegatingHttpProxyCreator.prototype, "connnectionFactory", void 0);
44
+ __decorate([
45
+ Autowired(EndpointResolver),
46
+ __metadata("design:type", Object)
47
+ ], DelegatingHttpProxyCreator.prototype, "endpointResolver", void 0);
48
+ __decorate([
49
+ Autowired(RestOperations),
50
+ __metadata("design:type", Function)
51
+ ], DelegatingHttpProxyCreator.prototype, "restOperations", void 0);
52
+ __decorate([
53
+ Autowired(ClientConfigProcessor),
54
+ __metadata("design:type", Object)
55
+ ], DelegatingHttpProxyCreator.prototype, "clientConfigProcessor", void 0);
56
+ __decorate([
57
+ Value('cell.rpc.client.config'),
58
+ __metadata("design:type", Object)
59
+ ], DelegatingHttpProxyCreator.prototype, "clientConfig", void 0);
60
+ __decorate([
61
+ Value('cell.rpc.merge.maxCount'),
62
+ __metadata("design:type", Number)
63
+ ], DelegatingHttpProxyCreator.prototype, "maxCount", void 0);
64
+ __decorate([
65
+ Value('cell.rpc.merge.maxLength'),
66
+ __metadata("design:type", Number)
67
+ ], DelegatingHttpProxyCreator.prototype, "maxLength", void 0);
68
+ __decorate([
69
+ Value('cell.rpc.merge.timerDelay'),
70
+ __metadata("design:type", Number)
71
+ ], DelegatingHttpProxyCreator.prototype, "timerDelay", void 0);
72
+ __decorate([
73
+ Value('cell.rpc.merge.enabled'),
74
+ __metadata("design:type", Boolean)
75
+ ], DelegatingHttpProxyCreator.prototype, "enabled", void 0);
76
+ __decorate([
77
+ PostConstruct(),
78
+ __metadata("design:type", Function),
79
+ __metadata("design:paramtypes", []),
80
+ __metadata("design:returntype", void 0)
81
+ ], DelegatingHttpProxyCreator.prototype, "init", null);
82
+ DelegatingHttpProxyCreator = __decorate([
83
+ Component(ProxyCreator)
84
+ ], DelegatingHttpProxyCreator);
85
+ export { DelegatingHttpProxyCreator };
86
+ //# sourceMappingURL=delegating-http-proxy-creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegating-http-proxy-creator.js","sourceRoot":"","sources":["../../../src/common/proxy/delegating-http-proxy-creator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAgB,MAAM,YAAY,CAAC;AAI9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGjD,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAgCzB,IAAI;QACV,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC;YACjC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,KAAK,EAAE;gBACH,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;aACxB;SACJ,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAmB,IAAY,EAAE,eAAkC,EAAE,MAA2B;QAClG,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,CAAC,IAAY;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;CACJ,CAAA;AApDa;IADT,SAAS,CAAC,kBAAkB,CAAC;;sEAC4B;AAGhD;IADT,SAAS,CAAC,gBAAgB,CAAC;;oEACiB;AAGnC;IADT,SAAS,CAAC,cAAc,CAAC;;kEACe;AAG/B;IADT,SAAS,CAAC,qBAAqB,CAAC;;yEACsB;AAGpC;IADlB,KAAK,CAAC,wBAAwB,CAAC;;gEACoB;AAGjC;IADlB,KAAK,CAAC,yBAAyB,CAAC;;4DACG;AAGjB;IADlB,KAAK,CAAC,0BAA0B,CAAC;;6DACG;AAGlB;IADlB,KAAK,CAAC,2BAA2B,CAAC;;8DACG;AAGnB;IADlB,KAAK,CAAC,wBAAwB,CAAC;;2DACI;AAK1B;IADT,aAAa,EAAE;;;;sDAef;AA9CQ,0BAA0B;IADtC,SAAS,CAAC,YAAY,CAAC;GACX,0BAA0B,CAuDtC"}
@@ -0,0 +1,42 @@
1
+ import { RestOperations } from '@celljs/http';
2
+ import { Logger } from 'vscode-jsonrpc';
3
+ import { ProxyCreator, ConnectionOptions, RequestTaskMeta } from './proxy-protocol.js';
4
+ import { EndpointResolver } from '../endpoint/index.js';
5
+ import { ConnnectionFactory, JsonRpcProxy } from '../factory/index.js';
6
+ import { Channel } from '../channal/index.js';
7
+ import { ErrorConverter } from '../converter/index.js';
8
+ import { ConnectionHandler } from '../handler/index.js';
9
+ import { AxiosRequestConfig } from 'axios';
10
+ import { ClientConfigProcessor } from '../processor/index.js';
11
+ export interface MergeOptions {
12
+ maxCount: number;
13
+ maxLength: number;
14
+ timerDelay: number;
15
+ enabled: boolean;
16
+ }
17
+ export interface HttpProxyCreatorOptions<T> {
18
+ connnectionFactory: ConnnectionFactory<Channel>;
19
+ endpointResolver: EndpointResolver;
20
+ restOperations: RestOperations;
21
+ clientConfigProcessor?: ClientConfigProcessor;
22
+ clientConfig: AxiosRequestConfig;
23
+ merge: T;
24
+ }
25
+ export declare class HttpProxyCreator implements ProxyCreator {
26
+ protected channelIdSeq: number;
27
+ protected requestMap: Map<string, RequestTaskMeta>;
28
+ protected channelMap: Map<number, Channel>;
29
+ protected options: HttpProxyCreatorOptions<MergeOptions>;
30
+ constructor(options: Partial<Omit<HttpProxyCreatorOptions<Partial<MergeOptions>>, 'endpointResolver'>> & Pick<HttpProxyCreatorOptions<Partial<MergeOptions>>, 'endpointResolver'>);
31
+ create<T extends object>(path: string, errorConverters?: ErrorConverter[], target?: object | undefined): JsonRpcProxy<T>;
32
+ support(path: string): number;
33
+ listen(handler: ConnectionHandler, options?: ConnectionOptions): void;
34
+ openChannel(path: string, handler: (channel: Channel) => void, options?: ConnectionOptions): void;
35
+ protected doOpenChannel(path: string, handler: (channel: Channel) => void, options?: ConnectionOptions): void;
36
+ protected createChannel(id: number, path: string): Channel;
37
+ protected executeTask(endpoint: string): Promise<void> | undefined;
38
+ protected canMerge(endpoint: string, content: string): boolean;
39
+ protected pushContent(endpoint: string, content: string): RequestTaskMeta;
40
+ protected createTask(endpoint: string): () => Promise<void>;
41
+ protected createLogger(): Logger;
42
+ }