oas 21.1.1 → 21.1.3

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 (57) hide show
  1. package/dist/analyzer/index.cjs +38 -35
  2. package/dist/analyzer/index.js +14 -9
  3. package/dist/analyzer/index.js.map +1 -1
  4. package/dist/chunk-4DSP2IAD.cjs +6 -7
  5. package/dist/{chunk-SUR6DBOY.js → chunk-AAZBR2RE.js} +28 -11
  6. package/dist/chunk-AAZBR2RE.js.map +1 -0
  7. package/dist/{chunk-NFN6C7L3.cjs → chunk-B35XS3PB.cjs} +31 -27
  8. package/dist/chunk-B35XS3PB.cjs.map +1 -0
  9. package/dist/{chunk-SS6ORC4G.js → chunk-B77R6XMP.js} +13 -6
  10. package/dist/chunk-B77R6XMP.js.map +1 -0
  11. package/dist/chunk-CKC36IL7.js +5 -4
  12. package/dist/chunk-CKC36IL7.js.map +1 -1
  13. package/dist/chunk-ELGRFYQZ.cjs +39 -0
  14. package/dist/chunk-ELGRFYQZ.cjs.map +1 -0
  15. package/dist/chunk-EYQ3PAIA.js +5 -2
  16. package/dist/chunk-EYQ3PAIA.js.map +1 -1
  17. package/dist/{chunk-BDVPPDWX.js → chunk-GO2OVMBD.js} +19 -9
  18. package/dist/chunk-GO2OVMBD.js.map +1 -0
  19. package/dist/{chunk-HK3IBLG2.js → chunk-HKA5ASHF.js} +28 -10
  20. package/dist/chunk-HKA5ASHF.js.map +1 -0
  21. package/dist/{chunk-GT2RVQRP.cjs → chunk-O2RFBLMP.cjs} +64 -55
  22. package/dist/chunk-O2RFBLMP.cjs.map +1 -0
  23. package/dist/{chunk-Y7RSAOGJ.cjs → chunk-O3DRIHOL.cjs} +45 -43
  24. package/dist/chunk-O3DRIHOL.cjs.map +1 -0
  25. package/dist/chunk-W6GBV2JT.cjs +7 -9
  26. package/dist/index.cjs +7 -29
  27. package/dist/index.d.cts +1 -3
  28. package/dist/index.d.ts +1 -3
  29. package/dist/index.js +10 -6
  30. package/dist/index.js.map +1 -1
  31. package/dist/lib/reducer.cjs +10 -13
  32. package/dist/lib/reducer.js +9 -6
  33. package/dist/lib/reducer.js.map +1 -1
  34. package/dist/operation/get-parameters-as-json-schema.cjs +3 -12
  35. package/dist/operation/get-parameters-as-json-schema.js +9 -3
  36. package/dist/operation/get-parameters-as-json-schema.js.map +1 -1
  37. package/dist/operation.cjs +7 -18
  38. package/dist/operation.js +13 -5
  39. package/dist/operation.js.map +1 -1
  40. package/dist/rmoas.types.cjs +6 -15
  41. package/dist/rmoas.types.js +10 -2
  42. package/dist/rmoas.types.js.map +1 -1
  43. package/dist/utils.cjs +5 -15
  44. package/dist/utils.d.cts +2 -2
  45. package/dist/utils.d.ts +2 -2
  46. package/dist/utils.js +8 -4
  47. package/dist/utils.js.map +1 -1
  48. package/package.json +3 -2
  49. package/dist/chunk-AWYLU6KF.cjs +0 -40
  50. package/dist/chunk-AWYLU6KF.cjs.map +0 -1
  51. package/dist/chunk-BDVPPDWX.js.map +0 -1
  52. package/dist/chunk-GT2RVQRP.cjs.map +0 -1
  53. package/dist/chunk-HK3IBLG2.js.map +0 -1
  54. package/dist/chunk-NFN6C7L3.cjs.map +0 -1
  55. package/dist/chunk-SS6ORC4G.js.map +0 -1
  56. package/dist/chunk-SUR6DBOY.js.map +0 -1
  57. package/dist/chunk-Y7RSAOGJ.cjs.map +0 -1
@@ -1,36 +1,39 @@
1
- 'use strict';
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var chunkW6GBV2JT_cjs = require('../chunk-W6GBV2JT.cjs');
4
- var chunkNFN6C7L3_cjs = require('../chunk-NFN6C7L3.cjs');
5
- require('../chunk-GT2RVQRP.cjs');
6
- require('../chunk-AWYLU6KF.cjs');
7
- require('../chunk-Y7RSAOGJ.cjs');
3
+
4
+ var _chunkW6GBV2JTcjs = require('../chunk-W6GBV2JT.cjs');
5
+
6
+
7
+ var _chunkB35XS3PBcjs = require('../chunk-B35XS3PB.cjs');
8
+ require('../chunk-O2RFBLMP.cjs');
9
+ require('../chunk-ELGRFYQZ.cjs');
10
+ require('../chunk-O3DRIHOL.cjs');
8
11
  require('../chunk-4DSP2IAD.cjs');
9
12
 
10
13
  // src/analyzer/queries/openapi.ts
11
14
  function additionalProperties(definition) {
12
- return chunkW6GBV2JT_cjs.query(["$..additionalProperties"], definition).map((res) => chunkW6GBV2JT_cjs.refizePointer(res.pointer));
15
+ return _chunkW6GBV2JTcjs.query.call(void 0, ["$..additionalProperties"], definition).map((res) => _chunkW6GBV2JTcjs.refizePointer.call(void 0, res.pointer));
13
16
  }
14
17
  function callbacks(definition) {
15
- return chunkW6GBV2JT_cjs.query(["$.components.callbacks", "$.paths..callbacks"], definition).map((res) => chunkW6GBV2JT_cjs.refizePointer(res.pointer));
18
+ return _chunkW6GBV2JTcjs.query.call(void 0, ["$.components.callbacks", "$.paths..callbacks"], definition).map((res) => _chunkW6GBV2JTcjs.refizePointer.call(void 0, res.pointer));
16
19
  }
17
20
  async function circularRefs(definition) {
18
- const oas = new chunkNFN6C7L3_cjs.Oas(JSON.parse(JSON.stringify(definition)));
21
+ const oas = new (0, _chunkB35XS3PBcjs.Oas)(JSON.parse(JSON.stringify(definition)));
19
22
  await oas.dereference();
20
23
  const results = oas.getCircularReferences();
21
24
  results.sort();
22
25
  return results;
23
26
  }
24
27
  function discriminators(definition) {
25
- return chunkW6GBV2JT_cjs.query(["$..discriminator"], definition).map((res) => chunkW6GBV2JT_cjs.refizePointer(res.pointer));
28
+ return _chunkW6GBV2JTcjs.query.call(void 0, ["$..discriminator"], definition).map((res) => _chunkW6GBV2JTcjs.refizePointer.call(void 0, res.pointer));
26
29
  }
