swagger-client 3.36.2 → 3.37.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 (37) hide show
  1. package/README.md +8 -7
  2. package/dist/swagger-client.browser.js +29435 -21476
  3. package/dist/swagger-client.browser.min.js +1 -1
  4. package/dist/swagger-client.browser.min.js.map +1 -1
  5. package/es/helpers/openapi-predicates.js +11 -1
  6. package/es/index.js +12 -4
  7. package/es/resolver/apidom/reference/dereference/strategies/openapi-3-2-swagger-client/errors/SchemaRefError.js +3 -0
  8. package/es/resolver/apidom/reference/dereference/strategies/openapi-3-2-swagger-client/index.js +99 -0
  9. package/es/resolver/apidom/reference/dereference/strategies/openapi-3-2-swagger-client/utils/get-root-cause.js +17 -0
  10. package/es/resolver/apidom/reference/dereference/strategies/openapi-3-2-swagger-client/utils/to-path.js +23 -0
  11. package/es/resolver/apidom/reference/dereference/strategies/openapi-3-2-swagger-client/visitors/all-of.js +103 -0
  12. package/es/resolver/apidom/reference/dereference/strategies/openapi-3-2-swagger-client/visitors/dereference.js +677 -0
  13. package/es/resolver/apidom/reference/dereference/strategies/openapi-3-2-swagger-client/visitors/parameters.js +40 -0
  14. package/es/resolver/apidom/reference/dereference/strategies/openapi-3-2-swagger-client/visitors/properties.js +34 -0
  15. package/es/resolver/apidom/reference/dereference/strategies/openapi-3-2-swagger-client/visitors/root.js +45 -0
  16. package/es/resolver/apidom/reference/parse/parsers/openapi-json-3-2/index.js +55 -0
  17. package/es/resolver/apidom/reference/parse/parsers/openapi-yaml-3-2/index.js +56 -0
  18. package/es/resolver/strategies/openapi-3-2-apidom/index.js +28 -0
  19. package/es/resolver/strategies/openapi-3-2-apidom/normalize.js +44 -0
  20. package/es/resolver/strategies/openapi-3-2-apidom/resolve.js +161 -0
  21. package/lib/helpers/openapi-predicates.js +13 -2
  22. package/lib/index.js +29 -21
  23. package/lib/resolver/apidom/reference/dereference/strategies/openapi-3-2-swagger-client/errors/SchemaRefError.js +7 -0
  24. package/lib/resolver/apidom/reference/dereference/strategies/openapi-3-2-swagger-client/index.js +106 -0
  25. package/lib/resolver/apidom/reference/dereference/strategies/openapi-3-2-swagger-client/utils/get-root-cause.js +21 -0
  26. package/lib/resolver/apidom/reference/dereference/strategies/openapi-3-2-swagger-client/utils/to-path.js +27 -0
  27. package/lib/resolver/apidom/reference/dereference/strategies/openapi-3-2-swagger-client/visitors/all-of.js +108 -0
  28. package/lib/resolver/apidom/reference/dereference/strategies/openapi-3-2-swagger-client/visitors/dereference.js +683 -0
  29. package/lib/resolver/apidom/reference/dereference/strategies/openapi-3-2-swagger-client/visitors/parameters.js +45 -0
  30. package/lib/resolver/apidom/reference/dereference/strategies/openapi-3-2-swagger-client/visitors/properties.js +39 -0
  31. package/lib/resolver/apidom/reference/dereference/strategies/openapi-3-2-swagger-client/visitors/root.js +51 -0
  32. package/lib/resolver/apidom/reference/parse/parsers/openapi-json-3-2/index.js +60 -0
  33. package/lib/resolver/apidom/reference/parse/parsers/openapi-yaml-3-2/index.js +62 -0
  34. package/lib/resolver/strategies/openapi-3-2-apidom/index.js +34 -0
  35. package/lib/resolver/strategies/openapi-3-2-apidom/normalize.js +51 -0
  36. package/lib/resolver/strategies/openapi-3-2-apidom/resolve.js +169 -0
  37. package/package.json +32 -29
