@loan-risk/http-api 1.0.0

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/.env ADDED
@@ -0,0 +1,2 @@
1
+ PORT=4000
2
+ NODE_ENV=development
package/.env.example ADDED
@@ -0,0 +1,2 @@
1
+ PORT=4000
2
+ NODE_ENV=development
@@ -0,0 +1,4 @@
1
+
2
+ > @loan-risk/http-api@1.0.0 build D:\loan-risk-analyzer\packages\http-api
3
+ > tsc
4
+
@@ -0,0 +1,4 @@
1
+
2
+ > @loan-risk/http-api@1.0.0 lint D:\loan-risk-analyzer\packages\http-api
3
+ > eslint src --ext .ts
4
+
@@ -0,0 +1,4 @@
1
+
2
+ > @loan-risk/http-api@1.0.0 typecheck D:\loan-risk-analyzer\packages\http-api
3
+ > tsc -b --noEmit
4
+
package/Dockerfile ADDED
@@ -0,0 +1,15 @@
1
+ FROM node:20-alpine
2
+
3
+ WORKDIR /app
4
+
5
+ RUN corepack enable
6
+
7
+ COPY . .
8
+
9
+ RUN pnpm install
10
+
11
+ RUN pnpm build
12
+
13
+ EXPOSE 4000
14
+
15
+ CMD ["pnpm", "--filter", "@loan-risk/http-api", "dev"]
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Aparna Nikam
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,384 @@
1
+ # Loan Risk Analyzer
2
+
3
+ ![CI](https://github.com/Aparna-tech-codes/loan-risk-analyzer/actions/workflows/ci.yml/badge.svg)
4
+
5
+ ![TypeScript](https://img.shields.io/badge/TypeScript-5.x-blue)
6
+
7
+ ![License](https://img.shields.io/badge/license-MIT-green)
8
+
9
+ ![PNPM](https://img.shields.io/badge/PNPM-workspace-orange)
10
+
11
+ A modern TypeScript-based loan risk analysis engine with plugin architecture, hooks system, HTTP API support, and extensible rule processing.
12
+
13
+ Built with:
14
+
15
+ - TypeScript
16
+ - Node.js
17
+ - PNPM Workspace
18
+ - Vitest
19
+ - Express
20
+
21
+ ---
22
+
23
+ # Features
24
+
25
+ - Rule-based loan risk analysis
26
+ - Plugin architecture
27
+ - Hook system
28
+ - Fraud detection support
29
+ - Parallel rule execution
30
+ - HTTP API package
31
+ - Logger package
32
+ - Automated testing
33
+ - Monorepo architecture
34
+ - Fully typed with TypeScript
35
+
36
+ ---
37
+ # Quick Start
38
+
39
+ ```bash
40
+ pnpm install
41
+ pnpm build
42
+ pnpm test
43
+
44
+ # Architecture
45
+
46
+ This repository follows a modular monorepo architecture using TurboRepo and PNPM workspaces.
47
+
48
+ Each package is independently buildable, type-safe, and publishable to npm.
49
+
50
+ The system is designed for:
51
+ - extensibility
52
+ - plugin-based rule processing
53
+ - scalable risk evaluation
54
+ - enterprise TypeScript development workflows
55
+
56
+ # Project Structure
57
+
58
+ ```txt
59
+ loan-risk-analyzer/
60
+
61
+ ├── packages/
62
+ │ ├── core/
63
+ │ │ ├── src/
64
+ │ │ ├── tests/
65
+ │ │ └── package.json
66
+ │ │
67
+ │ ├── logger/
68
+ │ │ ├── src/
69
+ │ │ └── package.json
70
+ │ │
71
+ │ └── http-api/
72
+ │ ├── src/
73
+ │ └── package.json
74
+
75
+ ├── .github/
76
+ │ └── workflows/
77
+
78
+ ├── package.json
79
+ ├── pnpm-workspace.yaml
80
+ ├── tsconfig.base.json
81
+ └── README.md
82
+ ```
83
+
84
+ ---
85
+
86
+ # Packages
87
+
88
+ ## `@loan-risk/core`
89
+
90
+ Core loan risk analysis engine.
91
+
92
+ Features:
93
+
94
+ - Rule engine
95
+ - Risk scoring
96
+ - Plugin support
97
+ - Hooks system
98
+ - Fraud detection
99
+
100
+ ---
101
+
102
+ ## `@loan-risk/logger`
103
+
104
+ Reusable logger package.
105
+
106
+ Features:
107
+
108
+ - Info logs
109
+ - Warning logs
110
+ - Error logs
111
+ - Debug logs
112
+
113
+ ---
114
+
115
+ ## `@loan-risk/http-api`
116
+
117
+ Express-based HTTP API for exposing the analyzer.
118
+
119
+ Features:
120
+
121
+ - REST API
122
+ - Health endpoint
123
+ - Risk analysis endpoint
124
+
125
+ ---
126
+
127
+ # Installation
128
+
129
+ ## Clone Repository
130
+
131
+ ```bash
132
+ git clone https://github.com/Aparna-tech-codes/loan-risk-analyzer.git
133
+ ```
134
+
135
+ ---
136
+
137
+ ## Install Dependencies
138
+
139
+ ```bash
140
+ pnpm install
141
+ ```
142
+
143
+ ---
144
+
145
+ # Build Project
146
+
147
+ ```bash
148
+ pnpm -r build
149
+ ```
150
+
151
+ ---
152
+
153
+ # Run Type Check
154
+
155
+ ```bash
156
+ pnpm -r exec tsc --noEmit
157
+ ```
158
+
159
+ ---
160
+
161
+ # Run Tests
162
+
163
+ ```bash
164
+ pnpm test
165
+ ```
166
+
167
+ ---
168
+
169
+ # Coverage Report
170
+
171
+ ```bash
172
+ pnpm coverage
173
+ ```
174
+
175
+ ---
176
+
177
+ # Usage Example
178
+
179
+ ## Basic Usage
180
+
181
+ ```ts
182
+ import { calculateRisk } from "@loan-risk/core";
183
+
184
+ const result = await calculateRisk({
185
+ fullName: "full name",
186
+
187
+ age: 28,
188
+
189
+ monthlyIncome: 90000,
190
+
191
+ monthlyEMI: 15000,
192
+
193
+ requestedLoanAmount: 500000,
194
+
195
+ creditScore: 760,
196
+
197
+ employmentType: "SALARIED",
198
+ });
199
+
200
+ console.log(result);
201
+ ```
202
+
203
+ ---
204
+
205
+ # Result Example
206
+
207
+ ```json
208
+ {
209
+ "score": 85,
210
+ "riskLevel": "LOW",
211
+ "approved": true,
212
+ "reasons": [],
213
+ "explanations": []
214
+ }
215
+ ```
216
+
217
+ ---
218
+
219
+ # Hooks Example
220
+
221
+ ```ts
222
+ import { calculateRisk } from "@loan-risk/core";
223
+
224
+ await calculateRisk(applicant, undefined, {
225
+ hooks: {
226
+ beforeCalculate: async (ctx) => {
227
+ console.log("Started");
228
+ },
229
+
230
+ afterCalculate: async (ctx) => {
231
+ console.log(ctx.result);
232
+ },
233
+ },
234
+ });
235
+ ```
236
+
237
+ ---
238
+
239
+ # Plugin Example
240
+
241
+ ```ts
242
+ import { createRiskEngine } from "@loan-risk/core";
243
+
244
+ const engine = createRiskEngine();
245
+
246
+ engine.use({
247
+ name: "CUSTOM_PLUGIN",
248
+
249
+ rules: [
250
+ {
251
+ name: "CUSTOM_RULE",
252
+
253
+ async execute() {
254
+ return {
255
+ scoreImpact: -5,
256
+ };
257
+ },
258
+ },
259
+ ],
260
+ });
261
+ ```
262
+
263
+ ---
264
+
265
+ # HTTP API
266
+
267
+ ## Start API
268
+
269
+ ```bash
270
+ pnpm --filter @loan-risk/http-api dev
271
+ ```
272
+
273
+ ---
274
+
275
+ ## Health Endpoint
276
+
277
+ ```http
278
+ GET /health
279
+ ```
280
+
281
+ ---
282
+
283
+ ## Analyze Endpoint
284
+
285
+ ```http
286
+ POST /analyze
287
+ ```
288
+
289
+ ### Request
290
+
291
+ ```json
292
+ {
293
+ "fullName": "Aparna Nikam",
294
+ "age": 28,
295
+ "monthlyIncome": 90000,
296
+ "monthlyEMI": 15000,
297
+ "requestedLoanAmount": 500000,
298
+ "creditScore": 760,
299
+ "employmentType": "SALARIED"
300
+ }
301
+ ```
302
+
303
+ ---
304
+
305
+ # Development Scripts
306
+
307
+ ## Build
308
+
309
+ ```bash
310
+ pnpm -r build
311
+ ```
312
+
313
+ ## Test
314
+
315
+ ```bash
316
+ pnpm test
317
+ ```
318
+
319
+ ## Coverage
320
+
321
+ ```bash
322
+ pnpm coverage
323
+ ```
324
+
325
+ ## Type Check
326
+
327
+ ```bash
328
+ pnpm -r exec tsc --noEmit
329
+ ```
330
+
331
+ ---
332
+
333
+ # Automated Testing
334
+
335
+ This project uses:
336
+
337
+ - Vitest
338
+ - TypeScript
339
+ - Workspace testing
340
+
341
+ Current tests:
342
+
343
+ - Core engine tests
344
+ - Hooks tests
345
+ - Plugin tests
346
+ - Fraud detection tests
347
+ - Performance tests
348
+
349
+ ---
350
+
351
+ # CI/CD
352
+
353
+ GitHub Actions workflow included.
354
+
355
+ Automatically runs:
356
+
357
+ - Install
358
+ - Type checking
359
+ - Build
360
+ - Tests
361
+
362
+ On every push and pull request.
363
+
364
+ ---
365
+
366
+ # Open Source
367
+
368
+ This project is open source under the MIT License.
369
+
370
+ This repository is an independent personal open-source project and has no relation to any external business or company.
371
+
372
+ ---
373
+
374
+ # License
375
+
376
+ MIT License
377
+
378
+ Copyright (c) 2026 Aparna Nikam
379
+
380
+ Permission is hereby granted, free of charge, to any person obtaining a copy
381
+ of this software and associated documentation files (the "Software"), to deal
382
+ in the Software without restriction.
383
+
384
+ See the LICENSE file for full details.
@@ -0,0 +1 @@
1
+ export {};
package/dist/server.js ADDED
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const express_1 = __importDefault(require("express"));
7
+ const cors_1 = __importDefault(require("cors"));
8
+ const dotenv_safe_1 = __importDefault(require("dotenv-safe"));
9
+ dotenv_safe_1.default.config();
10
+ const core_1 = require("@loan-risk/core");
11
+ const logger_1 = require("@loan-risk/logger");
12
+ const swagger_ui_express_1 = __importDefault(require("swagger-ui-express"));
13
+ const swagger_1 = require("./swagger");
14
+ const app = (0, express_1.default)();
15
+ const logger = new logger_1.Logger({
16
+ debug: true,
17
+ });
18
+ app.use((0, cors_1.default)());
19
+ app.use(express_1.default.json());
20
+ app.use("/docs", swagger_ui_express_1.default.serve, swagger_ui_express_1.default.setup(swagger_1.swaggerSpec));
21
+ /**
22
+ * @swagger
23
+ * /health:
24
+ * get:
25
+ * summary: Health check endpoint
26
+ * responses:
27
+ * 200:
28
+ * description: API running successfully
29
+ */
30
+ app.get("/health", (_req, res) => {
31
+ res.json({
32
+ success: true,
33
+ message: "API Running",
34
+ });
35
+ });
36
+ /**
37
+ * @swagger
38
+ * /analyze:
39
+ * post:
40
+ * summary: Analyze loan applicant risk
41
+ * requestBody:
42
+ * required: true
43
+ * content:
44
+ * application/json:
45
+ * schema:
46
+ * type: object
47
+ * properties:
48
+ * fullName:
49
+ * type: string
50
+ * age:
51
+ * type: number
52
+ * monthlyIncome:
53
+ * type: number
54
+ * creditScore:
55
+ * type: number
56
+ * responses:
57
+ * 200:
58
+ * description: Risk analysis result
59
+ */
60
+ app.post("/analyze", async (req, res) => {
61
+ try {
62
+ logger.info("Risk analyze request received");
63
+ const result = await (0, core_1.calculateRisk)(req.body, undefined, {
64
+ logger,
65
+ });
66
+ res.json({
67
+ success: true,
68
+ data: result,
69
+ });
70
+ }
71
+ catch (error) {
72
+ logger.error("Risk analysis failed");
73
+ res.status(500).json({
74
+ success: false,
75
+ error: error instanceof Error ? error.message : "Unknown error",
76
+ });
77
+ }
78
+ });
79
+ const PORT = process.env.PORT || 4000;
80
+ app.listen(PORT, () => {
81
+ logger.info(`HTTP API running on port ${PORT}`);
82
+ });
@@ -0,0 +1 @@
1
+ export declare const swaggerSpec: object;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.swaggerSpec = void 0;
7
+ const swagger_jsdoc_1 = __importDefault(require("swagger-jsdoc"));
8
+ const options = {
9
+ definition: {
10
+ openapi: "3.0.0",
11
+ info: {
12
+ title: "Loan Risk Analyzer API",
13
+ version: "1.0.0",
14
+ description: "Professional loan risk analysis engine API",
15
+ },
16
+ servers: [
17
+ {
18
+ url: "http://localhost:4000",
19
+ },
20
+ ],
21
+ },
22
+ apis: ["./src/server.ts"],
23
+ };
24
+ exports.swaggerSpec = (0, swagger_jsdoc_1.default)(options);
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "@loan-risk/http-api",
3
+ "version": "1.0.0",
4
+ "description": "Express HTTP API for loan risk analysis engine",
5
+ "license": "MIT",
6
+ "author": "Aparna Nikam",
7
+ "homepage": "https://github.com/Aparna-tech-codes/loan-risk-analyzer",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/Aparna-tech-codes/loan-risk-analyzer.git"
11
+ },
12
+ "bugs": {
13
+ "url": "https://github.com/Aparna-tech-codes/loan-risk-analyzer/issues"
14
+ },
15
+ "keywords": [
16
+ "express",
17
+ "loan-risk",
18
+ "api",
19
+ "typescript",
20
+ "swagger"
21
+ ],
22
+ "main": "dist/server.js",
23
+ "dependencies": {
24
+ "cors": "^2.8.5",
25
+ "dotenv": "^17.2.3",
26
+ "express": "^5.1.0",
27
+ "swagger-jsdoc": "^6.2.8",
28
+ "swagger-ui-express": "^5.0.1",
29
+ "zod": "^4.4.3",
30
+ "@loan-risk/core": "1.0.0",
31
+ "@loan-risk/logger": "1.0.0"
32
+ },
33
+ "devDependencies": {
34
+ "@types/cors": "^2.8.19",
35
+ "@types/express": "^5.0.3",
36
+ "@types/node": "^24.12.3",
37
+ "@types/swagger-jsdoc": "^6.0.4",
38
+ "@types/swagger-ui-express": "^4.1.8",
39
+ "ts-node": "^10.9.2",
40
+ "typescript": "^5.9.3"
41
+ },
42
+ "scripts": {
43
+ "dev": "tsx watch src/server.ts",
44
+ "build": "tsc",
45
+ "typecheck": "tsc -b --noEmit",
46
+ "lint": "eslint src --ext .ts"
47
+ }
48
+ }
@@ -0,0 +1 @@
1
+ export {};
package/src/server.js ADDED
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const express_1 = __importDefault(require("express"));
7
+ const cors_1 = __importDefault(require("cors"));
8
+ const dotenv_safe_1 = __importDefault(require("dotenv-safe"));
9
+ dotenv_safe_1.default.config();
10
+ const core_1 = require("@loan-risk/core");
11
+ const logger_1 = require("@loan-risk/logger");
12
+ const swagger_ui_express_1 = __importDefault(require("swagger-ui-express"));
13
+ const swagger_1 = require("./swagger");
14
+ const app = (0, express_1.default)();
15
+ const logger = new logger_1.Logger({
16
+ debug: true,
17
+ });
18
+ app.use((0, cors_1.default)());
19
+ app.use(express_1.default.json());
20
+ app.use("/docs", swagger_ui_express_1.default.serve, swagger_ui_express_1.default.setup(swagger_1.swaggerSpec));
21
+ /**
22
+ * @swagger
23
+ * /health:
24
+ * get:
25
+ * summary: Health check endpoint
26
+ * responses:
27
+ * 200:
28
+ * description: API running successfully
29
+ */
30
+ app.get("/health", (_req, res) => {
31
+ res.json({
32
+ success: true,
33
+ message: "API Running",
34
+ });
35
+ });
36
+ /**
37
+ * @swagger
38
+ * /analyze:
39
+ * post:
40
+ * summary: Analyze loan applicant risk
41
+ * requestBody:
42
+ * required: true
43
+ * content:
44
+ * application/json:
45
+ * schema:
46
+ * type: object
47
+ * properties:
48
+ * fullName:
49
+ * type: string
50
+ * age:
51
+ * type: number
52
+ * monthlyIncome:
53
+ * type: number
54
+ * creditScore:
55
+ * type: number
56
+ * responses:
57
+ * 200:
58
+ * description: Risk analysis result
59
+ */
60
+ app.post("/analyze", async (req, res) => {
61
+ try {
62
+ logger.info("Risk analyze request received");
63
+ const result = await (0, core_1.calculateRisk)(req.body, undefined, {
64
+ logger,
65
+ });
66
+ res.json({
67
+ success: true,
68
+ data: result,
69
+ });
70
+ }
71
+ catch (error) {
72
+ logger.error("Risk analysis failed");
73
+ res.status(500).json({
74
+ success: false,
75
+ error: error instanceof Error ? error.message : "Unknown error",
76
+ });
77
+ }
78
+ });
79
+ const PORT = process.env.PORT || 4000;
80
+ app.listen(PORT, () => {
81
+ logger.info(`HTTP API running on port ${PORT}`);
82
+ });
package/src/server.ts ADDED
@@ -0,0 +1,110 @@
1
+ import express from "express";
2
+
3
+ import cors from "cors";
4
+
5
+ import dotenvSafe from "dotenv-safe";
6
+
7
+ dotenvSafe.config();
8
+
9
+ import { calculateRisk } from "@loan-risk/core";
10
+
11
+ import { Logger } from "@loan-risk/logger";
12
+
13
+ import swaggerUi from "swagger-ui-express";
14
+
15
+ import { swaggerSpec } from "./swagger";
16
+
17
+ const app = express();
18
+
19
+ const logger = new Logger({
20
+ debug: true,
21
+ });
22
+
23
+ app.use(cors());
24
+
25
+ app.use(express.json());
26
+ app.use(
27
+ "/docs",
28
+
29
+ swaggerUi.serve,
30
+
31
+ swaggerUi.setup(swaggerSpec),
32
+ );
33
+
34
+ /**
35
+ * @swagger
36
+ * /health:
37
+ * get:
38
+ * summary: Health check endpoint
39
+ * responses:
40
+ * 200:
41
+ * description: API running successfully
42
+ */
43
+ app.get("/health", (_req, res) => {
44
+ res.json({
45
+ success: true,
46
+ message: "API Running",
47
+ });
48
+ });
49
+
50
+ /**
51
+ * @swagger
52
+ * /analyze:
53
+ * post:
54
+ * summary: Analyze loan applicant risk
55
+ * requestBody:
56
+ * required: true
57
+ * content:
58
+ * application/json:
59
+ * schema:
60
+ * type: object
61
+ * properties:
62
+ * fullName:
63
+ * type: string
64
+ * age:
65
+ * type: number
66
+ * monthlyIncome:
67
+ * type: number
68
+ * creditScore:
69
+ * type: number
70
+ * responses:
71
+ * 200:
72
+ * description: Risk analysis result
73
+ */
74
+ app.post(
75
+ "/analyze",
76
+
77
+ async (req, res) => {
78
+ try {
79
+ logger.info("Risk analyze request received");
80
+
81
+ const result = await calculateRisk(
82
+ req.body,
83
+
84
+ undefined,
85
+
86
+ {
87
+ logger,
88
+ },
89
+ );
90
+
91
+ res.json({
92
+ success: true,
93
+ data: result,
94
+ });
95
+ } catch (error) {
96
+ logger.error("Risk analysis failed");
97
+
98
+ res.status(500).json({
99
+ success: false,
100
+ error: error instanceof Error ? error.message : "Unknown error",
101
+ });
102
+ }
103
+ },
104
+ );
105
+
106
+ const PORT = process.env.PORT || 4000;
107
+
108
+ app.listen(PORT, () => {
109
+ logger.info(`HTTP API running on port ${PORT}`);
110
+ });
@@ -0,0 +1 @@
1
+ export declare const swaggerSpec: object;
package/src/swagger.js ADDED
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.swaggerSpec = void 0;
7
+ const swagger_jsdoc_1 = __importDefault(require("swagger-jsdoc"));
8
+ const options = {
9
+ definition: {
10
+ openapi: "3.0.0",
11
+ info: {
12
+ title: "Loan Risk Analyzer API",
13
+ version: "1.0.0",
14
+ description: "Professional loan risk analysis engine API",
15
+ },
16
+ servers: [
17
+ {
18
+ url: "http://localhost:4000",
19
+ },
20
+ ],
21
+ },
22
+ apis: ["./src/server.ts"],
23
+ };
24
+ exports.swaggerSpec = (0, swagger_jsdoc_1.default)(options);
package/src/swagger.ts ADDED
@@ -0,0 +1,25 @@
1
+ import swaggerJsdoc from "swagger-jsdoc";
2
+
3
+ const options = {
4
+ definition: {
5
+ openapi: "3.0.0",
6
+
7
+ info: {
8
+ title: "Loan Risk Analyzer API",
9
+
10
+ version: "1.0.0",
11
+
12
+ description: "Professional loan risk analysis engine API",
13
+ },
14
+
15
+ servers: [
16
+ {
17
+ url: "http://localhost:4000",
18
+ },
19
+ ],
20
+ },
21
+
22
+ apis: ["./src/server.ts"],
23
+ };
24
+
25
+ export const swaggerSpec = swaggerJsdoc(options);
package/tsconfig.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+
4
+ "compilerOptions": {
5
+ "rootDir": "src",
6
+
7
+ "outDir": "dist",
8
+
9
+ "module": "CommonJS",
10
+
11
+ "target": "ES2020",
12
+
13
+ "moduleResolution": "node",
14
+
15
+ "esModuleInterop": true,
16
+
17
+ "strict": true,
18
+
19
+ "skipLibCheck": true,
20
+
21
+ "composite": true
22
+ },
23
+
24
+ "include": ["src"],
25
+
26
+ "exclude": [
27
+ "dist",
28
+ "node_modules"
29
+ ],
30
+
31
+ "references": [
32
+ {
33
+ "path": "../core"
34
+ },
35
+ {
36
+ "path": "../logger"
37
+ }
38
+ ]
39
+ }
@@ -0,0 +1 @@
1
+ {"fileNames":["../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.scripthost.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.float16.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.full.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/globals.typedarray.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/buffer.buffer.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/globals.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/web-globals/crypto.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/web-globals/domexception.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/web-globals/events.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/utility.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/header.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/readable.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/fetch.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/formdata.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/connector.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/client-stats.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/client.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/errors.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/dispatcher.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/global-origin.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/pool-stats.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/pool.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/handlers.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/balanced-pool.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/h2c-client.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/agent.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-call-history.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-agent.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-client.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-pool.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/snapshot-agent.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-errors.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/retry-handler.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/retry-agent.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/api.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cache-interceptor.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/interceptors.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/util.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cookies.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/patch.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/websocket.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/eventsource.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/content-type.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cache.d.ts","../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/index.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/web-globals/fetch.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/web-globals/navigator.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/web-globals/storage.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/web-globals/streams.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/assert.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/assert/strict.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/async_hooks.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/buffer.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/child_process.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/cluster.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/console.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/constants.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/crypto.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/dgram.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/dns.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/dns/promises.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/domain.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/events.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/fs.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/fs/promises.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/http.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/http2.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/https.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/inspector.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/inspector.generated.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/module.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/net.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/os.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/path.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/perf_hooks.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/process.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/punycode.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/querystring.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/readline.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/readline/promises.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/repl.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/sea.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/sqlite.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/stream.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/stream/promises.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/stream/consumers.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/stream/web.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/string_decoder.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/test.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/timers.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/timers/promises.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/tls.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/trace_events.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/tty.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/url.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/util.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/v8.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/vm.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/wasi.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/worker_threads.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/zlib.d.ts","../../node_modules/.pnpm/@types+node@24.12.3/node_modules/@types/node/index.d.ts","../../node_modules/.pnpm/@types+send@1.2.1/node_modules/@types/send/index.d.ts","../../node_modules/.pnpm/@types+qs@6.15.1/node_modules/@types/qs/index.d.ts","../../node_modules/.pnpm/@types+range-parser@1.2.7/node_modules/@types/range-parser/index.d.ts","../../node_modules/.pnpm/@types+express-serve-static-core@5.1.1/node_modules/@types/express-serve-static-core/index.d.ts","../../node_modules/.pnpm/@types+http-errors@2.0.5/node_modules/@types/http-errors/index.d.ts","../../node_modules/.pnpm/@types+serve-static@2.2.0/node_modules/@types/serve-static/index.d.ts","../../node_modules/.pnpm/@types+connect@3.4.38/node_modules/@types/connect/index.d.ts","../../node_modules/.pnpm/@types+body-parser@1.19.6/node_modules/@types/body-parser/index.d.ts","../../node_modules/.pnpm/@types+express@5.0.6/node_modules/@types/express/index.d.ts","../../node_modules/.pnpm/@types+cors@2.8.19/node_modules/@types/cors/index.d.ts","../../node_modules/.pnpm/dotenv@17.4.2/node_modules/dotenv/lib/main.d.ts","../../node_modules/.pnpm/@types+dotenv-safe@9.1.0_dotenv@17.4.2/node_modules/@types/dotenv-safe/index.d.ts","../core/dist/types/explanation.types.d.ts","../core/dist/types/risk.types.d.ts","../core/dist/types/risk-config.types.d.ts","../core/dist/types/rule.types.d.ts","../core/dist/types/hook.types.d.ts","../core/dist/types/engine.types.d.ts","../core/dist/engine/risk-engine.d.ts","../core/dist/config/default-risk-config.d.ts","../core/dist/rules/credit-score.rule.d.ts","../core/dist/rules/emi.rule.d.ts","../core/dist/rules/fraud.rule.d.ts","../core/dist/rules/index.d.ts","../core/dist/types/plugin.types.d.ts","../core/dist/engine/create-risk-engine.d.ts","../core/dist/plugins/fraud.plugin.d.ts","../core/dist/index.d.ts","../logger/dist/logger.d.ts","../logger/dist/logger.types.d.ts","../logger/dist/index.d.ts","../../node_modules/.pnpm/@types+swagger-ui-express@4.1.8/node_modules/@types/swagger-ui-express/index.d.ts","../../node_modules/.pnpm/@types+swagger-jsdoc@6.0.4/node_modules/@types/swagger-jsdoc/index.d.ts","./src/swagger.ts","./src/server.ts"],"fileIdsList":[[56,110,124,127,128,160,167],[56,110,124,127,128,160],[56,110,127,128,171],[56,110,121,124,127,128,160,161,162,163],[56,110,127,128,164,166,168],[56,110,127,128],[56,107,108,110,127,128],[56,109,110,127,128],[110,127,128],[56,110,115,127,128,145],[56,110,111,116,121,127,128,130,142,153],[56,110,111,112,121,127,128,130],[56,110,113,127,128,154],[56,110,114,115,122,127,128,131],[56,110,115,127,128,142,150],[56,110,116,118,121,127,128,130],[56,109,110,117,127,128],[56,110,118,119,127,128],[56,110,120,121,127,128],[56,109,110,121,127,128],[56,110,121,122,123,127,128,142,153],[56,110,121,122,123,127,128,137,142,145],[56,102,110,118,121,124,127,128,130,142,153],[56,110,121,122,124,125,127,128,130,142,150,153],[56,110,124,126,127,128,142,150,153],[54,55,56,57,58,59,60,61,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,155,156,157,158,159],[56,110,121,127,128],[56,110,127,128,129,153],[56,110,118,121,127,128,130,142],[56,110,127,128,131],[56,110,127,128,132],[56,109,110,127,128,133],[56,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,155,156,157,158,159],[56,110,127,128,135],[56,110,127,128,136],[56,110,121,127,128,137,138],[56,110,127,128,137,139,154,156],[56,110,122,127,128],[56,110,121,127,128,142,143,145],[56,110,127,128,144,145],[56,110,127,128,142,143],[56,110,127,128,145],[56,110,127,128,146],[56,107,110,127,128,142,147,153],[56,110,121,127,128,148,149],[56,110,127,128,148,149],[56,110,115,127,128,130,142,150],[56,110,127,128,151],[56,110,127,128,130,152],[56,110,124,127,128,136,153],[56,110,115,127,128,154],[56,110,127,128,142,155],[56,110,127,128,129,156],[56,110,127,128,157],[56,110,115,127,128],[56,102,110,127,128],[56,110,127,128,158],[56,102,110,121,123,127,128,133,142,145,153,155,156,158],[56,110,127,128,142,159],[56,110,122,127,128,142,160],[56,110,124,127,128,160,165],[56,110,127,128,166,169],[56,110,127,128,153,160],[56,68,71,74,75,110,127,128,153],[56,71,110,127,128,142,153],[56,71,75,110,127,128,153],[56,110,127,128,142],[56,65,110,127,128],[56,69,110,127,128],[56,67,68,71,110,127,128,153],[56,110,127,128,130,150],[56,110,127,128,160],[56,65,110,127,128,160],[56,67,71,110,127,128,130,153],[56,62,63,64,66,70,110,121,127,128,142,153],[56,71,79,87,110,127,128],[56,63,69,110,127,128],[56,71,96,97,110,127,128],[56,63,66,71,110,127,128,145,153,160],[56,71,110,127,128],[56,67,71,110,127,128,153],[56,62,110,127,128],[56,65,66,67,69,70,71,72,73,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,97,98,99,100,101,110,127,128],[56,71,89,92,110,118,127,128],[56,71,79,80,81,110,127,128],[56,69,71,80,82,110,127,128],[56,70,110,127,128],[56,63,65,71,110,127,128],[56,71,75,80,82,110,127,128],[56,75,110,127,128],[56,69,71,74,110,127,128,153],[56,63,67,71,79,110,127,128],[56,71,89,110,127,128],[56,82,110,127,128],[56,65,71,96,110,127,128,145,158,160],[56,110,127,128,175],[56,110,127,128,174,175,177,185],[56,110,127,128,174,175,178],[56,110,127,128,174,175,176,177,178,179,180,184,186,187],[56,110,127,128,185],[56,110,127,128,176],[56,110,127,128,181,182,183,188],[56,110,127,128,176,177],[56,110,127,128,174,175],[56,110,127,128,173],[56,110,127,128,169,170,172,188,191,192,194],[56,110,127,128,193],[56,110,127,128,189,190]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"1305d1e76ca44e30fb8b2b8075fa522b83f60c0bcf5d4326a9d2cf79b53724f8","impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"378281aa35786c27d5811af7e6bcaa492eebd0c7013d48137c35bbc69a2b9751","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"1b2dd1cbeb0cc6ae20795958ba5950395ebb2849b7c8326853dd15530c77ab0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"387a023d363f755eb63450a66c28b14cdd7bc30a104565e2dbf0a8988bb4a56c","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"487b694c3de27ddf4ad107d4007ad304d29effccf9800c8ae23c2093638d906a","impliedFormat":1},{"version":"3a80bc85f38526ca3b08007ee80712e7bb0601df178b23fbf0bf87036fce40ce","impliedFormat":1},{"version":"ccf4552357ce3c159ef75f0f0114e80401702228f1898bdc9402214c9499e8c0","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"2931540c47ee0ff8a62860e61782eb17b155615db61e36986e54645ec67f67c2","impliedFormat":1},{"version":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","impliedFormat":1},{"version":"f6faf5f74e4c4cc309a6c6a6c4da02dbb840be5d3e92905a23dcd7b2b0bd1986","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"33e981bf6376e939f99bd7f89abec757c64897d33c005036b9a10d9587d80187","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"b41767d372275c154c7ea6c9d5449d9a741b8ce080f640155cc88ba1763e35b3","impliedFormat":1},{"version":"3bacf516d686d08682751a3bd2519ea3b8041a164bfb4f1d35728993e70a2426","impliedFormat":1},{"version":"7fb266686238369442bd1719bc0d7edd0199da4fb8540354e1ff7f16669b4323","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"54c3e2371e3d016469ad959697fd257e5621e16296fa67082c2575d0bf8eced0","impliedFormat":1},{"version":"beb8233b2c220cfa0feea31fbe9218d89fa02faa81ef744be8dce5acb89bb1fd","impliedFormat":1},{"version":"c183b931b68ad184bc8e8372bf663f3d33304772fb482f29fb91b3c391031f3e","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"48cc3ec153b50985fb95153258a710782b25975b10dd4ac8a4f3920632d10790","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"e1528ca65ac90f6fa0e4a247eb656b4263c470bb22d9033e466463e13395e599","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"866078923a56d026e39243b4392e282c1c63159723996fa89243140e1388a98d","impliedFormat":1},{"version":"f724236417941ea77ec8d38c6b7021f5fb7f8521c7f8c1538e87661f2c6a0774","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d97fb21da858fb18b8ae72c314e9743fd52f73ebe2764e12af1db32fc03f853f","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ea15fd99b2e34cb25fe8346c955000bb70c8b423ae4377a972ef46bfb37f595","impliedFormat":1},{"version":"7cf69dd5502c41644c9e5106210b5da7144800670cbe861f66726fa209e231c4","impliedFormat":1},{"version":"72c1f5e0a28e473026074817561d1bc9647909cf253c8d56c41d1df8d95b85f7","impliedFormat":1},{"version":"f9b4137a0d285bd77dba2e6e895530112264310ae47e07bf311feae428fb8b61","affectsGlobalScope":true,"impliedFormat":1},{"version":"c06b2652ffeb89afd0f1c52c165ced77032f9cd09bc481153fbd6b5504c69494","impliedFormat":1},{"version":"51aecd2df90a3cffea1eb4696b33b2d78594ea2aa2138e6b9471ec4841c6c2ee","impliedFormat":1},{"version":"9d8f9e63e29a3396285620908e7f14d874d066caea747dc4b2c378f0599166b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"612422d5ba6b4a5c4537f423e9199645468ad80a689801da63ab7edb43f7b835","impliedFormat":1},{"version":"db9ada976f9e52e13f7ae8b9a320f4b67b87685938c5879187d8864b2fbe97f3","impliedFormat":1},{"version":"9f39e70a354d0fba29ac3cdf6eca00b7f9e96f64b2b2780c432e8ea27f133743","impliedFormat":1},{"version":"0dace96cc0f7bc6d0ee2044921bdf19fe42d16284dbcc8ae200800d1c9579335","impliedFormat":1},{"version":"a2e2bbde231b65c53c764c12313897ffdfb6c49183dd31823ee2405f2f7b5378","impliedFormat":1},{"version":"ad1cc0ed328f3f708771272021be61ab146b32ecf2b78f3224959ff1e2cd2a5c","impliedFormat":1},{"version":"c64e1888baaa3253ca4405b455e4bf44f76357868a1bd0a52998ade9a092ad78","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc8c6f5322961b56d9906601b20798725df60baeab45ec014fba9f795d5596fd","impliedFormat":1},{"version":"0904660ae854e6d41f6ff25356db1d654436c6305b0f0aa89d1532df0253486e","impliedFormat":1},{"version":"060d305fe4494d8cb2b99d620928d369d1ee55c1645f5e729a2aca07d0f108cb","impliedFormat":1},{"version":"2c2591488d4a4cd765d0410f7e1e36b026828bd915330850e8464f47965123b9","impliedFormat":1},{"version":"0c50296ee73dae94efc3f0da4936b1146ca6ce2217acfabb44c19c9a33fa30e5","impliedFormat":1},{"version":"bbf42f98a5819f4f06e18c8b669a994afe9a17fe520ae3454a195e6eabf7700d","impliedFormat":1},{"version":"0e5974dfff7a97181c7c376545f126b20acf2f1341db7d3fccea4977bf3ce19c","impliedFormat":1},{"version":"c7f977ea78a1b060a30554c1c4ec0e2269c6e305a349ca2ada14931ac27ecc0b","affectsGlobalScope":true,"impliedFormat":1},{"version":"3806cdd6b48ba01a9198134e62a384ec217a98f316d4baef74dd46d62c947a63","impliedFormat":1},{"version":"ff65b8a8bd380c6d129becc35de02f7c29ad7ce03300331ca91311fb4044d1a9","impliedFormat":1},{"version":"04bf1aa481d1adfb16d93d76e44ce71c51c8ef68039d849926551199489637f6","impliedFormat":1},{"version":"2c9adcc85574b002c9a6311ff2141055769e0071856ec979d92ff989042b1f1b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b8bf3fe89ec8baa335f6370b9fa36308e1bc7a72e2eb2dad1e94f31e27fa28b5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a58a15da4c5ba3df60c910a043281256fa52d36a0fcdef9b9100c646282e88dd","impliedFormat":1},{"version":"b36beffbf8acdc3ebc58c8bb4b75574b31a2169869c70fc03f82895b93950a12","impliedFormat":1},{"version":"de263f0089aefbfd73c89562fb7254a7468b1f33b61839aafc3f035d60766cb4","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"8c81fd4a110490c43d7c578e8c6f69b3af01717189196899a6a44f93daa57a3a","impliedFormat":1},{"version":"5fb39858b2459864b139950a09adae4f38dad87c25bf572ce414f10e4bd7baab","impliedFormat":1},{"version":"35390d6fa94bdb432c5d0bcb6547bdd11406c2692a6b90b9e47be2105ea19bd6","impliedFormat":1},{"version":"3910dab597c40e173bf0e0d419d3ce9682c54ebf6ae84849f9b829b1451a17ec","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"486c074a5c0f2254345c0d1c9540380f5463999e42d7e1a159305ea823d3c4b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"c119835edf36415081dfd9ed15fc0cd37aaa28d232be029ad073f15f3d88c323","impliedFormat":1},{"version":"8e7c3bed5f19ade8f911677ddc83052e2283e25b0a8654cd89db9079d4b323c7","impliedFormat":1},{"version":"9705cd157ffbb91c5cab48bdd2de5a437a372e63f870f8a8472e72ff634d47c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ae86f30d5d10e4f75ce8dcb6e1bd3a12ecec3d071a21e8f462c5c85c678efb41","impliedFormat":1},{"version":"ccf3afaeebbeee4ca9092101e99fd6abd681116b6e5ec23e381bbb1e1f32262c","impliedFormat":1},{"version":"e03460fe72b259f6d25ad029f085e4bedc3f90477da4401d8fbc1efa9793230e","impliedFormat":1},{"version":"4286a3a6619514fca656089aee160bb6f2e77f4dd53dc5a96b26a0b4fc778055","impliedFormat":1},{"version":"ab7818a9d57a9297b90e456fc68b77f84d74395a9210a3cfa9d87db33aff8b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb08062718a5470cd864c1fae0eb5b3a3adc5bcd05dcf87608d6f60b65eca3f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"3a815b7d1aebc0646b91548eab2fc19dada09ff255d04c71ced00bbd3058c8eb","impliedFormat":1},{"version":"255d948f87f24ffd57bcb2fdf95792fd418a2e1f712a98cf2cce88744d75085c","impliedFormat":1},{"version":"0d5b085f36e6dc55bc6332ecb9c733be3a534958c238fb8d8d18d4a2b6f2a15a","impliedFormat":1},{"version":"836b36913830645ac3b28fe33731aac3fdb3524ee8adbb4cdab9a5c189f41943","affectsGlobalScope":true,"impliedFormat":1},{"version":"bfd3b3c21a56104693183942e221c1896ee23bcb8f8d91ab0b941f7b32985411","impliedFormat":1},{"version":"d7e9ab1b0996639047c61c1e62f85c620e4382206b3abb430d9a21fb7bc23c77","impliedFormat":1},{"version":"d34aa8df2d0b18fb56b1d772ff9b3c7aea7256cf0d692f969be6e1d27b74d660","impliedFormat":1},{"version":"93a3b8e57c68e348fc4054b245bd7cf4893225f56c991028844b693c2fa8c03c","impliedFormat":1},{"version":"2f5747b1508ccf83fad0c251ba1e5da2f5a30b78b09ffa1cfaf633045160afed","impliedFormat":1},{"version":"6823ccc7b5b77bbf898d878dbcad18aa45e0fa96bdd0abd0de98d514845d9ed9","affectsGlobalScope":true,"impliedFormat":1},{"version":"b71c603a539078a5e3a039b20f2b0a0d1708967530cf97dec8850a9ca45baa2b","impliedFormat":1},{"version":"168d88e14e0d81fe170e0dadd38ae9d217476c11435ea640ddb9b7382bdb6c1f","impliedFormat":1},{"version":"104c67f0da1bdf0d94865419247e20eded83ce7f9911a1aa75fc675c077ca66e","impliedFormat":1},{"version":"cc0d0b339f31ce0ab3b7a5b714d8e578ce698f1e13d7f8c60bfb766baeb1d35c","impliedFormat":1},{"version":"8e04cf0688e0d921111659c2b55851957017148fa7b977b02727477d155b3c47","impliedFormat":1},{"version":"25be1eb939c9c63242c7a45446edb20c40541da967f43f1aa6a00ed53c0552db","impliedFormat":1},{"version":"85652d7bb13bd2141b3d0c68d07ac1a11e933dd32ca2bb4b1b83b8aa5f62251c","impliedFormat":1},{"version":"7d1f8bb59962bc4b4c64e41a954f46481fff853277ff258dc792d9fff0b0a466","impliedFormat":1},"8b8901ba666fb8f8e1bb32fee1af7a271d20e30fd745086d9b58744d0ae6f237","2ee6724dd2b0a8f7e66941b2c103a924c40cfd420413d4c90280f9cb3f7091f8","4562949a61dafb267f2d52a78a77f2c74126209b7afcc4205dc453f4028a8582","03877d10becbba8c1b3fd9153bdc9778e401431ae3e558fa221caea1ba30d35f","4ba4ef019624443fa658b3088701993bd718f45274c1913667c50542dda99d90","22d4b8debc257aa3181ee9f1d40b6d740504bb52531710c2f0efe2e4e36c9d65","9384b39645c562897ce6dffc8a59d2300bb0403010d2516be6b25c30886a2c50","40fdda662e96c51b6939c7fb3f5611c19476b27eb1bc2900334e045397a7668d","aad0548cccc5abe6d64068875d58731ce1edf57eccda12ec88aab1f54d7c65fa","f357687515da0cd22ae2f7823b8ef2850436bb08faa38716f552e0d1bc6ea33b","a8dc8aafd8382b02ab087ab00bde4d6baafa20203937d0a52db67088925f647a","f8c8d31a228267541e9d403a3d8c41917f728532b3931f0dd5e53ae4eee85892","c300ce11253eb0196c0b0472e514503d9c5cefac2c6068350f79a266b9f45453","e64407e4a14601c2b76903f2d3bd96228b3f5261705caf316f928664f020843f","87b61c4d0f4cd036d561f32299abe3f9b847074964f400c079197db87c491f46","16d3807c39c94fe84b30ad005f87c01eb81394b7069e560c22f27b4affe02f93","a2ed7fae644108573c15583a175eb23da72917f9795286378d2e4b2f0dc8e92f","34e0c365cabe49c9a5307bae3d29c89bbadc8561d1bd8b5bc55e3f02f2d1d123","843d40bd9d48bb33877f206fab482fde98eee15d1282de0444e22fc08f16c896",{"version":"85a55229c4d0f20d42c59cec768df0cb83a492f8bb1351ead8524a58f278a005","impliedFormat":1},{"version":"22c313d18dc83e37a592cebb6e9366370dbcc6872b65f1c49b5cfc5fb84e6565","impliedFormat":1},{"version":"ea3dead0e5d78911b10c7ebc107dac77ec32b1a9c401b32573963996ed574399","signature":"792407e5f6b398d081ad7663ed659ff50af71849d7d148f6b3e9b63f69fbea96"},{"version":"cc66d74ebe4e35a069055e90323445e568d339856ab86299baa27be1eed82668","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"}],"root":[194,195],"options":{"composite":true,"esModuleInterop":true,"module":1,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"strict":true,"target":7},"referencedMap":[[168,1],[167,2],[170,2],[172,3],[164,4],[169,5],[165,6],[107,7],[108,7],[109,8],[56,9],[110,10],[111,11],[112,12],[54,6],[113,13],[114,14],[115,15],[116,16],[117,17],[118,18],[119,18],[120,19],[121,20],[122,21],[123,22],[57,6],[55,6],[124,23],[125,24],[126,25],[160,26],[127,27],[128,6],[129,28],[130,29],[131,30],[132,31],[133,32],[134,33],[135,34],[136,35],[137,36],[138,36],[139,37],[140,6],[141,38],[142,39],[144,40],[143,41],[145,42],[146,43],[147,44],[148,45],[149,46],[150,47],[151,48],[152,49],[153,50],[154,51],[155,52],[156,53],[157,54],[58,6],[59,55],[60,6],[61,6],[103,56],[104,57],[105,6],[106,42],[158,58],[159,59],[162,6],[163,6],[161,60],[166,61],[193,6],[192,62],[171,63],[51,6],[52,6],[10,6],[8,6],[9,6],[14,6],[13,6],[2,6],[15,6],[16,6],[17,6],[18,6],[19,6],[20,6],[21,6],[22,6],[3,6],[23,6],[24,6],[4,6],[25,6],[29,6],[26,6],[27,6],[28,6],[30,6],[31,6],[32,6],[5,6],[33,6],[34,6],[35,6],[36,6],[6,6],[40,6],[37,6],[38,6],[39,6],[41,6],[7,6],[42,6],[53,6],[47,6],[48,6],[43,6],[44,6],[45,6],[46,6],[1,6],[49,6],[50,6],[12,6],[11,6],[79,64],[91,65],[77,66],[92,67],[101,68],[68,69],[69,70],[67,71],[100,72],[95,73],[99,74],[71,75],[88,76],[70,77],[98,78],[65,79],[66,73],[72,80],[73,6],[78,81],[76,80],[63,82],[102,83],[93,84],[82,85],[81,80],[83,86],[86,87],[80,88],[84,89],[96,72],[74,90],[75,91],[87,92],[64,67],[90,93],[89,80],[85,94],[94,6],[62,6],[97,95],[180,96],[186,97],[179,98],[188,99],[187,100],[181,101],[182,101],[183,101],[184,102],[178,103],[173,6],[177,104],[185,101],[175,6],[174,105],[176,104],[195,106],[194,107],[191,108],[189,6],[190,6]],"latestChangedDtsFile":"./dist/server.d.ts","version":"5.9.3"}