@speclynx/apidom-reference 2.6.1 → 2.8.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 (31) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +60 -33
  3. package/dist/apidom-reference.browser.js +349 -99
  4. package/dist/apidom-reference.browser.min.js +1 -1
  5. package/package.json +25 -25
  6. package/src/configuration/saturated.cjs +2 -4
  7. package/src/configuration/saturated.mjs +3 -5
  8. package/src/dereference/strategies/arazzo-1/index.cjs +10 -0
  9. package/src/dereference/strategies/arazzo-1/index.mjs +10 -0
  10. package/src/dereference/strategies/arazzo-1/source-description.cjs +179 -0
  11. package/src/dereference/strategies/arazzo-1/source-description.mjs +172 -0
  12. package/src/dereference/strategies/openapi-3-0/visitor.cjs +2 -2
  13. package/src/dereference/strategies/openapi-3-0/visitor.mjs +2 -2
  14. package/src/dereference/strategies/openapi-3-1/visitor.cjs +2 -2
  15. package/src/dereference/strategies/openapi-3-1/visitor.mjs +2 -2
  16. package/src/parse/parsers/arazzo-json-1/index.cjs +3 -5
  17. package/src/parse/parsers/arazzo-json-1/index.mjs +3 -5
  18. package/src/parse/parsers/arazzo-json-1/{source-description.cjs → source-descriptions.cjs} +47 -21
  19. package/src/parse/parsers/arazzo-json-1/{source-description.mjs → source-descriptions.mjs} +47 -22
  20. package/src/parse/parsers/arazzo-yaml-1/index.cjs +3 -5
  21. package/src/parse/parsers/arazzo-yaml-1/index.mjs +3 -5
  22. package/src/parse/parsers/arazzo-yaml-1/source-descriptions.cjs +12 -0
  23. package/src/parse/parsers/arazzo-yaml-1/source-descriptions.mjs +7 -0
  24. package/src/resolve/resolvers/file/index-browser.cjs +1 -1
  25. package/src/resolve/resolvers/file/index-browser.mjs +1 -1
  26. package/types/dereference/strategies/arazzo-1/source-description.d.ts +8 -0
  27. package/types/parse/parsers/arazzo-json-1/index.d.ts +1 -3
  28. package/types/parse/parsers/arazzo-json-1/source-descriptions.d.ts +31 -0
  29. package/types/parse/parsers/arazzo-yaml-1/index.d.ts +1 -3
  30. package/types/parse/parsers/arazzo-yaml-1/source-descriptions.d.ts +6 -0
  31. package/types/parse/parsers/arazzo-json-1/source-description.d.ts +0 -13
@@ -816,9 +816,9 @@ __webpack_require__.r(__webpack_exports__);
816
816
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
817
817
  /* harmony export */ Arazzo1DereferenceVisitor: () => (/* reexport safe */ _visitor_ts__WEBPACK_IMPORTED_MODULE_9__["default"]),
818
818
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
819
- /* harmony export */ maybeRefractToJSONSchemaElement: () => (/* reexport safe */ _util_ts__WEBPACK_IMPORTED_MODULE_10__.maybeRefractToJSONSchemaElement),
820
- /* harmony export */ resolveSchema$idField: () => (/* reexport safe */ _util_ts__WEBPACK_IMPORTED_MODULE_11__.resolveSchema$idField),
821
- /* harmony export */ resolveSchema$refField: () => (/* reexport safe */ _util_ts__WEBPACK_IMPORTED_MODULE_11__.resolveSchema$refField)
819
+ /* harmony export */ maybeRefractToJSONSchemaElement: () => (/* reexport safe */ _util_ts__WEBPACK_IMPORTED_MODULE_11__.maybeRefractToJSONSchemaElement),
820
+ /* harmony export */ resolveSchema$idField: () => (/* reexport safe */ _util_ts__WEBPACK_IMPORTED_MODULE_12__.resolveSchema$idField),
821
+ /* harmony export */ resolveSchema$refField: () => (/* reexport safe */ _util_ts__WEBPACK_IMPORTED_MODULE_12__.resolveSchema$refField)
822
822
  /* harmony export */ });
823
823
  /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55156);
824
824
  /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12111);
@@ -830,8 +830,10 @@ __webpack_require__.r(__webpack_exports__);
830
830
  /* harmony import */ var _Reference_ts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(98979);
831
831
  /* harmony import */ var _ReferenceSet_ts__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(24131);
832
832
  /* harmony import */ var _visitor_ts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(31843);
833
- /* harmony import */ var _util_ts__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(91005);
834
- /* harmony import */ var _util_ts__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(60888);
833
+ /* harmony import */ var _source_description_ts__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(99371);
834
+ /* harmony import */ var _util_ts__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(91005);
835
+ /* harmony import */ var _util_ts__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(60888);
836
+
835
837
 
836
838
 
837
839
 
@@ -901,6 +903,15 @@ class Arazzo1DereferenceStrategy extends _DereferenceStrategy_ts__WEBPACK_IMPORT
901
903
  mutable: true
902
904
  });
903
905
 
906
+ /**
907
+ * Dereference source descriptions if option is enabled.
908
+ */
909
+ const shouldDereferenceSourceDescriptions = options?.dereference?.strategyOpts?.[this.name]?.sourceDescriptions ?? options?.dereference?.strategyOpts?.sourceDescriptions;
910
+ if (shouldDereferenceSourceDescriptions) {
911
+ const sourceDescriptions = await (0,_source_description_ts__WEBPACK_IMPORTED_MODULE_10__.dereferenceSourceDescriptions)(dereferencedElement, reference, options);
912
+ dereferencedElement.push(...sourceDescriptions);
913
+ }
914
+
904
915
  /**
905
916
  * If immutable option is set, replay refs from the refSet.
906
917
  */
@@ -928,6 +939,203 @@ class Arazzo1DereferenceStrategy extends _DereferenceStrategy_ts__WEBPACK_IMPORT
928
939
 
929
940
  /***/ },
930
941
 
