@speclynx/apidom-ns-openapi-2 1.12.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 (228) hide show
  1. package/CHANGELOG.md +84 -0
  2. package/LICENSE +202 -0
  3. package/LICENSES/AFL-3.0.txt +182 -0
  4. package/LICENSES/Apache-2.0.txt +202 -0
  5. package/LICENSES/BSD-3-Clause.txt +26 -0
  6. package/LICENSES/MIT.txt +9 -0
  7. package/NOTICE +65 -0
  8. package/README.md +215 -0
  9. package/dist/apidom-ns-openapi-2.browser.js +23072 -0
  10. package/dist/apidom-ns-openapi-2.browser.min.js +1 -0
  11. package/package.json +65 -0
  12. package/src/elements/Contact.cjs +33 -0
  13. package/src/elements/Contact.mjs +30 -0
  14. package/src/elements/Definitions.cjs +15 -0
  15. package/src/elements/Definitions.mjs +12 -0
  16. package/src/elements/Example.cjs +15 -0
  17. package/src/elements/Example.mjs +12 -0
  18. package/src/elements/ExternalDocumentation.cjs +27 -0
  19. package/src/elements/ExternalDocumentation.mjs +24 -0
  20. package/src/elements/Header.cjs +185 -0
  21. package/src/elements/Header.mjs +182 -0
  22. package/src/elements/Headers.cjs +15 -0
  23. package/src/elements/Headers.mjs +12 -0
  24. package/src/elements/Info.cjs +52 -0
  25. package/src/elements/Info.mjs +48 -0
  26. package/src/elements/Items.cjs +190 -0
  27. package/src/elements/Items.mjs +187 -0
  28. package/src/elements/License.cjs +27 -0
  29. package/src/elements/License.mjs +24 -0
  30. package/src/elements/Operation.cjs +78 -0
  31. package/src/elements/Operation.mjs +74 -0
  32. package/src/elements/Parameter.cjs +230 -0
  33. package/src/elements/Parameter.mjs +226 -0
  34. package/src/elements/ParametersDefinitions.cjs +15 -0
  35. package/src/elements/ParametersDefinitions.mjs +12 -0
  36. package/src/elements/PathItem.cjs +69 -0
  37. package/src/elements/PathItem.mjs +65 -0
  38. package/src/elements/Paths.cjs +15 -0
  39. package/src/elements/Paths.mjs +12 -0
  40. package/src/elements/Reference.cjs +22 -0
  41. package/src/elements/Reference.mjs +19 -0
  42. package/src/elements/Response.cjs +39 -0
  43. package/src/elements/Response.mjs +35 -0
  44. package/src/elements/Responses.cjs +21 -0
  45. package/src/elements/Responses.mjs +17 -0
  46. package/src/elements/ResponsesDefinitions.cjs +15 -0
  47. package/src/elements/ResponsesDefinitions.mjs +12 -0
  48. package/src/elements/Schema.cjs +116 -0
  49. package/src/elements/Schema.mjs +113 -0
  50. package/src/elements/Scopes.cjs +15 -0
  51. package/src/elements/Scopes.mjs +12 -0
  52. package/src/elements/SecurityDefinitions.cjs +15 -0
  53. package/src/elements/SecurityDefinitions.mjs +12 -0
  54. package/src/elements/SecurityRequirement.cjs +15 -0
  55. package/src/elements/SecurityRequirement.mjs +12 -0
  56. package/src/elements/SecurityScheme.cjs +63 -0
  57. package/src/elements/SecurityScheme.mjs +60 -0
  58. package/src/elements/Swagger.cjs +106 -0
  59. package/src/elements/Swagger.mjs +102 -0
  60. package/src/elements/SwaggerVersion.cjs +17 -0
  61. package/src/elements/SwaggerVersion.mjs +14 -0
  62. package/src/elements/Tag.cjs +33 -0
  63. package/src/elements/Tag.mjs +29 -0
  64. package/src/elements/Xml.cjs +45 -0
  65. package/src/elements/Xml.mjs +42 -0
  66. package/src/elements/nces/OperationConsumes.cjs +16 -0
  67. package/src/elements/nces/OperationConsumes.mjs +13 -0
  68. package/src/elements/nces/OperationParameters.cjs +17 -0
  69. package/src/elements/nces/OperationParameters.mjs +14 -0
  70. package/src/elements/nces/OperationProduces.cjs +16 -0
  71. package/src/elements/nces/OperationProduces.mjs +13 -0
  72. package/src/elements/nces/OperationSchemes.cjs +16 -0
  73. package/src/elements/nces/OperationSchemes.mjs +13 -0
  74. package/src/elements/nces/OperationSecurity.cjs +17 -0
  75. package/src/elements/nces/OperationSecurity.mjs +14 -0
  76. package/src/elements/nces/OperationTags.cjs +17 -0
  77. package/src/elements/nces/OperationTags.mjs +14 -0
  78. package/src/elements/nces/PathItemParameters.cjs +17 -0
  79. package/src/elements/nces/PathItemParameters.mjs +14 -0
  80. package/src/elements/nces/SwaggerConsumes.cjs +16 -0
  81. package/src/elements/nces/SwaggerConsumes.mjs +13 -0
  82. package/src/elements/nces/SwaggerProduces.cjs +16 -0
  83. package/src/elements/nces/SwaggerProduces.mjs +13 -0
  84. package/src/elements/nces/SwaggerSchemes.cjs +16 -0
  85. package/src/elements/nces/SwaggerSchemes.mjs +13 -0
  86. package/src/elements/nces/SwaggerSecurity.cjs +17 -0
  87. package/src/elements/nces/SwaggerSecurity.mjs +14 -0
  88. package/src/elements/nces/SwaggerTags.cjs +16 -0
  89. package/src/elements/nces/SwaggerTags.mjs +13 -0
  90. package/src/index.cjs +135 -0
  91. package/src/index.mjs +31 -0
  92. package/src/media-types.cjs +34 -0
  93. package/src/media-types.mjs +30 -0
  94. package/src/namespace.cjs +71 -0
  95. package/src/namespace.mjs +66 -0
  96. package/src/predicates.cjs +329 -0
  97. package/src/predicates.mjs +324 -0
  98. package/src/refractor/index.cjs +52 -0
  99. package/src/refractor/index.mjs +46 -0
  100. package/src/refractor/plugins/replace-empty-element.cjs +358 -0
  101. package/src/refractor/plugins/replace-empty-element.mjs +350 -0
  102. package/src/refractor/predicates.cjs +25 -0
  103. package/src/refractor/predicates.mjs +20 -0
  104. package/src/refractor/registration.cjs +87 -0
  105. package/src/refractor/registration.mjs +56 -0
  106. package/src/refractor/specification.cjs +490 -0
  107. package/src/refractor/specification.mjs +484 -0
  108. package/src/refractor/toolbox.cjs +23 -0
  109. package/src/refractor/toolbox.mjs +17 -0
  110. package/src/refractor/visitors/FallbackVisitor.cjs +24 -0
  111. package/src/refractor/visitors/FallbackVisitor.mjs +18 -0
  112. package/src/refractor/visitors/SpecificationExtensionVisitor.cjs +18 -0
  113. package/src/refractor/visitors/SpecificationExtensionVisitor.mjs +13 -0
  114. package/src/refractor/visitors/SpecificationVisitor.cjs +74 -0
  115. package/src/refractor/visitors/SpecificationVisitor.mjs +68 -0
  116. package/src/refractor/visitors/Visitor.cjs +31 -0
  117. package/src/refractor/visitors/Visitor.mjs +28 -0
  118. package/src/refractor/visitors/generics/AlternatingVisitor.cjs +42 -0
  119. package/src/refractor/visitors/generics/AlternatingVisitor.mjs +35 -0
  120. package/src/refractor/visitors/generics/FixedFieldsVisitor.cjs +67 -0
  121. package/src/refractor/visitors/generics/FixedFieldsVisitor.mjs +60 -0
  122. package/src/refractor/visitors/generics/MapVisitor.cjs +21 -0
  123. package/src/refractor/visitors/generics/MapVisitor.mjs +15 -0
  124. package/src/refractor/visitors/generics/MixedFieldsVisitor.cjs +60 -0
  125. package/src/refractor/visitors/generics/MixedFieldsVisitor.mjs +54 -0
  126. package/src/refractor/visitors/generics/PatternedFieldsVisitor.cjs +67 -0
  127. package/src/refractor/visitors/generics/PatternedFieldsVisitor.mjs +61 -0
  128. package/src/refractor/visitors/open-api-2/BasePathVisitor.cjs +17 -0
  129. package/src/refractor/visitors/open-api-2/BasePathVisitor.mjs +12 -0
  130. package/src/refractor/visitors/open-api-2/ConsumesVisitor.cjs +22 -0
  131. package/src/refractor/visitors/open-api-2/ConsumesVisitor.mjs +17 -0
  132. package/src/refractor/visitors/open-api-2/HostVisitor.cjs +17 -0
  133. package/src/refractor/visitors/open-api-2/HostVisitor.mjs +12 -0
  134. package/src/refractor/visitors/open-api-2/ProducesVisitor.cjs +22 -0
  135. package/src/refractor/visitors/open-api-2/ProducesVisitor.mjs +17 -0
  136. package/src/refractor/visitors/open-api-2/SchemesVisitor.cjs +22 -0
  137. package/src/refractor/visitors/open-api-2/SchemesVisitor.mjs +17 -0
  138. package/src/refractor/visitors/open-api-2/SecurityVisitor.cjs +33 -0
  139. package/src/refractor/visitors/open-api-2/SecurityVisitor.mjs +27 -0
  140. package/src/refractor/visitors/open-api-2/SwaggerVisitor.cjs +26 -0
  141. package/src/refractor/visitors/open-api-2/SwaggerVisitor.mjs +20 -0
  142. package/src/refractor/visitors/open-api-2/TagsVisitor.cjs +33 -0
  143. package/src/refractor/visitors/open-api-2/TagsVisitor.mjs +27 -0
  144. package/src/refractor/visitors/open-api-2/contact/index.cjs +26 -0
  145. package/src/refractor/visitors/open-api-2/contact/index.mjs +20 -0
  146. package/src/refractor/visitors/open-api-2/definitions/index.cjs +38 -0
  147. package/src/refractor/visitors/open-api-2/definitions/index.mjs +32 -0
  148. package/src/refractor/visitors/open-api-2/example/index.cjs +26 -0
  149. package/src/refractor/visitors/open-api-2/example/index.mjs +20 -0
  150. package/src/refractor/visitors/open-api-2/external-documentation/index.cjs +26 -0
  151. package/src/refractor/visitors/open-api-2/external-documentation/index.mjs +20 -0
  152. package/src/refractor/visitors/open-api-2/header/index.cjs +26 -0
  153. package/src/refractor/visitors/open-api-2/header/index.mjs +20 -0
  154. package/src/refractor/visitors/open-api-2/headers/index.cjs +26 -0
  155. package/src/refractor/visitors/open-api-2/headers/index.mjs +20 -0
  156. package/src/refractor/visitors/open-api-2/index.cjs +26 -0
  157. package/src/refractor/visitors/open-api-2/index.mjs +20 -0
  158. package/src/refractor/visitors/open-api-2/info/VersionVisitor.cjs +18 -0
  159. package/src/refractor/visitors/open-api-2/info/VersionVisitor.mjs +13 -0
  160. package/src/refractor/visitors/open-api-2/info/index.cjs +26 -0
  161. package/src/refractor/visitors/open-api-2/info/index.mjs +20 -0
  162. package/src/refractor/visitors/open-api-2/items/index.cjs +28 -0
  163. package/src/refractor/visitors/open-api-2/items/index.mjs +22 -0
  164. package/src/refractor/visitors/open-api-2/license/index.cjs +26 -0
  165. package/src/refractor/visitors/open-api-2/license/index.mjs +20 -0
  166. package/src/refractor/visitors/open-api-2/operation/ConsumesVisitor.cjs +22 -0
  167. package/src/refractor/visitors/open-api-2/operation/ConsumesVisitor.mjs +17 -0
  168. package/src/refractor/visitors/open-api-2/operation/ParametersVisitor.cjs +38 -0
  169. package/src/refractor/visitors/open-api-2/operation/ParametersVisitor.mjs +32 -0
  170. package/src/refractor/visitors/open-api-2/operation/ProducesVisitor.cjs +22 -0
  171. package/src/refractor/visitors/open-api-2/operation/ProducesVisitor.mjs +17 -0
  172. package/src/refractor/visitors/open-api-2/operation/SchemesVisitor.cjs +22 -0
  173. package/src/refractor/visitors/open-api-2/operation/SchemesVisitor.mjs +17 -0
  174. package/src/refractor/visitors/open-api-2/operation/SecurityVisitor.cjs +33 -0
  175. package/src/refractor/visitors/open-api-2/operation/SecurityVisitor.mjs +27 -0
  176. package/src/refractor/visitors/open-api-2/operation/TagsVisitor.cjs +22 -0
  177. package/src/refractor/visitors/open-api-2/operation/TagsVisitor.mjs +17 -0
  178. package/src/refractor/visitors/open-api-2/operation/index.cjs +25 -0
  179. package/src/refractor/visitors/open-api-2/operation/index.mjs +19 -0
  180. package/src/refractor/visitors/open-api-2/parameter/index.cjs +26 -0
  181. package/src/refractor/visitors/open-api-2/parameter/index.mjs +20 -0
  182. package/src/refractor/visitors/open-api-2/parameters-definitions/index.cjs +25 -0
  183. package/src/refractor/visitors/open-api-2/parameters-definitions/index.mjs +19 -0
  184. package/src/refractor/visitors/open-api-2/path-item/$RefVisitor.cjs +17 -0
  185. package/src/refractor/visitors/open-api-2/path-item/$RefVisitor.mjs +12 -0
  186. package/src/refractor/visitors/open-api-2/path-item/ParametersVisitor.cjs +38 -0
  187. package/src/refractor/visitors/open-api-2/path-item/ParametersVisitor.mjs +32 -0
  188. package/src/refractor/visitors/open-api-2/path-item/index.cjs +45 -0
  189. package/src/refractor/visitors/open-api-2/path-item/index.mjs +39 -0
  190. package/src/refractor/visitors/open-api-2/paths/index.cjs +43 -0
  191. package/src/refractor/visitors/open-api-2/paths/index.mjs +37 -0
  192. package/src/refractor/visitors/open-api-2/reference/$RefVisitor.cjs +17 -0
  193. package/src/refractor/visitors/open-api-2/reference/$RefVisitor.mjs +12 -0
  194. package/src/refractor/visitors/open-api-2/reference/index.cjs +36 -0
  195. package/src/refractor/visitors/open-api-2/reference/index.mjs +30 -0
  196. package/src/refractor/visitors/open-api-2/response/index.cjs +26 -0
  197. package/src/refractor/visitors/open-api-2/response/index.mjs +20 -0
  198. package/src/refractor/visitors/open-api-2/responses/DefaultVisitor.cjs +42 -0
  199. package/src/refractor/visitors/open-api-2/responses/DefaultVisitor.mjs +36 -0
  200. package/src/refractor/visitors/open-api-2/responses/index.cjs +52 -0
  201. package/src/refractor/visitors/open-api-2/responses/index.mjs +46 -0
  202. package/src/refractor/visitors/open-api-2/responses-definitions/index.cjs +25 -0
  203. package/src/refractor/visitors/open-api-2/responses-definitions/index.mjs +19 -0
  204. package/src/refractor/visitors/open-api-2/schema/AllOfVisitor.cjs +25 -0
  205. package/src/refractor/visitors/open-api-2/schema/AllOfVisitor.mjs +21 -0
  206. package/src/refractor/visitors/open-api-2/schema/ItemsVisitor.cjs +32 -0
  207. package/src/refractor/visitors/open-api-2/schema/ItemsVisitor.mjs +28 -0
  208. package/src/refractor/visitors/open-api-2/schema/PropertiesVisitor.cjs +25 -0
  209. package/src/refractor/visitors/open-api-2/schema/PropertiesVisitor.mjs +21 -0
  210. package/src/refractor/visitors/open-api-2/schema/SchemaOrJSONReferenceVisitor.cjs +24 -0
  211. package/src/refractor/visitors/open-api-2/schema/SchemaOrJSONReferenceVisitor.mjs +20 -0
  212. package/src/refractor/visitors/open-api-2/schema/index.cjs +26 -0
  213. package/src/refractor/visitors/open-api-2/schema/index.mjs +20 -0
  214. package/src/refractor/visitors/open-api-2/scopes/index.cjs +26 -0
  215. package/src/refractor/visitors/open-api-2/scopes/index.mjs +20 -0
  216. package/src/refractor/visitors/open-api-2/security-definitions/index.cjs +26 -0
  217. package/src/refractor/visitors/open-api-2/security-definitions/index.mjs +20 -0
  218. package/src/refractor/visitors/open-api-2/security-requirement/index.cjs +25 -0
  219. package/src/refractor/visitors/open-api-2/security-requirement/index.mjs +19 -0
  220. package/src/refractor/visitors/open-api-2/security-scheme/index.cjs +26 -0
  221. package/src/refractor/visitors/open-api-2/security-scheme/index.mjs +20 -0
  222. package/src/refractor/visitors/open-api-2/tag/index.cjs +26 -0
  223. package/src/refractor/visitors/open-api-2/tag/index.mjs +20 -0
  224. package/src/refractor/visitors/open-api-2/xml/index.cjs +26 -0
  225. package/src/refractor/visitors/open-api-2/xml/index.mjs +20 -0
  226. package/src/traversal/visitor.cjs +56 -0
  227. package/src/traversal/visitor.mjs +53 -0
  228. package/types/apidom-ns-openapi-2.d.ts +2485 -0
