@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,35 @@
1
1
  import { BinaryExpression, LogicalExpression, UnaryExpression } from '../expressions';
2
+ import { PodColumnBase, PodTable } from '../schema';
3
+ export function inferSPARQLQueryType(query) {
4
+ const withoutComments = query
5
+ .replace(/^\s*#.*$/gm, '')
6
+ .trim();
7
+ const withoutProlog = withoutComments
8
+ .replace(/^(?:\s*(?:PREFIX|BASE)\s+[^\n]+\n)*/i, '')
9
+ .trim();
10
+ const firstKeyword = withoutProlog
11
+ .match(/^(SELECT|ASK|INSERT|DELETE|UPDATE|WITH|LOAD|CLEAR|CREATE|DROP|COPY|MOVE|ADD|CONSTRUCT|DESCRIBE)\b/i)?.[1]
12
+ ?.toUpperCase();
13
+ switch (firstKeyword) {
14
+ case 'SELECT':
15
+ case 'ASK':
16
+ case 'INSERT':
17
+ case 'DELETE':
18
+ case 'UPDATE':
19
+ return firstKeyword;
20
+ case 'WITH':
21
+ case 'LOAD':
22
+ case 'CLEAR':
23
+ case 'CREATE':
24
+ case 'DROP':
25
+ case 'COPY':
26
+ case 'MOVE':
27
+ case 'ADD':
28
+ return 'UPDATE';
29
+ default:
30
+ return undefined;
31
+ }
32
+ }
2
33
  export function createLiteralCondition(alias, column, value) {
3
34
  const colRef = alias ? `${alias}.${column}` : column;
4
35
  if (value === undefined || value === null) {
@@ -23,4 +54,137 @@ export function buildConditionTreeFromObject(conditions, alias) {
23
54
  }
24
55
  return new LogicalExpression('AND', nodes);
25
56
  }
57
+ export function resolveRowSubject(row) {
58
+ if (!row || typeof row !== 'object') {
59
+ return undefined;
60
+ }
61
+ if (typeof row['@id'] === 'string' && row['@id'].length > 0) {
62
+ return row['@id'];
63
+ }
64
+ if (typeof row.subject === 'string' && row.subject.length > 0) {
65
+ return row.subject;
66
+ }
67
+ if (typeof row.uri === 'string' && row.uri.length > 0) {
68
+ return row.uri;
69
+ }
70
+ return undefined;
71
+ }
72
+ export function orderRowsBySubjects(rows, subjects) {
73
+ if (!rows.length || !subjects.length) {
74
+ return rows;
75
+ }
76
+ const grouped = new Map();
77
+ const unmatched = [];
78
+ for (const row of rows) {
79
+ const subject = resolveRowSubject(row);
80
+ if (!subject) {
81
+ unmatched.push(row);
82
+ continue;
83
+ }
84
+ const existing = grouped.get(subject) ?? [];
85
+ existing.push(row);
86
+ grouped.set(subject, existing);
87
+ }
88
+ const ordered = [];
89
+ for (const subject of subjects) {
90
+ const matches = grouped.get(subject);
91
+ if (matches?.length) {
92
+ ordered.push(...matches);
93
+ grouped.delete(subject);
94
+ }
95
+ }
96
+ for (const matches of grouped.values()) {
97
+ ordered.push(...matches);
98
+ }
99
+ ordered.push(...unmatched);
100
+ return ordered;
101
+ }
102
+ function isSelectFieldMap(field) {
103
+ return !!field
104
+ && typeof field === 'object'
105
+ && !(field instanceof PodColumnBase)
106
+ && !(field instanceof PodTable)
107
+ && !('aggregateType' in field);
108
+ }
109
+ function resolveFieldBindingCandidates(alias, field) {
110
+ const candidates = new Set();
111
+ if (typeof field === 'string') {
112
+ candidates.add(field);
113
+ if (field.includes('.')) {
114
+ const [fieldAlias, column] = field.split('.', 2);
115
+ if (column) {
116
+ candidates.add(`${fieldAlias}.${column}`);
117
+ candidates.add(column);
118
+ }
119
+ }
120
+ }
121
+ else if (field instanceof PodColumnBase) {
122
+ if (field.table?.config?.name) {
123
+ candidates.add(`${field.table.config.name}.${field.name}`);
124
+ }
125
+ candidates.add(field.name);
126
+ }
127
+ return Array.from(candidates);
128
+ }
129
+ function isEmptyProjectedValue(value) {
130
+ if (value === undefined || value === null) {
131
+ return true;
132
+ }
133
+ if (Array.isArray(value)) {
134
+ return value.length === 0;
135
+ }
136
+ if (typeof value === 'object') {
137
+ const entries = Object.values(value);
138
+ return entries.length > 0 && entries.every((entry) => isEmptyProjectedValue(entry));
139
+ }
140
+ return false;
141
+ }
142
+ function projectTableRow(row, table) {
143
+ const alias = table.config.name;
144
+ const projected = {};
145
+ let hasValue = false;
146
+ for (const columnName of Object.keys(table.columns)) {
147
+ const candidates = alias ? [`${alias}.${columnName}`, columnName] : [columnName];
148
+ const match = candidates.find((candidate) => row[candidate] !== undefined);
149
+ projected[columnName] = match ? row[match] : undefined;
150
+ if (projected[columnName] !== undefined) {
151
+ hasValue = true;
152
+ }
153
+ }
154
+ return hasValue ? projected : null;
155
+ }
156
+ function projectFieldValue(row, alias, field) {
157
+ if (field instanceof PodTable) {
158
+ return projectTableRow(row, field);
159
+ }
160
+ if (isSelectFieldMap(field)) {
161
+ const projected = {};
162
+ for (const [nestedKey, nestedField] of Object.entries(field)) {
163
+ projected[nestedKey] = projectFieldValue(row, nestedKey, nestedField);
164
+ }
165
+ return isEmptyProjectedValue(projected) ? null : projected;
166
+ }
167
+ for (const candidate of resolveFieldBindingCandidates(alias, field)) {
168
+ if (row[candidate] !== undefined) {
169
+ return row[candidate];
170
+ }
171
+ }
172
+ return row[alias];
173
+ }
174
+ export function projectReturningRow(row, fields) {
175
+ if (!fields || fields === true) {
176
+ return row;
177
+ }
178
+ const projected = {};
179
+ for (const [alias, field] of Object.entries(fields)) {
180
+ projected[alias] = projectFieldValue(row, alias, field);
181
+ }
182
+ return projected;
183
+ }
184
+ export function projectReturningRows(rows, fields) {
185
+ if (!fields || fields === true) {
186
+ return rows;
187
+ }
188
+ return rows.map((row) => projectReturningRow(row, fields));
189
+ }
26
190
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/core/query-builders/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtF,MAAM,UAAU,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,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,IAAI,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,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,iBAAiB,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"}
@@ -1,5 +1,7 @@
1
1
  var _a;
2
2
  import { entityKind, SQL } from 'drizzle-orm';
3
+ import { generateSubjectUri } from '../sparql/helpers';
4
+ import { inferSPARQLQueryType, orderRowsBySubjects, projectReturningRows } from './helpers';
3
5
  export class InsertQueryBuilder {
4
6
  constructor(session, table) {
5
7
  this.session = session;
@@ -21,12 +23,41 @@ export class InsertQueryBuilder {
21
23
  }
22
24
  return this;
23
25
  }
26
+ returning(fields) {
27
+ this.returningFields = fields ?? true;
28
+ return this;
29
+ }
30
+ buildSPARQLQuery(methodName = 'toSPARQL()') {
31
+ if (this.sql) {
32
+ const query = this.sql.queryChunks.join('');
33
+ const type = inferSPARQLQueryType(query);
34
+ if (!type) {
35
+ throw new Error(`${methodName} could not infer SPARQL query type from raw AST input`);
36
+ }
37
+ return { type, query, prefixes: {} };
38
+ }
39
+ const converter = this.session.getDialect().getSPARQLConverter?.();
40
+ if (!converter) {
41
+ throw new Error(`${methodName} requires dialect SPARQL converter support`);
42
+ }
43
+ return converter.convertInsert(this.toIR());
44
+ }
45
+ toSPARQL() {
46
+ return this.buildSPARQLQuery('toSPARQL()');
47
+ }
48
+ toSparql() {
49
+ return this.toSPARQL();
50
+ }
24
51
  async execute() {
25
52
  if (this.sql) {
53
+ if (this.returningFields) {
54
+ throw new Error('returning() is not supported for raw SQL insert in Solid dialect');
55
+ }
26
56
  return await this.session.executeSql(this.sql, this.table);
27
57
  }
28
58
  else if (this.insertValues) {
29
59
  const rows = this.getRowsWithDefaults();
60
+ const subjects = this.returningFields ? this.getSubjectUris(rows) : [];
30
61
  const operation = {
31
62
  type: 'insert',
32
63
  table: this.table,
@@ -37,9 +68,11 @@ export class InsertQueryBuilder {
37
68
  }
38
69
  };
39
70
  const results = await this.session.execute(operation);
40
- // Call afterInsert hooks
41
- await this.runAfterInsertHooks(results);
42
- return results;
71
+ const finalResults = this.returningFields
72
+ ? await this.fetchReturningRowsBySubjects(subjects)
73
+ : results;
74
+ await this.runAfterInsertHooks(finalResults);
75
+ return finalResults;
43
76
  }
44
77
  else {
45
78
  throw new Error('No values specified for INSERT query');
@@ -48,6 +81,20 @@ export class InsertQueryBuilder {
48
81
  then(onfulfilled, onrejected) {
49
82
  return this.execute().then(onfulfilled, onrejected);
50
83
  }
84
+ async fetchReturningRowsBySubjects(subjects) {
85
+ if (subjects.length === 0) {
86
+ return [];
87
+ }
88
+ const rows = await this.session.select().from(this.table).whereByIri(subjects);
89
+ return projectReturningRows(orderRowsBySubjects(rows, subjects), this.returningFields);
90
+ }
91
+ getSubjectUris(rows) {
92
+ const resolver = this.session.getDialect().getUriResolver?.();
93
+ if (!resolver) {
94
+ throw new Error('returning() requires dialect URI resolver support');
95
+ }
96
+ return rows.map((row) => generateSubjectUri(row, this.table, resolver));
97
+ }
51
98
  /**
52
99
  * Run afterInsert hooks for all inserted records.
53
100
  */
@@ -56,20 +103,17 @@ export class InsertQueryBuilder {
56
103
  if (!hooks?.afterInsert) {
57
104
  return;
58
105
  }
59
- // Build hook context
60
106
  const ctx = this.buildHookContext();
61
107
  if (!ctx) {
62
108
  console.warn('[InsertQueryBuilder] Cannot run hooks: missing session info');
63
109
  return;
64
110
  }
65
- // Run hook for each inserted record
66
111
  for (const record of results) {
67
112
  try {
68
113
  await hooks.afterInsert(ctx, record);
69
114
  }
70
115
  catch (error) {
71
116
  console.error('[InsertQueryBuilder] afterInsert hook failed:', error);
72
- // Don't throw - the insert succeeded, just the hook failed
73
117
  }
74
118
  }
75
119
  }
@@ -1 +1 @@
1
- {"version":3,"file":"insert-query-builder.js","sourceRoot":"","sources":["../../../../src/core/query-builders/insert-query-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"insert-query-builder.js","sourceRoot":"","sources":["../../../../src/core/query-builders/insert-query-builder.ts"],"names":[],"mappings":"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"}
@@ -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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"}