@undefineds.co/drizzle-solid 0.2.11 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/README.md +178 -471
  2. package/dist/core/ast-to-sparql.d.ts +1 -1
  3. package/dist/core/ast-to-sparql.js +1 -1
  4. package/dist/core/comunica-patch.d.ts +1 -6
  5. package/dist/core/comunica-patch.d.ts.map +1 -1
  6. package/dist/core/comunica-patch.js +16 -19
  7. package/dist/core/comunica-patch.js.map +1 -1
  8. package/dist/core/execution/sparql-strategy.d.ts +9 -37
  9. package/dist/core/execution/sparql-strategy.d.ts.map +1 -1
  10. package/dist/core/execution/sparql-strategy.js +44 -148
  11. package/dist/core/execution/sparql-strategy.js.map +1 -1
  12. package/dist/core/execution/strategy-factory.d.ts +7 -20
  13. package/dist/core/execution/strategy-factory.d.ts.map +1 -1
  14. package/dist/core/execution/strategy-factory.js +2 -17
  15. package/dist/core/execution/strategy-factory.js.map +1 -1
  16. package/dist/core/expressions.d.ts +4 -0
  17. package/dist/core/expressions.d.ts.map +1 -1
  18. package/dist/core/expressions.js +8 -1
  19. package/dist/core/expressions.js.map +1 -1
  20. package/dist/core/order-by.d.ts +9 -0
  21. package/dist/core/order-by.d.ts.map +1 -0
  22. package/dist/core/order-by.js +20 -0
  23. package/dist/core/order-by.js.map +1 -0
  24. package/dist/core/pod-database.d.ts +8 -2
  25. package/dist/core/pod-database.d.ts.map +1 -1
  26. package/dist/core/pod-database.js +142 -52
  27. package/dist/core/pod-database.js.map +1 -1
  28. package/dist/core/pod-dialect.d.ts +12 -1
  29. package/dist/core/pod-dialect.d.ts.map +1 -1
  30. package/dist/core/pod-dialect.js +85 -4
  31. package/dist/core/pod-dialect.js.map +1 -1
  32. package/dist/core/query-builders/delete-query-builder.d.ts +7 -12
  33. package/dist/core/query-builders/delete-query-builder.d.ts.map +1 -1
  34. package/dist/core/query-builders/delete-query-builder.js +47 -20
  35. package/dist/core/query-builders/delete-query-builder.js.map +1 -1
  36. package/dist/core/query-builders/helpers.d.ts +7 -0
  37. package/dist/core/query-builders/helpers.d.ts.map +1 -1
  38. package/dist/core/query-builders/helpers.js +169 -0
  39. package/dist/core/query-builders/helpers.js.map +1 -1
  40. package/dist/core/query-builders/insert-query-builder.d.ts +10 -3
  41. package/dist/core/query-builders/insert-query-builder.d.ts.map +1 -1
  42. package/dist/core/query-builders/insert-query-builder.js +50 -6
  43. package/dist/core/query-builders/insert-query-builder.js.map +1 -1
  44. package/dist/core/query-builders/select-query-builder.d.ts +31 -3
  45. package/dist/core/query-builders/select-query-builder.d.ts.map +1 -1
  46. package/dist/core/query-builders/select-query-builder.js +415 -95
  47. package/dist/core/query-builders/select-query-builder.js.map +1 -1
  48. package/dist/core/query-builders/types.d.ts +5 -3
  49. package/dist/core/query-builders/types.d.ts.map +1 -1
  50. package/dist/core/query-builders/update-query-builder.d.ts +8 -12
  51. package/dist/core/query-builders/update-query-builder.d.ts.map +1 -1
  52. package/dist/core/query-builders/update-query-builder.js +63 -21
  53. package/dist/core/query-builders/update-query-builder.js.map +1 -1
  54. package/dist/core/query-conditions.d.ts +17 -16
  55. package/dist/core/query-conditions.d.ts.map +1 -1
  56. package/dist/core/query-conditions.js.map +1 -1
  57. package/dist/core/resource-resolver/base-resolver.d.ts +8 -4
  58. package/dist/core/resource-resolver/base-resolver.d.ts.map +1 -1
  59. package/dist/core/resource-resolver/base-resolver.js +39 -36
  60. package/dist/core/resource-resolver/base-resolver.js.map +1 -1
  61. package/dist/core/resource-resolver/document-resolver.d.ts.map +1 -1
  62. package/dist/core/resource-resolver/document-resolver.js +75 -78
  63. package/dist/core/resource-resolver/document-resolver.js.map +1 -1
  64. package/dist/core/schema/columns.d.ts +6 -6
  65. package/dist/core/schema/columns.d.ts.map +1 -1
  66. package/dist/core/schema/columns.js +18 -18
  67. package/dist/core/schema/columns.js.map +1 -1
  68. package/dist/core/schema/defs.d.ts +4 -4
  69. package/dist/core/schema/defs.d.ts.map +1 -1
  70. package/dist/core/schema/pod-table.d.ts +1 -0
  71. package/dist/core/schema/pod-table.d.ts.map +1 -1
  72. package/dist/core/schema/pod-table.js +69 -2
  73. package/dist/core/schema/pod-table.js.map +1 -1
  74. package/dist/core/select-plan.d.ts +6 -3
  75. package/dist/core/select-plan.d.ts.map +1 -1
  76. package/dist/core/services/pod-services.d.ts +7 -5
  77. package/dist/core/services/pod-services.d.ts.map +1 -1
  78. package/dist/core/services/pod-services.js +7 -5
  79. package/dist/core/services/pod-services.js.map +1 -1
  80. package/dist/core/shape/generator.js +3 -3
  81. package/dist/core/shape/generator.js.map +1 -1
  82. package/dist/core/shape/manager.js +5 -5
  83. package/dist/core/shape/manager.js.map +1 -1
  84. package/dist/core/sparql/builder/expression-builder.d.ts +15 -5
  85. package/dist/core/sparql/builder/expression-builder.d.ts.map +1 -1
  86. package/dist/core/sparql/builder/expression-builder.js +42 -19
  87. package/dist/core/sparql/builder/expression-builder.js.map +1 -1
  88. package/dist/core/sparql/builder/select-builder.d.ts +10 -1
  89. package/dist/core/sparql/builder/select-builder.d.ts.map +1 -1
  90. package/dist/core/sparql/builder/select-builder.js +148 -3
  91. package/dist/core/sparql/builder/select-builder.js.map +1 -1
  92. package/dist/core/sparql/builder/update-builder.d.ts +1 -1
  93. package/dist/core/sparql/builder/update-builder.d.ts.map +1 -1
  94. package/dist/core/sparql/builder/update-builder.js +4 -4
  95. package/dist/core/sparql/builder/update-builder.js.map +1 -1
  96. package/dist/core/sparql/helpers.js +3 -3
  97. package/dist/core/sparql/helpers.js.map +1 -1
  98. package/dist/core/sparql-engine.d.ts +16 -0
  99. package/dist/core/sparql-engine.d.ts.map +1 -0
  100. package/dist/core/sparql-engine.js +128 -0
  101. package/dist/core/sparql-engine.js.map +1 -0
  102. package/dist/core/sparql-executor.d.ts +3 -1
  103. package/dist/core/sparql-executor.d.ts.map +1 -1
  104. package/dist/core/sparql-executor.js +3 -4
  105. package/dist/core/sparql-executor.js.map +1 -1
  106. package/dist/core/triple/handlers/inverse.js +4 -4
  107. package/dist/core/triple/handlers/inverse.js.map +1 -1
  108. package/dist/core/triple/handlers/uri.d.ts +1 -1
  109. package/dist/core/triple/handlers/uri.js +3 -3
  110. package/dist/core/triple/handlers/uri.js.map +1 -1
  111. package/dist/core/uri/resolver.d.ts +9 -9
  112. package/dist/core/uri/resolver.d.ts.map +1 -1
  113. package/dist/core/uri/resolver.js +51 -51
  114. package/dist/core/uri/resolver.js.map +1 -1
  115. package/dist/core/uri/types.d.ts +10 -10
  116. package/dist/core/uri/types.d.ts.map +1 -1
  117. package/dist/core/utils/debug-logger.d.ts +19 -0
  118. package/dist/core/utils/debug-logger.d.ts.map +1 -0
  119. package/dist/core/utils/debug-logger.js +59 -0
  120. package/dist/core/utils/debug-logger.js.map +1 -0
  121. package/dist/driver.d.ts +14 -1
  122. package/dist/driver.d.ts.map +1 -1
  123. package/dist/driver.js +2 -5
  124. package/dist/driver.js.map +1 -1
  125. package/dist/esm/core/ast-to-sparql.d.ts +1 -1
  126. package/dist/esm/core/ast-to-sparql.js +1 -1
  127. package/dist/esm/core/comunica-patch.d.ts +1 -6
  128. package/dist/esm/core/comunica-patch.d.ts.map +1 -1
  129. package/dist/esm/core/comunica-patch.js +13 -20
  130. package/dist/esm/core/comunica-patch.js.map +1 -1
  131. package/dist/esm/core/execution/sparql-strategy.d.ts +9 -37
  132. package/dist/esm/core/execution/sparql-strategy.d.ts.map +1 -1
  133. package/dist/esm/core/execution/sparql-strategy.js +44 -148
  134. package/dist/esm/core/execution/sparql-strategy.js.map +1 -1
  135. package/dist/esm/core/execution/strategy-factory.d.ts +7 -20
  136. package/dist/esm/core/execution/strategy-factory.d.ts.map +1 -1
  137. package/dist/esm/core/execution/strategy-factory.js +2 -17
  138. package/dist/esm/core/execution/strategy-factory.js.map +1 -1
  139. package/dist/esm/core/expressions.d.ts +4 -0
  140. package/dist/esm/core/expressions.d.ts.map +1 -1
  141. package/dist/esm/core/expressions.js +6 -0
  142. package/dist/esm/core/expressions.js.map +1 -1
  143. package/dist/esm/core/order-by.d.ts +9 -0
  144. package/dist/esm/core/order-by.d.ts.map +1 -0
  145. package/dist/esm/core/order-by.js +15 -0
  146. package/dist/esm/core/order-by.js.map +1 -0
  147. package/dist/esm/core/pod-database.d.ts +8 -2
  148. package/dist/esm/core/pod-database.d.ts.map +1 -1
  149. package/dist/esm/core/pod-database.js +143 -53
  150. package/dist/esm/core/pod-database.js.map +1 -1
  151. package/dist/esm/core/pod-dialect.d.ts +12 -1
  152. package/dist/esm/core/pod-dialect.d.ts.map +1 -1
  153. package/dist/esm/core/pod-dialect.js +85 -4
  154. package/dist/esm/core/pod-dialect.js.map +1 -1
  155. package/dist/esm/core/query-builders/delete-query-builder.d.ts +7 -12
  156. package/dist/esm/core/query-builders/delete-query-builder.d.ts.map +1 -1
  157. package/dist/esm/core/query-builders/delete-query-builder.js +48 -21
  158. package/dist/esm/core/query-builders/delete-query-builder.js.map +1 -1
  159. package/dist/esm/core/query-builders/helpers.d.ts +7 -0
  160. package/dist/esm/core/query-builders/helpers.d.ts.map +1 -1
  161. package/dist/esm/core/query-builders/helpers.js +164 -0
  162. package/dist/esm/core/query-builders/helpers.js.map +1 -1
  163. package/dist/esm/core/query-builders/insert-query-builder.d.ts +10 -3
  164. package/dist/esm/core/query-builders/insert-query-builder.d.ts.map +1 -1
  165. package/dist/esm/core/query-builders/insert-query-builder.js +50 -6
  166. package/dist/esm/core/query-builders/insert-query-builder.js.map +1 -1
  167. package/dist/esm/core/query-builders/select-query-builder.d.ts +31 -3
  168. package/dist/esm/core/query-builders/select-query-builder.d.ts.map +1 -1
  169. package/dist/esm/core/query-builders/select-query-builder.js +417 -97
  170. package/dist/esm/core/query-builders/select-query-builder.js.map +1 -1
  171. package/dist/esm/core/query-builders/types.d.ts +5 -3
  172. package/dist/esm/core/query-builders/types.d.ts.map +1 -1
  173. package/dist/esm/core/query-builders/update-query-builder.d.ts +8 -12
  174. package/dist/esm/core/query-builders/update-query-builder.d.ts.map +1 -1
  175. package/dist/esm/core/query-builders/update-query-builder.js +64 -22
  176. package/dist/esm/core/query-builders/update-query-builder.js.map +1 -1
  177. package/dist/esm/core/query-conditions.d.ts +17 -16
  178. package/dist/esm/core/query-conditions.d.ts.map +1 -1
  179. package/dist/esm/core/query-conditions.js.map +1 -1
  180. package/dist/esm/core/resource-resolver/base-resolver.d.ts +8 -4
  181. package/dist/esm/core/resource-resolver/base-resolver.d.ts.map +1 -1
  182. package/dist/esm/core/resource-resolver/base-resolver.js +39 -36
  183. package/dist/esm/core/resource-resolver/base-resolver.js.map +1 -1
  184. package/dist/esm/core/resource-resolver/document-resolver.d.ts.map +1 -1
  185. package/dist/esm/core/resource-resolver/document-resolver.js +75 -78
  186. package/dist/esm/core/resource-resolver/document-resolver.js.map +1 -1
  187. package/dist/esm/core/schema/columns.d.ts +6 -6
  188. package/dist/esm/core/schema/columns.d.ts.map +1 -1
  189. package/dist/esm/core/schema/columns.js +18 -18
  190. package/dist/esm/core/schema/columns.js.map +1 -1
  191. package/dist/esm/core/schema/defs.d.ts +4 -4
  192. package/dist/esm/core/schema/defs.d.ts.map +1 -1
  193. package/dist/esm/core/schema/pod-table.d.ts +1 -0
  194. package/dist/esm/core/schema/pod-table.d.ts.map +1 -1
  195. package/dist/esm/core/schema/pod-table.js +68 -2
  196. package/dist/esm/core/schema/pod-table.js.map +1 -1
  197. package/dist/esm/core/select-plan.d.ts +6 -3
  198. package/dist/esm/core/select-plan.d.ts.map +1 -1
  199. package/dist/esm/core/services/pod-services.d.ts +7 -5
  200. package/dist/esm/core/services/pod-services.d.ts.map +1 -1
  201. package/dist/esm/core/services/pod-services.js +7 -5
  202. package/dist/esm/core/services/pod-services.js.map +1 -1
  203. package/dist/esm/core/shape/generator.js +3 -3
  204. package/dist/esm/core/shape/generator.js.map +1 -1
  205. package/dist/esm/core/shape/manager.js +5 -5
  206. package/dist/esm/core/shape/manager.js.map +1 -1
  207. package/dist/esm/core/sparql/builder/expression-builder.d.ts +15 -5
  208. package/dist/esm/core/sparql/builder/expression-builder.d.ts.map +1 -1
  209. package/dist/esm/core/sparql/builder/expression-builder.js +42 -19
  210. package/dist/esm/core/sparql/builder/expression-builder.js.map +1 -1
  211. package/dist/esm/core/sparql/builder/select-builder.d.ts +10 -1
  212. package/dist/esm/core/sparql/builder/select-builder.d.ts.map +1 -1
  213. package/dist/esm/core/sparql/builder/select-builder.js +149 -4
  214. package/dist/esm/core/sparql/builder/select-builder.js.map +1 -1
  215. package/dist/esm/core/sparql/builder/update-builder.d.ts +1 -1
  216. package/dist/esm/core/sparql/builder/update-builder.d.ts.map +1 -1
  217. package/dist/esm/core/sparql/builder/update-builder.js +4 -4
  218. package/dist/esm/core/sparql/builder/update-builder.js.map +1 -1
  219. package/dist/esm/core/sparql/helpers.js +3 -3
  220. package/dist/esm/core/sparql/helpers.js.map +1 -1
  221. package/dist/esm/core/sparql-engine.d.ts +16 -0
  222. package/dist/esm/core/sparql-engine.d.ts.map +1 -0
  223. package/dist/esm/core/sparql-engine.js +89 -0
  224. package/dist/esm/core/sparql-engine.js.map +1 -0
  225. package/dist/esm/core/sparql-executor.d.ts +3 -1
  226. package/dist/esm/core/sparql-executor.d.ts.map +1 -1
  227. package/dist/esm/core/sparql-executor.js +3 -4
  228. package/dist/esm/core/sparql-executor.js.map +1 -1
  229. package/dist/esm/core/triple/handlers/inverse.js +4 -4
  230. package/dist/esm/core/triple/handlers/inverse.js.map +1 -1
  231. package/dist/esm/core/triple/handlers/uri.d.ts +1 -1
  232. package/dist/esm/core/triple/handlers/uri.js +3 -3
  233. package/dist/esm/core/triple/handlers/uri.js.map +1 -1
  234. package/dist/esm/core/uri/resolver.d.ts +9 -9
  235. package/dist/esm/core/uri/resolver.d.ts.map +1 -1
  236. package/dist/esm/core/uri/resolver.js +51 -51
  237. package/dist/esm/core/uri/resolver.js.map +1 -1
  238. package/dist/esm/core/uri/types.d.ts +10 -10
  239. package/dist/esm/core/uri/types.d.ts.map +1 -1
  240. package/dist/esm/core/utils/debug-logger.d.ts +19 -0
  241. package/dist/esm/core/utils/debug-logger.d.ts.map +1 -0
  242. package/dist/esm/core/utils/debug-logger.js +53 -0
  243. package/dist/esm/core/utils/debug-logger.js.map +1 -0
  244. package/dist/esm/driver.d.ts +14 -1
  245. package/dist/esm/driver.d.ts.map +1 -1
  246. package/dist/esm/driver.js +2 -5
  247. package/dist/esm/driver.js.map +1 -1
  248. package/dist/esm/index.d.ts +4 -1
  249. package/dist/esm/index.d.ts.map +1 -1
  250. package/dist/esm/index.js +6 -2
  251. package/dist/esm/index.js.map +1 -1
  252. package/dist/esm/pod.d.ts +68 -0
  253. package/dist/esm/pod.d.ts.map +1 -0
  254. package/dist/esm/pod.js +146 -0
  255. package/dist/esm/pod.js.map +1 -0
  256. package/dist/esm/utils/webid-resolver.d.ts +1 -2
  257. package/dist/esm/utils/webid-resolver.d.ts.map +1 -1
  258. package/dist/esm/utils/webid-resolver.js +36 -30
  259. package/dist/esm/utils/webid-resolver.js.map +1 -1
  260. package/dist/index.d.ts +4 -1
  261. package/dist/index.d.ts.map +1 -1
  262. package/dist/index.js +17 -3
  263. package/dist/index.js.map +1 -1
  264. package/dist/pod.d.ts +68 -0
  265. package/dist/pod.d.ts.map +1 -0
  266. package/dist/pod.js +153 -0
  267. package/dist/pod.js.map +1 -0
  268. package/dist/utils/webid-resolver.d.ts +1 -2
  269. package/dist/utils/webid-resolver.d.ts.map +1 -1
  270. package/dist/utils/webid-resolver.js +36 -30
  271. package/dist/utils/webid-resolver.js.map +1 -1
  272. package/package.json +27 -8
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  // Comunica 兼容性补丁
3
2
  // 修复 ActionObserverHttp 中 observedActors 未定义的问题
