@comake/skl-js-engine 1.3.9 → 1.3.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (296) hide show
  1. package/dist/JsExecutor/PermissionBuilder.d.ts +1 -0
  2. package/dist/JsExecutor/PermissionBuilder.d.ts.map +1 -0
  3. package/dist/JsExecutor/PermissionBuilder.js.map +1 -1
  4. package/dist/JsExecutor/constants.d.ts +1 -0
  5. package/dist/JsExecutor/constants.d.ts.map +1 -0
  6. package/dist/JsExecutor/constants.js.map +1 -1
  7. package/dist/JsExecutor/denoUtils.d.ts +1 -0
  8. package/dist/JsExecutor/denoUtils.d.ts.map +1 -0
  9. package/dist/JsExecutor/denoUtils.js.map +1 -1
  10. package/dist/JsExecutor/errors.d.ts +1 -0
  11. package/dist/JsExecutor/errors.d.ts.map +1 -0
  12. package/dist/JsExecutor/errors.js.map +1 -1
  13. package/dist/JsExecutor/examples/basic/index.d.ts +1 -0
  14. package/dist/JsExecutor/examples/basic/index.d.ts.map +1 -0
  15. package/dist/JsExecutor/examples/basic/index.js.map +1 -1
  16. package/dist/JsExecutor/examples/basic/process.d.ts +1 -0
  17. package/dist/JsExecutor/examples/basic/process.d.ts.map +1 -0
  18. package/dist/JsExecutor/examples/basic/process.js.map +1 -1
  19. package/dist/JsExecutor/examples/jsExecutor/index.d.ts +1 -0
  20. package/dist/JsExecutor/examples/jsExecutor/index.d.ts.map +1 -0
  21. package/dist/JsExecutor/examples/jsExecutor/index.js.map +1 -1
  22. package/dist/JsExecutor/examples/jsExecutor/process.d.ts +1 -0
  23. package/dist/JsExecutor/examples/jsExecutor/process.d.ts.map +1 -0
  24. package/dist/JsExecutor/examples/jsExecutor/process.js.map +1 -1
  25. package/dist/JsExecutor/index.d.ts +1 -0
  26. package/dist/JsExecutor/index.d.ts.map +1 -0
  27. package/dist/JsExecutor/index.js.map +1 -1
  28. package/dist/JsExecutor/jsExecutor.d.ts +1 -0
  29. package/dist/JsExecutor/jsExecutor.d.ts.map +1 -0
  30. package/dist/JsExecutor/jsExecutor.js.map +1 -1
  31. package/dist/JsExecutor/jsonRpc/JsonRpcClient.d.ts +1 -0
  32. package/dist/JsExecutor/jsonRpc/JsonRpcClient.d.ts.map +1 -0
  33. package/dist/JsExecutor/jsonRpc/JsonRpcClient.js.map +1 -1
  34. package/dist/JsExecutor/jsonRpc/JsonRpcServer.d.ts +1 -0
  35. package/dist/JsExecutor/jsonRpc/JsonRpcServer.d.ts.map +1 -0
  36. package/dist/JsExecutor/jsonRpc/JsonRpcServer.js.map +1 -1
  37. package/dist/JsExecutor/jsonRpc/index.d.ts +1 -0
  38. package/dist/JsExecutor/jsonRpc/index.d.ts.map +1 -0
  39. package/dist/JsExecutor/jsonRpc/index.js.map +1 -1
  40. package/dist/JsExecutor/jsonRpc/types.d.ts +1 -0
  41. package/dist/JsExecutor/jsonRpc/types.d.ts.map +1 -0
  42. package/dist/JsExecutor/jsonRpc/types.js.map +1 -1
  43. package/dist/JsExecutor/transport/Transport.d.ts +1 -0
  44. package/dist/JsExecutor/transport/Transport.d.ts.map +1 -0
  45. package/dist/JsExecutor/transport/Transport.js.map +1 -1
  46. package/dist/JsExecutor/transport/base/BaseTransport.d.ts +1 -0
  47. package/dist/JsExecutor/transport/base/BaseTransport.d.ts.map +1 -0
  48. package/dist/JsExecutor/transport/base/BaseTransport.js.map +1 -1
  49. package/dist/JsExecutor/transport/index.d.ts +1 -0
  50. package/dist/JsExecutor/transport/index.d.ts.map +1 -0
  51. package/dist/JsExecutor/transport/index.js.map +1 -1
  52. package/dist/JsExecutor/transport/process/ProcessManager.d.ts +1 -0
  53. package/dist/JsExecutor/transport/process/ProcessManager.d.ts.map +1 -0
  54. package/dist/JsExecutor/transport/process/ProcessManager.js.map +1 -1
  55. package/dist/JsExecutor/transport/stdio/ChildStdioTransport.d.ts +1 -0
  56. package/dist/JsExecutor/transport/stdio/ChildStdioTransport.d.ts.map +1 -0
  57. package/dist/JsExecutor/transport/stdio/ChildStdioTransport.js.map +1 -1
  58. package/dist/JsExecutor/transport/stdio/ParentStdioTransport.d.ts +1 -0
  59. package/dist/JsExecutor/transport/stdio/ParentStdioTransport.d.ts.map +1 -0
  60. package/dist/JsExecutor/transport/stdio/ParentStdioTransport.js.map +1 -1
  61. package/dist/JsExecutor/transport/utils/MessageUtils.d.ts +1 -0
  62. package/dist/JsExecutor/transport/utils/MessageUtils.d.ts.map +1 -0
  63. package/dist/JsExecutor/transport/utils/MessageUtils.js.map +1 -1
  64. package/dist/JsExecutor/transport/utils/PollingUtils.d.ts +1 -0
  65. package/dist/JsExecutor/transport/utils/PollingUtils.d.ts.map +1 -0
  66. package/dist/JsExecutor/transport/utils/PollingUtils.js.map +1 -1
  67. package/dist/JsExecutor/types.d.ts +1 -0
  68. package/dist/JsExecutor/types.d.ts.map +1 -0
  69. package/dist/JsExecutor/types.js.map +1 -1
  70. package/dist/SklEngine.d.ts +1 -0
  71. package/dist/SklEngine.d.ts.map +1 -0
  72. package/dist/SklEngine.js.map +1 -1
  73. package/dist/SklEngineOptions.d.ts +1 -0
  74. package/dist/SklEngineOptions.d.ts.map +1 -0
  75. package/dist/SklEngineOptions.js.map +1 -1
  76. package/dist/constants.d.ts +1 -0
  77. package/dist/constants.d.ts.map +1 -0
  78. package/dist/constants.js.map +1 -1
  79. package/dist/customCapabilities.d.ts +1 -0
  80. package/dist/customCapabilities.d.ts.map +1 -0
  81. package/dist/customCapabilities.js.map +1 -1
  82. package/dist/examples/customCapabilitiesExample.d.ts +1 -0
  83. package/dist/examples/customCapabilitiesExample.d.ts.map +1 -0
  84. package/dist/examples/customCapabilitiesExample.js.map +1 -1
  85. package/dist/hooks/globalHooks.d.ts +1 -0
  86. package/dist/hooks/globalHooks.d.ts.map +1 -0
  87. package/dist/hooks/globalHooks.js.map +1 -1
  88. package/dist/hooks/types.d.ts +1 -0
  89. package/dist/hooks/types.d.ts.map +1 -0
  90. package/dist/hooks/types.js.map +1 -1
  91. package/dist/index.d.ts +1 -0
  92. package/dist/index.d.ts.map +1 -0
  93. package/dist/index.js.map +1 -1
  94. package/dist/logger.d.ts +1 -0
  95. package/dist/logger.d.ts.map +1 -0
  96. package/dist/logger.js.map +1 -1
  97. package/dist/mapping/Mapper.d.ts +1 -0
  98. package/dist/mapping/Mapper.d.ts.map +1 -0
  99. package/dist/mapping/Mapper.js.map +1 -1
  100. package/dist/storage/FindOperator.d.ts +1 -0
  101. package/dist/storage/FindOperator.d.ts.map +1 -0
  102. package/dist/storage/FindOperator.js.map +1 -1
  103. package/dist/storage/FindOptionsTypes.d.ts +1 -0
  104. package/dist/storage/FindOptionsTypes.d.ts.map +1 -0
  105. package/dist/storage/FindOptionsTypes.js.map +1 -1
  106. package/dist/storage/GroupOptionTypes.d.ts +1 -0
  107. package/dist/storage/GroupOptionTypes.d.ts.map +1 -0
  108. package/dist/storage/GroupOptionTypes.js.map +1 -1
  109. package/dist/storage/operator/And.d.ts +1 -0
  110. package/dist/storage/operator/And.d.ts.map +1 -0
  111. package/dist/storage/operator/And.js.map +1 -1
  112. package/dist/storage/operator/Contains.d.ts +1 -0
  113. package/dist/storage/operator/Contains.d.ts.map +1 -0
  114. package/dist/storage/operator/Contains.js.map +1 -1
  115. package/dist/storage/operator/Equal.d.ts +1 -0
  116. package/dist/storage/operator/Equal.d.ts.map +1 -0
  117. package/dist/storage/operator/Equal.js.map +1 -1
  118. package/dist/storage/operator/Exists.d.ts +1 -0
  119. package/dist/storage/operator/Exists.d.ts.map +1 -0
  120. package/dist/storage/operator/Exists.js.map +1 -1
  121. package/dist/storage/operator/GreaterThan.d.ts +1 -0
  122. package/dist/storage/operator/GreaterThan.d.ts.map +1 -0
  123. package/dist/storage/operator/GreaterThan.js.map +1 -1
  124. package/dist/storage/operator/GreaterThanOrEqual.d.ts +1 -0
  125. package/dist/storage/operator/GreaterThanOrEqual.d.ts.map +1 -0
  126. package/dist/storage/operator/GreaterThanOrEqual.js.map +1 -1
  127. package/dist/storage/operator/In.d.ts +1 -0
  128. package/dist/storage/operator/In.d.ts.map +1 -0
  129. package/dist/storage/operator/In.js.map +1 -1
  130. package/dist/storage/operator/Inverse.d.ts +1 -0
  131. package/dist/storage/operator/Inverse.d.ts.map +1 -0
  132. package/dist/storage/operator/Inverse.js.map +1 -1
  133. package/dist/storage/operator/InversePath.d.ts +1 -0
  134. package/dist/storage/operator/InversePath.d.ts.map +1 -0
  135. package/dist/storage/operator/InversePath.js.map +1 -1
  136. package/dist/storage/operator/InverseRelation.d.ts +1 -0
  137. package/dist/storage/operator/InverseRelation.d.ts.map +1 -0
  138. package/dist/storage/operator/InverseRelation.js.map +1 -1
  139. package/dist/storage/operator/InverseRelationOrder.d.ts +1 -0
  140. package/dist/storage/operator/InverseRelationOrder.d.ts.map +1 -0
  141. package/dist/storage/operator/InverseRelationOrder.js.map +1 -1
  142. package/dist/storage/operator/LessThan.d.ts +1 -0
  143. package/dist/storage/operator/LessThan.d.ts.map +1 -0
  144. package/dist/storage/operator/LessThan.js.map +1 -1
  145. package/dist/storage/operator/LessThanOrEqual.d.ts +1 -0
  146. package/dist/storage/operator/LessThanOrEqual.d.ts.map +1 -0
  147. package/dist/storage/operator/LessThanOrEqual.js.map +1 -1
  148. package/dist/storage/operator/Not.d.ts +1 -0
  149. package/dist/storage/operator/Not.d.ts.map +1 -0
  150. package/dist/storage/operator/Not.js.map +1 -1
  151. package/dist/storage/operator/OneOrMorePath.d.ts +1 -0
  152. package/dist/storage/operator/OneOrMorePath.d.ts.map +1 -0
  153. package/dist/storage/operator/OneOrMorePath.js.map +1 -1
  154. package/dist/storage/operator/Sequence.d.ts +1 -0
  155. package/dist/storage/operator/Sequence.d.ts.map +1 -0
  156. package/dist/storage/operator/Sequence.js.map +1 -1
  157. package/dist/storage/operator/SequencePath.d.ts +1 -0
  158. package/dist/storage/operator/SequencePath.d.ts.map +1 -0
  159. package/dist/storage/operator/SequencePath.js.map +1 -1
  160. package/dist/storage/operator/ZeroOrMorePath.d.ts +1 -0
  161. package/dist/storage/operator/ZeroOrMorePath.d.ts.map +1 -0
  162. package/dist/storage/operator/ZeroOrMorePath.js.map +1 -1
  163. package/dist/storage/query-adapter/QueryAdapter.d.ts +1 -0
  164. package/dist/storage/query-adapter/QueryAdapter.d.ts.map +1 -0
  165. package/dist/storage/query-adapter/QueryAdapter.js.map +1 -1
  166. package/dist/storage/query-adapter/sparql/SparqlQueryAdapter.d.ts +1 -0
  167. package/dist/storage/query-adapter/sparql/SparqlQueryAdapter.d.ts.map +1 -0
  168. package/dist/storage/query-adapter/sparql/SparqlQueryAdapter.js +16 -3
  169. package/dist/storage/query-adapter/sparql/SparqlQueryAdapter.js.map +1 -1
  170. package/dist/storage/query-adapter/sparql/SparqlQueryAdapterOptions.d.ts +1 -0
  171. package/dist/storage/query-adapter/sparql/SparqlQueryAdapterOptions.d.ts.map +1 -0
  172. package/dist/storage/query-adapter/sparql/SparqlQueryAdapterOptions.js.map +1 -1
  173. package/dist/storage/query-adapter/sparql/SparqlQueryBuilder.d.ts +1 -0
  174. package/dist/storage/query-adapter/sparql/SparqlQueryBuilder.d.ts.map +1 -0
  175. package/dist/storage/query-adapter/sparql/SparqlQueryBuilder.js +7 -22
  176. package/dist/storage/query-adapter/sparql/SparqlQueryBuilder.js.map +1 -1
  177. package/dist/storage/query-adapter/sparql/SparqlUpdateBuilder.d.ts +1 -0
  178. package/dist/storage/query-adapter/sparql/SparqlUpdateBuilder.d.ts.map +1 -0
  179. package/dist/storage/query-adapter/sparql/SparqlUpdateBuilder.js.map +1 -1
  180. package/dist/storage/query-adapter/sparql/VariableGenerator.d.ts +1 -0
  181. package/dist/storage/query-adapter/sparql/VariableGenerator.d.ts.map +1 -0
  182. package/dist/storage/query-adapter/sparql/VariableGenerator.js.map +1 -1
  183. package/dist/storage/query-adapter/sparql/query-executor/InMemorySparqlQueryExecutor.d.ts +1 -0
  184. package/dist/storage/query-adapter/sparql/query-executor/InMemorySparqlQueryExecutor.d.ts.map +1 -0
  185. package/dist/storage/query-adapter/sparql/query-executor/InMemorySparqlQueryExecutor.js.map +1 -1
  186. package/dist/storage/query-adapter/sparql/query-executor/SparqlEndpointQueryExecutor.d.ts +1 -0
  187. package/dist/storage/query-adapter/sparql/query-executor/SparqlEndpointQueryExecutor.d.ts.map +1 -0
  188. package/dist/storage/query-adapter/sparql/query-executor/SparqlEndpointQueryExecutor.js.map +1 -1
  189. package/dist/storage/query-adapter/sparql/query-executor/SparqlQueryExecutor.d.ts +1 -0
  190. package/dist/storage/query-adapter/sparql/query-executor/SparqlQueryExecutor.d.ts.map +1 -0
  191. package/dist/storage/query-adapter/sparql/query-executor/SparqlQueryExecutor.js.map +1 -1
  192. package/dist/util/PerformanceLogger.d.ts +1 -0
  193. package/dist/util/PerformanceLogger.d.ts.map +1 -0
  194. package/dist/util/PerformanceLogger.js.map +1 -1
  195. package/dist/util/SparqlUtil.d.ts +1 -0
  196. package/dist/util/SparqlUtil.d.ts.map +1 -0
  197. package/dist/util/SparqlUtil.js.map +1 -1
  198. package/dist/util/TripleUtil.d.ts +1 -0
  199. package/dist/util/TripleUtil.d.ts.map +1 -0
  200. package/dist/util/TripleUtil.js.map +1 -1
  201. package/dist/util/Types.d.ts +1 -0
  202. package/dist/util/Types.d.ts.map +1 -0
  203. package/dist/util/Types.js.map +1 -1
  204. package/dist/util/Util.d.ts +1 -0
  205. package/dist/util/Util.d.ts.map +1 -0
  206. package/dist/util/Util.js.map +1 -1
  207. package/dist/util/Vocabularies/Shared.d.ts +1 -0
  208. package/dist/util/Vocabularies/Shared.d.ts.map +1 -0
  209. package/dist/util/Vocabularies/Shared.js.map +1 -1
  210. package/dist/util/Vocabularies/helper.d.ts +1 -0
  211. package/dist/util/Vocabularies/helper.d.ts.map +1 -0
  212. package/dist/util/Vocabularies/helper.js.map +1 -1
  213. package/dist/util/Vocabularies/index.d.ts +1 -0
  214. package/dist/util/Vocabularies/index.d.ts.map +1 -0
  215. package/dist/util/Vocabularies/index.js.map +1 -1
  216. package/dist/util/safeJsonStringify.d.ts +1 -0
  217. package/dist/util/safeJsonStringify.d.ts.map +1 -0
  218. package/dist/util/safeJsonStringify.js.map +1 -1
  219. package/package.json +6 -3
  220. package/src/JsExecutor/PermissionBuilder.ts +60 -0
  221. package/src/JsExecutor/constants.ts +27 -0
  222. package/src/JsExecutor/denoUtils.ts +20 -0
  223. package/src/JsExecutor/errors.ts +63 -0
  224. package/src/JsExecutor/examples/basic/index.ts +54 -0
  225. package/src/JsExecutor/examples/basic/process.ts +39 -0
  226. package/src/JsExecutor/examples/jsExecutor/README.md +3 -0
  227. package/src/JsExecutor/examples/jsExecutor/index.ts +50 -0
  228. package/src/JsExecutor/examples/jsExecutor/process.ts +79 -0
  229. package/src/JsExecutor/index.ts +19 -0
  230. package/src/JsExecutor/jsExecutor.ts +194 -0
  231. package/src/JsExecutor/jsonRpc/JsonRpcClient.ts +422 -0
  232. package/src/JsExecutor/jsonRpc/JsonRpcServer.ts +454 -0
  233. package/src/JsExecutor/jsonRpc/index.ts +4 -0
  234. package/src/JsExecutor/jsonRpc/types.ts +231 -0
  235. package/src/JsExecutor/transport/README.md +67 -0
  236. package/src/JsExecutor/transport/Transport.ts +106 -0
  237. package/src/JsExecutor/transport/base/BaseTransport.ts +83 -0
  238. package/src/JsExecutor/transport/index.ts +56 -0
  239. package/src/JsExecutor/transport/process/ProcessManager.ts +281 -0
  240. package/src/JsExecutor/transport/stdio/ChildStdioTransport.ts +251 -0
  241. package/src/JsExecutor/transport/stdio/ParentStdioTransport.ts +308 -0
  242. package/src/JsExecutor/transport/utils/MessageUtils.ts +139 -0
  243. package/src/JsExecutor/transport/utils/PollingUtils.ts +114 -0
  244. package/src/JsExecutor/types.ts +130 -0
  245. package/src/SklEngine.ts +1828 -0
  246. package/src/SklEngineOptions.ts +28 -0
  247. package/src/constants.ts +120 -0
  248. package/src/customCapabilities.ts +65 -0
  249. package/src/examples/customCapabilitiesExample.ts +77 -0
  250. package/src/hooks/globalHooks.ts +238 -0
  251. package/src/hooks/types.ts +7 -0
  252. package/src/index.ts +45 -0
  253. package/src/logger.ts +144 -0
  254. package/src/mapping/Mapper.ts +52 -0
  255. package/src/storage/FindOperator.ts +55 -0
  256. package/src/storage/FindOptionsTypes.ts +107 -0
  257. package/src/storage/GroupOptionTypes.ts +32 -0
  258. package/src/storage/operator/And.ts +10 -0
  259. package/src/storage/operator/Contains.ts +9 -0
  260. package/src/storage/operator/Equal.ts +13 -0
  261. package/src/storage/operator/Exists.ts +6 -0
  262. package/src/storage/operator/GreaterThan.ts +12 -0
  263. package/src/storage/operator/GreaterThanOrEqual.ts +12 -0
  264. package/src/storage/operator/In.ts +12 -0
  265. package/src/storage/operator/Inverse.ts +11 -0
  266. package/src/storage/operator/InversePath.ts +17 -0
  267. package/src/storage/operator/InverseRelation.ts +18 -0
  268. package/src/storage/operator/InverseRelationOrder.ts +17 -0
  269. package/src/storage/operator/LessThan.ts +12 -0
  270. package/src/storage/operator/LessThanOrEqual.ts +12 -0
  271. package/src/storage/operator/Not.ts +11 -0
  272. package/src/storage/operator/OneOrMorePath.ts +17 -0
  273. package/src/storage/operator/Sequence.ts +11 -0
  274. package/src/storage/operator/SequencePath.ts +17 -0
  275. package/src/storage/operator/ZeroOrMorePath.ts +17 -0
  276. package/src/storage/query-adapter/QueryAdapter.ts +110 -0
  277. package/src/storage/query-adapter/sparql/SparqlQueryAdapter.ts +400 -0
  278. package/src/storage/query-adapter/sparql/SparqlQueryAdapterOptions.ts +38 -0
  279. package/src/storage/query-adapter/sparql/SparqlQueryBuilder.ts +1524 -0
  280. package/src/storage/query-adapter/sparql/SparqlUpdateBuilder.ts +347 -0
  281. package/src/storage/query-adapter/sparql/VariableGenerator.ts +8 -0
  282. package/src/storage/query-adapter/sparql/query-executor/InMemorySparqlQueryExecutor.ts +135 -0
  283. package/src/storage/query-adapter/sparql/query-executor/SparqlEndpointQueryExecutor.ts +146 -0
  284. package/src/storage/query-adapter/sparql/query-executor/SparqlQueryExecutor.ts +51 -0
  285. package/src/util/PerformanceLogger.ts +286 -0
  286. package/src/util/SparqlUtil.ts +516 -0
  287. package/src/util/TripleUtil.ts +412 -0
  288. package/src/util/Types.ts +399 -0
  289. package/src/util/Util.ts +116 -0
  290. package/src/util/Vocabularies/Shared.ts +99 -0
  291. package/src/util/Vocabularies/helper.ts +14 -0
  292. package/src/util/Vocabularies/index.ts +108 -0
  293. package/src/util/safeJsonStringify.ts +19 -0
  294. package/dist/JsExecutor/transport/StdioTransport.d.ts +0 -0
  295. package/dist/JsExecutor/transport/StdioTransport.js +0 -641
  296. package/dist/JsExecutor/transport/StdioTransport.js.map +0 -1
