@speclynx/apidom-reference 6.2.0 → 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 (91) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.md +45 -0
  3. package/dist/apidom-reference.browser.js +4701 -3478
  4. package/dist/apidom-reference.browser.min.js +1 -1
  5. package/package.json +29 -28
  6. package/src/File.cjs +5 -2
  7. package/src/File.mjs +5 -2
  8. package/src/bundle/strategies/arazzo-1/index.cjs +3 -2
  9. package/src/bundle/strategies/arazzo-1/index.mjs +3 -2
  10. package/src/bundle/strategies/asyncapi-2/index.cjs +3 -2
  11. package/src/bundle/strategies/asyncapi-2/index.mjs +3 -2
  12. package/src/bundle/strategies/openapi-2/index.cjs +3 -2
  13. package/src/bundle/strategies/openapi-2/index.mjs +3 -2
  14. package/src/bundle/strategies/openapi-3-0/index.cjs +3 -2
  15. package/src/bundle/strategies/openapi-3-0/index.mjs +3 -2
  16. package/src/bundle/strategies/openapi-3-1/index.cjs +3 -2
  17. package/src/bundle/strategies/openapi-3-1/index.mjs +3 -2
  18. package/src/dereference/strategies/DereferenceVisitor.cjs +588 -0
  19. package/src/dereference/strategies/DereferenceVisitor.mjs +580 -0
  20. package/src/dereference/strategies/arazzo-1/index.cjs +14 -39
  21. package/src/dereference/strategies/arazzo-1/index.mjs +15 -40
  22. package/src/dereference/strategies/arazzo-1/visitor.cjs +207 -331
  23. package/src/dereference/strategies/arazzo-1/visitor.mjs +215 -338
  24. package/src/dereference/strategies/asyncapi-2/index.cjs +11 -39
  25. package/src/dereference/strategies/asyncapi-2/index.mjs +11 -39
  26. package/src/dereference/strategies/asyncapi-2/visitor.cjs +133 -425
  27. package/src/dereference/strategies/asyncapi-2/visitor.mjs +137 -429
  28. package/src/dereference/strategies/openapi-2/index.cjs +12 -42
  29. package/src/dereference/strategies/openapi-2/index.mjs +12 -42
  30. package/src/dereference/strategies/openapi-2/visitor.cjs +168 -532
  31. package/src/dereference/strategies/openapi-2/visitor.mjs +172 -536
  32. package/src/dereference/strategies/openapi-3-0/index.cjs +12 -42
  33. package/src/dereference/strategies/openapi-3-0/index.mjs +12 -42
  34. package/src/dereference/strategies/openapi-3-0/visitor.cjs +194 -468
  35. package/src/dereference/strategies/openapi-3-0/visitor.mjs +199 -473
  36. package/src/dereference/strategies/openapi-3-1/index.cjs +16 -42
  37. package/src/dereference/strategies/openapi-3-1/index.mjs +16 -42
  38. package/src/dereference/strategies/openapi-3-1/visitor.cjs +350 -602
  39. package/src/dereference/strategies/openapi-3-1/visitor.mjs +357 -608
  40. package/src/dereference/strategies/overlay-1/index.cjs +3 -2
  41. package/src/dereference/strategies/overlay-1/index.mjs +3 -2
  42. package/src/index.cjs +0 -7
  43. package/src/index.mjs +0 -1
  44. package/src/parse/index.cjs +9 -1
  45. package/src/parse/index.mjs +9 -1
  46. package/src/parse/parsers/apidom-json/index.cjs +2 -1
  47. package/src/parse/parsers/apidom-json/index.mjs +2 -1
  48. package/src/parse/parsers/arazzo-json-1/index.cjs +2 -1
  49. package/src/parse/parsers/arazzo-json-1/index.mjs +2 -1
  50. package/src/parse/parsers/arazzo-yaml-1/index.cjs +2 -1
  51. package/src/parse/parsers/arazzo-yaml-1/index.mjs +2 -1
  52. package/src/parse/parsers/asyncapi-json-2/index.cjs +2 -1
  53. package/src/parse/parsers/asyncapi-json-2/index.mjs +2 -1
  54. package/src/parse/parsers/asyncapi-yaml-2/index.cjs +2 -1
  55. package/src/parse/parsers/asyncapi-yaml-2/index.mjs +2 -1
  56. package/src/parse/parsers/json/index.cjs +2 -1
  57. package/src/parse/parsers/json/index.mjs +2 -1
  58. package/src/parse/parsers/openapi-json-2/index.cjs +2 -1
  59. package/src/parse/parsers/openapi-json-2/index.mjs +2 -1
  60. package/src/parse/parsers/openapi-json-3-0/index.cjs +2 -1
  61. package/src/parse/parsers/openapi-json-3-0/index.mjs +2 -1
  62. package/src/parse/parsers/openapi-json-3-1/index.cjs +2 -1
  63. package/src/parse/parsers/openapi-json-3-1/index.mjs +2 -1
  64. package/src/parse/parsers/openapi-yaml-2/index.cjs +2 -1
  65. package/src/parse/parsers/openapi-yaml-2/index.mjs +2 -1
  66. package/src/parse/parsers/openapi-yaml-3-0/index.cjs +2 -1
  67. package/src/parse/parsers/openapi-yaml-3-0/index.mjs +2 -1
  68. package/src/parse/parsers/openapi-yaml-3-1/index.cjs +2 -1
  69. package/src/parse/parsers/openapi-yaml-3-1/index.mjs +2 -1
  70. package/src/parse/parsers/overlay-json-1/index.cjs +2 -1
  71. package/src/parse/parsers/overlay-json-1/index.mjs +2 -1
  72. package/src/parse/parsers/overlay-yaml-1/index.cjs +2 -1
  73. package/src/parse/parsers/overlay-yaml-1/index.mjs +2 -1
  74. package/src/parse/parsers/yaml-1-2/index.cjs +2 -1
  75. package/src/parse/parsers/yaml-1-2/index.mjs +2 -1
  76. package/types/apidom-reference.d.ts +0 -9
  77. package/types/dereference/strategies/DereferenceVisitor.d.ts +224 -0
  78. package/types/dereference/strategies/arazzo-1/index.d.ts +0 -1
  79. package/types/dereference/strategies/arazzo-1/visitor.d.ts +38 -38
  80. package/types/dereference/strategies/asyncapi-2/index.d.ts +0 -1
  81. package/types/dereference/strategies/asyncapi-2/visitor.d.ts +13 -29
  82. package/types/dereference/strategies/openapi-2/index.d.ts +0 -1
  83. package/types/dereference/strategies/openapi-2/visitor.d.ts +14 -29
  84. package/types/dereference/strategies/openapi-3-0/index.d.ts +0 -1
  85. package/types/dereference/strategies/openapi-3-0/visitor.d.ts +13 -28
  86. package/types/dereference/strategies/openapi-3-1/index.d.ts +0 -1
  87. package/types/dereference/strategies/openapi-3-1/visitor.d.ts +37 -33
  88. package/types/index.d.ts +0 -1
  89. package/src/dereference/util.cjs +0 -33
  90. package/src/dereference/util.mjs +0 -27
  91. package/types/dereference/util.d.ts +0 -9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@speclynx/apidom-reference",
