@undefineds.co/drizzle-solid 0.2.11 → 0.2.13

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 (150) hide show
  1. package/README.md +255 -439
  2. package/dist/core/expressions.d.ts +4 -0
  3. package/dist/core/expressions.d.ts.map +1 -1
  4. package/dist/core/expressions.js +8 -1
  5. package/dist/core/expressions.js.map +1 -1
  6. package/dist/core/order-by.d.ts +9 -0
  7. package/dist/core/order-by.d.ts.map +1 -0
  8. package/dist/core/order-by.js +20 -0
  9. package/dist/core/order-by.js.map +1 -0
  10. package/dist/core/pod-database.d.ts +6 -0
  11. package/dist/core/pod-database.d.ts.map +1 -1
  12. package/dist/core/pod-database.js +121 -31
  13. package/dist/core/pod-database.js.map +1 -1
  14. package/dist/core/pod-dialect.d.ts +10 -1
  15. package/dist/core/pod-dialect.d.ts.map +1 -1
  16. package/dist/core/pod-dialect.js +81 -2
  17. package/dist/core/pod-dialect.js.map +1 -1
  18. package/dist/core/query-builders/delete-query-builder.d.ts +7 -12
  19. package/dist/core/query-builders/delete-query-builder.d.ts.map +1 -1
  20. package/dist/core/query-builders/delete-query-builder.js +47 -20
  21. package/dist/core/query-builders/delete-query-builder.js.map +1 -1
  22. package/dist/core/query-builders/helpers.d.ts +7 -0
  23. package/dist/core/query-builders/helpers.d.ts.map +1 -1
  24. package/dist/core/query-builders/helpers.js +169 -0
  25. package/dist/core/query-builders/helpers.js.map +1 -1
  26. package/dist/core/query-builders/insert-query-builder.d.ts +10 -3
  27. package/dist/core/query-builders/insert-query-builder.d.ts.map +1 -1
  28. package/dist/core/query-builders/insert-query-builder.js +50 -6
  29. package/dist/core/query-builders/insert-query-builder.js.map +1 -1
  30. package/dist/core/query-builders/select-query-builder.d.ts +29 -1
  31. package/dist/core/query-builders/select-query-builder.d.ts.map +1 -1
  32. package/dist/core/query-builders/select-query-builder.js +405 -85
  33. package/dist/core/query-builders/select-query-builder.js.map +1 -1
  34. package/dist/core/query-builders/types.d.ts +5 -3
  35. package/dist/core/query-builders/types.d.ts.map +1 -1
  36. package/dist/core/query-builders/update-query-builder.d.ts +8 -12
  37. package/dist/core/query-builders/update-query-builder.d.ts.map +1 -1
  38. package/dist/core/query-builders/update-query-builder.js +63 -21
  39. package/dist/core/query-builders/update-query-builder.js.map +1 -1
  40. package/dist/core/query-conditions.d.ts +17 -16
  41. package/dist/core/query-conditions.d.ts.map +1 -1
  42. package/dist/core/query-conditions.js.map +1 -1
  43. package/dist/core/resource-resolver/base-resolver.d.ts +8 -4
  44. package/dist/core/resource-resolver/base-resolver.d.ts.map +1 -1
  45. package/dist/core/resource-resolver/base-resolver.js +39 -36
  46. package/dist/core/resource-resolver/base-resolver.js.map +1 -1
  47. package/dist/core/resource-resolver/document-resolver.d.ts.map +1 -1
  48. package/dist/core/resource-resolver/document-resolver.js +75 -78
  49. package/dist/core/resource-resolver/document-resolver.js.map +1 -1
  50. package/dist/core/schema/pod-table.d.ts +1 -0
  51. package/dist/core/schema/pod-table.d.ts.map +1 -1
  52. package/dist/core/schema/pod-table.js +67 -0
  53. package/dist/core/schema/pod-table.js.map +1 -1
  54. package/dist/core/select-plan.d.ts +6 -3
  55. package/dist/core/select-plan.d.ts.map +1 -1
  56. package/dist/core/sparql/builder/expression-builder.d.ts +10 -0
  57. package/dist/core/sparql/builder/expression-builder.d.ts.map +1 -1
  58. package/dist/core/sparql/builder/expression-builder.js +27 -4
  59. package/dist/core/sparql/builder/expression-builder.js.map +1 -1
  60. package/dist/core/sparql/builder/select-builder.d.ts +9 -0
  61. package/dist/core/sparql/builder/select-builder.d.ts.map +1 -1
  62. package/dist/core/sparql/builder/select-builder.js +147 -2
  63. package/dist/core/sparql/builder/select-builder.js.map +1 -1
  64. package/dist/core/utils/debug-logger.d.ts +19 -0
  65. package/dist/core/utils/debug-logger.d.ts.map +1 -0
  66. package/dist/core/utils/debug-logger.js +59 -0
  67. package/dist/core/utils/debug-logger.js.map +1 -0
  68. package/dist/driver.d.ts +4 -0
  69. package/dist/driver.d.ts.map +1 -1
  70. package/dist/driver.js +1 -0
  71. package/dist/driver.js.map +1 -1
  72. package/dist/esm/core/expressions.d.ts +4 -0
  73. package/dist/esm/core/expressions.d.ts.map +1 -1
  74. package/dist/esm/core/expressions.js +6 -0
  75. package/dist/esm/core/expressions.js.map +1 -1
  76. package/dist/esm/core/order-by.d.ts +9 -0
  77. package/dist/esm/core/order-by.d.ts.map +1 -0
  78. package/dist/esm/core/order-by.js +15 -0
  79. package/dist/esm/core/order-by.js.map +1 -0
  80. package/dist/esm/core/pod-database.d.ts +6 -0
  81. package/dist/esm/core/pod-database.d.ts.map +1 -1
  82. package/dist/esm/core/pod-database.js +122 -32
  83. package/dist/esm/core/pod-database.js.map +1 -1
  84. package/dist/esm/core/pod-dialect.d.ts +10 -1
  85. package/dist/esm/core/pod-dialect.d.ts.map +1 -1
  86. package/dist/esm/core/pod-dialect.js +81 -2
  87. package/dist/esm/core/pod-dialect.js.map +1 -1
  88. package/dist/esm/core/query-builders/delete-query-builder.d.ts +7 -12
  89. package/dist/esm/core/query-builders/delete-query-builder.d.ts.map +1 -1
  90. package/dist/esm/core/query-builders/delete-query-builder.js +48 -21
  91. package/dist/esm/core/query-builders/delete-query-builder.js.map +1 -1
  92. package/dist/esm/core/query-builders/helpers.d.ts +7 -0
  93. package/dist/esm/core/query-builders/helpers.d.ts.map +1 -1
  94. package/dist/esm/core/query-builders/helpers.js +164 -0
  95. package/dist/esm/core/query-builders/helpers.js.map +1 -1
  96. package/dist/esm/core/query-builders/insert-query-builder.d.ts +10 -3
  97. package/dist/esm/core/query-builders/insert-query-builder.d.ts.map +1 -1
  98. package/dist/esm/core/query-builders/insert-query-builder.js +50 -6
  99. package/dist/esm/core/query-builders/insert-query-builder.js.map +1 -1
  100. package/dist/esm/core/query-builders/select-query-builder.d.ts +29 -1
  101. package/dist/esm/core/query-builders/select-query-builder.d.ts.map +1 -1
  102. package/dist/esm/core/query-builders/select-query-builder.js +407 -87
  103. package/dist/esm/core/query-builders/select-query-builder.js.map +1 -1
  104. package/dist/esm/core/query-builders/types.d.ts +5 -3
  105. package/dist/esm/core/query-builders/types.d.ts.map +1 -1
  106. package/dist/esm/core/query-builders/update-query-builder.d.ts +8 -12
  107. package/dist/esm/core/query-builders/update-query-builder.d.ts.map +1 -1
  108. package/dist/esm/core/query-builders/update-query-builder.js +64 -22
  109. package/dist/esm/core/query-builders/update-query-builder.js.map +1 -1
  110. package/dist/esm/core/query-conditions.d.ts +17 -16
  111. package/dist/esm/core/query-conditions.d.ts.map +1 -1
  112. package/dist/esm/core/query-conditions.js.map +1 -1
  113. package/dist/esm/core/resource-resolver/base-resolver.d.ts +8 -4
  114. package/dist/esm/core/resource-resolver/base-resolver.d.ts.map +1 -1
  115. package/dist/esm/core/resource-resolver/base-resolver.js +39 -36
  116. package/dist/esm/core/resource-resolver/base-resolver.js.map +1 -1
  117. package/dist/esm/core/resource-resolver/document-resolver.d.ts.map +1 -1
  118. package/dist/esm/core/resource-resolver/document-resolver.js +75 -78
  119. package/dist/esm/core/resource-resolver/document-resolver.js.map +1 -1
  120. package/dist/esm/core/schema/pod-table.d.ts +1 -0
  121. package/dist/esm/core/schema/pod-table.d.ts.map +1 -1
  122. package/dist/esm/core/schema/pod-table.js +66 -0
  123. package/dist/esm/core/schema/pod-table.js.map +1 -1
  124. package/dist/esm/core/select-plan.d.ts +6 -3
  125. package/dist/esm/core/select-plan.d.ts.map +1 -1
  126. package/dist/esm/core/sparql/builder/expression-builder.d.ts +10 -0
  127. package/dist/esm/core/sparql/builder/expression-builder.d.ts.map +1 -1
  128. package/dist/esm/core/sparql/builder/expression-builder.js +27 -4
  129. package/dist/esm/core/sparql/builder/expression-builder.js.map +1 -1
  130. package/dist/esm/core/sparql/builder/select-builder.d.ts +9 -0
  131. package/dist/esm/core/sparql/builder/select-builder.d.ts.map +1 -1
  132. package/dist/esm/core/sparql/builder/select-builder.js +148 -3
  133. package/dist/esm/core/sparql/builder/select-builder.js.map +1 -1
  134. package/dist/esm/core/utils/debug-logger.d.ts +19 -0
  135. package/dist/esm/core/utils/debug-logger.d.ts.map +1 -0
  136. package/dist/esm/core/utils/debug-logger.js +53 -0
  137. package/dist/esm/core/utils/debug-logger.js.map +1 -0
  138. package/dist/esm/driver.d.ts +4 -0
  139. package/dist/esm/driver.d.ts.map +1 -1
  140. package/dist/esm/driver.js +1 -0
  141. package/dist/esm/driver.js.map +1 -1
  142. package/dist/esm/index.d.ts +2 -1
  143. package/dist/esm/index.d.ts.map +1 -1
  144. package/dist/esm/index.js +3 -1
  145. package/dist/esm/index.js.map +1 -1
  146. package/dist/index.d.ts +2 -1
  147. package/dist/index.d.ts.map +1 -1
  148. package/dist/index.js +8 -2
  149. package/dist/index.js.map +1 -1
  150. package/package.json +17 -6
@@ -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;
@@ -87,8 +107,14 @@ export declare class SelectQueryBuilder<TTable extends PodTable<any> = PodTable<
87
107
  * 例如:http://pod/.data/chat/chat-123/index.ttl#this -> chat-123
88
108
  */
89
109
  private resolveReferenceIds;
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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"}