@@ -0,0 +1,45 @@
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("@swagger-api/apidom-core");
7
+ var _toPath = _interopRequireDefault(require("../utils/to-path.js"));
8
+ class ParameterMacroVisitor {
9
+ parameterMacro;
10
+ options;
11
+ #macroOperation;
12
+ OperationElement = {
13
+ enter: operationElement => {
14
+ this.#macroOperation = operationElement;
15
+ },
16
+ leave: () => {
17
+ this.#macroOperation = undefined;
18
+ }
19
+ };
20
+ ParameterElement = {
21
+ leave: (parameterElement, key, parent, path, ancestors) => {
22
+ const pojoOperation = this.#macroOperation ? (0, _apidomCore.toValue)(this.#macroOperation) : null;
23
+ const pojoParameter = (0, _apidomCore.toValue)(parameterElement);
24
+ try {
25
+ const macroValue = this.parameterMacro(pojoOperation, pojoParameter);
26
+ parameterElement.set('default', macroValue);
27
+ } catch (error) {
28
+ var _this$options$derefer;
29
+ const macroError = new Error(error, {
30
+ cause: error
31
+ });
32
+ macroError.fullPath = (0, _toPath.default)([...ancestors, parent]);
33
+ (_this$options$derefer = this.options.dereference.dereferenceOpts) == null || (_this$options$derefer = _this$options$derefer.errors) == null || _this$options$derefer.push == null || _this$options$derefer.push(macroError);
34
+ }
35
+ }
36
+ };
37
+ constructor({
38
+ parameterMacro,
39
+ options
40
+ }) {
41
+ this.parameterMacro = parameterMacro;
42
+ this.options = options;
43
+ }
44
+ }
45
+ var _default = exports.default = ParameterMacroVisitor;
@@ -0,0 +1,39 @@
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("@swagger-api/apidom-core");
7
+ var _toPath = _interopRequireDefault(require("../utils/to-path.js"));
8
+ class ModelPropertyMacroVisitor {
9
+ modelPropertyMacro;
10
+ options;
11
+ SchemaElement = {
12
+ leave: (schemaElement, key, parent, path, ancestors) => {
13
+ if (typeof schemaElement.properties === 'undefined') return;
14
+ if (!(0, _apidomCore.isObjectElement)(schemaElement.properties)) return;
15
+ schemaElement.properties.forEach(property => {
16
+ if (!(0, _apidomCore.isObjectElement)(property)) return;
17
+ try {
18
+ const macroValue = this.modelPropertyMacro((0, _apidomCore.toValue)(property));
19
+ property.set('default', macroValue);
20
+ } catch (error) {
21
+ var _this$options$derefer;
22
+ const macroError = new Error(error, {
23
+ cause: error
24
+ });
25
+ macroError.fullPath = [...(0, _toPath.default)([...ancestors, parent, schemaElement]), 'properties'];
26
+ (_this$options$derefer = this.options.dereference.dereferenceOpts) == null || (_this$options$derefer = _this$options$derefer.errors) == null || _this$options$derefer.push == null || _this$options$derefer.push(macroError);
27
+ }
28
+ });
29
+ }
30
+ };
31
+ constructor({
32
+ modelPropertyMacro,
33
+ options
34
+ }) {
35
+ this.modelPropertyMacro = modelPropertyMacro;
36
+ this.options = options;
37
+ }
38
+ }
39
+ var _default = exports.default = ModelPropertyMacroVisitor;
@@ -0,0 +1,51 @@
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("@swagger-api/apidom-core");
7
+ var _apidomNsOpenapi = require("@swagger-api/apidom-ns-openapi-3-2");
8
+ var _properties = _interopRequireDefault(require("./properties.js"));
9
+ var _allOf = _interopRequireDefault(require("./all-of.js"));
10
+ var _parameters = _interopRequireDefault(require("./parameters.js"));
11
+ var _dereference = _interopRequireDefault(require("./dereference.js"));
12
+ // eslint-disable-line camelcase
13
+
14
+ const mergeAllVisitorsAsync = _apidomCore.mergeAllVisitors[Symbol.for('nodejs.util.promisify.custom')];
15
+ class RootVisitor {
16
+ constructor({
17
+ parameterMacro,
18
+ modelPropertyMacro,
19
+ mode,
20
+ options,
21
+ ...rest
22
+ }) {
23
+ const visitors = [];
24
+ visitors.push(new _dereference.default({
25
+ ...rest,
26
+ options
27
+ }));
28
+ if (typeof modelPropertyMacro === 'function') {
29
+ visitors.push(new _properties.default({
30
+ modelPropertyMacro,
31
+ options
32
+ }));
33
+ }
34
+ if (mode !== 'strict') {
35
+ visitors.push(new _allOf.default({
36
+ options
37
+ }));
38
+ }
39
+ if (typeof parameterMacro === 'function') {
40
+ visitors.push(new _parameters.default({
41
+ parameterMacro,
42
+ options
43
+ }));
44
+ }
45
+ const mergedVisitor = mergeAllVisitorsAsync(visitors, {
46
+ nodeTypeGetter: _apidomNsOpenapi.getNodeType
47
+ });
48
+ Object.assign(this, mergedVisitor);
49
+ }
50
+ }
51
+ var _default = exports.default = RootVisitor;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+ var _apidomCore = require("@swagger-api/apidom-core");
6
+ var _empty = require("@swagger-api/apidom-reference/configuration/empty");
7
+ var _apidomNsOpenapi = require("@swagger-api/apidom-ns-openapi-3-2");
8
+ /* eslint-disable camelcase */
9
+
10
+ class OpenAPIJSON3_2Parser extends _empty.Parser {
11
+ detectionRegExp = /"openapi"\s*:\s*"(?<version_json>3\.2\.(?:[1-9]\d*|0))"/;
12
+ constructor(options = {}) {
13
+ super({
14
+ name: 'openapi-json-3-2-swagger-client',
15
+ mediaTypes: new _apidomNsOpenapi.OpenAPIMediaTypes(..._apidomNsOpenapi.mediaTypes.filterByFormat('generic'), ..._apidomNsOpenapi.mediaTypes.filterByFormat('json')),
16
+ ...options
17
+ });
18
+ }
19
+ async canParse(file) {
20
+ const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
21
+ const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
22
+ if (!hasSupportedFileExtension) return false;
23
+ if (hasSupportedMediaType) return true;
24
+ if (!hasSupportedMediaType) {
25
+ try {
26
+ const source = file.toString();
27
+ JSON.parse(source);
28
+ return this.detectionRegExp.test(source);
29
+ } catch (error) {
30
+ return false;
31
+ }
32
+ }
33
+ return false;
34
+ }
35
+ async parse(file) {
36
+ if (this.sourceMap) {
37
+ throw new _empty.ParserError("openapi-json-3-2-swagger-client parser plugin doesn't support sourceMaps option");
38
+ }
39
+ const parseResultElement = new _apidomCore.ParseResultElement();
40
+ const source = file.toString();
41
+
42
+ // allow empty files
43
+ if (this.allowEmpty && source.trim() === '') {
44
+ return parseResultElement;
45
+ }
46
+ try {
47
+ const pojo = JSON.parse(source);
48
+ const element = _apidomNsOpenapi.OpenApi3_2Element.refract(pojo, this.refractorOpts);
49
+ element.classes.push('result');
50
+ parseResultElement.push(element);
51
+ return parseResultElement;
52
+ } catch (error) {
53
+ throw new _empty.ParserError(`Error parsing "${file.uri}"`, {
54
+ cause: error
55
+ });
56
+ }
57
+ }
58
+ }
59
+ var _default = exports.default = OpenAPIJSON3_2Parser;
60
+ /* eslint-enable camelcase */
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard").default;
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _jsYaml = _interopRequireWildcard(require("js-yaml"));
7
+ var _apidomCore = require("@swagger-api/apidom-core");
8
+ var _empty = require("@swagger-api/apidom-reference/configuration/empty");
9
+ var _apidomNsOpenapi = require("@swagger-api/apidom-ns-openapi-3-2");
10
+ /* eslint-disable camelcase */
11
+
12
+ class OpenAPIYAML32Parser extends _empty.Parser {
13
+ detectionRegExp = /(?<YAML>^(["']?)openapi\2\s*:\s*(["']?)(?<version_yaml>3\.2\.(?:[1-9]\d*|0))\3(?:\s+|$))|(?<JSON>"openapi"\s*:\s*"(?<version_json>3\.2\.(?:[1-9]\d*|0))")/m;
14
+ constructor(options = {}) {
15
+ super({
16
+ name: 'openapi-yaml-3-2-swagger-client',
17
+ mediaTypes: new _apidomNsOpenapi.OpenAPIMediaTypes(..._apidomNsOpenapi.mediaTypes.filterByFormat('generic'), ..._apidomNsOpenapi.mediaTypes.filterByFormat('yaml')),
18
+ ...options
19
+ });
20
+ }
21
+ async canParse(file) {
22
+ const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
23
+ const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
24
+ if (!hasSupportedFileExtension) return false;
25
+ if (hasSupportedMediaType) return true;
26
+ if (!hasSupportedMediaType) {
27
+ try {
28
+ const source = file.toString();
29
+ _jsYaml.default.load(source);
30
+ return this.detectionRegExp.test(source);
31
+ } catch (error) {
32
+ return false;
33
+ }
34
+ }
35
+ return false;
36
+ }
37
+ async parse(file) {
38
+ if (this.sourceMap) {
39
+ throw new _empty.ParserError("openapi-yaml-3-2-swagger-client parser plugin doesn't support sourceMaps option");
40
+ }
41
+ const parseResultElement = new _apidomCore.ParseResultElement();
42
+ const source = file.toString();
43
+ try {
44
+ const pojo = _jsYaml.default.load(source, {
45
+ schema: _jsYaml.JSON_SCHEMA
46
+ });
47
+ if (this.allowEmpty && typeof pojo === 'undefined') {
48
+ return parseResultElement;
49
+ }
50
+ const element = _apidomNsOpenapi.OpenApi3_2Element.refract(pojo, this.refractorOpts);
51
+ element.classes.push('result');
52
+ parseResultElement.push(element);
53
+ return parseResultElement;
54
+ } catch (error) {
55
+ throw new _empty.ParserError(`Error parsing "${file.uri}"`, {
56
+ cause: error
57
+ });
58
+ }
59
+ }
60
+ }
61
+ var _default = exports.default = OpenAPIYAML32Parser;
62
+ /* eslint-enable camelcase */
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+ var _ramdaAdjunct = require("ramda-adjunct");
8
+ var _apidomCore = require("@swagger-api/apidom-core");
9
+ var _resolve = _interopRequireDefault(require("./resolve.js"));
10
+ var _normalize = _interopRequireWildcard(require("./normalize.js"));
11
+ var _openapiPredicates = require("../../../helpers/openapi-predicates.js");
12
+ const openApi32ApiDOMStrategy = {
13
+ name: 'openapi-3-2-apidom',
14
+ match(spec) {
15
+ return (0, _openapiPredicates.isOpenAPI32)(spec);
16
+ },
17
+ normalize(spec) {
18
+ // pre-normalization - happens only once before the first lazy dereferencing and in JavaScript context
19
+ if (!(0, _apidomCore.isElement)(spec) && (0, _ramdaAdjunct.isPlainObject)(spec) && !spec.$$normalized) {
20
+ const preNormalized = (0, _normalize.pojoAdapter)(_normalize.default)(spec);
21
+ preNormalized.$$normalized = true;
22
+ return preNormalized;
23
+ }
24
+ // post-normalization - happens after each dereferencing and in ApiDOM context
25
+ if ((0, _apidomCore.isElement)(spec)) {
26
+ return (0, _normalize.default)(spec);
27
+ }
28
+ return spec;
29
+ },
30
+ async resolve(options) {
31
+ return (0, _resolve.default)(options);
32
+ }
33
+ };
34
+ var _default = exports.default = openApi32ApiDOMStrategy;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
+ exports.__esModule = true;
5
+ exports.pojoAdapter = exports.default = void 0;
6
+ var _apidomCore = require("@swagger-api/apidom-core");
7
+ var _apidomNsOpenapi = require("@swagger-api/apidom-ns-openapi-3-2");
8
+ var _opId = _interopRequireDefault(require("../../../helpers/op-id.js"));
9
+ var _resolve = _interopRequireDefault(require("./resolve.js"));
10
+ /* eslint-disable camelcase */
11
+
12
+ const normalize = element => {
13
+ if (!(0, _apidomCore.isObjectElement)(element)) return element;
14
+ const plugins = [(0, _apidomNsOpenapi.refractorPluginNormalizeOperationIds)({
15
+ operationIdNormalizer: (operationId, path, method) => (0, _opId.default)({
16
+ operationId
17
+ }, path, method, {
18
+ v2OperationIdCompatibilityMode: false
19
+ })
20
+ }), (0, _apidomNsOpenapi.refractorPluginNormalizeParameters)(), (0, _apidomNsOpenapi.refractorPluginNormalizeSecurityRequirements)(), (0, _apidomNsOpenapi.refractorPluginNormalizeParameterExamples)(), (0, _apidomNsOpenapi.refractorPluginNormalizeHeaderExamples)()];
21
+ const normalized = (0, _apidomCore.dispatchRefractorPlugins)(element, plugins, {
22
+ toolboxCreator: _apidomNsOpenapi.createToolbox,
23
+ visitorOptions: {
24
+ keyMap: _apidomNsOpenapi.keyMap,
25
+ nodeTypeGetter: _apidomNsOpenapi.getNodeType
26
+ }
27
+ });
28
+ return normalized;
29
+ };
30
+
31
+ /**
32
+ * This adapter allow to perform normalization on Plain Old JavaScript Objects.
33
+ * The function adapts the `normalize` function interface and is able to accept
34
+ * Plain Old JavaScript Objects and returns Plain Old JavaScript Objects.
35
+ */
36
+ const pojoAdapter = normalizeFn => spec => {
37
+ const openApiElement = _apidomNsOpenapi.OpenApi3_2Element.refract(spec);
38
+ openApiElement.classes.push('result');
39
+ const normalized = normalizeFn(openApiElement);
40
+ const value = (0, _apidomCore.toValue)(normalized);
41
+
42
+ /**
43
+ * We're setting the cache here to avoid repeated refracting
44
+ * in `openapi-3-2-apidom` strategy resolve method.
45
+ */
46
+ _resolve.default.cache.set(value, normalized);
47
+ return (0, _apidomCore.toValue)(normalized);
48
+ };
49
+ exports.pojoAdapter = pojoAdapter;
50
+ var _default = exports.default = normalize;
51
+ /* eslint-enable camelcase */
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
5
+ exports.__esModule = true;
6
+ exports.default = exports.circularReplacer = void 0;
7
+ var _apidomCore = require("@swagger-api/apidom-core");
8
+ var _modern = require("@swagger-api/apidom-json-pointer/modern");
9
+ var _apidomNsOpenapi = require("@swagger-api/apidom-ns-openapi-3-2");
10
+ var _empty = require("@swagger-api/apidom-reference/configuration/empty");
11
+ var _binary = _interopRequireDefault(require("@swagger-api/apidom-reference/parse/parsers/binary"));
12
+ var _openapi = _interopRequireDefault(require("@swagger-api/apidom-reference/resolve/strategies/openapi-3-1"));
13
+ var _constants = require("../../../constants.js");
14
+ var optionsUtil = _interopRequireWildcard(require("../../utils/options.js"));
15
+ var _index = _interopRequireDefault(require("../../apidom/reference/resolve/resolvers/http-swagger-client/index.js"));
16
+ var _index2 = _interopRequireDefault(require("../../apidom/reference/parse/parsers/json/index.js"));
17
+ var _index3 = _interopRequireDefault(require("../../apidom/reference/parse/parsers/yaml-1-2/index.js"));
18
+ var _index4 = _interopRequireDefault(require("../../apidom/reference/parse/parsers/openapi-json-3-2/index.js"));
19
+ var _index5 = _interopRequireDefault(require("../../apidom/reference/parse/parsers/openapi-yaml-3-2/index.js"));
20
+ var _index6 = _interopRequireDefault(require("../../apidom/reference/dereference/strategies/openapi-3-2-swagger-client/index.js"));
21
+ /* eslint-disable camelcase */
22
+
23
+ const circularReplacer = refElement => {
24
+ const $refBaseURI = (0, _apidomCore.toValue)(refElement.meta.get('baseURI'));
25
+ const referencingElement = refElement.meta.get('referencingElement');
26
+
27
+ /**
28
+ * Removing semantics from the absolutified referencing element by
29
+ * using generic ObjectElement to represent the reference.
30
+ */
31
+ return new _apidomCore.ObjectElement({
32
+ $ref: $refBaseURI
33
+ }, (0, _apidomCore.cloneDeep)(referencingElement.meta), (0, _apidomCore.cloneDeep)(referencingElement.attributes));
34
+ };
35
+ exports.circularReplacer = circularReplacer;
36
+ const resolveOpenAPI32Strategy = async options => {
37
+ const {
38
+ spec,
39
+ timeout,
40
+ redirects,
41
+ requestInterceptor,
42
+ responseInterceptor,
43
+ pathDiscriminator = [],
44
+ allowMetaPatches = false,
45
+ useCircularStructures = false,
46
+ skipNormalization = false,
47
+ parameterMacro = null,
48
+ modelPropertyMacro = null,
49
+ mode = 'non-strict',
50
+ strategies
51
+ } = options;
52
+ try {
53
+ const {
54
+ cache
55
+ } = resolveOpenAPI32Strategy;
56
+ const strategy = strategies.find(strg => strg.match(spec));
57
+
58
+ // determining BaseURI
59
+ const cwd = _empty.url.isHttpUrl(_empty.url.cwd()) ? _empty.url.cwd() : _constants.DEFAULT_BASE_URL;
60
+ const retrievalURI = optionsUtil.retrievalURI(options);
61
+ const baseURI = _empty.url.resolve(cwd, retrievalURI);
62
+
63
+ // prepare spec for dereferencing
64
+ let openApiElement;
65
+ if (cache.has(spec)) {
66
+ openApiElement = cache.get(spec);
67
+ } else {
68
+ openApiElement = _apidomNsOpenapi.OpenApi3_2Element.refract(spec);
69
+ openApiElement.classes.push('result');
70
+ cache.set(spec, openApiElement);
71
+ }
72
+ const openApiParseResultElement = new _apidomCore.ParseResultElement([openApiElement]);
73
+
74
+ // prepare fragment for dereferencing
75
+ const jsonPointer = (0, _modern.compile)(pathDiscriminator);
76
+ const jsonPointerURI = jsonPointer === '' ? '' : `#${jsonPointer}`;
77
+ const fragmentElement = (0, _modern.evaluate)(openApiElement, jsonPointer);
78
+
79
+ // prepare reference set for dereferencing
80
+ const openApiElementReference = new _empty.Reference({
81
+ uri: baseURI,
82
+ value: openApiParseResultElement
83
+ });
84
+ const refSet = new _empty.ReferenceSet({
85
+ refs: [openApiElementReference]
86
+ });
87
+ if (jsonPointer !== '') refSet.rootRef = undefined; // reset root reference as we want fragment to become the root reference
88
+
89
+ // prepare ancestors; needed for cases where fragment is not OpenAPI element
90
+ const ancestors = [new Set([fragmentElement])];
91
+ const errors = [];
92
+ const dereferenced = await (0, _empty.dereferenceApiDOM)(fragmentElement, {
93
+ resolve: {
94
+ /**
95
+ * swagger-client only supports resolving HTTP(S) URLs or spec objects.
96
+ * If runtime env is detected as non-browser one,
97
+ * and baseURI was not provided as part of resolver options,
98
+ * then below baseURI check will make sure that constant HTTPS URL is used as baseURI.
99
+ */
100
+ baseURI: `${baseURI}${jsonPointerURI}`,
101
+ resolvers: [new _index.default({
102
+ timeout: timeout || 10000,
103
+ redirects: redirects || 10
104
+ })],
105
+ resolverOpts: {
106
+ swaggerHTTPClientConfig: {
107
+ requestInterceptor,
108
+ responseInterceptor
109
+ }
110
+ },
111
+ strategies: [new _openapi.default()]
112
+ },
113
+ parse: {
114
+ mediaType: _apidomNsOpenapi.mediaTypes.latest(),
115
+ parsers: [new _index4.default({
116
+ allowEmpty: false,
117
+ sourceMap: false
118
+ }), new _index5.default({
119
+ allowEmpty: false,
120
+ sourceMap: false
121
+ }), new _index2.default({
122
+ allowEmpty: false,
123
+ sourceMap: false
124
+ }), new _index3.default({
125
+ allowEmpty: false,
126
+ sourceMap: false
127
+ }), new _binary.default({
128
+ allowEmpty: false,
129
+ sourceMap: false
130
+ })]
131
+ },
132
+ dereference: {
133
+ maxDepth: 100,
134
+ strategies: [new _index6.default({
135
+ allowMetaPatches,
136
+ useCircularStructures,
137
+ parameterMacro,
138
+ modelPropertyMacro,
139
+ mode,
140
+ ancestors
141
+ })],
142
+ refSet,
143
+ dereferenceOpts: {
144
+ errors
145
+ },
146
+ immutable: false,
147
+ circular: useCircularStructures ? 'ignore' : 'replace',
148
+ circularReplacer: useCircularStructures ? _empty.options.dereference.circularReplacer : circularReplacer
149
+ }
150
+ });
151
+ const transcluded = (0, _apidomCore.transclude)(fragmentElement, dereferenced, openApiElement);
152
+ const normalized = skipNormalization ? transcluded : strategy.normalize(transcluded);
153
+ return {
154
+ spec: (0, _apidomCore.toValue)(normalized),
155
+ errors
156
+ };
157
+ } catch (error) {
158
+ if (error instanceof _modern.JSONPointerEvaluateError) {
159
+ return {
160
+ spec,
161
+ errors: []
162
+ };
163
+ }
164
+ throw error;
165
+ }
166
+ };
167
+ resolveOpenAPI32Strategy.cache = new WeakMap();
168
+ var _default = exports.default = resolveOpenAPI32Strategy;
169
+ /* eslint-enable camelcase */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "swagger-client",
3
- "version": "3.36.2",
3
+ "version": "3.37.1",
4
4
  "description": "SwaggerJS - a collection of interfaces for OAI specs",
5
5
  "browser": {
6
6
  "./src/helpers/btoa.node.js": "./src/helpers/btoa.browser.js",
@@ -50,7 +50,7 @@
50
50
  "build:es": "cross-env BABEL_ENV=es babel src --out-dir es",
51
51
  "lint": "eslint src/ test/",
52
52
  "lint:fix": "npm run lint -- --fix",
53
- "link:apidom": "npm link @swagger-api/apidom-core @swagger-api/apidom-error @swagger-api/apidom-reference @swagger-api/apidom-ns-openapi-2 @swagger-api/apidom-ns-openapi-3-0 @swagger-api/apidom-ns-openapi-3-1 @swagger-api/apidom-ns-json-schema-draft-4 @swagger-api/apidom-ns-json-schema-draft-6 @swagger-api/apidom-ns-json-schema-draft-7 @swagger-api/apidom-ns-json-schema-2019-09 @swagger-api/apidom-ns-json-schema-2020-12 @swagger-api/apidom-json-pointer",
53
+ "link:apidom": "npm link @swagger-api/apidom-core @swagger-api/apidom-error @swagger-api/apidom-reference @swagger-api/apidom-ns-openapi-2 @swagger-api/apidom-ns-openapi-3-0 @swagger-api/apidom-ns-openapi-3-1 @swagger-api/apidom-ns-openapi-3-2 @swagger-api/apidom-ns-json-schema-draft-4 @swagger-api/apidom-ns-json-schema-draft-6 @swagger-api/apidom-ns-json-schema-draft-7 @swagger-api/apidom-ns-json-schema-2019-09 @swagger-api/apidom-ns-json-schema-2020-12 @swagger-api/apidom-json-pointer",
54
54
  "test": "run-s test:unit:coverage test:artifact",
55
55
  "test:unit": "cross-env BABEL_ENV=commonjs jest --runInBand --config ./config/jest/jest.unit.config.js",
56
56
  "test:unit:coverage": "cross-env BABEL_ENV=commonjs jest --runInBand --config ./config/jest/jest.unit.coverage.config.js",
@@ -74,11 +74,12 @@
74
74
  "dependencies": {
75
75
  "@babel/runtime-corejs3": "^7.22.15",
76
76
  "@scarf/scarf": "=1.4.0",
77
- "@swagger-api/apidom-core": "^1.5.1",
78
- "@swagger-api/apidom-error": "^1.5.1",
79
- "@swagger-api/apidom-json-pointer": "^1.5.1",
80
- "@swagger-api/apidom-ns-openapi-3-1": "^1.5.1",
81
- "@swagger-api/apidom-reference": "^1.5.1",
77
+ "@swagger-api/apidom-core": "^1.7.0",
78
+ "@swagger-api/apidom-error": "^1.7.0",
79
+ "@swagger-api/apidom-json-pointer": "^1.7.0",
80
+ "@swagger-api/apidom-ns-openapi-3-1": "^1.7.0",
81
+ "@swagger-api/apidom-ns-openapi-3-2": "^1.7.0",
82
+ "@swagger-api/apidom-reference": "^1.7.0",
82
83
  "@swaggerexpert/cookie": "^2.0.2",
83
84
  "deepmerge": "~4.3.0",
84
85
  "fast-json-patch": "^3.0.0-1",
@@ -108,12 +109,12 @@
108
109
  "eslint-plugin-import": "=2.32.0",
109
110
  "eslint-plugin-prettier": "=5.5.4",
110
111
  "expect": "^29.0.3",
111
- "glob": "=13.0.0",
112
+ "glob": "=13.0.6",
112
113
  "husky": "^9.0.11",
113
114
  "inspectpack": "=4.7.1",
114
115
  "install": "=0.13.0",
115
116
  "jest": "^29.7.0",
116
- "jest-environment-jsdom": "^29.7.0",
117
+ "jest-environment-jsdom": "^30.3.0",
117
118
  "json-loader": "=0.5.7",
118
119
  "license-checker": "=25.0.1",
119
120
  "lint-staged": "=16.2.7",
@@ -124,32 +125,34 @@
124
125
  "source-map-explorer": "^2.5.3",
125
126
  "terser-webpack-plugin": "^5.0.3",
126
127
  "undici": "^5.28.4",
127
- "webpack": "=5.105.2",
128
+ "webpack": "=5.105.3",
128
129
  "webpack-bundle-size-analyzer": "=3.1.0",
129
130
  "webpack-cli": "=6.0.1",
130
131
  "webpack-stats-plugin": "=1.1.3"
131
132
  },
132
133
  "overrides": {
133
134
  "@swagger-api/apidom-reference": {
134
- "@swagger-api/apidom-ns-asyncapi-2": "npm:-@0.0.1",
135
- "@swagger-api/apidom-ns-asyncapi-3": "npm:-@0.0.1",
136
- "@swagger-api/apidom-ns-openapi-2": "npm:-@0.0.1",
137
- "@swagger-api/apidom-parser-adapter-api-design-systems-json": "npm:-@0.0.1",
138
- "@swagger-api/apidom-parser-adapter-api-design-systems-yaml": "npm:-@0.0.1",
139
- "@swagger-api/apidom-parser-adapter-asyncapi-json-2": "npm:-@0.0.1",
140
- "@swagger-api/apidom-parser-adapter-asyncapi-json-3": "npm:-@0.0.1",
141
- "@swagger-api/apidom-parser-adapter-asyncapi-yaml-2": "npm:-@0.0.1",
142
- "@swagger-api/apidom-parser-adapter-asyncapi-yaml-3": "npm:-@0.0.1",
143
- "@swagger-api/apidom-parser-adapter-json": "npm:-@0.0.1",
144
- "@swagger-api/apidom-parser-adapter-openapi-json-2": "npm:-@0.0.1",
145
- "@swagger-api/apidom-parser-adapter-openapi-yaml-2": "npm:-@0.0.1",
146
- "@swagger-api/apidom-parser-adapter-openapi-json-3-0": "npm:-@0.0.1",
147
- "@swagger-api/apidom-parser-adapter-openapi-json-3-1": "npm:-@0.0.1",
148
- "@swagger-api/apidom-parser-adapter-openapi-yaml-3-0": "npm:-@0.0.1",
149
- "@swagger-api/apidom-parser-adapter-openapi-yaml-3-1": "npm:-@0.0.1",
150
- "@swagger-api/apidom-parser-adapter-arazzo-json-1": "npm:-@0.0.1",
151
- "@swagger-api/apidom-parser-adapter-arazzo-yaml-1": "npm:-@0.0.1",
152
- "@swagger-api/apidom-parser-adapter-yaml-1-2": "npm:-@0.0.1"
135
+ "@swagger-api/apidom-ns-asyncapi-2": "npm:~@0.0.1",
136
+ "@swagger-api/apidom-ns-asyncapi-3": "npm:~@0.0.1",
137
+ "@swagger-api/apidom-ns-openapi-2": "npm:~@0.0.1",
138
+ "@swagger-api/apidom-parser-adapter-api-design-systems-json": "npm:~@0.0.1",
139
+ "@swagger-api/apidom-parser-adapter-api-design-systems-yaml": "npm:~@0.0.1",
140
+ "@swagger-api/apidom-parser-adapter-asyncapi-json-2": "npm:~@0.0.1",
141
+ "@swagger-api/apidom-parser-adapter-asyncapi-json-3": "npm:~@0.0.1",
142
+ "@swagger-api/apidom-parser-adapter-asyncapi-yaml-2": "npm:~@0.0.1",
143
+ "@swagger-api/apidom-parser-adapter-asyncapi-yaml-3": "npm:~@0.0.1",
144
+ "@swagger-api/apidom-parser-adapter-json": "npm:~@0.0.1",
145
+ "@swagger-api/apidom-parser-adapter-openapi-json-2": "npm:~@0.0.1",
146
+ "@swagger-api/apidom-parser-adapter-openapi-yaml-2": "npm:~@0.0.1",
147
+ "@swagger-api/apidom-parser-adapter-openapi-json-3-0": "npm:~@0.0.1",
148
+ "@swagger-api/apidom-parser-adapter-openapi-json-3-1": "npm:~@0.0.1",
149
+ "@swagger-api/apidom-parser-adapter-openapi-json-3-2": "npm:~@0.0.1",
150
+ "@swagger-api/apidom-parser-adapter-openapi-yaml-3-0": "npm:~@0.0.1",
151
+ "@swagger-api/apidom-parser-adapter-openapi-yaml-3-1": "npm:~@0.0.1",
152
+ "@swagger-api/apidom-parser-adapter-openapi-yaml-3-2": "npm:~@0.0.1",
153
+ "@swagger-api/apidom-parser-adapter-arazzo-json-1": "npm:~@0.0.1",
154
+ "@swagger-api/apidom-parser-adapter-arazzo-yaml-1": "npm:~@0.0.1",
155
+ "@swagger-api/apidom-parser-adapter-yaml-1-2": "npm:~@0.0.1"
153
156
  }
154
157
  }
155
158
  }