942
+ /***/ 99371
943
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
944
+
945
+ "use strict";
946
+ __webpack_require__.r(__webpack_exports__);
947
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
948
+ /* harmony export */ dereferenceSourceDescriptions: () => (/* binding */ dereferenceSourceDescriptions)
949
+ /* harmony export */ });
950
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25162);
951
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12111);
952
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(84660);
953
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4823);
954
+ /* harmony import */ var _speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(28839);
955
+ /* harmony import */ var _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(26365);
956
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(32131);
957
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(76332);
958
+ /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(44673);
959
+ /* harmony import */ var _util_url_ts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(30658);
960
+ /* harmony import */ var _options_util_ts__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(86547);
961
+ /* harmony import */ var _index_ts__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(42037);
962
+
963
+
964
+
965
+
966
+
967
+
968
+
969
+
970
+
971
+
972
+ // shared key for recursion state (works across JSON/YAML documents)
973
+ const ARAZZO_DEREFERENCE_RECURSION_KEY = 'arazzo-1';
974
+ /**
975
+ * Dereferences a single source description element.
976
+ * Returns ParseResultElement on success, or with annotation if skipped.
977
+ */
978
+ async function dereferenceSourceDescription(sourceDescription, ctx) {
979
+ const parseResult = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__["default"]();
980
+ if (!(0,_speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_4__.isSourceDescriptionElement)(sourceDescription)) {
981
+ const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]('Element is not a valid SourceDescriptionElement. Skipping');
982
+ annotation.classes.push('warning');
983
+ parseResult.push(annotation);
984
+ return parseResult;
985
+ }
986
+
987
+ // set class and metadata from source description element
988
+ parseResult.classes.push('source-description');
989
+ if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isStringElement)(sourceDescription.name)) parseResult.setMetaProperty('name', (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(sourceDescription.name));
990
+ if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isStringElement)(sourceDescription.type)) parseResult.setMetaProperty('type', (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(sourceDescription.type));
991
+ const sourceDescriptionURI = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_8__["default"])(sourceDescription.url);
992
+ if (typeof sourceDescriptionURI !== 'string') {
993
+ const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]('Source description URL is missing or not a string. Skipping');
994
+ annotation.classes.push('warning');
995
+ parseResult.push(annotation);
996
+ return parseResult;
997
+ }
998
+ const retrievalURI = _util_url_ts__WEBPACK_IMPORTED_MODULE_9__.resolve(ctx.baseURI, sourceDescriptionURI);
999
+
1000
+ // skip if already visited (cycle detection)
1001
+ if (ctx.visitedUrls.has(retrievalURI)) {
1002
+ const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](`Source description "${retrievalURI}" has already been visited. Skipping to prevent cycle`);
1003
+ annotation.classes.push('warning');
1004
+ parseResult.push(annotation);
1005
+ return parseResult;
1006
+ }
1007
+ ctx.visitedUrls.add(retrievalURI);
1008
+ try {
1009
+ const sourceDescriptionDereferenced = await (0,_index_ts__WEBPACK_IMPORTED_MODULE_11__["default"])(retrievalURI, (0,_options_util_ts__WEBPACK_IMPORTED_MODULE_10__.merge)(ctx.options, {
1010
+ parse: {
1011
+ mediaType: 'text/plain' // allow parser plugin detection
1012
+ },
1013
+ dereference: {
1014
+ strategyOpts: {
1015
+ [ARAZZO_DEREFERENCE_RECURSION_KEY]: {
1016
+ sourceDescriptionsDepth: ctx.currentDepth + 1,
1017
+ sourceDescriptionsVisitedUrls: ctx.visitedUrls
1018
+ }
1019
+ }
1020
+ }
1021
+ }));
1022
+ // merge dereferenced result into our parse result
1023
+ for (const item of sourceDescriptionDereferenced) {
1024
+ parseResult.push(item);
1025
+ }
1026
+ } catch (error) {
1027
+ // create error annotation instead of failing entire dereference
1028
+ const message = error instanceof Error ? error.message : String(error);
1029
+ const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](`Error dereferencing source description "${retrievalURI}": ${message}`);
1030
+ annotation.classes.push('error');
1031
+ parseResult.push(annotation);
1032
+ return parseResult;
1033
+ }
1034
+
1035
+ // only allow OpenAPI and Arazzo as source descriptions
1036
+ const {
1037
+ api: sourceDescriptionAPI
1038
+ } = parseResult;
1039
+ const isOpenApi = (0,_speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_5__.isSwaggerElement)(sourceDescriptionAPI) || (0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_6__.isOpenApi3_0Element)(sourceDescriptionAPI) || (0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_7__.isOpenApi3_1Element)(sourceDescriptionAPI);
1040
+ const isArazzo = (0,_speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_4__.isArazzoSpecification1Element)(sourceDescriptionAPI);
1041
+ if (!isOpenApi && !isArazzo) {
1042
+ const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](`Source description "${retrievalURI}" is not an OpenAPI or Arazzo document`);
1043
+ annotation.classes.push('warning');
1044
+ parseResult.push(annotation);
1045
+ return parseResult;
1046
+ }
1047
+
1048
+ // validate declared type matches actual dereferenced type
1049
+ const declaredType = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_8__["default"])(sourceDescription.type);
1050
+ if (typeof declaredType === 'string') {
1051
+ if (declaredType === 'openapi' && !isOpenApi) {
1052
+ const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](`Source description "${retrievalURI}" declared as "openapi" but dereferenced as Arazzo document`);
1053
+ annotation.classes.push('warning');
1054
+ parseResult.push(annotation);
1055
+ } else if (declaredType === 'arazzo' && !isArazzo) {
1056
+ const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](`Source description "${retrievalURI}" declared as "arazzo" but dereferenced as OpenAPI document`);
1057
+ annotation.classes.push('warning');
1058
+ parseResult.push(annotation);
1059
+ }
1060
+ }
1061
+ return parseResult;
1062
+ }
1063
+
1064
+ /**
1065
+ * Dereferences source descriptions from an Arazzo document.
1066
+ * @public
1067
+ */
1068
+ async function dereferenceSourceDescriptions(parseResult, reference, options) {
1069
+ const results = [];
1070
+ const strategyName = 'arazzo-1';
1071
+
1072
+ // get API from dereferenced parse result
1073
+ const {
1074
+ api
1075
+ } = parseResult;
1076
+
1077
+ /**
1078
+ * Validate prerequisites for dereferencing source descriptions.
1079
+ * Return warning annotations if validation fails.
1080
+ */
1081
+ if (!(0,_speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_4__.isArazzoSpecification1Element)(api)) {
1082
+ const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]('Cannot dereference source descriptions: API is not an Arazzo specification');
1083
+ annotation.classes.push('warning');
1084
+ return [new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__["default"]([annotation])];
1085
+ }
1086
+ if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isArrayElement)(api.sourceDescriptions)) {
1087
+ const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]('Cannot dereference source descriptions: sourceDescriptions field is missing or not an array');
1088
+ annotation.classes.push('warning');
1089
+ return [new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__["default"]([annotation])];
1090
+ }
1091
+
1092
+ // user config: strategy-specific options take precedence over global strategyOpts
1093
+ const maxDepth = options?.dereference?.strategyOpts?.[strategyName]?.sourceDescriptionsMaxDepth ?? options?.dereference?.strategyOpts?.sourceDescriptionsMaxDepth ?? +Infinity;
1094
+
1095
+ // recursion state comes from shared key (works across JSON/YAML)
1096
+ const sharedOpts = options?.dereference?.strategyOpts?.[ARAZZO_DEREFERENCE_RECURSION_KEY] ?? {};
1097
+ const currentDepth = sharedOpts.sourceDescriptionsDepth ?? 0;
1098
+ const visitedUrls = sharedOpts.sourceDescriptionsVisitedUrls ?? new Set();
1099
+
1100
+ // add current file to visited URLs to prevent cycles
1101
+ visitedUrls.add(reference.uri);
1102
+ if (currentDepth >= maxDepth) {
1103
+ const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](`Maximum dereference depth of ${maxDepth} has been exceeded by file "${reference.uri}"`);
1104
+ annotation.classes.push('error');
1105
+ const parseResult = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__["default"]([annotation]);
1106
+ parseResult.classes.push('source-description');
1107
+ return [parseResult];
1108
+ }
1109
+ const ctx = {
1110
+ baseURI: reference.uri,
1111
+ options,
1112
+ currentDepth,
1113
+ visitedUrls
1114
+ };
1115
+
1116
+ // determine which source descriptions to dereference
1117
+ const sourceDescriptionsOption = options?.dereference?.strategyOpts?.[strategyName]?.sourceDescriptions ?? options?.dereference?.strategyOpts?.sourceDescriptions;
1118
+
1119
+ // handle false or other falsy values - no source descriptions should be dereferenced
1120
+ if (!sourceDescriptionsOption) {
1121
+ return results;
1122
+ }
1123
+ const sourceDescriptions = Array.isArray(sourceDescriptionsOption) ? api.sourceDescriptions.filter(sd => {
1124
+ if (!(0,_speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_4__.isSourceDescriptionElement)(sd)) return false;
1125
+ const name = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_8__["default"])(sd.name);
1126
+ return typeof name === 'string' && sourceDescriptionsOption.includes(name);
1127
+ }) : api.sourceDescriptions;
1128
+
1129
+ // process sequentially to ensure proper cycle detection with shared visitedUrls
1130
+ for (const sourceDescription of sourceDescriptions) {
1131
+ const sourceDescriptionDereferenceResult = await dereferenceSourceDescription(sourceDescription, ctx);
1132
+ results.push(sourceDescriptionDereferenceResult);
1133
+ }
1134
+ return results;
1135
+ }
1136
+
1137
+ /***/ },
1138
+
931
1139
  /***/ 91005