@@ -0,0 +1,68 @@
1
+ import { pathSatisfies, path, pick } from 'ramda';
2
+ import { isFunction } from 'ramda-adjunct';
3
+ import { visit, cloneDeep } from '@speclynx/apidom-core';
4
+ import Visitor from "./Visitor.mjs";
5
+ import FallbackVisitor from "./FallbackVisitor.mjs";
6
+ /**
7
+ * This is a base Type for every visitor that does
8
+ * internal look-ups to retrieve other child visitors.
9
+ * @public
10
+ */
11
+ /**
12
+ * @public
13
+ */
14
+ class SpecificationVisitor extends Visitor {
15
+ specObj;
16
+ passingOptionsNames = ['specObj'];
17
+ constructor({
18
+ specObj,
19
+ ...rest
20
+ }) {
21
+ super({
22
+ ...rest
23
+ });
24
+ this.specObj = specObj;
25
+ }
26
+ retrievePassingOptions() {
27
+ return pick(this.passingOptionsNames, this);
28
+ }
29
+ retrieveFixedFields(specPath) {
30
+ const fixedFields = path(['visitors', ...specPath, 'fixedFields'], this.specObj);
31
+ if (typeof fixedFields === 'object' && fixedFields !== null) {
32
+ return Object.keys(fixedFields);
33
+ }
34
+ return [];
35
+ }
36
+ retrieveVisitor(specPath) {
37
+ if (pathSatisfies(isFunction, ['visitors', ...specPath], this.specObj)) {
38
+ return path(['visitors', ...specPath], this.specObj);
39
+ }
40
+ return path(['visitors', ...specPath, '$visitor'], this.specObj);
41
+ }
42
+ retrieveVisitorInstance(specPath, options = {}) {
43
+ const passingOpts = this.retrievePassingOptions();
44
+ const VisitorClz = this.retrieveVisitor(specPath);
45
+ const visitorOpts = {
46
+ ...passingOpts,
47
+ ...options
48
+ };
49
+ return new VisitorClz(visitorOpts);
50
+ }
51
+ toRefractedElement(specPath, element, options = {}) {
52
+ /**
53
+ * This is `Visitor shortcut`: mechanism for short circuiting the traversal and replacing
54
+ * it by basic node cloning.
55
+ *
56
+ * Visiting the element is equivalent to cloning it if the prototype of a visitor
57
+ * is the same as the prototype of FallbackVisitor. If that's the case, we can avoid
58
+ * bootstrapping the traversal cycle for fields that don't require any special visiting.
59
+ */
60
+ const visitor = this.retrieveVisitorInstance(specPath, options);
61
+ if (visitor instanceof FallbackVisitor && visitor?.constructor === FallbackVisitor) {
62
+ return cloneDeep(element);
63
+ }
64
+ visit(element, visitor, options);
65
+ return visitor.element;
66
+ }
67
+ }
68
+ export default SpecificationVisitor;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+ var _apidomCore = require("@speclynx/apidom-core");
6
+ /**
7
+ * @public
8
+ */
9
+
10
+ /**
11
+ * @public
12
+ */
13
+ class Visitor {
14
+ element;
15
+ constructor(options = {}) {
16
+ Object.assign(this, options);
17
+ }
18
+ copyMetaAndAttributes(from, to) {
19
+ if (from.meta.length > 0 || to.meta.length > 0) {
20
+ to.meta = (0, _apidomCore.deepmerge)(to.meta, from.meta);
21
+ if ((0, _apidomCore.hasElementSourceMap)(from)) {
22
+ // avoid deep merging of source maps
23
+ to.meta.set('sourceMap', from.meta.get('sourceMap'));
24
+ }
25
+ }
26
+ if (from.attributes.length > 0 || from.meta.length > 0) {
27
+ to.attributes = (0, _apidomCore.deepmerge)(to.attributes, from.attributes);
28
+ }
29
+ }
30
+ }
31
+ var _default = exports.default = Visitor;
@@ -0,0 +1,28 @@
1
+ import { hasElementSourceMap, deepmerge } from '@speclynx/apidom-core';
2
+
3
+ /**
4
+ * @public
5
+ */
6
+
7
+ /**
8
+ * @public
9
+ */
10
+ class Visitor {
11
+ element;
12
+ constructor(options = {}) {
13
+ Object.assign(this, options);
14
+ }
15
+ copyMetaAndAttributes(from, to) {
16
+ if (from.meta.length > 0 || to.meta.length > 0) {
17
+ to.meta = deepmerge(to.meta, from.meta);
18
+ if (hasElementSourceMap(from)) {
19
+ // avoid deep merging of source maps
20
+ to.meta.set('sourceMap', from.meta.get('sourceMap'));
21
+ }
22
+ }
23
+ if (from.attributes.length > 0 || from.meta.length > 0) {
24
+ to.attributes = deepmerge(to.attributes, from.attributes);
25
+ }
26
+ }
27
+ }
28
+ export default Visitor;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _ramda = require("ramda");
7
+ var _ramdaAdjunct = require("ramda-adjunct");
8
+ var _apidomCore = require("@speclynx/apidom-core");
9
+ var _SpecificationVisitor = _interopRequireDefault(require("../SpecificationVisitor.cjs"));
10
+ /**
11
+ * @public
12
+ */
13
+
14
+ /**
15
+ * @public
16
+ */
17
+
18
+ /**
19
+ * @public
20
+ */
21
+ class AlternatingVisitor extends _SpecificationVisitor.default {
22
+ alternator;
23
+ constructor({
24
+ alternator,
25
+ ...rest
26
+ }) {
27
+ super({
28
+ ...rest
29
+ });
30
+ this.alternator = alternator || [];
31
+ }
32
+ enter(element) {
33
+ const functions = this.alternator.map(({
34
+ predicate,
35
+ specPath
36
+ }) => (0, _ramda.ifElse)(predicate, (0, _ramda.always)(specPath), _ramdaAdjunct.stubUndefined));
37
+ const specPath = (0, _ramdaAdjunct.dispatch)(functions)(element);
38
+ this.element = this.toRefractedElement(specPath, element);
39
+ return _apidomCore.BREAK;
40
+ }
41
+ }
42
+ var _default = exports.default = AlternatingVisitor;
@@ -0,0 +1,35 @@
1
+ import { ifElse, always } from 'ramda';
2
+ import { dispatch, stubUndefined } from 'ramda-adjunct';
3
+ import { BREAK } from '@speclynx/apidom-core';
4
+ import SpecificationVisitor from "../SpecificationVisitor.mjs";
5
+ /**
6
+ * @public
7
+ */
8
+ /**
9
+ * @public
10
+ */
11
+ /**
12
+ * @public
13
+ */
14
+ class AlternatingVisitor extends SpecificationVisitor {
15
+ alternator;
16
+ constructor({
17
+ alternator,
18
+ ...rest
19
+ }) {
20
+ super({
21
+ ...rest
22
+ });
23
+ this.alternator = alternator || [];
24
+ }
25
+ enter(element) {
26
+ const functions = this.alternator.map(({
27
+ predicate,
28
+ specPath
29
+ }) => ifElse(predicate, always(specPath), stubUndefined));
30
+ const specPath = dispatch(functions)(element);
31
+ this.element = this.toRefractedElement(specPath, element);
32
+ return BREAK;
33
+ }
34
+ }
35
+ export default AlternatingVisitor;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _apidomCore = require("@speclynx/apidom-core");
7
+ var _SpecificationVisitor = _interopRequireDefault(require("../SpecificationVisitor.cjs"));
8
+ var _predicates = require("../../predicates.cjs");
9
+ /**
10
+ * @public
11
+ */
12
+
13
+ /**
14
+ * @public
15
+ */
16
+
17
+ /**
18
+ * @public
19
+ */
20
+ class FixedFieldsVisitor extends _SpecificationVisitor.default {
21
+ specPath;
22
+ ignoredFields;
23
+ canSupportSpecificationExtensions = true;
24
+ specificationExtensionPredicate = _predicates.isSwaggerExtension;
25
+ constructor({
26
+ specPath,
27
+ ignoredFields,
28
+ canSupportSpecificationExtensions,
29
+ specificationExtensionPredicate,
30
+ ...rest
31
+ }) {
32
+ super({
33
+ ...rest
34
+ });
35
+ this.specPath = specPath;
36
+ this.ignoredFields = ignoredFields || [];
37
+ if (typeof canSupportSpecificationExtensions === 'boolean') {
38
+ this.canSupportSpecificationExtensions = canSupportSpecificationExtensions;
39
+ }
40
+ if (typeof specificationExtensionPredicate === 'function') {
41
+ this.specificationExtensionPredicate = specificationExtensionPredicate;
42
+ }
43
+ }
44
+ ObjectElement(objectElement) {
45
+ const specPath = this.specPath(objectElement);
46
+ const fields = this.retrieveFixedFields(specPath);
47
+
48
+ // @ts-ignore
49
+ objectElement.forEach((value, key, memberElement) => {
50
+ if ((0, _apidomCore.isStringElement)(key) && fields.includes((0, _apidomCore.toValue)(key)) && !this.ignoredFields.includes((0, _apidomCore.toValue)(key))) {
51
+ const fixedFieldElement = this.toRefractedElement([...specPath, 'fixedFields', (0, _apidomCore.toValue)(key)], value);
52
+ const newMemberElement = new _apidomCore.MemberElement((0, _apidomCore.cloneDeep)(key), fixedFieldElement);
53
+ this.copyMetaAndAttributes(memberElement, newMemberElement);
54
+ newMemberElement.classes.push('fixed-field');
55
+ this.element.content.push(newMemberElement);
56
+ } else if (this.canSupportSpecificationExtensions && this.specificationExtensionPredicate(memberElement)) {
57
+ const extensionElement = this.toRefractedElement(['document', 'extension'], memberElement);
58
+ this.element.content.push(extensionElement);
59
+ } else if (!this.ignoredFields.includes((0, _apidomCore.toValue)(key))) {
60
+ this.element.content.push((0, _apidomCore.cloneDeep)(memberElement));
61
+ }
62
+ });
63
+ this.copyMetaAndAttributes(objectElement, this.element);
64
+ return _apidomCore.BREAK;
65
+ }
66
+ }
67
+ var _default = exports.default = FixedFieldsVisitor;
@@ -0,0 +1,60 @@
1
+ import { isStringElement, MemberElement, BREAK, cloneDeep, toValue } from '@speclynx/apidom-core';
2
+ import SpecificationVisitor from "../SpecificationVisitor.mjs";
3
+ import { isSwaggerExtension } from "../../predicates.mjs";
4
+ /**
5
+ * @public
6
+ */
7
+ /**
8
+ * @public
9
+ */
10
+ /**
11
+ * @public
12
+ */
13
+ class FixedFieldsVisitor extends SpecificationVisitor {
14
+ specPath;
15
+ ignoredFields;
16
+ canSupportSpecificationExtensions = true;
17
+ specificationExtensionPredicate = isSwaggerExtension;
18
+ constructor({
19
+ specPath,
20
+ ignoredFields,
21
+ canSupportSpecificationExtensions,
22
+ specificationExtensionPredicate,
23
+ ...rest
24
+ }) {
25
+ super({
26
+ ...rest
27
+ });
28
+ this.specPath = specPath;
29
+ this.ignoredFields = ignoredFields || [];
30
+ if (typeof canSupportSpecificationExtensions === 'boolean') {
31
+ this.canSupportSpecificationExtensions = canSupportSpecificationExtensions;
32
+ }
33
+ if (typeof specificationExtensionPredicate === 'function') {
34
+ this.specificationExtensionPredicate = specificationExtensionPredicate;
35
+ }
36
+ }
37
+ ObjectElement(objectElement) {
38
+ const specPath = this.specPath(objectElement);
39
+ const fields = this.retrieveFixedFields(specPath);
40
+
41
+ // @ts-ignore
42
+ objectElement.forEach((value, key, memberElement) => {
43
+ if (isStringElement(key) && fields.includes(toValue(key)) && !this.ignoredFields.includes(toValue(key))) {
44
+ const fixedFieldElement = this.toRefractedElement([...specPath, 'fixedFields', toValue(key)], value);
45
+ const newMemberElement = new MemberElement(cloneDeep(key), fixedFieldElement);
46
+ this.copyMetaAndAttributes(memberElement, newMemberElement);
47
+ newMemberElement.classes.push('fixed-field');
48
+ this.element.content.push(newMemberElement);
49
+ } else if (this.canSupportSpecificationExtensions && this.specificationExtensionPredicate(memberElement)) {
50
+ const extensionElement = this.toRefractedElement(['document', 'extension'], memberElement);
51
+ this.element.content.push(extensionElement);
52
+ } else if (!this.ignoredFields.includes(toValue(key))) {
53
+ this.element.content.push(cloneDeep(memberElement));
54
+ }
55
+ });
56
+ this.copyMetaAndAttributes(objectElement, this.element);
57
+ return BREAK;
58
+ }
59
+ }
60
+ export default FixedFieldsVisitor;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _ramdaAdjunct = require("ramda-adjunct");
7
+ var _PatternedFieldsVisitor = _interopRequireDefault(require("./PatternedFieldsVisitor.cjs"));
8
+ /**
9
+ * @public
10
+ */
11
+
12
+ /**
13
+ * @public
14
+ */
15
+ class MapVisitor extends _PatternedFieldsVisitor.default {
16
+ constructor(options) {
17
+ super(options);
18
+ this.fieldPatternPredicate = _ramdaAdjunct.isNonEmptyString;
19
+ }
20
+ }
21
+ var _default = exports.default = MapVisitor;
@@ -0,0 +1,15 @@
1
+ import { isNonEmptyString } from 'ramda-adjunct';
2
+ import PatternedFieldsVisitor from "./PatternedFieldsVisitor.mjs";
3
+ /**
4
+ * @public
5
+ */
6
+ /**
7
+ * @public
8
+ */
9
+ class MapVisitor extends PatternedFieldsVisitor {
10
+ constructor(options) {
11
+ super(options);
12
+ this.fieldPatternPredicate = isNonEmptyString;
13
+ }
14
+ }
15
+ export default MapVisitor;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _tsMixer = require("ts-mixer");
7
+ var _ramda = require("ramda");
8
+ var _apidomCore = require("@speclynx/apidom-core");
9
+ var _FixedFieldsVisitor = _interopRequireDefault(require("./FixedFieldsVisitor.cjs"));
10
+ var _PatternedFieldsVisitor = _interopRequireDefault(require("./PatternedFieldsVisitor.cjs"));
11
+ /**
12
+ * @public
13
+ */
14
+
15
+ /**
16
+ * @public
17
+ */
18
+ class MixedFieldsVisitor extends (0, _tsMixer.Mixin)(_FixedFieldsVisitor.default, _PatternedFieldsVisitor.default) {
19
+ specPathFixedFields;
20
+ specPathPatternedFields;
21
+ constructor({
22
+ specPathFixedFields,
23
+ specPathPatternedFields,
24
+ ...rest
25
+ }) {
26
+ super({
27
+ ...rest
28
+ });
29
+ this.specPathFixedFields = specPathFixedFields;
30
+ this.specPathPatternedFields = specPathPatternedFields;
31
+ }
32
+ ObjectElement(objectElement) {
33
+ const {
34
+ specPath,
35
+ ignoredFields
36
+ } = this;
37
+ try {
38
+ this.specPath = this.specPathFixedFields;
39
+ const fixedFields = this.retrieveFixedFields(this.specPath(objectElement));
40
+ // let FixedFieldsVisitor only process fixed fields and leave rest to PatternedFieldsVisitor
41
+ // @ts-ignore
42
+ this.ignoredFields = [...ignoredFields, ...(0, _ramda.difference)(objectElement.keys(), fixedFields)];
43
+ _FixedFieldsVisitor.default.prototype.ObjectElement.call(this, objectElement);
44
+ this.specPath = this.specPathPatternedFields;
45
+ this.ignoredFields = fixedFields;
46
+ _PatternedFieldsVisitor.default.prototype.ObjectElement.call(this, objectElement);
47
+
48
+ // reorder this.element members by original objectElement keys
49
+ const objectElementKeys = objectElement.keys();
50
+ this.element.content.sort((a, b) => {
51
+ return objectElementKeys.indexOf((0, _apidomCore.toValue)(a.key)) - objectElementKeys.indexOf((0, _apidomCore.toValue)(b.key));
52
+ });
53
+ } catch (e) {
54
+ this.specPath = specPath;
55
+ throw e;
56
+ }
57
+ return _apidomCore.BREAK;
58
+ }
59
+ }
60
+ var _default = exports.default = MixedFieldsVisitor;
@@ -0,0 +1,54 @@
1
+ import { Mixin } from 'ts-mixer';
2
+ import { difference } from 'ramda';
3
+ import { BREAK, toValue } from '@speclynx/apidom-core';
4
+ import FixedFieldsVisitor from "./FixedFieldsVisitor.mjs";
5
+ import PatternedFieldsVisitor from "./PatternedFieldsVisitor.mjs";
6
+ /**
7
+ * @public
8
+ */
9
+ /**
10
+ * @public
11
+ */
12
+ class MixedFieldsVisitor extends Mixin(FixedFieldsVisitor, PatternedFieldsVisitor) {
13
+ specPathFixedFields;
14
+ specPathPatternedFields;
15
+ constructor({
16
+ specPathFixedFields,
17
+ specPathPatternedFields,
18
+ ...rest
19
+ }) {
20
+ super({
21
+ ...rest
22
+ });
23
+ this.specPathFixedFields = specPathFixedFields;
24
+ this.specPathPatternedFields = specPathPatternedFields;
25
+ }
26
+ ObjectElement(objectElement) {
27
+ const {
28
+ specPath,
29
+ ignoredFields
30
+ } = this;
31
+ try {
32
+ this.specPath = this.specPathFixedFields;
33
+ const fixedFields = this.retrieveFixedFields(this.specPath(objectElement));
34
+ // let FixedFieldsVisitor only process fixed fields and leave rest to PatternedFieldsVisitor
35
+ // @ts-ignore
36
+ this.ignoredFields = [...ignoredFields, ...difference(objectElement.keys(), fixedFields)];
37
+ FixedFieldsVisitor.prototype.ObjectElement.call(this, objectElement);
38
+ this.specPath = this.specPathPatternedFields;
39
+ this.ignoredFields = fixedFields;
40
+ PatternedFieldsVisitor.prototype.ObjectElement.call(this, objectElement);
41
+
42
+ // reorder this.element members by original objectElement keys
43
+ const objectElementKeys = objectElement.keys();
44
+ this.element.content.sort((a, b) => {
45
+ return objectElementKeys.indexOf(toValue(a.key)) - objectElementKeys.indexOf(toValue(b.key));
46
+ });
47
+ } catch (e) {
48
+ this.specPath = specPath;
49
+ throw e;
50
+ }
51
+ return BREAK;
52
+ }
53
+ }
54
+ export default MixedFieldsVisitor;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _ramda = require("ramda");
7
+ var _apidomCore = require("@speclynx/apidom-core");
8
+ var _SpecificationVisitor = _interopRequireDefault(require("../SpecificationVisitor.cjs"));
9
+ var _predicates = require("../../predicates.cjs");
10
+ /**
11
+ * @public
12
+ */
13
+
14
+ /**
15
+ * @public
16
+ */
17
+ class PatternedFieldsVisitor extends _SpecificationVisitor.default {
18
+ specPath;
19
+ ignoredFields;
20
+ fieldPatternPredicate = _ramda.F;
21
+ canSupportSpecificationExtensions = false;
22
+ specificationExtensionPredicate = _predicates.isSwaggerExtension;
23
+ constructor({
24
+ specPath,
25
+ ignoredFields,
26
+ fieldPatternPredicate,
27
+ canSupportSpecificationExtensions,
28
+ specificationExtensionPredicate,
29
+ ...rest
30
+ }) {
31
+ super({
32
+ ...rest
33
+ });
34
+ this.specPath = specPath;
35
+ this.ignoredFields = ignoredFields || [];
36
+ if (typeof fieldPatternPredicate === 'function') {
37
+ this.fieldPatternPredicate = fieldPatternPredicate;
38
+ }
39
+ if (typeof canSupportSpecificationExtensions === 'boolean') {
40
+ this.canSupportSpecificationExtensions = canSupportSpecificationExtensions;
41
+ }
42
+ if (typeof specificationExtensionPredicate === 'function') {
43
+ this.specificationExtensionPredicate = specificationExtensionPredicate;
44
+ }
45
+ }
46
+ ObjectElement(objectElement) {
47
+ // @ts-ignore
48
+ objectElement.forEach((value, key, memberElement) => {
49
+ if (this.canSupportSpecificationExtensions && this.specificationExtensionPredicate(memberElement)) {
50
+ const extensionElement = this.toRefractedElement(['document', 'extension'], memberElement);
51
+ this.element.content.push(extensionElement);
52
+ } else if (!this.ignoredFields.includes((0, _apidomCore.toValue)(key)) && this.fieldPatternPredicate((0, _apidomCore.toValue)(key))) {
53
+ const specPath = this.specPath(value);
54
+ const patternedFieldElement = this.toRefractedElement(specPath, value);
55
+ const newMemberElement = new _apidomCore.MemberElement((0, _apidomCore.cloneDeep)(key), patternedFieldElement);
56
+ this.copyMetaAndAttributes(memberElement, newMemberElement);
57
+ newMemberElement.classes.push('patterned-field');
58
+ this.element.content.push(newMemberElement);
59
+ } else if (!this.ignoredFields.includes((0, _apidomCore.toValue)(key))) {
60
+ this.element.content.push((0, _apidomCore.cloneDeep)(memberElement));
61
+ }
62
+ });
63
+ this.copyMetaAndAttributes(objectElement, this.element);
64
+ return _apidomCore.BREAK;
65
+ }
66
+ }
67
+ var _default = exports.default = PatternedFieldsVisitor;
@@ -0,0 +1,61 @@
1
+ import { F as stubFalse } from 'ramda';
2
+ import { MemberElement, BREAK, cloneDeep, toValue } from '@speclynx/apidom-core';
3
+ import SpecificationVisitor from "../SpecificationVisitor.mjs";
4
+ import { isSwaggerExtension } from "../../predicates.mjs";
5
+ /**
6
+ * @public
7
+ */
8
+ /**
9
+ * @public
10
+ */
11
+ class PatternedFieldsVisitor extends SpecificationVisitor {
12
+ specPath;
13
+ ignoredFields;
14
+ fieldPatternPredicate = stubFalse;
15
+ canSupportSpecificationExtensions = false;
16
+ specificationExtensionPredicate = isSwaggerExtension;
17
+ constructor({
18
+ specPath,
19
+ ignoredFields,
20
+ fieldPatternPredicate,
21
+ canSupportSpecificationExtensions,
22
+ specificationExtensionPredicate,
23
+ ...rest
24
+ }) {
25
+ super({
26
+ ...rest
27
+ });
28
+ this.specPath = specPath;
29
+ this.ignoredFields = ignoredFields || [];
30
+ if (typeof fieldPatternPredicate === 'function') {
31
+ this.fieldPatternPredicate = fieldPatternPredicate;
32
+ }
33
+ if (typeof canSupportSpecificationExtensions === 'boolean') {
34
+ this.canSupportSpecificationExtensions = canSupportSpecificationExtensions;
35
+ }
36
+ if (typeof specificationExtensionPredicate === 'function') {
37
+ this.specificationExtensionPredicate = specificationExtensionPredicate;
38
+ }
39
+ }
40
+ ObjectElement(objectElement) {
41
+ // @ts-ignore
42
+ objectElement.forEach((value, key, memberElement) => {
43
+ if (this.canSupportSpecificationExtensions && this.specificationExtensionPredicate(memberElement)) {
44
+ const extensionElement = this.toRefractedElement(['document', 'extension'], memberElement);
45
+ this.element.content.push(extensionElement);
46
+ } else if (!this.ignoredFields.includes(toValue(key)) && this.fieldPatternPredicate(toValue(key))) {
47
+ const specPath = this.specPath(value);
48
+ const patternedFieldElement = this.toRefractedElement(specPath, value);
49
+ const newMemberElement = new MemberElement(cloneDeep(key), patternedFieldElement);
50
+ this.copyMetaAndAttributes(memberElement, newMemberElement);
51
+ newMemberElement.classes.push('patterned-field');
52
+ this.element.content.push(newMemberElement);
53
+ } else if (!this.ignoredFields.includes(toValue(key))) {
54
+ this.element.content.push(cloneDeep(memberElement));
55
+ }
56
+ });
57
+ this.copyMetaAndAttributes(objectElement, this.element);
58
+ return BREAK;
59
+ }
60
+ }
61
+ export default PatternedFieldsVisitor;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _FallbackVisitor = _interopRequireDefault(require("../FallbackVisitor.cjs"));
7
+ /**
8
+ * @public
9
+ */
10
+ class BasePathVisitor extends _FallbackVisitor.default {
11
+ StringElement(stringElement) {
12
+ const result = super.enter(stringElement);
13
+ this.element.classes.push('swagger-base-path');
14
+ return result;
15
+ }
16
+ }
17
+ var _default = exports.default = BasePathVisitor;
@@ -0,0 +1,12 @@
1
+ import FallbackVisitor from "../FallbackVisitor.mjs";
2
+ /**
3
+ * @public
4
+ */
5
+ class BasePathVisitor extends FallbackVisitor {
6
+ StringElement(stringElement) {
7
+ const result = super.enter(stringElement);
8
+ this.element.classes.push('swagger-base-path');
9
+ return result;
10
+ }
11
+ }
12
+ export default BasePathVisitor;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _apidomCore = require("@speclynx/apidom-core");
7
+ var _SwaggerConsumes = _interopRequireDefault(require("../../../elements/nces/SwaggerConsumes.cjs"));
8
+ var _FallbackVisitor = _interopRequireDefault(require("../FallbackVisitor.cjs"));
9
+ /**
10
+ * @public
11
+ */
12
+ class ConsumesVisitor extends _FallbackVisitor.default {
13
+ constructor(options) {
14
+ super(options);
15
+ this.element = new _SwaggerConsumes.default();
16
+ }
17
+ ArrayElement(arrayElement) {
18
+ this.element = this.element.concat((0, _apidomCore.cloneDeep)(arrayElement));
19
+ return _apidomCore.BREAK;
20
+ }
21
+ }
22
+ var _default = exports.default = ConsumesVisitor;