@aws/lsp-codewhisperer 0.0.9 → 0.0.10

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 (263) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/node_modules/@amzn/codewhisperer-streaming/package.json +4 -4
  3. package/node_modules/@aws/lsp-fqn/out/common/commonFqnWorkerPool.js +12 -25
  4. package/node_modules/@aws/lsp-fqn/out/common/commonFqnWorkerPool.js.map +1 -1
  5. package/node_modules/@aws/lsp-fqn/out/common/fqnExtractor.js +1 -2
  6. package/node_modules/@aws/lsp-fqn/out/common/fqnExtractor.js.map +1 -1
  7. package/node_modules/@aws/lsp-fqn/package.json +1 -1
  8. package/node_modules/@aws/lsp-fqn/tsconfig.tsbuildinfo +1 -1
  9. package/out/client/streamingClient/codewhispererStreamingClient.d.ts +5 -0
  10. package/out/client/streamingClient/codewhispererStreamingClient.js +25 -0
  11. package/out/client/streamingClient/codewhispererStreamingClient.js.map +1 -0
  12. package/out/client/token/bearer-token-service.json +55 -2
  13. package/out/index.d.ts +1 -0
  14. package/out/index.js +1 -0
  15. package/out/index.js.map +1 -1
  16. package/out/language-server/chat/chatController.js +104 -108
  17. package/out/language-server/chat/chatController.js.map +1 -1
  18. package/out/language-server/chat/chatController.test.js +16 -1
  19. package/out/language-server/chat/chatController.test.js.map +1 -1
  20. package/out/language-server/chat/chatEventParser.js +28 -34
  21. package/out/language-server/chat/chatEventParser.js.map +1 -1
  22. package/out/language-server/chat/chatSessionManagementService.js +22 -36
  23. package/out/language-server/chat/chatSessionManagementService.js.map +1 -1
  24. package/out/language-server/chat/chatSessionService.js +24 -37
  25. package/out/language-server/chat/chatSessionService.js.map +1 -1
  26. package/out/language-server/chat/constants.d.ts +2 -0
  27. package/out/language-server/chat/constants.js +32 -0
  28. package/out/language-server/chat/constants.js.map +1 -0
  29. package/out/language-server/chat/contexts/documentContext.js +11 -24
  30. package/out/language-server/chat/contexts/documentContext.js.map +1 -1
  31. package/out/language-server/chat/contexts/documentFqnExtractor.js +67 -78
  32. package/out/language-server/chat/contexts/documentFqnExtractor.js.map +1 -1
  33. package/out/language-server/chat/contexts/triggerContext.js +32 -44
  34. package/out/language-server/chat/contexts/triggerContext.js.map +1 -1
  35. package/out/language-server/chat/quickActions.d.ts +0 -1
  36. package/out/language-server/chat/quickActions.js +1 -28
  37. package/out/language-server/chat/quickActions.js.map +1 -1
  38. package/out/language-server/chat/telemetry/chatTelemetryController.js +114 -126
  39. package/out/language-server/chat/telemetry/chatTelemetryController.js.map +1 -1
  40. package/out/language-server/chat/utils.d.ts +6 -0
  41. package/out/language-server/chat/utils.js +60 -0
  42. package/out/language-server/chat/utils.js.map +1 -0
  43. package/out/language-server/codeWhispererService.js +13 -11
  44. package/out/language-server/codeWhispererService.js.map +1 -1
  45. package/out/language-server/constants.d.ts +3 -0
  46. package/out/language-server/constants.js +7 -0
  47. package/out/language-server/constants.js.map +1 -0
  48. package/out/language-server/dependencyGraph/csharpDependencyGraph.js +2 -2
  49. package/out/language-server/dependencyGraph/csharpDependencyGraph.js.map +1 -1
  50. package/out/language-server/dependencyGraph/dependencyGraph.js +12 -9
  51. package/out/language-server/dependencyGraph/dependencyGraph.js.map +1 -1
  52. package/out/language-server/dependencyGraph/gitIgnoreFilter.js +1 -0
  53. package/out/language-server/dependencyGraph/gitIgnoreFilter.js.map +1 -1
  54. package/out/language-server/netTransform/artifactManager.d.ts +29 -0
  55. package/out/language-server/netTransform/artifactManager.js +191 -0
  56. package/out/language-server/netTransform/artifactManager.js.map +1 -0
  57. package/out/language-server/netTransform/converter.d.ts +7 -0
  58. package/out/language-server/netTransform/converter.js +88 -0
  59. package/out/language-server/netTransform/converter.js.map +1 -0
  60. package/out/language-server/netTransform/metrics.d.ts +17 -0
  61. package/out/language-server/netTransform/metrics.js +222 -0
  62. package/out/language-server/netTransform/metrics.js.map +1 -0
  63. package/out/language-server/netTransform/models.d.ts +84 -0
  64. package/out/language-server/netTransform/models.js +12 -0
  65. package/out/language-server/netTransform/models.js.map +1 -0
  66. package/out/language-server/netTransform/resources/SupportedProjects.d.ts +2 -0
  67. package/out/language-server/netTransform/resources/SupportedProjects.js +26 -0
  68. package/out/language-server/netTransform/resources/SupportedProjects.js.map +1 -0
  69. package/out/language-server/netTransform/tests/converter.test.d.ts +1 -0
  70. package/out/language-server/netTransform/tests/converter.test.js +151 -0
  71. package/out/language-server/netTransform/tests/converter.test.js.map +1 -0
  72. package/out/language-server/netTransform/tests/mockData.d.ts +21 -0
  73. package/out/language-server/netTransform/tests/mockData.js +60 -0
  74. package/out/language-server/netTransform/tests/mockData.js.map +1 -0
  75. package/out/language-server/netTransform/tests/transformHandler.test.d.ts +1 -0
  76. package/out/language-server/netTransform/tests/transformHandler.test.js +242 -0
  77. package/out/language-server/netTransform/tests/transformHandler.test.js.map +1 -0
  78. package/out/language-server/netTransform/tests/validation.test.d.ts +1 -0
  79. package/out/language-server/netTransform/tests/validation.test.js +80 -0
  80. package/out/language-server/netTransform/tests/validation.test.js.map +1 -0
  81. package/out/language-server/netTransform/transformHandler.d.ts +27 -0
  82. package/out/language-server/netTransform/transformHandler.js +315 -0
  83. package/out/language-server/netTransform/transformHandler.js.map +1 -0
  84. package/out/language-server/netTransform/validation.d.ts +9 -0
  85. package/out/language-server/netTransform/validation.js +79 -0
  86. package/out/language-server/netTransform/validation.js.map +1 -0
  87. package/out/language-server/netTransformServer.d.ts +5 -6
  88. package/out/language-server/netTransformServer.js +149 -15
  89. package/out/language-server/netTransformServer.js.map +1 -1
  90. package/out/language-server/proxy-server.d.ts +1 -0
  91. package/out/language-server/proxy-server.js +16 -1
  92. package/out/language-server/proxy-server.js.map +1 -1
  93. package/out/language-server/securityScan/securityScanDiagnosticsProvider.js +10 -6
  94. package/out/language-server/securityScan/securityScanDiagnosticsProvider.js.map +1 -1
  95. package/out/language-server/securityScan/securityScanHandler.js +4 -0
  96. package/out/language-server/securityScan/securityScanHandler.js.map +1 -1
  97. package/out/language-server/session/sessionManager.js +35 -15
  98. package/out/language-server/session/sessionManager.js.map +1 -1
  99. package/out/language-server/telemetry/codeDiffTracker.js +69 -80
  100. package/out/language-server/telemetry/codeDiffTracker.js.map +1 -1
  101. package/out/language-server/telemetry/codePercentage.js +3 -0
  102. package/out/language-server/telemetry/codePercentage.js.map +1 -1
  103. package/out/language-server/telemetry/metric.js +8 -21
  104. package/out/language-server/telemetry/metric.js.map +1 -1
  105. package/out/language-server/telemetry/types.d.ts +38 -0
  106. package/out/language-server/telemetry/types.js.map +1 -1
  107. package/out/language-server/utils.d.ts +2 -5
  108. package/out/language-server/utils.js +25 -49
  109. package/out/language-server/utils.js.map +1 -1
  110. package/package.json +5 -2
  111. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/HISTORY.md +0 -395
  112. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/LICENSE +0 -201
  113. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/README.md +0 -530
  114. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/dist/worker.js +0 -288
  115. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/dist/worker.js.map +0 -1
  116. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/dist/worker.min.js +0 -2
  117. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/dist/worker.min.js.map +0 -1
  118. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/dist/workerpool.js +0 -1737
  119. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/dist/workerpool.js.map +0 -1
  120. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/dist/workerpool.min.js +0 -3
  121. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/dist/workerpool.min.js.LICENSE.txt +0 -24
  122. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/dist/workerpool.min.js.map +0 -1
  123. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/package.json +0 -57
  124. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/src/Pool.js +0 -476
  125. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/src/Promise.js +0 -293
  126. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/src/WorkerHandler.js +0 -547
  127. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/src/debug-port-allocator.js +0 -28
  128. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/src/environment.js +0 -30
  129. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/src/generated/embeddedWorker.js +0 -6
  130. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/src/header.js +0 -24
  131. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/src/index.js +0 -60
  132. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/src/requireFoolWebpack.js +0 -8
  133. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/src/transfer.js +0 -12
  134. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/src/types.js +0 -46
  135. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/src/validateOptions.js +0 -51
  136. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/src/worker.js +0 -256
  137. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/types/Pool.d.ts +0 -130
  138. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/types/Promise.d.ts +0 -125
  139. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/types/WorkerHandler.d.ts +0 -89
  140. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/types/debug-port-allocator.d.ts +0 -8
  141. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/types/environment.d.ts +0 -4
  142. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/types/generated/embeddedWorker.d.ts +0 -2
  143. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/types/index.d.ts +0 -43
  144. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/types/transfer.d.ts +0 -19
  145. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/types/types.d.ts +0 -99
  146. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/types/validateOptions.d.ts +0 -4
  147. package/node_modules/@aws/lsp-fqn/node_modules/workerpool/types/worker.d.ts +0 -8
  148. package/node_modules/@smithy/eventstream-serde-config-resolver/LICENSE +0 -201
  149. package/node_modules/@smithy/eventstream-serde-config-resolver/README.md +0 -10
  150. package/node_modules/@smithy/eventstream-serde-config-resolver/dist-cjs/EventStreamSerdeConfig.js +0 -1
  151. package/node_modules/@smithy/eventstream-serde-config-resolver/dist-cjs/index.js +0 -37
  152. package/node_modules/@smithy/eventstream-serde-config-resolver/dist-es/EventStreamSerdeConfig.js +0 -4
  153. package/node_modules/@smithy/eventstream-serde-config-resolver/dist-es/index.js +0 -1
  154. package/node_modules/@smithy/eventstream-serde-config-resolver/dist-types/EventStreamSerdeConfig.d.ts +0 -24
  155. package/node_modules/@smithy/eventstream-serde-config-resolver/dist-types/index.d.ts +0 -4
  156. package/node_modules/@smithy/eventstream-serde-config-resolver/dist-types/ts3.4/EventStreamSerdeConfig.d.ts +0 -24
  157. package/node_modules/@smithy/eventstream-serde-config-resolver/dist-types/ts3.4/index.d.ts +0 -4
  158. package/node_modules/@smithy/eventstream-serde-config-resolver/package.json +0 -61
  159. package/node_modules/bowser/CHANGELOG.md +0 -218
  160. package/node_modules/bowser/LICENSE +0 -39
  161. package/node_modules/bowser/README.md +0 -179
  162. package/node_modules/bowser/bundled.js +0 -1
  163. package/node_modules/bowser/es5.js +0 -1
  164. package/node_modules/bowser/index.d.ts +0 -250
  165. package/node_modules/bowser/package.json +0 -83
  166. package/node_modules/bowser/src/bowser.js +0 -77
  167. package/node_modules/bowser/src/constants.js +0 -116
  168. package/node_modules/bowser/src/parser-browsers.js +0 -700
  169. package/node_modules/bowser/src/parser-engines.js +0 -120
  170. package/node_modules/bowser/src/parser-os.js +0 -199
  171. package/node_modules/bowser/src/parser-platforms.js +0 -266
  172. package/node_modules/bowser/src/parser.js +0 -496
  173. package/node_modules/bowser/src/utils.js +0 -309
  174. package/node_modules/tslib/CopyrightNotice.txt +0 -15
  175. package/node_modules/tslib/LICENSE.txt +0 -12
  176. package/node_modules/tslib/README.md +0 -164
  177. package/node_modules/tslib/SECURITY.md +0 -41
  178. package/node_modules/tslib/modules/index.d.ts +0 -37
  179. package/node_modules/tslib/modules/index.js +0 -68
  180. package/node_modules/tslib/modules/package.json +0 -3
  181. package/node_modules/tslib/package.json +0 -47
  182. package/node_modules/tslib/tslib.d.ts +0 -453
  183. package/node_modules/tslib/tslib.es6.html +0 -1
  184. package/node_modules/tslib/tslib.es6.js +0 -374
  185. package/node_modules/tslib/tslib.es6.mjs +0 -373
  186. package/node_modules/tslib/tslib.html +0 -1
  187. package/node_modules/tslib/tslib.js +0 -424
  188. package/node_modules/uuid/CHANGELOG.md +0 -274
  189. package/node_modules/uuid/CONTRIBUTING.md +0 -18
  190. package/node_modules/uuid/LICENSE.md +0 -9
  191. package/node_modules/uuid/README.md +0 -466
  192. package/node_modules/uuid/dist/bin/uuid +0 -2
  193. package/node_modules/uuid/dist/commonjs-browser/index.js +0 -79
  194. package/node_modules/uuid/dist/commonjs-browser/md5.js +0 -223
  195. package/node_modules/uuid/dist/commonjs-browser/native.js +0 -11
  196. package/node_modules/uuid/dist/commonjs-browser/nil.js +0 -8
  197. package/node_modules/uuid/dist/commonjs-browser/parse.js +0 -45
  198. package/node_modules/uuid/dist/commonjs-browser/regex.js +0 -8
  199. package/node_modules/uuid/dist/commonjs-browser/rng.js +0 -25
  200. package/node_modules/uuid/dist/commonjs-browser/sha1.js +0 -104
  201. package/node_modules/uuid/dist/commonjs-browser/stringify.js +0 -44
  202. package/node_modules/uuid/dist/commonjs-browser/v1.js +0 -107
  203. package/node_modules/uuid/dist/commonjs-browser/v3.js +0 -16
  204. package/node_modules/uuid/dist/commonjs-browser/v35.js +0 -80
  205. package/node_modules/uuid/dist/commonjs-browser/v4.js +0 -43
  206. package/node_modules/uuid/dist/commonjs-browser/v5.js +0 -16
  207. package/node_modules/uuid/dist/commonjs-browser/validate.js +0 -17
  208. package/node_modules/uuid/dist/commonjs-browser/version.js +0 -21
  209. package/node_modules/uuid/dist/esm-browser/index.js +0 -9
  210. package/node_modules/uuid/dist/esm-browser/md5.js +0 -215
  211. package/node_modules/uuid/dist/esm-browser/native.js +0 -4
  212. package/node_modules/uuid/dist/esm-browser/nil.js +0 -1
  213. package/node_modules/uuid/dist/esm-browser/parse.js +0 -35
  214. package/node_modules/uuid/dist/esm-browser/regex.js +0 -1
  215. package/node_modules/uuid/dist/esm-browser/rng.js +0 -18
  216. package/node_modules/uuid/dist/esm-browser/sha1.js +0 -96
  217. package/node_modules/uuid/dist/esm-browser/stringify.js +0 -33
  218. package/node_modules/uuid/dist/esm-browser/v1.js +0 -95
  219. package/node_modules/uuid/dist/esm-browser/v3.js +0 -4
  220. package/node_modules/uuid/dist/esm-browser/v35.js +0 -66
  221. package/node_modules/uuid/dist/esm-browser/v4.js +0 -29
  222. package/node_modules/uuid/dist/esm-browser/v5.js +0 -4
  223. package/node_modules/uuid/dist/esm-browser/validate.js +0 -7
  224. package/node_modules/uuid/dist/esm-browser/version.js +0 -11
  225. package/node_modules/uuid/dist/esm-node/index.js +0 -9
  226. package/node_modules/uuid/dist/esm-node/md5.js +0 -13
  227. package/node_modules/uuid/dist/esm-node/native.js +0 -4
  228. package/node_modules/uuid/dist/esm-node/nil.js +0 -1
  229. package/node_modules/uuid/dist/esm-node/parse.js +0 -35
  230. package/node_modules/uuid/dist/esm-node/regex.js +0 -1
  231. package/node_modules/uuid/dist/esm-node/rng.js +0 -12
  232. package/node_modules/uuid/dist/esm-node/sha1.js +0 -13
  233. package/node_modules/uuid/dist/esm-node/stringify.js +0 -33
  234. package/node_modules/uuid/dist/esm-node/v1.js +0 -95
  235. package/node_modules/uuid/dist/esm-node/v3.js +0 -4
  236. package/node_modules/uuid/dist/esm-node/v35.js +0 -66
  237. package/node_modules/uuid/dist/esm-node/v4.js +0 -29
  238. package/node_modules/uuid/dist/esm-node/v5.js +0 -4
  239. package/node_modules/uuid/dist/esm-node/validate.js +0 -7
  240. package/node_modules/uuid/dist/esm-node/version.js +0 -11
  241. package/node_modules/uuid/dist/index.js +0 -79
  242. package/node_modules/uuid/dist/md5-browser.js +0 -223
  243. package/node_modules/uuid/dist/md5.js +0 -23
  244. package/node_modules/uuid/dist/native-browser.js +0 -11
  245. package/node_modules/uuid/dist/native.js +0 -15
  246. package/node_modules/uuid/dist/nil.js +0 -8
  247. package/node_modules/uuid/dist/parse.js +0 -45
  248. package/node_modules/uuid/dist/regex.js +0 -8
  249. package/node_modules/uuid/dist/rng-browser.js +0 -25
  250. package/node_modules/uuid/dist/rng.js +0 -24
  251. package/node_modules/uuid/dist/sha1-browser.js +0 -104
  252. package/node_modules/uuid/dist/sha1.js +0 -23
  253. package/node_modules/uuid/dist/stringify.js +0 -44
  254. package/node_modules/uuid/dist/uuid-bin.js +0 -85
  255. package/node_modules/uuid/dist/v1.js +0 -107
  256. package/node_modules/uuid/dist/v3.js +0 -16
  257. package/node_modules/uuid/dist/v35.js +0 -80
  258. package/node_modules/uuid/dist/v4.js +0 -43
  259. package/node_modules/uuid/dist/v5.js +0 -16
  260. package/node_modules/uuid/dist/validate.js +0 -17
  261. package/node_modules/uuid/dist/version.js +0 -21
  262. package/node_modules/uuid/package.json +0 -135
  263. package/node_modules/uuid/wrapper.mjs +0 -10