932
1140
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
933
1141
 
@@ -3148,7 +3356,7 @@ class OpenAPI3_0DereferenceVisitor {
3148
3356
 
3149
3357
  // operationRef and operationId fields are mutually exclusive
3150
3358
  if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(linkElement.operationRef) && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(linkElement.operationId)) {
3151
- throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_7__["default"]('LinkElement operationRef and operationId fields are mutually exclusive.');
3359
+ throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_7__["default"]('LinkElement operationRef and operationId fields are mutually exclusive');
3152
3360
  }
3153
3361
  let operationElement;
3154
3362
  if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(linkElement.operationRef)) {
@@ -3221,7 +3429,7 @@ class OpenAPI3_0DereferenceVisitor {
3221
3429
 
3222
3430
  // value and externalValue fields are mutually exclusive
3223
3431
  if (exampleElement.hasKey('value') && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(exampleElement.externalValue)) {
3224
- throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_7__["default"]('ExampleElement value and externalValue fields are mutually exclusive.');
3432
+ throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_7__["default"]('ExampleElement value and externalValue fields are mutually exclusive');
3225
3433
  }
3226
3434
  const retrievalURI = this.toBaseURI((0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(exampleElement.externalValue));
3227
3435
  const isInternalReference = _util_url_ts__WEBPACK_IMPORTED_MODULE_16__.stripHash(this.reference.uri) === retrievalURI;
@@ -4048,7 +4256,7 @@ class OpenAPI3_1DereferenceVisitor {
4048
4256
 
4049
4257
  // operationRef and operationId fields are mutually exclusive
4050
4258
  if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__.isStringElement)(linkElement.operationRef) && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__.isStringElement)(linkElement.operationId)) {
4051
- throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_9__["default"]('LinkElement operationRef and operationId fields are mutually exclusive.');
4259
+ throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_9__["default"]('LinkElement operationRef and operationId fields are mutually exclusive');
4052
4260
  }
4053
4261
  let operationElement;
4054
4262
  if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__.isStringElement)(linkElement.operationRef)) {
@@ -4120,7 +4328,7 @@ class OpenAPI3_1DereferenceVisitor {
4120
4328
 
4121
4329
  // value and externalValue fields are mutually exclusive
4122
4330
  if (exampleElement.hasKey('value') && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__.isStringElement)(exampleElement.externalValue)) {
4123
- throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_9__["default"]('ExampleElement value and externalValue fields are mutually exclusive.');
4331
+ throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_9__["default"]('ExampleElement value and externalValue fields are mutually exclusive');
4124
4332
  }
4125
4333
  const retrievalURI = this.toBaseURI((0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_8__["default"])(exampleElement.externalValue));
4126
4334
  const isInternalReference = _util_url_ts__WEBPACK_IMPORTED_MODULE_21__.stripHash(this.reference.uri) === retrievalURI;
@@ -5496,14 +5704,15 @@ class ApiDOMJSONParser extends _Parser_ts__WEBPACK_IMPORTED_MODULE_4__["default"
5496
5704
  "use strict";
5497
5705
  __webpack_require__.r(__webpack_exports__);
5498
5706
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
5499
- /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
5707
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
5708
+ /* harmony export */ parseSourceDescriptions: () => (/* reexport safe */ _source_descriptions_ts__WEBPACK_IMPORTED_MODULE_5__.parseSourceDescriptions)
5500
5709
  /* harmony export */ });
5501
5710
  /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14494);
5502
5711
  /* harmony import */ var _speclynx_apidom_parser_adapter_arazzo_json_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6017);
5503
5712
  /* harmony import */ var _speclynx_apidom_parser_adapter_arazzo_json_1__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(29028);
5504
5713
  /* harmony import */ var _errors_ParserError_ts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(89371);
5505
5714
  /* harmony import */ var _Parser_ts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13166);
5506
- /* harmony import */ var _source_description_ts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(69848);
5715
+ /* harmony import */ var _source_descriptions_ts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(61407);
5507
5716
 
5508
5717
 
5509
5718
 
@@ -5519,10 +5728,8 @@ __webpack_require__.r(__webpack_exports__);
5519
5728
  */