4
3
  const resolveCreateRequire = () => {
@@ -26,11 +25,10 @@ const moduleFilename = typeof __filename === 'string'
26
25
  : (typeof process !== 'undefined' && typeof process.cwd === 'function'
27
26
  ? process.cwd()
28
27
  : '/');
29
- const requireModule = createRequireFn
28
+ const defaultRequireModule = createRequireFn
30
29
  ? createRequireFn(moduleFilename)
31
30
  : null;
32
- // 直接修补所有 Comunica ActionObserverHttp
33
- const patchActionObserverHttp = (moduleName) => {
31
+ const patchActionObserverHttp = (requireModule, moduleName) => {
34
32
  if (!requireModule) {
35
33
  return false;
36
34
  }
@@ -39,15 +37,9 @@ const patchActionObserverHttp = (moduleName) => {
39
37
  if (comunica && comunica.ActionObserverHttp) {
40
38
  const originalOnRun = comunica.ActionObserverHttp.prototype.onRun;
41
39
  comunica.ActionObserverHttp.prototype.onRun = function (actor, _action, _output) {
42
- // 确保 observedActors 存在且是数组
43
- if (!this.observedActors) {
40
+ if (!this.observedActors || !Array.isArray(this.observedActors)) {
44
41
  this.observedActors = [];
45
42
  }
46
- // observedActors 应该是一个数组,如果不是则初始化为空数组
47
- if (!Array.isArray(this.observedActors)) {
48
- this.observedActors = [];
49
- }
50
- // 调用原始方法
51
43
  return originalOnRun.call(this, actor, _action, _output);
52
44
  };
53
45
  console.log(`[Patch] Successfully patched ActionObserverHttp.onRun in ${moduleName}`);
@@ -55,22 +47,23 @@ const patchActionObserverHttp = (moduleName) => {
55
47
  }
56
48
  return false;
57
49
  }
58
- catch (error) {
59
- // 静默忽略模块不存在的错误
50
+ catch {
60
51
  return false;
61
52
  }
62
53
  };
63
- // 修补所有可能的 ActionObserverHttp 实例
64
- // 包括顶层和 @comunica/query-sparql-solid 嵌套的 node_modules
65
- if (requireModule) {
54
+ export const applyComunicaPatches = (requireModule = defaultRequireModule) => {
55
+ if (!requireModule) {
56
+ return false;
57
+ }
66
58
  const modules = [
67
- // 顶层模块
68
59
  '@comunica/actor-query-result-serialize-sparql-json',
69
60
  '@comunica/actor-query-result-serialize-stats',
70
- // 嵌套在 @comunica/query-sparql-solid 下的模块 (Comunica v4)
71
61
  '@comunica/query-sparql-solid/node_modules/@comunica/actor-query-result-serialize-sparql-json',
72
62
  '@comunica/query-sparql-solid/node_modules/@comunica/actor-query-result-serialize-stats'
73
63
  ];
74
- modules.forEach(patchActionObserverHttp);
75
- }
64
+ return modules
65
+ .map((moduleName) => patchActionObserverHttp(requireModule, moduleName))
66
+ .some(Boolean);
67
+ };
68
+ applyComunicaPatches();
76
69
  //# sourceMappingURL=comunica-patch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"comunica-patch.js","sourceRoot":"","sources":["../../../src/core/comunica-patch.ts"],"names":[],"mappings":";AAAA,iBAAiB;AACjB,gDAAgD;AAIhD,MAAM,oBAAoB,GAAG,GAA6B,EAAE;IAC1D,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAA4B,CAAC;QAC/D,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAsD,CAAC;QAC7F,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;YAChE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,SAAS,CAAC,aAAa,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,oBAAoB,EAAE,CAAC;AAC/C,MAAM,cAAc,GAAG,OAAO,UAAU,KAAK,QAAQ;IACnD,CAAC,CAAC,UAAU;IACZ,CAAC,CAAC,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,UAAU;QAClE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;QACf,CAAC,CAAC,GAAG,CAAC,CAAC;AAEb,MAAM,aAAa,GAAG,eAAe;IACnC,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC;IACjC,CAAC,CAAC,IAAI,CAAC;AAET,yCAAyC;AACzC,MAAM,uBAAuB,GAAG,CAAC,UAAkB,EAAE,EAAE;IACrD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;QAE3C,IAAI,QAAQ,IAAI,QAAQ,CAAC,kBAAkB,EAAE,CAAC;YAC5C,MAAM,aAAa,GAAG,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC;YAElE,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,KAAU,EAAE,OAAY,EAAE,OAAY;gBAC3F,2BAA2B;gBAC3B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;oBACzB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;gBAC3B,CAAC;gBAED,sCAAsC;gBACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;oBACxC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;gBAC3B,CAAC;gBAED,SAAS;gBACT,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC3D,CAAC,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,4DAA4D,UAAU,EAAE,CAAC,CAAC;YACtF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,eAAe;QACf,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,gCAAgC;AAChC,sDAAsD;AACtD,IAAI,aAAa,EAAE,CAAC;IAClB,MAAM,OAAO,GAAG;QACd,OAAO;QACP,oDAAoD;QACpD,8CAA8C;QAC9C,sDAAsD;QACtD,8FAA8F;QAC9F,wFAAwF;KACzF,CAAC;IAEF,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"comunica-patch.js","sourceRoot":"","sources":["../../../src/core/comunica-patch.ts"],"names":[],"mappings":"AAAA,iBAAiB;AACjB,gDAAgD;AAIhD,MAAM,oBAAoB,GAAG,GAA6B,EAAE;IAC1D,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAA4B,CAAC;QAC/D,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAsD,CAAC;QAC7F,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;YAChE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,SAAS,CAAC,aAAa,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,oBAAoB,EAAE,CAAC;AAC/C,MAAM,cAAc,GAAG,OAAO,UAAU,KAAK,QAAQ;IACnD,CAAC,CAAC,UAAU;IACZ,CAAC,CAAC,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,UAAU;QAClE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;QACf,CAAC,CAAC,GAAG,CAAC,CAAC;AAEb,MAAM,oBAAoB,GAAG,eAAe;IAC1C,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC;IACjC,CAAC,CAAC,IAAI,CAAC;AAET,MAAM,uBAAuB,GAAG,CAAC,aAAiC,EAAE,UAAkB,EAAE,EAAE;IACxF,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;QAE3C,IAAI,QAAQ,IAAI,QAAQ,CAAC,kBAAkB,EAAE,CAAC;YAC5C,MAAM,aAAa,GAAG,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC;YAElE,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,KAAU,EAAE,OAAY,EAAE,OAAY;gBAC3F,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;oBAChE,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;gBAC3B,CAAC;gBAED,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC3D,CAAC,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,4DAA4D,UAAU,EAAE,CAAC,CAAC;YACtF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,gBAAoC,oBAAoB,EAAW,EAAE;IACxG,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG;QACd,oDAAoD;QACpD,8CAA8C;QAC9C,8FAA8F;QAC9F,wFAAwF;KACzF,CAAC;IAEF,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,uBAAuB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;SACvE,IAAI,CAAC,OAAO,CAAC,CAAC;AACnB,CAAC,CAAC;AAEF,oBAAoB,EAAE,CAAC"}
@@ -1,14 +1,16 @@
1
- import type { ComunicaSPARQLExecutor } from '../sparql-executor';
2
1
  import type { ASTToSPARQLConverter } from '../ast-to-sparql';
3
2
  import type { SelectQueryPlan } from '../select-plan';
4
- import type { ExecutionStrategy } from './types';
3
+ import type { ComunicaSPARQLExecutor } from '../sparql-executor';
4
+ import type { SPARQLQueryEngineFactory } from '../sparql-engine';
5
5
  import type { UriResolver } from '../uri';
6
+ import type { ExecutionStrategy } from './types';
6
7
  export interface SparqlStrategyDependencies {
7
8
  sparqlExecutor: ComunicaSPARQLExecutor;
8
9
  sparqlConverter: ASTToSPARQLConverter;
9
10
  sessionFetch: typeof fetch;
10
11
  podUrl: string;
11
12
  uriResolver: UriResolver;
13
+ createQueryEngine?: SPARQLQueryEngineFactory;
12
14
  }
13
15
  export declare class SparqlStrategy implements ExecutionStrategy {
14
16
  readonly mode: "sparql";
@@ -17,45 +19,15 @@ export declare class SparqlStrategy implements ExecutionStrategy {
17
19
  private sessionFetch;
18
20
  private podUrl;
19
21
  private uriResolver;
22
+ private createQueryEngine?;
20
23
  constructor(deps: SparqlStrategyDependencies);
21
- /**
22
- * Resolve target graph based on resource mode
23
- * - Document Mode SELECT: undefined (let CSS auto-query container and all sub-graphs)
24
- * - Document Mode INSERT/UPDATE/DELETE: container path as graph
25
- * - Fragment Mode: base file path
26
- */
27
24
  private resolveTargetGraph;
28
- /**
29
- * Get the appropriate fetch function for a SPARQL endpoint
30
- */
31
25
  private getFetchForEndpoint;
32
- /**
33
- * Execute SELECT query via SPARQL endpoint
34
- */
35
26
  executeSelect(plan: SelectQueryPlan, _containerUrl: string, resourceUrl: string): Promise<any[]>;
36
- /**
37
- * Execute SPARQL SELECT directly via fetch (fast path, bypasses Comunica)
38
- */
39
27
  private executeDirectSparqlSelect;
40
- /**
41
- * Parse SPARQL Results JSON format into row objects
42
- */
43
- private parseSparqlResultsJson;
44
- /**
45
- * Convert a SPARQL result term to a JavaScript value
46
- */
47
- private convertSparqlTerm;
48
- /**
49
- * Convert a typed literal value to JavaScript type
50
- */
51
- private convertTypedLiteral;
52
- /**
53
- * Extract datatype from a value string like "true"^^<http://...#boolean>
54
- */
55
- private extractDatatypeFromValue;
56
- /**
57
- * Extract literal value from a typed literal string like "true"^^<...>
58
- */
59
- private extractLiteralValue;
28
+ executeInsert(): Promise<any[]>;
29
+ executeUpdate(): Promise<any[]>;
30
+ executeDelete(): Promise<any[]>;
31
+ private parseSparqlValue;
60
32
  }
61
33
  //# sourceMappingURL=sparql-strategy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sparql-strategy.d.ts","sourceRoot":"","sources":["../../../../src/core/execution/sparql-strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAe,MAAM,kBAAkB,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE1C,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,sBAAsB,CAAC;IACvC,eAAe,EAAE,oBAAoB,CAAC;IACtC,YAAY,EAAE,OAAO,KAAK,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,qBAAa,cAAe,YAAW,iBAAiB;IACtD,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAElC,OAAO,CAAC,cAAc,CAAyB;IAC/C,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAc;gBAErB,IAAI,EAAE,0BAA0B;IAQ5C;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;OAEG;IACG,aAAa,CACjB,IAAI,EAAE,eAAe,EACrB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,GAAG,EAAE,CAAC;IA4DjB;;OAEG;YACW,yBAAyB;IA2BvC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAiD9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAyBzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuB3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAKhC;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAa5B"}
1
+ {"version":3,"file":"sparql-strategy.d.ts","sourceRoot":"","sources":["../../../../src/core/execution/sparql-strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAe,MAAM,kBAAkB,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,sBAAsB,CAAC;IACvC,eAAe,EAAE,oBAAoB,CAAC;IACtC,YAAY,EAAE,OAAO,KAAK,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,WAAW,CAAC;IACzB,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;CAC9C;AAED,qBAAa,cAAe,YAAW,iBAAiB;IACtD,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAElC,OAAO,CAAC,cAAc,CAAyB;IAC/C,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,iBAAiB,CAAC,CAA2B;gBAEzC,IAAI,EAAE,0BAA0B;IAS5C,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,mBAAmB;IAIrB,aAAa,CACjB,IAAI,EAAE,eAAe,EACrB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,GAAG,EAAE,CAAC;YA0CH,yBAAyB;IAwCjC,aAAa,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAI/B,aAAa,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAI/B,aAAa,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAIrC,OAAO,CAAC,gBAAgB;CAwBzB"}
@@ -7,54 +7,28 @@ export class SparqlStrategy {
7
7
  this.sessionFetch = deps.sessionFetch;
8
8
  this.podUrl = deps.podUrl;
9
9
  this.uriResolver = deps.uriResolver;
10
+ this.createQueryEngine = deps.createQueryEngine;
10
11
  }
11
- /**
12
- * Resolve target graph based on resource mode
13
- * - Document Mode SELECT: undefined (let CSS auto-query container and all sub-graphs)
14
- * - Document Mode INSERT/UPDATE/DELETE: container path as graph
15
- * - Fragment Mode: base file path
16
- */
17
12
  resolveTargetGraph(table, forSelect = false) {
18
13
  if (!table)
19
14
  return undefined;
20
- // Determine resource mode to choose correct graph
21
15
  const isDocumentMode = this.uriResolver.getResourceMode(table) === 'document';
22
16
  if (isDocumentMode) {
23
- // Document Mode:
24
- // - For SELECT: no graph specified (CSS will auto-query container and all sub-graphs)
25
- // - For INSERT/UPDATE/DELETE: use container path as graph
26
17
  if (forSelect) {
27
- return undefined; // Let CSS use default behavior
18
+ return undefined;
28
19
  }
29
20
  return table.config?.containerPath ?? table.getContainerPath?.();
30
21
  }
31
- // Fragment Mode: graph = base file
32
- // e.g., /data/tags.ttl (all fragments in this file share the same graph)
33
22
  return table.config?.base;
34
23
  }
35
- /**
36
- * Get the appropriate fetch function for a SPARQL endpoint
37
- */
38
24
  getFetchForEndpoint(endpoint) {
39
25
  return getFetchForOrigin(endpoint, this.podUrl, this.sessionFetch);
40
26
  }
41
- /**
42
- * Execute SELECT query via SPARQL endpoint
43
- */
44
- async executeSelect(plan, _containerUrl, resourceUrl // In SPARQL mode, this is the endpoint URL
45
- ) {
27
+ async executeSelect(plan, _containerUrl, resourceUrl) {
46
28
  const table = plan.baseTable;
47
- // Determine target graph based on resource mode
48
- // - Document Mode: no graph (CSS will auto-query container and all sub-graphs)
49
- // - Fragment Mode: graph = base file
50
- const targetGraph = this.resolveTargetGraph(table, true /* forSelect */);
51
- // Convert plan to SPARQL - check for simple select options or SQL
52
- let sparqlQuery;
29
+ const targetGraph = this.resolveTargetGraph(table, true);
53
30
  const extendedPlan = plan;
54
- // For SPARQL endpoint queries (especially CSS /-/sparql), we don't need GRAPH ?g wrapper
55
- // because the endpoint is a federated query interface that automatically queries
56
- // all documents under the container. Using GRAPH ?g can cause issues with some endpoints.
57
- // Only use GRAPH when we have a specific targetGraph.
31
+ let sparqlQuery;
58
32
  const useGraphVariable = targetGraph !== undefined;
59
33
  if (extendedPlan._simpleSelectOptions) {
60
34
  sparqlQuery = this.sparqlConverter.convertSimpleSelect(extendedPlan._simpleSelectOptions, targetGraph, undefined, useGraphVariable);
@@ -68,28 +42,21 @@ export class SparqlStrategy {
68
42
  }
69
43
  console.log('DEBUG: Generated SPARQL Query for SELECT:', sparqlQuery.query);
70
44
  console.log('DEBUG: resourceUrl =', resourceUrl);
71
- // Fast path: Direct fetch to SPARQL endpoint (bypass Comunica for speed)
72
- // This is much faster than Comunica which does extra processing
73
45
  if (resourceUrl.includes('/-/sparql')) {
74
46
  return await this.executeDirectSparqlSelect(resourceUrl, sparqlQuery, plan);
75
47
  }
76
- // Fallback to Comunica for non-endpoint sources
77
48
  if (isSameOrigin(resourceUrl, this.podUrl)) {
78
49
  return await this.sparqlExecutor.executeQueryWithSource(sparqlQuery, resourceUrl);
79
50
  }
80
- else {
81
- const { ComunicaSPARQLExecutor } = await import('../sparql-executor');
82
- const unauthExecutor = new ComunicaSPARQLExecutor({
83
- sources: [resourceUrl],
84
- fetch: fetch,
85
- logging: false
86
- });
87
- return await unauthExecutor.executeQueryWithSource(sparqlQuery, resourceUrl);
88
- }
51
+ const { ComunicaSPARQLExecutor } = await import('../sparql-executor');
52
+ const unauthExecutor = new ComunicaSPARQLExecutor({
53
+ sources: [resourceUrl],
54
+ fetch: fetch,
55
+ logging: false,
56
+ createQueryEngine: this.createQueryEngine,
57
+ });
58
+ return await unauthExecutor.executeQueryWithSource(sparqlQuery, resourceUrl);
89
59
  }
90
- /**
91
- * Execute SPARQL SELECT directly via fetch (fast path, bypasses Comunica)
92
- */
93
60
  async executeDirectSparqlSelect(endpoint, sparqlQuery, plan) {
94
61
  const fetchFn = this.getFetchForEndpoint(endpoint);
95
62
  console.log('[SparqlStrategy] Direct fetch to SPARQL endpoint:', endpoint);
@@ -106,118 +73,47 @@ export class SparqlStrategy {
106
73
  throw new Error(`SPARQL SELECT failed: ${response.status} ${response.statusText} - ${text}`);
107
74
  }
108
75
  const json = await response.json();
109
- return this.parseSparqlResultsJson(json, plan);
110
- }
111
- /**
112
- * Parse SPARQL Results JSON format into row objects
113
- */
114
- parseSparqlResultsJson(json, plan) {
115
- const bindings = json?.results?.bindings || [];
116
- return bindings.map((binding) => {
76
+ const rows = (json.results?.bindings || []).map((binding) => {
117
77
  const row = {};
118
- for (const [varName, termObj] of Object.entries(binding)) {
119
- if (!termObj)
120
- continue;
121
- // Convert SPARQL result term to JS value
122
- row[varName] = this.convertSparqlTerm(termObj);
123
- }
124
- // Extract ID from subject URI if present
125
- if (row.subject && plan.baseTable) {
126
- const subjectUri = row.subject;
127
- // Preserve the full subject URI in @id for downstream processing
128
- // (hydrateInlineColumns needs full URI, not just the ID)
129
- row['@id'] = subjectUri;
130
- // Use UriResolver to properly extract ID from subject URI
131
- const parsed = this.uriResolver.parseSubject(subjectUri, plan.baseTable);
132
- if (parsed && parsed.id) {
133
- row.id = parsed.id;
134
- }
135
- // Fallback to simple extraction if resolver parsing failed
136
- if (!row.id) {
137
- const hashIndex = subjectUri.lastIndexOf('#');
138
- if (hashIndex !== -1) {
139
- row.id = subjectUri.substring(hashIndex + 1);
140
- }
141
- else {
142
- // Or from "http://pod/path/id.ttl" -> "id"
143
- const lastSlash = subjectUri.lastIndexOf('/');
144
- const filename = subjectUri.substring(lastSlash + 1);
145
- if (filename.endsWith('.ttl')) {
146
- row.id = filename.slice(0, -4);
147
- }
148
- }
149
- }
150
- delete row.subject;
78
+ for (const [key, value] of Object.entries(binding)) {
79
+ row[key] = this.parseSparqlValue(value);
151
80
  }
152
81
  return row;
153
82
  });
154
- }
155
- /**
156
- * Convert a SPARQL result term to a JavaScript value
157
- */
158
- convertSparqlTerm(term) {
159
- if (!term || !term.type)
160
- return null;
161
- const { type, value, datatype } = term;
162
- if (type === 'uri') {
163
- return value;
164
- }
165
- if (type === 'bnode') {
166
- return `_:${value}`;
167
- }
168
- if (type === 'literal' || type === 'typed-literal') {
169
- const effectiveDatatype = datatype || this.extractDatatypeFromValue(value);
170
- if (effectiveDatatype) {
171
- return this.convertTypedLiteral(value, effectiveDatatype);
172
- }
173
- return this.extractLiteralValue(value);
83
+ if (plan.limit !== undefined && rows.length > plan.limit) {
84
+ return rows.slice(0, plan.limit);
174
85
  }
175
- return value;
86
+ return rows;
176
87
  }
177
- /**
178
- * Convert a typed literal value to JavaScript type
179
- */
180
- convertTypedLiteral(value, datatype) {
181
- const literalValue = this.extractLiteralValue(value);
182
- if (datatype === 'http://www.w3.org/2001/XMLSchema#integer' ||
183
- datatype === 'http://www.w3.org/2001/XMLSchema#int') {
184
- return parseInt(literalValue, 10);
185
- }
186
- if (datatype === 'http://www.w3.org/2001/XMLSchema#decimal' ||
187
- datatype === 'http://www.w3.org/2001/XMLSchema#float' ||
188
- datatype === 'http://www.w3.org/2001/XMLSchema#double') {
189
- return parseFloat(literalValue);
190
- }
191
- if (datatype === 'http://www.w3.org/2001/XMLSchema#boolean') {
192
- return literalValue === 'true' || literalValue === '1';
193
- }
194
- if (datatype === 'http://www.w3.org/2001/XMLSchema#dateTime' ||
195
- datatype === 'http://www.w3.org/2001/XMLSchema#date') {
196
- return new Date(literalValue);
197
- }
198
- return literalValue;
88
+ async executeInsert() {
89
+ throw new Error('SPARQL mode INSERT is not supported directly; writes should route through LDP strategy');
90
+ }
91
+ async executeUpdate() {
92
+ throw new Error('SPARQL mode UPDATE is not supported directly; writes should route through LDP strategy');
199
93
  }
200
- /**
201
- * Extract datatype from a value string like "true"^^<http://...#boolean>
202
- */
203
- extractDatatypeFromValue(value) {
204
- const match = value.match(/\^\^<?([^>]+)>?$/);
205
- return match ? match[1] : undefined;
94
+ async executeDelete() {
95
+ throw new Error('SPARQL mode DELETE is not supported directly; writes should route through LDP strategy');
206
96
  }
207
- /**
208
- * Extract literal value from a typed literal string like "true"^^<...>
209
- */
210
- extractLiteralValue(value) {
211
- // Remove quotes and datatype annotation
212
- const match = value.match(/^"(.*)"\^\^/);
213
- if (match) {
214
- return match[1];
97
+ parseSparqlValue(value) {
98
+ if (!value || typeof value !== 'object') {
99
+ return value;
100
+ }
101
+ if (value.type === 'uri') {
102
+ return value.value;
215
103
  }
216
- // Remove just quotes
217
- if (value.startsWith('"') && value.endsWith('"')) {
218
- return value.slice(1, -1);
104
+ if (value.type === 'literal') {
105
+ if (value.datatype?.includes('#integer') || value.datatype?.includes('#int')) {
106
+ return Number.parseInt(value.value, 10);
107
+ }
108
+ if (value.datatype?.includes('#decimal') || value.datatype?.includes('#double')) {
109
+ return Number.parseFloat(value.value);
110
+ }
111
+ if (value.datatype?.includes('#boolean')) {
112
+ return value.value === 'true';
113
+ }
114
+ return value.value;
219
115
  }
220
- return value;
116
+ return value.value ?? value;
221
117
  }
222
118
  }
223
119
  //# sourceMappingURL=sparql-strategy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sparql-strategy.js","sourceRoot":"","sources":["../../../../src/core/execution/sparql-strategy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sparql-strategy.js","sourceRoot":"","sources":["../../../../src/core/execution/sparql-strategy.ts"],"names":[],"mappings":"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"}
@@ -5,20 +5,22 @@
5
5
  * - Tables with sparqlEndpoint -> SparqlStrategy
6
6
  * - Tables without sparqlEndpoint -> LdpStrategy
7
7
  */
8
- import type { PodTable } from '../schema';
9
- import type { ComunicaSPARQLExecutor } from '../sparql-executor';
10
8
  import type { ASTToSPARQLConverter } from '../ast-to-sparql';
11
- import type { ResourceResolver } from '../resource-resolver';
12
9
  import type { QueryCondition } from '../query-conditions';
13
- import type { ExecutionStrategy, ExecutionStrategyFactory } from './types';
10
+ import type { ResourceResolver } from '../resource-resolver';
11
+ import type { PodTable } from '../schema';
12
+ import type { ComunicaSPARQLExecutor } from '../sparql-executor';
13
+ import type { SPARQLQueryEngineFactory } from '../sparql-engine';
14
+ import type { UriResolver } from '../uri';
14
15
  import { LdpStrategy } from './ldp-strategy';
15
16
  import type { LdpExecutor } from './ldp-executor';
16
- import type { UriResolver } from '../uri';
17
+ import type { ExecutionStrategy, ExecutionStrategyFactory } from './types';
17
18
  export interface StrategyFactoryDependencies {
18
19
  sparqlExecutor: ComunicaSPARQLExecutor;
19
20
  sparqlConverter: ASTToSPARQLConverter;
20
21
  sessionFetch: typeof fetch;
21
22
  podUrl: string;
23
+ createQueryEngine?: SPARQLQueryEngineFactory;
22
24
  ldpExecutor: LdpExecutor;
23
25
  uriResolver: UriResolver;
24
26
  getResolver: (table: PodTable) => ResourceResolver;
@@ -30,25 +32,10 @@ export declare class ExecutionStrategyFactoryImpl implements ExecutionStrategyFa
30
32
  private ldpStrategy;
31
33
  private sparqlStrategy;
32
34
  constructor(deps: StrategyFactoryDependencies);
33
- /**
34
- * Get the appropriate execution strategy for a table
35
- */
36
35
  getStrategy(table: PodTable): ExecutionStrategy;
37
- /**
38
- * Get LDP strategy explicitly (used for write operations in SPARQL mode)
39
- */
40
36
  getLdpStrategy(): LdpStrategy;
41
- /**
42
- * Get or create LDP strategy (singleton)
43
- */
44
37
  private getLdpStrategyInternal;
45
- /**
46
- * Get or create SPARQL strategy (singleton)
47
- */
48
38
  private getSparqlStrategy;
49
- /**
50
- * Determine execution mode for a table
51
- */
52
39
  static getMode(table: PodTable): 'ldp' | 'sparql';
53
40
  }
54
41
  //# sourceMappingURL=strategy-factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"strategy-factory.d.ts","sourceRoot":"","sources":["../../../../src/core/execution/strategy-factory.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAgC,MAAM,gBAAgB,CAAC;AAE3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE1C,MAAM,WAAW,2BAA2B;IAC1C,cAAc,EAAE,sBAAsB,CAAC;IACvC,eAAe,EAAE,oBAAoB,CAAC;IACtC,YAAY,EAAE,OAAO,KAAK,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,gBAAgB,CAAC;IACnD,sBAAsB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpE,wBAAwB,EAAE,CACxB,SAAS,EAAE,cAAc,EACzB,KAAK,EAAE,QAAQ,EACf,WAAW,EAAE,MAAM,KAChB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACxB;AAED,qBAAa,4BAA6B,YAAW,wBAAwB;IAC3E,OAAO,CAAC,IAAI,CAA8B;IAG1C,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,cAAc,CAA+B;gBAEzC,IAAI,EAAE,2BAA2B;IAI7C;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,iBAAiB;IAU/C;;OAEG;IACH,cAAc,IAAI,WAAW;IAI7B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAgB9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAczB;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ;CAGlD"}
1
+ {"version":3,"file":"strategy-factory.d.ts","sourceRoot":"","sources":["../../../../src/core/execution/strategy-factory.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAgC,MAAM,gBAAgB,CAAC;AAE3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAE3E,MAAM,WAAW,2BAA2B;IAC1C,cAAc,EAAE,sBAAsB,CAAC;IACvC,eAAe,EAAE,oBAAoB,CAAC;IACtC,YAAY,EAAE,OAAO,KAAK,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IAC7C,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,gBAAgB,CAAC;IACnD,sBAAsB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpE,wBAAwB,EAAE,CACxB,SAAS,EAAE,cAAc,EACzB,KAAK,EAAE,QAAQ,EACf,WAAW,EAAE,MAAM,KAChB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACxB;AAED,qBAAa,4BAA6B,YAAW,wBAAwB;IAC3E,OAAO,CAAC,IAAI,CAA8B;IAE1C,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,cAAc,CAA+B;gBAEzC,IAAI,EAAE,2BAA2B;IAI7C,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,iBAAiB;IAU/C,cAAc,IAAI,WAAW;IAI7B,OAAO,CAAC,sBAAsB;IAgB9B,OAAO,CAAC,iBAAiB;IAezB,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ;CAGlD"}
@@ -9,14 +9,10 @@ import { LdpStrategy } from './ldp-strategy';
9
9
  import { SparqlStrategy } from './sparql-strategy';
10
10
  export class ExecutionStrategyFactoryImpl {
11
11
  constructor(deps) {
12
- // Cache strategies by mode to avoid recreating them
13
12
  this.ldpStrategy = null;
14
13
  this.sparqlStrategy = null;
15
14
  this.deps = deps;
16
15
  }
17
- /**
18
- * Get the appropriate execution strategy for a table
19
- */
20
16
  getStrategy(table) {
21
17
  const endpoint = table.getSparqlEndpoint?.();
22
18
  if (endpoint) {
@@ -24,15 +20,9 @@ export class ExecutionStrategyFactoryImpl {
24
20
  }
25
21
  return this.getLdpStrategy();
26
22
  }
27
- /**
28
- * Get LDP strategy explicitly (used for write operations in SPARQL mode)
29
- */
30
23
  getLdpStrategy() {
31
24
  return this.getLdpStrategyInternal();
32
25
  }
33
- /**
34
- * Get or create LDP strategy (singleton)
35
- */
36
26
  getLdpStrategyInternal() {
37
27
  if (!this.ldpStrategy) {
38
28
  const ldpDeps = {
@@ -48,9 +38,6 @@ export class ExecutionStrategyFactoryImpl {
48
38
  }
49
39
  return this.ldpStrategy;
50
40
  }
51
- /**
52
- * Get or create SPARQL strategy (singleton)
53
- */
54
41
  getSparqlStrategy() {
55
42
  if (!this.sparqlStrategy) {
56
43
  const sparqlDeps = {
@@ -58,15 +45,13 @@ export class ExecutionStrategyFactoryImpl {
58
45
  sparqlConverter: this.deps.sparqlConverter,
59
46
  sessionFetch: this.deps.sessionFetch,
60
47
  podUrl: this.deps.podUrl,
61
- uriResolver: this.deps.uriResolver
48
+ uriResolver: this.deps.uriResolver,
49
+ createQueryEngine: this.deps.createQueryEngine,
62
50
  };
63
51
  this.sparqlStrategy = new SparqlStrategy(sparqlDeps);
64
52
  }
65
53
  return this.sparqlStrategy;
66
54
  }
67
- /**
68
- * Determine execution mode for a table
69
- */
70
55
  static getMode(table) {
71
56
  return table.getSparqlEndpoint?.() ? 'sparql' : 'ldp';
72
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"strategy-factory.js","sourceRoot":"","sources":["../../../../src/core/execution/strategy-factory.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,EAAE,WAAW,EAAgC,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAmC,MAAM,mBAAmB,CAAC;AAoBpF,MAAM,OAAO,4BAA4B;IAOvC,YAAY,IAAiC;QAJ7C,oDAAoD;QAC5C,gBAAW,GAAuB,IAAI,CAAC;QACvC,mBAAc,GAA0B,IAAI,CAAC;QAGnD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,KAAe;QACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,iBAAiB,EAAE,EAAE,CAAC;QAE7C,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAClC,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,sBAAsB,EAAE,CAAC;IACvC,CAAC;IAED;;OAEG;IACK,sBAAsB;QAC5B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,OAAO,GAA4B;gBACvC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc;gBACxC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe;gBAC1C,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;gBAC/B,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;gBAClC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;gBAClC,sBAAsB,EAAE,IAAI,CAAC,IAAI,CAAC,sBAAsB;gBACxD,wBAAwB,EAAE,IAAI,CAAC,IAAI,CAAC,wBAAwB;aAC7D,CAAC;YACF,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,UAAU,GAA+B;gBAC7C,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc;gBACxC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe;gBAC1C,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;gBACpC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;gBACxB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;aACnC,CAAC;YACF,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,KAAe;QAC5B,OAAO,KAAK,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IACxD,CAAC;CACF"}
1
+ {"version":3,"file":"strategy-factory.js","sourceRoot":"","sources":["../../../../src/core/execution/strategy-factory.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,EAAE,WAAW,EAAgC,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAmC,MAAM,mBAAmB,CAAC;AAqBpF,MAAM,OAAO,4BAA4B;IAMvC,YAAY,IAAiC;QAHrC,gBAAW,GAAuB,IAAI,CAAC;QACvC,mBAAc,GAA0B,IAAI,CAAC;QAGnD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,WAAW,CAAC,KAAe;QACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,iBAAiB,EAAE,EAAE,CAAC;QAE7C,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAClC,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;IAC/B,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,sBAAsB,EAAE,CAAC;IACvC,CAAC;IAEO,sBAAsB;QAC5B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,OAAO,GAA4B;gBACvC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc;gBACxC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe;gBAC1C,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;gBAC/B,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;gBAClC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;gBAClC,sBAAsB,EAAE,IAAI,CAAC,IAAI,CAAC,sBAAsB;gBACxD,wBAAwB,EAAE,IAAI,CAAC,IAAI,CAAC,wBAAwB;aAC7D,CAAC;YACF,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,UAAU,GAA+B;gBAC7C,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc;gBACxC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe;gBAC1C,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;gBACpC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;gBACxB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;gBAClC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB;aAC/C,CAAC;YACF,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,KAAe;QAC5B,OAAO,KAAK,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IACxD,CAAC;CACF"}
@@ -26,6 +26,10 @@ export declare class UnaryExpression extends SPARQLExpression {
26
26
  readonly type = "unary_expr";
27
27
  constructor(operator: string, value: any);
28
28
  }
29
+ export declare class SelectionAliasExpression extends SPARQLExpression {
30
+ alias: string;
31
+ constructor(alias: string);
32
+ }
29
33
  export declare class FunctionExpression extends SPARQLExpression {
30
34
  functionName: string;
31
35
  args: any[];
@@ -1 +1 @@
1
- {"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../../src/core/expressions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,KAAK,SAAS,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEnD;;;GAGG;AACH,8BAAsB,gBAAgB;IAEpC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,sBAAsB;CACpD;AAED,qBAAa,gBAAiB,SAAQ,gBAAgB;IAG3C,IAAI,EAAE,SAAS,GAAG,gBAAgB,GAAG,MAAM;IAC3C,QAAQ,EAAE,MAAM;IAChB,KAAK,EAAE,GAAG;IAJnB,SAAgB,IAAI,iBAAiB;gBAE5B,IAAI,EAAE,SAAS,GAAG,gBAAgB,GAAG,MAAM,EAC3C,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,GAAG;CAIpB;AAED,qBAAa,iBAAkB,SAAQ,gBAAgB;IAG5C,QAAQ,EAAE,KAAK,GAAG,IAAI;IACtB,WAAW,EAAE,CAAC,gBAAgB,GAAG,GAAG,CAAC,EAAE;IAHhD,SAAgB,IAAI,kBAAkB;gBAE7B,QAAQ,EAAE,KAAK,GAAG,IAAI,EACtB,WAAW,EAAE,CAAC,gBAAgB,GAAG,GAAG,CAAC,EAAE;CAIjD;AAED,qBAAa,eAAgB,SAAQ,gBAAgB;IAG1C,QAAQ,EAAE,MAAM;IAChB,KAAK,EAAE,GAAG;IAHnB,SAAgB,IAAI,gBAAgB;gBAE3B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,GAAG;CAIpB;AAED,qBAAa,kBAAmB,SAAQ,gBAAgB;IAE7C,YAAY,EAAE,MAAM;IACpB,IAAI,EAAE,GAAG,EAAE;gBADX,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,GAAG,EAAE;CAIrB"}
1
+ {"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../../src/core/expressions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,KAAK,SAAS,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEnD;;;GAGG;AACH,8BAAsB,gBAAgB;IAEpC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,sBAAsB;CACpD;AAED,qBAAa,gBAAiB,SAAQ,gBAAgB;IAG3C,IAAI,EAAE,SAAS,GAAG,gBAAgB,GAAG,MAAM;IAC3C,QAAQ,EAAE,MAAM;IAChB,KAAK,EAAE,GAAG;IAJnB,SAAgB,IAAI,iBAAiB;gBAE5B,IAAI,EAAE,SAAS,GAAG,gBAAgB,GAAG,MAAM,EAC3C,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,GAAG;CAIpB;AAED,qBAAa,iBAAkB,SAAQ,gBAAgB;IAG5C,QAAQ,EAAE,KAAK,GAAG,IAAI;IACtB,WAAW,EAAE,CAAC,gBAAgB,GAAG,GAAG,CAAC,EAAE;IAHhD,SAAgB,IAAI,kBAAkB;gBAE7B,QAAQ,EAAE,KAAK,GAAG,IAAI,EACtB,WAAW,EAAE,CAAC,gBAAgB,GAAG,GAAG,CAAC,EAAE;CAIjD;AAED,qBAAa,eAAgB,SAAQ,gBAAgB;IAG1C,QAAQ,EAAE,MAAM;IAChB,KAAK,EAAE,GAAG;IAHnB,SAAgB,IAAI,gBAAgB;gBAE3B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,GAAG;CAIpB;AAED,qBAAa,wBAAyB,SAAQ,gBAAgB;IAEnD,KAAK,EAAE,MAAM;gBAAb,KAAK,EAAE,MAAM;CAIvB;AAED,qBAAa,kBAAmB,SAAQ,gBAAgB;IAE7C,YAAY,EAAE,MAAM;IACpB,IAAI,EAAE,GAAG,EAAE;gBADX,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,GAAG,EAAE;CAIrB"}
@@ -35,6 +35,12 @@ export class UnaryExpression extends SPARQLExpression {
35
35
  this.type = 'unary_expr';
36
36
  }
37
37
  }
38
+ export class SelectionAliasExpression extends SPARQLExpression {
39
+ constructor(alias) {
40
+ super();
41
+ this.alias = alias;
42
+ }
43
+ }
38
44
  export class FunctionExpression extends SPARQLExpression {
39
45
  constructor(functionName, args) {
40
46
  super();
@@ -1 +1 @@
1
- {"version":3,"file":"expressions.js","sourceRoot":"","sources":["../../../src/core/expressions.ts"],"names":[],"mappings":";AAKA;;;GAGG;AACH,MAAM,OAAgB,gBAAgB;IAAtC;QACE,gBAAgB;QACP,QAAoB,GAAG,kBAAkB,CAAC;IACrD,CAAC;CAAA;KADW,MAAM,CAAC,WAAW;AAG9B,MAAM,OAAO,gBAAiB,SAAQ,gBAAgB;IAEpD,YACS,IAA2C,EAC3C,QAAgB,EAChB,KAAU;QAEjB,KAAK,EAAE,CAAC;QAJD,SAAI,GAAJ,IAAI,CAAuC;QAC3C,aAAQ,GAAR,QAAQ,CAAQ;QAChB,UAAK,GAAL,KAAK,CAAK;QAJH,SAAI,GAAG,aAAa,CAAC;IAOrC,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,gBAAgB;IAErD,YACS,QAAsB,EACtB,WAAuC;QAE9C,KAAK,EAAE,CAAC;QAHD,aAAQ,GAAR,QAAQ,CAAc;QACtB,gBAAW,GAAX,WAAW,CAA4B;QAHhC,SAAI,GAAG,cAAc,CAAC;IAMtC,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,gBAAgB;IAEnD,YACS,QAAgB,EAChB,KAAU;QAEjB,KAAK,EAAE,CAAC;QAHD,aAAQ,GAAR,QAAQ,CAAQ;QAChB,UAAK,GAAL,KAAK,CAAK;QAHH,SAAI,GAAG,YAAY,CAAC;IAMpC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,gBAAgB;IACtD,YACS,YAAoB,EACpB,IAAW;QAElB,KAAK,EAAE,CAAC;QAHD,iBAAY,GAAZ,YAAY,CAAQ;QACpB,SAAI,GAAJ,IAAI,CAAO;IAGpB,CAAC;CACF"}
1
+ {"version":3,"file":"expressions.js","sourceRoot":"","sources":["../../../src/core/expressions.ts"],"names":[],"mappings":";AAKA;;;GAGG;AACH,MAAM,OAAgB,gBAAgB;IAAtC;QACE,gBAAgB;QACP,QAAoB,GAAG,kBAAkB,CAAC;IACrD,CAAC;CAAA;KADW,MAAM,CAAC,WAAW;AAG9B,MAAM,OAAO,gBAAiB,SAAQ,gBAAgB;IAEpD,YACS,IAA2C,EAC3C,QAAgB,EAChB,KAAU;QAEjB,KAAK,EAAE,CAAC;QAJD,SAAI,GAAJ,IAAI,CAAuC;QAC3C,aAAQ,GAAR,QAAQ,CAAQ;QAChB,UAAK,GAAL,KAAK,CAAK;QAJH,SAAI,GAAG,aAAa,CAAC;IAOrC,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,gBAAgB;IAErD,YACS,QAAsB,EACtB,WAAuC;QAE9C,KAAK,EAAE,CAAC;QAHD,aAAQ,GAAR,QAAQ,CAAc;QACtB,gBAAW,GAAX,WAAW,CAA4B;QAHhC,SAAI,GAAG,cAAc,CAAC;IAMtC,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,gBAAgB;IAEnD,YACS,QAAgB,EAChB,KAAU;QAEjB,KAAK,EAAE,CAAC;QAHD,aAAQ,GAAR,QAAQ,CAAQ;QAChB,UAAK,GAAL,KAAK,CAAK;QAHH,SAAI,GAAG,YAAY,CAAC;IAMpC,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,gBAAgB;IAC5D,YACS,KAAa;QAEpB,KAAK,EAAE,CAAC;QAFD,UAAK,GAAL,KAAK,CAAQ;IAGtB,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,gBAAgB;IACtD,YACS,YAAoB,EACpB,IAAW;QAElB,KAAK,EAAE,CAAC;QAHD,iBAAY,GAAZ,YAAY,CAAQ;QACpB,SAAI,GAAJ,IAAI,CAAO;IAGpB,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ import { PodColumnBase } from './schema';
2
+ export interface OrderByExpression {
3
+ column: PodColumnBase | string;
4
+ direction: 'asc' | 'desc';
5
+ }
6
+ export declare function asc(column: PodColumnBase | string): OrderByExpression;
7
+ export declare function desc(column: PodColumnBase | string): OrderByExpression;
8
+ export declare function isOrderByExpression(value: unknown): value is OrderByExpression;
9
+ //# sourceMappingURL=order-by.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-by.d.ts","sourceRoot":"","sources":["../../../src/core/order-by.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,aAAa,GAAG,MAAM,CAAC;IAC/B,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;CAC3B;AAED,wBAAgB,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,GAAG,iBAAiB,CAErE;AAED,wBAAgB,IAAI,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,GAAG,iBAAiB,CAEtE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAU9E"}