@redocly/openapi-core 1.0.0 → 1.0.2

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 (275) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/__tests__/utils.ts +88 -0
  3. package/lib/config/all.js +0 -1
  4. package/lib/config/minimal.js +0 -1
  5. package/lib/config/recommended.js +0 -1
  6. package/package.json +1 -1
  7. package/src/__tests__/__snapshots__/bundle.test.ts.snap +437 -0
  8. package/src/__tests__/bundle.test.ts +236 -0
  9. package/src/__tests__/codeframes.test.ts +530 -0
  10. package/src/__tests__/fixtures/.redocly.lint-ignore.yaml +5 -0
  11. package/src/__tests__/fixtures/extension.js +24 -0
  12. package/src/__tests__/fixtures/refs/definitions.yaml +3 -0
  13. package/src/__tests__/fixtures/refs/examples.yaml +8 -0
  14. package/src/__tests__/fixtures/refs/external-request-body.yaml +13 -0
  15. package/src/__tests__/fixtures/refs/externalref.yaml +35 -0
  16. package/src/__tests__/fixtures/refs/hosted.yaml +35 -0
  17. package/src/__tests__/fixtures/refs/openapi-with-external-refs-conflicting-names.yaml +21 -0
  18. package/src/__tests__/fixtures/refs/openapi-with-external-refs.yaml +33 -0
  19. package/src/__tests__/fixtures/refs/openapi-with-url-refs.yaml +18 -0
  20. package/src/__tests__/fixtures/refs/param-b.yaml +1 -0
  21. package/src/__tests__/fixtures/refs/param-c.yaml +1 -0
  22. package/src/__tests__/fixtures/refs/rename.yaml +1 -0
  23. package/src/__tests__/fixtures/refs/requestBody.yaml +9 -0
  24. package/src/__tests__/fixtures/refs/schema-a.yaml +1 -0
  25. package/src/__tests__/fixtures/refs/simple.yaml +1 -0
  26. package/src/__tests__/fixtures/refs/vendor.schema.yaml +20 -0
  27. package/src/__tests__/fixtures/resolve/External.yaml +10 -0
  28. package/src/__tests__/fixtures/resolve/External2.yaml +4 -0
  29. package/src/__tests__/fixtures/resolve/description.md +3 -0
  30. package/src/__tests__/fixtures/resolve/externalInfo.yaml +4 -0
  31. package/src/__tests__/fixtures/resolve/externalLicense.yaml +1 -0
  32. package/src/__tests__/fixtures/resolve/openapi-with-back.yaml +13 -0
  33. package/src/__tests__/fixtures/resolve/openapi-with-md-description.yaml +5 -0
  34. package/src/__tests__/fixtures/resolve/openapi.yaml +28 -0
  35. package/src/__tests__/fixtures/resolve/schemas/type-a.yaml +10 -0
  36. package/src/__tests__/fixtures/resolve/schemas/type-b.yaml +6 -0
  37. package/src/__tests__/fixtures/resolve/transitive/a.yaml +1 -0
  38. package/src/__tests__/fixtures/resolve/transitive/components.yaml +5 -0
  39. package/src/__tests__/fixtures/resolve/transitive/schemas.yaml +3 -0
  40. package/src/__tests__/format.test.ts +76 -0
  41. package/src/__tests__/js-yaml.test.ts +73 -0
  42. package/src/__tests__/lint.test.ts +392 -0
  43. package/src/__tests__/logger-browser.test.ts +53 -0
  44. package/src/__tests__/logger.test.ts +47 -0
  45. package/src/__tests__/login.test.ts +17 -0
  46. package/src/__tests__/normalizeVisitors.test.ts +151 -0
  47. package/src/__tests__/output-browser.test.ts +18 -0
  48. package/src/__tests__/output.test.ts +15 -0
  49. package/src/__tests__/ref-utils.test.ts +120 -0
  50. package/src/__tests__/resolve-http.test.ts +77 -0
  51. package/src/__tests__/resolve.test.ts +431 -0
  52. package/src/__tests__/utils-browser.test.ts +11 -0
  53. package/src/__tests__/utils.test.ts +144 -0
  54. package/src/__tests__/walk.test.ts +1545 -0
  55. package/src/benchmark/benches/lint-with-many-rules.bench.ts +35 -0
  56. package/src/benchmark/benches/lint-with-nested-rule.bench.ts +39 -0
  57. package/src/benchmark/benches/lint-with-no-rules.bench.ts +20 -0
  58. package/src/benchmark/benches/lint-with-top-level-rule-report.bench.ts +35 -0
  59. package/src/benchmark/benches/lint-with-top-level-rule.bench.ts +32 -0
  60. package/src/benchmark/benches/rebilly.yaml +32275 -0
  61. package/src/benchmark/benches/recommended-oas3.bench.ts +22 -0
  62. package/src/benchmark/benches/resolve-with-no-external.bench.ts +23 -0
  63. package/src/benchmark/benchmark.js +311 -0
  64. package/src/benchmark/colors.js +29 -0
  65. package/src/benchmark/fork.js +83 -0
  66. package/src/benchmark/utils.ts +36 -0
  67. package/src/bundle.ts +417 -0
  68. package/src/config/__tests__/__snapshots__/config-resolvers.test.ts.snap +164 -0
  69. package/src/config/__tests__/__snapshots__/config.test.ts.snap +144 -0
  70. package/src/config/__tests__/config-resolvers.test.ts +491 -0
  71. package/src/config/__tests__/config.test.ts +312 -0
  72. package/src/config/__tests__/fixtures/ingore-file.ts +8 -0
  73. package/src/config/__tests__/fixtures/load-redocly.yaml +2 -0
  74. package/src/config/__tests__/fixtures/plugin-config.yaml +2 -0
  75. package/src/config/__tests__/fixtures/plugin.js +56 -0
  76. package/src/config/__tests__/fixtures/resolve-config/api/nested-config.yaml +11 -0
  77. package/src/config/__tests__/fixtures/resolve-config/api/plugin.js +69 -0
  78. package/src/config/__tests__/fixtures/resolve-config/local-config-with-circular.yaml +7 -0
  79. package/src/config/__tests__/fixtures/resolve-config/local-config-with-custom-function.yaml +17 -0
  80. package/src/config/__tests__/fixtures/resolve-config/local-config-with-file.yaml +18 -0
  81. package/src/config/__tests__/fixtures/resolve-config/local-config-with-wrong-custom-function.yaml +15 -0
  82. package/src/config/__tests__/fixtures/resolve-config/local-config.yaml +9 -0
  83. package/src/config/__tests__/fixtures/resolve-config/plugin.js +80 -0
  84. package/src/config/__tests__/fixtures/resolve-remote-configs/nested-remote-config.yaml +3 -0
  85. package/src/config/__tests__/fixtures/resolve-remote-configs/remote-config.yaml +4 -0
  86. package/src/config/__tests__/load.test.ts +167 -0
  87. package/src/config/__tests__/resolve-plugins.test.ts +27 -0
  88. package/src/config/__tests__/utils.test.ts +204 -0
  89. package/src/config/all.ts +74 -0
  90. package/src/config/builtIn.ts +37 -0
  91. package/src/config/config-resolvers.ts +474 -0
  92. package/src/config/config.ts +332 -0
  93. package/src/config/index.ts +7 -0
  94. package/src/config/load.ts +144 -0
  95. package/src/config/minimal.ts +61 -0
  96. package/src/config/recommended.ts +61 -0
  97. package/src/config/rules.ts +54 -0
  98. package/src/config/types.ts +231 -0
  99. package/src/config/utils.ts +349 -0
  100. package/src/decorators/__tests__/filter-in.test.ts +310 -0
  101. package/src/decorators/__tests__/filter-out.test.ts +335 -0
  102. package/src/decorators/__tests__/media-type-examples-override.test.ts +665 -0
  103. package/src/decorators/__tests__/remove-x-internal.test.ts +316 -0
  104. package/src/decorators/__tests__/resources/request.yaml +3 -0
  105. package/src/decorators/__tests__/resources/response.yaml +3 -0
  106. package/src/decorators/common/filters/filter-helper.ts +72 -0
  107. package/src/decorators/common/filters/filter-in.ts +18 -0
  108. package/src/decorators/common/filters/filter-out.ts +18 -0
  109. package/src/decorators/common/info-description-override.ts +24 -0
  110. package/src/decorators/common/info-override.ts +15 -0
  111. package/src/decorators/common/media-type-examples-override.ts +79 -0
  112. package/src/decorators/common/operation-description-override.ts +30 -0
  113. package/src/decorators/common/registry-dependencies.ts +25 -0
  114. package/src/decorators/common/remove-x-internal.ts +59 -0
  115. package/src/decorators/common/tag-description-override.ts +25 -0
  116. package/src/decorators/oas2/index.ts +20 -0
  117. package/src/decorators/oas3/index.ts +22 -0
  118. package/src/env.ts +5 -0
  119. package/src/format/codeframes.ts +216 -0
  120. package/src/format/format.ts +375 -0
  121. package/src/index.ts +71 -0
  122. package/src/js-yaml/index.ts +14 -0
  123. package/src/lint.ts +148 -0
  124. package/src/logger.ts +34 -0
  125. package/src/oas-types.ts +57 -0
  126. package/src/output.ts +7 -0
  127. package/src/redocly/__tests__/redocly-client.test.ts +146 -0
  128. package/src/redocly/index.ts +187 -0
  129. package/src/redocly/redocly-client-types.ts +10 -0
  130. package/src/redocly/registry-api-types.ts +32 -0
  131. package/src/redocly/registry-api.ts +150 -0
  132. package/src/ref-utils.ts +85 -0
  133. package/src/resolve.ts +417 -0
  134. package/src/rules/__tests__/fixtures/code-sample.php +9 -0
  135. package/src/rules/__tests__/fixtures/invalid-yaml.yaml +1 -0
  136. package/src/rules/__tests__/fixtures/ref.yaml +1 -0
  137. package/src/rules/__tests__/no-unresolved-refs.test.ts +257 -0
  138. package/src/rules/__tests__/utils.test.ts +160 -0
  139. package/src/rules/ajv.ts +102 -0
  140. package/src/rules/common/__tests__/info-license.test.ts +62 -0
  141. package/src/rules/common/__tests__/license-url.test.ts +63 -0
  142. package/src/rules/common/__tests__/no-ambiguous-paths.test.ts +96 -0
  143. package/src/rules/common/__tests__/no-enum-type-mismatch.test.ts +210 -0
  144. package/src/rules/common/__tests__/no-identical-paths.test.ts +58 -0
  145. package/src/rules/common/__tests__/no-path-trailing-slash.test.ts +85 -0
  146. package/src/rules/common/__tests__/operation-2xx-response.test.ts +192 -0
  147. package/src/rules/common/__tests__/operation-4xx-response.test.ts +231 -0
  148. package/src/rules/common/__tests__/operation-operationId-unique.test.ts +76 -0
  149. package/src/rules/common/__tests__/operation-operationId-url-safe.test.ts +45 -0
  150. package/src/rules/common/__tests__/operation-parameters-unique.test.ts +167 -0
  151. package/src/rules/common/__tests__/operation-singular-tag.test.ts +72 -0
  152. package/src/rules/common/__tests__/path-http-verbs-order.test.ts +95 -0
  153. package/src/rules/common/__tests__/path-not-include-query.test.ts +64 -0
  154. package/src/rules/common/__tests__/path-params-defined.test.ts +202 -0
  155. package/src/rules/common/__tests__/paths-kebab-case.test.ts +108 -0
  156. package/src/rules/common/__tests__/scalar-property-missing-example.test.ts +264 -0
  157. package/src/rules/common/__tests__/security-defined.test.ts +175 -0
  158. package/src/rules/common/__tests__/spec-strict-refs.test.ts +69 -0
  159. package/src/rules/common/__tests__/spec.test.ts +610 -0
  160. package/src/rules/common/__tests__/tag-description.test.ts +65 -0
  161. package/src/rules/common/__tests__/tags-alphabetical.test.ts +64 -0
  162. package/src/rules/common/assertions/__tests__/asserts.test.ts +869 -0
  163. package/src/rules/common/assertions/__tests__/index.test.ts +100 -0
  164. package/src/rules/common/assertions/__tests__/utils.test.ts +236 -0
  165. package/src/rules/common/assertions/asserts.ts +357 -0
  166. package/src/rules/common/assertions/index.ts +53 -0
  167. package/src/rules/common/assertions/utils.ts +331 -0
  168. package/src/rules/common/info-contact.ts +15 -0
  169. package/src/rules/common/info-license-url.ts +10 -0
  170. package/src/rules/common/info-license.ts +15 -0
  171. package/src/rules/common/no-ambiguous-paths.ts +50 -0
  172. package/src/rules/common/no-enum-type-mismatch.ts +52 -0
  173. package/src/rules/common/no-http-verbs-in-paths.ts +36 -0
  174. package/src/rules/common/no-identical-paths.ts +24 -0
  175. package/src/rules/common/no-invalid-parameter-examples.ts +36 -0
  176. package/src/rules/common/no-invalid-schema-examples.ts +27 -0
  177. package/src/rules/common/no-path-trailing-slash.ts +15 -0
  178. package/src/rules/common/operation-2xx-response.ts +24 -0
  179. package/src/rules/common/operation-4xx-response.ts +24 -0
  180. package/src/rules/common/operation-description.ts +13 -0
  181. package/src/rules/common/operation-operationId-unique.ts +21 -0
  182. package/src/rules/common/operation-operationId-url-safe.ts +19 -0
  183. package/src/rules/common/operation-operationId.ts +17 -0
  184. package/src/rules/common/operation-parameters-unique.ts +48 -0
  185. package/src/rules/common/operation-singular-tag.ts +17 -0
  186. package/src/rules/common/operation-summary.ts +13 -0
  187. package/src/rules/common/operation-tag-defined.ts +26 -0
  188. package/src/rules/common/parameter-description.ts +22 -0
  189. package/src/rules/common/path-declaration-must-exist.ts +15 -0
  190. package/src/rules/common/path-excludes-patterns.ts +23 -0
  191. package/src/rules/common/path-http-verbs-order.ts +30 -0
  192. package/src/rules/common/path-not-include-query.ts +17 -0
  193. package/src/rules/common/path-params-defined.ts +65 -0
  194. package/src/rules/common/path-segment-plural.ts +31 -0
  195. package/src/rules/common/paths-kebab-case.ts +19 -0
  196. package/src/rules/common/required-string-property-missing-min-length.ts +44 -0
  197. package/src/rules/common/response-contains-header.ts +35 -0
  198. package/src/rules/common/scalar-property-missing-example.ts +58 -0
  199. package/src/rules/common/security-defined.ts +65 -0
  200. package/src/rules/common/spec-strict-refs.ts +30 -0
  201. package/src/rules/common/spec.ts +175 -0
  202. package/src/rules/common/tag-description.ts +10 -0
  203. package/src/rules/common/tags-alphabetical.ts +20 -0
  204. package/src/rules/no-unresolved-refs.ts +51 -0
  205. package/src/rules/oas2/__tests__/boolean-parameter-prefixes.test.ts +110 -0
  206. package/src/rules/oas2/__tests__/response-contains-header.test.ts +174 -0
  207. package/src/rules/oas2/__tests__/response-contains-property.test.ts +155 -0
  208. package/src/rules/oas2/__tests__/spec/fixtures/description.md +1 -0
  209. package/src/rules/oas2/__tests__/spec/info.test.ts +355 -0
  210. package/src/rules/oas2/__tests__/spec/operation.test.ts +123 -0
  211. package/src/rules/oas2/__tests__/spec/paths.test.ts +245 -0
  212. package/src/rules/oas2/__tests__/spec/referenceableScalars.test.ts +35 -0
  213. package/src/rules/oas2/__tests__/spec/utils.ts +32 -0
  214. package/src/rules/oas2/boolean-parameter-prefixes.ts +26 -0
  215. package/src/rules/oas2/index.ts +91 -0
  216. package/src/rules/oas2/remove-unused-components.ts +81 -0
  217. package/src/rules/oas2/request-mime-type.ts +16 -0
  218. package/src/rules/oas2/response-contains-property.ts +36 -0
  219. package/src/rules/oas2/response-mime-type.ts +16 -0
  220. package/src/rules/oas3/__tests__/boolean-parameter-prefixes.test.ts +111 -0
  221. package/src/rules/oas3/__tests__/component-name-unique.test.ts +823 -0
  222. package/src/rules/oas3/__tests__/fixtures/common.yaml +11 -0
  223. package/src/rules/oas3/__tests__/no-empty-enum-servers.com.test.ts +205 -0
  224. package/src/rules/oas3/__tests__/no-example-value-and-externalValue.test.ts +65 -0
  225. package/src/rules/oas3/__tests__/no-invalid-media-type-examples.test.ts +473 -0
  226. package/src/rules/oas3/__tests__/no-server-example.com.test.ts +60 -0
  227. package/src/rules/oas3/__tests__/no-server-trailing-slash.test.ts +79 -0
  228. package/src/rules/oas3/__tests__/no-unused-components.test.ts +131 -0
  229. package/src/rules/oas3/__tests__/operation-4xx-problem-details-rfc7807.test.ts +145 -0
  230. package/src/rules/oas3/__tests__/response-contains-header.test.ts +389 -0
  231. package/src/rules/oas3/__tests__/response-contains-property.test.ts +403 -0
  232. package/src/rules/oas3/__tests__/spec/callbacks.test.ts +41 -0
  233. package/src/rules/oas3/__tests__/spec/fixtures/description.md +1 -0
  234. package/src/rules/oas3/__tests__/spec/info.test.ts +391 -0
  235. package/src/rules/oas3/__tests__/spec/operation.test.ts +253 -0
  236. package/src/rules/oas3/__tests__/spec/paths.test.ts +284 -0
  237. package/src/rules/oas3/__tests__/spec/referenceableScalars.test.ts +77 -0
  238. package/src/rules/oas3/__tests__/spec/servers.test.ts +505 -0
  239. package/src/rules/oas3/__tests__/spec/spec.test.ts +298 -0
  240. package/src/rules/oas3/__tests__/spec/utils.ts +32 -0
  241. package/src/rules/oas3/__tests__/spec-components-invalid-map-name.test.ts +276 -0
  242. package/src/rules/oas3/__tests__/utils/lint-document-for-test.ts +23 -0
  243. package/src/rules/oas3/boolean-parameter-prefixes.ts +28 -0
  244. package/src/rules/oas3/component-name-unique.ts +158 -0
  245. package/src/rules/oas3/index.ts +113 -0
  246. package/src/rules/oas3/no-empty-servers.ts +22 -0
  247. package/src/rules/oas3/no-example-value-and-externalValue.ts +14 -0
  248. package/src/rules/oas3/no-invalid-media-type-examples.ts +49 -0
  249. package/src/rules/oas3/no-server-example.com.ts +14 -0
  250. package/src/rules/oas3/no-server-trailing-slash.ts +15 -0
  251. package/src/rules/oas3/no-server-variables-empty-enum.ts +66 -0
  252. package/src/rules/oas3/no-undefined-server-variable.ts +30 -0
  253. package/src/rules/oas3/no-unused-components.ts +75 -0
  254. package/src/rules/oas3/operation-4xx-problem-details-rfc7807.ts +35 -0
  255. package/src/rules/oas3/remove-unused-components.ts +95 -0
  256. package/src/rules/oas3/request-mime-type.ts +30 -0
  257. package/src/rules/oas3/response-contains-property.ts +38 -0
  258. package/src/rules/oas3/response-mime-type.ts +30 -0
  259. package/src/rules/oas3/spec-components-invalid-map-name.ts +69 -0
  260. package/src/rules/other/stats.ts +73 -0
  261. package/src/rules/utils.ts +193 -0
  262. package/src/types/config-external-schemas.ts +917 -0
  263. package/src/types/index.ts +149 -0
  264. package/src/types/oas2.ts +478 -0
  265. package/src/types/oas3.ts +597 -0
  266. package/src/types/oas3_1.ts +258 -0
  267. package/src/types/redocly-yaml.ts +1040 -0
  268. package/src/typings/common.ts +17 -0
  269. package/src/typings/openapi.ts +298 -0
  270. package/src/typings/swagger.ts +236 -0
  271. package/src/utils.ts +276 -0
  272. package/src/visitors.ts +491 -0
  273. package/src/walk.ts +439 -0
  274. package/tsconfig.json +8 -0
  275. package/tsconfig.tsbuildinfo +1 -0
