@redocly/openapi-core 1.0.0-rc.3 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/CHANGELOG.md +7 -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/CHANGELOG.md ADDED
@@ -0,0 +1,7 @@
1
+ # @redocly/openapi-core
2
+
3
+ ## 1.0.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Fixed empty custom rules having severity in default rulesets.
@@ -0,0 +1,88 @@
1
+ import * as path from 'path';
2
+
3
+ import { Document, Source, NormalizedProblem, parseYaml, stringifyYaml } from '../src';
4
+ import { StyleguideConfig, resolveStyleguideConfig, resolvePlugins } from '../src/config';
5
+ import { Oas3RuleSet } from '../src/oas-types';
6
+
7
+ import type { RuleConfig, Plugin, DecoratorConfig } from '../src/config';
8
+
9
+ export function parseYamlToDocument(body: string, absoluteRef: string = ''): Document {
10
+ return {
11
+ source: new Source(absoluteRef, body),
12
+ parsed: parseYaml(body, { filename: absoluteRef }),
13
+ };
14
+ }
15
+
16
+ export function replaceSourceWithRef(results: NormalizedProblem[], cwd?: string) {
17
+ const cwdRegexp = cwd ? new RegExp(cwd + path.sep, 'g') : /$^/;
18
+ return results.map((r) => {
19
+ const mapped = {
20
+ ...r,
21
+ message: r.message.replace(cwdRegexp, ''),
22
+ location: r.location.map((l) => ({
23
+ ...l,
24
+ source: cwd ? path.relative(cwd, l.source.absoluteRef) : l.source.absoluteRef,
25
+ })),
26
+ };
27
+ if (mapped.from) {
28
+ mapped.from = {
29
+ ...mapped.from,
30
+ source: cwd
31
+ ? path.relative(cwd, mapped.from.source.absoluteRef)
32
+ : (mapped.from.source.absoluteRef as any),
33
+ };
34
+ }
35
+ return mapped;
36
+ });
37
+ }
38
+
39
+ export const yamlSerializer = {
40
+ test: () => {
41
+ return true;
42
+ },
43
+ print: (val: any) => {
44
+ return stringifyYaml(val);
45
+ },
46
+ };
47
+
48
+ export function makeConfigForRuleset(
49
+ rules: Oas3RuleSet,
50
+ plugin?: Partial<Plugin>,
51
+ version: string = 'oas3'
52
+ ) {
53
+ const rulesConf: Record<string, RuleConfig> = {};
54
+ const ruleId = 'test';
55
+ Object.keys(rules).forEach((name) => {
56
+ rulesConf[`${ruleId}/${name}`] = 'error';
57
+ });
58
+ const plugins = resolvePlugins([
59
+ {
60
+ ...plugin,
61
+ id: ruleId,
62
+ rules: { [version]: rules },
63
+ },
64
+ ]);
65
+
66
+ return new StyleguideConfig({
67
+ plugins,
68
+ rules: rulesConf,
69
+ });
70
+ }
71
+
72
+ export async function makeConfig(
73
+ rules: Record<string, RuleConfig>,
74
+ decorators?: Record<string, DecoratorConfig>,
75
+ configPath?: string
76
+ ) {
77
+ return new StyleguideConfig(
78
+ await resolveStyleguideConfig({
79
+ styleguideConfig: {
80
+ plugins: [],
81
+ extends: [],
82
+ rules,
83
+ decorators,
84
+ },
85
+ }),
86
+ configPath
87
+ );
88
+ }
package/lib/config/all.js CHANGED
@@ -18,7 +18,6 @@ exports.default = {
18
18
  'operation-description': 'error',
19
19
  'operation-2xx-response': 'error',
20
20
  'operation-4xx-response': 'error',
21
- assertions: 'error',
22
21
  'operation-operationId': 'error',
23
22
  'operation-summary': 'error',
24
23
  'operation-operationId-unique': 'error',
@@ -17,7 +17,6 @@ exports.default = {
17
17
  'operation-description': 'off',
18
18
  'operation-2xx-response': 'warn',
19
19
  'operation-4xx-response': 'off',
20
- assertions: 'warn',
21
20
  'operation-operationId': 'warn',
22
21
  'operation-summary': 'warn',
23
22
  'operation-operationId-unique': 'warn',
@@ -16,7 +16,6 @@ exports.default = {
16
16
  'path-parameters-defined': 'error',
17
17
  'operation-description': 'off',
18
18
  'operation-2xx-response': 'warn',
19
- assertions: 'warn',
20
19
  'operation-4xx-response': 'warn',
21
20
  'operation-operationId': 'warn',
22
21
  'operation-summary': 'error',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/openapi-core",
3
- "version": "1.0.0-rc.3",
3
+ "version": "1.0.1",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "engines": {
@@ -0,0 +1,437 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`bundle should add to meta ref from redocly registry 1`] = `
4
+ fileDependencies: {}
5
+ rootType:
6
+ properties:
7
+ openapi: null
8
+ info:
9
+ properties:
10
+ title:
11
+ type: string
12
+ version:
13
+ type: string
14
+ description:
15
+ type: string
16
+ termsOfService:
17
+ type: string
18
+ contact:
19
+ properties:
20
+ name:
21
+ type: string
22
+ url:
23
+ type: string
24
+ email:
25
+ type: string
26
+ extensionsPrefix: x-
27
+ name: Contact
28
+ license:
29
+ properties:
30
+ name:
31
+ type: string
32
+ url:
33
+ type: string
34
+ required:
35
+ - name
36
+ extensionsPrefix: x-
37
+ name: License
38
+ x-logo:
39
+ properties:
40
+ url:
41
+ type: string
42
+ altText:
43
+ type: string
44
+ backgroundColor:
45
+ type: string
46
+ href:
47
+ type: string
48
+ name: Logo
49
+ required:
50
+ - title
51
+ - version
52
+ extensionsPrefix: x-
53
+ name: Info
54
+ servers:
55
+ name: ServerList
56
+ properties: {}
57
+ items:
58
+ properties:
59
+ url:
60
+ type: string
61
+ description:
62
+ type: string
63
+ variables:
64
+ name: ServerVariablesMap
65
+ properties: {}
66
+ required:
67
+ - url
68
+ extensionsPrefix: x-
69
+ name: Server
70
+ security:
71
+ name: SecurityRequirementList
72
+ properties: {}
73
+ items:
74
+ properties: {}
75
+ additionalProperties:
76
+ type: array
77
+ items:
78
+ type: string
79
+ name: SecurityRequirement
80
+ tags:
81
+ name: TagList
82
+ properties: {}
83
+ items:
84
+ properties:
85
+ name:
86
+ type: string
87
+ description:
88
+ type: string
89
+ externalDocs:
90
+ properties:
91
+ description:
92
+ type: string
93
+ url:
94
+ type: string
95
+ required:
96
+ - url
97
+ extensionsPrefix: x-
98
+ name: ExternalDocs
99
+ x-traitTag:
100
+ type: boolean
101
+ x-displayName:
102
+ type: string
103
+ required:
104
+ - name
105
+ extensionsPrefix: x-
106
+ name: Tag
107
+ externalDocs:
108
+ properties:
109
+ description:
110
+ type: string
111
+ url:
112
+ type: string
113
+ required:
114
+ - url
115
+ extensionsPrefix: x-
116
+ name: ExternalDocs
117
+ paths:
118
+ properties: {}
119
+ name: Paths
120
+ components:
121
+ properties:
122
+ parameters:
123
+ name: NamedParameters
124
+ properties: {}
125
+ schemas:
126
+ name: NamedSchemas
127
+ properties: {}
128
+ responses:
129
+ name: NamedResponses
130
+ properties: {}
131
+ examples:
132
+ name: NamedExamples
133
+ properties: {}
134
+ requestBodies:
135
+ name: NamedRequestBodies
136
+ properties: {}
137
+ headers:
138
+ name: NamedHeaders
139
+ properties: {}
140
+ securitySchemes:
141
+ name: NamedSecuritySchemes
142
+ properties: {}
143
+ links:
144
+ name: NamedLinks
145
+ properties: {}
146
+ callbacks:
147
+ name: NamedCallbacks
148
+ properties: {}
149
+ extensionsPrefix: x-
150
+ name: Components
151
+ x-webhooks:
152
+ properties: {}
153
+ name: WebhooksMap
154
+ x-tagGroups:
155
+ name: TagGroups
156
+ properties: {}
157
+ items:
158
+ properties:
159
+ name:
160
+ type: string
161
+ tags:
162
+ type: array
163
+ items:
164
+ type: string
165
+ extensionsPrefix: x-
166
+ name: TagGroup
167
+ x-ignoredHeaderParameters:
168
+ type: array
169
+ items:
170
+ type: string
171
+ required:
172
+ - openapi
173
+ - paths
174
+ - info
175
+ extensionsPrefix: x-
176
+ name: Root
177
+ refTypes: {}
178
+ visitorsData:
179
+ registry-dependencies:
180
+ links:
181
+ - https://api.redocly.com/registry/params
182
+
183
+ `;
184
+
185
+ exports[`bundle should bundle external refs 1`] = `
186
+ openapi: 3.0.0
187
+ paths:
188
+ /pet:
189
+ parameters:
190
+ - $ref: '#/components/parameters/path-param'
191
+ put:
192
+ parameters:
193
+ - $ref: '#/components/parameters/param-a'
194
+ - $ref: '#/components/parameters/param-b'
195
+ - name: test
196
+ get:
197
+ parameters:
198
+ - $ref: '#/components/parameters/param-a'
199
+ - $ref: '#/components/parameters/param-c'
200
+ post:
201
+ parameters:
202
+ - $ref: '#/paths/~1pet/put/parameters/2'
203
+ components:
204
+ parameters:
205
+ param-a:
206
+ name: param_a
207
+ schema:
208
+ $ref: '#/components/schemas/schema-a'
209
+ examples:
210
+ first:
211
+ $ref: '#/components/examples/param-a-first'
212
+ second:
213
+ $ref: '#/components/examples/second'
214
+ path-param:
215
+ name: path_param
216
+ examples:
217
+ first:
218
+ $ref: '#/components/examples/first'
219
+ param-c:
220
+ name: param_c
221
+ param-b:
222
+ name: param_b
223
+ examples:
224
+ first:
225
+ value: b1
226
+ param-a-first:
227
+ value: a1
228
+ second:
229
+ value: a2
230
+ schemas:
231
+ schema-a:
232
+ type: string
233
+
234
+ `;
235
+
236
+ exports[`bundle should bundle external refs and warn for conflicting names 1`] = `
237
+ openapi: 3.0.0
238
+ paths:
239
+ /pet:
240
+ parameters:
241
+ - $ref: '#/components/parameters/path-param'
242
+ put:
243
+ parameters:
244
+ - $ref: '#/components/parameters/param-b'
245
+ - $ref: '#/components/parameters/param-b-2'
246
+ get:
247
+ parameters:
248
+ - $ref: '#/components/parameters/param-a'
249
+ - $ref: '#/components/parameters/param-c'
250
+ components:
251
+ parameters:
252
+ param-a:
253
+ name: test
254
+ param-b:
255
+ name: param_b_alt
256
+ path-param:
257
+ name: path_param
258
+ param-c:
259
+ name: param_c
260
+ param-b-2:
261
+ name: param_b
262
+
263
+ `;
264
+
265
+ exports[`bundle should dereferenced correctly when used with dereference 1`] = `
266
+ openapi: 3.0.0
267
+ paths:
268
+ /pet:
269
+ get:
270
+ operationId: get
271
+ parameters:
272
+ - name: shared-a
273
+ - name: get_b
274
+ post:
275
+ operationId: post
276
+ parameters:
277
+ - name: shared-a
278
+ components:
279
+ parameters:
280
+ shared_a:
281
+ name: shared-a
282
+
283
+ `;
284
+
285
+ exports[`bundle should not bundle url refs if used with keepUrlRefs 1`] = `
286
+ openapi: 3.0.0
287
+ paths:
288
+ /pet:
289
+ parameters:
290
+ - $ref: '#/components/parameters/path-param'
291
+ put:
292
+ parameters:
293
+ - $ref: https://someexternal.schema
294
+ - $ref: '#/components/parameters/param-b'
295
+ - name: test
296
+ get:
297
+ parameters:
298
+ - $ref: http://someexternal.schema
299
+ - $ref: '#/components/parameters/param-c'
300
+ components:
301
+ parameters:
302
+ path-param:
303
+ name: path_param
304
+ param-c:
305
+ name: param_c
306
+ param-b:
307
+ name: param_b
308
+
309
+ `;
310
+
311
+ exports[`bundle should not place referened schema inline when component in question is not of type "schemas" 1`] = `
312
+ openapi: 3.0.0
313
+ paths:
314
+ /pet:
315
+ post:
316
+ requestBody:
317
+ content:
318
+ application/json:
319
+ schema:
320
+ $ref: '#/components/schemas/requestBody'
321
+ components:
322
+ schemas:
323
+ requestBody:
324
+ content:
325
+ application/json:
326
+ schema:
327
+ type: object
328
+ properties:
329
+ a:
330
+ type: string
331
+ b:
332
+ type: number
333
+
334
+ `;
335
+
336
+ exports[`bundle should place referenced schema inline when referenced schema name resolves to original schema name 1`] = `
337
+ openapi: 3.1.0
338
+ info:
339
+ title: My API
340
+ description: It ain't so wonderful, but at least it's mine.
341
+ version: '1.0'
342
+ contact:
343
+ email: me@theintenet.com
344
+ name: me
345
+ paths:
346
+ /test:
347
+ get:
348
+ summary: test
349
+ responses:
350
+ '200':
351
+ description: test
352
+ content:
353
+ application/json:
354
+ schema:
355
+ $ref: '#/components/schemas/vendor.schema'
356
+ components:
357
+ schemas:
358
+ vendor:
359
+ $ref: '#/components/schemas/vendor.schema'
360
+ myvendor:
361
+ $ref: '#/components/schemas/vendor.schema'
362
+ simple:
363
+ type: string
364
+ A:
365
+ type: string
366
+ test:
367
+ $ref: '#/components/schemas/rename-2'
368
+ rename:
369
+ type: string
370
+ rename-2:
371
+ type: number
372
+ vendor.schema:
373
+ title: vendor
374
+ type: object
375
+ description: Vendors
376
+ properties:
377
+ key:
378
+ type: string
379
+ description: System-assigned key for the vendor.
380
+ readOnly: true
381
+ id:
382
+ type: string
383
+ description: >
384
+ Unique identifier of the vendor.
385
+
386
+ You must specify a unique vendor ID when creating a vendor unless
387
+ document sequencing is configured, in which case the ID is
388
+ auto-generated.
389
+ name:
390
+ type: string
391
+ description: Name of the vendor.
392
+ isOneTimeUse:
393
+ type: boolean
394
+ description: One-time use
395
+ default: false
396
+
397
+ `;
398
+
399
+ exports[`bundle should pull hosted schema 1`] = `
400
+ openapi: 3.0.3
401
+ info:
402
+ title: bugtest
403
+ version: '1.0'
404
+ description: Demo
405
+ license:
406
+ name: DEMO
407
+ url: https://demo.com
408
+ servers:
409
+ - url: http://demo.com/api
410
+ paths:
411
+ /customer:
412
+ summary: Customer scope
413
+ get:
414
+ summary: Get demo no refs
415
+ operationId: GetCustomer
416
+ description: Returns Demo No Refs
417
+ responses:
418
+ '200':
419
+ description: Demo No Refs
420
+ content:
421
+ application/json:
422
+ schema:
423
+ $ref: '#/components/schemas/Customer'
424
+ components:
425
+ schemas:
426
+ Customer:
427
+ type: object
428
+ properties:
429
+ customerName:
430
+ type: string
431
+ accounts:
432
+ type: array
433
+ items:
434
+ $ref: '#/components/schemas/someexternal'
435
+ someexternal: External schema content
436
+
437
+ `;