@speclynx/apidom-reference 6.1.2 → 7.0.0

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 (106) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/README.md +57 -0
  3. package/dist/apidom-reference.browser.js +5783 -3741
  4. package/dist/apidom-reference.browser.min.js +1 -1
  5. package/package.json +31 -30
  6. package/src/File.cjs +5 -2
  7. package/src/File.mjs +5 -2
  8. package/src/bundle/index.cjs +6 -4
  9. package/src/bundle/index.mjs +6 -4
  10. package/src/bundle/strategies/arazzo-1/index.cjs +3 -2
  11. package/src/bundle/strategies/arazzo-1/index.mjs +3 -2
  12. package/src/bundle/strategies/asyncapi-2/index.cjs +3 -2
  13. package/src/bundle/strategies/asyncapi-2/index.mjs +3 -2
  14. package/src/bundle/strategies/openapi-2/index.cjs +3 -2
  15. package/src/bundle/strategies/openapi-2/index.mjs +3 -2
  16. package/src/bundle/strategies/openapi-3-0/index.cjs +3 -2
  17. package/src/bundle/strategies/openapi-3-0/index.mjs +3 -2
  18. package/src/bundle/strategies/openapi-3-1/index.cjs +3 -2
  19. package/src/bundle/strategies/openapi-3-1/index.mjs +3 -2
  20. package/src/dereference/index.cjs +8 -5
  21. package/src/dereference/index.mjs +8 -5
  22. package/src/dereference/strategies/DereferenceVisitor.cjs +588 -0
  23. package/src/dereference/strategies/DereferenceVisitor.mjs +580 -0
  24. package/src/dereference/strategies/arazzo-1/index.cjs +14 -39
  25. package/src/dereference/strategies/arazzo-1/index.mjs +15 -40
  26. package/src/dereference/strategies/arazzo-1/visitor.cjs +207 -331
  27. package/src/dereference/strategies/arazzo-1/visitor.mjs +215 -338
  28. package/src/dereference/strategies/asyncapi-2/index.cjs +11 -39
  29. package/src/dereference/strategies/asyncapi-2/index.mjs +11 -39
  30. package/src/dereference/strategies/asyncapi-2/visitor.cjs +133 -425
  31. package/src/dereference/strategies/asyncapi-2/visitor.mjs +137 -429
  32. package/src/dereference/strategies/openapi-2/index.cjs +12 -42
  33. package/src/dereference/strategies/openapi-2/index.mjs +12 -42
  34. package/src/dereference/strategies/openapi-2/visitor.cjs +168 -532
  35. package/src/dereference/strategies/openapi-2/visitor.mjs +172 -536
  36. package/src/dereference/strategies/openapi-3-0/index.cjs +12 -42
  37. package/src/dereference/strategies/openapi-3-0/index.mjs +12 -42
  38. package/src/dereference/strategies/openapi-3-0/visitor.cjs +194 -468
  39. package/src/dereference/strategies/openapi-3-0/visitor.mjs +199 -473
  40. package/src/dereference/strategies/openapi-3-1/index.cjs +16 -42
  41. package/src/dereference/strategies/openapi-3-1/index.mjs +16 -42
  42. package/src/dereference/strategies/openapi-3-1/visitor.cjs +350 -602
  43. package/src/dereference/strategies/openapi-3-1/visitor.mjs +357 -608
  44. package/src/dereference/strategies/overlay-1/index.cjs +3 -2
  45. package/src/dereference/strategies/overlay-1/index.mjs +3 -2
  46. package/src/index.cjs +0 -7
  47. package/src/index.mjs +0 -1
  48. package/src/options/index.cjs +4 -0
  49. package/src/options/index.mjs +4 -0
  50. package/src/options/util.cjs +7 -1
  51. package/src/options/util.mjs +8 -2
  52. package/src/parse/index.cjs +9 -1
  53. package/src/parse/index.mjs +9 -1
  54. package/src/parse/parsers/apidom-json/index.cjs +2 -1
  55. package/src/parse/parsers/apidom-json/index.mjs +2 -1
  56. package/src/parse/parsers/arazzo-json-1/index.cjs +2 -1
  57. package/src/parse/parsers/arazzo-json-1/index.mjs +2 -1
  58. package/src/parse/parsers/arazzo-yaml-1/index.cjs +2 -1
  59. package/src/parse/parsers/arazzo-yaml-1/index.mjs +2 -1
  60. package/src/parse/parsers/asyncapi-json-2/index.cjs +2 -1
  61. package/src/parse/parsers/asyncapi-json-2/index.mjs +2 -1
  62. package/src/parse/parsers/asyncapi-yaml-2/index.cjs +2 -1
  63. package/src/parse/parsers/asyncapi-yaml-2/index.mjs +2 -1
  64. package/src/parse/parsers/json/index.cjs +2 -1
  65. package/src/parse/parsers/json/index.mjs +2 -1
  66. package/src/parse/parsers/openapi-json-2/index.cjs +2 -1
  67. package/src/parse/parsers/openapi-json-2/index.mjs +2 -1
  68. package/src/parse/parsers/openapi-json-3-0/index.cjs +2 -1
  69. package/src/parse/parsers/openapi-json-3-0/index.mjs +2 -1
  70. package/src/parse/parsers/openapi-json-3-1/index.cjs +2 -1
  71. package/src/parse/parsers/openapi-json-3-1/index.mjs +2 -1
  72. package/src/parse/parsers/openapi-yaml-2/index.cjs +2 -1
  73. package/src/parse/parsers/openapi-yaml-2/index.mjs +2 -1
  74. package/src/parse/parsers/openapi-yaml-3-0/index.cjs +2 -1
  75. package/src/parse/parsers/openapi-yaml-3-0/index.mjs +2 -1
  76. package/src/parse/parsers/openapi-yaml-3-1/index.cjs +2 -1
  77. package/src/parse/parsers/openapi-yaml-3-1/index.mjs +2 -1
  78. package/src/parse/parsers/overlay-json-1/index.cjs +2 -1
  79. package/src/parse/parsers/overlay-json-1/index.mjs +2 -1
  80. package/src/parse/parsers/overlay-yaml-1/index.cjs +2 -1
  81. package/src/parse/parsers/overlay-yaml-1/index.mjs +2 -1
  82. package/src/parse/parsers/yaml-1-2/index.cjs +2 -1
  83. package/src/parse/parsers/yaml-1-2/index.mjs +2 -1
  84. package/src/resolve/index.cjs +6 -3
  85. package/src/resolve/index.mjs +6 -3
  86. package/src/util/url.cjs +38 -8
  87. package/src/util/url.mjs +35 -6
  88. package/types/apidom-reference.d.ts +13 -9
  89. package/types/dereference/strategies/DereferenceVisitor.d.ts +224 -0
  90. package/types/dereference/strategies/arazzo-1/index.d.ts +0 -1
  91. package/types/dereference/strategies/arazzo-1/visitor.d.ts +38 -38
  92. package/types/dereference/strategies/asyncapi-2/index.d.ts +0 -1
  93. package/types/dereference/strategies/asyncapi-2/visitor.d.ts +13 -29
  94. package/types/dereference/strategies/openapi-2/index.d.ts +0 -1
  95. package/types/dereference/strategies/openapi-2/visitor.d.ts +14 -29
  96. package/types/dereference/strategies/openapi-3-0/index.d.ts +0 -1
  97. package/types/dereference/strategies/openapi-3-0/visitor.d.ts +13 -28
  98. package/types/dereference/strategies/openapi-3-1/index.d.ts +0 -1
  99. package/types/dereference/strategies/openapi-3-1/visitor.d.ts +37 -33
  100. package/types/index.d.ts +0 -1
  101. package/types/util/url.d.ts +11 -0
  102. package/LICENSES/AFL-3.0.txt +0 -182
  103. package/LICENSES/BSD-3-Clause.txt +0 -26
  104. package/src/dereference/util.cjs +0 -33
  105. package/src/dereference/util.mjs +0 -27
  106. package/types/dereference/util.d.ts +0 -9