package/src/walk.ts ADDED
@@ -0,0 +1,439 @@
1
+ import type { Referenced } from './typings/openapi';
2
+ import type {
3
+ VisitorLevelContext,
4
+ NormalizedOasVisitors,
5
+ VisitorSkippedLevelContext,
6
+ VisitFunction,
7
+ } from './visitors';
8
+ import type { ResolvedRefMap, Document } from './resolve';
9
+ import type { NormalizedNodeType } from './types';
10
+ import type { RuleSeverity } from './config';
11
+
12
+ import { Location, isRef } from './ref-utils';
13
+ import { pushStack, popStack } from './utils';
14
+ import { ResolveError, YamlParseError, Source, makeRefId } from './resolve';
15
+ import { OasVersion } from './oas-types';
16
+ import { isNamedType, SpecExtension } from './types';
17
+
18
+ type NonUndefined = string | number | boolean | symbol | bigint | object | Record<string, any>;
19
+
20
+ export type ResolveResult<T extends NonUndefined> =
21
+ | { node: T; location: Location; error?: ResolveError | YamlParseError }
22
+ | { node: undefined; location: undefined; error?: ResolveError | YamlParseError };
23
+
24
+ export type ResolveFn = <T>(node: Referenced<T>, from?: string) => ResolveResult<T>;
25
+
26
+ export type UserContext = {
27
+ report(problem: Problem): void;
28
+ location: Location;
29
+ rawNode: any;
30
+ rawLocation: Location;
31
+ resolve: ResolveFn;
32
+ parentLocations: Record<string, Location>;
33
+ type: NormalizedNodeType;
34
+ key: string | number;
35
+ parent: any;
36
+ oasVersion: OasVersion;
37
+ getVisitorData: () => Record<string, unknown>;
38
+ };
39
+
40
+ export type Loc = {
41
+ line: number;
42
+ col: number;
43
+ };
44
+
45
+ export type PointerLocationObject = {
46
+ source: Source;
47
+ reportOnKey?: boolean;
48
+ pointer: string;
49
+ };
50
+
51
+ export type LineColLocationObject = Omit<PointerLocationObject, 'pointer'> & {
52
+ pointer: undefined;
53
+ start: Loc;
54
+ end?: Loc;
55
+ };
56
+
57
+ export type LocationObject = LineColLocationObject | PointerLocationObject;
58
+
59
+ export type ProblemSeverity = 'error' | 'warn';
60
+
61
+ export type Problem = {
62
+ message: string;
63
+ suggest?: string[];
64
+ location?: Partial<LocationObject> | Array<Partial<LocationObject>>;
65
+ from?: LocationObject;
66
+ forceSeverity?: RuleSeverity;
67
+ ruleId?: string;
68
+ };
69
+
70
+ export type NormalizedProblem = {
71
+ message: string;
72
+ ruleId: string;
73
+ severity: ProblemSeverity;
74
+ location: LocationObject[];
75
+ from?: LocationObject;
76
+ suggest: string[];
77
+ ignored?: boolean;
78
+ };
79
+
80
+ export type WalkContext = {
81
+ problems: NormalizedProblem[];
82
+ oasVersion: OasVersion;
83
+ visitorsData: Record<string, Record<string, unknown>>; // custom data store that visitors can use for various purposes
84
+ refTypes?: Map<string, NormalizedNodeType>;
85
+ };
86
+
87
+ function collectParents(ctx: VisitorLevelContext) {
88
+ const parents: Record<string, any> = {};
89
+ while (ctx.parent) {
90
+ parents[ctx.parent.type.name] = ctx.parent.activatedOn?.value.node;
91
+ ctx = ctx.parent;
92
+ }
93
+ return parents;
94
+ }
95
+
96
+ function collectParentsLocations(ctx: VisitorLevelContext) {
97
+ const locations: Record<string, Location> = {};
98
+ while (ctx.parent) {
99
+ if (ctx.parent.activatedOn?.value.location) {
100
+ locations[ctx.parent.type.name] = ctx.parent.activatedOn?.value.location;
101
+ }
102
+ ctx = ctx.parent;
103
+ }
104
+ return locations;
105
+ }
106
+
107
+ export function walkDocument<T>(opts: {
108
+ document: Document;
109
+ rootType: NormalizedNodeType;
110
+ normalizedVisitors: NormalizedOasVisitors<T>;
111
+ resolvedRefMap: ResolvedRefMap;
112
+ ctx: WalkContext;
113
+ }) {
114
+ const { document, rootType, normalizedVisitors, resolvedRefMap, ctx } = opts;
115
+ const seenNodesPerType: Record<string, Set<any>> = {};
116
+ const ignoredNodes = new Set<string>();
117
+
118
+ walkNode(document.parsed, rootType, new Location(document.source, '#/'), undefined, '');
119
+
120
+ function walkNode(
121
+ node: any,
122
+ type: NormalizedNodeType,
123
+ location: Location,
124
+ parent: any,
125
+ key: string | number
126
+ ) {
127
+ const resolve: ResolveFn = (ref, from = currentLocation.source.absoluteRef) => {
128
+ if (!isRef(ref)) return { location, node: ref };
129
+ const refId = makeRefId(from, ref.$ref);
130
+ const resolvedRef = resolvedRefMap.get(refId);
131
+ if (!resolvedRef) {
132
+ return {
133
+ location: undefined,
134
+ node: undefined,
135
+ };
136
+ }
137
+
138
+ const { resolved, node, document, nodePointer, error } = resolvedRef;
139
+ const newLocation = resolved
140
+ ? new Location(document!.source, nodePointer!)
141
+ : error instanceof YamlParseError
142
+ ? new Location(error.source, '')
143
+ : undefined;
144
+
145
+ return { location: newLocation, node, error };
146
+ };
147
+
148
+ const rawLocation = location;
149
+ let currentLocation = location;
150
+ const { node: resolvedNode, location: resolvedLocation, error } = resolve(node);
151
+ const enteredContexts: Set<VisitorLevelContext> = new Set();
152
+
153
+ if (isRef(node)) {
154
+ const refEnterVisitors = normalizedVisitors.ref.enter;
155
+ for (const { visit: visitor, ruleId, severity, context } of refEnterVisitors) {
156
+ enteredContexts.add(context);
157
+ const report = reportFn.bind(undefined, ruleId, severity);
158
+ visitor(
159
+ node,
160
+ {
161
+ report,
162
+ resolve,
163
+ rawNode: node,
164
+ rawLocation,
165
+ location,
166
+ type,
167
+ parent,
168
+ key,
169
+ parentLocations: {},
170
+ oasVersion: ctx.oasVersion,
171
+ getVisitorData: getVisitorDataFn.bind(undefined, ruleId),
172
+ },
173
+ { node: resolvedNode, location: resolvedLocation, error }
174
+ );
175
+ if (resolvedLocation?.source.absoluteRef && ctx.refTypes) {
176
+ ctx.refTypes.set(resolvedLocation?.source.absoluteRef, type);
177
+ }
178
+ }
179
+ }
180
+
181
+ if (resolvedNode !== undefined && resolvedLocation && type.name !== 'scalar') {
182
+ currentLocation = resolvedLocation;
183
+ const isNodeSeen = seenNodesPerType[type.name]?.has?.(resolvedNode);
184
+ let visitedBySome = false;
185
+
186
+ const anyEnterVisitors = normalizedVisitors.any.enter;
187
+ const currentEnterVisitors = anyEnterVisitors.concat(
188
+ normalizedVisitors[type.name]?.enter || []
189
+ );
190
+
191
+ const activatedContexts: Array<VisitorSkippedLevelContext | VisitorLevelContext> = [];
192
+
193
+ for (const { context, visit, skip, ruleId, severity } of currentEnterVisitors) {
194
+ if (ignoredNodes.has(currentLocation.pointer)) break;
195
+
196
+ if (context.isSkippedLevel) {
197
+ if (
198
+ context.parent.activatedOn &&
199
+ !context.parent.activatedOn.value.nextLevelTypeActivated &&
200
+ !context.seen.has(node)
201
+ ) {
202
+ // TODO: test for walk through duplicated $ref-ed node
203
+ context.seen.add(node);
204
+ visitedBySome = true;
205
+ activatedContexts.push(context);
206
+ }
207
+ } else {
208
+ if (
209
+ (context.parent && // if nested
210
+ context.parent.activatedOn &&
211
+ context.activatedOn?.value.withParentNode !== context.parent.activatedOn.value.node &&
212
+ // do not enter if visited by parent children (it works thanks because deeper visitors are sorted before)
213
+ context.parent.activatedOn.value.nextLevelTypeActivated?.value !== type) ||
214
+ (!context.parent && !isNodeSeen) // if top-level visit each node just once
215
+ ) {
216
+ activatedContexts.push(context);
217
+
218
+ const activatedOn = {
219
+ node: resolvedNode,
220
+ location: resolvedLocation,
221
+ nextLevelTypeActivated: null,
222
+ withParentNode: context.parent?.activatedOn?.value.node,
223
+ skipped:
224
+ (context.parent?.activatedOn?.value.skipped ||
225
+ skip?.(resolvedNode, key, {
226
+ location,
227
+ rawLocation,
228
+ resolve,
229
+ rawNode: node,
230
+ })) ??
231
+ false,
232
+ };
233
+
234
+ context.activatedOn = pushStack<any>(context.activatedOn, activatedOn);
235
+
236
+ let ctx: VisitorLevelContext | null = context.parent;
237
+ while (ctx) {
238
+ ctx.activatedOn!.value.nextLevelTypeActivated = pushStack(
239
+ ctx.activatedOn!.value.nextLevelTypeActivated,
240
+ type
241
+ );
242
+ ctx = ctx.parent;
243
+ }
244
+
245
+ if (!activatedOn.skipped) {
246
+ visitedBySome = true;
247
+ enteredContexts.add(context);
248
+ visitWithContext(visit, resolvedNode, node, context, ruleId, severity);
249
+ }
250
+ }
251
+ }
252
+ }
253
+
254
+ if (visitedBySome || !isNodeSeen) {
255
+ seenNodesPerType[type.name] = seenNodesPerType[type.name] || new Set();
256
+ seenNodesPerType[type.name].add(resolvedNode);
257
+
258
+ if (Array.isArray(resolvedNode)) {
259
+ const itemsType = type.items;
260
+ if (itemsType !== undefined) {
261
+ for (let i = 0; i < resolvedNode.length; i++) {
262
+ walkNode(resolvedNode[i], itemsType, resolvedLocation.child([i]), resolvedNode, i);
263
+ }
264
+ }
265
+ } else if (typeof resolvedNode === 'object' && resolvedNode !== null) {
266
+ // visit in order from type-tree first
267
+ const props = Object.keys(type.properties);
268
+ if (type.additionalProperties) {
269
+ props.push(...Object.keys(resolvedNode).filter((k) => !props.includes(k)));
270
+ } else if (type.extensionsPrefix) {
271
+ props.push(
272
+ ...Object.keys(resolvedNode).filter((k) =>
273
+ k.startsWith(type.extensionsPrefix as string)
274
+ )
275
+ );
276
+ }
277
+
278
+ if (isRef(node)) {
279
+ props.push(...Object.keys(node).filter((k) => k !== '$ref' && !props.includes(k))); // properties on the same level as $ref
280
+ }
281
+
282
+ for (const propName of props) {
283
+ let value = resolvedNode[propName];
284
+
285
+ let loc = resolvedLocation;
286
+
287
+ if (value === undefined) {
288
+ value = node[propName];
289
+ loc = location; // properties on the same level as $ref should resolve against original location, not target
290
+ }
291
+
292
+ let propType = type.properties[propName];
293
+ if (propType === undefined) propType = type.additionalProperties;
294
+ if (typeof propType === 'function') propType = propType(value, propName);
295
+
296
+ if (
297
+ propType === undefined &&
298
+ type.extensionsPrefix &&
299
+ propName.startsWith(type.extensionsPrefix)
300
+ ) {
301
+ propType = SpecExtension;
302
+ }
303
+
304
+ if (!isNamedType(propType) && propType?.directResolveAs) {
305
+ propType = propType.directResolveAs;
306
+ value = { $ref: value };
307
+ }
308
+
309
+ if (propType && propType.name === undefined && propType.resolvable !== false) {
310
+ propType = { name: 'scalar', properties: {} };
311
+ }
312
+
313
+ if (!isNamedType(propType) || (propType.name === 'scalar' && !isRef(value))) {
314
+ continue;
315
+ }
316
+
317
+ walkNode(value, propType, loc.child([propName]), resolvedNode, propName);
318
+ }
319
+ }
320
+ }
321
+
322
+ const anyLeaveVisitors = normalizedVisitors.any.leave;
323
+ const currentLeaveVisitors = (normalizedVisitors[type.name]?.leave || []).concat(
324
+ anyLeaveVisitors
325
+ );
326
+
327
+ for (const context of activatedContexts.reverse()) {
328
+ if (context.isSkippedLevel) {
329
+ context.seen.delete(resolvedNode);
330
+ } else {
331
+ context.activatedOn = popStack(context.activatedOn) as any;
332
+ if (context.parent) {
333
+ let ctx: VisitorLevelContext | null = context.parent;
334
+ while (ctx) {
335
+ ctx.activatedOn!.value.nextLevelTypeActivated = popStack(
336
+ ctx.activatedOn!.value.nextLevelTypeActivated
337
+ );
338
+ ctx = ctx.parent;
339
+ }
340
+ }
341
+ }
342
+ }
343
+
344
+ for (const { context, visit, ruleId, severity } of currentLeaveVisitors) {
345
+ if (!context.isSkippedLevel && enteredContexts.has(context)) {
346
+ visitWithContext(visit, resolvedNode, node, context, ruleId, severity);
347
+ }
348
+ }
349
+ }
350
+
351
+ currentLocation = location;
352
+
353
+ if (isRef(node)) {
354
+ const refLeaveVisitors = normalizedVisitors.ref.leave;
355
+ for (const { visit: visitor, ruleId, severity, context } of refLeaveVisitors) {
356
+ if (enteredContexts.has(context)) {
357
+ const report = reportFn.bind(undefined, ruleId, severity);
358
+ visitor(
359
+ node,
360
+ {
361
+ report,
362
+ resolve,
363
+ rawNode: node,
364
+ rawLocation,
365
+ location,
366
+ type,
367
+ parent,
368
+ key,
369
+ parentLocations: {},
370
+ oasVersion: ctx.oasVersion,
371
+ getVisitorData: getVisitorDataFn.bind(undefined, ruleId),
372
+ },
373
+ { node: resolvedNode, location: resolvedLocation, error }
374
+ );
375
+ }
376
+ }
377
+ }
378
+
379
+ // returns true ignores all the next visitors on the specific node
380
+ function visitWithContext(
381
+ visit: VisitFunction<any>,
382
+ resolvedNode: any,
383
+ node: any,
384
+ context: VisitorLevelContext,
385
+ ruleId: string,
386
+ severity: ProblemSeverity
387
+ ) {
388
+ const report = reportFn.bind(undefined, ruleId, severity);
389
+ visit(
390
+ resolvedNode,
391
+ {
392
+ report,
393
+ resolve,
394
+ rawNode: node,
395
+ location: currentLocation,
396
+ rawLocation,
397
+ type,
398
+ parent,
399
+ key,
400
+ parentLocations: collectParentsLocations(context),
401
+ oasVersion: ctx.oasVersion,
402
+ ignoreNextVisitorsOnNode: () => {
403
+ ignoredNodes.add(currentLocation.pointer);
404
+ },
405
+ getVisitorData: getVisitorDataFn.bind(undefined, ruleId),
406
+ },
407
+ collectParents(context),
408
+ context
409
+ );
410
+ }
411
+
412
+ function reportFn(ruleId: string, severity: ProblemSeverity, opts: Problem) {
413
+ const normalizedLocation = opts.location
414
+ ? Array.isArray(opts.location)
415
+ ? opts.location
416
+ : [opts.location]
417
+ : [{ ...currentLocation, reportOnKey: false }];
418
+ const location = normalizedLocation.map((l) => ({
419
+ ...currentLocation,
420
+ reportOnKey: false,
421
+ ...l,
422
+ }));
423
+ const ruleSeverity = opts.forceSeverity || severity;
424
+ if (ruleSeverity !== 'off') {
425
+ ctx.problems.push({
426
+ ruleId: opts.ruleId || ruleId,
427
+ severity: ruleSeverity,
428
+ ...opts,
429
+ suggest: opts.suggest || [],
430
+ location,
431
+ });
432
+ }
433
+ }
434
+ function getVisitorDataFn(ruleId: string) {
435
+ ctx.visitorsData[ruleId] = ctx.visitorsData[ruleId] || {};
436
+ return ctx.visitorsData[ruleId];
437
+ }
438
+ }
439
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,8 @@
1
+ {
2
+ "extends": "../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "rootDir": "src",
5
+ "outDir": "lib"
6
+ },
7
+ "exclude": ["**/__tests__", "lib"]
8
+ }
@@ -0,0 +1 @@
1
+ {"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/@types/lodash/common/common.d.ts","../../node_modules/@types/lodash/common/array.d.ts","../../node_modules/@types/lodash/common/collection.d.ts","../../node_modules/@types/lodash/common/date.d.ts","../../node_modules/@types/lodash/common/function.d.ts","../../node_modules/@types/lodash/common/lang.d.ts","../../node_modules/@types/lodash/common/math.d.ts","../../node_modules/@types/lodash/common/number.d.ts","../../node_modules/@types/lodash/common/object.d.ts","../../node_modules/@types/lodash/common/seq.d.ts","../../node_modules/@types/lodash/common/string.d.ts","../../node_modules/@types/lodash/common/util.d.ts","../../node_modules/@types/lodash/index.d.ts","../../node_modules/@types/lodash.isequal/index.d.ts","./src/typings/openapi.ts","../../node_modules/@types/minimatch/index.d.ts","./node_modules/@types/node/ts4.8/assert.d.ts","./node_modules/@types/node/ts4.8/globals.d.ts","./node_modules/@types/node/ts4.8/async_hooks.d.ts","./node_modules/@types/node/ts4.8/buffer.d.ts","./node_modules/@types/node/ts4.8/child_process.d.ts","./node_modules/@types/node/ts4.8/cluster.d.ts","./node_modules/@types/node/ts4.8/console.d.ts","./node_modules/@types/node/ts4.8/constants.d.ts","./node_modules/@types/node/ts4.8/crypto.d.ts","./node_modules/@types/node/ts4.8/dgram.d.ts","./node_modules/@types/node/ts4.8/dns.d.ts","./node_modules/@types/node/ts4.8/domain.d.ts","./node_modules/@types/node/ts4.8/events.d.ts","./node_modules/@types/node/ts4.8/fs.d.ts","./node_modules/@types/node/ts4.8/fs/promises.d.ts","./node_modules/@types/node/ts4.8/http.d.ts","./node_modules/@types/node/ts4.8/http2.d.ts","./node_modules/@types/node/ts4.8/https.d.ts","./node_modules/@types/node/ts4.8/inspector.d.ts","./node_modules/@types/node/ts4.8/module.d.ts","./node_modules/@types/node/ts4.8/net.d.ts","./node_modules/@types/node/ts4.8/os.d.ts","./node_modules/@types/node/ts4.8/path.d.ts","./node_modules/@types/node/ts4.8/perf_hooks.d.ts","./node_modules/@types/node/ts4.8/process.d.ts","./node_modules/@types/node/ts4.8/punycode.d.ts","./node_modules/@types/node/ts4.8/querystring.d.ts","./node_modules/@types/node/ts4.8/readline.d.ts","./node_modules/@types/node/ts4.8/repl.d.ts","./node_modules/@types/node/ts4.8/stream.d.ts","./node_modules/@types/node/ts4.8/string_decoder.d.ts","./node_modules/@types/node/ts4.8/timers.d.ts","./node_modules/@types/node/ts4.8/tls.d.ts","./node_modules/@types/node/ts4.8/trace_events.d.ts","./node_modules/@types/node/ts4.8/tty.d.ts","./node_modules/@types/node/ts4.8/url.d.ts","./node_modules/@types/node/ts4.8/util.d.ts","./node_modules/@types/node/ts4.8/v8.d.ts","./node_modules/@types/node/ts4.8/vm.d.ts","./node_modules/@types/node/ts4.8/wasi.d.ts","./node_modules/@types/node/ts4.8/worker_threads.d.ts","./node_modules/@types/node/ts4.8/zlib.d.ts","./node_modules/@types/node/ts4.8/globals.global.d.ts","./node_modules/@types/node/ts4.8/index.d.ts","../../node_modules/form-data/index.d.ts","../../node_modules/@types/node-fetch/externals.d.ts","../../node_modules/@types/node-fetch/index.d.ts","../../node_modules/@types/pluralize/index.d.ts","../../node_modules/@types/js-yaml/index.d.ts","./src/js-yaml/index.ts","./src/typings/swagger.ts","./src/types/index.ts","./src/visitors.ts","./src/oas-types.ts","./src/env.ts","./src/config/types.ts","../../node_modules/colorette/index.d.ts","./src/logger.ts","./src/config/utils.ts","./src/config/config.ts","./src/config/rules.ts","./src/config/recommended.ts","./src/config/all.ts","./src/config/minimal.ts","../../node_modules/@types/js-levenshtein/index.d.ts","../../node_modules/uri-js/dist/es5/uri.all.d.ts","../../node_modules/@redocly/ajv/dist/compile/codegen/code.d.ts","../../node_modules/@redocly/ajv/dist/compile/codegen/scope.d.ts","../../node_modules/@redocly/ajv/dist/compile/codegen/index.d.ts","../../node_modules/@redocly/ajv/dist/compile/rules.d.ts","../../node_modules/@redocly/ajv/dist/compile/util.d.ts","../../node_modules/@redocly/ajv/dist/compile/validate/subschema.d.ts","../../node_modules/@redocly/ajv/dist/compile/errors.d.ts","../../node_modules/@redocly/ajv/dist/compile/validate/index.d.ts","../../node_modules/@redocly/ajv/dist/compile/validate/dataType.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/additionalItems.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/items2020.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/contains.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/dependencies.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/propertyNames.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/additionalProperties.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/not.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/anyOf.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/oneOf.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/if.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/applicator/index.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/validation/limitNumber.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/validation/multipleOf.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/validation/pattern.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/validation/required.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/validation/uniqueItems.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/validation/const.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/validation/enum.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/validation/index.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/format/format.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/unevaluated/unevaluatedItems.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/validation/dependentRequired.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/discriminator/types.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/discriminator/index.d.ts","../../node_modules/@redocly/ajv/dist/vocabularies/errors.d.ts","../../node_modules/@redocly/ajv/dist/types/json-schema.d.ts","../../node_modules/@redocly/ajv/dist/types/jtd-schema.d.ts","../../node_modules/@redocly/ajv/dist/runtime/validation_error.d.ts","../../node_modules/@redocly/ajv/dist/compile/ref_error.d.ts","../../node_modules/@redocly/ajv/dist/core.d.ts","../../node_modules/@redocly/ajv/dist/ajv.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/2020.d.ts","./src/rules/ajv.ts","./src/rules/utils.ts","./src/rules/common/spec.ts","./src/rules/common/operation-2xx-response.ts","./src/rules/common/operation-4xx-response.ts","./src/rules/common/assertions/utils.ts","./src/rules/common/assertions/asserts.ts","./src/rules/common/assertions/index.ts","./src/rules/common/operation-operationId-unique.ts","./src/rules/common/operation-parameters-unique.ts","./src/rules/common/path-params-defined.ts","./src/rules/common/operation-tag-defined.ts","./src/rules/oas3/no-example-value-and-externalValue.ts","./src/rules/common/no-enum-type-mismatch.ts","./src/rules/common/no-path-trailing-slash.ts","./src/rules/common/path-declaration-must-exist.ts","./src/rules/common/operation-operationId-url-safe.ts","./src/rules/common/tags-alphabetical.ts","./src/rules/oas3/no-server-example.com.ts","./src/rules/oas3/no-server-trailing-slash.ts","./src/rules/common/tag-description.ts","./src/rules/common/info-contact.ts","./src/rules/common/info-license.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/security-defined.ts","./src/rules/no-unresolved-refs.ts","./src/rules/oas3/boolean-parameter-prefixes.ts","./src/rules/common/paths-kebab-case.ts","./src/rules/common/path-http-verbs-order.ts","./src/rules/oas3/no-empty-servers.ts","./src/rules/oas3/no-invalid-media-type-examples.ts","./src/rules/common/no-identical-paths.ts","./src/rules/oas3/no-undefined-server-variable.ts","./src/rules/common/operation-operationId.ts","./src/rules/common/operation-summary.ts","./src/rules/common/no-ambiguous-paths.ts","./src/rules/oas3/no-server-variables-empty-enum.ts","./src/rules/common/no-http-verbs-in-paths.ts","./src/rules/oas3/request-mime-type.ts","./src/rules/oas3/response-mime-type.ts","./src/rules/common/path-segment-plural.ts","./src/rules/common/path-excludes-patterns.ts","./src/rules/common/no-invalid-schema-examples.ts","./src/rules/common/no-invalid-parameter-examples.ts","./src/rules/common/response-contains-header.ts","./src/rules/oas3/response-contains-property.ts","./src/rules/common/scalar-property-missing-example.ts","./src/rules/oas3/spec-components-invalid-map-name.ts","./src/rules/oas3/operation-4xx-problem-details-rfc7807.ts","./src/rules/common/required-string-property-missing-min-length.ts","./src/rules/common/spec-strict-refs.ts","./src/rules/oas3/component-name-unique.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/response-contains-property.ts","./src/rules/oas2/index.ts","./src/redocly/registry-api-types.ts","./src/redocly/registry-api.ts","./src/redocly/redocly-client-types.ts","./src/redocly/index.ts","./src/decorators/common/registry-dependencies.ts","./src/decorators/common/operation-description-override.ts","./src/decorators/common/tag-description-override.ts","./src/decorators/common/info-description-override.ts","./src/decorators/common/info-override.ts","./src/decorators/common/remove-x-internal.ts","./src/decorators/common/filters/filter-helper.ts","./src/decorators/common/filters/filter-in.ts","./src/decorators/common/filters/filter-out.ts","./src/decorators/common/media-type-examples-override.ts","./src/decorators/oas3/index.ts","./src/decorators/oas2/index.ts","./src/config/builtIn.ts","./src/config/config-resolvers.ts","./src/config/load.ts","./src/config/index.ts","./src/walk.ts","./src/utils.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/resolve.ts","./src/types/oas3.ts","./src/types/oas2.ts","./src/types/oas3_1.ts","./src/rules/oas2/remove-unused-components.ts","./src/rules/oas3/remove-unused-components.ts","./src/bundle.ts","./src/types/config-external-schemas.ts","./src/types/redocly-yaml.ts","./src/typings/common.ts","./src/rules/other/stats.ts","./src/format/codeframes.ts","./src/output.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/configstore/index.d.ts","../../node_modules/@types/eslint/helpers.d.ts","../../node_modules/@types/estree/index.d.ts","../../node_modules/@types/json-schema/index.d.ts","../../node_modules/@types/eslint/index.d.ts","../../node_modules/@types/eslint-scope/index.d.ts","../../node_modules/@types/glob/index.d.ts","../../node_modules/@types/graceful-fs/index.d.ts","../../node_modules/@types/react/global.d.ts","../../node_modules/csstype/index.d.ts","../../node_modules/@types/prop-types/index.d.ts","../../node_modules/@types/scheduler/tracing.d.ts","../../node_modules/@types/react/index.d.ts","../../node_modules/@types/hoist-non-react-statics/index.d.ts","../../node_modules/@types/is-ci/node_modules/ci-info/index.d.ts","../../node_modules/@types/is-ci/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/jquery/JQueryStatic.d.ts","../../node_modules/@types/jquery/JQuery.d.ts","../../node_modules/@types/jquery/misc.d.ts","../../node_modules/@types/jquery/legacy.d.ts","../../node_modules/@types/sizzle/index.d.ts","../../node_modules/@types/jquery/index.d.ts","../../node_modules/@types/mark.js/index.d.ts","../../node_modules/@types/marked/index.d.ts","../../node_modules/@types/minimist/index.d.ts","../../node_modules/@types/normalize-package-data/index.d.ts","../../node_modules/@types/prettier/index.d.ts","../../node_modules/@types/react-dom/index.d.ts","../../node_modules/@types/react-tabs/index.d.ts","../../node_modules/@types/scheduler/index.d.ts","../../node_modules/@types/semver/classes/semver.d.ts","../../node_modules/@types/semver/functions/parse.d.ts","../../node_modules/@types/semver/functions/valid.d.ts","../../node_modules/@types/semver/functions/clean.d.ts","../../node_modules/@types/semver/functions/inc.d.ts","../../node_modules/@types/semver/functions/diff.d.ts","../../node_modules/@types/semver/functions/major.d.ts","../../node_modules/@types/semver/functions/minor.d.ts","../../node_modules/@types/semver/functions/patch.d.ts","../../node_modules/@types/semver/functions/prerelease.d.ts","../../node_modules/@types/semver/functions/compare.d.ts","../../node_modules/@types/semver/functions/rcompare.d.ts","../../node_modules/@types/semver/functions/compare-loose.d.ts","../../node_modules/@types/semver/functions/compare-build.d.ts","../../node_modules/@types/semver/functions/sort.d.ts","../../node_modules/@types/semver/functions/rsort.d.ts","../../node_modules/@types/semver/functions/gt.d.ts","../../node_modules/@types/semver/functions/lt.d.ts","../../node_modules/@types/semver/functions/eq.d.ts","../../node_modules/@types/semver/functions/neq.d.ts","../../node_modules/@types/semver/functions/gte.d.ts","../../node_modules/@types/semver/functions/lte.d.ts","../../node_modules/@types/semver/functions/cmp.d.ts","../../node_modules/@types/semver/functions/coerce.d.ts","../../node_modules/@types/semver/classes/comparator.d.ts","../../node_modules/@types/semver/classes/range.d.ts","../../node_modules/@types/semver/functions/satisfies.d.ts","../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../node_modules/@types/semver/ranges/min-version.d.ts","../../node_modules/@types/semver/ranges/valid.d.ts","../../node_modules/@types/semver/ranges/outside.d.ts","../../node_modules/@types/semver/ranges/gtr.d.ts","../../node_modules/@types/semver/ranges/ltr.d.ts","../../node_modules/@types/semver/ranges/intersects.d.ts","../../node_modules/@types/semver/ranges/simplify.d.ts","../../node_modules/@types/semver/ranges/subset.d.ts","../../node_modules/@types/semver/internals/identifiers.d.ts","../../node_modules/@types/semver/index.d.ts","../../node_modules/@types/stack-utils/index.d.ts","../../node_modules/@types/styled-components/index.d.ts","../../node_modules/@types/yargs-parser/index.d.ts","../../node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"ac3a8c4040e183ce38da69d23b96939112457d1936198e6542672b7963cf0fce","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940",{"version":"1dad4fe1561d99dfd6709127608b99a76e5c2643626c800434f99c48038567ee","affectsGlobalScope":true},{"version":"cce43d02223f8049864f8568bed322c39424013275cd3bcc3f51492d8b546cb3","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"8dff1b4c2df638fcd976cbb0e636f23ab5968e836cd45084cc31d47d1ab19c49","affectsGlobalScope":true},{"version":"2bb4b3927299434052b37851a47bf5c39764f2ba88a888a107b32262e9292b7c","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"8f4c9f651c8294a2eb1cbd12581fe25bfb901ab1d474bb93cd38c7e2f4be7a30","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"df9c8a72ca8b0ed62f5470b41208a0587f0f73f0a7db28e5a1272cf92537518e","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"93544ca2f26a48716c1b6c5091842cad63129daac422dfa4bc52460465f22bb1","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"60761e6ea886034af0f294f025a7199360ce4e2c8ba4ec6408bc049cf9b89799","affectsGlobalScope":true},{"version":"7435b75fdf3509622e79622dbe5091cf4b09688410ee2034e4fc17d0c99d0862","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"9f1817f7c3f02f6d56e0f403b927e90bb133f371dcebc36fa7d6d208ef6899da","affectsGlobalScope":true},{"version":"506b80b9951c9381dc5f11897b31fca5e2a65731d96ddefa19687fbc26b23c6e","affectsGlobalScope":true},"675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","fe4a2042d087990ebfc7dc0142d5aaf5a152e4baea86b45f283f103ec1e871ea","d70c026dd2eeaa974f430ea229230a1897fdb897dc74659deebe2afd4feeb08f","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","febf0b2de54781102b00f61653b21377390a048fbf5262718c91860d11ff34a6","6702a1cd8818cb22ee95c85dcf2c31c117bde892e1afd2bc254bd720f4c6263c","0aaef8cded245bf5036a7a40b65622dd6c4da71f7a35343112edbe112b348a1e","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","ae9930989ed57478eb03b9b80ad3efa7a3eacdfeff0f78ecf7894c4963a64f93","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3cf0d343c2276842a5b617f22ba82af6322c7cfe8bb52238ffc0c491a3c21019","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9",{"version":"f2eff8704452659641164876c1ef0df4174659ce7311b0665798ea3f556fa9ad","affectsGlobalScope":true},"6bb8d7433a29fbd33df8e9693f1788a273a9eb90b96c8f99c745678c7db623f1","85ea2788ccd91b3a5b2517801f5f5aff2b771e0d44ffe6f7d94d7857e005cf42","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","4c2c4f53e8eedd970f8afa369d7371544fb6231bf95e659f8602e09abe74d5a5",{"version":"32ddf2b046fa7269050f64a87f1f3d2db10b92ad6302460681915af1207b1222","affectsGlobalScope":true},"c2b5085f47e41d6940bbc5b0d3bd7cc0037c752efb18aecd243c9cf83ad0c0b7","3143a5add0467b83150961ecd33773b561a1207aec727002aa1d70333068eb1b","9b2a8f604e7c0482a9061755f00b287cc99bd8718dc82d8207dd74c599b6dc43","d0fc76a91c828fbe3f0be5d683273634b7b101068333ceed975a8a9ac464137b",{"version":"1a048ff164b8d9609f5de3139d4e37f6e8a82af82087ac414b9208f52ef8aac7","affectsGlobalScope":true},"3111079f3cb5f2b9c812ca3f46161562bce5bfb355e915f46ed46c41714dc1c3","db86f82fac051ae344b47e8fe7ac7990174b41db79b2b220a49dc5a47c71a9b5","b32b6b16cb0bda68199582ad6f22242d07ee75fac9b1f28a98cd838afc5eea45","4441ee4119824bfaebc49308559edd7545978f9cb41a40f115074e1031dde75f",{"version":"60693a88462d0e97900123b5bf7c73e146ce0cc94da46a61fe6775b430d2ff05","affectsGlobalScope":true},{"version":"588c69eda58b9202676ec7ca11a72c3762819b46a0ed72462c769846153c447c","affectsGlobalScope":true},"ae064ed4f855716b7ff348639ddcd6a6d354a72fae82f506608a7dc9266aa24c","92f019c55b21c939616f6a48f678e714ac7b109444cbbf23ad69310ce66ecbdc","0eb4ba769e8881dc8cf1fb77c059eb9e3ed8a4ebe70a19a0f2055b68fda68c60","56e6722c6013609b3e5e6ed4a8a7e01f41da6c5e3d6f0ecff3d09ef7a81414cf","3924e8b900c717cb4ddf663d996e0bc0918f01b2c2e8dccaa94e59a8ae6912ec","f614c3f61e46ccc2cb58702d5a158338ea57ee09099fde5db4cfc63ed0ce4d74","44e42ed6ec9c4451ebe89524e80ac8564e9dd0988c56e6c58f393c810730595d","d79fda68cbfb361c4ee9cd9ea169babb65887534d64017726cd01f54783d20a5","155865f5f76db0996cd5e20cc5760613ea170ee5ad594c1f3d76fcaa05382161","e92852d673c836fc64e10c38640abcd67c463456e5df55723ac699b8e6ab3a8a","4455c78d226d061b1203c7614c6c6eb5f4f9db5f00d44ff47d0112de8766fbc4",{"version":"ec369bb9d97c4dc09dd2a4093b7ca3ba69ad284831fccac8a1977785e9e38ce5","affectsGlobalScope":true},"4465a636f5f6e9665a90e30691862c9e0a3ac2edc0e66296704f10865e924f2a","9af781f03d44f5635ed7844be0ce370d9d595d4b4ec67cad88f0fac03255257e","f9fd4c3ef6de27fa0e256f4e75b61711c4be05a3399f7714621d3edc832e36b0","e49290b7a927995c0d7e6b2b9c8296284b68a9036d9966531de65185269258d7","c3689f70ce7563c2299f2dcb3c72efdf6f87ae510e7456fa6223c767d0ca99fc","874ca809b79276460011480a2829f4c8d4db29416dd411f71efbf8f497f0ac09","6c903bceaf3f3bc04f2d4c7dcd89ce9fb148b3ba0a5f5408d8f6de2b7eecc7ea","504d049d9e550a65466b73ca39da6469ab41786074ea1d16d37c8853f9f6ab2e","23a28f834a078986bbf58f4e3705956983ff81c3c2493f3db3e5f0e8a9507779","4febdf7f3ec92706c58e0b4e8159cd6de718284ef384260b07c9641c13fc70ce",{"version":"eabefc2999c1489cf870e0c85af908900462fa245822d9a4616780a1a129945d","affectsGlobalScope":true},"7335933d9f30dcfd2c4b6080a8b78e81912a7fcefb1dafccb67ca4cb4b3ac23d","a6bfe9de9adef749010c118104b071d14943802ff0614732b47ce4f1c3e383cd","4c3d0e10396646db4a1e917fb852077ee77ae62e512913bef9cccc2bb0f8bd0e","3b220849d58140dcc6718f5b52dcd29fdb79c45bc28f561cbd29eb1cac6cce13","0ee22fce41f7417a24c808d266e91b850629113c104713a35854393d55994beb","22d1b1d965baba05766613e2e6c753bb005d4386c448cafd72c309ba689e8c24",{"version":"2708349d5a11a5c2e5f3a0765259ebe7ee00cdcc8161cb9990cb4910328442a1","affectsGlobalScope":true},"01c93adfc4c6555c559e7334b6b5f45b48c9e1f809144822088e45ba13e36d9f","736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","3898e3dbe94b6fe529fbe8f0faee1309c1923100516d7a014b301955e52ece77","3663d1b50f356656a314e5df169bb51cb9d5fd75905fa703f75db6bb32030568","8f7a2387ecc680872d09a6edbca1612d699f77ee5a5129944935c3798a613d04","686e548ae30250d62532c8cacb43fccc922b693408371bd3503563c4a0f28eed","5e945a874d1e65cc3a76a885d6626ee70b7fac6c36c3b0050ad4e6a19300e0d9","5dd3362a43459f9da722b4fa519be37c2d0cd5f7e5f3fc29b57ec4b86733ccb3","b97f02b06f1440ee0d60a9ec6d4046e8a1dc4799b841d4ee930eccef31d9a1b2","8ac9586910c9b40e5052d0bd30e2ef4ec481cfe3def5d9f4a0132b08c5519d46","fac66aed5683e1397b16b387cf8ebe49157dfa6d137104632b7e219ec2d3e32b","c12d57ea618d6b5fa8484e12fb8708be8c5e11a228dd8802c5e54585ffbd2e87","9f8e67e7bb237c051d0ac409e7075dbfa586be65c159a63cd0748f78600f6190","a456dd94a596de621bd25cf3c91278101ea62782c3ac4435aef9190a2336ddde","ae68aa08a533ebc25f48055232b1e38785ab0e35e0f2b71ad64ad269d399f46c","22ddb77b9ceb4804186e98299dcb98ca29a296e113ba0dd09b22238b5bab6231","92cd4de30579bb4fbb622e8400467be70927d20b5016813b6db6cf37ddd02481","1ab5b6f8157c4ecbc78825fc6e8473a41dbb62c8499aec54f9c0edf7bbefc6ec","b5d415b4f1e9fbfdd45f6764668e8fac5ed446543475be5a5ee7c961ba30f3c1","c4e5c15ace1e1ca77c04d70a18edea201f15f927b397188edf0b8147eda281c4","68626750986005852349602811a4fb0987a29ddf8d242b36c02c5d69bfdeb1e1","21bb8dda75eb025927e9d62d8fa619e349ebc5ba0b8b9dddd8fdfc9ff058e2b8","9f3c5498245c38c9016a369795ec5ef1768d09db63643c8dba9656e5ab294825","44a8d350600656882fd7462774e32e8d13788313ba2e36d2e8d5437ac91b98df","60bb0e47502bf8716d1230288b4e6387c1d34cded12752ab5338108e2e662e67","b8870b5155d11a273c75718a4f19026da49f91c548703858cd3400d06c3bd3b8","b3ae4ded82f27cabba780b9af9647f6e08c9a4cabe8fbb7a0cca69c7add9ef4b","8d26ae32e5c9c080e44aee4a67e5ef02b5fda0604e6fecbb7b753c537e5282d9","05c4e792dae38912ba333725cdf8c42d242337d006c0d887f4ce5a7787871a95","cd44995ee13d5d23df17a10213fed7b483fabfd5ea08f267ab52c07ce0b6b4da","04fe22412d1bcf436e5222c37d74acfac71b8cdc86b05eee27c41f206b408e35","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","7dfd0308261bb91b058eb91802690fe3f09192b263e070a19df4d629df29e265","608eb9d411ac76e93a10e05f8aae92b3a5cefc87594219b737df7c8737ba2bd7","cde493e09daad4bb29922fe633f760be9f0e8e2f39cdca999cce3b8690b5e13a","3d7f9eb12aface876f7b535cc89dcd416daf77f0b3573333f16ec0a70bcf902a","0dfaf117b1c228da73d7e4382813b593bba6393cd7942a873cf8e9a0034f6f46","821e64ddbdfa10fac5f0aed1c1d4e1f275840400caa96357ddfd15d02e5afba1","8750f9dc1e277ffff7446c95571bae61aca0984e8f99e40fc1e8cb7161ae0642","ad9ec25a6d256cccd5d4be04d10a5d789739fad12bda169ed80b4611c525ee3a","7481b9d93ca44eb1f689e0b939545ff00dead7bdb9daba401dfb74292d83f831","ac9c043ad6add90327f1f1f0c021e84527a7f932bc2302c8138195fb86975af5","382cff374c6de0e1fbb28695df86c48c4ddbb82e3831ab5dfefd11f8bb7e208a","a2139479e057ff83b076289c8398a8b0bf646cf154ce342c1fddf9821e4dbfeb","c5155f855bdd7de37d1400de30e0531ac09c6c3a1923446787f6907d11ebe22f","94991af0eb989e1ccdc44ee727c42280060d2e593473c2a8dfbf4eaa41cbe737","fa744b4468269623a9c2c151ba43b76d5f24efce0ba786972838dc6b288a8ee1","133d5dab17176f31a824745682622e22414dbd10fecc1f968d38be4378904b63","8765569aee885714f08d016febda50471d091d58e135a254fb0567950491b40d","e88b2d38c5c4bbecb3a7997d3a9d8049520ae90757a349e1cc48c5a1adedc812","e8b5d684b18772f93fd7ac85652a9dd8c3c4ac42d255ebc676ddd75d213a60eb","e9b215c7ee7d0425172e4c70de8d4a6334dcafb8e2ee8c613ce9132faa12146c","f8e574a46f53603fedd873636b968b3a2ae3c87c21d48c1d63473cf38386333f","bf2c096718a7ac63b8360adecc2e70101f89363ddfbfb52f4722345dca2e24ee","329318845916f35128387bb291f2f252ccc80fe968ae6f6ee7a7bd644b9af509","3fa4cccc267fb6076b9e0845f17677e78c72342bb5151d361da7774a1f0a45c5","8e8d8e11136d8c5a59360e90455356a41c8006129f7e459fbbf8a4551379f23a","a959db7039a615c94a9c236d0664463fd8fcc7c08e68c01bd7de4b49116c2b2c","3144d082b0efd80551c4b9ff1dd29ba6b0f0bb0709d481ed5285313e0845ee36","3e003a98926dbd9bfbee4ac22cabffbf720a9ee1dfcd81091cb4e84d49adc2a9","37106a318a9b70352fc7fb06ed9a31c218342402f194355ad7c3e83c226b8b84","8d6b668236eb00f3942aa43d87ad361448b34ad335446fb9f4915ee612c1c372","679f01be7caf9e091684d1f0fdabc8837991ed589a4c2617c72799c4aed0b60e","a3f88fc187a30877572d86ca78bfbad1ce1f7f081a13f4a1a3de12fc19172763","66d74d867bddeb432fb11821c818d712fa2142b5d4e8e415e33cd1001422e304","53e922fc5556e9825e10ebc780ea40088404abb4f1a76251bb5fac18eb20fc93","099e32d949572f34338bcc5a9bf84b09966b5b347b0462154eaf1679968ff74e","e7531f2ca4153b5e8c850101a9e3ed210840bb87e6f5775eb5e093c50b36baeb","0500b9597849b2be6e7682b7a9b522a96536d7bbc2a731f8364638bdc1b8c31e","576815ad63894f88f18c36c239e23562b35033e0dab57ff665dc0410db4a8b54","d23b6230c10ffb27b8cec7f0aef6443f8736620ce07bf7a991efb02e0f599d42","36ad65d334c2acd8aa58e9f886699ce57c06b416f7fb8d729d93271e73bd7b25","ca2546e775a426dbbd1d7834a9926441ad9da4ca4c1f92dd355b2a2e08ce45cf","d0b2d3ab2b3934d5ea2d1ca2973fce9c031bec115c37e437b32bad32c0d79196","b1a34ec7490c02b8b491435ae2becd70782c826cab2aee20037c9af4e35b8762","8434dc2a1f866e713703e6d8ccc85168d92c07049138a3f2895e63f1b0d0ff8a","4d93be8f75515389722681c7e896b1ea4f487837403a9db61dacba7ebca163ab","9c3c88258a9755fd5f4b5287c4bc713b2bac7368f16c86f9f4a9001d762cd167","1e9d6b901d66103ff0d7c3d8ef9071f4ad5fbc95e3a4f32a74c6e9c356df834f","fd1531c043404c41a9554cc39c1af2738f53edc508e450a17c246f3c5e881889","1c6497c38e25b5a2998f8d255c7e053740603e14a82f08dd22c99dca0db2c223","56d135e85dcc15aa982d8ca85f8021859447db147c51123e3811b3a48cb7d90b","38bd4ac7835def233bd9575f034d9e031033e6d5bbcf9f0ca2ac7b9a364b8fb4","9f2ffb945563e7f8948c8b535fe6dbe3ebdb2a87da6560509f47b09243d4487e","6779e161b87b79684bbcf4514e8e2372d87d066930be098425539b64cf47351f","cdabe7df586790bec4672ae597f2e7d603bddf23d9083a45c7f574d488b48980","2a3b8622dfca1792c1015b8cdf1ad7add82ffd745aa8c86e9ca24abb67169182","bc7711d24df78e5dbedb9b206cdc72e1880a757328bd5e094b582dcf572bb273","63f0634d9c4ce2d509e81033b88f5a565c5151876300616dd07958b54f944b14","98bdb4dde3f730fb44223d73178f6b23ab1be6d8dcdf6eab75c33659daab5bc9","17654eeaa4ac100ea1ee697e2e1853e256f693404137945a8d89eebcbbf1c6fb","1a11bab82e6a4e9d92b20813961edbf2902ebe9e63e73f873d40cf0b067c58f7","ed959779509febe0bfb0a9d40506e810a10dee27b66cb00792866c58e15d06fd","67b3f1d8f68aa2201c9cf0f72873cf4f813f53a8b3fc657983091af0b50b198d","b57ea0be70e954ebda31d0c48e82f5c69f3df1b2707d5047d68ae21dbf09cc5b","a19f2332a3579f0406e2c896e89d9b03716455f1851d975393378d340119bab0","bdae060824fe97edaeb01de85264caa53c46026d965869177aa1d3e31054520e","0fbe3149a6a01a2b39ba6efb5b832949365f5088137c9514ded08a87fcaf9f7b","7df289dc9fb34000b9ddfb422fcbdeaf291ff8698f376ab9b72db4e3b1eb6721","304ff2e298299fed068d0b277931d2f3049989f92fdb2217e599a8027c9f1ebf","41d545e5d36083f5bf6432c93dc2d3cb29ed4f8deae03b9dec59c55e02fbe597","81c5777b2a9890740e95b5e2dea3563b42dd1c29e0168810730430432a3ea120","2d0e52ea832ab73f4e0b5e1b8c07cb7cdf4185b4dcc6c291950cab196b8294e4","ec80247b577af5053d4846f8f72efc5e05c5d3c6e5eb76111656d2cf22f01584","222fe108e7aa72b33352c4f2e4eaeadc05c887ad569799fea5b840795651ea61","6913c9eac40b93b1c01ddee5fa8928fd2f2fcb1071682ebe6e09c6da74d67dad","4fefe158ec4e6cd5761a8fd383dcccdf73a76c5ae5c5d6b68f244a362451a17d","a3443a2339b42c762d7980f11195fe1bede24f567d3052700cf62ea89c465588","6477b04a846f53007bdd1e48250a8dfa4009d2d7cb54fb9946497edb7dbbb158","b81b58a1dfdebee8bd35fb6779e31bc155eab572b6c6de960a7afff83120231e","74b69859cd51d2abe97aa8dcf5d03b0e05f32c530d6582d42b21eb31fcb05ab3","246dc494a9f2e58c45b0854c0dab413a45f0d986e11afc3d88a2d33afa9dc55c","5fed2f78a6d019ee3da2e07aaf10247b0fe3658deddf463d9665363acd707fe6","4430c43e78bba2cc910951e426497fcff8913068b87e31bc8a6fe0e2a081bbd0","e40227411ee27967433e6ded58b9545552068da77e22ca92f1858d5366c1c4b1","d6fc5b9dc7c56f856465db6d3584a44d93921bf741eb232581425d136a7bfa46","d337952248ee720900b65df385893c5886d56d2f879825d0b7d057451469c6e5","87f6b8ff466092632ce6223aa379077a9510c2abb8eb170056c446f2d2008bac","0f9ac3cc277a7c2ce2159af5d42fc5f56bfd66d5e1f51da53f015e4ab22cc842","b6151f8e995523fcf06555df57dde50a33c2ac1368990dd9225726fb9ea5cf9e","816d317e1810802434b33602cb27bed9d71b89c4b98c653932d68aa714ac012b","ecd26733e59d19dc4920914c3d54682dcebf269f5d66f13c07a1b23cc85aceeb","d86573a1b687a1c2d4772c1ccac2b7ac60ab4944bf7bce9e0b5e141a83294ac8","058690a8f1e20eeb2db175a1bfa279afacd2b3657285e8571cb57cd8f98a70c6","88dc0dcab75df96583b348f379c7aec6712561d17d8ce208d36ab492b23ae46d","54dbe1237d29d1418fbf4f76c0d47cdfd6016cdfa8071f60c22d178acfe67da2","7412dc50d561bc5c1436bf054e2c812d2f99593c6fafe7252528de966ebeb8f5","c5f656c2920bc56002dddc880dec99207fa2c8239d3e47d075f4fd969d9c1fa2","8d1539367a9f5a03698f4c37111251eb76433ea8fcb5f1e546571b8513cac822","9ad71085f8ab35282a341995f85c6e06a19e6d5ab73b39f634b444ce8742a664","ee94d8f60c253d9994559ad325e9cb8a7af6bd36176884cb869ee5a40daa766c","606de01a4212a48518a219585f673504d3c0c26b361706006038a71bf8b9f42c","76de776e227ad01b703ce076b32177da31a765d5b5a681d5bb4c4e0f4876840f","aa4c984c8f2919742d06f305b1870bf180275cbe015490451a6374e6f6b9998a","46b9cdcd62e90f604876c143481ac7ff2c89cdfb902179bda0d8ee44c0695beb","04a19bd15650bff1c7cf6be2b14bd7cb212e40a1050a6eb0c6ec6f2586133359","d60a7839359b013818e1890b9a5016517b8d37658fefb2f6d24da7e65d511114","324b0d5aa2b333b787179e03af6e399d80344446ea80891b19bb82369c27afa3","b5ba43aa91ef7b229f65e242911b71fd31448a1aa4fe3396735dd2953f616f0d","83f108f17635d34240841076fa2f2e9f1dcd46e25410cd66935de77708d7ca2e","22b61bd583594c8002ef145e341baf02ba1b4ad65f63199f0ba4aafd296df716","cc07bcd01df5540d153e6c6b4974ae9e5f579ce3ab9c8c4b4681f8c0616752ad","4251966bf0b5ec4da8163a6050669539c80ad341f60aacfad5f02dd2aecbf4cc","727af453555c08c08b0768a5a915802a56524fa2aab005ff851db8116dd77c0d","0eda506c24ee190c7203710e9e55905704acb219bb06ce69df0f7ba08857e8b3","83bf333367fedd41df2b72303a18d3dc67723e6da84f9468d1eb2c46fe9f2020","3830770ce0be33c537db546980e50b24d9f7daa25738c48a93910654bef4c4c0","9c8a0b820f39eda165d9ee043d1b69194a2a0b447049feeebebeebf098582d4c","97e6ad7c2e6d09f0ff6ca4754cacac9d8479d5f390fcbcf8fd44049c44d55bf8","4de396b5d8737ac42d33b70dc664fb65f26ac24bf5df9c70551277dfbc1813fe","375b3c76674a5db2b3a4287dc74aad47ead444e1a3895b739279b034557ec209","39cf517b69d90fda2f9c9a10b860ed1465fc22d50c25889ed5e4b757fbbcd01d","8dde57b83dcb3175234a3e853eb3e4f7ca94cf9aaeda962c4112569d3cd32e5e","24adf051c683dd54bddd75d069d722668207f8cc82d4801155233ac4447a6b27","0c6cd93f3cae88f1dff9fcab9389f272e9235560ccf38a19f88edc376d021558","020ccbbef6fe61f7558474fb5ac9d9a99b84c4200965816d9aedf9878bd0cff6","a41314eb87962254133595c841fb39e47e9e493943c7e3165d44bf5bd14db34f","9e5e3201ca8d962247b747892f65478092a2d3842ed2e09e0f6d7993f215a181","ec50cf2998206e200f46ea7ba975121ddd0df5b86c4750c4f8b8634ae4411b77","9b6d2a9f610aac2dc6c3fcc45a90dbbde0411dd677bdc956d76f484f397640f1","cc957354aa3c94c9961ebf46282cfde1e81d107fc5785a61f62c67f1dd3ac2eb","a46a2e69d12afe63876ec1e58d70e5dbee6d3e74132f4468f570c3d69f809f1c","93de1c6dab503f053efe8d304cb522bb3a89feab8c98f307a674a4fae04773e9","c7597e9b1b1eac80e5bca7d136321ab80804ff37f026bc84a8a8553904db9847","5426e62886b7be7806312d31a00e8f7dccd6fe63ba9bbefe99ee2eab29cc48a3","b4f9a1d026d1a0924c5614a004edb394553ca10dfb9b1dfa27cf45723eccbb43",{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true},"a1c79f857f5c7754e14c93949dad8cfefcd7df2ecc0dc9dd79a30fd493e28449","f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","c84d0f714fe122193c21c0f0917e873beb3a03fa3422ceb2fbd1ebc0558790a0","e050a0afcdbb269720a900c85076d18e0c1ab73e580202a2bf6964978181222a","fd326577c62145816fe1acc306c734c2396487f76719d3785d4e825b34540b33","3ebae8c00411116a66fca65b08228ea0cf0b72724701f9b854442100aab55aba",{"version":"ecf78e637f710f340ec08d5d92b3f31b134a46a4fcf2e758690d8c46ce62cba6","affectsGlobalScope":true},"ba7617784f6b9aeac5e20c5eea869bbc3ef31b905f59c796b0fd401dae17c111","6a386ff939f180ae8ef064699d8b7b6e62bc2731a62d7fbf5e02589383838dea","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"09f93eb1a5f70b195569f58a3d7852d64e3b293d773cd35f332079efc75ded56","affectsGlobalScope":true},"bfe1b52cf71aea9bf8815810cc5d9490fa9617313e3d3c2ee3809a28b80d0bb4","6a61697f65beb341884485c695894ee1876a45c1a7190d76cb4a57a679c9d5b8","a3e5b8b86e7bd38d9afdc294875c4445c535319e288d3a13c1e2e41f9af934f2","8b06ac3faeacb8484d84ddb44571d8f410697f98d7bfa86c0fda60373a9f5215","7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","d8aab31ba8e618cc3eea10b0945de81cb93b7e8150a013a482332263b9305322","69da61a7b5093dac77fa3bec8be95dcf9a74c95a0e9161edb98bb24e30e439d2","561eca7a381b96d6ccac6e4061e6d2ae53f5bc44203f3fd9f5b26864c32ae6e9","62ea38627e3ebab429f7616812a9394d327c2bc271003dfba985de9b4137369f","b4439890c168d646357928431100daac5cbdee1d345a34e6bf6eca9f3abe22bc","5d72971a459517c44c1379dab9ed248e87a61ba0a1e0f25c9d67e1e640cd9a09","02d734976af36f4273d930bea88b3e62adf6b078cf120c1c63d49aa8d8427c5c",{"version":"516a426e3960379f310107635b8f3a7e8c307c6c665080b128039d9299ec4087","affectsGlobalScope":true},{"version":"66b1dd44bde78456344cd079a37443f90e54ffe3aa3ad5ac367a4698334a58fb","affectsGlobalScope":true},{"version":"513dfbfe04b52253f35007545694c2a99c313fdb6b836bdb8cbc9c7fb0ff6166","affectsGlobalScope":true},{"version":"a4832e26b82049fc2774c96ca6e1c17b2c204246570a62fdbe7e8ee8af2cd4d4","affectsGlobalScope":true},{"version":"6f1f78e8c2a5c7cd2c38aa9cc5da26d9c039f2bbfa753f2a0a54ce41c4dff8d0","affectsGlobalScope":true},"ec89427601297d439c961528832a75017d9356bec2ee42c1d16f2274590d9330","2b1af4170f6dfa90f43d2fe3d6c36f95b7fa121aa434a2acefb763d7be460a53",{"version":"0bc4736243655d9a97a28a84b58161025cee19315610270b5e2ec302d5be54ab","affectsGlobalScope":true},"c51eb515e127bb15087a6ad404c9c38121f1ccac85ea247baa554c43942ee07c","209e814e8e71aec74f69686a9506dd7610b97ab59dcee9446266446f72a76d05","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","93c4fc5b5237c09bc9ed65cb8f0dc1d89034406ab40500b89701341994897142","f02af84e409458d77baa712aaac7680635b47bd162a39367618ec744085f97be","5982be534e3d1aafbaee40dadfd08760d16d9ac7da32ef142daea29119afcfce","74b0245c42990ed8a849df955db3f4362c81b13f799ebc981b7bec2d5b414a57","2b93035328f7778d200252681c1d86285d501ed424825a18f81e4c3028aa51d9","2ac9c8332c5f8510b8bdd571f8271e0f39b0577714d5e95c1e79a12b2616f069","42c21aa963e7b86fa00801d96e88b36803188018d5ad91db2a9101bccd40b3ff","d31eb848cdebb4c55b4893b335a7c0cca95ad66dee13cbb7d0893810c0a9c301","b9f96255e1048ed2ea33ec553122716f0e57fc1c3ad778e9aa15f5b46547bd23","7a9e0a564fee396cacf706523b5aeed96e04c6b871a8bebefad78499fbffc5bc","906c751ef5822ec0dadcea2f0e9db64a33fb4ee926cc9f7efa38afe5d5371b2a","5387c049e9702f2d2d7ece1a74836a14b47fbebe9bbeb19f94c580a37c855351","c68391fb9efad5d99ff332c65b1606248c4e4a9f1dd9a087204242b56c7126d6","e9cf02252d3a0ced987d24845dcb1f11c1be5541f17e5daa44c6de2d18138d0c","e8b02b879754d85f48489294f99147aeccc352c760d95a6fe2b6e49cd400b2fe","9f6908ab3d8a86c68b86e38578afc7095114e66b2fc36a2a96e9252aac3998e0","0eedb2344442b143ddcd788f87096961cd8572b64f10b4afc3356aa0460171c6","71405cc70f183d029cc5018375f6c35117ffdaf11846c35ebf85ee3956b1b2a6","c68baff4d8ba346130e9753cefe2e487a16731bf17e05fdacc81e8c9a26aae9d","2cd15528d8bb5d0453aa339b4b52e0696e8b07e790c153831c642c3dea5ac8af","479d622e66283ffa9883fbc33e441f7fc928b2277ff30aacbec7b7761b4e9579","ade307876dc5ca267ca308d09e737b611505e015c535863f22420a11fffc1c54","f8cdefa3e0dee639eccbe9794b46f90291e5fd3989fcba60d2f08fde56179fb9","86c5a62f99aac7053976e317dbe9acb2eaf903aaf3d2e5bb1cafe5c2df7b37a8","2b300954ce01a8343866f737656e13243e86e5baef51bd0631b21dcef1f6e954","a2d409a9ffd872d6b9d78ead00baa116bbc73cfa959fce9a2f29d3227876b2a1","b288936f560cd71f4a6002953290de9ff8dfbfbf37f5a9391be5c83322324898","61178a781ef82e0ff54f9430397e71e8f365fc1e3725e0e5346f2de7b0d50dfa","6a6ccb37feb3aad32d9be026a3337db195979cd5727a616fc0f557e974101a54","c649ea79205c029a02272ef55b7ab14ada0903db26144d2205021f24727ac7a3","38e2b02897c6357bbcff729ef84c736727b45cc152abe95a7567caccdfad2a1d","d6610ea7e0b1a7686dba062a1e5544dd7d34140f4545305b7c6afaebfb348341","3dee35db743bdba2c8d19aece7ac049bde6fa587e195d86547c882784e6ba34c","b15e55c5fa977c2f25ca0b1db52cfa2d1fd4bf0baf90a8b90d4a7678ca462ff1","f41d30972724714763a2698ae949fbc463afb203b5fa7c4ad7e4de0871129a17","843dd7b6a7c6269fd43827303f5cbe65c1fecabc30b4670a50d5a15d57daeeb9","f06d8b8567ee9fd799bf7f806efe93b67683ef24f4dea5b23ef12edff4434d9d","6017384f697ff38bc3ef6a546df5b230c3c31329db84cbfe686c83bec011e2b2","e1a5b30d9248549ca0c0bb1d653bafae20c64c4aa5928cc4cd3017b55c2177b0","a593632d5878f17295bd53e1c77f27bf4c15212822f764a2bfc1702f4b413fa0","a868a534ba1c2ca9060b8a13b0ffbbbf78b4be7b0ff80d8c75b02773f7192c29","da7545aba8f54a50fde23e2ede00158dc8112560d934cee58098dfb03aae9b9d","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","a1a261624efb3a00ff346b13580f70f3463b8cdcc58b60f5793ff11785d52cab","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298",{"version":"356701ea5df9eea3bf62b0f29857cb950d95eec9b9063f85c17be705926cdd2a","affectsGlobalScope":true},"70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","09c4b2e2d3070239d563fc690f0cc5db04a2d9b66a23e61aef8b5274e3e9910c"],"options":{"composite":true,"declaration":true,"module":1,"noImplicitAny":true,"noImplicitReturns":true,"noImplicitThis":true,"outDir":"./lib","rootDir":"./src","strictFunctionTypes":true,"strictNullChecks":true,"strictPropertyInitialization":true,"target":3},"fileIdsList":[[284],[124,125,129,156,157,161,164,165],[122,123],[122],[124,165],[124,125,161,163,165],[165],[121,162,165],[124,125,164,165],[124,125,127,128,164,165],[124,125,126,164,165],[124,125,129,156,157,158,159,160,164,165],[121,124,125,129,161,164],[129,165],[131,132,133,134,135,136,137,138,139,140,165],[154,165],[130,141,149,150,151,152,153,155],[134,165],[142,143,144,145,146,147,148,165],[284,285,286,287,288],[284,286],[292,294],[291,292,293],[55,68,69,99],[69,99],[302],[304],[306],[307],[313,315],[317,318,319,320,321],[52],[40,42,43,44,45,46,47,48,49,50,51,52],[40,41,43,44,45,46,47,48,49,50,51,52],[41,42,43,44,45,46,47,48,49,50,51,52],[40,41,42,44,45,46,47,48,49,50,51,52],[40,41,42,43,45,46,47,48,49,50,51,52],[40,41,42,43,44,46,47,48,49,50,51,52],[40,41,42,43,44,45,47,48,49,50,51,52],[40,41,42,43,44,45,46,48,49,50,51,52],[40,41,42,43,44,45,46,47,49,50,51,52],[40,41,42,43,44,45,46,47,48,50,51,52],[40,41,42,43,44,45,46,47,48,49,51,52],[40,41,42,43,44,45,46,47,48,49,50,52],[40,41,42,43,44,45,46,47,48,49,50,51],[322],[71,91,99,100,101],[298,299,300,301],[331,370],[331,355,370],[370],[331],[331,356,370],[331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369],[356,370],[299,302,303],[373],[71,85,99],[309,310],[309,310,311,312],[314],[253],[254,255,256,257,258],[255],[254],[56],[58],[59,64],[60,68,69,76,85],[60,61,68,76],[62,92],[63,64,69,77],[64,85],[65,66,68,76],[66],[67,68],[68],[68,69,70,85,91],[69,70],[71,76,85,91],[68,69,71,72,76,85,88,91],[71,73,85,88,91],[56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98],[68,74],[75,91],[66,68,76,85],[77],[78],[58,79],[80,90],[81],[82],[68,83],[83,84,92,94],[68,85],[86],[87],[76,85,88],[89],[76,90],[82,91],[92],[85,93],[94],[95],[68,70,85,91,94,96],[85,97],[69,78,260,274,276],[69,78,249,260,274,276],[69,78,107,260,261,276],[105,109,111,249,260],[53,54,107,108,109,116,197,233,249,250,251,252,260,261,262,263,264,265],[111],[111,117,118,119,224,229,244,245],[78,110,111,113,114,115,173,174,246,251,252,260],[69,78,105,107,109,110,111,114,250,251,252],[111,114,115,116,246,247,248],[69,78,105,111,114,115,232,233,247,251],[109,115,250,251],[107,108,109,250,252],[111,113,115,251],[250,251,252],[108,240],[108,250,251],[108],[54,108,250,251,252],[54,106,108,250,251],[108,233,250],[108,250,251,252],[108,234,235,236,237,238,239,241,242],[108,234,235,236,237,238,239,241,242,243],[113,250,252,259],[78,110,113,250,252,271,272],[54,105,106,107,108,109,233,249,250,251,252,260,261,262,263,266,268,269,270,271,273,274],[104],[107,108,109,167,169,249,250,260,261,262,263,268],[110,112,251],[110],[69,77,78,110,111,113,115,231,232,251],[102,111,115,230,251],[54,251,260],[54,69,78,107,111,251,252,259],[166,250,252],[111,172,251,252],[108,172,173,249,251],[108,113,173,174,249,250,251,252],[108,168],[54,106,108,250],[54,106,108,168,250],[54,168,250],[108,250],[108,168,250],[54,106,108,109,250],[54,106,108,250,252],[108,252],[107,108,168,250,251,252],[108,250,252,260],[108,169,170,171,174,175,176,177,178,180,181,182,183,184,187,188,189,190,191,193,194,195,196,197,199,200,203,205,206,207,209,212,213,214,215,216,218,221,222,225,226,227,228],[106,108,251,252],[54,108,250],[109,169,170,171,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223],[54,108,168,250,252],[54,108],[54,108,251,252],[108,250,252],[54,106,269],[54,120,167,250,251,252],[249],[107],[107,252],[107,261],[107,251,267],[54,104],[55,69,78,102,103,105,110,113,249,250],[54,106,107,250,251,252],[54,107,108,109,249,251,252,260]],"referencedMap":[[286,1],[166,2],[162,2],[124,3],[123,4],[128,5],[164,6],[160,7],[163,8],[125,7],[126,9],[130,9],[129,10],[127,11],[161,12],[159,7],[165,13],[131,14],[136,7],[138,7],[133,7],[134,14],[140,7],[141,15],[132,7],[137,7],[139,7],[135,7],[155,16],[154,7],[156,17],[150,7],[152,7],[151,7],[147,7],[153,18],[148,7],[149,19],[142,7],[143,7],[144,7],[145,7],[146,7],[289,20],[285,1],[287,21],[288,1],[295,22],[294,23],[296,24],[297,25],[303,26],[305,27],[307,28],[308,29],[316,30],[322,31],[53,32],[41,33],[42,34],[40,35],[43,36],[44,37],[45,38],[46,39],[47,40],[48,41],[49,42],[50,43],[51,44],[52,45],[323,46],[102,47],[328,26],[329,26],[302,48],[355,49],[356,50],[331,51],[334,51],[353,49],[354,49],[344,49],[343,52],[341,49],[336,49],[349,49],[347,49],[351,49],[335,49],[348,49],[352,49],[337,49],[338,49],[350,49],[332,49],[339,49],[340,49],[342,49],[346,49],[357,53],[345,49],[333,49],[370,54],[364,53],[366,55],[365,53],[358,53],[359,53],[361,53],[363,53],[367,55],[368,55],[360,55],[362,55],[372,56],[374,57],[100,58],[311,59],[313,60],[312,59],[315,61],[254,62],[259,63],[256,64],[258,64],[255,65],[56,66],[58,67],[59,68],[60,69],[61,70],[62,71],[63,72],[64,73],[65,74],[66,75],[67,76],[68,77],[69,78],[70,79],[71,80],[72,81],[73,82],[99,83],[74,84],[75,85],[76,86],[77,87],[78,88],[79,89],[80,90],[81,91],[82,92],[83,93],[84,94],[85,95],[86,96],[87,97],[88,98],[89,99],[90,100],[91,101],[92,102],[93,103],[94,104],[95,105],[96,106],[97,107],[277,108],[278,108],[279,108],[280,108],[281,108],[282,109],[283,110],[276,111],[266,112],[118,113],[246,114],[247,115],[115,116],[249,117],[248,118],[119,113],[117,113],[116,119],[111,120],[114,121],[240,122],[241,123],[242,123],[237,124],[238,125],[243,126],[235,127],[234,128],[239,129],[236,124],[245,130],[244,131],[271,132],[273,133],[275,134],[105,135],[274,136],[113,137],[109,125],[272,138],[233,139],[232,113],[231,140],[252,141],[260,142],[167,143],[173,144],[174,145],[172,146],[188,147],[190,147],[189,147],[207,148],[180,149],[209,127],[203,148],[215,150],[214,150],[181,151],[170,152],[171,152],[191,149],[175,148],[183,148],[205,149],[176,148],[195,148],[206,149],[178,148],[194,148],[182,151],[213,148],[200,148],[193,151],[177,148],[212,124],[199,151],[221,148],[216,127],[218,153],[196,154],[222,155],[169,156],[187,147],[184,148],[197,157],[225,125],[229,158],[264,159],[226,124],[228,124],[227,124],[198,125],[223,160],[224,161],[201,125],[179,125],[202,162],[185,125],[186,125],[208,163],[204,125],[192,155],[220,152],[265,164],[210,124],[217,124],[211,124],[219,165],[270,166],[168,167],[267,168],[262,169],[261,170],[263,171],[268,172],[106,173],[251,174],[108,175],[250,176]],"exportedModulesMap":[[286,1],[166,2],[162,2],[124,3],[123,4],[128,5],[164,6],[160,7],[163,8],[125,7],[126,9],[130,9],[129,10],[127,11],[161,12],[159,7],[165,13],[131,14],[136,7],[138,7],[133,7],[134,14],[140,7],[141,15],[132,7],[137,7],[139,7],[135,7],[155,16],[154,7],[156,17],[150,7],[152,7],[151,7],[147,7],[153,18],[148,7],[149,19],[142,7],[143,7],[144,7],[145,7],[146,7],[289,20],[285,1],[287,21],[288,1],[295,22],[294,23],[296,24],[297,25],[303,26],[305,27],[307,28],[308,29],[316,30],[322,31],[53,32],[41,33],[42,34],[40,35],[43,36],[44,37],[45,38],[46,39],[47,40],[48,41],[49,42],[50,43],[51,44],[52,45],[323,46],[102,47],[328,26],[329,26],[302,48],[355,49],[356,50],[331,51],[334,51],[353,49],[354,49],[344,49],[343,52],[341,49],[336,49],[349,49],[347,49],[351,49],[335,49],[348,49],[352,49],[337,49],[338,49],[350,49],[332,49],[339,49],[340,49],[342,49],[346,49],[357,53],[345,49],[333,49],[370,54],[364,53],[366,55],[365,53],[358,53],[359,53],[361,53],[363,53],[367,55],[368,55],[360,55],[362,55],[372,56],[374,57],[100,58],[311,59],[313,60],[312,59],[315,61],[254,62],[259,63],[256,64],[258,64],[255,65],[56,66],[58,67],[59,68],[60,69],[61,70],[62,71],[63,72],[64,73],[65,74],[66,75],[67,76],[68,77],[69,78],[70,79],[71,80],[72,81],[73,82],[99,83],[74,84],[75,85],[76,86],[77,87],[78,88],[79,89],[80,90],[81,91],[82,92],[83,93],[84,94],[85,95],[86,96],[87,97],[88,98],[89,99],[90,100],[91,101],[92,102],[93,103],[94,104],[95,105],[96,106],[97,107],[277,108],[278,108],[279,108],[280,108],[281,108],[282,109],[283,110],[276,111],[266,112],[118,113],[246,114],[247,115],[115,116],[249,117],[248,118],[119,113],[117,113],[116,119],[111,120],[114,121],[240,122],[241,123],[242,123],[237,124],[238,125],[243,126],[235,127],[234,128],[239,129],[236,124],[245,130],[244,131],[271,132],[273,133],[275,134],[105,135],[274,136],[113,137],[109,125],[272,138],[233,139],[232,113],[231,140],[252,141],[260,142],[167,143],[173,144],[174,145],[172,146],[188,147],[190,147],[189,147],[207,148],[180,149],[209,127],[203,148],[215,150],[214,150],[181,151],[170,152],[171,152],[191,149],[175,148],[183,148],[205,149],[176,148],[195,148],[206,149],[178,148],[194,148],[182,151],[213,148],[200,148],[193,151],[177,148],[212,124],[199,151],[221,148],[216,127],[218,153],[196,154],[222,155],[169,156],[187,147],[184,148],[197,157],[225,125],[229,158],[264,159],[226,124],[228,124],[227,124],[198,125],[223,160],[224,161],[201,125],[179,125],[202,162],[185,125],[186,125],[208,163],[204,125],[192,155],[220,152],[265,164],[210,124],[217,124],[211,124],[219,165],[270,166],[168,167],[267,168],[262,169],[261,170],[263,171],[268,172],[106,173],[251,174],[108,175],[250,176]],"semanticDiagnosticsPerFile":[286,284,166,162,122,124,123,128,164,160,163,125,126,130,129,127,161,159,165,157,158,131,136,138,133,134,140,141,132,137,139,135,155,154,156,150,152,151,147,153,148,149,142,143,144,145,146,289,285,287,288,290,295,291,294,292,296,297,303,305,304,306,307,308,316,318,317,322,320,319,120,104,293,53,41,42,40,43,44,45,46,47,48,49,50,51,52,323,324,55,325,101,102,326,103,327,300,328,329,298,302,330,301,355,356,331,334,353,354,344,343,341,336,349,347,351,335,348,352,337,338,350,332,339,340,342,346,357,345,333,370,369,364,366,365,358,359,361,363,367,368,360,362,321,371,372,373,374,112,299,100,309,311,313,312,310,315,314,8,10,9,2,11,12,13,14,15,16,17,18,3,4,22,19,20,21,23,24,25,5,26,27,28,29,6,30,31,32,33,7,38,34,35,36,37,1,39,121,257,254,259,256,253,258,255,56,58,59,60,61,62,63,64,65,66,67,68,69,70,57,98,71,72,73,99,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,277,278,279,280,281,282,283,276,266,118,246,247,115,249,248,119,117,116,111,114,240,241,242,237,238,243,235,234,239,236,245,244,110,271,273,275,105,274,113,109,272,233,232,230,231,252,260,167,173,174,172,188,190,189,207,180,209,203,215,214,181,170,171,191,175,183,205,176,195,206,178,194,182,213,200,193,177,212,199,221,216,218,196,222,169,187,184,197,225,229,264,226,228,227,198,223,224,201,179,202,185,186,208,204,192,220,265,210,217,211,219,270,168,267,107,262,261,263,268,269,54,106,251,108,250]},"version":"4.3.3"}