@definitelytyped/dtslint 0.0.115 → 0.0.116-next.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.
package/dist/lint.js CHANGED
@@ -7,31 +7,38 @@ const assert = require("assert");
7
7
  const fs_extra_1 = require("fs-extra");
8
8
  const path_1 = require("path");
9
9
  const tslint_1 = require("tslint");
10
+ const eslint_1 = require("eslint");
10
11
  const expectRule_1 = require("./rules/expectRule");
11
12
  const util_1 = require("./util");
12
13
  async function lint(dirPath, minVersion, maxVersion, isLatest, expectOnly, tsLocal) {
13
14
  const tsconfigPath = (0, path_1.join)(dirPath, "tsconfig.json");
15
+ // TODO: To remove tslint, replace this with a ts.createProgram (probably)
14
16
  const lintProgram = tslint_1.Linter.createProgram(tsconfigPath);
17
+ const eslintPath = (0, path_1.join)(dirPath, ".eslintrc.json");
18
+ const eslintConfig = (await (0, fs_extra_1.pathExists)(eslintPath))
19
+ ? await (0, fs_extra_1.readJSON)(eslintPath)
20
+ : require("@definitelytyped/eslint-config-dtslint");
15
21
  for (const version of [maxVersion, minVersion]) {
16
22
  const errors = testDependencies(version, dirPath, lintProgram, tsLocal);
17
23
  if (errors) {
18
24
  return errors;
19
25
  }
20
26
  }
21
- const lintOptions = {
22
- fix: false,
23
- formatter: "stylish",
24
- };
25
- const linter = new tslint_1.Linter(lintOptions, lintProgram);
27
+ const linter = new tslint_1.Linter({ fix: false, formatter: "stylish" }, lintProgram);
26
28
  const configPath = expectOnly ? (0, path_1.join)(__dirname, "..", "dtslint-expect-only.json") : getConfigPath(dirPath);
29
+ // TODO: To port expect-rule, eslint's config will also need to include [minVersion, maxVersion]
30
+ // Also: expect-rule should be renamed to expect-type or check-type or something
27
31
  const config = await getLintConfig(configPath, tsconfigPath, minVersion, maxVersion, tsLocal);
32
+ const esfiles = [];
28
33
  for (const file of lintProgram.getSourceFiles()) {
29
34
  if (lintProgram.isSourceFileDefaultLibrary(file)) {
30
35
  continue;
31
36
  }
32
37
  const { fileName, text } = file;
33
38
  if (!fileName.includes("node_modules")) {
34
- const err = testNoTsIgnore(text) || testNoTslintDisables(text);
39
+ const err = testNoTsIgnore(text) ||
40
+ testNoLintDisables("tslint:disable", text) ||
41
+ testNoLintDisables("eslint-disable", text);
35
42
  if (err) {
36
43
  const { pos, message } = err;
37
44
  const place = file.getLineAndCharacterOfPosition(pos);
@@ -42,10 +49,20 @@ async function lint(dirPath, minVersion, maxVersion, isLatest, expectOnly, tsLoc
42
49
  // typesVersions should be handled in a separate lint
43
50
  if (!isExternalDependency(file, dirPath, lintProgram) && (!isLatest || !isTypesVersionPath(fileName, dirPath))) {
44
51
  linter.lint(fileName, text, config);
52
+ esfiles.push(fileName);
45
53
  }
46
54
  }
47
55
  const result = linter.getResult();
48
- return result.failures.length ? result.output : undefined;
56
+ const eslint = new eslint_1.ESLint({ baseConfig: eslintConfig });
57
+ const formatter = await eslint.loadFormatter("stylish");
58
+ const eresults = await eslint.lintFiles(esfiles);
59
+ console.log(formatter.format(eresults));
60
+ let output;
61
+ if (result.failures.length)
62
+ output = result.output;
63
+ if (eresults.some((r) => r.errorCount))
64
+ output = (output || "") + formatter.format(eresults);
65
+ return output;
49
66
  }
50
67
  exports.lint = lint;
51
68
  function testDependencies(version, dirPath, lintProgram, tsLocal) {
@@ -111,20 +128,23 @@ function testNoTsIgnore(text) {
111
128
  const pos = text.indexOf(tsIgnore);
112
129
  return pos === -1 ? undefined : { pos, message: "'ts-ignore' is forbidden." };
113
130
  }
114
- function testNoTslintDisables(text) {
115
- const tslintDisable = "tslint:disable";
131
+ function testNoLintDisables(disabler, text) {
116
132
  let lastIndex = 0;
117
133
  // eslint-disable-next-line no-constant-condition
118
134
  while (true) {
119
- const pos = text.indexOf(tslintDisable, lastIndex);
135
+ const pos = text.indexOf(disabler, lastIndex);
120
136
  if (pos === -1) {
121
137
  return undefined;
122
138
  }
123
- const end = pos + tslintDisable.length;
139
+ const end = pos + disabler.length;
124
140
  const nextChar = text.charAt(end);
125
- if (nextChar !== "-" && nextChar !== ":") {
126
- const message = "'tslint:disable' is forbidden. " +
127
- "('tslint:disable:rulename', tslint:disable-line' and 'tslint:disable-next-line' are allowed.)";
141
+ const nextChar2 = text.charAt(end + 1);
142
+ if (nextChar !== "-" &&
143
+ !(disabler === "tslint:disable" && nextChar === ":") &&
144
+ !(disabler === "eslint-disable" && nextChar === " " && nextChar2 === "*")) {
145
+ const message = `'${disabler}' is forbidden. ` +
146
+ "Per-line and per-rule disabling is allowed, for example: " +
147
+ "'tslint:disable:rulename', tslint:disable-line' and 'tslint:disable-next-line' are allowed.";
128
148
  return { pos, message };
129
149
  }
130
150
  lastIndex = end;
package/dist/lint.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lint.js","sourceRoot":"","sources":["../src/lint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lint.js","sourceRoot":"","sources":["../src/lint.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@definitelytyped/dtslint",
3
- "version": "0.0.115",
3
+ "version": "0.0.116-next.1",
4
4
  "description": "Runs tests on TypeScript definition files",
5
5
  "main": "./dist/index.js",
6
6
  "bin": "./dist/index.js",
@@ -23,9 +23,13 @@
23
23
  },
24
24
  "dependencies": {
25
25
  "@definitelytyped/dts-critic": "^0.0.115",
26
+ "@definitelytyped/eslint-config-dtslint": "^0.0.116-next.1",
26
27
  "@definitelytyped/header-parser": "^0.0.115",
27
28
  "@definitelytyped/typescript-versions": "^0.0.115",
28
29
  "@definitelytyped/utils": "^0.0.115",
30
+ "@typescript-eslint/eslint-plugin": "^5.27.1",
31
+ "@typescript-eslint/parser": "^5.27.1",
32
+ "eslint": "^8.17.0",
29
33
  "fs-extra": "^6.0.1",
30
34
  "json-stable-stringify": "^1.0.1",
31
35
  "strip-json-comments": "^2.0.1",
@@ -36,6 +40,7 @@
36
40
  "typescript": ">= 3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.7.0-dev || >= 3.8.0-dev || >= 3.9.0-dev || >= 4.0.0-dev"
37
41
  },
38
42
  "devDependencies": {
43
+ "@types/eslint": "^8.4.2",
39
44
  "@types/fs-extra": "^5.0.2",
40
45
  "@types/json-stable-stringify": "^1.0.32",
41
46
  "@types/strip-json-comments": "^0.0.28",
@@ -45,5 +50,5 @@
45
50
  "node": ">=10.0.0"
46
51
  },
47
52
  "license": "MIT",
48
- "gitHead": "ce776145ca60720c9d61f3f14715b9a5e884911d"
53
+ "gitHead": "fee3851b755f1c08cbd2d7cd89b78d0bec72a06a"
49
54
  }
package/src/lint.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  import { TypeScriptVersion } from "@definitelytyped/typescript-versions";
2
2
  import { typeScriptPath } from "@definitelytyped/utils";
3
3
  import assert = require("assert");
4
- import { pathExists } from "fs-extra";
4
+ import { pathExists, readJSON } from "fs-extra";
5
5
  import { dirname, join as joinPaths, normalize } from "path";
6
- import { Configuration, ILinterOptions, Linter } from "tslint";
6
+ import { Configuration, Linter } from "tslint";
7
+ import { ESLint } from "eslint";
7
8
  import * as TsType from "typescript";
8
9
  type Configuration = typeof Configuration;
9
10
  type IConfigurationFile = Configuration.IConfigurationFile;
@@ -21,7 +22,12 @@ export async function lint(
21
22
  tsLocal: string | undefined
22
23
  ): Promise<string | undefined> {
23
24
  const tsconfigPath = joinPaths(dirPath, "tsconfig.json");
25
+ // TODO: To remove tslint, replace this with a ts.createProgram (probably)
24
26
  const lintProgram = Linter.createProgram(tsconfigPath);
27
+ const eslintPath = joinPaths(dirPath, ".eslintrc.json");
28
+ const eslintConfig = (await pathExists(eslintPath))
29
+ ? await readJSON(eslintPath)
30
+ : require("@definitelytyped/eslint-config-dtslint");
25
31
 
26
32
  for (const version of [maxVersion, minVersion]) {
27
33
  const errors = testDependencies(version, dirPath, lintProgram, tsLocal);
@@ -30,13 +36,12 @@ export async function lint(
30
36
  }
31
37
  }
32
38
 
33
- const lintOptions: ILinterOptions = {
34
- fix: false,
35
- formatter: "stylish",
36
- };
37
- const linter = new Linter(lintOptions, lintProgram);
39
+ const linter = new Linter({ fix: false, formatter: "stylish" }, lintProgram);
38
40
  const configPath = expectOnly ? joinPaths(__dirname, "..", "dtslint-expect-only.json") : getConfigPath(dirPath);
41
+ // TODO: To port expect-rule, eslint's config will also need to include [minVersion, maxVersion]
42
+ // Also: expect-rule should be renamed to expect-type or check-type or something
39
43
  const config = await getLintConfig(configPath, tsconfigPath, minVersion, maxVersion, tsLocal);
44
+ const esfiles = [];
40
45
 
41
46
  for (const file of lintProgram.getSourceFiles()) {
42
47
  if (lintProgram.isSourceFileDefaultLibrary(file)) {
@@ -45,7 +50,10 @@ export async function lint(
45
50
 
46
51
  const { fileName, text } = file;
47
52
  if (!fileName.includes("node_modules")) {
48
- const err = testNoTsIgnore(text) || testNoTslintDisables(text);
53
+ const err =
54
+ testNoTsIgnore(text) ||
55
+ testNoLintDisables("tslint:disable", text) ||
56
+ testNoLintDisables("eslint-disable", text);
49
57
  if (err) {
50
58
  const { pos, message } = err;
51
59
  const place = file.getLineAndCharacterOfPosition(pos);
@@ -57,11 +65,19 @@ export async function lint(
57
65
  // typesVersions should be handled in a separate lint
58
66
  if (!isExternalDependency(file, dirPath, lintProgram) && (!isLatest || !isTypesVersionPath(fileName, dirPath))) {
59
67
  linter.lint(fileName, text, config);
68
+ esfiles.push(fileName);
60
69
  }
61
70
  }
62
-
63
71
  const result = linter.getResult();
64
- return result.failures.length ? result.output : undefined;
72
+ const eslint = new ESLint({ baseConfig: eslintConfig });
73
+ const formatter = await eslint.loadFormatter("stylish");
74
+ const eresults = await eslint.lintFiles(esfiles);
75
+ console.log(formatter.format(eresults));
76
+
77
+ let output: string | undefined;
78
+ if (result.failures.length) output = result.output;
79
+ if (eresults.some((r) => r.errorCount)) output = (output || "") + formatter.format(eresults);
80
+ return output;
65
81
  }
66
82
 
67
83
  function testDependencies(
@@ -145,21 +161,26 @@ function testNoTsIgnore(text: string): Err | undefined {
145
161
  const pos = text.indexOf(tsIgnore);
146
162
  return pos === -1 ? undefined : { pos, message: "'ts-ignore' is forbidden." };
147
163
  }
148
- function testNoTslintDisables(text: string): Err | undefined {
149
- const tslintDisable = "tslint:disable";
164
+ function testNoLintDisables(disabler: "tslint:disable" | "eslint-disable", text: string): Err | undefined {
150
165
  let lastIndex = 0;
151
166
  // eslint-disable-next-line no-constant-condition
152
167
  while (true) {
153
- const pos = text.indexOf(tslintDisable, lastIndex);
168
+ const pos = text.indexOf(disabler, lastIndex);
154
169
  if (pos === -1) {
155
170
  return undefined;
156
171
  }
157
- const end = pos + tslintDisable.length;
172
+ const end = pos + disabler.length;
158
173
  const nextChar = text.charAt(end);
159
- if (nextChar !== "-" && nextChar !== ":") {
174
+ const nextChar2 = text.charAt(end + 1);
175
+ if (
176
+ nextChar !== "-" &&
177
+ !(disabler === "tslint:disable" && nextChar === ":") &&
178
+ !(disabler === "eslint-disable" && nextChar === " " && nextChar2 === "*")
179
+ ) {
160
180
  const message =
161
- "'tslint:disable' is forbidden. " +
162
- "('tslint:disable:rulename', tslint:disable-line' and 'tslint:disable-next-line' are allowed.)";
181
+ `'${disabler}' is forbidden. ` +
182
+ "Per-line and per-rule disabling is allowed, for example: " +
183
+ "'tslint:disable:rulename', tslint:disable-line' and 'tslint:disable-next-line' are allowed.";
163
184
  return { pos, message };
164
185
  }
165
186
  lastIndex = end;
@@ -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.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.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.full.d.ts","../../node_modules/@types/parsimmon/index.d.ts","../typescript-versions/dist/index.d.ts","../header-parser/dist/index.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/dns.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/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/string_decoder.d.ts","./node_modules/@types/node/timers.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/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/base.d.ts","./node_modules/@types/node/ts3.2/fs.d.ts","./node_modules/@types/node/ts3.2/util.d.ts","./node_modules/@types/node/ts3.2/globals.d.ts","./node_modules/@types/node/ts3.2/base.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/ts3.2/index.d.ts","./node_modules/@types/fs-extra/index.d.ts","./node_modules/typescript/lib/typescript.d.ts","./node_modules/@types/strip-json-comments/index.d.ts","./src/util.ts","./src/checks.ts","../utils/dist/assertions.d.ts","../utils/dist/async.d.ts","../utils/dist/collections.d.ts","../utils/dist/fs.d.ts","../utils/dist/types/fstream.d.ts","../utils/dist/logging.d.ts","../utils/dist/io.d.ts","../utils/dist/miscellany.d.ts","../utils/dist/npm.d.ts","../utils/dist/process.d.ts","../utils/dist/progress.d.ts","../utils/dist/typescript-installer.d.ts","../utils/dist/index.d.ts","./node_modules/tslint/lib/language/walker/syntaxWalker.d.ts","./node_modules/tslint/lib/language/walker/walkContext.d.ts","./node_modules/tslint/lib/language/walker/walker.d.ts","./node_modules/tslint/lib/language/walker/ruleWalker.d.ts","./node_modules/tslint/lib/language/walker/scopeAwareRuleWalker.d.ts","./node_modules/tslint/lib/language/walker/blockScopeAwareRuleWalker.d.ts","./node_modules/tslint/lib/language/walker/programAwareRuleWalker.d.ts","./node_modules/tslint/lib/language/walker/index.d.ts","./node_modules/tslint/lib/language/rule/rule.d.ts","./node_modules/tslint/lib/configuration.d.ts","./node_modules/tslint/lib/language/formatter/formatter.d.ts","./node_modules/tslint/lib/language/formatter/abstractFormatter.d.ts","./node_modules/tslint/lib/formatters/jsonFormatter.d.ts","./node_modules/tslint/lib/formatters/pmdFormatter.d.ts","./node_modules/tslint/lib/formatters/proseFormatter.d.ts","./node_modules/tslint/lib/formatters/verboseFormatter.d.ts","./node_modules/tslint/lib/formatters/stylishFormatter.d.ts","./node_modules/tslint/lib/formatters/fileslistFormatter.d.ts","./node_modules/tslint/lib/formatters/codeFrameFormatter.d.ts","./node_modules/tslint/lib/formatters/tapFormatter.d.ts","./node_modules/tslint/lib/formatters/junitFormatter.d.ts","./node_modules/tslint/lib/formatters/index.d.ts","./node_modules/tslint/lib/formatters.d.ts","./node_modules/tslint/lib/language/rule/abstractRule.d.ts","./node_modules/tslint/lib/language/rule/typedRule.d.ts","./node_modules/tslint/lib/language/rule/optionallyTypedRule.d.ts","./node_modules/tslint/lib/rules.d.ts","./node_modules/tslint/lib/runner.d.ts","./node_modules/tslint/lib/verify/lintError.d.ts","./node_modules/tslint/lib/test.d.ts","./node_modules/tslint/lib/utils.d.ts","./node_modules/tslint/lib/linter.d.ts","./node_modules/tslint/lib/enableDisableRules.d.ts","./node_modules/tslint/lib/formatterLoader.d.ts","./node_modules/tslint/lib/ruleLoader.d.ts","./node_modules/tslint/lib/language/utils.d.ts","./node_modules/tslint/lib/index.d.ts","./src/rules/expectRule.ts","./src/lint.ts","./src/index.ts","./src/suggestions.ts","../../node_modules/@types/json-stable-stringify/index.d.ts","../../node_modules/@types/yargs-parser/index.d.ts","../../node_modules/@types/yargs/index.d.ts","../dts-critic/dist/index.d.ts","./src/rules/npmNamingRule.ts","./src/updateConfig.ts","./src/rules/dtHeaderRule.ts","./src/rules/exportJustNamespaceRule.ts","./src/rules/noAnyUnionRule.ts","./src/rules/noBadReferenceRule.ts","./src/rules/noConstEnumRule.ts","./src/rules/noDeadReferenceRule.ts","./src/rules/noDeclareCurrentPackageRule.ts","./src/rules/noImportDefaultOfExportEqualsRule.ts","./src/rules/noOutsideDependenciesRule.ts","./src/rules/noPaddingRule.ts","./src/rules/noRedundantJsdoc2Rule.ts","./src/rules/noRelativeImportInTestRule.ts","./src/rules/noSelfImportRule.ts","./src/rules/noSingleDeclareModuleRule.ts","./src/rules/noSingleElementTupleTypeRule.ts","./src/rules/noUnnecessaryGenericsRule.ts","./src/rules/noUselessFilesRule.ts","./src/rules/preferDeclareFunctionRule.ts","./src/rules/redundantUndefinedRule.ts","./src/rules/strictExportDeclareModifiersRule.ts","./src/rules/trimFileRule.ts","./src/rules/voidReturnRule.ts","../utils/node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"89f78430e422a0f06d13019d60d5a45b37ec2d28e67eb647f73b1b0d19a46b72","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06",{"version":"abba1071bfd89e55e88a054b0c851ea3e8a494c340d0f3fab19eb18f6afb0c9e","affectsGlobalScope":true},{"version":"927cb2b60048e1395b183bf74b2b80a75bdb1dbe384e1d9fac654313ea2fb136","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"4378fc8122ec9d1a685b01eb66c46f62aba6b239ca7228bb6483bcf8259ee493","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","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":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"32b8443be144970b813b9dd72dcdba2059fbdfdae4d3a50c4d8a158ed6057bbe","19b32dcf848f5a494e0220509b2ce6bb5f85ef8d82ed1d48d1c4c255133a2936","ad54394e28bb6eda48537c23da754a6ec68d739ceb453d9d625f81b8e366112d","4a825b1e80b4bd281b0e1945c6b814ff8b7d047e324227a1b2208ef06c2a8897",{"version":"9d0b32c595a2e0d320a56b3d0e8f0a317e4149239ec913aa8f11eeb73edc92be","affectsGlobalScope":true},"96e547b51f95ee76bdb25731c92420fa6f93b59c3f38f23d505be36e2de394ee","61215c1a376bbe8f51cab4cc4ddbf3746387015113c37a84d981d4738c21b878","3ca89ecb953fe3b63dae41e5bb986506e812754dde0369c5fe61de26eff47dbe","123ec69e4b3a686eb49afd94ebe3292a5c84a867ecbcb6bb84bdd720a12af803","525c8fc510d9632d2a0a9de2d41c3ac1cdd79ff44d3b45c6d81cacabb683528d","90c85ddbb8de82cd19198bda062065fc51b7407c0f206f2e399e65a52e979720","d56c93b6bf66e602869e926ddc8b1b4630d1ff397909291767d18d4ffc22d33f","7ecfe97b43aa6c8b8f90caa599d5648bb559962e74e6f038f73a77320569dd78","aad3237c3f99480041cad7ca04d64307c98933996f822342b7c0ee4a78553346","4d4c83f77ac21a72252785baa5328a5612b0b6598d512f68b8cb14f7966d059e","5ffa4219ee64e130980a4231392cbc628544df137ccf650ae8d76e0a1744fd2b","e1a12c7e7951b9762cfbcc43c72eb5611120967706a7c3142ad303c6b7ee767f","b5fd0a137bd6d0afe291d465e99c7469b082b66b3ee89273b3b22801b6c2948e","873da589b78a1f1fa7d623483bd2c2730a02e0852259fb8fdcfe5221ac51d18a","c969bf4c7cdfe4d5dd28aa09432f99d09ad1d8d8b839959646579521d0467d1a","4218ced3933a31eed1278d350dd63c5900df0f0904f57d61c054d7a4b83dbe4c","a376e245f494b58365a4391a2568e6dd9da372c3453f4732eb6e15ebb9038451","ffe8912b7c45288810c870b768190c6c097459930a587dd6ef0d900a5529a811","f53678bdb9f25445c8cdf021f2b003b74fd638e69bb1959dde8e370e8cc1e4fa","84044697c8b3e08ef24e4b32cfe6440143d07e469a5e34bda0635276d32d9f35","0b6098fedb648cab8091cca2b022a5c729b6ef18da923852033f495907cb1a45",{"version":"0e0d58f5e90c0a270dac052b9c5ad8ccdfc8271118c2105b361063218d528d6e","affectsGlobalScope":true},"30ec6f9c683b988c3cfaa0c4690692049c4e7ed7dc6f6e94f56194c06b86f5e1","9f633ecf3e065ff82c19eccab35c8aa1d6d5d1a49af282dc29ef5a64cca34164","6b2bb67b0942bcfce93e1d6fad5f70afd54940a2b13df7f311201fba54b2cbe9","dd3706b25d06fe23c73d16079e8c66ac775831ef419da00716bf2aee530a04a4","d74b8e644da7415e3757a17a42b7f284597b577e3c87b80f4b3ba0cc2db1184f","7e62aac2cc9c0710d772047ad89e8d7117f52592c791eb995ce1f865fedab432","b40652bf8ce4a18133b31349086523b219724dca8df3448c1a0742528e7ad5b9","424bc64b2794d9280c1e1f4a3518ba9d285385a16d84753a6427bb469e582eca","a77fdb357c78b70142b2fdbbfb72958d69e8f765fd2a3c69946c1018e89d4638","3c2ac350c3baa61fd2b1925844109e098f4376d0768a4643abc82754fd752748","826d48e49c905cedb906cbde6ccaf758827ff5867d4daa006b5a79e0fb489357","893d1b5dd98f1c01a0ec4122dfd7f774e0fa1560e1aa19e509c96ed543c6244e","289be113bad7ee27ee7fa5b1e373c964c9789a5e9ed7db5ddcb631371120b953","e4abb8eaa8a7d78236be0f8342404aab076668d20590209e32fdeb924588531e","1b4db6ed54916341a48bb81cfd9f910999b3bcd6b71c6a4c7416532a6908775d","f409183966a1dd93d3a9cd1d54fbeb85c73101e87cd5b19467c5e37b252f3fd8","5ff4ecfd544d596de3c8011a6d44c59443c85e1f99065095e556b15237eb39ac","12b2608d6074167c331c9c3c6994a57819f6ff934c7fd4527e23aabf56d4c8d1","ffc1cd688606ad1ddb59a40e8f3defbde907af2a3402d1d9ddf69accb2903f07",{"version":"4926e99d2ad39c0bbd36f2d37cc8f52756bc7a5661ad7b12815df871a4b07ba1","affectsGlobalScope":true},"8a70903bbbdad1d58e3936ca90b3ad993e54827ea324e20f2f63cef4e14e9d55","f61a4062a627acbe5c4a9650319132ec8fa7fe2f276a7f40a056e59c2a877e04","9522f3e35b412f2f17974b1431a1b18d06e0a8f614a0700c37220a4afb04afa8","aca36e2d27783f4bad7fc1786a532ff76024f0fc8575df48bcd9a5eb452fe7e7","c52df7a3b3374dd91f6f2065afbe6989cfb4ed30e75a1276510fb2d58de08601","658c59bd93996b5760e0a0c0eee9a2084a03f0041789e107ab73a112eef06117","b1d42297ef92595bcc17cbc89489e056525b89c1fad752db16981ae835f787e1","14d6ceebbb8f35d6af8918149bf0346935e967ac699680bb284983b97020fd4a","41edcdae87a935477f0fd67fea79f9c3d4a8f59f9d8ee9b32d37a5ae2d9fabd6","63357eb2e74c59dd8da1b0fe2b759beac5584614a1dc83adc5e6e6d0fe15d2b5","25fd37f9613e35a924f24a89ba2e5d80d3f88349f6959fdb10baf4ff4f889bb4","8cda0f7349cb38d1bbc27f5cfc12a8a26f0c188c40902f675436cc9a34092b6d","e2ae5aa7a93eb36cea60b4c922ef22262728e114059f2e0bf25129c8aa70119e","ac17a8d374bd3dc1b6836846e0c96650a6d3fdda3d1027c989a808004f543c99","db8a8df00af806b60bc17cc7c3f8e3a3ea120d7419a1c646e98813997e23d3c0","53b171cf7bc1e16ea61419d84ae189daa5369bff79a3d717e7c747ace98bae84","bb6d14c474a9918de9bcd05b385cce693b8350fa1fb061be0f8f63115e6b5259","7c4a5e3d8540057b699654bac19f9b439785bdfa7889cd9f5a45d20ac74dfe78","a16c35d930455fe1ae89bce24a4d135407bfb61dcbd627dba94506a031222660","d10bfe4565c3d0e9d6e8a79ba90d434fbb732cec441b132e257ab72627924543","5eaa1112a996927a1216ea5da6aea4b8acaa3e01f1cb8d9545b18ceb24bcf5aa","a37fd08da1b34b4d7003e79631f50a0205a61226fee2beb5bef81a71902cfa46","dd34db3fb9be7fb3d474070a6d9b912cc204271687e1425d6ddbdb0512f78eb9","d63f46bebe8f8089950f9a9eb0755cce3ad9887285c6abd7bdf556beee8b3e97","78c4cea948fd307a09aa017a9b05f601dc5560166f9cb562353237d9d0480c43","6b081ccb656855db88b49f8a434bc7cf61aa6f9f67822e527329b7f84d61ee97","65d4fbe40d30e01a230d41bf49d44d69b75e4895ca07aedde6b15c812a60916d","63df934ff4e61472be885417264225a221a9548b5e52e847cc56657766c5f1ed","02fdedab5a3a8c53144228df36eeba76f46b7b403118db28dcd319646b8fe6ca","482b4c61bc9fd77de7d3ed52698d2e0f0d04d4839274828b16cf5e7282e17747","36db183865741677731ed2ecbfb195ffd40e931cd64f2b6bddc72b33d2dd2f40","87526303738e4edeb08c38cc3750dc874e54111dd8c6f4816a9df00d3b5dc7ea","3a43fa1f2b440d233560ff371920ccd14c1ab29ad5074fa5a1e4616c4a51b6e7","00eb294c52e2b41644a3d86e2191f609ea6185968130376045eb47a69669de2e","00eb294c52e2b41644a3d86e2191f609ea6185968130376045eb47a69669de2e","43f7bc619e86d96191873c2c9494cfc88c9e7252b0b8a451f702d77739690d29","744408cd7dc1bf1e1dbc770aac0e50c142a702316c0359a9cc7ae1fa6aafc90d","e13acbdd9813434ab367bcc954092541175da09e603b5bd1cd671a5818dca96e","00eb294c52e2b41644a3d86e2191f609ea6185968130376045eb47a69669de2e","00eb294c52e2b41644a3d86e2191f609ea6185968130376045eb47a69669de2e","9f34570701f561709ffe7c3b4d8b46612524eae40b7a35671596677f5ad22fcd","780c1d3215b8359686fa0e84cb5a0f376b2175f5a5ee0cf9a679b5a904b3ef3a","c31a6806095fa2a0ff15e2274fc5a3823cc7ec50fe265244b06f76768790dfb2","574b0f3c9c97978dfaf21d3c60d54f6f4735ebad6c29f8d526ea5d71505c2e81","e6d67ff57b8e1d8cc1df2e2d4d3f4804194fd7ef74f79011c81a4c602f1cda06","5369af45989a6f87e2da43c116bceb19b58fa492456a7a7b49044d6ca90fea60","cd44b752f67662e754920ff7da1906e1f8421f1afbac70c80360bed74e62c481","53aaa9de3f13af71c05000d02013744798b1cb1f7abb6afee5936eef7b40de4e","34137f912d03e00d1f303f420aa781d28a213e94ebc72de39dc66afb1c2d7116","28ac68ecf33f7d1d02639f51b13662ce756119cf09c46694146ad7d50d4c91d6","82dbc3f62003d918765a113b0249f6cdb6afdb1e4432a1ce7c4ffb609a73902f","ed29b20b028d13f213b2d7006e8c682c1a5cf4e437cf2a887c266abe5a0dc76e","9d5742fe3f5aff0314e4acf98f4ab91511727afdb15d87e86beff1c1537dcdb1","a9e95b5704917009178a1bfef3bb6dcead2d5982f96d8de93d78eb1d55dfcf16","e2175e8956be6be66af258546ada6dea78d7575042780f8a3cdae8df388dd88f","5b93f01cc0b506546233d420c85376a26520b16473910df1c3e196df302c70fb","6273dd597ec315aee91189b3edbd271f2834f984543351d945df99a99ee73f97","04a7a83d4fddcc85027defe7e56d3712d4dc51fa9a11f34c3dfe7bf5cdcbef0b","eb6910c65ad159b7b2114aea667d51da0c0978f240a9e54c019dd513cb6128e8","74fd97b093f27cb9190d8ad4d95af540e816df1384e1a87d8cb2e6dfd7e4148e","191fd10d75b57a8f5e77eb26e5f1b5a05a33b5e2321eb4bbb9981707949c718f","5b1f8948e8bbefb8931d5479d78fe673bbe3187dd75ca429aa4a578b886e1c89","626520302b2c8880e9eaa3a6a12022cc8b577a32e4d903aef85e3dd275063da4","f7e133b20ee2669b6c0e5d7f0cd510868c57cd64b283e68c7f598e30ce9d76d2","2893564a05d3bbe2a4d812dfd5ad3d7a6981a754283b695272d6ead03f638b67","2a11a191f7429646627bbf3b6bbc9361d3430722ada1a3eebf0b7a1b8053b557","55e45c073448b8448b473663f66a069831be6a725dc355d0d320a1fb443cab18","427cfc42a6c338fe2d414e2c6bb9c4415bd1f76e21de0b80384c2d4451aaf12e","7fa110da4e8fef73b83dbc23aa8d5b1f1d1923c13d3d832a380259d4583a8105","97fbbdc408e016337fe571673cee25467c1ff33ac53f869d7d3f2075c98383ee","f062fcf62344b8e9026027362b16df13899716aa5cec4adef87689e085b650e6","327fe0f8041b7da4e9121ebf5314e536cfc0ed372af37043fc82cd5815e9a545","a2ca97dc6258e2b2ec4820619afb4fb504786f5892b543c6d1aaa0b5df4f79bb","b1362a5fc910808055011fb556e164e954018d4fbdf31a94b429e9b44cd5734f","fcc99969d10c978908a1fc82eedb116cdfae80dd2e1cd7434c05c5b262b6ea05","2db09f270a63a0eda12367a14276bf646a1f9c930b8190c1c754bd17d0f13412","d5f6ef3dc8c66cd9aacbd19d5f117adf115644f02241bbb0dd96ae650c6e0f87","132f8dea773cc4beb2cf8acc874c3ee840d9e64c323b109868dbdd3c99f9e76c","ff3a4351d6b9fdd25cac50a45e463768d54ec5547d0f1f583bc3fdf5fcd6e757","4c53f38d128959ac5ded620000ca09c1a2cbd1269c0c3d857b36e80b0bf2130e","e41e554ed74805d1844ea86217a646382917acd4c72f447fffbd2953a4a46c65","82735b371318b87d41eaa68b3475aa79049bc1e23bdc149d4b563bb3ddf5eb3a","b852bde093e88512213b3e690426381798afbd6291bfc1aad10984bfa9108737","4b02ef1e89be01a1250988e7a40c1e2f37df22840e7c5aa0126c080525a29871","9cb10e13dfd3790a2f79318e6c070fd65a2b543b916375c2430e7a7eee7dbb7b","6736fcd4c75c4b54a0969ad772e5f7b3e8ed33858749829c09b776d303f489eb","998a461c1caf0ac52fd917d282ad3277ef5d3906aa26df4637e60a9ddcd08c23","8d1b6900a4146bf54b9d25d6fd0d818847015b9329653e8877d8a382530f8ec7","b81579e8981c5eec1fe3d346c79ffa757fab0ad40b701b41e25a79054c112af9","86d141f6b223e5071d7a8ed2615732ea93cb3ca8a616773671ee85a895a9851c"],"options":{"allowUnreachableCode":false,"allowUnusedLabels":false,"composite":true,"esModuleInterop":true,"module":1,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./dist","rootDir":"./src","sourceMap":true,"strict":true,"target":5},"fileIdsList":[[48,70,76,77],[48,70,76,77,142],[48,70,76,77,81],[36,37,38,39,40,41,42,43,44,45,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,76,77],[47,48,54,63,70,76,77],[39,47,48,54,70,76,77],[43,48,55,70,76,77],[48,63,70,76,77],[45,47,48,54,70,76,77],[47,48,70,76,77],[47,63,69,70,76,77],[47,48,54,63,69,70,76,77],[47,48,49,54,63,66,69,70,76,77],[47,48,49,66,69,70,76,77],[48,69,70,76,77],[45,47,48,63,70,76,77],[37,48,70,76,77],[48,68,70,76,77],[47,48,63,70,76,77],[48,61,70,72,76,77],[43,45,48,54,63,70,76,77],[48,70,75,76,77,78],[48,70,77],[36,48,70,76,77],[48,70,76,77,79,80],[48,70,76],[48,54,70,76,77],[48,60,70,76,77],[48,76,77],[47,48,63,69,70,72,76,77],[48,70,76,77,108],[48,70,76,77,83,108],[48,70,76,77,136],[48,70,76,77,111,121],[48,70,76,77,108,110,111],[48,70,76,77,112,113,114,115,116,117,118,119,120],[48,70,76,77,107,108,109,110,122,126,129,130,131,132,133,134,135],[48,70,76,77,108,110],[48,70,76,77,83,107,108],[48,70,76,77,83,108,123],[48,70,76,77,83,107],[48,70,76,77,83,104,108],[48,70,76,77,100,101,102,103,104,105,106],[48,70,76,77,83,103,108],[48,70,76,77,83,100,102,108],[48,70,76,77,83],[48,70,76,77,83,101,108],[48,70,76,77,83,108,109,136],[48,70,76,77,123,124,125],[48,70,76,77,127,128],[48,70,76,77,81,83],[34,35,48,56,70,76,77,80,82,83,85],[34,35,48,56,70,76,77,80,82,85,86,99,138],[34,48,56,70,76,77,80,82,83,85,99,136,137],[35,48,70,76,77,83,85,136],[48,55,56,70,76,77,83,85,136],[48,70,76,77,83,85,136],[48,70,76,77,80,83,136],[48,70,76,77,83,85,136,140,144],[48,55,56,70,76,77,136],[39,48,56,70,76,77,83,136,138,141,143,145],[48,56,70,76,77,80,82,83,84],[33,34,48,70,76,77],[48,70,76,77,87,88,89,90,92,93,94,95,96,97,98],[48,51,70,76,77,90,92,169],[48,70,76,77,92],[39,48,70,76,77,169],[48,70,76,77,169],[34,48,70,76,77]],"referencedMap":[[141,1],[33,1],[142,1],[143,2],[6,1],[7,1],[11,1],[10,1],[2,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[3,1],[4,1],[23,1],[20,1],[21,1],[22,1],[24,1],[25,1],[26,1],[5,1],[32,1],[27,1],[28,1],[29,1],[30,1],[1,1],[31,1],[9,1],[8,1],[144,1],[82,3],[80,1],[37,1],[75,4],[38,1],[39,5],[40,6],[41,1],[42,7],[43,8],[44,9],[45,1],[46,10],[47,1],[48,11],[36,1],[49,12],[50,13],[51,14],[52,10],[53,15],[54,16],[55,1],[56,1],[57,17],[58,18],[59,1],[60,1],[61,19],[62,20],[63,10],[64,1],[65,1],[66,21],[67,1],[79,22],[76,23],[78,24],[81,25],[77,26],[68,27],[69,28],[70,29],[71,8],[72,1],[73,30],[74,8],[84,1],[109,31],[132,32],[133,33],[122,34],[118,35],[117,35],[121,36],[112,35],[120,35],[113,35],[114,35],[116,35],[119,35],[115,35],[136,37],[111,38],[110,31],[123,39],[125,40],[108,41],[124,40],[135,32],[105,42],[107,43],[106,44],[103,45],[104,44],[100,46],[101,32],[102,47],[131,48],[134,31],[126,49],[127,1],[129,50],[130,51],[128,1],[83,1],[86,52],[139,53],[138,54],[147,55],[137,56],[148,57],[149,57],[150,57],[151,57],[152,57],[153,57],[154,57],[155,57],[156,57],[157,58],[158,57],[159,57],[160,57],[161,57],[162,57],[163,57],[145,59],[164,57],[165,57],[166,57],[167,57],[168,57],[140,60],[146,61],[85,62],[35,63],[34,1],[87,1],[88,1],[89,1],[90,1],[99,64],[93,65],[92,1],[94,1],[95,66],[96,67],[97,1],[91,68],[98,69]],"exportedModulesMap":[[141,1],[33,1],[142,1],[143,2],[6,1],[7,1],[11,1],[10,1],[2,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[3,1],[4,1],[23,1],[20,1],[21,1],[22,1],[24,1],[25,1],[26,1],[5,1],[32,1],[27,1],[28,1],[29,1],[30,1],[1,1],[31,1],[9,1],[8,1],[144,1],[82,3],[80,1],[37,1],[75,4],[38,1],[39,5],[40,6],[41,1],[42,7],[43,8],[44,9],[45,1],[46,10],[47,1],[48,11],[36,1],[49,12],[50,13],[51,14],[52,10],[53,15],[54,16],[55,1],[56,1],[57,17],[58,18],[59,1],[60,1],[61,19],[62,20],[63,10],[64,1],[65,1],[66,21],[67,1],[79,22],[76,23],[78,24],[81,25],[77,26],[68,27],[69,28],[70,29],[71,8],[72,1],[73,30],[74,8],[84,1],[109,31],[132,32],[133,33],[122,34],[118,35],[117,35],[121,36],[112,35],[120,35],[113,35],[114,35],[116,35],[119,35],[115,35],[136,37],[111,38],[110,31],[123,39],[125,40],[108,41],[124,40],[135,32],[105,42],[107,43],[106,44],[103,45],[104,44],[100,46],[101,32],[102,47],[131,48],[134,31],[126,49],[127,1],[129,50],[130,51],[128,1],[83,1],[86,52],[139,53],[138,54],[147,55],[137,56],[148,57],[149,57],[150,57],[151,57],[152,57],[153,57],[154,57],[155,57],[156,57],[157,58],[158,57],[159,57],[160,57],[161,57],[162,57],[163,57],[145,59],[164,57],[165,57],[166,57],[167,57],[168,57],[140,60],[146,61],[85,62],[35,63],[34,1],[87,1],[88,1],[89,1],[90,1],[99,64],[93,65],[92,1],[94,1],[95,66],[96,67],[97,1],[91,68],[98,69]],"semanticDiagnosticsPerFile":[141,33,142,143,6,7,11,10,2,12,13,14,15,16,17,18,19,3,4,23,20,21,22,24,25,26,5,32,27,28,29,30,1,31,9,8,144,82,80,37,75,38,39,40,41,42,43,44,45,46,47,48,36,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,79,76,78,81,77,68,69,70,71,72,73,74,84,109,132,133,122,118,117,121,112,120,113,114,116,119,115,136,111,110,123,125,108,124,135,105,107,106,103,104,100,101,102,131,134,126,127,129,130,128,83,86,139,138,147,137,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,145,164,165,166,167,168,140,146,85,35,34,87,88,89,90,99,93,92,94,95,96,97,91,98]},"version":"4.5.5"}
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.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.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.full.d.ts","../../node_modules/@types/parsimmon/index.d.ts","../typescript-versions/dist/index.d.ts","../header-parser/dist/index.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/dns.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/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/string_decoder.d.ts","./node_modules/@types/node/timers.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/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/base.d.ts","./node_modules/@types/node/ts3.2/fs.d.ts","./node_modules/@types/node/ts3.2/util.d.ts","./node_modules/@types/node/ts3.2/globals.d.ts","./node_modules/@types/node/ts3.2/base.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/ts3.2/index.d.ts","./node_modules/@types/fs-extra/index.d.ts","./node_modules/typescript/lib/typescript.d.ts","./node_modules/@types/strip-json-comments/index.d.ts","./src/util.ts","./src/checks.ts","../utils/dist/assertions.d.ts","../utils/dist/async.d.ts","../utils/dist/collections.d.ts","../utils/dist/fs.d.ts","../utils/dist/types/fstream.d.ts","../utils/dist/logging.d.ts","../utils/dist/io.d.ts","../utils/dist/miscellany.d.ts","../utils/dist/npm.d.ts","../utils/dist/process.d.ts","../utils/dist/progress.d.ts","../utils/dist/typescript-installer.d.ts","../utils/dist/index.d.ts","./node_modules/tslint/lib/language/walker/syntaxWalker.d.ts","./node_modules/tslint/lib/language/walker/walkContext.d.ts","./node_modules/tslint/lib/language/walker/walker.d.ts","./node_modules/tslint/lib/language/walker/ruleWalker.d.ts","./node_modules/tslint/lib/language/walker/scopeAwareRuleWalker.d.ts","./node_modules/tslint/lib/language/walker/blockScopeAwareRuleWalker.d.ts","./node_modules/tslint/lib/language/walker/programAwareRuleWalker.d.ts","./node_modules/tslint/lib/language/walker/index.d.ts","./node_modules/tslint/lib/language/rule/rule.d.ts","./node_modules/tslint/lib/configuration.d.ts","./node_modules/tslint/lib/language/formatter/formatter.d.ts","./node_modules/tslint/lib/language/formatter/abstractFormatter.d.ts","./node_modules/tslint/lib/formatters/jsonFormatter.d.ts","./node_modules/tslint/lib/formatters/pmdFormatter.d.ts","./node_modules/tslint/lib/formatters/proseFormatter.d.ts","./node_modules/tslint/lib/formatters/verboseFormatter.d.ts","./node_modules/tslint/lib/formatters/stylishFormatter.d.ts","./node_modules/tslint/lib/formatters/fileslistFormatter.d.ts","./node_modules/tslint/lib/formatters/codeFrameFormatter.d.ts","./node_modules/tslint/lib/formatters/tapFormatter.d.ts","./node_modules/tslint/lib/formatters/junitFormatter.d.ts","./node_modules/tslint/lib/formatters/index.d.ts","./node_modules/tslint/lib/formatters.d.ts","./node_modules/tslint/lib/language/rule/abstractRule.d.ts","./node_modules/tslint/lib/language/rule/typedRule.d.ts","./node_modules/tslint/lib/language/rule/optionallyTypedRule.d.ts","./node_modules/tslint/lib/rules.d.ts","./node_modules/tslint/lib/runner.d.ts","./node_modules/tslint/lib/verify/lintError.d.ts","./node_modules/tslint/lib/test.d.ts","./node_modules/tslint/lib/utils.d.ts","./node_modules/tslint/lib/linter.d.ts","./node_modules/tslint/lib/enableDisableRules.d.ts","./node_modules/tslint/lib/formatterLoader.d.ts","./node_modules/tslint/lib/ruleLoader.d.ts","./node_modules/tslint/lib/language/utils.d.ts","./node_modules/tslint/lib/index.d.ts","../../node_modules/@types/eslint/helpers.d.ts","../../node_modules/@types/estree/index.d.ts","../../node_modules/@types/json-schema/index.d.ts","../../node_modules/@types/eslint/index.d.ts","./src/rules/expectRule.ts","./src/lint.ts","./src/index.ts","./src/suggestions.ts","../../node_modules/@types/json-stable-stringify/index.d.ts","../../node_modules/@types/yargs-parser/index.d.ts","../../node_modules/@types/yargs/index.d.ts","../dts-critic/dist/index.d.ts","./src/rules/npmNamingRule.ts","./src/updateConfig.ts","./src/rules/dtHeaderRule.ts","./src/rules/exportJustNamespaceRule.ts","./src/rules/noAnyUnionRule.ts","./src/rules/noBadReferenceRule.ts","./src/rules/noConstEnumRule.ts","./src/rules/noDeadReferenceRule.ts","./src/rules/noDeclareCurrentPackageRule.ts","./src/rules/noImportDefaultOfExportEqualsRule.ts","./src/rules/noOutsideDependenciesRule.ts","./src/rules/noPaddingRule.ts","./src/rules/noRedundantJsdoc2Rule.ts","./src/rules/noRelativeImportInTestRule.ts","./src/rules/noSelfImportRule.ts","./src/rules/noSingleDeclareModuleRule.ts","./src/rules/noSingleElementTupleTypeRule.ts","./src/rules/noUnnecessaryGenericsRule.ts","./src/rules/noUselessFilesRule.ts","./src/rules/preferDeclareFunctionRule.ts","./src/rules/redundantUndefinedRule.ts","./src/rules/strictExportDeclareModifiersRule.ts","./src/rules/trimFileRule.ts","./src/rules/voidReturnRule.ts","../utils/node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"89f78430e422a0f06d13019d60d5a45b37ec2d28e67eb647f73b1b0d19a46b72","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06",{"version":"abba1071bfd89e55e88a054b0c851ea3e8a494c340d0f3fab19eb18f6afb0c9e","affectsGlobalScope":true},{"version":"927cb2b60048e1395b183bf74b2b80a75bdb1dbe384e1d9fac654313ea2fb136","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"4378fc8122ec9d1a685b01eb66c46f62aba6b239ca7228bb6483bcf8259ee493","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","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":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"32b8443be144970b813b9dd72dcdba2059fbdfdae4d3a50c4d8a158ed6057bbe","19b32dcf848f5a494e0220509b2ce6bb5f85ef8d82ed1d48d1c4c255133a2936","ad54394e28bb6eda48537c23da754a6ec68d739ceb453d9d625f81b8e366112d","4a825b1e80b4bd281b0e1945c6b814ff8b7d047e324227a1b2208ef06c2a8897",{"version":"9d0b32c595a2e0d320a56b3d0e8f0a317e4149239ec913aa8f11eeb73edc92be","affectsGlobalScope":true},"96e547b51f95ee76bdb25731c92420fa6f93b59c3f38f23d505be36e2de394ee","61215c1a376bbe8f51cab4cc4ddbf3746387015113c37a84d981d4738c21b878","3ca89ecb953fe3b63dae41e5bb986506e812754dde0369c5fe61de26eff47dbe","123ec69e4b3a686eb49afd94ebe3292a5c84a867ecbcb6bb84bdd720a12af803","525c8fc510d9632d2a0a9de2d41c3ac1cdd79ff44d3b45c6d81cacabb683528d","90c85ddbb8de82cd19198bda062065fc51b7407c0f206f2e399e65a52e979720","d56c93b6bf66e602869e926ddc8b1b4630d1ff397909291767d18d4ffc22d33f","7ecfe97b43aa6c8b8f90caa599d5648bb559962e74e6f038f73a77320569dd78","aad3237c3f99480041cad7ca04d64307c98933996f822342b7c0ee4a78553346","4d4c83f77ac21a72252785baa5328a5612b0b6598d512f68b8cb14f7966d059e","5ffa4219ee64e130980a4231392cbc628544df137ccf650ae8d76e0a1744fd2b","e1a12c7e7951b9762cfbcc43c72eb5611120967706a7c3142ad303c6b7ee767f","b5fd0a137bd6d0afe291d465e99c7469b082b66b3ee89273b3b22801b6c2948e","873da589b78a1f1fa7d623483bd2c2730a02e0852259fb8fdcfe5221ac51d18a","c969bf4c7cdfe4d5dd28aa09432f99d09ad1d8d8b839959646579521d0467d1a","4218ced3933a31eed1278d350dd63c5900df0f0904f57d61c054d7a4b83dbe4c","a376e245f494b58365a4391a2568e6dd9da372c3453f4732eb6e15ebb9038451","ffe8912b7c45288810c870b768190c6c097459930a587dd6ef0d900a5529a811","f53678bdb9f25445c8cdf021f2b003b74fd638e69bb1959dde8e370e8cc1e4fa","84044697c8b3e08ef24e4b32cfe6440143d07e469a5e34bda0635276d32d9f35","0b6098fedb648cab8091cca2b022a5c729b6ef18da923852033f495907cb1a45",{"version":"0e0d58f5e90c0a270dac052b9c5ad8ccdfc8271118c2105b361063218d528d6e","affectsGlobalScope":true},"30ec6f9c683b988c3cfaa0c4690692049c4e7ed7dc6f6e94f56194c06b86f5e1","9f633ecf3e065ff82c19eccab35c8aa1d6d5d1a49af282dc29ef5a64cca34164","6b2bb67b0942bcfce93e1d6fad5f70afd54940a2b13df7f311201fba54b2cbe9","dd3706b25d06fe23c73d16079e8c66ac775831ef419da00716bf2aee530a04a4","d74b8e644da7415e3757a17a42b7f284597b577e3c87b80f4b3ba0cc2db1184f","7e62aac2cc9c0710d772047ad89e8d7117f52592c791eb995ce1f865fedab432","b40652bf8ce4a18133b31349086523b219724dca8df3448c1a0742528e7ad5b9","424bc64b2794d9280c1e1f4a3518ba9d285385a16d84753a6427bb469e582eca","a77fdb357c78b70142b2fdbbfb72958d69e8f765fd2a3c69946c1018e89d4638","3c2ac350c3baa61fd2b1925844109e098f4376d0768a4643abc82754fd752748","826d48e49c905cedb906cbde6ccaf758827ff5867d4daa006b5a79e0fb489357","893d1b5dd98f1c01a0ec4122dfd7f774e0fa1560e1aa19e509c96ed543c6244e","289be113bad7ee27ee7fa5b1e373c964c9789a5e9ed7db5ddcb631371120b953","e4abb8eaa8a7d78236be0f8342404aab076668d20590209e32fdeb924588531e","1b4db6ed54916341a48bb81cfd9f910999b3bcd6b71c6a4c7416532a6908775d","f409183966a1dd93d3a9cd1d54fbeb85c73101e87cd5b19467c5e37b252f3fd8","5ff4ecfd544d596de3c8011a6d44c59443c85e1f99065095e556b15237eb39ac","12b2608d6074167c331c9c3c6994a57819f6ff934c7fd4527e23aabf56d4c8d1","ffc1cd688606ad1ddb59a40e8f3defbde907af2a3402d1d9ddf69accb2903f07",{"version":"4926e99d2ad39c0bbd36f2d37cc8f52756bc7a5661ad7b12815df871a4b07ba1","affectsGlobalScope":true},"8a70903bbbdad1d58e3936ca90b3ad993e54827ea324e20f2f63cef4e14e9d55","f61a4062a627acbe5c4a9650319132ec8fa7fe2f276a7f40a056e59c2a877e04","9522f3e35b412f2f17974b1431a1b18d06e0a8f614a0700c37220a4afb04afa8","aca36e2d27783f4bad7fc1786a532ff76024f0fc8575df48bcd9a5eb452fe7e7","c52df7a3b3374dd91f6f2065afbe6989cfb4ed30e75a1276510fb2d58de08601","658c59bd93996b5760e0a0c0eee9a2084a03f0041789e107ab73a112eef06117","b1d42297ef92595bcc17cbc89489e056525b89c1fad752db16981ae835f787e1","14d6ceebbb8f35d6af8918149bf0346935e967ac699680bb284983b97020fd4a","41edcdae87a935477f0fd67fea79f9c3d4a8f59f9d8ee9b32d37a5ae2d9fabd6","63357eb2e74c59dd8da1b0fe2b759beac5584614a1dc83adc5e6e6d0fe15d2b5","25fd37f9613e35a924f24a89ba2e5d80d3f88349f6959fdb10baf4ff4f889bb4","8cda0f7349cb38d1bbc27f5cfc12a8a26f0c188c40902f675436cc9a34092b6d","e2ae5aa7a93eb36cea60b4c922ef22262728e114059f2e0bf25129c8aa70119e","ac17a8d374bd3dc1b6836846e0c96650a6d3fdda3d1027c989a808004f543c99","db8a8df00af806b60bc17cc7c3f8e3a3ea120d7419a1c646e98813997e23d3c0","53b171cf7bc1e16ea61419d84ae189daa5369bff79a3d717e7c747ace98bae84","bb6d14c474a9918de9bcd05b385cce693b8350fa1fb061be0f8f63115e6b5259","7c4a5e3d8540057b699654bac19f9b439785bdfa7889cd9f5a45d20ac74dfe78","a16c35d930455fe1ae89bce24a4d135407bfb61dcbd627dba94506a031222660","d10bfe4565c3d0e9d6e8a79ba90d434fbb732cec441b132e257ab72627924543","5eaa1112a996927a1216ea5da6aea4b8acaa3e01f1cb8d9545b18ceb24bcf5aa","a37fd08da1b34b4d7003e79631f50a0205a61226fee2beb5bef81a71902cfa46","dd34db3fb9be7fb3d474070a6d9b912cc204271687e1425d6ddbdb0512f78eb9","d63f46bebe8f8089950f9a9eb0755cce3ad9887285c6abd7bdf556beee8b3e97","78c4cea948fd307a09aa017a9b05f601dc5560166f9cb562353237d9d0480c43","6b081ccb656855db88b49f8a434bc7cf61aa6f9f67822e527329b7f84d61ee97","65d4fbe40d30e01a230d41bf49d44d69b75e4895ca07aedde6b15c812a60916d","63df934ff4e61472be885417264225a221a9548b5e52e847cc56657766c5f1ed","02fdedab5a3a8c53144228df36eeba76f46b7b403118db28dcd319646b8fe6ca","482b4c61bc9fd77de7d3ed52698d2e0f0d04d4839274828b16cf5e7282e17747","36db183865741677731ed2ecbfb195ffd40e931cd64f2b6bddc72b33d2dd2f40","87526303738e4edeb08c38cc3750dc874e54111dd8c6f4816a9df00d3b5dc7ea","3a43fa1f2b440d233560ff371920ccd14c1ab29ad5074fa5a1e4616c4a51b6e7","00eb294c52e2b41644a3d86e2191f609ea6185968130376045eb47a69669de2e","00eb294c52e2b41644a3d86e2191f609ea6185968130376045eb47a69669de2e","43f7bc619e86d96191873c2c9494cfc88c9e7252b0b8a451f702d77739690d29","744408cd7dc1bf1e1dbc770aac0e50c142a702316c0359a9cc7ae1fa6aafc90d","e13acbdd9813434ab367bcc954092541175da09e603b5bd1cd671a5818dca96e","00eb294c52e2b41644a3d86e2191f609ea6185968130376045eb47a69669de2e","00eb294c52e2b41644a3d86e2191f609ea6185968130376045eb47a69669de2e","9f34570701f561709ffe7c3b4d8b46612524eae40b7a35671596677f5ad22fcd","780c1d3215b8359686fa0e84cb5a0f376b2175f5a5ee0cf9a679b5a904b3ef3a","c31a6806095fa2a0ff15e2274fc5a3823cc7ec50fe265244b06f76768790dfb2","574b0f3c9c97978dfaf21d3c60d54f6f4735ebad6c29f8d526ea5d71505c2e81","e6d67ff57b8e1d8cc1df2e2d4d3f4804194fd7ef74f79011c81a4c602f1cda06","5369af45989a6f87e2da43c116bceb19b58fa492456a7a7b49044d6ca90fea60","cd44b752f67662e754920ff7da1906e1f8421f1afbac70c80360bed74e62c481","53aaa9de3f13af71c05000d02013744798b1cb1f7abb6afee5936eef7b40de4e","34137f912d03e00d1f303f420aa781d28a213e94ebc72de39dc66afb1c2d7116","28ac68ecf33f7d1d02639f51b13662ce756119cf09c46694146ad7d50d4c91d6","82dbc3f62003d918765a113b0249f6cdb6afdb1e4432a1ce7c4ffb609a73902f","ed29b20b028d13f213b2d7006e8c682c1a5cf4e437cf2a887c266abe5a0dc76e","9d5742fe3f5aff0314e4acf98f4ab91511727afdb15d87e86beff1c1537dcdb1","a9e95b5704917009178a1bfef3bb6dcead2d5982f96d8de93d78eb1d55dfcf16","e2175e8956be6be66af258546ada6dea78d7575042780f8a3cdae8df388dd88f","5b93f01cc0b506546233d420c85376a26520b16473910df1c3e196df302c70fb","6273dd597ec315aee91189b3edbd271f2834f984543351d945df99a99ee73f97","04a7a83d4fddcc85027defe7e56d3712d4dc51fa9a11f34c3dfe7bf5cdcbef0b",{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true},"a1c79f857f5c7754e14c93949dad8cfefcd7df2ecc0dc9dd79a30fd493e28449","f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","2d474dfb84cd28ea43f27fe684da8c00382cbd40cee45e1dad4e9f41f6c437b6","eb6910c65ad159b7b2114aea667d51da0c0978f240a9e54c019dd513cb6128e8","feaa804dcdbfb9b9f1fdcb12cfa3005b89b8429f3d938f8c7e412bd901857b65","191fd10d75b57a8f5e77eb26e5f1b5a05a33b5e2321eb4bbb9981707949c718f","5b1f8948e8bbefb8931d5479d78fe673bbe3187dd75ca429aa4a578b886e1c89","626520302b2c8880e9eaa3a6a12022cc8b577a32e4d903aef85e3dd275063da4","f7e133b20ee2669b6c0e5d7f0cd510868c57cd64b283e68c7f598e30ce9d76d2","2893564a05d3bbe2a4d812dfd5ad3d7a6981a754283b695272d6ead03f638b67","2a11a191f7429646627bbf3b6bbc9361d3430722ada1a3eebf0b7a1b8053b557","55e45c073448b8448b473663f66a069831be6a725dc355d0d320a1fb443cab18","427cfc42a6c338fe2d414e2c6bb9c4415bd1f76e21de0b80384c2d4451aaf12e","7fa110da4e8fef73b83dbc23aa8d5b1f1d1923c13d3d832a380259d4583a8105","97fbbdc408e016337fe571673cee25467c1ff33ac53f869d7d3f2075c98383ee","f062fcf62344b8e9026027362b16df13899716aa5cec4adef87689e085b650e6","327fe0f8041b7da4e9121ebf5314e536cfc0ed372af37043fc82cd5815e9a545","a2ca97dc6258e2b2ec4820619afb4fb504786f5892b543c6d1aaa0b5df4f79bb","b1362a5fc910808055011fb556e164e954018d4fbdf31a94b429e9b44cd5734f","fcc99969d10c978908a1fc82eedb116cdfae80dd2e1cd7434c05c5b262b6ea05","2db09f270a63a0eda12367a14276bf646a1f9c930b8190c1c754bd17d0f13412","d5f6ef3dc8c66cd9aacbd19d5f117adf115644f02241bbb0dd96ae650c6e0f87","132f8dea773cc4beb2cf8acc874c3ee840d9e64c323b109868dbdd3c99f9e76c","ff3a4351d6b9fdd25cac50a45e463768d54ec5547d0f1f583bc3fdf5fcd6e757","4c53f38d128959ac5ded620000ca09c1a2cbd1269c0c3d857b36e80b0bf2130e","e41e554ed74805d1844ea86217a646382917acd4c72f447fffbd2953a4a46c65","82735b371318b87d41eaa68b3475aa79049bc1e23bdc149d4b563bb3ddf5eb3a","b852bde093e88512213b3e690426381798afbd6291bfc1aad10984bfa9108737","4b02ef1e89be01a1250988e7a40c1e2f37df22840e7c5aa0126c080525a29871","9cb10e13dfd3790a2f79318e6c070fd65a2b543b916375c2430e7a7eee7dbb7b","6736fcd4c75c4b54a0969ad772e5f7b3e8ed33858749829c09b776d303f489eb","998a461c1caf0ac52fd917d282ad3277ef5d3906aa26df4637e60a9ddcd08c23","8d1b6900a4146bf54b9d25d6fd0d818847015b9329653e8877d8a382530f8ec7","b81579e8981c5eec1fe3d346c79ffa757fab0ad40b701b41e25a79054c112af9","86d141f6b223e5071d7a8ed2615732ea93cb3ca8a616773671ee85a895a9851c"],"options":{"allowUnreachableCode":false,"allowUnusedLabels":false,"composite":true,"esModuleInterop":true,"module":1,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./dist","rootDir":"./src","sourceMap":true,"strict":true,"target":5},"fileIdsList":[[48,70,76,77],[48,70,76,77,137,138,139],[48,70,76,77,146],[48,70,76,77,81],[36,37,38,39,40,41,42,43,44,45,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,76,77],[47,48,54,63,70,76,77],[39,47,48,54,70,76,77],[43,48,55,70,76,77],[48,63,70,76,77],[45,47,48,54,70,76,77],[47,48,70,76,77],[47,63,69,70,76,77],[47,48,54,63,69,70,76,77],[47,48,49,54,63,66,69,70,76,77],[47,48,49,66,69,70,76,77],[48,69,70,76,77],[45,47,48,63,70,76,77],[37,48,70,76,77],[48,68,70,76,77],[47,48,63,70,76,77],[48,61,70,72,76,77],[43,45,48,54,63,70,76,77],[48,70,75,76,77,78],[48,70,77],[36,48,70,76,77],[48,70,76,77,79,80],[48,70,76],[48,54,70,76,77],[48,60,70,76,77],[48,76,77],[47,48,63,69,70,72,76,77],[48,70,76,77,108],[48,70,76,77,83,108],[48,70,76,77,136],[48,70,76,77,111,121],[48,70,76,77,108,110,111],[48,70,76,77,112,113,114,115,116,117,118,119,120],[48,70,76,77,107,108,109,110,122,126,129,130,131,132,133,134,135],[48,70,76,77,108,110],[48,70,76,77,83,107,108],[48,70,76,77,83,108,123],[48,70,76,77,83,107],[48,70,76,77,83,104,108],[48,70,76,77,100,101,102,103,104,105,106],[48,70,76,77,83,103,108],[48,70,76,77,83,100,102,108],[48,70,76,77,83],[48,70,76,77,83,101,108],[48,70,76,77,83,108,109,136],[48,70,76,77,123,124,125],[48,70,76,77,127,128],[48,70,76,77,81,83],[34,35,48,56,70,76,77,80,82,83,85],[34,35,48,56,70,76,77,80,82,85,86,99,142],[34,48,56,70,76,77,80,82,83,85,99,136,140,141],[35,48,70,76,77,83,85,136],[48,55,56,70,76,77,83,85,136],[48,70,76,77,83,85,136],[48,70,76,77,80,83,136],[48,70,76,77,83,85,136,144,148],[48,55,56,70,76,77,136],[39,48,56,70,76,77,83,136,142,145,147,149],[48,56,70,76,77,80,82,83,84],[33,34,48,70,76,77],[48,70,76,77,87,88,89,90,92,93,94,95,96,97,98],[48,51,70,76,77,90,92,173],[48,70,76,77,92],[39,48,70,76,77,173],[48,70,76,77,173],[34,48,70,76,77]],"referencedMap":[[137,1],[140,2],[138,1],[139,1],[145,1],[33,1],[146,1],[147,3],[6,1],[7,1],[11,1],[10,1],[2,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[3,1],[4,1],[23,1],[20,1],[21,1],[22,1],[24,1],[25,1],[26,1],[5,1],[32,1],[27,1],[28,1],[29,1],[30,1],[1,1],[31,1],[9,1],[8,1],[148,1],[82,4],[80,1],[37,1],[75,5],[38,1],[39,6],[40,7],[41,1],[42,8],[43,9],[44,10],[45,1],[46,11],[47,1],[48,12],[36,1],[49,13],[50,14],[51,15],[52,11],[53,16],[54,17],[55,1],[56,1],[57,18],[58,19],[59,1],[60,1],[61,20],[62,21],[63,11],[64,1],[65,1],[66,22],[67,1],[79,23],[76,24],[78,25],[81,26],[77,27],[68,28],[69,29],[70,30],[71,9],[72,1],[73,31],[74,9],[84,1],[109,32],[132,33],[133,34],[122,35],[118,36],[117,36],[121,37],[112,36],[120,36],[113,36],[114,36],[116,36],[119,36],[115,36],[136,38],[111,39],[110,32],[123,40],[125,41],[108,42],[124,41],[135,33],[105,43],[107,44],[106,45],[103,46],[104,45],[100,47],[101,33],[102,48],[131,49],[134,32],[126,50],[127,1],[129,51],[130,52],[128,1],[83,1],[86,53],[143,54],[142,55],[151,56],[141,57],[152,58],[153,58],[154,58],[155,58],[156,58],[157,58],[158,58],[159,58],[160,58],[161,59],[162,58],[163,58],[164,58],[165,58],[166,58],[167,58],[149,60],[168,58],[169,58],[170,58],[171,58],[172,58],[144,61],[150,62],[85,63],[35,64],[34,1],[87,1],[88,1],[89,1],[90,1],[99,65],[93,66],[92,1],[94,1],[95,67],[96,68],[97,1],[91,69],[98,70]],"exportedModulesMap":[[137,1],[140,2],[138,1],[139,1],[145,1],[33,1],[146,1],[147,3],[6,1],[7,1],[11,1],[10,1],[2,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[3,1],[4,1],[23,1],[20,1],[21,1],[22,1],[24,1],[25,1],[26,1],[5,1],[32,1],[27,1],[28,1],[29,1],[30,1],[1,1],[31,1],[9,1],[8,1],[148,1],[82,4],[80,1],[37,1],[75,5],[38,1],[39,6],[40,7],[41,1],[42,8],[43,9],[44,10],[45,1],[46,11],[47,1],[48,12],[36,1],[49,13],[50,14],[51,15],[52,11],[53,16],[54,17],[55,1],[56,1],[57,18],[58,19],[59,1],[60,1],[61,20],[62,21],[63,11],[64,1],[65,1],[66,22],[67,1],[79,23],[76,24],[78,25],[81,26],[77,27],[68,28],[69,29],[70,30],[71,9],[72,1],[73,31],[74,9],[84,1],[109,32],[132,33],[133,34],[122,35],[118,36],[117,36],[121,37],[112,36],[120,36],[113,36],[114,36],[116,36],[119,36],[115,36],[136,38],[111,39],[110,32],[123,40],[125,41],[108,42],[124,41],[135,33],[105,43],[107,44],[106,45],[103,46],[104,45],[100,47],[101,33],[102,48],[131,49],[134,32],[126,50],[127,1],[129,51],[130,52],[128,1],[83,1],[86,53],[143,54],[142,55],[151,56],[141,57],[152,58],[153,58],[154,58],[155,58],[156,58],[157,58],[158,58],[159,58],[160,58],[161,59],[162,58],[163,58],[164,58],[165,58],[166,58],[167,58],[149,60],[168,58],[169,58],[170,58],[171,58],[172,58],[144,61],[150,62],[85,63],[35,64],[34,1],[87,1],[88,1],[89,1],[90,1],[99,65],[93,66],[92,1],[94,1],[95,67],[96,68],[97,1],[91,69],[98,70]],"semanticDiagnosticsPerFile":[137,140,138,139,145,33,146,147,6,7,11,10,2,12,13,14,15,16,17,18,19,3,4,23,20,21,22,24,25,26,5,32,27,28,29,30,1,31,9,8,148,82,80,37,75,38,39,40,41,42,43,44,45,46,47,48,36,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,79,76,78,81,77,68,69,70,71,72,73,74,84,109,132,133,122,118,117,121,112,120,113,114,116,119,115,136,111,110,123,125,108,124,135,105,107,106,103,104,100,101,102,131,134,126,127,129,130,128,83,86,143,142,151,141,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,149,168,169,170,171,172,144,150,85,35,34,87,88,89,90,99,93,92,94,95,96,97,91,98]},"version":"4.5.5"}