@squiz/dx-common-lib 1.2.8 → 1.2.10

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/CHANGELOG.md CHANGED
@@ -3,6 +3,22 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [1.2.10](https://gitlab.squiz.net/developer-experience/cmp/compare/v1.2.2...v1.2.10) (2022-11-09)
7
+
8
+ **Note:** Version bump only for package @squiz/dx-common-lib
9
+
10
+
11
+
12
+
13
+
14
+ ## [1.2.9](https://gitlab.squiz.net/developer-experience/cmp/compare/v1.2.2...v1.2.9) (2022-11-04)
15
+
16
+ **Note:** Version bump only for package @squiz/dx-common-lib
17
+
18
+
19
+
20
+
21
+
6
22
  ## [1.2.8](https://gitlab.squiz.net/developer-experience/cmp/compare/v1.2.2...v1.2.8) (2022-10-21)
7
23
 
8
24
  **Note:** Version bump only for package @squiz/dx-common-lib
package/lib/index.d.ts CHANGED
@@ -2,3 +2,5 @@ export * from './assertions/';
2
2
  export * from './error';
3
3
  export * from './util';
4
4
  export * from './zip/zipDirectory';
5
+ export * from './server-utils/errorMiddleware';
6
+ export * from './server-utils/requestLogger';
package/lib/index.js CHANGED
@@ -18,4 +18,6 @@ __exportStar(require("./assertions/"), exports);
18
18
  __exportStar(require("./error"), exports);
19
19
  __exportStar(require("./util"), exports);
20
20
  __exportStar(require("./zip/zipDirectory"), exports);
21
+ __exportStar(require("./server-utils/errorMiddleware"), exports);
22
+ __exportStar(require("./server-utils/requestLogger"), exports);
21
23
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,0CAAwB;AACxB,yCAAuB;AACvB,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,0CAAwB;AACxB,yCAAuB;AACvB,qDAAmC;AACnC,iEAA+C;AAC/C,+DAA6C"}
@@ -0,0 +1,2 @@
1
+ import type { Request, Response } from 'express';
2
+ export declare function errorMiddleware(error: any, req: Request, res: Response, _next: any): Response<any, Record<string, any>>;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.errorMiddleware = void 0;
4
+ // _next is needed as a signal to express that this is middleware
5
+ function errorMiddleware(error, req, res, _next) {
6
+ const statusCode = error.statusCode || 500;
7
+ error.message = (error === null || error === void 0 ? void 0 : error.message) || 'An error occurred with no additional information available';
8
+ if ((error === null || error === void 0 ? void 0 : error.name) === 'ComponentError') {
9
+ req.log.error({
10
+ message: error,
11
+ area: 'component',
12
+ 'function-name': error.functionName,
13
+ 'component-name': error.componentName,
14
+ 'component-version': error.componentVersion,
15
+ 'set-name': error.setName,
16
+ 'log-command': 'exception-handler',
17
+ });
18
+ }
19
+ else if ((error === null || error === void 0 ? void 0 : error.name) === 'ValidateError') {
20
+ req.log.error(`Caught validation error for ${req.path}:`, error.fields);
21
+ return res.status(error.status).json({
22
+ message: 'Validation failed',
23
+ details: error === null || error === void 0 ? void 0 : error.fields,
24
+ });
25
+ }
26
+ else if (error instanceof Error) {
27
+ req.log.error({ message: error });
28
+ }
29
+ else {
30
+ req.log.error(error);
31
+ }
32
+ return res.status(statusCode).json({ message: error.message });
33
+ }
34
+ exports.errorMiddleware = errorMiddleware;
35
+ //# sourceMappingURL=errorMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorMiddleware.js","sourceRoot":"","sources":["../../src/server-utils/errorMiddleware.ts"],"names":[],"mappings":";;;AAEA,iEAAiE;AACjE,SAAgB,eAAe,CAAC,KAAU,EAAE,GAAY,EAAE,GAAa,EAAE,KAAU;IACjF,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,GAAG,CAAC;IAC3C,KAAK,CAAC,OAAO,GAAG,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,4DAA4D,CAAC;IAE/F,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,gBAAgB,EAAE;QACpC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;YACZ,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,WAAW;YACjB,eAAe,EAAE,KAAK,CAAC,YAAY;YACnC,gBAAgB,EAAE,KAAK,CAAC,aAAa;YACrC,mBAAmB,EAAE,KAAK,CAAC,gBAAgB;YAC3C,UAAU,EAAE,KAAK,CAAC,OAAO;YACzB,aAAa,EAAE,mBAAmB;SACnC,CAAC,CAAC;KACJ;SAAM,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,eAAe,EAAE;QAC1C,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,GAAG,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACxE,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;YACnC,OAAO,EAAE,mBAAmB;YAC5B,OAAO,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM;SACvB,CAAC,CAAC;KACJ;SAAM,IAAI,KAAK,YAAY,KAAK,EAAE;QACjC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;KACnC;SAAM;QACL,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KACtB;IAED,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AACjE,CAAC;AA3BD,0CA2BC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const error_1 = require("../error");
4
+ const errorMiddleware_1 = require("./errorMiddleware");
5
+ const testRequest = {
6
+ log: {
7
+ error: jest.fn(),
8
+ },
9
+ };
10
+ const testResponse = {
11
+ status: jest.fn(() => testResponse),
12
+ json: jest.fn(() => testResponse),
13
+ };
14
+ class ComponentError extends error_1.ErrorWithHttpStatusCode {
15
+ constructor(requestId, error, functionName, componentName, componentVersion, setName, statusCode = 500) {
16
+ super(statusCode, (error === null || error === void 0 ? void 0 : error.message) || 'An error occurred with no additional information available');
17
+ this.requestId = requestId;
18
+ this.error = error;
19
+ this.functionName = functionName;
20
+ this.componentName = componentName;
21
+ this.componentVersion = componentVersion;
22
+ this.setName = setName;
23
+ this.name = 'ComponentError';
24
+ this.stack = error === null || error === void 0 ? void 0 : error.stack;
25
+ }
26
+ }
27
+ describe('errorMiddleware', () => {
28
+ beforeEach(() => {
29
+ testRequest.log.error.mockReset();
30
+ });
31
+ it('logs component metadata for ComponentError', () => {
32
+ const error = new ComponentError('uuid-1', new Error(), 'test-function', 'test-component', 'v1.0.0', 'test-set');
33
+ (0, errorMiddleware_1.errorMiddleware)(error, testRequest, testResponse, jest.fn());
34
+ expect(testRequest.log.error).toBeCalledWith(expect.objectContaining({
35
+ area: 'component',
36
+ 'function-name': 'test-function',
37
+ 'component-name': 'test-component',
38
+ 'component-version': 'v1.0.0',
39
+ 'set-name': 'test-set',
40
+ message: error,
41
+ }));
42
+ });
43
+ it('responds with the error message', () => {
44
+ const error = new Error('this is the error message');
45
+ (0, errorMiddleware_1.errorMiddleware)(error, testRequest, testResponse, jest.fn());
46
+ expect(testResponse.json).toBeCalledWith({ message: error.message });
47
+ });
48
+ });
49
+ //# sourceMappingURL=errorMiddleware.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorMiddleware.spec.js","sourceRoot":"","sources":["../../src/server-utils/errorMiddleware.spec.ts"],"names":[],"mappings":";;AAAA,oCAAmD;AACnD,uDAAoD;AAEpD,MAAM,WAAW,GAAG;IAClB,GAAG,EAAE;QACH,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;KACjB;CACF,CAAC;AAEF,MAAM,YAAY,GAAQ;IACxB,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC;IACnC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC;CAClC,CAAC;AAEF,MAAM,cAAe,SAAQ,+BAAuB;IAGlD,YACS,SAAiB,EACjB,KAAkB,EAElB,YAAoB,EACpB,aAAqB,EACrB,gBAAwB,EACxB,OAAe,EAEtB,aAAqB,GAAG;QAExB,KAAK,CAAC,UAAU,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,4DAA4D,CAAC,CAAC;QAV3F,cAAS,GAAT,SAAS,CAAQ;QACjB,UAAK,GAAL,KAAK,CAAa;QAElB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,kBAAa,GAAb,aAAa,CAAQ;QACrB,qBAAgB,GAAhB,gBAAgB,CAAQ;QACxB,YAAO,GAAP,OAAO,CAAQ;QATxB,SAAI,GAAG,gBAAgB,CAAC;QAetB,IAAI,CAAC,KAAK,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC;IAC5B,CAAC;CACF;AAED,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,UAAU,CAAC,GAAG,EAAE;QACd,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,QAAQ,EAAE,IAAI,KAAK,EAAE,EAAE,eAAe,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QACjH,IAAA,iCAAe,EAAC,KAAK,EAAE,WAAkB,EAAE,YAAmB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAE3E,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,cAAc,CAC1C,MAAM,CAAC,gBAAgB,CAAC;YACtB,IAAI,EAAE,WAAW;YACjB,eAAe,EAAE,eAAe;YAChC,gBAAgB,EAAE,gBAAgB;YAClC,mBAAmB,EAAE,QAAQ;YAC7B,UAAU,EAAE,UAAU;YACtB,OAAO,EAAE,KAAK;SACf,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAErD,IAAA,iCAAe,EAAC,KAAK,EAAE,WAAkB,EAAE,YAAmB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3E,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Request, Response } from 'express';
2
+ export declare function transformRequestForLogging(req: Request): any;
3
+ export declare function transformResponseForLogging(req: Response): any;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.transformResponseForLogging = exports.transformRequestForLogging = void 0;
4
+ function transformRequestForLogging(req) {
5
+ return {
6
+ url: req.url,
7
+ method: req.method,
8
+ status: req.statusCode,
9
+ };
10
+ }
11
+ exports.transformRequestForLogging = transformRequestForLogging;
12
+ function transformResponseForLogging(req) {
13
+ return {
14
+ url: req.req.url,
15
+ status: req.statusCode,
16
+ };
17
+ }
18
+ exports.transformResponseForLogging = transformResponseForLogging;
19
+ //# sourceMappingURL=requestLogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestLogger.js","sourceRoot":"","sources":["../../src/server-utils/requestLogger.ts"],"names":[],"mappings":";;;AAEA,SAAgB,0BAA0B,CAAC,GAAY;IACrD,OAAO;QACL,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,MAAM,EAAE,GAAG,CAAC,UAAU;KACvB,CAAC;AACJ,CAAC;AAND,gEAMC;AAED,SAAgB,2BAA2B,CAAC,GAAa;IACvD,OAAO;QACL,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG;QAChB,MAAM,EAAE,GAAG,CAAC,UAAU;KACvB,CAAC;AACJ,CAAC;AALD,kEAKC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@squiz/dx-common-lib",
3
- "version": "1.2.8",
3
+ "version": "1.2.10",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -13,7 +13,7 @@
13
13
  "author": "",
14
14
  "license": "ISC",
15
15
  "dependencies": {
16
- "@squiz/dx-logger-lib": "^1.2.2",
16
+ "@squiz/dx-logger-lib": "1.2.10",
17
17
  "archiver": "5.3.1",
18
18
  "fs-extra": "10.1.0"
19
19
  },
@@ -32,5 +32,5 @@
32
32
  "ts-node": "10.9.1",
33
33
  "typescript": "4.7.4"
34
34
  },
