swagger-client 3.27.9 → 3.28.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 (32) hide show
  1. package/dist/swagger-client.browser.js +12494 -12585
  2. package/dist/swagger-client.browser.min.js +1 -1
  3. package/dist/swagger-client.browser.min.js.map +1 -1
  4. package/es/index.js +2 -2
  5. package/es/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/index.js +81 -119
  6. package/es/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/visitors/all-of.js +66 -69
  7. package/es/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/visitors/dereference.js +569 -588
  8. package/es/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/visitors/parameters.js +31 -34
  9. package/es/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/visitors/properties.js +25 -28
  10. package/es/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/visitors/root.js +45 -0
  11. package/es/resolver/apidom/reference/parse/parsers/json/index.js +43 -42
  12. package/es/resolver/apidom/reference/parse/parsers/openapi-json-3-1/index.js +46 -45
  13. package/es/resolver/apidom/reference/parse/parsers/openapi-yaml-3-1/index.js +46 -45
  14. package/es/resolver/apidom/reference/parse/parsers/yaml-1-2/index.js +44 -43
  15. package/es/resolver/apidom/reference/resolve/resolvers/http-swagger-client/index.js +62 -60
  16. package/es/resolver/strategies/openapi-3-1-apidom/resolve.js +18 -18
  17. package/lib/index.js +1 -1
  18. package/lib/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/index.js +79 -117
  19. package/lib/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/visitors/all-of.js +66 -69
  20. package/lib/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/visitors/dereference.js +568 -587
  21. package/lib/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/visitors/parameters.js +31 -34
  22. package/lib/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/visitors/properties.js +25 -28
  23. package/lib/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/visitors/root.js +51 -0
  24. package/lib/resolver/apidom/reference/parse/parsers/json/index.js +43 -42
  25. package/lib/resolver/apidom/reference/parse/parsers/openapi-json-3-1/index.js +46 -45
  26. package/lib/resolver/apidom/reference/parse/parsers/openapi-yaml-3-1/index.js +46 -45
  27. package/lib/resolver/apidom/reference/parse/parsers/yaml-1-2/index.js +44 -43
  28. package/lib/resolver/apidom/reference/resolve/resolvers/http-swagger-client/index.js +61 -59
  29. package/lib/resolver/strategies/openapi-3-1-apidom/resolve.js +11 -11
  30. package/package.json +23 -22
  31. package/es/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/utils/compose.js +0 -5
  32. package/lib/resolver/apidom/reference/dereference/strategies/openapi-3-1-swagger-client/utils/compose.js +0 -11
package/es/index.js CHANGED
@@ -12,7 +12,7 @@ import { makeApisTagOperation } from './interfaces.js';
12
12
  import { execute, buildRequest, baseUrl } from './execute/index.js';
13
13
  import { opId, isHttpUrl } from './helpers/index.js';
14
14
  import { isOpenAPI2, isOpenAPI3 } from './helpers/openapi-predicates.js';
15
- import HttpResolverSwaggerClient from './resolver/apidom/reference/resolve/resolvers/http-swagger-client/index.js';
15
+ import HTTPResolverSwaggerClient from './resolver/apidom/reference/resolve/resolvers/http-swagger-client/index.js';
16
16
  import JsonParser from './resolver/apidom/reference/parse/parsers/json/index.js';
17
17
  import YamlParser from './resolver/apidom/reference/parse/parsers/yaml-1-2/index.js';
18
18
  import OpenApiJson3_1Parser from './resolver/apidom/reference/parse/parsers/openapi-json-3-1/index.js';
