@comake/skl-js-engine 1.5.4 → 1.5.5

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/dist/JsExecutor/PermissionBuilder.d.ts +14 -0
  2. package/dist/JsExecutor/PermissionBuilder.d.ts.map +1 -0
  3. package/dist/JsExecutor/PermissionBuilder.js +58 -0
  4. package/dist/JsExecutor/PermissionBuilder.js.map +1 -0
  5. package/dist/JsExecutor/constants.d.ts +27 -0
  6. package/dist/JsExecutor/constants.d.ts.map +1 -0
  7. package/dist/JsExecutor/constants.js +30 -0
  8. package/dist/JsExecutor/constants.js.map +1 -0
  9. package/dist/JsExecutor/denoUtils.d.ts +10 -0
  10. package/dist/JsExecutor/denoUtils.d.ts.map +1 -0
  11. package/dist/JsExecutor/denoUtils.js +24 -0
  12. package/dist/JsExecutor/denoUtils.js.map +1 -0
  13. package/dist/JsExecutor/errors.d.ts +40 -0
  14. package/dist/JsExecutor/errors.d.ts.map +1 -0
  15. package/dist/JsExecutor/errors.js +67 -0
  16. package/dist/JsExecutor/errors.js.map +1 -0
  17. package/dist/JsExecutor/examples/basic/index.d.ts +1 -0
  18. package/dist/JsExecutor/examples/basic/index.d.ts.map +1 -0
  19. package/dist/JsExecutor/examples/basic/index.js +46 -0
  20. package/dist/JsExecutor/examples/basic/index.js.map +1 -0
  21. package/dist/JsExecutor/examples/basic/process.d.ts +1 -0
  22. package/dist/JsExecutor/examples/basic/process.d.ts.map +1 -0
  23. package/dist/JsExecutor/examples/basic/process.js +34 -0
  24. package/dist/JsExecutor/examples/basic/process.js.map +1 -0
  25. package/dist/JsExecutor/examples/jsExecutor/index.d.ts +2 -0
  26. package/dist/JsExecutor/examples/jsExecutor/index.d.ts.map +1 -0
  27. package/dist/JsExecutor/examples/jsExecutor/index.js +47 -0
  28. package/dist/JsExecutor/examples/jsExecutor/index.js.map +1 -0
  29. package/dist/JsExecutor/examples/jsExecutor/process.d.ts +2 -0
  30. package/dist/JsExecutor/examples/jsExecutor/process.d.ts.map +1 -0
  31. package/dist/JsExecutor/examples/jsExecutor/process.js +58 -0
  32. package/dist/JsExecutor/examples/jsExecutor/process.js.map +1 -0
  33. package/dist/JsExecutor/index.d.ts +7 -0
  34. package/dist/JsExecutor/index.d.ts.map +1 -0
  35. package/dist/JsExecutor/index.js +36 -0
  36. package/dist/JsExecutor/index.js.map +1 -0
  37. package/dist/JsExecutor/jsExecutor.d.ts +68 -0
  38. package/dist/JsExecutor/jsExecutor.d.ts.map +1 -0
  39. package/dist/JsExecutor/jsExecutor.js +171 -0
  40. package/dist/JsExecutor/jsExecutor.js.map +1 -0
  41. package/dist/JsExecutor/jsonRpc/JsonRpcClient.d.ts +165 -0
  42. package/dist/JsExecutor/jsonRpc/JsonRpcClient.d.ts.map +1 -0
  43. package/dist/JsExecutor/jsonRpc/JsonRpcClient.js +335 -0
  44. package/dist/JsExecutor/jsonRpc/JsonRpcClient.js.map +1 -0
  45. package/dist/JsExecutor/jsonRpc/JsonRpcServer.d.ts +125 -0
  46. package/dist/JsExecutor/jsonRpc/JsonRpcServer.d.ts.map +1 -0
  47. package/dist/JsExecutor/jsonRpc/JsonRpcServer.js +391 -0
  48. package/dist/JsExecutor/jsonRpc/JsonRpcServer.js.map +1 -0
  49. package/dist/JsExecutor/jsonRpc/index.d.ts +4 -0
  50. package/dist/JsExecutor/jsonRpc/index.d.ts.map +1 -0
  51. package/dist/JsExecutor/jsonRpc/index.js +23 -0
  52. package/dist/JsExecutor/jsonRpc/index.js.map +1 -0
  53. package/dist/JsExecutor/jsonRpc/types.d.ts +193 -0
  54. package/dist/JsExecutor/jsonRpc/types.d.ts.map +1 -0
  55. package/dist/JsExecutor/jsonRpc/types.js +37 -0
  56. package/dist/JsExecutor/jsonRpc/types.js.map +1 -0
  57. package/dist/JsExecutor/transport/Transport.d.ts +74 -0
  58. package/dist/JsExecutor/transport/Transport.d.ts.map +1 -0
  59. package/dist/JsExecutor/transport/Transport.js +14 -0
  60. package/dist/JsExecutor/transport/Transport.js.map +1 -0
  61. package/dist/JsExecutor/transport/base/BaseTransport.d.ts +51 -0
  62. package/dist/JsExecutor/transport/base/BaseTransport.d.ts.map +1 -0
  63. package/dist/JsExecutor/transport/base/BaseTransport.js +68 -0
  64. package/dist/JsExecutor/transport/base/BaseTransport.js.map +1 -0
  65. package/dist/JsExecutor/transport/index.d.ts +13 -0
  66. package/dist/JsExecutor/transport/index.d.ts.map +1 -0
  67. package/dist/JsExecutor/transport/index.js +36 -0
  68. package/dist/JsExecutor/transport/index.js.map +1 -0
  69. package/dist/JsExecutor/transport/process/ProcessManager.d.ts +96 -0
  70. package/dist/JsExecutor/transport/process/ProcessManager.d.ts.map +1 -0
  71. package/dist/JsExecutor/transport/process/ProcessManager.js +219 -0
  72. package/dist/JsExecutor/transport/process/ProcessManager.js.map +1 -0
  73. package/dist/JsExecutor/transport/stdio/ChildStdioTransport.d.ts +87 -0
  74. package/dist/JsExecutor/transport/stdio/ChildStdioTransport.d.ts.map +1 -0
  75. package/dist/JsExecutor/transport/stdio/ChildStdioTransport.js +219 -0
  76. package/dist/JsExecutor/transport/stdio/ChildStdioTransport.js.map +1 -0
  77. package/dist/JsExecutor/transport/stdio/ParentStdioTransport.d.ts +81 -0
  78. package/dist/JsExecutor/transport/stdio/ParentStdioTransport.d.ts.map +1 -0
  79. package/dist/JsExecutor/transport/stdio/ParentStdioTransport.js +259 -0
  80. package/dist/JsExecutor/transport/stdio/ParentStdioTransport.js.map +1 -0
  81. package/dist/JsExecutor/transport/utils/MessageUtils.d.ts +68 -0
  82. package/dist/JsExecutor/transport/utils/MessageUtils.d.ts.map +1 -0
  83. package/dist/JsExecutor/transport/utils/MessageUtils.js +135 -0
  84. package/dist/JsExecutor/transport/utils/MessageUtils.js.map +1 -0
  85. package/dist/JsExecutor/transport/utils/PollingUtils.d.ts +53 -0
  86. package/dist/JsExecutor/transport/utils/PollingUtils.d.ts.map +1 -0
  87. package/dist/JsExecutor/transport/utils/PollingUtils.js +92 -0
  88. package/dist/JsExecutor/transport/utils/PollingUtils.js.map +1 -0
  89. package/dist/JsExecutor/types.d.ts +113 -0
  90. package/dist/JsExecutor/types.d.ts.map +1 -0
  91. package/dist/JsExecutor/types.js +3 -0
  92. package/dist/JsExecutor/types.js.map +1 -0
  93. package/dist/SklEngine.d.ts +132 -0
  94. package/dist/SklEngine.d.ts.map +1 -0
  95. package/dist/SklEngine.js +1508 -0
  96. package/dist/SklEngine.js.map +1 -0
  97. package/dist/SklEngineOptions.d.ts +58 -0
  98. package/dist/SklEngineOptions.d.ts.map +1 -0
  99. package/dist/SklEngineOptions.js +3 -0
  100. package/dist/SklEngineOptions.js.map +1 -0
  101. package/dist/constants.d.ts +96 -0
  102. package/dist/constants.d.ts.map +1 -0
  103. package/dist/constants.js +103 -0
  104. package/dist/constants.js.map +1 -0
  105. package/dist/customCapabilities.d.ts +22 -0
  106. package/dist/customCapabilities.d.ts.map +1 -0
  107. package/dist/customCapabilities.js +45 -0
  108. package/dist/customCapabilities.js.map +1 -0
  109. package/dist/examples/customCapabilitiesExample.d.ts +2 -0
  110. package/dist/examples/customCapabilitiesExample.d.ts.map +1 -0
  111. package/dist/examples/customCapabilitiesExample.js +59 -0
  112. package/dist/examples/customCapabilitiesExample.js.map +1 -0
  113. package/dist/executor.js +216 -0
  114. package/dist/hooks/globalHooks.d.ts +50 -0
  115. package/dist/hooks/globalHooks.d.ts.map +1 -0
  116. package/dist/hooks/globalHooks.js +164 -0
  117. package/dist/hooks/globalHooks.js.map +1 -0
  118. package/dist/hooks/types.d.ts +9 -0
  119. package/dist/hooks/types.d.ts.map +1 -0
  120. package/dist/hooks/types.js +3 -0
  121. package/dist/hooks/types.js.map +1 -0
  122. package/dist/index.d.ts +41 -0
  123. package/dist/index.d.ts.map +1 -0
  124. package/dist/index.js +68 -0
  125. package/dist/index.js.map +1 -0
  126. package/dist/logger.d.ts +35 -0
  127. package/dist/logger.d.ts.map +1 -0
  128. package/dist/logger.js +119 -0
  129. package/dist/logger.js.map +1 -0
  130. package/dist/mapping/Mapper.d.ts +13 -0
  131. package/dist/mapping/Mapper.d.ts.map +1 -0
  132. package/dist/mapping/Mapper.js +64 -0
  133. package/dist/mapping/Mapper.js.map +1 -0
  134. package/dist/storage/FindOperator.d.ts +19 -0
  135. package/dist/storage/FindOperator.d.ts.map +1 -0
  136. package/dist/storage/FindOperator.js +23 -0
  137. package/dist/storage/FindOperator.js.map +1 -0
  138. package/dist/storage/FindOptionsTypes.d.ts +79 -0
  139. package/dist/storage/FindOptionsTypes.d.ts.map +1 -0
  140. package/dist/storage/FindOptionsTypes.js +3 -0
  141. package/dist/storage/FindOptionsTypes.js.map +1 -0
  142. package/dist/storage/GroupOptionTypes.d.ts +29 -0
  143. package/dist/storage/GroupOptionTypes.d.ts.map +1 -0
  144. package/dist/storage/GroupOptionTypes.js +3 -0
  145. package/dist/storage/GroupOptionTypes.js.map +1 -0
  146. package/dist/storage/operator/And.d.ts +4 -0
  147. package/dist/storage/operator/And.d.ts.map +1 -0
  148. package/dist/storage/operator/And.js +13 -0
  149. package/dist/storage/operator/And.js.map +1 -0
  150. package/dist/storage/operator/Contains.d.ts +3 -0
  151. package/dist/storage/operator/Contains.d.ts.map +1 -0
  152. package/dist/storage/operator/Contains.js +13 -0
  153. package/dist/storage/operator/Contains.js.map +1 -0
  154. package/dist/storage/operator/Equal.d.ts +5 -0
  155. package/dist/storage/operator/Equal.d.ts.map +1 -0
  156. package/dist/storage/operator/Equal.js +13 -0
  157. package/dist/storage/operator/Equal.js.map +1 -0
  158. package/dist/storage/operator/Exists.d.ts +3 -0
  159. package/dist/storage/operator/Exists.d.ts.map +1 -0
  160. package/dist/storage/operator/Exists.js +10 -0
  161. package/dist/storage/operator/Exists.js.map +1 -0
  162. package/dist/storage/operator/GreaterThan.d.ts +4 -0
  163. package/dist/storage/operator/GreaterThan.d.ts.map +1 -0
  164. package/dist/storage/operator/GreaterThan.js +13 -0
  165. package/dist/storage/operator/GreaterThan.js.map +1 -0
  166. package/dist/storage/operator/GreaterThanOrEqual.d.ts +4 -0
  167. package/dist/storage/operator/GreaterThanOrEqual.d.ts.map +1 -0
  168. package/dist/storage/operator/GreaterThanOrEqual.js +13 -0
  169. package/dist/storage/operator/GreaterThanOrEqual.js.map +1 -0
  170. package/dist/storage/operator/In.d.ts +4 -0
  171. package/dist/storage/operator/In.d.ts.map +1 -0
  172. package/dist/storage/operator/In.js +13 -0
  173. package/dist/storage/operator/In.js.map +1 -0
  174. package/dist/storage/operator/Inverse.d.ts +3 -0
  175. package/dist/storage/operator/Inverse.d.ts.map +1 -0
  176. package/dist/storage/operator/Inverse.js +13 -0
  177. package/dist/storage/operator/Inverse.js.map +1 -0
  178. package/dist/storage/operator/InversePath.d.ts +7 -0
  179. package/dist/storage/operator/InversePath.d.ts.map +1 -0
  180. package/dist/storage/operator/InversePath.js +13 -0
  181. package/dist/storage/operator/InversePath.js.map +1 -0
  182. package/dist/storage/operator/InverseRelation.d.ts +9 -0
  183. package/dist/storage/operator/InverseRelation.d.ts.map +1 -0
  184. package/dist/storage/operator/InverseRelation.js +13 -0
  185. package/dist/storage/operator/InverseRelation.js.map +1 -0
  186. package/dist/storage/operator/InverseRelationOrder.d.ts +8 -0
  187. package/dist/storage/operator/InverseRelationOrder.d.ts.map +1 -0
  188. package/dist/storage/operator/InverseRelationOrder.js +13 -0
  189. package/dist/storage/operator/InverseRelationOrder.js.map +1 -0
  190. package/dist/storage/operator/LessThan.d.ts +4 -0
  191. package/dist/storage/operator/LessThan.d.ts.map +1 -0
  192. package/dist/storage/operator/LessThan.js +13 -0
  193. package/dist/storage/operator/LessThan.js.map +1 -0
  194. package/dist/storage/operator/LessThanOrEqual.d.ts +4 -0
  195. package/dist/storage/operator/LessThanOrEqual.d.ts.map +1 -0
  196. package/dist/storage/operator/LessThanOrEqual.js +13 -0
  197. package/dist/storage/operator/LessThanOrEqual.js.map +1 -0
  198. package/dist/storage/operator/Not.d.ts +3 -0
  199. package/dist/storage/operator/Not.d.ts.map +1 -0
  200. package/dist/storage/operator/Not.js +13 -0
  201. package/dist/storage/operator/Not.js.map +1 -0
  202. package/dist/storage/operator/OneOrMorePath.d.ts +7 -0
  203. package/dist/storage/operator/OneOrMorePath.d.ts.map +1 -0
  204. package/dist/storage/operator/OneOrMorePath.js +13 -0
  205. package/dist/storage/operator/OneOrMorePath.js.map +1 -0
  206. package/dist/storage/operator/Or.d.ts +4 -0
  207. package/dist/storage/operator/Or.d.ts.map +1 -0
  208. package/dist/storage/operator/Or.js +13 -0
  209. package/dist/storage/operator/Or.js.map +1 -0
  210. package/dist/storage/operator/Sequence.d.ts +3 -0
  211. package/dist/storage/operator/Sequence.d.ts.map +1 -0
  212. package/dist/storage/operator/Sequence.js +13 -0
  213. package/dist/storage/operator/Sequence.js.map +1 -0
  214. package/dist/storage/operator/SequencePath.d.ts +7 -0
  215. package/dist/storage/operator/SequencePath.d.ts.map +1 -0
  216. package/dist/storage/operator/SequencePath.js +13 -0
  217. package/dist/storage/operator/SequencePath.js.map +1 -0
  218. package/dist/storage/operator/ZeroOrMorePath.d.ts +7 -0
  219. package/dist/storage/operator/ZeroOrMorePath.d.ts.map +1 -0
  220. package/dist/storage/operator/ZeroOrMorePath.js +13 -0
  221. package/dist/storage/operator/ZeroOrMorePath.js.map +1 -0
  222. package/dist/storage/query-adapter/QueryAdapter.d.ts +99 -0
  223. package/dist/storage/query-adapter/QueryAdapter.d.ts.map +1 -0
  224. package/dist/storage/query-adapter/QueryAdapter.js +3 -0
  225. package/dist/storage/query-adapter/QueryAdapter.js.map +1 -0
  226. package/dist/storage/query-adapter/sparql/SparqlQueryAdapter.d.ts +40 -0
  227. package/dist/storage/query-adapter/sparql/SparqlQueryAdapter.d.ts.map +1 -0
  228. package/dist/storage/query-adapter/sparql/SparqlQueryAdapter.js +315 -0
  229. package/dist/storage/query-adapter/sparql/SparqlQueryAdapter.js.map +1 -0
  230. package/dist/storage/query-adapter/sparql/SparqlQueryAdapterOptions.d.ts +34 -0
  231. package/dist/storage/query-adapter/sparql/SparqlQueryAdapterOptions.d.ts.map +1 -0
  232. package/dist/storage/query-adapter/sparql/SparqlQueryAdapterOptions.js +3 -0
  233. package/dist/storage/query-adapter/sparql/SparqlQueryAdapterOptions.js.map +1 -0
  234. package/dist/storage/query-adapter/sparql/SparqlQueryBuilder.d.ts +104 -0
  235. package/dist/storage/query-adapter/sparql/SparqlQueryBuilder.d.ts.map +1 -0
  236. package/dist/storage/query-adapter/sparql/SparqlQueryBuilder.js +1210 -0
  237. package/dist/storage/query-adapter/sparql/SparqlQueryBuilder.js.map +1 -0
  238. package/dist/storage/query-adapter/sparql/SparqlUpdateBuilder.d.ts +44 -0
  239. package/dist/storage/query-adapter/sparql/SparqlUpdateBuilder.d.ts.map +1 -0
  240. package/dist/storage/query-adapter/sparql/SparqlUpdateBuilder.js +397 -0
  241. package/dist/storage/query-adapter/sparql/SparqlUpdateBuilder.js.map +1 -0
  242. package/dist/storage/query-adapter/sparql/VariableGenerator.d.ts +5 -0
  243. package/dist/storage/query-adapter/sparql/VariableGenerator.d.ts.map +1 -0
  244. package/dist/storage/query-adapter/sparql/VariableGenerator.js +14 -0
  245. package/dist/storage/query-adapter/sparql/VariableGenerator.js.map +1 -0
  246. package/dist/storage/query-adapter/sparql/query-executor/InMemorySparqlQueryExecutor.d.ts +19 -0
  247. package/dist/storage/query-adapter/sparql/query-executor/InMemorySparqlQueryExecutor.d.ts.map +1 -0
  248. package/dist/storage/query-adapter/sparql/query-executor/InMemorySparqlQueryExecutor.js +90 -0
  249. package/dist/storage/query-adapter/sparql/query-executor/InMemorySparqlQueryExecutor.js.map +1 -0
  250. package/dist/storage/query-adapter/sparql/query-executor/SparqlEndpointQueryExecutor.d.ts +27 -0
  251. package/dist/storage/query-adapter/sparql/query-executor/SparqlEndpointQueryExecutor.d.ts.map +1 -0
  252. package/dist/storage/query-adapter/sparql/query-executor/SparqlEndpointQueryExecutor.js +116 -0
  253. package/dist/storage/query-adapter/sparql/query-executor/SparqlEndpointQueryExecutor.js.map +1 -0
  254. package/dist/storage/query-adapter/sparql/query-executor/SparqlQueryExecutor.d.ts +34 -0
  255. package/dist/storage/query-adapter/sparql/query-executor/SparqlQueryExecutor.d.ts.map +1 -0
  256. package/dist/storage/query-adapter/sparql/query-executor/SparqlQueryExecutor.js +3 -0
  257. package/dist/storage/query-adapter/sparql/query-executor/SparqlQueryExecutor.js.map +1 -0
  258. package/dist/tools/explain-findall-sparql.d.ts +2 -0
  259. package/dist/tools/explain-findall-sparql.d.ts.map +1 -0
  260. package/dist/tools/explain-findall-sparql.js +303 -0
  261. package/dist/tools/explain-findall-sparql.js.map +1 -0
  262. package/dist/util/PerformanceLogger.d.ts +28 -0
  263. package/dist/util/PerformanceLogger.d.ts.map +1 -0
  264. package/dist/util/PerformanceLogger.js +223 -0
  265. package/dist/util/PerformanceLogger.js.map +1 -0
  266. package/dist/util/ReadCacheHelper.d.ts +14 -0
  267. package/dist/util/ReadCacheHelper.d.ts.map +1 -0
  268. package/dist/util/ReadCacheHelper.js +61 -0
  269. package/dist/util/ReadCacheHelper.js.map +1 -0
  270. package/dist/util/SparqlUtil.d.ts +72 -0
  271. package/dist/util/SparqlUtil.d.ts.map +1 -0
  272. package/dist/util/SparqlUtil.js +456 -0
  273. package/dist/util/SparqlUtil.js.map +1 -0
  274. package/dist/util/TripleUtil.d.ts +10 -0
  275. package/dist/util/TripleUtil.d.ts.map +1 -0
  276. package/dist/util/TripleUtil.js +414 -0
  277. package/dist/util/TripleUtil.js.map +1 -0
  278. package/dist/util/Types.d.ts +271 -0
  279. package/dist/util/Types.d.ts.map +1 -0
  280. package/dist/util/Types.js +3 -0
  281. package/dist/util/Types.js.map +1 -0
  282. package/dist/util/Util.d.ts +26 -0
  283. package/dist/util/Util.d.ts.map +1 -0
  284. package/dist/util/Util.js +138 -0
  285. package/dist/util/Util.js.map +1 -0
  286. package/dist/util/Vocabularies/Shared.d.ts +13 -0
  287. package/dist/util/Vocabularies/Shared.d.ts.map +1 -0
  288. package/dist/util/Vocabularies/Shared.js +96 -0
  289. package/dist/util/Vocabularies/Shared.js.map +1 -0
  290. package/dist/util/Vocabularies/helper.d.ts +5 -0
  291. package/dist/util/Vocabularies/helper.d.ts.map +1 -0
  292. package/dist/util/Vocabularies/helper.js +10 -0
  293. package/dist/util/Vocabularies/helper.js.map +1 -0
  294. package/dist/util/Vocabularies/index.d.ts +8 -0
  295. package/dist/util/Vocabularies/index.d.ts.map +1 -0
  296. package/dist/util/Vocabularies/index.js +114 -0
  297. package/dist/util/Vocabularies/index.js.map +1 -0
  298. package/dist/util/safeJsonStringify.d.ts +1 -0
  299. package/dist/util/safeJsonStringify.d.ts.map +1 -0
  300. package/dist/util/safeJsonStringify.js +19 -0
  301. package/dist/util/safeJsonStringify.js.map +1 -0
  302. package/package.json +1 -1
  303. package/src/storage/query-adapter/sparql/SparqlUpdateBuilder.ts +106 -1
