@open-norantec/utilities 1.0.1-alpha.8 → 1.0.1

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.
@@ -0,0 +1,11 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import * as crypto from 'node:crypto';
4
+ export declare class ECDHUtil {
5
+ private readonly curveName;
6
+ readonly ecdh: crypto.ECDH;
7
+ protected readonly ALGORITHM: crypto.CipherGCMTypes;
8
+ constructor(curveName?: string);
9
+ encrypt(data: string, otherPublicKey: Buffer): string;
10
+ decrypt(encryptedData: string, otherPublicKey: Buffer): string;
11
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ECDHUtil = void 0;
4
+ const crypto = require("node:crypto");
5
+ class ECDHUtil {
6
+ constructor(curveName = 'prime256v1') {
7
+ this.curveName = curveName;
8
+ this.ecdh = crypto.createECDH(this.curveName);
9
+ this.ALGORITHM = 'aes-256-gcm';
10
+ }
11
+ encrypt(data, otherPublicKey) {
12
+ const sharedKey = this.ecdh.computeSecret(new Uint8Array(otherPublicKey));
13
+ const iv = crypto.randomBytes(16);
14
+ const cipher = crypto.createCipheriv(this.ALGORITHM, new Uint8Array(sharedKey), new Uint8Array(iv));
15
+ const encrypted = Buffer.concat([new Uint8Array(cipher.update(data, 'utf-8')), new Uint8Array(cipher.final())]);
16
+ return Buffer.concat([new Uint8Array(iv), new Uint8Array(encrypted), new Uint8Array(cipher.getAuthTag())]).toString('base64');
17
+ }
18
+ decrypt(encryptedData, otherPublicKey) {
19
+ const sharedKey = this.ecdh.computeSecret(new Uint8Array(otherPublicKey));
20
+ const data = Buffer.from(encryptedData, 'base64');
21
+ const iv = data.subarray(0, 16);
22
+ const authTag = data.subarray(data.length - 16);
23
+ const encrypted = data.subarray(16, data.length - 16);
24
+ const decipher = crypto.createDecipheriv(this.ALGORITHM, new Uint8Array(sharedKey), new Uint8Array(iv));
25
+ decipher.setAuthTag(new Uint8Array(authTag));
26
+ return Buffer.concat([
27
+ new Uint8Array(decipher.update(new Uint8Array(encrypted))),
28
+ new Uint8Array(decipher.final()),
29
+ ]).toString('utf-8');
30
+ }
31
+ }
32
+ exports.ECDHUtil = ECDHUtil;
@@ -0,0 +1,16 @@
1
+ declare class ResponseError extends Error {
2
+ readonly statusCode: number;
3
+ readonly status: number;
4
+ readonly code: number;
5
+ constructor(message?: string | undefined, statusCode?: number, status?: number, code?: number);
6
+ }
7
+ export declare class ErrorUtil {
8
+ static createResponseError(error: Error, statusCode?: number): ResponseError;
9
+ static formatError(error: Error): {
10
+ id: string;
11
+ message: string;
12
+ logs: string[];
13
+ response: Response;
14
+ };
15
+ }
16
+ export {};
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ErrorUtil = void 0;
4
+ const uuid_util_class_1 = require("./uuid-util.class");
5
+ function isZodError(error) {
6
+ return typeof error === 'object' && error !== null && 'issues' in error && Array.isArray(error.issues);
7
+ }
8
+ class ResponseError extends Error {
9
+ constructor(message, statusCode = 500, status = 500, code = 500) {
10
+ super(message);
11
+ this.statusCode = statusCode;
12
+ this.status = status;
13
+ this.code = code;
14
+ }
15
+ }
16
+ class ErrorUtil {
17
+ static createResponseError(error, statusCode = 500) {
18
+ return new ResponseError(error.message, statusCode, statusCode, statusCode);
19
+ }
20
+ static formatError(error) {
21
+ const id = uuid_util_class_1.UUIDUtil.generateV4();
22
+ let message;
23
+ let errorLogs = [];
24
+ if (isZodError(error)) {
25
+ message = JSON.stringify({
26
+ message: 'Failed to validate your input data ({{context.trace}})',
27
+ context: {
28
+ trace: id,
29
+ },
30
+ });
31
+ errorLogs.push(JSON.stringify(error.issues));
32
+ }
33
+ else {
34
+ message = JSON.stringify({
35
+ message: `${error.message || 'An unknown error occurred'} ({{context.trace}})`,
36
+ context: {
37
+ trace: id,
38
+ },
39
+ });
40
+ }
41
+ errorLogs.push((error === null || error === void 0 ? void 0 : error.stack) || 'No stack trace available');
42
+ return {
43
+ id,
44
+ message,
45
+ logs: errorLogs.map((log) => `[AUTO_ERROR] [${id}] [${new Date().toISOString()}] ${log}`),
46
+ response: new Response(message, {
47
+ status: (() => {
48
+ if (isZodError(error))
49
+ return 400;
50
+ if (error instanceof ResponseError)
51
+ return error.statusCode;
52
+ return 500;
53
+ })(),
54
+ headers: { 'Content-Type': 'application/json' },
55
+ }),
56
+ };
57
+ }
58
+ }
59
+ exports.ErrorUtil = ErrorUtil;
@@ -0,0 +1,29 @@
1
+ import * as tsParser from '@typescript-eslint/parser';
2
+ import * as stylistic from '@stylistic/eslint-plugin';
3
+ export declare class ESLintUtil {
4
+ static create({ ignores, project }: {
5
+ ignores?: string[];
6
+ project?: string;
7
+ }): {
8
+ files: string[];
9
+ languageOptions: {
10
+ parser: typeof tsParser;
11
+ parserOptions: {
12
+ project: string;
13
+ tsconfigRootDir: string;
14
+ sourceType: string;
15
+ };
16
+ };
17
+ ignores: string[];
18
+ plugins: {
19
+ '@typescript-eslint': {
20
+ configs: Record<string, ClassicConfig.Config>;
21
+ meta: FlatConfig.PluginMeta;
22
+ rules: import("@typescript-eslint/eslint-plugin/rules").TypeScriptESLintRules;
23
+ };
24
+ '@stylistic': typeof stylistic;
25
+ prettier: ESLint.Plugin;
26
+ };
27
+ rules: any;
28
+ }[];
29
+ }
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ESLintUtil = void 0;
4
+ const tsParser = require("@typescript-eslint/parser");
5
+ const tsPlugin = require("@typescript-eslint/eslint-plugin");
6
+ const stylistic = require("@stylistic/eslint-plugin");
7
+ const prettier = require("eslint-plugin-prettier");
8
+ class ESLintUtil {
9
+ static create({ ignores = [], project = './tsconfig.json' }) {
10
+ var _a, _b, _c, _d;
11
+ return [
12
+ {
13
+ files: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx', '**/*.mts', '**/*.cts', '**/*.mjs', '**/*.cjs'],
14
+ languageOptions: {
15
+ parser: tsParser,
16
+ parserOptions: {
17
+ project,
18
+ tsconfigRootDir: process.cwd(),
19
+ sourceType: 'module',
20
+ },
21
+ },
22
+ ignores,
23
+ plugins: {
24
+ '@typescript-eslint': tsPlugin,
25
+ '@stylistic': stylistic,
26
+ prettier,
27
+ },
28
+ rules: Object.assign(Object.assign(Object.assign({}, (_b = (_a = tsPlugin === null || tsPlugin === void 0 ? void 0 : tsPlugin.configs) === null || _a === void 0 ? void 0 : _a.recommended) === null || _b === void 0 ? void 0 : _b.rules), (_d = (_c = prettier === null || prettier === void 0 ? void 0 : prettier.configs) === null || _c === void 0 ? void 0 : _c.recommended) === null || _d === void 0 ? void 0 : _d.rules), { 'prettier/prettier': [
29
+ 'error',
30
+ {
31
+ singleQuote: true,
32
+ trailingComma: 'all',
33
+ tabWidth: 2,
34
+ printWidth: 120,
35
+ },
36
+ {
37
+ usePrettierrc: false,
38
+ },
39
+ ], '@typescript-eslint/interface-name-prefix': 'off', '@typescript-eslint/explicit-function-return-type': 'off', '@typescript-eslint/explicit-module-boundary-types': 'off', '@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/no-require-imports': 'off', '@typescript-eslint/no-empty-object-type': 'off', '@typescript-eslint/no-unsafe-function-type': 'off', '@typescript-eslint/no-namespace': 'off', '@stylistic/member-delimiter-style': [
40
+ 'error',
41
+ {
42
+ multiline: {
43
+ delimiter: 'semi',
44
+ requireLast: true,
45
+ },
46
+ singleline: {
47
+ delimiter: 'semi',
48
+ requireLast: false,
49
+ },
50
+ },
51
+ ], 'multiline-ternary': ['error', 'always-multiline'], 'object-curly-newline': ['error', { multiline: true, consistent: true }] }),
52
+ },
53
+ ];
54
+ }
55
+ }
56
+ exports.ESLintUtil = ESLintUtil;
package/dist/index.d.ts CHANGED
@@ -10,3 +10,4 @@ export * from './log-util.class';
10
10
  export * from './crypto-util.class';
11
11
  export * from './date-util.class';
12
12
  export * from './url-util.class';
13
+ export * from './error-util.class';
package/dist/index.js CHANGED
@@ -26,3 +26,4 @@ __exportStar(require("./log-util.class"), exports);
26
26
  __exportStar(require("./crypto-util.class"), exports);
27
27
  __exportStar(require("./date-util.class"), exports);
28
28
  __exportStar(require("./url-util.class"), exports);
29
+ __exportStar(require("./error-util.class"), exports);
@@ -3,5 +3,5 @@ export declare class LogUtil {
3
3
  private readonly defaultLogLevel;
4
4
  constructor(defaultLogLevel?: Schema.LogLevel);
5
5
  match(bottomLogLevel: Schema.LogLevel | boolean, logLevel: Schema.LogLevel): boolean;
6
- log(level: Schema.LogLevel, message: string, extraMessage?: string): void;
6
+ log(level: Schema.LogLevel, message: string | Error): void;
7
7
  }
@@ -15,7 +15,7 @@ class LogUtil {
15
15
  return true;
16
16
  return LOG_LEVELS.slice(LOG_LEVELS.findIndex((level) => level === bottomLogLevel)).includes(logLevel);
17
17
  }
18
- log(level, message, extraMessage) {
18
+ log(level, message) {
19
19
  var _a, _b, _c, _d;
20
20
  const colorizer = (() => {
21
21
  switch (level) {
@@ -35,8 +35,10 @@ class LogUtil {
35
35
  })();
36
36
  if (this.match(this.defaultLogLevel, level) === false)
37
37
  return;
38
- const finalExtraMessage = level === 'debug' ? (_d = (_c = (_b = (_a = new Error().stack) === null || _a === void 0 ? void 0 : _a.split) === null || _b === void 0 ? void 0 : _b.call(_a, '\n')) === null || _c === void 0 ? void 0 : _c.slice(1)) === null || _d === void 0 ? void 0 : _d.join('\n') : extraMessage;
39
- console.log(colorizer(`[${new Date().toLocaleString()}] [${level.toUpperCase()}] ${message || ''}${string_util_class_1.StringUtil.isFalsyString(finalExtraMessage) ? '' : `\n${finalExtraMessage}`}`));
38
+ const finalExtraMessage = level === 'debug' || (this.defaultLogLevel === 'debug' && level === 'error')
39
+ ? (_d = (_c = (_b = (_a = (message instanceof Error ? message : new Error()).stack) === null || _a === void 0 ? void 0 : _a.split) === null || _b === void 0 ? void 0 : _b.call(_a, '\n')) === null || _c === void 0 ? void 0 : _c.slice(1)) === null || _d === void 0 ? void 0 : _d.join('\n')
40
+ : '';
41
+ console.log(colorizer(`[${new Date().toLocaleString()}] [${level.toUpperCase()}] ${message instanceof Error ? message.message : message}${string_util_class_1.StringUtil.isFalsyString(finalExtraMessage) ? '' : `\n${finalExtraMessage}`}`));
40
42
  }
41
43
  }
42
44
  exports.LogUtil = LogUtil;
@@ -51,7 +51,7 @@ export declare namespace Enum {
51
51
  };
52
52
  }
53
53
  export declare class SchemaUtil {
54
- static createEnumSchema<const T extends Record<string, string>>(object: T): z.ZodEnum<[T[keyof T], ...T[keyof T][]]>;
54
+ static createEnumSchema<const T extends Record<string, string>>(object: T, params?: z.RawCreateParams): z.ZodEnum<[T[keyof T], ...T[keyof T][]]>;
55
55
  static readonly ID: z.ZodString;
56
56
  static readonly ID_LIST: z.ZodArray<z.ZodString, "many">;
57
57
  static readonly ID_LIST_OBJECT: z.ZodObject<{
@@ -60,8 +60,8 @@ var Enum;
60
60
  };
61
61
  })(Enum || (exports.Enum = Enum = {}));
62
62
  class SchemaUtil {
63
- static createEnumSchema(object) {
64
- return zod_1.z.enum(Object.values(object));
63
+ static createEnumSchema(object, params) {
64
+ return zod_1.z.enum(Object.values(object), params);
65
65
  }
66
66
  }
67
67
  exports.SchemaUtil = SchemaUtil;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-norantec/utilities",
3
- "version": "1.0.1-alpha.8",
3
+ "version": "1.0.1",
4
4
  "description": "NoranTec Utilities",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -30,23 +30,24 @@
30
30
  },
31
31
  "homepage": "https://github.com/norantec/utilities#readme",
32
32
  "devDependencies": {
33
- "@stylistic/eslint-plugin": "^2.12.1",
34
33
  "@types/colors": "^1.1.3",
35
34
  "@types/node": "18.11.18",
36
- "@typescript-eslint/eslint-plugin": "^8.0.0",
37
- "@typescript-eslint/parser": "^8.0.0",
38
35
  "cross-env": "^7.0.3",
39
36
  "eslint": "^8.0.0",
40
- "eslint-config-prettier": "^9.0.0",
41
- "eslint-plugin-prettier": "^5.0.0",
42
- "prettier": "^3.0.0",
43
37
  "rimraf": "^6.0.1",
44
38
  "ts-node": "^10.0.0",
45
39
  "type-fest": "^4.37.0",
46
40
  "typescript": "~5.1.3"
47
41
  },
48
42
  "dependencies": {
43
+ "@stylistic/eslint-plugin": "^5.10.0",
44
+ "@typescript-eslint/eslint-plugin": "^8.0.0",
45
+ "@typescript-eslint/parser": "^8.0.0",
46
+ "eslint-config-prettier": "^10.0.0",
47
+ "eslint-plugin-prettier": "^5.0.0",
49
48
  "colors": "^1.4.0",
49
+ "prettier": "^3.0.0",
50
+ "uuid": "^11.1.0",
50
51
  "zod": "^3.25.67"
51
52
  }
52
53
  }