@@ -45,7 +45,7 @@ Swagger.getBaseUrl = baseUrl;
45
45
  Swagger.apidom = {
46
46
  resolve: {
47
47
  resolvers: {
48
- HttpResolverSwaggerClient
48
+ HTTPResolverSwaggerClient
49
49
  }
50
50
  },
51
51
  parse: {
@@ -1,137 +1,99 @@
1
1
  /* eslint-disable camelcase */
2
- import { createNamespace, visit, mergeAllVisitors, cloneDeep } from '@swagger-api/apidom-core';
2
+ import { createNamespace, visit, cloneDeep } from '@swagger-api/apidom-core';
3
3
  import { ReferenceSet, Reference } from '@swagger-api/apidom-reference/configuration/empty';
4
- import OpenApi3_1DereferenceStrategy from '@swagger-api/apidom-reference/dereference/strategies/openapi-3-1';
4
+ import OpenAPI3_1DereferenceStrategy from '@swagger-api/apidom-reference/dereference/strategies/openapi-3-1';
5
5
  import openApi3_1Namespace, { getNodeType, keyMap } from '@swagger-api/apidom-ns-openapi-3-1';
6
- import OpenApi3_1SwaggerClientDereferenceVisitor from './visitors/dereference.js';
7
- import ParameterMacroVisitor from './visitors/parameters.js';
8
- import ModelPropertyMacroVisitor from './visitors/properties.js';
9
- import AllOfVisitor from './visitors/all-of.js';
6
+ import RootVisitor from './visitors/root.js';
10
7
  const visitAsync = visit[Symbol.for('nodejs.util.promisify.custom')];
11
- const mergeAllVisitorsAsync = mergeAllVisitors[Symbol.for('nodejs.util.promisify.custom')];
12
- const OpenApi3_1SwaggerClientDereferenceStrategy = OpenApi3_1DereferenceStrategy.compose({
13
- props: {
14
- allowMetaPatches: false,
15
- parameterMacro: null,
16
- modelPropertyMacro: null,
17
- mode: 'non-strict',
18
- ancestors: null
19
- },
20
- init({
21
- allowMetaPatches = this.allowMetaPatches,
22
- parameterMacro = this.parameterMacro,
23
- modelPropertyMacro = this.modelPropertyMacro,
24
- mode = this.mode,
25
- ancestors = []
8
+ class OpenAPI3_1SwaggerClientDereferenceStrategy extends OpenAPI3_1DereferenceStrategy {
9
+ allowMetaPatches;
10
+ parameterMacro;
11
+ modelPropertyMacro;
12
+ mode;
13
+ ancestors;
14
+ constructor({
15
+ allowMetaPatches = false,
16
+ parameterMacro = null,
17
+ modelPropertyMacro = null,
18
+ mode = 'non-strict',
19
+ ancestors = [],
20
+ ...rest
26
21
  } = {}) {
22
+ super({
23
+ ...rest
24
+ });
27
25
  this.name = 'openapi-3-1-swagger-client';
28
26
  this.allowMetaPatches = allowMetaPatches;
29
27
  this.parameterMacro = parameterMacro;
30
28
  this.modelPropertyMacro = modelPropertyMacro;
31
29
  this.mode = mode;
32
30
  this.ancestors = [...ancestors];
33
- },
34
- methods: {
35
- async dereference(file, options) {
36
- var _options$dereference$;
37
- const visitors = [];
38
- const namespace = createNamespace(openApi3_1Namespace);
39
- const immutableRefSet = (_options$dereference$ = options.dereference.refSet) !== null && _options$dereference$ !== void 0 ? _options$dereference$ : ReferenceSet();
40
- const mutableRefsSet = ReferenceSet();
41
- let refSet = immutableRefSet;
42
- let reference;
43
- if (!immutableRefSet.has(file.uri)) {
44
- reference = Reference({
45
- uri: file.uri,
46
- value: file.parseResult
47
- });
48
- immutableRefSet.add(reference);
49
- } else {
50
- // pre-computed refSet was provided as configuration option
51
- reference = immutableRefSet.find(ref => ref.uri === file.uri);
52
- }
53
-
54
- /**
55
- * Clone refSet due the dereferencing process being mutable.
56
- * We don't want to mutate the original refSet and the references.
57
- */
58
- if (options.dereference.immutable) {
59
- immutableRefSet.refs.map(ref => Reference({
60
- ...ref,
61
- value: cloneDeep(ref.value)
62
- })).forEach(ref => mutableRefsSet.add(ref));
63
- reference = mutableRefsSet.find(ref => ref.uri === file.uri);
64
- refSet = mutableRefsSet;
65
- }
66
-
67
- // create main dereference visitor
68
- const dereferenceVisitor = OpenApi3_1SwaggerClientDereferenceVisitor({
69
- reference,
70
- namespace,
71
- options,
72
- allowMetaPatches: this.allowMetaPatches,
73
- ancestors: this.ancestors
31
+ }
32
+ async dereference(file, options) {
33
+ var _options$dereference$;
34
+ const namespace = createNamespace(openApi3_1Namespace);
35
+ const immutableRefSet = (_options$dereference$ = options.dereference.refSet) !== null && _options$dereference$ !== void 0 ? _options$dereference$ : new ReferenceSet();
36
+ const mutableRefsSet = new ReferenceSet();
37
+ let refSet = immutableRefSet;
38
+ let reference;
39
+ if (!immutableRefSet.has(file.uri)) {
40
+ reference = new Reference({
41
+ uri: file.uri,
42
+ value: file.parseResult
74
43
  });
75
- visitors.push(dereferenceVisitor);
76
-
77
- // create parameter macro visitor (if necessary)
78
- if (typeof this.parameterMacro === 'function') {
79
- const parameterMacroVisitor = ParameterMacroVisitor({
80
- parameterMacro: this.parameterMacro,
81
- options
82
- });
83
- visitors.push(parameterMacroVisitor);
84
- }
85
-
86
- // create model property macro visitor (if necessary)
87
- if (typeof this.modelPropertyMacro === 'function') {
88
- const modelPropertyMacroVisitor = ModelPropertyMacroVisitor({
89
- modelPropertyMacro: this.modelPropertyMacro,
90
- options
91
- });
92
- visitors.push(modelPropertyMacroVisitor);
93
- }
94
-
95
- // create allOf visitor (if necessary)
96
- if (this.mode !== 'strict') {
97
- const allOfVisitor = AllOfVisitor({
98
- options
99
- });
100
- visitors.push(allOfVisitor);
101
- }
44
+ immutableRefSet.add(reference);
45
+ } else {
46
+ // pre-computed refSet was provided as configuration option
47
+ reference = immutableRefSet.find(ref => ref.uri === file.uri);
48
+ }
102
49
 
103
- // establish root visitor by visitor merging
104
- const rootVisitor = mergeAllVisitorsAsync(visitors, {
105
- nodeTypeGetter: getNodeType
106
- });
107
- const dereferencedElement = await visitAsync(refSet.rootRef.value, rootVisitor, {
108
- keyMap,
109
- nodeTypeGetter: getNodeType
110
- });
50
+ /**
51
+ * Clone refSet due the dereferencing process being mutable.
52
+ * We don't want to mutate the original refSet and the references.
53
+ */
54
+ if (options.dereference.immutable) {
55
+ immutableRefSet.refs.map(ref => new Reference({
56
+ ...ref,
57
+ value: cloneDeep(ref.value)
58
+ })).forEach(ref => mutableRefsSet.add(ref));
59
+ reference = mutableRefsSet.find(ref => ref.uri === file.uri);
60
+ refSet = mutableRefsSet;
61
+ }
62
+ const rootVisitor = new RootVisitor({
63
+ reference,
64
+ namespace,
65
+ options,
66
+ allowMetaPatches: this.allowMetaPatches,
67
+ ancestors: this.ancestors,
68
+ modelPropertyMacro: this.modelPropertyMacro,
69
+ mode: this.mode,
70
+ parameterMacro: this.parameterMacro
71
+ });
72
+ const dereferencedElement = await visitAsync(refSet.rootRef.value, rootVisitor, {
73
+ keyMap,
74
+ nodeTypeGetter: getNodeType
75
+ });
111
76
 
112
- /**
113
- * If immutable option is set, replay refs from the refSet.
114
- */
115
- if (options.dereference.immutable) {
116
- mutableRefsSet.refs.filter(ref => ref.uri.startsWith('immutable://')).map(ref => Reference({
117
- ...ref,
118
- uri: ref.uri.replace(/^immutable:\/\//, '')
119
- })).forEach(ref => immutableRefSet.add(ref));
120
- reference = immutableRefSet.find(ref => ref.uri === file.uri);
121
- refSet = immutableRefSet;
122
- }
77
+ /**
78
+ * If immutable option is set, replay refs from the refSet.
79
+ */
80
+ if (options.dereference.immutable) {
81
+ mutableRefsSet.refs.filter(ref => ref.uri.startsWith('immutable://')).map(ref => new Reference({
82
+ ...ref,
83
+ uri: ref.uri.replace(/^immutable:\/\//, '')
84
+ })).forEach(ref => immutableRefSet.add(ref));
85
+ }
123
86
 
124
- /**
125
- * Release all memory if this refSet was not provided as an configuration option.
126
- * If provided as configuration option, then provider is responsible for cleanup.
127
- */
128
- if (options.dereference.refSet === null) {
129
- immutableRefSet.clean();
130
- }
131
- mutableRefsSet.clean();
132
- return dereferencedElement;
87
+ /**
88
+ * Release all memory if this refSet was not provided as an configuration option.
89
+ * If provided as configuration option, then provider is responsible for cleanup.
90
+ */
91
+ if (options.dereference.refSet === null) {
92
+ immutableRefSet.clean();
133
93
  }
94
+ mutableRefsSet.clean();
95
+ return dereferencedElement;
134
96
  }
135
- });
136
- export default OpenApi3_1SwaggerClientDereferenceStrategy;
97
+ }
98
+ export default OpenAPI3_1SwaggerClientDereferenceStrategy;
137
99
  /* eslint-enable camelcase */
@@ -1,85 +1,82 @@
1
1
  import { isArrayElement, deepmerge } from '@swagger-api/apidom-core';
2
2
  import { isSchemaElement } from '@swagger-api/apidom-ns-openapi-3-1';
3
- import compose from '../utils/compose.js';
4
3
  import toPath from '../utils/to-path.js';
5
- const AllOfVisitor = compose({
6
- init({
7
- options
8
- }) {
9
- this.options = options;
10
- },
11
- props: {
12
- options: null,
13
- SchemaElement: {
14
- leave(schemaElement, key, parent, path, ancestors) {
15
- // do nothing
16
- if (typeof schemaElement.allOf === 'undefined') return undefined;
4
+ class AllOfVisitor {
5
+ options;
6
+ SchemaElement = {
7
+ leave(schemaElement, key, parent, path, ancestors) {
8
+ // do nothing
9
+ if (typeof schemaElement.allOf === 'undefined') return undefined;
17
10
 
18
- // collect error and return if allOf keyword is not an array
19
- if (!isArrayElement(schemaElement.allOf)) {
20
- var _this$options$derefer, _this$options$derefer2;
21
- const error = new TypeError('allOf must be an array');
22
- error.fullPath = [...toPath([...ancestors, parent, schemaElement]), 'allOf'];
23
- (_this$options$derefer = this.options.dereference.dereferenceOpts) === null || _this$options$derefer === void 0 || (_this$options$derefer = _this$options$derefer.errors) === null || _this$options$derefer === void 0 || (_this$options$derefer2 = _this$options$derefer.push) === null || _this$options$derefer2 === void 0 || _this$options$derefer2.call(_this$options$derefer, error);
24
- return undefined;
25
- }
11
+ // collect error and return if allOf keyword is not an array
12
+ if (!isArrayElement(schemaElement.allOf)) {
13
+ var _this$options$derefer, _this$options$derefer2;
14
+ const error = new TypeError('allOf must be an array');
15
+ error.fullPath = [...toPath([...ancestors, parent, schemaElement]), 'allOf'];
16
+ (_this$options$derefer = this.options.dereference.dereferenceOpts) === null || _this$options$derefer === void 0 || (_this$options$derefer = _this$options$derefer.errors) === null || _this$options$derefer === void 0 || (_this$options$derefer2 = _this$options$derefer.push) === null || _this$options$derefer2 === void 0 || _this$options$derefer2.call(_this$options$derefer, error);
17
+ return undefined;
18
+ }
26
19
 
27
- // remove allOf keyword if empty
28
- if (schemaElement.allOf.isEmpty) {
29
- schemaElement.remove('allOf');
30
- return undefined;
31
- }
20
+ // remove allOf keyword if empty
21
+ if (schemaElement.allOf.isEmpty) {
22
+ schemaElement.remove('allOf');
23
+ return undefined;
24
+ }
32
25
 
33
- // collect errors if allOf keyword contains anything else than Schema Object
34
- const includesSchemaElementOnly = schemaElement.allOf.content.every(isSchemaElement);
35
- if (!includesSchemaElementOnly) {
36
- var _this$options$derefer3, _this$options$derefer4;
37
- const error = new TypeError('Elements in allOf must be objects');
38
- error.fullPath = [...toPath([...ancestors, parent, schemaElement]), 'allOf'];
39
- (_this$options$derefer3 = this.options.dereference.dereferenceOpts) === null || _this$options$derefer3 === void 0 || (_this$options$derefer3 = _this$options$derefer3.errors) === null || _this$options$derefer3 === void 0 || (_this$options$derefer4 = _this$options$derefer3.push) === null || _this$options$derefer4 === void 0 || _this$options$derefer4.call(_this$options$derefer3, error);
40
- return undefined;
41
- }
42
- while (schemaElement.hasKey('allOf')) {
43
- const {
44
- allOf
45
- } = schemaElement;
46
- schemaElement.remove('allOf');
47
- const allOfMerged = deepmerge.all([...allOf.content, schemaElement]);
26
+ // collect errors if allOf keyword contains anything else than Schema Object
27
+ const includesSchemaElementOnly = schemaElement.allOf.content.every(isSchemaElement);
28
+ if (!includesSchemaElementOnly) {
29
+ var _this$options$derefer3, _this$options$derefer4;
30
+ const error = new TypeError('Elements in allOf must be objects');
31
+ error.fullPath = [...toPath([...ancestors, parent, schemaElement]), 'allOf'];
32
+ (_this$options$derefer3 = this.options.dereference.dereferenceOpts) === null || _this$options$derefer3 === void 0 || (_this$options$derefer3 = _this$options$derefer3.errors) === null || _this$options$derefer3 === void 0 || (_this$options$derefer4 = _this$options$derefer3.push) === null || _this$options$derefer4 === void 0 || _this$options$derefer4.call(_this$options$derefer3, error);
33
+ return undefined;
34
+ }
35
+ while (schemaElement.hasKey('allOf')) {
36
+ const {
37
+ allOf
38
+ } = schemaElement;
39
+ schemaElement.remove('allOf');
40
+ const allOfMerged = deepmerge.all([...allOf.content, schemaElement]);
48
41
 
49
- /**
50
- * If there was not an original $$ref value, make sure to remove
51
- * any $$ref value that may exist from the result of `allOf` merges.
52
- */
53
- if (!schemaElement.hasKey('$$ref')) {
54
- allOfMerged.remove('$$ref');
55
- }
42
+ /**
43
+ * If there was not an original $$ref value, make sure to remove
44
+ * any $$ref value that may exist from the result of `allOf` merges.
45
+ */
46
+ if (!schemaElement.hasKey('$$ref')) {
47
+ allOfMerged.remove('$$ref');
48
+ }
56
49
 
57
- /**
58
- * If there was an example keyword in the original schema,
59
- * keep it instead of merging with example from other schema.
60
- */
61
- if (schemaElement.hasKey('example')) {
62
- const member = allOfMerged.getMember('example');
63
- if (member) {
64
- member.value = schemaElement.get('example');
65
- }
50
+ /**
51
+ * If there was an example keyword in the original schema,
52
+ * keep it instead of merging with example from other schema.
53
+ */
54
+ if (schemaElement.hasKey('example')) {
55
+ const member = allOfMerged.getMember('example');
56
+ if (member) {
57
+ member.value = schemaElement.get('example');
66
58
  }
59
+ }
67
60
 
68
- /**
69
- * If there was an examples keyword in the original schema,
70
- * keep it instead of merging with examples from other schema.
71
- */
72
- if (schemaElement.hasKey('examples')) {
73
- const member = allOfMerged.getMember('examples');
74
- if (member) {
75
- member.value = schemaElement.get('examples');
76
- }
61
+ /**
62
+ * If there was an examples keyword in the original schema,
63
+ * keep it instead of merging with examples from other schema.
64
+ */
65
+ if (schemaElement.hasKey('examples')) {
66
+ const member = allOfMerged.getMember('examples');
67
+ if (member) {
68
+ member.value = schemaElement.get('examples');
77
69
  }
78
- schemaElement.content = allOfMerged.content;
79
70
  }
80
- return undefined;
71
+ schemaElement.content = allOfMerged.content;
81
72
  }
73
+ return undefined;
82
74
  }
75
+ };
76
+ constructor({
77
+ options
78
+ }) {
79
+ this.options = options;
83
80
  }
84
- });
81
+ }
85
82
  export default AllOfVisitor;