5520
5729
  class ArazzoJSON1Parser extends _Parser_ts__WEBPACK_IMPORTED_MODULE_4__["default"] {
5521
5730
  refractorOpts;
5522
- parseFn;
5523
5731
  constructor(options) {
5524
5732
  const {
5525
- parseFn,
5526
5733
  fileExtensions = [],
5527
5734
  mediaTypes = _speclynx_apidom_parser_adapter_arazzo_json_1__WEBPACK_IMPORTED_MODULE_2__["default"],
5528
5735
  ...rest
@@ -5533,7 +5740,6 @@ class ArazzoJSON1Parser extends _Parser_ts__WEBPACK_IMPORTED_MODULE_4__["default
5533
5740
  fileExtensions,
5534
5741
  mediaTypes
5535
5742
  });
5536
- this.parseFn = parseFn;
5537
5743
  }
5538
5744
  async canParse(file) {
5539
5745
  const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
@@ -5552,7 +5758,7 @@ class ArazzoJSON1Parser extends _Parser_ts__WEBPACK_IMPORTED_MODULE_4__["default
5552
5758
  const parseResult = await (0,_speclynx_apidom_parser_adapter_arazzo_json_1__WEBPACK_IMPORTED_MODULE_1__.parse)(source, parserOpts);
5553
5759
  const shouldParseSourceDescriptions = options?.parse?.parserOpts?.[this.name]?.sourceDescriptions ?? options?.parse?.parserOpts?.sourceDescriptions;
5554
5760
  if (shouldParseSourceDescriptions) {
5555
- const sourceDescriptions = await _source_description_ts__WEBPACK_IMPORTED_MODULE_5__.parseSourceDescriptions.call(this, parseResult.api, file, options);
5761
+ const sourceDescriptions = await (0,_source_descriptions_ts__WEBPACK_IMPORTED_MODULE_5__.parseSourceDescriptions)(parseResult, file.uri, options, this.name);
5556
5762
  parseResult.push(...sourceDescriptions);
5557
5763
  }
5558
5764
  return parseResult;
@@ -5563,11 +5769,12 @@ class ArazzoJSON1Parser extends _Parser_ts__WEBPACK_IMPORTED_MODULE_4__["default
5563
5769
  }
5564
5770
  }
5565
5771
  }
5772
+
5566
5773
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ArazzoJSON1Parser);
5567
5774
 
5568
5775
  /***/ },
5569
5776
 
5570
- /***/ 69848
5777
+ /***/ 61407
5571
5778
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5572
5779
 
5573
5780
  "use strict";
@@ -5584,8 +5791,12 @@ __webpack_require__.r(__webpack_exports__);
5584
5791
  /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(32131);
5585
5792
  /* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(76332);
5586
5793
  /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(44673);
5587
- /* harmony import */ var _util_url_ts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(30658);
5588
- /* harmony import */ var _options_util_ts__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(86547);
5794
+ /* harmony import */ var _File_ts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(10682);
5795
+ /* harmony import */ var _util_url_ts__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(30658);
5796
+ /* harmony import */ var _options_util_ts__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(86547);
5797
+ /* harmony import */ var _index_ts__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(35014);
5798
+
5799
+
5589
5800
 
5590
5801
 
5591
5802
 
@@ -5604,7 +5815,7 @@ const ARAZZO_RECURSION_KEY = 'arazzo-1';
5604
5815
  async function parseSourceDescription(sourceDescription, ctx) {
5605
5816
  const parseResult = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__["default"]();
5606
5817
  if (!(0,_speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_4__.isSourceDescriptionElement)(sourceDescription)) {
5607
- const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]('Element is not a valid SourceDescriptionElement. Skipping.');
5818
+ const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]('Element is not a valid SourceDescriptionElement. Skipping');
5608
5819
  annotation.classes.push('warning');
5609
5820
  parseResult.push(annotation);
5610
5821
  return parseResult;
@@ -5616,23 +5827,23 @@ async function parseSourceDescription(sourceDescription, ctx) {
5616
5827
  if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isStringElement)(sourceDescription.type)) parseResult.setMetaProperty('type', (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(sourceDescription.type));
5617
5828
  const sourceDescriptionURI = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_8__["default"])(sourceDescription.url);
5618
5829
  if (typeof sourceDescriptionURI !== 'string') {
5619
- const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]('Source description URL is missing or not a string. Skipping.');
5830
+ const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]('Source description URL is missing or not a string. Skipping');
5620
5831
  annotation.classes.push('warning');
5621
5832
  parseResult.push(annotation);
5622
5833
  return parseResult;
5623
5834
  }
5624
- const retrievalURI = _util_url_ts__WEBPACK_IMPORTED_MODULE_9__.resolve(ctx.baseURI, sourceDescriptionURI);
5835
+ const retrievalURI = _util_url_ts__WEBPACK_IMPORTED_MODULE_10__.resolve(ctx.baseURI, sourceDescriptionURI);
5625
5836
 
5626
5837
  // skip if already visited (cycle detection)
5627
5838
  if (ctx.visitedUrls.has(retrievalURI)) {
5628
- const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](`Source description "${retrievalURI}" has already been visited. Skipping to prevent cycle.`);
5839
+ const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](`Source description "${retrievalURI}" has already been visited. Skipping to prevent cycle`);
5629
5840
  annotation.classes.push('warning');
5630
5841
  parseResult.push(annotation);
5631
5842
  return parseResult;
5632
5843
  }
5633
5844
  ctx.visitedUrls.add(retrievalURI);
