@redocly/openapi-core 1.0.0-beta.96 → 1.0.0-beta.97

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.
@@ -8,7 +8,7 @@ export declare function resolveApis({ rawConfig, configPath, resolver, }: {
8
8
  configPath?: string;
9
9
  resolver?: BaseResolver;
10
10
  }): Promise<Record<string, ResolvedApi>>;
11
- export declare function resolveLint({ lintConfig, configPath, resolver, }: {
11
+ export declare function resolveLint(lintOpts: {
12
12
  lintConfig?: LintRawConfig;
13
13
  configPath?: string;
14
14
  resolver?: BaseResolver;
@@ -141,7 +141,7 @@ function resolveApis({ rawConfig, configPath = '', resolver, }) {
141
141
  });
142
142
  }
143
143
  exports.resolveApis = resolveApis;
144
- function resolveLint({ lintConfig, configPath = '', resolver = new resolve_1.BaseResolver(), }, parentConfigPaths = [], extendPaths = []) {
144
+ function resolveAndMergeNestedLint({ lintConfig, configPath = '', resolver = new resolve_1.BaseResolver(), }, parentConfigPaths = [], extendPaths = []) {
145
145
  var _a, _b, _c;
146
146
  return __awaiter(this, void 0, void 0, function* () {
147
147
  if (parentConfigPaths.includes(configPath)) {
@@ -162,7 +162,7 @@ function resolveLint({ lintConfig, configPath = '', resolver = new resolve_1.Bas
162
162
  ? new URL(presetItem, configPath).href
163
163
  : path.resolve(path.dirname(configPath), presetItem);
164
164
  const extendedLintConfig = yield loadExtendLintConfig(pathItem, resolver);
165
- return yield resolveLint({
165
+ return yield resolveAndMergeNestedLint({
166
166
  lintConfig: extendedLintConfig,
167
167
  configPath: pathItem,
168
168
  resolver: resolver,
@@ -175,6 +175,12 @@ function resolveLint({ lintConfig, configPath = '', resolver = new resolve_1.Bas
175
175
  return Object.assign(Object.assign({}, lint), { extendPaths: (_c = lint.extendPaths) === null || _c === void 0 ? void 0 : _c.filter((path) => path && !ref_utils_1.isAbsoluteUrl(path)), plugins: utils_1.getUniquePlugins(mergedPlugins), recommendedFallback: lintConfig === null || lintConfig === void 0 ? void 0 : lintConfig.recommendedFallback, doNotResolveExamples: lintConfig === null || lintConfig === void 0 ? void 0 : lintConfig.doNotResolveExamples });
176
176
  });
177
177
  }
178
+ function resolveLint(lintOpts, parentConfigPaths = [], extendPaths = []) {
179
+ return __awaiter(this, void 0, void 0, function* () {
180
+ const resolvedLint = yield resolveAndMergeNestedLint(lintOpts, parentConfigPaths, extendPaths);
181
+ return Object.assign(Object.assign({}, resolvedLint), { rules: resolvedLint.rules && groupLintAssertionRules(resolvedLint.rules) });
182
+ });
183
+ }
178
184
  exports.resolveLint = resolveLint;
179
185
  function resolvePreset(presetName, plugins) {
180
186
  var _a;
@@ -211,3 +217,26 @@ function getMergedLintRawConfig(configLint, apiLint) {
211
217
  const resultLint = Object.assign(Object.assign(Object.assign({}, configLint), apiLint), { rules: Object.assign(Object.assign({}, configLint === null || configLint === void 0 ? void 0 : configLint.rules), apiLint === null || apiLint === void 0 ? void 0 : apiLint.rules), oas2Rules: Object.assign(Object.assign({}, configLint === null || configLint === void 0 ? void 0 : configLint.oas2Rules), apiLint === null || apiLint === void 0 ? void 0 : apiLint.oas2Rules), oas3_0Rules: Object.assign(Object.assign({}, configLint === null || configLint === void 0 ? void 0 : configLint.oas3_0Rules), apiLint === null || apiLint === void 0 ? void 0 : apiLint.oas3_0Rules), oas3_1Rules: Object.assign(Object.assign({}, configLint === null || configLint === void 0 ? void 0 : configLint.oas3_1Rules), apiLint === null || apiLint === void 0 ? void 0 : apiLint.oas3_1Rules), preprocessors: Object.assign(Object.assign({}, configLint === null || configLint === void 0 ? void 0 : configLint.preprocessors), apiLint === null || apiLint === void 0 ? void 0 : apiLint.preprocessors), oas2Preprocessors: Object.assign(Object.assign({}, configLint === null || configLint === void 0 ? void 0 : configLint.oas2Preprocessors), apiLint === null || apiLint === void 0 ? void 0 : apiLint.oas2Preprocessors), oas3_0Preprocessors: Object.assign(Object.assign({}, configLint === null || configLint === void 0 ? void 0 : configLint.oas3_0Preprocessors), apiLint === null || apiLint === void 0 ? void 0 : apiLint.oas3_0Preprocessors), oas3_1Preprocessors: Object.assign(Object.assign({}, configLint === null || configLint === void 0 ? void 0 : configLint.oas3_1Preprocessors), apiLint === null || apiLint === void 0 ? void 0 : apiLint.oas3_1Preprocessors), decorators: Object.assign(Object.assign({}, configLint === null || configLint === void 0 ? void 0 : configLint.decorators), apiLint === null || apiLint === void 0 ? void 0 : apiLint.decorators), oas2Decorators: Object.assign(Object.assign({}, configLint === null || configLint === void 0 ? void 0 : configLint.oas2Decorators), apiLint === null || apiLint === void 0 ? void 0 : apiLint.oas2Decorators), oas3_0Decorators: Object.assign(Object.assign({}, configLint === null || configLint === void 0 ? void 0 : configLint.oas3_0Decorators), apiLint === null || apiLint === void 0 ? void 0 : apiLint.oas3_0Decorators), oas3_1Decorators: Object.assign(Object.assign({}, configLint === null || configLint === void 0 ? void 0 : configLint.oas3_1Decorators), apiLint === null || apiLint === void 0 ? void 0 : apiLint.oas3_1Decorators), recommendedFallback: (apiLint === null || apiLint === void 0 ? void 0 : apiLint.extends) ? false : configLint.recommendedFallback });
212
218
  return resultLint;
213
219
  }
220
+ function groupLintAssertionRules(rules) {
221
+ if (!rules) {
222
+ return rules;
223
+ }
224
+ // Create a new record to avoid mutating original
225
+ const transformedRules = {};
226
+ // Collect assertion rules
227
+ const assertions = [];
228
+ for (const [ruleKey, rule] of Object.entries(rules)) {
229
+ if (ruleKey.startsWith('assert/') && typeof rule === 'object' && rule !== null) {
230
+ const assertion = rule;
231
+ assertions.push(Object.assign(Object.assign({}, assertion), { assertionId: ruleKey.replace('assert/', '') }));
232
+ }
233
+ else {
234
+ // If it's not an assertion, keep it as is
235
+ transformedRules[ruleKey] = rule;
236
+ }
237
+ }
238
+ if (assertions.length > 0) {
239
+ transformedRules.assertions = assertions;
240
+ }
241
+ return transformedRules;
242
+ }
@@ -1,11 +1,14 @@
1
+ /// <reference types="node" />
1
2
  import { NormalizedProblem } from '../walk';
2
3
  import { OasVersion, OasMajorVersion, Oas2RuleSet, Oas3RuleSet } from '../oas-types';
3
4
  import type { NodeType } from '../types';
4
5
  import type { DecoratorConfig, Plugin, PreprocessorConfig, Region, ResolveConfig, ResolvedApi, ResolvedConfig, ResolvedLintConfig, RuleConfig } from './types';
6
+ export declare const env: NodeJS.ProcessEnv;
5
7
  export declare const IGNORE_FILE = ".redocly.lint-ignore.yaml";
6
8
  export declare const DEFAULT_REGION = "us";
7
9
  export declare const DOMAINS: {
8
- [region in Region]: string;
10
+ us: string;
11
+ eu: string;
9
12
  };
10
13
  export declare const AVAILABLE_REGIONS: Region[];
11
14
  export declare class LintConfig {
@@ -1,28 +1,34 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Config = exports.LintConfig = exports.AVAILABLE_REGIONS = exports.DOMAINS = exports.DEFAULT_REGION = exports.IGNORE_FILE = void 0;
3
+ exports.Config = exports.LintConfig = exports.AVAILABLE_REGIONS = exports.DOMAINS = exports.DEFAULT_REGION = exports.IGNORE_FILE = exports.env = void 0;
4
4
  const fs = require("fs");
5
5
  const path = require("path");
6
6
  const js_yaml_1 = require("../js-yaml");
7
7
  const utils_1 = require("../utils");
8
8
  const oas_types_1 = require("../oas-types");
9
9
  const utils_2 = require("./utils");
10
+ // Alias environment here so this file can work in browser environments too.
11
+ exports.env = typeof process !== 'undefined' ? process.env || {} : {};
10
12
  exports.IGNORE_FILE = '.redocly.lint-ignore.yaml';
11
13
  const IGNORE_BANNER = `# This file instructs Redocly's linter to ignore the rules contained for specific parts of your API.\n` +
12
14
  `# See https://redoc.ly/docs/cli/ for more information.\n`;
13
15
  exports.DEFAULT_REGION = 'us';
14
- const REDOCLY_DOMAIN = process.env.REDOCLY_DOMAIN;
15
- exports.DOMAINS = {
16
- us: 'redocly.com',
17
- eu: 'eu.redocly.com',
18
- };
19
- // FIXME: temporary fix for our lab environments
20
- if (REDOCLY_DOMAIN === null || REDOCLY_DOMAIN === void 0 ? void 0 : REDOCLY_DOMAIN.endsWith('.redocly.host')) {
21
- exports.DOMAINS[REDOCLY_DOMAIN.split('.')[0]] = REDOCLY_DOMAIN;
22
- }
23
- if (REDOCLY_DOMAIN === 'redoc.online') {
24
- exports.DOMAINS[REDOCLY_DOMAIN] = REDOCLY_DOMAIN;
16
+ function getDomains() {
17
+ const domains = {
18
+ us: 'redocly.com',
19
+ eu: 'eu.redocly.com',
20
+ };
21
+ // FIXME: temporary fix for our lab environments
22
+ const domain = exports.env.REDOCLY_DOMAIN;
23
+ if (domain === null || domain === void 0 ? void 0 : domain.endsWith('.redocly.host')) {
24
+ domains[domain.split('.')[0]] = domain;
25
+ }
26
+ if (domain === 'redoc.online') {
27
+ domains[domain] = domain;
28
+ }
29
+ return domains;
25
30
  }
31
+ exports.DOMAINS = getDomains();
26
32
  exports.AVAILABLE_REGIONS = Object.keys(exports.DOMAINS);
27
33
  class LintConfig {
28
34
  constructor(rawConfig, configFile) {
@@ -5,6 +5,7 @@ const path = require("path");
5
5
  const colorette_1 = require("colorette");
6
6
  const coreVersion = require('../../package.json').version;
7
7
  const codeframes_1 = require("./codeframes");
8
+ const config_1 = require("../config");
8
9
  const ERROR_MESSAGE = {
9
10
  INVALID_SEVERITY_LEVEL: 'Invalid severity level; accepted values: error or warn',
10
11
  };
@@ -131,7 +132,7 @@ function formatProblems(problems, opts) {
131
132
  ? Object.assign(Object.assign({}, p.from), { source: {
132
133
  ref: path.relative(cwd, ((_a = p.from) === null || _a === void 0 ? void 0 : _a.source.absoluteRef) || cwd),
133
134
  } }) : undefined });
134
- if (process.env.FORMAT_JSON_WITH_CODEFRAMES) {
135
+ if (config_1.env.FORMAT_JSON_WITH_CODEFRAMES) {
135
136
  const location = p.location[0]; // TODO: support multiple locations
136
137
  const loc = codeframes_1.getLineColLocation(location);
137
138
  problem.codeframe = codeframes_1.getCodeframe(loc, color);
@@ -18,27 +18,21 @@ const registry_api_1 = require("./registry-api");
18
18
  const config_1 = require("../config/config");
19
19
  const utils_1 = require("../utils");
20
20
  const TOKEN_FILENAME = '.redocly-config.json';
21
- let REDOCLY_DOMAIN; // workaround for the isRedoclyRegistryURL, see more below
22
21
  class RedoclyClient {
23
22
  constructor(region) {
24
23
  this.accessTokens = {};
25
24
  this.region = this.loadRegion(region);
26
25
  this.loadTokens();
27
- this.domain = region ? config_1.DOMAINS[region] : process.env.REDOCLY_DOMAIN || config_1.DOMAINS[config_1.DEFAULT_REGION];
28
- /*
29
- * We can't use process.env here because it is replaced by a const in some client-side bundles,
30
- * which breaks assignment.
31
- */
32
- REDOCLY_DOMAIN = this.domain; // isRedoclyRegistryURL depends on the value to be set
26
+ this.domain = region ? config_1.DOMAINS[region] : config_1.env.REDOCLY_DOMAIN || config_1.DOMAINS[config_1.DEFAULT_REGION];
27
+ config_1.env.REDOCLY_DOMAIN = this.domain; // isRedoclyRegistryURL depends on the value to be set
33
28
  this.registryApi = new registry_api_1.RegistryApi(this.accessTokens, this.region);
34
29
  }
35
30
  loadRegion(region) {
36
31
  if (region && !config_1.DOMAINS[region]) {
37
- process.stdout.write(colorette_1.red(`Invalid argument: region in config file.\nGiven: ${colorette_1.green(region)}, choices: "us", "eu".\n`));
38
- process.exit(1);
32
+ throw new Error(`Invalid argument: region in config file.\nGiven: ${colorette_1.green(region)}, choices: "us", "eu".`);
39
33
  }
40
- if (process.env.REDOCLY_DOMAIN) {
41
- return (config_1.AVAILABLE_REGIONS.find((region) => config_1.DOMAINS[region] === process.env.REDOCLY_DOMAIN) || config_1.DEFAULT_REGION);
34
+ if (config_1.env.REDOCLY_DOMAIN) {
35
+ return (config_1.AVAILABLE_REGIONS.find((region) => config_1.DOMAINS[region] === config_1.env.REDOCLY_DOMAIN) || config_1.DEFAULT_REGION);
42
36
  }
43
37
  return region || config_1.DEFAULT_REGION;
44
38
  }
@@ -54,13 +48,7 @@ class RedoclyClient {
54
48
  }
55
49
  getAuthorizationHeader() {
56
50
  return __awaiter(this, void 0, void 0, function* () {
57
- const token = this.accessTokens[this.region];
58
- // print this only if there is token but invalid
59
- if (token && !this.isAuthorizedWithRedoclyByRegion()) {
60
- process.stderr.write(`${colorette_1.yellow('Warning:')} invalid Redocly API key. Use "npx @redocly/cli login" to provide your API key\n`);
61
- return undefined;
62
- }
63
- return token;
51
+ return this.accessTokens[this.region];
64
52
  });
65
53
  }
66
54
  // </backward compatibility: portal>
@@ -76,8 +64,8 @@ class RedoclyClient {
76
64
  [this.region]: credentials.token,
77
65
  })));
78
66
  }
79
- if (process.env.REDOCLY_AUTHORIZATION) {
80
- this.setAccessTokens(Object.assign(Object.assign({}, this.accessTokens), { [this.region]: process.env.REDOCLY_AUTHORIZATION }));
67
+ if (config_1.env.REDOCLY_AUTHORIZATION) {
68
+ this.setAccessTokens(Object.assign(Object.assign({}, this.accessTokens), { [this.region]: config_1.env.REDOCLY_AUTHORIZATION }));
81
69
  }
82
70
  }
83
71
  getAllTokens() {
@@ -133,19 +121,16 @@ class RedoclyClient {
133
121
  login(accessToken, verbose = false) {
134
122
  return __awaiter(this, void 0, void 0, function* () {
135
123
  const credentialsPath = path_1.resolve(os_1.homedir(), TOKEN_FILENAME);
136
- process.stdout.write(colorette_1.gray('\n Logging in...\n'));
137
124
  try {
138
125
  yield this.verifyToken(accessToken, this.region, verbose);
139
126
  }
140
127
  catch (err) {
141
- process.stdout.write(colorette_1.red('Authorization failed. Please check if you entered a valid API key.\n'));
142
- process.exit(1);
128
+ throw new Error('Authorization failed. Please check if you entered a valid API key.');
143
129
  }
144
130
  const credentials = Object.assign(Object.assign({}, this.readCredentialsFile(credentialsPath)), { [this.region]: accessToken, token: accessToken });
145
131
  this.accessTokens = credentials;
146
132
  this.registryApi.setAccessTokens(credentials);
147
133
  fs_1.writeFileSync(credentialsPath, JSON.stringify(credentials, null, 2));
148
- process.stdout.write(colorette_1.green(' Authorization confirmed. ✅\n\n'));
149
134
  });
150
135
  }
151
136
  logout() {
@@ -153,12 +138,11 @@ class RedoclyClient {
153
138
  if (fs_1.existsSync(credentialsPath)) {
154
139
  fs_1.unlinkSync(credentialsPath);
155
140
  }
156
- process.stdout.write('Logged out from the Redocly account. ✋\n');
157
141
  }
158
142
  }
159
143
  exports.RedoclyClient = RedoclyClient;
160
144
  function isRedoclyRegistryURL(link) {
161
- const domain = REDOCLY_DOMAIN || process.env.REDOCLY_DOMAIN || config_1.DOMAINS[config_1.DEFAULT_REGION];
145
+ const domain = config_1.env.REDOCLY_DOMAIN || config_1.DOMAINS[config_1.DEFAULT_REGION];
162
146
  const legacyDomain = domain === 'redocly.com' ? 'redoc.ly' : domain;
163
147
  if (!link.startsWith(`https://api.${domain}/registry/`) &&
164
148
  !link.startsWith(`https://api.${legacyDomain}/registry/`)) {
@@ -14,6 +14,7 @@ export declare namespace RegistryApiTypes {
14
14
  filePaths: string[];
15
15
  branch?: string;
16
16
  isUpsert?: boolean;
17
+ isPublic?: boolean;
17
18
  }
18
19
  export interface PrepareFileuploadOKResponse {
19
20
  filePath: string;
@@ -13,5 +13,5 @@ export declare class RegistryApi {
13
13
  organizations: string[];
14
14
  }>;
15
15
  prepareFileUpload({ organizationId, name, version, filesHash, filename, isUpsert, }: RegistryApiTypes.PrepareFileuploadParams): Promise<RegistryApiTypes.PrepareFileuploadOKResponse>;
16
- pushApi({ organizationId, name, version, rootFilePath, filePaths, branch, isUpsert, }: RegistryApiTypes.PushApiParams): Promise<void>;
16
+ pushApi({ organizationId, name, version, rootFilePath, filePaths, branch, isUpsert, isPublic, }: RegistryApiTypes.PushApiParams): Promise<void>;
17
17
  }
@@ -80,7 +80,7 @@ class RegistryApi {
80
80
  throw new Error('Could not prepare file upload');
81
81
  });
82
82
  }
83
- pushApi({ organizationId, name, version, rootFilePath, filePaths, branch, isUpsert, }) {
83
+ pushApi({ organizationId, name, version, rootFilePath, filePaths, branch, isUpsert, isPublic, }) {
84
84
  return __awaiter(this, void 0, void 0, function* () {
85
85
  const response = yield this.request(`/${organizationId}/${name}/${version}`, {
86
86
  method: 'PUT',
@@ -93,6 +93,7 @@ class RegistryApi {
93
93
  filePaths,
94
94
  branch,
95
95
  isUpsert,
96
+ isPublic,
96
97
  }),
97
98
  }, this.region);
98
99
  if (response.ok) {
package/lib/utils.d.ts CHANGED
@@ -22,7 +22,6 @@ export declare function readFileFromUrl(url: string, config: HttpResolveConfig):
22
22
  body: any;
23
23
  mimeType: any;
24
24
  }>;
25
- export declare function match(url: string, pattern: string): boolean;
26
25
  export declare function pickObjectProps<T extends Record<string, unknown>>(object: T, keys: Array<string>): T;
27
26
  export declare function omitObjectProps<T extends Record<string, unknown>>(object: T, keys: Array<string>): T;
28
27
  export declare function splitCamelCaseIntoWords(str: string): Set<string>;
package/lib/utils.js CHANGED
@@ -9,12 +9,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.assignExisting = exports.isNotString = exports.isString = exports.isNotEmptyObject = exports.slash = exports.isPathParameter = exports.readFileAsStringSync = exports.isSingular = exports.validateMimeTypeOAS3 = exports.validateMimeType = exports.splitCamelCaseIntoWords = exports.omitObjectProps = exports.pickObjectProps = exports.match = exports.readFileFromUrl = exports.isEmptyArray = exports.isEmptyObject = exports.isPlainObject = exports.notUndefined = exports.loadYaml = exports.popStack = exports.pushStack = exports.stringifyYaml = exports.parseYaml = void 0;
12
+ exports.assignExisting = exports.isNotString = exports.isString = exports.isNotEmptyObject = exports.slash = exports.isPathParameter = exports.readFileAsStringSync = exports.isSingular = exports.validateMimeTypeOAS3 = exports.validateMimeType = exports.splitCamelCaseIntoWords = exports.omitObjectProps = exports.pickObjectProps = exports.readFileFromUrl = exports.isEmptyArray = exports.isEmptyObject = exports.isPlainObject = exports.notUndefined = exports.loadYaml = exports.popStack = exports.pushStack = exports.stringifyYaml = exports.parseYaml = void 0;
13
13
  const fs = require("fs");
14
14
  const minimatch = require("minimatch");
15
15
  const node_fetch_1 = require("node-fetch");
16
16
  const pluralize = require("pluralize");
17
17
  const js_yaml_1 = require("./js-yaml");
18
+ const config_1 = require("./config");
18
19
  var js_yaml_2 = require("./js-yaml");
19
20
  Object.defineProperty(exports, "parseYaml", { enumerable: true, get: function () { return js_yaml_2.parseYaml; } });
20
21
  Object.defineProperty(exports, "stringifyYaml", { enumerable: true, get: function () { return js_yaml_2.stringifyYaml; } });
@@ -56,7 +57,7 @@ function readFileFromUrl(url, config) {
56
57
  for (const header of config.headers) {
57
58
  if (match(url, header.matches)) {
58
59
  headers[header.name] =
59
- header.envVariable !== undefined ? process.env[header.envVariable] || '' : header.value;
60
+ header.envVariable !== undefined ? config_1.env[header.envVariable] || '' : header.value;
60
61
  }
61
62
  }
62
63
  const req = yield (config.customFetch || node_fetch_1.default)(url, {
@@ -76,7 +77,6 @@ function match(url, pattern) {
76
77
  }
77
78
  return minimatch(url, pattern);
78
79
  }
79
- exports.match = match;
80
80
  function pickObjectProps(object, keys) {
81
81
  return Object.fromEntries(keys.filter((key) => key in object).map((key) => [key, object[key]]));
82
82
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/openapi-core",
3
- "version": "1.0.0-beta.96",
3
+ "version": "1.0.0-beta.97",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "engines": {
@@ -39,7 +39,7 @@
39
39
  "js-levenshtein": "^1.1.6",
40
40
  "js-yaml": "^4.1.0",
41
41
  "lodash.isequal": "^4.5.0",
42
- "minimatch": "^3.0.4",
42
+ "minimatch": "^5.0.1",
43
43
  "node-fetch": "^2.6.1",
44
44
  "pluralize": "^8.0.0",
45
45
  "yaml-ast-parser": "0.0.43"
@@ -48,7 +48,7 @@
48
48
  "@types/js-levenshtein": "^1.1.0",
49
49
  "@types/js-yaml": "^4.0.3",
50
50
  "@types/lodash.isequal": "^4.5.5",
51
- "@types/minimatch": "^3.0.3",
51
+ "@types/minimatch": "^3.0.5",
52
52
  "@types/node-fetch": "^2.5.7",
53
53
  "@types/pluralize": "^0.0.29",
54
54
  "typescript": "^4.0.5"
@@ -103,7 +103,24 @@ Object {
103
103
  "preprocessors": Object {},
104
104
  "recommendedFallback": undefined,
105
105
  "rules": Object {
106
- "assertions": "warn",
106
+ "assertions": Array [
107
+ Object {
108
+ "assertionId": "path-item-get-defined",
109
+ "defined": true,
110
+ "message": "Every path item must have a GET operation.",
111
+ "property": "get",
112
+ "subject": "PathItem",
113
+ },
114
+ Object {
115
+ "assertionId": "tag-description",
116
+ "message": "Tag description must be at least 13 characters and end with a full stop.",
117
+ "minLength": 13,
118
+ "pattern": "/\\\\.$/",
119
+ "property": "description",
120
+ "severity": "error",
121
+ "subject": "Tag",
122
+ },
123
+ ],
107
124
  "boolean-parameter-prefixes": "error",
108
125
  "info-contact": "off",
109
126
  "info-description": "warn",
@@ -130,6 +130,37 @@ describe('resolveLint', () => {
130
130
  expect(lint).toMatchSnapshot();
131
131
  });
132
132
 
133
+ it('should correctly merge assertions from nested config', async () => {
134
+ const lintConfig = {
135
+ extends: ['local-config-with-file.yaml'],
136
+ };
137
+
138
+ const lint = await resolveLint({
139
+ lintConfig,
140
+ configPath,
141
+ });
142
+
143
+ expect(Array.isArray(lint.rules?.assertions)).toEqual(true);
144
+ expect(lint.rules?.assertions).toMatchObject( [
145
+ {
146
+ subject: 'PathItem',
147
+ property: 'get',
148
+ message: 'Every path item must have a GET operation.',
149
+ defined: true,
150
+ assertionId: 'path-item-get-defined'
151
+ },
152
+ {
153
+ subject: 'Tag',
154
+ property: 'description',
155
+ message: 'Tag description must be at least 13 characters and end with a full stop.',
156
+ severity: 'error',
157
+ minLength: 13,
158
+ pattern: '/\\.$/',
159
+ assertionId: 'tag-description'
160
+ }
161
+ ])
162
+ });
163
+
133
164
  it('should resolve extends with url file config witch contains path to nested config', async () => {
134
165
  const lintConfig = {
135
166
  // This points to ./fixtures/resolve-remote-configs/remote-config.yaml
@@ -3,5 +3,10 @@ lint:
3
3
  - plugin.js
4
4
  rules:
5
5
  operation-2xx-response: error
6
+ assert/path-item-get-defined:
7
+ subject: PathItem
8
+ property: get
9
+ message: Every path item must have a GET operation.
10
+ defined: true
6
11
  extends:
7
12
  - test-plugin-nested/all
@@ -2,6 +2,13 @@ lint:
2
2
  rules:
3
3
  no-invalid-media-type-examples: warn
4
4
  operation-4xx-response: off
5
+ assert/tag-description:
6
+ subject: Tag
7
+ property: description
8
+ message: Tag description must be at least 13 characters and end with a full stop.
9
+ severity: error
10
+ minLength: 13
11
+ pattern: /\.$/
5
12
  plugins:
6
13
  - plugin.js
7
14
  - api/plugin.js
@@ -11,7 +11,14 @@ import {
11
11
  prefixRules,
12
12
  transformConfig,
13
13
  } from './utils';
14
- import type { LintRawConfig, Plugin, RawConfig, ResolvedApi, ResolvedLintConfig } from './types';
14
+ import type {
15
+ LintRawConfig,
16
+ Plugin,
17
+ RawConfig,
18
+ ResolvedApi,
19
+ ResolvedLintConfig,
20
+ RuleConfig,
21
+ } from './types';
15
22
  import { isNotString, isString, notUndefined, parseYaml } from '../utils';
16
23
  import { Config } from './config';
17
24
 
@@ -175,7 +182,7 @@ export async function resolveApis({
175
182
  return resolvedApis;
176
183
  }
177
184
 
178
- export async function resolveLint(
185
+ async function resolveAndMergeNestedLint(
179
186
  {
180
187
  lintConfig,
181
188
  configPath = '',
@@ -213,7 +220,7 @@ export async function resolveLint(
213
220
  ? new URL(presetItem, configPath).href
214
221
  : path.resolve(path.dirname(configPath), presetItem);
215
222
  const extendedLintConfig = await loadExtendLintConfig(pathItem, resolver);
216
- return await resolveLint(
223
+ return await resolveAndMergeNestedLint(
217
224
  {
218
225
  lintConfig: extendedLintConfig,
219
226
  configPath: pathItem,
@@ -245,6 +252,23 @@ export async function resolveLint(
245
252
  };
246
253
  }
247
254
 
255
+ export async function resolveLint(
256
+ lintOpts: {
257
+ lintConfig?: LintRawConfig;
258
+ configPath?: string;
259
+ resolver?: BaseResolver;
260
+ },
261
+ parentConfigPaths: string[] = [],
262
+ extendPaths: string[] = [],
263
+ ): Promise<ResolvedLintConfig> {
264
+ const resolvedLint = await resolveAndMergeNestedLint(lintOpts, parentConfigPaths, extendPaths);
265
+
266
+ return {
267
+ ...resolvedLint,
268
+ rules: resolvedLint.rules && groupLintAssertionRules(resolvedLint.rules),
269
+ };
270
+ }
271
+
248
272
  export function resolvePreset(presetName: string, plugins: Plugin[]): ResolvedLintConfig {
249
273
  const { pluginId, configName } = parsePresetName(presetName);
250
274
  const plugin = plugins.find((p) => p.id === pluginId);
@@ -302,3 +326,34 @@ function getMergedLintRawConfig(configLint: LintRawConfig, apiLint?: LintRawConf
302
326
  };
303
327
  return resultLint;
304
328
  }
329
+
330
+ function groupLintAssertionRules(
331
+ rules: Record<string, RuleConfig> | undefined,
332
+ ): Record<string, RuleConfig> | undefined {
333
+ if (!rules) {
334
+ return rules;
335
+ }
336
+
337
+ // Create a new record to avoid mutating original
338
+ const transformedRules: Record<string, RuleConfig> = {};
339
+
340
+ // Collect assertion rules
341
+ const assertions = [];
342
+ for (const [ruleKey, rule] of Object.entries(rules)) {
343
+ if (ruleKey.startsWith('assert/') && typeof rule === 'object' && rule !== null) {
344
+ const assertion = rule;
345
+ assertions.push({
346
+ ...assertion,
347
+ assertionId: ruleKey.replace('assert/', ''),
348
+ });
349
+ } else {
350
+ // If it's not an assertion, keep it as is
351
+ transformedRules[ruleKey] = rule;
352
+ }
353
+ }
354
+ if (assertions.length > 0) {
355
+ transformedRules.assertions = assertions;
356
+ }
357
+
358
+ return transformedRules;
359
+ }
@@ -19,25 +19,34 @@ import type {
19
19
  } from './types';
20
20
  import { getResolveConfig } from './utils';
21
21
 
22
+ // Alias environment here so this file can work in browser environments too.
23
+ export const env = typeof process !== 'undefined' ? process.env || {} : {};
24
+
22
25
  export const IGNORE_FILE = '.redocly.lint-ignore.yaml';
23
26
  const IGNORE_BANNER =
24
27
  `# This file instructs Redocly's linter to ignore the rules contained for specific parts of your API.\n` +
25
28
  `# See https://redoc.ly/docs/cli/ for more information.\n`;
26
29
 
27
30
  export const DEFAULT_REGION = 'us';
28
- const REDOCLY_DOMAIN = process.env.REDOCLY_DOMAIN;
29
- export const DOMAINS: { [region in Region]: string } = {
30
- us: 'redocly.com',
31
- eu: 'eu.redocly.com',
32
- };
33
-
34
- // FIXME: temporary fix for our lab environments
35
- if (REDOCLY_DOMAIN?.endsWith('.redocly.host')) {
36
- DOMAINS[REDOCLY_DOMAIN.split('.')[0] as Region] = REDOCLY_DOMAIN;
37
- }
38
- if (REDOCLY_DOMAIN === 'redoc.online') {
39
- DOMAINS[REDOCLY_DOMAIN as Region] = REDOCLY_DOMAIN;
31
+
32
+ function getDomains() {
33
+ const domains: { [region in Region]: string } = {
34
+ us: 'redocly.com',
35
+ eu: 'eu.redocly.com',
36
+ };
37
+
38
+ // FIXME: temporary fix for our lab environments
39
+ const domain = env.REDOCLY_DOMAIN;
40
+ if (domain?.endsWith('.redocly.host')) {
41
+ domains[domain.split('.')[0] as Region] = domain;
42
+ }
43
+ if (domain === 'redoc.online') {
44
+ domains[domain as Region] = domain;
45
+ }
46
+ return domains;
40
47
  }
48
+
49
+ export const DOMAINS = getDomains();
41
50
  export const AVAILABLE_REGIONS = Object.keys(DOMAINS) as Region[];
42
51
 
43
52
  export class LintConfig {
@@ -14,6 +14,7 @@ const coreVersion = require('../../package.json').version;
14
14
 
15
15
  import { NormalizedProblem, ProblemSeverity, LineColLocationObject, LocationObject } from '../walk';
16
16
  import { getCodeframe, getLineColLocation } from './codeframes';
17
+ import { env } from "../config";
17
18
 
18
19
  export type Totals = {
19
20
  errors: number;
@@ -202,7 +203,7 @@ export function formatProblems(
202
203
  : undefined,
203
204
  };
204
205
 
205
- if (process.env.FORMAT_JSON_WITH_CODEFRAMES) {
206
+ if (env.FORMAT_JSON_WITH_CODEFRAMES) {
206
207
  const location = p.location[0]; // TODO: support multiple locations
207
208
  const loc = getLineColLocation(location);
208
209
  (problem as any).codeframe = getCodeframe(loc, color);
@@ -1,9 +1,9 @@
1
1
  import { existsSync, readFileSync, writeFileSync, unlinkSync } from 'fs';
2
2
  import { resolve } from 'path';
3
3
  import { homedir } from 'os';
4
- import { red, green, gray, yellow } from 'colorette';
4
+ import { green } from 'colorette';
5
5
  import { RegistryApi } from './registry-api';
6
- import { DEFAULT_REGION, DOMAINS, AVAILABLE_REGIONS } from '../config/config';
6
+ import { DEFAULT_REGION, DOMAINS, AVAILABLE_REGIONS, env } from '../config/config';
7
7
  import { RegionalToken, RegionalTokenWithValidity } from './redocly-client-types';
8
8
  import { isNotEmptyObject } from '../utils';
9
9
 
@@ -11,7 +11,6 @@ import type { AccessTokens, Region } from '../config/types';
11
11
 
12
12
  const TOKEN_FILENAME = '.redocly-config.json';
13
13
 
14
- let REDOCLY_DOMAIN: string; // workaround for the isRedoclyRegistryURL, see more below
15
14
  export class RedoclyClient {
16
15
  private accessTokens: AccessTokens = {};
17
16
  private region: Region;
@@ -21,31 +20,20 @@ export class RedoclyClient {
21
20
  constructor(region?: Region) {
22
21
  this.region = this.loadRegion(region);
23
22
  this.loadTokens();
24
- this.domain = region ? DOMAINS[region] : process.env.REDOCLY_DOMAIN || DOMAINS[DEFAULT_REGION];
23
+ this.domain = region ? DOMAINS[region] : env.REDOCLY_DOMAIN || DOMAINS[DEFAULT_REGION];
25
24
 
26
- /*
27
- * We can't use process.env here because it is replaced by a const in some client-side bundles,
28
- * which breaks assignment.
29
- */
30
- REDOCLY_DOMAIN = this.domain; // isRedoclyRegistryURL depends on the value to be set
25
+ env.REDOCLY_DOMAIN = this.domain; // isRedoclyRegistryURL depends on the value to be set
31
26
  this.registryApi = new RegistryApi(this.accessTokens, this.region);
32
27
  }
33
28
 
34
29
  loadRegion(region?: Region) {
35
30
  if (region && !DOMAINS[region]) {
36
- process.stdout.write(
37
- red(
38
- `Invalid argument: region in config file.\nGiven: ${green(
39
- region,
40
- )}, choices: "us", "eu".\n`,
41
- ),
42
- );
43
- process.exit(1);
31
+ throw new Error(`Invalid argument: region in config file.\nGiven: ${green(region)}, choices: "us", "eu".`);
44
32
  }
45
33
 
46
- if (process.env.REDOCLY_DOMAIN) {
34
+ if (env.REDOCLY_DOMAIN) {
47
35
  return (AVAILABLE_REGIONS.find(
48
- (region) => DOMAINS[region as Region] === process.env.REDOCLY_DOMAIN,
36
+ (region) => DOMAINS[region as Region] === env.REDOCLY_DOMAIN,
49
37
  ) || DEFAULT_REGION) as Region;
50
38
  }
51
39
  return region || DEFAULT_REGION;
@@ -65,18 +53,7 @@ export class RedoclyClient {
65
53
  }
66
54
 
67
55
  async getAuthorizationHeader(): Promise<string | undefined> {
68
- const token = this.accessTokens[this.region];
69
- // print this only if there is token but invalid
70
- if (token && !this.isAuthorizedWithRedoclyByRegion()) {
71
- process.stderr.write(
72
- `${yellow(
73
- 'Warning:',
74
- )} invalid Redocly API key. Use "npx @redocly/cli login" to provide your API key\n`,
75
- );
76
- return undefined;
77
- }
78
-
79
- return token;
56
+ return this.accessTokens[this.region];
80
57
  }
81
58
  // </backward compatibility: portal>
82
59
 
@@ -96,10 +73,10 @@ export class RedoclyClient {
96
73
  }),
97
74
  });
98
75
  }
99
- if (process.env.REDOCLY_AUTHORIZATION) {
76
+ if (env.REDOCLY_AUTHORIZATION) {
100
77
  this.setAccessTokens({
101
78
  ...this.accessTokens,
102
- [this.region]: process.env.REDOCLY_AUTHORIZATION,
79
+ [this.region]: env.REDOCLY_AUTHORIZATION,
103
80
  });
104
81
  }
105
82
  }
@@ -164,15 +141,11 @@ export class RedoclyClient {
164
141
 
165
142
  async login(accessToken: string, verbose: boolean = false) {
166
143
  const credentialsPath = resolve(homedir(), TOKEN_FILENAME);
167
- process.stdout.write(gray('\n Logging in...\n'));
168
144
 
169
145
  try {
170
146
  await this.verifyToken(accessToken, this.region, verbose);
171
147
  } catch (err) {
172
- process.stdout.write(
173
- red('Authorization failed. Please check if you entered a valid API key.\n'),
174
- );
175
- process.exit(1);
148
+ throw new Error('Authorization failed. Please check if you entered a valid API key.');
176
149
  }
177
150
 
178
151
  const credentials = {
@@ -183,7 +156,6 @@ export class RedoclyClient {
183
156
  this.accessTokens = credentials;
184
157
  this.registryApi.setAccessTokens(credentials);
185
158
  writeFileSync(credentialsPath, JSON.stringify(credentials, null, 2));
186
- process.stdout.write(green(' Authorization confirmed. ✅\n\n'));
187
159
  }
188
160
 
189
161
  logout(): void {
@@ -191,12 +163,11 @@ export class RedoclyClient {
191
163
  if (existsSync(credentialsPath)) {
192
164
  unlinkSync(credentialsPath);
193
165
  }
194
- process.stdout.write('Logged out from the Redocly account. ✋\n');
195
166
  }
196
167
  }
197
168
 
198
169
  export function isRedoclyRegistryURL(link: string): boolean {
199
- const domain = REDOCLY_DOMAIN || process.env.REDOCLY_DOMAIN || DOMAINS[DEFAULT_REGION];
170
+ const domain = env.REDOCLY_DOMAIN || DOMAINS[DEFAULT_REGION];
200
171
 
201
172
  const legacyDomain = domain === 'redocly.com' ? 'redoc.ly' : domain;
202
173
 
@@ -16,6 +16,7 @@ export namespace RegistryApiTypes {
16
16
  filePaths: string[];
17
17
  branch?: string;
18
18
  isUpsert?: boolean;
19
+ isPublic?: boolean;
19
20
  }
20
21
 
21
22
  export interface PrepareFileuploadOKResponse {
@@ -104,6 +104,7 @@ export class RegistryApi {
104
104
  filePaths,
105
105
  branch,
106
106
  isUpsert,
107
+ isPublic,
107
108
  }: RegistryApiTypes.PushApiParams) {
108
109
  const response = await this.request(
109
110
  `/${organizationId}/${name}/${version}`,
@@ -118,6 +119,7 @@ export class RegistryApi {
118
119
  filePaths,
119
120
  branch,
120
121
  isUpsert,
122
+ isPublic,
121
123
  }),
122
124
  },
123
125
  this.region,
package/src/utils.ts CHANGED
@@ -5,6 +5,7 @@ import * as pluralize from 'pluralize';
5
5
  import { parseYaml } from './js-yaml';
6
6
  import { UserContext } from './walk';
7
7
  import type { HttpResolveConfig } from './config';
8
+ import { env } from "./config";
8
9
 
9
10
  export { parseYaml, stringifyYaml } from './js-yaml';
10
11
 
@@ -51,7 +52,7 @@ export async function readFileFromUrl(url: string, config: HttpResolveConfig) {
51
52
  for (const header of config.headers) {
52
53
  if (match(url, header.matches)) {
53
54
  headers[header.name] =
54
- header.envVariable !== undefined ? process.env[header.envVariable] || '' : header.value;
55
+ header.envVariable !== undefined ? env[header.envVariable] || '' : header.value;
55
56
  }
56
57
  }
57
58
 
@@ -66,7 +67,7 @@ export async function readFileFromUrl(url: string, config: HttpResolveConfig) {
66
67
  return { body: await req.text(), mimeType: req.headers.get('content-type') };
67
68
  }
68
69
 
69
- export function match(url: string, pattern: string) {
70
+ function match(url: string, pattern: string) {
70
71
  if (!pattern.match(/^https?:\/\//)) {
71
72
  // if pattern doesn't specify protocol directly, do not match against it
72
73
  url = url.replace(/^https?:\/\//, '');
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.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.esnext.intl.d.ts","../../node_modules/@types/lodash/common/common.d.ts","../../node_modules/@types/lodash/common/array.d.ts","../../node_modules/@types/lodash/common/collection.d.ts","../../node_modules/@types/lodash/common/date.d.ts","../../node_modules/@types/lodash/common/function.d.ts","../../node_modules/@types/lodash/common/lang.d.ts","../../node_modules/@types/lodash/common/math.d.ts","../../node_modules/@types/lodash/common/number.d.ts","../../node_modules/@types/lodash/common/object.d.ts","../../node_modules/@types/lodash/common/seq.d.ts","../../node_modules/@types/lodash/common/string.d.ts","../../node_modules/@types/lodash/common/util.d.ts","../../node_modules/@types/lodash/index.d.ts","../../node_modules/@types/lodash.isequal/index.d.ts","./src/typings/openapi.ts","./src/ref-utils.ts","../../node_modules/yaml-ast-parser/dist/src/mark.d.ts","../../node_modules/yaml-ast-parser/dist/src/exception.d.ts","../../node_modules/yaml-ast-parser/dist/src/yamlAST.d.ts","../../node_modules/yaml-ast-parser/dist/src/loader.d.ts","../../node_modules/yaml-ast-parser/dist/src/dumper.d.ts","../../node_modules/yaml-ast-parser/dist/src/scalarInference.d.ts","../../node_modules/yaml-ast-parser/dist/src/index.d.ts","./src/types/index.ts","../../node_modules/@types/minimatch/index.d.ts","./node_modules/@types/node/assert.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/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/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/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/globals.global.d.ts","./node_modules/@types/node/index.d.ts","../../node_modules/form-data/index.d.ts","../../node_modules/@types/node-fetch/externals.d.ts","../../node_modules/@types/node-fetch/index.d.ts","../../node_modules/@types/pluralize/index.d.ts","../../node_modules/@types/js-yaml/index.d.ts","./src/js-yaml/index.ts","./src/typings/swagger.ts","./src/visitors.ts","./src/oas-types.ts","./src/walk.ts","./src/config/types.ts","../../node_modules/colorette/index.d.ts","./src/config/utils.ts","./src/config/config.ts","./src/config/rules.ts","./src/config/recommended.ts","./src/config/all.ts","./src/config/minimal.ts","../../node_modules/@types/js-levenshtein/index.d.ts","../../node_modules/@redocly/ajv/dist/compile/codegen/code.d.ts","../../node_modules/@redocly/ajv/dist/compile/codegen/scope.d.ts","../../node_modules/@redocly/ajv/dist/compile/codegen/index.d.ts","../../node_modules/@redocly/ajv/dist/compile/rules.d.ts","../../node_modules/@redocly/ajv/dist/compile/util.d.ts","../../node_modules/@redocly/ajv/dist/compile/validate/subschema.d.ts","../../node_modules/@redocly/ajv/dist/compile/errors.d.ts","../../node_modules/@redocly/ajv/dist/compile/validate/index.d.ts","../../node_modules/@redocly/ajv/dist/compile/validate/dataType.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/additionalItems.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/items2020.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/contains.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/dependencies.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/propertyNames.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/additionalProperties.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/not.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/anyOf.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/oneOf.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/if.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/index.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/validation/limitNumber.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/validation/multipleOf.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/validation/pattern.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/validation/required.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/validation/uniqueItems.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/validation/const.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/validation/enum.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/validation/index.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/format/format.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/unevaluated/unevaluatedItems.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/validation/dependentRequired.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/discriminator/types.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/discriminator/index.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/errors.d.ts","../../node_modules/@redocly/ajv/dist/types/json-schema.d.ts","../../node_modules/@redocly/ajv/dist/types/jtd-schema.d.ts","../../node_modules/@redocly/ajv/dist/runtime/validation_error.d.ts","../../node_modules/@redocly/ajv/dist/compile/ref_error.d.ts","../../node_modules/@redocly/ajv/dist/core.d.ts","../../node_modules/uri-js/dist/es5/uri.all.d.ts","../../node_modules/@redocly/ajv/dist/compile/resolve.d.ts","../../node_modules/@redocly/ajv/dist/compile/index.d.ts","../../node_modules/@redocly/ajv/dist/types/index.d.ts","../../node_modules/@redocly/ajv/dist/ajv.d.ts","./src/rules/ajv.ts","./src/rules/utils.ts","./src/rules/common/spec.ts","./src/rules/common/operation-2xx-response.ts","./src/rules/common/operation-4xx-response.ts","./src/rules/common/assertions/utils.ts","./src/rules/common/assertions/asserts.ts","./src/rules/common/assertions/index.ts","./src/rules/common/operation-operationId-unique.ts","./src/rules/common/operation-parameters-unique.ts","./src/rules/common/path-params-defined.ts","./src/rules/common/operation-tag-defined.ts","./src/rules/oas3/no-example-value-and-externalValue.ts","./src/rules/common/no-enum-type-mismatch.ts","./src/rules/common/no-path-trailing-slash.ts","./src/rules/common/path-declaration-must-exist.ts","./src/rules/common/operation-operationId-url-safe.ts","./src/rules/common/tags-alphabetical.ts","./src/rules/oas3/no-server-example.com.ts","./src/rules/oas3/no-server-trailing-slash.ts","./src/rules/common/info-description.ts","./src/rules/common/tag-description.ts","./src/rules/common/info-contact.ts","./src/rules/common/info-license-url.ts","./src/rules/common/operation-description.ts","./src/rules/oas3/no-unused-components.ts","./src/rules/common/path-not-include-query.ts","./src/rules/common/parameter-description.ts","./src/rules/common/operation-singular-tag.ts","./src/rules/common/license-url.ts","./src/rules/common/operation-security-defined.ts","./src/rules/no-unresolved-refs.ts","./src/rules/oas3/boolean-parameter-prefixes.ts","./src/rules/common/paths-kebab-case.ts","./src/rules/common/path-http-verbs-order.ts","./src/rules/oas3/no-empty-servers.ts","./src/rules/oas3/no-invalid-media-type-examples.ts","./src/rules/common/no-identical-paths.ts","./src/rules/oas3/no-undefined-server-variable.ts","./src/rules/common/operation-operationId.ts","./src/rules/common/operation-summary.ts","./src/rules/common/no-ambiguous-paths.ts","./src/rules/oas3/no-servers-empty-enum.ts","./src/rules/common/no-http-verbs-in-paths.ts","./src/rules/oas3/request-mime-type.ts","./src/rules/oas3/response-mime-type.ts","./src/rules/common/path-segment-plural.ts","./src/rules/common/path-excludes-patterns.ts","./src/rules/common/no-invalid-schema-examples.ts","./src/rules/common/no-invalid-parameter-examples.ts","./src/rules/oas3/index.ts","./src/rules/oas2/boolean-parameter-prefixes.ts","./src/rules/oas2/request-mime-type.ts","./src/rules/oas2/response-mime-type.ts","./src/rules/oas2/index.ts","./src/redocly/registry-api-types.ts","./src/redocly/registry-api.ts","./src/redocly/redocly-client-types.ts","./src/redocly/index.ts","./src/decorators/common/registry-dependencies.ts","./src/decorators/common/operation-description-override.ts","./src/decorators/common/tag-description-override.ts","./src/decorators/common/info-description-override.ts","./src/decorators/common/remove-x-internal.ts","./src/decorators/oas3/index.ts","./src/decorators/oas2/index.ts","./src/config/builtIn.ts","./src/config/config-resolvers.ts","./src/config/load.ts","./src/config/index.ts","./src/utils.ts","./src/resolve.ts","./src/types/oas3.ts","./src/types/oas2.ts","./src/types/oas3_1.ts","./src/rules/oas2/remove-unused-components.ts","./src/rules/oas3/remove-unused-components.ts","./src/bundle.ts","./src/types/redocly-yaml.ts","./src/typings/common.ts","./src/rules/other/stats.ts","./src/format/codeframes.ts","./src/format/format.ts","./src/lint.ts","./src/index.ts","./src/benchmark/utils.ts","./src/benchmark/benches/lint-with-many-rules.bench.ts","./src/benchmark/benches/lint-with-nested-rule.bench.ts","./src/benchmark/benches/lint-with-no-rules.bench.ts","./src/benchmark/benches/lint-with-top-level-rule-report.bench.ts","./src/benchmark/benches/lint-with-top-level-rule.bench.ts","./src/benchmark/benches/recommended-oas3.bench.ts","./src/benchmark/benches/resolve-with-no-external.bench.ts","../../node_modules/@babel/types/lib/index.d.ts","../../node_modules/@types/babel__generator/index.d.ts","../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../node_modules/@types/babel__template/index.d.ts","../../node_modules/@types/babel__traverse/index.d.ts","../../node_modules/@types/babel__core/index.d.ts","../../node_modules/@types/glob/index.d.ts","../../node_modules/@types/graceful-fs/index.d.ts","../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../node_modules/@types/istanbul-lib-report/index.d.ts","../../node_modules/@types/istanbul-reports/index.d.ts","../../node_modules/jest-diff/build/cleanupSemantic.d.ts","../../node_modules/jest-diff/build/types.d.ts","../../node_modules/jest-diff/build/diffLines.d.ts","../../node_modules/jest-diff/build/printDiffs.d.ts","../../node_modules/jest-diff/build/index.d.ts","../../node_modules/pretty-format/build/types.d.ts","../../node_modules/pretty-format/build/index.d.ts","../../node_modules/@types/jest/index.d.ts","../../node_modules/@types/json-schema/index.d.ts","../../node_modules/@types/normalize-package-data/index.d.ts","../../node_modules/@types/prettier/index.d.ts","../../node_modules/@types/stack-utils/index.d.ts","../../node_modules/@types/yargs-parser/index.d.ts","../../node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"ac3a8c4040e183ce38da69d23b96939112457d1936198e6542672b7963cf0fce","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940",{"version":"cce43d02223f8049864f8568bed322c39424013275cd3bcc3f51492d8b546cb3","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"8dff1b4c2df638fcd976cbb0e636f23ab5968e836cd45084cc31d47d1ab19c49","affectsGlobalScope":true},{"version":"2bb4b3927299434052b37851a47bf5c39764f2ba88a888a107b32262e9292b7c","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"8f4c9f651c8294a2eb1cbd12581fe25bfb901ab1d474bb93cd38c7e2f4be7a30","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":"df9c8a72ca8b0ed62f5470b41208a0587f0f73f0a7db28e5a1272cf92537518e","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"93544ca2f26a48716c1b6c5091842cad63129daac422dfa4bc52460465f22bb1","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"60761e6ea886034af0f294f025a7199360ce4e2c8ba4ec6408bc049cf9b89799","affectsGlobalScope":true},{"version":"7435b75fdf3509622e79622dbe5091cf4b09688410ee2034e4fc17d0c99d0862","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"9f1817f7c3f02f6d56e0f403b927e90bb133f371dcebc36fa7d6d208ef6899da","affectsGlobalScope":true},{"version":"506b80b9951c9381dc5f11897b31fca5e2a65731d96ddefa19687fbc26b23c6e","affectsGlobalScope":true},"675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","fe4a2042d087990ebfc7dc0142d5aaf5a152e4baea86b45f283f103ec1e871ea","d70c026dd2eeaa974f430ea229230a1897fdb897dc74659deebe2afd4feeb08f","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","febf0b2de54781102b00f61653b21377390a048fbf5262718c91860d11ff34a6","ca59fe42b81228a317812e95a2e72ccc8c7f1911b5f0c2a032adf41a0161ec5d","9364c7566b0be2f7b70ff5285eb34686f83ccb01bda529b82d23b2a844653bfb","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","ae9930989ed57478eb03b9b80ad3efa7a3eacdfeff0f78ecf7894c4963a64f93","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3e59f00ab03c33717b3130066d4debb272da90eeded4935ff0604c2bc25a5cae","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9",{"version":"0714e2046df66c0e93c3330d30dbc0565b3e8cd3ee302cf99e4ede6220e5fec8","affectsGlobalScope":true},"5e099389ceec44681b37d10470755cdc6d9f516851e53c731c6e7e17b39ad86f","c99ccf1145f336a70177cb4655172c6a8a86779984a2e3f8894a1d331f7eec56","3ada6f9d6c49371ed4ca7626c67772b4fa0d6226243d6275ccc57f34df9962b4","8d1539367a9f5a03698f4c37111251eb76433ea8fcb5f1e546571b8513cac822","9ad71085f8ab35282a341995f85c6e06a19e6d5ab73b39f634b444ce8742a664","ee94d8f60c253d9994559ad325e9cb8a7af6bd36176884cb869ee5a40daa766c","606de01a4212a48518a219585f673504d3c0c26b361706006038a71bf8b9f42c","76de776e227ad01b703ce076b32177da31a765d5b5a681d5bb4c4e0f4876840f","aa4c984c8f2919742d06f305b1870bf180275cbe015490451a6374e6f6b9998a","46b9cdcd62e90f604876c143481ac7ff2c89cdfb902179bda0d8ee44c0695beb","dca2fb51846d6762a125b3fd4167be9c7ebef2cb116e34466878f59aabc631f5","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","4c2c4f53e8eedd970f8afa369d7371544fb6231bf95e659f8602e09abe74d5a5",{"version":"e71aa3dcef67c4e22d57a8ff085806b986818c27d515a6c548547dbb06153c01","affectsGlobalScope":true},"64e2803203b14d7f104f570f2152fde13abb6edc17b2ddb33d81ad86cf43d494","3143a5add0467b83150961ecd33773b561a1207aec727002aa1d70333068eb1b","9b2a8f604e7c0482a9061755f00b287cc99bd8718dc82d8207dd74c599b6dc43","d0fc76a91c828fbe3f0be5d683273634b7b101068333ceed975a8a9ac464137b",{"version":"1a048ff164b8d9609f5de3139d4e37f6e8a82af82087ac414b9208f52ef8aac7","affectsGlobalScope":true},"3111079f3cb5f2b9c812ca3f46161562bce5bfb355e915f46ed46c41714dc1c3","64576aba4ff801004122056ccd049f0597aa471dcfd7670a6a0b877ee8dd97c0","b32b6b16cb0bda68199582ad6f22242d07ee75fac9b1f28a98cd838afc5eea45","4441ee4119824bfaebc49308559edd7545978f9cb41a40f115074e1031dde75f",{"version":"60693a88462d0e97900123b5bf7c73e146ce0cc94da46a61fe6775b430d2ff05","affectsGlobalScope":true},{"version":"588c69eda58b9202676ec7ca11a72c3762819b46a0ed72462c769846153c447c","affectsGlobalScope":true},"cc829932ffaf5c49092f878bec18af1fa5d8591b45a45e2b7f757f793cb3b4ed","47db10fdc4e76c4f4598cf7c91ba6bfde6cf6d8082c51860fe751643bf359739","53d2c24a3cbc00a88ebaf8ab8e1b6e206bc3a6647d544f877241684ea3d484e3","3be5ff21956db30c674bf2a98eb348e4ce7b4635cd9673413d86fbce761b77d8","0ce99c641ea20b0c0c09d093fc28f18f5ab31dc80033707a1ac3154399de2559","f0c33a0b325d3499cc9aded7d32886f998c9a27b465097c6cc136944d0aafdaa","44e42ed6ec9c4451ebe89524e80ac8564e9dd0988c56e6c58f393c810730595d","d4a0c39ece1e7c99d701e9c02a7dde8e3b75e03405f78d58d48dfea797ddbbac","1606ea615c0a5ea9f5c1376a33e34c0e1112e8dee31a5b3b8a74ce781893aa6f","9fef9de633d01cb7f01f68195626a890ededd25cf96a1e785617d08c8668230d","4455c78d226d061b1203c7614c6c6eb5f4f9db5f00d44ff47d0112de8766fbc4",{"version":"ec369bb9d97c4dc09dd2a4093b7ca3ba69ad284831fccac8a1977785e9e38ce5","affectsGlobalScope":true},"4465a636f5f6e9665a90e30691862c9e0a3ac2edc0e66296704f10865e924f2a","9af781f03d44f5635ed7844be0ce370d9d595d4b4ec67cad88f0fac03255257e","f9fd4c3ef6de27fa0e256f4e75b61711c4be05a3399f7714621d3edc832e36b0","e49290b7a927995c0d7e6b2b9c8296284b68a9036d9966531de65185269258d7","c3689f70ce7563c2299f2dcb3c72efdf6f87ae510e7456fa6223c767d0ca99fc","874ca809b79276460011480a2829f4c8d4db29416dd411f71efbf8f497f0ac09","82e1723b20fa0b15a7da0d1a03fec88348f82f640f7a2f308d6c0fac780cfc7c","605c24042a348b033b30121cff64380eb5d6d82853c5608f1f94ef72385cf5c9","23a28f834a078986bbf58f4e3705956983ff81c3c2493f3db3e5f0e8a9507779","4febdf7f3ec92706c58e0b4e8159cd6de718284ef384260b07c9641c13fc70ce",{"version":"eabefc2999c1489cf870e0c85af908900462fa245822d9a4616780a1a129945d","affectsGlobalScope":true},"7335933d9f30dcfd2c4b6080a8b78e81912a7fcefb1dafccb67ca4cb4b3ac23d","a6bfe9de9adef749010c118104b071d14943802ff0614732b47ce4f1c3e383cd","4c3d0e10396646db4a1e917fb852077ee77ae62e512913bef9cccc2bb0f8bd0e","3b220849d58140dcc6718f5b52dcd29fdb79c45bc28f561cbd29eb1cac6cce13","0ee22fce41f7417a24c808d266e91b850629113c104713a35854393d55994beb","22d1b1d965baba05766613e2e6c753bb005d4386c448cafd72c309ba689e8c24",{"version":"2708349d5a11a5c2e5f3a0765259ebe7ee00cdcc8161cb9990cb4910328442a1","affectsGlobalScope":true},"79d679a1d56574cc5cef92be1f0e5e8fb4af62fb55933b236670a0e0a23c83f6","736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","208bb742e0f201470da121bc73847c74b62cff4172f38ae5949ae77d6c9c6b71","3663d1b50f356656a314e5df169bb51cb9d5fd75905fa703f75db6bb32030568","8f7a2387ecc680872d09a6edbca1612d699f77ee5a5129944935c3798a613d04","686e548ae30250d62532c8cacb43fccc922b693408371bd3503563c4a0f28eed","2db54ff4e7dba1e1416933fc428ffe20afbaafaa26aa6e94e5ba88c078a95268","c62a5738b30ab17e469944db2edb198074bd90896226026f29ddc5a931a04f56","d121cf8634c1d08261c8ca0e9511b7334303765e16b5afc3e4a42be3e9f83642","03a128cfb85c06ad01a4f7467346e0ae6c801ee6d5939907466d02e512761789","5a0afcace824ec5c6805d00f4f73b8021a38ea4e3df448e3752ae50663ccada7","69638b14337d38205b64286cb36ff50f3d59d4bc3ffd55d3d08c79523a08cbeb","a456dd94a596de621bd25cf3c91278101ea62782c3ac4435aef9190a2336ddde","2ae70124ee363ac96678fc386ae72fbb6260b31fcf827a01fb2066343a7d9f94","f55184066076538787a22aa79d719db487d4a0f7d64edac80642be48f0e5f344","be01294e828639eda88fc2fe43f1652d91668327b0992dd6ebc38ad4b648dea1","74ca7857fbe11ad1d1b2c872c7b94b85f539b07b58727cf9a5899b92d4253a93","9cc5d66c2640b1d2e19b456099865ab4d2c6f6f80e5d099799b23d2c6be2b938","ca27edf165c0e266bd36498ff16683fc80baaedadc808eac2ad29ea03aa039e9","21bb8dda75eb025927e9d62d8fa619e349ebc5ba0b8b9dddd8fdfc9ff058e2b8","e6ada7804df8cd574c66660fdc6abc584a31692293636d1626573e476699bcf0","60bb0e47502bf8716d1230288b4e6387c1d34cded12752ab5338108e2e662e67","b8870b5155d11a273c75718a4f19026da49f91c548703858cd3400d06c3bd3b8","b3ae4ded82f27cabba780b9af9647f6e08c9a4cabe8fbb7a0cca69c7add9ef4b","8d26ae32e5c9c080e44aee4a67e5ef02b5fda0604e6fecbb7b753c537e5282d9","05c4e792dae38912ba333725cdf8c42d242337d006c0d887f4ce5a7787871a95","cd44995ee13d5d23df17a10213fed7b483fabfd5ea08f267ab52c07ce0b6b4da","1490dc5531e1d5efb8a52d1b3d946c572e270836f0f1490cfadf8fcf87a6b4a4","1a23b521db8d7ec9e2b96c6fbd4c7e96d12f408b1e03661b3b9f7da7291103e6","d3d0d11d30c9878ada3356b9c36a2754b8c7b6204a41c86bfb1488c08ce263b0","a6493f1f479637ed89a3ebec03f6dc117e3b1851d7e938ac4c8501396b8639a8","ae0951e44973e928fe2e999b11960493835d094b16adac0b085a79cff181bcb9","9d00e3a59eff68fa8c40e89953083eeaad1c5b2580ed7da2304424b249ecb237","1609ad4d488c356ee91eba7d7aa87cc6fb59bc8ac05c1a8f08665285ba3b71ad","8add088f72326098d68d622ddb024c00ae56a912383efe96b03f0481db88f7c9","dd17fe6332567b8f13e33dd3ff8926553cdcea2ad32d4350ce0063a2addaa764","4091d56a4622480549350b8811ec64c7826cd41a70ce5d9c1cc20384bb144049","353c0125b9e50c2a71e18394d46be5ccb37161cc0f0e7c69216aa6932c8cdafb","9c5d5f167e86b6ddf7142559a17d13fd39c34e868ae947c40381db866eed6609","4430dea494b0ee77bf823d9a7c4850a539e1060d5d865316bb23fb393e4f01d7","aae698ceead4edad0695b9ea87e43f274e698bdb302c8cb5fd2cab4dc496ccf0","51631e9a0c041e12479ab01f5801d8a237327d19e9ee37d5f1f66be912631425","c9d5d8adb1455f49182751ce885745dcc5f9697e9c260388bc3ae9d1860d5d10","f64289e3fa8d5719eaf5ba1bb02dd32dbbf7c603dda75c16770a6bc6e9c6b6d9","b1aa0e2e3511a8d10990f35866405c64c9e576258ef99eeb9ebafed980fd7506","2d255a5287f2fb5295688cb25bd18e1cd59866179f795f3f1fd6b71b7f0edf8f","43c1dbb78d5277a5fdd8fddce8b257f84ffa2b4253f58b95c04a310710d19e97","6c669d7e080344c1574aa276a89e57c3b9f0e97fab96a09427e7dfb19ca261bf","b71ac126853867d8e64c910f47d46d05c5ea797987d2604f63d401507dc43b6d","9a37238558d28b7ee06d08599e92eab30b90704541cc85e6448009d6d55fffa9","120b14d66a061910309ff97e7b06b5c6c09444218178b80b687a92af4d22d5dc","3de958065e3a44cbe0bfa667813bc59c63e63c9ce522af8dc1b64714910fa9ba","66e655f7c43558bae6703242cbd6c0551a94d0a97204bd4c4bbf7e77f24d1f85","72f7b32e023814078046c036ed4b7ad92414be0aebb63e805c682e14103ae38a","a89d8e67966d085ff971c9900cfa1abdd9732bab66d9c1914ecc15befdf8623d","396ce3137bb6388b71bbd7d88071c71c9b3333cd20cd04bf6a40cd6ee88c531d","2887a41f8373ff8443ac2bb9d898b398687621830465643ad131ad1a43e2678e","cde493e09daad4bb29922fe633f760be9f0e8e2f39cdca999cce3b8690b5e13a","18cc75193738e5c88f89facc31481024911f04da53bb3294930ecacd112a8f6e","f4eeac349468d231cc2968dac0cb744b2fd834010c6c1860e9fa2a8713907941","9f3c5498245c38c9016a369795ec5ef1768d09db63643c8dba9656e5ab294825","8f35095ce6914b0e95d563adae6f2546dddd8f85c4034d9050530076d860b5b8","b34bf09a55a5049f1f741a32360633f7569447f193b02e7b9a428ef8bc7fb9fe","ba1f5ad0e2df2c17351247ef47d8819713be50a1b7ad0520b15c6070d280b15b","821e64ddbdfa10fac5f0aed1c1d4e1f275840400caa96357ddfd15d02e5afba1","3c4aa4e4602f5c746b6fb2d7934ca15f6cfb9eee48190a9eb103a885433efc95","9e6254e0052d28c4d98fa6a48c340c5602d16b1e0fe1b8ba4623f4afb10deb34","5f11171b66470ac9766ad0a795a2103262df7a733163b5b14c3d34eab161174f","cc9f0665f4555a6f818dcaf79de44ff3f9e93211458548dd6260506e27b38025","a0be06b87b35dfe34748f797a7644f41fe0d00720907b4d93233bdb04f248f42","a45d096625222369503c81484e5822e3ea502a1e31fbf4bbebca1d1c318644ce","6c1a6463d91d13bdb4c84d58393ff52a1483f91c326efd5e181fcf7c1025ee7e","82450757f2c3d76f7f1d1864fab8022f3aadf8fe428adaf834e39b64bb351e4a","e8b5d684b18772f93fd7ac85652a9dd8c3c4ac42d255ebc676ddd75d213a60eb","ebdf0fc327828cf8e59bcaec0b03a1f65dd5f5b4849636405b43e71fbdd014d4","88a90a39fde5c1d8021d1a1a9fd351018f3fad88beeb38881f06cbfaaa6b06fe","6e3a3b59f2b4ebf3c4ca906f7f56d3d53f707eda7ed10be0863029d814b51583","329318845916f35128387bb291f2f252ccc80fe968ae6f6ee7a7bd644b9af509","1d2e0aa962881cb1ee3f648d98c6e33b0c14e9c1a37f1fe15298c1b619c56d55","8e8d8e11136d8c5a59360e90455356a41c8006129f7e459fbbf8a4551379f23a","a959db7039a615c94a9c236d0664463fd8fcc7c08e68c01bd7de4b49116c2b2c","3144d082b0efd80551c4b9ff1dd29ba6b0f0bb0709d481ed5285313e0845ee36","a9319c8e234166988f24be3a12d8845a5d43f34d31f72621ca311384ee7a56ae","37106a318a9b70352fc7fb06ed9a31c218342402f194355ad7c3e83c226b8b84","8d6b668236eb00f3942aa43d87ad361448b34ad335446fb9f4915ee612c1c372","232fe9b0f859a921132d464999ff9d2f979e29636dfd2225989e638a43bc5630","679f01be7caf9e091684d1f0fdabc8837991ed589a4c2617c72799c4aed0b60e","a3f88fc187a30877572d86ca78bfbad1ce1f7f081a13f4a1a3de12fc19172763","2b4e1f7c647e05af840b8a7f9444481b6dd3fff0dffd57ee765ab9507365ee5f","099e32d949572f34338bcc5a9bf84b09966b5b347b0462154eaf1679968ff74e","b72ac783938f2f9522af3694262d6112b061c0fa2b8c4c5df226efd0550fcba9","efcf6bd086be2f68fc73f04109ce82b5d64b1a4b01606ecb28de046b8bafeb97","576815ad63894f88f18c36c239e23562b35033e0dab57ff665dc0410db4a8b54","d23b6230c10ffb27b8cec7f0aef6443f8736620ce07bf7a991efb02e0f599d42","53e922fc5556e9825e10ebc780ea40088404abb4f1a76251bb5fac18eb20fc93","cb2796cb7a19f4a50dea47a54885c072578c08efdf3c0f1f3f766c9c4d5b414f","02b41251895e409555bc5688231b8c9801cf817b614bd7fa45c60b6ab5a415a4","d0b2d3ab2b3934d5ea2d1ca2973fce9c031bec115c37e437b32bad32c0d79196","16d27f5fcf14a7fe4861a459c1ed641b99e687d8e11fbd24b5445a7e84782ca9","8434dc2a1f866e713703e6d8ccc85168d92c07049138a3f2895e63f1b0d0ff8a","a15843ee7cbcaeea821a6b0557839f1e91edbf7bfd81df55bd9ca884aa4aac58","5e6ba9dd85bfc644b768acbd5cc457299b8f94b776a3ce920cd48f2081731490","d83f1778cc95256ae503c326ea6804cffef5e5d6310e0d8b8dc56a2107abc7ae","fd1531c043404c41a9554cc39c1af2738f53edc508e450a17c246f3c5e881889","9688010a836de8a1927fb20f325179c6ae3ee66a64a1d0e5c414b15502652359","56d135e85dcc15aa982d8ca85f8021859447db147c51123e3811b3a48cb7d90b","6c8a91aa5b37b93dbf757bd99da7befc145884a94dcfb5a74043b1df4d70bfec","a3515918d4a0b9f14b3fa2ce25e2468994f31a492107a6be31c7c19ac03b28f9","6779e161b87b79684bbcf4514e8e2372d87d066930be098425539b64cf47351f","84af506cbec2a4666b02c573f601dad8d43fa7582bc4a675278b0d905ca9a851","df41f874a075a75dd3148c5a2e2980c7e7aff23f33212c2427e20c763501fed1","bc7711d24df78e5dbedb9b206cdc72e1880a757328bd5e094b582dcf572bb273","63f0634d9c4ce2d509e81033b88f5a565c5151876300616dd07958b54f944b14","ba925453f1dab00f090cca9264730784d7196d4a1c8ad708a75835fb37300e02","98aa50be1cb83f917da7d8eeca7b67db47d4bd36dd6cda5e5ccc0f77dbfdd0e1","7d4517b0e8c26fadd415789b449750d5d27e5edcd3c0af6afc498946a576649d","41d545e5d36083f5bf6432c93dc2d3cb29ed4f8deae03b9dec59c55e02fbe597","0b4cc0ce5b20bc61ab6191013d258d109c9c8c6bb973368bb9ec57fce8b5ff97","9814894f88bc9283fa344d1a075913da647a36a7aa5f6d3080ce5df057d2b2d3","04b3349e0ccdf1b3fc382a05d4c133b1478644a39eee4f0293349abc7b6bb3ff","42bb71ccad0112599ed71989601785c4cb629e7835a7e4555a253cc93e89cead","5ee8900af9a363a0d8b185a390c248dfe72338c7e9f15a8fed15176441dc2dd8","a3443a2339b42c762d7980f11195fe1bede24f567d3052700cf62ea89c465588","9e0e828555bd89bd1f6726cbef3bc8152a65ada20e13974bcf06dffc1034fccf","19e6bf4146329b9217fa9de9706d67af25ed9dfdeb4f313793121d753894d95a","08f208c5084dc2ee9e2f78efba4c995d912e171fce3fb30c4c55c4f138751212","56aa78b45d55e0a7f63116bd779556e830c01b8d0da654cc562ff541fb38717d","74d5487b667f1e2507d0ba90f8e9c71ccb8e8650566cacebeb08c83e51e8a6aa","5ab2d27597934f3f7144ad849121bc16d2fb0f5be488bd1ccef0bd892cdbb687","58711001f6b96d2567f5ba7cd255729663ac4552487a2183a6159c66fe9e2897","5846b3f59e2b0248fe8a8dbb28b502ac64ffaa9a750d5ad612ec4b85d4f28495","985953793d00385c69caf80d12e7d6e9b8441a67be290b46e182eaac1cd11e50","069e2b49394ab344a4b910a0407dd4058db2b017ae0e0228aaf73e98f299372c","f91daa24afe00118956f8a1e7a878f20b5d0ab95a4c478f3b906bc26b3ecd51e","88dc0dcab75df96583b348f379c7aec6712561d17d8ce208d36ab492b23ae46d","291210f1bdb11d3fb88d23520cca09f3aadb155685c18b07c6886e674c9708d8","e076472d7de02dde8fcb1a8113fa302848e08ae8456e69fe431cd70eec2bec80","8032905ea2cac66490c70de60dfe3569271fe6c17ddbb12643bd0cf625505668","9c017363a95a8db94c2598fb498a511d5c11e726f5c30cf6c2bebbec99e1b8d2","be666ecd3e96945d7c7d148eafb02274872fe2a7fbe26349f240c3aaede1d0f8","fb9c85c29ae353587e86958aee9480720247bef0bfd78aec4166d12e8e6d9676","1903793378099010b4a1787b3bd6a6a7cd39fa5aab3fac96faaaa5c95619a401","d46b6dddc552e35063977ab28a508afcae68ae2e3f7020c20efef76d4461c3fd","7c08d1d2e432fe7513cdfc7abbe79d5ca07ac9cfc63603535a579d16ddb76d76","c528dad690c73e4f587cc897041ab729e20dc627c58ec0c2da9019a4e58a6c45","63ccc5dc211f97f78e352388c770a23b652ef408a8b337450c8a0c6d41fe26ea","531346cf613bf65204723cfdb3140f9a961de6f494a0de60101ceb9e37dad6c7","48cecbb1b086b1078dc3df21d17b2767010cc49c4107cab6047d751ffbd38f56","1be417236207a06d05ad2646c38cf3523cb55e33c372d53ed411df71bc75f944","d896c9329633da84378461334512f0e7ae3100ad66202931d05af5a349186a5f","b8a9ebd6f52b63a4208721ab777a87492738492cc1f8a48228228c55f062c75a","0b304d474cf6ac7fc79a8115c724eb2c68cc0f36bc8649155cd8a65808042ee9","225591c9bda5ab3e0756bce43f4d5d35d6f673968dd82d30792d4c3c182e4a20","413d72d18cd0ce2bf60ec34eb68377c1924db6430b75c43d6b3fe818e99766f6","15f2bb8c8dbd4101c1ff26ffaef79d2b6ddfc79a8fd29bcaf2c9ac777549a333","b50bf43d558b33dd01fe7bd57b8b68c025db666561e893c9f1d3154a9a8d05cc","831d7e382e10da5c3373a5f0e8511dd354fecb78ee416df52a732acbb5ee0feb","41476c129af01db7691ce3fda6a8a581a9636980ba5f831f72554934a7b05911","2ff9995137f3e5d68971388ec58af0c79721626323884513f9f5e2e996ac1fdd","cc957354aa3c94c9961ebf46282cfde1e81d107fc5785a61f62c67f1dd3ac2eb","1a7cc144992d79b062c22ac0309c6624dbb0d49bbddff7ea3b9daa0c17bcac0a","93de1c6dab503f053efe8d304cb522bb3a89feab8c98f307a674a4fae04773e9","3b043cf9a81854a72963fdb57d1884fc4da1cf5be69b5e0a4c5b751e58cb6d88","5426e62886b7be7806312d31a00e8f7dccd6fe63ba9bbefe99ee2eab29cc48a3","fd326577c62145816fe1acc306c734c2396487f76719d3785d4e825b34540b33","3ebae8c00411116a66fca65b08228ea0cf0b72724701f9b854442100aab55aba","8b06ac3faeacb8484d84ddb44571d8f410697f98d7bfa86c0fda60373a9f5215","7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","d8aab31ba8e618cc3eea10b0945de81cb93b7e8150a013a482332263b9305322","69da61a7b5093dac77fa3bec8be95dcf9a74c95a0e9161edb98bb24e30e439d2","561eca7a381b96d6ccac6e4061e6d2ae53f5bc44203f3fd9f5b26864c32ae6e9","62ea38627e3ebab429f7616812a9394d327c2bc271003dfba985de9b4137369f","b4439890c168d646357928431100daac5cbdee1d345a34e6bf6eca9f3abe22bc","5d72971a459517c44c1379dab9ed248e87a61ba0a1e0f25c9d67e1e640cd9a09","02d734976af36f4273d930bea88b3e62adf6b078cf120c1c63d49aa8d8427c5c",{"version":"516a426e3960379f310107635b8f3a7e8c307c6c665080b128039d9299ec4087","affectsGlobalScope":true},"f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","6209c901f30cc321f4b86800d11fad3d67e73a3308f19946b1bc642af0280298","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","99bbadcf4153b61d79a2616b377da8f42a16fcb41d2136f1f6c2cf070b084216"],"options":{"composite":true,"declaration":true,"module":1,"noImplicitAny":true,"noImplicitReturns":true,"noImplicitThis":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./lib","rootDir":"./src","strictFunctionTypes":true,"strictNullChecks":true,"strictPropertyInitialization":true,"target":3},"fileIdsList":[[265],[129,130,134,161,162,166,169,170],[127,128],[127],[129,170],[129,130,166,168,170],[167,170,171],[170],[129,130,169,170],[129,130,132,133,169,170],[129,130,131,169,170],[129,130,134,161,162,163,164,165,169,170],[129,130,134,166,169],[134,170],[136,137,138,139,140,141,142,143,144,145,170],[159,170],[135,146,154,155,156,157,158,160],[139,170],[147,148,149,150,151,152,153,170],[265,266,267,268,269],[265,267],[63,76,77,107],[77,107],[273],[274],[280,282],[51],[39,41,42,43,44,45,46,47,48,49,50,51],[39,40,42,43,44,45,46,47,48,49,50,51],[40,41,42,43,44,45,46,47,48,49,50,51],[39,40,41,43,44,45,46,47,48,49,50,51],[39,40,41,42,44,45,46,47,48,49,50,51],[39,40,41,42,43,45,46,47,48,49,50,51],[39,40,41,42,43,44,46,47,48,49,50,51],[39,40,41,42,43,44,45,47,48,49,50,51],[39,40,41,42,43,44,45,46,48,49,50,51],[39,40,41,42,43,44,45,46,47,49,50,51],[39,40,41,42,43,44,45,46,47,48,50,51],[39,40,41,42,43,44,45,46,47,48,49,51],[39,40,41,42,43,44,45,46,47,48,49,50],[79,99,107,108,109],[288],[79,93,107],[276,277],[276,277,278,279],[281],[55],[56,57,58,59,60],[57],[56],[64],[66],[67,72],[68,76,77,84,93],[68,69,76,84],[70,100],[71,72,77,85],[72,93],[73,74,76,84],[74],[75,76],[76],[76,77,78,93,99],[77,78],[79,84,93,99],[76,77,79,80,84,93,96,99],[79,81,93,96,99],[64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106],[76,82],[83,99],[74,76,84,93],[85],[86],[66,87],[88,98],[89],[90],[76,91],[91,92,100,102],[76,93],[94],[95],[84,93,96],[97],[84,98],[90,99],[100],[93,101],[102],[103],[76,78,93,99,102,104],[93,105],[77,86,243,255,257],[77,86,241,243,255,257],[62,77,86,243,244,257],[113,116,118,241,243],[52,53,54,62,115,116,117,122,203,230,241,242,243,244,245,246,247,248],[118],[118,123,124,125,222,226,236,237],[54,86,118,119,120,121,238,242,243],[62,77,86,113,116,117,118,120,242],[118,120,121,122,238,239,240],[77,86,118,120,121,230,239,242],[116,121,242],[62,116,117],[118,119,121,242],[115,117,242],[53,114,115,117,242],[115,117,230],[54,115,117,242],[115,231,232,233,234,235],[54,61,117,119],[86,117,119,253],[53,54,62,113,114,115,116,117,230,241,242,243,244,245,246,249,250,251,252,253,254,255],[112],[62,115,116,117,172,174,241,243,244,245,246,250],[115],[77,85,86,118,119,121,228,229,242],[110,118,121,227,242],[53,243],[53,54,61,62,77,86,118,242],[54,117,171],[177],[115,177,178],[54,117,178],[115,173],[53,114,115,117],[53,114,115,117,173],[53,117,173],[115,117],[53,54,114,115,117],[54,62,115,173,242],[54,115,117,243],[115,174,175,176,179,180,181,182,183,185,186,187,188,189,192,193,194,195,196,198,199,200,201,202,203,205,206,209,211,212,213,215,218,219,220,221,223,224,225],[54,114,115,242],[114,115,117,242],[116,174,175,176,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221],[53,54,115,117,173],[53,115],[54,115],[53,54,115,242],[53,115,117,242],[53,114,251],[53,54,117,126,172],[62],[54,62],[62,244],[62,242],[53,112],[63,77,110,111,113,117,241],[53,54,62,114,117,242],[53,54,62,115,116,242,243]],"referencedMap":[[267,1],[171,2],[129,3],[128,4],[133,5],[169,6],[168,7],[130,8],[131,9],[135,9],[134,10],[132,11],[166,12],[164,8],[170,13],[136,14],[141,8],[143,8],[138,8],[139,14],[145,8],[146,15],[137,8],[142,8],[144,8],[140,8],[160,16],[159,8],[161,17],[155,8],[157,8],[156,8],[152,8],[158,18],[153,8],[154,19],[147,8],[148,8],[149,8],[150,8],[151,8],[270,20],[266,1],[268,21],[269,1],[271,22],[272,23],[274,24],[275,25],[283,26],[52,27],[40,28],[41,29],[39,30],[42,31],[43,32],[44,33],[45,34],[46,35],[47,36],[48,37],[49,38],[50,39],[51,40],[110,41],[289,42],[108,43],[278,44],[280,45],[279,44],[282,46],[56,47],[61,48],[58,49],[60,49],[57,50],[64,51],[66,52],[67,53],[68,54],[69,55],[70,56],[71,57],[72,58],[73,59],[74,60],[75,61],[76,62],[77,63],[78,64],[79,65],[80,66],[81,67],[107,68],[82,69],[83,70],[84,71],[85,72],[86,73],[87,74],[88,75],[89,76],[90,77],[91,78],[92,79],[93,80],[94,81],[95,82],[96,83],[97,84],[98,85],[99,86],[100,87],[101,88],[102,89],[103,90],[104,91],[105,92],[258,93],[259,93],[260,93],[261,93],[262,93],[263,94],[264,95],[257,96],[249,97],[124,98],[238,99],[239,100],[121,101],[241,102],[240,103],[125,98],[123,98],[122,104],[118,105],[120,106],[234,107],[232,108],[231,109],[235,110],[233,107],[237,111],[236,111],[253,112],[254,113],[256,114],[113,115],[255,116],[116,117],[230,118],[229,98],[228,119],[54,120],[243,121],[172,122],[178,123],[179,124],[177,125],[194,126],[192,126],[195,126],[201,126],[213,127],[185,128],[215,108],[209,127],[221,129],[220,129],[186,130],[175,130],[176,130],[196,128],[180,127],[188,127],[211,128],[181,127],[202,131],[200,127],[212,128],[183,127],[199,127],[187,130],[219,127],[206,127],[198,130],[182,127],[218,107],[205,130],[174,132],[193,126],[189,127],[203,133],[223,117],[226,134],[247,135],[224,136],[225,136],[204,117],[222,137],[207,117],[184,117],[208,138],[190,117],[191,117],[214,139],[210,117],[197,140],[248,141],[216,142],[217,142],[252,143],[173,144],[245,145],[244,146],[246,147],[250,148],[114,149],[242,150],[115,151],[117,152]],"exportedModulesMap":[[267,1],[171,2],[129,3],[128,4],[133,5],[169,6],[168,7],[130,8],[131,9],[135,9],[134,10],[132,11],[166,12],[164,8],[170,13],[136,14],[141,8],[143,8],[138,8],[139,14],[145,8],[146,15],[137,8],[142,8],[144,8],[140,8],[160,16],[159,8],[161,17],[155,8],[157,8],[156,8],[152,8],[158,18],[153,8],[154,19],[147,8],[148,8],[149,8],[150,8],[151,8],[270,20],[266,1],[268,21],[269,1],[271,22],[272,23],[274,24],[275,25],[283,26],[52,27],[40,28],[41,29],[39,30],[42,31],[43,32],[44,33],[45,34],[46,35],[47,36],[48,37],[49,38],[50,39],[51,40],[110,41],[289,42],[108,43],[278,44],[280,45],[279,44],[282,46],[56,47],[61,48],[58,49],[60,49],[57,50],[64,51],[66,52],[67,53],[68,54],[69,55],[70,56],[71,57],[72,58],[73,59],[74,60],[75,61],[76,62],[77,63],[78,64],[79,65],[80,66],[81,67],[107,68],[82,69],[83,70],[84,71],[85,72],[86,73],[87,74],[88,75],[89,76],[90,77],[91,78],[92,79],[93,80],[94,81],[95,82],[96,83],[97,84],[98,85],[99,86],[100,87],[101,88],[102,89],[103,90],[104,91],[105,92],[258,93],[259,93],[260,93],[261,93],[262,93],[263,94],[264,95],[257,96],[249,97],[124,98],[238,99],[239,100],[121,101],[241,102],[240,103],[125,98],[123,98],[122,104],[118,105],[120,106],[234,107],[232,108],[231,109],[235,110],[233,107],[237,111],[236,111],[253,112],[254,113],[256,114],[113,115],[255,116],[116,117],[230,118],[229,98],[228,119],[54,120],[243,121],[172,122],[178,123],[179,124],[177,125],[194,126],[192,126],[195,126],[201,126],[213,127],[185,128],[215,108],[209,127],[221,129],[220,129],[186,130],[175,130],[176,130],[196,128],[180,127],[188,127],[211,128],[181,127],[202,131],[200,127],[212,128],[183,127],[199,127],[187,130],[219,127],[206,127],[198,130],[182,127],[218,107],[205,130],[174,132],[193,126],[189,127],[203,133],[223,117],[226,134],[247,135],[224,136],[225,136],[204,117],[222,137],[207,117],[184,117],[208,138],[190,117],[191,117],[214,139],[210,117],[197,140],[248,141],[216,142],[217,142],[252,143],[173,144],[245,145],[244,146],[246,147],[250,148],[114,149],[242,150],[115,151],[117,152]],"semanticDiagnosticsPerFile":[267,265,171,127,129,128,133,169,165,168,130,131,135,134,132,166,164,170,162,163,136,141,143,138,139,145,146,137,142,144,140,160,159,161,155,157,156,152,158,153,154,147,148,149,150,151,270,266,268,269,271,272,273,274,275,283,126,112,284,52,40,41,39,42,43,44,45,46,47,48,49,50,51,63,109,110,285,111,286,287,288,289,119,108,276,278,280,279,277,282,281,9,8,2,10,11,12,13,14,15,16,17,3,4,21,18,19,20,22,23,24,5,25,26,27,28,6,29,30,31,32,7,37,33,34,35,36,1,38,167,59,56,61,58,55,60,57,64,66,67,68,69,70,71,72,73,74,75,76,77,78,65,106,79,80,81,107,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,258,259,260,261,262,263,264,257,249,124,238,239,121,241,240,125,123,122,118,120,234,232,231,235,233,237,236,253,254,256,113,255,116,230,229,227,228,54,243,172,178,179,177,194,192,195,201,213,185,215,209,221,220,186,175,176,196,180,188,211,181,202,200,212,183,199,187,219,206,198,182,218,205,174,193,189,203,223,226,247,224,225,204,222,207,184,208,190,191,214,210,197,248,216,217,252,173,62,245,244,246,250,251,53,114,242,115,117]},"version":"4.3.3"}
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.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.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.esnext.intl.d.ts","../../node_modules/@types/lodash/common/common.d.ts","../../node_modules/@types/lodash/common/array.d.ts","../../node_modules/@types/lodash/common/collection.d.ts","../../node_modules/@types/lodash/common/date.d.ts","../../node_modules/@types/lodash/common/function.d.ts","../../node_modules/@types/lodash/common/lang.d.ts","../../node_modules/@types/lodash/common/math.d.ts","../../node_modules/@types/lodash/common/number.d.ts","../../node_modules/@types/lodash/common/object.d.ts","../../node_modules/@types/lodash/common/seq.d.ts","../../node_modules/@types/lodash/common/string.d.ts","../../node_modules/@types/lodash/common/util.d.ts","../../node_modules/@types/lodash/index.d.ts","../../node_modules/@types/lodash.isequal/index.d.ts","./src/typings/openapi.ts","./src/ref-utils.ts","../../node_modules/yaml-ast-parser/dist/src/mark.d.ts","../../node_modules/yaml-ast-parser/dist/src/exception.d.ts","../../node_modules/yaml-ast-parser/dist/src/yamlAST.d.ts","../../node_modules/yaml-ast-parser/dist/src/loader.d.ts","../../node_modules/yaml-ast-parser/dist/src/dumper.d.ts","../../node_modules/yaml-ast-parser/dist/src/scalarInference.d.ts","../../node_modules/yaml-ast-parser/dist/src/index.d.ts","./src/types/index.ts","../../node_modules/@types/minimatch/index.d.ts","./node_modules/@types/node/assert.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/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/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/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/globals.global.d.ts","./node_modules/@types/node/index.d.ts","../../node_modules/form-data/index.d.ts","../../node_modules/@types/node-fetch/externals.d.ts","../../node_modules/@types/node-fetch/index.d.ts","../../node_modules/@types/pluralize/index.d.ts","../../node_modules/@types/js-yaml/index.d.ts","./src/js-yaml/index.ts","./src/typings/swagger.ts","./src/visitors.ts","./src/oas-types.ts","./src/walk.ts","./src/config/types.ts","../../node_modules/colorette/index.d.ts","./src/config/utils.ts","./src/config/config.ts","./src/config/rules.ts","./src/config/recommended.ts","./src/config/all.ts","./src/config/minimal.ts","../../node_modules/@types/js-levenshtein/index.d.ts","../../node_modules/@redocly/ajv/dist/compile/codegen/code.d.ts","../../node_modules/@redocly/ajv/dist/compile/codegen/scope.d.ts","../../node_modules/@redocly/ajv/dist/compile/codegen/index.d.ts","../../node_modules/@redocly/ajv/dist/compile/rules.d.ts","../../node_modules/@redocly/ajv/dist/compile/util.d.ts","../../node_modules/@redocly/ajv/dist/compile/validate/subschema.d.ts","../../node_modules/@redocly/ajv/dist/compile/errors.d.ts","../../node_modules/@redocly/ajv/dist/compile/validate/index.d.ts","../../node_modules/@redocly/ajv/dist/compile/validate/dataType.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/additionalItems.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/items2020.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/contains.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/dependencies.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/propertyNames.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/additionalProperties.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/not.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/anyOf.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/oneOf.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/if.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/index.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/validation/limitNumber.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/validation/multipleOf.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/validation/pattern.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/validation/required.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/validation/uniqueItems.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/validation/const.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/validation/enum.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/validation/index.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/format/format.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/unevaluated/unevaluatedItems.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/validation/dependentRequired.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/discriminator/types.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/discriminator/index.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/errors.d.ts","../../node_modules/@redocly/ajv/dist/types/json-schema.d.ts","../../node_modules/@redocly/ajv/dist/types/jtd-schema.d.ts","../../node_modules/@redocly/ajv/dist/runtime/validation_error.d.ts","../../node_modules/@redocly/ajv/dist/compile/ref_error.d.ts","../../node_modules/@redocly/ajv/dist/core.d.ts","../../node_modules/uri-js/dist/es5/uri.all.d.ts","../../node_modules/@redocly/ajv/dist/compile/resolve.d.ts","../../node_modules/@redocly/ajv/dist/compile/index.d.ts","../../node_modules/@redocly/ajv/dist/types/index.d.ts","../../node_modules/@redocly/ajv/dist/ajv.d.ts","./src/rules/ajv.ts","./src/rules/utils.ts","./src/rules/common/spec.ts","./src/rules/common/operation-2xx-response.ts","./src/rules/common/operation-4xx-response.ts","./src/rules/common/assertions/utils.ts","./src/rules/common/assertions/asserts.ts","./src/rules/common/assertions/index.ts","./src/rules/common/operation-operationId-unique.ts","./src/rules/common/operation-parameters-unique.ts","./src/rules/common/path-params-defined.ts","./src/rules/common/operation-tag-defined.ts","./src/rules/oas3/no-example-value-and-externalValue.ts","./src/rules/common/no-enum-type-mismatch.ts","./src/rules/common/no-path-trailing-slash.ts","./src/rules/common/path-declaration-must-exist.ts","./src/rules/common/operation-operationId-url-safe.ts","./src/rules/common/tags-alphabetical.ts","./src/rules/oas3/no-server-example.com.ts","./src/rules/oas3/no-server-trailing-slash.ts","./src/rules/common/info-description.ts","./src/rules/common/tag-description.ts","./src/rules/common/info-contact.ts","./src/rules/common/info-license-url.ts","./src/rules/common/operation-description.ts","./src/rules/oas3/no-unused-components.ts","./src/rules/common/path-not-include-query.ts","./src/rules/common/parameter-description.ts","./src/rules/common/operation-singular-tag.ts","./src/rules/common/license-url.ts","./src/rules/common/operation-security-defined.ts","./src/rules/no-unresolved-refs.ts","./src/rules/oas3/boolean-parameter-prefixes.ts","./src/rules/common/paths-kebab-case.ts","./src/rules/common/path-http-verbs-order.ts","./src/rules/oas3/no-empty-servers.ts","./src/rules/oas3/no-invalid-media-type-examples.ts","./src/rules/common/no-identical-paths.ts","./src/rules/oas3/no-undefined-server-variable.ts","./src/rules/common/operation-operationId.ts","./src/rules/common/operation-summary.ts","./src/rules/common/no-ambiguous-paths.ts","./src/rules/oas3/no-servers-empty-enum.ts","./src/rules/common/no-http-verbs-in-paths.ts","./src/rules/oas3/request-mime-type.ts","./src/rules/oas3/response-mime-type.ts","./src/rules/common/path-segment-plural.ts","./src/rules/common/path-excludes-patterns.ts","./src/rules/common/no-invalid-schema-examples.ts","./src/rules/common/no-invalid-parameter-examples.ts","./src/rules/oas3/index.ts","./src/rules/oas2/boolean-parameter-prefixes.ts","./src/rules/oas2/request-mime-type.ts","./src/rules/oas2/response-mime-type.ts","./src/rules/oas2/index.ts","./src/redocly/registry-api-types.ts","./src/redocly/registry-api.ts","./src/redocly/redocly-client-types.ts","./src/redocly/index.ts","./src/decorators/common/registry-dependencies.ts","./src/decorators/common/operation-description-override.ts","./src/decorators/common/tag-description-override.ts","./src/decorators/common/info-description-override.ts","./src/decorators/common/remove-x-internal.ts","./src/decorators/oas3/index.ts","./src/decorators/oas2/index.ts","./src/config/builtIn.ts","./src/config/config-resolvers.ts","./src/config/load.ts","./src/config/index.ts","./src/utils.ts","./src/resolve.ts","./src/types/oas3.ts","./src/types/oas2.ts","./src/types/oas3_1.ts","./src/rules/oas2/remove-unused-components.ts","./src/rules/oas3/remove-unused-components.ts","./src/bundle.ts","./src/types/redocly-yaml.ts","./src/typings/common.ts","./src/rules/other/stats.ts","./src/format/codeframes.ts","./src/format/format.ts","./src/lint.ts","./src/index.ts","./src/benchmark/utils.ts","./src/benchmark/benches/lint-with-many-rules.bench.ts","./src/benchmark/benches/lint-with-nested-rule.bench.ts","./src/benchmark/benches/lint-with-no-rules.bench.ts","./src/benchmark/benches/lint-with-top-level-rule-report.bench.ts","./src/benchmark/benches/lint-with-top-level-rule.bench.ts","./src/benchmark/benches/recommended-oas3.bench.ts","./src/benchmark/benches/resolve-with-no-external.bench.ts","../../node_modules/@babel/types/lib/index.d.ts","../../node_modules/@types/babel__generator/index.d.ts","../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../node_modules/@types/babel__template/index.d.ts","../../node_modules/@types/babel__traverse/index.d.ts","../../node_modules/@types/babel__core/index.d.ts","../../node_modules/@types/glob/index.d.ts","../../node_modules/@types/graceful-fs/index.d.ts","../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../node_modules/@types/istanbul-lib-report/index.d.ts","../../node_modules/@types/istanbul-reports/index.d.ts","../../node_modules/jest-diff/build/cleanupSemantic.d.ts","../../node_modules/jest-diff/build/types.d.ts","../../node_modules/jest-diff/build/diffLines.d.ts","../../node_modules/jest-diff/build/printDiffs.d.ts","../../node_modules/jest-diff/build/index.d.ts","../../node_modules/pretty-format/build/types.d.ts","../../node_modules/pretty-format/build/index.d.ts","../../node_modules/@types/jest/index.d.ts","../../node_modules/@types/json-schema/index.d.ts","../../node_modules/@types/normalize-package-data/index.d.ts","../../node_modules/@types/prettier/index.d.ts","../../node_modules/@types/stack-utils/index.d.ts","../../node_modules/@types/yargs-parser/index.d.ts","../../node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"ac3a8c4040e183ce38da69d23b96939112457d1936198e6542672b7963cf0fce","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940",{"version":"cce43d02223f8049864f8568bed322c39424013275cd3bcc3f51492d8b546cb3","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"8dff1b4c2df638fcd976cbb0e636f23ab5968e836cd45084cc31d47d1ab19c49","affectsGlobalScope":true},{"version":"2bb4b3927299434052b37851a47bf5c39764f2ba88a888a107b32262e9292b7c","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"8f4c9f651c8294a2eb1cbd12581fe25bfb901ab1d474bb93cd38c7e2f4be7a30","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":"df9c8a72ca8b0ed62f5470b41208a0587f0f73f0a7db28e5a1272cf92537518e","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"93544ca2f26a48716c1b6c5091842cad63129daac422dfa4bc52460465f22bb1","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"60761e6ea886034af0f294f025a7199360ce4e2c8ba4ec6408bc049cf9b89799","affectsGlobalScope":true},{"version":"7435b75fdf3509622e79622dbe5091cf4b09688410ee2034e4fc17d0c99d0862","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"9f1817f7c3f02f6d56e0f403b927e90bb133f371dcebc36fa7d6d208ef6899da","affectsGlobalScope":true},{"version":"506b80b9951c9381dc5f11897b31fca5e2a65731d96ddefa19687fbc26b23c6e","affectsGlobalScope":true},"675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","fe4a2042d087990ebfc7dc0142d5aaf5a152e4baea86b45f283f103ec1e871ea","d70c026dd2eeaa974f430ea229230a1897fdb897dc74659deebe2afd4feeb08f","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","febf0b2de54781102b00f61653b21377390a048fbf5262718c91860d11ff34a6","ca59fe42b81228a317812e95a2e72ccc8c7f1911b5f0c2a032adf41a0161ec5d","9364c7566b0be2f7b70ff5285eb34686f83ccb01bda529b82d23b2a844653bfb","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","ae9930989ed57478eb03b9b80ad3efa7a3eacdfeff0f78ecf7894c4963a64f93","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3e59f00ab03c33717b3130066d4debb272da90eeded4935ff0604c2bc25a5cae","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9",{"version":"0714e2046df66c0e93c3330d30dbc0565b3e8cd3ee302cf99e4ede6220e5fec8","affectsGlobalScope":true},"5e099389ceec44681b37d10470755cdc6d9f516851e53c731c6e7e17b39ad86f","c99ccf1145f336a70177cb4655172c6a8a86779984a2e3f8894a1d331f7eec56","3ada6f9d6c49371ed4ca7626c67772b4fa0d6226243d6275ccc57f34df9962b4","8d1539367a9f5a03698f4c37111251eb76433ea8fcb5f1e546571b8513cac822","9ad71085f8ab35282a341995f85c6e06a19e6d5ab73b39f634b444ce8742a664","ee94d8f60c253d9994559ad325e9cb8a7af6bd36176884cb869ee5a40daa766c","606de01a4212a48518a219585f673504d3c0c26b361706006038a71bf8b9f42c","76de776e227ad01b703ce076b32177da31a765d5b5a681d5bb4c4e0f4876840f","aa4c984c8f2919742d06f305b1870bf180275cbe015490451a6374e6f6b9998a","46b9cdcd62e90f604876c143481ac7ff2c89cdfb902179bda0d8ee44c0695beb","dca2fb51846d6762a125b3fd4167be9c7ebef2cb116e34466878f59aabc631f5","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","4c2c4f53e8eedd970f8afa369d7371544fb6231bf95e659f8602e09abe74d5a5",{"version":"e71aa3dcef67c4e22d57a8ff085806b986818c27d515a6c548547dbb06153c01","affectsGlobalScope":true},"64e2803203b14d7f104f570f2152fde13abb6edc17b2ddb33d81ad86cf43d494","3143a5add0467b83150961ecd33773b561a1207aec727002aa1d70333068eb1b","9b2a8f604e7c0482a9061755f00b287cc99bd8718dc82d8207dd74c599b6dc43","d0fc76a91c828fbe3f0be5d683273634b7b101068333ceed975a8a9ac464137b",{"version":"1a048ff164b8d9609f5de3139d4e37f6e8a82af82087ac414b9208f52ef8aac7","affectsGlobalScope":true},"3111079f3cb5f2b9c812ca3f46161562bce5bfb355e915f46ed46c41714dc1c3","64576aba4ff801004122056ccd049f0597aa471dcfd7670a6a0b877ee8dd97c0","b32b6b16cb0bda68199582ad6f22242d07ee75fac9b1f28a98cd838afc5eea45","4441ee4119824bfaebc49308559edd7545978f9cb41a40f115074e1031dde75f",{"version":"60693a88462d0e97900123b5bf7c73e146ce0cc94da46a61fe6775b430d2ff05","affectsGlobalScope":true},{"version":"588c69eda58b9202676ec7ca11a72c3762819b46a0ed72462c769846153c447c","affectsGlobalScope":true},"cc829932ffaf5c49092f878bec18af1fa5d8591b45a45e2b7f757f793cb3b4ed","47db10fdc4e76c4f4598cf7c91ba6bfde6cf6d8082c51860fe751643bf359739","53d2c24a3cbc00a88ebaf8ab8e1b6e206bc3a6647d544f877241684ea3d484e3","3be5ff21956db30c674bf2a98eb348e4ce7b4635cd9673413d86fbce761b77d8","0ce99c641ea20b0c0c09d093fc28f18f5ab31dc80033707a1ac3154399de2559","f0c33a0b325d3499cc9aded7d32886f998c9a27b465097c6cc136944d0aafdaa","44e42ed6ec9c4451ebe89524e80ac8564e9dd0988c56e6c58f393c810730595d","d4a0c39ece1e7c99d701e9c02a7dde8e3b75e03405f78d58d48dfea797ddbbac","1606ea615c0a5ea9f5c1376a33e34c0e1112e8dee31a5b3b8a74ce781893aa6f","9fef9de633d01cb7f01f68195626a890ededd25cf96a1e785617d08c8668230d","4455c78d226d061b1203c7614c6c6eb5f4f9db5f00d44ff47d0112de8766fbc4",{"version":"ec369bb9d97c4dc09dd2a4093b7ca3ba69ad284831fccac8a1977785e9e38ce5","affectsGlobalScope":true},"4465a636f5f6e9665a90e30691862c9e0a3ac2edc0e66296704f10865e924f2a","9af781f03d44f5635ed7844be0ce370d9d595d4b4ec67cad88f0fac03255257e","f9fd4c3ef6de27fa0e256f4e75b61711c4be05a3399f7714621d3edc832e36b0","e49290b7a927995c0d7e6b2b9c8296284b68a9036d9966531de65185269258d7","c3689f70ce7563c2299f2dcb3c72efdf6f87ae510e7456fa6223c767d0ca99fc","874ca809b79276460011480a2829f4c8d4db29416dd411f71efbf8f497f0ac09","82e1723b20fa0b15a7da0d1a03fec88348f82f640f7a2f308d6c0fac780cfc7c","605c24042a348b033b30121cff64380eb5d6d82853c5608f1f94ef72385cf5c9","23a28f834a078986bbf58f4e3705956983ff81c3c2493f3db3e5f0e8a9507779","4febdf7f3ec92706c58e0b4e8159cd6de718284ef384260b07c9641c13fc70ce",{"version":"eabefc2999c1489cf870e0c85af908900462fa245822d9a4616780a1a129945d","affectsGlobalScope":true},"7335933d9f30dcfd2c4b6080a8b78e81912a7fcefb1dafccb67ca4cb4b3ac23d","a6bfe9de9adef749010c118104b071d14943802ff0614732b47ce4f1c3e383cd","4c3d0e10396646db4a1e917fb852077ee77ae62e512913bef9cccc2bb0f8bd0e","3b220849d58140dcc6718f5b52dcd29fdb79c45bc28f561cbd29eb1cac6cce13","0ee22fce41f7417a24c808d266e91b850629113c104713a35854393d55994beb","22d1b1d965baba05766613e2e6c753bb005d4386c448cafd72c309ba689e8c24",{"version":"2708349d5a11a5c2e5f3a0765259ebe7ee00cdcc8161cb9990cb4910328442a1","affectsGlobalScope":true},"79d679a1d56574cc5cef92be1f0e5e8fb4af62fb55933b236670a0e0a23c83f6","736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","208bb742e0f201470da121bc73847c74b62cff4172f38ae5949ae77d6c9c6b71","3663d1b50f356656a314e5df169bb51cb9d5fd75905fa703f75db6bb32030568","8f7a2387ecc680872d09a6edbca1612d699f77ee5a5129944935c3798a613d04","686e548ae30250d62532c8cacb43fccc922b693408371bd3503563c4a0f28eed","2db54ff4e7dba1e1416933fc428ffe20afbaafaa26aa6e94e5ba88c078a95268","c62a5738b30ab17e469944db2edb198074bd90896226026f29ddc5a931a04f56","d121cf8634c1d08261c8ca0e9511b7334303765e16b5afc3e4a42be3e9f83642","03a128cfb85c06ad01a4f7467346e0ae6c801ee6d5939907466d02e512761789","5a0afcace824ec5c6805d00f4f73b8021a38ea4e3df448e3752ae50663ccada7","69638b14337d38205b64286cb36ff50f3d59d4bc3ffd55d3d08c79523a08cbeb","a456dd94a596de621bd25cf3c91278101ea62782c3ac4435aef9190a2336ddde","2ae70124ee363ac96678fc386ae72fbb6260b31fcf827a01fb2066343a7d9f94","231545d9299b35947bfc03b63ce0e00c5c2b1e3f1074d478e96469cf2726fae6","be01294e828639eda88fc2fe43f1652d91668327b0992dd6ebc38ad4b648dea1","74ca7857fbe11ad1d1b2c872c7b94b85f539b07b58727cf9a5899b92d4253a93","9cc5d66c2640b1d2e19b456099865ab4d2c6f6f80e5d099799b23d2c6be2b938","ca27edf165c0e266bd36498ff16683fc80baaedadc808eac2ad29ea03aa039e9","21bb8dda75eb025927e9d62d8fa619e349ebc5ba0b8b9dddd8fdfc9ff058e2b8","e6ada7804df8cd574c66660fdc6abc584a31692293636d1626573e476699bcf0","60bb0e47502bf8716d1230288b4e6387c1d34cded12752ab5338108e2e662e67","b8870b5155d11a273c75718a4f19026da49f91c548703858cd3400d06c3bd3b8","b3ae4ded82f27cabba780b9af9647f6e08c9a4cabe8fbb7a0cca69c7add9ef4b","8d26ae32e5c9c080e44aee4a67e5ef02b5fda0604e6fecbb7b753c537e5282d9","05c4e792dae38912ba333725cdf8c42d242337d006c0d887f4ce5a7787871a95","cd44995ee13d5d23df17a10213fed7b483fabfd5ea08f267ab52c07ce0b6b4da","1490dc5531e1d5efb8a52d1b3d946c572e270836f0f1490cfadf8fcf87a6b4a4","1a23b521db8d7ec9e2b96c6fbd4c7e96d12f408b1e03661b3b9f7da7291103e6","d3d0d11d30c9878ada3356b9c36a2754b8c7b6204a41c86bfb1488c08ce263b0","a6493f1f479637ed89a3ebec03f6dc117e3b1851d7e938ac4c8501396b8639a8","ae0951e44973e928fe2e999b11960493835d094b16adac0b085a79cff181bcb9","9d00e3a59eff68fa8c40e89953083eeaad1c5b2580ed7da2304424b249ecb237","1609ad4d488c356ee91eba7d7aa87cc6fb59bc8ac05c1a8f08665285ba3b71ad","8add088f72326098d68d622ddb024c00ae56a912383efe96b03f0481db88f7c9","dd17fe6332567b8f13e33dd3ff8926553cdcea2ad32d4350ce0063a2addaa764","4091d56a4622480549350b8811ec64c7826cd41a70ce5d9c1cc20384bb144049","353c0125b9e50c2a71e18394d46be5ccb37161cc0f0e7c69216aa6932c8cdafb","9c5d5f167e86b6ddf7142559a17d13fd39c34e868ae947c40381db866eed6609","4430dea494b0ee77bf823d9a7c4850a539e1060d5d865316bb23fb393e4f01d7","aae698ceead4edad0695b9ea87e43f274e698bdb302c8cb5fd2cab4dc496ccf0","51631e9a0c041e12479ab01f5801d8a237327d19e9ee37d5f1f66be912631425","c9d5d8adb1455f49182751ce885745dcc5f9697e9c260388bc3ae9d1860d5d10","f64289e3fa8d5719eaf5ba1bb02dd32dbbf7c603dda75c16770a6bc6e9c6b6d9","b1aa0e2e3511a8d10990f35866405c64c9e576258ef99eeb9ebafed980fd7506","2d255a5287f2fb5295688cb25bd18e1cd59866179f795f3f1fd6b71b7f0edf8f","43c1dbb78d5277a5fdd8fddce8b257f84ffa2b4253f58b95c04a310710d19e97","6c669d7e080344c1574aa276a89e57c3b9f0e97fab96a09427e7dfb19ca261bf","b71ac126853867d8e64c910f47d46d05c5ea797987d2604f63d401507dc43b6d","9a37238558d28b7ee06d08599e92eab30b90704541cc85e6448009d6d55fffa9","120b14d66a061910309ff97e7b06b5c6c09444218178b80b687a92af4d22d5dc","3de958065e3a44cbe0bfa667813bc59c63e63c9ce522af8dc1b64714910fa9ba","66e655f7c43558bae6703242cbd6c0551a94d0a97204bd4c4bbf7e77f24d1f85","72f7b32e023814078046c036ed4b7ad92414be0aebb63e805c682e14103ae38a","a89d8e67966d085ff971c9900cfa1abdd9732bab66d9c1914ecc15befdf8623d","396ce3137bb6388b71bbd7d88071c71c9b3333cd20cd04bf6a40cd6ee88c531d","2887a41f8373ff8443ac2bb9d898b398687621830465643ad131ad1a43e2678e","cde493e09daad4bb29922fe633f760be9f0e8e2f39cdca999cce3b8690b5e13a","18cc75193738e5c88f89facc31481024911f04da53bb3294930ecacd112a8f6e","f4eeac349468d231cc2968dac0cb744b2fd834010c6c1860e9fa2a8713907941","9f3c5498245c38c9016a369795ec5ef1768d09db63643c8dba9656e5ab294825","8f35095ce6914b0e95d563adae6f2546dddd8f85c4034d9050530076d860b5b8","b34bf09a55a5049f1f741a32360633f7569447f193b02e7b9a428ef8bc7fb9fe","ba1f5ad0e2df2c17351247ef47d8819713be50a1b7ad0520b15c6070d280b15b","821e64ddbdfa10fac5f0aed1c1d4e1f275840400caa96357ddfd15d02e5afba1","3c4aa4e4602f5c746b6fb2d7934ca15f6cfb9eee48190a9eb103a885433efc95","9e6254e0052d28c4d98fa6a48c340c5602d16b1e0fe1b8ba4623f4afb10deb34","5f11171b66470ac9766ad0a795a2103262df7a733163b5b14c3d34eab161174f","cc9f0665f4555a6f818dcaf79de44ff3f9e93211458548dd6260506e27b38025","a0be06b87b35dfe34748f797a7644f41fe0d00720907b4d93233bdb04f248f42","a45d096625222369503c81484e5822e3ea502a1e31fbf4bbebca1d1c318644ce","6c1a6463d91d13bdb4c84d58393ff52a1483f91c326efd5e181fcf7c1025ee7e","82450757f2c3d76f7f1d1864fab8022f3aadf8fe428adaf834e39b64bb351e4a","e8b5d684b18772f93fd7ac85652a9dd8c3c4ac42d255ebc676ddd75d213a60eb","ebdf0fc327828cf8e59bcaec0b03a1f65dd5f5b4849636405b43e71fbdd014d4","88a90a39fde5c1d8021d1a1a9fd351018f3fad88beeb38881f06cbfaaa6b06fe","6e3a3b59f2b4ebf3c4ca906f7f56d3d53f707eda7ed10be0863029d814b51583","329318845916f35128387bb291f2f252ccc80fe968ae6f6ee7a7bd644b9af509","1d2e0aa962881cb1ee3f648d98c6e33b0c14e9c1a37f1fe15298c1b619c56d55","8e8d8e11136d8c5a59360e90455356a41c8006129f7e459fbbf8a4551379f23a","a959db7039a615c94a9c236d0664463fd8fcc7c08e68c01bd7de4b49116c2b2c","3144d082b0efd80551c4b9ff1dd29ba6b0f0bb0709d481ed5285313e0845ee36","a9319c8e234166988f24be3a12d8845a5d43f34d31f72621ca311384ee7a56ae","37106a318a9b70352fc7fb06ed9a31c218342402f194355ad7c3e83c226b8b84","8d6b668236eb00f3942aa43d87ad361448b34ad335446fb9f4915ee612c1c372","232fe9b0f859a921132d464999ff9d2f979e29636dfd2225989e638a43bc5630","679f01be7caf9e091684d1f0fdabc8837991ed589a4c2617c72799c4aed0b60e","a3f88fc187a30877572d86ca78bfbad1ce1f7f081a13f4a1a3de12fc19172763","2b4e1f7c647e05af840b8a7f9444481b6dd3fff0dffd57ee765ab9507365ee5f","099e32d949572f34338bcc5a9bf84b09966b5b347b0462154eaf1679968ff74e","b72ac783938f2f9522af3694262d6112b061c0fa2b8c4c5df226efd0550fcba9","efcf6bd086be2f68fc73f04109ce82b5d64b1a4b01606ecb28de046b8bafeb97","576815ad63894f88f18c36c239e23562b35033e0dab57ff665dc0410db4a8b54","d23b6230c10ffb27b8cec7f0aef6443f8736620ce07bf7a991efb02e0f599d42","53e922fc5556e9825e10ebc780ea40088404abb4f1a76251bb5fac18eb20fc93","cb2796cb7a19f4a50dea47a54885c072578c08efdf3c0f1f3f766c9c4d5b414f","02b41251895e409555bc5688231b8c9801cf817b614bd7fa45c60b6ab5a415a4","d0b2d3ab2b3934d5ea2d1ca2973fce9c031bec115c37e437b32bad32c0d79196","16d27f5fcf14a7fe4861a459c1ed641b99e687d8e11fbd24b5445a7e84782ca9","8434dc2a1f866e713703e6d8ccc85168d92c07049138a3f2895e63f1b0d0ff8a","a15843ee7cbcaeea821a6b0557839f1e91edbf7bfd81df55bd9ca884aa4aac58","5e6ba9dd85bfc644b768acbd5cc457299b8f94b776a3ce920cd48f2081731490","d83f1778cc95256ae503c326ea6804cffef5e5d6310e0d8b8dc56a2107abc7ae","fd1531c043404c41a9554cc39c1af2738f53edc508e450a17c246f3c5e881889","9688010a836de8a1927fb20f325179c6ae3ee66a64a1d0e5c414b15502652359","56d135e85dcc15aa982d8ca85f8021859447db147c51123e3811b3a48cb7d90b","6c8a91aa5b37b93dbf757bd99da7befc145884a94dcfb5a74043b1df4d70bfec","a3515918d4a0b9f14b3fa2ce25e2468994f31a492107a6be31c7c19ac03b28f9","6779e161b87b79684bbcf4514e8e2372d87d066930be098425539b64cf47351f","84af506cbec2a4666b02c573f601dad8d43fa7582bc4a675278b0d905ca9a851","df41f874a075a75dd3148c5a2e2980c7e7aff23f33212c2427e20c763501fed1","bc7711d24df78e5dbedb9b206cdc72e1880a757328bd5e094b582dcf572bb273","63f0634d9c4ce2d509e81033b88f5a565c5151876300616dd07958b54f944b14","ba925453f1dab00f090cca9264730784d7196d4a1c8ad708a75835fb37300e02","98aa50be1cb83f917da7d8eeca7b67db47d4bd36dd6cda5e5ccc0f77dbfdd0e1","7d4517b0e8c26fadd415789b449750d5d27e5edcd3c0af6afc498946a576649d","41d545e5d36083f5bf6432c93dc2d3cb29ed4f8deae03b9dec59c55e02fbe597","0b4cc0ce5b20bc61ab6191013d258d109c9c8c6bb973368bb9ec57fce8b5ff97","9814894f88bc9283fa344d1a075913da647a36a7aa5f6d3080ce5df057d2b2d3","04b3349e0ccdf1b3fc382a05d4c133b1478644a39eee4f0293349abc7b6bb3ff","ab1806d6370d21c2d873a4b9211393a5c7585f39da1f1b3d7a21d2a7adeb0b77","36e4312089cc4cb593497accae6c5418e858b6eae79040b7dc9c18a4578c159a","a3443a2339b42c762d7980f11195fe1bede24f567d3052700cf62ea89c465588","f05d4e2d7b7e1faf5a163843eb7fc9120a42bb81f2ed8a6273471379a31f41df","19e6bf4146329b9217fa9de9706d67af25ed9dfdeb4f313793121d753894d95a","08f208c5084dc2ee9e2f78efba4c995d912e171fce3fb30c4c55c4f138751212","56aa78b45d55e0a7f63116bd779556e830c01b8d0da654cc562ff541fb38717d","74d5487b667f1e2507d0ba90f8e9c71ccb8e8650566cacebeb08c83e51e8a6aa","5ab2d27597934f3f7144ad849121bc16d2fb0f5be488bd1ccef0bd892cdbb687","58711001f6b96d2567f5ba7cd255729663ac4552487a2183a6159c66fe9e2897","5846b3f59e2b0248fe8a8dbb28b502ac64ffaa9a750d5ad612ec4b85d4f28495","985953793d00385c69caf80d12e7d6e9b8441a67be290b46e182eaac1cd11e50","f8ece0cabe2eef4a2da7ccc3483d420c292ab805c08406dd27d2731d144004e5","f91daa24afe00118956f8a1e7a878f20b5d0ab95a4c478f3b906bc26b3ecd51e","88dc0dcab75df96583b348f379c7aec6712561d17d8ce208d36ab492b23ae46d","af90262bb0a1b4909f74ba08864097ee5b7dfa12b8f02ac229adce6c5cac15c7","e076472d7de02dde8fcb1a8113fa302848e08ae8456e69fe431cd70eec2bec80","8032905ea2cac66490c70de60dfe3569271fe6c17ddbb12643bd0cf625505668","9c017363a95a8db94c2598fb498a511d5c11e726f5c30cf6c2bebbec99e1b8d2","be666ecd3e96945d7c7d148eafb02274872fe2a7fbe26349f240c3aaede1d0f8","fb9c85c29ae353587e86958aee9480720247bef0bfd78aec4166d12e8e6d9676","1903793378099010b4a1787b3bd6a6a7cd39fa5aab3fac96faaaa5c95619a401","d46b6dddc552e35063977ab28a508afcae68ae2e3f7020c20efef76d4461c3fd","7c08d1d2e432fe7513cdfc7abbe79d5ca07ac9cfc63603535a579d16ddb76d76","c528dad690c73e4f587cc897041ab729e20dc627c58ec0c2da9019a4e58a6c45","63ccc5dc211f97f78e352388c770a23b652ef408a8b337450c8a0c6d41fe26ea","531346cf613bf65204723cfdb3140f9a961de6f494a0de60101ceb9e37dad6c7","d690efa55c023d3da2cf8561e15d806be3900c918b9f23cc9efa14939fe07007","1be417236207a06d05ad2646c38cf3523cb55e33c372d53ed411df71bc75f944","d896c9329633da84378461334512f0e7ae3100ad66202931d05af5a349186a5f","b8a9ebd6f52b63a4208721ab777a87492738492cc1f8a48228228c55f062c75a","0b304d474cf6ac7fc79a8115c724eb2c68cc0f36bc8649155cd8a65808042ee9","225591c9bda5ab3e0756bce43f4d5d35d6f673968dd82d30792d4c3c182e4a20","413d72d18cd0ce2bf60ec34eb68377c1924db6430b75c43d6b3fe818e99766f6","15f2bb8c8dbd4101c1ff26ffaef79d2b6ddfc79a8fd29bcaf2c9ac777549a333","b50bf43d558b33dd01fe7bd57b8b68c025db666561e893c9f1d3154a9a8d05cc","831d7e382e10da5c3373a5f0e8511dd354fecb78ee416df52a732acbb5ee0feb","41476c129af01db7691ce3fda6a8a581a9636980ba5f831f72554934a7b05911","2ff9995137f3e5d68971388ec58af0c79721626323884513f9f5e2e996ac1fdd","cc957354aa3c94c9961ebf46282cfde1e81d107fc5785a61f62c67f1dd3ac2eb","1a7cc144992d79b062c22ac0309c6624dbb0d49bbddff7ea3b9daa0c17bcac0a","93de1c6dab503f053efe8d304cb522bb3a89feab8c98f307a674a4fae04773e9","3b043cf9a81854a72963fdb57d1884fc4da1cf5be69b5e0a4c5b751e58cb6d88","5426e62886b7be7806312d31a00e8f7dccd6fe63ba9bbefe99ee2eab29cc48a3","fd326577c62145816fe1acc306c734c2396487f76719d3785d4e825b34540b33","3ebae8c00411116a66fca65b08228ea0cf0b72724701f9b854442100aab55aba","8b06ac3faeacb8484d84ddb44571d8f410697f98d7bfa86c0fda60373a9f5215","7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","d8aab31ba8e618cc3eea10b0945de81cb93b7e8150a013a482332263b9305322","69da61a7b5093dac77fa3bec8be95dcf9a74c95a0e9161edb98bb24e30e439d2","561eca7a381b96d6ccac6e4061e6d2ae53f5bc44203f3fd9f5b26864c32ae6e9","62ea38627e3ebab429f7616812a9394d327c2bc271003dfba985de9b4137369f","b4439890c168d646357928431100daac5cbdee1d345a34e6bf6eca9f3abe22bc","5d72971a459517c44c1379dab9ed248e87a61ba0a1e0f25c9d67e1e640cd9a09","02d734976af36f4273d930bea88b3e62adf6b078cf120c1c63d49aa8d8427c5c",{"version":"516a426e3960379f310107635b8f3a7e8c307c6c665080b128039d9299ec4087","affectsGlobalScope":true},"f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","6209c901f30cc321f4b86800d11fad3d67e73a3308f19946b1bc642af0280298","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","99bbadcf4153b61d79a2616b377da8f42a16fcb41d2136f1f6c2cf070b084216"],"options":{"composite":true,"declaration":true,"module":1,"noImplicitAny":true,"noImplicitReturns":true,"noImplicitThis":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./lib","rootDir":"./src","strictFunctionTypes":true,"strictNullChecks":true,"strictPropertyInitialization":true,"target":3},"fileIdsList":[[265],[129,130,134,161,162,166,169,170],[127,128],[127],[129,170],[129,130,166,168,170],[167,170,171],[170],[129,130,169,170],[129,130,132,133,169,170],[129,130,131,169,170],[129,130,134,161,162,163,164,165,169,170],[129,130,134,166,169],[134,170],[136,137,138,139,140,141,142,143,144,145,170],[159,170],[135,146,154,155,156,157,158,160],[139,170],[147,148,149,150,151,152,153,170],[265,266,267,268,269],[265,267],[63,76,77,107],[77,107],[273],[274],[280,282],[51],[39,41,42,43,44,45,46,47,48,49,50,51],[39,40,42,43,44,45,46,47,48,49,50,51],[40,41,42,43,44,45,46,47,48,49,50,51],[39,40,41,43,44,45,46,47,48,49,50,51],[39,40,41,42,44,45,46,47,48,49,50,51],[39,40,41,42,43,45,46,47,48,49,50,51],[39,40,41,42,43,44,46,47,48,49,50,51],[39,40,41,42,43,44,45,47,48,49,50,51],[39,40,41,42,43,44,45,46,48,49,50,51],[39,40,41,42,43,44,45,46,47,49,50,51],[39,40,41,42,43,44,45,46,47,48,50,51],[39,40,41,42,43,44,45,46,47,48,49,51],[39,40,41,42,43,44,45,46,47,48,49,50],[79,99,107,108,109],[288],[79,93,107],[276,277],[276,277,278,279],[281],[55],[56,57,58,59,60],[57],[56],[64],[66],[67,72],[68,76,77,84,93],[68,69,76,84],[70,100],[71,72,77,85],[72,93],[73,74,76,84],[74],[75,76],[76],[76,77,78,93,99],[77,78],[79,84,93,99],[76,77,79,80,84,93,96,99],[79,81,93,96,99],[64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106],[76,82],[83,99],[74,76,84,93],[85],[86],[66,87],[88,98],[89],[90],[76,91],[91,92,100,102],[76,93],[94],[95],[84,93,96],[97],[84,98],[90,99],[100],[93,101],[102],[103],[76,78,93,99,102,104],[93,105],[77,86,243,255,257],[77,86,241,243,255,257],[62,77,86,243,244,257],[113,116,118,241,243],[52,53,54,62,115,116,117,122,203,230,241,242,243,244,245,246,247,248],[118],[118,123,124,125,222,226,236,237],[54,86,118,119,120,121,238,242,243],[62,77,86,113,116,117,118,120,242],[118,120,121,122,238,239,240],[77,86,118,120,121,230,239,242],[116,121,242],[62,116,117],[118,119,121,242],[115,117,242],[53,114,115,117,242],[115,117,230],[54,115,117,242],[115,231,232,233,234,235],[54,61,117,119],[86,117,119,241,253],[53,54,62,113,114,115,116,117,230,241,242,243,244,245,246,249,250,251,252,253,254,255],[112],[62,115,116,117,172,174,241,243,244,245,246,250],[115],[77,85,86,118,119,121,228,229,242],[110,118,121,227,242],[53,243],[53,54,61,62,77,86,118,242],[54,117,171],[177],[115,177,178],[54,117,178],[115,173],[53,114,115,117],[53,114,115,117,173],[53,117,173],[115,117],[53,54,114,115,117],[54,62,115,173,242],[54,115,117,243],[115,174,175,176,179,180,181,182,183,185,186,187,188,189,192,193,194,195,196,198,199,200,201,202,203,205,206,209,211,212,213,215,218,219,220,221,223,224,225],[54,114,115,242],[114,115,117,242],[116,174,175,176,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221],[53,54,115,117,173],[53,115],[54,115],[53,54,115,242],[53,115,117,242],[53,114,251],[53,54,117,126,172],[62],[54,62],[62,244],[62,242],[53,112],[63,77,110,111,113,117,241],[53,54,62,114,117,242],[53,54,62,115,116,242,243]],"referencedMap":[[267,1],[171,2],[129,3],[128,4],[133,5],[169,6],[168,7],[130,8],[131,9],[135,9],[134,10],[132,11],[166,12],[164,8],[170,13],[136,14],[141,8],[143,8],[138,8],[139,14],[145,8],[146,15],[137,8],[142,8],[144,8],[140,8],[160,16],[159,8],[161,17],[155,8],[157,8],[156,8],[152,8],[158,18],[153,8],[154,19],[147,8],[148,8],[149,8],[150,8],[151,8],[270,20],[266,1],[268,21],[269,1],[271,22],[272,23],[274,24],[275,25],[283,26],[52,27],[40,28],[41,29],[39,30],[42,31],[43,32],[44,33],[45,34],[46,35],[47,36],[48,37],[49,38],[50,39],[51,40],[110,41],[289,42],[108,43],[278,44],[280,45],[279,44],[282,46],[56,47],[61,48],[58,49],[60,49],[57,50],[64,51],[66,52],[67,53],[68,54],[69,55],[70,56],[71,57],[72,58],[73,59],[74,60],[75,61],[76,62],[77,63],[78,64],[79,65],[80,66],[81,67],[107,68],[82,69],[83,70],[84,71],[85,72],[86,73],[87,74],[88,75],[89,76],[90,77],[91,78],[92,79],[93,80],[94,81],[95,82],[96,83],[97,84],[98,85],[99,86],[100,87],[101,88],[102,89],[103,90],[104,91],[105,92],[258,93],[259,93],[260,93],[261,93],[262,93],[263,94],[264,95],[257,96],[249,97],[124,98],[238,99],[239,100],[121,101],[241,102],[240,103],[125,98],[123,98],[122,104],[118,105],[120,106],[234,107],[232,108],[231,109],[235,110],[233,107],[237,111],[236,111],[253,112],[254,113],[256,114],[113,115],[255,116],[116,117],[230,118],[229,98],[228,119],[54,120],[243,121],[172,122],[178,123],[179,124],[177,125],[194,126],[192,126],[195,126],[201,126],[213,127],[185,128],[215,108],[209,127],[221,129],[220,129],[186,130],[175,130],[176,130],[196,128],[180,127],[188,127],[211,128],[181,127],[202,131],[200,127],[212,128],[183,127],[199,127],[187,130],[219,127],[206,127],[198,130],[182,127],[218,107],[205,130],[174,132],[193,126],[189,127],[203,133],[223,117],[226,134],[247,135],[224,136],[225,136],[204,117],[222,137],[207,117],[184,117],[208,138],[190,117],[191,117],[214,139],[210,117],[197,140],[248,141],[216,142],[217,142],[252,143],[173,144],[245,145],[244,146],[246,147],[250,148],[114,149],[242,150],[115,151],[117,152]],"exportedModulesMap":[[267,1],[171,2],[129,3],[128,4],[133,5],[169,6],[168,7],[130,8],[131,9],[135,9],[134,10],[132,11],[166,12],[164,8],[170,13],[136,14],[141,8],[143,8],[138,8],[139,14],[145,8],[146,15],[137,8],[142,8],[144,8],[140,8],[160,16],[159,8],[161,17],[155,8],[157,8],[156,8],[152,8],[158,18],[153,8],[154,19],[147,8],[148,8],[149,8],[150,8],[151,8],[270,20],[266,1],[268,21],[269,1],[271,22],[272,23],[274,24],[275,25],[283,26],[52,27],[40,28],[41,29],[39,30],[42,31],[43,32],[44,33],[45,34],[46,35],[47,36],[48,37],[49,38],[50,39],[51,40],[110,41],[289,42],[108,43],[278,44],[280,45],[279,44],[282,46],[56,47],[61,48],[58,49],[60,49],[57,50],[64,51],[66,52],[67,53],[68,54],[69,55],[70,56],[71,57],[72,58],[73,59],[74,60],[75,61],[76,62],[77,63],[78,64],[79,65],[80,66],[81,67],[107,68],[82,69],[83,70],[84,71],[85,72],[86,73],[87,74],[88,75],[89,76],[90,77],[91,78],[92,79],[93,80],[94,81],[95,82],[96,83],[97,84],[98,85],[99,86],[100,87],[101,88],[102,89],[103,90],[104,91],[105,92],[258,93],[259,93],[260,93],[261,93],[262,93],[263,94],[264,95],[257,96],[249,97],[124,98],[238,99],[239,100],[121,101],[241,102],[240,103],[125,98],[123,98],[122,104],[118,105],[120,106],[234,107],[232,108],[231,109],[235,110],[233,107],[237,111],[236,111],[253,112],[254,113],[256,114],[113,115],[255,116],[116,117],[230,118],[229,98],[228,119],[54,120],[243,121],[172,122],[178,123],[179,124],[177,125],[194,126],[192,126],[195,126],[201,126],[213,127],[185,128],[215,108],[209,127],[221,129],[220,129],[186,130],[175,130],[176,130],[196,128],[180,127],[188,127],[211,128],[181,127],[202,131],[200,127],[212,128],[183,127],[199,127],[187,130],[219,127],[206,127],[198,130],[182,127],[218,107],[205,130],[174,132],[193,126],[189,127],[203,133],[223,117],[226,134],[247,135],[224,136],[225,136],[204,117],[222,137],[207,117],[184,117],[208,138],[190,117],[191,117],[214,139],[210,117],[197,140],[248,141],[216,142],[217,142],[252,143],[173,144],[245,145],[244,146],[246,147],[250,148],[114,149],[242,150],[115,151],[117,152]],"semanticDiagnosticsPerFile":[267,265,171,127,129,128,133,169,165,168,130,131,135,134,132,166,164,170,162,163,136,141,143,138,139,145,146,137,142,144,140,160,159,161,155,157,156,152,158,153,154,147,148,149,150,151,270,266,268,269,271,272,273,274,275,283,126,112,284,52,40,41,39,42,43,44,45,46,47,48,49,50,51,63,109,110,285,111,286,287,288,289,119,108,276,278,280,279,277,282,281,9,8,2,10,11,12,13,14,15,16,17,3,4,21,18,19,20,22,23,24,5,25,26,27,28,6,29,30,31,32,7,37,33,34,35,36,1,38,167,59,56,61,58,55,60,57,64,66,67,68,69,70,71,72,73,74,75,76,77,78,65,106,79,80,81,107,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,258,259,260,261,262,263,264,257,249,124,238,239,121,241,240,125,123,122,118,120,234,232,231,235,233,237,236,253,254,256,113,255,116,230,229,227,228,54,243,172,178,179,177,194,192,195,201,213,185,215,209,221,220,186,175,176,196,180,188,211,181,202,200,212,183,199,187,219,206,198,182,218,205,174,193,189,203,223,226,247,224,225,204,222,207,184,208,190,191,214,210,197,248,216,217,252,173,62,245,244,246,250,251,53,114,242,115,117]},"version":"4.3.3"}