@redocly/openapi-core 1.0.0-beta.65 → 1.0.0-beta.66

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.
Files changed (45) hide show
  1. package/lib/config/all.js +8 -1
  2. package/lib/config/config.js +1 -1
  3. package/lib/index.d.ts +1 -1
  4. package/lib/index.js +2 -1
  5. package/lib/rules/common/info-license-url.js +1 -0
  6. package/lib/rules/common/no-http-verbs-in-paths.d.ts +2 -0
  7. package/lib/rules/common/no-http-verbs-in-paths.js +33 -0
  8. package/lib/rules/common/path-excludes-patterns.d.ts +2 -0
  9. package/lib/rules/common/path-excludes-patterns.js +22 -0
  10. package/lib/rules/common/path-segment-plural.d.ts +2 -0
  11. package/lib/rules/common/path-segment-plural.js +32 -0
  12. package/lib/rules/oas2/index.d.ts +5 -0
  13. package/lib/rules/oas2/index.js +10 -0
  14. package/lib/rules/oas2/request-mime-type.d.ts +2 -0
  15. package/lib/rules/oas2/request-mime-type.js +17 -0
  16. package/lib/rules/oas2/response-mime-type.d.ts +2 -0
  17. package/lib/rules/oas2/response-mime-type.js +17 -0
  18. package/lib/rules/oas3/index.js +10 -0
  19. package/lib/rules/oas3/request-mime-type.d.ts +2 -0
  20. package/lib/rules/oas3/request-mime-type.js +31 -0
  21. package/lib/rules/oas3/response-mime-type.d.ts +2 -0
  22. package/lib/rules/oas3/response-mime-type.js +31 -0
  23. package/lib/types/oas3_1.js +6 -0
  24. package/lib/utils.d.ts +10 -0
  25. package/lib/utils.js +65 -1
  26. package/package.json +4 -2
  27. package/src/__tests__/utils.test.ts +19 -1
  28. package/src/config/all.ts +8 -1
  29. package/src/config/config.ts +2 -2
  30. package/src/index.ts +1 -1
  31. package/src/rules/common/__tests__/info-license.test.ts +1 -1
  32. package/src/rules/common/info-license-url.ts +1 -0
  33. package/src/rules/common/no-http-verbs-in-paths.ts +36 -0
  34. package/src/rules/common/path-excludes-patterns.ts +23 -0
  35. package/src/rules/common/path-segment-plural.ts +31 -0
  36. package/src/rules/oas2/index.ts +10 -0
  37. package/src/rules/oas2/request-mime-type.ts +17 -0
  38. package/src/rules/oas2/response-mime-type.ts +17 -0
  39. package/src/rules/oas3/index.ts +10 -0
  40. package/src/rules/oas3/request-mime-type.ts +31 -0
  41. package/src/rules/oas3/response-mime-type.ts +31 -0
  42. package/src/rules/utils.ts +1 -1
  43. package/src/types/oas3_1.ts +7 -0
  44. package/src/utils.ts +75 -0
  45. package/tsconfig.tsbuildinfo +1 -1
package/lib/config/all.js CHANGED
@@ -12,6 +12,7 @@ exports.default = {
12
12
  'no-identical-paths': 'error',
13
13
  'no-ambiguous-paths': 'error',
14
14
  'no-path-trailing-slash': 'error',
15
+ 'path-segment-plural': 'error',
15
16
  'path-declaration-must-exist': 'error',
16
17
  'path-not-include-query': 'error',
17
18
  'path-parameters-defined': 'error',
@@ -29,6 +30,12 @@ exports.default = {
29
30
  'no-enum-type-mismatch': 'error',
30
31
  'boolean-parameter-prefixes': 'error',
31
32
  'paths-kebab-case': 'error',
33
+ 'no-http-verbs-in-paths': 'error',
34
+ 'path-excludes-patterns': {
35
+ severity: 'error',
36
+ patterns: [],
37
+ },
38
+ 'request-mime-type': 'error',
32
39
  spec: 'error',
33
40
  },
34
41
  oas3_0Rules: {
@@ -49,5 +56,5 @@ exports.default = {
49
56
  'no-unused-components': 'error',
50
57
  'no-undefined-server-variable': 'error',
51
58
  'no-servers-empty-enum': 'error',
52
- }
59
+ },
53
60
  };