3
- "version": "6.2.0",
3
+ "version": "7.0.0",
4
4
  "description": "Advanced algorithms for semantic ApiDOM manipulations like dereferencing or resolution.",
5
5
  "keywords": [
6
6
  "apidom",
@@ -300,33 +300,34 @@
300
300
  "license": "Apache-2.0",
301
301
  "dependencies": {
302
302
  "@babel/runtime-corejs3": "^8.1.0",
303
- "@speclynx/apidom-core": "6.2.0",
304
- "@speclynx/apidom-datamodel": "6.2.0",
305
- "@speclynx/apidom-error": "6.2.0",
306
- "@speclynx/apidom-json-pointer": "6.2.0",
307
- "@speclynx/apidom-ns-arazzo-1": "6.2.0",
308
- "@speclynx/apidom-ns-asyncapi-2": "6.2.0",
309
- "@speclynx/apidom-ns-json-schema-2020-12": "6.2.0",
310
- "@speclynx/apidom-ns-openapi-2": "6.2.0",
311
- "@speclynx/apidom-ns-openapi-3-0": "6.2.0",
312
- "@speclynx/apidom-ns-openapi-3-1": "6.2.0",
313
- "@speclynx/apidom-ns-overlay-1": "6.2.0",
314
- "@speclynx/apidom-parser-adapter-arazzo-json-1": "6.2.0",
315
- "@speclynx/apidom-parser-adapter-arazzo-yaml-1": "6.2.0",
316
- "@speclynx/apidom-parser-adapter-asyncapi-json-2": "6.2.0",
317
- "@speclynx/apidom-parser-adapter-asyncapi-yaml-2": "6.2.0",
318
- "@speclynx/apidom-parser-adapter-json": "6.2.0",
319
- "@speclynx/apidom-parser-adapter-openapi-json-2": "6.2.0",
320
- "@speclynx/apidom-parser-adapter-openapi-json-3-0": "6.2.0",
321
- "@speclynx/apidom-parser-adapter-openapi-json-3-1": "6.2.0",
322
- "@speclynx/apidom-parser-adapter-openapi-yaml-2": "6.2.0",
323
- "@speclynx/apidom-parser-adapter-openapi-yaml-3-0": "6.2.0",
324
- "@speclynx/apidom-parser-adapter-openapi-yaml-3-1": "6.2.0",
325
- "@speclynx/apidom-parser-adapter-overlay-json-1": "6.2.0",
326
- "@speclynx/apidom-parser-adapter-overlay-yaml-1": "6.2.0",
327
- "@speclynx/apidom-parser-adapter-yaml-1-2": "6.2.0",
328
- "@speclynx/apidom-traverse": "6.2.0",
303
+ "@speclynx/apidom-core": "7.0.0",
304
+ "@speclynx/apidom-datamodel": "7.0.0",
305
+ "@speclynx/apidom-error": "7.0.0",
306
+ "@speclynx/apidom-json-pointer": "7.0.0",
307
+ "@speclynx/apidom-ns-arazzo-1": "7.0.0",
308
+ "@speclynx/apidom-ns-asyncapi-2": "7.0.0",
309
+ "@speclynx/apidom-ns-json-schema-2020-12": "7.0.0",
310
+ "@speclynx/apidom-ns-openapi-2": "7.0.0",
311
+ "@speclynx/apidom-ns-openapi-3-0": "7.0.0",
312
+ "@speclynx/apidom-ns-openapi-3-1": "7.0.0",
313
+ "@speclynx/apidom-ns-overlay-1": "7.0.0",
314
+ "@speclynx/apidom-parser-adapter-arazzo-json-1": "7.0.0",
315
+ "@speclynx/apidom-parser-adapter-arazzo-yaml-1": "7.0.0",
316
+ "@speclynx/apidom-parser-adapter-asyncapi-json-2": "7.0.0",
317
+ "@speclynx/apidom-parser-adapter-asyncapi-yaml-2": "7.0.0",
318
+ "@speclynx/apidom-parser-adapter-json": "7.0.0",
319
+ "@speclynx/apidom-parser-adapter-openapi-json-2": "7.0.0",
320
+ "@speclynx/apidom-parser-adapter-openapi-json-3-0": "7.0.0",
321
+ "@speclynx/apidom-parser-adapter-openapi-json-3-1": "7.0.0",
322
+ "@speclynx/apidom-parser-adapter-openapi-yaml-2": "7.0.0",
323
+ "@speclynx/apidom-parser-adapter-openapi-yaml-3-0": "7.0.0",
324
+ "@speclynx/apidom-parser-adapter-openapi-yaml-3-1": "7.0.0",
325
+ "@speclynx/apidom-parser-adapter-overlay-json-1": "7.0.0",
326
+ "@speclynx/apidom-parser-adapter-overlay-yaml-1": "7.0.0",
327
+ "@speclynx/apidom-parser-adapter-yaml-1-2": "7.0.0",
328
+ "@speclynx/apidom-traverse": "7.0.0",
329
329
  "@swaggerexpert/arazzo-runtime-expression": "^3.2.0",
330
+ "@swaggerexpert/media-types": "^1.0.3",
330
331
  "axios": "^1.21.0",
331
332
  "picomatch": "^4.0.7",
332
333
  "ramda": "~0.32.0",
@@ -346,5 +347,5 @@
346
347
  "README.md",
347
348
  "CHANGELOG.md"
348
349
  ],
349
- "gitHead": "13bd86fba1e6c36dd97423e195c48994901c5422"
350
+ "gitHead": "40c7c9837e4fb303453cec3d633bc06ee6be1e8b"
350
351
  }