@@ -0,0 +1,223 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PerformanceLogger = void 0;
4
+ /* eslint-disable require-unicode-regexp */
5
+ /* eslint-disable @typescript-eslint/naming-convention */
6
+ const perf_hooks_1 = require("perf_hooks");
7
+ let AsyncLocalStorage;
8
+ try {
9
+ // eslint-disable-next-line @typescript-eslint/no-require-imports, prefer-destructuring, global-require, @typescript-eslint/no-var-requires
10
+ AsyncLocalStorage = require('async_hooks').AsyncLocalStorage;
11
+ }
12
+ catch {
13
+ // AsyncLocalStorage not available
14
+ }
15
+ // eslint-disable-next-line @typescript-eslint/no-extraneous-class
16
+ class PerformanceLogger {
17
+ static initialize() {
18
+ if (this.initialized) {
19
+ return;
20
+ }
21
+ this.initialized = true;
22
+ // eslint-disable-next-line no-process-env
23
+ this.enabled = process.env.SKL_ENGINE_DEBUG_QUERIES === 'true' ||
24
+ // eslint-disable-next-line no-process-env
25
+ process.env.SKL_ENGINE_DEBUG_QUERIES === '1';
26
+ if (this.enabled && AsyncLocalStorage) {
27
+ this.asyncLocalStorage = new AsyncLocalStorage();
28
+ }
29
+ }
30
+ static generateSpanId() {
31
+ // eslint-disable-next-line no-plusplus
32
+ return `span-${++this.spanCounter}-${Date.now()}`;
33
+ }
34
+ static startSpan(name, attributes) {
35
+ this.initialize();
36
+ if (!this.enabled) {
37
+ return null;
38
+ }
39
+ const parent = this.asyncLocalStorage?.getStore();
40
+ const span = {
41
+ id: this.generateSpanId(),
42
+ parentId: parent?.id,
43
+ name,
44
+ startTime: perf_hooks_1.performance.now(),
45
+ attributes: attributes ?? {},
46
+ children: []
47
+ };
48
+ if (parent) {
49
+ parent.children.push(span);
50
+ }
51
+ return span;
52
+ }
53
+ static endSpan(span, additionalAttributes) {
54
+ if (!this.enabled || !span) {
55
+ return;
56
+ }
57
+ span.endTime = perf_hooks_1.performance.now();
58
+ span.duration = span.endTime - span.startTime;
59
+ if (additionalAttributes) {
60
+ span.attributes = { ...span.attributes, ...additionalAttributes };
61
+ }
62
+ }
63
+ static async withSpan(name, fn, attributes) {
64
+ this.initialize();
65
+ if (!this.enabled) {
66
+ return fn();
67
+ }
68
+ const span = this.startSpan(name, attributes);
69
+ if (this.asyncLocalStorage) {
70
+ return this.asyncLocalStorage.run(span, async () => {
71
+ try {
72
+ const result = await fn();
73
+ this.endSpan(span);
74
+ return result;
75
+ }
76
+ catch (error) {
77
+ this.endSpan(span, { error: true, errorMessage: error instanceof Error ? error.message : String(error) });
78
+ throw error;
79
+ }
80
+ });
81
+ }
82
+ // Fallback without AsyncLocalStorage
83
+ try {
84
+ const result = await fn();
85
+ this.endSpan(span);
86
+ return result;
87
+ }
88
+ catch (error) {
89
+ this.endSpan(span, { error: true, errorMessage: error instanceof Error ? error.message : String(error) });
90
+ throw error;
91
+ }
92
+ }
93
+ static async withSpanRoot(name, fn, attributes) {
94
+ this.initialize();
95
+ if (!this.enabled) {
96
+ return fn();
97
+ }
98
+ const span = this.startSpan(name, attributes);
99
+ if (this.asyncLocalStorage) {
100
+ return this.asyncLocalStorage.run(span, async () => {
101
+ try {
102
+ const result = await fn();
103
+ this.endSpan(span);
104
+ this.logSpanTree(span);
105
+ return result;
106
+ }
107
+ catch (error) {
108
+ this.endSpan(span, { error: true, errorMessage: error instanceof Error ? error.message : String(error) });
109
+ this.logSpanTree(span);
110
+ throw error;
111
+ }
112
+ });
113
+ }
114
+ // Fallback without AsyncLocalStorage
115
+ try {
116
+ const result = await fn();
117
+ this.endSpan(span);
118
+ this.logSpanTree(span);
119
+ return result;
120
+ }
121
+ catch (error) {
122
+ this.endSpan(span, { error: true, errorMessage: error instanceof Error ? error.message : String(error) });
123
+ this.logSpanTree(span);
124
+ throw error;
125
+ }
126
+ }
127
+ static getCurrentSpan() {
128
+ this.initialize();
129
+ if (!this.enabled || !this.asyncLocalStorage) {
130
+ return undefined;
131
+ }
132
+ return this.asyncLocalStorage.getStore();
133
+ }
134
+ static logSpanTree(rootSpan) {
135
+ if (!this.enabled || !rootSpan) {
136
+ return;
137
+ }
138
+ const timestamp = new Date().toISOString();
139
+ const lines = [];
140
+ lines.push('');
141
+ lines.push('╔══════════════════════════════════════════════════════════════╗');
142
+ lines.push(`║ SKL Engine Performance Trace ║`);
143
+ lines.push(`║ Started: ${timestamp} ║`);
144
+ lines.push('╚══════════════════════════════════════════════════════════════╝');
145
+ lines.push('');
146
+ this.buildSpanTreeLines(rootSpan, lines, '', true);
147
+ lines.push('');
148
+ lines.push('═══════════════════════════════════════════════════════════════');
149
+ lines.push('');
150
+ // eslint-disable-next-line no-console
151
+ console.log(lines.join('\n'));
152
+ }
153
+ static buildSpanTreeLines(span, lines, prefix, isRoot) {
154
+ const duration = span.duration !== undefined ? `${span.duration.toFixed(2)}ms` : 'running...';
155
+ const status = span.attributes.error ? '✗' : '✓';
156
+ lines.push(`${prefix}${span.name} [${duration}] ${status}`);
157
+ // Show important attributes
158
+ this.addAttributeLines(span, lines, prefix);
159
+ // Process children
160
+ const childCount = span.children.length;
161
+ span.children.forEach((child, index) => {
162
+ const isLast = index === childCount - 1;
163
+ const childPrefix = prefix + (isRoot ? '' : '│ ');
164
+ const connector = isLast ? '└─ ' : '├─ ';
165
+ const nextPrefix = prefix + (isRoot ? '' : (isLast ? ' ' : '│ '));
166
+ this.buildSpanTreeLines(child, lines, childPrefix + connector, false);
167
+ });
168
+ }
169
+ static addAttributeLines(span, lines, prefix) {
170
+ const { query, resultCount, options, error, errorMessage, ...otherAttrs } = span.attributes;
171
+ // Show query if present (and format it) - but make it easy to copy
172
+ if (query && typeof query === 'string') {
173
+ lines.push(`${prefix}│ Query:`);
174
+ // Empty line before query
175
+ lines.push('');
176
+ const formattedQuery = this.formatQuery(query);
177
+ formattedQuery.split('\n').forEach(line => {
178
+ // Simple indentation without tree chars
179
+ lines.push(` ${line}`);
180
+ });
181
+ // Empty line after query
182
+ lines.push('');
183
+ }
184
+ // Show result count
185
+ if (resultCount !== undefined) {
186
+ lines.push(`${prefix}│ Result: ${resultCount} ${resultCount === 1 ? 'row' : 'rows'}`);
187
+ }
188
+ // Show error if present
189
+ if (error && errorMessage) {
190
+ lines.push(`${prefix}│ Error: ${errorMessage}`);
191
+ }
192
+ // Show other important attributes
193
+ if (Object.keys(otherAttrs).length > 0) {
194
+ const attrStr = JSON.stringify(otherAttrs);
195
+ if (attrStr.length < 100) {
196
+ lines.push(`${prefix}│ Attributes: ${attrStr}`);
197
+ }
198
+ }
199
+ }
200
+ static formatQuery(query) {
201
+ // Simple query formatting with proper indentation
202
+ let formatted = query.trim();
203
+ // Add line breaks after key SPARQL keywords for readability
204
+ formatted = formatted
205
+ .replace(/\s+/g, ' ')
206
+ .replace(/\s*{\s*/g, ' {\n ')
207
+ .replace(/\s*}\s*/g, '\n}')
208
+ .replace(/\s*\.\s*(?=[?A-Z])/g, ' .\n ')
209
+ .replace(/\bWHERE\b/g, '\nWHERE')
210
+ .replace(/\bFILTER\b/g, '\n FILTER')
211
+ .replace(/\bOPTIONAL\b/g, '\n OPTIONAL')
212
+ .replace(/\bUNION\b/g, '\nUNION')
213
+ .replace(/\bGRAPH\b/g, '\n GRAPH')
214
+ .replace(/\bORDER BY\b/g, '\nORDER BY')
215
+ .replace(/\bLIMIT\b/g, '\nLIMIT')
216
+ .replace(/\bOFFSET\b/g, '\nOFFSET');
217
+ return formatted;
218
+ }
219
+ }
220
+ exports.PerformanceLogger = PerformanceLogger;
221
+ PerformanceLogger.initialized = false;
222
+ PerformanceLogger.spanCounter = 0;
223
+ //# sourceMappingURL=PerformanceLogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PerformanceLogger.js","sourceRoot":"","sources":["../../src/util/PerformanceLogger.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable require-unicode-regexp */\n/* eslint-disable @typescript-eslint/naming-convention */\nimport { performance } from 'perf_hooks';\n\nexport interface Span {\n id: string;\n parentId?: string;\n name: string;\n startTime: number;\n endTime?: number;\n duration?: number;\n attributes: Record<string, any>;\n children: Span[];\n}\n\nlet AsyncLocalStorage: any;\ntry {\n // eslint-disable-next-line @typescript-eslint/no-require-imports, prefer-destructuring, global-require, @typescript-eslint/no-var-requires\n AsyncLocalStorage = require('async_hooks').AsyncLocalStorage;\n} catch {\n // AsyncLocalStorage not available\n}\n\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport class PerformanceLogger {\n private static asyncLocalStorage?: any;\n private static enabled: boolean;\n private static initialized = false;\n private static spanCounter = 0;\n\n private static initialize(): void {\n if (this.initialized) {\n return;\n }\n this.initialized = true;\n // eslint-disable-next-line no-process-env\n this.enabled = process.env.SKL_ENGINE_DEBUG_QUERIES === 'true' || \n // eslint-disable-next-line no-process-env\n process.env.SKL_ENGINE_DEBUG_QUERIES === '1';\n \n if (this.enabled && AsyncLocalStorage) {\n this.asyncLocalStorage = new AsyncLocalStorage();\n }\n }\n\n private static generateSpanId(): string {\n // eslint-disable-next-line no-plusplus\n return `span-${++this.spanCounter}-${Date.now()}`;\n }\n\n public static startSpan(name: string, attributes?: Record<string, any>): Span {\n this.initialize();\n \n if (!this.enabled) {\n return null as any;\n }\n\n const parent = this.asyncLocalStorage?.getStore();\n \n const span: Span = {\n id: this.generateSpanId(),\n parentId: parent?.id,\n name,\n startTime: performance.now(),\n attributes: attributes ?? {},\n children: []\n };\n\n if (parent) {\n parent.children.push(span);\n }\n\n return span;\n }\n\n public static endSpan(span: Span, additionalAttributes?: Record<string, any>): void {\n if (!this.enabled || !span) {\n return;\n }\n\n span.endTime = performance.now();\n span.duration = span.endTime - span.startTime;\n\n if (additionalAttributes) {\n span.attributes = { ...span.attributes, ...additionalAttributes };\n }\n }\n\n public static async withSpan<T>(\n name: string,\n fn: () => Promise<T> | T,\n attributes?: Record<string, any>\n ): Promise<T> {\n this.initialize();\n \n if (!this.enabled) {\n return fn() as any;\n }\n\n const span = this.startSpan(name, attributes);\n\n if (this.asyncLocalStorage) {\n return this.asyncLocalStorage.run(span, async() => {\n try {\n const result = await fn();\n this.endSpan(span);\n return result;\n } catch (error) {\n this.endSpan(span, { error: true, errorMessage: error instanceof Error ? error.message : String(error) });\n throw error;\n }\n });\n }\n\n // Fallback without AsyncLocalStorage\n try {\n const result = await fn();\n this.endSpan(span);\n return result;\n } catch (error) {\n this.endSpan(span, { error: true, errorMessage: error instanceof Error ? error.message : String(error) });\n throw error;\n }\n }\n\n public static async withSpanRoot<T>(\n name: string,\n fn: () => Promise<T> | T,\n attributes?: Record<string, any>\n ): Promise<T> {\n this.initialize();\n \n if (!this.enabled) {\n return fn() as any;\n }\n\n const span = this.startSpan(name, attributes);\n\n if (this.asyncLocalStorage) {\n return this.asyncLocalStorage.run(span, async() => {\n try {\n const result = await fn();\n this.endSpan(span);\n this.logSpanTree(span);\n return result;\n } catch (error) {\n this.endSpan(span, { error: true, errorMessage: error instanceof Error ? error.message : String(error) });\n this.logSpanTree(span);\n throw error;\n }\n });\n }\n\n // Fallback without AsyncLocalStorage\n try {\n const result = await fn();\n this.endSpan(span);\n this.logSpanTree(span);\n return result;\n } catch (error) {\n this.endSpan(span, { error: true, errorMessage: error instanceof Error ? error.message : String(error) });\n this.logSpanTree(span);\n throw error;\n }\n }\n\n public static getCurrentSpan(): Span | undefined {\n this.initialize();\n \n if (!this.enabled || !this.asyncLocalStorage) {\n return undefined;\n }\n\n return this.asyncLocalStorage.getStore();\n }\n\n public static logSpanTree(rootSpan: Span): void {\n if (!this.enabled || !rootSpan) {\n return;\n }\n\n const timestamp = new Date().toISOString();\n const lines: string[] = [];\n\n lines.push('');\n lines.push('╔══════════════════════════════════════════════════════════════╗');\n lines.push(`║ SKL Engine Performance Trace ║`);\n lines.push(`║ Started: ${timestamp} ║`);\n lines.push('╚══════════════════════════════════════════════════════════════╝');\n lines.push('');\n\n this.buildSpanTreeLines(rootSpan, lines, '', true);\n\n lines.push('');\n lines.push('═══════════════════════════════════════════════════════════════');\n lines.push('');\n\n // eslint-disable-next-line no-console\n console.log(lines.join('\\n'));\n }\n\n private static buildSpanTreeLines(\n span: Span,\n lines: string[],\n prefix: string,\n isRoot: boolean\n ): void {\n const duration = span.duration !== undefined ? `${span.duration.toFixed(2)}ms` : 'running...';\n const status = span.attributes.error ? '✗' : '✓';\n \n lines.push(`${prefix}${span.name} [${duration}] ${status}`);\n\n // Show important attributes\n this.addAttributeLines(span, lines, prefix);\n\n // Process children\n const childCount = span.children.length;\n span.children.forEach((child, index) => {\n const isLast = index === childCount - 1;\n const childPrefix = prefix + (isRoot ? '' : '│ ');\n const connector = isLast ? '└─ ' : '├─ ';\n const nextPrefix = prefix + (isRoot ? '' : (isLast ? ' ' : '│ '));\n \n this.buildSpanTreeLines(child, lines, childPrefix + connector, false);\n });\n }\n\n private static addAttributeLines(span: Span, lines: string[], prefix: string): void {\n const { query, resultCount, options, error, errorMessage, ...otherAttrs } = span.attributes;\n\n // Show query if present (and format it) - but make it easy to copy\n if (query && typeof query === 'string') {\n lines.push(`${prefix}│ Query:`);\n // Empty line before query\n lines.push(''); \n const formattedQuery = this.formatQuery(query);\n formattedQuery.split('\\n').forEach(line => {\n // Simple indentation without tree chars\n lines.push(` ${line}`); \n });\n // Empty line after query\n lines.push(''); \n }\n\n // Show result count\n if (resultCount !== undefined) {\n lines.push(`${prefix}│ Result: ${resultCount} ${resultCount === 1 ? 'row' : 'rows'}`);\n }\n\n // Show error if present\n if (error && errorMessage) {\n lines.push(`${prefix}│ Error: ${errorMessage}`);\n }\n\n // Show other important attributes\n if (Object.keys(otherAttrs).length > 0) {\n const attrStr = JSON.stringify(otherAttrs);\n if (attrStr.length < 100) {\n lines.push(`${prefix}│ Attributes: ${attrStr}`);\n }\n }\n }\n\n private static formatQuery(query: string): string {\n // Simple query formatting with proper indentation\n let formatted = query.trim();\n \n // Add line breaks after key SPARQL keywords for readability\n formatted = formatted\n .replace(/\\s+/g, ' ')\n .replace(/\\s*{\\s*/g, ' {\\n ')\n .replace(/\\s*}\\s*/g, '\\n}')\n .replace(/\\s*\\.\\s*(?=[?A-Z])/g, ' .\\n ')\n .replace(/\\bWHERE\\b/g, '\\nWHERE')\n .replace(/\\bFILTER\\b/g, '\\n FILTER')\n .replace(/\\bOPTIONAL\\b/g, '\\n OPTIONAL')\n .replace(/\\bUNION\\b/g, '\\nUNION')\n .replace(/\\bGRAPH\\b/g, '\\n GRAPH')\n .replace(/\\bORDER BY\\b/g, '\\nORDER BY')\n .replace(/\\bLIMIT\\b/g, '\\nLIMIT')\n .replace(/\\bOFFSET\\b/g, '\\nOFFSET');\n\n return formatted;\n }\n}\n\n"]}
@@ -0,0 +1,14 @@
1
+ import type { ReadCacheOperation } from '../SklEngineOptions';
2
+ export interface BuildReadCacheKeyInput {
3
+ operation: ReadCacheOperation;
4
+ args: readonly unknown[];
5
+ endpointUrl?: string;
6
+ namespace?: string;
7
+ keyHint?: string;
8
+ }
9
+ export declare function buildReadCacheKey(input: BuildReadCacheKeyInput): string;
10
+ export declare class ReadCacheSingleflight {
11
+ private readonly inflight;
12
+ do<T>(key: string, fn: () => Promise<T>): Promise<T>;
13
+ }
14
+ //# sourceMappingURL=ReadCacheHelper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadCacheHelper.d.ts","sourceRoot":"","sources":["../../src/util/ReadCacheHelper.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,IAAI,EAAE,SAAS,OAAO,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAuBD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CASvE;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuC;IAEnD,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAiBlE"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ReadCacheSingleflight = exports.buildReadCacheKey = void 0;
7
+ const crypto_1 = __importDefault(require("crypto"));
8
+ function stableStringify(value) {
9
+ if (value === null)
10
+ return 'null';
11
+ const valueType = typeof value;
12
+ if (valueType === 'number' || valueType === 'boolean')
13
+ return String(value);
14
+ if (valueType === 'string')
15
+ return JSON.stringify(value);
16
+ if (valueType !== 'object') {
17
+ const serializedPrimitive = JSON.stringify(value);
18
+ return serializedPrimitive ?? String(value);
19
+ }
20
+ if (Array.isArray(value)) {
21
+ return `[${value.map(stableStringify).join(',')}]`;
22
+ }
23
+ const objectValue = value;
24
+ // eslint-disable-next-line @typescript-eslint/require-array-sort-compare
25
+ const keys = Object.keys(objectValue).sort();
26
+ return `{${keys.map((key) => `${JSON.stringify(key)}:${stableStringify(objectValue[key])}`).join(',')}}`;
27
+ }
28
+ function buildReadCacheKey(input) {
29
+ const keyParts = {
30
+ namespace: input.namespace ?? '',
31
+ endpointUrl: input.endpointUrl ?? '',
32
+ operation: input.operation,
33
+ keyHint: input.keyHint ?? '',
34
+ args: input.args
35
+ };
36
+ return crypto_1.default.createHash('sha256').update(stableStringify(keyParts)).digest('hex');
37
+ }
38
+ exports.buildReadCacheKey = buildReadCacheKey;
39
+ class ReadCacheSingleflight {
40
+ constructor() {
41
+ this.inflight = new Map();
42
+ }
43
+ async do(key, fn) {
44
+ const existing = this.inflight.get(key);
45
+ if (existing) {
46
+ return existing;
47
+ }
48
+ const promise = (async () => {
49
+ try {
50
+ return await fn();
51
+ }
52
+ finally {
53
+ this.inflight.delete(key);
54
+ }
55
+ })();
56
+ this.inflight.set(key, promise);
57
+ return promise;
58
+ }
59
+ }
60
+ exports.ReadCacheSingleflight = ReadCacheSingleflight;
61
+ //# sourceMappingURL=ReadCacheHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadCacheHelper.js","sourceRoot":"","sources":["../../src/util/ReadCacheHelper.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAW5B,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAElC,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC;IAC/B,IAAI,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5E,IAAI,SAAS,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACzD,IAAI,SAAS,KAAK,QAAQ,EAAE;QAC1B,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAClD,OAAO,mBAAmB,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;KAC7C;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;KACpD;IAED,MAAM,WAAW,GAAG,KAAgC,CAAC;IACrD,yEAAyE;IACzE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7C,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAC3G,CAAC;AAED,SAAgB,iBAAiB,CAAC,KAA6B;IAC7D,MAAM,QAAQ,GAAG;QACf,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE;QAChC,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE;QACpC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;QAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC;IACF,OAAO,gBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACrF,CAAC;AATD,8CASC;AAED,MAAa,qBAAqB;IAAlC;QACmB,aAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;IAmBlE,CAAC;IAjBQ,KAAK,CAAC,EAAE,CAAI,GAAW,EAAE,EAAoB;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAA2B,CAAC;QAClE,IAAI,QAAQ,EAAE;YACZ,OAAO,QAAQ,CAAC;SACjB;QAED,MAAM,OAAO,GAAG,CAAC,KAAK,IAAe,EAAE;YACrC,IAAI;gBACF,OAAO,MAAM,EAAE,EAAE,CAAC;aACnB;oBAAS;gBACR,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aAC3B;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAA2B,CAAC,CAAC;QACpD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AApBD,sDAoBC","sourcesContent":["import crypto from 'crypto';\nimport type { ReadCacheOperation } from '../SklEngineOptions';\n\nexport interface BuildReadCacheKeyInput {\n operation: ReadCacheOperation;\n args: readonly unknown[];\n endpointUrl?: string;\n namespace?: string;\n keyHint?: string;\n}\n\nfunction stableStringify(value: unknown): string {\n if (value === null) return 'null';\n\n const valueType = typeof value;\n if (valueType === 'number' || valueType === 'boolean') return String(value);\n if (valueType === 'string') return JSON.stringify(value);\n if (valueType !== 'object') {\n const serializedPrimitive = JSON.stringify(value);\n return serializedPrimitive ?? String(value);\n }\n\n if (Array.isArray(value)) {\n return `[${value.map(stableStringify).join(',')}]`;\n }\n\n const objectValue = value as Record<string, unknown>;\n // eslint-disable-next-line @typescript-eslint/require-array-sort-compare\n const keys = Object.keys(objectValue).sort();\n return `{${keys.map((key) => `${JSON.stringify(key)}:${stableStringify(objectValue[key])}`).join(',')}}`;\n}\n\nexport function buildReadCacheKey(input: BuildReadCacheKeyInput): string {\n const keyParts = {\n namespace: input.namespace ?? '',\n endpointUrl: input.endpointUrl ?? '',\n operation: input.operation,\n keyHint: input.keyHint ?? '',\n args: input.args\n };\n return crypto.createHash('sha256').update(stableStringify(keyParts)).digest('hex');\n}\n\nexport class ReadCacheSingleflight {\n private readonly inflight = new Map<string, Promise<unknown>>();\n\n public async do<T>(key: string, fn: () => Promise<T>): Promise<T> {\n const existing = this.inflight.get(key) as Promise<T> | undefined;\n if (existing) {\n return existing;\n }\n\n const promise = (async(): Promise<T> => {\n try {\n return await fn();\n } finally {\n this.inflight.delete(key);\n }\n })();\n\n this.inflight.set(key, promise as Promise<unknown>);\n return promise;\n }\n}\n"]}
@@ -0,0 +1,72 @@
1
+ import type { Literal, NamedNode } from '@rdfjs/types';
2
+ import type { AskQuery, BgpPattern, BindPattern, ClearDropOperation, ConstructQuery, Expression, FilterPattern, GraphPattern, GraphQuads, Grouping, GroupPattern, InsertDeleteOperation, IriTerm, OperationExpression, OptionalPattern, Ordering, Pattern, PropertyPath, SelectQuery, ServicePattern, Triple, UnionPattern, Update, UpdateOperation, ValuesPattern, Variable } from 'sparqljs';
3
+ import type { RawQueryResult } from '../storage/query-adapter/QueryAdapter';
4
+ import type { SelectVariableQueryResult } from '../storage/query-adapter/sparql/query-executor/SparqlQueryExecutor';
5
+ export declare const rdfTypeNamedNode: NamedNode<"http://www.w3.org/1999/02/22-rdf-syntax-ns#type">;
6
+ export declare const rdfsSubClassOfNamedNode: NamedNode<"http://www.w3.org/2000/01/rdf-schema#subClassOf">;
7
+ export declare const subjectNode: import("@rdfjs/types").Variable;
8
+ export declare const predicateNode: import("@rdfjs/types").Variable;
9
+ export declare const objectNode: import("@rdfjs/types").Variable;
10
+ export declare const entityVariable: import("@rdfjs/types").Variable;
11
+ export declare const rdfTypeVariable: import("@rdfjs/types").Variable;
12
+ export declare const rdfTypesVariable: import("@rdfjs/types").Variable;
13
+ export declare const countVariable: import("@rdfjs/types").Variable;
14
+ export declare const now: import("@rdfjs/types").Variable;
15
+ export declare const created: NamedNode<"https://skl.ai/dateTimeCreated">;
16
+ export declare const modified: NamedNode<"https://skl.ai/dateTimeModified">;
17
+ export declare const firstPredicate: NamedNode<"http://www.w3.org/1999/02/22-rdf-syntax-ns#first">;
18
+ export declare const restPredicate: NamedNode<"http://www.w3.org/1999/02/22-rdf-syntax-ns#rest">;
19
+ export declare const nilPredicate: NamedNode<"http://www.w3.org/1999/02/22-rdf-syntax-ns#nil">;
20
+ export declare const anyPredicatePropertyPath: PropertyPath;
21
+ export declare const allTypesAndSuperTypesPath: PropertyPath;
22
+ export declare const bindNow: BindPattern;
23
+ export declare const dropAll: ClearDropOperation;
24
+ export declare const entityGraphTriple: {
25
+ subject: import("@rdfjs/types").Variable;
26
+ predicate: import("@rdfjs/types").Variable;
27
+ object: import("@rdfjs/types").Variable;
28
+ };
29
+ export declare function createSparqlGraphQuads(graph: NamedNode, triples: Triple[]): GraphQuads;
30
+ export declare function createSparqlClearUpdate(graph: NamedNode): ClearDropOperation;
31
+ export declare function createSparqlDropUpdate(graph: NamedNode): ClearDropOperation;
32
+ export declare function createSparqlUpdate(updates: UpdateOperation[]): Update;
33
+ export declare function createSparqlGraphPattern(name: Variable | NamedNode, patterns: Pattern[]): GraphPattern;
34
+ export declare function createSparqlConstructQuery(triples: Triple[], where: Pattern[]): ConstructQuery;
35
+ export declare function createSparqlCountSelectQuery(subject: Variable, where: Pattern[], order: Ordering[], offset?: number): SelectQuery;
36
+ export declare function creteSparqlAskQuery(where: Pattern[]): AskQuery;
37
+ export declare function createSparqlSelectGroup(patterns: Pattern[]): GroupPattern;
38
+ export declare function createSparqlOptional(patterns: Pattern[]): OptionalPattern;
39
+ export declare function createSparqlUnion(patterns: Pattern[]): UnionPattern;
40
+ export declare function createSparqlBasicGraphPattern(triples: Triple[]): BgpPattern;
41
+ export declare function createSparqlOptionalGraphSelection(name: Variable | NamedNode, triples: Triple[]): GraphPattern;
42
+ export declare function createSparqlServicePattern(serviceName: string, triples: Triple[]): ServicePattern;
43
+ export declare function ensureVariable(variableLike: string | Variable): Variable;
44
+ export declare function ensureGrouping(variableLike: Variable | string): Grouping;
45
+ export declare function createSparqlSelectQuery(variable: Variable | Variable[], where: Pattern[], order: Ordering[], group?: Variable | Variable[], limit?: number, offset?: number): SelectQuery;
46
+ export declare function createSparqlFilterWithExpression(expression: Expression): FilterPattern;
47
+ export declare function createFilterPatternFromFilters(filters: Expression[]): FilterPattern;
48
+ export declare function createSparqlBindPattern(expression: Expression, variable: Variable): BindPattern;
49
+ export declare function createSparqlEqualOperation(leftSide: Expression, rightSide: Expression): OperationExpression;
50
+ export declare function createSparqlLcaseOperation(expression: Expression): OperationExpression;
51
+ export declare function createSparqlContainsOperation(leftSide: Expression, rightSide: Expression): OperationExpression;
52
+ export declare function createSparqlGtOperation(leftSide: Expression, rightSide: Expression): OperationExpression;
53
+ export declare function createSparqlGteOperation(leftSide: Expression, rightSide: Expression): OperationExpression;
54
+ export declare function createSparqlLtOperation(leftSide: Expression, rightSide: Expression): OperationExpression;
55
+ export declare function createSparqlLteOperation(leftSide: Expression, rightSide: Expression): OperationExpression;
56
+ export declare function createSparqlNotEqualOperation(leftSide: Expression, rightSide: Expression): OperationExpression;
57
+ export declare function createSparqlInOperation(leftSide: Expression, rightSide: Expression): OperationExpression;
58
+ export declare function createSparqlNotInOperation(leftSide: Expression, rightSide: Expression): OperationExpression;
59
+ export declare function createSparqlNotExistsOperation(args: Expression[]): OperationExpression;
60
+ export declare function createSparqlExistsOperation(args: Expression[]): OperationExpression;
61
+ export declare function createSparqlInversePredicate(predicates: (IriTerm | PropertyPath)[]): PropertyPath;
62
+ export declare function createSparqlOrPredicate(predicates: (IriTerm | PropertyPath)[]): PropertyPath;
63
+ export declare function createSparqlSequencePredicate(predicates: (IriTerm | PropertyPath)[]): PropertyPath;
64
+ export declare function createSparqlZeroOrMorePredicate(predicates: (IriTerm | PropertyPath)[]): PropertyPath;
65
+ export declare function createSparqlOneOrMorePredicate(predicates: (IriTerm | PropertyPath)[]): PropertyPath;
66
+ export declare function createSparqlInsertDeleteOperation(graph: NamedNode, insertionTriples: Triple[], deletionTriples: Triple[]): InsertDeleteOperation;
67
+ export declare function selectQueryResultsAsJSValues<T extends RawQueryResult>(results: SelectVariableQueryResult<T>[]): T[];
68
+ export declare function groupSelectQueryResultsByKey(results: SelectVariableQueryResult<any>[]): Record<string, (NamedNode | Literal)[]>;
69
+ export declare function getEntityVariableValuesFromVariables(variables: Record<string, (Literal | NamedNode)[]>): string[];
70
+ export declare function getRdfTypeVariableValuesFromVariables(variables: Record<string, (Literal | NamedNode)[]>): string[];
71
+ export declare function createValuesPatternsForVariables(valuesByVariable: Record<string, (NamedNode | Literal)[]>): ValuesPattern[];
72
+ //# sourceMappingURL=SparqlUtil.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SparqlUtil.d.ts","sourceRoot":"","sources":["../../src/util/SparqlUtil.ts"],"names":[],"mappings":"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"}