@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,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":"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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":"AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,cAAc,EAAW,MAAM,qBAAqB,CAAC;AAG9D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EACQ,cAAc,EAAoD,gBAAgB,EAChG,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,qBAAa,kBAAkB,CAAC,MAAM,SAAS,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC;IA2BvD,OAAO,EAAE,gBAAgB;IA1B5C,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,wBAAwB;IAE7C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7C,OAAO,CAAC,aAAa,CAAC,CAAiB;IAChC,GAAG,CAAC,EAAE,GAAG,CAAC;IACjB,OAAO,CAAC,KAAK,CAML;IACR,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,cAAc,CAA4D;IAClF,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,cAAc,CAAyB;IAC/C,OAAO,CAAC,eAAe,CAAC,CAAiB;gBAEtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,cAAc;IAMrE,IAAI,CAAC,UAAU,SAAS,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,GAAG,kBAAkB,CAAC,UAAU,CAAC;IAMzF,OAAO,CAAC,MAAM,EAAE,cAAc;IAK9B,OAAO,CAAC,iBAAiB;IAIzB;;;;;OAKG;IACH,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,cAAc;IAmB5D;;;;OAIG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;IAKjC,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,6BAA6B;IAgCrC,OAAO,CAAC,yBAAyB;IAqBjC,QAAQ,CAAC,UAAU,SAAS,QAAQ,CAAC,GAAG,CAAC,EACvC,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,GAAG,GACb,kBAAkB,CAAC,MAAM,CAAC;IAI7B,SAAS,CAAC,UAAU,SAAS,QAAQ,CAAC,GAAG,CAAC,EACxC,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,GAAG,GACb,kBAAkB,CAAC,MAAM,CAAC;IAI7B,SAAS,CAAC,UAAU,SAAS,QAAQ,CAAC,GAAG,CAAC,EACxC,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,GAAG,GACb,kBAAkB,CAAC,MAAM,CAAC;IAI7B,QAAQ,CAAC,UAAU,SAAS,QAAQ,CAAC,GAAG,CAAC,EACvC,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,GAAG,GACb,kBAAkB,CAAC,MAAM,CAAC;IAI7B,SAAS,CAAC,UAAU,SAAS,QAAQ,CAAC,GAAG,CAAC,EACxC,KAAK,EAAE,UAAU,GAChB,kBAAkB,CAAC,MAAM,CAAC;IAI7B,OAAO,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC;IAM7E,MAAM,CACJ,SAAS,EAAE,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,KAAK,cAAc,CAAC,GACjG,kBAAkB,CAAC,MAAM,CAAC;IAO7B,OAAO,CAAC,0BAA0B;IAUlC,OAAO,CAAC,OAAO;IAyBf,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,qBAAqB;IA0B7B,OAAO,CAAC,8BAA8B;IA8BtC,OAAO,CAAC,2BAA2B;IAoBnC,OAAO,CAAC,sBAAsB;IA0B9B,OAAO,CAAC,0BAA0B;IASlC,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,wBAAwB;IAQzB,IAAI,IAAI,eAAe;IAK9B,OAAO,CAAC,cAAc;IAwCtB,KAAK,CAAC,KAAK,EAAE,MAAM;IAQnB,MAAM,CAAC,KAAK,EAAE,MAAM;IAQpB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,aAAa,GAAG,MAAM,GAAG,iBAAiB,GAAG,KAAK,GAAG,MAAM,CAAC;IA+BnF,QAAQ,CAAC,MAAM,UAAO;IAMtB,OAAO,CAAC,gBAAgB;IA8BxB,QAAQ;IAIR,QAAQ;IAIF,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;IAyHlD,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,iBAAiB;IAoCzB,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,uBAAuB;IA2B/B,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,6BAA6B;IA0BrC,OAAO,CAAC,2BAA2B;IAkBnC,OAAO,CAAC,0BAA0B;IAqBlC,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,qBAAqB;IAyC7B,OAAO,CAAC,yBAAyB;IAwBjC,OAAO,CAAC,qBAAqB;IAqB7B,OAAO,CAAC,oBAAoB;IA6B5B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,uBAAuB;IAwB/B,OAAO,CAAC,yBAAyB;IAsCjC,OAAO,CAAC,qBAAqB;IAsB7B,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,0BAA0B;IAUlC,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,qBAAqB;IAuB7B,OAAO,CAAC,iBAAiB;YAqCX,oBAAoB;IA2HlC;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IA4C3B,OAAO,CAAC,2BAA2B;IAkBnC,OAAO,CAAC,0BAA0B;IASlC,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,2BAA2B;IAWnC,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,kBAAkB;IAyE1B,OAAO,CAAC,oBAAoB;IAkB5B,OAAO,CAAC,oBAAoB;YAUd,iBAAiB;YAWjB,aAAa;IAoD3B,OAAO,CAAC,iBAAiB;IA+BzB,OAAO,CAAC,iBAAiB;IAoEzB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,uBAAuB;IAqC/B,OAAO,CAAC,sBAAsB;IAwB9B,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,4BAA4B;IAiBpC,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,oBAAoB;IAoC5B,OAAO,CAAC,gBAAgB;IAOlB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAYzF,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;CAGhC"}