@@ -1 +0,0 @@
1
- {"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.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.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/typescript/lib/lib.es2017.full.d.ts","../src/array-util.class.ts","../src/attempt-util.class.ts","../src/crypto-util.class.ts","../src/uuid-util.class.ts","../src/string-util.class.ts","../src/date-util.class.ts","../src/enum-util.class.ts","../src/header-util.class.ts","../src/json-util.class.ts","../src/user-agent-util.class.ts","../node_modules/zod/v3/helpers/typeAliases.d.cts","../node_modules/zod/v3/helpers/util.d.cts","../node_modules/zod/v3/index.d.cts","../node_modules/zod/v3/ZodError.d.cts","../node_modules/zod/v3/locales/en.d.cts","../node_modules/zod/v3/errors.d.cts","../node_modules/zod/v3/helpers/parseUtil.d.cts","../node_modules/zod/v3/helpers/enumUtil.d.cts","../node_modules/zod/v3/helpers/errorUtil.d.cts","../node_modules/zod/v3/helpers/partialUtil.d.cts","../node_modules/zod/v3/standard-schema.d.cts","../node_modules/zod/v3/types.d.cts","../node_modules/zod/v3/external.d.cts","../node_modules/zod/index.d.cts","../src/schema-util.class.ts","../node_modules/colors/index.d.ts","../src/log-util.class.ts","../src/url-util.class.ts","../src/index.ts","../src/vm-util.class.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/dom-events.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/readline/promises.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"f59215c5f1d886b05395ee7aca73e0ac69ddfad2843aa88530e797879d511bad","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","27147504487dc1159369da4f4da8a26406364624fa9bc3db632f7d94a5bae2c3","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4",{"version":"3dda5344576193a4ae48b8d03f105c86f20b2f2aff0a1d1fd7935f5d68649654","affectsGlobalScope":true},{"version":"35299ae4a62086698444a5aaee27fc7aa377c68cbb90b441c9ace246ffd05c97","affectsGlobalScope":true},{"version":"c5c5565225fce2ede835725a92a28ece149f83542aa4866cfb10290bff7b8996","affectsGlobalScope":true},{"version":"7d2dbc2a0250400af0809b0ad5f84686e84c73526de931f84560e483eb16b03c","affectsGlobalScope":true},{"version":"9d9885c728913c1d16e0d2831b40341d6ad9a0ceecaabc55209b306ad9c736a5","affectsGlobalScope":true},{"version":"17bea081b9c0541f39dd1ae9bc8c78bdd561879a682e60e2f25f688c0ecab248","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"ab22100fdd0d24cfc2cc59d0a00fc8cf449830d9c4030dc54390a46bd562e929","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"36ae84ccc0633f7c0787bc6108386c8b773e95d3b052d9464a99cd9b8795fbec","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"f06948deb2a51aae25184561c9640fb66afeddb34531a9212d011792b1d19e0a","affectsGlobalScope":true},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"189c0703923150aa30673fa3de411346d727cc44a11c75d05d7cf9ef095daa22","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"994c234848afc14a2586b6565777f4c0b05dc479ede0a041bfd5becf6dceb586",{"version":"59a1c7aa5c90a54dcac10022106ac7cfa9df3c4decfba6762028c73b543f3a00","signature":"2af7a2d1602592af433ee83ea922bb34b7c912b358d48364fd9604a85b6c4a3e"},{"version":"1c0600bc9892d921e377122afab7a7b3b3db818258ad9d9a073e4c25624c85f5","signature":"68719b4c699acb840c70c0876c666ff21694b991a097f61491b24dff52505b38"},{"version":"b1aa2b97294eb8bb5889a04366e0cb17985ecc7be503998a7cbc49cb1717fb62","signature":"bd1797cea12cf2b77b6c33f9878275cb9cba24dbdea02172542e73b04c9a178a"},{"version":"d0023937078c15e5561f754f477682cf729f2aa9716edfd6f707f29d09a5a59e","signature":"520561ea7df70ae5ec5699252dccbabc2c84219bf9581b4dbb7ddc1c92a35fe4"},{"version":"93af058cefff266899e43bc3dd007ed9913ffd81db781a2d3472db0fad12894f","signature":"d02209027f680dc99be375f7e4302c823df6a683971c386ed4c1ffecf94623a2"},{"version":"a9bf6cb4ee8a67f7b07f6387e53b1bb1366f774552e5c9191426f898734178c2","signature":"6a03e2d74d9c0eb322272eb01b11619c0cb11fc4a870bc3a3fd99653915eac69"},{"version":"529bcbdf3e4050ce7120f4b4bdb4f6dea8cec1023e2f44adb92320c07496313c","signature":"6bdc4358f39bccdda5699cef84d8013eec5c3c698f9fb4c9e70f1274671223a7"},{"version":"47af4c2b5b599d7d88a1b535146ad13b94e6f9da117cef2df55dfc8be70b4e3a","signature":"d10b0cee405f198c5125d813dbfe49a5a265c6ede03f38ee3d1781a99dfdf2cb"},{"version":"2c9e359e95cc31743c8709cbc4078a287c87daf3e394464e19bfdb5e8b89b392","signature":"aad90a5a003c8756d6f2e56e15e5a6ead5f601ba1f0d50958f0960a91ab21613"},{"version":"71664097fc74f7280bee3b27a8ab9192eeb214c2e20ecd78da0f388d9cfe410b","signature":"d6afe47645522dd88c7ae70694bc0317add95de9053baf10df9f5091f303d652"},"d3cfde44f8089768ebb08098c96d01ca260b88bccf238d55eee93f1c620ff5a5","293eadad9dead44c6fd1db6de552663c33f215c55a1bfa2802a1bceed88ff0ec","833e92c058d033cde3f29a6c7603f517001d1ddd8020bc94d2067a3bc69b2a8e","08b2fae7b0f553ad9f79faec864b179fc58bc172e295a70943e8585dd85f600c","f12edf1672a94c578eca32216839604f1e1c16b40a1896198deabf99c882b340","e3498cf5e428e6c6b9e97bd88736f26d6cf147dedbfa5a8ad3ed8e05e059af8a","dba3f34531fd9b1b6e072928b6f885aa4d28dd6789cbd0e93563d43f4b62da53","f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","e4b03ddcf8563b1c0aee782a185286ed85a255ce8a30df8453aade2188bbc904","2329d90062487e1eaca87b5e06abcbbeeecf80a82f65f949fd332cfcf824b87b","25b3f581e12ede11e5739f57a86e8668fbc0124f6649506def306cad2c59d262","4fdb529707247a1a917a4626bfb6a293d52cd8ee57ccf03830ec91d39d606d6d","a9ebb67d6bbead6044b43714b50dcb77b8f7541ffe803046fdec1714c1eba206","5780b706cece027f0d4444fbb4e1af62dc51e19da7c3d3719f67b22b033859b9",{"version":"d5e3894d006f2676eff0f29de8330b625a4c63e58e25aae01c311fb726af76fe","signature":"8f99b96e5b2ab10173415804607567ccda22fe222aaf3148da50cb0454d20da2"},{"version":"a17e831d16c27cbe4d6f0bb238c1ded0d4a26c282009e431c68733be0b792f4f","affectsGlobalScope":true},{"version":"9f9dd9fb44f093701c1a039b7cb34ce02e43a3087c8809e408239a14fa45558e","signature":"a4ea413bfb07368b34846dccffe75fa6e3f87ea554439b9613edd45fc7924c48"},{"version":"ef508d9e2eb9e0851f1ed5c35d7f7ba3f4ccc6aa0075778d3baa07f9ad8c19ff","signature":"3c833a76c4f8aac46ee0791aab7e37db8492106eb55bdc732d8d0098c08db0c9"},"771f98d2ff3891cb52c4e153b7f1fa6f0b7743048c60b19de6a7f6989bea8b83",{"version":"71383592e35356655bea163e00c40e891468b181144d270617a9445f5e9a8398","signature":"0e5f78fea076d8eadb39e0bc00614888b0212c4292a816cfd949d87d9c303da8"},"7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"ca72190df0eb9b09d4b600821c8c7b6c9747b75a1c700c4d57dc0bb72abc074c","affectsGlobalScope":true},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"bb65c6267c5d6676be61acbf6604cf0a4555ac4b505df58ac15c831fcbff4e3e","affectsGlobalScope":true},"374ca798f244e464346f14301dc2a8b4b111af1a83b49fffef5906c338a1f922","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","dab86d9604fe40854ef3c0a6f9e8948873dc3509213418e5e457f410fd11200f","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","489532ff54b714f0e0939947a1c560e516d3ae93d51d639ab02e907a0e950114","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"816ad2e607a96de5bcac7d437f843f5afd8957f1fa5eefa6bba8e4ed7ca8fd84","affectsGlobalScope":true},"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","d903fafe96674bc0b2ac38a5be4a8fc07b14c2548d1cdb165a80ea24c44c0c54","5eec82ac21f84d83586c59a16b9b8502d34505d1393393556682fe7e7fde9ef2","04eb6578a588d6a46f50299b55f30e3a04ef27d0c5a46c57d8fcc211cd530faa","8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"d076fede3cb042e7b13fc29442aaa03a57806bc51e2b26a67a01fbc66a7c0c12","7c013aa892414a7fdcfd861ae524a668eaa3ede8c7c0acafaf611948122c8d93","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true},{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","fd93cee2621ff42dabe57b7be402783fd1aa69ece755bcba1e0290547ae60513","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","223c37f62ce09a3d99e77498acdee7b2705a4ae14552fbdb4093600cd9164f3f",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","4c8525f256873c7ba3135338c647eaf0ca7115a1a2805ae2d0056629461186ce","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"f0900cd5d00fe1263ff41201fb8073dbeb984397e4af3b8002a5c207a30bdc33","affectsGlobalScope":true},{"version":"4c50342e1b65d3bee2ed4ab18f84842d5724ad11083bd666d8705dc7a6079d80","affectsGlobalScope":true},"06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"da26af7362f53d122283bc69fed862b9a9fe27e01bc6a69d1d682e0e5a4df3e6","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"8dbe725f8d237e70310977afcfa011629804d101ebaa0266cafda6b61ad72236"],"root":[[49,58],73,[75,78]],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"emitDecoratorMetadata":true,"experimentalDecorators":true,"module":1,"noFallthroughCasesInSwitch":false,"noImplicitAny":false,"outDir":"./","removeComments":true,"skipLibCheck":true,"sourceMap":false,"strictBindCallApply":false,"strictNullChecks":true,"target":4},"fileIdsList":[[79,125],[82,125],[83,88,116,125],[84,95,96,103,113,124,125],[84,85,95,103,125],[86,125],[87,88,96,104,125],[88,113,121,125],[89,91,95,103,125],[90,125],[91,92,125],[95,125],[93,95,125],[95,96,97,113,124,125],[95,96,97,110,113,116,125],[125,129],[125],[91,98,103,113,124,125],[95,96,98,99,103,113,121,124,125],[98,100,113,121,124,125],[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,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],[95,101,125],[102,124,125],[91,95,103,113,125],[104,125],[105,125],[82,106,125],[107,123,125,129],[108,125],[109,125],[95,110,111,125],[110,112,125,127],[83,95,113,114,115,116,125],[83,113,115,125],[113,114,125],[116,125],[117,125],[95,119,120,125],[119,120,125],[88,103,113,121,125],[122,125],[103,123,125],[83,98,109,124,125],[88,125],[113,125,126],[125,127],[125,128],[83,88,95,97,106,113,124,125,127,129],[113,125,130],[71,125],[59,60,61,125],[62,63,125],[59,60,62,64,65,70,125],[60,62,125],[70,125],[62,125],[59,60,62,65,66,67,68,69,125],[53,125],[49,50,51,53,54,55,56,57,58,73,75,76,125],[53,73,74,125],[54,72,125],[52,125],[51,125],[73],[72]],"referencedMap":[[79,1],[80,1],[82,2],[83,3],[84,4],[85,5],[86,6],[87,7],[88,8],[89,9],[90,10],[91,11],[92,11],[94,12],[93,13],[95,12],[96,14],[97,15],[81,16],[131,17],[98,18],[99,19],[100,20],[132,21],[101,22],[102,23],[103,24],[104,25],[105,26],[106,27],[107,28],[108,29],[109,30],[110,31],[111,31],[112,32],[113,33],[115,34],[114,35],[116,36],[117,37],[118,17],[119,38],[120,39],[121,40],[122,41],[123,42],[124,43],[125,44],[126,45],[127,46],[128,47],[129,48],[130,49],[74,17],[46,17],[47,17],[8,17],[9,17],[13,17],[12,17],[2,17],[14,17],[15,17],[16,17],[17,17],[18,17],[19,17],[20,17],[21,17],[3,17],[4,17],[48,17],[25,17],[22,17],[23,17],[24,17],[26,17],[27,17],[28,17],[5,17],[29,17],[30,17],[31,17],[32,17],[6,17],[36,17],[33,17],[34,17],[35,17],[37,17],[7,17],[38,17],[43,17],[44,17],[39,17],[40,17],[41,17],[42,17],[1,17],[45,17],[11,17],[10,17],[72,50],[62,51],[64,52],[71,53],[66,17],[67,17],[65,54],[68,55],[59,17],[60,17],[61,50],[63,56],[69,17],[70,57],[49,17],[50,17],[51,17],[54,58],[55,17],[56,58],[77,59],[57,17],[75,60],[73,61],[53,62],[76,63],[58,17],[52,17],[78,46]],"exportedModulesMap":[[79,1],[80,1],[82,2],[83,3],[84,4],[85,5],[86,6],[87,7],[88,8],[89,9],[90,10],[91,11],[92,11],[94,12],[93,13],[95,12],[96,14],[97,15],[81,16],[131,17],[98,18],[99,19],[100,20],[132,21],[101,22],[102,23],[103,24],[104,25],[105,26],[106,27],[107,28],[108,29],[109,30],[110,31],[111,31],[112,32],[113,33],[115,34],[114,35],[116,36],[117,37],[118,17],[119,38],[120,39],[121,40],[122,41],[123,42],[124,43],[125,44],[126,45],[127,46],[128,47],[129,48],[130,49],[74,17],[46,17],[47,17],[8,17],[9,17],[13,17],[12,17],[2,17],[14,17],[15,17],[16,17],[17,17],[18,17],[19,17],[20,17],[21,17],[3,17],[4,17],[48,17],[25,17],[22,17],[23,17],[24,17],[26,17],[27,17],[28,17],[5,17],[29,17],[30,17],[31,17],[32,17],[6,17],[36,17],[33,17],[34,17],[35,17],[37,17],[7,17],[38,17],[43,17],[44,17],[39,17],[40,17],[41,17],[42,17],[1,17],[45,17],[11,17],[10,17],[72,50],[62,51],[64,52],[71,53],[66,17],[67,17],[65,54],[68,55],[59,17],[60,17],[61,50],[63,56],[69,17],[70,57],[77,59],[75,64],[73,65]],"semanticDiagnosticsPerFile":[79,80,82,83,84,85,86,87,88,89,90,91,92,94,93,95,96,97,81,131,98,99,100,132,101,102,103,104,105,106,107,108,109,110,111,112,113,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,74,46,47,8,9,13,12,2,14,15,16,17,18,19,20,21,3,4,48,25,22,23,24,26,27,28,5,29,30,31,32,6,36,33,34,35,37,7,38,43,44,39,40,41,42,1,45,11,10,72,62,64,71,66,67,65,68,59,60,61,63,69,70,49,50,51,54,55,56,77,57,75,73,53,76,58,52,78]},"version":"5.1.6"}