common-tg-service 1.0.41 → 1.0.43
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/dist/app.module.js +4 -1
- package/dist/app.module.js.map +1 -1
- package/dist/components/timestamps/timestamp.controller.d.ts +8 -0
- package/dist/components/timestamps/timestamp.controller.js +70 -0
- package/dist/components/timestamps/timestamp.controller.js.map +1 -0
- package/dist/components/timestamps/timestamp.module.d.ts +2 -0
- package/dist/components/timestamps/timestamp.module.js +35 -0
- package/dist/components/timestamps/timestamp.module.js.map +1 -0
- package/dist/components/timestamps/timestamp.service.d.ts +37 -0
- package/dist/components/timestamps/timestamp.service.js +102 -0
- package/dist/components/timestamps/timestamp.service.js.map +1 -0
- package/dist/components/timestamps/timestamps.schema.d.ts +38 -0
- package/dist/components/timestamps/timestamps.schema.js +34 -0
- package/dist/components/timestamps/timestamps.schema.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
package/dist/app.module.js
CHANGED
|
@@ -30,6 +30,7 @@ const promote_client_module_1 = require("./components/promote-clients/promote-cl
|
|
|
30
30
|
const TgSignup_module_1 = require("./components/TgSignup/TgSignup.module");
|
|
31
31
|
const transaction_module_1 = require("./components/transactions/transaction.module");
|
|
32
32
|
const npoint_module_1 = require("./components/n-point/npoint.module");
|
|
33
|
+
const timestamp_module_1 = require("./components/timestamps/timestamp.module");
|
|
33
34
|
let AppModule = class AppModule {
|
|
34
35
|
configure(consumer) {
|
|
35
36
|
consumer.apply(logger_middleware_1.LoggerMiddleware).forRoutes('*');
|
|
@@ -58,6 +59,7 @@ exports.AppModule = AppModule = __decorate([
|
|
|
58
59
|
TgSignup_module_1.TgSignupModule,
|
|
59
60
|
transaction_module_1.TransactionModule,
|
|
60
61
|
npoint_module_1.NpointModule,
|
|
62
|
+
timestamp_module_1.TimestampModule,
|
|
61
63
|
],
|
|
62
64
|
controllers: [app_controller_1.AppController],
|
|
63
65
|
providers: [app_service_1.AppService],
|
|
@@ -72,7 +74,8 @@ exports.AppModule = AppModule = __decorate([
|
|
|
72
74
|
channels_module_1.ChannelsModule,
|
|
73
75
|
promote_client_module_1.PromoteClientModule,
|
|
74
76
|
TgSignup_module_1.TgSignupModule,
|
|
75
|
-
transaction_module_1.TransactionModule
|
|
77
|
+
transaction_module_1.TransactionModule,
|
|
78
|
+
timestamp_module_1.TimestampModule
|
|
76
79
|
]
|
|
77
80
|
})
|
|
78
81
|
], AppModule);
|
package/dist/app.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAuF;AACvF,kEAA8D;AAC9D,8EAAyE;AACzE,sEAAkE;AAClE,2EAAuE;AACvE,2FAAsF;AACtF,gGAA2F;AAC3F,iGAA4F;AAC5F,4EAAwE;AACxE,2EAAuE;AACvE,qDAAiD;AACjD,+CAA2C;AAC3C,uEAAmE;AACnE,mEAA+D;AAC/D,wEAAkE;AAClE,uFAAiF;AACjF,gEAA4D;AAC5D,mEAA+D;AAC/D,wFAAmF;AACnF,8FAAyF;AACzF,2EAAuE;AACvE,qFAAiF;AACjF,sEAAkE;
|
|
1
|
+
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAuF;AACvF,kEAA8D;AAC9D,8EAAyE;AACzE,sEAAkE;AAClE,2EAAuE;AACvE,2FAAsF;AACtF,gGAA2F;AAC3F,iGAA4F;AAC5F,4EAAwE;AACxE,2EAAuE;AACvE,qDAAiD;AACjD,+CAA2C;AAC3C,uEAAmE;AACnE,mEAA+D;AAC/D,wEAAkE;AAClE,uFAAiF;AACjF,gEAA4D;AAC5D,mEAA+D;AAC/D,wFAAmF;AACnF,8FAAyF;AACzF,2EAAuE;AACvE,qFAAiF;AACjF,sEAAkE;AAClE,+EAA2E;AA0CpE,IAAM,SAAS,GAAf,MAAM,SAAS;IACpB,SAAS,CAAC,QAA4B;QACpC,QAAQ,CAAC,KAAK,CAAC,oCAAgB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;CACF,CAAA;AAJY,8BAAS;oBAAT,SAAS;IAxCrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,wBAAU;YACV,gCAAc;YACd,6CAAoB;YACpB,4BAAY;YACZ,iCAAc;YACd,0BAAW;YACX,yCAAkB;YAClB,6CAAoB;YACpB,gCAAc;YACd,2CAAmB;YACnB,0BAAW;YACX,4BAAW;YACX,sCAAgB;YAChB,uCAAiB;YACjB,wBAAU;YACV,0BAAW;YACX,gCAAc;YACd,sCAAiB;YACjB,4BAAY;YACZ,kCAAe;SAChB;QACD,WAAW,EAAC,CAAC,8BAAa,CAAC;QAC3B,SAAS,EAAC,CAAC,wBAAU,CAAC;QACtB,OAAO,EAAC;YACN,gCAAc;YACd,6CAAoB;YACpB,4BAAY;YACZ,iCAAc;YACd,0BAAW;YACX,yCAAkB;YAClB,6CAAoB;YACpB,gCAAc;YACd,2CAAmB;YACnB,gCAAc;YACd,sCAAiB;YACjB,kCAAe;SAChB;KACF,CAAC;GACW,SAAS,CAIrB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { TimestampService } from './timestamp.service';
|
|
2
|
+
export declare class TimestampController {
|
|
3
|
+
private readonly timestampService;
|
|
4
|
+
constructor(timestampService: TimestampService);
|
|
5
|
+
findOne(): Promise<any>;
|
|
6
|
+
getClientsWithTimeDifference(thresholdMinutes?: number): Promise<any[]>;
|
|
7
|
+
update(updateTimestampDto: any): Promise<any>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.TimestampController = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
18
|
+
const timestamp_service_1 = require("./timestamp.service");
|
|
19
|
+
let TimestampController = class TimestampController {
|
|
20
|
+
constructor(timestampService) {
|
|
21
|
+
this.timestampService = timestampService;
|
|
22
|
+
}
|
|
23
|
+
async findOne() {
|
|
24
|
+
return this.timestampService.findOne();
|
|
25
|
+
}
|
|
26
|
+
async getClientsWithTimeDifference(thresholdMinutes) {
|
|
27
|
+
const threshold = thresholdMinutes ? thresholdMinutes * 60 * 1000 : 3 * 60 * 1000;
|
|
28
|
+
return this.timestampService.getClientsWithTimeDifference(threshold);
|
|
29
|
+
}
|
|
30
|
+
async update(updateTimestampDto) {
|
|
31
|
+
return this.timestampService.update(updateTimestampDto);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
exports.TimestampController = TimestampController;
|
|
35
|
+
__decorate([
|
|
36
|
+
(0, common_1.Get)(),
|
|
37
|
+
(0, swagger_1.ApiOperation)({ summary: 'Get timestamp data' }),
|
|
38
|
+
__metadata("design:type", Function),
|
|
39
|
+
__metadata("design:paramtypes", []),
|
|
40
|
+
__metadata("design:returntype", Promise)
|
|
41
|
+
], TimestampController.prototype, "findOne", null);
|
|
42
|
+
__decorate([
|
|
43
|
+
(0, common_1.Get)('stalled'),
|
|
44
|
+
(0, swagger_1.ApiOperation)({ summary: 'Get clients with time differences greater than threshold' }),
|
|
45
|
+
(0, swagger_1.ApiQuery)({
|
|
46
|
+
name: 'threshold',
|
|
47
|
+
type: Number,
|
|
48
|
+
required: false,
|
|
49
|
+
description: 'Minimum time difference in minutes (default: 3)'
|
|
50
|
+
}),
|
|
51
|
+
__param(0, (0, common_1.Query)('threshold')),
|
|
52
|
+
__metadata("design:type", Function),
|
|
53
|
+
__metadata("design:paramtypes", [Number]),
|
|
54
|
+
__metadata("design:returntype", Promise)
|
|
55
|
+
], TimestampController.prototype, "getClientsWithTimeDifference", null);
|
|
56
|
+
__decorate([
|
|
57
|
+
(0, common_1.Patch)(),
|
|
58
|
+
(0, swagger_1.ApiOperation)({ summary: 'Update timestamp data' }),
|
|
59
|
+
(0, swagger_1.ApiBody)({ type: Object }),
|
|
60
|
+
__param(0, (0, common_1.Body)()),
|
|
61
|
+
__metadata("design:type", Function),
|
|
62
|
+
__metadata("design:paramtypes", [Object]),
|
|
63
|
+
__metadata("design:returntype", Promise)
|
|
64
|
+
], TimestampController.prototype, "update", null);
|
|
65
|
+
exports.TimestampController = TimestampController = __decorate([
|
|
66
|
+
(0, swagger_1.ApiTags)('Timestamps'),
|
|
67
|
+
(0, common_1.Controller)('timestamps'),
|
|
68
|
+
__metadata("design:paramtypes", [timestamp_service_1.TimestampService])
|
|
69
|
+
], TimestampController);
|
|
70
|
+
//# sourceMappingURL=timestamp.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timestamp.controller.js","sourceRoot":"","sources":["../../../src/components/timestamps/timestamp.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAqE;AACrE,6CAA2E;AAC3E,2DAAuD;AAIhD,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,YAA6B,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;IAAG,CAAC;IAI7D,AAAN,KAAK,CAAC,OAAO;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;IACzC,CAAC;IAUK,AAAN,KAAK,CAAC,4BAA4B,CAAqB,gBAAyB;QAE9E,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QAClF,OAAO,IAAI,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC;IACvE,CAAC;IAKK,AAAN,KAAK,CAAC,MAAM,CAAS,kBAAuB;QAC1C,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC1D,CAAC;CACF,CAAA;AA7BY,kDAAmB;AAKxB;IAFL,IAAA,YAAG,GAAE;IACL,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;;;;kDAG/C;AAUK;IARL,IAAA,YAAG,EAAC,SAAS,CAAC;IACd,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,0DAA0D,EAAE,CAAC;IACrF,IAAA,kBAAQ,EAAC;QACR,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,iDAAiD;KAC/D,CAAC;IACkC,WAAA,IAAA,cAAK,EAAC,WAAW,CAAC,CAAA;;;;uEAIrD;AAKK;IAHL,IAAA,cAAK,GAAE;IACP,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;IAClD,IAAA,iBAAO,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACZ,WAAA,IAAA,aAAI,GAAE,CAAA;;;;iDAEnB;8BA5BU,mBAAmB;IAF/B,IAAA,iBAAO,EAAC,YAAY,CAAC;IACrB,IAAA,mBAAU,EAAC,YAAY,CAAC;qCAEwB,oCAAgB;GADpD,mBAAmB,CA6B/B"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.TimestampModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const mongoose_1 = require("@nestjs/mongoose");
|
|
12
|
+
const timestamp_service_1 = require("./timestamp.service");
|
|
13
|
+
const timestamp_controller_1 = require("./timestamp.controller");
|
|
14
|
+
const timestamps_schema_1 = require("./timestamps.schema");
|
|
15
|
+
const client_module_1 = require("../clients/client.module");
|
|
16
|
+
let TimestampModule = class TimestampModule {
|
|
17
|
+
};
|
|
18
|
+
exports.TimestampModule = TimestampModule;
|
|
19
|
+
exports.TimestampModule = TimestampModule = __decorate([
|
|
20
|
+
(0, common_1.Global)(),
|
|
21
|
+
(0, common_1.Module)({
|
|
22
|
+
imports: [
|
|
23
|
+
mongoose_1.MongooseModule.forFeature([{
|
|
24
|
+
name: 'timestampModule',
|
|
25
|
+
collection: 'timestamps',
|
|
26
|
+
schema: timestamps_schema_1.TimestampSchema
|
|
27
|
+
}]),
|
|
28
|
+
client_module_1.ClientModule,
|
|
29
|
+
],
|
|
30
|
+
providers: [timestamp_service_1.TimestampService],
|
|
31
|
+
controllers: [timestamp_controller_1.TimestampController],
|
|
32
|
+
exports: [timestamp_service_1.TimestampService],
|
|
33
|
+
})
|
|
34
|
+
], TimestampModule);
|
|
35
|
+
//# sourceMappingURL=timestamp.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timestamp.module.js","sourceRoot":"","sources":["../../../src/components/timestamps/timestamp.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAChD,+CAAkD;AAClD,2DAAuD;AACvD,iEAA6D;AAC7D,2DAAsD;AACtD,4DAAwD;AAgBjD,IAAM,eAAe,GAArB,MAAM,eAAe;CAAG,CAAA;AAAlB,0CAAe;0BAAf,eAAe;IAd3B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,yBAAc,CAAC,UAAU,CAAC,CAAC;oBACzB,IAAI,EAAE,iBAAiB;oBACvB,UAAU,EAAE,YAAY;oBACxB,MAAM,EAAE,mCAAe;iBACxB,CAAC,CAAC;YACH,4BAAY;SACb;QACD,SAAS,EAAE,CAAC,oCAAgB,CAAC;QAC7B,WAAW,EAAE,CAAC,0CAAmB,CAAC;QAClC,OAAO,EAAE,CAAC,oCAAgB,CAAC;KAC5B,CAAC;GACW,eAAe,CAAG"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/// <reference types="mongoose/types/aggregate" />
|
|
2
|
+
/// <reference types="mongoose/types/callback" />
|
|
3
|
+
/// <reference types="mongoose/types/collection" />
|
|
4
|
+
/// <reference types="mongoose/types/connection" />
|
|
5
|
+
/// <reference types="mongoose/types/cursor" />
|
|
6
|
+
/// <reference types="mongoose/types/document" />
|
|
7
|
+
/// <reference types="mongoose/types/error" />
|
|
8
|
+
/// <reference types="mongoose/types/expressions" />
|
|
9
|
+
/// <reference types="mongoose/types/helpers" />
|
|
10
|
+
/// <reference types="mongoose/types/middlewares" />
|
|
11
|
+
/// <reference types="mongoose/types/indexes" />
|
|
12
|
+
/// <reference types="mongoose/types/models" />
|
|
13
|
+
/// <reference types="mongoose/types/mongooseoptions" />
|
|
14
|
+
/// <reference types="mongoose/types/pipelinestage" />
|
|
15
|
+
/// <reference types="mongoose/types/populate" />
|
|
16
|
+
/// <reference types="mongoose/types/query" />
|
|
17
|
+
/// <reference types="mongoose/types/schemaoptions" />
|
|
18
|
+
/// <reference types="mongoose/types/schematypes" />
|
|
19
|
+
/// <reference types="mongoose/types/session" />
|
|
20
|
+
/// <reference types="mongoose/types/types" />
|
|
21
|
+
/// <reference types="mongoose/types/utility" />
|
|
22
|
+
/// <reference types="mongoose/types/validation" />
|
|
23
|
+
/// <reference types="mongoose/types/virtuals" />
|
|
24
|
+
/// <reference types="mongoose/types/inferschematype" />
|
|
25
|
+
/// <reference types="mongoose/types/inferrawdoctype" />
|
|
26
|
+
import { Model } from 'mongoose';
|
|
27
|
+
import { Timestamp } from './timestamps.schema';
|
|
28
|
+
import { ClientService } from '../clients/client.service';
|
|
29
|
+
export declare class TimestampService {
|
|
30
|
+
private timestampModel;
|
|
31
|
+
private clientService;
|
|
32
|
+
constructor(timestampModel: Model<Timestamp>, clientService: ClientService);
|
|
33
|
+
findOne(): Promise<any>;
|
|
34
|
+
getTimeDifferences(threshold?: number): Promise<any>;
|
|
35
|
+
getClientsWithTimeDifference(threshold?: number): Promise<any[]>;
|
|
36
|
+
update(updateTimestampDto: any): Promise<any>;
|
|
37
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.TimestampService = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const mongoose_1 = require("@nestjs/mongoose");
|
|
18
|
+
const mongoose_2 = require("mongoose");
|
|
19
|
+
const client_service_1 = require("../clients/client.service");
|
|
20
|
+
let TimestampService = class TimestampService {
|
|
21
|
+
constructor(timestampModel, clientService) {
|
|
22
|
+
this.timestampModel = timestampModel;
|
|
23
|
+
this.clientService = clientService;
|
|
24
|
+
}
|
|
25
|
+
async findOne() {
|
|
26
|
+
const timestamp = await this.timestampModel.findOne({}).lean().exec();
|
|
27
|
+
if (!timestamp) {
|
|
28
|
+
throw new common_1.NotFoundException(`Timestamp not found`);
|
|
29
|
+
}
|
|
30
|
+
if (timestamp._id) {
|
|
31
|
+
delete timestamp._id;
|
|
32
|
+
}
|
|
33
|
+
return timestamp;
|
|
34
|
+
}
|
|
35
|
+
async getTimeDifferences(threshold = 3 * 60 * 1000) {
|
|
36
|
+
const timestamp = await this.timestampModel.findOne({}).lean().exec();
|
|
37
|
+
if (!timestamp) {
|
|
38
|
+
throw new common_1.NotFoundException(`Timestamp not found`);
|
|
39
|
+
}
|
|
40
|
+
const currentTime = Date.now();
|
|
41
|
+
const differences = {};
|
|
42
|
+
Object.keys(timestamp).forEach(key => {
|
|
43
|
+
if (key === '_id' || typeof timestamp[key] !== 'number') {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const difference = currentTime - timestamp[key];
|
|
47
|
+
if (difference > threshold) {
|
|
48
|
+
differences[key] = difference;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
console.log(`Difference for ${key} is within the threshold: ${difference}ms`);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
return differences;
|
|
55
|
+
}
|
|
56
|
+
async getClientsWithTimeDifference(threshold = 3 * 60 * 1000) {
|
|
57
|
+
const differences = await this.getTimeDifferences(threshold);
|
|
58
|
+
const clientIds = Object.keys(differences);
|
|
59
|
+
if (clientIds.length === 0) {
|
|
60
|
+
return [];
|
|
61
|
+
}
|
|
62
|
+
const urls = [];
|
|
63
|
+
for (const clientId of clientIds) {
|
|
64
|
+
const clientParams = clientId.split('_');
|
|
65
|
+
try {
|
|
66
|
+
const client = await this.clientService.findOne(clientParams[0], false);
|
|
67
|
+
if (client) {
|
|
68
|
+
if (clientParams[1]) {
|
|
69
|
+
urls.push(client.promoteRepl);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
urls.push(client.repl);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
console.error(`Error fetching client with ID ${clientId}:`, error.message);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return urls;
|
|
81
|
+
}
|
|
82
|
+
async update(updateTimestampDto) {
|
|
83
|
+
delete updateTimestampDto['_id'];
|
|
84
|
+
const updatedTimestamp = await this.timestampModel.findOneAndUpdate({}, { $set: { ...updateTimestampDto } }, { new: true, upsert: true, lean: true }).exec();
|
|
85
|
+
if (!updatedTimestamp) {
|
|
86
|
+
throw new common_1.NotFoundException(`Timestamp not found`);
|
|
87
|
+
}
|
|
88
|
+
if (updatedTimestamp._id) {
|
|
89
|
+
delete updatedTimestamp._id;
|
|
90
|
+
}
|
|
91
|
+
return updatedTimestamp;
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
exports.TimestampService = TimestampService;
|
|
95
|
+
exports.TimestampService = TimestampService = __decorate([
|
|
96
|
+
(0, common_1.Injectable)(),
|
|
97
|
+
__param(0, (0, mongoose_1.InjectModel)('timestampModule')),
|
|
98
|
+
__param(1, (0, common_1.Inject)((0, common_1.forwardRef)(() => client_service_1.ClientService))),
|
|
99
|
+
__metadata("design:paramtypes", [mongoose_2.Model,
|
|
100
|
+
client_service_1.ClientService])
|
|
101
|
+
], TimestampService);
|
|
102
|
+
//# sourceMappingURL=timestamp.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timestamp.service.js","sourceRoot":"","sources":["../../../src/components/timestamps/timestamp.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAmF;AACnF,+CAA+C;AAC/C,uCAAiC;AAEjC,8DAA0D;AAGnD,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IACzB,YAC4C,cAAgC,EAEhE,aAA4B;QAFI,mBAAc,GAAd,cAAc,CAAkB;QAEhE,kBAAa,GAAb,aAAa,CAAe;IACpC,CAAC;IAEL,KAAK,CAAC,OAAO;QACT,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QACtE,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,0BAAiB,CAAC,qBAAqB,CAAC,CAAC;QACvD,CAAC;QAGD,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC;YAChB,OAAO,SAAS,CAAC,GAAG,CAAC;QACzB,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,YAAoB,CAAC,GAAG,EAAE,GAAG,IAAI;QACtD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QACtE,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,0BAAiB,CAAC,qBAAqB,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,EAAE,CAAC;QAGvB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAEjC,IAAI,GAAG,KAAK,KAAK,IAAI,OAAO,SAAS,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACtD,OAAO;YACX,CAAC;YAED,MAAM,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;YAGhD,IAAI,UAAU,GAAG,SAAS,EAAE,CAAC;gBACzB,WAAW,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,6BAA6B,UAAU,IAAI,CAAC,CAAC;YAClF,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,4BAA4B,CAAC,YAAoB,CAAC,GAAG,EAAE,GAAG,IAAI;QAChE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC7D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE3C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC/B,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACzC,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBACxE,IAAI,MAAM,EAAE,CAAC;oBACT,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;wBAClB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;oBAClC,CAAC;yBAAM,CAAC;wBACJ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC3B,CAAC;gBACL,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,iCAAiC,QAAQ,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC/E,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,kBAAuB;QAEhC,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAEjC,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAC/D,EAAE,EACF,EAAE,IAAI,EAAE,EAAE,GAAG,kBAAkB,EAAE,EAAE,EACnC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAC1C,CAAC,IAAI,EAAE,CAAC;QAET,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpB,MAAM,IAAI,0BAAiB,CAAC,qBAAqB,CAAC,CAAC;QACvD,CAAC;QAGD,IAAI,gBAAgB,CAAC,GAAG,EAAE,CAAC;YACvB,OAAO,gBAAgB,CAAC,GAAG,CAAC;QAChC,CAAC;QAED,OAAO,gBAAgB,CAAC;IAC5B,CAAC;CACJ,CAAA;AAnGY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;IAGJ,WAAA,IAAA,sBAAW,EAAC,iBAAiB,CAAC,CAAA;IAC9B,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,8BAAa,CAAC,CAAC,CAAA;qCADgB,gBAAK;QAEtC,8BAAa;GAJ/B,gBAAgB,CAmG5B"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/// <reference types="mongoose/types/aggregate" />
|
|
2
|
+
/// <reference types="mongoose/types/callback" />
|
|
3
|
+
/// <reference types="mongoose/types/collection" />
|
|
4
|
+
/// <reference types="mongoose/types/connection" />
|
|
5
|
+
/// <reference types="mongoose/types/cursor" />
|
|
6
|
+
/// <reference types="mongoose/types/document" />
|
|
7
|
+
/// <reference types="mongoose/types/error" />
|
|
8
|
+
/// <reference types="mongoose/types/expressions" />
|
|
9
|
+
/// <reference types="mongoose/types/helpers" />
|
|
10
|
+
/// <reference types="mongoose/types/middlewares" />
|
|
11
|
+
/// <reference types="mongoose/types/indexes" />
|
|
12
|
+
/// <reference types="mongoose/types/models" />
|
|
13
|
+
/// <reference types="mongoose/types/mongooseoptions" />
|
|
14
|
+
/// <reference types="mongoose/types/pipelinestage" />
|
|
15
|
+
/// <reference types="mongoose/types/populate" />
|
|
16
|
+
/// <reference types="mongoose/types/query" />
|
|
17
|
+
/// <reference types="mongoose/types/schemaoptions" />
|
|
18
|
+
/// <reference types="mongoose/types/schematypes" />
|
|
19
|
+
/// <reference types="mongoose/types/session" />
|
|
20
|
+
/// <reference types="mongoose/types/types" />
|
|
21
|
+
/// <reference types="mongoose/types/utility" />
|
|
22
|
+
/// <reference types="mongoose/types/validation" />
|
|
23
|
+
/// <reference types="mongoose/types/virtuals" />
|
|
24
|
+
/// <reference types="mongoose/types/inferschematype" />
|
|
25
|
+
/// <reference types="mongoose/types/inferrawdoctype" />
|
|
26
|
+
import mongoose, { Document } from 'mongoose';
|
|
27
|
+
export type TimestampDocument = Timestamp & Document;
|
|
28
|
+
export declare class Timestamp {
|
|
29
|
+
}
|
|
30
|
+
export declare const TimestampSchema: mongoose.Schema<Timestamp, mongoose.Model<Timestamp, any, any, any, mongoose.Document<unknown, any, Timestamp> & Timestamp & Required<{
|
|
31
|
+
_id: unknown;
|
|
32
|
+
}> & {
|
|
33
|
+
__v: number;
|
|
34
|
+
}, any>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, Timestamp, mongoose.Document<unknown, {}, mongoose.FlatRecord<Timestamp>> & mongoose.FlatRecord<Timestamp> & Required<{
|
|
35
|
+
_id: unknown;
|
|
36
|
+
}> & {
|
|
37
|
+
__v: number;
|
|
38
|
+
}>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.TimestampSchema = exports.Timestamp = void 0;
|
|
13
|
+
const mongoose_1 = require("@nestjs/mongoose");
|
|
14
|
+
const mongoose_2 = __importDefault(require("mongoose"));
|
|
15
|
+
let Timestamp = class Timestamp {
|
|
16
|
+
};
|
|
17
|
+
exports.Timestamp = Timestamp;
|
|
18
|
+
exports.Timestamp = Timestamp = __decorate([
|
|
19
|
+
(0, mongoose_1.Schema)({
|
|
20
|
+
versionKey: false,
|
|
21
|
+
autoIndex: true,
|
|
22
|
+
strict: false,
|
|
23
|
+
timestamps: true,
|
|
24
|
+
toJSON: {
|
|
25
|
+
virtuals: true,
|
|
26
|
+
transform: (doc, ret) => {
|
|
27
|
+
delete ret._id;
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
})
|
|
31
|
+
], Timestamp);
|
|
32
|
+
exports.TimestampSchema = mongoose_1.SchemaFactory.createForClass(Timestamp);
|
|
33
|
+
exports.TimestampSchema.add({ type: mongoose_2.default.Schema.Types.Mixed });
|
|
34
|
+
//# sourceMappingURL=timestamps.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timestamps.schema.js","sourceRoot":"","sources":["../../../src/components/timestamps/timestamps.schema.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAyD;AACzD,wDAA8C;AAgBvC,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IAZrB,IAAA,iBAAM,EAAC;QACN,UAAU,EAAE,KAAK;QACjB,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,KAAK;QACb,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE;YACN,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBACtB,OAAO,GAAG,CAAC,GAAG,CAAC;YACjB,CAAC;SACF;KACF,CAAC;GACW,SAAS,CAAG;AAEZ,QAAA,eAAe,GAAG,wBAAa,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AACvE,uBAAe,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,kBAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -86,6 +86,9 @@ export * from './components/ConfigurationInit/configuration.schema';
|
|
|
86
86
|
export * from './components/builds/build.module';
|
|
87
87
|
export * from './components/builds/build.service';
|
|
88
88
|
export * from './components/builds/builds.schema';
|
|
89
|
+
export * from './components/timestamps/timestamp.module';
|
|
90
|
+
export * from './components/timestamps/timestamp.service';
|
|
91
|
+
export * from './components/timestamps/timestamps.schema';
|
|
89
92
|
export * from './components/n-point/npoint.module';
|
|
90
93
|
export * from './components/n-point/npoint.service';
|
|
91
94
|
export * from './utils';
|
package/dist/index.js
CHANGED
|
@@ -107,6 +107,9 @@ __exportStar(require("./components/ConfigurationInit/configuration.schema"), exp
|
|
|
107
107
|
__exportStar(require("./components/builds/build.module"), exports);
|
|
108
108
|
__exportStar(require("./components/builds/build.service"), exports);
|
|
109
109
|
__exportStar(require("./components/builds/builds.schema"), exports);
|
|
110
|
+
__exportStar(require("./components/timestamps/timestamp.module"), exports);
|
|
111
|
+
__exportStar(require("./components/timestamps/timestamp.service"), exports);
|
|
112
|
+
__exportStar(require("./components/timestamps/timestamps.schema"), exports);
|
|
110
113
|
__exportStar(require("./components/n-point/npoint.module"), exports);
|
|
111
114
|
__exportStar(require("./components/n-point/npoint.service"), exports);
|
|
112
115
|
__exportStar(require("./utils"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAOA,+CAA6B;AAC7B,kEAAgD;AAGhD,sDAAoC;AACpC,qDAAmC;AACnC,mDAAiC;AAGjC,wEAAsD;AACtD,yEAAuD;AACvD,wEAAsD;AACtD,iFAA+D;AAC/D,8EAA4D;AAC5D,4DAA0C;AAC1C,wEAAsD;AACtD,yEAAuD;AACvD,0EAAwD;AAGxD,qEAAmD;AACnD,sEAAoD;AACpD,6EAA2D;AAC3D,6EAA2D;AAC3D,6EAA2D;AAC3D,4EAA0D;AAC1D,6EAA2D;AAG3D,sFAAoE;AACpE,uFAAqE;AACrE,6FAA2E;AAC3E,6FAA2E;AAC3E,6FAA2E;AAG3E,mFAAiE;AACjE,oFAAkE;AAClE,2FAAyE;AACzE,2FAAyE;AACzE,4FAA0E;AAC1E,2FAAyE;AAGzE,uFAAqE;AACrE,wFAAsE;AAGtE,wEAAsD;AACtD,yEAAuD;AACvD,+EAA6D;AAC7D,+EAA6D;AAC7D,+EAA6D;AAC7D,+EAA6D;AAG7D,kEAAgD;AAChD,mEAAiD;AACjD,yEAAuD;AACvD,yEAAuD;AACvD,yEAAuD;AACvD,0EAAwD;AACxD,2EAAyD;AACzD,kFAAgE;AAChE,kFAAgE;AAChE,kFAAgE;AAGhE,iEAA+C;AAC/C,kEAAgD;AAChD,iEAA+C;AAC/C,qEAAmD;AACnD,qEAAmD;AACnD,mEAAiD;AACjD,oEAAkD;AAClD,iEAAmG;AAA1F,qGAAA,KAAK,OAAA;AAAiB,2GAAA,UAAU,OAAe;AACxD,yEAAuF;AAA9E,kHAAA,aAAa,OAAkB;AACxC,yEAAuF;AAA9E,kHAAA,aAAa,OAAkB;AACxC,iFAA+D;AAC/D,kFAAgE;AAChE,yFAAuE;AACvE,yFAAuE;AACvE,yFAAuE;AAGvE,qFAAmE;AACnE,sFAAoE;AACpE,6FAA2E;AAC3E,6FAA2E;AAC3E,6FAA2E;AAC3E,6FAA2E;AAC3E,gFAA8D;AAC9D,iFAA+D;AAC/D,gFAA8D;AAG9D,+EAA6D;AAC7D,gFAA8D;AAC9D,uFAAqE;AACrE,uFAAqE;AACrE,uFAAqE;AACrE,sEAAoD;AACpD,uEAAqD;AACrD,sEAAoD;AAGpD,6EAA2D;AAC3D,8EAA4D;AAC5D,sFAAoE;AACpE,mEAAiD;AACjD,oEAAkD;AAClD,oEAAkD;AAClD,qEAAmD;AACnD,sEAAoD;AAGpD,0CAAwB;AACxB,2DAAyC;AACzC,qDAAmC;AACnC,kDAAgC;AAChC,8CAA4B;AAC5B,wDAAsC;AAGtC,8EAA4D"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAOA,+CAA6B;AAC7B,kEAAgD;AAGhD,sDAAoC;AACpC,qDAAmC;AACnC,mDAAiC;AAGjC,wEAAsD;AACtD,yEAAuD;AACvD,wEAAsD;AACtD,iFAA+D;AAC/D,8EAA4D;AAC5D,4DAA0C;AAC1C,wEAAsD;AACtD,yEAAuD;AACvD,0EAAwD;AAGxD,qEAAmD;AACnD,sEAAoD;AACpD,6EAA2D;AAC3D,6EAA2D;AAC3D,6EAA2D;AAC3D,4EAA0D;AAC1D,6EAA2D;AAG3D,sFAAoE;AACpE,uFAAqE;AACrE,6FAA2E;AAC3E,6FAA2E;AAC3E,6FAA2E;AAG3E,mFAAiE;AACjE,oFAAkE;AAClE,2FAAyE;AACzE,2FAAyE;AACzE,4FAA0E;AAC1E,2FAAyE;AAGzE,uFAAqE;AACrE,wFAAsE;AAGtE,wEAAsD;AACtD,yEAAuD;AACvD,+EAA6D;AAC7D,+EAA6D;AAC7D,+EAA6D;AAC7D,+EAA6D;AAG7D,kEAAgD;AAChD,mEAAiD;AACjD,yEAAuD;AACvD,yEAAuD;AACvD,yEAAuD;AACvD,0EAAwD;AACxD,2EAAyD;AACzD,kFAAgE;AAChE,kFAAgE;AAChE,kFAAgE;AAGhE,iEAA+C;AAC/C,kEAAgD;AAChD,iEAA+C;AAC/C,qEAAmD;AACnD,qEAAmD;AACnD,mEAAiD;AACjD,oEAAkD;AAClD,iEAAmG;AAA1F,qGAAA,KAAK,OAAA;AAAiB,2GAAA,UAAU,OAAe;AACxD,yEAAuF;AAA9E,kHAAA,aAAa,OAAkB;AACxC,yEAAuF;AAA9E,kHAAA,aAAa,OAAkB;AACxC,iFAA+D;AAC/D,kFAAgE;AAChE,yFAAuE;AACvE,yFAAuE;AACvE,yFAAuE;AAGvE,qFAAmE;AACnE,sFAAoE;AACpE,6FAA2E;AAC3E,6FAA2E;AAC3E,6FAA2E;AAC3E,6FAA2E;AAC3E,gFAA8D;AAC9D,iFAA+D;AAC/D,gFAA8D;AAG9D,+EAA6D;AAC7D,gFAA8D;AAC9D,uFAAqE;AACrE,uFAAqE;AACrE,uFAAqE;AACrE,sEAAoD;AACpD,uEAAqD;AACrD,sEAAoD;AAGpD,6EAA2D;AAC3D,8EAA4D;AAC5D,sFAAoE;AACpE,mEAAiD;AACjD,oEAAkD;AAClD,oEAAkD;AAClD,2EAAyD;AACzD,4EAA0D;AAC1D,4EAA0D;AAC1D,qEAAmD;AACnD,sEAAoD;AAGpD,0CAAwB;AACxB,2DAAyC;AACzC,qDAAmC;AACnC,kDAAgC;AAChC,8CAA4B;AAC5B,wDAAsC;AAGtC,8EAA4D"}
|