@zintrust/core 0.4.22 → 0.4.26
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/package.json +4 -2
- package/src/boot/registry/runtime.d.ts.map +1 -1
- package/src/boot/registry/worker.js +1 -1
- package/src/builder/BundleOptimizer.d.ts.map +1 -1
- package/src/cli/commands/AddCommand.js +1 -1
- package/src/cli/commands/InitContainerCommand.js +3 -3
- package/src/cli/commands/MigrateCommand.js +1 -1
- package/src/cli/commands/QueueRecoveryCommand.d.ts.map +1 -1
- package/src/cli/commands/ScheduleListCommand.d.ts.map +1 -1
- package/src/cli/commands/SecretsCommand.d.ts.map +1 -1
- package/src/cli/commands/WorkerCommands.d.ts.map +1 -1
- package/src/cli/commands/WorkerCommands.js +4 -1
- package/src/cli/config/ConfigManager.d.ts.map +1 -1
- package/src/cli/config/ConfigManager.js +1 -8
- package/src/cli/config/ConfigValidator.d.ts.map +1 -1
- package/src/cli/d1/LocalD1Resolver.d.ts.map +1 -1
- package/src/cli/d1/WranglerConfig.js +1 -1
- package/src/cli/scaffolding/ControllerGenerator.d.ts.map +1 -1
- package/src/cli/scaffolding/ProjectScaffolder.js +3 -3
- package/src/cli/scaffolding/RequestFactoryGenerator.d.ts.map +1 -1
- package/src/cli/scaffolding/SeederGenerator.d.ts.map +1 -1
- package/src/cli/scaffolding/ServiceScaffolder.d.ts.map +1 -1
- package/src/cli/scaffolding/ServiceScaffolder.js +3 -1
- package/src/common/index.d.ts.map +1 -1
- package/src/config/cloudflare.js +1 -1
- package/src/config/env.js +1 -1
- package/src/config/notification.js +1 -1
- package/src/config/redis.js +1 -1
- package/src/functions/cloudflare.d.ts.map +1 -1
- package/src/functions/cloudflare.js +4 -0
- package/src/index.js +3 -3
- package/src/microservices/MicroserviceManager.js +1 -1
- package/src/microservices/ServiceBundler.d.ts.map +1 -1
- package/src/middleware/RateLimiter.d.ts.map +1 -1
- package/src/middleware/RateLimiter.js +3 -2
- package/src/migrations/schema/Blueprint.js +1 -1
- package/src/migrations/schema/SchemaCompiler.d.ts.map +1 -1
- package/src/migrations/schema/SchemaCompiler.js +4 -3
- package/src/orm/Model.d.ts +2 -2
- package/src/orm/Model.d.ts.map +1 -1
- package/src/orm/Model.js +2 -2
- package/src/orm/QueryBuilder.d.ts.map +1 -1
- package/src/orm/QueryBuilder.js +27 -41
- package/src/orm/Relationships.d.ts +2 -2
- package/src/orm/Relationships.d.ts.map +1 -1
- package/src/orm/Relationships.js +33 -64
- package/src/performance/Benchmark.d.ts.map +1 -1
- package/src/performance/Benchmark.js +16 -24
- package/src/performance/Optimizer.d.ts.map +1 -1
- package/src/proxy/SigningService.d.ts +16 -16
- package/src/proxy/SigningService.d.ts.map +1 -1
- package/src/proxy/SigningService.js +8 -11
- package/src/proxy/mysql/MySqlProxyServer.d.ts.map +1 -1
- package/src/proxy/mysql/MySqlProxyServer.js +3 -1
- package/src/routes/error.d.ts.map +1 -1
- package/src/routes/error.js +1 -1
- package/src/runtime/adapters/DenoAdapter.js +1 -1
- package/src/runtime/adapters/LambdaAdapter.js +17 -19
- package/src/session/index.d.ts +1 -1
- package/src/session/index.d.ts.map +1 -1
- package/src/templates/project/basic/package.json.tpl +1 -0
- package/src/tools/broadcast/Broadcast.d.ts.map +1 -1
- package/src/tools/mail/template-loader.d.ts.map +1 -1
- package/src/tools/mail/template-loader.js +1 -2
- package/src/tools/queue/TimeoutManager.d.ts.map +1 -1
- package/src/tools/queue/drivers/Database.d.ts.map +1 -1
- package/src/zintrust.plugins.d.ts +3 -6
- package/src/zintrust.plugins.d.ts.map +1 -1
- package/src/zintrust.plugins.js +3 -27
- package/src/zintrust.comon.d.ts +0 -9
- package/src/zintrust.comon.d.ts.map +0 -1
- package/src/zintrust.comon.js +0 -15
package/src/orm/QueryBuilder.js
CHANGED
|
@@ -591,6 +591,27 @@ function attachReadExecutionMethods(builder, state, db) {
|
|
|
591
591
|
const isNonEmptyString = (value) => typeof value === 'string' && value.length > 0;
|
|
592
592
|
const isKeyValue = (value) => typeof value === 'string' || typeof value === 'number';
|
|
593
593
|
const getModelIds = (models, key) => models.map((model) => model.getAttribute(key)).filter((element) => isKeyValue(element));
|
|
594
|
+
const normalizeCountValue = (value) => {
|
|
595
|
+
if (typeof value === 'bigint')
|
|
596
|
+
return Number(value);
|
|
597
|
+
if (typeof value === 'number')
|
|
598
|
+
return value;
|
|
599
|
+
return Number(value ?? 0);
|
|
600
|
+
};
|
|
601
|
+
const buildCountSql = (tableName, foreignKey, ids, dialect) => `SELECT ${escapeIdentifier(foreignKey, dialect)} as key, COUNT(*) as count FROM ${escapeIdentifier(tableName, dialect)} WHERE ${escapeIdentifier(foreignKey, dialect)} IN (${ids
|
|
602
|
+
.map(() => '?')
|
|
603
|
+
.join(',')}) GROUP BY ${escapeIdentifier(foreignKey, dialect)}`;
|
|
604
|
+
const queryCountMap = async (db, sql, params) => {
|
|
605
|
+
const results = (await db.query(sql, params, true));
|
|
606
|
+
return new Map(results.map((row) => [row.key, normalizeCountValue(row.count)]));
|
|
607
|
+
};
|
|
608
|
+
const setRelationCounts = (models, relation, localKey, countMap) => {
|
|
609
|
+
for (const model of models) {
|
|
610
|
+
const modelId = model.getAttribute(localKey);
|
|
611
|
+
const count = isKeyValue(modelId) ? (countMap.get(modelId) ?? 0) : 0;
|
|
612
|
+
model.setAttribute(`${relation}_count`, count);
|
|
613
|
+
}
|
|
614
|
+
};
|
|
594
615
|
const applyConstraint = (query, constraint) => {
|
|
595
616
|
if (typeof constraint === 'function') {
|
|
596
617
|
return constraint(query) ?? query;
|
|
@@ -603,10 +624,7 @@ const applyConstraint = (query, constraint) => {
|
|
|
603
624
|
async function loadCounts(models, relation, db) {
|
|
604
625
|
if (models.length === 0 || !db)
|
|
605
626
|
return;
|
|
606
|
-
const
|
|
607
|
-
if (typeof firstModel[relation] !== 'function')
|
|
608
|
-
return;
|
|
609
|
-
const rel = firstModel[relation]();
|
|
627
|
+
const rel = getRelationFromModels(models, relation);
|
|
610
628
|
if (rel === null || rel === undefined)
|
|
611
629
|
return;
|
|
612
630
|
const relType = rel.type;
|
|
@@ -620,45 +638,14 @@ async function loadCounts(models, relation, db) {
|
|
|
620
638
|
if (ids.length === 0)
|
|
621
639
|
return;
|
|
622
640
|
const dialect = typeof db.getType === 'function' ? db.getType() : undefined;
|
|
623
|
-
const queryCounts = async (sql, params) => {
|
|
624
|
-
const results = (await db.query(sql, params, true));
|
|
625
|
-
const map = new Map();
|
|
626
|
-
for (const row of results) {
|
|
627
|
-
let count;
|
|
628
|
-
if (typeof row.count === 'bigint') {
|
|
629
|
-
count = Number(row.count);
|
|
630
|
-
}
|
|
631
|
-
else if (typeof row.count === 'number') {
|
|
632
|
-
count = row.count;
|
|
633
|
-
}
|
|
634
|
-
else {
|
|
635
|
-
count = Number(row.count ?? 0);
|
|
636
|
-
}
|
|
637
|
-
map.set(row.key, count);
|
|
638
|
-
}
|
|
639
|
-
return map;
|
|
640
|
-
};
|
|
641
|
-
const setCountsOnModels = (countMap) => {
|
|
642
|
-
for (const model of models) {
|
|
643
|
-
const modelId = model.getAttribute(localKey);
|
|
644
|
-
if (isKeyValue(modelId)) {
|
|
645
|
-
const count = countMap.get(modelId) ?? 0;
|
|
646
|
-
model.setAttribute(`${relation}_count`, count);
|
|
647
|
-
}
|
|
648
|
-
else {
|
|
649
|
-
model.setAttribute(`${relation}_count`, 0);
|
|
650
|
-
}
|
|
651
|
-
}
|
|
652
|
-
};
|
|
653
641
|
if (relType === 'hasMany') {
|
|
654
642
|
const relatedModel = rel.related;
|
|
655
643
|
if (typeof relatedModel?.query !== 'function')
|
|
656
644
|
return;
|
|
657
645
|
const tempQuery = relatedModel.query();
|
|
658
646
|
const relatedTable = tempQuery.getTable();
|
|
659
|
-
const
|
|
660
|
-
|
|
661
|
-
setCountsOnModels(countMap);
|
|
647
|
+
const countMap = await queryCountMap(db, buildCountSql(relatedTable, foreignKey, ids, dialect), ids);
|
|
648
|
+
setRelationCounts(models, relation, localKey, countMap);
|
|
662
649
|
return;
|
|
663
650
|
}
|
|
664
651
|
// belongsToMany
|
|
@@ -666,9 +653,8 @@ async function loadCounts(models, relation, db) {
|
|
|
666
653
|
const relatedKey = rel.relatedKey;
|
|
667
654
|
if (!isNonEmptyString(throughTable) || !isNonEmptyString(relatedKey))
|
|
668
655
|
return;
|
|
669
|
-
const
|
|
670
|
-
|
|
671
|
-
setCountsOnModels(countMap);
|
|
656
|
+
const countMap = await queryCountMap(db, buildCountSql(throughTable, foreignKey, ids, dialect), ids);
|
|
657
|
+
setRelationCounts(models, relation, localKey, countMap);
|
|
672
658
|
}
|
|
673
659
|
const getRelationFromModels = (models, relation) => {
|
|
674
660
|
const firstModel = models[0];
|
|
@@ -1002,7 +988,7 @@ function attachWriteMethods(builder, state, db) {
|
|
|
1002
988
|
// For multi-row inserts, use the insertedRecords array
|
|
1003
989
|
return {
|
|
1004
990
|
id: result.lastInsertId ??
|
|
1005
|
-
(items.length === 1 ?
|
|
991
|
+
(items.length === 1 ? items[0]?.['id'] ?? null : null),
|
|
1006
992
|
affectedRows: result.rowCount,
|
|
1007
993
|
insertedRecords: items,
|
|
1008
994
|
};
|
|
@@ -103,7 +103,7 @@ export declare const MorphTo: Readonly<{
|
|
|
103
103
|
* @see FRAMEWORK_REFACTOR_FUNCTION_PATTERN.md for Pattern 2 details
|
|
104
104
|
*/
|
|
105
105
|
export declare const HasOneThrough: Readonly<{
|
|
106
|
-
create(relatedModel: ModelStatic, through: ModelStatic, foreignKey?: string, throughForeignKey?: string, localKey?: string, secondLocalKey?: string)
|
|
106
|
+
create: (relatedModel: ModelStatic, through: ModelStatic, foreignKey?: string, throughForeignKey?: string, localKey?: string, secondLocalKey?: string) => IRelationship;
|
|
107
107
|
}>;
|
|
108
108
|
/**
|
|
109
109
|
* HasManyThrough Relationship
|
|
@@ -114,6 +114,6 @@ export declare const HasOneThrough: Readonly<{
|
|
|
114
114
|
* @see FRAMEWORK_REFACTOR_FUNCTION_PATTERN.md for Pattern 2 details
|
|
115
115
|
*/
|
|
116
116
|
export declare const HasManyThrough: Readonly<{
|
|
117
|
-
create(relatedModel: ModelStatic, through: ModelStatic, foreignKey?: string, throughForeignKey?: string, localKey?: string, secondLocalKey?: string)
|
|
117
|
+
create: (relatedModel: ModelStatic, through: ModelStatic, foreignKey?: string, throughForeignKey?: string, localKey?: string, secondLocalKey?: string) => IRelationship;
|
|
118
118
|
}>;
|
|
119
119
|
//# sourceMappingURL=Relationships.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Relationships.d.ts","sourceRoot":"","sources":["../../../src/orm/Relationships.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,SAAS,GACT,WAAW,GACX,eAAe,GACf,UAAU,GACV,WAAW,GACX,SAAS,GACT,eAAe,GACf,gBAAgB,CAAC;AAErB,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,OAAO,KAAK,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACvC,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;
|
|
1
|
+
{"version":3,"file":"Relationships.d.ts","sourceRoot":"","sources":["../../../src/orm/Relationships.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,SAAS,GACT,WAAW,GACX,eAAe,GACf,UAAU,GACV,WAAW,GACX,SAAS,GACT,eAAe,GACf,gBAAgB,CAAC;AAErB,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,OAAO,KAAK,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACvC,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AA2ED;;;;;GAKG;AACH,eAAO,MAAM,MAAM;yBACI,WAAW,cAAc,MAAM,YAAY,MAAM,GAAG,aAAa;EActF,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,OAAO;yBACG,WAAW,cAAc,MAAM,YAAY,MAAM,GAAG,aAAa;EActF,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,SAAS;yBACC,WAAW,cAAc,MAAM,YAAY,MAAM,GAAG,aAAa;EActF,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,aAAa;yBAER,WAAW,gBACX,MAAM,cACR,MAAM,cACN,MAAM,GACjB,aAAa;EAoChB,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ;yBAEH,WAAW,aACd,MAAM,cACL,MAAM,YACR,MAAM,4BAEf,aAAa;EA0BhB,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,SAAS;yBAEJ,WAAW,aACd,MAAM,cACL,MAAM,YACR,MAAM,4BAEf,aAAa;EA0BhB,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,OAAO;sBAEL,MAAM,YACP,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,cACzB,MAAM,YACR,MAAM,GACf,aAAa;EAyChB,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa;2BAER,WAAW,WAChB,WAAW,eACP,MAAM,sBACC,MAAM,aACf,MAAM,mBACA,MAAM,KACtB,aAAa;EAUhB,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc;2BAET,WAAW,WAChB,WAAW,eACP,MAAM,sBACC,MAAM,aACf,MAAM,mBACA,MAAM,KACtB,aAAa;EAUhB,CAAC"}
|
package/src/orm/Relationships.js
CHANGED
|
@@ -9,6 +9,37 @@ const getRelatedTableName = (relatedModel) => {
|
|
|
9
9
|
}
|
|
10
10
|
throw ErrorFactory.createConfigError('Related model does not provide a table name');
|
|
11
11
|
};
|
|
12
|
+
const hasEmptyRelationValue = (value) => value === undefined || value === null || value === '';
|
|
13
|
+
const buildThroughQuery = (modelClass, relatedTable, throughTable, secondKey, secondLocalKeyColumn, firstKey, value) => modelClass
|
|
14
|
+
.query()
|
|
15
|
+
.join(throughTable, `${relatedTable}.${secondKey} = ${throughTable}.${secondLocalKeyColumn}`)
|
|
16
|
+
.where(`${throughTable}.${firstKey}`, '=', value);
|
|
17
|
+
const createThroughRelationship = (type, relatedModel, through, foreignKey, throughForeignKey, localKey, secondLocalKey) => {
|
|
18
|
+
const throughTable = getRelatedTableName(through);
|
|
19
|
+
const relatedTable = getRelatedTableName(relatedModel);
|
|
20
|
+
const firstKey = throughForeignKey ?? 'id';
|
|
21
|
+
const secondKey = foreignKey ?? `${throughTable.slice(0, -1)}_id`;
|
|
22
|
+
const localKeyColumn = localKey ?? 'id';
|
|
23
|
+
const secondLocalKeyColumn = secondLocalKey ?? 'id';
|
|
24
|
+
return {
|
|
25
|
+
type,
|
|
26
|
+
related: relatedModel,
|
|
27
|
+
foreignKey: secondKey,
|
|
28
|
+
localKey: localKeyColumn,
|
|
29
|
+
through,
|
|
30
|
+
throughForeignKey: firstKey,
|
|
31
|
+
secondLocalKey: secondLocalKeyColumn,
|
|
32
|
+
async get(instance) {
|
|
33
|
+
const value = instance.getAttribute(localKeyColumn);
|
|
34
|
+
if (hasEmptyRelationValue(value)) {
|
|
35
|
+
return Promise.resolve(type === 'hasOneThrough' ? null : []); //NOSONAR
|
|
36
|
+
}
|
|
37
|
+
const query = buildThroughQuery(relatedModel, relatedTable, throughTable, secondKey, secondLocalKeyColumn, firstKey, value);
|
|
38
|
+
const result = type === 'hasOneThrough' ? await query.first() : await query.get();
|
|
39
|
+
return result;
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
};
|
|
12
43
|
/**
|
|
13
44
|
* HasOne Relationship
|
|
14
45
|
* Sealed namespace object following Pattern 2
|
|
@@ -229,38 +260,7 @@ export const MorphTo = Object.freeze({
|
|
|
229
260
|
* @see FRAMEWORK_REFACTOR_FUNCTION_PATTERN.md for Pattern 2 details
|
|
230
261
|
*/
|
|
231
262
|
export const HasOneThrough = Object.freeze({
|
|
232
|
-
create(relatedModel, through, foreignKey, throughForeignKey, localKey, secondLocalKey)
|
|
233
|
-
const throughTable = getRelatedTableName(through);
|
|
234
|
-
const relatedTable = getRelatedTableName(relatedModel);
|
|
235
|
-
// Default keys
|
|
236
|
-
const firstKey = throughForeignKey ?? 'id';
|
|
237
|
-
const secondKey = foreignKey ?? `${throughTable.slice(0, -1)}_id`;
|
|
238
|
-
const localKeyColumn = localKey ?? 'id';
|
|
239
|
-
const secondLocalKeyColumn = secondLocalKey ?? 'id';
|
|
240
|
-
return {
|
|
241
|
-
type: 'hasOneThrough',
|
|
242
|
-
related: relatedModel,
|
|
243
|
-
foreignKey: secondKey,
|
|
244
|
-
localKey: localKeyColumn,
|
|
245
|
-
through,
|
|
246
|
-
throughForeignKey: firstKey,
|
|
247
|
-
secondLocalKey: secondLocalKeyColumn,
|
|
248
|
-
async get(instance) {
|
|
249
|
-
const value = instance.getAttribute(localKeyColumn);
|
|
250
|
-
if (value === undefined || value === null || value === '')
|
|
251
|
-
return null;
|
|
252
|
-
// Join through intermediate table
|
|
253
|
-
// SELECT related.* FROM related
|
|
254
|
-
// INNER JOIN through ON related.through_id = through.id
|
|
255
|
-
// WHERE through.parent_id = value
|
|
256
|
-
return relatedModel
|
|
257
|
-
.query()
|
|
258
|
-
.join(throughTable, `${relatedTable}.${secondKey} = ${throughTable}.${secondLocalKeyColumn}`)
|
|
259
|
-
.where(`${throughTable}.${firstKey}`, '=', value)
|
|
260
|
-
.first();
|
|
261
|
-
},
|
|
262
|
-
};
|
|
263
|
-
},
|
|
263
|
+
create: (relatedModel, through, foreignKey, throughForeignKey, localKey, secondLocalKey) => createThroughRelationship('hasOneThrough', relatedModel, through, foreignKey, throughForeignKey, localKey, secondLocalKey),
|
|
264
264
|
});
|
|
265
265
|
/**
|
|
266
266
|
* HasManyThrough Relationship
|
|
@@ -271,36 +271,5 @@ export const HasOneThrough = Object.freeze({
|
|
|
271
271
|
* @see FRAMEWORK_REFACTOR_FUNCTION_PATTERN.md for Pattern 2 details
|
|
272
272
|
*/
|
|
273
273
|
export const HasManyThrough = Object.freeze({
|
|
274
|
-
create(relatedModel, through, foreignKey, throughForeignKey, localKey, secondLocalKey)
|
|
275
|
-
const throughTable = getRelatedTableName(through);
|
|
276
|
-
const relatedTable = getRelatedTableName(relatedModel);
|
|
277
|
-
// Default keys
|
|
278
|
-
const firstKey = throughForeignKey ?? 'id';
|
|
279
|
-
const secondKey = foreignKey ?? `${throughTable.slice(0, -1)}_id`;
|
|
280
|
-
const localKeyColumn = localKey ?? 'id';
|
|
281
|
-
const secondLocalKeyColumn = secondLocalKey ?? 'id';
|
|
282
|
-
return {
|
|
283
|
-
type: 'hasManyThrough',
|
|
284
|
-
related: relatedModel,
|
|
285
|
-
foreignKey: secondKey,
|
|
286
|
-
localKey: localKeyColumn,
|
|
287
|
-
through,
|
|
288
|
-
throughForeignKey: firstKey,
|
|
289
|
-
secondLocalKey: secondLocalKeyColumn,
|
|
290
|
-
async get(instance) {
|
|
291
|
-
const value = instance.getAttribute(localKeyColumn);
|
|
292
|
-
if (value === undefined || value === null || value === '')
|
|
293
|
-
return [];
|
|
294
|
-
// Join through intermediate table
|
|
295
|
-
// SELECT related.* FROM related
|
|
296
|
-
// INNER JOIN through ON related.through_id = through.id
|
|
297
|
-
// WHERE through.parent_id = value
|
|
298
|
-
return relatedModel
|
|
299
|
-
.query()
|
|
300
|
-
.join(throughTable, `${relatedTable}.${secondKey} = ${throughTable}.${secondLocalKeyColumn}`)
|
|
301
|
-
.where(`${throughTable}.${firstKey}`, '=', value)
|
|
302
|
-
.get();
|
|
303
|
-
},
|
|
304
|
-
};
|
|
305
|
-
},
|
|
274
|
+
create: (relatedModel, through, foreignKey, throughForeignKey, localKey, secondLocalKey) => createThroughRelationship('hasManyThrough', relatedModel, through, foreignKey, throughForeignKey, localKey, secondLocalKey),
|
|
306
275
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Benchmark.d.ts","sourceRoot":"","sources":["../../../src/performance/Benchmark.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,CAAC,EACP,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,CAAC,EACX,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,eAAe,CAAC;IACnB,YAAY,CAAC,CAAC,EACZ,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,eAAe,CAAC,CAAC;IAC5B,UAAU,IAAI,eAAe,EAAE,CAAC;IAChC,QAAQ,IAAI,MAAM,CAAC;IACnB,MAAM,IAAI,cAAc,CAAC;IACzB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,QAAQ,EAAE,cAAc,GAAG,gBAAgB,CAAC;IACpD,mBAAmB,CAAC,UAAU,EAAE,gBAAgB,GAAG,MAAM,CAAC;CAC3D;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS;IACpB;;OAEG;kBACU,MAAM,GAAuB,UAAU;EAuCpD,CAAC;
|
|
1
|
+
{"version":3,"file":"Benchmark.d.ts","sourceRoot":"","sources":["../../../src/performance/Benchmark.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,CAAC,EACP,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,CAAC,EACX,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,eAAe,CAAC;IACnB,YAAY,CAAC,CAAC,EACZ,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,eAAe,CAAC,CAAC;IAC5B,UAAU,IAAI,eAAe,EAAE,CAAC;IAChC,QAAQ,IAAI,MAAM,CAAC;IACnB,MAAM,IAAI,cAAc,CAAC;IACzB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,QAAQ,EAAE,cAAc,GAAG,gBAAgB,CAAC;IACpD,mBAAmB,CAAC,UAAU,EAAE,gBAAgB,GAAG,MAAM,CAAC;CAC3D;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS;IACpB;;OAEG;kBACU,MAAM,GAAuB,UAAU;EAuCpD,CAAC;AA2MH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,IAAI,IAAI,cAAc,EAAE,CAAC;IACzB,QAAQ,IAAI,WAAW,CAAC;IACxB,WAAW,IAAI,MAAM,CAAC;CACvB;AACD;;;GAGG;AACH,eAAO,MAAM,aAAa;IACxB;;OAEG;cACO,cAAc;EA6ExB,CAAC"}
|
|
@@ -37,6 +37,20 @@ export const Benchmark = Object.freeze({
|
|
|
37
37
|
};
|
|
38
38
|
},
|
|
39
39
|
});
|
|
40
|
+
function createBenchmarkResult(name, iterations, memBefore, memAfter, totalDuration, metadata) {
|
|
41
|
+
return {
|
|
42
|
+
name,
|
|
43
|
+
duration: totalDuration,
|
|
44
|
+
memoryBefore: memBefore,
|
|
45
|
+
memoryAfter: memAfter,
|
|
46
|
+
memoryDelta: memAfter - memBefore,
|
|
47
|
+
iterationCount: iterations,
|
|
48
|
+
averageTime: totalDuration / iterations,
|
|
49
|
+
averageMemory: (memAfter - memBefore) / iterations,
|
|
50
|
+
timestamp: new Date(),
|
|
51
|
+
metadata,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
40
54
|
/**
|
|
41
55
|
* Run synchronous measurement
|
|
42
56
|
*/
|
|
@@ -51,18 +65,7 @@ function runMeasure(name, fn, iterations, metadata) {
|
|
|
51
65
|
}
|
|
52
66
|
const memAfter = process.memoryUsage().heapUsed;
|
|
53
67
|
const totalDuration = durations.reduce((a, b) => a + b, 0);
|
|
54
|
-
return
|
|
55
|
-
name,
|
|
56
|
-
duration: totalDuration,
|
|
57
|
-
memoryBefore: memBefore,
|
|
58
|
-
memoryAfter: memAfter,
|
|
59
|
-
memoryDelta: memAfter - memBefore,
|
|
60
|
-
iterationCount: iterations,
|
|
61
|
-
averageTime: totalDuration / iterations,
|
|
62
|
-
averageMemory: (memAfter - memBefore) / iterations,
|
|
63
|
-
timestamp: new Date(),
|
|
64
|
-
metadata,
|
|
65
|
-
};
|
|
68
|
+
return createBenchmarkResult(name, iterations, memBefore, memAfter, totalDuration, metadata);
|
|
66
69
|
}
|
|
67
70
|
/**
|
|
68
71
|
* Run asynchronous measurement
|
|
@@ -81,18 +84,7 @@ async function runMeasureAsync(name, fn, iterations, metadata) {
|
|
|
81
84
|
/* eslint-enable no-await-in-loop */
|
|
82
85
|
const memAfter = process.memoryUsage().heapUsed;
|
|
83
86
|
const totalDuration = durations.reduce((a, b) => a + b, 0);
|
|
84
|
-
return
|
|
85
|
-
name,
|
|
86
|
-
duration: totalDuration,
|
|
87
|
-
memoryBefore: memBefore,
|
|
88
|
-
memoryAfter: memAfter,
|
|
89
|
-
memoryDelta: memAfter - memBefore,
|
|
90
|
-
iterationCount: iterations,
|
|
91
|
-
averageTime: totalDuration / iterations,
|
|
92
|
-
averageMemory: (memAfter - memBefore) / iterations,
|
|
93
|
-
timestamp: new Date(),
|
|
94
|
-
metadata,
|
|
95
|
-
};
|
|
87
|
+
return createBenchmarkResult(name, iterations, memBefore, memAfter, totalDuration, metadata);
|
|
96
88
|
}
|
|
97
89
|
/**
|
|
98
90
|
* Compare benchmarks
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Optimizer.d.ts","sourceRoot":"","sources":["../../../src/performance/Optimizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3E,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,QAAQ,IAAI,OAAO,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB,CAAC,CAAC;CACJ;
|
|
1
|
+
{"version":3,"file":"Optimizer.d.ts","sourceRoot":"","sources":["../../../src/performance/Optimizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3E,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,QAAQ,IAAI,OAAO,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB,CAAC,CAAC;CACJ;AAsDD;;;GAGG;AACH,eAAO,MAAM,eAAe;IAC1B;;OAEG;sBAES,MAAM,UACT,MAAM,eACD,MAAM,GACjB,gBAAgB;EAUnB,CAAC;AAiXH,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU;IACrB;;OAEG;cACO,WAAW;EAqCrB,CAAC;AAEH;;GAEG;AAEH;;GAEG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAC9B,UAAU,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EACnC,SAAS,GAAE,MAAU,GACpB,OAAO,CAAC,CAAC,EAAE,CAAC,CAWd;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAEjF;AAED,eAAO,MAAM,iBAAiB;;;EAG5B,CAAC;AAEH;;GAEG;AAEH;;GAEG;AAEH,wBAAgB,cAAc,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAC9D,EAAE,EAAE,CAAC,EACL,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/F,CAAC,CA+DH;AAED,eAAO,MAAM,OAAO;;EAElB,CAAC;AAEH,MAAM,WAAW,qBAAqB;IACpC,iBAAiB,CAAC,CAAC,EACjB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,WAAW,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAC5B,OAAO,CAAC,CAAC,CAAC,CAAC;IACd,kBAAkB,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7F,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,QAAQ,IAAI;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,WAAW,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;KAC/C,CAAC;IACF,SAAS,IAAI,IAAI,CAAC;IAClB,KAAK,IAAI,IAAI,CAAC;CACf;AASD;;;GAGG;AACH,eAAO,MAAM,oBAAoB;IAC/B;;OAEG;cACO,qBAAqB;EAoE/B,CAAC;AA2HH,eAAe,oBAAoB,CAAC"}
|
|
@@ -12,25 +12,25 @@ export type SigningCredentials = Readonly<{
|
|
|
12
12
|
keyId: string;
|
|
13
13
|
secret: string;
|
|
14
14
|
}>;
|
|
15
|
+
type VerifySigningParams = {
|
|
16
|
+
method: string;
|
|
17
|
+
url: string | URL;
|
|
18
|
+
body: string | Uint8Array;
|
|
19
|
+
headers: SigningHeaders;
|
|
20
|
+
};
|
|
21
|
+
type VerifySigningConfigParams = VerifySigningParams & {
|
|
22
|
+
signing: ProxySigningConfig;
|
|
23
|
+
};
|
|
24
|
+
type VerifySigningProviderParams = VerifySigningParams & {
|
|
25
|
+
windowMs: number;
|
|
26
|
+
getSecretForKeyId: (keyId: string) => string | undefined | Promise<string | undefined>;
|
|
27
|
+
verifyNonce?: (keyId: string, nonce: string, ttlMs: number) => Promise<boolean>;
|
|
28
|
+
};
|
|
15
29
|
type SigningServiceApi = Readonly<{
|
|
16
30
|
normalizeConfig: (signing: ProxySigningConfig) => ProxySigningConfig;
|
|
17
31
|
shouldVerify: (signing: ProxySigningConfig, headers: SigningHeaders) => boolean;
|
|
18
|
-
verify: (params:
|
|
19
|
-
|
|
20
|
-
url: string | URL;
|
|
21
|
-
body: string | Uint8Array;
|
|
22
|
-
headers: SigningHeaders;
|
|
23
|
-
signing: ProxySigningConfig;
|
|
24
|
-
}) => Promise<SigningVerificationResult>;
|
|
25
|
-
verifyWithKeyProvider: (params: {
|
|
26
|
-
method: string;
|
|
27
|
-
url: string | URL;
|
|
28
|
-
body: string | Uint8Array;
|
|
29
|
-
headers: SigningHeaders;
|
|
30
|
-
windowMs: number;
|
|
31
|
-
getSecretForKeyId: (keyId: string) => string | undefined | Promise<string | undefined>;
|
|
32
|
-
verifyNonce?: (keyId: string, nonce: string, ttlMs: number) => Promise<boolean>;
|
|
33
|
-
}) => Promise<SigningVerificationResult>;
|
|
32
|
+
verify: (params: VerifySigningConfigParams) => Promise<SigningVerificationResult>;
|
|
33
|
+
verifyWithKeyProvider: (params: VerifySigningProviderParams) => Promise<SigningVerificationResult>;
|
|
34
34
|
}>;
|
|
35
35
|
export declare const normalizeSigningConfig: (signing: ProxySigningConfig) => ProxySigningConfig;
|
|
36
36
|
export declare const normalizeSigningCredentials: (input: SigningCredentials) => SigningCredentials;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SigningService.d.ts","sourceRoot":"","sources":["../../../src/proxy/SigningService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAI7D,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAE1E,MAAM,MAAM,yBAAyB,GACjC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjE,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC;AAEH,KAAK,
|
|
1
|
+
{"version":3,"file":"SigningService.d.ts","sourceRoot":"","sources":["../../../src/proxy/SigningService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAI7D,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAE1E,MAAM,MAAM,yBAAyB,GACjC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjE,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC;AAEH,KAAK,mBAAmB,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;IAC1B,OAAO,EAAE,cAAc,CAAC;CACzB,CAAC;AAEF,KAAK,yBAAyB,GAAG,mBAAmB,GAAG;IACrD,OAAO,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAEF,KAAK,2BAA2B,GAAG,mBAAmB,GAAG;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACvF,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACjF,CAAC;AAEF,KAAK,iBAAiB,GAAG,QAAQ,CAAC;IAChC,eAAe,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,kBAAkB,CAAC;IACrE,YAAY,EAAE,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC;IAChF,MAAM,EAAE,CAAC,MAAM,EAAE,yBAAyB,KAAK,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAClF,qBAAqB,EAAE,CAAC,MAAM,EAAE,2BAA2B,KAAK,OAAO,CAAC,yBAAyB,CAAC,CAAC;CACpG,CAAC,CAAC;AA4CH,eAAO,MAAM,sBAAsB,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,kBAErB,CAAC;AAElD,eAAO,MAAM,2BAA2B,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,kBAEjB,CAAC;AA8EzD,eAAO,MAAM,cAAc,EAAE,iBAK3B,CAAC"}
|
|
@@ -28,16 +28,14 @@ const normalizeSecret = (secret) => {
|
|
|
28
28
|
return trimmed;
|
|
29
29
|
return Env.get('APP_KEY', '');
|
|
30
30
|
};
|
|
31
|
-
const
|
|
32
|
-
...
|
|
33
|
-
keyId: normalizeKeyId(signing.keyId),
|
|
34
|
-
secret: normalizeSecret(signing.secret),
|
|
35
|
-
});
|
|
36
|
-
export const normalizeSigningConfig = (signing) => normalizeConfig(signing);
|
|
37
|
-
export const normalizeSigningCredentials = (input) => ({
|
|
31
|
+
const normalizeSigningIdentity = (input) => ({
|
|
32
|
+
...input,
|
|
38
33
|
keyId: normalizeKeyId(input.keyId),
|
|
39
34
|
secret: normalizeSecret(input.secret),
|
|
40
35
|
});
|
|
36
|
+
const normalizeConfig = (signing) => normalizeSigningIdentity(signing);
|
|
37
|
+
export const normalizeSigningConfig = (signing) => normalizeConfig(signing);
|
|
38
|
+
export const normalizeSigningCredentials = (input) => normalizeSigningIdentity(input);
|
|
41
39
|
const shouldVerify = (signing, headers) => {
|
|
42
40
|
const normalized = normalizeConfig(signing);
|
|
43
41
|
if (normalized.require)
|
|
@@ -66,6 +64,7 @@ const mapVerifyResult = (result) => {
|
|
|
66
64
|
}
|
|
67
65
|
return { ok: false, status: 403, code: result.code, message: result.message };
|
|
68
66
|
};
|
|
67
|
+
const verifyAndMap = async (params) => mapVerifyResult(await SignedRequest.verify(params));
|
|
69
68
|
const verify = async (params) => {
|
|
70
69
|
const signing = normalizeConfig(params.signing);
|
|
71
70
|
if (signing.require && (signing.keyId.trim() === '' || signing.secret.trim() === '')) {
|
|
@@ -76,7 +75,7 @@ const verify = async (params) => {
|
|
|
76
75
|
message: 'Proxy signing is required but not configured',
|
|
77
76
|
};
|
|
78
77
|
}
|
|
79
|
-
|
|
78
|
+
return verifyAndMap({
|
|
80
79
|
method: params.method,
|
|
81
80
|
url: params.url,
|
|
82
81
|
body: params.body,
|
|
@@ -85,10 +84,9 @@ const verify = async (params) => {
|
|
|
85
84
|
getSecretForKeyId: async (keyId) => keyId.trim().toLowerCase() === signing.keyId ? signing.secret : undefined,
|
|
86
85
|
windowMs: signing.windowMs,
|
|
87
86
|
});
|
|
88
|
-
return mapVerifyResult(result);
|
|
89
87
|
};
|
|
90
88
|
const verifyWithKeyProvider = async (params) => {
|
|
91
|
-
|
|
89
|
+
return verifyAndMap({
|
|
92
90
|
method: params.method,
|
|
93
91
|
url: params.url,
|
|
94
92
|
body: params.body,
|
|
@@ -97,7 +95,6 @@ const verifyWithKeyProvider = async (params) => {
|
|
|
97
95
|
getSecretForKeyId: params.getSecretForKeyId,
|
|
98
96
|
verifyNonce: params.verifyNonce,
|
|
99
97
|
});
|
|
100
|
-
return mapVerifyResult(result);
|
|
101
98
|
};
|
|
102
99
|
export const SigningService = Object.freeze({
|
|
103
100
|
normalizeConfig,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MySqlProxyServer.d.ts","sourceRoot":"","sources":["../../../../src/proxy/mysql/MySqlProxyServer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAa5E,KAAK,cAAc,GAAG,kBAAkB,GAAG,yBAAyB,CAAC;AAkNrE,eAAO,MAAM,gBAAgB;sBACJ,cAAc,GAAQ,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"MySqlProxyServer.d.ts","sourceRoot":"","sources":["../../../../src/proxy/mysql/MySqlProxyServer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAa5E,KAAK,cAAc,GAAG,kBAAkB,GAAG,yBAAyB,CAAC;AAkNrE,eAAO,MAAM,gBAAgB;sBACJ,cAAc,GAAQ,OAAO,CAAC,IAAI,CAAC;EA0D1D,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
|
|
@@ -171,7 +171,9 @@ export const MySqlProxyServer = Object.freeze({
|
|
|
171
171
|
throw ErrorFactory.createConfigError(`MySQL proxy signing is required but credentials are missing. ` +
|
|
172
172
|
`Set MYSQL_PROXY_KEY_ID and MYSQL_PROXY_SECRET (fallbacks: APP_NAME and APP_KEY). ` +
|
|
173
173
|
`Resolved state: keyId=${config.signing.keyId || '<empty>'}, hasSecret=${String(signingHasSecret)}, ` +
|
|
174
|
-
`cwd=${typeof process !== 'undefined' && typeof process.cwd === 'function'
|
|
174
|
+
`cwd=${typeof process !== 'undefined' && typeof process.cwd === 'function'
|
|
175
|
+
? process.cwd()
|
|
176
|
+
: '<unknown>'}`);
|
|
175
177
|
}
|
|
176
178
|
// Debug: surface resolved config so we can compare watch vs non-watch runs
|
|
177
179
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/routes/error.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAKnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,KAAK,IAAI,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/routes/error.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAKnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,KAAK,IAAI,MAAM,uBAAuB,CAAC;AA4KnD;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,OAAO,KAAG,IAGrD,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,aAAa,EAAE,MAAM,MAAM,CAAC;IAC5B,mBAAmB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,cAAc,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9F,qCAAqC,EAAE,CACrC,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,SAAS,EACnB,KAAK,EAAE,OAAO,EACd,SAAS,CAAC,EAAE,MAAM,KACf,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,4BAA4B,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC;CAClE,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,eAMzB,CAAC;AAEH,eAAe,YAAY,CAAC"}
|
package/src/routes/error.js
CHANGED
|
@@ -92,7 +92,7 @@ const handleInternalServerErrorWithWrappers = async (request, response, error, r
|
|
|
92
92
|
? undefined
|
|
93
93
|
: `Request\n\nMethod: ${requestObj.method}\nPath: ${requestObj.path}\n\nHeaders:\n${safeJsonStringify(requestObj.headers)}\n\nQuery:\n${safeJsonStringify(requestObj.query)}`;
|
|
94
94
|
const requestRaw = requestObj === undefined ? undefined : safeJsonStringify(requestObj);
|
|
95
|
-
const stackPretty = isDev ?
|
|
95
|
+
const stackPretty = isDev ? err.stack ?? '' : undefined;
|
|
96
96
|
const stackRaw = isDev
|
|
97
97
|
? safeJsonStringify({ name: err.name, message: err.message, stack: err.stack })
|
|
98
98
|
: undefined;
|
|
@@ -175,7 +175,7 @@ function formatDenoResponse(response) {
|
|
|
175
175
|
*/
|
|
176
176
|
function getDenoEnvironment() {
|
|
177
177
|
// @ts-ignore - Deno.env is available in Deno runtime
|
|
178
|
-
const env = (typeof Deno === 'undefined' ? {} :
|
|
178
|
+
const env = (typeof Deno === 'undefined' ? {} : Deno.env.toObject?.() ?? {});
|
|
179
179
|
return {
|
|
180
180
|
nodeEnv: (env['DENO_ENV'] ?? 'production'),
|
|
181
181
|
runtime: 'deno',
|
|
@@ -138,7 +138,7 @@ function formatLambdaResponse(response) {
|
|
|
138
138
|
return {
|
|
139
139
|
statusCode: response.statusCode,
|
|
140
140
|
headers: response.headers,
|
|
141
|
-
body: typeof response.body === 'string' ? response.body :
|
|
141
|
+
body: typeof response.body === 'string' ? response.body : response.body?.toString('utf-8') ?? '',
|
|
142
142
|
isBase64Encoded: response.isBase64Encoded ?? false,
|
|
143
143
|
};
|
|
144
144
|
}
|
|
@@ -236,6 +236,17 @@ function getRemoteAddrV1(headers) {
|
|
|
236
236
|
}
|
|
237
237
|
return '0.0.0.0';
|
|
238
238
|
}
|
|
239
|
+
function parseHttpStyleRequest(event, resolveRemoteAddr) {
|
|
240
|
+
const headers = event.headers ?? {};
|
|
241
|
+
return createParsedLambdaRequest({
|
|
242
|
+
method: event.httpMethod,
|
|
243
|
+
path: event.path,
|
|
244
|
+
headers,
|
|
245
|
+
query: event.queryStringParameters ?? {},
|
|
246
|
+
body: event.body ?? null,
|
|
247
|
+
remoteAddr: resolveRemoteAddr(headers),
|
|
248
|
+
});
|
|
249
|
+
}
|
|
239
250
|
/**
|
|
240
251
|
* Parse API Gateway v2 request
|
|
241
252
|
*/
|
|
@@ -254,29 +265,16 @@ function parseV2Request(event) {
|
|
|
254
265
|
* Parse ALB request
|
|
255
266
|
*/
|
|
256
267
|
function parseAlbRequest(event) {
|
|
257
|
-
|
|
258
|
-
return {
|
|
259
|
-
method: event.httpMethod,
|
|
260
|
-
path: event.path,
|
|
261
|
-
headers,
|
|
262
|
-
query: event.queryStringParameters ?? {},
|
|
263
|
-
body: event.body ?? null,
|
|
264
|
-
remoteAddr: getRemoteAddrAlb(headers),
|
|
265
|
-
};
|
|
268
|
+
return parseHttpStyleRequest(event, getRemoteAddrAlb);
|
|
266
269
|
}
|
|
267
270
|
/**
|
|
268
271
|
* Parse API Gateway v1 request
|
|
269
272
|
*/
|
|
270
273
|
function parseV1Request(event) {
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
headers,
|
|
276
|
-
query: event.queryStringParameters ?? {},
|
|
277
|
-
body: event.body ?? null,
|
|
278
|
-
remoteAddr: getRemoteAddrV1(headers),
|
|
279
|
-
};
|
|
274
|
+
return parseHttpStyleRequest(event, getRemoteAddrV1);
|
|
275
|
+
}
|
|
276
|
+
function createParsedLambdaRequest(request) {
|
|
277
|
+
return request;
|
|
280
278
|
}
|
|
281
279
|
/**
|
|
282
280
|
* Normalize headers to lowercase
|
package/src/session/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { SessionManager } from './SessionManager';
|
|
2
|
-
export type { ISession, ISessionManager, SessionData, SessionManagerOptions } from './SessionManager';
|
|
2
|
+
export type { ISession, ISessionManager, SessionData, SessionManagerOptions, } from './SessionManager';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/session/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/session/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,YAAY,EACV,QAAQ,EACR,eAAe,EACf,WAAW,EACX,qBAAqB,GACtB,MAAM,yBAAyB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Broadcast.d.ts","sourceRoot":"","sources":["../../../../src/tools/broadcast/Broadcast.ts"],"names":[],"mappings":"AAQA,KAAK,WAAW,GAAG,QAAQ,CAAC;IAC1B,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3E,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Broadcast.d.ts","sourceRoot":"","sources":["../../../../src/tools/broadcast/Broadcast.ts"],"names":[],"mappings":"AAQA,KAAK,WAAW,GAAG,QAAQ,CAAC;IAC1B,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3E,CAAC,CAAC;AA0DH,eAAO,MAAM,SAAS;kBACA,MAAM,SAAS,MAAM,QAAQ,OAAO;0BAM5B,MAAM,SAAS,MAAM,QAAQ,OAAO;4BAMrD,MAAM,SACR,MAAM,QACP,OAAO,YACJ;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;qBAepC,MAAM;kCAEa,MAAM,SAAS,MAAM,QAAQ,OAAO;;uBAKrD,MAAM,GAAG,WAAW;EAQvC,CAAC;AAEH,eAAe,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-loader.d.ts","sourceRoot":"","sources":["../../../../src/tools/mail/template-loader.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"template-loader.d.ts","sourceRoot":"","sources":["../../../../src/tools/mail/template-loader.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAqM9D;;GAEG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,SAAS,GAAE,iBAAsB,GAChC,OAAO,CAAC,MAAM,CAAC,CAwBjB;AA2FD;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAShD"}
|
|
@@ -157,8 +157,7 @@ async function loadTemplateContent(templateName) {
|
|
|
157
157
|
}
|
|
158
158
|
// Extract last error from failed attempts
|
|
159
159
|
const lastError = fileResult.error ?? moduleResult.error;
|
|
160
|
-
throw ErrorFactory.createConfigError(`Failed to load template from known paths: ${[...fileCandidates, ...moduleCandidates].join(', ')}` +
|
|
161
|
-
(lastError === undefined ? '' : `. Last error: ${String(lastError)}`));
|
|
160
|
+
throw ErrorFactory.createConfigError(`Failed to load template from known paths: ${[...fileCandidates, ...moduleCandidates].join(', ')}` + (lastError === undefined ? '' : `. Last error: ${String(lastError)}`));
|
|
162
161
|
}
|
|
163
162
|
/**
|
|
164
163
|
* Load and render email template with variable substitution
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeoutManager.d.ts","sourceRoot":"","sources":["../../../../src/tools/queue/TimeoutManager.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AA8BF,eAAO,MAAM,cAAc;4BACD,MAAM;gBAKZ,CAAC,aACN,MAAM,OAAO,CAAC,CAAC,CAAC,aAChB,MAAM,iBACF,MAAM,mBACJ,MAAM,OAAO,CAAC,CAAC,CAAC,GAChC,OAAO,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"TimeoutManager.d.ts","sourceRoot":"","sources":["../../../../src/tools/queue/TimeoutManager.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AA8BF,eAAO,MAAM,cAAc;4BACD,MAAM;gBAKZ,CAAC,aACN,MAAM,OAAO,CAAC,CAAC,CAAC,aAChB,MAAM,iBACF,MAAM,mBACJ,MAAM,OAAO,CAAC,CAAC,CAAC,GAChC,OAAO,CAAC,CAAC,CAAC;qBAuBU,CAAC,aAAa,MAAM,OAAO,CAAC,CAAC,CAAC,UAAU,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;4BA7CjE,OAAO,KAAG,OAAO;EAqE9C,CAAC;AAEH,eAAe,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Database.d.ts","sourceRoot":"","sources":["../../../../../src/tools/queue/drivers/Database.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1F,OAAO,CAAC,CAAC,GAAG,OAAO,EACjB,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACxC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D;AAED,eAAO,MAAM,aAAa;uBAkBR,CAAC,mBACN,MAAM,WACJ,CAAC,mBACO,MAAM,KACtB,OAAO,CAAC,MAAM,CAAC;uBAkBJ,CAAC,mBACN,MAAM,mBACI,MAAM,KACtB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Database.d.ts","sourceRoot":"","sources":["../../../../../src/tools/queue/drivers/Database.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1F,OAAO,CAAC,CAAC,GAAG,OAAO,EACjB,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACxC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D;AAED,eAAO,MAAM,aAAa;uBAkBR,CAAC,mBACN,MAAM,WACJ,CAAC,mBACO,MAAM,KACtB,OAAO,CAAC,MAAM,CAAC;uBAkBJ,CAAC,mBACN,MAAM,mBACI,MAAM,KACtB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;0BAwEtB,MAAM,MAAM,MAAM,mBAAmB,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;6BAYxD,MAAM,mBAAmB,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;4BAoBlD,MAAM,mBAAmB,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;CASlE,CAAC;AAEL,eAAe,aAAa,CAAC"}
|