tspace-mysql 1.9.0 → 1.9.1

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 (108) hide show
  1. package/README.md +4357 -133
  2. package/dist/lib/config/index.d.ts +2 -2
  3. package/dist/lib/config/index.js +24 -16
  4. package/dist/lib/config/index.js.map +1 -1
  5. package/dist/lib/constants/index.d.ts +10 -1
  6. package/dist/lib/constants/index.js +11 -2
  7. package/dist/lib/constants/index.js.map +1 -1
  8. package/dist/lib/core/Abstracts/AbstractBuilder.d.ts +11 -7
  9. package/dist/lib/core/Abstracts/AbstractBuilder.js +11 -13
  10. package/dist/lib/core/Abstracts/AbstractBuilder.js.map +1 -1
  11. package/dist/lib/core/Abstracts/AbstractDB.d.ts +4 -1
  12. package/dist/lib/core/Abstracts/AbstractDB.js.map +1 -1
  13. package/dist/lib/core/Abstracts/AbstractView.js.map +1 -1
  14. package/dist/lib/core/Blueprint.d.ts +30 -10
  15. package/dist/lib/core/Blueprint.js +39 -14
  16. package/dist/lib/core/Blueprint.js.map +1 -1
  17. package/dist/lib/core/Builder.d.ts +263 -9
  18. package/dist/lib/core/Builder.js +610 -347
  19. package/dist/lib/core/Builder.js.map +1 -1
  20. package/dist/lib/core/Cache/DBCache.js +19 -20
  21. package/dist/lib/core/Cache/DBCache.js.map +1 -1
  22. package/dist/lib/core/Cache/MemoryCache.js +3 -3
  23. package/dist/lib/core/Cache/MemoryCache.js.map +1 -1
  24. package/dist/lib/core/Cache/RedisCache.js +27 -17
  25. package/dist/lib/core/Cache/RedisCache.js.map +1 -1
  26. package/dist/lib/core/Cache/index.js +5 -4
  27. package/dist/lib/core/Cache/index.js.map +1 -1
  28. package/dist/lib/core/Contracts/AlterTable.d.ts +152 -0
  29. package/dist/lib/core/Contracts/AlterTable.js +243 -0
  30. package/dist/lib/core/Contracts/AlterTable.js.map +1 -0
  31. package/dist/lib/core/Contracts/Audit.js +2 -5
  32. package/dist/lib/core/Contracts/Audit.js.map +1 -1
  33. package/dist/lib/core/DB.d.ts +101 -9
  34. package/dist/lib/core/DB.js +168 -29
  35. package/dist/lib/core/DB.js.map +1 -1
  36. package/dist/lib/core/Decorator.d.ts +144 -16
  37. package/dist/lib/core/Decorator.js +156 -14
  38. package/dist/lib/core/Decorator.js.map +1 -1
  39. package/dist/lib/core/Driver/index.d.ts +43 -9
  40. package/dist/lib/core/Driver/index.js +9 -7
  41. package/dist/lib/core/Driver/index.js.map +1 -1
  42. package/dist/lib/core/Driver/mariadb/MariadbDriver.js +74 -27
  43. package/dist/lib/core/Driver/mariadb/MariadbDriver.js.map +1 -1
  44. package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.d.ts +45 -9
  45. package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.js +165 -21
  46. package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.js.map +1 -1
  47. package/dist/lib/core/Driver/mongodb/MongodbDriver.d.ts +24 -0
  48. package/dist/lib/core/Driver/mongodb/MongodbDriver.js +255 -0
  49. package/dist/lib/core/Driver/mongodb/MongodbDriver.js.map +1 -0
  50. package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.d.ts +141 -0
  51. package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.js +563 -0
  52. package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.js.map +1 -0
  53. package/dist/lib/core/Driver/mysql/MysqlDriver.js +105 -95
  54. package/dist/lib/core/Driver/mysql/MysqlDriver.js.map +1 -1
  55. package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.d.ts +45 -9
  56. package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.js +165 -21
  57. package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.js.map +1 -1
  58. package/dist/lib/core/Driver/postgres/PostgresDriver.js +97 -72
  59. package/dist/lib/core/Driver/postgres/PostgresDriver.js.map +1 -1
  60. package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.d.ts +50 -9
  61. package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.js +296 -41
  62. package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.js.map +1 -1
  63. package/dist/lib/core/Driver/sqlite/SqliteDriver.d.ts +20 -0
  64. package/dist/lib/core/Driver/sqlite/SqliteDriver.js +192 -0
  65. package/dist/lib/core/Driver/sqlite/SqliteDriver.js.map +1 -0
  66. package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.d.ts +144 -0
  67. package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.js +689 -0
  68. package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.js.map +1 -0
  69. package/dist/lib/core/JoinModel.js +2 -2
  70. package/dist/lib/core/JoinModel.js.map +1 -1
  71. package/dist/lib/core/Meta.d.ts +17 -11
  72. package/dist/lib/core/Meta.js +25 -19
  73. package/dist/lib/core/Meta.js.map +1 -1
  74. package/dist/lib/core/Model.d.ts +450 -108
  75. package/dist/lib/core/Model.js +1031 -587
  76. package/dist/lib/core/Model.js.map +1 -1
  77. package/dist/lib/{tools/index.d.ts → core/Package.d.ts} +11 -3
  78. package/dist/lib/{tools/index.js → core/Package.js} +20 -7
  79. package/dist/lib/core/Package.js.map +1 -0
  80. package/dist/lib/core/Pool.js +42 -30
  81. package/dist/lib/core/Pool.js.map +1 -1
  82. package/dist/lib/core/Queue.d.ts +240 -0
  83. package/dist/lib/core/Queue.js +686 -0
  84. package/dist/lib/core/Queue.js.map +1 -0
  85. package/dist/lib/core/RelationManager.js +27 -25
  86. package/dist/lib/core/RelationManager.js.map +1 -1
  87. package/dist/lib/core/Repository.d.ts +73 -207
  88. package/dist/lib/core/Repository.js +120 -235
  89. package/dist/lib/core/Repository.js.map +1 -1
  90. package/dist/lib/core/Schema.d.ts +218 -0
  91. package/dist/lib/core/Schema.js +370 -65
  92. package/dist/lib/core/Schema.js.map +1 -1
  93. package/dist/lib/core/StateManager.d.ts +25 -12
  94. package/dist/lib/core/StateManager.js +10 -5
  95. package/dist/lib/core/StateManager.js.map +1 -1
  96. package/dist/lib/core/UtilityTypes.d.ts +85 -56
  97. package/dist/lib/core/UtilityTypes.js.map +1 -1
  98. package/dist/lib/core/index.d.ts +4 -0
  99. package/dist/lib/core/index.js +6 -2
  100. package/dist/lib/core/index.js.map +1 -1
  101. package/dist/lib/types/decorator/index.d.ts +1 -1
  102. package/dist/lib/types/index.d.ts +69 -22
  103. package/dist/lib/types/repository/index.d.ts +68 -37
  104. package/dist/lib/utils/index.d.ts +11 -1
  105. package/dist/lib/utils/index.js +58 -2
  106. package/dist/lib/utils/index.js.map +1 -1
  107. package/package.json +14 -6
  108. package/dist/lib/tools/index.js.map +0 -1
