@comake/skl-js-engine 1.5.3 → 1.5.4

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 (303) hide show
  1. package/package.json +1 -1
  2. package/src/util/TripleUtil.ts +22 -2
  3. package/dist/JsExecutor/PermissionBuilder.d.ts +0 -14
  4. package/dist/JsExecutor/PermissionBuilder.d.ts.map +0 -1
  5. package/dist/JsExecutor/PermissionBuilder.js +0 -58
  6. package/dist/JsExecutor/PermissionBuilder.js.map +0 -1
  7. package/dist/JsExecutor/constants.d.ts +0 -27
  8. package/dist/JsExecutor/constants.d.ts.map +0 -1
  9. package/dist/JsExecutor/constants.js +0 -30
  10. package/dist/JsExecutor/constants.js.map +0 -1
  11. package/dist/JsExecutor/denoUtils.d.ts +0 -10
  12. package/dist/JsExecutor/denoUtils.d.ts.map +0 -1
  13. package/dist/JsExecutor/denoUtils.js +0 -24
  14. package/dist/JsExecutor/denoUtils.js.map +0 -1
  15. package/dist/JsExecutor/errors.d.ts +0 -40
  16. package/dist/JsExecutor/errors.d.ts.map +0 -1
  17. package/dist/JsExecutor/errors.js +0 -67
  18. package/dist/JsExecutor/errors.js.map +0 -1
  19. package/dist/JsExecutor/examples/basic/index.d.ts +0 -1
  20. package/dist/JsExecutor/examples/basic/index.d.ts.map +0 -1
  21. package/dist/JsExecutor/examples/basic/index.js +0 -46
  22. package/dist/JsExecutor/examples/basic/index.js.map +0 -1
  23. package/dist/JsExecutor/examples/basic/process.d.ts +0 -1
  24. package/dist/JsExecutor/examples/basic/process.d.ts.map +0 -1
  25. package/dist/JsExecutor/examples/basic/process.js +0 -34
  26. package/dist/JsExecutor/examples/basic/process.js.map +0 -1
  27. package/dist/JsExecutor/examples/jsExecutor/index.d.ts +0 -2
  28. package/dist/JsExecutor/examples/jsExecutor/index.d.ts.map +0 -1
  29. package/dist/JsExecutor/examples/jsExecutor/index.js +0 -47
  30. package/dist/JsExecutor/examples/jsExecutor/index.js.map +0 -1
  31. package/dist/JsExecutor/examples/jsExecutor/process.d.ts +0 -2
  32. package/dist/JsExecutor/examples/jsExecutor/process.d.ts.map +0 -1
  33. package/dist/JsExecutor/examples/jsExecutor/process.js +0 -58
  34. package/dist/JsExecutor/examples/jsExecutor/process.js.map +0 -1
  35. package/dist/JsExecutor/index.d.ts +0 -7
  36. package/dist/JsExecutor/index.d.ts.map +0 -1
  37. package/dist/JsExecutor/index.js +0 -36
  38. package/dist/JsExecutor/index.js.map +0 -1
  39. package/dist/JsExecutor/jsExecutor.d.ts +0 -68
  40. package/dist/JsExecutor/jsExecutor.d.ts.map +0 -1
  41. package/dist/JsExecutor/jsExecutor.js +0 -171
  42. package/dist/JsExecutor/jsExecutor.js.map +0 -1
  43. package/dist/JsExecutor/jsonRpc/JsonRpcClient.d.ts +0 -165
  44. package/dist/JsExecutor/jsonRpc/JsonRpcClient.d.ts.map +0 -1
  45. package/dist/JsExecutor/jsonRpc/JsonRpcClient.js +0 -335
  46. package/dist/JsExecutor/jsonRpc/JsonRpcClient.js.map +0 -1
  47. package/dist/JsExecutor/jsonRpc/JsonRpcServer.d.ts +0 -125
  48. package/dist/JsExecutor/jsonRpc/JsonRpcServer.d.ts.map +0 -1
  49. package/dist/JsExecutor/jsonRpc/JsonRpcServer.js +0 -391
  50. package/dist/JsExecutor/jsonRpc/JsonRpcServer.js.map +0 -1
  51. package/dist/JsExecutor/jsonRpc/index.d.ts +0 -4
  52. package/dist/JsExecutor/jsonRpc/index.d.ts.map +0 -1
  53. package/dist/JsExecutor/jsonRpc/index.js +0 -23
  54. package/dist/JsExecutor/jsonRpc/index.js.map +0 -1
  55. package/dist/JsExecutor/jsonRpc/types.d.ts +0 -193
  56. package/dist/JsExecutor/jsonRpc/types.d.ts.map +0 -1
  57. package/dist/JsExecutor/jsonRpc/types.js +0 -37
  58. package/dist/JsExecutor/jsonRpc/types.js.map +0 -1
  59. package/dist/JsExecutor/transport/Transport.d.ts +0 -74
  60. package/dist/JsExecutor/transport/Transport.d.ts.map +0 -1
  61. package/dist/JsExecutor/transport/Transport.js +0 -14
  62. package/dist/JsExecutor/transport/Transport.js.map +0 -1
  63. package/dist/JsExecutor/transport/base/BaseTransport.d.ts +0 -51
  64. package/dist/JsExecutor/transport/base/BaseTransport.d.ts.map +0 -1
  65. package/dist/JsExecutor/transport/base/BaseTransport.js +0 -68
  66. package/dist/JsExecutor/transport/base/BaseTransport.js.map +0 -1
  67. package/dist/JsExecutor/transport/index.d.ts +0 -13
  68. package/dist/JsExecutor/transport/index.d.ts.map +0 -1
  69. package/dist/JsExecutor/transport/index.js +0 -36
  70. package/dist/JsExecutor/transport/index.js.map +0 -1
  71. package/dist/JsExecutor/transport/process/ProcessManager.d.ts +0 -96
  72. package/dist/JsExecutor/transport/process/ProcessManager.d.ts.map +0 -1
  73. package/dist/JsExecutor/transport/process/ProcessManager.js +0 -219
  74. package/dist/JsExecutor/transport/process/ProcessManager.js.map +0 -1
  75. package/dist/JsExecutor/transport/stdio/ChildStdioTransport.d.ts +0 -87
  76. package/dist/JsExecutor/transport/stdio/ChildStdioTransport.d.ts.map +0 -1
  77. package/dist/JsExecutor/transport/stdio/ChildStdioTransport.js +0 -219
  78. package/dist/JsExecutor/transport/stdio/ChildStdioTransport.js.map +0 -1
  79. package/dist/JsExecutor/transport/stdio/ParentStdioTransport.d.ts +0 -81
  80. package/dist/JsExecutor/transport/stdio/ParentStdioTransport.d.ts.map +0 -1
  81. package/dist/JsExecutor/transport/stdio/ParentStdioTransport.js +0 -259
  82. package/dist/JsExecutor/transport/stdio/ParentStdioTransport.js.map +0 -1
  83. package/dist/JsExecutor/transport/utils/MessageUtils.d.ts +0 -68
  84. package/dist/JsExecutor/transport/utils/MessageUtils.d.ts.map +0 -1
  85. package/dist/JsExecutor/transport/utils/MessageUtils.js +0 -135
  86. package/dist/JsExecutor/transport/utils/MessageUtils.js.map +0 -1
  87. package/dist/JsExecutor/transport/utils/PollingUtils.d.ts +0 -53
  88. package/dist/JsExecutor/transport/utils/PollingUtils.d.ts.map +0 -1
  89. package/dist/JsExecutor/transport/utils/PollingUtils.js +0 -92
  90. package/dist/JsExecutor/transport/utils/PollingUtils.js.map +0 -1
  91. package/dist/JsExecutor/types.d.ts +0 -113
  92. package/dist/JsExecutor/types.d.ts.map +0 -1
  93. package/dist/JsExecutor/types.js +0 -3
  94. package/dist/JsExecutor/types.js.map +0 -1
  95. package/dist/SklEngine.d.ts +0 -132
  96. package/dist/SklEngine.d.ts.map +0 -1
  97. package/dist/SklEngine.js +0 -1508
  98. package/dist/SklEngine.js.map +0 -1
  99. package/dist/SklEngineOptions.d.ts +0 -58
  100. package/dist/SklEngineOptions.d.ts.map +0 -1
  101. package/dist/SklEngineOptions.js +0 -3
  102. package/dist/SklEngineOptions.js.map +0 -1
  103. package/dist/constants.d.ts +0 -96
  104. package/dist/constants.d.ts.map +0 -1
  105. package/dist/constants.js +0 -103
  106. package/dist/constants.js.map +0 -1
  107. package/dist/customCapabilities.d.ts +0 -22
  108. package/dist/customCapabilities.d.ts.map +0 -1
  109. package/dist/customCapabilities.js +0 -45
  110. package/dist/customCapabilities.js.map +0 -1
  111. package/dist/examples/customCapabilitiesExample.d.ts +0 -2
  112. package/dist/examples/customCapabilitiesExample.d.ts.map +0 -1
  113. package/dist/examples/customCapabilitiesExample.js +0 -59
  114. package/dist/examples/customCapabilitiesExample.js.map +0 -1
  115. package/dist/executor.js +0 -216
  116. package/dist/hooks/globalHooks.d.ts +0 -50
  117. package/dist/hooks/globalHooks.d.ts.map +0 -1
  118. package/dist/hooks/globalHooks.js +0 -164
  119. package/dist/hooks/globalHooks.js.map +0 -1
  120. package/dist/hooks/types.d.ts +0 -9
  121. package/dist/hooks/types.d.ts.map +0 -1
  122. package/dist/hooks/types.js +0 -3
  123. package/dist/hooks/types.js.map +0 -1
  124. package/dist/index.d.ts +0 -41
  125. package/dist/index.d.ts.map +0 -1
  126. package/dist/index.js +0 -68
  127. package/dist/index.js.map +0 -1
  128. package/dist/logger.d.ts +0 -35
  129. package/dist/logger.d.ts.map +0 -1
  130. package/dist/logger.js +0 -119
  131. package/dist/logger.js.map +0 -1
  132. package/dist/mapping/Mapper.d.ts +0 -13
  133. package/dist/mapping/Mapper.d.ts.map +0 -1
  134. package/dist/mapping/Mapper.js +0 -64
  135. package/dist/mapping/Mapper.js.map +0 -1
  136. package/dist/storage/FindOperator.d.ts +0 -19
  137. package/dist/storage/FindOperator.d.ts.map +0 -1
  138. package/dist/storage/FindOperator.js +0 -23
  139. package/dist/storage/FindOperator.js.map +0 -1
  140. package/dist/storage/FindOptionsTypes.d.ts +0 -79
  141. package/dist/storage/FindOptionsTypes.d.ts.map +0 -1
  142. package/dist/storage/FindOptionsTypes.js +0 -3
  143. package/dist/storage/FindOptionsTypes.js.map +0 -1
  144. package/dist/storage/GroupOptionTypes.d.ts +0 -29
  145. package/dist/storage/GroupOptionTypes.d.ts.map +0 -1
  146. package/dist/storage/GroupOptionTypes.js +0 -3
  147. package/dist/storage/GroupOptionTypes.js.map +0 -1
  148. package/dist/storage/operator/And.d.ts +0 -4
  149. package/dist/storage/operator/And.d.ts.map +0 -1
  150. package/dist/storage/operator/And.js +0 -13
  151. package/dist/storage/operator/And.js.map +0 -1
  152. package/dist/storage/operator/Contains.d.ts +0 -3
  153. package/dist/storage/operator/Contains.d.ts.map +0 -1
  154. package/dist/storage/operator/Contains.js +0 -13
  155. package/dist/storage/operator/Contains.js.map +0 -1
  156. package/dist/storage/operator/Equal.d.ts +0 -5
  157. package/dist/storage/operator/Equal.d.ts.map +0 -1
  158. package/dist/storage/operator/Equal.js +0 -13
  159. package/dist/storage/operator/Equal.js.map +0 -1
  160. package/dist/storage/operator/Exists.d.ts +0 -3
  161. package/dist/storage/operator/Exists.d.ts.map +0 -1
  162. package/dist/storage/operator/Exists.js +0 -10
  163. package/dist/storage/operator/Exists.js.map +0 -1
  164. package/dist/storage/operator/GreaterThan.d.ts +0 -4
  165. package/dist/storage/operator/GreaterThan.d.ts.map +0 -1
  166. package/dist/storage/operator/GreaterThan.js +0 -13
  167. package/dist/storage/operator/GreaterThan.js.map +0 -1
  168. package/dist/storage/operator/GreaterThanOrEqual.d.ts +0 -4
  169. package/dist/storage/operator/GreaterThanOrEqual.d.ts.map +0 -1
  170. package/dist/storage/operator/GreaterThanOrEqual.js +0 -13
  171. package/dist/storage/operator/GreaterThanOrEqual.js.map +0 -1
  172. package/dist/storage/operator/In.d.ts +0 -4
  173. package/dist/storage/operator/In.d.ts.map +0 -1
  174. package/dist/storage/operator/In.js +0 -13
  175. package/dist/storage/operator/In.js.map +0 -1
  176. package/dist/storage/operator/Inverse.d.ts +0 -3
  177. package/dist/storage/operator/Inverse.d.ts.map +0 -1
  178. package/dist/storage/operator/Inverse.js +0 -13
  179. package/dist/storage/operator/Inverse.js.map +0 -1
  180. package/dist/storage/operator/InversePath.d.ts +0 -7
  181. package/dist/storage/operator/InversePath.d.ts.map +0 -1
  182. package/dist/storage/operator/InversePath.js +0 -13
  183. package/dist/storage/operator/InversePath.js.map +0 -1
  184. package/dist/storage/operator/InverseRelation.d.ts +0 -9
  185. package/dist/storage/operator/InverseRelation.d.ts.map +0 -1
  186. package/dist/storage/operator/InverseRelation.js +0 -13
  187. package/dist/storage/operator/InverseRelation.js.map +0 -1
  188. package/dist/storage/operator/InverseRelationOrder.d.ts +0 -8
  189. package/dist/storage/operator/InverseRelationOrder.d.ts.map +0 -1
  190. package/dist/storage/operator/InverseRelationOrder.js +0 -13
  191. package/dist/storage/operator/InverseRelationOrder.js.map +0 -1
  192. package/dist/storage/operator/LessThan.d.ts +0 -4
  193. package/dist/storage/operator/LessThan.d.ts.map +0 -1
  194. package/dist/storage/operator/LessThan.js +0 -13
  195. package/dist/storage/operator/LessThan.js.map +0 -1
  196. package/dist/storage/operator/LessThanOrEqual.d.ts +0 -4
  197. package/dist/storage/operator/LessThanOrEqual.d.ts.map +0 -1
  198. package/dist/storage/operator/LessThanOrEqual.js +0 -13
  199. package/dist/storage/operator/LessThanOrEqual.js.map +0 -1
  200. package/dist/storage/operator/Not.d.ts +0 -3
  201. package/dist/storage/operator/Not.d.ts.map +0 -1
  202. package/dist/storage/operator/Not.js +0 -13
  203. package/dist/storage/operator/Not.js.map +0 -1
  204. package/dist/storage/operator/OneOrMorePath.d.ts +0 -7
  205. package/dist/storage/operator/OneOrMorePath.d.ts.map +0 -1
  206. package/dist/storage/operator/OneOrMorePath.js +0 -13
  207. package/dist/storage/operator/OneOrMorePath.js.map +0 -1
  208. package/dist/storage/operator/Or.d.ts +0 -4
  209. package/dist/storage/operator/Or.d.ts.map +0 -1
  210. package/dist/storage/operator/Or.js +0 -13
  211. package/dist/storage/operator/Or.js.map +0 -1
  212. package/dist/storage/operator/Sequence.d.ts +0 -3
  213. package/dist/storage/operator/Sequence.d.ts.map +0 -1
  214. package/dist/storage/operator/Sequence.js +0 -13
  215. package/dist/storage/operator/Sequence.js.map +0 -1
  216. package/dist/storage/operator/SequencePath.d.ts +0 -7
  217. package/dist/storage/operator/SequencePath.d.ts.map +0 -1
  218. package/dist/storage/operator/SequencePath.js +0 -13
  219. package/dist/storage/operator/SequencePath.js.map +0 -1
  220. package/dist/storage/operator/ZeroOrMorePath.d.ts +0 -7
  221. package/dist/storage/operator/ZeroOrMorePath.d.ts.map +0 -1
  222. package/dist/storage/operator/ZeroOrMorePath.js +0 -13
  223. package/dist/storage/operator/ZeroOrMorePath.js.map +0 -1
  224. package/dist/storage/query-adapter/QueryAdapter.d.ts +0 -99
  225. package/dist/storage/query-adapter/QueryAdapter.d.ts.map +0 -1
  226. package/dist/storage/query-adapter/QueryAdapter.js +0 -3
  227. package/dist/storage/query-adapter/QueryAdapter.js.map +0 -1
  228. package/dist/storage/query-adapter/sparql/SparqlQueryAdapter.d.ts +0 -40
  229. package/dist/storage/query-adapter/sparql/SparqlQueryAdapter.d.ts.map +0 -1
  230. package/dist/storage/query-adapter/sparql/SparqlQueryAdapter.js +0 -315
  231. package/dist/storage/query-adapter/sparql/SparqlQueryAdapter.js.map +0 -1
  232. package/dist/storage/query-adapter/sparql/SparqlQueryAdapterOptions.d.ts +0 -34
  233. package/dist/storage/query-adapter/sparql/SparqlQueryAdapterOptions.d.ts.map +0 -1
  234. package/dist/storage/query-adapter/sparql/SparqlQueryAdapterOptions.js +0 -3
  235. package/dist/storage/query-adapter/sparql/SparqlQueryAdapterOptions.js.map +0 -1
  236. package/dist/storage/query-adapter/sparql/SparqlQueryBuilder.d.ts +0 -104
  237. package/dist/storage/query-adapter/sparql/SparqlQueryBuilder.d.ts.map +0 -1
  238. package/dist/storage/query-adapter/sparql/SparqlQueryBuilder.js +0 -1210
  239. package/dist/storage/query-adapter/sparql/SparqlQueryBuilder.js.map +0 -1
  240. package/dist/storage/query-adapter/sparql/SparqlUpdateBuilder.d.ts +0 -41
  241. package/dist/storage/query-adapter/sparql/SparqlUpdateBuilder.d.ts.map +0 -1
  242. package/dist/storage/query-adapter/sparql/SparqlUpdateBuilder.js +0 -305
  243. package/dist/storage/query-adapter/sparql/SparqlUpdateBuilder.js.map +0 -1
  244. package/dist/storage/query-adapter/sparql/VariableGenerator.d.ts +0 -5
  245. package/dist/storage/query-adapter/sparql/VariableGenerator.d.ts.map +0 -1
  246. package/dist/storage/query-adapter/sparql/VariableGenerator.js +0 -14
  247. package/dist/storage/query-adapter/sparql/VariableGenerator.js.map +0 -1
  248. package/dist/storage/query-adapter/sparql/query-executor/InMemorySparqlQueryExecutor.d.ts +0 -19
  249. package/dist/storage/query-adapter/sparql/query-executor/InMemorySparqlQueryExecutor.d.ts.map +0 -1
  250. package/dist/storage/query-adapter/sparql/query-executor/InMemorySparqlQueryExecutor.js +0 -90
  251. package/dist/storage/query-adapter/sparql/query-executor/InMemorySparqlQueryExecutor.js.map +0 -1
  252. package/dist/storage/query-adapter/sparql/query-executor/SparqlEndpointQueryExecutor.d.ts +0 -27
  253. package/dist/storage/query-adapter/sparql/query-executor/SparqlEndpointQueryExecutor.d.ts.map +0 -1
  254. package/dist/storage/query-adapter/sparql/query-executor/SparqlEndpointQueryExecutor.js +0 -116
  255. package/dist/storage/query-adapter/sparql/query-executor/SparqlEndpointQueryExecutor.js.map +0 -1
  256. package/dist/storage/query-adapter/sparql/query-executor/SparqlQueryExecutor.d.ts +0 -34
  257. package/dist/storage/query-adapter/sparql/query-executor/SparqlQueryExecutor.d.ts.map +0 -1
  258. package/dist/storage/query-adapter/sparql/query-executor/SparqlQueryExecutor.js +0 -3
  259. package/dist/storage/query-adapter/sparql/query-executor/SparqlQueryExecutor.js.map +0 -1
  260. package/dist/tools/explain-findall-sparql.d.ts +0 -2
  261. package/dist/tools/explain-findall-sparql.d.ts.map +0 -1
  262. package/dist/tools/explain-findall-sparql.js +0 -303
  263. package/dist/tools/explain-findall-sparql.js.map +0 -1
  264. package/dist/util/PerformanceLogger.d.ts +0 -28
  265. package/dist/util/PerformanceLogger.d.ts.map +0 -1
  266. package/dist/util/PerformanceLogger.js +0 -223
  267. package/dist/util/PerformanceLogger.js.map +0 -1
  268. package/dist/util/ReadCacheHelper.d.ts +0 -14
  269. package/dist/util/ReadCacheHelper.d.ts.map +0 -1
  270. package/dist/util/ReadCacheHelper.js +0 -61
  271. package/dist/util/ReadCacheHelper.js.map +0 -1
  272. package/dist/util/SparqlUtil.d.ts +0 -72
  273. package/dist/util/SparqlUtil.d.ts.map +0 -1
  274. package/dist/util/SparqlUtil.js +0 -456
  275. package/dist/util/SparqlUtil.js.map +0 -1
  276. package/dist/util/TripleUtil.d.ts +0 -10
  277. package/dist/util/TripleUtil.d.ts.map +0 -1
  278. package/dist/util/TripleUtil.js +0 -402
  279. package/dist/util/TripleUtil.js.map +0 -1
  280. package/dist/util/Types.d.ts +0 -271
  281. package/dist/util/Types.d.ts.map +0 -1
  282. package/dist/util/Types.js +0 -3
  283. package/dist/util/Types.js.map +0 -1
  284. package/dist/util/Util.d.ts +0 -26
  285. package/dist/util/Util.d.ts.map +0 -1
  286. package/dist/util/Util.js +0 -138
  287. package/dist/util/Util.js.map +0 -1
  288. package/dist/util/Vocabularies/Shared.d.ts +0 -13
  289. package/dist/util/Vocabularies/Shared.d.ts.map +0 -1
  290. package/dist/util/Vocabularies/Shared.js +0 -96
  291. package/dist/util/Vocabularies/Shared.js.map +0 -1
  292. package/dist/util/Vocabularies/helper.d.ts +0 -5
  293. package/dist/util/Vocabularies/helper.d.ts.map +0 -1
  294. package/dist/util/Vocabularies/helper.js +0 -10
  295. package/dist/util/Vocabularies/helper.js.map +0 -1
  296. package/dist/util/Vocabularies/index.d.ts +0 -8
  297. package/dist/util/Vocabularies/index.d.ts.map +0 -1
  298. package/dist/util/Vocabularies/index.js +0 -114
  299. package/dist/util/Vocabularies/index.js.map +0 -1
  300. package/dist/util/safeJsonStringify.d.ts +0 -1
  301. package/dist/util/safeJsonStringify.d.ts.map +0 -1
  302. package/dist/util/safeJsonStringify.js +0 -19
  303. package/dist/util/safeJsonStringify.js.map +0 -1