package/src/File.cjs CHANGED
@@ -23,12 +23,15 @@ class File {
23
23
  parseResult;
24
24
  constructor({
25
25
  uri,
26
- mediaType = 'text/plain',
26
+ mediaType,
27
27
  data,
28
28
  parseResult
29
29
  }) {
30
30
  this.uri = uri;
31
- this.mediaType = mediaType;
31
+ // media types are compared as Content-Type field values, which exclude surrounding whitespace;
32
+ // a missing or blank media type means none was given
33
+ const trimmedMediaType = (0, _ramdaAdjunct.isString)(mediaType) ? mediaType.trim() : '';
34
+ this.mediaType = trimmedMediaType === '' ? 'text/plain' : trimmedMediaType;
32
35
  this.data = data;
33
36
  this.parseResult = parseResult;
34
37
  }
package/src/File.mjs CHANGED
@@ -15,12 +15,15 @@ class File {
15
15
  parseResult;
16
16
  constructor({
17
17
  uri,
18
- mediaType = 'text/plain',
18
+ mediaType,
19
19
  data,
20
20
  parseResult
21
21
  }) {
22
22
  this.uri = uri;
23
- this.mediaType = mediaType;
23
+ // media types are compared as Content-Type field values, which exclude surrounding whitespace;
24
+ // a missing or blank media type means none was given
25
+ const trimmedMediaType = isString(mediaType) ? mediaType.trim() : '';
26
+ this.mediaType = trimmedMediaType === '' ? 'text/plain' : trimmedMediaType;
24
27
  this.data = data;
25
28
  this.parseResult = parseResult;
26
29
  }
@@ -14,6 +14,7 @@ exports.default = void 0;
14
14
  var _apidomDatamodel = require("@speclynx/apidom-datamodel");
15
15
  var _apidomTraverse = require("@speclynx/apidom-traverse");
16
16
  var _apidomNsArazzo = require("@speclynx/apidom-ns-arazzo-1");
17
+ var _mediaTypes = require("@swaggerexpert/media-types");
17
18
  var _Reference = _interopRequireDefault(require("../../../Reference.cjs"));
18
19
  var _ReferenceSet = _interopRequireDefault(require("../../../ReferenceSet.cjs"));
19
20
  var _BundleStrategy = _interopRequireDefault(require("../BundleStrategy.cjs"));
@@ -34,8 +35,8 @@ class Arazzo1BundleStrategy extends _BundleStrategy.default {
34
35
  }
35
36
  canBundle(file) {
36
37
  // assert by media type
37
- if (file.mediaType !== 'text/plain') {
38
- return _apidomNsArazzo.mediaTypes.includes(file.mediaType);
38
+ if (!(0, _mediaTypes.matches)('text/plain', file.mediaType)) {
39
+ return (0, _mediaTypes.selectBestMatch)(_apidomNsArazzo.mediaTypes, file.mediaType) !== null;
39
40
  }
40
41
 
41
42
  // assert by inspecting ApiDOM
@@ -1,6 +1,7 @@
1
1
  import { cloneDeep } from '@speclynx/apidom-datamodel';
2
2
  import { traverseAsync } from '@speclynx/apidom-traverse';
3
3
  import { mediaTypes, isArazzoSpecification1Element } from '@speclynx/apidom-ns-arazzo-1';
4
+ import { matches, selectBestMatch } from '@swaggerexpert/media-types';
4
5
  import Reference from "../../../Reference.mjs";
5
6
  import ReferenceSet from "../../../ReferenceSet.mjs";
6
7
  import BundleStrategy from "../BundleStrategy.mjs";
@@ -20,8 +21,8 @@ class Arazzo1BundleStrategy extends BundleStrategy {
20
21
  }
21
22
  canBundle(file) {
22
23
  // assert by media type
23
- if (file.mediaType !== 'text/plain') {
24
- return mediaTypes.includes(file.mediaType);
24
+ if (!matches('text/plain', file.mediaType)) {
25
+ return selectBestMatch(mediaTypes, file.mediaType) !== null;
25
26
  }
26
27
 
27
28
  // assert by inspecting ApiDOM
@@ -14,6 +14,7 @@ exports.default = void 0;
14
14
  var _apidomDatamodel = require("@speclynx/apidom-datamodel");
15
15
  var _apidomTraverse = require("@speclynx/apidom-traverse");
16
16
  var _apidomNsAsyncapi = require("@speclynx/apidom-ns-asyncapi-2");
17
+ var _mediaTypes = require("@swaggerexpert/media-types");
17
18
  var _Reference = _interopRequireDefault(require("../../../Reference.cjs"));
18
19
  var _ReferenceSet = _interopRequireDefault(require("../../../ReferenceSet.cjs"));
19
20
  var _BundleStrategy = _interopRequireDefault(require("../BundleStrategy.cjs"));
@@ -34,8 +35,8 @@ class AsyncAPI2BundleStrategy extends _BundleStrategy.default {
34
35
  }
35
36
  canBundle(file) {
36
37
  // assert by media type
37
- if (file.mediaType !== 'text/plain') {
38
- return _apidomNsAsyncapi.mediaTypes.includes(file.mediaType);
38
+ if (!(0, _mediaTypes.matches)('text/plain', file.mediaType)) {
39
+ return (0, _mediaTypes.selectBestMatch)(_apidomNsAsyncapi.mediaTypes, file.mediaType) !== null;
39
40
  }
40
41
 
41
42
  // assert by inspecting ApiDOM
@@ -1,6 +1,7 @@
1
1
  import { cloneDeep } from '@speclynx/apidom-datamodel';
2
2
  import { traverseAsync } from '@speclynx/apidom-traverse';
3
3
  import { mediaTypes, isAsyncApi2Element } from '@speclynx/apidom-ns-asyncapi-2';
4
+ import { matches, selectBestMatch } from '@swaggerexpert/media-types';
4
5
  import Reference from "../../../Reference.mjs";
5
6
  import ReferenceSet from "../../../ReferenceSet.mjs";
6
7
  import BundleStrategy from "../BundleStrategy.mjs";
@@ -20,8 +21,8 @@ class AsyncAPI2BundleStrategy extends BundleStrategy {
20
21
  }
21
22
  canBundle(file) {
22
23
  // assert by media type
23
- if (file.mediaType !== 'text/plain') {
24
- return mediaTypes.includes(file.mediaType);
24
+ if (!matches('text/plain', file.mediaType)) {
25
+ return selectBestMatch(mediaTypes, file.mediaType) !== null;
25
26
  }
26
27
 
27
28
  // assert by inspecting ApiDOM
@@ -14,6 +14,7 @@ exports.default = void 0;
14
14
  var _apidomDatamodel = require("@speclynx/apidom-datamodel");
15
15
  var _apidomTraverse = require("@speclynx/apidom-traverse");
16
16
  var _apidomNsOpenapi = require("@speclynx/apidom-ns-openapi-2");
17
+ var _mediaTypes = require("@swaggerexpert/media-types");
17
18
  var _Reference = _interopRequireDefault(require("../../../Reference.cjs"));
18
19
  var _ReferenceSet = _interopRequireDefault(require("../../../ReferenceSet.cjs"));
19
20
  var _BundleStrategy = _interopRequireDefault(require("../BundleStrategy.cjs"));
@@ -34,8 +35,8 @@ class OpenAPI2BundleStrategy extends _BundleStrategy.default {
34
35
  }
35
36
  canBundle(file) {
36
37
  // assert by media type
37
- if (file.mediaType !== 'text/plain') {
38
- return _apidomNsOpenapi.mediaTypes.includes(file.mediaType);
38
+ if (!(0, _mediaTypes.matches)('text/plain', file.mediaType)) {
39
+ return (0, _mediaTypes.selectBestMatch)(_apidomNsOpenapi.mediaTypes, file.mediaType) !== null;
39
40
  }
40
41
 
41
42
  // assert by inspecting ApiDOM
@@ -1,6 +1,7 @@
1
1
  import { cloneDeep } from '@speclynx/apidom-datamodel';
2
2
  import { traverseAsync } from '@speclynx/apidom-traverse';
3
3
  import { mediaTypes, isSwaggerElement } from '@speclynx/apidom-ns-openapi-2';
4
+ import { matches, selectBestMatch } from '@swaggerexpert/media-types';
4
5
  import Reference from "../../../Reference.mjs";
5
6
  import ReferenceSet from "../../../ReferenceSet.mjs";
6
7
  import BundleStrategy from "../BundleStrategy.mjs";
@@ -20,8 +21,8 @@ class OpenAPI2BundleStrategy extends BundleStrategy {
20
21
  }
21
22
  canBundle(file) {
22
23
  // assert by media type
23
- if (file.mediaType !== 'text/plain') {
24
- return mediaTypes.includes(file.mediaType);
24
+ if (!matches('text/plain', file.mediaType)) {
25
+ return selectBestMatch(mediaTypes, file.mediaType) !== null;
25
26
  }
26
27
 
27
28
  // assert by inspecting ApiDOM
@@ -14,6 +14,7 @@ exports.default = void 0;
14
14
  var _apidomDatamodel = require("@speclynx/apidom-datamodel");
15
15
  var _apidomTraverse = require("@speclynx/apidom-traverse");
16
16
  var _apidomNsOpenapi = require("@speclynx/apidom-ns-openapi-3-0");
17
+ var _mediaTypes = require("@swaggerexpert/media-types");
17
18
  var _Reference = _interopRequireDefault(require("../../../Reference.cjs"));
18
19
  var _ReferenceSet = _interopRequireDefault(require("../../../ReferenceSet.cjs"));
19
20
  var _BundleStrategy = _interopRequireDefault(require("../BundleStrategy.cjs"));
@@ -34,8 +35,8 @@ class OpenAPI3_0BundleStrategy extends _BundleStrategy.default {
34
35
  }
35
36
  canBundle(file) {
36
37
  // assert by media type
37
- if (file.mediaType !== 'text/plain') {
38
- return _apidomNsOpenapi.mediaTypes.includes(file.mediaType);
38
+ if (!(0, _mediaTypes.matches)('text/plain', file.mediaType)) {
39
+ return (0, _mediaTypes.selectBestMatch)(_apidomNsOpenapi.mediaTypes, file.mediaType) !== null;
39
40
  }
40
41
 
41
42
  // assert by inspecting ApiDOM
@@ -1,6 +1,7 @@
1
1
  import { cloneDeep } from '@speclynx/apidom-datamodel';
2
2
  import { traverseAsync } from '@speclynx/apidom-traverse';
3
3
  import { mediaTypes, isOpenApi3_0Element } from '@speclynx/apidom-ns-openapi-3-0';
4
+ import { matches, selectBestMatch } from '@swaggerexpert/media-types';
4
5
  import Reference from "../../../Reference.mjs";
5
6
  import ReferenceSet from "../../../ReferenceSet.mjs";
6
7
  import BundleStrategy from "../BundleStrategy.mjs";
@@ -20,8 +21,8 @@ class OpenAPI3_0BundleStrategy extends BundleStrategy {
20
21
  }
21
22
  canBundle(file) {
22
23
  // assert by media type
23
- if (file.mediaType !== 'text/plain') {
24
- return mediaTypes.includes(file.mediaType);
24
+ if (!matches('text/plain', file.mediaType)) {
25
+ return selectBestMatch(mediaTypes, file.mediaType) !== null;
25
26
  }
26
27
 
27
28
  // assert by inspecting ApiDOM
@@ -14,6 +14,7 @@ exports.default = void 0;
14
14
  var _apidomDatamodel = require("@speclynx/apidom-datamodel");
15
15
  var _apidomTraverse = require("@speclynx/apidom-traverse");
16
16
  var _apidomNsOpenapi = require("@speclynx/apidom-ns-openapi-3-1");
17
+ var _mediaTypes = require("@swaggerexpert/media-types");
17
18
  var _Reference = _interopRequireDefault(require("../../../Reference.cjs"));
18
19
  var _ReferenceSet = _interopRequireDefault(require("../../../ReferenceSet.cjs"));
19
20
  var _BundleStrategy = _interopRequireDefault(require("../BundleStrategy.cjs"));
@@ -34,8 +35,8 @@ class OpenAPI3_1BundleStrategy extends _BundleStrategy.default {
34
35
  }
35
36
  canBundle(file) {
36
37
  // assert by media type
37
- if (file.mediaType !== 'text/plain') {
38
- return _apidomNsOpenapi.mediaTypes.includes(file.mediaType);
38
+ if (!(0, _mediaTypes.matches)('text/plain', file.mediaType)) {
39
+ return (0, _mediaTypes.selectBestMatch)(_apidomNsOpenapi.mediaTypes, file.mediaType) !== null;
39
40
  }
40
41
 
41
42
  // assert by inspecting ApiDOM
@@ -1,6 +1,7 @@
1
1
  import { cloneDeep } from '@speclynx/apidom-datamodel';
2
2
  import { traverseAsync } from '@speclynx/apidom-traverse';
3
3
  import { mediaTypes, isOpenApi3_1Element } from '@speclynx/apidom-ns-openapi-3-1';
4
+ import { matches, selectBestMatch } from '@swaggerexpert/media-types';
4
5
  import Reference from "../../../Reference.mjs";
5
6
  import ReferenceSet from "../../../ReferenceSet.mjs";
6
7
  import BundleStrategy from "../BundleStrategy.mjs";
@@ -20,8 +21,8 @@ class OpenAPI3_1BundleStrategy extends BundleStrategy {
20
21
  }
21
22
  canBundle(file) {
22
23
  // assert by media type
23
- if (file.mediaType !== 'text/plain') {
24
- return mediaTypes.includes(file.mediaType);
24
+ if (!matches('text/plain', file.mediaType)) {
25
+ return selectBestMatch(mediaTypes, file.mediaType) !== null;
25
26
  }
26
27
 
27
28
  // assert by inspecting ApiDOM