35
- "gitHead": "a068be64837a0d9608d3530dd82f05d8af1c3952"
35
+ "gitHead": "a245165ef36e9b72faece39b0ad8f2182fa310b3"
36
36
  }
@@ -0,0 +1,9 @@
1
+ import { Logger } from '@squiz/dx-logger-lib';
2
+
3
+ declare global {
4
+ namespace Express {
5
+ interface Request {
6
+ log: Logger;
7
+ }
8
+ }
9
+ }
package/src/index.ts CHANGED
@@ -2,3 +2,5 @@ export * from './assertions/';
2
2
  export * from './error';
3
3
  export * from './util';
4
4
  export * from './zip/zipDirectory';
5
+ export * from './server-utils/errorMiddleware';
6
+ export * from './server-utils/requestLogger';
@@ -0,0 +1,61 @@
1
+ import { ErrorWithHttpStatusCode } from '../error';
2
+ import { errorMiddleware } from './errorMiddleware';
3
+
4
+ const testRequest = {
5
+ log: {
6
+ error: jest.fn(),
7
+ },
8
+ };
9
+
10
+ const testResponse: any = {
11
+ status: jest.fn(() => testResponse),
12
+ json: jest.fn(() => testResponse),
13
+ };
14
+
15
+ class ComponentError extends ErrorWithHttpStatusCode {
16
+ name = 'ComponentError';
17
+
18
+ constructor(
19
+ public requestId: string,
20
+ public error: Error | any,
21
+
22
+ public functionName: string,
23
+ public componentName: string,
24
+ public componentVersion: string,
25
+ public setName: string,
26
+
27
+ statusCode: number = 500,
28
+ ) {
29
+ super(statusCode, error?.message || 'An error occurred with no additional information available');
30
+
31
+ this.stack = error?.stack;
32
+ }
33
+ }
34
+
35
+ describe('errorMiddleware', () => {
36
+ beforeEach(() => {
37
+ testRequest.log.error.mockReset();
38
+ });
39
+ it('logs component metadata for ComponentError', () => {
40
+ const error = new ComponentError('uuid-1', new Error(), 'test-function', 'test-component', 'v1.0.0', 'test-set');
41
+ errorMiddleware(error, testRequest as any, testResponse as any, jest.fn());
42
+
43
+ expect(testRequest.log.error).toBeCalledWith(
44
+ expect.objectContaining({
45
+ area: 'component',
46
+ 'function-name': 'test-function',
47
+ 'component-name': 'test-component',
48
+ 'component-version': 'v1.0.0',
49
+ 'set-name': 'test-set',
50
+ message: error,
51
+ }),
52
+ );
53
+ });
54
+
55
+ it('responds with the error message', () => {
56
+ const error = new Error('this is the error message');
57
+
58
+ errorMiddleware(error, testRequest as any, testResponse as any, jest.fn());
59
+ expect(testResponse.json).toBeCalledWith({ message: error.message });
60
+ });
61
+ });
@@ -0,0 +1,31 @@
1
+ import type { Request, Response } from 'express';
2
+
3
+ // _next is needed as a signal to express that this is middleware
4
+ export function errorMiddleware(error: any, req: Request, res: Response, _next: any) {
5
+ const statusCode = error.statusCode || 500;
6
+ error.message = error?.message || 'An error occurred with no additional information available';
7
+
8
+ if (error?.name === 'ComponentError') {
9
+ req.log.error({
10
+ message: error,
11
+ area: 'component',
12
+ 'function-name': error.functionName,
13
+ 'component-name': error.componentName,
14
+ 'component-version': error.componentVersion,
15
+ 'set-name': error.setName,
16
+ 'log-command': 'exception-handler',
17
+ });
18
+ } else if (error?.name === 'ValidateError') {
19
+ req.log.error(`Caught validation error for ${req.path}:`, error.fields);
20
+ return res.status(error.status).json({
21
+ message: 'Validation failed',
22
+ details: error?.fields,
23
+ });
24
+ } else if (error instanceof Error) {
25
+ req.log.error({ message: error });
26
+ } else {
27
+ req.log.error(error);
28
+ }
29
+
30
+ return res.status(statusCode).json({ message: error.message });
31
+ }
@@ -0,0 +1,16 @@
1
+ import type { Request, Response } from 'express';
2
+
3
+ export function transformRequestForLogging(req: Request): any {
4
+ return {
5
+ url: req.url,
6
+ method: req.method,
7
+ status: req.statusCode,
8
+ };
9
+ }
10
+
11
+ export function transformResponseForLogging(req: Response): any {
12
+ return {
13
+ url: req.req.url,
14
+ status: req.statusCode,
15
+ };
16
+ }
@@ -1 +1 @@
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.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.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.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.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.esnext.intl.d.ts","./node_modules/typescript/lib/lib.es2019.full.d.ts","./src/assertions/assertIsString.ts","./src/assertions/assertIsDefined.ts","./src/assertions/assertIsMapOfStringString.ts","./src/assertions/assertIsObject.ts","./src/assertions/assertIsNotAnEmptyString.ts","./src/assertions/assertIsEnumValue.ts","./src/assertions/assertIsBoolean.ts","./src/assertions/assertAssign.ts","./src/assertions/assertAssignWithDefaultUndefinedValue.ts","./src/assertions/index.ts","./src/error/ErrorWithHttpStatusCode.ts","./src/error/BadRequestError.ts","./src/error/InternalServerError.ts","./src/error/ResourceNotFoundError.ts","./src/error/TimeoutError.ts","./src/error/MethodNotImplementedError.ts","./src/error/index.ts","./src/util/getNodeEnv.ts","./src/util/isPathTryingToAccessOutsideOfRoot.ts","./src/util/joinAbsoluteUrlPath.ts","./src/util/parseEnvVarForVar.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.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/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/repl.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/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/fs-extra/index.d.ts","./src/util/isReadable.ts","./src/util/never.ts","./src/util/getPageInfo.ts","./src/util/index.ts","./node_modules/@types/minimatch/index.d.ts","./node_modules/@types/glob/index.d.ts","./node_modules/@types/archiver/index.d.ts","./src/zip/zipDirectory.ts","./src/index.ts","./src/assertions/assertAssign.spec.ts","./src/assertions/assertAssignWithDefaultUndefinedValue.spec.ts","./src/assertions/assertIsBoolean.spec.ts","./src/assertions/assertIsDefined.spec.ts","./src/assertions/assertIsEnumValue.spec.ts","./src/assertions/assertIsMapOfStringString.spec.ts","./src/assertions/assertIsNotAnEmptyString.spec.ts","./src/assertions/assertIsObject.spec.ts","./src/assertions/assertIsString.spec.ts","./src/util/getNodeEnv.spec.ts","./src/util/isPathTryingToAccessOutsideOfRoot.spec.ts","./src/util/joinAbsoluteUrlPath.spec.ts","./src/util/parseEnvVarForVar.spec.ts","./src/zip/zipDirectory.spec.ts","./node_modules/@jest/expect-utils/build/index.d.ts","./node_modules/chalk/index.d.ts","./node_modules/@sinclair/typebox/typebox.d.ts","./node_modules/@jest/schemas/build/index.d.ts","./node_modules/pretty-format/build/index.d.ts","./node_modules/jest-diff/build/index.d.ts","./node_modules/jest-matcher-utils/build/index.d.ts","./node_modules/expect/build/index.d.ts","./node_modules/@types/jest/index.d.ts"],"fileInfos":[{"version":"f5c28122bee592cfaf5c72ed7bcc47f453b79778ffa6e301f45d21a0970719d4","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3f149f903dd20dfeb7c80e228b659f0e436532de772469980dbd00702cc05cc1","affectsGlobalScope":true},{"version":"1272277fe7daa738e555eb6cc45ded42cc2d0f76c07294142283145d49e96186","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"cd483c056da900716879771893a3c9772b66c3c88f8943b4205aec738a94b1d0","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"c37f8a49593a0030eecb51bbfa270e709bec9d79a6cc3bb851ef348d4e6b26f8","affectsGlobalScope":true},"1f03b495671c3a1bd24510f38b8947f0991dfd6bf0278c68eca14af15b306e1f",{"version":"92293014078d62704d990e36ff625a1f5035cf640c29df8bdaca950f7100b850","signature":"fc8bba36188f124c4a8f77cfee3c3866ab69681ae6242f3126db68f66e8dde79"},{"version":"4d7ef907074dd6d8fd9dfe483ed519ea1ea5ba34a7d9cc5780037ae55443cb04","signature":"4574b719c169a0403986def46ead96b1bea45a154c768c73de5f40e6052a2e7c"},{"version":"ca9675e9e23f5334cc287c42dcc147e098c11fe3eec42e621ac2877e33e11790","signature":"79d02ee26ac639c9ec0a64823fdb23cbf800610b33b2a5b833c8fd3fa8300b8c"},{"version":"d6a65dd0e4bac132b0865c36ee08293682cde9329bcd0f7cfa6cb7e8c1bf8201","signature":"83006a0b56727e71bba20e649e2e785b0d48c0b5747e7f6f8777ecc2ad543ba2"},{"version":"c24a63675f9e2be2608639e4b5693d765aaa6cbfd8c50bd894ba1ba82cf1e863","signature":"4dbabe74a0d5da407ca5792b0788deabb100e7575de1dd4343e004aa6f0f6c47"},{"version":"d1c8370a6701ed91049df921bac6211304d804efffc7ec55902cda42a1120d75","signature":"7056e5cd5c019db52a386ab30c69253b09cd6b9153643ee08d6564d7cb9ab810"},{"version":"4ad950a64d7514c9660b28ea016eda70f75c49ad6ddb9447fb7fb247e1c60538","signature":"bb6277953acef4ce77f70d5b1822a40eedc8d93cd0a93c8959488a9fb431119b"},{"version":"d3185c2498b4fa0d69126842650d30093d52f61eacf381ee73d09facdf0940a1","signature":"fedf134c6065fc7a0758fcb2719ae5e0ca4a2834280d06661c34eee12ed9e424"},{"version":"ca18b1f892ba9bb9de3f0dbbf230abe8fdf3afe6ec18ca22c20b05a791e588b7","signature":"a2c9cb3094c303f4762d154cd5cef6d5c8be95657bcdba973c17e2bddf3b0258"},{"version":"c486de347f3a1e03aa02785c4f7e28c9fb895d2cbef6fc442988b27c4ccd0810","signature":"bfb424aad9832846c00991ddd5607abddfae2e1e48ebec8ce8884c76560625a3"},{"version":"0c8a4a7b206e45d177374cce96be04a8e38c5ffb829a7bce6b32eefb7574ec56","signature":"048c8482f35a0f3abd2ec8c86ba7b3c86af4906ebb7a12e4fbdc8d6896eb19dc"},{"version":"113e5ec8707933688f23511279e519e6ebdcc8661e51799ccd2fab8727a3d2da","signature":"69c97795fcaf5bf566a1efcc24e5a5bf2d8c261ad1851239b0504c9c4a9e9cc0"},{"version":"8c679e99a1fb34368098193ddaa7d71e53ca627c13e4506bbd71ab4275a816a4","signature":"9dfc364342a667c968f9be3ff7865abaf477df206a936b578b2a98eeaff0e318"},{"version":"d8e9caa427bdfa931d78abf06cfe0e385ed90e14d703aeb82b8e46c568935e38","signature":"56d6e24f71ed721db5a196fc6ab8523f0f469f7ae01b663ddea59981e0d82423"},{"version":"96a3592735e3be56edf5bd802d7c545ea5a58b8f4a0903bc4b4c4510bf11ca89","signature":"71d226b08a3b577440d73d4d1923770c2cc9847f92c7e286f4ba972cdbe066de"},{"version":"63ed4dd3280a017a7cb6562029c8cb95a0cea2595603705633de0bc1549653f0","signature":"527b2e684f504cc22b897df087cbe0d7226d1b780f727cabd0bff0b3c64787d7"},"bcf36e9e16ca4d20b335446cf916f4ecc33b17b12b8e5810ed56c677b5b23648",{"version":"207abcfecc54645a12e731392969b055bbfe0899479775a523c61d6133f7020e","signature":"87307be8e09e256fef6f626127e27cb03b10a9a488ebbaa0ec6ee748e9b14b78"},{"version":"679e3bbbdf343193fbe1453140abf18c396df602fa77bf0822ea02fee36153e8","signature":"02d39a917634d874c61968720d803fc08c236a5e5e22dfa910a8582a58d8f772"},{"version":"71271d56ce4e261c1237f4f79c9a7929d0f63ee4a87fb1b798cf6fb01dfdd970","signature":"4889ae7c801238c611fcc96216b4b0bcdf39f0da707c77ca19fe561371029d11"},{"version":"2bf9416ebde5f015048df868ecca9b79465107f39468fea39f1a7f1ef6a421b8","signature":"e5e691ae3d8407aace8fba0029a6092c58eabaeeacc1325fa9c26e44f2776d53"},"0cba3a5d7b81356222594442753cf90dd2892e5ccfe1d262aaca6896ba6c1380","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"c2ab70bbc7a24c42a790890739dd8a0ba9d2e15038b40dff8163a97a5d148c00","affectsGlobalScope":true},"422dbb183fdced59425ca072c8bd09efaa77ce4e2ab928ec0d8a1ce062d2a45a",{"version":"fcdcb42da18dd98dc286b1876dd425791772036012ae61263c011a76b13a190f","affectsGlobalScope":true},"1dab5ab6bcf11de47ab9db295df8c4f1d92ffa750e8f095e88c71ce4c3299628","f71f46ccd5a90566f0a37b25b23bc4684381ab2180bdf6733f4e6624474e1894",{"version":"54e65985a3ee3cec182e6a555e20974ea936fc8b8d1738c14e8ed8a42bd921d4","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","918a76828d88a73924bb26fef58040a6eb8a9adb7e407ea7264175520dda9450","34e5de87d983bc6aefef8b17658556e3157003e8d9555d3cb098c6bef0b5fbc8","cc0b61316c4f37393f1f9595e93b673f4184e9d07f4c127165a490ec4a928668","f27371653aded82b2b160f7a7033fb4a5b1534b6f6081ef7be1468f0f15327d3","c762cd6754b13a461c54b59d0ae0ab7aeef3c292c6cf889873f786ee4d8e75c9","f4ea7d5df644785bd9fbf419930cbaec118f0d8b4160037d2339b8e23c059e79",{"version":"bfea28e6162ed21a0aeed181b623dcf250aa79abf49e24a6b7e012655af36d81","affectsGlobalScope":true},"b8aca9d0c81abb02bec9b7621983ae65bde71da6727580070602bd2500a9ce2a","ae97e20f2e10dbeec193d6a2f9cd9a367a1e293e7d6b33b68bacea166afd7792","10d4796a130577d57003a77b95d8723530bbec84718e364aa2129fa8ffba0378","063f53ff674228c190efa19dd9448bcbd540acdbb48a928f4cf3a1b9f9478e43","bf73c576885408d4a176f44a9035d798827cc5020d58284cb18d7573430d9022","7ae078ca42a670445ae0c6a97c029cb83d143d62abd1730efb33f68f0b2c0e82",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"287b21dc1d1b9701c92e15e7dd673dfe6044b15812956377adffb6f08825b1bc","12eea70b5e11e924bb0543aea5eadc16ced318aa26001b453b0d561c2fd0bd1e","08777cd9318d294646b121838574e1dd7acbb22c21a03df84e1f2c87b1ad47f2","08a90bcdc717df3d50a2ce178d966a8c353fd23e5c392fd3594a6e39d9bb6304",{"version":"4cd4cff679c9b3d9239fd7bf70293ca4594583767526916af8e5d5a47d0219c7","affectsGlobalScope":true},"2a12d2da5ac4c4979401a3f6eaafa874747a37c365e4bc18aa2b171ae134d21b","002b837927b53f3714308ecd96f72ee8a053b8aeb28213d8ec6de23ed1608b66","1dc9c847473bb47279e398b22c740c83ea37a5c88bf66629666e3cf4c5b9f99c","a9e4a5a24bf2c44de4c98274975a1a705a0abbaad04df3557c2d3cd8b1727949","00fa7ce8bc8acc560dc341bbfdf37840a8c59e6a67c9bfa3fa5f36254df35db2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","5f0ed51db151c2cdc4fa3bb0f44ce6066912ad001b607a34e65a96c52eb76248",{"version":"3345c276cab0e76dda86c0fb79104ff915a4580ba0f3e440870e183b1baec476","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","103d70bfbeb3cd3a3f26d1705bf986322d8738c2c143f38ebb743b1e228d7444","f52fbf64c7e480271a9096763c4882d356b05cab05bf56a64e68a95313cd2ce2","59bdb65f28d7ce52ccfc906e9aaf422f8b8534b2d21c32a27d7819be5ad81df7",{"version":"3a2da34079a2567161c1359316a32e712404b56566c45332ac9dcee015ecce9f","affectsGlobalScope":true},"28a2e7383fd898c386ffdcacedf0ec0845e5d1a86b5a43f25b86bc315f556b79","3aff9c8c36192e46a84afe7b926136d520487155154ab9ba982a8b544ea8fc95","a880cf8d85af2e4189c709b0fea613741649c0e40fffb4360ec70762563d5de0","85bbf436a15bbeda4db888be3062d47f99c66fd05d7c50f0f6473a9151b6a070","9f9c49c95ecd25e0cb2587751925976cf64fd184714cb11e213749c80cf0f927","f0c75c08a71f9212c93a719a25fb0320d53f2e50ca89a812640e08f8ad8c408c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"9cafe917bf667f1027b2bb62e2de454ecd2119c80873ad76fc41d941089753b8","ed19da84b7dbf00952ad0b98ce5c194f1903bcf7c94d8103e8e0d63b271543ae",{"version":"054183d44133b21725aded6405c2de43b7f4dd70913930b685a922166a0ed5bb","signature":"82826e64197780936ed8ef846ec41e0782bf686ccbbd98e670dc1fe0c4966f35"},{"version":"4ff6b569b4d68fc7cc41259e760ef4a5a4cb32da3f86fb057d2524f6972ed629","signature":"388e0263e21946e0db13080db090e62bd6c024e8fd470c9afa7e139730233622"},{"version":"e3f634478ea646a483cdf50f9498ce261a6ea6f0f99db7eb5207e1595b37cbfe","signature":"0b3194042ed7e01308c29414889a8bdf9aa21b3db6cac53fd65d095d1efa83da"},"c3652c26f096fdcc52b78c055cb5d639b6f4cdf9c3ece118987a257b6f49f2a6","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","fd326577c62145816fe1acc306c734c2396487f76719d3785d4e825b34540b33","51440322bec180cf452ce474b4f69b993b4eb491fecf47abd958d3342747d6b0",{"version":"66d9b577e4fa0bd63d78023650dadd43443328469e69bc063ec710a8bec27bd7","signature":"558e0d1c797f78421be23db3c79a93db5b6c26a42a1e2b55a3efba037f26ab48"},"e078f390c355ceda76b758c96acf291a1ff32424f027c027751891cb992ea203",{"version":"2d77ea3dec511eb6dfc846998a5fa03ea8534c6ffd0fb88df53d88790a8db76f","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"068fd0e5004de5d10debf3e15d89d818295a50a8e208cc33a9991407b33d36ce","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e9f386d35948601988a95f156824ba1af6370a1a7cf3cfaba5ef70d92cecbfa3","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"204d350d82eb67a520690dca145da112ab00b07436bab2af46fc22eb2a6ed9a3","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"f20319a0ff37dee2328d946c8fc44889793edd716d2bab7437a8604265166503","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c76cb7a210b42a3cd21f7e4da7fe48128c491e3e3fca30cf2c21683a3fc20551","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"4b4e5f386a969632dda611befed2d8be5d96e939077dd8722247fbe251ef9de7","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e90ff2a7146a4e2801bc50d2c36392296ca89c46cc0f53cba46e0506657c56ee","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"7707bfb61f54d5f09ea4e80aff8465407a492c66ae81705e62e4185f779aad29","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"dd5a03dd282f09ce955a4e975b3f86b64c1174666a35bb5bee1fc0d919a016fa","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e424bc41a38235e4d25d44e2ba20d89f7f2fb199a8714592294c5e180b4f8716","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"aafc949cad635f9362b540b18158697557f0df0a731b472c0d4c3e86e0d86972","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e61d5bf38ceb4bdd862eb6d719794efed4a3e9db28fd1b2320b1377f386d88df","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"597f96c999f199aaf722ed76d5c8f95c72b895bc13a3d65f3c9072d4f8cb205e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"763e521cf114b80e0dd0e21ca49b9f8ae62e8999555a5e7bade8ce36b33001c2","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","d982cdd2610155b3cbcbfa62ccabcf2d2b739f821518ef113348d160ef0010d9","ffcc5500e77223169833fc6eb59b3a507944a1f89574e0a1276b0ea7fc22c4a4","22f13de9e2fe5f0f4724797abd3d34a1cdd6e47ef81fc4933fea3b8bf4ad524b","e3ba509d3dce019b3190ceb2f3fc88e2610ab717122dabd91a9efaa37804040d","cda0cb09b995489b7f4c57f168cd31b83dcbaa7aad49612734fb3c9c73f6e4f2","f72f8428f3c1caa22e9c247d046603b85b442c0dae7b77a7a0bc092c18867cb7",{"version":"195f63105abc03e72b6a176e3e34dfb5ac932b55db378fdc7874b1617e24b465","affectsGlobalScope":true}],"options":{"composite":true,"declaration":true,"esModuleInterop":true,"module":1,"outDir":"./lib","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":6},"fileIdsList":[[110],[110,144],[83,99,110,115,124],[83,110,117],[82,83,110,117,123],[110,146,149],[67,110],[70,110],[71,76,110],[72,82,83,90,99,109,110],[72,73,82,90,110],[74,110],[75,76,83,91,110],[76,99,106,110],[77,79,82,90,110],[78,110],[79,80,110],[81,82,110],[82,110],[82,83,84,99,109,110],[82,83,84,99,110],[85,90,99,109,110],[82,83,85,86,90,99,106,109,110],[85,87,99,106,109,110],[67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116],[82,88,110],[89,109,110],[79,82,90,99,110],[91,110],[92,110],[70,93,110],[94,108,110,114],[95,110],[96,110],[82,97,110],[97,98,110,112],[82,99,100,101,110],[99,101,110],[99,100,110],[102,110],[103,110],[82,104,105,110],[104,105,110],[76,90,99,106,110],[107,110],[90,108,110],[71,85,96,109,110],[76,110],[99,110,111],[110,112],[110,113],[71,76,82,84,93,99,109,110,112,114],[99,110,115],[110,142,148],[110,146],[110,143,147],[110,145],[46,53,110],[46,49,54,110],[53,110],[52,110],[68,110],[47,110],[51,67,110],[48,110],[50,110],[49,110],[46,110],[46,47,48,49,50,51,52,53,54,110],[56,110],[58,110],[56,57,58,59,60,61,110],[55,62,110,122,126],[63,110],[63,64,65,66,110,119,120,121],[64,110],[83,92,110,118],[65,110],[66,110],[83,92,110,126],[83,92,110,125],[46,47,48,49,50,51,52,53,54],[56],[58]],"referencedMap":[[142,1],[145,2],[144,1],[125,3],[118,4],[124,5],[150,6],[123,1],[67,7],[68,7],[70,8],[71,9],[72,10],[73,11],[74,12],[75,13],[76,14],[77,15],[78,16],[79,17],[80,17],[81,18],[82,19],[83,20],[84,21],[69,1],[116,1],[85,22],[86,23],[87,24],[117,25],[88,26],[89,27],[90,28],[91,29],[92,30],[93,31],[94,32],[95,33],[96,34],[97,35],[98,36],[99,37],[101,38],[100,39],[102,40],[103,41],[104,42],[105,43],[106,44],[107,45],[108,46],[109,47],[110,48],[111,49],[112,50],[113,51],[114,52],[115,53],[143,1],[149,54],[147,55],[148,56],[146,57],[8,1],[9,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[5,1],[29,1],[30,1],[31,1],[32,1],[6,1],[45,1],[33,1],[34,1],[35,1],[36,1],[7,1],[37,1],[42,1],[43,1],[38,1],[39,1],[40,1],[41,1],[1,1],[44,1],[11,1],[10,1],[128,58],[53,7],[129,59],[54,60],[130,61],[52,62],[131,63],[47,7],[132,64],[51,7],[133,65],[48,7],[134,66],[50,7],[135,67],[49,7],[136,68],[46,7],[55,69],[57,70],[56,1],[58,70],[61,71],[59,70],[60,70],[62,72],[127,73],[137,74],[63,1],[121,1],[122,75],[138,76],[64,30],[119,77],[139,78],[65,1],[120,1],[140,79],[66,1],[141,80],[126,81]],"exportedModulesMap":[[142,1],[145,2],[144,1],[125,3],[118,4],[124,5],[150,6],[123,1],[67,7],[68,7],[70,8],[71,9],[72,10],[73,11],[74,12],[75,13],[76,14],[77,15],[78,16],[79,17],[80,17],[81,18],[82,19],[83,20],[84,21],[69,1],[116,1],[85,22],[86,23],[87,24],[117,25],[88,26],[89,27],[90,28],[91,29],[92,30],[93,31],[94,32],[95,33],[96,34],[97,35],[98,36],[99,37],[101,38],[100,39],[102,40],[103,41],[104,42],[105,43],[106,44],[107,45],[108,46],[109,47],[110,48],[111,49],[112,50],[113,51],[114,52],[115,53],[143,1],[149,54],[147,55],[148,56],[146,57],[8,1],[9,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[5,1],[29,1],[30,1],[31,1],[32,1],[6,1],[45,1],[33,1],[34,1],[35,1],[36,1],[7,1],[37,1],[42,1],[43,1],[38,1],[39,1],[40,1],[41,1],[1,1],[44,1],[11,1],[10,1],[55,82],[57,83],[58,83],[61,84],[59,83],[60,83],[62,72],[127,73],[122,75]],"semanticDiagnosticsPerFile":[142,145,144,125,118,124,150,123,67,68,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,69,116,85,86,87,117,88,89,90,91,92,93,94,95,96,97,98,99,101,100,102,103,104,105,106,107,108,109,110,111,112,113,114,115,143,149,147,148,146,8,9,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,45,33,34,35,36,7,37,42,43,38,39,40,41,1,44,11,10,128,53,129,54,130,52,131,47,132,51,133,48,134,50,135,49,136,46,55,57,56,58,61,59,60,62,127,137,63,121,122,138,64,119,139,65,120,140,66,141,126]},"version":"4.7.4"}
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.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.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.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.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.esnext.intl.d.ts","./node_modules/typescript/lib/lib.es2019.full.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.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/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/repl.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/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","../dx-logger-lib/node_modules/logform/index.d.ts","../dx-logger-lib/node_modules/winston-transport/index.d.ts","../dx-logger-lib/node_modules/winston/lib/winston/config/index.d.ts","../dx-logger-lib/node_modules/winston/lib/winston/transports/index.d.ts","../dx-logger-lib/node_modules/winston/index.d.ts","../dx-logger-lib/lib/index.d.ts","./src/custom-types.d.ts","./src/assertions/assertIsString.ts","./src/assertions/assertIsDefined.ts","./src/assertions/assertIsMapOfStringString.ts","./src/assertions/assertIsObject.ts","./src/assertions/assertIsNotAnEmptyString.ts","./src/assertions/assertIsEnumValue.ts","./src/assertions/assertIsBoolean.ts","./src/assertions/assertAssign.ts","./src/assertions/assertAssignWithDefaultUndefinedValue.ts","./src/assertions/index.ts","./src/error/ErrorWithHttpStatusCode.ts","./src/error/BadRequestError.ts","./src/error/InternalServerError.ts","./src/error/ResourceNotFoundError.ts","./src/error/TimeoutError.ts","./src/error/MethodNotImplementedError.ts","./src/error/index.ts","./src/util/getNodeEnv.ts","./src/util/isPathTryingToAccessOutsideOfRoot.ts","./src/util/joinAbsoluteUrlPath.ts","./src/util/parseEnvVarForVar.ts","./node_modules/@types/fs-extra/index.d.ts","./src/util/isReadable.ts","./src/util/never.ts","./src/util/getPageInfo.ts","./src/util/index.ts","./node_modules/@types/minimatch/index.d.ts","./node_modules/@types/glob/index.d.ts","./node_modules/@types/archiver/index.d.ts","./src/zip/zipDirectory.ts","./node_modules/@types/range-parser/index.d.ts","./node_modules/@types/qs/index.d.ts","./node_modules/@types/express-serve-static-core/index.d.ts","./node_modules/@types/mime/Mime.d.ts","./node_modules/@types/mime/index.d.ts","./node_modules/@types/serve-static/index.d.ts","./node_modules/@types/connect/index.d.ts","./node_modules/@types/body-parser/index.d.ts","./node_modules/@types/express/index.d.ts","./src/server-utils/errorMiddleware.ts","./src/server-utils/requestLogger.ts","./src/index.ts","./src/assertions/assertAssign.spec.ts","./src/assertions/assertAssignWithDefaultUndefinedValue.spec.ts","./src/assertions/assertIsBoolean.spec.ts","./src/assertions/assertIsDefined.spec.ts","./src/assertions/assertIsEnumValue.spec.ts","./src/assertions/assertIsMapOfStringString.spec.ts","./src/assertions/assertIsNotAnEmptyString.spec.ts","./src/assertions/assertIsObject.spec.ts","./src/assertions/assertIsString.spec.ts","./src/server-utils/errorMiddleware.spec.ts","./src/util/getNodeEnv.spec.ts","./src/util/isPathTryingToAccessOutsideOfRoot.spec.ts","./src/util/joinAbsoluteUrlPath.spec.ts","./src/util/parseEnvVarForVar.spec.ts","./src/zip/zipDirectory.spec.ts","./node_modules/@jest/expect-utils/build/index.d.ts","./node_modules/chalk/index.d.ts","./node_modules/@sinclair/typebox/typebox.d.ts","./node_modules/@jest/schemas/build/index.d.ts","./node_modules/pretty-format/build/index.d.ts","./node_modules/jest-diff/build/index.d.ts","./node_modules/jest-matcher-utils/build/index.d.ts","./node_modules/expect/build/index.d.ts","./node_modules/@types/jest/index.d.ts"],"fileInfos":[{"version":"f5c28122bee592cfaf5c72ed7bcc47f453b79778ffa6e301f45d21a0970719d4","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3f149f903dd20dfeb7c80e228b659f0e436532de772469980dbd00702cc05cc1","affectsGlobalScope":true},{"version":"1272277fe7daa738e555eb6cc45ded42cc2d0f76c07294142283145d49e96186","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"cd483c056da900716879771893a3c9772b66c3c88f8943b4205aec738a94b1d0","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"c37f8a49593a0030eecb51bbfa270e709bec9d79a6cc3bb851ef348d4e6b26f8","affectsGlobalScope":true},"1f03b495671c3a1bd24510f38b8947f0991dfd6bf0278c68eca14af15b306e1f","0cba3a5d7b81356222594442753cf90dd2892e5ccfe1d262aaca6896ba6c1380","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"c2ab70bbc7a24c42a790890739dd8a0ba9d2e15038b40dff8163a97a5d148c00","affectsGlobalScope":true},"422dbb183fdced59425ca072c8bd09efaa77ce4e2ab928ec0d8a1ce062d2a45a",{"version":"fcdcb42da18dd98dc286b1876dd425791772036012ae61263c011a76b13a190f","affectsGlobalScope":true},"1dab5ab6bcf11de47ab9db295df8c4f1d92ffa750e8f095e88c71ce4c3299628","f71f46ccd5a90566f0a37b25b23bc4684381ab2180bdf6733f4e6624474e1894",{"version":"54e65985a3ee3cec182e6a555e20974ea936fc8b8d1738c14e8ed8a42bd921d4","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","918a76828d88a73924bb26fef58040a6eb8a9adb7e407ea7264175520dda9450","34e5de87d983bc6aefef8b17658556e3157003e8d9555d3cb098c6bef0b5fbc8","cc0b61316c4f37393f1f9595e93b673f4184e9d07f4c127165a490ec4a928668","f27371653aded82b2b160f7a7033fb4a5b1534b6f6081ef7be1468f0f15327d3","c762cd6754b13a461c54b59d0ae0ab7aeef3c292c6cf889873f786ee4d8e75c9","f4ea7d5df644785bd9fbf419930cbaec118f0d8b4160037d2339b8e23c059e79",{"version":"bfea28e6162ed21a0aeed181b623dcf250aa79abf49e24a6b7e012655af36d81","affectsGlobalScope":true},"b8aca9d0c81abb02bec9b7621983ae65bde71da6727580070602bd2500a9ce2a","ae97e20f2e10dbeec193d6a2f9cd9a367a1e293e7d6b33b68bacea166afd7792","10d4796a130577d57003a77b95d8723530bbec84718e364aa2129fa8ffba0378","063f53ff674228c190efa19dd9448bcbd540acdbb48a928f4cf3a1b9f9478e43","bf73c576885408d4a176f44a9035d798827cc5020d58284cb18d7573430d9022","7ae078ca42a670445ae0c6a97c029cb83d143d62abd1730efb33f68f0b2c0e82",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"287b21dc1d1b9701c92e15e7dd673dfe6044b15812956377adffb6f08825b1bc","12eea70b5e11e924bb0543aea5eadc16ced318aa26001b453b0d561c2fd0bd1e","08777cd9318d294646b121838574e1dd7acbb22c21a03df84e1f2c87b1ad47f2","08a90bcdc717df3d50a2ce178d966a8c353fd23e5c392fd3594a6e39d9bb6304",{"version":"4cd4cff679c9b3d9239fd7bf70293ca4594583767526916af8e5d5a47d0219c7","affectsGlobalScope":true},"2a12d2da5ac4c4979401a3f6eaafa874747a37c365e4bc18aa2b171ae134d21b","002b837927b53f3714308ecd96f72ee8a053b8aeb28213d8ec6de23ed1608b66","1dc9c847473bb47279e398b22c740c83ea37a5c88bf66629666e3cf4c5b9f99c","a9e4a5a24bf2c44de4c98274975a1a705a0abbaad04df3557c2d3cd8b1727949","00fa7ce8bc8acc560dc341bbfdf37840a8c59e6a67c9bfa3fa5f36254df35db2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","5f0ed51db151c2cdc4fa3bb0f44ce6066912ad001b607a34e65a96c52eb76248",{"version":"3345c276cab0e76dda86c0fb79104ff915a4580ba0f3e440870e183b1baec476","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","103d70bfbeb3cd3a3f26d1705bf986322d8738c2c143f38ebb743b1e228d7444","f52fbf64c7e480271a9096763c4882d356b05cab05bf56a64e68a95313cd2ce2","59bdb65f28d7ce52ccfc906e9aaf422f8b8534b2d21c32a27d7819be5ad81df7",{"version":"3a2da34079a2567161c1359316a32e712404b56566c45332ac9dcee015ecce9f","affectsGlobalScope":true},"28a2e7383fd898c386ffdcacedf0ec0845e5d1a86b5a43f25b86bc315f556b79","3aff9c8c36192e46a84afe7b926136d520487155154ab9ba982a8b544ea8fc95","a880cf8d85af2e4189c709b0fea613741649c0e40fffb4360ec70762563d5de0","85bbf436a15bbeda4db888be3062d47f99c66fd05d7c50f0f6473a9151b6a070","9f9c49c95ecd25e0cb2587751925976cf64fd184714cb11e213749c80cf0f927","f0c75c08a71f9212c93a719a25fb0320d53f2e50ca89a812640e08f8ad8c408c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"9cafe917bf667f1027b2bb62e2de454ecd2119c80873ad76fc41d941089753b8","38e5152217bf48106bfc1f51d1319109bec2f874c18941b0bfd36268d27ee52c","d8b8a5a6bf623239d5374ad4a7ff6f3b195ab5ee61293f59f1957e90d2a22809","d11bb48adbad42e6f3f22748911486299764d53af4def77a5ad9dead0955ad38","0e5f609f8fecf0e6149314123d5a8689a4db984fdbf5685d7cedb60ce68fd731","a4aff299fa5d577641a76157f2755bcc99476c86f50da6609a2b465582c1866b","244329dd3649dba9b2ec28e709d114c699e1fc917b95d13460971a34774037dc",{"version":"0fa8da904005297cda366e1cd951a46e29da4d03c830b5419f209804283153fa","affectsGlobalScope":true},{"version":"92293014078d62704d990e36ff625a1f5035cf640c29df8bdaca950f7100b850","signature":"fc8bba36188f124c4a8f77cfee3c3866ab69681ae6242f3126db68f66e8dde79"},{"version":"4d7ef907074dd6d8fd9dfe483ed519ea1ea5ba34a7d9cc5780037ae55443cb04","signature":"4574b719c169a0403986def46ead96b1bea45a154c768c73de5f40e6052a2e7c"},{"version":"ca9675e9e23f5334cc287c42dcc147e098c11fe3eec42e621ac2877e33e11790","signature":"79d02ee26ac639c9ec0a64823fdb23cbf800610b33b2a5b833c8fd3fa8300b8c"},{"version":"d6a65dd0e4bac132b0865c36ee08293682cde9329bcd0f7cfa6cb7e8c1bf8201","signature":"83006a0b56727e71bba20e649e2e785b0d48c0b5747e7f6f8777ecc2ad543ba2"},{"version":"c24a63675f9e2be2608639e4b5693d765aaa6cbfd8c50bd894ba1ba82cf1e863","signature":"4dbabe74a0d5da407ca5792b0788deabb100e7575de1dd4343e004aa6f0f6c47"},{"version":"d1c8370a6701ed91049df921bac6211304d804efffc7ec55902cda42a1120d75","signature":"7056e5cd5c019db52a386ab30c69253b09cd6b9153643ee08d6564d7cb9ab810"},{"version":"4ad950a64d7514c9660b28ea016eda70f75c49ad6ddb9447fb7fb247e1c60538","signature":"bb6277953acef4ce77f70d5b1822a40eedc8d93cd0a93c8959488a9fb431119b"},{"version":"d3185c2498b4fa0d69126842650d30093d52f61eacf381ee73d09facdf0940a1","signature":"fedf134c6065fc7a0758fcb2719ae5e0ca4a2834280d06661c34eee12ed9e424"},{"version":"ca18b1f892ba9bb9de3f0dbbf230abe8fdf3afe6ec18ca22c20b05a791e588b7","signature":"a2c9cb3094c303f4762d154cd5cef6d5c8be95657bcdba973c17e2bddf3b0258"},{"version":"c486de347f3a1e03aa02785c4f7e28c9fb895d2cbef6fc442988b27c4ccd0810","signature":"bfb424aad9832846c00991ddd5607abddfae2e1e48ebec8ce8884c76560625a3"},{"version":"0c8a4a7b206e45d177374cce96be04a8e38c5ffb829a7bce6b32eefb7574ec56","signature":"048c8482f35a0f3abd2ec8c86ba7b3c86af4906ebb7a12e4fbdc8d6896eb19dc"},{"version":"113e5ec8707933688f23511279e519e6ebdcc8661e51799ccd2fab8727a3d2da","signature":"69c97795fcaf5bf566a1efcc24e5a5bf2d8c261ad1851239b0504c9c4a9e9cc0"},{"version":"8c679e99a1fb34368098193ddaa7d71e53ca627c13e4506bbd71ab4275a816a4","signature":"9dfc364342a667c968f9be3ff7865abaf477df206a936b578b2a98eeaff0e318"},{"version":"d8e9caa427bdfa931d78abf06cfe0e385ed90e14d703aeb82b8e46c568935e38","signature":"56d6e24f71ed721db5a196fc6ab8523f0f469f7ae01b663ddea59981e0d82423"},{"version":"96a3592735e3be56edf5bd802d7c545ea5a58b8f4a0903bc4b4c4510bf11ca89","signature":"71d226b08a3b577440d73d4d1923770c2cc9847f92c7e286f4ba972cdbe066de"},{"version":"63ed4dd3280a017a7cb6562029c8cb95a0cea2595603705633de0bc1549653f0","signature":"527b2e684f504cc22b897df087cbe0d7226d1b780f727cabd0bff0b3c64787d7"},"bcf36e9e16ca4d20b335446cf916f4ecc33b17b12b8e5810ed56c677b5b23648",{"version":"207abcfecc54645a12e731392969b055bbfe0899479775a523c61d6133f7020e","signature":"87307be8e09e256fef6f626127e27cb03b10a9a488ebbaa0ec6ee748e9b14b78"},{"version":"679e3bbbdf343193fbe1453140abf18c396df602fa77bf0822ea02fee36153e8","signature":"02d39a917634d874c61968720d803fc08c236a5e5e22dfa910a8582a58d8f772"},{"version":"71271d56ce4e261c1237f4f79c9a7929d0f63ee4a87fb1b798cf6fb01dfdd970","signature":"4889ae7c801238c611fcc96216b4b0bcdf39f0da707c77ca19fe561371029d11"},{"version":"2bf9416ebde5f015048df868ecca9b79465107f39468fea39f1a7f1ef6a421b8","signature":"e5e691ae3d8407aace8fba0029a6092c58eabaeeacc1325fa9c26e44f2776d53"},"ed19da84b7dbf00952ad0b98ce5c194f1903bcf7c94d8103e8e0d63b271543ae",{"version":"054183d44133b21725aded6405c2de43b7f4dd70913930b685a922166a0ed5bb","signature":"82826e64197780936ed8ef846ec41e0782bf686ccbbd98e670dc1fe0c4966f35"},{"version":"4ff6b569b4d68fc7cc41259e760ef4a5a4cb32da3f86fb057d2524f6972ed629","signature":"388e0263e21946e0db13080db090e62bd6c024e8fd470c9afa7e139730233622"},{"version":"e3f634478ea646a483cdf50f9498ce261a6ea6f0f99db7eb5207e1595b37cbfe","signature":"0b3194042ed7e01308c29414889a8bdf9aa21b3db6cac53fd65d095d1efa83da"},"c3652c26f096fdcc52b78c055cb5d639b6f4cdf9c3ece118987a257b6f49f2a6","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","fd326577c62145816fe1acc306c734c2396487f76719d3785d4e825b34540b33","51440322bec180cf452ce474b4f69b993b4eb491fecf47abd958d3342747d6b0",{"version":"66d9b577e4fa0bd63d78023650dadd43443328469e69bc063ec710a8bec27bd7","signature":"558e0d1c797f78421be23db3c79a93db5b6c26a42a1e2b55a3efba037f26ab48"},"16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"ae3fe461989bbd951344efc1f1fe932360ce7392e6126bdb225a82a1bbaf15ee","affectsGlobalScope":true},"5b9ecf7da4d71cf3832dbb8336150fa924631811f488ad4690c2dfec2b4fb1d7","951c85f75aac041dddbedfedf565886a7b494e29ec1532e2a9b4a6180560b50e","f47887b61c6cf2f48746980390d6cb5b8013518951d912cfb37fe748071942be","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae",{"version":"1bb3734cdf45aabd411da85ae65f6abcb4aa7968cb3eba1115e7bf817d70c097","signature":"bdfee0b2b54e7f0c00e4f8c642692532eee65af5748187ab6e7d3b38b275fa4c"},{"version":"f51295c5be5f811c6c1a788cbda73248ea78e52c83f8148d470b0a46608859cb","signature":"c6e0019dc6ecc084df0cd94702cfdf8a20565662786f0326549fb2943b043968"},"5c01889e54a546993259b912b01e303b1466f9d0bafcd137596beb2cbfc321ee",{"version":"2d77ea3dec511eb6dfc846998a5fa03ea8534c6ffd0fb88df53d88790a8db76f","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"068fd0e5004de5d10debf3e15d89d818295a50a8e208cc33a9991407b33d36ce","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e9f386d35948601988a95f156824ba1af6370a1a7cf3cfaba5ef70d92cecbfa3","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"204d350d82eb67a520690dca145da112ab00b07436bab2af46fc22eb2a6ed9a3","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"f20319a0ff37dee2328d946c8fc44889793edd716d2bab7437a8604265166503","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c76cb7a210b42a3cd21f7e4da7fe48128c491e3e3fca30cf2c21683a3fc20551","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"4b4e5f386a969632dda611befed2d8be5d96e939077dd8722247fbe251ef9de7","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e90ff2a7146a4e2801bc50d2c36392296ca89c46cc0f53cba46e0506657c56ee","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"7707bfb61f54d5f09ea4e80aff8465407a492c66ae81705e62e4185f779aad29","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"5fb432c77cd9218b36eea2ce16cdd2243beefc45d8234080883acbfdbd68aed1","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"dd5a03dd282f09ce955a4e975b3f86b64c1174666a35bb5bee1fc0d919a016fa","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e424bc41a38235e4d25d44e2ba20d89f7f2fb199a8714592294c5e180b4f8716","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"aafc949cad635f9362b540b18158697557f0df0a731b472c0d4c3e86e0d86972","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e61d5bf38ceb4bdd862eb6d719794efed4a3e9db28fd1b2320b1377f386d88df","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"597f96c999f199aaf722ed76d5c8f95c72b895bc13a3d65f3c9072d4f8cb205e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"763e521cf114b80e0dd0e21ca49b9f8ae62e8999555a5e7bade8ce36b33001c2","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","d982cdd2610155b3cbcbfa62ccabcf2d2b739f821518ef113348d160ef0010d9","ffcc5500e77223169833fc6eb59b3a507944a1f89574e0a1276b0ea7fc22c4a4","22f13de9e2fe5f0f4724797abd3d34a1cdd6e47ef81fc4933fea3b8bf4ad524b","e3ba509d3dce019b3190ceb2f3fc88e2610ab717122dabd91a9efaa37804040d","cda0cb09b995489b7f4c57f168cd31b83dcbaa7aad49612734fb3c9c73f6e4f2","f72f8428f3c1caa22e9c247d046603b85b442c0dae7b77a7a0bc092c18867cb7",{"version":"195f63105abc03e72b6a176e3e34dfb5ac932b55db378fdc7874b1617e24b465","affectsGlobalScope":true}],"options":{"composite":true,"declaration":true,"esModuleInterop":true,"module":1,"outDir":"./lib","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":6},"fileIdsList":[[89],[89,163],[62,78,89,94,131],[64,89,96,140],[64,89,96],[61,64,89,96,134,135],[89,135,136,139,141],[62,89,96],[61,62,89,96,130],[89,165,168],[89,138],[89,137],[46,89],[49,89],[50,55,89],[51,61,62,69,78,88,89],[51,52,61,69,89],[53,89],[54,55,62,70,89],[55,78,85,89],[56,58,61,69,89],[57,89],[58,59,89],[60,61,89],[61,89],[61,62,63,78,88,89],[61,62,63,78,89],[64,69,78,88,89],[61,62,64,65,69,78,85,88,89],[64,66,78,85,88,89],[46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],[61,67,89],[68,88,89],[58,61,69,78,89],[70,89],[71,89],[49,72,89],[73,87,89,93],[74,89],[75,89],[61,76,89],[76,77,89,91],[61,78,79,80,89],[78,80,89],[78,79,89],[81,89],[82,89],[61,83,84,89],[83,84,89],[55,69,78,85,89],[86,89],[69,87,89],[50,64,75,88,89],[55,89],[78,89,90],[89,91],[89,92],[50,55,61,63,72,78,88,89,91,93],[78,89,94],[64,89,96,138],[89,161,167],[89,165],[89,162,166],[89,164],[89,104,111],[89,104,107,112],[89,111],[89,110],[47,89],[89,105],[46,89,109],[89,106],[89,108],[89,107],[89,104],[89,104,105,106,107,108,109,110,111,112],[89,102],[89,114],[89,116],[89,114,115,116,117,118,119],[89,113,120,129,133,143,144],[89,120,143],[89,142],[89,121],[89,121,122,123,124,126,127,128],[89,122],[62,71,89,125],[89,123],[89,124],[62,71,89,133],[62,71,89,132],[89,101],[78,89,96,97],[78,89,96,97,98,99,100],[89,96],[64,89,96,98],[104,105,106,107,108,109,110,111,112],[114],[116],[142]],"referencedMap":[[161,1],[164,2],[163,1],[132,3],[141,4],[140,5],[136,6],[142,7],[125,8],[131,9],[169,10],[137,11],[138,12],[130,1],[46,13],[47,13],[49,14],[50,15],[51,16],[52,17],[53,18],[54,19],[55,20],[56,21],[57,22],[58,23],[59,23],[60,24],[61,25],[62,26],[63,27],[48,1],[95,1],[64,28],[65,29],[66,30],[96,31],[67,32],[68,33],[69,34],[70,35],[71,36],[72,37],[73,38],[74,39],[75,40],[76,41],[77,42],[78,43],[80,44],[79,45],[81,46],[82,47],[83,48],[84,49],[85,50],[86,51],[87,52],[88,53],[89,54],[90,55],[91,56],[92,57],[93,58],[94,59],[135,1],[134,1],[139,60],[162,1],[168,61],[166,62],[167,63],[165,64],[8,1],[9,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[5,1],[29,1],[30,1],[31,1],[32,1],[6,1],[45,1],[33,1],[34,1],[35,1],[36,1],[7,1],[37,1],[42,1],[43,1],[38,1],[39,1],[40,1],[41,1],[1,1],[44,1],[11,1],[10,1],[146,65],[111,13],[147,66],[112,67],[148,68],[110,69],[149,70],[105,13],[150,71],[109,13],[151,72],[106,13],[152,73],[108,13],[153,74],[107,13],[154,75],[104,13],[113,76],[103,77],[115,78],[114,1],[116,78],[119,79],[117,78],[118,78],[120,80],[145,81],[155,82],[143,83],[144,83],[156,84],[121,1],[128,1],[129,85],[157,86],[122,36],[126,87],[158,88],[123,1],[127,1],[159,89],[124,1],[160,90],[133,91],[102,92],[97,1],[98,93],[101,94],[99,95],[100,96]],"exportedModulesMap":[[161,1],[164,2],[163,1],[132,3],[141,4],[140,5],[136,6],[142,7],[125,8],[131,9],[169,10],[137,11],[138,12],[130,1],[46,13],[47,13],[49,14],[50,15],[51,16],[52,17],[53,18],[54,19],[55,20],[56,21],[57,22],[58,23],[59,23],[60,24],[61,25],[62,26],[63,27],[48,1],[95,1],[64,28],[65,29],[66,30],[96,31],[67,32],[68,33],[69,34],[70,35],[71,36],[72,37],[73,38],[74,39],[75,40],[76,41],[77,42],[78,43],[80,44],[79,45],[81,46],[82,47],[83,48],[84,49],[85,50],[86,51],[87,52],[88,53],[89,54],[90,55],[91,56],[92,57],[93,58],[94,59],[135,1],[134,1],[139,60],[162,1],[168,61],[166,62],[167,63],[165,64],[8,1],[9,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[5,1],[29,1],[30,1],[31,1],[32,1],[6,1],[45,1],[33,1],[34,1],[35,1],[36,1],[7,1],[37,1],[42,1],[43,1],[38,1],[39,1],[40,1],[41,1],[1,1],[44,1],[11,1],[10,1],[113,97],[103,77],[115,98],[116,98],[119,99],[117,98],[118,98],[120,80],[145,81],[143,100],[144,100],[129,85],[102,92],[97,1],[98,93],[101,94],[99,95],[100,96]],"semanticDiagnosticsPerFile":[161,164,163,132,141,140,136,142,125,131,169,137,138,130,46,47,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,48,95,64,65,66,96,67,68,69,70,71,72,73,74,75,76,77,78,80,79,81,82,83,84,85,86,87,88,89,90,91,92,93,94,135,134,139,162,168,166,167,165,8,9,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,45,33,34,35,36,7,37,42,43,38,39,40,41,1,44,11,10,146,111,147,112,148,110,149,105,150,109,151,106,152,108,153,107,154,104,113,103,115,114,116,119,117,118,120,145,155,143,144,156,121,128,129,157,122,126,158,123,127,159,124,160,133,102,97,98,101,99,100]},"version":"4.7.4"}