5634
5845
  try {
5635
- const sdParseResult = await ctx.parseFn(retrievalURI, (0,_options_util_ts__WEBPACK_IMPORTED_MODULE_10__.merge)(ctx.options, {
5846
+ const sourceDescriptionParseResult = await (0,_index_ts__WEBPACK_IMPORTED_MODULE_12__["default"])(retrievalURI, (0,_options_util_ts__WEBPACK_IMPORTED_MODULE_11__.merge)(ctx.options, {
5636
5847
  parse: {
5637
5848
  mediaType: 'text/plain',
5638
5849
  // allow parser plugin detection
@@ -5645,7 +5856,7 @@ async function parseSourceDescription(sourceDescription, ctx) {
5645
5856
  }
5646
5857
  }));
5647
5858
  // merge parsed result into our parse result
5648
- for (const item of sdParseResult) {
5859
+ for (const item of sourceDescriptionParseResult) {
5649
5860
  parseResult.push(item);
5650
5861
  }
5651
5862
  } catch (error) {
@@ -5664,7 +5875,7 @@ async function parseSourceDescription(sourceDescription, ctx) {
5664
5875
  const isOpenApi = (0,_speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_5__.isSwaggerElement)(sourceDescriptionAPI) || (0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_6__.isOpenApi3_0Element)(sourceDescriptionAPI) || (0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_7__.isOpenApi3_1Element)(sourceDescriptionAPI);
5665
5876
  const isArazzo = (0,_speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_4__.isArazzoSpecification1Element)(sourceDescriptionAPI);
5666
5877
  if (!isOpenApi && !isArazzo) {
5667
- const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](`Source description "${retrievalURI}" is not an OpenAPI or Arazzo document. Skipping.`);
5878
+ const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](`Source description "${retrievalURI}" is not an OpenAPI or Arazzo document`);
5668
5879
  annotation.classes.push('warning');
5669
5880
  parseResult.push(annotation);
5670
5881
  return parseResult;
@@ -5674,11 +5885,11 @@ async function parseSourceDescription(sourceDescription, ctx) {
5674
5885
  const declaredType = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_8__["default"])(sourceDescription.type);
5675
5886
  if (typeof declaredType === 'string') {
5676
5887
  if (declaredType === 'openapi' && !isOpenApi) {
5677
- const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](`Source description "${retrievalURI}" declared as "openapi" but parsed as Arazzo document.`);
5888
+ const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](`Source description "${retrievalURI}" declared as "openapi" but parsed as Arazzo document`);
5678
5889
  annotation.classes.push('warning');
5679
5890
  parseResult.push(annotation);
5680
5891
  } else if (declaredType === 'arazzo' && !isArazzo) {
5681
- const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](`Source description "${retrievalURI}" declared as "arazzo" but parsed as OpenAPI document.`);
5892
+ const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](`Source description "${retrievalURI}" declared as "arazzo" but parsed as OpenAPI document`);
5682
5893
  annotation.classes.push('warning');
5683
5894
  parseResult.push(annotation);
5684
5895
  }
@@ -5687,11 +5898,40 @@ async function parseSourceDescription(sourceDescription, ctx) {
5687
5898
  }
5688
5899
 
5689
5900
  /**
5690
- * Shared function for parsing source descriptions.
5691
- * Call with `.call(this, ...)` where `this` has `name` and `parseFn` properties.
5901
+ * Parses source descriptions from an Arazzo document's ParseResult.
5902
+ *
5903
+ * @param parseResult - ParseResult containing an Arazzo specification
5904
+ * @param parseResultRetrievalURI - URI from which the parseResult was retrieved
5905
+ * @param options - Full ReferenceOptions (caller responsibility to construct)
5906
+ * @param parserName - Parser name for options lookup (defaults to 'arazzo-json-1')
5907
+ * @returns Array of ParseResultElements. On success, returns one ParseResultElement per
5908
+ * source description (each with class 'source-description' and name/type metadata).
5909
+ * May return early with a single-element array containing a warning annotation when:
5910
+ * - The API is not an Arazzo specification
5911
+ * - The sourceDescriptions field is missing or not an array
5912
+ * - Maximum parse depth is exceeded (error annotation)
5913
+ * Returns an empty array when sourceDescriptions option is disabled or no names match.
5914
+ *
5915
+ * @example
5916
+ * ```typescript
5917
+ * import { options, mergeOptions } from '@speclynx/apidom-reference';
5918
+ * import { parseSourceDescriptions } from '@speclynx/apidom-reference/parse/parsers/arazzo-json-1';
5919
+ *
5920
+ * const fullOptions = mergeOptions(options, {
5921
+ * parse: { parserOpts: { sourceDescriptions: true } }
5922
+ * });
5923
+ * const results = await parseSourceDescriptions(parseResult, uri, fullOptions);
5924
+ * ```
5925
+ *
5692
5926
  * @public
5693
5927
  */
5694
- async function parseSourceDescriptions(api, file, options) {
5928
+ async function parseSourceDescriptions(parseResult, parseResultRetrievalURI, options, parserName = 'arazzo-json-1') {
5929
+ const {
5930
+ api
5931
+ } = parseResult;
5932
+ const file = new _File_ts__WEBPACK_IMPORTED_MODULE_9__["default"]({
5933
+ uri: _util_url_ts__WEBPACK_IMPORTED_MODULE_10__.sanitize(_util_url_ts__WEBPACK_IMPORTED_MODULE_10__.stripHash(parseResultRetrievalURI))
5934
+ });
5695
5935
  const results = [];
5696
5936
 
5697
5937
  /**
@@ -5699,23 +5939,18 @@ async function parseSourceDescriptions(api, file, options) {
5699
5939
  * Return warning annotations if validation fails.
5700
5940
  */
5701
5941
  if (!(0,_speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_4__.isArazzoSpecification1Element)(api)) {
5702
- const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]('Cannot parse source descriptions: API is not an Arazzo specification.');
5942
+ const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]('Cannot parse source descriptions: API is not an Arazzo specification');
5703
5943
  annotation.classes.push('warning');
5704
5944
  return [new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__["default"]([annotation])];
5705
5945
  }
5706
5946
  if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isArrayElement)(api.sourceDescriptions)) {
5707
- const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]('Cannot parse source descriptions: sourceDescriptions field is missing or not an array.');
5947
+ const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]('Cannot parse source descriptions: sourceDescriptions field is missing or not an array');
5708
5948
  annotation.classes.push('warning');
5709
5949
  return [new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__["default"]([annotation])];
5710
5950
  }
5711
- if (typeof this.parseFn !== 'function') {
5712
- const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]('Source descriptions found but parseFn is not configured. Skipping source description parsing.');
5713
- annotation.classes.push('error');
5714
- return [new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__["default"]([annotation])];
5715
- }
5716
5951
 
5717
5952
  // user config: parser-specific options take precedence over global parserOpts
5718
- const maxDepth = options?.parse?.parserOpts?.[this.name]?.sourceDescriptionsMaxDepth ?? options?.parse?.parserOpts?.sourceDescriptionsMaxDepth ?? +Infinity;
5953
+ const maxDepth = options?.parse?.parserOpts?.[parserName]?.sourceDescriptionsMaxDepth ?? options?.parse?.parserOpts?.sourceDescriptionsMaxDepth ?? +Infinity;
5719
5954
 
5720
5955
  // recursion state comes from shared key (works across JSON/YAML)
5721
5956
  const sharedOpts = options?.parse?.parserOpts?.[ARAZZO_RECURSION_KEY] ?? {};
@@ -5732,7 +5967,6 @@ async function parseSourceDescriptions(api, file, options) {
5732
5967
  return [parseResult];
5733
5968
  }
