nestworker 1.1.21 → 2.0.8
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/LICENSE +21 -21
- package/README.md +307 -143
- package/dist/core/worker.interfaces.d.ts +36 -0
- package/dist/{models/task.js → core/worker.interfaces.js} +1 -1
- package/dist/core/worker.interfaces.js.map +1 -0
- package/dist/core/worker.module.d.ts +15 -0
- package/dist/core/worker.module.js +43 -0
- package/dist/core/worker.module.js.map +1 -0
- package/dist/core/worker.pool.d.ts +20 -0
- package/dist/core/worker.pool.js +210 -0
- package/dist/core/worker.pool.js.map +1 -0
- package/dist/core/worker.service.d.ts +88 -0
- package/dist/core/worker.service.js +135 -0
- package/dist/core/worker.service.js.map +1 -0
- package/dist/decorators/worker-task.decorator.d.ts +37 -0
- package/dist/decorators/worker-task.decorator.js +48 -0
- package/dist/decorators/worker-task.decorator.js.map +1 -0
- package/dist/di/di-serializer.d.ts +19 -0
- package/dist/di/di-serializer.js +133 -0
- package/dist/di/di-serializer.js.map +1 -0
- package/dist/di/worker-container.d.ts +60 -0
- package/dist/di/worker-container.js +170 -0
- package/dist/di/worker-container.js.map +1 -0
- package/dist/discovery/discovery.service.d.ts +20 -0
- package/dist/discovery/discovery.service.js +94 -0
- package/dist/discovery/discovery.service.js.map +1 -0
- package/dist/example/config.service.d.ts +13 -0
- package/dist/example/config.service.js +35 -0
- package/dist/example/config.service.js.map +1 -0
- package/dist/example/image.service.d.ts +13 -0
- package/dist/example/image.service.js +123 -0
- package/dist/example/image.service.js.map +1 -0
- package/dist/example/main.d.ts +1 -0
- package/dist/example/main.js +60 -0
- package/dist/example/main.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/worker/worker-runtime.js +55 -0
- package/dist/worker/worker-runtime.js.map +1 -0
- package/package.json +58 -55
- package/CONTRIBUTING.md +0 -33
- package/dist/main.d.ts +0 -3
- package/dist/main.js +0 -29
- package/dist/main.js.map +0 -1
- package/dist/models/index.d.ts +0 -1
- package/dist/models/index.js +0 -18
- package/dist/models/index.js.map +0 -1
- package/dist/models/task.d.ts +0 -5
- package/dist/models/task.js.map +0 -1
- package/dist/tsconfig.build.tsbuildinfo +0 -1
- package/dist/worker/executor.d.ts +0 -5
- package/dist/worker/executor.js +0 -28
- package/dist/worker/executor.js.map +0 -1
- package/dist/worker/skeleton.d.ts +0 -6
- package/dist/worker/skeleton.js +0 -35
- package/dist/worker/skeleton.js.map +0 -1
- package/dist/worker/worker.js +0 -6
- package/dist/worker/worker.js.map +0 -1
- package/nest-cli.json +0 -8
- package/tsconfig.build.json +0 -4
- package/tsconfig.json +0 -25
- /package/dist/worker/{worker.d.ts → worker-runtime.d.ts} +0 -0
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
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;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
42
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
43
|
+
};
|
|
44
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
45
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
46
|
+
};
|
|
47
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
+
exports.ImageService = void 0;
|
|
49
|
+
const common_1 = require("@nestjs/common");
|
|
50
|
+
const worker_task_decorator_1 = require("../decorators/worker-task.decorator");
|
|
51
|
+
const config_service_1 = require("./config.service");
|
|
52
|
+
const promises_1 = __importDefault(require("fs/promises"));
|
|
53
|
+
let ImageService = class ImageService {
|
|
54
|
+
configService;
|
|
55
|
+
constructor(configService) {
|
|
56
|
+
this.configService = configService;
|
|
57
|
+
}
|
|
58
|
+
resizeImage(value) {
|
|
59
|
+
const multiplier = this.configService.getNumber('MULTIPLIER');
|
|
60
|
+
const iterations = this.configService.getNumber('ITERATIONS');
|
|
61
|
+
let total = 0;
|
|
62
|
+
for (let i = 0; i < iterations; i++)
|
|
63
|
+
total += i * value * multiplier;
|
|
64
|
+
return total;
|
|
65
|
+
}
|
|
66
|
+
generateThumbnail(width, height) {
|
|
67
|
+
const iterations = this.configService.getNumber('ITERATIONS');
|
|
68
|
+
let hash = 0;
|
|
69
|
+
for (let i = 0; i < iterations / 2; i++)
|
|
70
|
+
hash ^= (i * width * height) | 0;
|
|
71
|
+
return `thumb_${hash.toString(16)}_${width}x${height}.webp`;
|
|
72
|
+
}
|
|
73
|
+
async moduleImport() {
|
|
74
|
+
const os = await Promise.resolve().then(() => __importStar(require('node:os')));
|
|
75
|
+
return `Import os size ${os.cpus().length}`;
|
|
76
|
+
}
|
|
77
|
+
async moduleRequire() {
|
|
78
|
+
const os = require('node:os');
|
|
79
|
+
return `Require os size ${os.cpus().length}`;
|
|
80
|
+
}
|
|
81
|
+
async outlineModule() {
|
|
82
|
+
const p = await promises_1.default.readFile('./package.json', 'utf-8');
|
|
83
|
+
const f = (await fetch('https://api.github.com')).status;
|
|
84
|
+
return { p: p.length, f };
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
exports.ImageService = ImageService;
|
|
88
|
+
__decorate([
|
|
89
|
+
(0, worker_task_decorator_1.WorkerTask)({ priority: 'HIGH' }),
|
|
90
|
+
__metadata("design:type", Function),
|
|
91
|
+
__metadata("design:paramtypes", [Number]),
|
|
92
|
+
__metadata("design:returntype", Number)
|
|
93
|
+
], ImageService.prototype, "resizeImage", null);
|
|
94
|
+
__decorate([
|
|
95
|
+
(0, worker_task_decorator_1.WorkerTask)(),
|
|
96
|
+
__metadata("design:type", Function),
|
|
97
|
+
__metadata("design:paramtypes", [Number, Number]),
|
|
98
|
+
__metadata("design:returntype", String)
|
|
99
|
+
], ImageService.prototype, "generateThumbnail", null);
|
|
100
|
+
__decorate([
|
|
101
|
+
(0, worker_task_decorator_1.WorkerTask)(),
|
|
102
|
+
__metadata("design:type", Function),
|
|
103
|
+
__metadata("design:paramtypes", []),
|
|
104
|
+
__metadata("design:returntype", Promise)
|
|
105
|
+
], ImageService.prototype, "moduleImport", null);
|
|
106
|
+
__decorate([
|
|
107
|
+
(0, worker_task_decorator_1.WorkerTask)(),
|
|
108
|
+
__metadata("design:type", Function),
|
|
109
|
+
__metadata("design:paramtypes", []),
|
|
110
|
+
__metadata("design:returntype", Promise)
|
|
111
|
+
], ImageService.prototype, "moduleRequire", null);
|
|
112
|
+
__decorate([
|
|
113
|
+
(0, worker_task_decorator_1.WorkerTask)(),
|
|
114
|
+
__metadata("design:type", Function),
|
|
115
|
+
__metadata("design:paramtypes", []),
|
|
116
|
+
__metadata("design:returntype", Promise)
|
|
117
|
+
], ImageService.prototype, "outlineModule", null);
|
|
118
|
+
exports.ImageService = ImageService = __decorate([
|
|
119
|
+
(0, common_1.Injectable)(),
|
|
120
|
+
(0, worker_task_decorator_1.WorkerClass)({ deps: [config_service_1.ConfigService] }),
|
|
121
|
+
__metadata("design:paramtypes", [config_service_1.ConfigService])
|
|
122
|
+
], ImageService);
|
|
123
|
+
//# sourceMappingURL=image.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image.service.js","sourceRoot":"","sources":["../../src/example/image.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,+EAA8E;AAC9E,qDAAiD;AACjD,2DAA6B;AAItB,IAAM,YAAY,GAAlB,MAAM,YAAY;IACM;IAA7B,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IACzD,CAAC;IAGD,WAAW,CAAC,KAAa;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC9D,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE;YAAE,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,UAAU,CAAC;QACrE,OAAO,KAAK,CAAC;IACf,CAAC;IAGD,iBAAiB,CAAC,KAAa,EAAE,MAAc;QAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC9D,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC,EAAE;YAAE,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1E,OAAO,SAAS,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,MAAM,OAAO,CAAC;IAC9D,CAAC;IAGK,AAAN,KAAK,CAAC,YAAY;QAChB,MAAM,EAAE,GAAG,wDAAa,SAAS,GAAC,CAAC;QACnC,OAAO,kBAAkB,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;IAC9C,CAAC;IAGK,AAAN,KAAK,CAAC,aAAa;QACjB,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9B,OAAO,mBAAmB,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;IAC/C,CAAC;IAGK,AAAN,KAAK,CAAC,aAAa;QACjB,MAAM,CAAC,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC;QACzD,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;IAC5B,CAAC;CACF,CAAA;AAvCY,oCAAY;AAKvB;IADC,IAAA,kCAAU,EAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;;;;+CAOhC;AAGD;IADC,IAAA,kCAAU,GAAE;;;;qDAMZ;AAGK;IADL,IAAA,kCAAU,GAAE;;;;gDAIZ;AAGK;IADL,IAAA,kCAAU,GAAE;;;;iDAIZ;AAGK;IADL,IAAA,kCAAU,GAAE;;;;iDAKZ;uBAtCU,YAAY;IAFxB,IAAA,mBAAU,GAAE;IACZ,IAAA,mCAAW,EAAC,EAAE,IAAI,EAAE,CAAC,8BAAa,CAAC,EAAE,CAAC;qCAEO,8BAAa;GAD9C,YAAY,CAuCxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
@@ -0,0 +1,60 @@
|
|
|
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
|
+
require("reflect-metadata");
|
|
10
|
+
const core_1 = require("@nestjs/core");
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
const worker_module_1 = require("../core/worker.module");
|
|
13
|
+
const worker_service_1 = require("../core/worker.service");
|
|
14
|
+
const config_service_1 = require("./config.service");
|
|
15
|
+
const image_service_1 = require("./image.service");
|
|
16
|
+
let AppModule = class AppModule {
|
|
17
|
+
};
|
|
18
|
+
AppModule = __decorate([
|
|
19
|
+
(0, common_1.Module)({
|
|
20
|
+
imports: [worker_module_1.WorkerModule.forRoot({ poolSize: 8 })],
|
|
21
|
+
providers: [config_service_1.ConfigService, image_service_1.ImageService],
|
|
22
|
+
})
|
|
23
|
+
], AppModule);
|
|
24
|
+
async function bootstrap() {
|
|
25
|
+
const app = await core_1.NestFactory.createApplicationContext(AppModule, {
|
|
26
|
+
logger: false,
|
|
27
|
+
});
|
|
28
|
+
const workerService = app.get(worker_service_1.WorkerService);
|
|
29
|
+
// ── Task 1: sequential ────────────────────────────────────────────────────
|
|
30
|
+
console.log('▶ resizeImage [priority: HIGH]');
|
|
31
|
+
console.time('resizeImage');
|
|
32
|
+
const resized = await workerService.run('ImageService', 'resizeImage', [5]);
|
|
33
|
+
console.timeEnd('resizeImage');
|
|
34
|
+
console.log(' result:', resized);
|
|
35
|
+
// ── Task 2: sequential ────────────────────────────────────────────────────
|
|
36
|
+
console.log('\n▶ generateThumbnail [priority: LOW override]');
|
|
37
|
+
console.time('generateThumbnail');
|
|
38
|
+
const thumb = await workerService.run('ImageService', 'generateThumbnail', [1920, 1080], { priority: 'LOW' });
|
|
39
|
+
console.timeEnd('generateThumbnail');
|
|
40
|
+
console.log(' result:', thumb);
|
|
41
|
+
// ── Task 3: concurrent — proves multiple workers run in parallel ───────────
|
|
42
|
+
console.log('\n▶ concurrent x4 [all 4 workers busy simultaneously]');
|
|
43
|
+
console.time('concurrent');
|
|
44
|
+
const results = await Promise.allSettled([
|
|
45
|
+
workerService.run('ImageService', 'resizeImage', [1], { priority: 'LOW' }),
|
|
46
|
+
workerService.run('ImageService', 'resizeImage', [2], { priority: 'LOW', timeout: 100 }),
|
|
47
|
+
workerService.run('ImageService', 'generateThumbnail', [640, 480], { priority: 'HIGH' }),
|
|
48
|
+
workerService.run('ImageService', 'moduleImport'),
|
|
49
|
+
workerService.run('ImageService', 'moduleRequire'),
|
|
50
|
+
workerService.run('ImageService', 'outlineModule'),
|
|
51
|
+
]);
|
|
52
|
+
console.timeEnd('concurrent');
|
|
53
|
+
console.log(' results:', results);
|
|
54
|
+
await app.close();
|
|
55
|
+
}
|
|
56
|
+
bootstrap().catch((err) => {
|
|
57
|
+
console.error('Fatal:', err);
|
|
58
|
+
process.exit(1);
|
|
59
|
+
});
|
|
60
|
+
//# sourceMappingURL=main.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/example/main.ts"],"names":[],"mappings":";;;;;;;;AAAA,4BAA0B;AAC1B,uCAAyC;AACzC,2CAAsC;AACtC,yDAAmD;AACnD,2DAAqD;AACrD,qDAA+C;AAC/C,mDAA6C;AAM7C,IAAM,SAAS,GAAf,MAAM,SAAS;CACd,CAAA;AADK,SAAS;IAJd,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,4BAAY,CAAC,OAAO,CAAC,EAAC,QAAQ,EAAE,CAAC,EAAC,CAAC,CAAC;QAC9C,SAAS,EAAE,CAAC,8BAAa,EAAE,4BAAY,CAAC;KACzC,CAAC;GACI,SAAS,CACd;AAED,KAAK,UAAU,SAAS;IACtB,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,wBAAwB,CAAC,SAAS,EAAE;QAChE,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,GAAG,CAAC,GAAG,CAAC,8BAAa,CAAC,CAAC;IAE7C,6EAA6E;IAC7E,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5B,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,GAAG,CACrC,cAAc,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,CACnC,CAAC;IACF,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAElC,6EAA6E;IAC7E,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAC9D,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,GAAG,CACnC,cAAc,EAAE,mBAAmB,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAC,CACrE,CAAC;IACF,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAEhC,8EAA8E;IAC9E,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;IACrE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;QACvC,aAAa,CAAC,GAAG,CAAS,cAAc,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC;QAChF,aAAa,CAAC,GAAG,CAAS,cAAc,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAC,CAAC;QAC9F,aAAa,CAAC,GAAG,CAAS,cAAc,EAAE,mBAAmB,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC;QAC9F,aAAa,CAAC,GAAG,CAAS,cAAc,EAAE,cAAc,CAAC;QACzD,aAAa,CAAC,GAAG,CAAS,cAAc,EAAE,eAAe,CAAC;QAC1D,aAAa,CAAC,GAAG,CAAS,cAAc,EAAE,eAAe,CAAC;KAC3D,CAAC,CAAC;IACH,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAEnC,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;AACpB,CAAC;AAED,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACxB,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { WorkerModule } from './core/worker.module';
|
|
2
|
+
export { WorkerService } from './core/worker.service';
|
|
3
|
+
export { WorkerClass, WorkerTask } from './decorators/worker-task.decorator';
|
|
4
|
+
export type { WorkerModuleOptions, TaskPriority } from './core/worker.interfaces';
|
|
5
|
+
export type { WorkerTaskOptions } from './decorators/worker-task.decorator';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WorkerTask = exports.WorkerClass = exports.WorkerService = exports.WorkerModule = void 0;
|
|
4
|
+
var worker_module_1 = require("./core/worker.module");
|
|
5
|
+
Object.defineProperty(exports, "WorkerModule", { enumerable: true, get: function () { return worker_module_1.WorkerModule; } });
|
|
6
|
+
var worker_service_1 = require("./core/worker.service");
|
|
7
|
+
Object.defineProperty(exports, "WorkerService", { enumerable: true, get: function () { return worker_service_1.WorkerService; } });
|
|
8
|
+
var worker_task_decorator_1 = require("./decorators/worker-task.decorator");
|
|
9
|
+
Object.defineProperty(exports, "WorkerClass", { enumerable: true, get: function () { return worker_task_decorator_1.WorkerClass; } });
|
|
10
|
+
Object.defineProperty(exports, "WorkerTask", { enumerable: true, get: function () { return worker_task_decorator_1.WorkerTask; } });
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,sDAAkD;AAA1C,6GAAA,YAAY,OAAA;AACpB,wDAAoD;AAA5C,+GAAA,aAAa,OAAA;AACrB,4EAA2E;AAAnE,oHAAA,WAAW,OAAA;AAAE,mHAAA,UAAU,OAAA"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const node_worker_threads_1 = require("node:worker_threads");
|
|
4
|
+
const worker_container_1 = require("../di/worker-container");
|
|
5
|
+
/**
|
|
6
|
+
* Worker Runtime – entry point for every worker thread.
|
|
7
|
+
*
|
|
8
|
+
* Receives SerializedService[] via workerData and boots a WorkerContainer
|
|
9
|
+
* which eval()s the stripped class sources and reconstructs the full
|
|
10
|
+
* service graph (deps injected via constructor) without any require() calls
|
|
11
|
+
* into NestJS-annotated files.
|
|
12
|
+
*
|
|
13
|
+
* Jobs are processed serially via a queue — one postMessage() reply per job,
|
|
14
|
+
* which is exactly what the pool's worker.once('message') expects.
|
|
15
|
+
*/
|
|
16
|
+
const services = node_worker_threads_1.workerData?.services ?? [];
|
|
17
|
+
const container = new worker_container_1.WorkerContainer();
|
|
18
|
+
container.load(services);
|
|
19
|
+
// Build flat dispatch map: "ServiceName.methodName" → bound callable
|
|
20
|
+
const tasks = {};
|
|
21
|
+
for (const svc of services) {
|
|
22
|
+
const inst = container.get(svc.name);
|
|
23
|
+
for (const { methodName } of svc.methods) {
|
|
24
|
+
tasks[`${svc.name}.${methodName}`] = (...args) => inst[methodName](...args);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
const queue = [];
|
|
28
|
+
let busy = false;
|
|
29
|
+
async function runNext() {
|
|
30
|
+
if (busy || queue.length === 0)
|
|
31
|
+
return;
|
|
32
|
+
busy = true;
|
|
33
|
+
const payload = queue.shift();
|
|
34
|
+
const key = `${payload.serviceName}.${payload.methodName}`;
|
|
35
|
+
try {
|
|
36
|
+
const fn = tasks[key];
|
|
37
|
+
if (!fn)
|
|
38
|
+
throw new Error(`Task "${key}" is not registered`);
|
|
39
|
+
const data = await fn(...payload.args);
|
|
40
|
+
node_worker_threads_1.parentPort?.postMessage({ ok: true, data });
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
const e = error;
|
|
44
|
+
node_worker_threads_1.parentPort?.postMessage({ ok: false, error: { message: e.message, stack: e.stack } });
|
|
45
|
+
}
|
|
46
|
+
finally {
|
|
47
|
+
busy = false;
|
|
48
|
+
runNext();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
node_worker_threads_1.parentPort?.on('message', (payload) => {
|
|
52
|
+
queue.push(payload);
|
|
53
|
+
runNext();
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=worker-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-runtime.js","sourceRoot":"","sources":["../../src/worker/worker-runtime.ts"],"names":[],"mappings":";;AAAA,6DAA6D;AAC7D,6DAAyD;AAGzD;;;;;;;;;;GAUG;AAEH,MAAM,QAAQ,GAAwB,gCAAU,EAAE,QAAQ,IAAI,EAAE,CAAC;AACjE,MAAM,SAAS,GAAG,IAAI,kCAAe,EAAE,CAAC;AACxC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAEzB,qEAAqE;AACrE,MAAM,KAAK,GAAoD,EAAE,CAAC;AAClE,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAkD,GAAG,CAAC,IAAI,CAAC,CAAC;IACtF,KAAK,MAAM,EAAE,UAAU,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QACzC,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAID,MAAM,KAAK,GAAU,EAAE,CAAC;AACxB,IAAI,IAAI,GAAG,KAAK,CAAC;AAEjB,KAAK,UAAU,OAAO;IACpB,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACvC,IAAI,GAAG,IAAI,CAAC;IACZ,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;IAC/B,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAC3D,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,SAAS,GAAG,qBAAqB,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,gCAAU,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,KAAc,CAAC;QACzB,gCAAU,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxF,CAAC;YAAS,CAAC;QACT,IAAI,GAAG,KAAK,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,gCAAU,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,OAAY,EAAE,EAAE;IACzC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,55 +1,58 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "nestworker",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
"
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
"@nestjs/
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
"@
|
|
45
|
-
"@
|
|
46
|
-
"@
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
"
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "nestworker",
|
|
3
|
+
"version": "2.0.8",
|
|
4
|
+
"description": "Enterprise-grade worker thread module for NestJS — priority pool, auto-discovery, DI in workers",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist",
|
|
9
|
+
"README.md",
|
|
10
|
+
"LICENSE"
|
|
11
|
+
],
|
|
12
|
+
"scripts": {
|
|
13
|
+
"build": "tsc -p tsconfig.build.json",
|
|
14
|
+
"build:watch": "tsc -p tsconfig.build.json --watch",
|
|
15
|
+
"example": "npm run build && node dist/example/main.js",
|
|
16
|
+
"prepublishOnly": "npm run build"
|
|
17
|
+
},
|
|
18
|
+
"keywords": [
|
|
19
|
+
"nestjs",
|
|
20
|
+
"worker",
|
|
21
|
+
"worker-threads",
|
|
22
|
+
"thread-pool",
|
|
23
|
+
"cpu",
|
|
24
|
+
"parallel",
|
|
25
|
+
"offload",
|
|
26
|
+
"typescript",
|
|
27
|
+
"node",
|
|
28
|
+
"workers",
|
|
29
|
+
"thread",
|
|
30
|
+
"multithreading",
|
|
31
|
+
"backend"
|
|
32
|
+
],
|
|
33
|
+
"author": "Vahe Hakobyan",
|
|
34
|
+
"license": "MIT",
|
|
35
|
+
"engines": {
|
|
36
|
+
"node": ">=16.0.0"
|
|
37
|
+
},
|
|
38
|
+
"peerDependencies": {
|
|
39
|
+
"@nestjs/common": "^10.0.0 || ^11.0.0",
|
|
40
|
+
"@nestjs/core": "^10.0.0 || ^11.0.0",
|
|
41
|
+
"reflect-metadata": "^0.1.0 || ^0.2.0"
|
|
42
|
+
},
|
|
43
|
+
"devDependencies": {
|
|
44
|
+
"@nestjs/common": "^11.1.21",
|
|
45
|
+
"@nestjs/core": "^11.1.21",
|
|
46
|
+
"@types/node": "^22.0.0",
|
|
47
|
+
"reflect-metadata": "^0.2.2",
|
|
48
|
+
"typescript": "^5.6.0"
|
|
49
|
+
},
|
|
50
|
+
"bugs": {
|
|
51
|
+
"url": "https://github.com/VaheHak/nestworker/issues"
|
|
52
|
+
},
|
|
53
|
+
"homepage": "https://github.com/VaheHak/nestworker#readme",
|
|
54
|
+
"repository": {
|
|
55
|
+
"type": "git",
|
|
56
|
+
"url": "https://github.com/VaheHak/nestworker.git"
|
|
57
|
+
}
|
|
58
|
+
}
|
package/CONTRIBUTING.md
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# Contributing to `nestworker`
|
|
2
|
-
|
|
3
|
-
Contributions are always welcome.
|
|
4
|
-
To contribute, [fork](https://help.github.com/articles/fork-a-repo/) nestworker, commit your changes, & [send a pull request](https://help.github.com/articles/using-pull-requests/).
|
|
5
|
-
|
|
6
|
-
## Feature Requests
|
|
7
|
-
|
|
8
|
-
Feature requests should be submitted in the [issue tracker](https://github.com/VaheHak/nestworker/issues), with a description of
|
|
9
|
-
the expected behavior & use case.
|
|
10
|
-
|
|
11
|
-
## Pull Requests
|
|
12
|
-
|
|
13
|
-
For additions or bug fixes, please modify the relevant files. Include updated unit tests in the `test` directory as part of your pull request. Unit test files should be named `[filename].test.js`.
|
|
14
|
-
|
|
15
|
-
Before running the unit tests you’ll need to install, `npm i`, [development dependencies](https://docs.npmjs.com/files/package.json#devdependencies). Run unit tests from the command-line via `npm test`.
|
|
16
|
-
|
|
17
|
-
## Coding Guidelines
|
|
18
|
-
|
|
19
|
-
In addition to the following guidelines, please follow the conventions already established in the code.
|
|
20
|
-
|
|
21
|
-
- **Spacing**:<br>
|
|
22
|
-
Use two spaces for indentation. No tabs.
|
|
23
|
-
|
|
24
|
-
- **Quotes**:<br>
|
|
25
|
-
Single-quoted strings are preferred to double-quoted strings; however,
|
|
26
|
-
please use a double-quoted string if the value contains a single-quote
|
|
27
|
-
character to avoid unnecessary escaping.
|
|
28
|
-
|
|
29
|
-
Guidelines are enforced using [ESLint](https://www.npmjs.com/package/eslint):
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
$ npm run lint
|
|
33
|
-
```
|
package/dist/main.d.ts
DELETED
package/dist/main.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ExecuteInThread = exports.executeInThread = void 0;
|
|
4
|
-
const skeleton_1 = require("./worker/skeleton");
|
|
5
|
-
const executor_1 = require("./worker/executor");
|
|
6
|
-
const executeInThread = (task, { threadModules = [], args = [] } = {}) => {
|
|
7
|
-
const params = [...args];
|
|
8
|
-
const modules = [...threadModules];
|
|
9
|
-
const workerSchema = (0, skeleton_1.createWorker)(task, params, modules);
|
|
10
|
-
return (0, executor_1.startWorker)(workerSchema);
|
|
11
|
-
};
|
|
12
|
-
exports.executeInThread = executeInThread;
|
|
13
|
-
function ExecuteInThread(options) {
|
|
14
|
-
return function (target, propertyKey, descriptor) {
|
|
15
|
-
const originalMethod = descriptor.value;
|
|
16
|
-
const { threadModules = [], args: taskArgs = [] } = options || {};
|
|
17
|
-
descriptor.value = function (...args) {
|
|
18
|
-
const combinedArgs = [...taskArgs, ...args];
|
|
19
|
-
const task = originalMethod.bind(this);
|
|
20
|
-
return (0, exports.executeInThread)(task, {
|
|
21
|
-
threadModules,
|
|
22
|
-
args: combinedArgs,
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
|
-
return descriptor;
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
exports.ExecuteInThread = ExecuteInThread;
|
|
29
|
-
//# sourceMappingURL=main.js.map
|
package/dist/main.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;AACA,gDAAiD;AACjD,gDAAgD;AAQzC,MAAM,eAAe,GAAG,CAC7B,IAAwB,EACxB,EAAE,aAAa,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,KAAqB,EAAE,EACxC,EAAE;IAChB,MAAM,MAAM,GAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAa,CAAC,GAAG,aAAa,CAAC,CAAC;IAE7C,MAAM,YAAY,GAAG,IAAA,uBAAY,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACzD,OAAO,IAAA,sBAAW,EAAC,YAAY,CAAC,CAAC;AACnC,CAAC,CAAC;AATW,QAAA,eAAe,mBAS1B;AAOF,SAAgB,eAAe,CAAI,OAAwB;IACzD,OAAO,UACL,MAAW,EACX,WAA4B,EAC5B,UAA8B;QAE9B,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,MAAM,EAAE,aAAa,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,GAAG,EAAE,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;QAElE,UAAU,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW;YACzC,MAAM,YAAY,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEvC,OAAO,IAAA,uBAAe,EAAC,IAAI,EAAE;gBAC3B,aAAa;gBACb,IAAI,EAAE,YAAY;aACnB,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAtBD,0CAsBC"}
|
package/dist/models/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './task';
|
package/dist/models/index.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./task"), exports);
|
|
18
|
-
//# sourceMappingURL=index.js.map
|
package/dist/models/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB"}
|
package/dist/models/task.d.ts
DELETED
package/dist/models/task.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/models/task.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../node_modules/typescript/lib/lib.scripthost.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/typescript/lib/lib.es2021.full.d.ts","../src/models/task.ts","../src/models/index.ts","../src/worker/skeleton.ts","../src/worker/executor.ts","../src/main.ts","../src/worker/worker.ts","../node_modules/@types/eslint/helpers.d.ts","../node_modules/@types/estree/index.d.ts","../node_modules/@types/json-schema/index.d.ts","../node_modules/@types/eslint/index.d.ts","../node_modules/@types/eslint-scope/index.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/buffer/index.d.ts","../node_modules/undici-types/header.d.ts","../node_modules/undici-types/readable.d.ts","../node_modules/undici-types/file.d.ts","../node_modules/undici-types/fetch.d.ts","../node_modules/undici-types/formdata.d.ts","../node_modules/undici-types/connector.d.ts","../node_modules/undici-types/client.d.ts","../node_modules/undici-types/errors.d.ts","../node_modules/undici-types/dispatcher.d.ts","../node_modules/undici-types/global-dispatcher.d.ts","../node_modules/undici-types/global-origin.d.ts","../node_modules/undici-types/pool-stats.d.ts","../node_modules/undici-types/pool.d.ts","../node_modules/undici-types/handlers.d.ts","../node_modules/undici-types/balanced-pool.d.ts","../node_modules/undici-types/agent.d.ts","../node_modules/undici-types/mock-interceptor.d.ts","../node_modules/undici-types/mock-agent.d.ts","../node_modules/undici-types/mock-client.d.ts","../node_modules/undici-types/mock-pool.d.ts","../node_modules/undici-types/mock-errors.d.ts","../node_modules/undici-types/proxy-agent.d.ts","../node_modules/undici-types/api.d.ts","../node_modules/undici-types/cookies.d.ts","../node_modules/undici-types/patch.d.ts","../node_modules/undici-types/filereader.d.ts","../node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/undici-types/websocket.d.ts","../node_modules/undici-types/content-type.d.ts","../node_modules/undici-types/cache.d.ts","../node_modules/undici-types/interceptors.d.ts","../node_modules/undici-types/index.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/dom-events.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/readline/promises.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/sea.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/@types/semver/classes/semver.d.ts","../node_modules/@types/semver/functions/parse.d.ts","../node_modules/@types/semver/functions/valid.d.ts","../node_modules/@types/semver/functions/clean.d.ts","../node_modules/@types/semver/functions/inc.d.ts","../node_modules/@types/semver/functions/diff.d.ts","../node_modules/@types/semver/functions/major.d.ts","../node_modules/@types/semver/functions/minor.d.ts","../node_modules/@types/semver/functions/patch.d.ts","../node_modules/@types/semver/functions/prerelease.d.ts","../node_modules/@types/semver/functions/compare.d.ts","../node_modules/@types/semver/functions/rcompare.d.ts","../node_modules/@types/semver/functions/compare-loose.d.ts","../node_modules/@types/semver/functions/compare-build.d.ts","../node_modules/@types/semver/functions/sort.d.ts","../node_modules/@types/semver/functions/rsort.d.ts","../node_modules/@types/semver/functions/gt.d.ts","../node_modules/@types/semver/functions/lt.d.ts","../node_modules/@types/semver/functions/eq.d.ts","../node_modules/@types/semver/functions/neq.d.ts","../node_modules/@types/semver/functions/gte.d.ts","../node_modules/@types/semver/functions/lte.d.ts","../node_modules/@types/semver/functions/cmp.d.ts","../node_modules/@types/semver/functions/coerce.d.ts","../node_modules/@types/semver/classes/comparator.d.ts","../node_modules/@types/semver/classes/range.d.ts","../node_modules/@types/semver/functions/satisfies.d.ts","../node_modules/@types/semver/ranges/max-satisfying.d.ts","../node_modules/@types/semver/ranges/min-satisfying.d.ts","../node_modules/@types/semver/ranges/to-comparators.d.ts","../node_modules/@types/semver/ranges/min-version.d.ts","../node_modules/@types/semver/ranges/valid.d.ts","../node_modules/@types/semver/ranges/outside.d.ts","../node_modules/@types/semver/ranges/gtr.d.ts","../node_modules/@types/semver/ranges/ltr.d.ts","../node_modules/@types/semver/ranges/intersects.d.ts","../node_modules/@types/semver/ranges/simplify.d.ts","../node_modules/@types/semver/ranges/subset.d.ts","../node_modules/@types/semver/internals/identifiers.d.ts","../node_modules/@types/semver/index.d.ts"],"fileInfos":[{"version":"824cb491a40f7e8fdeb56f1df5edf91b23f3e3ee6b4cde84d4a99be32338faee","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569",{"version":"87d693a4920d794a73384b3c779cadcb8548ac6945aa7a925832fe2418c9527a","affectsGlobalScope":true},{"version":"76f838d5d49b65de83bc345c04aa54c62a3cfdb72a477dc0c0fce89a30596c30","affectsGlobalScope":true},{"version":"73e370058f82add1fdbc78ef3d1aab110108f2d5d9c857cb55d3361982347ace","affectsGlobalScope":true},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"b20fe0eca9a4e405f1a5ae24a2b3290b37cf7f21eba6cbe4fc3fab979237d4f3","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"8073890e29d2f46fdbc19b8d6d2eb9ea58db9a2052f8640af20baff9afbc8640","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"4a66df3ab5de5cfcda11538cffddd67ff6a174e003788e270914c1e0248483cf","0544f58ee96cf7d0ec7334d6a9b6fbface21b05b111b7879b4549335e4b98dd1","228cead7b0435ca50575e5f2cb79be3eb8f2d8e33f34ed1b69189ea14ec1dcf6","a2cfb94aa0c09158612ed42fd22f903dc2ec826b6cd284e56d4d420c865df238","1a3cfa94242fbf1f6362ac9c21ab4afd3f9f912192fc74d0316dfad547a07a07","0f3ba26306202df7792421c73ad7f67efed59b3c62b4a35f0625c8eddc6cab75","8dd95536ad01583dd4dca6c3335b8e3686859ceaa1305c044f81c8ad6dbc7f64",{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true},"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","7852500a7dc3f9cb6b73d619f6e0249119211ea662fd5e16c59ee5aba3deeb80","1f68ab0e055994eb337b67aa87d2a15e0200951e9664959b3866ee6f6b11a0fe","acdc9fb9638a235a69bd270003d8db4d6153ada2b7ccbea741ade36b295e431e","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"a14ed46fa3f5ffc7a8336b497cd07b45c2084213aaca933a22443fcb2eef0d07","affectsGlobalScope":true},"cce1f5f86974c1e916ec4a8cab6eec9aa8e31e8148845bf07fbaa8e1d97b1a2c",{"version":"7fd7fcbf021a5845bdd9397d4649fcf2fe17152d2098140fc723099a215d19ad","affectsGlobalScope":true},"df3389f71a71a38bc931aaf1ef97a65fada98f0a27f19dd12f8b8de2b0f4e461","d69a3298a197fe5d59edba0ec23b4abf2c8e7b8c6718eac97833633cd664e4c9",{"version":"a9544f6f8af0d046565e8dde585502698ebc99eef28b715bad7c2bded62e4a32","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb",{"version":"8b809082dfeffc8cc4f3b9c59f55c0ff52ba12f5ae0766cb5c35deee83b8552e","affectsGlobalScope":true},"bd3f5d05b6b5e4bfcea7739a45f3ffb4a7f4a3442ba7baf93e0200799285b8f1","4c775c2fccabf49483c03cd5e3673f87c1ffb6079d98e7b81089c3def79e29c6","d4f9d3ae2fe1ae199e1c832cca2c44f45e0b305dfa2808afdd51249b6f4a5163","7525257b4aa35efc7a1bbc00f205a9a96c4e4ab791da90db41b77938c4e0c18e","b7fe70be794e13d1b7940e318b8770cd1fb3eced7707805318a2e3aaac2c3e9e",{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true},{"version":"9c611eff81287837680c1f4496daf9e737d6f3a1ff17752207814b8f8e1265af","affectsGlobalScope":true},"fe1fd6afdfe77976d4c702f3746c05fb05a7e566845c890e0e970fe9376d6a90","b5d4e3e524f2eead4519c8e819eaf7fa44a27c22418eff1b7b2d0ebc5fdc510d","afb1701fd4be413a8a5a88df6befdd4510c30a31372c07a4138facf61594c66d","9bd8e5984676cf28ebffcc65620b4ab5cb38ab2ec0aac0825df8568856895653","396a8939b5e177542bdf9b5262b4eee85d29851b2d57681fa9d7eae30e225830","5e8dc64e7e68b2b3ea52ed685cf85239e0d5fb9df31aabc94370c6bc7e19077b",{"version":"ea455cc68871b049bcecd9f56d4cf27b852d6dafd5e3b54468ca87cc11604e4d","affectsGlobalScope":true},"c07146dbbbd8b347241b5df250a51e48f2d7bef19b1e187b1a3f20c849988ff1","45b1053e691c5af9bfe85060a3e1542835f8d84a7e6e2e77ca305251eda0cb3c","0f05c06ff6196958d76b865ae17245b52d8fe01773626ac3c43214a2458ea7b7",{"version":"ae5507fc333d637dec9f37c6b3f4d423105421ea2820a64818de55db85214d66","affectsGlobalScope":true},{"version":"46755a4afc53df75f0bfce72259fb971daac826b0cdd8c4eaccad2755a817403","affectsGlobalScope":true},"8abd0566d2854c4bd1c5e48e05df5c74927187f1541e6770001d9637ac41542e","54e854615c4eafbdd3fd7688bd02a3aafd0ccf0e87c98f79d3e9109f047ce6b8","d8dba11dc34d50cb4202de5effa9a1b296d7a2f4a029eec871f894bddfb6430d","8b71dd18e7e63b6f991b511a201fad7c3bf8d1e0dd98acb5e3d844f335a73634","01d8e1419c84affad359cc240b2b551fb9812b450b4d3d456b64cda8102d4f60","9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","8221b00f271cf7f535a8eeec03b0f80f0929c7a16116e2d2df089b41066de69b","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","7fa32887f8a97909fca35ebba3740f8caf8df146618d8fff957a3f89f67a2f6a","9a9634296cca836c3308923ba7aa094fa6ed76bb1e366d8ddcf5c65888ab1024",{"version":"bddce945d552a963c9733db106b17a25474eefcab7fc990157a2134ef55d4954","affectsGlobalScope":true},{"version":"7052b7b0c3829df3b4985bab2fd74531074b4835d5a7b263b75c82f0916ad62f","affectsGlobalScope":true},"aa34c3aa493d1c699601027c441b9664547c3024f9dbab1639df7701d63d18fa","4b55240c2a03b2c71e98a7fc528b16136faa762211c92e781a01c37821915ea6","7c651f8dce91a927ab62925e73f190763574c46098f2b11fb8ddc1b147a6709a","7440ab60f4cb031812940cc38166b8bb6fbf2540cfe599f87c41c08011f0c1df",{"version":"94c086dff8dbc5998749326bc69b520e8e4273fb5b7b58b50e0210e0885dfcde","affectsGlobalScope":true},{"version":"f5b5dc128973498b75f52b1b8c2d5f8629869104899733ae485100c2309b4c12","affectsGlobalScope":true},"ebe5facd12fd7745cda5f4bc3319f91fb29dc1f96e57e9c6f8b260a7cc5b67ee","79bad8541d5779c85e82a9fb119c1fe06af77a71cc40f869d62ad379473d4b75","21c56c6e8eeacef15f63f373a29fab6a2b36e4705be7a528aae8c51469e2737b",{"version":"629d20681ca284d9e38c0a019f647108f5fe02f9c59ac164d56f5694fc3faf4d","affectsGlobalScope":true},"e7dbf5716d76846c7522e910896c5747b6df1abd538fee8f5291bdc843461795",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"a42be67ed1ddaec743582f41fc219db96a1b69719fccac6d1464321178d610fc","cf3d384d082b933d987c4e2fe7bfb8710adfd9dc8155190056ed6695a25a559e","9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","c2576a4083232b0e2d9bd06875dd43d371dee2e090325a9eac0133fd5650c1cb","4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","f40ac11d8859092d20f953aae14ba967282c3bb056431a37fced1866ec7a2681","cc11e9e79d4746cc59e0e17473a59d6f104692fd0eeea1bdb2e206eabed83b03","b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","7d8ddf0f021c53099e34ee831a06c394d50371816caa98684812f089b4c6b3d4"],"root":[[57,62]],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"emitDecoratorMetadata":true,"experimentalDecorators":true,"module":1,"noFallthroughCasesInSwitch":false,"noImplicitAny":false,"outDir":"./","removeComments":true,"skipLibCheck":true,"sourceMap":true,"strictBindCallApply":false,"strictNullChecks":false,"target":8},"fileIdsList":[[64,66],[63,64,65],[68],[104],[105,110,139],[106,117,118,125,136,147],[106,107,117,125],[108,148],[109,110,118,126],[110,136,144],[111,113,117,125],[104,112],[113,114],[117],[115,117],[104,117],[117,118,119,136,147],[117,118,119,132,136,139],[102,105,152],[113,117,120,125,136,147],[117,118,120,121,125,136,144,147],[120,122,136,144,147],[68,69,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154],[117,123],[124,147,152],[113,117,125,136],[126],[127],[104,128],[129,146,152],[130],[131],[117,132,133],[132,134,148,150],[105,117,136,137,138,139],[105,136,138],[136,137],[139],[140],[104,136],[117,142,143],[142,143],[110,125,136,144],[145],[125,146],[105,120,131,147],[110,148],[136,149],[124,150],[151],[105,110,117,119,128,136,147,150,152],[136,153],[156,195],[156,180,195],[195],[156],[156,181,195],[156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194],[181,195],[79,83,147],[79,136,147],[74],[76,79,144,147],[125,144],[155],[74,155],[76,79,125,147],[71,72,75,78,105,117,136,147],[71,77],[75,79,105,139,147,155],[105,155],[95,105,155],[73,74,155],[79],[73,74,75,76,77,78,79,80,81,83,84,85,86,87,88,89,90,91,92,93,94,96,97,98,99,100,101],[79,86,87],[77,79,87,88],[78],[71,74,79],[79,83,87,88],[83],[77,79,82,147],[71,76,77,79,83,86],[105,136],[74,79,95,105,152,155],[58,59,60],[57],[127,152],[58],[152]],"referencedMap":[[67,1],[66,2],[68,3],[69,3],[104,4],[105,5],[106,6],[107,7],[108,8],[109,9],[110,10],[111,11],[112,12],[113,13],[114,13],[116,14],[115,15],[117,16],[118,17],[119,18],[103,19],[120,20],[121,21],[122,22],[155,23],[123,24],[124,25],[125,26],[126,27],[127,28],[128,29],[129,30],[130,31],[131,32],[132,33],[133,33],[134,34],[136,35],[138,36],[137,37],[139,38],[140,39],[141,40],[142,41],[143,42],[144,43],[145,44],[146,45],[147,46],[148,47],[149,48],[150,49],[151,50],[152,51],[153,52],[180,53],[181,54],[156,55],[159,55],[178,53],[179,53],[169,53],[168,56],[166,53],[161,53],[174,53],[172,53],[176,53],[160,53],[173,53],[177,53],[162,53],[163,53],[175,53],[157,53],[164,53],[165,53],[167,53],[171,53],[182,57],[170,53],[158,53],[195,58],[189,57],[191,59],[190,57],[183,57],[184,57],[186,57],[188,57],[192,59],[193,59],[185,59],[187,59],[86,60],[93,61],[85,60],[100,62],[77,63],[76,64],[99,65],[94,66],[97,67],[79,68],[78,69],[74,70],[73,71],[96,72],[75,73],[80,74],[84,74],[102,75],[101,74],[88,76],[89,77],[91,78],[87,79],[90,80],[95,65],[82,81],[83,82],[92,83],[72,84],[98,85],[61,86],[58,87],[60,88],[59,89],[62,90]],"exportedModulesMap":[[67,1],[66,2],[68,3],[69,3],[104,4],[105,5],[106,6],[107,7],[108,8],[109,9],[110,10],[111,11],[112,12],[113,13],[114,13],[116,14],[115,15],[117,16],[118,17],[119,18],[103,19],[120,20],[121,21],[122,22],[155,23],[123,24],[124,25],[125,26],[126,27],[127,28],[128,29],[129,30],[130,31],[131,32],[132,33],[133,33],[134,34],[136,35],[138,36],[137,37],[139,38],[140,39],[141,40],[142,41],[143,42],[144,43],[145,44],[146,45],[147,46],[148,47],[149,48],[150,49],[151,50],[152,51],[153,52],[180,53],[181,54],[156,55],[159,55],[178,53],[179,53],[169,53],[168,56],[166,53],[161,53],[174,53],[172,53],[176,53],[160,53],[173,53],[177,53],[162,53],[163,53],[175,53],[157,53],[164,53],[165,53],[167,53],[171,53],[182,57],[170,53],[158,53],[195,58],[189,57],[191,59],[190,57],[183,57],[184,57],[186,57],[188,57],[192,59],[193,59],[185,59],[187,59],[86,60],[93,61],[85,60],[100,62],[77,63],[76,64],[99,65],[94,66],[97,67],[79,68],[78,69],[74,70],[73,71],[96,72],[75,73],[80,74],[84,74],[102,75],[101,74],[88,76],[89,77],[91,78],[87,79],[90,80],[95,65],[82,81],[83,82],[92,83],[72,84],[98,85],[61,86],[58,87],[60,88],[59,89],[62,90]]},"version":"5.4.5"}
|