@adminide-stack/extension-api 0.0.2-alpha.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 (318) hide show
  1. package/LICENSE +39 -0
  2. package/README.md +9 -0
  3. package/lib/connections/jsonrpc2/connection.d.ts +55 -0
  4. package/lib/connections/jsonrpc2/connection.js +575 -0
  5. package/lib/connections/jsonrpc2/connection.js.map +1 -0
  6. package/lib/connections/jsonrpc2/connection.test.d.ts +1 -0
  7. package/lib/connections/jsonrpc2/connection.test.js +443 -0
  8. package/lib/connections/jsonrpc2/connection.test.js.map +1 -0
  9. package/lib/connections/jsonrpc2/events.d.ts +24 -0
  10. package/lib/connections/jsonrpc2/events.js +117 -0
  11. package/lib/connections/jsonrpc2/events.js.map +1 -0
  12. package/lib/connections/jsonrpc2/index.d.ts +5 -0
  13. package/lib/connections/jsonrpc2/index.js +24 -0
  14. package/lib/connections/jsonrpc2/index.js.map +1 -0
  15. package/lib/connections/jsonrpc2/linkedMap.d.ts +29 -0
  16. package/lib/connections/jsonrpc2/linkedMap.js +254 -0
  17. package/lib/connections/jsonrpc2/linkedMap.js.map +1 -0
  18. package/lib/connections/jsonrpc2/linkedMap.test.d.ts +1 -0
  19. package/lib/connections/jsonrpc2/linkedMap.test.js +62 -0
  20. package/lib/connections/jsonrpc2/linkedMap.test.js.map +1 -0
  21. package/lib/connections/jsonrpc2/messages.d.ts +117 -0
  22. package/lib/connections/jsonrpc2/messages.js +72 -0
  23. package/lib/connections/jsonrpc2/messages.js.map +1 -0
  24. package/lib/connections/jsonrpc2/test-helper.d.ts +8 -0
  25. package/lib/connections/jsonrpc2/test-helper.js +36 -0
  26. package/lib/connections/jsonrpc2/test-helper.js.map +1 -0
  27. package/lib/connections/jsonrpc2/trace.d.ts +30 -0
  28. package/lib/connections/jsonrpc2/trace.js +96 -0
  29. package/lib/connections/jsonrpc2/trace.js.map +1 -0
  30. package/lib/connections/jsonrpc2/transport.d.ts +36 -0
  31. package/lib/connections/jsonrpc2/transport.js +66 -0
  32. package/lib/connections/jsonrpc2/transport.js.map +1 -0
  33. package/lib/connections/jsonrpc2/transports/browser-websocket.d.ts +0 -0
  34. package/lib/connections/jsonrpc2/transports/browser-websocket.js +189 -0
  35. package/lib/connections/jsonrpc2/transports/browser-websocket.js.map +1 -0
  36. package/lib/connections/jsonrpc2/transports/merged.d.ts +0 -0
  37. package/lib/connections/jsonrpc2/transports/merged.js +239 -0
  38. package/lib/connections/jsonrpc2/transports/merged.js.map +1 -0
  39. package/lib/connections/jsonrpc2/transports/webSocket.d.ts +0 -0
  40. package/lib/connections/jsonrpc2/transports/webSocket.js +138 -0
  41. package/lib/connections/jsonrpc2/transports/webSocket.js.map +1 -0
  42. package/lib/connections/jsonrpc2/transports/webWorker.d.ts +22 -0
  43. package/lib/connections/jsonrpc2/transports/webWorker.js +111 -0
  44. package/lib/connections/jsonrpc2/transports/webWorker.js.map +1 -0
  45. package/lib/connections/proxy/index.d.ts +1 -0
  46. package/lib/connections/proxy/index.js +18 -0
  47. package/lib/connections/proxy/index.js.map +1 -0
  48. package/lib/connections/proxy/proxy.d.ts +49 -0
  49. package/lib/connections/proxy/proxy.js +108 -0
  50. package/lib/connections/proxy/proxy.js.map +1 -0
  51. package/lib/connections/proxy/proxy.test.d.ts +1 -0
  52. package/lib/connections/proxy/proxy.test.js +55 -0
  53. package/lib/connections/proxy/proxy.test.js.map +1 -0
  54. package/lib/connections/remote-rpc/browser-remote-rpc.d.ts +12 -0
  55. package/lib/connections/remote-rpc/browser-remote-rpc.js +62 -0
  56. package/lib/connections/remote-rpc/browser-remote-rpc.js.map +1 -0
  57. package/lib/connections/remote-rpc/browser-server-rpc.test.d.ts +0 -0
  58. package/lib/connections/remote-rpc/browser-server-rpc.test.js +317 -0
  59. package/lib/connections/remote-rpc/browser-server-rpc.test.js.map +1 -0
  60. package/lib/connections/remote-rpc/index.d.ts +1 -0
  61. package/lib/connections/remote-rpc/index.js +18 -0
  62. package/lib/connections/remote-rpc/index.js.map +1 -0
  63. package/lib/connections/remote-rpc/old-browser-remote-rpc.d.ts +12 -0
  64. package/lib/connections/remote-rpc/old-browser-remote-rpc.js +41 -0
  65. package/lib/connections/remote-rpc/old-browser-remote-rpc.js.map +1 -0
  66. package/lib/connections/remote-rpc/rxjs-websockets.d.ts +18 -0
  67. package/lib/connections/remote-rpc/rxjs-websockets.js +80 -0
  68. package/lib/connections/remote-rpc/rxjs-websockets.js.map +1 -0
  69. package/lib/constants/action-types.d.ts +30 -0
  70. package/lib/constants/action-types.js +38 -0
  71. package/lib/constants/action-types.js.map +1 -0
  72. package/lib/constants/index.d.ts +2 -0
  73. package/lib/constants/index.js +19 -0
  74. package/lib/constants/index.js.map +1 -0
  75. package/lib/constants/types.d.ts +8 -0
  76. package/lib/constants/types.js +12 -0
  77. package/lib/constants/types.js.map +1 -0
  78. package/lib/core/expr/evaluator.d.ts +27 -0
  79. package/lib/core/expr/evaluator.js +144 -0
  80. package/lib/core/expr/evaluator.js.map +1 -0
  81. package/lib/core/expr/evaluator.test.d.ts +1 -0
  82. package/lib/core/expr/evaluator.test.js +52 -0
  83. package/lib/core/expr/evaluator.test.js.map +1 -0
  84. package/lib/core/expr/index.d.ts +3 -0
  85. package/lib/core/expr/index.js +20 -0
  86. package/lib/core/expr/index.js.map +1 -0
  87. package/lib/core/expr/lexer.d.ts +114 -0
  88. package/lib/core/expr/lexer.js +418 -0
  89. package/lib/core/expr/lexer.js.map +1 -0
  90. package/lib/core/expr/parser.d.ts +52 -0
  91. package/lib/core/expr/parser.js +242 -0
  92. package/lib/core/expr/parser.js.map +1 -0
  93. package/lib/core/index.d.ts +2 -0
  94. package/lib/core/index.js +19 -0
  95. package/lib/core/index.js.map +1 -0
  96. package/lib/core/types/ext-host-types-bk.d.ts +0 -0
  97. package/lib/core/types/ext-host-types-bk.js +1275 -0
  98. package/lib/core/types/ext-host-types-bk.js.map +1 -0
  99. package/lib/core/types/ext-host-types.d.ts +32 -0
  100. package/lib/core/types/ext-host-types.js +71 -0
  101. package/lib/core/types/ext-host-types.js.map +1 -0
  102. package/lib/core/types/index.d.ts +1 -0
  103. package/lib/core/types/index.js +18 -0
  104. package/lib/core/types/index.js.map +1 -0
  105. package/lib/errors/errors.d.ts +1 -0
  106. package/lib/errors/errors.js +13 -0
  107. package/lib/errors/errors.js.map +1 -0
  108. package/lib/errors/index.d.ts +1 -0
  109. package/lib/errors/index.js +18 -0
  110. package/lib/errors/index.js.map +1 -0
  111. package/lib/index.d.ts +7 -0
  112. package/lib/index.js +24 -0
  113. package/lib/index.js.map +1 -0
  114. package/lib/interfaces/command.d.ts +28 -0
  115. package/lib/interfaces/command.js +3 -0
  116. package/lib/interfaces/command.js.map +1 -0
  117. package/lib/interfaces/configuration.d.ts +36 -0
  118. package/lib/interfaces/configuration.js +3 -0
  119. package/lib/interfaces/configuration.js.map +1 -0
  120. package/lib/interfaces/connection.d.ts +12 -0
  121. package/lib/interfaces/connection.js +3 -0
  122. package/lib/interfaces/connection.js.map +1 -0
  123. package/lib/interfaces/context.d.ts +12 -0
  124. package/lib/interfaces/context.js +3 -0
  125. package/lib/interfaces/context.js.map +1 -0
  126. package/lib/interfaces/contributions/contribution-service.d.ts +20 -0
  127. package/lib/interfaces/contributions/contribution-service.js +3 -0
  128. package/lib/interfaces/contributions/contribution-service.js.map +1 -0
  129. package/lib/interfaces/contributions/contribution.d.ts +383 -0
  130. package/lib/interfaces/contributions/contribution.js +49 -0
  131. package/lib/interfaces/contributions/contribution.js.map +1 -0
  132. package/lib/interfaces/contributions/index.d.ts +2 -0
  133. package/lib/interfaces/contributions/index.js +19 -0
  134. package/lib/interfaces/contributions/index.js.map +1 -0
  135. package/lib/interfaces/controller.d.ts +30 -0
  136. package/lib/interfaces/controller.js +3 -0
  137. package/lib/interfaces/controller.js.map +1 -0
  138. package/lib/interfaces/errors.d.ts +5 -0
  139. package/lib/interfaces/errors.js +3 -0
  140. package/lib/interfaces/errors.js.map +1 -0
  141. package/lib/interfaces/ext-services/contributon-registry.d.ts +45 -0
  142. package/lib/interfaces/ext-services/contributon-registry.js +3 -0
  143. package/lib/interfaces/ext-services/contributon-registry.js.map +1 -0
  144. package/lib/interfaces/ext-services/ext-services.d.ts +23 -0
  145. package/lib/interfaces/ext-services/ext-services.js +3 -0
  146. package/lib/interfaces/ext-services/ext-services.js.map +1 -0
  147. package/lib/interfaces/ext-services/extension-service.d.ts +8 -0
  148. package/lib/interfaces/ext-services/extension-service.js +3 -0
  149. package/lib/interfaces/ext-services/extension-service.js.map +1 -0
  150. package/lib/interfaces/ext-services/index.d.ts +8 -0
  151. package/lib/interfaces/ext-services/index.js +25 -0
  152. package/lib/interfaces/ext-services/index.js.map +1 -0
  153. package/lib/interfaces/ext-services/model-service.d.ts +89 -0
  154. package/lib/interfaces/ext-services/model-service.js +3 -0
  155. package/lib/interfaces/ext-services/model-service.js.map +1 -0
  156. package/lib/interfaces/ext-services/panel-view-registry.d.ts +21 -0
  157. package/lib/interfaces/ext-services/panel-view-registry.js +3 -0
  158. package/lib/interfaces/ext-services/panel-view-registry.js.map +1 -0
  159. package/lib/interfaces/ext-services/settings-service.d.ts +18 -0
  160. package/lib/interfaces/ext-services/settings-service.js +3 -0
  161. package/lib/interfaces/ext-services/settings-service.js.map +1 -0
  162. package/lib/interfaces/ext-services/view-service.d.ts +65 -0
  163. package/lib/interfaces/ext-services/view-service.js +4 -0
  164. package/lib/interfaces/ext-services/view-service.js.map +1 -0
  165. package/lib/interfaces/ext-services/viewer-service.d.ts +125 -0
  166. package/lib/interfaces/ext-services/viewer-service.js +5 -0
  167. package/lib/interfaces/ext-services/viewer-service.js.map +1 -0
  168. package/lib/interfaces/extension-manifest.d.ts +8 -0
  169. package/lib/interfaces/extension-manifest.js +3 -0
  170. package/lib/interfaces/extension-manifest.js.map +1 -0
  171. package/lib/interfaces/extension.d.ts +72 -0
  172. package/lib/interfaces/extension.js +3 -0
  173. package/lib/interfaces/extension.js.map +1 -0
  174. package/lib/interfaces/generated-models.d.ts +3716 -0
  175. package/lib/interfaces/generated-models.js +648 -0
  176. package/lib/interfaces/generated-models.js.map +1 -0
  177. package/lib/interfaces/graphql.d.ts +17 -0
  178. package/lib/interfaces/graphql.js +5 -0
  179. package/lib/interfaces/graphql.js.map +1 -0
  180. package/lib/interfaces/index.d.ts +21 -0
  181. package/lib/interfaces/index.js +38 -0
  182. package/lib/interfaces/index.js.map +1 -0
  183. package/lib/interfaces/languages-types.d.ts +65 -0
  184. package/lib/interfaces/languages-types.js +3 -0
  185. package/lib/interfaces/languages-types.js.map +1 -0
  186. package/lib/interfaces/model.d.ts +51 -0
  187. package/lib/interfaces/model.js +9 -0
  188. package/lib/interfaces/model.js.map +1 -0
  189. package/lib/interfaces/plain-types.d.ts +4 -0
  190. package/lib/interfaces/plain-types.js +6 -0
  191. package/lib/interfaces/plain-types.js.map +1 -0
  192. package/lib/interfaces/plainTypes.d.ts +68 -0
  193. package/lib/interfaces/plainTypes.js +3 -0
  194. package/lib/interfaces/plainTypes.js.map +1 -0
  195. package/lib/interfaces/platform-context.d.ts +82 -0
  196. package/lib/interfaces/platform-context.js +3 -0
  197. package/lib/interfaces/platform-context.js.map +1 -0
  198. package/lib/interfaces/react-props/action-item.d.ts +20 -0
  199. package/lib/interfaces/react-props/action-item.js +3 -0
  200. package/lib/interfaces/react-props/action-item.js.map +1 -0
  201. package/lib/interfaces/react-props/extension-controller.d.ts +11 -0
  202. package/lib/interfaces/react-props/extension-controller.js +3 -0
  203. package/lib/interfaces/react-props/extension-controller.js.map +1 -0
  204. package/lib/interfaces/react-props/index.d.ts +3 -0
  205. package/lib/interfaces/react-props/index.js +20 -0
  206. package/lib/interfaces/react-props/index.js.map +1 -0
  207. package/lib/interfaces/react-props/platform-context.d.ts +7 -0
  208. package/lib/interfaces/react-props/platform-context.js +3 -0
  209. package/lib/interfaces/react-props/platform-context.js.map +1 -0
  210. package/lib/interfaces/registry-extension.d.ts +21 -0
  211. package/lib/interfaces/registry-extension.js +3 -0
  212. package/lib/interfaces/registry-extension.js.map +1 -0
  213. package/lib/interfaces/settings.d.ts +51 -0
  214. package/lib/interfaces/settings.js +3 -0
  215. package/lib/interfaces/settings.js.map +1 -0
  216. package/lib/interfaces/text-document.d.ts +57 -0
  217. package/lib/interfaces/text-document.js +119 -0
  218. package/lib/interfaces/text-document.js.map +1 -0
  219. package/lib/interfaces/webview/index.d.ts +3 -0
  220. package/lib/interfaces/webview/index.js +20 -0
  221. package/lib/interfaces/webview/index.js.map +1 -0
  222. package/lib/interfaces/webview/webview-manager-service.d.ts +22 -0
  223. package/lib/interfaces/webview/webview-manager-service.js +3 -0
  224. package/lib/interfaces/webview/webview-manager-service.js.map +1 -0
  225. package/lib/interfaces/webview/webview-port-mapping.d.ts +4 -0
  226. package/lib/interfaces/webview/webview-port-mapping.js +3 -0
  227. package/lib/interfaces/webview/webview-port-mapping.js.map +1 -0
  228. package/lib/interfaces/webview/webview.d.ts +99 -0
  229. package/lib/interfaces/webview/webview.js +9 -0
  230. package/lib/interfaces/webview/webview.js.map +1 -0
  231. package/lib/main.d.ts +0 -0
  232. package/lib/main.js +3 -0
  233. package/lib/main.js.map +1 -0
  234. package/lib/protocol/client.protocol.d.ts +99 -0
  235. package/lib/protocol/client.protocol.js +8 -0
  236. package/lib/protocol/client.protocol.js.map +1 -0
  237. package/lib/protocol/common.protocol.d.ts +289 -0
  238. package/lib/protocol/common.protocol.js +68 -0
  239. package/lib/protocol/common.protocol.js.map +1 -0
  240. package/lib/protocol/editor-missing-types.d.ts +87 -0
  241. package/lib/protocol/editor-missing-types.js +10 -0
  242. package/lib/protocol/editor-missing-types.js.map +1 -0
  243. package/lib/protocol/index.d.ts +6 -0
  244. package/lib/protocol/index.js +24 -0
  245. package/lib/protocol/index.js.map +1 -0
  246. package/lib/protocol/proxy-identifier.d.ts +51 -0
  247. package/lib/protocol/proxy-identifier.js +59 -0
  248. package/lib/protocol/proxy-identifier.js.map +1 -0
  249. package/lib/protocol/rpc-logger.d.ts +8 -0
  250. package/lib/protocol/rpc-logger.js +60 -0
  251. package/lib/protocol/rpc-logger.js.map +1 -0
  252. package/lib/protocol/rpc-protocol.d.ts +148 -0
  253. package/lib/protocol/rpc-protocol.js +750 -0
  254. package/lib/protocol/rpc-protocol.js.map +1 -0
  255. package/lib/protocol/rpc-protocol.test.d.ts +1 -0
  256. package/lib/protocol/rpc-protocol.test.js +171 -0
  257. package/lib/protocol/rpc-protocol.test.js.map +1 -0
  258. package/lib/protocol/server.protocol-bk.d.ts +0 -0
  259. package/lib/protocol/server.protocol-bk.js +719 -0
  260. package/lib/protocol/server.protocol-bk.js.map +1 -0
  261. package/lib/protocol/server.protocol.d.ts +91 -0
  262. package/lib/protocol/server.protocol.js +31 -0
  263. package/lib/protocol/server.protocol.js.map +1 -0
  264. package/lib/protocol/shared/editor.d.ts +4 -0
  265. package/lib/protocol/shared/editor.js +28 -0
  266. package/lib/protocol/shared/editor.js.map +1 -0
  267. package/lib/protocol/shared/tasks.d.ts +104 -0
  268. package/lib/protocol/shared/tasks.js +4 -0
  269. package/lib/protocol/shared/tasks.js.map +1 -0
  270. package/lib/protocol/temporary-types.d.ts +198 -0
  271. package/lib/protocol/temporary-types.js +30 -0
  272. package/lib/protocol/temporary-types.js.map +1 -0
  273. package/lib/protocol/utils/index.d.ts +1 -0
  274. package/lib/protocol/utils/index.js +18 -0
  275. package/lib/protocol/utils/index.js.map +1 -0
  276. package/lib/protocol/utils/lazy-promise.d.ts +18 -0
  277. package/lib/protocol/utils/lazy-promise.js +69 -0
  278. package/lib/protocol/utils/lazy-promise.js.map +1 -0
  279. package/lib/utils/errors.d.ts +6 -0
  280. package/lib/utils/errors.js +19 -0
  281. package/lib/utils/errors.js.map +1 -0
  282. package/lib/utils/extensions.d.ts +9 -0
  283. package/lib/utils/extensions.js +25 -0
  284. package/lib/utils/extensions.js.map +1 -0
  285. package/lib/utils/helper.test.d.ts +9 -0
  286. package/lib/utils/helper.test.js +15 -0
  287. package/lib/utils/helper.test.js.map +1 -0
  288. package/lib/utils/index.d.ts +7 -0
  289. package/lib/utils/index.js +25 -0
  290. package/lib/utils/index.js.map +1 -0
  291. package/lib/utils/paths-util.d.ts +27 -0
  292. package/lib/utils/paths-util.js +127 -0
  293. package/lib/utils/paths-util.js.map +1 -0
  294. package/lib/utils/rxjs/combineLatestOrDefault.d.ts +28 -0
  295. package/lib/utils/rxjs/combineLatestOrDefault.js +111 -0
  296. package/lib/utils/rxjs/combineLatestOrDefault.js.map +1 -0
  297. package/lib/utils/rxjs/combineLatestOrDefault.test.d.ts +1 -0
  298. package/lib/utils/rxjs/combineLatestOrDefault.test.js +52 -0
  299. package/lib/utils/rxjs/combineLatestOrDefault.test.js.map +1 -0
  300. package/lib/utils/rxjs/index.d.ts +1 -0
  301. package/lib/utils/rxjs/index.js +18 -0
  302. package/lib/utils/rxjs/index.js.map +1 -0
  303. package/lib/utils/util.d.ts +19 -0
  304. package/lib/utils/util.js +57 -0
  305. package/lib/utils/util.js.map +1 -0
  306. package/lib/worker-lib/MessageTypes.d.ts +5 -0
  307. package/lib/worker-lib/MessageTypes.js +9 -0
  308. package/lib/worker-lib/MessageTypes.js.map +1 -0
  309. package/lib/worker-lib/index.d.ts +2 -0
  310. package/lib/worker-lib/index.js +19 -0
  311. package/lib/worker-lib/index.js.map +1 -0
  312. package/lib/worker-lib/webWorkerLink.d.ts +12 -0
  313. package/lib/worker-lib/webWorkerLink.js +96 -0
  314. package/lib/worker-lib/webWorkerLink.js.map +1 -0
  315. package/lib/worker-lib/workerUtils.d.ts +11 -0
  316. package/lib/worker-lib/workerUtils.js +178 -0
  317. package/lib/worker-lib/workerUtils.js.map +1 -0
  318. package/package.json +60 -0
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BrowserRemoteRPC = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const event_1 = require("@vscode-alt/monaco-editor/esm/vs/base/common/event");
6
+ const buffer_1 = require("@vscode-alt/monaco-editor/esm/vs/base/common/buffer");
7
+ class BrowserRemoteRPC {
8
+ constructor(hostId = 2 /* HostIdentifier.BrowserExtHost */) {
9
+ this._$queue = new rxjs_1.ReplaySubject();
10
+ this._onMessage = new event_1.Emitter();
11
+ this._localHostId = hostId;
12
+ }
13
+ onMessage(event) {
14
+ return this._onMessage.event(event);
15
+ }
16
+ connect(socket) {
17
+ const subscription = this._$queue.subscribe(msg => socket.send(msg));
18
+ socket.onmessage = (msg) => {
19
+ const buff = new Uint8Array(msg.data);
20
+ // @sri in future version of @vscode-alt/monaco-editor we don't need to do add `Buffer.from`
21
+ // noticed `Buffer` in browser will be polyfilled by webpack
22
+ const vsBuffer = buffer_1.VSBuffer.wrap(Buffer.from(buff.buffer));
23
+ this._onMessage.fire(vsBuffer);
24
+ };
25
+ socket.onclose = event => {
26
+ subscription.unsubscribe();
27
+ };
28
+ }
29
+ send(buffer, hostIdentifier) {
30
+ const headerBuf = buffer_1.VSBuffer.alloc(2);
31
+ // add destination host id
32
+ headerBuf.writeUInt8(hostIdentifier, 0);
33
+ // add sender host id
34
+ headerBuf.writeUInt8(this._localHostId, 1);
35
+ const cocatBuf = buffer_1.VSBuffer.concat([headerBuf, buffer]);
36
+ // converts to ArrayBuffer and sends data
37
+ this._$queue.next(cocatBuf.buffer);
38
+ }
39
+ }
40
+ exports.BrowserRemoteRPC = BrowserRemoteRPC;
41
+ //# sourceMappingURL=old-browser-remote-rpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"old-browser-remote-rpc.js","sourceRoot":"","sources":["../../../src/connections/remote-rpc/old-browser-remote-rpc.ts"],"names":[],"mappings":";;;AACA,+BAA8C;AAC9C,8EAA6E;AAG7E,gFAA+E;AAE/E,MAAa,gBAAgB;IAKzB,YAAY,8CAAsD;QAJ1D,YAAO,GAAiB,IAAI,oBAAa,EAAO,CAAC;QAEjD,eAAU,GAAG,IAAI,eAAO,EAAY,CAAC;QAGzC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;IAC/B,CAAC;IAEM,SAAS,CAAC,KAAK;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAEM,OAAO,CAAC,MAAiB;QAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACrE,MAAM,CAAC,SAAS,GAAG,CAAC,GAAiB,EAAE,EAAE;YACrC,MAAM,IAAI,GAAI,IAAI,UAAU,CAAc,GAAG,CAAC,IAAI,CAAC,CAAC;YACpD,6FAA6F;YAC7F,4DAA4D;YAC5D,MAAM,QAAQ,GAAG,iBAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACzD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC,CAAC;QACF,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE;YACrB,YAAY,CAAC,WAAW,EAAE,CAAC;QAC/B,CAAC,CAAC;IACN,CAAC;IAEM,IAAI,CAAC,MAAgB,EAAE,cAAc;QACxC,MAAM,SAAS,GAAG,iBAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpC,0BAA0B;QAC1B,SAAS,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACxC,qBAAqB;QACrB,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,iBAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QACtD,yCAAyC;QACzC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;CACJ;AArCD,4CAqCC"}
@@ -0,0 +1,18 @@
1
+ import { Observable } from 'rxjs/Observable';
2
+ export declare type WebSocketPayload = string | ArrayBuffer | Blob;
3
+ export interface WebSocketLike {
4
+ close(): any;
5
+ send(data: WebSocketPayload): any;
6
+ onopen: ((event: any) => any) | null;
7
+ onclose: ((event: any) => any) | null;
8
+ onmessage: ((event: any) => any) | null;
9
+ onerror: ((event: any) => any) | null;
10
+ }
11
+ export declare type WebSocketFactory = (url: string, protocols: string | string[]) => WebSocketLike;
12
+ export declare type GetWebSocketResponses<T = WebSocketPayload> = (input: Observable<WebSocketPayload>) => Observable<T>;
13
+ export interface WebSocketOptions {
14
+ protocols: string | string[];
15
+ makeWebSocket: WebSocketFactory;
16
+ }
17
+ export declare const normalClosureMessage = "Normal closure";
18
+ export default function makeWebSocketObservable<T extends WebSocketPayload = WebSocketPayload>(url: string, { protocols, makeWebSocket }?: WebSocketOptions): Observable<GetWebSocketResponses<T>>;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalClosureMessage = void 0;
4
+ const Observable_1 = require("rxjs/Observable");
5
+ const Subject_1 = require("rxjs/Subject");
6
+ const WebSocket = require("ws");
7
+ const defaultProtocols = [];
8
+ const defaultWebsocketFactory = (url, protocols) => new WebSocket(url, protocols);
9
+ exports.normalClosureMessage = 'Normal closure';
10
+ function makeWebSocketObservable(url, { protocols = defaultProtocols, makeWebSocket = defaultWebsocketFactory } = {
11
+ protocols: defaultProtocols,
12
+ makeWebSocket: defaultWebsocketFactory,
13
+ }) {
14
+ return new Observable_1.Observable(observer => {
15
+ let inputSubscription;
16
+ const messages = new Subject_1.Subject();
17
+ const socket = makeWebSocket(url, protocols);
18
+ let isSocketClosed = false;
19
+ let forcedClose = false;
20
+ const setClosedStatus = () => {
21
+ isSocketClosed = true;
22
+ };
23
+ const getWebSocketResponses = (input) => {
24
+ if (inputSubscription) {
25
+ setClosedStatus();
26
+ const error = new Error('Web socket message factory function called more than once');
27
+ observer.error(error);
28
+ throw error;
29
+ }
30
+ else {
31
+ inputSubscription = input.subscribe(data => {
32
+ socket.send(data);
33
+ });
34
+ return messages;
35
+ }
36
+ };
37
+ socket.onopen = () => {
38
+ if (forcedClose) {
39
+ isSocketClosed = true;
40
+ socket.close();
41
+ }
42
+ else {
43
+ observer.next(getWebSocketResponses);
44
+ }
45
+ };
46
+ socket.onmessage = (message) => {
47
+ messages.next(message.data);
48
+ };
49
+ socket.onerror = (error) => {
50
+ setClosedStatus();
51
+ observer.error(new Error(error.message));
52
+ };
53
+ socket.onclose = (event) => {
54
+ // prevent observer.complete() being called after observer.error(...)
55
+ if (isSocketClosed) {
56
+ return;
57
+ }
58
+ setClosedStatus();
59
+ if (forcedClose) {
60
+ observer.complete();
61
+ messages.complete();
62
+ }
63
+ else {
64
+ observer.error(new Error(event.code === 1000 ? exports.normalClosureMessage : event.reason));
65
+ }
66
+ };
67
+ return () => {
68
+ forcedClose = true;
69
+ if (inputSubscription) {
70
+ inputSubscription.unsubscribe();
71
+ }
72
+ if (!isSocketClosed) {
73
+ setClosedStatus();
74
+ socket.close();
75
+ }
76
+ };
77
+ });
78
+ }
79
+ exports.default = makeWebSocketObservable;
80
+ //# sourceMappingURL=rxjs-websockets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rxjs-websockets.js","sourceRoot":"","sources":["../../../src/connections/remote-rpc/rxjs-websockets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ export declare const CONTRIBUTION_ACTION_TYPES: {
2
+ GET_CONTRIBUTIONS: string;
3
+ REGISTER_CONTRIBUTIONS: string;
4
+ DEREGISTER_CONTRIBUTIONS: string;
5
+ REPLACE_CONTRIBUTIONS: string;
6
+ };
7
+ export declare const COMMAND_ACTION_TYPES: {
8
+ REGISTER_COMMAND: string;
9
+ DEREGISTER_COMMAND: string;
10
+ EXECUTE_COMMAND: string;
11
+ };
12
+ export declare const EXTENSION_ACTION_TYPES: {
13
+ GET_EXECUTABLE_EXTENIONS: string;
14
+ GET_CONFIGURED_EXTENSION: string;
15
+ GET_ENABLED_EXTENSION: string;
16
+ FETCH_ACTIVE_EXTENSIONS: string;
17
+ ACTIVE_EXTENSIONS: string;
18
+ FETCH_ENABLED_EXTENIONS: string;
19
+ ENABLED_EXTENSIONS: string;
20
+ FETCH_CONFIGURED_EXTENSIONS: string;
21
+ CONFIGURED_EXTENSIONS: string;
22
+ REGISTER_PROVIDERS: string;
23
+ OPEN_DOCUMENT: string;
24
+ OPEN_DOCUMENT_EPIC: string;
25
+ TEXT_POSITION: string;
26
+ };
27
+ export declare const SETTINGS_ACTION_TYPES: {
28
+ GET_SETTINGS: string;
29
+ UPDATE_SETTINGS: string;
30
+ };
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SETTINGS_ACTION_TYPES = exports.EXTENSION_ACTION_TYPES = exports.COMMAND_ACTION_TYPES = exports.CONTRIBUTION_ACTION_TYPES = void 0;
4
+ exports.CONTRIBUTION_ACTION_TYPES = {
5
+ GET_CONTRIBUTIONS: 'contribution/GET_CONTRIBUTIONS',
6
+ REGISTER_CONTRIBUTIONS: 'contribution/REGISTER_CONTRIBUTIONS',
7
+ DEREGISTER_CONTRIBUTIONS: 'contribution/DEREGISTER_CONTRIBUTIONS',
8
+ REPLACE_CONTRIBUTIONS: 'contribution/REPLACE_CONTRIBUTIONS',
9
+ };
10
+ exports.COMMAND_ACTION_TYPES = {
11
+ REGISTER_COMMAND: 'command/REGISTER_COMMAND',
12
+ DEREGISTER_COMMAND: 'command/DEREGISTER_COMMAND',
13
+ EXECUTE_COMMAND: 'command/EXECUTE_COMMAND',
14
+ };
15
+ exports.EXTENSION_ACTION_TYPES = {
16
+ // extensions
17
+ GET_EXECUTABLE_EXTENIONS: 'extension/GET_EXECUTABLE_EXTENIONS',
18
+ GET_CONFIGURED_EXTENSION: 'extension/GET_CONFIGURED_EXTENSION',
19
+ GET_ENABLED_EXTENSION: 'extension/GET_ENABLED_EXTENSION',
20
+ FETCH_ACTIVE_EXTENSIONS: 'extension/FETCH_ACTIVE_EXTENSIONS',
21
+ ACTIVE_EXTENSIONS: 'extension/ACTIVE_EXTENSIONS',
22
+ FETCH_ENABLED_EXTENIONS: 'extension/FETCH_ENABLED_EXTENIONS',
23
+ ENABLED_EXTENSIONS: 'extension/ENABLED_EXTENSIONS',
24
+ FETCH_CONFIGURED_EXTENSIONS: 'extension/FETCH_CONFIGURED_EXTENSIONS',
25
+ CONFIGURED_EXTENSIONS: 'extension/CONFIGURED_EXTENSIONS',
26
+ // registry
27
+ REGISTER_PROVIDERS: 'extension/REGISTER_PROVIDERS',
28
+ OPEN_DOCUMENT: 'extension/OPEN_DOCUMENT',
29
+ OPEN_DOCUMENT_EPIC: 'extension/OPEN_DOCUMENT_EPIC',
30
+ // Document
31
+ TEXT_POSITION: 'extension/TEXT_POSITION',
32
+ };
33
+ exports.SETTINGS_ACTION_TYPES = {
34
+ // settings
35
+ GET_SETTINGS: 'settings/GET_SETTINGS',
36
+ UPDATE_SETTINGS: 'settings/UPDATE_SETTINGS',
37
+ };
38
+ //# sourceMappingURL=action-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-types.js","sourceRoot":"","sources":["../../src/constants/action-types.ts"],"names":[],"mappings":";;;AAEa,QAAA,yBAAyB,GAAG;IACrC,iBAAiB,EAAE,gCAAgC;IACnD,sBAAsB,EAAE,qCAAqC;IAC7D,wBAAwB,EAAE,uCAAuC;IACjE,qBAAqB,EAAE,oCAAoC;CAC9D,CAAA;AAEY,QAAA,oBAAoB,GAAG;IAChC,gBAAgB,EAAE,0BAA0B;IAC5C,kBAAkB,EAAE,4BAA4B;IAChD,eAAe,EAAE,yBAAyB;CAC7C,CAAA;AAEY,QAAA,sBAAsB,GAAG;IAClC,aAAa;IACb,wBAAwB,EAAE,oCAAoC;IAC9D,wBAAwB,EAAE,oCAAoC;IAC9D,qBAAqB,EAAE,iCAAiC;IACxD,uBAAuB,EAAE,mCAAmC;IAC5D,iBAAiB,EAAE,6BAA6B;IAChD,uBAAuB,EAAE,mCAAmC;IAC5D,kBAAkB,EAAE,8BAA8B;IAClD,2BAA2B,EAAE,uCAAuC;IACpE,qBAAqB,EAAE,iCAAiC;IACxD,WAAW;IACX,kBAAkB,EAAE,8BAA8B;IAElD,aAAa,EAAE,yBAAyB;IACxC,kBAAkB,EAAE,8BAA8B;IAElD,WAAW;IACX,aAAa,EAAE,yBAAyB;CAC3C,CAAC;AAGW,QAAA,qBAAqB,GAAG;IACjC,WAAW;IACX,YAAY,EAAE,uBAAuB;IACrC,eAAe,EAAE,0BAA0B;CAC9C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './types';
2
+ export * from './action-types';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./types"), exports);
18
+ __exportStar(require("./action-types"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,iDAA+B"}
@@ -0,0 +1,8 @@
1
+ export declare const ClientTypes: {
2
+ ICommandRegistry: symbol;
3
+ IContributionRegistry: symbol;
4
+ IExtensionService: symbol;
5
+ IModelService: symbol;
6
+ IViewerService: symbol;
7
+ IWindowsService: symbol;
8
+ };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClientTypes = void 0;
4
+ exports.ClientTypes = {
5
+ ICommandRegistry: Symbol.for('ICommandRegistry'),
6
+ IContributionRegistry: Symbol.for('IContributionRegistry'),
7
+ IExtensionService: Symbol.for('IExtensionService'),
8
+ IModelService: Symbol.for('IModelService'),
9
+ IViewerService: Symbol.for('IViewerService'),
10
+ IWindowsService: Symbol.for('IWindowsService'),
11
+ };
12
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/constants/types.ts"],"names":[],"mappings":";;;AAEa,QAAA,WAAW,GAAG;IAEvB,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAChD,qBAAqB,EAAE,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC;IAC1D,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAClD,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC;IAC1C,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC5C,eAAe,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;CAEjD,CAAA"}
@@ -0,0 +1,27 @@
1
+ import { ExpressionNode } from './parser';
2
+ import { IContext } from '@adminide-stack/core';
3
+ /**
4
+ * A parsed context expression (that can evaluate to anything)
5
+ */
6
+ export declare class Expression<T> {
7
+ private root;
8
+ constructor(root: ExpressionNode);
9
+ exec<C>(context: IContext): T;
10
+ }
11
+ /**
12
+ * A parsed template string that can contain `${contextKey}` interpolations.
13
+ * Always evaluates to a string.
14
+ */
15
+ export declare class TemplateExpression<S extends string = string> extends Expression<S> {
16
+ }
17
+ /**
18
+ * Evaluates an expression with the given context and returns the result.
19
+ */
20
+ export declare function parse<T>(expression: string): Expression<T>;
21
+ /**
22
+ * Evaluates a template with the given context and returns the result.
23
+ *
24
+ * A template is a string that interpolates expressions in ${...}. It uses the same syntax as
25
+ * JavaScript templates.
26
+ */
27
+ export declare function parseTemplate(template: string): TemplateExpression;
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseTemplate = exports.parse = exports.TemplateExpression = exports.Expression = void 0;
4
+ const lexer_1 = require("./lexer");
5
+ const parser_1 = require("./parser");
6
+ /**
7
+ * A parsed context expression (that can evaluate to anything)
8
+ */
9
+ class Expression {
10
+ constructor(root) {
11
+ this.root = root;
12
+ }
13
+ exec(context) {
14
+ return exec(this.root, context);
15
+ }
16
+ }
17
+ exports.Expression = Expression;
18
+ /**
19
+ * A parsed template string that can contain `${contextKey}` interpolations.
20
+ * Always evaluates to a string.
21
+ */
22
+ class TemplateExpression extends Expression {
23
+ }
24
+ exports.TemplateExpression = TemplateExpression;
25
+ /**
26
+ * Evaluates an expression with the given context and returns the result.
27
+ */
28
+ function parse(expression) {
29
+ return new Expression(new parser_1.Parser().parse(expression));
30
+ }
31
+ exports.parse = parse;
32
+ /**
33
+ * Evaluates a template with the given context and returns the result.
34
+ *
35
+ * A template is a string that interpolates expressions in ${...}. It uses the same syntax as
36
+ * JavaScript templates.
37
+ */
38
+ function parseTemplate(template) {
39
+ return new TemplateExpression(new parser_1.TemplateParser().parse(template));
40
+ }
41
+ exports.parseTemplate = parseTemplate;
42
+ const FUNCS = {
43
+ get: (object, key) => { var _a; return (_a = object === null || object === void 0 ? void 0 : object[key]) !== null && _a !== void 0 ? _a : undefined; },
44
+ json: (object) => JSON.stringify(object),
45
+ };
46
+ function exec(node, context) {
47
+ if ('Literal' in node) {
48
+ switch (node.Literal.type) {
49
+ case lexer_1.TokenType.String:
50
+ return node.Literal.value;
51
+ case lexer_1.TokenType.Number:
52
+ return parseFloat(node.Literal.value);
53
+ default:
54
+ throw new SyntaxError(`Unrecognized literal of type ${lexer_1.TokenType[node.Literal.type]}`);
55
+ }
56
+ }
57
+ if ('Template' in node) {
58
+ const parts = [];
59
+ for (const expression of node.Template.parts) {
60
+ parts.push(exec(expression, context));
61
+ }
62
+ return parts.join('');
63
+ }
64
+ if ('Binary' in node) {
65
+ const left = exec(node.Binary.left, context);
66
+ const right = () => exec(node.Binary.right, context); // lazy evaluation
67
+ switch (node.Binary.operator) {
68
+ case '&&':
69
+ return left && right();
70
+ case '||':
71
+ return left || right();
72
+ case '==':
73
+ // eslint-disable-next-line eqeqeq
74
+ return left == right();
75
+ case '!=':
76
+ // eslint-disable-next-line eqeqeq
77
+ return left != right();
78
+ case '===':
79
+ return left === right();
80
+ case '!==':
81
+ return left !== right();
82
+ case '<':
83
+ return left < right();
84
+ case '>':
85
+ return left > right();
86
+ case '<=':
87
+ return left <= right();
88
+ case '>=':
89
+ return left >= right();
90
+ case '+':
91
+ // eslint-disable-next-line @typescript-eslint/restrict-plus-operands
92
+ return left + right();
93
+ case '-':
94
+ return left - right();
95
+ case '*':
96
+ return left * right();
97
+ case '/':
98
+ return left / right();
99
+ case '^':
100
+ return left ^ right();
101
+ case '%':
102
+ return left % right();
103
+ default:
104
+ throw new SyntaxError(`Invalid operator: ${node.Binary.operator}`);
105
+ }
106
+ }
107
+ if ('Unary' in node) {
108
+ const expression = exec(node.Unary.expression, context);
109
+ switch (node.Unary.operator) {
110
+ case '!':
111
+ return !expression;
112
+ case '+':
113
+ return expression;
114
+ case '-':
115
+ return -expression;
116
+ default:
117
+ throw new SyntaxError(`Invalid operator: ${node.Unary.operator}`);
118
+ }
119
+ }
120
+ if ('Identifier' in node) {
121
+ switch (node.Identifier) {
122
+ case 'true':
123
+ return true;
124
+ case 'false':
125
+ return false;
126
+ case 'undefined':
127
+ return undefined;
128
+ case 'null':
129
+ return null;
130
+ }
131
+ return context[node.Identifier];
132
+ }
133
+ if ('FunctionCall' in node) {
134
+ const expression = node.FunctionCall;
135
+ const func = FUNCS[expression.name];
136
+ if (typeof func === 'function') {
137
+ const args = expression.args.map(argument => exec(argument, context));
138
+ return func(...args);
139
+ }
140
+ throw new SyntaxError(`Undefined function: ${expression.name}`);
141
+ }
142
+ throw new SyntaxError('Unrecognized syntax node');
143
+ }
144
+ //# sourceMappingURL=evaluator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../../src/core/expr/evaluator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const evaluator_1 = require("./evaluator");
4
+ const FIXTURE_CONTEXT = {
5
+ a: 1,
6
+ b: 1,
7
+ c: 2,
8
+ x: 'y',
9
+ o: { k: 'v' },
10
+ array: [7],
11
+ };
12
+ describe('Expression', () => {
13
+ const TESTS = {
14
+ a: 1,
15
+ 'a + b': 2,
16
+ 'a == b': true,
17
+ 'a != b': false,
18
+ 'a + b == c': true,
19
+ x: 'y',
20
+ 'd === false': false,
21
+ 'd !== false': true,
22
+ '!a': false,
23
+ '!!a': true,
24
+ 'a && c': 2,
25
+ 'a || b': 1,
26
+ '(a + b) * 2': 4,
27
+ 'x == "y"': true,
28
+ 'json(o)': '{"k":"v"}',
29
+ // TODO: Support operator precedence. See ./parser.test.ts for a commented-out precedence test case.
30
+ //
31
+ // 'x == "y" || x == "z"': true,
32
+ 'x == "y" && x == "z"': false,
33
+ 'x == "y" && x != "z"': true,
34
+ '`a`': 'a',
35
+ '`${x}`': 'y',
36
+ '`a${x}b`': 'ayb',
37
+ '`_${x}_${a}_${a+b}`': '_y_1_2',
38
+ '`_${`-${x}-`}_`': '_-y-_',
39
+ 'a || isnotdefined': 1,
40
+ 'get(array, 0)': 7,
41
+ 'get(array, 1)': undefined,
42
+ 'get(context, "c")': 2,
43
+ };
44
+ for (const [expression, want] of Object.entries(TESTS)) {
45
+ test(expression, () => {
46
+ const value = (0, evaluator_1.parse)(expression).exec(FIXTURE_CONTEXT);
47
+ console.log('--Value---', value, expression, want);
48
+ expect(value).toBe(want);
49
+ });
50
+ }
51
+ });
52
+ //# sourceMappingURL=evaluator.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluator.test.js","sourceRoot":"","sources":["../../../src/core/expr/evaluator.test.ts"],"names":[],"mappings":";;AACA,2CAAmD;AAEnD,MAAM,eAAe,GAAmB;IACpC,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;IACb,KAAK,EAAE,CAAC,CAAC,CAAC;CACb,CAAC;AAGF,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IACxB,MAAM,KAAK,GAAG;QACV,CAAC,EAAE,CAAC;QACJ,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,IAAI;QAClB,CAAC,EAAE,GAAG;QACN,aAAa,EAAE,KAAK;QACpB,aAAa,EAAE,IAAI;QACnB,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,aAAa,EAAE,CAAC;QAChB,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,WAAW;QACtB,oGAAoG;QACpG,EAAE;QACF,gCAAgC;QAChC,sBAAsB,EAAE,KAAK;QAC7B,sBAAsB,EAAE,IAAI;QAC5B,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,GAAG;QACb,UAAU,EAAE,KAAK;QACjB,qBAAqB,EAAE,QAAQ;QAC/B,iBAAiB,EAAE,OAAO;QAC1B,mBAAmB,EAAE,CAAC;QACtB,eAAe,EAAE,CAAC;QAClB,eAAe,EAAE,SAAS;QAC1B,mBAAmB,EAAE,CAAC;KACzB,CAAC;IACF,KAAK,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACpD,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE;YAClB,MAAM,KAAK,GAAG,IAAA,iBAAK,EAAU,UAAU,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC/D,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;YACnD,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAA;KACL;AACL,CAAC,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './evaluator';
2
+ export * from './lexer';
3
+ export * from './parser';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./evaluator"), exports);
18
+ __exportStar(require("./lexer"), exports);
19
+ __exportStar(require("./parser"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/expr/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,0CAAwB;AACxB,2CAAyB"}