5734
5969
  const ctx = {
5735
- parseFn: this.parseFn,
5736
5970
  baseURI: file.uri,
5737
5971
  options,
5738
5972
  currentDepth,
@@ -5740,7 +5974,7 @@ async function parseSourceDescriptions(api, file, options) {
5740
5974
  };
5741
5975
 
5742
5976
  // determine which source descriptions to parse
5743
- const sourceDescriptionsOption = options?.parse?.parserOpts?.[this.name]?.sourceDescriptions ?? options?.parse?.parserOpts?.sourceDescriptions;
5977
+ const sourceDescriptionsOption = options?.parse?.parserOpts?.[parserName]?.sourceDescriptions ?? options?.parse?.parserOpts?.sourceDescriptions;
5744
5978
 
5745
5979
  // handle false or other falsy values - no source descriptions should be parsed
5746
5980
  if (!sourceDescriptionsOption) {
@@ -5768,14 +6002,15 @@ async function parseSourceDescriptions(api, file, options) {
5768
6002
  "use strict";
5769
6003
  __webpack_require__.r(__webpack_exports__);
5770
6004
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
5771
- /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
6005
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
6006
+ /* harmony export */ parseSourceDescriptions: () => (/* reexport safe */ _source_descriptions_ts__WEBPACK_IMPORTED_MODULE_5__.parseSourceDescriptions)
5772
6007
  /* harmony export */ });
5773
6008
  /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14494);
5774
6009
  /* harmony import */ var _speclynx_apidom_parser_adapter_arazzo_yaml_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16206);
5775
6010
  /* harmony import */ var _speclynx_apidom_parser_adapter_arazzo_yaml_1__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(43195);
5776
6011
  /* harmony import */ var _errors_ParserError_ts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(89371);
5777
6012
  /* harmony import */ var _Parser_ts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13166);
5778
- /* harmony import */ var _arazzo_json_1_source_description_ts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(69848);
6013
+ /* harmony import */ var _source_descriptions_ts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(97782);
5779
6014
 
5780
6015
 
5781
6016
 
@@ -5791,10 +6026,8 @@ __webpack_require__.r(__webpack_exports__);
5791
6026
  */
5792
6027
  class ArazzoYAML1Parser extends _Parser_ts__WEBPACK_IMPORTED_MODULE_4__["default"] {
5793
6028
  refractorOpts;
5794
- parseFn;
5795
6029
  constructor(options) {
5796
6030
  const {
5797
- parseFn,
5798
6031
  fileExtensions = [],
5799
6032
  mediaTypes = _speclynx_apidom_parser_adapter_arazzo_yaml_1__WEBPACK_IMPORTED_MODULE_2__["default"],
5800
6033
  ...rest
@@ -5805,7 +6038,6 @@ class ArazzoYAML1Parser extends _Parser_ts__WEBPACK_IMPORTED_MODULE_4__["default
5805
6038
  fileExtensions,
5806
6039
  mediaTypes
5807
6040
  });
5808
- this.parseFn = parseFn;
5809
6041
  }
5810
6042
  async canParse(file) {
5811
6043
  const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
@@ -5824,7 +6056,7 @@ class ArazzoYAML1Parser extends _Parser_ts__WEBPACK_IMPORTED_MODULE_4__["default
5824
6056
  const parseResult = await (0,_speclynx_apidom_parser_adapter_arazzo_yaml_1__WEBPACK_IMPORTED_MODULE_1__.parse)(source, parserOpts);
5825
6057
  const shouldParseSourceDescriptions = options?.parse?.parserOpts?.[this.name]?.sourceDescriptions ?? options?.parse?.parserOpts?.sourceDescriptions;
5826
6058
  if (shouldParseSourceDescriptions) {
5827
- const sourceDescriptions = await _arazzo_json_1_source_description_ts__WEBPACK_IMPORTED_MODULE_5__.parseSourceDescriptions.call(this, parseResult.api, file, options);
6059
+ const sourceDescriptions = await (0,_source_descriptions_ts__WEBPACK_IMPORTED_MODULE_5__.parseSourceDescriptions)(parseResult, file.uri, options, this.name);
5828
6060
  parseResult.push(...sourceDescriptions);
5829
6061
  }
5830
6062
  return parseResult;
@@ -5835,10 +6067,30 @@ class ArazzoYAML1Parser extends _Parser_ts__WEBPACK_IMPORTED_MODULE_4__["default
5835
6067
  }
5836
6068
  }
5837
6069
  }
6070
+
5838
6071
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ArazzoYAML1Parser);
5839
6072
 
5840
6073
  /***/ },
5841
6074
 
6075
+ /***/ 97782
6076
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6077
+
6078
+ "use strict";
6079
+ __webpack_require__.r(__webpack_exports__);
6080
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6081
+ /* harmony export */ parseSourceDescriptions: () => (/* binding */ parseSourceDescriptions)
6082
+ /* harmony export */ });
6083
+ /* harmony import */ var _arazzo_json_1_source_descriptions_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(61407);
6084
+
6085
+ /**
6086
+ * @public
6087
+ */
6088
+ const parseSourceDescriptions = (parseResult, parseResultRetrievalURI, options, parserName = 'arazzo-yaml-1') => {
6089
+ return (0,_arazzo_json_1_source_descriptions_ts__WEBPACK_IMPORTED_MODULE_0__.parseSourceDescriptions)(parseResult, parseResultRetrievalURI, options, parserName);
6090
+ };
6091
+
6092
+ /***/ },
6093
+
5842
6094
  /***/ 35844
5843
6095
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5844
6096
 
@@ -6746,7 +6998,7 @@ class FileResolver extends _Resolver_ts__WEBPACK_IMPORTED_MODULE_0__["default"]
6746
6998
  return false;
6747
6999
  }
6748
7000
  read() {
6749
- throw new _errors_ResolverError_ts__WEBPACK_IMPORTED_MODULE_1__["default"]('FileResolver is not intended to be used in browser context.');
7001
+ throw new _errors_ResolverError_ts__WEBPACK_IMPORTED_MODULE_1__["default"]('FileResolver is not intended to be used in browser context');
6750
7002
  }
6751
7003
  }
6752
7004
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (FileResolver);
@@ -96020,47 +96272,47 @@ var __webpack_exports__ = {};
96020
96272
  "use strict";
96021
96273
  __webpack_require__.r(__webpack_exports__);