@@ -0,0 +1,563 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MongodbQueryBuilder = void 0;
4
+ const __1 = require("..");
5
+ class MongodbQueryBuilder extends __1.QueryBuilder {
6
+ constructor(state) {
7
+ super(state);
8
+ }
9
+ select = () => {
10
+ let PIPELINE = [];
11
+ if (this.$state.get('SELECT')?.length &&
12
+ !this.$state.get('SELECT').some(v => v === '*')) {
13
+ const parseSelect = (arr) => {
14
+ const result = {};
15
+ for (const str of arr) {
16
+ const match = str.match(/`[^`]+`\.`([^`]+)`/);
17
+ if (!match)
18
+ continue;
19
+ const key = match[1];
20
+ result[key] = true;
21
+ }
22
+ return result;
23
+ };
24
+ const project = parseSelect(this.$state.get('SELECT'));
25
+ if (Object.keys(project).length) {
26
+ PIPELINE.push({
27
+ $project: project
28
+ });
29
+ }
30
+ }
31
+ if (this.$state.get('JOIN')?.length) {
32
+ const parseJoin = (join) => {
33
+ const type = /LEFT JOIN/i.test(join) ? "LEFT" :
34
+ /RIGHT JOIN/i.test(join) ? "RIGHT" :
35
+ "INNER";
36
+ const regex = /(INNER|LEFT|RIGHT)\s+JOIN\s+`(\w+)`\s+ON\s+`(\w+)`\.`(\w+)`\s*=\s*`(\w+)`\.`(\w+)`/i;
37
+ const match = join.match(regex);
38
+ if (!match)
39
+ return null;
40
+ const [, , from, localTable, localField, foreignTable, foreignField] = match;
41
+ return {
42
+ type,
43
+ from,
44
+ localField,
45
+ foreignField,
46
+ as: from
47
+ };
48
+ };
49
+ const joins = this.$state.get('JOIN');
50
+ for (const join of joins) {
51
+ const parsed = parseJoin(join);
52
+ if (!parsed)
53
+ continue;
54
+ if (parsed.type === "RIGHT") {
55
+ throw new Error("RIGHT JOIN is not supported in MongoDB aggregation pipeline.");
56
+ }
57
+ PIPELINE.push({
58
+ $lookup: {
59
+ from: parsed.from,
60
+ localField: parsed.localField,
61
+ foreignField: parsed.foreignField,
62
+ as: parsed.as
63
+ }
64
+ });
65
+ PIPELINE.push({
66
+ $unwind: {
67
+ path: `$${parsed.as}`,
68
+ preserveNullAndEmptyArrays: parsed.type === "INNER" ? false : true
69
+ }
70
+ });
71
+ }
72
+ }
73
+ if (this.$state.get('WHERE')?.length) {
74
+ PIPELINE.push({
75
+ $match: this._parseWheres(this.$state.get('WHERE'))
76
+ });
77
+ }
78
+ if (this.$state.get('SELECT')?.length &&
79
+ !this.$state.get('SELECT').some(v => v === '*')) {
80
+ const aggregate = this.$state.get('SELECT')
81
+ .map(col => {
82
+ const match = col.match(/\b(COUNT|AVG|SUM|MAX|MIN)\s*\((.*?)\)\s+AS\s+`?(\w+)`?/i);
83
+ if (!match)
84
+ return null;
85
+ return {
86
+ fn: match[1].toUpperCase(),
87
+ field: String(match[2].match(/`[^`]+`\.`([^`]+)`/)?.[1] ?? ''),
88
+ as: match[3]
89
+ };
90
+ })
91
+ .find(Boolean);
92
+ if (aggregate) {
93
+ switch (aggregate.fn) {
94
+ case 'COUNT':
95
+ PIPELINE.push({
96
+ $count: aggregate.as
97
+ });
98
+ break;
99
+ case 'SUM':
100
+ PIPELINE.push({
101
+ $group: {
102
+ _id: null,
103
+ [aggregate.as]: { $sum: `$${aggregate.field}` }
104
+ }
105
+ });
106
+ break;
107
+ case 'AVG':
108
+ PIPELINE.push({
109
+ $group: {
110
+ _id: null,
111
+ [aggregate.as]: { $avg: `$${aggregate.field}` }
112
+ }
113
+ });
114
+ break;
115
+ case 'MAX':
116
+ PIPELINE.push({
117
+ $group: {
118
+ _id: null,
119
+ [aggregate.as]: { $max: `$${aggregate.field}` }
120
+ }
121
+ });
122
+ break;
123
+ case 'MIN':
124
+ PIPELINE.push({
125
+ $group: {
126
+ _id: null,
127
+ [aggregate.as]: { $min: `$${aggregate.field}` }
128
+ }
129
+ });
130
+ break;
131
+ }
132
+ }
133
+ }
134
+ if (this.$state.get('ORDER_BY').length) {
135
+ PIPELINE.push({
136
+ $sort: this.$state.get('ORDER_BY')
137
+ });
138
+ }
139
+ if (this.$state.get('OFFSET')) {
140
+ PIPELINE.push({
141
+ $skip: this.$state.get('OFFSET')
142
+ });
143
+ }
144
+ if (this.$state.get('LIMIT')) {
145
+ PIPELINE.push({
146
+ $limit: this.$state.get('LIMIT')
147
+ });
148
+ }
149
+ const collection = this.$state.get('TABLE_NAME')?.replace(/\`/g, "");
150
+ const pipeline = `db.${collection}.aggregate(${JSON.stringify(PIPELINE)}).toArray()`;
151
+ return pipeline;
152
+ };
153
+ insert() {
154
+ const query = this.$state.get("INSERT");
155
+ if (!query)
156
+ return '';
157
+ const parseInsert = (input) => {
158
+ const normalizeColumn = (col) => col.replace(/`/g, '').split('.').pop() || '';
159
+ const splitValues = (str) => {
160
+ const result = [];
161
+ let current = '';
162
+ let inQuote = false;
163
+ for (let i = 0; i < str.length; i++) {
164
+ const char = str[i];
165
+ if (char === "'") {
166
+ inQuote = !inQuote;
167
+ continue;
168
+ }
169
+ if (char === ',' && !inQuote) {
170
+ result.push(current.trim());
171
+ current = '';
172
+ continue;
173
+ }
174
+ current += char;
175
+ }
176
+ if (current)
177
+ result.push(current.trim());
178
+ return result;
179
+ };
180
+ const parseValue = (val) => {
181
+ const v = val.trim();
182
+ if (!isNaN(Number(v)))
183
+ return Number(v);
184
+ if (v.toLowerCase() === 'true')
185
+ return true;
186
+ if (v.toLowerCase() === 'false')
187
+ return false;
188
+ if (v.toLowerCase() === 'null')
189
+ return null;
190
+ return v;
191
+ };
192
+ const columns = input.columns.map(normalizeColumn);
193
+ return input.values.map(row => {
194
+ const values = splitValues(row).map(parseValue);
195
+ const obj = {
196
+ "_id": this._objectId()
197
+ };
198
+ columns.forEach((col, i) => {
199
+ obj[col] = values[i];
200
+ });
201
+ return obj;
202
+ });
203
+ };
204
+ const collection = this.$state.get('TABLE_NAME')?.replace(/\`/g, "");
205
+ return `db.${collection}.insertMany(${JSON.stringify(parseInsert(query))})`;
206
+ }
207
+ update() {
208
+ const query = this.$state.get("UPDATE");
209
+ if (!query || !query.length)
210
+ return '';
211
+ const parseValue = (val) => {
212
+ const v = val.trim().replace(/^'|'$/g, '');
213
+ if (!isNaN(Number(v)))
214
+ return Number(v);
215
+ if (v.toLowerCase() === 'true')
216
+ return true;
217
+ if (v.toLowerCase() === 'false')
218
+ return false;
219
+ if (v.toLowerCase() === 'null')
220
+ return null;
221
+ return v;
222
+ };
223
+ const parseSet = (input) => {
224
+ const result = {};
225
+ input.forEach(pair => {
226
+ const [key, value] = pair.split('=');
227
+ const k = key.replace(/`/g, '').split('.').pop()?.trim() || '';
228
+ result[k] = parseValue(value);
229
+ });
230
+ return result;
231
+ };
232
+ const collection = this.$state.get('TABLE_NAME')?.replace(/`/g, "");
233
+ const update = {
234
+ $set: parseSet(query)
235
+ };
236
+ const filter = this._parseWheres(this.$state.get('WHERE'));
237
+ return `db.${collection}.updateMany(${JSON.stringify(filter)}, ${JSON.stringify(update)})`;
238
+ }
239
+ remove() {
240
+ const isDelete = this.$state.get("DELETE");
241
+ if (!isDelete) {
242
+ throw new Error("Bad query builder: DELETE state not enabled. Please check your query configuration.");
243
+ }
244
+ const collection = this.$state
245
+ .get("TABLE_NAME")
246
+ ?.replace(/`/g, "");
247
+ const filter = this._parseWheres(this.$state.get('WHERE'));
248
+ return `db.${collection}.deleteMany(${JSON.stringify(filter)})`;
249
+ }
250
+ any() {
251
+ if (this.$state.get("INSERT"))
252
+ return this.insert();
253
+ if (this.$state.get("UPDATE"))
254
+ return this.update();
255
+ if (this.$state.get("DELETE"))
256
+ return this.remove();
257
+ return this.select();
258
+ }
259
+ getColumns({ database, table }) {
260
+ throw new Error("Method not implemented.");
261
+ return '';
262
+ }
263
+ getSchema({ database, table }) {
264
+ throw new Error("Method not implemented.");
265
+ return '';
266
+ }
267
+ getTables(database) {
268
+ throw new Error("Method not implemented.");
269
+ return '';
270
+ }
271
+ hasTable({ database, table }) {
272
+ throw new Error("Method not implemented.");
273
+ return '';
274
+ }
275
+ createDatabase(database) {
276
+ throw new Error("Method not implemented.");
277
+ return '';
278
+ }
279
+ createTable({ database, table, schema, }) {
280
+ throw new Error("Method not implemented.");
281
+ return '';
282
+ }
283
+ addColumn({ table, column, type, attributes, after, }) {
284
+ throw new Error("Method not implemented.");
285
+ return '';
286
+ }
287
+ changeColumn({ table, column, type, attributes, }) {
288
+ throw new Error("Method not implemented.");
289
+ return '';
290
+ }
291
+ getChildFKs({ database, table }) {
292
+ throw new Error("Method not implemented.");
293
+ return '';
294
+ }
295
+ getFKs({ database, table }) {
296
+ throw new Error("Method not implemented.");
297
+ return '';
298
+ }
299
+ hasFK({ database, table, constraint, }) {
300
+ throw new Error("Method not implemented.");
301
+ return '';
302
+ }
303
+ addFK({ table, tableRef, key, constraint, foreign, }) {
304
+ throw new Error("Method not implemented.");
305
+ return '';
306
+ }
307
+ dropFK({ table, constraint, }) {
308
+ throw new Error("Method not implemented.");
309
+ return '';
310
+ }
311
+ getIndexes({ database, table }) {
312
+ throw new Error("Method not implemented.");
313
+ return '';
314
+ }
315
+ hasIndex({ database, table, name, }) {
316
+ throw new Error("Method not implemented.");
317
+ return '';
318
+ }
319
+ addIndex({ table, name, columns, }) {
320
+ throw new Error("Method not implemented.");
321
+ return '';
322
+ }
323
+ dropIndex({ table, name, }) {
324
+ throw new Error("Method not implemented.");
325
+ return '';
326
+ }
327
+ hasUnique({ database, table, name, }) {
328
+ throw new Error("Method not implemented.");
329
+ return '';
330
+ }
331
+ addUnique({ table, name, columns }) {
332
+ throw new Error("Method not implemented.");
333
+ return '';
334
+ }
335
+ dropUnique({ table, name, }) {
336
+ throw new Error("Method not implemented.");
337
+ return '';
338
+ }
339
+ hasPrimaryKey({ database, table, }) {
340
+ throw new Error("Method not implemented.");
341
+ return '';
342
+ }
343
+ addPrimaryKey({ table, columns, }) {
344
+ throw new Error("Method not implemented.");
345
+ return '';
346
+ }
347
+ dropPrimaryKey({ table }) {
348
+ throw new Error("Method not implemented.");
349
+ return '';
350
+ }
351
+ getDatabase(database) {
352
+ throw new Error("Method not implemented.");
353
+ return '';
354
+ }
355
+ dropDatabase(database) {
356
+ throw new Error("Method not implemented.");
357
+ return '';
358
+ }
359
+ dropView(view) {
360
+ throw new Error("Method not implemented.");
361
+ return '';
362
+ }
363
+ dropTable(table) {
364
+ const sql = [
365
+ `${this.$constants("DROP_TABLE")}`,
366
+ `\`${table.replace(/`/g, "")}\``
367
+ ].join(" ");
368
+ return this.format(sql);
369
+ }
370
+ truncate(table) {
371
+ return `db.${table}.deleteMany({})`;
372
+ }
373
+ sleep(second) {
374
+ throw new Error("Method not implemented.");
375
+ return '';
376
+ }
377
+ format(pipeline) {
378
+ if (typeof pipeline === "string")
379
+ pipeline = [pipeline];
380
+ return pipeline
381
+ .filter((s) => s !== "" || s == null)
382
+ .join(" ")
383
+ .replace(/\s+/g, " ");
384
+ }
385
+ getActiveConnections() {
386
+ throw new Error("Method not implemented.");
387
+ return '';
388
+ }
389
+ getMaxConnections() {
390
+ throw new Error("Method not implemented.");
391
+ return '';
392
+ }
393
+ bindJoin(values) {
394
+ return "";
395
+ }
396
+ bindWhere(values) {
397
+ return "";
398
+ }
399
+ bindOrderBy(values) {
400
+ return ``;
401
+ }
402
+ bindGroupBy(values) {
403
+ return ``;
404
+ }
405
+ bindSelect(values, { distinct } = {}) {
406
+ return ``;
407
+ }
408
+ bindFrom({ from, alias, rawAlias, }) {
409
+ return ``;
410
+ }
411
+ bindLimit(limit) {
412
+ return ``;
413
+ }
414
+ bindOffset(offset) {
415
+ return ``;
416
+ }
417
+ bindHaving(having) {
418
+ return ``;
419
+ }
420
+ bindRowLevelLock(mode) {
421
+ return '';
422
+ }
423
+ _objectId() {
424
+ const timestamp = Math.floor(Date.now() / 1000)
425
+ .toString(16)
426
+ .padStart(8, '0');
427
+ const random = Array.from({ length: 10 }, () => Math.floor(Math.random() * 16).toString(16)).join('');
428
+ const counter = Math.floor(Math.random() * 0xffffff)
429
+ .toString(16)
430
+ .padStart(6, '0');
431
+ return timestamp + random + counter;
432
+ }
433
+ ;
434
+ _parseWheres = (wheres = []) => {
435
+ const normalizeColumn = (column = '') => {
436
+ const clean = column.replace(/`/g, '');
437
+ return clean.split('.').pop() || '';
438
+ };
439
+ const parseValue = (value) => {
440
+ if (Array.isArray(value))
441
+ return value.map(parseValue);
442
+ if (typeof value === 'string') {
443
+ const trimmed = value.trim();
444
+ const unquoted = trimmed.replace(/^'+|'+$/g, '');
445
+ if (!isNaN(Number(unquoted)))
446
+ return Number(unquoted);
447
+ if (unquoted.toLowerCase() === 'true')
448
+ return true;
449
+ if (unquoted.toLowerCase() === 'false')
450
+ return false;
451
+ return unquoted;
452
+ }
453
+ return value;
454
+ };
455
+ const likeToRegex = (value) => {
456
+ const v = parseValue(value);
457
+ return '^' + v.replace(/%/g, '.*').replace(/_/g, '.') + '$';
458
+ };
459
+ const buildCondition = (w) => {
460
+ const field = normalizeColumn(w.column ?? '');
461
+ const op = (w.operator || '=').toUpperCase();
462
+ const val = w.value;
463
+ const baseCondition = (() => {
464
+ switch (op) {
465
+ case '=':
466
+ return { [field]: parseValue(val) };
467
+ case '!=':
468
+ case '<>':
469
+ return { [field]: { $ne: parseValue(val) } };
470
+ case '>':
471
+ return { [field]: { $gt: parseValue(val) } };
472
+ case '>=':
473
+ return { [field]: { $gte: parseValue(val) } };
474
+ case '<':
475
+ return { [field]: { $lt: parseValue(val) } };
476
+ case '<=':
477
+ return { [field]: { $lte: parseValue(val) } };
478
+ case 'IN':
479
+ return { [field]: { $in: (val || []).map(parseValue) } };
480
+ case 'NOT IN':
481
+ return { [field]: { $nin: (val || []).map(parseValue) } };
482
+ case 'IS NULL':
483
+ return { [field]: null };
484
+ case 'IS NOT NULL':
485
+ return { [field]: { $ne: null } };
486
+ case 'BETWEEN':
487
+ if (!Array.isArray(val))
488
+ return {};
489
+ return {
490
+ [field]: {
491
+ $gte: parseValue(val[0]),
492
+ $lte: parseValue(val[1])
493
+ }
494
+ };
495
+ case 'LIKE':
496
+ return {
497
+ [field]: {
498
+ $regex: likeToRegex(val),
499
+ $options: 'i'
500
+ }
501
+ };
502
+ case 'NOT LIKE':
503
+ return {
504
+ [field]: {
505
+ $not: {
506
+ $regex: likeToRegex(val),
507
+ $options: 'i'
508
+ }
509
+ }
510
+ };
511
+ case 'EXISTS':
512
+ return { [field]: { $exists: Boolean(val) } };
513
+ default:
514
+ throw new Error(`Unsupported operator: ${op}`);
515
+ }
516
+ })();
517
+ if (w.nested && Array.isArray(w.nested)) {
518
+ const nestedGroup = buildGroup(w.nested);
519
+ const conditionType = (w.condition || this.$constants('AND')).toUpperCase();
520
+ if (conditionType === this.$constants('OR')) {
521
+ return {
522
+ $or: [baseCondition, nestedGroup]
523
+ };
524
+ }
525
+ return {
526
+ $and: [baseCondition, nestedGroup]
527
+ };
528
+ }
529
+ return baseCondition;
530
+ };
531
+ const buildGroup = (lists = []) => {
532
+ if (!lists.length)
533
+ return {};
534
+ const groups = [];
535
+ for (const w of lists) {
536
+ const cond = buildCondition(w);
537
+ if (!cond)
538
+ continue;
539
+ const type = (w.condition || this.$constants('AND')).toUpperCase();
540
+ if (groups.length === 0) {
541
+ groups.push(cond);
542
+ continue;
543
+ }
544
+ if (type === this.$constants('OR')) {
545
+ const last = groups.pop();
546
+ groups.push({
547
+ $or: [last, cond]
548
+ });
549
+ }
550
+ else {
551
+ const last = groups.pop();
552
+ groups.push({
553
+ $and: [last, cond]
554
+ });
555
+ }
556
+ }
557
+ return groups[0] || {};
558
+ };
559
+ return buildGroup(wheres);
560
+ };
561
+ }
562
+ exports.MongodbQueryBuilder = MongodbQueryBuilder;
563
+ //# sourceMappingURL=MongodbQueryBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MongodbQueryBuilder.js","sourceRoot":"","sources":["../../../../../src/lib/core/Driver/mongodb/MongodbQueryBuilder.ts"],"names":[],"mappings":";;;AAAA,0BAAkC;AAQlC,MAAa,mBAAoB,SAAQ,gBAAY;IACnD,YAAY,KAAmB;QAC7B,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IACM,MAAM,GAAG,GAAG,EAAE;QAEnB,IAAI,QAAQ,GAAW,EAAE,CAAA;QAEzB,IACE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM;YACjC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAC/C,CAAC;YAED,MAAM,WAAW,GAAG,CAAC,GAAa,EAAE,EAAE;gBACpC,MAAM,MAAM,GAA4B,EAAE,CAAC;gBAE3C,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;oBACtB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;oBAC9C,IAAI,CAAC,KAAK;wBAAE,SAAS;oBAErB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBAErB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBACrB,CAAC;gBAED,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC;YAEF,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;YAEtD,IAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC/B,QAAQ,CAAC,IAAI,CAAC;oBACZ,QAAQ,EAAG,OAAO;iBACnB,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,IAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;YAEnC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE;gBACjC,MAAM,IAAI,GACR,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;oBAClC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBACpC,OAAO,CAAA;gBAET,MAAM,KAAK,GACT,qFAAqF,CAAA;gBAEvF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;gBAC/B,IAAI,CAAC,KAAK;oBAAE,OAAO,IAAI,CAAA;gBAEvB,MAAM,CAAC,EAAE,AAAD,EAAG,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC,GAAG,KAAK,CAAA;gBAE5E,OAAO;oBACL,IAAI;oBACJ,IAAI;oBACJ,UAAU;oBACV,YAAY;oBACZ,EAAE,EAAE,IAAI;iBACT,CAAA;YACH,CAAC,CAAA;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAErC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;gBAE/B,IAAI,CAAC,MAAM;oBAAE,SAAQ;gBAErB,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;gBAClF,CAAC;gBAED,QAAQ,CAAC,IAAI,CAAC;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,UAAU,EAAE,MAAM,CAAC,UAAU;wBAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;wBACjC,EAAE,EAAE,MAAM,CAAC,EAAE;qBACd;iBACF,CAAC,CAAA;gBAEF,QAAQ,CAAC,IAAI,CAAC;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,IAAI,MAAM,CAAC,EAAE,EAAE;wBACrB,0BAA0B,EAAE,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;qBACnE;iBACF,CAAC,CAAA;YAEJ,CAAC;QAEH,CAAC;QAED,IAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;YACpC,QAAQ,CAAC,IAAI,CAAC;gBACZ,MAAM,EAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;aACrD,CAAC,CAAA;QACJ,CAAC;QAED,IACE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM;YACjC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAC/C,CAAC;YAGD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;iBAC1C,GAAG,CAAC,GAAG,CAAC,EAAE;gBACT,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;gBACnF,IAAI,CAAC,KAAK;oBAAE,OAAO,IAAI,CAAC;gBAExB,OAAO;oBACL,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;oBAC1B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC9D,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;iBACb,CAAC;YACJ,CAAC,CAAC;iBACD,IAAI,CAAC,OAAO,CAAC,CAAC;YAEf,IAAI,SAAS,EAAE,CAAC;gBACd,QAAQ,SAAS,CAAC,EAAE,EAAE,CAAC;oBAErB,KAAK,OAAO;wBACV,QAAQ,CAAC,IAAI,CAAC;4BACZ,MAAM,EAAE,SAAS,CAAC,EAAE;yBACrB,CAAC,CAAC;wBACH,MAAM;oBAER,KAAK,KAAK;wBACR,QAAQ,CAAC,IAAI,CAAC;4BACZ,MAAM,EAAE;gCACN,GAAG,EAAE,IAAI;gCACT,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE;6BAChD;yBACF,CAAC,CAAC;wBACH,MAAM;oBAER,KAAK,KAAK;wBACR,QAAQ,CAAC,IAAI,CAAC;4BACZ,MAAM,EAAE;gCACN,GAAG,EAAE,IAAI;gCACT,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE;6BAChD;yBACF,CAAC,CAAC;wBACH,MAAM;oBAER,KAAK,KAAK;wBACR,QAAQ,CAAC,IAAI,CAAC;4BACZ,MAAM,EAAE;gCACN,GAAG,EAAE,IAAI;gCACT,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE;6BAChD;yBACF,CAAC,CAAC;wBACH,MAAM;oBAER,KAAK,KAAK;wBACR,QAAQ,CAAC,IAAI,CAAC;4BACZ,MAAM,EAAE;gCACN,GAAG,EAAE,IAAI;gCACT,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE;6BAChD;yBACF,CAAC,CAAC;wBACH,MAAM;gBACV,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC;YACpC,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;aACpC,CAAC,CAAA;QACN,CAAC;QAED,IAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3B,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;aAClC,CAAC,CAAA;QACN,CAAC;QAED,IAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,QAAQ,CAAC,IAAI,CAAC;gBACZ,MAAM,EAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;aAClC,CAAC,CAAA;QACN,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAErE,MAAM,QAAQ,GAAG,MAAM,UAAU,cAAc,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC;QAErF,OAAO,QAAQ,CAAC;IAElB,CAAC,CAAC;IAEK,MAAM;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAExC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QAEtB,MAAM,WAAW,GAAG,CAAC,KAGpB,EAAE,EAAE;YAEH,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,EAAE,CACtC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YAE/C,MAAM,WAAW,GAAG,CAAC,GAAW,EAAY,EAAE;gBAC5C,MAAM,MAAM,GAAa,EAAE,CAAC;gBAC5B,IAAI,OAAO,GAAG,EAAE,CAAC;gBACjB,IAAI,OAAO,GAAG,KAAK,CAAC;gBAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACpC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;oBAEpB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;wBACjB,OAAO,GAAG,CAAC,OAAO,CAAC;wBACnB,SAAS;oBACX,CAAC;oBAED,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;wBAC7B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;wBAC5B,OAAO,GAAG,EAAE,CAAC;wBACb,SAAS;oBACX,CAAC;oBAED,OAAO,IAAI,IAAI,CAAC;gBAClB,CAAC;gBAED,IAAI,OAAO;oBAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;gBAEzC,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC;YAEF,MAAM,UAAU,GAAG,CAAC,GAAW,EAAO,EAAE;gBACtC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;gBAErB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;gBAExC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM;oBAAE,OAAO,IAAI,CAAC;gBAC5C,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO;oBAAE,OAAO,KAAK,CAAC;gBAC9C,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM;oBAAE,OAAO,IAAI,CAAC;gBAE5C,OAAO,CAAC,CAAC;YACX,CAAC,CAAC;YAEF,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAEnD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBAC5B,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAEhD,MAAM,GAAG,GAAwB;oBAC/B,KAAK,EAAG,IAAI,CAAC,SAAS,EAAE;iBACzB,CAAC;gBAEF,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;oBACzB,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAA;gBAEF,OAAO,GAAG,CAAC;YACb,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAErE,OAAO,MAAM,UAAU,eAAe,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;IAC9E,CAAC;IAEM,MAAM;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAa,CAAC;QACpD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAEvC,MAAM,UAAU,GAAG,CAAC,GAAW,EAAO,EAAE;YACtC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAE3C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM;gBAAE,OAAO,IAAI,CAAC;YAC5C,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO;gBAAE,OAAO,KAAK,CAAC;YAC9C,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM;gBAAE,OAAO,IAAI,CAAC;YAE5C,OAAO,CAAC,CAAC;QACX,CAAC,CAAC;QAEF,MAAM,QAAQ,GAAG,CAAC,KAAe,EAAE,EAAE;YACnC,MAAM,MAAM,GAAwB,EAAE,CAAC;YAEvC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACnB,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAErC,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBAC/D,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAEpE,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC;SACtB,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;QAE1D,OAAO,MAAM,UAAU,eAAe,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;IAC7F,CAAC;IAEM,MAAM;QACX,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE3C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM;aAC3B,GAAG,CAAC,YAAY,CAAC;YAClB,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAEtB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;QAE1D,OAAO,MAAM,UAAU,eAAe,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAA;IACjE,CAAC;IAEM,GAAG;QACR,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACpD,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACpD,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACpD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAEM,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAuC;QACxE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAuC;QACvE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,SAAS,CAAC,QAAgB;QAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAuC;QACtE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,cAAc,CAAC,QAAgB;QACpC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,WAAW,CAAC,EACjB,QAAQ,EACR,KAAK,EACL,MAAM,GAKP;QACC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,SAAS,CAAC,EACf,KAAK,EACL,MAAM,EACN,IAAI,EACJ,UAAU,EACV,KAAK,GAON;QACC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,YAAY,CAAC,EAClB,KAAK,EACL,MAAM,EACN,IAAI,EACJ,UAAU,GAMX;QACC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,WAAW,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAuC;QACzE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAuC;QACpE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,KAAK,CAAC,EACX,QAAQ,EACR,KAAK,EACL,UAAU,GAKX;QACC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,KAAK,CAAC,EACX,KAAK,EACL,QAAQ,EACR,GAAG,EACH,UAAU,EACV,OAAO,GAWR;QACC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,MAAM,CAAC,EACZ,KAAK,EACL,UAAU,GAIX;QACC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAuC;QACxE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,QAAQ,CAAC,EACd,QAAQ,EACR,KAAK,EACL,IAAI,GAKL;QACC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,QAAQ,CAAC,EACd,KAAK,EACL,IAAI,EACJ,OAAO,GAKR;QAEC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,SAAS,CAAC,EACf,KAAK,EACL,IAAI,GAIL;QAEC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,SAAS,CAAC,EACf,QAAQ,EACR,KAAK,EACL,IAAI,GAKL;QAEC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,SAAS,CAAC,EACf,KAAK,EACL,IAAI,EACJ,OAAO,EAKR;QAEC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,UAAU,CAAC,EAChB,KAAK,EACL,IAAI,GAIL;QAEC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,aAAa,CAAC,EACnB,QAAQ,EACR,KAAK,GAIN;QAEC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,aAAa,CAAC,EACnB,KAAK,EACL,OAAO,GAIR;QAEC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,cAAc,CAAC,EAAE,KAAK,EAE5B;QAEC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,WAAW,CAAC,QAAgB;QACjC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,YAAY,CAAC,QAAgB;QAClC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,QAAQ,CAAC,IAAY;QAC1B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,SAAS,CAAC,KAAa;QAC5B,MAAM,GAAG,GAAW;YAClB,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;YAClC,KAAK,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI;SACjC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEX,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAEM,QAAQ,CAAC,KAAa;QAC3B,OAAO,MAAM,KAAK,iBAAiB,CAAC;IACtC,CAAC;IAEM,KAAK,CAAC,MAAc;QACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,MAAM,CAAC,QAAoC;QAChD,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAAE,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;QAExD,OAAO,QAAQ;aACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;aACpC,IAAI,CAAC,GAAG,CAAC;aACT,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;IAEM,oBAAoB;QACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,iBAAiB;QACtB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAES,QAAQ,CAAC,MAAgB;QACjC,OAAO,EAAE,CAAC;IACZ,CAAC;IAES,SAAS,CAAC,MAAa;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;IAES,WAAW,CAAC,MAAgB;QAEpC,OAAO,EAAE,CAAC;IACZ,CAAC;IAES,WAAW,CAAC,MAAgB;QACpC,OAAO,EAAE,CAAC;IACZ,CAAC;IAES,UAAU,CAClB,MAAgB,EAChB,EAAE,QAAQ,KAA4B,EAAE;QAIxC,OAAO,EAAE,CAAC;IACZ,CAAC;IAES,QAAQ,CAAC,EACjB,IAAI,EACJ,KAAK,EACL,QAAQ,GAKT;QAEC,OAAO,EAAE,CAAC;IACZ,CAAC;IAES,SAAS,CAAC,KAA6B;QAE/C,OAAO,EAAE,CAAC;IACZ,CAAC;IAES,UAAU,CAAC,MAA8B;QACjD,OAAO,EAAE,CAAC;IACZ,CAAC;IAES,UAAU,CAAC,MAAqB;QACxC,OAAO,EAAE,CAAC;IACZ,CAAC;IAES,gBAAgB,CAAC,IAAuC;QAEhE,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,SAAS;QAEb,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;aAC9C,QAAQ,CAAC,EAAE,CAAC;aACZ,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAElB,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAC7C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAC5C,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEX,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC;aACnD,QAAQ,CAAC,EAAE,CAAC;aACZ,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAElB,OAAO,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IACxC,CAAC;IAAA,CAAC;IAEM,YAAY,GAAG,CAAC,SAAiC,EAAE,EAAE,EAAE;QAE7D,MAAM,eAAe,GAAG,CAAC,SAAiB,EAAE,EAAE,EAAE;YAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACvC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QACtC,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,CAAC,KAAU,EAAO,EAAE;YACrC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAEvD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBAEjD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACtD,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,MAAM;oBAAE,OAAO,IAAI,CAAC;gBACnD,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,OAAO;oBAAE,OAAO,KAAK,CAAC;gBAErD,OAAO,QAAQ,CAAC;YAClB,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,CAAC,KAAU,EAAU,EAAE;YACzC,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAC5B,OAAO,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;QAC9D,CAAC,CAAC;QAEF,MAAM,cAAc,GAAG,CAAC,CAAuB,EAAO,EAAE;YACtD,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YAC9C,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC;YAEpB,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE;gBAC1B,QAAQ,EAAE,EAAE,CAAC;oBACX,KAAK,GAAG;wBACN,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAEtC,KAAK,IAAI,CAAC;oBACV,KAAK,IAAI;wBACP,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;oBAE/C,KAAK,GAAG;wBACN,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;oBAE/C,KAAK,IAAI;wBACP,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;oBAEhD,KAAK,GAAG;wBACN,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;oBAE/C,KAAK,IAAI;wBACP,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;oBAEhD,KAAK,IAAI;wBACP,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;oBAE3D,KAAK,QAAQ;wBACX,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;oBAE5D,KAAK,SAAS;wBACZ,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;oBAE3B,KAAK,aAAa;wBAChB,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;oBAEpC,KAAK,SAAS;wBACZ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;4BAAE,OAAO,EAAE,CAAC;wBACnC,OAAO;4BACL,CAAC,KAAK,CAAC,EAAE;gCACP,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gCACxB,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;6BACzB;yBACF,CAAC;oBAEJ,KAAK,MAAM;wBACT,OAAO;4BACL,CAAC,KAAK,CAAC,EAAE;gCACP,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC;gCACxB,QAAQ,EAAE,GAAG;6BACd;yBACF,CAAC;oBAEJ,KAAK,UAAU;wBACb,OAAO;4BACL,CAAC,KAAK,CAAC,EAAE;gCACP,IAAI,EAAE;oCACJ,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC;oCACxB,QAAQ,EAAE,GAAG;iCACd;6BACF;yBACF,CAAC;oBAEJ,KAAK,QAAQ;wBACX,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;oBAEhD;wBACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;YAEL,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxC,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAEzC,MAAM,aAAa,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBAE5E,IAAI,aAAa,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5C,OAAO;wBACL,GAAG,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC;qBAClC,CAAC;gBACJ,CAAC;gBAED,OAAO;oBACL,IAAI,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC;iBACnC,CAAC;YACJ,CAAC;YAED,OAAO,aAAa,CAAC;QACvB,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,CAAC,QAAgC,EAAE,EAAO,EAAE;YAC7D,IAAI,CAAC,KAAK,CAAC,MAAM;gBAAE,OAAO,EAAE,CAAC;YAE7B,MAAM,MAAM,GAAU,EAAE,CAAC;YAEzB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBAE/B,IAAI,CAAC,IAAI;oBAAE,SAAS;gBAEpB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBAEnE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAClB,SAAS;gBACX,CAAC;gBAED,IAAI,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACnC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;oBAE1B,MAAM,CAAC,IAAI,CAAC;wBACV,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;qBAClB,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;oBAC1B,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;qBACnB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC,CAAC;QAEF,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,CAAC;CAEH;AAv1BD,kDAu1BC"}