@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 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/core/query-builders/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIrD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,GAAG,GACT,cAAc,CAYhB;AAED,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,EAC3C,KAAK,CAAC,EAAE,MAAM,GACb,cAAc,GAAG,SAAS,CAmB5B"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/core/query-builders/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAe,cAAc,EAAE,MAAM,SAAS,CAAC;AAG3D,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CA+BnF;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,GAAG,GACT,cAAc,CAYhB;AAED,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,EAC3C,KAAK,CAAC,EAAE,MAAM,GACb,cAAc,GAAG,SAAS,CAmB5B;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,GAAG,SAAS,CAkB9E;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAC3B,QAAQ,EAAE,MAAM,EAAE,GACjB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAkCvB;AAqFD,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACxB,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,GAC7B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAWrB;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAC3B,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,GAC7B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAMvB"}
@@ -1,8 +1,44 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.inferSPARQLQueryType = inferSPARQLQueryType;
3
4
  exports.createLiteralCondition = createLiteralCondition;
4
5
  exports.buildConditionTreeFromObject = buildConditionTreeFromObject;
6
+ exports.resolveRowSubject = resolveRowSubject;
7
+ exports.orderRowsBySubjects = orderRowsBySubjects;
8
+ exports.projectReturningRow = projectReturningRow;
9
+ exports.projectReturningRows = projectReturningRows;
5
10
  const expressions_1 = require("../expressions");