@@ -1,391 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.JsonRpcServer = void 0;
4
- const types_1 = require("./types");
5
- /**
6
- * JSON-RPC 2.0 Server implementation
7
- */
8
- class JsonRpcServer {
9
- constructor(config = {}) {
10
- this.methods = {};
11
- this.pendingRequests = new Map();
12
- this.listeners = {};
13
- this.config = {
14
- maxConcurrentRequests: config.maxConcurrentRequests ?? 100,
15
- requestTimeout: config.requestTimeout ?? 30000,
16
- strictValidation: config.strictValidation ?? true,
17
- errorHandler: config.errorHandler ?? this.defaultErrorHandler.bind(this)
18
- };
19
- }
20
- /**
21
- * Register a method handler
22
- * @param method - Method name
23
- * @param handler - Method handler function
24
- */
25
- registerMethod(method, handler) {
26
- if (typeof method !== 'string' || method.length === 0) {
27
- throw new Error('Method name must be a non-empty string');
28
- }
29
- if (typeof handler !== 'function') {
30
- throw new Error('Handler must be a function');
31
- }
32
- this.methods[method] = handler;
33
- }
34
- /**
35
- * Unregister a method handler
36
- * @param method - Method name
37
- */
38
- unregisterMethod(method) {
39
- Reflect.deleteProperty(this.methods, method);
40
- }
41
- /**
42
- * Get all registered methods
43
- * @returns Array of method names
44
- */
45
- getRegisteredMethods() {
46
- return Object.keys(this.methods);
47
- }
48
- /**
49
- * Process an incoming JSON-RPC message
50
- * @param messageData - Raw message data (string or object)
51
- * @returns Promise resolving to response (if request) or undefined (if notification)
52
- */
53
- async processMessage(messageData) {
54
- let message;
55
- try {
56
- // Parse message if it's a string
57
- if (typeof messageData === 'string') {
58
- try {
59
- message = JSON.parse(messageData);
60
- }
61
- catch {
62
- return this.createErrorResponse(null, {
63
- code: types_1.JsonRpcErrorCode.parseError,
64
- message: 'Parse error',
65
- data: 'Invalid JSON'
66
- });
67
- }
68
- }
69
- else {
70
- message = messageData;
71
- }
72
- // Validate message format
73
- const validation = this.validateMessage(message);
74
- if (!validation.valid) {
75
- return this.createErrorResponse(this.extractId(message), validation.error);
76
- }
77
- // Handle request or notification
78
- if (this.isRequest(message)) {
79
- this.emit('request', message);
80
- return await this.handleRequest(message);
81
- }
82
- if (this.isNotification(message)) {
83
- this.emit('notification', message);
84
- await this.handleNotification(message);
85
- return;
86
- }
87
- // This shouldn't happen after validation, but just in case
88
- return this.createErrorResponse(this.extractId(message), {
89
- code: types_1.JsonRpcErrorCode.invalidRequest,
90
- message: 'Invalid request',
91
- data: 'Message is neither request nor notification'
92
- });
93
- }
94
- catch (error) {
95
- const jsonRpcError = this.config.errorHandler(error, this.isRequest(message) ? message : undefined);
96
- return this.createErrorResponse(this.extractId(message), jsonRpcError);
97
- }
98
- }
99
- /**
100
- * Handle a JSON-RPC request
101
- * @param request - JSON-RPC request object
102
- * @returns Promise resolving to response
103
- */
104
- async handleRequest(request) {
105
- // Check concurrent request limit
106
- if (this.pendingRequests.size >= this.config.maxConcurrentRequests) {
107
- return this.createErrorResponse(request.id, {
108
- code: types_1.JsonRpcErrorCode.internalError,
109
- message: 'Server overloaded',
110
- data: `Maximum concurrent requests (${this.config.maxConcurrentRequests}) exceeded`
111
- });
112
- }
113
- // Check if method exists
114
- const handler = this.methods[request.method];
115
- if (!handler) {
116
- return this.createErrorResponse(request.id, {
117
- code: types_1.JsonRpcErrorCode.methodNotFound,
118
- message: 'Method not found',
119
- data: `Method '${request.method}' is not registered`
120
- });
121
- }
122
- // Execute method with timeout
123
- const requestPromise = this.executeMethodWithTimeout(handler, request);
124
- try {
125
- const result = await requestPromise;
126
- return this.createSuccessResponse(request.id, result);
127
- }
128
- catch (error) {
129
- const jsonRpcError = this.config.errorHandler(error, request);
130
- return this.createErrorResponse(request.id, jsonRpcError);
131
- }
132
- finally {
133
- this.pendingRequests.delete(request.id);
134
- }
135
- }
136
- /**
137
- * Handle a JSON-RPC notification
138
- * @param notification - JSON-RPC notification object
139
- */
140
- async handleNotification(notification) {
141
- const handler = this.methods[notification.method];
142
- if (!handler) {
143
- // For notifications, we silently ignore unknown methods
144
- return;
145
- }
146
- try {
147
- // Handle both sync and async functions by wrapping in Promise.resolve
148
- const result = handler(notification.params);
149
- await Promise.resolve(result);
150
- }
151
- catch (error) {
152
- // For notifications, we emit error but don't send response
153
- this.emit('error', error);
154
- }
155
- }
156
- /**
157
- * Execute method with timeout
158
- * @param handler - Method handler
159
- * @param request - JSON-RPC request
160
- * @returns Promise resolving to result
161
- */
162
- async executeMethodWithTimeout(handler, request) {
163
- return new Promise((resolve, reject) => {
164
- const timeoutId = setTimeout(() => {
165
- reject(new Error(`Method '${request.method}' timed out after ${this.config.requestTimeout}ms`));
166
- }, this.config.requestTimeout);
167
- try {
168
- const pendingRequest = {
169
- id: request.id,
170
- method: request.method,
171
- timestamp: Date.now(),
172
- timeout: this.config.requestTimeout,
173
- resolve(value) {
174
- clearTimeout(timeoutId);
175
- resolve(value);
176
- },
177
- reject(error) {
178
- clearTimeout(timeoutId);
179
- reject(error);
180
- }
181
- };
182
- // Handle both sync and async functions by wrapping in Promise.resolve
183
- const result = handler(request.params, request.id);
184
- Promise.resolve(result)
185
- .then((finalResult) => {
186
- clearTimeout(timeoutId);
187
- pendingRequest.resolve(finalResult);
188
- })
189
- .catch((error) => {
190
- clearTimeout(timeoutId);
191
- pendingRequest.reject(error);
192
- });
193
- }
194
- catch (error) {
195
- // Handle synchronous errors (like sync functions that throw)
196
- clearTimeout(timeoutId);
197
- reject(error);
198
- }
199
- });
200
- }
201
- /**
202
- * Create a pending request promise with timeout
203
- * @param request - JSON-RPC request
204
- * @param timeout - Timeout in milliseconds
205
- * @returns Promise resolving to the result
206
- */
207
- async createPendingRequest(request, timeout) {
208
- return new Promise((resolve, reject) => {
209
- const timeoutId = setTimeout(() => {
210
- this.pendingRequests.delete(request.id);
211
- this.emit('timeout', request);
212
- reject(new Error(`Request ${request.id} timed out after ${timeout}ms`));
213
- }, timeout);
214
- const pendingRequest = {
215
- id: request.id,
216
- method: request.method,
217
- timestamp: Date.now(),
218
- timeout,
219
- resolve(value) {
220
- clearTimeout(timeoutId);
221
- resolve(value);
222
- },
223
- reject(error) {
224
- clearTimeout(timeoutId);
225
- reject(error);
226
- }
227
- };
228
- this.pendingRequests.set(request.id, pendingRequest);
229
- });
230
- }
231
- /**
232
- * Validate JSON-RPC message format
233
- * @param message - Message to validate
234
- * @returns Validation result
235
- */
236
- validateMessage(message) {
237
- if (!message || typeof message !== 'object') {
238
- return {
239
- valid: false,
240
- error: {
241
- code: types_1.JsonRpcErrorCode.invalidRequest,
242
- message: 'Invalid request',
243
- data: 'Message must be an object'
244
- }
245
- };
246
- }
247
- if (message.jsonrpc !== types_1.JSONRPC_VERSION) {
248
- return {
249
- valid: false,
250
- error: {
251
- code: types_1.JsonRpcErrorCode.invalidRequest,
252
- message: 'Invalid request',
253
- data: `Invalid jsonrpc version. Expected '${types_1.JSONRPC_VERSION}'`
254
- }
255
- };
256
- }
257
- if (typeof message.method !== 'string' || message.method.length === 0) {
258
- return {
259
- valid: false,
260
- error: {
261
- code: types_1.JsonRpcErrorCode.invalidRequest,
262
- message: 'Invalid request',
263
- data: 'Method must be a non-empty string'
264
- }
265
- };
266
- }
267
- // Check if it's a request (has id) or notification (no id)
268
- const hasId = 'id' in message;
269
- if (hasId && typeof message.id !== 'string' && typeof message.id !== 'number' && message.id !== null) {
270
- return {
271
- valid: false,
272
- error: {
273
- code: types_1.JsonRpcErrorCode.invalidRequest,
274
- message: 'Invalid request',
275
- data: 'ID must be a string, number, or null'
276
- }
277
- };
278
- }
279
- return { valid: true };
280
- }
281
- /**
282
- * Check if message is a request (has id)
283
- */
284
- isRequest(message) {
285
- return message && typeof message === 'object' && 'id' in message;
286
- }
287
- /**
288
- * Check if message is a notification (no id)
289
- */
290
- isNotification(message) {
291
- return message && typeof message === 'object' && !('id' in message);
292
- }
293
- /**
294
- * Extract ID from message safely
295
- */
296
- extractId(message) {
297
- if (message && typeof message === 'object' && 'id' in message) {
298
- return message.id;
299
- }
300
- return null;
301
- }
302
- /**
303
- * Create success response
304
- */
305
- createSuccessResponse(id, result) {
306
- return {
307
- jsonrpc: types_1.JSONRPC_VERSION,
308
- result,
309
- id
310
- };
311
- }
312
- /**
313
- * Create error response
314
- */
315
- createErrorResponse(id, error) {
316
- return {
317
- jsonrpc: types_1.JSONRPC_VERSION,
318
- error,
319
- id
320
- };
321
- }
322
- /**
323
- * Default error handler
324
- */
325
- defaultErrorHandler(error, request) {
326
- // Handle parameter validation errors
327
- if (error.message.includes('invalid param')) {
328
- return {
329
- code: types_1.JsonRpcErrorCode.invalidParams,
330
- message: 'Invalid params',
331
- data: error.message
332
- };
333
- }
334
- // Default to internal error
335
- return {
336
- code: types_1.JsonRpcErrorCode.internalError,
337
- message: error.message || 'Internal error',
338
- data: error.stack
339
- };
340
- }
341
- /**
342
- * Register event listener
343
- */
344
- on(event, listener) {
345
- this.listeners[event] = listener;
346
- }
347
- /**
348
- * Remove event listener
349
- */
350
- off(event, listener) {
351
- if (this.listeners[event] === listener) {
352
- Reflect.deleteProperty(this.listeners, event);
353
- }
354
- }
355
- /**
356
- * Emit event
357
- */
358
- emit(event, ...args) {
359
- const listener = this.listeners[event];
360
- if (listener) {
361
- listener(...args);
362
- }
363
- }
364
- /**
365
- * Get server statistics
366
- */
367
- getStats() {
368
- return {
369
- registeredMethods: Object.keys(this.methods).length,
370
- pendingRequests: this.pendingRequests.size,
371
- maxConcurrentRequests: this.config.maxConcurrentRequests
372
- };
373
- }
374
- /**
375
- * Shutdown server (reject all pending requests)
376
- */
377
- async shutdown() {
378
- // Reject all pending requests
379
- for (const [id, pendingRequest] of this.pendingRequests) {
380
- try {
381
- pendingRequest.reject(new Error('Server shutdown'));
382
- }
383
- catch {
384
- // Ignore errors during shutdown
385
- }
386
- }
387
- this.pendingRequests.clear();
388
- }
389
- }
390
- exports.JsonRpcServer = JsonRpcServer;
391
- //# sourceMappingURL=JsonRpcServer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"JsonRpcServer.js","sourceRoot":"","sources":["../../../src/JsExecutor/jsonRpc/JsonRpcServer.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n JsonRpcError,\n JsonRpcId,\n JsonRpcMessage,\n JsonRpcMethodHandler,\n JsonRpcMethodRegistry,\n JsonRpcNotification,\n JsonRpcRequest,\n JsonRpcResponse,\n JsonRpcServerConfig,\n PendingRequest,\n ValidationResult\n} from './types';\nimport { JsonRpcErrorCode, JSONRPC_VERSION } from './types';\n\ntype TGetStatsResponse = {\n registeredMethods: number;\n pendingRequests: number;\n maxConcurrentRequests: number;\n};\n\n/**\n * Event emitter interface for JSON-RPC server events\n */\nexport interface JsonRpcServerEvents {\n request: (request: JsonRpcRequest) => void;\n notification: (notification: JsonRpcNotification) => void;\n response: (response: JsonRpcResponse) => void;\n error: (error: Error, request?: JsonRpcRequest) => void;\n timeout: (request: JsonRpcRequest) => void;\n}\n\n/**\n * JSON-RPC 2.0 Server implementation\n */\nexport class JsonRpcServer {\n private readonly methods: JsonRpcMethodRegistry = {};\n private readonly config: Required<JsonRpcServerConfig>;\n private readonly pendingRequests = new Map<JsonRpcId, PendingRequest>();\n private readonly listeners: Partial<JsonRpcServerEvents> = {};\n\n public constructor(config: JsonRpcServerConfig = {}) {\n this.config = {\n maxConcurrentRequests: config.maxConcurrentRequests ?? 100,\n requestTimeout: config.requestTimeout ?? 30000,\n strictValidation: config.strictValidation ?? true,\n errorHandler: config.errorHandler ?? this.defaultErrorHandler.bind(this)\n };\n }\n\n /**\n * Register a method handler\n * @param method - Method name\n * @param handler - Method handler function\n */\n public registerMethod<TParams, TResult>(method: string, handler: JsonRpcMethodHandler<TParams, TResult>): void {\n if (typeof method !== 'string' || method.length === 0) {\n throw new Error('Method name must be a non-empty string');\n }\n if (typeof handler !== 'function') {\n throw new Error('Handler must be a function');\n }\n this.methods[method] = handler as JsonRpcMethodHandler;\n }\n\n /**\n * Unregister a method handler\n * @param method - Method name\n */\n public unregisterMethod(method: string): void {\n Reflect.deleteProperty(this.methods, method);\n }\n\n /**\n * Get all registered methods\n * @returns Array of method names\n */\n public getRegisteredMethods(): string[] {\n return Object.keys(this.methods);\n }\n\n /**\n * Process an incoming JSON-RPC message\n * @param messageData - Raw message data (string or object)\n * @returns Promise resolving to response (if request) or undefined (if notification)\n */\n public async processMessage(messageData: string | object): Promise<JsonRpcResponse | undefined> {\n let message: JsonRpcMessage;\n\n try {\n // Parse message if it's a string\n if (typeof messageData === 'string') {\n try {\n message = JSON.parse(messageData);\n } catch {\n return this.createErrorResponse(null, {\n code: JsonRpcErrorCode.parseError,\n message: 'Parse error',\n data: 'Invalid JSON'\n });\n }\n } else {\n message = messageData as JsonRpcMessage;\n }\n\n // Validate message format\n const validation = this.validateMessage(message);\n if (!validation.valid) {\n return this.createErrorResponse(this.extractId(message), validation.error!);\n }\n\n // Handle request or notification\n if (this.isRequest(message)) {\n this.emit('request', message);\n return await this.handleRequest(message);\n }\n if (this.isNotification(message)) {\n this.emit('notification', message);\n await this.handleNotification(message);\n return;\n }\n // This shouldn't happen after validation, but just in case\n return this.createErrorResponse(this.extractId(message), {\n code: JsonRpcErrorCode.invalidRequest,\n message: 'Invalid request',\n data: 'Message is neither request nor notification'\n });\n } catch (error: unknown) {\n const jsonRpcError = this.config.errorHandler(error as Error, this.isRequest(message!) ? message : undefined);\n return this.createErrorResponse(this.extractId(message!), jsonRpcError);\n }\n }\n\n /**\n * Handle a JSON-RPC request\n * @param request - JSON-RPC request object\n * @returns Promise resolving to response\n */\n private async handleRequest(request: JsonRpcRequest): Promise<JsonRpcResponse> {\n // Check concurrent request limit\n if (this.pendingRequests.size >= this.config.maxConcurrentRequests) {\n return this.createErrorResponse(request.id, {\n code: JsonRpcErrorCode.internalError,\n message: 'Server overloaded',\n data: `Maximum concurrent requests (${this.config.maxConcurrentRequests}) exceeded`\n });\n }\n\n // Check if method exists\n const handler = this.methods[request.method];\n if (!handler) {\n return this.createErrorResponse(request.id, {\n code: JsonRpcErrorCode.methodNotFound,\n message: 'Method not found',\n data: `Method '${request.method}' is not registered`\n });\n }\n\n // Execute method with timeout\n const requestPromise = this.executeMethodWithTimeout(handler, request);\n\n try {\n const result = await requestPromise;\n return this.createSuccessResponse(request.id, result);\n } catch (error: unknown) {\n const jsonRpcError = this.config.errorHandler(error as Error, request);\n return this.createErrorResponse(request.id, jsonRpcError);\n } finally {\n this.pendingRequests.delete(request.id);\n }\n }\n\n /**\n * Handle a JSON-RPC notification\n * @param notification - JSON-RPC notification object\n */\n private async handleNotification(notification: JsonRpcNotification): Promise<void> {\n const handler = this.methods[notification.method];\n if (!handler) {\n // For notifications, we silently ignore unknown methods\n return;\n }\n\n try {\n // Handle both sync and async functions by wrapping in Promise.resolve\n const result = handler(notification.params);\n await Promise.resolve(result);\n } catch (error: unknown) {\n // For notifications, we emit error but don't send response\n this.emit('error', error as Error);\n }\n }\n\n /**\n * Execute method with timeout\n * @param handler - Method handler\n * @param request - JSON-RPC request\n * @returns Promise resolving to result\n */\n private async executeMethodWithTimeout<TResult>(\n handler: JsonRpcMethodHandler,\n request: JsonRpcRequest\n ): Promise<TResult> {\n return new Promise((resolve, reject): void => {\n const timeoutId = setTimeout((): void => {\n reject(new Error(`Method '${request.method}' timed out after ${this.config.requestTimeout}ms`));\n }, this.config.requestTimeout);\n\n try {\n const pendingRequest: PendingRequest<TResult> = {\n id: request.id,\n method: request.method,\n timestamp: Date.now(),\n timeout: this.config.requestTimeout,\n resolve(value: TResult) {\n clearTimeout(timeoutId);\n resolve(value);\n },\n reject(error: Error) {\n clearTimeout(timeoutId);\n reject(error);\n }\n };\n\n // Handle both sync and async functions by wrapping in Promise.resolve\n const result = handler(request.params, request.id);\n Promise.resolve(result)\n .then((finalResult: any): void => {\n clearTimeout(timeoutId);\n pendingRequest.resolve(finalResult);\n })\n .catch((error: unknown): void => {\n clearTimeout(timeoutId);\n pendingRequest.reject(error as Error);\n });\n } catch (error: unknown) {\n // Handle synchronous errors (like sync functions that throw)\n clearTimeout(timeoutId);\n reject(error);\n }\n });\n }\n\n /**\n * Create a pending request promise with timeout\n * @param request - JSON-RPC request\n * @param timeout - Timeout in milliseconds\n * @returns Promise resolving to the result\n */\n private async createPendingRequest<TResult>(request: JsonRpcRequest, timeout: number): Promise<TResult> {\n return new Promise<TResult>((resolve, reject) => {\n const timeoutId = setTimeout(() => {\n this.pendingRequests.delete(request.id);\n this.emit('timeout', request);\n reject(new Error(`Request ${request.id} timed out after ${timeout}ms`));\n }, timeout);\n\n const pendingRequest: PendingRequest<TResult> = {\n id: request.id,\n method: request.method,\n timestamp: Date.now(),\n timeout,\n resolve(value: TResult) {\n clearTimeout(timeoutId);\n resolve(value);\n },\n reject(error: Error) {\n clearTimeout(timeoutId);\n reject(error);\n }\n };\n\n this.pendingRequests.set(request.id, pendingRequest);\n });\n }\n\n /**\n * Validate JSON-RPC message format\n * @param message - Message to validate\n * @returns Validation result\n */\n private validateMessage(message: any): ValidationResult {\n if (!message || typeof message !== 'object') {\n return {\n valid: false,\n error: {\n code: JsonRpcErrorCode.invalidRequest,\n message: 'Invalid request',\n data: 'Message must be an object'\n }\n };\n }\n\n if (message.jsonrpc !== JSONRPC_VERSION) {\n return {\n valid: false,\n error: {\n code: JsonRpcErrorCode.invalidRequest,\n message: 'Invalid request',\n data: `Invalid jsonrpc version. Expected '${JSONRPC_VERSION}'`\n }\n };\n }\n\n if (typeof message.method !== 'string' || message.method.length === 0) {\n return {\n valid: false,\n error: {\n code: JsonRpcErrorCode.invalidRequest,\n message: 'Invalid request',\n data: 'Method must be a non-empty string'\n }\n };\n }\n\n // Check if it's a request (has id) or notification (no id)\n const hasId = 'id' in message;\n if (hasId && typeof message.id !== 'string' && typeof message.id !== 'number' && message.id !== null) {\n return {\n valid: false,\n error: {\n code: JsonRpcErrorCode.invalidRequest,\n message: 'Invalid request',\n data: 'ID must be a string, number, or null'\n }\n };\n }\n\n return { valid: true };\n }\n\n /**\n * Check if message is a request (has id)\n */\n private isRequest(message: any): message is JsonRpcRequest {\n return message && typeof message === 'object' && 'id' in message;\n }\n\n /**\n * Check if message is a notification (no id)\n */\n private isNotification(message: any): message is JsonRpcNotification {\n return message && typeof message === 'object' && !('id' in message);\n }\n\n /**\n * Extract ID from message safely\n */\n private extractId(message: any): JsonRpcId {\n if (message && typeof message === 'object' && 'id' in message) {\n return message.id;\n }\n return null;\n }\n\n /**\n * Create success response\n */\n private createSuccessResponse(id: JsonRpcId, result: any): JsonRpcResponse {\n return {\n jsonrpc: JSONRPC_VERSION,\n result,\n id\n };\n }\n\n /**\n * Create error response\n */\n private createErrorResponse(id: JsonRpcId, error: JsonRpcError): JsonRpcResponse {\n return {\n jsonrpc: JSONRPC_VERSION,\n error,\n id\n };\n }\n\n /**\n * Default error handler\n */\n private defaultErrorHandler(error: Error, request?: JsonRpcRequest): JsonRpcError {\n // Handle parameter validation errors\n if (error.message.includes('invalid param')) {\n return {\n code: JsonRpcErrorCode.invalidParams,\n message: 'Invalid params',\n data: error.message\n };\n }\n\n // Default to internal error\n return {\n code: JsonRpcErrorCode.internalError,\n message: error.message || 'Internal error',\n data: error.stack\n };\n }\n\n /**\n * Register event listener\n */\n public on<TKey extends keyof JsonRpcServerEvents>(event: TKey, listener: JsonRpcServerEvents[TKey]): void {\n this.listeners[event] = listener;\n }\n\n /**\n * Remove event listener\n */\n public off<TKey extends keyof JsonRpcServerEvents>(event: TKey, listener: JsonRpcServerEvents[TKey]): void {\n if (this.listeners[event] === listener) {\n Reflect.deleteProperty(this.listeners, event);\n }\n }\n\n /**\n * Emit event\n */\n private emit<TKey extends keyof JsonRpcServerEvents>(\n event: TKey,\n ...args: Parameters<JsonRpcServerEvents[TKey]>\n ): void {\n const listener = this.listeners[event];\n if (listener) {\n (listener as any)(...args);\n }\n }\n\n /**\n * Get server statistics\n */\n public getStats(): TGetStatsResponse {\n return {\n registeredMethods: Object.keys(this.methods).length,\n pendingRequests: this.pendingRequests.size,\n maxConcurrentRequests: this.config.maxConcurrentRequests\n };\n }\n\n /**\n * Shutdown server (reject all pending requests)\n */\n public async shutdown(): Promise<void> {\n // Reject all pending requests\n for (const [ id, pendingRequest ] of this.pendingRequests) {\n try {\n pendingRequest.reject(new Error('Server shutdown'));\n } catch {\n // Ignore errors during shutdown\n }\n }\n\n this.pendingRequests.clear();\n }\n}\n"]}
@@ -1,4 +0,0 @@
1
- export { JsonRpcClient } from './JsonRpcClient';
2
- export { JsonRpcServer } from './JsonRpcServer';
3
- export * from './types';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/JsExecutor/jsonRpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,cAAc,SAAS,CAAC"}
@@ -1,23 +0,0 @@
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
- exports.JsonRpcServer = exports.JsonRpcClient = void 0;
18
- var JsonRpcClient_1 = require("./JsonRpcClient");
19
- Object.defineProperty(exports, "JsonRpcClient", { enumerable: true, get: function () { return JsonRpcClient_1.JsonRpcClient; } });
20
- var JsonRpcServer_1 = require("./JsonRpcServer");
21
- Object.defineProperty(exports, "JsonRpcServer", { enumerable: true, get: function () { return JsonRpcServer_1.JsonRpcServer; } });
22
- __exportStar(require("./types"), exports);
23
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/JsExecutor/jsonRpc/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,0CAAwB","sourcesContent":["export { JsonRpcClient } from './JsonRpcClient';\nexport { JsonRpcServer } from './JsonRpcServer';\nexport * from './types';\n\n"]}
@@ -1,193 +0,0 @@
1
- /**
2
- * JSON-RPC 2.0 Protocol Types
3
- * Based on: https://www.jsonrpc.org/specification
4
- */
5
- /**
6
- * JSON-RPC 2.0 version identifier
7
- */
8
- export declare const JSONRPC_VERSION: "2.0";
9
- /**
10
- * JSON-RPC request/response identifier
11
- */
12
- export declare type JsonRpcId = string | number | null;
13
- /**
14
- * JSON-RPC parameters (can be object or array)
15
- */
16
- export declare type JsonRpcParams = Record<string, any> | any[] | undefined;
17
- /**
18
- * JSON-RPC Error codes (standard codes from spec)
19
- */
20
- export declare enum JsonRpcErrorCode {
21
- parseError = -32700,
22
- invalidRequest = -32600,
23
- methodNotFound = -32601,
24
- invalidParams = -32602,
25
- internalError = -32603,
26
- serverErrorStart = -32099,
27
- serverErrorEnd = -32000
28
- }
29
- /**
30
- * JSON-RPC Error object
31
- */
32
- export interface JsonRpcError {
33
- code: JsonRpcErrorCode | number;
34
- message: string;
35
- data?: any;
36
- }
37
- /**
38
- * JSON-RPC Request object
39
- */
40
- export interface JsonRpcRequest<TParams = JsonRpcParams> {
41
- jsonrpc: typeof JSONRPC_VERSION;
42
- method: string;
43
- params?: TParams;
44
- id: JsonRpcId;
45
- }
46
- /**
47
- * JSON-RPC Notification object (request without id)
48
- */
49
- export interface JsonRpcNotification<TParams = JsonRpcParams> {
50
- jsonrpc: typeof JSONRPC_VERSION;
51
- method: string;
52
- params?: TParams;
53
- }
54
- /**
55
- * JSON-RPC Success Response object
56
- */
57
- export interface JsonRpcSuccessResponse<TResult = any> {
58
- jsonrpc: typeof JSONRPC_VERSION;
59
- result: TResult;
60
- id: JsonRpcId;
61
- }
62
- /**
63
- * JSON-RPC Error Response object
64
- */
65
- export interface JsonRpcErrorResponse {
66
- jsonrpc: typeof JSONRPC_VERSION;
67
- error: JsonRpcError;
68
- id: JsonRpcId;
69
- }
70
- /**
71
- * JSON-RPC Response object (success or error)
72
- */
73
- export declare type JsonRpcResponse<TResult = any> = JsonRpcSuccessResponse<TResult> | JsonRpcErrorResponse;
74
- /**
75
- * JSON-RPC Message (request, notification, or response)
76
- */
77
- export declare type JsonRpcMessage<TParams = JsonRpcParams, TResult = any> = JsonRpcRequest<TParams> | JsonRpcNotification<TParams> | JsonRpcResponse<TResult>;
78
- /**
79
- * Method handler function signature
80
- */
81
- export declare type JsonRpcMethodHandler<TParams = JsonRpcParams, TResult = any> = (params: TParams, id?: JsonRpcId) => Promise<TResult> | TResult;
82
- /**
83
- * Method registry for JSON-RPC handlers
84
- */
85
- export declare type JsonRpcMethodRegistry = Record<string, JsonRpcMethodHandler>;
86
- /**
87
- * JSON-RPC server configuration
88
- */
89
- export interface JsonRpcServerConfig {
90
- /**
91
- * Maximum number of concurrent requests
92
- */
93
- maxConcurrentRequests?: number;
94
- /**
95
- * Request timeout in milliseconds
96
- */
97
- requestTimeout?: number;
98
- /**
99
- * Whether to validate JSON-RPC format strictly
100
- */
101
- strictValidation?: boolean;
102
- /**
103
- * Custom error handler
104
- */
105
- errorHandler?: (error: Error, request?: JsonRpcRequest) => JsonRpcError;
106
- }
107
- /**
108
- * JSON-RPC client configuration
109
- */
110
- export interface JsonRpcClientConfig {
111
- /**
112
- * Default timeout for requests in milliseconds
113
- */
114
- defaultTimeout?: number;
115
- /**
116
- * Maximum number of retry attempts
117
- */
118
- maxRetries?: number;
119
- /**
120
- * Retry delay in milliseconds
121
- */
122
- retryDelay?: number;
123
- /**
124
- * Whether to generate sequential request IDs
125
- */
126
- sequentialIds?: boolean;
127
- }
128
- /**
129
- * Pending request tracking
130
- */
131
- export interface PendingRequest<TResult = any> {
132
- id: JsonRpcId;
133
- method: string;
134
- timestamp: number;
135
- timeout?: number;
136
- resolve: (value: TResult) => void;
137
- reject: (error: Error) => void;
138
- }
139
- /**
140
- * JSON-RPC validation result
141
- */
142
- export interface ValidationResult {
143
- valid: boolean;
144
- error?: JsonRpcError;
145
- }
146
- /**
147
- * Standard JSON-RPC method names for JSExecutor
148
- */
149
- export declare const STANDARD_METHODS: {
150
- readonly executeCode: "executeCode";
151
- readonly getStatus: "getStatus";
152
- readonly ping: "ping";
153
- readonly shutdown: "shutdown";
154
- readonly log: "log";
155
- readonly error: "error";
156
- };
157
- /**
158
- * JSExecutor specific request/response types
159
- */
160
- export interface ExecuteCodeRequest {
161
- code: string;
162
- args: Record<string, any>;
163
- functionName: string;
164
- skdsEndpointUrl: string;
165
- }
166
- export interface ExecuteCodeResponse {
167
- success: boolean;
168
- result?: any;
169
- error?: {
170
- message: string;
171
- name?: string;
172
- stack?: string;
173
- };
174
- logs: string[];
175
- executionTime: number;
176
- }
177
- export interface StatusRequest {
178
- }
179
- export interface StatusResponse {
180
- status: 'ready' | 'busy' | 'error';
181
- uptime: number;
182
- memoryUsage?: {
183
- used: number;
184
- total: number;
185
- };
186
- }
187
- export interface LogNotification {
188
- level: 'info' | 'warn' | 'error' | 'debug';
189
- message: string;
190
- timestamp: number;
191
- data?: any;
192
- }
193
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/JsExecutor/jsonRpc/types.ts"],"names":[],"mappings":"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"}