tspace-mysql 1.9.1 → 1.9.2
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.
- package/README.md +246 -23
- package/dist/lib/core/Abstracts/AbstractBuilder.d.ts +16 -16
- package/dist/lib/core/Abstracts/AbstractBuilder.js.map +1 -1
- package/dist/lib/core/Abstracts/AbstractDB.d.ts +1 -1
- package/dist/lib/core/Abstracts/AbstractModel.d.ts +7 -2
- package/dist/lib/core/Abstracts/AbstractModel.js.map +1 -1
- package/dist/lib/core/Blueprint.d.ts +14 -14
- package/dist/lib/core/Blueprint.js +2 -4
- package/dist/lib/core/Blueprint.js.map +1 -1
- package/dist/lib/core/Builder.d.ts +52 -34
- package/dist/lib/core/Builder.js +76 -44
- package/dist/lib/core/Builder.js.map +1 -1
- package/dist/lib/core/Cache/index.js +32 -13
- package/dist/lib/core/Cache/index.js.map +1 -1
- package/dist/lib/core/Contracts/Audit.d.ts +4 -4
- package/dist/lib/core/Contracts/Audit.js.map +1 -1
- package/dist/lib/core/Contracts/Logger.d.ts +3 -3
- package/dist/lib/core/Contracts/Logger.js.map +1 -1
- package/dist/lib/core/DB.d.ts +2 -2
- package/dist/lib/core/DB.js +6 -19
- package/dist/lib/core/DB.js.map +1 -1
- package/dist/lib/core/Driver/index.d.ts +7 -5
- package/dist/lib/core/Driver/index.js +4 -2
- package/dist/lib/core/Driver/index.js.map +1 -1
- package/dist/lib/core/Driver/mariadb/MariadbDriver.js +14 -6
- package/dist/lib/core/Driver/mariadb/MariadbDriver.js.map +1 -1
- package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.d.ts +3 -3
- package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.js +24 -7
- package/dist/lib/core/Driver/mariadb/MariadbQueryBuilder.js.map +1 -1
- package/dist/lib/core/Driver/mongodb/MongodbDriver.js +18 -12
- package/dist/lib/core/Driver/mongodb/MongodbDriver.js.map +1 -1
- package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.d.ts +3 -3
- package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.js +9 -1
- package/dist/lib/core/Driver/mongodb/MongodbQueryBuilder.js.map +1 -1
- package/dist/lib/core/Driver/mysql/MysqlDriver.js +15 -7
- package/dist/lib/core/Driver/mysql/MysqlDriver.js.map +1 -1
- package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.d.ts +3 -3
- package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.js +24 -7
- package/dist/lib/core/Driver/mysql/MysqlQueryBuilder.js.map +1 -1
- package/dist/lib/core/Driver/postgres/PostgresDriver.js +14 -6
- package/dist/lib/core/Driver/postgres/PostgresDriver.js.map +1 -1
- package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.d.ts +3 -3
- package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.js +22 -7
- package/dist/lib/core/Driver/postgres/PostgresQueryBuilder.js.map +1 -1
- package/dist/lib/core/Driver/sqlite/SqliteDriver.d.ts +1 -0
- package/dist/lib/core/Driver/sqlite/SqliteDriver.js +25 -4
- package/dist/lib/core/Driver/sqlite/SqliteDriver.js.map +1 -1
- package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.d.ts +2 -0
- package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.js +27 -21
- package/dist/lib/core/Driver/sqlite/SqliteQueryBuilder.js.map +1 -1
- package/dist/lib/core/Join.d.ts +63 -5
- package/dist/lib/core/Join.js +92 -15
- package/dist/lib/core/Join.js.map +1 -1
- package/dist/lib/core/JoinModel.d.ts +65 -9
- package/dist/lib/core/JoinModel.js +79 -50
- package/dist/lib/core/JoinModel.js.map +1 -1
- package/dist/lib/core/Meta.d.ts +7 -7
- package/dist/lib/core/Meta.js +10 -9
- package/dist/lib/core/Meta.js.map +1 -1
- package/dist/lib/core/Model.d.ts +225 -57
- package/dist/lib/core/Model.js +375 -89
- package/dist/lib/core/Model.js.map +1 -1
- package/dist/lib/core/Queue.d.ts +16 -7
- package/dist/lib/core/Queue.js +69 -29
- package/dist/lib/core/Queue.js.map +1 -1
- package/dist/lib/core/RelationManager.d.ts +4 -4
- package/dist/lib/core/RelationManager.js +141 -16
- package/dist/lib/core/RelationManager.js.map +1 -1
- package/dist/lib/core/Repository.d.ts +1 -1
- package/dist/lib/core/Repository.js +5 -1
- package/dist/lib/core/Repository.js.map +1 -1
- package/dist/lib/core/Schema.d.ts +13 -13
- package/dist/lib/core/Schema.js +12 -0
- package/dist/lib/core/Schema.js.map +1 -1
- package/dist/lib/core/StateManager.d.ts +6 -0
- package/dist/lib/core/StateManager.js +1 -0
- package/dist/lib/core/StateManager.js.map +1 -1
- package/dist/lib/core/UtilityTypes.d.ts +69 -74
- package/dist/lib/core/UtilityTypes.js.map +1 -1
- package/dist/lib/types/index.d.ts +52 -9
- package/dist/lib/utils/index.d.ts +2 -1
- package/dist/lib/utils/index.js +26 -3
- package/dist/lib/utils/index.js.map +1 -1
- package/package.json +1 -1
package/dist/lib/core/Queue.d.ts
CHANGED
|
@@ -22,17 +22,18 @@ declare const schema: {
|
|
|
22
22
|
id: Blueprint<number>;
|
|
23
23
|
uuid: Blueprint<string | null>;
|
|
24
24
|
name: Blueprint<string>;
|
|
25
|
-
status: Blueprint<"pending" | "active" | "completed" | "failed">;
|
|
26
|
-
priority: Blueprint<number
|
|
25
|
+
status: Blueprint<"pending" | "active" | "completed" | "failed" | null>;
|
|
26
|
+
priority: Blueprint<T.Default<number>>;
|
|
27
27
|
payload: Blueprint<string | null>;
|
|
28
28
|
result: Blueprint<string | null>;
|
|
29
29
|
error: Blueprint<string | null>;
|
|
30
30
|
metadata: Blueprint<string | null>;
|
|
31
|
-
attempts: Blueprint<number
|
|
32
|
-
max_attempts: Blueprint<number
|
|
31
|
+
attempts: Blueprint<T.Default<number>>;
|
|
32
|
+
max_attempts: Blueprint<T.Default<number>>;
|
|
33
|
+
delay_ms: Blueprint<T.Default<number>>;
|
|
33
34
|
locked_by: Blueprint<string | null>;
|
|
34
35
|
locked_at: Blueprint<string | Date | null>;
|
|
35
|
-
available_at: Blueprint<string | Date
|
|
36
|
+
available_at: Blueprint<NonNullable<string | Date>>;
|
|
36
37
|
completed_at: Blueprint<string | Date | null>;
|
|
37
38
|
created_at: Blueprint<string | Date | null>;
|
|
38
39
|
updated_at: Blueprint<string | Date | null>;
|
|
@@ -74,11 +75,11 @@ declare class Worker extends Model<TS> {
|
|
|
74
75
|
pending: number;
|
|
75
76
|
failed: number;
|
|
76
77
|
}[]>;
|
|
78
|
+
getJobs(name?: string): Promise<T.Result<Worker, unknown>[]>;
|
|
77
79
|
getNames(): Promise<any[]>;
|
|
78
80
|
add(name: string, payload: any, opts?: QueueAddOptions): Promise<void>;
|
|
79
81
|
process(name: string, handler: Handler, opts?: QueueProcessOptions): Promise<void>;
|
|
80
82
|
private _runJob;
|
|
81
|
-
private _waitForSafeConnections;
|
|
82
83
|
private _dequeueMany;
|
|
83
84
|
private _flushBuffer;
|
|
84
85
|
private _wakeWorker;
|
|
@@ -163,7 +164,7 @@ declare class Queue {
|
|
|
163
164
|
*
|
|
164
165
|
* @param {string} [name] - Optional queue name filter.
|
|
165
166
|
* @throws {Error} If Queue is not initialized.
|
|
166
|
-
* @returns {Promise<
|
|
167
|
+
* @returns {Promise<any>}
|
|
167
168
|
*/
|
|
168
169
|
static getJobStats(name?: string): Promise<{
|
|
169
170
|
completed: number;
|
|
@@ -171,6 +172,14 @@ declare class Queue {
|
|
|
171
172
|
pending: number;
|
|
172
173
|
failed: number;
|
|
173
174
|
}[]>;
|
|
175
|
+
/**
|
|
176
|
+
* The 'getJobs' method is used to Get jobs.
|
|
177
|
+
*
|
|
178
|
+
* @param {string} [name] - Optional queue name filter.
|
|
179
|
+
* @throws {Error} If Queue is not initialized.
|
|
180
|
+
* @returns {Promise<T.Result<Worker>[]>}
|
|
181
|
+
*/
|
|
182
|
+
static getJobs(name?: string): Promise<T.Result<Worker>[]>;
|
|
174
183
|
/**
|
|
175
184
|
* Get all unique queue names.
|
|
176
185
|
*
|
package/dist/lib/core/Queue.js
CHANGED
|
@@ -3,7 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Queue = void 0;
|
|
4
4
|
const Blueprint_1 = require("./Blueprint");
|
|
5
5
|
const DB_1 = require("./DB");
|
|
6
|
+
;
|
|
6
7
|
const Model_1 = require("./Model");
|
|
8
|
+
const Meta_1 = require("./Meta");
|
|
7
9
|
const QUEUE_STATUS = {
|
|
8
10
|
dispatch: 'Dispatch',
|
|
9
11
|
receive: 'Receive',
|
|
@@ -19,6 +21,12 @@ const QUEUE_STATUS = {
|
|
|
19
21
|
completed: 'Retry Completed',
|
|
20
22
|
}
|
|
21
23
|
};
|
|
24
|
+
const STATUS = {
|
|
25
|
+
'pending': 'pending',
|
|
26
|
+
'active': 'active',
|
|
27
|
+
'completed': 'completed',
|
|
28
|
+
'failed': 'failed'
|
|
29
|
+
};
|
|
22
30
|
const schema = {
|
|
23
31
|
id: Blueprint_1.Blueprint.int().primary().autoIncrement(),
|
|
24
32
|
uuid: Blueprint_1.Blueprint.varchar(36).null(),
|
|
@@ -27,14 +35,19 @@ const schema = {
|
|
|
27
35
|
.compositeIndex([
|
|
28
36
|
"status", "available_at", "priority", "id"
|
|
29
37
|
]),
|
|
30
|
-
status: Blueprint_1.Blueprint
|
|
31
|
-
|
|
38
|
+
status: Blueprint_1.Blueprint
|
|
39
|
+
.enum(...Object.values(STATUS))
|
|
40
|
+
.notNull()
|
|
41
|
+
.default(STATUS.pending)
|
|
42
|
+
.index(),
|
|
43
|
+
priority: Blueprint_1.Blueprint.int().default(0),
|
|
32
44
|
payload: Blueprint_1.Blueprint.mediumtext().null(),
|
|
33
45
|
result: Blueprint_1.Blueprint.text().null(),
|
|
34
46
|
error: Blueprint_1.Blueprint.text().null(),
|
|
35
47
|
metadata: Blueprint_1.Blueprint.text().null(),
|
|
36
|
-
attempts: Blueprint_1.Blueprint.int().
|
|
37
|
-
max_attempts: Blueprint_1.Blueprint.int().
|
|
48
|
+
attempts: Blueprint_1.Blueprint.int().default(0),
|
|
49
|
+
max_attempts: Blueprint_1.Blueprint.int().default(3),
|
|
50
|
+
delay_ms: Blueprint_1.Blueprint.int().default(0),
|
|
38
51
|
locked_by: Blueprint_1.Blueprint.text().null(),
|
|
39
52
|
locked_at: Blueprint_1.Blueprint.timestamp().null(),
|
|
40
53
|
available_at: Blueprint_1.Blueprint.timestamp().notNull(),
|
|
@@ -64,7 +77,7 @@ class Worker extends Model_1.Model {
|
|
|
64
77
|
this.useTable(this.$state.get("TABLE_JOB"));
|
|
65
78
|
}
|
|
66
79
|
async initialize(opts = {}) {
|
|
67
|
-
const driver =
|
|
80
|
+
const driver = DB_1.DB.driver();
|
|
68
81
|
if (driver === 'mongodb') {
|
|
69
82
|
throw new Error('Queue is not supported for MongoDB. Use a different driver or disable queue features.');
|
|
70
83
|
}
|
|
@@ -97,7 +110,7 @@ class Worker extends Model_1.Model {
|
|
|
97
110
|
this.STOPPING = true;
|
|
98
111
|
while (this.ACTIVE_JOBS > 0) {
|
|
99
112
|
if (this.INSPECT_EXEC) {
|
|
100
|
-
console.log(`\x1b[34mQueue:\x1b[0m
|
|
113
|
+
console.log(`\x1b[34mQueue:\x1b[0m Currently processing ${this.ACTIVE_JOBS} job(s)`);
|
|
101
114
|
}
|
|
102
115
|
await new Promise(r => setTimeout(r, 200));
|
|
103
116
|
}
|
|
@@ -112,7 +125,7 @@ class Worker extends Model_1.Model {
|
|
|
112
125
|
async getJobOverallStats(name) {
|
|
113
126
|
const where = (q) => {
|
|
114
127
|
if (name)
|
|
115
|
-
q.where('name', 'LIKE', `%${name}%`);
|
|
128
|
+
q.where('name', 'LIKE', `%${DB_1.DB.escape(name)}%`);
|
|
116
129
|
return q;
|
|
117
130
|
};
|
|
118
131
|
const completed = await where(new Worker()).where('status', 'completed').count();
|
|
@@ -132,7 +145,7 @@ class Worker extends Model_1.Model {
|
|
|
132
145
|
const rows = await new Worker()
|
|
133
146
|
.select('name', 'status')
|
|
134
147
|
.selectRaw('COUNT(1) AS total')
|
|
135
|
-
.when(name, (q) => q.where('name', 'LIKE', `%${name}%`))
|
|
148
|
+
.when(name, (q) => q.where('name', 'LIKE', `%${DB_1.DB.escape(name)}%`))
|
|
136
149
|
.groupBy('name', 'status')
|
|
137
150
|
.orderBy('name')
|
|
138
151
|
.get();
|
|
@@ -162,6 +175,12 @@ class Worker extends Model_1.Model {
|
|
|
162
175
|
}
|
|
163
176
|
return Array.from(map.values());
|
|
164
177
|
}
|
|
178
|
+
async getJobs(name) {
|
|
179
|
+
const jobs = await new Worker()
|
|
180
|
+
.when(name != null, (q) => q.where('name', 'LIKE', `%${DB_1.DB.escape(name)}%`))
|
|
181
|
+
.get();
|
|
182
|
+
return jobs;
|
|
183
|
+
}
|
|
165
184
|
async getNames() {
|
|
166
185
|
return await new Worker().select('name').toArray('name');
|
|
167
186
|
}
|
|
@@ -171,6 +190,7 @@ class Worker extends Model_1.Model {
|
|
|
171
190
|
name,
|
|
172
191
|
payload: payload == null ? null : this.safeJsonStringify(payload),
|
|
173
192
|
status: 'pending',
|
|
193
|
+
delay_ms: opts.delayMs ?? 0,
|
|
174
194
|
available_at: opts.delayMs ? new Date(Date.now() + opts.delayMs) : new Date(),
|
|
175
195
|
priority: opts.priority ?? 0,
|
|
176
196
|
attempts: 0,
|
|
@@ -247,6 +267,9 @@ class Worker extends Model_1.Model {
|
|
|
247
267
|
console.log(`\x1b[34mQueue:\x1b[0m \x1b[35m'${name}'\x1b[0m \x1b[38;2;77;215;240m${QUEUE_STATUS.processing}\x1b[0m job \x1b[38;5;208m${job.id}\x1b[0m`);
|
|
248
268
|
}
|
|
249
269
|
const startTime = +new Date();
|
|
270
|
+
if (job.__job.delay_ms) {
|
|
271
|
+
await new Promise(r => setTimeout(r, job.__job.delay_ms));
|
|
272
|
+
}
|
|
250
273
|
const result = await handler(job);
|
|
251
274
|
await new Worker()
|
|
252
275
|
.where('id', job.id)
|
|
@@ -336,37 +359,41 @@ class Worker extends Model_1.Model {
|
|
|
336
359
|
this.ACTIVE_JOBS--;
|
|
337
360
|
}
|
|
338
361
|
}
|
|
339
|
-
async _waitForSafeConnections(name) {
|
|
340
|
-
let activeConnections = 0;
|
|
341
|
-
// while (true) {
|
|
342
|
-
// activeConnections = await DB.getActiveConnections();
|
|
343
|
-
// if (activeConnections <= this.LIMIT_CONNECTIONS) {
|
|
344
|
-
// break;
|
|
345
|
-
// }
|
|
346
|
-
// if (this.INSPECT_EXEC) {
|
|
347
|
-
// console.log(`\x1b[34mQueue:\x1b[0m \x1b[35m'${name}'\x1b[0m \x1b[31m${QUEUE_STATUS.waiting}\x1b[0m DB connections high \x1b[33m (${activeConnections}/${this.LIMIT_CONNECTIONS})\x1b[0m`);
|
|
348
|
-
// }
|
|
349
|
-
// await new Promise(resolve => setTimeout(resolve, 1000 * 5));
|
|
350
|
-
// }
|
|
351
|
-
return;
|
|
352
|
-
}
|
|
353
362
|
async _dequeueMany(name, limit) {
|
|
354
363
|
if (this.STOPPING)
|
|
355
364
|
return [];
|
|
356
|
-
await this._waitForSafeConnections(name);
|
|
357
365
|
const findJobs = await new Worker()
|
|
358
366
|
.select('id')
|
|
359
367
|
.where('name', name)
|
|
360
|
-
.whereQuery(
|
|
361
|
-
return
|
|
362
|
-
.where('status', 'pending')
|
|
363
|
-
.
|
|
368
|
+
.whereQuery(query => {
|
|
369
|
+
return query
|
|
370
|
+
.where('status', '=', 'pending')
|
|
371
|
+
.when(DB_1.DB.driver() === 'mysql' || DB_1.DB.driver() === 'mariadb', (q) => {
|
|
372
|
+
return q.whereRaw(`DATE_SUB(
|
|
373
|
+
${(0, Meta_1.Meta)(Worker).columnRef('available_at')},
|
|
374
|
+
INTERVAL (${(0, Meta_1.Meta)(Worker).columnRef('delay_ms')} * 1000) MICROSECOND
|
|
375
|
+
) <= ?`, [`'${this.$utils.timestamp()}'`]);
|
|
376
|
+
})
|
|
377
|
+
.when(DB_1.DB.driver() === 'postgres', (q) => {
|
|
378
|
+
return q.whereRaw(`${(0, Meta_1.Meta)(Worker).columnRef('available_at')}
|
|
379
|
+
-
|
|
380
|
+
(${(0, Meta_1.Meta)(Worker).columnRef('delay_ms')} * INTERVAL '1 millisecond')
|
|
381
|
+
<= ?`, [`'${this.$utils.timestamp()}'`]);
|
|
382
|
+
})
|
|
383
|
+
.when(DB_1.DB.driver() === 'sqlite', (q) => {
|
|
384
|
+
return q.whereRaw(`datetime(
|
|
385
|
+
${(0, Meta_1.Meta)(Worker).columnRef('available_at')},
|
|
386
|
+
'-' || (${(0, Meta_1.Meta)(Worker).columnRef('delay_ms')} / 1000.0) || ' seconds'
|
|
387
|
+
) <= ?`, [`'${this.$utils.timestamp()}'`]);
|
|
388
|
+
})
|
|
364
389
|
.orWhereQuery((q) => {
|
|
365
390
|
return q
|
|
366
|
-
.where('status', 'active')
|
|
391
|
+
.where('status', '=', 'active')
|
|
367
392
|
.where('locked_at', '<', this.$utils.timestamp(new Date(Date.now() - 60 * 1000)));
|
|
368
393
|
});
|
|
369
394
|
})
|
|
395
|
+
.latest('priority')
|
|
396
|
+
.oldest('id')
|
|
370
397
|
.limit(limit)
|
|
371
398
|
.get();
|
|
372
399
|
if (!findJobs.length) {
|
|
@@ -586,7 +613,7 @@ class Queue {
|
|
|
586
613
|
*
|
|
587
614
|
* @param {string} [name] - Optional queue name filter.
|
|
588
615
|
* @throws {Error} If Queue is not initialized.
|
|
589
|
-
* @returns {Promise<
|
|
616
|
+
* @returns {Promise<any>}
|
|
590
617
|
*/
|
|
591
618
|
static async getJobStats(name) {
|
|
592
619
|
if (this.WORKER == null) {
|
|
@@ -594,6 +621,19 @@ class Queue {
|
|
|
594
621
|
}
|
|
595
622
|
return await this.WORKER.getJobStats(name);
|
|
596
623
|
}
|
|
624
|
+
/**
|
|
625
|
+
* The 'getJobs' method is used to Get jobs.
|
|
626
|
+
*
|
|
627
|
+
* @param {string} [name] - Optional queue name filter.
|
|
628
|
+
* @throws {Error} If Queue is not initialized.
|
|
629
|
+
* @returns {Promise<T.Result<Worker>[]>}
|
|
630
|
+
*/
|
|
631
|
+
static async getJobs(name) {
|
|
632
|
+
if (this.WORKER == null) {
|
|
633
|
+
throw new Error(this.MESSAGE.INIT_ERROR);
|
|
634
|
+
}
|
|
635
|
+
return await this.WORKER.getJobs(name);
|
|
636
|
+
}
|
|
597
637
|
/**
|
|
598
638
|
* Get all unique queue names.
|
|
599
639
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../../src/lib/core/Queue.ts"],"names":[],"mappings":";;;AACA,2CAA0C;AAC1C,6BAAmC;AACnC,mCAAsC;AAyCtC,MAAM,YAAY,GAAG;IACjB,QAAQ,EAAM,UAAU;IACxB,OAAO,EAAO,SAAS;IACvB,UAAU,EAAI,YAAY;IAC1B,SAAS,EAAK,WAAW;IACzB,IAAI,EAAU,MAAM;IACpB,MAAM,EAAQ,SAAS;IACvB,MAAM,EAAQ,QAAQ;IACtB,OAAO,EAAO,SAAS;IACvB,KAAK,EAAS;QACV,QAAQ,EAAI,UAAU;QACtB,MAAM,EAAM,cAAc;QAC1B,SAAS,EAAG,iBAAiB;KAChC;CACK,CAAC;AAEX,MAAM,MAAM,GAAG;IACX,EAAE,EAAM,qBAAS,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,aAAa,EAAE;IACjD,IAAI,EAAI,qBAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;IACpC,IAAI,EAAI,qBAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE;SACvC,KAAK,EAAE;SACP,cAAc,CAAC;QACZ,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI;KAC7C,CAAC;IAEF,MAAM,EAAG,qBAAS,CAAC,IAAI,CACnB,SAAS,EACT,QAAQ,EACR,WAAW,EACX,QAAQ,CACX,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE;IAEtC,QAAQ,EAAO,qBAAS,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,OAAO,EAAQ,qBAAS,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE;IAC5C,MAAM,EAAS,qBAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE;IACtC,KAAK,EAAU,qBAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE;IACtC,QAAQ,EAAO,qBAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE;IAEtC,QAAQ,EAAO,qBAAS,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,YAAY,EAAG,qBAAS,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEnD,SAAS,EAAM,qBAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE;IACtC,SAAS,EAAM,qBAAS,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE;IAE3C,YAAY,EAAG,qBAAS,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE;IAC9C,YAAY,EAAG,qBAAS,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE;IAC3C,UAAU,EAAK,qBAAS,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE;IAC3C,UAAU,EAAK,qBAAS,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE;CAC9C,CAAC;AAGF,MAAM,MAAO,SAAQ,aAAS;IAElB,QAAQ,GAAY,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,IAAI,SAAS,CAAC,CAAC;IAC/D,YAAY,GAAQ,KAAK,CAAC;IAC1B,QAAQ,GAAY,KAAK,CAAC;IAC1B,WAAW,GAAS,KAAK,CAAC;IAE1B,iBAAiB,GAAG,EAAE,CAAC;IACvB,gBAAgB,GAAI,EAAE,CAAC;IACvB,WAAW,GAAS,CAAC,CAAC;IACtB,UAAU,GAAU,IAAI,CAAC;IACzB,WAAW,GAAS,EAAE,CAAC;IAEvB,MAAM,GAAc;QACxB,IAAI,EAAG,EAAE;QACT,OAAO,EAAG,IAAI;KAIjB,CAAC;IAEM,YAAY,GAAO,IAAI,GAAG,EAM9B,CAAC;IAEK,IAAI;QACV,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IAChD,CAAC;IAEM,KAAK,CAAC,UAAU,CAAE,OAMrB,EAAE;QAEF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAE7B,IAAG,MAAM,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,uFAAuF,CAAC,CAAC;QAC7G,CAAC;QAED,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAG,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAEjE,IAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;QAC/E,CAAC;QAED,IAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QAED,IAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClC,CAAC;QAED,IAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACrB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC;QAChD,CAAC;QAED,IAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACvB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACnD,CAAC;aACI,CAAC;YACF,MAAM,cAAc,GAAG,MAAM,OAAE,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YAEtE,IAAI,CAAC,iBAAiB,GAAG,cAAc;gBACvC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;gBAC9C,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAC7B,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,QAAQ;QAEjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QAEpB,OAAO,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,oDAAoD,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;YACxF,CAAC;YAED,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QAC9C,CAAC;QAED,IAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAA;QAC9E,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,KAAK;QACd,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QACpC,OAAO;IACX,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,IAAa;QAEzC,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE;YACxB,IAAG,IAAI;gBAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAAC,MAAM,EAAC,IAAI,IAAI,GAAG,CAAC,CAAA;YAC5C,OAAO,CAAC,CAAC;QACb,CAAC,CAAA;QAED,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;QACjF,MAAM,MAAM,GAAM,MAAM,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9E,MAAM,OAAO,GAAK,MAAM,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;QAC/E,MAAM,MAAM,GAAM,MAAM,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9E,MAAM,KAAK,GAAO,MAAM,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QAEpD,OAAO;YACH,KAAK;YACL,SAAS;YACT,MAAM;YACN,OAAO;YACP,MAAM;SACT,CAAA;IACL,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,IAAa;QAElC,MAAM,IAAI,GAAG,MAAM,IAAI,MAAM,EAAE;aAC9B,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;aACxB,SAAS,CAAC,mBAAmB,CAAC;aAC9B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAG,IAAI,IAAI,GAAG,CAAC,CAAC;aACxD,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC;aACzB,OAAO,CAAC,MAAM,CAAC;aACf,GAAG,EAAE,CAAA;QAEN,MAAM,GAAG,GAAG,IAAI,GAAG,EAMf,CAAC;QAEL,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,GAAK,GAAG,CAAC,IAAI,CAAC;YACxB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;YAC1B,MAAM,KAAK,GAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAEjC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjB,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE;oBACd,IAAI;oBACJ,SAAS,EAAE,CAAC;oBACZ,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,CAAC;oBACV,MAAM,EAAE,CAAC;iBACR,CAAC,CAAC;YACP,CAAC;YAED,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;YAE7B,IAAI,MAAM,KAAK,WAAW;gBAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;iBAE/C,IAAI,MAAM,KAAK,QAAQ;gBAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;iBAE9C,IAAI,MAAM,KAAK,SAAS;gBAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;iBAEhD,IAAI,MAAM,KAAK,QAAQ;gBAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;QAEvD,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,CAAC;IAEM,KAAK,CAAC,QAAQ;QACjB,OAAO,MAAM,IAAI,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,OAAY,EAAE,OAAwB,EAAE;QACnE,OAAO,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAElD,MAAM,OAAO,GAAG;gBACZ,IAAI;gBACJ,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;gBACjE,MAAM,EAAE,SAAS;gBACjB,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;gBAC7E,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC;gBAC5B,QAAQ,EAAE,CAAC;gBACX,YAAY,EAAE,IAAI,CAAC,WAAW,IAAI,CAAC;gBACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;aACrD,CAAC;YAEtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAEpD,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC7C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;iBAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC9B,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACtF,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,KAAK,CAAC,OAAO,CAChB,IAAgB,EAChB,OAAiB,EACjB,OAAgC;QAC5B,QAAQ,EAAG,KAAK;QAChB,WAAW,EAAG,CAAC;KAClB;QAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAG;YACzB,OAAO,EAAQ,OAAO;YACtB,IAAI,EAAW,CAAC;YAChB,QAAQ,EAAO,KAAK;YACpB,OAAO,EAAQ,CAAC;YAChB,IAAI,EAAW;gBACX,WAAW,EAAG,IAAI,CAAC,WAAY;gBAC/B,QAAQ,EAAM,IAAI,CAAC,QAAS;aAC/B;SACJ,CAAC,CAAA;QAEF,IAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,oBAAoB,YAAY,CAAC,QAAQ,SAAS,CAAC,CAAA;QACzG,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;YAExB,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAE1B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAE1C,IAAI,CAAC,KAAK;gBAAE,OAAO;YAEnB,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;gBACnC,KAAK,CAAC,OAAO,EAAE,CAAA;gBACf,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC;gBACnD,OAAO;YACX,CAAC;YAED,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC;YAExD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAErD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,KAAK,CAAC,IAAI,EAAE,CAAA;gBAEZ,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACtC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAA;oBAErB,IAAG,IAAI,CAAC,YAAY,EAAE,CAAC;wBACnB,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,oBAAoB,YAAY,CAAC,IAAI,6BAA6B,CAAC,CAAA;oBACzH,CAAC;oBAED,OAAM;gBACV,CAAC;gBAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;gBAChD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;gBAEnC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAS,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC;gBACxD,OAAO;YACX,CAAC;YAED,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;YAEf,MAAM,OAAO,CAAC,GAAG,CACb,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAClD,CAAC;YAEF,YAAY,CAAC,QAAQ,CAAC,CAAC;YAEvB,OAAO;QACX,CAAC,CAAA;QAED,OAAO,QAAQ,EAAE,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,OAAO,CAAE,IAAY,EAAE,GAAgB,EAAE,KAAY;QAC/D,KAAK,CAAC,OAAO,EAAE,CAAA;QACf,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAE9B,IAAI,CAAC;YAED,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,iCAAiC,YAAY,CAAC,UAAU,6BAA6B,GAAG,CAAC,EAAE,SAAS,CAAC,CAAA;YAC3J,CAAC;YAED,MAAM,SAAS,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;YAE9B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;YAElC,MAAM,IAAI,MAAM,EAAE;iBACjB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;iBACnB,MAAM,CAAC;gBACJ,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;gBACtC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;aACxC,CAAC;iBACD,IAAI,EAAE;iBACN,IAAI,EAAE,CAAA;YAEP,MAAM,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;YAE5B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,oBAAoB,YAAY,CAAC,SAAS,6BAA6B,GAAG,CAAC,EAAE,YAAY,OAAO,GAAG,SAAS,KAAK,CAAC,CAAC;YACzK,CAAC;QAEL,CAAC;QAAC,OAAO,GAAO,EAAE,CAAC;YAEf,IAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,oBAAoB,YAAY,CAAC,MAAM,6BAA6B,GAAG,CAAC,EAAE,SAAS,CAAC,CAAA;YAC1I,CAAC;YAED,MAAM,IAAI,MAAM,EAAE;iBACjB,KAAK,CAAC,IAAI,EAAC,GAAG,CAAC,EAAE,CAAC;iBAClB,MAAM,CAAC;gBACJ,MAAM,EAAG,QAAQ;gBACjB,KAAK,EAAG,IAAI,CAAC,iBAAiB,CAAC;oBAC3B,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,IAAI,EAAE,GAAG,CAAC,IAAI;iBACjB,CAAC;aACL,CAAC;iBACD,IAAI,EAAE;iBACN,IAAI,EAAE,CAAA;YAEP,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC;YAE3C,IAAI,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;YAElC,OAAO,QAAQ,GAAG,WAAW,EAAE,CAAC;gBAE5B,QAAQ,EAAE,CAAC;gBAEX,IAAI,CAAC;oBAED,MAAM,SAAS,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;oBAE9B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;oBAElC,MAAM,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;oBAE5B,MAAM,IAAI,MAAM,EAAE;yBACjB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;yBACnB,MAAM,CAAC;wBACJ,MAAM,EAAE,WAAW;wBACnB,QAAQ;wBACR,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;wBACtC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;qBACxC,CAAC;yBACD,IAAI,EAAE;yBACN,IAAI,EAAE,CAAC;oBAER,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;wBACpB,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,oBAAoB,YAAY,CAAC,KAAK,CAAC,SAAS,6BAA6B,GAAG,CAAC,EAAE,YAAY,OAAO,GAAG,SAAS,MAAM,QAAQ,IAAI,WAAW,GAAG,CAAC,CAAC;oBAC1M,CAAC;oBAED,MAAM;gBAEV,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAEhB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;wBACpB,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,oBAAoB,YAAY,CAAC,KAAK,CAAC,QAAQ,6BAA6B,GAAG,CAAC,EAAE,YAAY,QAAQ,IAAI,WAAW,GAAG,CAAC,CAAC;oBAChL,CAAC;oBAED,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;wBAE1B,MAAM,IAAI,MAAM,EAAE;6BACjB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;6BACnB,MAAM,CAAC;4BACJ,MAAM,EAAE,QAAQ;4BAChB,QAAQ;4BACR,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC;gCAC9B,KAAK,EAAI,IAAI;gCACb,OAAO,EAAE,GAAG,EAAE,OAAO;gCACrB,IAAI,EAAE,GAAG,EAAE,IAAI;gCACf,KAAK,EAAE,GAAG,EAAE,KAAK;gCACjB,IAAI,EAAE,GAAG,EAAE,IAAI;6BACd,CAAC;yBACL,CAAC;6BACD,IAAI,EAAE;6BACN,IAAI,EAAE,CAAC;wBAER,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;4BACpB,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,oBAAoB,YAAY,CAAC,KAAK,CAAC,MAAM,6BAA6B,GAAG,CAAC,EAAE,+CAA+C,CAAC,CAAC;wBACvL,CAAC;wBAED,MAAM;oBACV,CAAC;oBAED,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvD,CAAC;YACL,CAAC;QAEL,CAAC;gBAAS,CAAC;YACP,KAAK,CAAC,OAAO,EAAE,CAAA;YACf,IAAI,CAAC,WAAW,EAAE,CAAA;QACtB,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAE,IAAY;QAC/C,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAE1B,iBAAiB;QAEjB,2DAA2D;QAE3D,yDAAyD;QACzD,iBAAiB;QACjB,QAAQ;QAER,+BAA+B;QAC/B,qMAAqM;QACrM,QAAQ;QAER,mEAAmE;QACnE,IAAI;QAEJ,OAAO;IACX,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,KAAa;QAElD,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QAE7B,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAEzC,MAAM,QAAQ,GAAG,MAAM,IAAI,MAAM,EAAE;aAClC,MAAM,CAAC,IAAI,CAAC;aACZ,KAAK,CAAC,MAAM,EAAC,IAAI,CAAC;aAClB,UAAU,CAAC,CAAC,CAAC,EAAE;YACZ,OAAO,CAAC;iBACP,KAAK,CAAC,QAAQ,EAAC,SAAS,CAAC;iBACzB,KAAK,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;iBACpD,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE;gBAChB,OAAO,CAAC;qBACP,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;qBACzB,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACrF,CAAC,CAAC,CAAA;QACN,CAAC,CAAC;aACD,KAAK,CAAC,KAAK,CAAC;aACZ,GAAG,EAAE,CAAA;QAEN,IAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,EAAE,CAAC;QACd,CAAC;QAED,OAAO,MAAM,OAAE,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAEtC,MAAM,IAAI,GAAG,MAAM,IAAI,MAAM,EAAE;iBAC9B,OAAO,CAAC,IAAI,EAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;iBACrC,MAAM,CAAC,UAAU,CAAC;iBAClB,MAAM,CAAC,IAAI,CAAC;iBACZ,KAAK,CAAC,KAAK,CAAC;iBACZ,SAAS,CAAC,EAAE,UAAU,EAAG,IAAI,EAAE,CAAC;iBAChC,IAAI,CAAC,GAAG,CAAC;iBACT,GAAG,EAAE,CAAA;YAEN,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC;YACd,CAAC;YAED,MAAM,IAAI,MAAM,EAAE;iBACjB,OAAO,CAAC,IAAI,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;iBACjC,UAAU,CAAC;gBACR,MAAM,EAAG,QAAQ;gBACjB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;gBAClC,SAAS,EAAG,IAAI,CAAC,QAAQ;aAC5B,CAAC;iBACD,IAAI,EAAE;iBACN,IAAI,CAAC,GAAG,CAAC;iBACT,KAAK,CAAC,KAAK,CAAC;iBACZ,IAAI,EAAE,CAAA;YAEP,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC9B,EAAE,EAAQ,GAAG,CAAC,EAAE;gBAChB,IAAI,EAAM,GAAG,CAAC,IAAI;gBAClB,MAAM,EAAI,GAAG,CAAC,MAAM;gBACpB,OAAO,EAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC;gBACzC,KAAK,EAAK,GAAG;aAChB,CAAC,CAAC,CAAA;QACP,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,IAAa;QAEpC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE9D,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACtB,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QAC/B,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAEtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QAEtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,IAAI,CAAC;YACD,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAEtD,MAAM,aAAa,GAAG,MAAM,IAAI,MAAM,EAAE;iBACvC,MAAM,CAAC,IAAI,CAAC;iBACZ,UAAU,CAAC,YAAY,CAAC;iBACxB,IAAI,EAAgC,CAAA;YAErC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAEzC,MAAM,OAAO,GAAG;oBACZ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;oBAClB,KAAK;oBACL,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBACnB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEb,IAAG,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAElB,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,oBAAoB,YAAY,CAAC,OAAO,6BAA6B,GAAG,SAAS,CAAC,CAAC;gBACzI,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,oBAAoB,YAAY,CAAC,OAAO,+BAA+B,OAAO,iCAAiC,GAAG,CAAC,MAAM,UAAU,CAAC,CAAC;gBAC3L,CAAC;YAEL,CAAC;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACvC,CAAC;YAED,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAExE,KAAI,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;gBAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;QAEL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAEb,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAE/C,CAAC;gBAAS,CAAC;YACP,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC;IACL,CAAC;IAEO,WAAW,CAAC,IAAY;QAE5B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE1C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO;YAAE,OAAO;QAExD,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC;QAElC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;QAEvB,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;QAEf,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,oBAAoB,YAAY,CAAC,MAAM,SAAS,CAAC,CAAC;QACxG,CAAC;QAED,IAAG,UAAU,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE;gBAC9B,WAAW,EAAG,KAAK,CAAC,IAAI,CAAC,WAAW;aACvC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,OAAW;QAC7B,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,OAAO,CAAC;QACnB,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,OAAY;QAElC,IAAG,OAAO,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAEhC,IAAI,CAAC;YAED,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;gBACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC5B,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAA;gBAC3B,CAAC;gBAED,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;oBACvB,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;gBACpC,CAAC;gBAED,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;oBACvB,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAC5B,CAAC;gBAED,OAAO,KAAK,CAAA;YAChB,CAAC,CAAC,CAAA;QAEN,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,OAAO,CAAA;QAClB,CAAC;IACL,CAAC;CAEJ;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,KAAK;IACP;;;OAGG;IACK,MAAM,CAAC,MAAM,CAAgB;IAE7B,MAAM,CAAC,OAAO,GAAG;QACrB,UAAU,EAAE,8EAA8E;KAC7F,CAAC;IAEF;;;;;;;;;OASG;IACH,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAMf,EAAE;QAEJ,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAElD,OAAO;IACT,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG;QAEd,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAE7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,OAAO;IACT,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,KAAK;QAEd,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAa;QAQzC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAa;QAOlC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,QAAQ;QAEjB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IACxC,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAA2B;QAE3C,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,KAAK,CAAC,OAAO,CAChB,IAAgB,EAChB,OAAiB,EACjB,OAAgC,EAAE,QAAQ,EAAG,KAAK,EAAE,WAAW,EAAG,CAAC,EAAE;QAGrE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,KAAK,CAAC,EAAE,CACX,IAAgB,EAChB,OAAiB,EACjB,OAAgC,EAAE,QAAQ,EAAG,KAAK,EAAE,WAAW,EAAG,CAAC,EAAE;QAErE,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,CACZ,IAAgB,EAChB,OAAa,EACb,OAA4B,EAAE;QAG9B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;;AAGI,sBAAK;AACd,kBAAe,KAAK,CAAA"}
|
|
1
|
+
{"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../../src/lib/core/Queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { Model } from "./Model";
|
|
|
2
2
|
import type { TRelationOptions, TRelationQueryOptions } from "../types";
|
|
3
3
|
declare class RelationManager {
|
|
4
4
|
private $model;
|
|
5
|
-
constructor(model: Model);
|
|
5
|
+
constructor(model: Model<any, any, any>);
|
|
6
6
|
load(parents: Record<string, any>[], relation: TRelationOptions): Promise<any[]>;
|
|
7
7
|
loadExists(): string;
|
|
8
8
|
getSqlExists(name: string, cb: Function): string | null;
|
|
@@ -10,9 +10,9 @@ declare class RelationManager {
|
|
|
10
10
|
callback(nameRelation: string, cb: Function): void;
|
|
11
11
|
callbackPivot(nameRelation: string, cb: Function): void;
|
|
12
12
|
returnCallback(nameRelation: string): any;
|
|
13
|
-
hasOne({ name, as, model, localKey, foreignKey, freezeTable }: TRelationOptions): void;
|
|
14
|
-
hasMany({ name, as, model, localKey, foreignKey, freezeTable }: TRelationOptions): void;
|
|
15
|
-
belongsTo({ name, as, model, localKey, foreignKey, freezeTable }: TRelationOptions): void;
|
|
13
|
+
hasOne({ name, as, model, localKey, foreignKey, freezeTable, }: TRelationOptions): void;
|
|
14
|
+
hasMany({ name, as, model, localKey, foreignKey, freezeTable, }: TRelationOptions): void;
|
|
15
|
+
belongsTo({ name, as, model, localKey, foreignKey, freezeTable, }: TRelationOptions): void;
|
|
16
16
|
belongsToMany({ name, as, model, localKey, foreignKey, freezeTable, pivot, oldVersion, modelPivot }: TRelationOptions): void;
|
|
17
17
|
belongsToManySingle({ name, as, model, localKey, foreignKey, freezeTable, pivot, oldVersion, modelPivot }: TRelationOptions): void;
|
|
18
18
|
hasOneBuilder({ name, as, model, localKey, foreignKey, freezeTable, }: TRelationQueryOptions, callback?: Function): this | undefined;
|
|
@@ -39,7 +39,7 @@ class RelationManager {
|
|
|
39
39
|
}
|
|
40
40
|
if (relation.count) {
|
|
41
41
|
const childs = await query
|
|
42
|
-
.
|
|
42
|
+
.metaTag('SUBORDINATE')
|
|
43
43
|
.select(foreignKey)
|
|
44
44
|
.selectRaw(`${this.$model["$constants"]('COUNT')}(\`${foreignKey}\`) ${this.$model["$constants"]('AS')} \`aggregate\``)
|
|
45
45
|
.whereIn(foreignKey, parentIds)
|
|
@@ -55,13 +55,47 @@ class RelationManager {
|
|
|
55
55
|
relation
|
|
56
56
|
});
|
|
57
57
|
}
|
|
58
|
+
const ofMany = query['$state'].get('OF_MANY');
|
|
59
|
+
const clone = ofMany == null
|
|
60
|
+
? null
|
|
61
|
+
: new Model_1.Model()
|
|
62
|
+
.copyModel(query, {
|
|
63
|
+
where: true
|
|
64
|
+
});
|
|
58
65
|
const childs = await query
|
|
59
|
-
.
|
|
66
|
+
.metaTag('SUBORDINATE')
|
|
60
67
|
.addSelect(foreignKey)
|
|
61
68
|
.whereIn(foreignKey, parentIds)
|
|
62
69
|
.debug(this.$model['$state'].get('DEBUG'))
|
|
63
|
-
.when(relation.trashed, (
|
|
64
|
-
.when(relation.all, (
|
|
70
|
+
.when(relation.trashed, (q) => q.onlyTrashed())
|
|
71
|
+
.when(relation.all, (q) => q.disableSoftDelete())
|
|
72
|
+
.when(ofMany != null && clone != null, (q) => {
|
|
73
|
+
const column = ofMany?.column;
|
|
74
|
+
const aggregate = ofMany?.aggregate;
|
|
75
|
+
const queryOfMany = ofMany?.query;
|
|
76
|
+
if (queryOfMany != null) {
|
|
77
|
+
const repository = new Model_1.Model()
|
|
78
|
+
.copyModel(queryOfMany, {
|
|
79
|
+
where: true,
|
|
80
|
+
join: true,
|
|
81
|
+
});
|
|
82
|
+
clone['$state'].set("WHERE", [
|
|
83
|
+
...clone['$state'].get("WHERE"),
|
|
84
|
+
...repository['$utils']
|
|
85
|
+
.nestConditions(repository['$state'].get("WHERE"))
|
|
86
|
+
]);
|
|
87
|
+
clone['$state'].set("JOIN", [
|
|
88
|
+
...clone['$state'].get("JOIN"),
|
|
89
|
+
...repository['$state'].get("JOIN")
|
|
90
|
+
]);
|
|
91
|
+
}
|
|
92
|
+
const self = clone
|
|
93
|
+
.selectRaw(`${aggregate}(${String(column)})`)
|
|
94
|
+
.whereIn(foreignKey, parentIds)
|
|
95
|
+
.groupBy(foreignKey);
|
|
96
|
+
return q
|
|
97
|
+
.whereSubQuery(column, self);
|
|
98
|
+
})
|
|
65
99
|
.bind(this.$model['$pool'].get())
|
|
66
100
|
.get();
|
|
67
101
|
if (this.$model['$state'].get('DEBUG')) {
|
|
@@ -107,7 +141,9 @@ class RelationManager {
|
|
|
107
141
|
clone.whereExists(sql);
|
|
108
142
|
}
|
|
109
143
|
}
|
|
110
|
-
|
|
144
|
+
const isBeglongsToMany = relation.relation ===
|
|
145
|
+
this.$model["$constants"]('RELATIONSHIP').belongsToMany;
|
|
146
|
+
if (isBeglongsToMany) {
|
|
111
147
|
const thisPivot = modelPivot
|
|
112
148
|
? new modelPivot
|
|
113
149
|
: new Model_1.Model().table(String(pivot));
|
|
@@ -137,10 +173,42 @@ class RelationManager {
|
|
|
137
173
|
this.$model['whereExists'](sqlPivot);
|
|
138
174
|
continue;
|
|
139
175
|
}
|
|
176
|
+
const ofMany = clone['$state'].get('OF_MANY');
|
|
140
177
|
const sql = clone
|
|
141
178
|
.bind(this.$model['$pool'].get())
|
|
142
179
|
.select1()
|
|
143
180
|
.whereReference(this.$model.bindColumn(localKey), query.bindColumn(foreignKey))
|
|
181
|
+
.when(ofMany != null, (q) => {
|
|
182
|
+
const copy = new Model_1.Model()
|
|
183
|
+
.copyModel(query, {
|
|
184
|
+
where: true
|
|
185
|
+
});
|
|
186
|
+
const column = ofMany?.column;
|
|
187
|
+
const aggregate = ofMany?.aggregate;
|
|
188
|
+
const queryOfMany = ofMany?.query;
|
|
189
|
+
if (queryOfMany != null) {
|
|
190
|
+
const repository = new Model_1.Model()
|
|
191
|
+
.copyModel(queryOfMany, {
|
|
192
|
+
where: true,
|
|
193
|
+
join: true,
|
|
194
|
+
});
|
|
195
|
+
copy['$state'].set("WHERE", [
|
|
196
|
+
...copy['$state'].get("WHERE"),
|
|
197
|
+
...repository['$utils']
|
|
198
|
+
.nestConditions(repository['$state'].get("WHERE"))
|
|
199
|
+
]);
|
|
200
|
+
copy['$state'].set("JOIN", [
|
|
201
|
+
...copy['$state'].get("JOIN"),
|
|
202
|
+
...repository['$state'].get("JOIN")
|
|
203
|
+
]);
|
|
204
|
+
}
|
|
205
|
+
const self = copy
|
|
206
|
+
.selectRaw(`${aggregate}(${String(column)})`)
|
|
207
|
+
.whereReference(this.$model.bindColumn(localKey), query.bindColumn(foreignKey))
|
|
208
|
+
.groupBy(foreignKey);
|
|
209
|
+
return q
|
|
210
|
+
.whereSubQuery(column, self);
|
|
211
|
+
})
|
|
144
212
|
.unset({
|
|
145
213
|
orderBy: true,
|
|
146
214
|
limit: true
|
|
@@ -168,12 +236,36 @@ class RelationManager {
|
|
|
168
236
|
throw this._assertError(`Model for the relationship is unknown.`);
|
|
169
237
|
}
|
|
170
238
|
relation.query = cb(relation.query == null ? new relation.model() : relation.query);
|
|
171
|
-
const { localKey, foreignKey } = this._valueInRelation(relation);
|
|
239
|
+
const { localKey, foreignKey, modelPivot, pivot } = this._valueInRelation(relation);
|
|
172
240
|
const query = relation.query;
|
|
173
241
|
if (query == null) {
|
|
174
242
|
throw this._assertError(`The callback query '${relation.name}' is unknown.`);
|
|
175
243
|
}
|
|
176
244
|
const clone = new Model_1.Model().clone(query);
|
|
245
|
+
if (relation.relation === this.$model["$constants"]('RELATIONSHIP').belongsToMany) {
|
|
246
|
+
const thisPivot = modelPivot
|
|
247
|
+
? new modelPivot
|
|
248
|
+
: new Model_1.Model().table(String(pivot));
|
|
249
|
+
const sql = clone
|
|
250
|
+
.bind(this.$model['$pool'].get())
|
|
251
|
+
.select1()
|
|
252
|
+
.whereReference(query.bindColumn(foreignKey), thisPivot.bindColumn(localKey))
|
|
253
|
+
.toString();
|
|
254
|
+
const sqlPivot = thisPivot
|
|
255
|
+
.bind(this.$model['$pool'].get())
|
|
256
|
+
.select1()
|
|
257
|
+
.whereExists(sql)
|
|
258
|
+
.whereReference(this.$model.bindColumn(foreignKey), thisPivot.bindColumn([
|
|
259
|
+
pluralize_1.default.singular(this.$model.getTableName()),
|
|
260
|
+
foreignKey
|
|
261
|
+
].join("_")))
|
|
262
|
+
.unset({
|
|
263
|
+
orderBy: true,
|
|
264
|
+
limit: true
|
|
265
|
+
})
|
|
266
|
+
.toString();
|
|
267
|
+
return sqlPivot;
|
|
268
|
+
}
|
|
177
269
|
const sql = clone
|
|
178
270
|
.bind(this.$model['$pool'].get())
|
|
179
271
|
.select1()
|
|
@@ -259,7 +351,7 @@ class RelationManager {
|
|
|
259
351
|
}
|
|
260
352
|
return relation.query == null ? new relation.model() : relation.query;
|
|
261
353
|
}
|
|
262
|
-
hasOne({ name, as, model, localKey, foreignKey, freezeTable }) {
|
|
354
|
+
hasOne({ name, as, model, localKey, foreignKey, freezeTable, }) {
|
|
263
355
|
const relation = {
|
|
264
356
|
name,
|
|
265
357
|
model,
|
|
@@ -272,7 +364,7 @@ class RelationManager {
|
|
|
272
364
|
};
|
|
273
365
|
return this.$model['$state'].set('APPLY_RELATIONS', [...this.$model['$state'].get('APPLY_RELATIONS'), relation]);
|
|
274
366
|
}
|
|
275
|
-
hasMany({ name, as, model, localKey, foreignKey, freezeTable }) {
|
|
367
|
+
hasMany({ name, as, model, localKey, foreignKey, freezeTable, }) {
|
|
276
368
|
const relation = {
|
|
277
369
|
name,
|
|
278
370
|
model,
|
|
@@ -285,7 +377,7 @@ class RelationManager {
|
|
|
285
377
|
};
|
|
286
378
|
return this.$model['$state'].set('APPLY_RELATIONS', [...this.$model['$state'].get('APPLY_RELATIONS'), relation]);
|
|
287
379
|
}
|
|
288
|
-
belongsTo({ name, as, model, localKey, foreignKey, freezeTable }) {
|
|
380
|
+
belongsTo({ name, as, model, localKey, foreignKey, freezeTable, }) {
|
|
289
381
|
const relation = {
|
|
290
382
|
name,
|
|
291
383
|
model,
|
|
@@ -539,10 +631,42 @@ class RelationManager {
|
|
|
539
631
|
}
|
|
540
632
|
if (relation.exists == null && relation.notExists == null)
|
|
541
633
|
return '';
|
|
634
|
+
const ofMany = clone['$state'].get('OF_MANY');
|
|
542
635
|
const sql = clone
|
|
543
636
|
.bind(this.$model['$pool'].get())
|
|
544
637
|
.select1()
|
|
545
638
|
.whereReference(this.$model.bindColumn(localKey), clone.bindColumn(foreignKey))
|
|
639
|
+
.when(ofMany != null, (q) => {
|
|
640
|
+
const copy = new Model_1.Model()
|
|
641
|
+
.copyModel(query, {
|
|
642
|
+
where: true
|
|
643
|
+
});
|
|
644
|
+
const column = ofMany?.column;
|
|
645
|
+
const aggregate = ofMany?.aggregate;
|
|
646
|
+
const queryOfMany = ofMany?.query;
|
|
647
|
+
if (queryOfMany != null) {
|
|
648
|
+
const repository = new Model_1.Model()
|
|
649
|
+
.copyModel(queryOfMany, {
|
|
650
|
+
where: true,
|
|
651
|
+
join: true,
|
|
652
|
+
});
|
|
653
|
+
copy['$state'].set("WHERE", [
|
|
654
|
+
...copy['$state'].get("WHERE"),
|
|
655
|
+
...repository['$utils']
|
|
656
|
+
.nestConditions(repository['$state'].get("WHERE"))
|
|
657
|
+
]);
|
|
658
|
+
copy['$state'].set("JOIN", [
|
|
659
|
+
...copy['$state'].get("JOIN"),
|
|
660
|
+
...repository['$state'].get("JOIN")
|
|
661
|
+
]);
|
|
662
|
+
}
|
|
663
|
+
const self = copy
|
|
664
|
+
.selectRaw(`${aggregate}(${String(column)})`)
|
|
665
|
+
.whereReference(this.$model.bindColumn(localKey), query.bindColumn(foreignKey))
|
|
666
|
+
.groupBy(foreignKey);
|
|
667
|
+
return q
|
|
668
|
+
.whereSubQuery(column, self);
|
|
669
|
+
})
|
|
546
670
|
.unset({
|
|
547
671
|
orderBy: true,
|
|
548
672
|
limit: true
|
|
@@ -613,14 +737,14 @@ class RelationManager {
|
|
|
613
737
|
let { name, foreignKey, localKey, pivot, oldVersion, modelPivot, queryPivot, as } = this._valueInRelation(relation);
|
|
614
738
|
const isBelongsToManySingle = relation.relation === this.$model["$constants"]('RELATIONSHIP').belongsToManySingle;
|
|
615
739
|
const localKeyId = parents.map((parent) => {
|
|
616
|
-
const
|
|
617
|
-
if (
|
|
740
|
+
const key = parent[foreignKey];
|
|
741
|
+
if (key === undefined) {
|
|
618
742
|
throw this._assertError([
|
|
619
743
|
`This relationship lacks a foreign key in the '${relation?.name}' relation.`,
|
|
620
744
|
`Please review the query to identify whether the key '${foreignKey}' is missing.`
|
|
621
745
|
].join(' '));
|
|
622
746
|
}
|
|
623
|
-
return
|
|
747
|
+
return key;
|
|
624
748
|
}).filter((d) => d != null);
|
|
625
749
|
const mainResultIds = Array.from(new Set(localKeyId));
|
|
626
750
|
const modelRelation = relation.query == null ? new relation.model() : relation.query;
|
|
@@ -641,7 +765,7 @@ class RelationManager {
|
|
|
641
765
|
: queryPivot;
|
|
642
766
|
if (relation.count) {
|
|
643
767
|
const pivotResults = await queryPivot
|
|
644
|
-
.
|
|
768
|
+
.metaTag('SUBORDINATE')
|
|
645
769
|
.select(localKeyPivotTable)
|
|
646
770
|
.selectRaw(`${this.$model["$constants"]('COUNT')}(\`${localKeyPivotTable}\`) ${this.$model["$constants"]('AS')} \`aggregate\``)
|
|
647
771
|
.whereIn(localKeyPivotTable, mainResultIds)
|
|
@@ -664,7 +788,7 @@ class RelationManager {
|
|
|
664
788
|
return parents;
|
|
665
789
|
}
|
|
666
790
|
const pivotResults = await queryPivot
|
|
667
|
-
.
|
|
791
|
+
.metaTag('SUBORDINATE')
|
|
668
792
|
.addSelect(localKeyPivotTable)
|
|
669
793
|
.whereIn(localKeyPivotTable, mainResultIds)
|
|
670
794
|
.when(relation.query != null, (query) => query.select(localKeyPivotTable, localKey))
|
|
@@ -678,7 +802,7 @@ class RelationManager {
|
|
|
678
802
|
.map((pivotResult) => pivotResult[relationForeignKey])
|
|
679
803
|
.filter((d) => d != null)));
|
|
680
804
|
const relationResults = await modelRelation
|
|
681
|
-
.
|
|
805
|
+
.metaTag('SUBORDINATE')
|
|
682
806
|
.addSelect(mainlocalKey)
|
|
683
807
|
.whereIn(mainlocalKey, relationIds)
|
|
684
808
|
.when(relation.trashed, (query) => query.disableSoftDelete())
|
|
@@ -712,7 +836,7 @@ class RelationManager {
|
|
|
712
836
|
const children = [...pivotResults]
|
|
713
837
|
.reduce((prev, curr) => {
|
|
714
838
|
const key = curr[localKeyPivotTable];
|
|
715
|
-
if (
|
|
839
|
+
if (key === undefined) {
|
|
716
840
|
throw this._assertError([
|
|
717
841
|
`This relationship lacks a prisma key in pivot table the '${relation?.name}' relation.`,
|
|
718
842
|
`Please review the query to identify whether the key '${localKeyPivotTable}' is missing.`
|
|
@@ -721,6 +845,7 @@ class RelationManager {
|
|
|
721
845
|
if (!prev[key]) {
|
|
722
846
|
prev[key] = { [localKeyPivotTable]: key, values: [] };
|
|
723
847
|
}
|
|
848
|
+
;
|
|
724
849
|
prev[key].values.push({ ...curr });
|
|
725
850
|
return prev;
|
|
726
851
|
}, {});
|