11
+ const schema_1 = require("../schema");
12
+ function inferSPARQLQueryType(query) {
13
+ const withoutComments = query
14
+ .replace(/^\s*#.*$/gm, '')
15
+ .trim();
16
+ const withoutProlog = withoutComments
17
+ .replace(/^(?:\s*(?:PREFIX|BASE)\s+[^\n]+\n)*/i, '')
18
+ .trim();
19
+ const firstKeyword = withoutProlog
20
+ .match(/^(SELECT|ASK|INSERT|DELETE|UPDATE|WITH|LOAD|CLEAR|CREATE|DROP|COPY|MOVE|ADD|CONSTRUCT|DESCRIBE)\b/i)?.[1]
21
+ ?.toUpperCase();
22
+ switch (firstKeyword) {
23
+ case 'SELECT':
24
+ case 'ASK':
25
+ case 'INSERT':
26
+ case 'DELETE':
27
+ case 'UPDATE':
28
+ return firstKeyword;
29
+ case 'WITH':
30
+ case 'LOAD':
31
+ case 'CLEAR':
32
+ case 'CREATE':
33
+ case 'DROP':
34
+ case 'COPY':
35
+ case 'MOVE':
36
+ case 'ADD':
37
+ return 'UPDATE';
38
+ default:
39
+ return undefined;
40
+ }
41
+ }
6
42
  function createLiteralCondition(alias, column, value) {
7
43
  const colRef = alias ? `${alias}.${column}` : column;
8
44
  if (value === undefined || value === null) {
@@ -27,4 +63,137 @@ function buildConditionTreeFromObject(conditions, alias) {
27
63
  }
28
64
  return new expressions_1.LogicalExpression('AND', nodes);
29
65
  }
66
+ function resolveRowSubject(row) {
67
+ if (!row || typeof row !== 'object') {
68
+ return undefined;
69
+ }
70
+ if (typeof row['@id'] === 'string' && row['@id'].length > 0) {
71
+ return row['@id'];
72
+ }
73
+ if (typeof row.subject === 'string' && row.subject.length > 0) {
74
+ return row.subject;
75
+ }
76
+ if (typeof row.uri === 'string' && row.uri.length > 0) {
77
+ return row.uri;
78
+ }
79
+ return undefined;
80
+ }
81
+ function orderRowsBySubjects(rows, subjects) {
82
+ if (!rows.length || !subjects.length) {
83
+ return rows;
84
+ }
85
+ const grouped = new Map();
86
+ const unmatched = [];
87
+ for (const row of rows) {
88
+ const subject = resolveRowSubject(row);
89
+ if (!subject) {
90
+ unmatched.push(row);
91
+ continue;
92
+ }
93
+ const existing = grouped.get(subject) ?? [];
94
+ existing.push(row);
95
+ grouped.set(subject, existing);
96
+ }
97
+ const ordered = [];
98
+ for (const subject of subjects) {
99
+ const matches = grouped.get(subject);
100
+ if (matches?.length) {
101
+ ordered.push(...matches);
102
+ grouped.delete(subject);
103
+ }
104
+ }
105
+ for (const matches of grouped.values()) {
106
+ ordered.push(...matches);
107
+ }
108
+ ordered.push(...unmatched);
109
+ return ordered;
110
+ }
111
+ function isSelectFieldMap(field) {
112
+ return !!field
113
+ && typeof field === 'object'
114
+ && !(field instanceof schema_1.PodColumnBase)
115
+ && !(field instanceof schema_1.PodTable)
116
+ && !('aggregateType' in field);
117
+ }
118
+ function resolveFieldBindingCandidates(alias, field) {
119
+ const candidates = new Set();
120
+ if (typeof field === 'string') {
121
+ candidates.add(field);
122
+ if (field.includes('.')) {
123
+ const [fieldAlias, column] = field.split('.', 2);
124
+ if (column) {
125
+ candidates.add(`${fieldAlias}.${column}`);
126
+ candidates.add(column);
127
+ }
128
+ }
129
+ }
130
+ else if (field instanceof schema_1.PodColumnBase) {
131
+ if (field.table?.config?.name) {
132
+ candidates.add(`${field.table.config.name}.${field.name}`);
133
+ }
134
+ candidates.add(field.name);
135
+ }
136
+ return Array.from(candidates);
137
+ }
138
+ function isEmptyProjectedValue(value) {
139
+ if (value === undefined || value === null) {
140
+ return true;
141
+ }
142
+ if (Array.isArray(value)) {
143
+ return value.length === 0;
144
+ }
145
+ if (typeof value === 'object') {
146
+ const entries = Object.values(value);
147
+ return entries.length > 0 && entries.every((entry) => isEmptyProjectedValue(entry));
148
+ }
149
+ return false;
150
+ }
151
+ function projectTableRow(row, table) {
152
+ const alias = table.config.name;
153
+ const projected = {};
154
+ let hasValue = false;
155
+ for (const columnName of Object.keys(table.columns)) {
156
+ const candidates = alias ? [`${alias}.${columnName}`, columnName] : [columnName];
157
+ const match = candidates.find((candidate) => row[candidate] !== undefined);
158
+ projected[columnName] = match ? row[match] : undefined;
159
+ if (projected[columnName] !== undefined) {
160
+ hasValue = true;
161
+ }
162
+ }
163
+ return hasValue ? projected : null;
164
+ }
165
+ function projectFieldValue(row, alias, field) {
166
+ if (field instanceof schema_1.PodTable) {
167
+ return projectTableRow(row, field);
168
+ }
169
+ if (isSelectFieldMap(field)) {
170
+ const projected = {};
171
+ for (const [nestedKey, nestedField] of Object.entries(field)) {
172
+ projected[nestedKey] = projectFieldValue(row, nestedKey, nestedField);
173
+ }
174
+ return isEmptyProjectedValue(projected) ? null : projected;
175
+ }
176
+ for (const candidate of resolveFieldBindingCandidates(alias, field)) {
177
+ if (row[candidate] !== undefined) {
178
+ return row[candidate];
179
+ }
180
+ }
181
+ return row[alias];
182
+ }
183
+ function projectReturningRow(row, fields) {
184
+ if (!fields || fields === true) {
185
+ return row;
186
+ }
187
+ const projected = {};
188
+ for (const [alias, field] of Object.entries(fields)) {
189
+ projected[alias] = projectFieldValue(row, alias, field);
190
+ }
191
+ return projected;
192
+ }
193
+ function projectReturningRows(rows, fields) {
194
+ if (!fields || fields === true) {
195
+ return rows;
196
+ }
197
+ return rows.map((row) => projectReturningRow(row, fields));
198
+ }
30
199
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/core/query-builders/helpers.ts"],"names":[],"mappings":";;AAIA,wDAgBC;AAED,oEAsBC;AA3CD,gDAAsF;AAGtF,SAAgB,sBAAsB,CACpC,KAAyB,EACzB,MAAc,EACd,KAAU;IAEV,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IAErD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,IAAI,6BAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,8BAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,IAAI,8BAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC;AAED,SAAgB,4BAA4B,CAC1C,UAA2C,EAC3C,KAAc;IAEd,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAC5C,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAC7C,CAAC;IAEF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,IAAI,+BAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/core/query-builders/helpers.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,25 @@
1
1
  import { entityKind, SQL } from 'drizzle-orm';
2
- import { PodTable, InferInsertData, InferTableData } from '../schema';
2
+ import { PodTable, InferInsertData } from '../schema';
3
3
  import { PodAsyncSession } from '../pod-session';
4
- import { InsertQueryPlan } from './types';
4
+ import { InsertQueryPlan, type SelectFieldMap } from './types';
5
5
  export declare class InsertQueryBuilder<TTable extends PodTable<any> = PodTable<any>> {
6
6
  session: PodAsyncSession;
7
7
  table: TTable;
8
8
  static readonly [entityKind] = "InsertQueryBuilder";
9
9
  insertValues?: InferInsertData<TTable> | InferInsertData<TTable>[];
10
10
  sql?: SQL;
11
+ private returningFields?;
11
12
  constructor(session: PodAsyncSession, table: TTable);
12
13
  values(values: InferInsertData<TTable> | InferInsertData<TTable>[] | SQL): this;
14
+ returning(fields?: SelectFieldMap): this;
13
15
  toIR: () => InsertQueryPlan<TTable>;
14
- execute(): Promise<InferTableData<TTable>[]>;
16
+ private buildSPARQLQuery;
17
+ toSPARQL(): import("../ast-to-sparql").SPARQLQuery;
18
+ toSparql(): import("../ast-to-sparql").SPARQLQuery;
19
+ execute(): Promise<any[]>;
15
20
  then<TResult1 = Awaited<ReturnType<InsertQueryBuilder<TTable>['execute']>>, TResult2 = never>(onfulfilled?: ((value: Awaited<ReturnType<InsertQueryBuilder<TTable>['execute']>>) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;
21
+ private fetchReturningRowsBySubjects;
22
+ private getSubjectUris;
16
23
  /**
17
24
  * Run afterInsert hooks for all inserted records.
18
25
  */
@@ -1 +1 @@
1
- {"version":3,"file":"insert-query-builder.d.ts","sourceRoot":"","sources":["../../../src/core/query-builders/insert-query-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAiB,eAAe,EAAE,cAAc,EAAe,MAAM,WAAW,CAAC;AAClG,OAAO,EAAE,eAAe,EAAgB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,qBAAa,kBAAkB,CAAC,MAAM,SAAS,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC;IAOjE,OAAO,EAAE,eAAe;IACxB,KAAK,EAAE,MAAM;IAPtB,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,wBAAwB;IAE7C,YAAY,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;IACnE,GAAG,CAAC,EAAE,GAAG,CAAC;gBAGR,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,MAAM;IAGtB,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG;IASjE,IAAI,QAAO,eAAe,CAAC,MAAM,CAAC,CAMvC;IAEI,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;IAyBlD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,KAAK,EAC1F,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,EAC1I,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAClF,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAI/B;;OAEG;YACW,mBAAmB;IAwBjC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,kBAAkB;CAe3B"}
1
+ {"version":3,"file":"insert-query-builder.d.ts","sourceRoot":"","sources":["../../../src/core/query-builders/insert-query-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAiB,eAAe,EAAe,MAAM,WAAW,CAAC;AAClF,OAAO,EAAE,eAAe,EAAgB,MAAM,gBAAgB,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAG/D,qBAAa,kBAAkB,CAAC,MAAM,SAAS,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC;IAQjE,OAAO,EAAE,eAAe;IACxB,KAAK,EAAE,MAAM;IARtB,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,wBAAwB;IAE7C,YAAY,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;IACnE,GAAG,CAAC,EAAE,GAAG,CAAC;IACjB,OAAO,CAAC,eAAe,CAAC,CAAwB;gBAGvC,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,MAAM;IAGtB,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG;IASxE,SAAS,CAAC,MAAM,CAAC,EAAE,cAAc;IAK1B,IAAI,QAAO,eAAe,CAAC,MAAM,CAAC,CAMvC;IAGF,OAAO,CAAC,gBAAgB;IAkBxB,QAAQ;IAIR,QAAQ;IAIF,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IA+B/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,KAAK,EAC1F,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,EAC1I,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAClF,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAIjB,4BAA4B;IAS1C,OAAO,CAAC,cAAc;IAStB;;OAEG;YACW,mBAAmB;IAqBjC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,kBAAkB;CAe3B"}
@@ -3,6 +3,8 @@ var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.InsertQueryBuilder = void 0;
5
5
  const drizzle_orm_1 = require("drizzle-orm");
6
+ const helpers_1 = require("../sparql/helpers");
7
+ const helpers_2 = require("./helpers");
6
8
  class InsertQueryBuilder {
7
9
  constructor(session, table) {
8
10
  this.session = session;
@@ -24,12 +26,41 @@ class InsertQueryBuilder {
24
26
  }
25
27
  return this;
26
28
  }
29
+ returning(fields) {
30
+ this.returningFields = fields ?? true;
31
+ return this;
32
+ }
33
+ buildSPARQLQuery(methodName = 'toSPARQL()') {
34
+ if (this.sql) {
35
+ const query = this.sql.queryChunks.join('');
36
+ const type = (0, helpers_2.inferSPARQLQueryType)(query);
37
+ if (!type) {
38
+ throw new Error(`${methodName} could not infer SPARQL query type from raw AST input`);
39
+ }
40
+ return { type, query, prefixes: {} };
41
+ }
42
+ const converter = this.session.getDialect().getSPARQLConverter?.();
43
+ if (!converter) {
44
+ throw new Error(`${methodName} requires dialect SPARQL converter support`);
45
+ }
46
+ return converter.convertInsert(this.toIR());
47
+ }
48
+ toSPARQL() {
49
+ return this.buildSPARQLQuery('toSPARQL()');
50
+ }
51
+ toSparql() {
52
+ return this.toSPARQL();
53
+ }
27
54
  async execute() {
28
55
  if (this.sql) {
56
+ if (this.returningFields) {
57
+ throw new Error('returning() is not supported for raw SQL insert in Solid dialect');
58
+ }
29
59
  return await this.session.executeSql(this.sql, this.table);
30
60
  }
31
61
  else if (this.insertValues) {
32
62
  const rows = this.getRowsWithDefaults();
63
+ const subjects = this.returningFields ? this.getSubjectUris(rows) : [];
33
64
  const operation = {
34
65
  type: 'insert',
35
66
  table: this.table,
@@ -40,9 +71,11 @@ class InsertQueryBuilder {
40
71
  }
41
72
  };
42
73
  const results = await this.session.execute(operation);
43
- // Call afterInsert hooks
44
- await this.runAfterInsertHooks(results);
45
- return results;
74
+ const finalResults = this.returningFields
75
+ ? await this.fetchReturningRowsBySubjects(subjects)
76
+ : results;
77
+ await this.runAfterInsertHooks(finalResults);
78
+ return finalResults;
46
79
  }
47
80
  else {
48
81
  throw new Error('No values specified for INSERT query');
@@ -51,6 +84,20 @@ class InsertQueryBuilder {
51
84
  then(onfulfilled, onrejected) {
52
85
  return this.execute().then(onfulfilled, onrejected);
53
86
  }
87
+ async fetchReturningRowsBySubjects(subjects) {
88
+ if (subjects.length === 0) {
89
+ return [];
90
+ }
91
+ const rows = await this.session.select().from(this.table).whereByIri(subjects);
92
+ return (0, helpers_2.projectReturningRows)((0, helpers_2.orderRowsBySubjects)(rows, subjects), this.returningFields);
93
+ }
94
+ getSubjectUris(rows) {
95
+ const resolver = this.session.getDialect().getUriResolver?.();
96
+ if (!resolver) {
97
+ throw new Error('returning() requires dialect URI resolver support');
98
+ }
99
+ return rows.map((row) => (0, helpers_1.generateSubjectUri)(row, this.table, resolver));
100
+ }
54
101
  /**
55
102
  * Run afterInsert hooks for all inserted records.
56
103
  */
@@ -59,20 +106,17 @@ class InsertQueryBuilder {
59
106
  if (!hooks?.afterInsert) {
60
107
  return;
61
108
  }
62
- // Build hook context
63
109
  const ctx = this.buildHookContext();
64
110
  if (!ctx) {
65
111
  console.warn('[InsertQueryBuilder] Cannot run hooks: missing session info');
66
112
  return;
67
113
  }
68
- // Run hook for each inserted record
69
114
  for (const record of results) {
70
115
  try {
71
116
  await hooks.afterInsert(ctx, record);
72
117
  }
73
118
  catch (error) {
74
119
  console.error('[InsertQueryBuilder] afterInsert hook failed:', error);
75
- // Don't throw - the insert succeeded, just the hook failed
76
120
  }
77
121
  }
78
122
  }
@@ -1 +1 @@
1
- {"version":3,"file":"insert-query-builder.js","sourceRoot":"","sources":["../../../src/core/query-builders/insert-query-builder.ts"],"names":[],"mappings":";;;;AAAA,6CAA8C;AAK9C,MAAa,kBAAkB;IAM7B,YACS,OAAwB,EACxB,KAAa;QADb,YAAO,GAAP,OAAO,CAAiB;QACxB,UAAK,GAAL,KAAK,CAAQ;QAYf,SAAI,GAAG,GAA4B,EAAE;YAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACxC,OAAO;gBACL,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI;aACL,CAAC;QACJ,CAAC,CAAC;IAjBC,CAAC;IAEJ,MAAM,CAAC,MAAiE;QACtE,IAAI,MAAM,YAAY,iBAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC7B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAUD,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAA6B,CAAC;QACzF,CAAC;aAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACxC,MAAM,SAAS,GAAiB;gBAC9B,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACzD,IAAI,EAAE;oBACJ,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,IAAI;iBACL;aACF,CAAC;YACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAA6B,CAAC;YAElF,yBAAyB;YACzB,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAExC,OAAO,OAAO,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,IAAI,CACF,WAA0I,EAC1I,UAAmF;QAEnF,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB,CAAC,OAAiC;QACjE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QACtC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,qBAAqB;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;YAC5E,OAAO;QACT,CAAC;QAED,oCAAoC;QACpC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,MAAiC,CAAC,CAAC;YAClE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAC;gBACtE,2DAA2D;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAEhD,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP,IAAI,EAAE;oBACJ,UAAU,EAAE,IAAI;oBAChB,KAAK;iBACN;gBACD,KAAK,EAAE,OAAO;aACf;YACD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,EAAE,EAAG,IAAI,CAAC,KAAa,CAAC,GAAG,IAAI,IAAI;SACpC,CAAC;IACJ,CAAC;IAEO,mBAAmB;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;QACjC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC;IAEO,kBAAkB,CAAC,GAA4B;QACrD,MAAM,UAAU,GAAwB,EAAE,GAAI,GAA2B,EAAE,CAAC;QAC5E,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAkC,CAAC;QAC7E,KAAK,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3D,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC;gBAClD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;oBAC/B,UAAU,CAAC,UAAU,CAAC,GAAG,OAAO,YAAY,KAAK,UAAU;wBACzD,CAAC,CAAE,YAA8B,EAAE;wBACnC,CAAC,CAAC,YAAY,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,UAAqC,CAAC;IAC/C,CAAC;;AAvIH,gDAwIC;KAvIkB,wBAAU;AAAX,sBAAY,GAAG,oBAAoB,AAAvB,CAAwB"}
1
+ {"version":3,"file":"insert-query-builder.js","sourceRoot":"","sources":["../../../src/core/query-builders/insert-query-builder.ts"],"names":[],"mappings":";;;;AAAA,6CAA8C;AAG9C,+CAAuD;AAEvD,uCAA4F;AAE5F,MAAa,kBAAkB;IAO7B,YACS,OAAwB,EACxB,KAAa;QADb,YAAO,GAAP,OAAO,CAAiB;QACxB,UAAK,GAAL,KAAK,CAAQ;QAiBf,SAAI,GAAG,GAA4B,EAAE;YAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACxC,OAAO;gBACL,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI;aACL,CAAC;QACJ,CAAC,CAAC;IAtBC,CAAC;IAEJ,MAAM,CAAC,MAAiE;QACtE,IAAI,MAAM,YAAY,iBAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC7B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,CAAC,MAAuB;QAC/B,IAAI,CAAC,eAAe,GAAG,MAAM,IAAI,IAAI,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAWO,gBAAgB,CAAC,UAAU,GAAG,YAAY;QAChD,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,IAAA,8BAAoB,EAAC,KAAK,CAAC,CAAC;YACzC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,uDAAuD,CAAC,CAAC;YACxF,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAA4B,EAAE,CAAC;QACjE,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,kBAAkB,EAAE,EAAE,CAAC;QACnE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,4CAA4C,CAAC,CAAC;QAC7E,CAAC;QAED,OAAO,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;YACtF,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7D,CAAC;aAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,MAAM,SAAS,GAAiB;gBAC9B,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACzD,IAAI,EAAE;oBACJ,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,IAAI;iBACL;aACF,CAAC;YACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACtD,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe;gBACvC,CAAC,CAAC,MAAM,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC;gBACnD,CAAC,CAAC,OAAO,CAAC;YAEZ,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;YAE7C,OAAO,YAAY,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,IAAI,CACF,WAA0I,EAC1I,UAAmF;QAEnF,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACtD,CAAC;IAEO,KAAK,CAAC,4BAA4B,CAAC,QAAkB;QAC3D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,QAAQ,CAA0B,CAAC;QACxG,OAAO,IAAA,8BAAoB,EAAC,IAAA,6BAAmB,EAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACzF,CAAC;IAEO,cAAc,CAAC,IAA+B;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC;QAC9D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,4BAAkB,EAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB,CAAC,OAAc;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QACtC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;YAC5E,OAAO;QACT,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,MAAiC,CAAC,CAAC;YAClE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAEhD,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP,IAAI,EAAE;oBACJ,UAAU,EAAE,IAAI;oBAChB,KAAK;iBACN;gBACD,KAAK,EAAE,OAAO;aACf;YACD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,EAAE,EAAG,IAAI,CAAC,KAAa,CAAC,GAAG,IAAI,IAAI;SACpC,CAAC;IACJ,CAAC;IAEO,mBAAmB;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;QACjC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC;IAEO,kBAAkB,CAAC,GAA4B;QACrD,MAAM,UAAU,GAAwB,EAAE,GAAI,GAA2B,EAAE,CAAC;QAC5E,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAkC,CAAC;QAC7E,KAAK,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3D,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC;gBAClD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;oBAC/B,UAAU,CAAC,UAAU,CAAC,GAAG,OAAO,YAAY,KAAK,UAAU;wBACzD,CAAC,CAAE,YAA8B,EAAE;wBACnC,CAAC,CAAC,YAAY,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,UAAqC,CAAC;IAC/C,CAAC;;AA7LH,gDA8LC;KA7LkB,wBAAU;AAAX,sBAAY,GAAG,oBAAoB,AAAvB,CAAwB"}
@@ -3,6 +3,8 @@ import { PodTable, PodColumnBase, InferTableData } from '../schema';
3
3
  import { QueryCondition } from '../query-conditions';
4
4
  import { SelectQueryPlan } from '../select-plan';
5
5
  import { SelectFieldMap, SessionInterface } from './types';
6
+ import { type OrderByExpression } from '../order-by';
7
+ import { SelectionAliasExpression } from '../expressions';
6
8
  export declare class SelectQueryBuilder<TTable extends PodTable<any> = PodTable<any>> {
7
9
  session: SessionInterface;
8
10
  static readonly [entityKind] = "SelectQueryBuilder";
@@ -22,6 +24,7 @@ export declare class SelectQueryBuilder<TTable extends PodTable<any> = PodTable<
22
24
  private primaryAlias?;
23
25
  private joinFilters;
24
26
  private groupByColumns;
27
+ private havingCondition?;
25
28
  constructor(session: SessionInterface, fields?: SelectFieldMap);
26
29
  from<TJoinTable extends PodTable<any>>(table: TJoinTable): SelectQueryBuilder<TJoinTable>;
27
30
  columns(fields: SelectFieldMap): this;
@@ -46,10 +49,15 @@ export declare class SelectQueryBuilder<TTable extends PodTable<any> = PodTable<
46
49
  rightJoin<TJoinTable extends PodTable<any>>(table: TJoinTable, condition: any): SelectQueryBuilder<TTable>;
47
50
  innerJoin<TJoinTable extends PodTable<any>>(table: TJoinTable, condition: any): SelectQueryBuilder<TTable>;
48
51
  fullJoin<TJoinTable extends PodTable<any>>(table: TJoinTable, condition: any): SelectQueryBuilder<TTable>;
52
+ crossJoin<TJoinTable extends PodTable<any>>(table: TJoinTable): SelectQueryBuilder<TTable>;
49
53
  groupBy(...fields: Array<PodColumnBase | string>): SelectQueryBuilder<TTable>;
54
+ having(condition: QueryCondition | ((fields: Record<string, SelectionAliasExpression>) => QueryCondition)): SelectQueryBuilder<TTable>;
55
+ private createSelectedFieldAliases;
50
56
  private addJoin;
51
57
  private ensureAliasForTable;
52
58
  private resolveJoinConditions;
59
+ private resolveJoinConditionExpression;
60
+ private getConditionColumnReference;
53
61
  private resolveColumnReference;
54
62
  private parseColumnReferenceString;
55
63
  private processWhereObject;
@@ -59,11 +67,22 @@ export declare class SelectQueryBuilder<TTable extends PodTable<any> = PodTable<
59
67
  private buildQueryPlan;
60
68
  limit(count: number): this;
61
69
  offset(count: number): this;
62
- orderBy(column: PodColumnBase | string, direction?: 'asc' | 'desc'): this;
70
+ private addOrderByClause;
71
+ orderBy(...args: Array<PodColumnBase | string | OrderByExpression | 'asc' | 'desc'>): this;
63
72
  distinct(enable?: boolean): this;
73
+ private buildSPARQLQuery;
74
+ toSPARQL(): any;
75
+ toSparql(): any;
64
76
  execute(): Promise<InferTableData<TTable>[]>;
65
77
  private projectSelectedRow;
78
+ private projectFieldMap;
79
+ private projectFieldValue;
80
+ private projectTableValue;
81
+ private isSelectFieldMap;
82
+ private collectSelectionAliases;
83
+ private isProjectedValueEmpty;
66
84
  private resolveFieldBindingCandidates;
85
+ private shouldUseProjectionFallback;
67
86
  private shouldUseAggregateFallback;
68
87
  private buildAggregateRow;
69
88
  private computeAggregateValue;
@@ -75,6 +94,7 @@ export declare class SelectQueryBuilder<TTable extends PodTable<any> = PodTable<
75
94
  private buildGroupedAggregateRows;
76
95
  private ensureGroupByValidity;
77
96
  private resolveSelectFieldColumn;
97
+ private hasAggregateSelection;
78
98
  private hasMixedAggregateSelection;
79
99
  private applySubjectMetadata;
80
100
  private attachSubjectMetadata;
@@ -83,12 +103,18 @@ export declare class SelectQueryBuilder<TTable extends PodTable<any> = PodTable<
83
103
  /**
84
104
  * 处理引用字段:将 URI 转换回简单 ID
85
105
  *
86
- * 对于配置了 .reference() 的列,将存储的完整 URI 转换回用户友好的 ID
106
+ * 对于配置了 .link() 的列,将存储的完整 URI 转换回用户友好的 ID
87
107
  * 例如:http://pod/.data/chat/chat-123/index.ttl#this -> chat-123
88
108
  */
89
- private resolveReferenceIds;
109
+ private resolveLinkIds;
110
+ private normalizeInlinePredicateKey;
90
111
  private normalizeInlineObjectValue;
91
112
  private normalizeInlineIri;
113
+ private applyDeferredOrderBy;
114
+ private applyDistinctRows;
115
+ private applyDeferredOffsetAndLimit;
116
+ private getOrderByValue;
117
+ private compareOrderByValues;
92
118
  private mergeRowsBySubject;
93
119
  private inferSourceFromChild;
94
120
  private isInlineObjectColumn;
@@ -98,10 +124,12 @@ export declare class SelectQueryBuilder<TTable extends PodTable<any> = PodTable<
98
124
  private mergeRowsWithJoin;
99
125
  private createEmptyJoinRow;
100
126
  private applyJoinFilters;
127
+ private applyHavingFilter;
101
128
  private evaluateCondition;
102
129
  private evaluateBinaryCondition;
103
130
  private evaluateUnaryCondition;
104
131
  private evaluateLogicalCondition;
132
+ private resolveConditionOperandValue;
105
133
  private getColumnKeyCandidates;
106
134
  private getRowValueForColumn;
107
135
  private serializeValueForKey;
@@ -1 +1 @@
1
- {"version":3,"file":"select-query-builder.d.ts","sourceRoot":"","sources":["../../../src/core/query-builders/select-query-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"select-query-builder.d.ts","sourceRoot":"","sources":["../../../src/core/query-builders/select-query-builder.ts"],"names":[],"mappings":"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"}