27
30
  function links(definition) {
28
- return chunkW6GBV2JT_cjs.query(["$..links"], definition).map((res) => chunkW6GBV2JT_cjs.refizePointer(res.pointer));
31
+ return _chunkW6GBV2JTcjs.query.call(void 0, ["$..links"], definition).map((res) => _chunkW6GBV2JTcjs.refizePointer.call(void 0, res.pointer));
29
32
  }
30
33
  function mediaTypes(definition) {
31
34
  const results = Array.from(
32
35
  new Set(
33
- chunkW6GBV2JT_cjs.query(["$..paths..content"], definition).map((res) => {
36
+ _chunkW6GBV2JTcjs.query.call(void 0, ["$..paths..content"], definition).map((res) => {
34
37
  return Object.keys(res.value);
35
38
  }).flat()
36
39
  )
@@ -39,29 +42,29 @@ function mediaTypes(definition) {
39
42
  return results;
40
43
  }
41
44
  function parameterSerialization(definition) {
42
- return chunkW6GBV2JT_cjs.query(["$..parameters[*].style^"], definition).map((res) => chunkW6GBV2JT_cjs.refizePointer(res.pointer));
45
+ return _chunkW6GBV2JTcjs.query.call(void 0, ["$..parameters[*].style^"], definition).map((res) => _chunkW6GBV2JTcjs.refizePointer.call(void 0, res.pointer));
43
46
  }
44
47
  function polymorphism(definition) {
45
48
  const results = Array.from(
46
- new Set(chunkW6GBV2JT_cjs.query(["$..allOf^", "$..anyOf^", "$..oneOf^"], definition).map((res) => chunkW6GBV2JT_cjs.refizePointer(res.pointer)))
49
+ new Set(_chunkW6GBV2JTcjs.query.call(void 0, ["$..allOf^", "$..anyOf^", "$..oneOf^"], definition).map((res) => _chunkW6GBV2JTcjs.refizePointer.call(void 0, res.pointer)))
47
50
  );
48
51
  results.sort();
49
52
  return results;
50
53
  }
51
54
  function securityTypes(definition) {
52
- return Array.from(new Set(chunkW6GBV2JT_cjs.query(["$.components.securitySchemes..type"], definition).map((res) => res.value)));
55
+ return Array.from(new Set(_chunkW6GBV2JTcjs.query.call(void 0, ["$.components.securitySchemes..type"], definition).map((res) => res.value)));
53
56
  }
54
57
  function serverVariables(definition) {
55
- return chunkW6GBV2JT_cjs.query(["$.servers..variables^"], definition).map((res) => chunkW6GBV2JT_cjs.refizePointer(res.pointer));
58
+ return _chunkW6GBV2JTcjs.query.call(void 0, ["$.servers..variables^"], definition).map((res) => _chunkW6GBV2JTcjs.refizePointer.call(void 0, res.pointer));
56
59
  }
57
60
  function totalOperations(definition) {
58
- return chunkW6GBV2JT_cjs.query(["$..paths[*]"], definition).map((res) => Object.keys(res.value)).flat().length;
61
+ return _chunkW6GBV2JTcjs.query.call(void 0, ["$..paths[*]"], definition).map((res) => Object.keys(res.value)).flat().length;
59
62
  }
60
63
  function webhooks(definition) {
61
- return chunkW6GBV2JT_cjs.query(["$.webhooks[*]"], definition).map((res) => chunkW6GBV2JT_cjs.refizePointer(res.pointer));
64
+ return _chunkW6GBV2JTcjs.query.call(void 0, ["$.webhooks[*]"], definition).map((res) => _chunkW6GBV2JTcjs.refizePointer.call(void 0, res.pointer));
62
65
  }
63
66
  function xml(definition) {
64
- return chunkW6GBV2JT_cjs.query(
67
+ return _chunkW6GBV2JTcjs.query.call(void 0,
65
68
  [
66
69
  "$.components.schemas..xml^",
67
70
  "$..parameters..xml^",
@@ -80,17 +83,17 @@ function xml(definition) {
80
83
  "$..responses[*].content[?(@property.match(/\\+xml$/i))]"
81
84
  ],
82
85
  definition
83
- ).map((res) => chunkW6GBV2JT_cjs.refizePointer(res.pointer));
86
+ ).map((res) => _chunkW6GBV2JTcjs.refizePointer.call(void 0, res.pointer));
84
87
  }
85
88
 
86
89
  // src/analyzer/queries/readme.ts
87
90
  function authDefaults(definition) {
88
- return chunkW6GBV2JT_cjs.query(["$.components.securitySchemes..['x-default']^"], definition).map((res) => chunkW6GBV2JT_cjs.refizePointer(res.pointer));
91
+ return _chunkW6GBV2JTcjs.query.call(void 0, ["$.components.securitySchemes..['x-default']^"], definition).map((res) => _chunkW6GBV2JTcjs.refizePointer.call(void 0, res.pointer));
89
92
  }
90
93
  function codeSampleLanguages(definition) {
91
94
  const results = Array.from(
92
95
  new Set(
93
- chunkW6GBV2JT_cjs.query(["$..['x-readme']['samples-languages']", "$..['x-samples-languages']"], definition).map((res) => res.value).reduce((prev, next) => prev.concat(next), [])
96
+ _chunkW6GBV2JTcjs.query.call(void 0, ["$..['x-readme']['samples-languages']", "$..['x-samples-languages']"], definition).map((res) => res.value).reduce((prev, next) => prev.concat(next), [])
94
97
  )
95
98
  );
96
99
  results.sort();
@@ -99,7 +102,7 @@ function codeSampleLanguages(definition) {
99
102
  function codeSamplesDisabled(definition) {
100
103
  return Array.from(
101
104
  new Set(
102
- chunkW6GBV2JT_cjs.query(
105
+ _chunkW6GBV2JTcjs.query.call(void 0,
103
106
  [
104
107
  "$['x-samples-enabled']^",
105
108
  "$['x-readme']['samples-enabled']",
@@ -107,14 +110,14 @@ function codeSamplesDisabled(definition) {
107
110
  "$..paths[*]..['x-readme']['samples-enabled']^^"
108
111
  ],
109
112
  definition
110
- ).map((res) => chunkW6GBV2JT_cjs.refizePointer(res.pointer))
113
+ ).map((res) => _chunkW6GBV2JTcjs.refizePointer.call(void 0, res.pointer))
111
114
  )
112
115
  );
113
116
  }
114
117
  function corsProxyDisabled(definition) {
115
118
  return Array.from(
116
119
  new Set(
117
- chunkW6GBV2JT_cjs.query(
120
+ _chunkW6GBV2JTcjs.query.call(void 0,
118
121
  [
119
122
  "$['x-proxy-enabled']^",
120
123
  "$['x-readme']['proxy-enabled']",
@@ -122,17 +125,17 @@ function corsProxyDisabled(definition) {
122
125
  "$..paths[*]..['x-readme']['proxy-enabled']^^"
123
126
  ],
124
127
  definition
125
- ).map((res) => chunkW6GBV2JT_cjs.refizePointer(res.pointer))
128
+ ).map((res) => _chunkW6GBV2JTcjs.refizePointer.call(void 0, res.pointer))
126
129
  )
127
130
  );
128
131
  }
129
132
  function customCodeSamples(definition) {
130
- return chunkW6GBV2JT_cjs.query(["$..['x-code-samples']", "$..['x-readme']['code-samples']"], definition).filter((res) => {
133
+ return _chunkW6GBV2JTcjs.query.call(void 0, ["$..['x-code-samples']", "$..['x-readme']['code-samples']"], definition).filter((res) => {
131
134
  return Array.isArray(res.value) && res.value.length ? res : false;
132
- }).map((res) => chunkW6GBV2JT_cjs.refizePointer(res.pointer));
135
+ }).map((res) => _chunkW6GBV2JTcjs.refizePointer.call(void 0, res.pointer));
133
136
  }
134
137
  function explorerDisabled(definition) {
135
- return chunkW6GBV2JT_cjs.query(
138
+ return _chunkW6GBV2JTcjs.query.call(void 0,
136
139
  [
137
140
  "$['x-explorer-enabled']^",
138
141
  "$['x-readme']['explorer-enabled']",
@@ -140,15 +143,15 @@ function explorerDisabled(definition) {
140
143
  "$..paths[*]..['x-readme']['explorer-enabled']^^"
141
144
  ],
142
145
  definition
143
- ).map((res) => chunkW6GBV2JT_cjs.refizePointer(res.pointer));
146
+ ).map((res) => _chunkW6GBV2JTcjs.refizePointer.call(void 0, res.pointer));
144
147
  }
145
148
  function rawBody(definition) {
146
- return chunkW6GBV2JT_cjs.query(["$..RAW_BODY^^"], definition).map((res) => chunkW6GBV2JT_cjs.refizePointer(res.pointer));
149
+ return _chunkW6GBV2JTcjs.query.call(void 0, ["$..RAW_BODY^^"], definition).map((res) => _chunkW6GBV2JTcjs.refizePointer.call(void 0, res.pointer));
147
150
  }
148
151
  function staticHeaders(definition) {
149
- return chunkW6GBV2JT_cjs.query(["$..['x-headers']", "$..['x-readme']['headers']"], definition).filter((res) => {
152
+ return _chunkW6GBV2JTcjs.query.call(void 0, ["$..['x-headers']", "$..['x-readme']['headers']"], definition).filter((res) => {
150
153
  return Array.isArray(res.value) && res.value.length ? res : false;
151
- }).map((res) => chunkW6GBV2JT_cjs.refizePointer(res.pointer));
154
+ }).map((res) => _chunkW6GBV2JTcjs.refizePointer.call(void 0, res.pointer));
152
155
  }
153
156
 
154
157
  // src/analyzer/index.ts
@@ -270,7 +273,7 @@ async function analyzer(definition) {
270
273
  return analysis;
271
274
  }
272
275
 
273
- module.exports = analyzer;
274
- //# sourceMappingURL=out.js.map
276
+
277
+ exports.default = analyzer;
275
278
 
276
279
  module.exports = exports.default//# sourceMappingURL=index.cjs.map
@@ -1,9 +1,14 @@
1
- import { query, refizePointer } from '../chunk-CKC36IL7.js';
2
- import { Oas } from '../chunk-BDVPPDWX.js';
3
- import '../chunk-HK3IBLG2.js';
4
- import '../chunk-SS6ORC4G.js';
5
- import '../chunk-SUR6DBOY.js';
6
- import '../chunk-EYQ3PAIA.js';
1
+ import {
2
+ query,
3
+ refizePointer
4
+ } from "../chunk-CKC36IL7.js";
5
+ import {
6
+ Oas
7
+ } from "../chunk-GO2OVMBD.js";
8
+ import "../chunk-HKA5ASHF.js";
9
+ import "../chunk-B77R6XMP.js";
10
+ import "../chunk-AAZBR2RE.js";
11
+ import "../chunk-EYQ3PAIA.js";
7
12
 
8
13
  // src/analyzer/queries/openapi.ts
9
14
  function additionalProperties(definition) {
@@ -267,7 +272,7 @@ async function analyzer(definition) {
267
272
  }
268
273
  return analysis;
269
274
  }
270
-
271
- export { analyzer as default };
272
- //# sourceMappingURL=out.js.map
275
+ export {
276
+ analyzer as default
277
+ };
273
278
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/analyzer/queries/openapi.ts","../../src/analyzer/queries/readme.ts","../../src/analyzer/index.ts"],"names":["additionalProperties","callbacks","circularRefs","discriminators","links","parameterSerialization","polymorphism","serverVariables","webhooks","xml","authDefaults","codeSampleLanguages","customCodeSamples","codeSamplesDisabled","explorerDisabled","staticHeaders","rawBody"],"mappings":"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","sourcesContent":["import type { OASDocument } from '../../rmoas.types';\n\nimport Oas from '../..';\nimport { query, refizePointer } from '../util';\n\n/**\n * Determine if a given API definition uses the `additionalProperties` schema property.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#schema-object}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#schema-object}\n */\nexport function additionalProperties(definition: OASDocument) {\n return query(['$..additionalProperties'], definition).map(res => refizePointer(res.pointer));\n}\n\n/**\n * Determine if a given API definition utilizes `callbacks`.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#callbackObject}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#callbackObject}\n */\nexport function callbacks(definition: OASDocument) {\n return query(['$.components.callbacks', '$.paths..callbacks'], definition).map(res => refizePointer(res.pointer));\n}\n\n/**\n * Determine if a given API definition has circular refs.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#schema-object}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#schema-object}\n */\nexport async function circularRefs(definition: OASDocument) {\n // Dereferencing will update the passed in variable, which we don't want to do, so we\n // instantiated `Oas` with a clone.\n const oas = new Oas(JSON.parse(JSON.stringify(definition)));\n await oas.dereference();\n\n const results = oas.getCircularReferences();\n\n results.sort();\n return results;\n}\n\n/**\n * Determine if a given API definition utilizes discriminators.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#discriminatorObject}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#discriminatorObject}\n */\nexport function discriminators(definition: OASDocument) {\n return query(['$..discriminator'], definition).map(res => refizePointer(res.pointer));\n}\n\n/**\n * Determine if a given API definition utilizes `links`.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#linkObject}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#linkObject}\n */\nexport function links(definition: OASDocument) {\n return query(['$..links'], definition).map(res => refizePointer(res.pointer));\n}\n\n/**\n * Determine all of the available media types used within an API definition.\n *\n * @todo This query currently picks up false positives if there is an object named `content`.\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#request-body-object}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#request-body-object}\n */\nexport function mediaTypes(definition: OASDocument) {\n const results = Array.from(\n new Set(\n query(['$..paths..content'], definition)\n .map(res => {\n // This'll transform `results`, which looks like `[['application/json'], ['text/xml']]`\n // into `['application/json', 'text/xml']`.\n return Object.keys(res.value);\n })\n .flat(),\n ),\n );\n\n results.sort();\n return results;\n}\n\n/**\n * Determine if a given API definition uses parameter serialization.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#parameter-object}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#parameter-object}\n */\nexport function parameterSerialization(definition: OASDocument) {\n return query(['$..parameters[*].style^'], definition).map(res => refizePointer(res.pointer));\n}\n\n/**\n * Determine if a given API definition utilizes schema polymorphism and/of interitance.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#schema-object}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#schema-object}\n */\nexport function polymorphism(definition: OASDocument) {\n const results = Array.from(\n new Set(query(['$..allOf^', '$..anyOf^', '$..oneOf^'], definition).map(res => refizePointer(res.pointer))),\n );\n\n results.sort();\n return results;\n}\n\n/**\n * Determine every kind of security type that a given API definition has documented.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#securitySchemeObject}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#securitySchemeObject}\n */\nexport function securityTypes(definition: OASDocument) {\n return Array.from(new Set(query(['$.components.securitySchemes..type'], definition).map(res => res.value as string)));\n}\n\n/**\n * Determine if a given API definition utilizes server variables.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#serverVariableObject}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#serverVariableObject}\n */\nexport function serverVariables(definition: OASDocument) {\n return query(['$.servers..variables^'], definition).map(res => refizePointer(res.pointer));\n}\n\n/**\n * Determine how many operations are defined in a given API definition.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#operationObject}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#operationObject}\n */\nexport function totalOperations(definition: OASDocument) {\n return query(['$..paths[*]'], definition)\n .map(res => Object.keys(res.value))\n .flat().length;\n}\n\n/**\n * Determine if a given API definition utilizes `webhooks` support in OpenAPI 3.1.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#oasObject}\n */\nexport function webhooks(definition: OASDocument) {\n return query(['$.webhooks[*]'], definition).map(res => refizePointer(res.pointer));\n}\n\n/**\n * Determine if a given API definition has XML schemas, payloads, or responses.\n *\n * @todo detect `+xml` media types\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#xmlObject}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#xmlObject}\n */\nexport function xml(definition: OASDocument) {\n return query(\n [\n '$.components.schemas..xml^',\n '$..parameters..xml^',\n '$..requestBody..xml^',\n\n \"$..requestBody..['application/xml']\",\n \"$..requestBody..['application/xml-external-parsed-entity']\",\n \"$..requestBody..['application/xml-dtd']\",\n \"$..requestBody..['text/xml']\",\n \"$..requestBody..['text/xml-external-parsed-entity']\",\n '$..requestBody.content[?(@property.match(/\\\\+xml$/i))]',\n\n \"$..responses..['application/xml']\",\n \"$..responses..['application/xml-external-parsed-entity']\",\n \"$..responses..['application/xml-dtd']\",\n \"$..responses..['text/xml']\",\n \"$..responses..['text/xml-external-parsed-entity']\",\n '$..responses[*].content[?(@property.match(/\\\\+xml$/i))]',\n ],\n definition,\n ).map(res => refizePointer(res.pointer));\n}\n","import type { OASDocument } from '../../rmoas.types';\n\nimport { query, refizePointer } from '../util';\n\n/**\n * Determine if a given API definition is using our `x-default` extension for defining auth\n * defaults.\n *\n * @see {@link https://docs.readme.com/main/docs/openapi-extensions#authentication-defaults}\n */\nexport function authDefaults(definition: OASDocument) {\n return query([\"$.components.securitySchemes..['x-default']^\"], definition).map(res => refizePointer(res.pointer));\n}\n\n/**\n * Determine all of the code sample languages, using the `x-readme.samples-languages` extension\n * that are specified within an API definition.\n *\n * @see {@link https://docs.readme.com/main/docs/openapi-extensions#code-sample-languages}\n */\nexport function codeSampleLanguages(definition: OASDocument) {\n const results: string[] = Array.from(\n new Set(\n query([\"$..['x-readme']['samples-languages']\", \"$..['x-samples-languages']\"], definition)\n .map(res => res.value as string)\n .reduce((prev, next) => prev.concat(next), []),\n ),\n );\n\n results.sort();\n return results;\n}\n\n/**\n * Determine if a given API defintion is using the `x-samples-enabled` extension for disabling\n * code samples.\n *\n * @see {@link https://docs.readme.com/main/docs/openapi-extensions#disable-code-examples}\n */\nexport function codeSamplesDisabled(definition: OASDocument) {\n return Array.from(\n new Set(\n query(\n [\n \"$['x-samples-enabled']^\",\n \"$['x-readme']['samples-enabled']\",\n \"$..paths[*]..['x-samples-enabled']^\",\n \"$..paths[*]..['x-readme']['samples-enabled']^^\",\n ],\n definition,\n ).map(res => refizePointer(res.pointer)),\n ),\n );\n}\n\n/**\n * Determine if a given API definition is using our `x-proxy-enabled` extension for disabling the\n * \"Try It\" CORS proxy.\n *\n * @see {@link https://docs.readme.com/main/docs/openapi-extensions#cors-proxy-enabled}\n */\nexport function corsProxyDisabled(definition: OASDocument) {\n return Array.from(\n new Set(\n query(\n [\n \"$['x-proxy-enabled']^\",\n \"$['x-readme']['proxy-enabled']\",\n \"$..paths[*]..['x-proxy-enabled']^\",\n \"$..paths[*]..['x-readme']['proxy-enabled']^^\",\n ],\n definition,\n ).map(res => refizePointer(res.pointer)),\n ),\n );\n}\n\n/**\n * Determine if a given API definition is using our `x-code-samples` extension for documentating\n * custom code samples.\n *\n * @see {@link https://docs.readme.com/main/docs/openapi-extensions#custom-code-samples}\n */\nexport function customCodeSamples(definition: OASDocument) {\n return query([\"$..['x-code-samples']\", \"$..['x-readme']['code-samples']\"], definition)\n .filter(res => {\n // If `code-samples` is an empty array then we ignore it.\n return Array.isArray(res.value) && res.value.length ? res : false;\n })\n .map(res => refizePointer(res.pointer));\n}\n\n/**\n * Determine if a given API definition is using our `x-explorer-enabled` extension for disabling\n * \"Try It\" functionality.\n *\n * @see {@link https://docs.readme.com/main/docs/openapi-extensions#disable-the-api-explorer}\n */\nexport function explorerDisabled(definition: OASDocument) {\n return query(\n [\n \"$['x-explorer-enabled']^\",\n \"$['x-readme']['explorer-enabled']\",\n \"$..paths[*]..['x-explorer-enabled']^\",\n \"$..paths[*]..['x-readme']['explorer-enabled']^^\",\n ],\n definition,\n ).map(res => refizePointer(res.pointer));\n}\n\n/**\n * Determine if a given API definition uses the `RAW_BODY` manual API hack for raw body content.\n *\n * @see {@link https://docs.readme.com/main/docs/manual-api-editor#raw-body-content-body-content}\n */\nexport function rawBody(definition: OASDocument) {\n return query(['$..RAW_BODY^^'], definition).map(res => refizePointer(res.pointer));\n}\n\n/**\n * Determine if a given API definition is using our `x-readme.headers` extension for defining\n * static headers.\n *\n * @see {@link https://docs.readme.com/main/docs/openapi-extensions#static-headers}\n */\nexport function staticHeaders(definition: OASDocument) {\n return query([\"$..['x-headers']\", \"$..['x-readme']['headers']\"], definition)\n .filter(res => {\n // If `headers` is an empty array then we ignore it.\n return Array.isArray(res.value) && res.value.length ? res : false;\n })\n .map(res => refizePointer(res.pointer));\n}\n","import type { OASDocument } from '../rmoas.types';\n\nimport * as OPENAPI_QUERIES from './queries/openapi';\nimport * as README_QUERIES from './queries/readme';\n\nexport interface OASAnalysisFeature {\n locations: string[];\n present: boolean;\n}\n\nexport interface OASAnalysisGeneral {\n found: number | string[];\n name: string;\n}\n\nexport interface OASAnalysis {\n general: {\n mediaTypes: OASAnalysisGeneral;\n operationTotal: OASAnalysisGeneral;\n securityTypes: OASAnalysisGeneral;\n };\n openapi: {\n additionalProperties: OASAnalysisFeature;\n callbacks: OASAnalysisFeature;\n circularRefs: OASAnalysisFeature;\n discriminators: OASAnalysisFeature;\n links: OASAnalysisFeature;\n polymorphism: OASAnalysisFeature;\n serverVariables: OASAnalysisFeature;\n style: OASAnalysisFeature;\n webhooks: OASAnalysisFeature;\n xml: OASAnalysisFeature;\n };\n readme: {\n /**\n * RAW_BODY is specific to our Manual API editor and we don't recommend anyone writing their\n * own API definition should use it so this is considered deprecated.\n */\n raw_body?: OASAnalysisFeature;\n 'x-default': OASAnalysisFeature;\n 'x-readme.code-samples': OASAnalysisFeature;\n 'x-readme.explorer-enabled': OASAnalysisFeature;\n 'x-readme.headers': OASAnalysisFeature;\n 'x-readme.proxy-enabled': OASAnalysisFeature;\n\n /**\n * This extension is deprecated.\n */\n 'x-readme.samples-enabled'?: OASAnalysisFeature;\n\n 'x-readme.samples-languages'?: OASAnalysisFeature;\n };\n}\n\n/**\n * Analyze a given OpenAPI or Swagger definition for any OpenAPI, JSON Schema, and ReadMe-specific\n * feature uses it may contain.\n *\n * @todo this might be worth moving into the `oas` package at some point\n */\nexport default async function analyzer(definition: OASDocument): Promise<OASAnalysis> {\n const additionalProperties = OPENAPI_QUERIES.additionalProperties(definition);\n const callbacks = OPENAPI_QUERIES.callbacks(definition);\n const circularRefs = await OPENAPI_QUERIES.circularRefs(definition);\n const discriminators = OPENAPI_QUERIES.discriminators(definition);\n const links = OPENAPI_QUERIES.links(definition);\n const parameterSerialization = OPENAPI_QUERIES.parameterSerialization(definition);\n const polymorphism = OPENAPI_QUERIES.polymorphism(definition);\n const serverVariables = OPENAPI_QUERIES.serverVariables(definition);\n const webhooks = OPENAPI_QUERIES.webhooks(definition);\n const xml = OPENAPI_QUERIES.xml(definition);\n\n const authDefaults = README_QUERIES.authDefaults(definition);\n const codeSampleLanguages = README_QUERIES.codeSampleLanguages(definition);\n const customCodeSamples = README_QUERIES.customCodeSamples(definition);\n const codeSamplesDisabled = README_QUERIES.codeSamplesDisabled(definition);\n const disabledCorsProxy = README_QUERIES.corsProxyDisabled(definition);\n const explorerDisabled = README_QUERIES.explorerDisabled(definition);\n const staticHeaders = README_QUERIES.staticHeaders(definition);\n const rawBody = README_QUERIES.rawBody(definition);\n\n const analysis: OASAnalysis = {\n general: {\n mediaTypes: {\n name: 'Media Type',\n found: OPENAPI_QUERIES.mediaTypes(definition),\n },\n operationTotal: {\n name: 'Operation',\n found: OPENAPI_QUERIES.totalOperations(definition),\n },\n securityTypes: {\n name: 'Security Type',\n found: OPENAPI_QUERIES.securityTypes(definition),\n },\n },\n openapi: {\n additionalProperties: {\n present: !!additionalProperties.length,\n locations: additionalProperties,\n },\n callbacks: {\n present: !!callbacks.length,\n locations: callbacks,\n },\n circularRefs: {\n present: !!circularRefs.length,\n locations: circularRefs,\n },\n discriminators: {\n present: !!discriminators.length,\n locations: discriminators,\n },\n links: {\n present: !!links.length,\n locations: links,\n },\n style: {\n present: !!parameterSerialization.length,\n locations: parameterSerialization,\n },\n polymorphism: {\n present: !!polymorphism.length,\n locations: polymorphism,\n },\n serverVariables: {\n present: !!serverVariables.length,\n locations: serverVariables,\n },\n webhooks: {\n present: !!webhooks.length,\n locations: webhooks,\n },\n xml: {\n present: !!xml.length,\n locations: xml,\n },\n },\n readme: {\n 'x-default': {\n present: !!authDefaults.length,\n locations: authDefaults,\n },\n 'x-readme.code-samples': {\n present: !!customCodeSamples.length,\n locations: customCodeSamples,\n },\n 'x-readme.headers': {\n present: !!staticHeaders.length,\n locations: staticHeaders,\n },\n 'x-readme.explorer-enabled': {\n present: !!explorerDisabled.length,\n locations: explorerDisabled,\n },\n 'x-readme.proxy-enabled': {\n present: !!disabledCorsProxy.length,\n locations: disabledCorsProxy,\n },\n 'x-readme.samples-languages': {\n present: !!codeSampleLanguages.length,\n locations: codeSampleLanguages,\n },\n },\n };\n\n // We should only surface analysis for deprecated features and extensions if they have them as\n // there's no reason to give them information about something they can't use and should no longer\n // know about.\n if (codeSamplesDisabled.length) {\n analysis.readme['x-readme.samples-enabled'] = {\n present: !!codeSamplesDisabled.length,\n locations: codeSamplesDisabled,\n };\n }\n\n if (rawBody.length) {\n analysis.readme.raw_body = {\n present: !!rawBody.length,\n locations: rawBody,\n };\n }\n\n return analysis;\n}\n"]}
1
+ {"version":3,"sources":["../../src/analyzer/queries/openapi.ts","../../src/analyzer/queries/readme.ts","../../src/analyzer/index.ts"],"sourcesContent":["import type { OASDocument } from '../../rmoas.types';\n\nimport Oas from '../..';\nimport { query, refizePointer } from '../util';\n\n/**\n * Determine if a given API definition uses the `additionalProperties` schema property.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#schema-object}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#schema-object}\n */\nexport function additionalProperties(definition: OASDocument) {\n return query(['$..additionalProperties'], definition).map(res => refizePointer(res.pointer));\n}\n\n/**\n * Determine if a given API definition utilizes `callbacks`.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#callbackObject}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#callbackObject}\n */\nexport function callbacks(definition: OASDocument) {\n return query(['$.components.callbacks', '$.paths..callbacks'], definition).map(res => refizePointer(res.pointer));\n}\n\n/**\n * Determine if a given API definition has circular refs.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#schema-object}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#schema-object}\n */\nexport async function circularRefs(definition: OASDocument) {\n // Dereferencing will update the passed in variable, which we don't want to do, so we\n // instantiated `Oas` with a clone.\n const oas = new Oas(JSON.parse(JSON.stringify(definition)));\n await oas.dereference();\n\n const results = oas.getCircularReferences();\n\n results.sort();\n return results;\n}\n\n/**\n * Determine if a given API definition utilizes discriminators.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#discriminatorObject}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#discriminatorObject}\n */\nexport function discriminators(definition: OASDocument) {\n return query(['$..discriminator'], definition).map(res => refizePointer(res.pointer));\n}\n\n/**\n * Determine if a given API definition utilizes `links`.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#linkObject}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#linkObject}\n */\nexport function links(definition: OASDocument) {\n return query(['$..links'], definition).map(res => refizePointer(res.pointer));\n}\n\n/**\n * Determine all of the available media types used within an API definition.\n *\n * @todo This query currently picks up false positives if there is an object named `content`.\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#request-body-object}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#request-body-object}\n */\nexport function mediaTypes(definition: OASDocument) {\n const results = Array.from(\n new Set(\n query(['$..paths..content'], definition)\n .map(res => {\n // This'll transform `results`, which looks like `[['application/json'], ['text/xml']]`\n // into `['application/json', 'text/xml']`.\n return Object.keys(res.value);\n })\n .flat(),\n ),\n );\n\n results.sort();\n return results;\n}\n\n/**\n * Determine if a given API definition uses parameter serialization.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#parameter-object}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#parameter-object}\n */\nexport function parameterSerialization(definition: OASDocument) {\n return query(['$..parameters[*].style^'], definition).map(res => refizePointer(res.pointer));\n}\n\n/**\n * Determine if a given API definition utilizes schema polymorphism and/of interitance.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#schema-object}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#schema-object}\n */\nexport function polymorphism(definition: OASDocument) {\n const results = Array.from(\n new Set(query(['$..allOf^', '$..anyOf^', '$..oneOf^'], definition).map(res => refizePointer(res.pointer))),\n );\n\n results.sort();\n return results;\n}\n\n/**\n * Determine every kind of security type that a given API definition has documented.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#securitySchemeObject}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#securitySchemeObject}\n */\nexport function securityTypes(definition: OASDocument) {\n return Array.from(new Set(query(['$.components.securitySchemes..type'], definition).map(res => res.value as string)));\n}\n\n/**\n * Determine if a given API definition utilizes server variables.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#serverVariableObject}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#serverVariableObject}\n */\nexport function serverVariables(definition: OASDocument) {\n return query(['$.servers..variables^'], definition).map(res => refizePointer(res.pointer));\n}\n\n/**\n * Determine how many operations are defined in a given API definition.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#operationObject}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#operationObject}\n */\nexport function totalOperations(definition: OASDocument) {\n return query(['$..paths[*]'], definition)\n .map(res => Object.keys(res.value))\n .flat().length;\n}\n\n/**\n * Determine if a given API definition utilizes `webhooks` support in OpenAPI 3.1.\n *\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#oasObject}\n */\nexport function webhooks(definition: OASDocument) {\n return query(['$.webhooks[*]'], definition).map(res => refizePointer(res.pointer));\n}\n\n/**\n * Determine if a given API definition has XML schemas, payloads, or responses.\n *\n * @todo detect `+xml` media types\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#xmlObject}\n * @see {@link https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#xmlObject}\n */\nexport function xml(definition: OASDocument) {\n return query(\n [\n '$.components.schemas..xml^',\n '$..parameters..xml^',\n '$..requestBody..xml^',\n\n \"$..requestBody..['application/xml']\",\n \"$..requestBody..['application/xml-external-parsed-entity']\",\n \"$..requestBody..['application/xml-dtd']\",\n \"$..requestBody..['text/xml']\",\n \"$..requestBody..['text/xml-external-parsed-entity']\",\n '$..requestBody.content[?(@property.match(/\\\\+xml$/i))]',\n\n \"$..responses..['application/xml']\",\n \"$..responses..['application/xml-external-parsed-entity']\",\n \"$..responses..['application/xml-dtd']\",\n \"$..responses..['text/xml']\",\n \"$..responses..['text/xml-external-parsed-entity']\",\n '$..responses[*].content[?(@property.match(/\\\\+xml$/i))]',\n ],\n definition,\n ).map(res => refizePointer(res.pointer));\n}\n","import type { OASDocument } from '../../rmoas.types';\n\nimport { query, refizePointer } from '../util';\n\n/**\n * Determine if a given API definition is using our `x-default` extension for defining auth\n * defaults.\n *\n * @see {@link https://docs.readme.com/main/docs/openapi-extensions#authentication-defaults}\n */\nexport function authDefaults(definition: OASDocument) {\n return query([\"$.components.securitySchemes..['x-default']^\"], definition).map(res => refizePointer(res.pointer));\n}\n\n/**\n * Determine all of the code sample languages, using the `x-readme.samples-languages` extension\n * that are specified within an API definition.\n *\n * @see {@link https://docs.readme.com/main/docs/openapi-extensions#code-sample-languages}\n */\nexport function codeSampleLanguages(definition: OASDocument) {\n const results: string[] = Array.from(\n new Set(\n query([\"$..['x-readme']['samples-languages']\", \"$..['x-samples-languages']\"], definition)\n .map(res => res.value as string)\n .reduce((prev, next) => prev.concat(next), []),\n ),\n );\n\n results.sort();\n return results;\n}\n\n/**\n * Determine if a given API defintion is using the `x-samples-enabled` extension for disabling\n * code samples.\n *\n * @see {@link https://docs.readme.com/main/docs/openapi-extensions#disable-code-examples}\n */\nexport function codeSamplesDisabled(definition: OASDocument) {\n return Array.from(\n new Set(\n query(\n [\n \"$['x-samples-enabled']^\",\n \"$['x-readme']['samples-enabled']\",\n \"$..paths[*]..['x-samples-enabled']^\",\n \"$..paths[*]..['x-readme']['samples-enabled']^^\",\n ],\n definition,\n ).map(res => refizePointer(res.pointer)),\n ),\n );\n}\n\n/**\n * Determine if a given API definition is using our `x-proxy-enabled` extension for disabling the\n * \"Try It\" CORS proxy.\n *\n * @see {@link https://docs.readme.com/main/docs/openapi-extensions#cors-proxy-enabled}\n */\nexport function corsProxyDisabled(definition: OASDocument) {\n return Array.from(\n new Set(\n query(\n [\n \"$['x-proxy-enabled']^\",\n \"$['x-readme']['proxy-enabled']\",\n \"$..paths[*]..['x-proxy-enabled']^\",\n \"$..paths[*]..['x-readme']['proxy-enabled']^^\",\n ],\n definition,\n ).map(res => refizePointer(res.pointer)),\n ),\n );\n}\n\n/**\n * Determine if a given API definition is using our `x-code-samples` extension for documentating\n * custom code samples.\n *\n * @see {@link https://docs.readme.com/main/docs/openapi-extensions#custom-code-samples}\n */\nexport function customCodeSamples(definition: OASDocument) {\n return query([\"$..['x-code-samples']\", \"$..['x-readme']['code-samples']\"], definition)\n .filter(res => {\n // If `code-samples` is an empty array then we ignore it.\n return Array.isArray(res.value) && res.value.length ? res : false;\n })\n .map(res => refizePointer(res.pointer));\n}\n\n/**\n * Determine if a given API definition is using our `x-explorer-enabled` extension for disabling\n * \"Try It\" functionality.\n *\n * @see {@link https://docs.readme.com/main/docs/openapi-extensions#disable-the-api-explorer}\n */\nexport function explorerDisabled(definition: OASDocument) {\n return query(\n [\n \"$['x-explorer-enabled']^\",\n \"$['x-readme']['explorer-enabled']\",\n \"$..paths[*]..['x-explorer-enabled']^\",\n \"$..paths[*]..['x-readme']['explorer-enabled']^^\",\n ],\n definition,\n ).map(res => refizePointer(res.pointer));\n}\n\n/**\n * Determine if a given API definition uses the `RAW_BODY` manual API hack for raw body content.\n *\n * @see {@link https://docs.readme.com/main/docs/manual-api-editor#raw-body-content-body-content}\n */\nexport function rawBody(definition: OASDocument) {\n return query(['$..RAW_BODY^^'], definition).map(res => refizePointer(res.pointer));\n}\n\n/**\n * Determine if a given API definition is using our `x-readme.headers` extension for defining\n * static headers.\n *\n * @see {@link https://docs.readme.com/main/docs/openapi-extensions#static-headers}\n */\nexport function staticHeaders(definition: OASDocument) {\n return query([\"$..['x-headers']\", \"$..['x-readme']['headers']\"], definition)\n .filter(res => {\n // If `headers` is an empty array then we ignore it.\n return Array.isArray(res.value) && res.value.length ? res : false;\n })\n .map(res => refizePointer(res.pointer));\n}\n","import type { OASDocument } from '../rmoas.types';\n\nimport * as OPENAPI_QUERIES from './queries/openapi';\nimport * as README_QUERIES from './queries/readme';\n\nexport interface OASAnalysisFeature {\n locations: string[];\n present: boolean;\n}\n\nexport interface OASAnalysisGeneral {\n found: number | string[];\n name: string;\n}\n\nexport interface OASAnalysis {\n general: {\n mediaTypes: OASAnalysisGeneral;\n operationTotal: OASAnalysisGeneral;\n securityTypes: OASAnalysisGeneral;\n };\n openapi: {\n additionalProperties: OASAnalysisFeature;\n callbacks: OASAnalysisFeature;\n circularRefs: OASAnalysisFeature;\n discriminators: OASAnalysisFeature;\n links: OASAnalysisFeature;\n polymorphism: OASAnalysisFeature;\n serverVariables: OASAnalysisFeature;\n style: OASAnalysisFeature;\n webhooks: OASAnalysisFeature;\n xml: OASAnalysisFeature;\n };\n readme: {\n /**\n * RAW_BODY is specific to our Manual API editor and we don't recommend anyone writing their\n * own API definition should use it so this is considered deprecated.\n */\n raw_body?: OASAnalysisFeature;\n 'x-default': OASAnalysisFeature;\n 'x-readme.code-samples': OASAnalysisFeature;\n 'x-readme.explorer-enabled': OASAnalysisFeature;\n 'x-readme.headers': OASAnalysisFeature;\n 'x-readme.proxy-enabled': OASAnalysisFeature;\n\n /**\n * This extension is deprecated.\n */\n 'x-readme.samples-enabled'?: OASAnalysisFeature;\n\n 'x-readme.samples-languages'?: OASAnalysisFeature;\n };\n}\n\n/**\n * Analyze a given OpenAPI or Swagger definition for any OpenAPI, JSON Schema, and ReadMe-specific\n * feature uses it may contain.\n *\n * @todo this might be worth moving into the `oas` package at some point\n */\nexport default async function analyzer(definition: OASDocument): Promise<OASAnalysis> {\n const additionalProperties = OPENAPI_QUERIES.additionalProperties(definition);\n const callbacks = OPENAPI_QUERIES.callbacks(definition);\n const circularRefs = await OPENAPI_QUERIES.circularRefs(definition);\n const discriminators = OPENAPI_QUERIES.discriminators(definition);\n const links = OPENAPI_QUERIES.links(definition);\n const parameterSerialization = OPENAPI_QUERIES.parameterSerialization(definition);\n const polymorphism = OPENAPI_QUERIES.polymorphism(definition);\n const serverVariables = OPENAPI_QUERIES.serverVariables(definition);\n const webhooks = OPENAPI_QUERIES.webhooks(definition);\n const xml = OPENAPI_QUERIES.xml(definition);\n\n const authDefaults = README_QUERIES.authDefaults(definition);\n const codeSampleLanguages = README_QUERIES.codeSampleLanguages(definition);\n const customCodeSamples = README_QUERIES.customCodeSamples(definition);\n const codeSamplesDisabled = README_QUERIES.codeSamplesDisabled(definition);\n const disabledCorsProxy = README_QUERIES.corsProxyDisabled(definition);\n const explorerDisabled = README_QUERIES.explorerDisabled(definition);\n const staticHeaders = README_QUERIES.staticHeaders(definition);\n const rawBody = README_QUERIES.rawBody(definition);\n\n const analysis: OASAnalysis = {\n general: {\n mediaTypes: {\n name: 'Media Type',\n found: OPENAPI_QUERIES.mediaTypes(definition),\n },\n operationTotal: {\n name: 'Operation',\n found: OPENAPI_QUERIES.totalOperations(definition),\n },\n securityTypes: {\n name: 'Security Type',\n found: OPENAPI_QUERIES.securityTypes(definition),\n },\n },\n openapi: {\n additionalProperties: {\n present: !!additionalProperties.length,\n locations: additionalProperties,\n },\n callbacks: {\n present: !!callbacks.length,\n locations: callbacks,\n },\n circularRefs: {\n present: !!circularRefs.length,\n locations: circularRefs,\n },\n discriminators: {\n present: !!discriminators.length,\n locations: discriminators,\n },\n links: {\n present: !!links.length,\n locations: links,\n },\n style: {\n present: !!parameterSerialization.length,\n locations: parameterSerialization,\n },\n polymorphism: {\n present: !!polymorphism.length,\n locations: polymorphism,\n },\n serverVariables: {\n present: !!serverVariables.length,\n locations: serverVariables,\n },\n webhooks: {\n present: !!webhooks.length,\n locations: webhooks,\n },\n xml: {\n present: !!xml.length,\n locations: xml,\n },\n },\n readme: {\n 'x-default': {\n present: !!authDefaults.length,\n locations: authDefaults,\n },\n 'x-readme.code-samples': {\n present: !!customCodeSamples.length,\n locations: customCodeSamples,\n },\n 'x-readme.headers': {\n present: !!staticHeaders.length,\n locations: staticHeaders,\n },\n 'x-readme.explorer-enabled': {\n present: !!explorerDisabled.length,\n locations: explorerDisabled,\n },\n 'x-readme.proxy-enabled': {\n present: !!disabledCorsProxy.length,\n locations: disabledCorsProxy,\n },\n 'x-readme.samples-languages': {\n present: !!codeSampleLanguages.length,\n locations: codeSampleLanguages,\n },\n },\n };\n\n // We should only surface analysis for deprecated features and extensions if they have them as\n // there's no reason to give them information about something they can't use and should no longer\n // know about.\n if (codeSamplesDisabled.length) {\n analysis.readme['x-readme.samples-enabled'] = {\n present: !!codeSamplesDisabled.length,\n locations: codeSamplesDisabled,\n };\n }\n\n if (rawBody.length) {\n analysis.readme.raw_body = {\n present: !!rawBody.length,\n locations: rawBody,\n };\n }\n\n return analysis;\n}\n"],"mappings":"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","names":["additionalProperties","callbacks","circularRefs","discriminators","links","parameterSerialization","polymorphism","serverVariables","webhooks","xml","authDefaults","codeSampleLanguages","customCodeSamples","codeSamplesDisabled","explorerDisabled","staticHeaders","rawBody"]}
@@ -1,6 +1,4 @@
1
- 'use strict';
2
-
3
- // src/rmoas.types.ts
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/rmoas.types.ts
4
2
  function isRef(check) {
5
3
  return check.$ref !== void 0;
6
4
  }
@@ -11,8 +9,9 @@ function isSchema(check, isPolymorphicAllOfChild = false) {
11
9
  return check.type !== void 0 || check.allOf !== void 0 || check.anyOf !== void 0 || check.oneOf !== void 0 || isPolymorphicAllOfChild;
12
10
  }
13
11
 
14
- exports.isOAS31 = isOAS31;
15
- exports.isRef = isRef;
16
- exports.isSchema = isSchema;
17
- //# sourceMappingURL=out.js.map
12
+
13
+
14
+
15
+
16
+ exports.isRef = isRef; exports.isOAS31 = isOAS31; exports.isSchema = isSchema;
18
17
  //# sourceMappingURL=chunk-4DSP2IAD.cjs.map
@@ -1,7 +1,8 @@
1
- import { isOAS31, isSchema, isRef } from './chunk-EYQ3PAIA.js';
2
- import mergeJSONSchemaAllOf from 'json-schema-merge-allof';
3
- import jsonpointer from 'jsonpointer';
4
- import removeUndefinedObjects from 'remove-undefined-objects';
1
+ import {
2
+ isOAS31,
3
+ isRef,
4
+ isSchema
5
+ } from "./chunk-EYQ3PAIA.js";
5
6
 
6
7
  // src/lib/clone-object.ts
7
8
  function cloneObject(obj) {
@@ -64,6 +65,11 @@ var matches_mimetype_default = {
64
65
  );
65
66
  }
66
67
  };
68
+
69
+ // src/lib/openapi-to-json-schema.ts
70
+ import mergeJSONSchemaAllOf from "json-schema-merge-allof";
71
+ import jsonpointer from "jsonpointer";
72
+ import removeUndefinedObjects from "remove-undefined-objects";
67
73
  var UNSUPPORTED_SCHEMA_PROPS = [
68
74
  "example",
69
75
  // OpenAPI supports `example` but we're mapping it to `examples` in this library.
@@ -267,7 +273,7 @@ function toJSONSchema(data, opts = {}) {
267
273
  };
268
274
  if ("properties" in schema) {
269
275
  schema[polyType][idx] = toJSONSchema(
270
- { allOf: [item, { properties: schema.properties }] },
276
+ { required: schema.required, allOf: [item, { properties: schema.properties }] },
271
277
  polyOptions
272
278
  );
273
279
  } else if ("items" in schema) {
@@ -298,7 +304,8 @@ function toJSONSchema(data, opts = {}) {
298
304
  schema.type = "object";
299
305
  } else if ("items" in schema) {
300
306
  schema.type = "array";
301
- } else ;
307
+ } else {
308
+ }
302
309
  }
303
310
  if ("type" in schema) {
304
311
  if ("nullable" in schema) {
@@ -320,7 +327,8 @@ function toJSONSchema(data, opts = {}) {
320
327
  schema.type = schema.type.shift();
321
328
  } else if (schema.type.includes("array") || schema.type.includes("boolean") || schema.type.includes("object")) {
322
329
  const isNullable = schema.type.includes("null");
323
- if (schema.type.length === 2 && isNullable) ; else {
330
+ if (schema.type.length === 2 && isNullable) {
331
+ } else {
324
332
  const nonPrimitives = [];
325
333
  Object.entries({
326
334
  // https://json-schema.org/understanding-json-schema/reference/array.html
@@ -560,7 +568,8 @@ function toJSONSchema(data, opts = {}) {
560
568
 
561
569
  Default: \`${schema.default}\`` : `Default: ${schema.default}`;
562
570
  }
563
- if ("allowEmptyValue" in schema && schema.allowEmptyValue && schema.default === "" || schema.default !== "") ; else {
571
+ if ("allowEmptyValue" in schema && schema.allowEmptyValue && schema.default === "" || schema.default !== "") {
572
+ } else {
564
573
  delete schema.default;
565
574
  }
566
575
  }
@@ -872,6 +881,14 @@ function getParametersAsJSONSchema(operation, api, opts) {
872
881
  });
873
882
  }
874
883
 
875
- export { cloneObject, getParametersAsJSONSchema, getSchemaVersionString, isObject, isPrimitive, matches_mimetype_default, toJSONSchema, types };
876
- //# sourceMappingURL=out.js.map
877
- //# sourceMappingURL=chunk-SUR6DBOY.js.map
884
+ export {
885
+ isObject,
886
+ isPrimitive,
887
+ matches_mimetype_default,
888
+ cloneObject,
889
+ getSchemaVersionString,
890
+ toJSONSchema,
891
+ types,
892
+ getParametersAsJSONSchema
893
+ };
894
+ //# sourceMappingURL=chunk-AAZBR2RE.js.map