@@ -73,7 +73,7 @@ class LintConfig {
73
73
  const ignoreFile = path.join(dir, exports.IGNORE_FILE);
74
74
  const mapped = {};
75
75
  for (const absFileName of Object.keys(this.ignore)) {
76
- const ignoredRules = (mapped[path.relative(dir, absFileName)] = this.ignore[absFileName]);
76
+ const ignoredRules = (mapped[utils_1.slash(path.relative(dir, absFileName))] = this.ignore[absFileName]);
77
77
  for (const ruleId of Object.keys(ignoredRules)) {
78
78
  ignoredRules[ruleId] = Array.from(ignoredRules[ruleId]);
79
79
  }
package/lib/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { BundleOutputFormat, readFileFromUrl } from './utils';
1
+ export { BundleOutputFormat, readFileFromUrl, slash } from './utils';
2
2
  export { Oas3_1Types } from './types/oas3_1';
3
3
  export { Oas3Types } from './types/oas3';
4
4
  export { Oas2Types } from './types/oas2';
package/lib/index.js CHANGED
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.bundleDocument = exports.bundle = exports.lintConfig = exports.lintFromString = exports.lintDocument = exports.validate = exports.lint = exports.getTotals = exports.formatProblems = exports.getLineColLocation = exports.getAstNodeByPointer = exports.walkDocument = exports.normalizeVisitors = exports.OasVersion = exports.openAPIMajor = exports.OasMajorVersion = exports.detectOpenAPI = exports.unescapePointer = exports.stringifyYaml = exports.parseYaml = exports.makeDocumentFromString = exports.YamlParseError = exports.ResolveError = exports.resolveDocument = exports.BaseResolver = exports.Source = exports.RedoclyClient = exports.loadConfig = exports.IGNORE_FILE = exports.LintConfig = exports.Config = exports.Stats = exports.normalizeTypes = exports.ConfigTypes = exports.Oas2Types = exports.Oas3Types = exports.Oas3_1Types = exports.readFileFromUrl = void 0;
3
+ exports.bundleDocument = exports.bundle = exports.lintConfig = exports.lintFromString = exports.lintDocument = exports.validate = exports.lint = exports.getTotals = exports.formatProblems = exports.getLineColLocation = exports.getAstNodeByPointer = exports.walkDocument = exports.normalizeVisitors = exports.OasVersion = exports.openAPIMajor = exports.OasMajorVersion = exports.detectOpenAPI = exports.unescapePointer = exports.stringifyYaml = exports.parseYaml = exports.makeDocumentFromString = exports.YamlParseError = exports.ResolveError = exports.resolveDocument = exports.BaseResolver = exports.Source = exports.RedoclyClient = exports.loadConfig = exports.IGNORE_FILE = exports.LintConfig = exports.Config = exports.Stats = exports.normalizeTypes = exports.ConfigTypes = exports.Oas2Types = exports.Oas3Types = exports.Oas3_1Types = exports.slash = exports.readFileFromUrl = void 0;
4
4
  var utils_1 = require("./utils");
5
5
  Object.defineProperty(exports, "readFileFromUrl", { enumerable: true, get: function () { return utils_1.readFileFromUrl; } });
6
+ Object.defineProperty(exports, "slash", { enumerable: true, get: function () { return utils_1.slash; } });
6
7
  var oas3_1_1 = require("./types/oas3_1");
7
8
  Object.defineProperty(exports, "Oas3_1Types", { enumerable: true, get: function () { return oas3_1_1.Oas3_1Types; } });
8
9
  var oas3_1 = require("./types/oas3");
@@ -8,6 +8,7 @@ const InfoLicense = () => {
8
8
  if (!info.license) {
9
9
  report({
10
10
  message: utils_1.missingRequiredField('Info', 'license'),
11
+ location: { reportOnKey: true }
11
12
  });
12
13
  }
13
14
  },
@@ -0,0 +1,2 @@
1
+ import { Oas3Rule, Oas2Rule } from '../../visitors';
2
+ export declare const NoHttpVerbsInPaths: Oas3Rule | Oas2Rule;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NoHttpVerbsInPaths = void 0;
4
+ const utils_1 = require("../../utils");
5
+ const httpMethods = ['get', 'head', 'post', 'put', 'patch', 'delete', 'options', 'trace'];
6
+ const NoHttpVerbsInPaths = ({ splitIntoWords }) => {
7
+ return {
8
+ PathItem(_path, { key, report, location }) {
9
+ const pathKey = key.toString();
10
+ if (!pathKey.startsWith('/'))
11
+ return;
12
+ const pathSegments = pathKey.split('/');
13
+ for (const pathSegment of pathSegments) {
14
+ if (!pathSegment || utils_1.isPathParameter(pathSegment))
15
+ continue;
16
+ const isHttpMethodIncluded = (method) => {
17
+ return splitIntoWords
18
+ ? utils_1.splitCamelCaseIntoWords(pathSegment).has(method)
19
+ : pathSegment.toLocaleLowerCase().includes(method);
20
+ };
21
+ for (const method of httpMethods) {
22
+ if (isHttpMethodIncluded(method)) {
23
+ report({
24
+ message: `path \`${pathKey}\` should not contain http verb ${method}`,
25
+ location: location.key(),
26
+ });
27
+ }
28
+ }
29
+ }
30
+ },
31
+ };
32
+ };
33
+ exports.NoHttpVerbsInPaths = NoHttpVerbsInPaths;
@@ -0,0 +1,2 @@
1
+ import { Oas2Rule, Oas3Rule } from '../../visitors';
2
+ export declare const PathExcludesPatterns: Oas3Rule | Oas2Rule;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PathExcludesPatterns = void 0;
4
+ const PathExcludesPatterns = ({ patterns }) => {
5
+ return {
6
+ PathItem(_path, { report, key, location }) {
7
+ if (!patterns)
8
+ throw new Error(`Parameter "patterns" is not provided for "path-excludes-patterns" rule`);
9
+ const pathKey = key.toString();
10
+ if (pathKey.startsWith('/')) {
11
+ const matches = patterns.filter((pattern) => pathKey.match(pattern));
12
+ for (const match of matches) {
13
+ report({
14
+ message: `path \`${pathKey}\` should not match regex pattern: \`${match}\``,
15
+ location: location.key(),
16
+ });
17
+ }
18
+ }
19
+ },
20
+ };
21
+ };
22
+ exports.PathExcludesPatterns = PathExcludesPatterns;
@@ -0,0 +1,2 @@
1
+ import { Oas3Rule, Oas2Rule } from '../../visitors';
2
+ export declare const PathSegmentPlural: Oas3Rule | Oas2Rule;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PathSegmentPlural = void 0;
4
+ const utils_1 = require("../../utils");
5
+ const PathSegmentPlural = (opts) => {
6
+ const { ignoreLastPathSegment, exceptions } = opts;
7
+ return {
8
+ PathItem: {
9
+ leave(_path, { report, key, location }) {
10
+ const pathKey = key.toString();
11
+ if (pathKey.startsWith('/')) {
12
+ const pathSegments = pathKey.split('/');
13
+ pathSegments.shift();
14
+ if (ignoreLastPathSegment && pathSegments.length > 1) {
15
+ pathSegments.pop();
16
+ }
17
+ for (const pathSegment of pathSegments) {
18
+ if (exceptions && exceptions.includes(pathSegment))
19
+ continue;
20
+ if (!utils_1.isPathParameter(pathSegment) && utils_1.isSingular(pathSegment)) {
21
+ report({
22
+ message: `path segment \`${pathSegment}\` should be plural.`,
23
+ location: location.key(),
24
+ });
25
+ }
26
+ }
27
+ }
28
+ },
29
+ },
30
+ };
31
+ };
32
+ exports.PathSegmentPlural = PathSegmentPlural;
@@ -30,6 +30,11 @@ export declare const rules: {
30
30
  'no-identical-paths': Oas2Rule;
31
31
  'no-ambiguous-paths': Oas2Rule;
32
32
  'path-http-verbs-order': Oas2Rule;
33
+ 'no-http-verbs-in-paths': Oas2Rule;
34
+ 'path-excludes-patterns': Oas2Rule;
35
+ 'request-mime-type': Oas2Rule;
36
+ 'response-mime-type': Oas2Rule;
37
+ 'path-segment-plural': Oas2Rule;
33
38
  };
34
39
  export declare const preprocessors: {};
35
40
  export declare const decorators: {
@@ -31,6 +31,11 @@ const no_identical_paths_1 = require("../common/no-identical-paths");
31
31
  const operation_operationId_1 = require("../common/operation-operationId");
32
32
  const operation_summary_1 = require("../common/operation-summary");
33
33
  const no_ambiguous_paths_1 = require("../common/no-ambiguous-paths");
34
+ const no_http_verbs_in_paths_1 = require("../common/no-http-verbs-in-paths");
35
+ const path_excludes_patterns_1 = require("../common/path-excludes-patterns");
36
+ const request_mime_type_1 = require("./request-mime-type");
37
+ const response_mime_type_1 = require("./response-mime-type");
38
+ const path_segment_plural_1 = require("../common/path-segment-plural");
34
39
  const operation_description_override_1 = require("../common/operation-description-override");
35
40
  const tag_description_override_1 = require("../common/tag-description-override");
36
41
  const info_description_override_1 = require("../common/info-description-override");
@@ -65,6 +70,11 @@ exports.rules = {
65
70
  'no-identical-paths': no_identical_paths_1.NoIdenticalPaths,
66
71
  'no-ambiguous-paths': no_ambiguous_paths_1.NoAmbiguousPaths,
67
72
  'path-http-verbs-order': path_http_verbs_order_1.PathHttpVerbsOrder,
73
+ 'no-http-verbs-in-paths': no_http_verbs_in_paths_1.NoHttpVerbsInPaths,
74
+ 'path-excludes-patterns': path_excludes_patterns_1.PathExcludesPatterns,
75
+ 'request-mime-type': request_mime_type_1.RequestMimeType,
76
+ 'response-mime-type': response_mime_type_1.ResponseMimeType,
77
+ 'path-segment-plural': path_segment_plural_1.PathSegmentPlural,
68
78
  };
69
79
  exports.preprocessors = {};
70
80
  exports.decorators = {
@@ -0,0 +1,2 @@
1
+ import { Oas2Rule } from '../../visitors';
2
+ export declare const RequestMimeType: Oas2Rule;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RequestMimeType = void 0;
4
+ const utils_1 = require("../../utils");
5
+ const RequestMimeType = ({ allowedValues }) => {
6
+ return {
7
+ DefinitionRoot(root, ctx) {
8
+ utils_1.validateMimeType({ type: 'consumes', value: root }, ctx, allowedValues);
9
+ },
10
+ Operation: {
11
+ leave(operation, ctx) {
12
+ utils_1.validateMimeType({ type: 'consumes', value: operation }, ctx, allowedValues);
13
+ },
14
+ },
15
+ };
16
+ };
17
+ exports.RequestMimeType = RequestMimeType;
@@ -0,0 +1,2 @@
1
+ import { Oas2Rule } from '../../visitors';
2
+ export declare const ResponseMimeType: Oas2Rule;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ResponseMimeType = void 0;
4
+ const utils_1 = require("../../utils");
5
+ const ResponseMimeType = ({ allowedValues }) => {
6
+ return {
7
+ DefinitionRoot(root, ctx) {
8
+ utils_1.validateMimeType({ type: 'produces', value: root }, ctx, allowedValues);
9
+ },
10
+ Operation: {
11
+ leave(operation, ctx) {
12
+ utils_1.validateMimeType({ type: 'produces', value: operation }, ctx, allowedValues);
13
+ },
14
+ },
15
+ };
16
+ };
17
+ exports.ResponseMimeType = ResponseMimeType;
@@ -39,9 +39,14 @@ const operation_operationId_1 = require("../common/operation-operationId");
39
39
  const operation_summary_1 = require("../common/operation-summary");
40
40
  const no_ambiguous_paths_1 = require("../common/no-ambiguous-paths");
41
41
  const no_servers_empty_enum_1 = require("./no-servers-empty-enum");
42
+ const no_http_verbs_in_paths_1 = require("../common/no-http-verbs-in-paths");
43
+ const request_mime_type_1 = require("./request-mime-type");
44
+ const response_mime_type_1 = require("./response-mime-type");
45
+ const path_segment_plural_1 = require("../common/path-segment-plural");
42
46
  const operation_description_override_1 = require("../common/operation-description-override");
43
47
  const tag_description_override_1 = require("../common/tag-description-override");
44
48
  const info_description_override_1 = require("../common/info-description-override");
49
+ const path_excludes_patterns_1 = require("../common/path-excludes-patterns");
45
50
  exports.rules = {
46
51
  spec: spec_1.OasSpec,
47
52
  'info-description': info_description_1.InfoDescription,
@@ -81,6 +86,11 @@ exports.rules = {
81
86
  'no-ambiguous-paths': no_ambiguous_paths_1.NoAmbiguousPaths,
82
87
  'no-undefined-server-variable': no_undefined_server_variable_1.NoUndefinedServerVariable,
83
88
  'no-servers-empty-enum': no_servers_empty_enum_1.NoEmptyEnumServers,
89
+ 'no-http-verbs-in-paths': no_http_verbs_in_paths_1.NoHttpVerbsInPaths,
90
+ 'path-excludes-patterns': path_excludes_patterns_1.PathExcludesPatterns,
91
+ 'request-mime-type': request_mime_type_1.RequestMimeType,
92
+ 'response-mime-type': response_mime_type_1.ResponseMimeType,
93
+ 'path-segment-plural': path_segment_plural_1.PathSegmentPlural,
84
94
  };
85
95
  exports.preprocessors = {};
86
96
  exports.decorators = {
@@ -0,0 +1,2 @@
1
+ import { Oas3Rule } from '../../visitors';
2
+ export declare const RequestMimeType: Oas3Rule;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RequestMimeType = void 0;
4
+ const utils_1 = require("../../utils");
5
+ const RequestMimeType = ({ allowedValues }) => {
6
+ return {
7
+ PathMap: {
8
+ RequestBody: {
9
+ leave(requestBody, ctx) {
10
+ utils_1.validateMimeTypeOAS3({ type: 'consumes', value: requestBody }, ctx, allowedValues);
11
+ },
12
+ },
13
+ Callback: {
14
+ RequestBody() { },
15
+ Response: {
16
+ leave(response, ctx) {
17
+ utils_1.validateMimeTypeOAS3({ type: 'consumes', value: response }, ctx, allowedValues);
18
+ },
19
+ },
20
+ },
21
+ },
22
+ WebhooksMap: {
23
+ Response: {
24
+ leave(response, ctx) {
25
+ utils_1.validateMimeTypeOAS3({ type: 'consumes', value: response }, ctx, allowedValues);
26
+ },
27
+ },
28
+ },
29
+ };
30
+ };
31
+ exports.RequestMimeType = RequestMimeType;
@@ -0,0 +1,2 @@
1
+ import { Oas3Rule } from '../../visitors';
2
+ export declare const ResponseMimeType: Oas3Rule;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ResponseMimeType = void 0;
4
+ const utils_1 = require("../../utils");
5
+ const ResponseMimeType = ({ allowedValues }) => {
6
+ return {
7
+ PathMap: {
8
+ Response: {
9
+ leave(response, ctx) {
10
+ utils_1.validateMimeTypeOAS3({ type: 'produces', value: response }, ctx, allowedValues);
11
+ },
12
+ },
13
+ Callback: {
14
+ Response() { },
15
+ RequestBody: {
16
+ leave(requestBody, ctx) {
17
+ utils_1.validateMimeTypeOAS3({ type: 'produces', value: requestBody }, ctx, allowedValues);
18
+ },
19
+ },
20
+ },
21
+ },
22
+ WebhooksMap: {
23
+ RequestBody: {
24
+ leave(requestBody, ctx) {
25
+ utils_1.validateMimeTypeOAS3({ type: 'produces', value: requestBody }, ctx, allowedValues);
26
+ },
27
+ },
28
+ },
29
+ };
30
+ };
31
+ exports.ResponseMimeType = ResponseMimeType;
@@ -94,6 +94,12 @@ const Operation = {
94
94
  };
95
95
  const Schema = {
96
96
  properties: {
97
+ $id: { type: 'string' },
98
+ id: { type: 'string' },
99
+ $schema: { type: 'string' },
100
+ definitions: 'NamedSchemas',
101
+ $defs: 'NamedSchemas',
102
+ $vocabulary: { type: 'string' },
97
103
  externalDocs: 'ExternalDocs',
98
104
  discriminator: 'Discriminator',
99
105
  myArbitraryKeyword: { type: 'boolean' },
package/lib/utils.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { HttpResolveConfig } from './config/config';
2
+ import { UserContext } from './walk';
2
3
  export { parseYaml, stringifyYaml } from './js-yaml';
3
4
  export declare type StackFrame<T> = {
4
5
  prev: StackFrame<T> | null;
@@ -22,4 +23,13 @@ export declare function readFileFromUrl(url: string, config: HttpResolveConfig):
22
23
  export declare function match(url: string, pattern: string): boolean;
23
24
  export declare function pickObjectProps<T extends Record<string, unknown>>(object: T, keys: Array<string>): T;
24
25
  export declare function omitObjectProps<T extends Record<string, unknown>>(object: T, keys: Array<string>): T;
26
+ export declare function splitCamelCaseIntoWords(str: string): Set<string>;
27
+ export declare function validateMimeType({ type, value }: any, { report, location }: UserContext, allowedValues: string[]): void;
28
+ export declare function validateMimeTypeOAS3({ type, value }: any, { report, location }: UserContext, allowedValues: string[]): void;
29
+ export declare function isSingular(path: string): boolean;
25
30
  export declare function readFileAsStringSync(filePath: string): string;
31
+ export declare function isPathParameter(pathSegment: string): boolean;
32
+ /**
33
+ * Convert Windows backslash paths to slash paths: foo\\bar ➔ foo/bar
34
+ */
35
+ export declare function slash(path: string): string;
package/lib/utils.js CHANGED
@@ -9,10 +9,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.readFileAsStringSync = exports.omitObjectProps = exports.pickObjectProps = exports.match = exports.readFileFromUrl = exports.isPlainObject = exports.notUndefined = exports.loadYaml = exports.popStack = exports.pushStack = exports.stringifyYaml = exports.parseYaml = void 0;
12
+ exports.slash = exports.isPathParameter = exports.readFileAsStringSync = exports.isSingular = exports.validateMimeTypeOAS3 = exports.validateMimeType = exports.splitCamelCaseIntoWords = exports.omitObjectProps = exports.pickObjectProps = exports.match = exports.readFileFromUrl = 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
+ const pluralize = require("pluralize");
16
17
  const js_yaml_1 = require("./js-yaml");
17
18
  var js_yaml_2 = require("./js-yaml");
18
19
  Object.defineProperty(exports, "parseYaml", { enumerable: true, get: function () { return js_yaml_2.parseYaml; } });
@@ -76,7 +77,70 @@ function omitObjectProps(object, keys) {
76
77
  return Object.fromEntries(Object.entries(object).filter(([key]) => !keys.includes(key)));
77
78
  }
78
79
  exports.omitObjectProps = omitObjectProps;
80
+ function splitCamelCaseIntoWords(str) {
81
+ const camel = str
82
+ .split(/(?:[-._])|([A-Z][a-z]+)/)
83
+ .filter(Boolean)
84
+ .map((item) => item.toLocaleLowerCase());
85
+ const caps = str
86
+ .split(/([A-Z]{2,})/)
87
+ .filter((e) => e && e === e.toUpperCase())
88
+ .map((item) => item.toLocaleLowerCase());
89
+ return new Set([...camel, ...caps]);
90
+ }
91
+ exports.splitCamelCaseIntoWords = splitCamelCaseIntoWords;
92
+ function validateMimeType({ type, value }, { report, location }, allowedValues) {
93
+ const ruleType = type === 'consumes' ? 'request' : 'response';
94
+ if (!allowedValues)
95
+ throw new Error(`Parameter "allowedValues" is not provided for "${ruleType}-mime-type" rule`);
96
+ if (!value[type])
97
+ return;
98
+ for (const mime of value[type]) {
99
+ if (!allowedValues.includes(mime)) {
100
+ report({
101
+ message: `Mime type "${mime}" is not allowed`,
102
+ location: location.child(value[type].indexOf(mime)).key(),
103
+ });
104
+ }
105
+ }
106
+ }
107
+ exports.validateMimeType = validateMimeType;
108
+ function validateMimeTypeOAS3({ type, value }, { report, location }, allowedValues) {
109
+ const ruleType = type === 'consumes' ? 'request' : 'response';
110
+ if (!allowedValues)
111
+ throw new Error(`Parameter "allowedValues" is not provided for "${ruleType}-mime-type" rule`);
112
+ if (!value.content)
113
+ return;
114
+ for (const mime of Object.keys(value.content)) {
115
+ if (!allowedValues.includes(mime)) {
116
+ report({
117
+ message: `Mime type "${mime}" is not allowed`,
118
+ location: location.child('content').child(mime).key(),
119
+ });
120
+ }
121
+ }
122
+ }
123
+ exports.validateMimeTypeOAS3 = validateMimeTypeOAS3;
124
+ function isSingular(path) {
125
+ return pluralize.isSingular(path);
126
+ }
127
+ exports.isSingular = isSingular;
79
128
  function readFileAsStringSync(filePath) {
80
129
  return fs.readFileSync(filePath, 'utf-8');
81
130
  }
82
131
  exports.readFileAsStringSync = readFileAsStringSync;
132
+ function isPathParameter(pathSegment) {
133
+ return pathSegment.startsWith('{') && pathSegment.endsWith('{');
134
+ }
135
+ exports.isPathParameter = isPathParameter;
136
+ /**
137
+ * Convert Windows backslash paths to slash paths: foo\\bar ➔ foo/bar
138
+ */
139
+ function slash(path) {
140
+ const isExtendedLengthPath = /^\\\\\?\\/.test(path);
141
+ if (isExtendedLengthPath) {
142
+ return path;
143
+ }
144
+ return path.replace(/\\/g, '/');
145
+ }
146
+ exports.slash = slash;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/openapi-core",
3
- "version": "1.0.0-beta.65",
3
+ "version": "1.0.0-beta.66",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "engines": {
@@ -30,7 +30,7 @@
30
30
  "Andriy Leliv <andriy@redoc.ly> (https://redoc.ly/)"
31
31
  ],
32
32
  "dependencies": {
33
- "@redocly/ajv": "^8.6.2",
33
+ "@redocly/ajv": "^8.6.4",
34
34
  "@types/node": "^14.11.8",
35
35
  "colorette": "^1.2.0",
36
36
  "js-levenshtein": "^1.1.6",
@@ -38,6 +38,7 @@
38
38
  "lodash.isequal": "^4.5.0",
39
39
  "minimatch": "^3.0.4",
40
40
  "node-fetch": "^2.6.1",
41
+ "pluralize": "^8.0.0",
41
42
  "yaml-ast-parser": "0.0.43"
42
43
  },
43
44
  "devDependencies": {
@@ -46,6 +47,7 @@
46
47
  "@types/lodash.isequal": "^4.5.5",
47
48
  "@types/minimatch": "^3.0.3",
48
49
  "@types/node-fetch": "^2.5.7",
50
+ "@types/pluralize": "^0.0.29",
49
51
  "typescript": "^4.0.5"
50
52
  }
51
53
  }
@@ -1,4 +1,4 @@
1
- import { pickObjectProps, omitObjectProps } from '../utils';
1
+ import { pickObjectProps, omitObjectProps, slash } from '../utils';
2
2
 
3
3
  describe('utils', () => {
4
4
  const testObject = {
@@ -53,4 +53,22 @@ describe('utils', () => {
53
53
  expect(omitObjectProps({}, ['d', 'e'])).toStrictEqual({});
54
54
  });
55
55
  });
56
+
57
+ describe('slash path', () => {
58
+ it('can correctly slash path', () => {
59
+ [
60
+ ['foo\\bar', 'foo/bar'],
61
+ ['foo/bar', 'foo/bar'],
62
+ ['foo\\中文', 'foo/中文'],
63
+ ['foo/中文', 'foo/中文'],
64
+ ].forEach(([path, expectRes]) => {
65
+ expect(slash(path)).toBe(expectRes);
66
+ });
67
+ });
68
+
69
+ it('does not modify extended length paths', () => {
70
+ const extended = '\\\\?\\some\\path';
71
+ expect(slash(extended)).toBe(extended);
72
+ });
73
+ });
56
74
  });
package/src/config/all.ts CHANGED
@@ -12,6 +12,7 @@ export default {
12
12
  'no-identical-paths': 'error',
13
13
  'no-ambiguous-paths': 'error',
14
14
  'no-path-trailing-slash': 'error',
15
+ 'path-segment-plural': 'error',
15
16
  'path-declaration-must-exist': 'error',
16
17
  'path-not-include-query': 'error',
17
18
  'path-parameters-defined': 'error',
@@ -29,6 +30,12 @@ export default {
29
30
  'no-enum-type-mismatch': 'error',
30
31
  'boolean-parameter-prefixes': 'error',
31
32
  'paths-kebab-case': 'error',
33
+ 'no-http-verbs-in-paths': 'error',
34
+ 'path-excludes-patterns': {
35
+ severity: 'error',
36
+ patterns: [],
37
+ },
38
+ 'request-mime-type': 'error',
32
39
  spec: 'error',
33
40
  },
34
41
  oas3_0Rules: {
@@ -49,5 +56,5 @@ export default {
49
56
  'no-unused-components': 'error',
50
57
  'no-undefined-server-variable': 'error',
51
58
  'no-servers-empty-enum': 'error',
52
- }
59
+ },
53
60
  } as LintRawConfig;
@@ -4,7 +4,7 @@ import { dirname } from 'path';
4
4
  import { red, blue } from 'colorette';
5
5
 
6
6
  import { parseYaml, stringifyYaml } from '../js-yaml';
7
- import { notUndefined } from '../utils';
7
+ import { notUndefined, slash } from '../utils';
8
8
 
9
9
  import {
10
10
  OasVersion,
@@ -211,7 +211,7 @@ export class LintConfig {
211
211
  const ignoreFile = path.join(dir, IGNORE_FILE);
212
212
  const mapped: Record<string, any> = {};
213
213
  for (const absFileName of Object.keys(this.ignore)) {
214
- const ignoredRules = (mapped[path.relative(dir, absFileName)] = this.ignore[absFileName]);
214
+ const ignoredRules = (mapped[slash(path.relative(dir, absFileName))] = this.ignore[absFileName]);
215
215
  for (const ruleId of Object.keys(ignoredRules)) {
216
216
  ignoredRules[ruleId] = Array.from(ignoredRules[ruleId]) as any;
217
217
  }
package/src/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { BundleOutputFormat, readFileFromUrl } from './utils';
1
+ export { BundleOutputFormat, readFileFromUrl, slash } from './utils';
2
2
  export { Oas3_1Types } from './types/oas3_1';
3
3
  export { Oas3Types } from './types/oas3';
4
4
  export { Oas2Types } from './types/oas2';
@@ -27,7 +27,7 @@ describe('Oas3 info-license', () => {
27
27
  "location": Array [
28
28
  Object {
29
29
  "pointer": "#/info",
30
- "reportOnKey": false,
30
+ "reportOnKey": true,
31
31
  "source": "foobar.yaml",
32
32
  },
33
33
  ],
@@ -7,6 +7,7 @@ export const InfoLicense: Oas3Rule | Oas2Rule = () => {
7
7
  if (!info.license) {
8
8
  report({
9
9
  message: missingRequiredField('Info', 'license'),
10
+ location: { reportOnKey: true }
10
11
  });
11
12
  }
12
13
  },
@@ -0,0 +1,36 @@
1
+ import { Oas3Rule, Oas2Rule } from '../../visitors';
2
+ import { Oas2PathItem } from '../../typings/swagger';
3
+ import { Oas3PathItem } from '../../typings/openapi';
4
+ import { UserContext } from '../../walk';
5
+ import { isPathParameter, splitCamelCaseIntoWords } from '../../utils';
6
+
7
+ const httpMethods = ['get', 'head', 'post', 'put', 'patch', 'delete', 'options', 'trace'];
8
+
9
+ export const NoHttpVerbsInPaths: Oas3Rule | Oas2Rule = ({ splitIntoWords }) => {
10
+ return {
11
+ PathItem(_path: Oas2PathItem | Oas3PathItem, { key, report, location }: UserContext) {
12
+ const pathKey = key.toString();
13
+ if (!pathKey.startsWith('/')) return;
14
+ const pathSegments = pathKey.split('/');
15
+
16
+ for (const pathSegment of pathSegments) {
17
+ if (!pathSegment || isPathParameter(pathSegment)) continue;
18
+
19
+ const isHttpMethodIncluded = (method: string) => {
20
+ return splitIntoWords
21
+ ? splitCamelCaseIntoWords(pathSegment).has(method)
22
+ : pathSegment.toLocaleLowerCase().includes(method);
23
+ };
24
+
25
+ for (const method of httpMethods) {
26
+ if (isHttpMethodIncluded(method)) {
27
+ report({
28
+ message: `path \`${pathKey}\` should not contain http verb ${method}`,
29
+ location: location.key(),
30
+ });
31
+ }
32
+ }
33
+ }
34
+ },
35
+ };
36
+ };
@@ -0,0 +1,23 @@
1
+ import { Oas2Rule, Oas3Rule } from '../../visitors';
2
+ import { Oas2PathItem } from '../../typings/swagger';
3
+ import { Oas3PathItem } from '../../typings/openapi';
4
+ import { UserContext } from '../../walk';
5
+
6
+ export const PathExcludesPatterns: Oas3Rule | Oas2Rule = ({ patterns }) => {
7
+ return {
8
+ PathItem(_path: Oas2PathItem | Oas3PathItem, { report, key, location }: UserContext) {
9
+ if (!patterns)
10
+ throw new Error(`Parameter "patterns" is not provided for "path-excludes-patterns" rule`);
11
+ const pathKey = key.toString();
12
+ if (pathKey.startsWith('/')) {
13
+ const matches = patterns.filter((pattern: string) => pathKey.match(pattern));
14
+ for (const match of matches) {
15
+ report({
16
+ message: `path \`${pathKey}\` should not match regex pattern: \`${match}\``,
17
+ location: location.key(),
18
+ });
19
+ }
20
+ }
21
+ },
22
+ };
23
+ };
@@ -0,0 +1,31 @@
1
+ import { Oas3Rule, Oas2Rule } from '../../visitors';
2
+ import { UserContext } from '../../walk';
3
+ import { isPathParameter, isSingular } from '../../utils';
4
+
5
+ export const PathSegmentPlural: Oas3Rule | Oas2Rule = (opts) => {
6
+ const { ignoreLastPathSegment, exceptions } = opts;
7
+ return {
8
+ PathItem: {
9
+ leave(_path: any, { report, key, location }: UserContext) {
10
+ const pathKey = key.toString();
11
+ if (pathKey.startsWith('/')) {
12
+ const pathSegments = pathKey.split('/');
13
+ pathSegments.shift();
14
+ if (ignoreLastPathSegment && pathSegments.length > 1) {
15
+ pathSegments.pop();
16
+ }
17
+
18
+ for (const pathSegment of pathSegments) {
19
+ if (exceptions && exceptions.includes(pathSegment)) continue;
20
+ if (!isPathParameter(pathSegment) && isSingular(pathSegment)) {
21
+ report({
22
+ message: `path segment \`${pathSegment}\` should be plural.`,
23
+ location: location.key(),
24
+ });
25
+ }
26
+ }
27
+ }
28
+ },
29
+ },
30
+ };
31
+ };
@@ -29,6 +29,11 @@ import { NoIdenticalPaths } from '../common/no-identical-paths';
29
29
  import { OperationOperationId } from '../common/operation-operationId';
30
30
  import { OperationSummary } from '../common/operation-summary';
31
31
  import { NoAmbiguousPaths } from '../common/no-ambiguous-paths';
32
+ import { NoHttpVerbsInPaths } from '../common/no-http-verbs-in-paths';
33
+ import { PathExcludesPatterns } from '../common/path-excludes-patterns';
34
+ import { RequestMimeType } from './request-mime-type';
35
+ import { ResponseMimeType } from './response-mime-type';
36
+ import { PathSegmentPlural } from '../common/path-segment-plural';
32
37
  import { OperationDescriptionOverride } from '../common/operation-description-override';
33
38
  import { TagDescriptionOverride } from '../common/tag-description-override';
34
39
  import { InfoDescriptionOverride } from '../common/info-description-override';
@@ -64,6 +69,11 @@ export const rules = {
64
69
  'no-identical-paths': NoIdenticalPaths as Oas2Rule,
65
70
  'no-ambiguous-paths': NoAmbiguousPaths as Oas2Rule,
66
71
  'path-http-verbs-order': PathHttpVerbsOrder as Oas2Rule,
72
+ 'no-http-verbs-in-paths': NoHttpVerbsInPaths as Oas2Rule,
73
+ 'path-excludes-patterns': PathExcludesPatterns as Oas2Rule,
74
+ 'request-mime-type': RequestMimeType as Oas2Rule,
75
+ 'response-mime-type': ResponseMimeType as Oas2Rule,
76
+ 'path-segment-plural': PathSegmentPlural as Oas2Rule,
67
77
  };
68
78
 
69
79
  export const preprocessors = {};
@@ -0,0 +1,17 @@
1
+ import { Oas2Rule } from '../../visitors';
2
+ import { UserContext } from '../../walk';
3
+ import { Oas2Definition, Oas2Operation } from '../../typings/swagger';
4
+ import { validateMimeType } from '../../utils';
5
+
6
+ export const RequestMimeType: Oas2Rule = ({ allowedValues }) => {
7
+ return {
8
+ DefinitionRoot(root: Oas2Definition, ctx: UserContext) {
9
+ validateMimeType({ type: 'consumes', value: root }, ctx, allowedValues);
10
+ },
11
+ Operation: {
12
+ leave(operation: Oas2Operation, ctx: UserContext) {
13
+ validateMimeType({ type: 'consumes', value: operation }, ctx, allowedValues);
14
+ },
15
+ },
16
+ };
17
+ };
@@ -0,0 +1,17 @@
1
+ import { Oas2Rule } from '../../visitors';
2
+ import { UserContext } from '../../walk';
3
+ import { Oas2Definition, Oas2Operation } from '../../typings/swagger';
4
+ import { validateMimeType } from '../../utils';
5
+
6
+ export const ResponseMimeType: Oas2Rule = ({ allowedValues }) => {
7
+ return {
8
+ DefinitionRoot(root: Oas2Definition, ctx: UserContext) {
9
+ validateMimeType({ type: 'produces', value: root }, ctx, allowedValues);
10
+ },
11
+ Operation: {
12
+ leave(operation: Oas2Operation, ctx: UserContext) {
13
+ validateMimeType({ type: 'produces', value: operation }, ctx, allowedValues);
14
+ },
15
+ },
16
+ };
17
+ };
@@ -38,9 +38,14 @@ import { OperationOperationId } from '../common/operation-operationId';
38
38
  import { OperationSummary } from '../common/operation-summary';
39
39
  import { NoAmbiguousPaths } from '../common/no-ambiguous-paths';
40
40
  import { NoEmptyEnumServers } from './no-servers-empty-enum';
41
+ import { NoHttpVerbsInPaths } from '../common/no-http-verbs-in-paths';
42
+ import { RequestMimeType } from './request-mime-type';
43
+ import { ResponseMimeType } from './response-mime-type';
44
+ import { PathSegmentPlural } from '../common/path-segment-plural';
41
45
  import { OperationDescriptionOverride } from '../common/operation-description-override';
42
46
  import { TagDescriptionOverride } from '../common/tag-description-override';
43
47
  import { InfoDescriptionOverride } from '../common/info-description-override';
48
+ import { PathExcludesPatterns } from '../common/path-excludes-patterns';
44
49
 
45
50
  export const rules = {
46
51
  spec: OasSpec,
@@ -81,6 +86,11 @@ export const rules = {
81
86
  'no-ambiguous-paths': NoAmbiguousPaths,
82
87
  'no-undefined-server-variable': NoUndefinedServerVariable,
83
88
  'no-servers-empty-enum': NoEmptyEnumServers,
89
+ 'no-http-verbs-in-paths': NoHttpVerbsInPaths,
90
+ 'path-excludes-patterns': PathExcludesPatterns,
91
+ 'request-mime-type': RequestMimeType,
92
+ 'response-mime-type': ResponseMimeType,
93
+ 'path-segment-plural': PathSegmentPlural,
84
94
  } as Oas3RuleSet;
85
95
 
86
96
  export const preprocessors = {};
@@ -0,0 +1,31 @@
1
+ import { Oas3Rule } from '../../visitors';
2
+ import { UserContext } from '../../walk';
3
+ import { Oas3RequestBody, Oas3Response } from '../../typings/openapi';
4
+ import { validateMimeTypeOAS3 } from '../../utils';
5
+
6
+ export const RequestMimeType: Oas3Rule = ({ allowedValues }) => {
7
+ return {
8
+ PathMap: {
9
+ RequestBody: {
10
+ leave(requestBody: Oas3RequestBody, ctx: UserContext) {
11
+ validateMimeTypeOAS3({ type: 'consumes', value: requestBody }, ctx, allowedValues);
12
+ },
13
+ },
14
+ Callback: {
15
+ RequestBody() {},
16
+ Response: {
17
+ leave(response: Oas3Response, ctx: UserContext) {
18
+ validateMimeTypeOAS3({ type: 'consumes', value: response }, ctx, allowedValues);
19
+ },
20
+ },
21
+ },
22
+ },
23
+ WebhooksMap: {
24
+ Response: {
25
+ leave(response: Oas3Response, ctx: UserContext) {
26
+ validateMimeTypeOAS3({ type: 'consumes', value: response }, ctx, allowedValues);
27
+ },
28
+ },
29
+ },
30
+ };
31
+ };
@@ -0,0 +1,31 @@
1
+ import { Oas3Rule } from '../../visitors';
2
+ import { UserContext } from '../../walk';
3
+ import { Oas3RequestBody, Oas3Response } from '../../typings/openapi';
4
+ import { validateMimeTypeOAS3 } from '../../utils';
5
+
6
+ export const ResponseMimeType: Oas3Rule = ({ allowedValues }) => {
7
+ return {
8
+ PathMap: {
9
+ Response: {
10
+ leave(response: Oas3Response, ctx: UserContext) {
11
+ validateMimeTypeOAS3({ type: 'produces', value: response }, ctx, allowedValues);
12
+ },
13
+ },
14
+ Callback: {
15
+ Response() {},
16
+ RequestBody: {
17
+ leave(requestBody: Oas3RequestBody, ctx: UserContext) {
18
+ validateMimeTypeOAS3({ type: 'produces', value: requestBody }, ctx, allowedValues);
19
+ },
20
+ },
21
+ },
22
+ },
23
+ WebhooksMap: {
24
+ RequestBody: {
25
+ leave(requestBody: Oas3RequestBody, ctx: UserContext) {
26
+ validateMimeTypeOAS3({ type: 'produces', value: requestBody }, ctx, allowedValues);
27
+ },
28
+ },
29
+ },
30
+ };
31
+ };
@@ -79,4 +79,4 @@ export function getSuggest(given: string, variants: string[]): string[] {
79
79
 
80
80
  // if (bestMatch.distance <= 4) return bestMatch.string;
81
81
  return distances.map((d) => d.variant);
82
- }
82
+ }
@@ -97,6 +97,13 @@ const Operation: NodeType = {
97
97
 
98
98
  const Schema: NodeType = {
99
99
  properties: {
100
+ $id: { type: 'string' },
101
+ id: { type: 'string' },
102
+ $schema: { type: 'string' },
103
+ definitions: 'NamedSchemas',
104
+ $defs: 'NamedSchemas',
105
+ $vocabulary: { type: 'string' },
106
+
100
107
  externalDocs: 'ExternalDocs',
101
108
  discriminator: 'Discriminator',
102
109
  myArbitraryKeyword: { type: 'boolean' },
package/src/utils.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  import * as fs from 'fs';
2
2
  import * as minimatch from 'minimatch';
3
3
  import fetch from 'node-fetch';
4
+ import * as pluralize from 'pluralize';
4
5
 
5
6
  import { parseYaml } from './js-yaml';
6
7
  import { HttpResolveConfig } from './config/config';
8
+ import { UserContext } from './walk';
7
9
 
8
10
  export { parseYaml, stringifyYaml } from './js-yaml';
9
11
 
@@ -82,6 +84,79 @@ export function omitObjectProps<T extends Record<string, unknown>>(
82
84
  return Object.fromEntries(Object.entries(object).filter(([key]) => !keys.includes(key))) as T;
83
85
  }
84
86
 
87
+ export function splitCamelCaseIntoWords(str: string) {
88
+ const camel = str
89
+ .split(/(?:[-._])|([A-Z][a-z]+)/)
90
+ .filter(Boolean)
91
+ .map((item) => item.toLocaleLowerCase());
92
+ const caps = str
93
+ .split(/([A-Z]{2,})/)
94
+ .filter((e: string) => e && e === e.toUpperCase())
95
+ .map((item) => item.toLocaleLowerCase());
96
+ return new Set([...camel, ...caps]);
97
+ }
98
+
99
+ export function validateMimeType(
100
+ { type, value }: any,
101
+ { report, location }: UserContext,
102
+ allowedValues: string[],
103
+ ) {
104
+ const ruleType = type === 'consumes' ? 'request' : 'response';
105
+ if (!allowedValues)
106
+ throw new Error(`Parameter "allowedValues" is not provided for "${ruleType}-mime-type" rule`);
107
+ if (!value[type]) return;
108
+
109
+ for (const mime of value[type]) {
110
+ if (!allowedValues.includes(mime)) {
111
+ report({
112
+ message: `Mime type "${mime}" is not allowed`,
113
+ location: location.child(value[type].indexOf(mime)).key(),
114
+ });
115
+ }
116
+ }
117
+ }
118
+
119
+ export function validateMimeTypeOAS3(
120
+ { type, value }: any,
121
+ { report, location }: UserContext,
122
+ allowedValues: string[],
123
+ ) {
124
+ const ruleType = type === 'consumes' ? 'request' : 'response';
125
+ if (!allowedValues)
126
+ throw new Error(`Parameter "allowedValues" is not provided for "${ruleType}-mime-type" rule`);
127
+ if (!value.content) return;
128
+
129
+ for (const mime of Object.keys(value.content)) {
130
+ if (!allowedValues.includes(mime)) {
131
+ report({
132
+ message: `Mime type "${mime}" is not allowed`,
133
+ location: location.child('content').child(mime).key(),
134
+ });
135
+ }
136
+ }
137
+ }
138
+
139
+ export function isSingular(path: string) {
140
+ return pluralize.isSingular(path);
141
+ }
142
+
85
143
  export function readFileAsStringSync(filePath: string) {
86
144
  return fs.readFileSync(filePath, 'utf-8');
87
145
  }
146
+
147
+ export function isPathParameter(pathSegment: string) {
148
+ return pathSegment.startsWith('{') && pathSegment.endsWith('{');
149
+ }
150
+
151
+
152
+ /**
153
+ * Convert Windows backslash paths to slash paths: foo\\bar ➔ foo/bar
154
+ */
155
+ export function slash(path: string): string {
156
+ const isExtendedLengthPath = /^\\\\\?\\/.test(path)
157
+ if (isExtendedLengthPath) {
158
+ return path
159
+ }
160
+
161
+ return path.replace(/\\/g, '/');
162
+ }
@@ -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.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.string.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/js-yaml/index.d.ts","./src/js-yaml/index.ts","../../node_modules/colorette/index.d.ts","./src/typings/swagger.ts","./src/walk.ts","./src/visitors.ts","./src/oas-types.ts","./src/config/recommended.ts","./src/config/config.ts","./src/utils.ts","./src/resolve.ts","./src/types/oas3.ts","./src/types/oas2.ts","./src/types/oas3_1.ts","./src/config/rules.ts","./src/rules/no-unresolved-refs.ts","./src/bundle.ts","./src/types/redocly-yaml.ts","./src/typings/common.ts","./src/rules/other/stats.ts","./src/redocly/query.ts","./src/redocly/index.ts","./src/config/all.ts","./src/config/minimal.ts","../../node_modules/@types/js-levenshtein/index.d.ts","./src/rules/utils.ts","./src/rules/common/spec.ts","./src/rules/common/operation-2xx-response.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/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","../../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/oas3/no-invalid-media-type-examples.ts","./src/rules/common/registry-dependencies.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/operation-description-override.ts","./src/rules/common/tag-description-override.ts","./src/rules/common/info-description-override.ts","./src/rules/oas3/index.ts","./src/rules/oas2/boolean-parameter-prefixes.ts","./src/rules/oas2/index.ts","./src/rules/builtin.ts","./src/config/builtIn.ts","./src/config/load.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",{"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":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"506b80b9951c9381dc5f11897b31fca5e2a65731d96ddefa19687fbc26b23c6e","affectsGlobalScope":true},"675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","378df8bbbb9e3f6fca05d58f644aab538e1062eab5e778fb0b83d41125df246d","d88a479cccf787b4aa82362150fbeba5211a32dbfafa7b92ba6995ecaf9a1a89","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","c24ad9be9adf28f0927e3d9d9e9cec1c677022356f241ccbbfb97bfe8fb3d1a1","0ec0998e2d085e8ea54266f547976ae152c9dd6cdb9ac4d8a520a230f5ebae84","9364c7566b0be2f7b70ff5285eb34686f83ccb01bda529b82d23b2a844653bfb","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","ae9930989ed57478eb03b9b80ad3efa7a3eacdfeff0f78ecf7894c4963a64f93","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3e59f00ab03c33717b3130066d4debb272da90eeded4935ff0604c2bc25a5cae","9fa6b83a35e897f340858995ca5d77e901d89fd18644cd4c9e8a4afe0b2e6363",{"version":"0714e2046df66c0e93c3330d30dbc0565b3e8cd3ee302cf99e4ede6220e5fec8","affectsGlobalScope":true},"5e099389ceec44681b37d10470755cdc6d9f516851e53c731c6e7e17b39ad86f","a2c008d98ee0b91c5d1e072bc54e85ca454e41a02c75661f09f6c0cf521df632","48053f3ef2a787b638d9b7496ce062b9c13025b7465f9c0471674c2b1d95ec3f","8d1539367a9f5a03698f4c37111251eb76433ea8fcb5f1e546571b8513cac822","9ad71085f8ab35282a341995f85c6e06a19e6d5ab73b39f634b444ce8742a664","ee94d8f60c253d9994559ad325e9cb8a7af6bd36176884cb869ee5a40daa766c","606de01a4212a48518a219585f673504d3c0c26b361706006038a71bf8b9f42c","76de776e227ad01b703ce076b32177da31a765d5b5a681d5bb4c4e0f4876840f","aa4c984c8f2919742d06f305b1870bf180275cbe015490451a6374e6f6b9998a","46b9cdcd62e90f604876c143481ac7ff2c89cdfb902179bda0d8ee44c0695beb","b6af336aa092d644862e8bb0c5c387c448390f2455a789b9921fb7fcbb80367b","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","d555cd63a3fc837840db192596273fdf52fb28092b0a33bec98e89a0334b3a4c",{"version":"dc5f6951bbf5b544349cbdef895c08dee6929818abd27d7d53c38cf1209091b3","affectsGlobalScope":true},"85d545d430795d54a8b2896f67f9aeb7bf19fd74a1469ae0627311eb72f0dfa2","a473cf45c3d9809518f8af913312139d9f4db6887dc554e0d06d0f4e52722e6b","d5afcd002167b6b03d595fb8b9630a00456b6fb9d2c5e8b6aaa30cb31bc44e2b","3d68ecf05475492f041c88395372c3a01b30351619bebcd38287ab185be7f7e4",{"version":"a97ac401f6b334e9b1f6c8ee9319d6e21cc39d2f400e909805dfb8ab5eab0576","affectsGlobalScope":true},"45ac321f2e15d268fd74a90ddaa6467dcaaff2c5b13f95b4b85831520fb7a491","7674b65ac0a3b160232d84464b3486d727415581e5b99ff4aec324500adc98a4","87f16999a5832968485f6e20dd70529399143c3cf35003485020a037f338b75f","508e1e25ca40ea6cde332d3232c826fcd82f456f45ae535d817754684f048f9e",{"version":"2866a528b2708aa272ec3eaafd3c980abb23aec1ef831cfc5eb2186b98c37ce5","affectsGlobalScope":true},{"version":"8f8f6ee2a0c94077f79439f51640a625ac7e2f5dd6866bd3b5a41705c836adfc","affectsGlobalScope":true},"58dc2333abbaabe43b50a147d1732537e16f5b857152b96b6070122ecefb748c","e8d2d40a15313520a510409c8f3aeed28b79aab61af41ae65084570f9843b306","9700d148ccc0784923f66a3a7162e523172b530e8b3aa9834f53a6e893127c80","88587b5c94b0c4f5d78026e4beeb93383b3933c860d9840b55d6bf47d7b632bb","a473ecd14d9bafbd6a33105524b033237bbf1d6ce2cd81eb71cc54bec2d83d55","4e9f66d07d1687983ef1903654f4a4977563a0318046e893c5ecdb4dac25d376","0cff7901aedfe78e314f7d44088f07e2afa1b6e4f0473a4169b8456ca2fb245d","7a2a3ff87ffd4313a6a2f3b012e801dd249ee58152cedf90c8718dcd2c811fe3","69640cc2e76dad52daeb9914e6b70c5c9a5591a3a65190a2d3ea432cf0015e16","a39a4c527b7a2dc7a2661b711a534c10c76852c5ad6ae320767d3f7d2621b67d","1bb5c9857b2ee32c199dd85bc0f4c0299112485d6e5dc91428eabfdee0dbd68c",{"version":"5daba568741c8ed283d67bf370c626a91e09fdfbc6d4abe22a7f93e2cf5138b9","affectsGlobalScope":true},"7f77304372efe3c9967e5f9ea2061f1b4bf41dc3cda3c83cdd676f2e5af6b7e6","662661bbf9ccd869f3bca82d34234b2abdc95c657e2187c35352d42dddb24c2d","bec890dbc489a627439ad67330f9418d7f03aed29d1f874e5219a121da040cfa","4c4334eb5d8fae83416a361d787b55a5743916aed8af812a909898bc7333e709","6feb6f75a3e4e017f8e6e12740cf06f18eefcf829284fa310da6c7f4d44fb2eb","4fd3c4debadce3e9ab9dec3eb45f7f5e2e3d4ad65cf975a6d938d883cfb25a50","0953427f9c2498f71dd912fdd8a81b19cf6925de3e1ad67ab9a77b9a0f79bf0b","b709ff1f6d6235f5e9c8dcbce3e683ff24ec35046b232d5a281af083026018d1","7df562288f949945cf69c21cd912100c2afedeeb7cdb219085f7f4b46cb7dde4","9d16690485ff1eb4f6fc57aebe237728fd8e03130c460919da3a35f4d9bd97f5","ee6a154ecccde26b413e89c97a0b824f25b253c4c50a3c392bcb2b4c6ba9c314","d9a653f75614c4d3f63e88b7aae66390bf71a8cea02f5f7db8ca6c1a8e8c3f1a","a364b4a8a015ae377052fa4fac94204d79a69d879567f444c7ceff1b7a18482d","c5ec3b97d9db756c689cd11f4a11eaa9e6077b2768e3e9b54ff727a93c03a909","c14e9e86f18189c7d32b5dd03b4cf3f40bed68f0509dec06d75d41b82c065fe2","bdb07038733b2d74a75ba9c381dcb92774cd6f161ee125bfa921eae7d883ccc9","ad93e960a3a07dff7394bf0c8a558006a9ff2d0725ab28fc33dec227d4cb251e",{"version":"2708349d5a11a5c2e5f3a0765259ebe7ee00cdcc8161cb9990cb4910328442a1","affectsGlobalScope":true},"4362a776026a354985d9f2acc54b92630d8a084948ff9592ccd8f167276c5117","736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","208bb742e0f201470da121bc73847c74b62cff4172f38ae5949ae77d6c9c6b71","062bd2910098fc059ba93e347649b3e126c555f7b144033d21d3f8ef63d3e39b","686e548ae30250d62532c8cacb43fccc922b693408371bd3503563c4a0f28eed","4bfd17e3cb59395bfcb32f04a6437034c4fbe9984a3c4edabe3b7fa4a3ed348e","a456dd94a596de621bd25cf3c91278101ea62782c3ac4435aef9190a2336ddde","810fd22abaa35308a2e2abe82bbaf2864332680548a3ca1cec6a1bad1174e708","e67625007c3a6e796cd083c12a18b5e04c4dec4e97117bb2800dacb29f0b37fc","d7a7d87e9d46564706bb143afa3cfb509c7ee61e07720e90dcc6a848c17f079a","03a128cfb85c06ad01a4f7467346e0ae6c801ee6d5939907466d02e512761789","150f4e8079d3e8bdeb37aee7a3919d01f30c9e366e378388a692da8428e91586","e3261f6cadb029bb0e70d26466392b1a9448160538a9c2541fb36dbf728ba4e7","5d612e12750520ce0d0143f415fe7f82bbbdd5a31cd0c245fcaf689f5358dca7","8fb7aaf9e3abe80fb75769ceed9df8d653bd5cd864db9147a4f98114ff7ac0e8","aeb304db851b8309cb213778bffdc8a4006426c869e2488cce656dcb7872763a","61df3d80a97cc871e4c5837824ec9d9b8feb00e402c2744dc28a3ed5defd57bf","f7f74f4de065757b594569ee30e1c43ecc1e9c342896f494aedc8fd4c06cc31d","3989dd62591dc01e256c1553537693918450ef84da7f19a2e62cef52d5330d96","02b41251895e409555bc5688231b8c9801cf817b614bd7fa45c60b6ab5a415a4","a6c6b3d8c9a227c5a829ae7f623d8f258988c2e704715e0a38ba09dcf85f23ea","b97e11f65c49b2296e05637fa733fbe3d02e682605c1602eacdc6703aeb2b2e6","c528dad690c73e4f587cc897041ab729e20dc627c58ec0c2da9019a4e58a6c45","63ccc5dc211f97f78e352388c770a23b652ef408a8b337450c8a0c6d41fe26ea","4f2785ffaa3e8128484dd6525f2bc120ba08588907f45bfbb369023c8546bdaa","3ac4a2714c329c4805c311f182bf6d9fa9d7c56463950d5141ae61c12ba88383","06db5817264405b74afbbe9ff2f2e371c7cfe5278475864ffc3b27136125d975","1f683fda8fd8160d04770468c000b5a257bff3b7420700dad34dbc112418355c","15a58e61533036fb08dfd567fa7b1f799acdedf0cacf5cbc93bbed0f0520e87f","8c6e6807cec3720b21d4443d2e3f49714ca8b3f05e44195e05d6f4904c0e2573","4fa8794f32464ce397d6d88e4523530d7c695816fb6231c495ba71868575b48a","cc9f0665f4555a6f818dcaf79de44ff3f9e93211458548dd6260506e27b38025","e8b5d684b18772f93fd7ac85652a9dd8c3c4ac42d255ebc676ddd75d213a60eb","ebdf0fc327828cf8e59bcaec0b03a1f65dd5f5b4849636405b43e71fbdd014d4","88a90a39fde5c1d8021d1a1a9fd351018f3fad88beeb38881f06cbfaaa6b06fe","6e3a3b59f2b4ebf3c4ca906f7f56d3d53f707eda7ed10be0863029d814b51583","329318845916f35128387bb291f2f252ccc80fe968ae6f6ee7a7bd644b9af509","6188eef68c972ead267314945b8f8a059ee997c45d46180d088977d4849dd093","8e8d8e11136d8c5a59360e90455356a41c8006129f7e459fbbf8a4551379f23a","a959db7039a615c94a9c236d0664463fd8fcc7c08e68c01bd7de4b49116c2b2c","3144d082b0efd80551c4b9ff1dd29ba6b0f0bb0709d481ed5285313e0845ee36","a9319c8e234166988f24be3a12d8845a5d43f34d31f72621ca311384ee7a56ae","37106a318a9b70352fc7fb06ed9a31c218342402f194355ad7c3e83c226b8b84","ad56cfeb1a9c0ca0da5dc6f97552a866803b087baf50a2360f481b5747ca49cf","232fe9b0f859a921132d464999ff9d2f979e29636dfd2225989e638a43bc5630","679f01be7caf9e091684d1f0fdabc8837991ed589a4c2617c72799c4aed0b60e","a3f88fc187a30877572d86ca78bfbad1ce1f7f081a13f4a1a3de12fc19172763","244c79d63bdbd959a0b80d2a792ca4af5c9ad06d7a333451adf45e80cab4037f","099e32d949572f34338bcc5a9bf84b09966b5b347b0462154eaf1679968ff74e","b72ac783938f2f9522af3694262d6112b061c0fa2b8c4c5df226efd0550fcba9","efcf6bd086be2f68fc73f04109ce82b5d64b1a4b01606ecb28de046b8bafeb97","576815ad63894f88f18c36c239e23562b35033e0dab57ff665dc0410db4a8b54","d23b6230c10ffb27b8cec7f0aef6443f8736620ce07bf7a991efb02e0f599d42","53e922fc5556e9825e10ebc780ea40088404abb4f1a76251bb5fac18eb20fc93","20a5fe46b10fcfdbef32882afb98298121a734b05bfdb4e06e61ed476df76e62","d0b2d3ab2b3934d5ea2d1ca2973fce9c031bec115c37e437b32bad32c0d79196","b79ce369faacdc58665774b775f9c9604dfcc20216a0b66b4628225463b827c1","8434dc2a1f866e713703e6d8ccc85168d92c07049138a3f2895e63f1b0d0ff8a","d9be0ae1a460ba18c0bdeaa48ae1f6e637207796dd0b57afc540393b064db8df","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","6554a631612ff1c3d6d76a65d88b4d8889ad804cf6897c968fef4d1bcd3b005b","bddfd3a02c1dde94c33fe9f9e122559ae5b0f030e9350043b992e6dd16f561f7","d83f1778cc95256ae503c326ea6804cffef5e5d6310e0d8b8dc56a2107abc7ae","274814c52225bce5396c2c4968f2c1d1c08fb4e04b76bff0d9d070b35f23260e","9688010a836de8a1927fb20f325179c6ae3ee66a64a1d0e5c414b15502652359","56d135e85dcc15aa982d8ca85f8021859447db147c51123e3811b3a48cb7d90b","6c8a91aa5b37b93dbf757bd99da7befc145884a94dcfb5a74043b1df4d70bfec","a3515918d4a0b9f14b3fa2ce25e2468994f31a492107a6be31c7c19ac03b28f9","08f208c5084dc2ee9e2f78efba4c995d912e171fce3fb30c4c55c4f138751212","56aa78b45d55e0a7f63116bd779556e830c01b8d0da654cc562ff541fb38717d","74d5487b667f1e2507d0ba90f8e9c71ccb8e8650566cacebeb08c83e51e8a6aa","226946bff62ad09f3b82f788836344bf50cb5d99cf6e738a2d15d5cd4cf0a150","41d545e5d36083f5bf6432c93dc2d3cb29ed4f8deae03b9dec59c55e02fbe597","829e95cf247f90742949d99ca62d7e479fa8914df7b940c730c1f36ab3b7bb46","8d8956db63e0870eac5abd8d3dc7be74653bda46319a16d826b95c7b6b8dfd7c","726e9edb130daf3a096bb585e4aebfe7ef1ce473fc37bbe1d98e1d8b741e6db8","68b25c02cb0e209ea615289bdf85ded14b74e4d53f8316e83fcc6ab72d67ff16","cbfe93fd48a60da61b2ce41c1966ea54b3c7f76d270b31afb37543051d776e75","d9c0723e8c23b58e07b73b91bac2077cb9b04471fa0a0b70e29f17d4b8ea8902","c081be059f1d42bcf3606e9aed118f495ab439ec8ee4a22e7a2faa33c0cf2e6d","f067ee613fb755d5211b12a880c4a3ce200c536b12594bad9de2c72dfa52c74e","979077d3aff73c5ba2aeb12306d4b36cca483e43943f5e749cc9decd8b812f84","0b304d474cf6ac7fc79a8115c724eb2c68cc0f36bc8649155cd8a65808042ee9","225591c9bda5ab3e0756bce43f4d5d35d6f673968dd82d30792d4c3c182e4a20","413d72d18cd0ce2bf60ec34eb68377c1924db6430b75c43d6b3fe818e99766f6","15f2bb8c8dbd4101c1ff26ffaef79d2b6ddfc79a8fd29bcaf2c9ac777549a333","b50bf43d558b33dd01fe7bd57b8b68c025db666561e893c9f1d3154a9a8d05cc","07b3d20fc1026eefabe20dbd7ff759dcc4b5bbc2ed3f732a3a91c814c9f5354c","41476c129af01db7691ce3fda6a8a581a9636980ba5f831f72554934a7b05911","f82348f8ac4f637d6ad76ef5d45577ccc0c59fbd25d8c44d55349a71a90e195a","8dfed5c91ad36e69e6da6b7e49be929d4e19666db2b651aa839c485170a2902c","4aaf84a5ac87bad3211f041fab85de5cc42e5954c3ed56842faf6f08167e6202","93de1c6dab503f053efe8d304cb522bb3a89feab8c98f307a674a4fae04773e9","3b043cf9a81854a72963fdb57d1884fc4da1cf5be69b5e0a4c5b751e58cb6d88","d0b0a00cf31968a33baeaadf974ce4e5e7edf58cea5288765293f41ba5e72b3a","fd326577c62145816fe1acc306c734c2396487f76719d3785d4e825b34540b33","3ebae8c00411116a66fca65b08228ea0cf0b72724701f9b854442100aab55aba","de18acda71730bac52f4b256ce7511bb56cc21f6f114c59c46782eff2f632857","7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","d8aab31ba8e618cc3eea10b0945de81cb93b7e8150a013a482332263b9305322","69da61a7b5093dac77fa3bec8be95dcf9a74c95a0e9161edb98bb24e30e439d2","561eca7a381b96d6ccac6e4061e6d2ae53f5bc44203f3fd9f5b26864c32ae6e9","62ea38627e3ebab429f7616812a9394d327c2bc271003dfba985de9b4137369f","b4439890c168d646357928431100daac5cbdee1d345a34e6bf6eca9f3abe22bc","5d72971a459517c44c1379dab9ed248e87a61ba0a1e0f25c9d67e1e640cd9a09","02d734976af36f4273d930bea88b3e62adf6b078cf120c1c63d49aa8d8427c5c",{"version":"516a426e3960379f310107635b8f3a7e8c307c6c665080b128039d9299ec4087","affectsGlobalScope":true},"0359682c54e487c4cab2b53b2b4d35cc8dea4d9914bc6abcdb5701f8b8e745a4","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","f58599a92d4a64416f4999a4d7241e1647aec2a6249214892722f712a6eedbe0","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","f7e133b20ee2669b6c0e5d7f0cd510868c57cd64b283e68c7f598e30ce9d76d2","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":[[236],[163,164,168,195,196,200,203,204],[161,162],[161],[163,204],[163,164,200,202,204],[201,204,205],[204],[163,164,203,204],[163,164,166,167,203,204],[163,164,165,203,204],[163,164,168,195,196,197,198,199,203,204],[163,164,168,200,203],[168,204],[170,171,172,173,174,175,176,177,178,179,204],[193,204],[169,180,188,189,190,191,192,194],[173,204],[181,182,183,184,185,186,187,204],[236,237,238,239,240],[236,238],[58,71,72,102],[72,102],[244],[245],[251,253],[46],[34,36,37,38,39,40,41,42,43,44,45,46],[34,35,37,38,39,40,41,42,43,44,45,46],[35,36,37,38,39,40,41,42,43,44,45,46],[34,35,36,38,39,40,41,42,43,44,45,46],[34,35,36,37,39,40,41,42,43,44,45,46],[34,35,36,37,38,40,41,42,43,44,45,46],[34,35,36,37,38,39,41,42,43,44,45,46],[34,35,36,37,38,39,40,42,43,44,45,46],[34,35,36,37,38,39,40,41,43,44,45,46],[34,35,36,37,38,39,40,41,42,44,45,46],[34,35,36,37,38,39,40,41,42,43,45,46],[34,35,36,37,38,39,40,41,42,43,44,46],[34,35,36,37,38,39,40,41,42,43,44,45],[74,94,102,103,104],[259],[74,88,102],[247,248],[247,248,249,250],[252],[50],[51,52,53,54,55],[52],[51],[71,72,79,88],[63,71,79],[95],[67,72,80],[88],[69,71,79],[71],[71,73,88,94],[72],[79,88,94],[71,72,74,79,88,91,94],[74,88,91,94],[59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101],[94],[69,71,88],[61],[93],[86,95,97],[79],[85],[71,73,88,94,97],[72,81,116,226,228],[72,81,114,116,222,226,228],[57,72,81,116,117,228],[107,112,114,116],[47,48,49,57,110,111,112,114,115,116,117,118,119,120,121],[114],[113,114,128,129,221],[57,72,81,107,108,110,112,113,115],[72,114,115,127,222],[112,114,115],[49,56,108,110],[81,108,110,224],[48,49,57,107,109,110,111,112,114,115,116,117,118,119,122,123,124,125,127,223,224,225,226],[106],[57,110,111,112,114,116,117,118,119,120,123,132,206,222],[111],[72,80,81,108,126],[105],[48,81,116],[48,49,56,57,72,81,94,114,115],[49,110,205],[114,218,220],[111,131],[110,111,115],[48,109,110,111],[48,109,110,111,131],[110,111],[48,109,110,111,115],[49,110,111],[111,127],[49,57,111,131],[49,110,111,116],[111,121,132,133,134,135,136,137,139,140,141,142,143,146,147,148,149,150,152,153,154,155,156,158,159,208,209,211,212,213,215,216,217,219],[111,112,121,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,207,208,209,210,211,212,213,214,215,216,217],[48,49,111,206],[48,111],[49,111],[48,109,124],[110,130],[57],[49,57],[57,117],[57,115],[48,106],[58,72,105,107,114],[48,49,57,109,110,115],[48,49,57,111,112,115,116]],"referencedMap":[[238,1],[205,2],[163,3],[162,4],[167,5],[203,6],[202,7],[164,8],[165,9],[169,9],[168,10],[166,11],[200,12],[198,8],[204,13],[170,14],[175,8],[177,8],[172,8],[173,14],[179,8],[180,15],[171,8],[176,8],[178,8],[174,8],[194,16],[193,8],[195,17],[189,8],[191,8],[190,8],[186,8],[192,18],[187,8],[188,19],[181,8],[182,8],[183,8],[184,8],[185,8],[241,20],[237,1],[239,21],[240,1],[242,22],[243,23],[245,24],[246,25],[254,26],[47,27],[35,28],[36,29],[34,30],[37,31],[38,32],[39,33],[40,34],[41,35],[42,36],[43,37],[44,38],[45,39],[46,40],[105,41],[260,42],[103,43],[249,44],[251,45],[250,44],[253,46],[51,47],[56,48],[53,49],[55,49],[52,50],[63,51],[64,52],[65,53],[66,54],[67,55],[68,56],[70,57],[71,57],[72,58],[73,59],[74,60],[75,61],[76,62],[102,63],[77,57],[78,64],[79,65],[82,66],[83,67],[86,57],[87,68],[88,57],[91,69],[93,69],[94,70],[96,55],[99,71],[100,55],[229,72],[230,72],[231,72],[232,72],[233,72],[234,73],[235,74],[228,75],[122,76],[128,77],[222,78],[114,79],[223,80],[129,77],[113,77],[120,81],[224,82],[225,83],[227,84],[107,85],[226,86],[112,87],[127,88],[126,89],[49,90],[116,91],[206,92],[221,93],[148,94],[217,95],[146,94],[149,94],[155,94],[213,96],[139,97],[209,96],[140,98],[133,98],[215,99],[150,97],[134,96],[142,96],[211,97],[135,96],[156,100],[154,96],[212,97],[137,96],[153,96],[141,98],[159,96],[152,98],[136,96],[158,98],[208,101],[132,102],[216,95],[147,94],[143,96],[121,103],[219,87],[220,104],[157,87],[218,105],[160,87],[138,87],[207,106],[144,87],[145,87],[214,107],[210,87],[151,108],[125,109],[131,110],[118,111],[117,112],[119,113],[123,114],[109,115],[115,116],[111,117],[110,118]],"exportedModulesMap":[[238,1],[205,2],[163,3],[162,4],[167,5],[203,6],[202,7],[164,8],[165,9],[169,9],[168,10],[166,11],[200,12],[198,8],[204,13],[170,14],[175,8],[177,8],[172,8],[173,14],[179,8],[180,15],[171,8],[176,8],[178,8],[174,8],[194,16],[193,8],[195,17],[189,8],[191,8],[190,8],[186,8],[192,18],[187,8],[188,19],[181,8],[182,8],[183,8],[184,8],[185,8],[241,20],[237,1],[239,21],[240,1],[242,22],[243,23],[245,24],[246,25],[254,26],[47,27],[35,28],[36,29],[34,30],[37,31],[38,32],[39,33],[40,34],[41,35],[42,36],[43,37],[44,38],[45,39],[46,40],[105,41],[260,42],[103,43],[249,44],[251,45],[250,44],[253,46],[51,47],[56,48],[53,49],[55,49],[52,50],[63,51],[64,52],[65,53],[66,54],[67,55],[68,56],[70,57],[71,57],[72,58],[73,59],[74,60],[75,61],[76,62],[102,63],[77,57],[78,64],[79,65],[82,66],[83,67],[86,57],[87,68],[88,57],[91,69],[93,69],[94,70],[96,55],[99,71],[100,55],[229,72],[230,72],[231,72],[232,72],[233,72],[234,73],[235,74],[228,75],[122,76],[128,77],[222,78],[114,79],[223,80],[129,77],[113,77],[120,81],[224,82],[225,83],[227,84],[107,85],[226,86],[112,87],[127,88],[126,89],[49,90],[116,91],[206,92],[221,93],[148,94],[217,95],[146,94],[149,94],[155,94],[213,96],[139,97],[209,96],[140,98],[133,98],[215,99],[150,97],[134,96],[142,96],[211,97],[135,96],[156,100],[154,96],[212,97],[137,96],[153,96],[141,98],[159,96],[152,98],[136,96],[158,98],[208,101],[132,102],[216,95],[147,94],[143,96],[121,103],[219,87],[220,104],[157,87],[218,105],[160,87],[138,87],[207,106],[144,87],[145,87],[214,107],[210,87],[151,108],[125,109],[131,110],[118,111],[117,112],[119,113],[123,114],[109,115],[115,116],[111,117],[110,118]],"semanticDiagnosticsPerFile":[238,236,205,161,163,162,167,203,199,202,164,165,169,168,166,200,198,204,196,197,170,175,177,172,173,179,180,171,176,178,174,194,193,195,189,191,190,186,192,187,188,181,182,183,184,185,241,237,239,240,242,243,244,245,246,254,130,106,255,47,35,36,34,37,38,39,40,41,42,43,44,45,46,58,104,105,256,257,258,259,260,108,103,247,249,251,250,248,253,252,8,7,2,9,10,11,12,13,14,15,16,3,4,20,17,18,19,21,22,23,5,24,25,26,27,6,28,29,30,31,32,1,33,201,54,51,56,53,50,55,52,59,61,62,63,64,65,66,67,68,69,70,71,72,73,60,101,74,75,76,102,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,229,230,231,232,233,234,235,228,122,128,222,114,223,129,113,120,224,225,227,107,226,112,127,126,49,116,206,221,148,217,146,149,155,213,139,209,140,133,215,150,134,142,211,135,156,154,212,137,153,141,159,152,136,158,208,132,216,147,143,121,219,220,157,218,160,138,207,144,145,214,210,151,125,131,57,118,117,119,123,124,48,109,115,111,110]},"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.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.string.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","../../node_modules/colorette/index.d.ts","./src/typings/swagger.ts","./src/walk.ts","./src/visitors.ts","./src/oas-types.ts","./src/config/recommended.ts","./src/config/config.ts","./src/utils.ts","./src/resolve.ts","./src/types/oas3.ts","./src/types/oas2.ts","./src/types/oas3_1.ts","./src/config/rules.ts","./src/rules/no-unresolved-refs.ts","./src/bundle.ts","./src/types/redocly-yaml.ts","./src/typings/common.ts","./src/rules/other/stats.ts","./src/redocly/query.ts","./src/redocly/index.ts","./src/config/all.ts","./src/config/minimal.ts","../../node_modules/@types/js-levenshtein/index.d.ts","./src/rules/utils.ts","./src/rules/common/spec.ts","./src/rules/common/operation-2xx-response.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/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","../../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/oas3/no-invalid-media-type-examples.ts","./src/rules/common/registry-dependencies.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/operation-description-override.ts","./src/rules/common/tag-description-override.ts","./src/rules/common/info-description-override.ts","./src/rules/common/path-excludes-patterns.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/rules/builtin.ts","./src/config/builtIn.ts","./src/config/load.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",{"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":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"506b80b9951c9381dc5f11897b31fca5e2a65731d96ddefa19687fbc26b23c6e","affectsGlobalScope":true},"675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","378df8bbbb9e3f6fca05d58f644aab538e1062eab5e778fb0b83d41125df246d","d88a479cccf787b4aa82362150fbeba5211a32dbfafa7b92ba6995ecaf9a1a89","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","c24ad9be9adf28f0927e3d9d9e9cec1c677022356f241ccbbfb97bfe8fb3d1a1","0ec0998e2d085e8ea54266f547976ae152c9dd6cdb9ac4d8a520a230f5ebae84","9364c7566b0be2f7b70ff5285eb34686f83ccb01bda529b82d23b2a844653bfb","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","ae9930989ed57478eb03b9b80ad3efa7a3eacdfeff0f78ecf7894c4963a64f93","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3e59f00ab03c33717b3130066d4debb272da90eeded4935ff0604c2bc25a5cae","9fa6b83a35e897f340858995ca5d77e901d89fd18644cd4c9e8a4afe0b2e6363",{"version":"0714e2046df66c0e93c3330d30dbc0565b3e8cd3ee302cf99e4ede6220e5fec8","affectsGlobalScope":true},"5e099389ceec44681b37d10470755cdc6d9f516851e53c731c6e7e17b39ad86f","a2c008d98ee0b91c5d1e072bc54e85ca454e41a02c75661f09f6c0cf521df632","48053f3ef2a787b638d9b7496ce062b9c13025b7465f9c0471674c2b1d95ec3f","8d1539367a9f5a03698f4c37111251eb76433ea8fcb5f1e546571b8513cac822","9ad71085f8ab35282a341995f85c6e06a19e6d5ab73b39f634b444ce8742a664","ee94d8f60c253d9994559ad325e9cb8a7af6bd36176884cb869ee5a40daa766c","606de01a4212a48518a219585f673504d3c0c26b361706006038a71bf8b9f42c","76de776e227ad01b703ce076b32177da31a765d5b5a681d5bb4c4e0f4876840f","aa4c984c8f2919742d06f305b1870bf180275cbe015490451a6374e6f6b9998a","46b9cdcd62e90f604876c143481ac7ff2c89cdfb902179bda0d8ee44c0695beb","b6af336aa092d644862e8bb0c5c387c448390f2455a789b9921fb7fcbb80367b","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","d555cd63a3fc837840db192596273fdf52fb28092b0a33bec98e89a0334b3a4c",{"version":"dc5f6951bbf5b544349cbdef895c08dee6929818abd27d7d53c38cf1209091b3","affectsGlobalScope":true},"85d545d430795d54a8b2896f67f9aeb7bf19fd74a1469ae0627311eb72f0dfa2","a473cf45c3d9809518f8af913312139d9f4db6887dc554e0d06d0f4e52722e6b","d5afcd002167b6b03d595fb8b9630a00456b6fb9d2c5e8b6aaa30cb31bc44e2b","3d68ecf05475492f041c88395372c3a01b30351619bebcd38287ab185be7f7e4",{"version":"a97ac401f6b334e9b1f6c8ee9319d6e21cc39d2f400e909805dfb8ab5eab0576","affectsGlobalScope":true},"45ac321f2e15d268fd74a90ddaa6467dcaaff2c5b13f95b4b85831520fb7a491","7674b65ac0a3b160232d84464b3486d727415581e5b99ff4aec324500adc98a4","87f16999a5832968485f6e20dd70529399143c3cf35003485020a037f338b75f","508e1e25ca40ea6cde332d3232c826fcd82f456f45ae535d817754684f048f9e",{"version":"2866a528b2708aa272ec3eaafd3c980abb23aec1ef831cfc5eb2186b98c37ce5","affectsGlobalScope":true},{"version":"8f8f6ee2a0c94077f79439f51640a625ac7e2f5dd6866bd3b5a41705c836adfc","affectsGlobalScope":true},"58dc2333abbaabe43b50a147d1732537e16f5b857152b96b6070122ecefb748c","e8d2d40a15313520a510409c8f3aeed28b79aab61af41ae65084570f9843b306","9700d148ccc0784923f66a3a7162e523172b530e8b3aa9834f53a6e893127c80","88587b5c94b0c4f5d78026e4beeb93383b3933c860d9840b55d6bf47d7b632bb","a473ecd14d9bafbd6a33105524b033237bbf1d6ce2cd81eb71cc54bec2d83d55","4e9f66d07d1687983ef1903654f4a4977563a0318046e893c5ecdb4dac25d376","0cff7901aedfe78e314f7d44088f07e2afa1b6e4f0473a4169b8456ca2fb245d","7a2a3ff87ffd4313a6a2f3b012e801dd249ee58152cedf90c8718dcd2c811fe3","69640cc2e76dad52daeb9914e6b70c5c9a5591a3a65190a2d3ea432cf0015e16","a39a4c527b7a2dc7a2661b711a534c10c76852c5ad6ae320767d3f7d2621b67d","1bb5c9857b2ee32c199dd85bc0f4c0299112485d6e5dc91428eabfdee0dbd68c",{"version":"5daba568741c8ed283d67bf370c626a91e09fdfbc6d4abe22a7f93e2cf5138b9","affectsGlobalScope":true},"7f77304372efe3c9967e5f9ea2061f1b4bf41dc3cda3c83cdd676f2e5af6b7e6","662661bbf9ccd869f3bca82d34234b2abdc95c657e2187c35352d42dddb24c2d","bec890dbc489a627439ad67330f9418d7f03aed29d1f874e5219a121da040cfa","4c4334eb5d8fae83416a361d787b55a5743916aed8af812a909898bc7333e709","6feb6f75a3e4e017f8e6e12740cf06f18eefcf829284fa310da6c7f4d44fb2eb","4fd3c4debadce3e9ab9dec3eb45f7f5e2e3d4ad65cf975a6d938d883cfb25a50","0953427f9c2498f71dd912fdd8a81b19cf6925de3e1ad67ab9a77b9a0f79bf0b","b709ff1f6d6235f5e9c8dcbce3e683ff24ec35046b232d5a281af083026018d1","7df562288f949945cf69c21cd912100c2afedeeb7cdb219085f7f4b46cb7dde4","9d16690485ff1eb4f6fc57aebe237728fd8e03130c460919da3a35f4d9bd97f5","ee6a154ecccde26b413e89c97a0b824f25b253c4c50a3c392bcb2b4c6ba9c314","d9a653f75614c4d3f63e88b7aae66390bf71a8cea02f5f7db8ca6c1a8e8c3f1a","a364b4a8a015ae377052fa4fac94204d79a69d879567f444c7ceff1b7a18482d","c5ec3b97d9db756c689cd11f4a11eaa9e6077b2768e3e9b54ff727a93c03a909","c14e9e86f18189c7d32b5dd03b4cf3f40bed68f0509dec06d75d41b82c065fe2","bdb07038733b2d74a75ba9c381dcb92774cd6f161ee125bfa921eae7d883ccc9","ad93e960a3a07dff7394bf0c8a558006a9ff2d0725ab28fc33dec227d4cb251e",{"version":"2708349d5a11a5c2e5f3a0765259ebe7ee00cdcc8161cb9990cb4910328442a1","affectsGlobalScope":true},"4362a776026a354985d9f2acc54b92630d8a084948ff9592ccd8f167276c5117","736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","208bb742e0f201470da121bc73847c74b62cff4172f38ae5949ae77d6c9c6b71","062bd2910098fc059ba93e347649b3e126c555f7b144033d21d3f8ef63d3e39b","8f7a2387ecc680872d09a6edbca1612d699f77ee5a5129944935c3798a613d04","686e548ae30250d62532c8cacb43fccc922b693408371bd3503563c4a0f28eed","4bfd17e3cb59395bfcb32f04a6437034c4fbe9984a3c4edabe3b7fa4a3ed348e","a456dd94a596de621bd25cf3c91278101ea62782c3ac4435aef9190a2336ddde","810fd22abaa35308a2e2abe82bbaf2864332680548a3ca1cec6a1bad1174e708","e67625007c3a6e796cd083c12a18b5e04c4dec4e97117bb2800dacb29f0b37fc","d7a7d87e9d46564706bb143afa3cfb509c7ee61e07720e90dcc6a848c17f079a","03a128cfb85c06ad01a4f7467346e0ae6c801ee6d5939907466d02e512761789","150f4e8079d3e8bdeb37aee7a3919d01f30c9e366e378388a692da8428e91586","a14aded148b8770424ecc8fb2514d34bcc41916cee6026991d6b4cc264d0998f","657c573351f3ec72340dc4783d36dd7a6f2889857c16e5f4454a5e0224af4a3c","8fb7aaf9e3abe80fb75769ceed9df8d653bd5cd864db9147a4f98114ff7ac0e8","aeb304db851b8309cb213778bffdc8a4006426c869e2488cce656dcb7872763a","61df3d80a97cc871e4c5837824ec9d9b8feb00e402c2744dc28a3ed5defd57bf","c5273f789da5eccffb46f8640208bb370ddd737b2a044d8989c6dd20a563f9b4","3989dd62591dc01e256c1553537693918450ef84da7f19a2e62cef52d5330d96","02b41251895e409555bc5688231b8c9801cf817b614bd7fa45c60b6ab5a415a4","a6c6b3d8c9a227c5a829ae7f623d8f258988c2e704715e0a38ba09dcf85f23ea","b97e11f65c49b2296e05637fa733fbe3d02e682605c1602eacdc6703aeb2b2e6","c528dad690c73e4f587cc897041ab729e20dc627c58ec0c2da9019a4e58a6c45","63ccc5dc211f97f78e352388c770a23b652ef408a8b337450c8a0c6d41fe26ea","4f2785ffaa3e8128484dd6525f2bc120ba08588907f45bfbb369023c8546bdaa","3ac4a2714c329c4805c311f182bf6d9fa9d7c56463950d5141ae61c12ba88383","ea3a9009f9a460285071031a7adc6bef695090037de9ea929ac4a9b4093fd927","1f683fda8fd8160d04770468c000b5a257bff3b7420700dad34dbc112418355c","15a58e61533036fb08dfd567fa7b1f799acdedf0cacf5cbc93bbed0f0520e87f","f2a06abcfdf6000957d28ddf5683b9b5598db40943835d651563119a51cd1e37","4fa8794f32464ce397d6d88e4523530d7c695816fb6231c495ba71868575b48a","cc9f0665f4555a6f818dcaf79de44ff3f9e93211458548dd6260506e27b38025","e8b5d684b18772f93fd7ac85652a9dd8c3c4ac42d255ebc676ddd75d213a60eb","ebdf0fc327828cf8e59bcaec0b03a1f65dd5f5b4849636405b43e71fbdd014d4","88a90a39fde5c1d8021d1a1a9fd351018f3fad88beeb38881f06cbfaaa6b06fe","6e3a3b59f2b4ebf3c4ca906f7f56d3d53f707eda7ed10be0863029d814b51583","329318845916f35128387bb291f2f252ccc80fe968ae6f6ee7a7bd644b9af509","6188eef68c972ead267314945b8f8a059ee997c45d46180d088977d4849dd093","8e8d8e11136d8c5a59360e90455356a41c8006129f7e459fbbf8a4551379f23a","a959db7039a615c94a9c236d0664463fd8fcc7c08e68c01bd7de4b49116c2b2c","3144d082b0efd80551c4b9ff1dd29ba6b0f0bb0709d481ed5285313e0845ee36","a9319c8e234166988f24be3a12d8845a5d43f34d31f72621ca311384ee7a56ae","37106a318a9b70352fc7fb06ed9a31c218342402f194355ad7c3e83c226b8b84","ad56cfeb1a9c0ca0da5dc6f97552a866803b087baf50a2360f481b5747ca49cf","232fe9b0f859a921132d464999ff9d2f979e29636dfd2225989e638a43bc5630","679f01be7caf9e091684d1f0fdabc8837991ed589a4c2617c72799c4aed0b60e","a3f88fc187a30877572d86ca78bfbad1ce1f7f081a13f4a1a3de12fc19172763","2b4e1f7c647e05af840b8a7f9444481b6dd3fff0dffd57ee765ab9507365ee5f","099e32d949572f34338bcc5a9bf84b09966b5b347b0462154eaf1679968ff74e","b72ac783938f2f9522af3694262d6112b061c0fa2b8c4c5df226efd0550fcba9","efcf6bd086be2f68fc73f04109ce82b5d64b1a4b01606ecb28de046b8bafeb97","576815ad63894f88f18c36c239e23562b35033e0dab57ff665dc0410db4a8b54","d23b6230c10ffb27b8cec7f0aef6443f8736620ce07bf7a991efb02e0f599d42","53e922fc5556e9825e10ebc780ea40088404abb4f1a76251bb5fac18eb20fc93","20a5fe46b10fcfdbef32882afb98298121a734b05bfdb4e06e61ed476df76e62","d0b2d3ab2b3934d5ea2d1ca2973fce9c031bec115c37e437b32bad32c0d79196","b79ce369faacdc58665774b775f9c9604dfcc20216a0b66b4628225463b827c1","8434dc2a1f866e713703e6d8ccc85168d92c07049138a3f2895e63f1b0d0ff8a","d9be0ae1a460ba18c0bdeaa48ae1f6e637207796dd0b57afc540393b064db8df","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","6554a631612ff1c3d6d76a65d88b4d8889ad804cf6897c968fef4d1bcd3b005b","bddfd3a02c1dde94c33fe9f9e122559ae5b0f030e9350043b992e6dd16f561f7","d83f1778cc95256ae503c326ea6804cffef5e5d6310e0d8b8dc56a2107abc7ae","274814c52225bce5396c2c4968f2c1d1c08fb4e04b76bff0d9d070b35f23260e","9688010a836de8a1927fb20f325179c6ae3ee66a64a1d0e5c414b15502652359","56d135e85dcc15aa982d8ca85f8021859447db147c51123e3811b3a48cb7d90b","6c8a91aa5b37b93dbf757bd99da7befc145884a94dcfb5a74043b1df4d70bfec","a3515918d4a0b9f14b3fa2ce25e2468994f31a492107a6be31c7c19ac03b28f9","6779e161b87b79684bbcf4514e8e2372d87d066930be098425539b64cf47351f","84af506cbec2a4666b02c573f601dad8d43fa7582bc4a675278b0d905ca9a851","df41f874a075a75dd3148c5a2e2980c7e7aff23f33212c2427e20c763501fed1","bc7711d24df78e5dbedb9b206cdc72e1880a757328bd5e094b582dcf572bb273","08f208c5084dc2ee9e2f78efba4c995d912e171fce3fb30c4c55c4f138751212","56aa78b45d55e0a7f63116bd779556e830c01b8d0da654cc562ff541fb38717d","74d5487b667f1e2507d0ba90f8e9c71ccb8e8650566cacebeb08c83e51e8a6aa","63f0634d9c4ce2d509e81033b88f5a565c5151876300616dd07958b54f944b14","c77365a9538d5b8f1f20f6b74bd0af75d78eeb2aa0e2c61888fd44fddeafe96f","41d545e5d36083f5bf6432c93dc2d3cb29ed4f8deae03b9dec59c55e02fbe597","0b4cc0ce5b20bc61ab6191013d258d109c9c8c6bb973368bb9ec57fce8b5ff97","9814894f88bc9283fa344d1a075913da647a36a7aa5f6d3080ce5df057d2b2d3","0498cecb0a2e59ef2e246652ebbe8d866523ca7679aa6930cbd918cec313093a","8d8956db63e0870eac5abd8d3dc7be74653bda46319a16d826b95c7b6b8dfd7c","726e9edb130daf3a096bb585e4aebfe7ef1ce473fc37bbe1d98e1d8b741e6db8","68b25c02cb0e209ea615289bdf85ded14b74e4d53f8316e83fcc6ab72d67ff16","cbfe93fd48a60da61b2ce41c1966ea54b3c7f76d270b31afb37543051d776e75","d9c0723e8c23b58e07b73b91bac2077cb9b04471fa0a0b70e29f17d4b8ea8902","c081be059f1d42bcf3606e9aed118f495ab439ec8ee4a22e7a2faa33c0cf2e6d","1937a2c5597167f71f5ce5f157402e67257c5e9ab36e59d33d7236a47f32b411","979077d3aff73c5ba2aeb12306d4b36cca483e43943f5e749cc9decd8b812f84","0b304d474cf6ac7fc79a8115c724eb2c68cc0f36bc8649155cd8a65808042ee9","225591c9bda5ab3e0756bce43f4d5d35d6f673968dd82d30792d4c3c182e4a20","413d72d18cd0ce2bf60ec34eb68377c1924db6430b75c43d6b3fe818e99766f6","15f2bb8c8dbd4101c1ff26ffaef79d2b6ddfc79a8fd29bcaf2c9ac777549a333","b50bf43d558b33dd01fe7bd57b8b68c025db666561e893c9f1d3154a9a8d05cc","07b3d20fc1026eefabe20dbd7ff759dcc4b5bbc2ed3f732a3a91c814c9f5354c","41476c129af01db7691ce3fda6a8a581a9636980ba5f831f72554934a7b05911","f82348f8ac4f637d6ad76ef5d45577ccc0c59fbd25d8c44d55349a71a90e195a","8dfed5c91ad36e69e6da6b7e49be929d4e19666db2b651aa839c485170a2902c","4aaf84a5ac87bad3211f041fab85de5cc42e5954c3ed56842faf6f08167e6202","93de1c6dab503f053efe8d304cb522bb3a89feab8c98f307a674a4fae04773e9","3b043cf9a81854a72963fdb57d1884fc4da1cf5be69b5e0a4c5b751e58cb6d88","d0b0a00cf31968a33baeaadf974ce4e5e7edf58cea5288765293f41ba5e72b3a","fd326577c62145816fe1acc306c734c2396487f76719d3785d4e825b34540b33","3ebae8c00411116a66fca65b08228ea0cf0b72724701f9b854442100aab55aba","de18acda71730bac52f4b256ce7511bb56cc21f6f114c59c46782eff2f632857","7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","d8aab31ba8e618cc3eea10b0945de81cb93b7e8150a013a482332263b9305322","69da61a7b5093dac77fa3bec8be95dcf9a74c95a0e9161edb98bb24e30e439d2","561eca7a381b96d6ccac6e4061e6d2ae53f5bc44203f3fd9f5b26864c32ae6e9","62ea38627e3ebab429f7616812a9394d327c2bc271003dfba985de9b4137369f","b4439890c168d646357928431100daac5cbdee1d345a34e6bf6eca9f3abe22bc","5d72971a459517c44c1379dab9ed248e87a61ba0a1e0f25c9d67e1e640cd9a09","02d734976af36f4273d930bea88b3e62adf6b078cf120c1c63d49aa8d8427c5c",{"version":"516a426e3960379f310107635b8f3a7e8c307c6c665080b128039d9299ec4087","affectsGlobalScope":true},"0359682c54e487c4cab2b53b2b4d35cc8dea4d9914bc6abcdb5701f8b8e745a4","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","f58599a92d4a64416f4999a4d7241e1647aec2a6249214892722f712a6eedbe0","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","f7e133b20ee2669b6c0e5d7f0cd510868c57cd64b283e68c7f598e30ce9d76d2","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":[[244],[164,165,169,196,197,201,204,205],[162,163],[162],[164,205],[164,165,201,203,205],[202,205,206],[205],[164,165,204,205],[164,165,167,168,204,205],[164,165,166,204,205],[164,165,169,196,197,198,199,200,204,205],[164,165,169,201,204],[169,205],[171,172,173,174,175,176,177,178,179,180,205],[194,205],[170,181,189,190,191,192,193,195],[174,205],[182,183,184,185,186,187,188,205],[244,245,246,247,248],[244,246],[58,71,72,102],[72,102],[252],[253],[259,261],[46],[34,36,37,38,39,40,41,42,43,44,45,46],[34,35,37,38,39,40,41,42,43,44,45,46],[35,36,37,38,39,40,41,42,43,44,45,46],[34,35,36,38,39,40,41,42,43,44,45,46],[34,35,36,37,39,40,41,42,43,44,45,46],[34,35,36,37,38,40,41,42,43,44,45,46],[34,35,36,37,38,39,41,42,43,44,45,46],[34,35,36,37,38,39,40,42,43,44,45,46],[34,35,36,37,38,39,40,41,43,44,45,46],[34,35,36,37,38,39,40,41,42,44,45,46],[34,35,36,37,38,39,40,41,42,43,45,46],[34,35,36,37,38,39,40,41,42,43,44,46],[34,35,36,37,38,39,40,41,42,43,44,45],[74,94,102,103,104],[267],[74,88,102],[255,256],[255,256,257,258],[260],[50],[51,52,53,54,55],[52],[51],[71,72,79,88],[63,71,79],[95],[67,72,80],[88],[69,71,79],[71],[71,73,88,94],[72],[79,88,94],[71,72,74,79,88,91,94],[74,88,91,94],[59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101],[94],[69,71,88],[61],[93],[86,95,97],[79],[85],[71,73,88,94,97],[72,81,117,234,236],[72,81,115,117,230,234,236],[57,72,81,117,118,236],[108,113,115,117],[47,48,49,57,111,112,113,115,116,117,118,119,120,121,122],[115],[114,115,129,130,229],[57,72,81,108,109,111,113,114,116],[72,115,116,128,230],[113,115,116],[49,56,109,111],[81,109,111,232],[48,49,57,108,110,111,112,113,115,116,117,118,119,120,123,124,125,126,128,231,232,233,234],[107],[57,111,112,113,115,117,118,119,120,121,124,133,207,230],[112],[72,80,81,109,127],[105],[48,81,117],[48,49,56,57,72,81,94,115,116],[49,111,206],[115,224,228],[112,132],[111,112,116],[48,110,111,112],[48,110,111,112,132],[48,110,111,112,116],[111,112],[49,111,112],[112,128],[49,57,112,132],[49,111,112,117],[112,122,133,134,135,136,137,138,140,141,142,143,144,147,148,149,150,151,153,154,155,156,157,159,160,209,210,212,213,214,216,219,220,221,222,223,225,226,227],[110,111,112,116],[112,113,122,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223],[48,49,112,207],[48,112],[49,112],[48,111,112,116],[48,110,125],[111,131],[57],[49,57],[57,118],[57,116],[48,107],[58,72,105,106,108,111,115],[48,49,57,110,111,116],[48,49,57,112,113,116,117]],"referencedMap":[[246,1],[206,2],[164,3],[163,4],[168,5],[204,6],[203,7],[165,8],[166,9],[170,9],[169,10],[167,11],[201,12],[199,8],[205,13],[171,14],[176,8],[178,8],[173,8],[174,14],[180,8],[181,15],[172,8],[177,8],[179,8],[175,8],[195,16],[194,8],[196,17],[190,8],[192,8],[191,8],[187,8],[193,18],[188,8],[189,19],[182,8],[183,8],[184,8],[185,8],[186,8],[249,20],[245,1],[247,21],[248,1],[250,22],[251,23],[253,24],[254,25],[262,26],[47,27],[35,28],[36,29],[34,30],[37,31],[38,32],[39,33],[40,34],[41,35],[42,36],[43,37],[44,38],[45,39],[46,40],[105,41],[268,42],[103,43],[257,44],[259,45],[258,44],[261,46],[51,47],[56,48],[53,49],[55,49],[52,50],[63,51],[64,52],[65,53],[66,54],[67,55],[68,56],[70,57],[71,57],[72,58],[73,59],[74,60],[75,61],[76,62],[102,63],[77,57],[78,64],[79,65],[82,66],[83,67],[86,57],[87,68],[88,57],[91,69],[93,69],[94,70],[96,55],[99,71],[100,55],[237,72],[238,72],[239,72],[240,72],[241,72],[242,73],[243,74],[236,75],[123,76],[129,77],[230,78],[115,79],[231,80],[130,77],[114,77],[121,81],[232,82],[233,83],[235,84],[108,85],[234,86],[113,87],[128,88],[127,89],[49,90],[117,91],[207,92],[229,93],[149,94],[222,95],[147,94],[150,94],[156,94],[214,96],[140,97],[216,98],[210,96],[141,99],[134,99],[220,98],[151,97],[135,96],[143,96],[212,97],[136,96],[157,100],[155,96],[213,97],[138,96],[154,96],[142,99],[223,96],[160,96],[153,99],[137,96],[219,95],[159,99],[209,101],[133,102],[221,95],[148,94],[144,96],[122,103],[225,87],[228,104],[226,105],[227,105],[158,87],[224,106],[161,87],[139,87],[208,107],[145,87],[146,87],[215,108],[211,87],[152,109],[217,110],[218,110],[126,111],[132,112],[119,113],[118,114],[120,115],[124,116],[110,117],[116,118],[112,119],[111,120]],"exportedModulesMap":[[246,1],[206,2],[164,3],[163,4],[168,5],[204,6],[203,7],[165,8],[166,9],[170,9],[169,10],[167,11],[201,12],[199,8],[205,13],[171,14],[176,8],[178,8],[173,8],[174,14],[180,8],[181,15],[172,8],[177,8],[179,8],[175,8],[195,16],[194,8],[196,17],[190,8],[192,8],[191,8],[187,8],[193,18],[188,8],[189,19],[182,8],[183,8],[184,8],[185,8],[186,8],[249,20],[245,1],[247,21],[248,1],[250,22],[251,23],[253,24],[254,25],[262,26],[47,27],[35,28],[36,29],[34,30],[37,31],[38,32],[39,33],[40,34],[41,35],[42,36],[43,37],[44,38],[45,39],[46,40],[105,41],[268,42],[103,43],[257,44],[259,45],[258,44],[261,46],[51,47],[56,48],[53,49],[55,49],[52,50],[63,51],[64,52],[65,53],[66,54],[67,55],[68,56],[70,57],[71,57],[72,58],[73,59],[74,60],[75,61],[76,62],[102,63],[77,57],[78,64],[79,65],[82,66],[83,67],[86,57],[87,68],[88,57],[91,69],[93,69],[94,70],[96,55],[99,71],[100,55],[237,72],[238,72],[239,72],[240,72],[241,72],[242,73],[243,74],[236,75],[123,76],[129,77],[230,78],[115,79],[231,80],[130,77],[114,77],[121,81],[232,82],[233,83],[235,84],[108,85],[234,86],[113,87],[128,88],[127,89],[49,90],[117,91],[207,92],[229,93],[149,94],[222,95],[147,94],[150,94],[156,94],[214,96],[140,97],[216,98],[210,96],[141,99],[134,99],[220,98],[151,97],[135,96],[143,96],[212,97],[136,96],[157,100],[155,96],[213,97],[138,96],[154,96],[142,99],[223,96],[160,96],[153,99],[137,96],[219,95],[159,99],[209,101],[133,102],[221,95],[148,94],[144,96],[122,103],[225,87],[228,104],[226,105],[227,105],[158,87],[224,106],[161,87],[139,87],[208,107],[145,87],[146,87],[215,108],[211,87],[152,109],[217,110],[218,110],[126,111],[132,112],[119,113],[118,114],[120,115],[124,116],[110,117],[116,118],[112,119],[111,120]],"semanticDiagnosticsPerFile":[246,244,206,162,164,163,168,204,200,203,165,166,170,169,167,201,199,205,197,198,171,176,178,173,174,180,181,172,177,179,175,195,194,196,190,192,191,187,193,188,189,182,183,184,185,186,249,245,247,248,250,251,252,253,254,262,131,107,263,47,35,36,34,37,38,39,40,41,42,43,44,45,46,58,104,105,264,106,265,266,267,268,109,103,255,257,259,258,256,261,260,8,7,2,9,10,11,12,13,14,15,16,3,4,20,17,18,19,21,22,23,5,24,25,26,27,6,28,29,30,31,32,1,33,202,54,51,56,53,50,55,52,59,61,62,63,64,65,66,67,68,69,70,71,72,73,60,101,74,75,76,102,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,237,238,239,240,241,242,243,236,123,129,230,115,231,130,114,121,232,233,235,108,234,113,128,127,49,117,207,229,149,222,147,150,156,214,140,216,210,141,134,220,151,135,143,212,136,157,155,213,138,154,142,223,160,153,137,219,159,209,133,221,148,144,122,225,228,226,227,158,224,161,139,208,145,146,215,211,152,217,218,126,132,57,119,118,120,124,125,48,110,116,112,111]},"version":"4.3.3"}