@@ -20,6 +20,7 @@ Object.defineProperty(exports, "dereferenceExtends", {
20
20
  var _apidomDatamodel = require("@speclynx/apidom-datamodel");
21
21
  var _apidomNsOverlay = require("@speclynx/apidom-ns-overlay-1");
22
22
  var _apidomTraverse = require("@speclynx/apidom-traverse");
23
+ var _mediaTypes = require("@swaggerexpert/media-types");
23
24
  var _DereferenceStrategy = _interopRequireDefault(require("../DereferenceStrategy.cjs"));
24
25
  var _Reference = _interopRequireDefault(require("../../../Reference.cjs"));
25
26
  var _ReferenceSet = _interopRequireDefault(require("../../../ReferenceSet.cjs"));
@@ -41,8 +42,8 @@ class Overlay1DereferenceStrategy extends _DereferenceStrategy.default {
41
42
  }
42
43
  canDereference(file) {
43
44
  // assert by media type
44
- if (file.mediaType !== 'text/plain') {
45
- return _apidomNsOverlay.mediaTypes.includes(file.mediaType);
45
+ if (!(0, _mediaTypes.matches)('text/plain', file.mediaType)) {
46
+ return (0, _mediaTypes.selectBestMatch)(_apidomNsOverlay.mediaTypes, file.mediaType) !== null;
46
47
  }
47
48
 
48
49
  // assert by inspecting ApiDOM
@@ -1,6 +1,7 @@
1
1
  import { cloneDeep, isParseResultElement } from '@speclynx/apidom-datamodel';
2
2
  import { isOverlay1Element, mediaTypes } from '@speclynx/apidom-ns-overlay-1';
3
3
  import { traverseAsync } from '@speclynx/apidom-traverse';
4
+ import { matches, selectBestMatch } from '@swaggerexpert/media-types';
4
5
  import DereferenceStrategy from "../DereferenceStrategy.mjs";
5
6
  import Reference from "../../../Reference.mjs";
6
7
  import ReferenceSet from "../../../ReferenceSet.mjs";
@@ -21,8 +22,8 @@ class Overlay1DereferenceStrategy extends DereferenceStrategy {
21
22
  }
22
23
  canDereference(file) {
23
24
  // assert by media type
24
- if (file.mediaType !== 'text/plain') {
25
- return mediaTypes.includes(file.mediaType);
25
+ if (!matches('text/plain', file.mediaType)) {
26
+ return selectBestMatch(mediaTypes, file.mediaType) !== null;
26
27
  }
27
28
 
28
29
  // assert by inspecting ApiDOM
package/src/index.cjs CHANGED
@@ -17,12 +17,6 @@ Object.defineProperty(exports, "BundleStrategy", {
17
17
  return _BundleStrategy.default;
18
18
  }
19
19
  });
20
- Object.defineProperty(exports, "DereferenceAncestorLineage", {
21
- enumerable: true,
22
- get: function () {
23
- return _util3.AncestorLineage;
24
- }
25
- });
26
20
  Object.defineProperty(exports, "DereferenceError", {
27
21
  enumerable: true,
28
22
  get: function () {
@@ -227,7 +221,6 @@ var _Resolver = _interopRequireDefault(require("./resolve/resolvers/Resolver.cjs
227
221
  var _HTTPResolver = _interopRequireDefault(require("./resolve/resolvers/HTTPResolver.cjs"));
228
222
  var _ResolveStrategy = _interopRequireDefault(require("./resolve/strategies/ResolveStrategy.cjs"));
229
223
  var _DereferenceStrategy = _interopRequireDefault(require("./dereference/strategies/DereferenceStrategy.cjs"));
230
- var _util3 = require("./dereference/util.cjs");
231
224
  var _BundleStrategy = _interopRequireDefault(require("./bundle/strategies/BundleStrategy.cjs"));
232
225
  var _Reference = _interopRequireDefault(require("./Reference.cjs"));
233
226
  var _BundleError = _interopRequireDefault(require("./errors/BundleError.cjs"));
package/src/index.mjs CHANGED
@@ -14,7 +14,6 @@ export { default as Resolver } from "./resolve/resolvers/Resolver.mjs";
14
14
  export { default as HTTPResolver } from "./resolve/resolvers/HTTPResolver.mjs";
15
15
  export { default as ResolveStrategy } from "./resolve/strategies/ResolveStrategy.mjs";
16
16
  export { default as DereferenceStrategy } from "./dereference/strategies/DereferenceStrategy.mjs";
17
- export { AncestorLineage as DereferenceAncestorLineage } from "./dereference/util.mjs";
18
17
  export { default as BundleStrategy } from "./bundle/strategies/BundleStrategy.mjs";
19
18
  export { default as options } from "./options/index.mjs";
20
19
  export { merge as mergeOptions } from "./options/util.mjs";
@@ -68,6 +68,10 @@ const defaultOptions = {
68
68
  resolve: {
69
69
  /**
70
70
  * baseURI serves as a base for all relative URL found in ApiDOM references.
71
+ * It must be absolute: a file system path, a file:// URL or an HTTP(S) URL.
72
+ * Defaults to the current working directory (the page URL in browsers).
73
+ * A fragment marks where the ApiDOM fragment is located in its document;
74
+ * leave it out when passing a whole document.
71
75
  */
72
76
  baseURI: '',
73
77
  /**
@@ -63,6 +63,10 @@ const defaultOptions = {
63
63
  resolve: {
64
64
  /**
65
65
  * baseURI serves as a base for all relative URL found in ApiDOM references.
66
+ * It must be absolute: a file system path, a file:// URL or an HTTP(S) URL.
67
+ * Defaults to the current working directory (the page URL in browsers).
68
+ * A fragment marks where the ApiDOM fragment is located in its document;
69
+ * leave it out when passing a whole document.
66
70
  */
67
71
  baseURI: '',
68
72
  /**
@@ -12,7 +12,13 @@ var _url = require("../util/url.cjs");
12
12
  */
13
13
 
14
14
  const baseURILens = (0, _ramda.lens)((0, _ramda.path)(['resolve', 'baseURI']), (0, _ramda.assocPath)(['resolve', 'baseURI']));
15
- const baseURIDefault = baseURI => (0, _ramdaAdjunct.isEmptyString)(baseURI) ? (0, _url.cwd)() : baseURI;
15
+ // in Node cwd() is a raw file system path; encode it, so that it reads as a URI
16
+ // (in browsers it is the page URL, which may be an already encoded file:// URL)
17
+ const cwdURI = () => {
18
+ const dir = (0, _url.cwd)();
19
+ return (0, _url.isFileSystemPath)(dir) && (0, _url.getProtocol)(dir) !== 'file' ? (0, _url.fromFileSystemPath)(dir) : dir;
20
+ };
21
+ const baseURIDefault = baseURI => (0, _ramdaAdjunct.isEmptyString)(baseURI) ? cwdURI() : baseURI;
16
22
 
17
23
  /**
18
24
  * @public
@@ -1,12 +1,18 @@
1
1
  import { mergeDeepRight, lens, path, assocPath, over } from 'ramda';
2
2
  import { isEmptyString } from 'ramda-adjunct';
3
- import { cwd } from "../util/url.mjs";
3
+ import { cwd, getProtocol, isFileSystemPath, fromFileSystemPath } from "../util/url.mjs";
4
4
  /**
5
5
  * Algorithm for deep merging options.
6
6
  */
7
7
 
8
8
  const baseURILens = lens(path(['resolve', 'baseURI']), assocPath(['resolve', 'baseURI']));
9
- const baseURIDefault = baseURI => isEmptyString(baseURI) ? cwd() : baseURI;
9
+ // in Node cwd() is a raw file system path; encode it, so that it reads as a URI
10
+ // (in browsers it is the page URL, which may be an already encoded file:// URL)
11
+ const cwdURI = () => {
12
+ const dir = cwd();
13
+ return isFileSystemPath(dir) && getProtocol(dir) !== 'file' ? fromFileSystemPath(dir) : dir;
14
+ };
15
+ const baseURIDefault = baseURI => isEmptyString(baseURI) ? cwdURI() : baseURI;
10
16
 
11
17
  /**
12
18
  * @public
@@ -7,12 +7,16 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
  var _ramda = require("ramda");
10
+ var _mediaTypes = require("@swaggerexpert/media-types");
10
11
  var url = _interopRequireWildcard(require("../util/url.cjs"));
11
12
  var _File = _interopRequireDefault(require("../File.cjs"));
12
13
  var plugins = _interopRequireWildcard(require("../util/plugins.cjs"));
13
14
  var _ParseError = _interopRequireDefault(require("../errors/ParseError.cjs"));
14
15
  var _UnmatchedParserError = _interopRequireDefault(require("../errors/UnmatchedParserError.cjs"));
15
16
  var _util = require("../resolve/util.cjs");
17
+ // media types of a serialization format only, naming no specification
18
+ const formatMediaTypes = ['application/json', 'application/yaml', 'text/yaml'];
19
+
16
20
  /**
17
21
  * Parses the given file's contents, using the configured parser plugins.
18
22
  */
@@ -21,7 +25,11 @@ const parseFile = async (file, options) => {
21
25
  const clonedParser = Object.create(parser);
22
26
  return Object.assign(clonedParser, options.parse.parserOpts);
23
27
  });
24
- const parsers = await plugins.filter('canParse', [file, options], optsBoundParsers);
28
+ const candidates = await plugins.filter('canParse', [file, options], optsBoundParsers);
29
+ // parsers listing the file's media type are tried first, the others in their configured order;
30
+ // for a format media type the configured order decides, as it puts specific parsers first
31
+ const isListing = parser => parser.mediaTypes !== undefined && (0, _mediaTypes.selectBestMatch)(parser.mediaTypes, file.mediaType) !== null;
32
+ const parsers = (0, _mediaTypes.selectBestMatch)(formatMediaTypes, file.mediaType) !== null ? candidates : [...candidates.filter(isListing), ...candidates.filter(p => !isListing(p))];
25
33
 
26
34
  // we couldn't find any parser for this File
27
35
  if ((0, _ramda.isEmpty)(parsers)) {
@@ -1,10 +1,14 @@
1
1
  import { isEmpty } from 'ramda';
2
+ import { selectBestMatch } from '@swaggerexpert/media-types';
2
3
  import * as url from "../util/url.mjs";
3
4
  import File from "../File.mjs";
4
5
  import * as plugins from "../util/plugins.mjs";
5
6
  import ParseError from "../errors/ParseError.mjs";
6
7
  import UnmatchedParserError from "../errors/UnmatchedParserError.mjs";
7
8
  import { readFile } from "../resolve/util.mjs";
9
+ // media types of a serialization format only, naming no specification
10
+ const formatMediaTypes = ['application/json', 'application/yaml', 'text/yaml'];
11
+
8
12
  /**
9
13
  * Parses the given file's contents, using the configured parser plugins.
10
14
  */
@@ -13,7 +17,11 @@ const parseFile = async (file, options) => {
13
17
  const clonedParser = Object.create(parser);
14
18
  return Object.assign(clonedParser, options.parse.parserOpts);
15
19
  });
16
- const parsers = await plugins.filter('canParse', [file, options], optsBoundParsers);
20
+ const candidates = await plugins.filter('canParse', [file, options], optsBoundParsers);
21
+ // parsers listing the file's media type are tried first, the others in their configured order;
22
+ // for a format media type the configured order decides, as it puts specific parsers first
23
+ const isListing = parser => parser.mediaTypes !== undefined && selectBestMatch(parser.mediaTypes, file.mediaType) !== null;
24
+ const parsers = selectBestMatch(formatMediaTypes, file.mediaType) !== null ? candidates : [...candidates.filter(isListing), ...candidates.filter(p => !isListing(p))];
17
25
 
18
26
  // we couldn't find any parser for this File
19
27
  if (isEmpty(parsers)) {
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = void 0;
8
8
  var _apidomDatamodel = require("@speclynx/apidom-datamodel");
9
+ var _mediaTypes = require("@swaggerexpert/media-types");
9
10
  var _ParserError = _interopRequireDefault(require("../../../errors/ParserError.cjs"));
10
11
  var _Parser = _interopRequireDefault(require("../Parser.cjs"));
11
12
  /**
@@ -35,7 +36,7 @@ class ApiDOMJSONParser extends _Parser.default {
35
36
  }
36
37
  canParse(file) {
37
38
  const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
38
- const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
39
+ const hasSupportedMediaType = (0, _mediaTypes.selectBestMatch)(this.mediaTypes, file.mediaType) !== null;
39
40
  if (!hasSupportedFileExtension) return false;
40
41
  if (hasSupportedMediaType) return true;
41
42
  if (!hasSupportedMediaType) {
@@ -1,4 +1,5 @@
1
1
  import { Namespace, ParseResultElement, isParseResultElement } from '@speclynx/apidom-datamodel';
2
+ import { selectBestMatch } from '@swaggerexpert/media-types';
2
3
  import ParserError from "../../../errors/ParserError.mjs";
3
4
  import Parser from "../Parser.mjs";
4
5
  /**
@@ -27,7 +28,7 @@ class ApiDOMJSONParser extends Parser {
27
28
  }
28
29
  canParse(file) {
29
30
  const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
30
- const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
31
+ const hasSupportedMediaType = selectBestMatch(this.mediaTypes, file.mediaType) !== null;
31
32
  if (!hasSupportedFileExtension) return false;
32
33
  if (hasSupportedMediaType) return true;
33
34
  if (!hasSupportedMediaType) {
@@ -13,6 +13,7 @@ Object.defineProperty(exports, "parseSourceDescriptions", {
13
13
  });
14
14
  var _ramda = require("ramda");
15
15
  var _apidomParserAdapterArazzoJson = require("@speclynx/apidom-parser-adapter-arazzo-json-1");
16
+ var _mediaTypes = require("@swaggerexpert/media-types");
16
17
  var _ParserError = _interopRequireDefault(require("../../../errors/ParserError.cjs"));
17
18
  var _Parser = _interopRequireDefault(require("../Parser.cjs"));
18
19
  var _sourceDescriptions = require("./source-descriptions.cjs");
@@ -40,7 +41,7 @@ class ArazzoJSON1Parser extends _Parser.default {
40
41
  }
41
42
  async canParse(file) {
42
43
  const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
43
- const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
44
+ const hasSupportedMediaType = (0, _mediaTypes.selectBestMatch)(this.mediaTypes, file.mediaType) !== null;
44
45
  if (!hasSupportedFileExtension) return false;
45
46
  if (hasSupportedMediaType) return true;
46
47
  if (!hasSupportedMediaType) {
@@ -1,5 +1,6 @@
1
1
  import { pick } from 'ramda';
2
2
  import { parse, mediaTypes as ArazzoJSON1MediaTypes, detect } from '@speclynx/apidom-parser-adapter-arazzo-json-1';
3
+ import { selectBestMatch } from '@swaggerexpert/media-types';
3
4
  import ParserError from "../../../errors/ParserError.mjs";
4
5
  import Parser from "../Parser.mjs";
5
6
  import { parseSourceDescriptions } from "./source-descriptions.mjs";
@@ -26,7 +27,7 @@ class ArazzoJSON1Parser extends Parser {
26
27
  }
27
28
  async canParse(file) {
28
29
  const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
29
- const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
30
+ const hasSupportedMediaType = selectBestMatch(this.mediaTypes, file.mediaType) !== null;
30
31
  if (!hasSupportedFileExtension) return false;
31
32
  if (hasSupportedMediaType) return true;
32
33
  if (!hasSupportedMediaType) {
@@ -13,6 +13,7 @@ Object.defineProperty(exports, "parseSourceDescriptions", {
13
13
  });
14
14
  var _ramda = require("ramda");
15
15
  var _apidomParserAdapterArazzoYaml = require("@speclynx/apidom-parser-adapter-arazzo-yaml-1");
16
+ var _mediaTypes = require("@swaggerexpert/media-types");
16
17
  var _ParserError = _interopRequireDefault(require("../../../errors/ParserError.cjs"));
17
18
  var _Parser = _interopRequireDefault(require("../Parser.cjs"));
18
19
  var _sourceDescriptions = require("./source-descriptions.cjs");
@@ -40,7 +41,7 @@ class ArazzoYAML1Parser extends _Parser.default {
40
41
  }
41
42
  async canParse(file) {
42
43
  const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
43
- const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
44
+ const hasSupportedMediaType = (0, _mediaTypes.selectBestMatch)(this.mediaTypes, file.mediaType) !== null;
44
45
  if (!hasSupportedFileExtension) return false;
45
46
  if (hasSupportedMediaType) return true;
46
47
  if (!hasSupportedMediaType) {
@@ -1,5 +1,6 @@
1
1
  import { pick } from 'ramda';
2
2
  import { parse, mediaTypes as ArazzoYAML1MediaTypes, detect } from '@speclynx/apidom-parser-adapter-arazzo-yaml-1';
3
+ import { selectBestMatch } from '@swaggerexpert/media-types';
3
4
  import ParserError from "../../../errors/ParserError.mjs";
4
5
  import Parser from "../Parser.mjs";
5
6
  import { parseSourceDescriptions } from "./source-descriptions.mjs";
@@ -26,7 +27,7 @@ class ArazzoYAML1Parser extends Parser {
26
27
  }
27
28
  async canParse(file) {
28
29
  const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
29
- const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
30
+ const hasSupportedMediaType = selectBestMatch(this.mediaTypes, file.mediaType) !== null;
30
31
  if (!hasSupportedFileExtension) return false;
31
32
  if (hasSupportedMediaType) return true;
32
33
  if (!hasSupportedMediaType) {
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _ramda = require("ramda");
9
9
  var _apidomParserAdapterAsyncapiJson = require("@speclynx/apidom-parser-adapter-asyncapi-json-2");
10
+ var _mediaTypes = require("@swaggerexpert/media-types");
10
11
  var _ParserError = _interopRequireDefault(require("../../../errors/ParserError.cjs"));
11
12
  var _Parser = _interopRequireDefault(require("../Parser.cjs"));
12
13
  /**
@@ -33,7 +34,7 @@ class AsyncAPIJSON2Parser extends _Parser.default {
33
34
  }
34
35
  async canParse(file) {
35
36
  const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
36
- const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
37
+ const hasSupportedMediaType = (0, _mediaTypes.selectBestMatch)(this.mediaTypes, file.mediaType) !== null;
37
38
  if (!hasSupportedFileExtension) return false;
38
39
  if (hasSupportedMediaType) return true;
39
40
  if (!hasSupportedMediaType) {
@@ -1,5 +1,6 @@
1
1
  import { pick } from 'ramda';
2
2
  import { parse, mediaTypes as AsyncAPI2MediaTypes, detect } from '@speclynx/apidom-parser-adapter-asyncapi-json-2';
3
+ import { selectBestMatch } from '@swaggerexpert/media-types';
3
4
  import ParserError from "../../../errors/ParserError.mjs";
4
5
  import Parser from "../Parser.mjs";
5
6
  /**
@@ -25,7 +26,7 @@ class AsyncAPIJSON2Parser extends Parser {
25
26
  }
26
27
  async canParse(file) {
27
28
  const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
28
- const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
29
+ const hasSupportedMediaType = selectBestMatch(this.mediaTypes, file.mediaType) !== null;
29
30
  if (!hasSupportedFileExtension) return false;
30
31
  if (hasSupportedMediaType) return true;
31
32
  if (!hasSupportedMediaType) {
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _ramda = require("ramda");
9
9
  var _apidomParserAdapterAsyncapiYaml = require("@speclynx/apidom-parser-adapter-asyncapi-yaml-2");
10
+ var _mediaTypes = require("@swaggerexpert/media-types");
10
11
  var _ParserError = _interopRequireDefault(require("../../../errors/ParserError.cjs"));
11
12
  var _Parser = _interopRequireDefault(require("../Parser.cjs"));
12
13
  /**
@@ -33,7 +34,7 @@ class AsyncAPIYAML2Parser extends _Parser.default {
33
34
  }
34
35
  async canParse(file) {
35
36
  const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
36
- const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
37
+ const hasSupportedMediaType = (0, _mediaTypes.selectBestMatch)(this.mediaTypes, file.mediaType) !== null;
37
38
  if (!hasSupportedFileExtension) return false;
38
39
  if (hasSupportedMediaType) return true;
39
40
  if (!hasSupportedMediaType) {
@@ -1,5 +1,6 @@
1
1
  import { pick } from 'ramda';
2
2
  import { parse, mediaTypes as AsyncAPI2MediaTypes, detect } from '@speclynx/apidom-parser-adapter-asyncapi-yaml-2';
3
+ import { selectBestMatch } from '@swaggerexpert/media-types';
3
4
  import ParserError from "../../../errors/ParserError.mjs";
4
5
  import Parser from "../Parser.mjs";
5
6
  /**
@@ -25,7 +26,7 @@ class AsyncAPIYAML2Parser extends Parser {
25
26
  }
26
27
  async canParse(file) {
27
28
  const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
28
- const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
29
+ const hasSupportedMediaType = selectBestMatch(this.mediaTypes, file.mediaType) !== null;
29
30
  if (!hasSupportedFileExtension) return false;
30
31
  if (hasSupportedMediaType) return true;
31
32
  if (!hasSupportedMediaType) {
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _ramda = require("ramda");
9
9
  var _apidomParserAdapterJson = require("@speclynx/apidom-parser-adapter-json");
10
+ var _mediaTypes = require("@swaggerexpert/media-types");
10
11
  var _ParserError = _interopRequireDefault(require("../../../errors/ParserError.cjs"));
11
12
  var _Parser = _interopRequireDefault(require("../Parser.cjs"));
12
13
  /**
@@ -32,7 +33,7 @@ class JSONParser extends _Parser.default {
32
33
  }
33
34
  async canParse(file) {
34
35
  const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
35
- const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
36
+ const hasSupportedMediaType = (0, _mediaTypes.selectBestMatch)(this.mediaTypes, file.mediaType) !== null;
36
37
  if (!hasSupportedFileExtension) return false;
37
38
  if (hasSupportedMediaType) return true;
38
39
  if (!hasSupportedMediaType) {
@@ -1,5 +1,6 @@
1
1
  import { pick } from 'ramda';
2
2
  import { parse, mediaTypes as JSONMediaTypes, detect } from '@speclynx/apidom-parser-adapter-json';
3
+ import { selectBestMatch } from '@swaggerexpert/media-types';
3
4
  import ParserError from "../../../errors/ParserError.mjs";
4
5
  import Parser from "../Parser.mjs";
5
6
  /**
@@ -24,7 +25,7 @@ class JSONParser extends Parser {
24
25
  }
25
26
  async canParse(file) {
26
27
  const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
27
- const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
28
+ const hasSupportedMediaType = selectBestMatch(this.mediaTypes, file.mediaType) !== null;
28
29
  if (!hasSupportedFileExtension) return false;
29
30
  if (hasSupportedMediaType) return true;
30
31
  if (!hasSupportedMediaType) {
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _ramda = require("ramda");
9
9
  var _apidomParserAdapterOpenapiJson = require("@speclynx/apidom-parser-adapter-openapi-json-2");
10
+ var _mediaTypes = require("@swaggerexpert/media-types");
10
11
  var _ParserError = _interopRequireDefault(require("../../../errors/ParserError.cjs"));
11
12
  var _Parser = _interopRequireDefault(require("../Parser.cjs"));
12
13
  /**
@@ -33,7 +34,7 @@ class OpenAPIJSON2Parser extends _Parser.default {
33
34
  }
34
35
  async canParse(file) {
35
36
  const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
36
- const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
37
+ const hasSupportedMediaType = (0, _mediaTypes.selectBestMatch)(this.mediaTypes, file.mediaType) !== null;
37
38
  if (!hasSupportedFileExtension) return false;
38
39
  if (hasSupportedMediaType) return true;
39
40
  if (!hasSupportedMediaType) {
@@ -1,5 +1,6 @@
1
1
  import { pick } from 'ramda';
2
2
  import { parse, mediaTypes as OpenAPI2MediaTypes, detect } from '@speclynx/apidom-parser-adapter-openapi-json-2';
3
+ import { selectBestMatch } from '@swaggerexpert/media-types';
3
4
  import ParserError from "../../../errors/ParserError.mjs";
4
5
  import Parser from "../Parser.mjs";
5
6
  /**
@@ -25,7 +26,7 @@ class OpenAPIJSON2Parser extends Parser {
25
26
  }
26
27
  async canParse(file) {
27
28
  const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
28
- const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
29
+ const hasSupportedMediaType = selectBestMatch(this.mediaTypes, file.mediaType) !== null;
29
30
  if (!hasSupportedFileExtension) return false;
30
31
  if (hasSupportedMediaType) return true;
31
32
  if (!hasSupportedMediaType) {
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _ramda = require("ramda");
9
9
  var _apidomParserAdapterOpenapiJson = require("@speclynx/apidom-parser-adapter-openapi-json-3-0");
10
+ var _mediaTypes = require("@swaggerexpert/media-types");
10
11
  var _ParserError = _interopRequireDefault(require("../../../errors/ParserError.cjs"));
11
12
  var _Parser = _interopRequireDefault(require("../Parser.cjs"));
12
13
  /**
@@ -33,7 +34,7 @@ class OpenAPIJSON3_0Parser extends _Parser.default {
33
34
  }
34
35
  async canParse(file) {
35
36
  const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
36
- const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
37
+ const hasSupportedMediaType = (0, _mediaTypes.selectBestMatch)(this.mediaTypes, file.mediaType) !== null;
37
38
  if (!hasSupportedFileExtension) return false;
38
39
  if (hasSupportedMediaType) return true;
39
40
  if (!hasSupportedMediaType) {
@@ -1,5 +1,6 @@
1
1
  import { pick } from 'ramda';
2
2
  import { parse, mediaTypes as OpenAPI3_0MediaTypes, detect } from '@speclynx/apidom-parser-adapter-openapi-json-3-0';
3
+ import { selectBestMatch } from '@swaggerexpert/media-types';
3
4
  import ParserError from "../../../errors/ParserError.mjs";
4
5
  import Parser from "../Parser.mjs";
5
6
  /**
@@ -25,7 +26,7 @@ class OpenAPIJSON3_0Parser extends Parser {
25
26
  }
26
27
  async canParse(file) {
27
28
  const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
28
- const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
29
+ const hasSupportedMediaType = selectBestMatch(this.mediaTypes, file.mediaType) !== null;
29
30
  if (!hasSupportedFileExtension) return false;
30
31
  if (hasSupportedMediaType) return true;
31
32
  if (!hasSupportedMediaType) {
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _ramda = require("ramda");
9
9
  var _apidomParserAdapterOpenapiJson = require("@speclynx/apidom-parser-adapter-openapi-json-3-1");
10
+ var _mediaTypes = require("@swaggerexpert/media-types");
10
11
  var _ParserError = _interopRequireDefault(require("../../../errors/ParserError.cjs"));
11
12
  var _Parser = _interopRequireDefault(require("../Parser.cjs"));
12
13
  /**
@@ -33,7 +34,7 @@ class OpenAPIJSON3_1Parser extends _Parser.default {
33
34
  }
34
35
  async canParse(file) {
35
36
  const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
36
- const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
37
+ const hasSupportedMediaType = (0, _mediaTypes.selectBestMatch)(this.mediaTypes, file.mediaType) !== null;
37
38
  if (!hasSupportedFileExtension) return false;
38
39
  if (hasSupportedMediaType) return true;
39
40
  if (!hasSupportedMediaType) {
@@ -1,5 +1,6 @@
1
1
  import { pick } from 'ramda';
2
2
  import { parse, mediaTypes as OpenAPI3_1MediaTypes, detect } from '@speclynx/apidom-parser-adapter-openapi-json-3-1';
3
+ import { selectBestMatch } from '@swaggerexpert/media-types';
3
4
  import ParserError from "../../../errors/ParserError.mjs";
4
5
  import Parser from "../Parser.mjs";
5
6
  /**
@@ -25,7 +26,7 @@ class OpenAPIJSON3_1Parser extends Parser {
25
26
  }
26
27
  async canParse(file) {
27
28
  const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
28
- const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
29
+ const hasSupportedMediaType = selectBestMatch(this.mediaTypes, file.mediaType) !== null;
29
30
  if (!hasSupportedFileExtension) return false;
30
31
  if (hasSupportedMediaType) return true;
31
32
  if (!hasSupportedMediaType) {
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _ramda = require("ramda");
9
9
  var _apidomParserAdapterOpenapiYaml = require("@speclynx/apidom-parser-adapter-openapi-yaml-2");
10
+ var _mediaTypes = require("@swaggerexpert/media-types");
10
11
  var _ParserError = _interopRequireDefault(require("../../../errors/ParserError.cjs"));
11
12
  var _Parser = _interopRequireDefault(require("../Parser.cjs"));
12
13
  /**
@@ -33,7 +34,7 @@ class OpenAPIYAML2Parser extends _Parser.default {
33
34
  }
34
35
  async canParse(file) {
35
36
  const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
36
- const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
37
+ const hasSupportedMediaType = (0, _mediaTypes.selectBestMatch)(this.mediaTypes, file.mediaType) !== null;
37
38
  if (!hasSupportedFileExtension) return false;
38
39
  if (hasSupportedMediaType) return true;
39
40
  if (!hasSupportedMediaType) {
@@ -1,5 +1,6 @@
1
1
  import { pick } from 'ramda';
2
2
  import { parse, mediaTypes as OpenAPIYAML2MediaTypes, detect } from '@speclynx/apidom-parser-adapter-openapi-yaml-2';
3
+ import { selectBestMatch } from '@swaggerexpert/media-types';
3
4
  import ParserError from "../../../errors/ParserError.mjs";
4
5
  import Parser from "../Parser.mjs";
5
6
  /**
@@ -25,7 +26,7 @@ class OpenAPIYAML2Parser extends Parser {
25
26
  }
26
27
  async canParse(file) {
27
28
  const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
28
- const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
29
+ const hasSupportedMediaType = selectBestMatch(this.mediaTypes, file.mediaType) !== null;
29
30
  if (!hasSupportedFileExtension) return false;
30
31
  if (hasSupportedMediaType) return true;
31
32
  if (!hasSupportedMediaType) {
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _ramda = require("ramda");
9
9
  var _apidomParserAdapterOpenapiYaml = require("@speclynx/apidom-parser-adapter-openapi-yaml-3-0");
10
+ var _mediaTypes = require("@swaggerexpert/media-types");
10
11
  var _ParserError = _interopRequireDefault(require("../../../errors/ParserError.cjs"));
11
12
  var _Parser = _interopRequireDefault(require("../Parser.cjs"));
12
13
  /**
@@ -33,7 +34,7 @@ class OpenAPIYAML3_0Parser extends _Parser.default {
33
34
  }
34
35
  async canParse(file) {
35
36
  const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
36
- const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
37
+ const hasSupportedMediaType = (0, _mediaTypes.selectBestMatch)(this.mediaTypes, file.mediaType) !== null;
37
38
  if (!hasSupportedFileExtension) return false;
38
39
  if (hasSupportedMediaType) return true;
39
40
  if (!hasSupportedMediaType) {
@@ -1,5 +1,6 @@
1
1
  import { pick } from 'ramda';
2
2
  import { parse, mediaTypes as OpenAPIYAML3_0MediaTypes, detect } from '@speclynx/apidom-parser-adapter-openapi-yaml-3-0';
3
+ import { selectBestMatch } from '@swaggerexpert/media-types';
3
4
  import ParserError from "../../../errors/ParserError.mjs";
4
5
  import Parser from "../Parser.mjs";
5
6
  /**
@@ -25,7 +26,7 @@ class OpenAPIYAML3_0Parser extends Parser {
25
26
  }
26
27
  async canParse(file) {
27
28
  const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
28
- const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
29
+ const hasSupportedMediaType = selectBestMatch(this.mediaTypes, file.mediaType) !== null;
29
30
  if (!hasSupportedFileExtension) return false;
30
31
  if (hasSupportedMediaType) return true;
31
32
  if (!hasSupportedMediaType) {
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _ramda = require("ramda");
9
9
  var _apidomParserAdapterOpenapiYaml = require("@speclynx/apidom-parser-adapter-openapi-yaml-3-1");
10
+ var _mediaTypes = require("@swaggerexpert/media-types");
10
11
  var _ParserError = _interopRequireDefault(require("../../../errors/ParserError.cjs"));
11
12
  var _Parser = _interopRequireDefault(require("../Parser.cjs"));
12
13
  /**
@@ -33,7 +34,7 @@ class OpenAPIYAML3_1Parser extends _Parser.default {
33
34
  }
34
35
  async canParse(file) {
35
36
  const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
36
- const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
37
+ const hasSupportedMediaType = (0, _mediaTypes.selectBestMatch)(this.mediaTypes, file.mediaType) !== null;
37
38
  if (!hasSupportedFileExtension) return false;
38
39
  if (hasSupportedMediaType) return true;
39
40
  if (!hasSupportedMediaType) {
@@ -1,5 +1,6 @@
1
1
  import { pick } from 'ramda';
2
2
  import { parse, mediaTypes as OpenAPIYAML3_1MediaTypes, detect } from '@speclynx/apidom-parser-adapter-openapi-yaml-3-1';
3
+ import { selectBestMatch } from '@swaggerexpert/media-types';
3
4
  import ParserError from "../../../errors/ParserError.mjs";
4
5
  import Parser from "../Parser.mjs";
5
6
  /**
@@ -25,7 +26,7 @@ class OpenAPIYAML3_1Parser extends Parser {
25
26
  }
26
27
  async canParse(file) {
27
28
  const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
28
- const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
29
+ const hasSupportedMediaType = selectBestMatch(this.mediaTypes, file.mediaType) !== null;
29
30
  if (!hasSupportedFileExtension) return false;
30
31
  if (hasSupportedMediaType) return true;
31
32
  if (!hasSupportedMediaType) {
@@ -13,6 +13,7 @@ Object.defineProperty(exports, "parseExtends", {
13
13
  });
14
14
  var _ramda = require("ramda");
15
15
  var _apidomParserAdapterOverlayJson = require("@speclynx/apidom-parser-adapter-overlay-json-1");
16
+ var _mediaTypes = require("@swaggerexpert/media-types");
16
17
  var _ParserError = _interopRequireDefault(require("../../../errors/ParserError.cjs"));
17
18
  var _Parser = _interopRequireDefault(require("../Parser.cjs"));
18
19
  var _extends = require("./extends.cjs");
@@ -43,7 +44,7 @@ class OverlayJSON1Parser extends _Parser.default {
43
44
  }
44
45
  async canParse(file) {
45
46
  const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
46
- const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
47
+ const hasSupportedMediaType = (0, _mediaTypes.selectBestMatch)(this.mediaTypes, file.mediaType) !== null;
47
48
  if (!hasSupportedFileExtension) return false;
48
49
  if (hasSupportedMediaType) return true;
49
50
  if (!hasSupportedMediaType) {