96022
96274
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
96023
- /* harmony export */ BundleError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.BundleError),
96024
- /* harmony export */ BundleStrategy: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.BundleStrategy),
96025
- /* harmony export */ DereferenceAncestorLineage: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.DereferenceAncestorLineage),
96026
- /* harmony export */ DereferenceError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.DereferenceError),
96027
- /* harmony export */ DereferenceStrategy: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.DereferenceStrategy),
96028
- /* harmony export */ EvaluationElementIdError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.EvaluationElementIdError),
96029
- /* harmony export */ EvaluationJsonSchema$anchorError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.EvaluationJsonSchema$anchorError),
96030
- /* harmony export */ EvaluationJsonSchemaUriError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.EvaluationJsonSchemaUriError),
96031
- /* harmony export */ File: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.File),
96032
- /* harmony export */ HTTPResolver: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.HTTPResolver),
96033
- /* harmony export */ InvalidJsonSchema$anchorError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.InvalidJsonSchema$anchorError),
96034
- /* harmony export */ JsonSchema$anchorError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.JsonSchema$anchorError),
96035
- /* harmony export */ JsonSchemaURIError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.JsonSchemaURIError),
96036
- /* harmony export */ MaximumBundleDepthError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.MaximumBundleDepthError),
96037
- /* harmony export */ MaximumDereferenceDepthError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.MaximumDereferenceDepthError),
96038
- /* harmony export */ MaximumResolveDepthError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.MaximumResolveDepthError),
96039
- /* harmony export */ ParseError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.ParseError),
96040
- /* harmony export */ Parser: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.Parser),
96041
- /* harmony export */ ParserError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.ParserError),
96042
- /* harmony export */ PluginError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.PluginError),
96043
- /* harmony export */ Reference: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.Reference),
96044
- /* harmony export */ ReferenceSet: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.ReferenceSet),
96045
- /* harmony export */ ResolveError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.ResolveError),
96046
- /* harmony export */ ResolveStrategy: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.ResolveStrategy),
96047
- /* harmony export */ Resolver: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.Resolver),
96048
- /* harmony export */ ResolverError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.ResolverError),
96049
- /* harmony export */ UnmatchedBundleStrategyError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.UnmatchedBundleStrategyError),
96050
- /* harmony export */ UnmatchedDereferenceStrategyError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.UnmatchedDereferenceStrategyError),
96051
- /* harmony export */ UnmatchedParserError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.UnmatchedParserError),
96052
- /* harmony export */ UnmatchedResolveStrategyError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.UnmatchedResolveStrategyError),
96053
- /* harmony export */ UnmatchedResolverError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.UnmatchedResolverError),
96054
- /* harmony export */ bundle: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.bundle),
96055
- /* harmony export */ dereference: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.dereference),
96056
- /* harmony export */ dereferenceApiDOM: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.dereferenceApiDOM),
96057
- /* harmony export */ mergeOptions: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.mergeOptions),
96058
- /* harmony export */ options: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.options),
96059
- /* harmony export */ parse: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.parse),
96060
- /* harmony export */ readFile: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.readFile),
96061
- /* harmony export */ resolve: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.resolve),
96062
- /* harmony export */ resolveApiDOM: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.resolveApiDOM),
96063
- /* harmony export */ url: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_28__.url)
96275
+ /* harmony export */ BundleError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.BundleError),
96276
+ /* harmony export */ BundleStrategy: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.BundleStrategy),
96277
+ /* harmony export */ DereferenceAncestorLineage: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.DereferenceAncestorLineage),
96278
+ /* harmony export */ DereferenceError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.DereferenceError),
96279
+ /* harmony export */ DereferenceStrategy: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.DereferenceStrategy),
96280
+ /* harmony export */ EvaluationElementIdError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.EvaluationElementIdError),
96281
+ /* harmony export */ EvaluationJsonSchema$anchorError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.EvaluationJsonSchema$anchorError),
96282
+ /* harmony export */ EvaluationJsonSchemaUriError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.EvaluationJsonSchemaUriError),
96283
+ /* harmony export */ File: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.File),
96284
+ /* harmony export */ HTTPResolver: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.HTTPResolver),
96285
+ /* harmony export */ InvalidJsonSchema$anchorError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.InvalidJsonSchema$anchorError),
96286
+ /* harmony export */ JsonSchema$anchorError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.JsonSchema$anchorError),
96287
+ /* harmony export */ JsonSchemaURIError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.JsonSchemaURIError),
96288
+ /* harmony export */ MaximumBundleDepthError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.MaximumBundleDepthError),
96289
+ /* harmony export */ MaximumDereferenceDepthError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.MaximumDereferenceDepthError),
96290
+ /* harmony export */ MaximumResolveDepthError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.MaximumResolveDepthError),
96291
+ /* harmony export */ ParseError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.ParseError),
96292
+ /* harmony export */ Parser: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.Parser),
96293
+ /* harmony export */ ParserError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.ParserError),
96294
+ /* harmony export */ PluginError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.PluginError),
96295
+ /* harmony export */ Reference: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.Reference),
96296
+ /* harmony export */ ReferenceSet: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.ReferenceSet),
96297
+ /* harmony export */ ResolveError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.ResolveError),
96298
+ /* harmony export */ ResolveStrategy: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.ResolveStrategy),
96299
+ /* harmony export */ Resolver: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.Resolver),
96300
+ /* harmony export */ ResolverError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.ResolverError),
96301
+ /* harmony export */ UnmatchedBundleStrategyError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.UnmatchedBundleStrategyError),
96302
+ /* harmony export */ UnmatchedDereferenceStrategyError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.UnmatchedDereferenceStrategyError),
96303
+ /* harmony export */ UnmatchedParserError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.UnmatchedParserError),
96304
+ /* harmony export */ UnmatchedResolveStrategyError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.UnmatchedResolveStrategyError),
96305
+ /* harmony export */ UnmatchedResolverError: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.UnmatchedResolverError),
96306
+ /* harmony export */ bundle: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.bundle),
96307
+ /* harmony export */ dereference: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.dereference),
96308
+ /* harmony export */ dereferenceApiDOM: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.dereferenceApiDOM),
96309
+ /* harmony export */ mergeOptions: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.mergeOptions),
96310
+ /* harmony export */ options: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.options),
96311
+ /* harmony export */ parse: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.parse),
96312
+ /* harmony export */ readFile: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.readFile),
96313
+ /* harmony export */ resolve: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.resolve),
96314
+ /* harmony export */ resolveApiDOM: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.resolveApiDOM),
96315
+ /* harmony export */ url: () => (/* reexport safe */ _index_ts__WEBPACK_IMPORTED_MODULE_29__.url)
96064
96316
  /* harmony export */ });
96065
96317
  /* harmony import */ var _resolve_resolvers_file_index_node_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(50365);
96066
96318
  /* harmony import */ var _resolve_resolvers_http_axios_index_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16341);
@@ -96090,8 +96342,8 @@ __webpack_require__.r(__webpack_exports__);
96090
96342
  /* harmony import */ var _dereference_strategies_asyncapi_2_index_ts__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(12683);
96091
96343
  /* harmony import */ var _dereference_strategies_arazzo_1_index_ts__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(82941);
96092
96344
  /* harmony import */ var _bundle_strategies_openapi_3_1_index_ts__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(16432);
96093
- /* harmony import */ var _index_ts__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(33906);
96094
- /* harmony import */ var _index_ts__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(98363);
96345
+ /* harmony import */ var _index_ts__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(98363);
96346
+ /* harmony import */ var _index_ts__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(33906);
96095
96347
 
96096
96348
 
96097
96349
 