@@ -0,0 +1,28 @@
1
+ import type { SparqlQueryAdapterOptions } from './storage/query-adapter/sparql/SparqlQueryAdapterOptions';
2
+ import type { Callbacks } from './util/Types';
3
+
4
+ export type SklEngineOptions = SparqlQueryAdapterOptions & {
5
+ /**
6
+ * Callbacks to execute upon events.
7
+ */
8
+ readonly callbacks?: Callbacks;
9
+ /**
10
+ * Manually defined functions which can be used in mappings.
11
+ */
12
+ readonly functions?: Record<string, (args: any | any[]) => any>;
13
+ /**
14
+ * When true, disables validation of verb parameters and return values according to schemas
15
+ */
16
+ readonly disableValidation?: boolean;
17
+ /**
18
+ * An object containing files keyed on their title that can be used in mappings.
19
+ */
20
+ readonly inputFiles?: Record<string, string>;
21
+
22
+ readonly debugMode?: boolean;
23
+
24
+ /**
25
+ * The path to the executor script.
26
+ */
27
+ readonly scriptPath?: string;
28
+ };
@@ -0,0 +1,120 @@
1
+ import {
2
+ SKL_DATA_NAMESPACE as SKL_DATA_NAMESPACE_VOCAB,
3
+ SKL_ENGINE,
4
+ SKL_ENGINE_NAMESPACE as SKL_ENGINE_NAMESPACE_VOCAB,
5
+ SKL_NAMESPACE as SKL_NAMESPACE_VOCAB,
6
+ SKL_PROPERTY,
7
+ SKL_SPECS
8
+ } from './util/Vocabularies';
9
+ import {
10
+ OWL as OWL_VOCAB,
11
+ R2RML as R2RML_VOCAB,
12
+ RDF as RDF_VOCAB,
13
+ RDFS as RDFS_VOCAB, SHACL as SHACL_VOCAB, SHACL_NAMESPACE as SHACL_NAMESPACE_VOCAB, XSD as XSD_VOCAB
14
+ } from './util/Vocabularies/Shared';
15
+
16
+ export const SKL_NAMESPACE = SKL_NAMESPACE_VOCAB;
17
+ export const SKL_DATA_NAMESPACE = SKL_DATA_NAMESPACE_VOCAB;
18
+ export const SKL_ENGINE_NAMESPACE = SKL_ENGINE_NAMESPACE_VOCAB;
19
+
20
+ export const OWL = OWL_VOCAB;
21
+ export const RDF = RDF_VOCAB;
22
+ export const RDFS = RDFS_VOCAB;
23
+ export const R2RML = R2RML_VOCAB;
24
+ export const XSD = XSD_VOCAB;
25
+ export const SHACL = SHACL_VOCAB;
26
+ export const SHACL_NAMESPACE = SHACL_NAMESPACE_VOCAB;
27
+ export const PROP_ENTITY_ID = '@id';
28
+ export const PROP_ENTITY_TYPE = '@type';
29
+ export const PROP_ENTITY_VALUE = '@value';
30
+
31
+ // RML constants
32
+
33
+ export const RML_LIST = '@list';
34
+
35
+ export const OPEN_API_RUNTIME_AUTHORIZATION = 'getOpenApiRuntimeAuthorization';
36
+
37
+ // eslint-disable-next-line @typescript-eslint/naming-convention
38
+ export const EngineConstants = {
39
+ spec: {
40
+ capability: SKL_SPECS.Capability,
41
+ capabilityMapping: SKL_SPECS.CapabilityMapping,
42
+ triggerCapabilityMapping: SKL_SPECS.TriggerCapabilityMapping,
43
+ invalidTokenErrorMatcher: SKL_SPECS['integration/InvalidTokenErrorMatcher'],
44
+ jsonDataSource: SKL_SPECS.JsonDataSource,
45
+ mapping: SKL_SPECS.Mapping,
46
+ inputs: SKL_SPECS.Inputs,
47
+ openApi: SKL_SPECS.OpenAPI,
48
+ codeBlock: SKL_SPECS.CodeBlock,
49
+ integrationAuthenticationCredential: SKL_SPECS['integration/AuthenticationCredential'],
50
+ integrationInterface: SKL_SPECS['integration/IntegrationInterface']
51
+ },
52
+ prop: {
53
+ capability: SKL_PROPERTY.capability,
54
+ inputs: SKL_PROPERTY.inputs,
55
+ outputs: SKL_PROPERTY.outputs,
56
+ inputsContext: SKL_PROPERTY.inputsContext,
57
+ outputsContext: SKL_PROPERTY.outputsContext,
58
+ invalidTokenErrorMatcher: SKL_PROPERTY['integration/invalidTokenErrorMatcher'],
59
+ invalidTokenErrorMatcherStatus: SKL_PROPERTY['integration/invalidTokenErrorMatcherStatus'],
60
+ invalidTokenErrorMatcherMessageRegex: SKL_PROPERTY['integration/invalidTokenErrorMatcherMessageRegex'],
61
+ refreshToken: SKL_PROPERTY['integration/credential/refreshToken'],
62
+ jwtBearerOptions: SKL_PROPERTY['integration/credential/jwtBearerOptions'],
63
+ accessToken: SKL_PROPERTY['integration/credential/accessToken'],
64
+ bearerToken: SKL_PROPERTY['integration/credential/bearerToken'],
65
+ username: SKL_PROPERTY['integration/username'],
66
+ password: SKL_PROPERTY['integration/password'],
67
+ oneTimePassword: SKL_PROPERTY['integration/oneTimePassword'],
68
+ apiKey: SKL_PROPERTY['integration/apiKey'],
69
+ declarativeApiDescription: SKL_PROPERTY['integration/declarativeApiDescription'],
70
+ overrideBasePath: SKL_PROPERTY['integration/overrideBasePath'],
71
+ schemeName: SKL_PROPERTY['integration/schemeName'],
72
+ oauthFlow: SKL_PROPERTY['integration/oauthFlow'],
73
+ stage: SKL_PROPERTY['integration/stage'],
74
+ operationId: SKL_PROPERTY.operationId,
75
+
76
+ data: SKL_PROPERTY.data,
77
+ source: SKL_PROPERTY.source,
78
+ headers: SKL_PROPERTY.headers,
79
+ object: SKL_PROPERTY.object,
80
+ dataSource: SKL_PROPERTY.dataSource,
81
+
82
+ series: SKL_PROPERTY['mapping/series'],
83
+ parallel: SKL_PROPERTY['mapping/parallel'],
84
+ inputsReference: SKL_PROPERTY['mapping/inputsReference'],
85
+ inputsMapping: SKL_PROPERTY['mapping/inputsMapping'],
86
+ inputsMappingFrame: SKL_PROPERTY['mapping/inputsMappingFrame'],
87
+ inputsMappingRef: SKL_PROPERTY['mapping/inputsMappingRef'],
88
+ inputsMappingFrameRef: SKL_PROPERTY['mapping/inputsMappingFrameRef'],
89
+ outputsMapping: SKL_PROPERTY['mapping/outputsMapping'],
90
+ outputsMappingFrame: SKL_PROPERTY['mapping/outputsMappingFrame'],
91
+ preProcessingMapping: SKL_PROPERTY['mapping/preProcessingMapping'],
92
+ preProcessingMappingFrame: SKL_PROPERTY['mapping/preProcessingMappingFrame'],
93
+ operationMapping: SKL_PROPERTY['mapping/operationMapping'],
94
+
95
+ type: SKL_PROPERTY.type,
96
+ dateCreated: SKL_PROPERTY.dateTimeCreated,
97
+ dateModified: SKL_PROPERTY.dateTimeModified,
98
+ label: SKL_PROPERTY.label,
99
+ identifier: SKL_PROPERTY.identifier,
100
+ codeBody: SKL_PROPERTY['content/codeBody'],
101
+ codeBlocks: SKL_PROPERTY['content/codeBlocks'],
102
+ integration: SKL_PROPERTY['integration/integration'],
103
+ accountOrUser: SKL_PROPERTY.accountOrUser,
104
+
105
+ capabilityType: SKL_PROPERTY.capabilityType
106
+ },
107
+ dataSource: {
108
+ update: SKL_ENGINE.update,
109
+ findAll: SKL_ENGINE.findAll,
110
+ findAllBy: SKL_ENGINE.findAllBy,
111
+ find: SKL_ENGINE.find,
112
+ findBy: SKL_ENGINE.findBy,
113
+ exists: SKL_ENGINE.exists,
114
+ existsResult: SKL_ENGINE.existsResult,
115
+ count: SKL_ENGINE.count,
116
+ countResult: SKL_ENGINE.countResult,
117
+ save: SKL_ENGINE.save,
118
+ destroy: SKL_ENGINE.destroy
119
+ }
120
+ };
@@ -0,0 +1,65 @@
1
+ import type { NodeObject } from 'jsonld';
2
+ import type { CapabilityConfig, JSONObject, OrArray } from './util/Types';
3
+
4
+ // Define the custom capability handler type
5
+ // Using any to avoid circular dependency
6
+ export type CustomCapabilityHandler = (
7
+ args: JSONObject,
8
+ sklEngine: any,
9
+ capabilityConfig?: CapabilityConfig
10
+ ) => Promise<OrArray<NodeObject>>;
11
+
12
+ // Global custom capabilities registry
13
+ class GlobalCustomCapabilitiesRegistry {
14
+ private readonly customCapabilities: Map<string, CustomCapabilityHandler> = new Map();
15
+
16
+ public register(capabilityId: string, handler: CustomCapabilityHandler): void {
17
+ this.customCapabilities.set(capabilityId, handler);
18
+ }
19
+
20
+ public unregister(capabilityId: string): boolean {
21
+ return this.customCapabilities.delete(capabilityId);
22
+ }
23
+
24
+ public has(capabilityId: string): boolean {
25
+ return this.customCapabilities.has(capabilityId);
26
+ }
27
+
28
+ public async execute(
29
+ capabilityId: string,
30
+ args: JSONObject,
31
+ sklEngine: any,
32
+ capabilityConfig?: CapabilityConfig
33
+ ): Promise<OrArray<NodeObject>> {
34
+ const handler = this.customCapabilities.get(capabilityId);
35
+ if (!handler) {
36
+ throw new Error(`Custom capability '${capabilityId}' not found`);
37
+ }
38
+ return await handler(args, sklEngine, capabilityConfig);
39
+ }
40
+
41
+ public getAll(): string[] {
42
+ return [ ...this.customCapabilities.keys() ];
43
+ }
44
+
45
+ public clear(): void {
46
+ this.customCapabilities.clear();
47
+ }
48
+ }
49
+
50
+ // Global instance
51
+ const globalCustomCapabilities = new GlobalCustomCapabilitiesRegistry();
52
+
53
+ // Export functions for external use
54
+ export const customCapabilities = {
55
+ register(capabilityId: string, handler: CustomCapabilityHandler): void {
56
+ globalCustomCapabilities.register(capabilityId, handler);
57
+ },
58
+ unregister: (capabilityId: string): boolean => globalCustomCapabilities.unregister(capabilityId),
59
+ has: (capabilityId: string): boolean => globalCustomCapabilities.has(capabilityId),
60
+ getAll: (): string[] => globalCustomCapabilities.getAll(),
61
+ clear: (): void => globalCustomCapabilities.clear()
62
+ };
63
+
64
+ // Export the registry instance for internal use
65
+ export { globalCustomCapabilities };
@@ -0,0 +1,77 @@
1
+ /* eslint-disable @typescript-eslint/naming-convention */
2
+ /* eslint-disable no-console */
3
+
4
+ import type { NodeObject } from 'jsonld';
5
+ import type { SKLEngine } from '../index';
6
+ import { customCapabilities } from '../index';
7
+ import type { JSONObject } from '../util/Types';
8
+
9
+ // Example 1: Simple custom capability
10
+ customCapabilities.register('greetUser', async(args: JSONObject): Promise<NodeObject> => ({
11
+ '@type': 'GreetingResult',
12
+ '@value': `Hello, ${args.name as string}! Welcome to SKL Engine.`
13
+ }));
14
+
15
+ // Example 2: Custom capability that uses SKL Engine instance
16
+ customCapabilities.register(
17
+ 'countEntitiesWithProcessing',
18
+ async(args: JSONObject, sklEngine: SKLEngine): Promise<NodeObject> => {
19
+ try {
20
+ // Use the SKL engine to count entities
21
+ const count = await sklEngine.count(args);
22
+
23
+ // Add some processing
24
+ const processedCount = count * 2;
25
+
26
+ return {
27
+ '@type': 'ProcessedCountResult',
28
+ '@value': {
29
+ originalCount: count,
30
+ processedCount,
31
+ timestamp: new Date().toISOString()
32
+ }
33
+ };
34
+ } catch (error: unknown) {
35
+ return {
36
+ '@type': 'ErrorResult',
37
+ '@value': {
38
+ error: error instanceof Error ? error.message : 'Unknown error',
39
+ timestamp: new Date().toISOString()
40
+ }
41
+ };
42
+ }
43
+ }
44
+ );
45
+
46
+ // Example 3: Custom capability that returns multiple results
47
+ customCapabilities.register(
48
+ 'generateMultipleGreetings',
49
+ async(args: JSONObject): Promise<NodeObject[]> => {
50
+ const names = args.names as string[] || [];
51
+
52
+ return names.map((name, index) => ({
53
+ '@type': 'IndexedGreeting',
54
+ '@value': {
55
+ index,
56
+ message: `Hello, ${name}!`,
57
+ timestamp: new Date().toISOString()
58
+ }
59
+ }));
60
+ }
61
+ );
62
+
63
+ // Usage example:
64
+ console.log('Custom capabilities registered:');
65
+ console.log('- greetUser');
66
+ console.log('- countEntitiesWithProcessing');
67
+ console.log('- generateMultipleGreetings');
68
+
69
+ console.log('\nAll registered capabilities:', customCapabilities.getAll());
70
+
71
+ // Check if capabilities exist
72
+ console.log('\nCapability checks:');
73
+ console.log('greetUser exists:', customCapabilities.has('greetUser'));
74
+ console.log('nonExistent exists:', customCapabilities.has('nonExistent'));
75
+
76
+ export { };
77
+
@@ -0,0 +1,238 @@
1
+ /* eslint-disable id-length */
2
+ /* eslint-disable symbol-description */
3
+ /* eslint-disable @typescript-eslint/explicit-member-accessibility */
4
+ /* eslint-disable @typescript-eslint/naming-convention */
5
+ import type { CapabilityMapping, Entity } from '../util/Types';
6
+ import type { SklHookContext } from './types';
7
+
8
+ // Use symbols for hook types to avoid string collisions
9
+ export const HookTypes = {
10
+ CREATE: Symbol('create'),
11
+ READ: Symbol('read'),
12
+ UPDATE: Symbol('update'),
13
+ DELETE: Symbol('delete'),
14
+ EXECUTE_CAPABILITY_MAPPING: Symbol('executeCapabilityMapping')
15
+ };
16
+
17
+ export const HookStages = {
18
+ BEFORE: Symbol('before'),
19
+ AFTER: Symbol('after'),
20
+ ERROR: Symbol('error')
21
+ };
22
+
23
+ // Hook function types
24
+ export type GlobalBeforeHook = (context: SklHookContext) => Promise<void> | void;
25
+ export type GlobalAfterHook = (context: SklHookContext, result: any) => Promise<any> | any;
26
+ export type GlobalErrorHook = (context: SklHookContext, error: Error) => Promise<void> | void;
27
+ export type GlobalExecuteCapabilityHook = (
28
+ context: SklHookContext,
29
+ capabilityMapping: CapabilityMapping,
30
+ ) => Promise<void> | void;
31
+ // Hook registry entry type with metadata
32
+ interface HookEntry {
33
+ id: symbol;
34
+ fn: GlobalBeforeHook | GlobalAfterHook | GlobalErrorHook;
35
+ priority: number;
36
+ }
37
+
38
+ // Registry to store global hooks
39
+ class GlobalHooksRegistry {
40
+ private readonly hooks: Map<symbol, Map<symbol, HookEntry[]>> = new Map();
41
+
42
+ constructor() {
43
+ // Initialize hook maps for all CRUD operations and stages
44
+ Object.values(HookTypes).forEach(type => {
45
+ this.hooks.set(type, new Map());
46
+ Object.values(HookStages).forEach(stage => {
47
+ this.hooks.get(type)!.set(stage, []);
48
+ });
49
+ });
50
+ }
51
+
52
+ /**
53
+ * Register a hook with optional priority (higher runs first)
54
+ */
55
+ register(
56
+ type: symbol,
57
+ stage: symbol,
58
+ hook: GlobalBeforeHook | GlobalAfterHook | GlobalErrorHook,
59
+ priority = 0
60
+ ): symbol {
61
+ const hookId = Symbol();
62
+ const hooksList = this.hooks.get(type)?.get(stage);
63
+
64
+ if (!hooksList) {
65
+ throw new Error(`Invalid hook type or stage`);
66
+ }
67
+
68
+ hooksList.push({
69
+ id: hookId,
70
+ fn: hook,
71
+ priority
72
+ });
73
+
74
+ // Sort by priority (descending)
75
+ hooksList.sort((a, b) => b.priority - a.priority);
76
+
77
+ return hookId;
78
+ }
79
+
80
+ /**
81
+ * Unregister a hook by its ID
82
+ */
83
+ unregister(hookId: symbol): boolean {
84
+ let removed = false;
85
+
86
+ this.hooks.forEach(stageMap => {
87
+ stageMap.forEach(hooksList => {
88
+ const index = hooksList.findIndex(entry => entry.id === hookId);
89
+ if (index !== -1) {
90
+ hooksList.splice(index, 1);
91
+ removed = true;
92
+ }
93
+ });
94
+ });
95
+
96
+ return removed;
97
+ }
98
+
99
+ /**
100
+ * Execute hooks for a specific operation and stage
101
+ */
102
+ async execute(type: symbol, stage: symbol, context: SklHookContext, resultOrError?: any): Promise<any> {
103
+ const hooksList = this.hooks.get(type)?.get(stage);
104
+
105
+ if (!hooksList || hooksList.length === 0) {
106
+ return resultOrError;
107
+ }
108
+
109
+ if (stage === HookStages.BEFORE) {
110
+ for (const entry of hooksList) {
111
+ await (entry.fn as GlobalBeforeHook)(context);
112
+ }
113
+ return resultOrError;
114
+ }
115
+ if (stage === HookStages.AFTER) {
116
+ let result = resultOrError;
117
+ for (const entry of hooksList) {
118
+ const newResult = await (entry.fn as GlobalAfterHook)(context, result);
119
+ if (newResult !== undefined) {
120
+ result = newResult;
121
+ }
122
+ }
123
+ return result;
124
+ }
125
+ if (stage === HookStages.ERROR) {
126
+ for (const entry of hooksList) {
127
+ await (entry.fn as GlobalErrorHook)(context, resultOrError);
128
+ }
129
+ return resultOrError;
130
+ }
131
+
132
+ return resultOrError;
133
+ }
134
+
135
+ // Convenience methods for common operations
136
+ registerBeforeCreate(hook: GlobalBeforeHook, priority?: number): symbol {
137
+ return this.register(HookTypes.CREATE, HookStages.BEFORE, hook, priority);
138
+ }
139
+
140
+ registerAfterCreate(hook: GlobalAfterHook, priority?: number): symbol {
141
+ return this.register(HookTypes.CREATE, HookStages.AFTER, hook, priority);
142
+ }
143
+
144
+ registerErrorCreate(hook: GlobalErrorHook, priority?: number): symbol {
145
+ return this.register(HookTypes.CREATE, HookStages.ERROR, hook, priority);
146
+ }
147
+
148
+ // Additional convenience methods for other CRUD operations
149
+ registerBeforeRead(hook: GlobalBeforeHook, priority?: number): symbol {
150
+ return this.register(HookTypes.READ, HookStages.BEFORE, hook, priority);
151
+ }
152
+
153
+ // ... other convenience methods for read, update, delete operations
154
+
155
+ // Convenience methods for execute capability operations
156
+ registerBeforeExecuteCapabilityMapping(hook: GlobalExecuteCapabilityHook, priority?: number): symbol {
157
+ return this.register(HookTypes.EXECUTE_CAPABILITY_MAPPING, HookStages.BEFORE, hook, priority);
158
+ }
159
+
160
+ registerAfterExecuteCapabilityMapping(hook: GlobalAfterHook, priority?: number): symbol {
161
+ return this.register(HookTypes.EXECUTE_CAPABILITY_MAPPING, HookStages.AFTER, hook, priority);
162
+ }
163
+
164
+ registerErrorExecuteCapabilityMapping(hook: GlobalErrorHook, priority?: number): symbol {
165
+ return this.register(HookTypes.EXECUTE_CAPABILITY_MAPPING, HookStages.ERROR, hook, priority);
166
+ }
167
+
168
+ // Execution convenience methods
169
+ async executeBeforeCreate(entities: Entity[]): Promise<void> {
170
+ await this.execute(HookTypes.CREATE, HookStages.BEFORE, { entities, operation: 'save', operationParameters: {}});
171
+ }
172
+
173
+ async executeAfterCreate(entities: Entity | Entity[]): Promise<any> {
174
+ if (!Array.isArray(entities)) {
175
+ entities = [ entities ];
176
+ }
177
+ return this.execute(
178
+ HookTypes.CREATE,
179
+ HookStages.AFTER,
180
+ { entities, operation: 'save', operationParameters: {}},
181
+ entities
182
+ );
183
+ }
184
+
185
+ async executeErrorCreate(entities: Entity[], error: Error): Promise<void> {
186
+ await this.execute(
187
+ HookTypes.CREATE,
188
+ HookStages.ERROR,
189
+ { entities, operation: 'save', operationParameters: {}},
190
+ error
191
+ );
192
+ }
193
+
194
+ async executeBeforeExecuteCapabilityMapping(entities: Entity[], capabilityMapping: CapabilityMapping): Promise<void> {
195
+ await this.execute(HookTypes.EXECUTE_CAPABILITY_MAPPING, HookStages.BEFORE, {
196
+ entities,
197
+ operation: 'executeCapabilityMapping',
198
+ operationParameters: { capabilityMapping }
199
+ });
200
+ }
201
+
202
+ async executeAfterExecuteCapabilityMapping(
203
+ entities: Entity[],
204
+ capabilityMapping: CapabilityMapping,
205
+ result: any
206
+ ): Promise<any> {
207
+ return this.execute(
208
+ HookTypes.EXECUTE_CAPABILITY_MAPPING,
209
+ HookStages.AFTER,
210
+ {
211
+ entities,
212
+ operation: 'executeCapabilityMapping',
213
+ operationParameters: { capabilityMapping }
214
+ },
215
+ result
216
+ );
217
+ }
218
+
219
+ async executeErrorExecuteCapabilityMapping(
220
+ entities: Entity[],
221
+ capabilityMapping: CapabilityMapping,
222
+ error: Error
223
+ ): Promise<void> {
224
+ await this.execute(
225
+ HookTypes.EXECUTE_CAPABILITY_MAPPING,
226
+ HookStages.ERROR,
227
+ {
228
+ entities,
229
+ operation: 'executeCapabilityMapping',
230
+ operationParameters: { capabilityMapping }
231
+ },
232
+ error
233
+ );
234
+ }
235
+ }
236
+
237
+ // Export a singleton instance
238
+ export const globalHooks = new GlobalHooksRegistry();
@@ -0,0 +1,7 @@
1
+ import type { Entity } from '../util/Types';
2
+
3
+ export type SklHookContext = {
4
+ entities: Entity[];
5
+ operation: string;
6
+ operationParameters: Record<string, any>;
7
+ };
package/src/index.ts ADDED
@@ -0,0 +1,45 @@
1
+ // Mapping
2
+ export * from './constants';
3
+ export { customCapabilities, type CustomCapabilityHandler } from './customCapabilities';
4
+ export { globalHooks as SklHooks, HookStages, HookTypes } from './hooks/globalHooks';
5
+ export * from './hooks/types';
6
+ // Code Executor
7
+ export * from './JsExecutor';
8
+ export * from './mapping/Mapper';
9
+ export * from './SklEngine';
10
+ // Storage
11
+ export * from './storage/FindOperator';
12
+ export * from './storage/FindOptionsTypes';
13
+ export * from './storage/operator/And';
14
+ export * from './storage/operator/Contains';
15
+ // Storage/Operator
16
+ export * from './storage/operator/Equal';
17
+ export * from './storage/operator/Exists';
18
+ export * from './storage/operator/GreaterThan';
19
+ export * from './storage/operator/GreaterThanOrEqual';
20
+ export * from './storage/operator/In';
21
+ export * from './storage/operator/Inverse';
22
+ export * from './storage/operator/InversePath';
23
+ export * from './storage/operator/InverseRelation';
24
+ export * from './storage/operator/InverseRelationOrder';
25
+ export * from './storage/operator/LessThan';
26
+ export * from './storage/operator/LessThanOrEqual';
27
+ export * from './storage/operator/Not';
28
+ export * from './storage/operator/OneOrMorePath';
29
+ export * from './storage/operator/Sequence';
30
+ export * from './storage/operator/SequencePath';
31
+ export * from './storage/operator/ZeroOrMorePath';
32
+ export * from './storage/query-adapter/QueryAdapter';
33
+ export * from './storage/query-adapter/sparql/query-executor/InMemorySparqlQueryExecutor';
34
+ export * from './storage/query-adapter/sparql/query-executor/SparqlEndpointQueryExecutor';
35
+ // Storage/Sparql
36
+ export * from './storage/query-adapter/sparql/SparqlQueryAdapter';
37
+ export * from './storage/query-adapter/sparql/SparqlQueryBuilder';
38
+ export * from './storage/query-adapter/sparql/SparqlUpdateBuilder';
39
+ export * from './storage/query-adapter/sparql/VariableGenerator';
40
+ // Util
41
+ export * from './util/TripleUtil';
42
+ export * from './util/Types';
43
+ export * from './util/Util';
44
+ export * from './util/Vocabularies/helper';
45
+