@@ -1,288 +0,0 @@
1
- /**
2
- * workerpool.js
3
- * https://github.com/josdejong/workerpool
4
- *
5
- * Offload tasks to a pool of workers on node.js and in the browser.
6
- *
7
- * @version 9.1.1
8
- * @date 2024-04-06
9
- *
10
- * @license
11
- * Copyright (C) 2014-2022 Jos de Jong <wjosdejong@gmail.com>
12
- *
13
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
14
- * use this file except in compliance with the License. You may obtain a copy
15
- * of the License at
16
- *
17
- * http://www.apache.org/licenses/LICENSE-2.0
18
- *
19
- * Unless required by applicable law or agreed to in writing, software
20
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
21
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
22
- * License for the specific language governing permissions and limitations under
23
- * the License.
24
- */
25
-
26
- (function (global, factory) {
27
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
28
- typeof define === 'function' && define.amd ? define(factory) :
29
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.worker = factory());
30
- })(this, (function () { 'use strict';
31
-
32
- function getDefaultExportFromCjs (x) {
33
- return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
34
- }
35
-
36
- var worker$1 = {};
37
-
38
- /**
39
- * The helper class for transferring data from the worker to the main thread.
40
- *
41
- * @param {Object} message The object to deliver to the main thread.
42
- * @param {Object[]} transfer An array of transferable Objects to transfer ownership of.
43
- */
44
- function Transfer(message, transfer) {
45
- this.message = message;
46
- this.transfer = transfer;
47
- }
48
- var transfer = Transfer;
49
-
50
- /**
51
- * worker must be started as a child process or a web worker.
52
- * It listens for RPC messages from the parent process.
53
- */
54
- (function (exports) {
55
- var Transfer = transfer;
56
-
57
- /**
58
- * Special message sent by parent which causes the worker to terminate itself.
59
- * Not a "message object"; this string is the entire message.
60
- */
61
- var TERMINATE_METHOD_ID = '__workerpool-terminate__';
62
-
63
- // var nodeOSPlatform = require('./environment').nodeOSPlatform;
64
-
65
- // create a worker API for sending and receiving messages which works both on
66
- // node.js and in the browser
67
- var worker = {
68
- exit: function () {}
69
- };
70
- if (typeof self !== 'undefined' && typeof postMessage === 'function' && typeof addEventListener === 'function') {
71
- // worker in the browser
72
- worker.on = function (event, callback) {
73
- addEventListener(event, function (message) {
74
- callback(message.data);
75
- });
76
- };
77
- worker.send = function (message) {
78
- postMessage(message);
79
- };
80
- } else if (typeof process !== 'undefined') {
81
- // node.js
82
-
83
- var WorkerThreads;
84
- try {
85
- WorkerThreads = require('worker_threads');
86
- } catch (error) {
87
- if (typeof error === 'object' && error !== null && error.code === 'MODULE_NOT_FOUND') ; else {
88
- throw error;
89
- }
90
- }
91
- if (WorkerThreads && /* if there is a parentPort, we are in a WorkerThread */
92
- WorkerThreads.parentPort !== null) {
93
- var parentPort = WorkerThreads.parentPort;
94
- worker.send = parentPort.postMessage.bind(parentPort);
95
- worker.on = parentPort.on.bind(parentPort);
96
- worker.exit = process.exit.bind(process);
97
- } else {
98
- worker.on = process.on.bind(process);
99
- // ignore transfer argument since it is not supported by process
100
- worker.send = function (message) {
101
- process.send(message);
102
- };
103
- // register disconnect handler only for subprocess worker to exit when parent is killed unexpectedly
104
- worker.on('disconnect', function () {
105
- process.exit(1);
106
- });
107
- worker.exit = process.exit.bind(process);
108
- }
109
- } else {
110
- throw new Error('Script must be executed as a worker');
111
- }
112
- function convertError(error) {
113
- return Object.getOwnPropertyNames(error).reduce(function (product, name) {
114
- return Object.defineProperty(product, name, {
115
- value: error[name],
116
- enumerable: true
117
- });
118
- }, {});
119
- }
120
-
121
- /**
122
- * Test whether a value is a Promise via duck typing.
123
- * @param {*} value
124
- * @returns {boolean} Returns true when given value is an object
125
- * having functions `then` and `catch`.
126
- */
127
- function isPromise(value) {
128
- return value && typeof value.then === 'function' && typeof value.catch === 'function';
129
- }
130
-
131
- // functions available externally
132
- worker.methods = {};
133
-
134
- /**
135
- * Execute a function with provided arguments
136
- * @param {String} fn Stringified function
137
- * @param {Array} [args] Function arguments
138
- * @returns {*}
139
- */
140
- worker.methods.run = function run(fn, args) {
141
- var f = new Function('return (' + fn + ').apply(null, arguments);');
142
- return f.apply(f, args);
143
- };
144
-
145
- /**
146
- * Get a list with methods available on this worker
147
- * @return {String[]} methods
148
- */
149
- worker.methods.methods = function methods() {
150
- return Object.keys(worker.methods);
151
- };
152
-
153
- /**
154
- * Custom handler for when the worker is terminated.
155
- */
156
- worker.terminationHandler = undefined;
157
-
158
- /**
159
- * Cleanup and exit the worker.
160
- * @param {Number} code
161
- * @returns
162
- */
163
- worker.cleanupAndExit = function (code) {
164
- var _exit = function () {
165
- worker.exit(code);
166
- };
167
- if (!worker.terminationHandler) {
168
- return _exit();
169
- }
170
- var result = worker.terminationHandler(code);
171
- if (isPromise(result)) {
172
- result.then(_exit, _exit);
173
- } else {
174
- _exit();
175
- }
176
- };
177
- var currentRequestId = null;
178
- worker.on('message', function (request) {
179
- if (request === TERMINATE_METHOD_ID) {
180
- return worker.cleanupAndExit(0);
181
- }
182
- try {
183
- var method = worker.methods[request.method];
184
- if (method) {
185
- currentRequestId = request.id;
186
-
187
- // execute the function
188
- var result = method.apply(method, request.params);
189
- if (isPromise(result)) {
190
- // promise returned, resolve this and then return
191
- result.then(function (result) {
192
- if (result instanceof Transfer) {
193
- worker.send({
194
- id: request.id,
195
- result: result.message,
196
- error: null
197
- }, result.transfer);
198
- } else {
199
- worker.send({
200
- id: request.id,
201
- result: result,
202
- error: null
203
- });
204
- }
205
- currentRequestId = null;
206
- }).catch(function (err) {
207
- worker.send({
208
- id: request.id,
209
- result: null,
210
- error: convertError(err)
211
- });
212
- currentRequestId = null;
213
- });
214
- } else {
215
- // immediate result
216
- if (result instanceof Transfer) {
217
- worker.send({
218
- id: request.id,
219
- result: result.message,
220
- error: null
221
- }, result.transfer);
222
- } else {
223
- worker.send({
224
- id: request.id,
225
- result: result,
226
- error: null
227
- });
228
- }
229
- currentRequestId = null;
230
- }
231
- } else {
232
- throw new Error('Unknown method "' + request.method + '"');
233
- }
234
- } catch (err) {
235
- worker.send({
236
- id: request.id,
237
- result: null,
238
- error: convertError(err)
239
- });
240
- }
241
- });
242
-
243
- /**
244
- * Register methods to the worker
245
- * @param {Object} [methods]
246
- * @param {import('./types.js').WorkerRegisterOptions} [options]
247
- */
248
- worker.register = function (methods, options) {
249
- if (methods) {
250
- for (var name in methods) {
251
- if (methods.hasOwnProperty(name)) {
252
- worker.methods[name] = methods[name];
253
- }
254
- }
255
- }
256
- if (options) {
257
- worker.terminationHandler = options.onTerminate;
258
- }
259
- worker.send('ready');
260
- };
261
- worker.emit = function (payload) {
262
- if (currentRequestId) {
263
- if (payload instanceof Transfer) {
264
- worker.send({
265
- id: currentRequestId,
266
- isEvent: true,
267
- payload: payload.message
268
- }, payload.transfer);
269
- return;
270
- }
271
- worker.send({
272
- id: currentRequestId,
273
- isEvent: true,
274
- payload
275
- });
276
- }
277
- };
278
- {
279
- exports.add = worker.register;
280
- exports.emit = worker.emit;
281
- }
282
- })(worker$1);
283
- var worker = /*@__PURE__*/getDefaultExportFromCjs(worker$1);
284
-
285
- return worker;
286
-
287
- }));
288
- //# sourceMappingURL=worker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker.js","sources":["../src/transfer.js","../src/worker.js"],"sourcesContent":["/**\n * The helper class for transferring data from the worker to the main thread.\n *\n * @param {Object} message The object to deliver to the main thread.\n * @param {Object[]} transfer An array of transferable Objects to transfer ownership of.\n */\nfunction Transfer(message, transfer) {\n this.message = message;\n this.transfer = transfer;\n}\n\nmodule.exports = Transfer;\n","/**\n * worker must be started as a child process or a web worker.\n * It listens for RPC messages from the parent process.\n */\nvar Transfer = require('./transfer');\n\n/**\n * Special message sent by parent which causes the worker to terminate itself.\n * Not a \"message object\"; this string is the entire message.\n */\nvar TERMINATE_METHOD_ID = '__workerpool-terminate__';\n\n// var nodeOSPlatform = require('./environment').nodeOSPlatform;\n\n// create a worker API for sending and receiving messages which works both on\n// node.js and in the browser\nvar worker = {\n exit: function() {}\n};\nif (typeof self !== 'undefined' && typeof postMessage === 'function' && typeof addEventListener === 'function') {\n // worker in the browser\n worker.on = function (event, callback) {\n addEventListener(event, function (message) {\n callback(message.data);\n })\n };\n worker.send = function (message) {\n postMessage(message);\n };\n}\nelse if (typeof process !== 'undefined') {\n // node.js\n\n var WorkerThreads;\n try {\n WorkerThreads = require('worker_threads');\n } catch(error) {\n if (typeof error === 'object' && error !== null && error.code === 'MODULE_NOT_FOUND') {\n // no worker_threads, fallback to sub-process based workers\n } else {\n throw error;\n }\n }\n\n if (WorkerThreads &&\n /* if there is a parentPort, we are in a WorkerThread */\n WorkerThreads.parentPort !== null) {\n var parentPort = WorkerThreads.parentPort;\n worker.send = parentPort.postMessage.bind(parentPort);\n worker.on = parentPort.on.bind(parentPort);\n worker.exit = process.exit.bind(process);\n } else {\n worker.on = process.on.bind(process);\n // ignore transfer argument since it is not supported by process\n worker.send = function (message) {\n process.send(message);\n };\n // register disconnect handler only for subprocess worker to exit when parent is killed unexpectedly\n worker.on('disconnect', function () {\n process.exit(1);\n });\n worker.exit = process.exit.bind(process);\n }\n}\nelse {\n throw new Error('Script must be executed as a worker');\n}\n\nfunction convertError(error) {\n return Object.getOwnPropertyNames(error).reduce(function(product, name) {\n return Object.defineProperty(product, name, {\n\tvalue: error[name],\n\tenumerable: true\n });\n }, {});\n}\n\n/**\n * Test whether a value is a Promise via duck typing.\n * @param {*} value\n * @returns {boolean} Returns true when given value is an object\n * having functions `then` and `catch`.\n */\nfunction isPromise(value) {\n return value && (typeof value.then === 'function') && (typeof value.catch === 'function');\n}\n\n// functions available externally\nworker.methods = {};\n\n/**\n * Execute a function with provided arguments\n * @param {String} fn Stringified function\n * @param {Array} [args] Function arguments\n * @returns {*}\n */\nworker.methods.run = function run(fn, args) {\n var f = new Function('return (' + fn + ').apply(null, arguments);');\n return f.apply(f, args);\n};\n\n/**\n * Get a list with methods available on this worker\n * @return {String[]} methods\n */\nworker.methods.methods = function methods() {\n return Object.keys(worker.methods);\n};\n\n/**\n * Custom handler for when the worker is terminated.\n */\nworker.terminationHandler = undefined;\n\n/**\n * Cleanup and exit the worker.\n * @param {Number} code \n * @returns \n */\nworker.cleanupAndExit = function(code) {\n var _exit = function() {\n worker.exit(code);\n }\n\n if(!worker.terminationHandler) {\n return _exit();\n }\n\n var result = worker.terminationHandler(code);\n if (isPromise(result)) {\n result.then(_exit, _exit);\n } else {\n _exit();\n }\n}\n\nvar currentRequestId = null;\n\nworker.on('message', function (request) {\n if (request === TERMINATE_METHOD_ID) {\n return worker.cleanupAndExit(0);\n }\n try {\n var method = worker.methods[request.method];\n\n if (method) {\n currentRequestId = request.id;\n \n // execute the function\n var result = method.apply(method, request.params);\n\n if (isPromise(result)) {\n // promise returned, resolve this and then return\n result\n .then(function (result) {\n if (result instanceof Transfer) {\n worker.send({\n id: request.id,\n result: result.message,\n error: null\n }, result.transfer);\n } else {\n worker.send({\n id: request.id,\n result: result,\n error: null\n });\n }\n currentRequestId = null;\n })\n .catch(function (err) {\n worker.send({\n id: request.id,\n result: null,\n error: convertError(err)\n });\n currentRequestId = null;\n });\n }\n else {\n // immediate result\n if (result instanceof Transfer) {\n worker.send({\n id: request.id,\n result: result.message,\n error: null\n }, result.transfer);\n } else {\n worker.send({\n id: request.id,\n result: result,\n error: null\n });\n }\n\n currentRequestId = null;\n }\n }\n else {\n throw new Error('Unknown method \"' + request.method + '\"');\n }\n }\n catch (err) {\n worker.send({\n id: request.id,\n result: null,\n error: convertError(err)\n });\n }\n});\n\n/**\n * Register methods to the worker\n * @param {Object} [methods]\n * @param {import('./types.js').WorkerRegisterOptions} [options]\n */\nworker.register = function (methods, options) {\n\n if (methods) {\n for (var name in methods) {\n if (methods.hasOwnProperty(name)) {\n worker.methods[name] = methods[name];\n }\n }\n }\n\n if (options) {\n worker.terminationHandler = options.onTerminate;\n }\n\n worker.send('ready');\n};\n\nworker.emit = function (payload) {\n if (currentRequestId) {\n if (payload instanceof Transfer) {\n worker.send({\n id: currentRequestId,\n isEvent: true,\n payload: payload.message\n }, payload.transfer);\n return;\n }\n\n worker.send({\n id: currentRequestId,\n isEvent: true,\n payload\n });\n }\n};\n\nif (typeof exports !== 'undefined') {\n exports.add = worker.register;\n exports.emit = worker.emit;\n}\n"],"names":["Transfer","message","transfer","require$$0","TERMINATE_METHOD_ID","worker","exit","self","postMessage","addEventListener","on","event","callback","data","send","process","WorkerThreads","require","error","code","parentPort","bind","Error","convertError","Object","getOwnPropertyNames","reduce","product","name","defineProperty","value","enumerable","isPromise","then","catch","methods","run","fn","args","f","Function","apply","keys","terminationHandler","undefined","cleanupAndExit","_exit","result","currentRequestId","request","method","id","params","err","register","options","hasOwnProperty","onTerminate","emit","payload","isEvent","exports","add"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).worker=n()}(this,(function(){"use strict";function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var n={};var t=function(e,n){this.message=e,this.transfer=n};return function(e){var n=t,r={exit:function(){}};if("undefined"!=typeof self&&"function"==typeof postMessage&&"function"==typeof addEventListener)r.on=function(e,n){addEventListener(e,(function(e){n(e.data)}))},r.send=function(e){postMessage(e)};else{if("undefined"==typeof process)throw new Error("Script must be executed as a worker");var o;try{o=require("worker_threads")}catch(e){if("object"!=typeof e||null===e||"MODULE_NOT_FOUND"!==e.code)throw e}if(o&&null!==o.parentPort){var i=o.parentPort;r.send=i.postMessage.bind(i),r.on=i.on.bind(i),r.exit=process.exit.bind(process)}else r.on=process.on.bind(process),r.send=function(e){process.send(e)},r.on("disconnect",(function(){process.exit(1)})),r.exit=process.exit.bind(process)}function s(e){return Object.getOwnPropertyNames(e).reduce((function(n,t){return Object.defineProperty(n,t,{value:e[t],enumerable:!0})}),{})}function d(e){return e&&"function"==typeof e.then&&"function"==typeof e.catch}r.methods={},r.methods.run=function(e,n){var t=new Function("return ("+e+").apply(null, arguments);");return t.apply(t,n)},r.methods.methods=function(){return Object.keys(r.methods)},r.terminationHandler=void 0,r.cleanupAndExit=function(e){var n=function(){r.exit(e)};if(!r.terminationHandler)return n();var t=r.terminationHandler(e);d(t)?t.then(n,n):n()};var u=null;r.on("message",(function(e){if("__workerpool-terminate__"===e)return r.cleanupAndExit(0);try{var t=r.methods[e.method];if(!t)throw new Error('Unknown method "'+e.method+'"');u=e.id;var o=t.apply(t,e.params);d(o)?o.then((function(t){t instanceof n?r.send({id:e.id,result:t.message,error:null},t.transfer):r.send({id:e.id,result:t,error:null}),u=null})).catch((function(n){r.send({id:e.id,result:null,error:s(n)}),u=null})):(o instanceof n?r.send({id:e.id,result:o.message,error:null},o.transfer):r.send({id:e.id,result:o,error:null}),u=null)}catch(n){r.send({id:e.id,result:null,error:s(n)})}})),r.register=function(e,n){if(e)for(var t in e)e.hasOwnProperty(t)&&(r.methods[t]=e[t]);n&&(r.terminationHandler=n.onTerminate),r.send("ready")},r.emit=function(e){if(u){if(e instanceof n)return void r.send({id:u,isEvent:!0,payload:e.message},e.transfer);r.send({id:u,isEvent:!0,payload:e})}},e.add=r.register,e.emit=r.emit}(n),e(n)}));
2
- //# sourceMappingURL=worker.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker.min.js","sources":["../src/transfer.js","../src/worker.js"],"sourcesContent":["/**\n * The helper class for transferring data from the worker to the main thread.\n *\n * @param {Object} message The object to deliver to the main thread.\n * @param {Object[]} transfer An array of transferable Objects to transfer ownership of.\n */\nfunction Transfer(message, transfer) {\n this.message = message;\n this.transfer = transfer;\n}\n\nmodule.exports = Transfer;\n","/**\n * worker must be started as a child process or a web worker.\n * It listens for RPC messages from the parent process.\n */\nvar Transfer = require('./transfer');\n\n/**\n * Special message sent by parent which causes the worker to terminate itself.\n * Not a \"message object\"; this string is the entire message.\n */\nvar TERMINATE_METHOD_ID = '__workerpool-terminate__';\n\n// var nodeOSPlatform = require('./environment').nodeOSPlatform;\n\n// create a worker API for sending and receiving messages which works both on\n// node.js and in the browser\nvar worker = {\n exit: function() {}\n};\nif (typeof self !== 'undefined' && typeof postMessage === 'function' && typeof addEventListener === 'function') {\n // worker in the browser\n worker.on = function (event, callback) {\n addEventListener(event, function (message) {\n callback(message.data);\n })\n };\n worker.send = function (message) {\n postMessage(message);\n };\n}\nelse if (typeof process !== 'undefined') {\n // node.js\n\n var WorkerThreads;\n try {\n WorkerThreads = require('worker_threads');\n } catch(error) {\n if (typeof error === 'object' && error !== null && error.code === 'MODULE_NOT_FOUND') {\n // no worker_threads, fallback to sub-process based workers\n } else {\n throw error;\n }\n }\n\n if (WorkerThreads &&\n /* if there is a parentPort, we are in a WorkerThread */\n WorkerThreads.parentPort !== null) {\n var parentPort = WorkerThreads.parentPort;\n worker.send = parentPort.postMessage.bind(parentPort);\n worker.on = parentPort.on.bind(parentPort);\n worker.exit = process.exit.bind(process);\n } else {\n worker.on = process.on.bind(process);\n // ignore transfer argument since it is not supported by process\n worker.send = function (message) {\n process.send(message);\n };\n // register disconnect handler only for subprocess worker to exit when parent is killed unexpectedly\n worker.on('disconnect', function () {\n process.exit(1);\n });\n worker.exit = process.exit.bind(process);\n }\n}\nelse {\n throw new Error('Script must be executed as a worker');\n}\n\nfunction convertError(error) {\n return Object.getOwnPropertyNames(error).reduce(function(product, name) {\n return Object.defineProperty(product, name, {\n\tvalue: error[name],\n\tenumerable: true\n });\n }, {});\n}\n\n/**\n * Test whether a value is a Promise via duck typing.\n * @param {*} value\n * @returns {boolean} Returns true when given value is an object\n * having functions `then` and `catch`.\n */\nfunction isPromise(value) {\n return value && (typeof value.then === 'function') && (typeof value.catch === 'function');\n}\n\n// functions available externally\nworker.methods = {};\n\n/**\n * Execute a function with provided arguments\n * @param {String} fn Stringified function\n * @param {Array} [args] Function arguments\n * @returns {*}\n */\nworker.methods.run = function run(fn, args) {\n var f = new Function('return (' + fn + ').apply(null, arguments);');\n return f.apply(f, args);\n};\n\n/**\n * Get a list with methods available on this worker\n * @return {String[]} methods\n */\nworker.methods.methods = function methods() {\n return Object.keys(worker.methods);\n};\n\n/**\n * Custom handler for when the worker is terminated.\n */\nworker.terminationHandler = undefined;\n\n/**\n * Cleanup and exit the worker.\n * @param {Number} code \n * @returns \n */\nworker.cleanupAndExit = function(code) {\n var _exit = function() {\n worker.exit(code);\n }\n\n if(!worker.terminationHandler) {\n return _exit();\n }\n\n var result = worker.terminationHandler(code);\n if (isPromise(result)) {\n result.then(_exit, _exit);\n } else {\n _exit();\n }\n}\n\nvar currentRequestId = null;\n\nworker.on('message', function (request) {\n if (request === TERMINATE_METHOD_ID) {\n return worker.cleanupAndExit(0);\n }\n try {\n var method = worker.methods[request.method];\n\n if (method) {\n currentRequestId = request.id;\n \n // execute the function\n var result = method.apply(method, request.params);\n\n if (isPromise(result)) {\n // promise returned, resolve this and then return\n result\n .then(function (result) {\n if (result instanceof Transfer) {\n worker.send({\n id: request.id,\n result: result.message,\n error: null\n }, result.transfer);\n } else {\n worker.send({\n id: request.id,\n result: result,\n error: null\n });\n }\n currentRequestId = null;\n })\n .catch(function (err) {\n worker.send({\n id: request.id,\n result: null,\n error: convertError(err)\n });\n currentRequestId = null;\n });\n }\n else {\n // immediate result\n if (result instanceof Transfer) {\n worker.send({\n id: request.id,\n result: result.message,\n error: null\n }, result.transfer);\n } else {\n worker.send({\n id: request.id,\n result: result,\n error: null\n });\n }\n\n currentRequestId = null;\n }\n }\n else {\n throw new Error('Unknown method \"' + request.method + '\"');\n }\n }\n catch (err) {\n worker.send({\n id: request.id,\n result: null,\n error: convertError(err)\n });\n }\n});\n\n/**\n * Register methods to the worker\n * @param {Object} [methods]\n * @param {import('./types.js').WorkerRegisterOptions} [options]\n */\nworker.register = function (methods, options) {\n\n if (methods) {\n for (var name in methods) {\n if (methods.hasOwnProperty(name)) {\n worker.methods[name] = methods[name];\n }\n }\n }\n\n if (options) {\n worker.terminationHandler = options.onTerminate;\n }\n\n worker.send('ready');\n};\n\nworker.emit = function (payload) {\n if (currentRequestId) {\n if (payload instanceof Transfer) {\n worker.send({\n id: currentRequestId,\n isEvent: true,\n payload: payload.message\n }, payload.transfer);\n return;\n }\n\n worker.send({\n id: currentRequestId,\n isEvent: true,\n payload\n });\n }\n};\n\nif (typeof exports !== 'undefined') {\n exports.add = worker.register;\n exports.emit = worker.emit;\n}\n"],"names":["transfer","message","this","Transfer","require$$0","worker","exit","self","postMessage","addEventListener","on","event","callback","data","send","process","Error","WorkerThreads","require","error","code","parentPort","bind","convertError","Object","getOwnPropertyNames","reduce","product","name","defineProperty","value","enumerable","isPromise","then","catch","methods","run","fn","args","f","Function","apply","keys","terminationHandler","undefined","cleanupAndExit","_exit","result","currentRequestId","request","method","id","params","err","register","options","hasOwnProperty","onTerminate","emit","payload","isEvent","exports","add"],"mappings":"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"}