@@ -96121,7 +96373,7 @@ __webpack_require__.r(__webpack_exports__);
96121
96373
 
96122
96374
 
96123
96375
 
96124
- _index_ts__WEBPACK_IMPORTED_MODULE_29__["default"].parse.parsers = [new _parse_parsers_openapi_json_2_index_ts__WEBPACK_IMPORTED_MODULE_7__["default"]({
96376
+ _index_ts__WEBPACK_IMPORTED_MODULE_28__["default"].parse.parsers = [new _parse_parsers_openapi_json_2_index_ts__WEBPACK_IMPORTED_MODULE_7__["default"]({
96125
96377
  allowEmpty: true,
96126
96378
  sourceMap: false
96127
96379
  }), new _parse_parsers_openapi_yaml_2_index_ts__WEBPACK_IMPORTED_MODULE_8__["default"]({
@@ -96147,12 +96399,10 @@ _index_ts__WEBPACK_IMPORTED_MODULE_29__["default"].parse.parsers = [new _parse_p
96147
96399
  sourceMap: false
96148
96400
  }), new _parse_parsers_arazzo_json_1_index_ts__WEBPACK_IMPORTED_MODULE_15__["default"]({
96149
96401
  allowEmpty: true,
96150
- sourceMap: false,
96151
- parseFn: _index_ts__WEBPACK_IMPORTED_MODULE_28__.parse
96402
+ sourceMap: false
96152
96403
  }), new _parse_parsers_arazzo_yaml_1_index_ts__WEBPACK_IMPORTED_MODULE_16__["default"]({
96153
96404
  allowEmpty: true,
96154
- sourceMap: false,
96155
- parseFn: _index_ts__WEBPACK_IMPORTED_MODULE_28__.parse
96405
+ sourceMap: false
96156
96406
  }), new _parse_parsers_apidom_json_index_ts__WEBPACK_IMPORTED_MODULE_17__["default"]({
96157
96407
  allowEmpty: true,
96158
96408
  sourceMap: false
@@ -96165,14 +96415,14 @@ _index_ts__WEBPACK_IMPORTED_MODULE_29__["default"].parse.parsers = [new _parse_p
96165
96415
  }), new _parse_parsers_binary_index_node_ts__WEBPACK_IMPORTED_MODULE_20__["default"]({
96166
96416
  allowEmpty: true
96167
96417
  })];
96168
- _index_ts__WEBPACK_IMPORTED_MODULE_29__["default"].resolve.resolvers = [new _resolve_resolvers_file_index_node_ts__WEBPACK_IMPORTED_MODULE_0__["default"](), new _resolve_resolvers_http_axios_index_ts__WEBPACK_IMPORTED_MODULE_1__["default"]({
96418
+ _index_ts__WEBPACK_IMPORTED_MODULE_28__["default"].resolve.resolvers = [new _resolve_resolvers_file_index_node_ts__WEBPACK_IMPORTED_MODULE_0__["default"](), new _resolve_resolvers_http_axios_index_ts__WEBPACK_IMPORTED_MODULE_1__["default"]({
96169
96419
  timeout: 5000,
96170
96420
  redirects: 5,
96171
96421
  withCredentials: false
96172
96422
  })];
96173
- _index_ts__WEBPACK_IMPORTED_MODULE_29__["default"].resolve.strategies = [new _resolve_strategies_openapi_2_index_ts__WEBPACK_IMPORTED_MODULE_2__["default"](), new _resolve_strategies_openapi_3_0_index_ts__WEBPACK_IMPORTED_MODULE_3__["default"](), new _resolve_strategies_openapi_3_1_index_ts__WEBPACK_IMPORTED_MODULE_4__["default"](), new _resolve_strategies_asyncapi_2_index_ts__WEBPACK_IMPORTED_MODULE_5__["default"](), new _resolve_strategies_apidom_index_ts__WEBPACK_IMPORTED_MODULE_6__["default"]()];
96174
- _index_ts__WEBPACK_IMPORTED_MODULE_29__["default"].dereference.strategies = [new _dereference_strategies_openapi_2_index_ts__WEBPACK_IMPORTED_MODULE_22__["default"](), new _dereference_strategies_openapi_3_0_index_ts__WEBPACK_IMPORTED_MODULE_23__["default"](), new _dereference_strategies_openapi_3_1_index_ts__WEBPACK_IMPORTED_MODULE_24__["default"](), new _dereference_strategies_asyncapi_2_index_ts__WEBPACK_IMPORTED_MODULE_25__["default"](), new _dereference_strategies_arazzo_1_index_ts__WEBPACK_IMPORTED_MODULE_26__["default"](), new _dereference_strategies_apidom_index_ts__WEBPACK_IMPORTED_MODULE_21__["default"]()];
96175
- _index_ts__WEBPACK_IMPORTED_MODULE_29__["default"].bundle.strategies = [new _bundle_strategies_openapi_3_1_index_ts__WEBPACK_IMPORTED_MODULE_27__["default"]()];
96423
+ _index_ts__WEBPACK_IMPORTED_MODULE_28__["default"].resolve.strategies = [new _resolve_strategies_openapi_2_index_ts__WEBPACK_IMPORTED_MODULE_2__["default"](), new _resolve_strategies_openapi_3_0_index_ts__WEBPACK_IMPORTED_MODULE_3__["default"](), new _resolve_strategies_openapi_3_1_index_ts__WEBPACK_IMPORTED_MODULE_4__["default"](), new _resolve_strategies_asyncapi_2_index_ts__WEBPACK_IMPORTED_MODULE_5__["default"](), new _resolve_strategies_apidom_index_ts__WEBPACK_IMPORTED_MODULE_6__["default"]()];
96424
+ _index_ts__WEBPACK_IMPORTED_MODULE_28__["default"].dereference.strategies = [new _dereference_strategies_openapi_2_index_ts__WEBPACK_IMPORTED_MODULE_22__["default"](), new _dereference_strategies_openapi_3_0_index_ts__WEBPACK_IMPORTED_MODULE_23__["default"](), new _dereference_strategies_openapi_3_1_index_ts__WEBPACK_IMPORTED_MODULE_24__["default"](), new _dereference_strategies_asyncapi_2_index_ts__WEBPACK_IMPORTED_MODULE_25__["default"](), new _dereference_strategies_arazzo_1_index_ts__WEBPACK_IMPORTED_MODULE_26__["default"](), new _dereference_strategies_apidom_index_ts__WEBPACK_IMPORTED_MODULE_21__["default"]()];
96425
+ _index_ts__WEBPACK_IMPORTED_MODULE_28__["default"].bundle.strategies = [new _bundle_strategies_openapi_3_1_index_ts__WEBPACK_IMPORTED_MODULE_27__["default"]()];
96176
96426
 
96177
96427
  })();
96178
96428