@speclynx/apidom-reference 2.7.0 → 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.
- package/CHANGELOG.md +6 -0
- package/dist/apidom-reference.browser.js +70 -15
- package/dist/apidom-reference.browser.min.js +1 -1
- package/package.json +25 -25
- package/src/parse/parsers/arazzo-json-1/index.cjs +3 -2
- package/src/parse/parsers/arazzo-json-1/index.mjs +3 -2
- package/src/parse/parsers/arazzo-json-1/{source-description.cjs → source-descriptions.cjs} +36 -5
- package/src/parse/parsers/arazzo-json-1/{source-description.mjs → source-descriptions.mjs} +35 -4
- package/src/parse/parsers/arazzo-yaml-1/index.cjs +3 -2
- package/src/parse/parsers/arazzo-yaml-1/index.mjs +3 -2
- package/src/parse/parsers/arazzo-yaml-1/source-descriptions.cjs +12 -0
- package/src/parse/parsers/arazzo-yaml-1/source-descriptions.mjs +7 -0
- package/types/parse/parsers/arazzo-json-1/index.d.ts +1 -0
- package/types/parse/parsers/arazzo-json-1/source-descriptions.d.ts +31 -0
- package/types/parse/parsers/arazzo-yaml-1/index.d.ts +1 -0
- package/types/parse/parsers/arazzo-yaml-1/source-descriptions.d.ts +6 -0
- package/types/parse/parsers/arazzo-json-1/source-description.d.ts +0 -8
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [2.8.0](https://github.com/speclynx/apidom/compare/v2.7.0...v2.8.0) (2026-02-06)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- **reference:** expose low level API for parsing Arazzo source descriptions ([#73](https://github.com/speclynx/apidom/issues/73)) ([1f0d771](https://github.com/speclynx/apidom/commit/1f0d7713f864924e03c601113c0270aeed6e9f81))
|
|
11
|
+
|
|
6
12
|
# [2.7.0](https://github.com/speclynx/apidom/compare/v2.6.1...v2.7.0) (2026-02-05)
|
|
7
13
|
|
|
8
14
|
### Features
|
|
@@ -5704,14 +5704,15 @@ class ApiDOMJSONParser extends _Parser_ts__WEBPACK_IMPORTED_MODULE_4__["default"
|
|
|
5704
5704
|
"use strict";
|
|
5705
5705
|
__webpack_require__.r(__webpack_exports__);
|
|
5706
5706
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
5707
|
-
/* 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)
|
|
5708
5709
|
/* harmony export */ });
|
|
5709
5710
|
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14494);
|
|
5710
5711
|
/* harmony import */ var _speclynx_apidom_parser_adapter_arazzo_json_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6017);
|
|
5711
5712
|
/* harmony import */ var _speclynx_apidom_parser_adapter_arazzo_json_1__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(29028);
|
|
5712
5713
|
/* harmony import */ var _errors_ParserError_ts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(89371);
|
|
5713
5714
|
/* harmony import */ var _Parser_ts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13166);
|
|
5714
|
-
/* harmony import */ var
|
|
5715
|
+
/* harmony import */ var _source_descriptions_ts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(61407);
|
|
5715
5716
|
|
|
5716
5717
|
|
|
5717
5718
|
|
|
@@ -5757,7 +5758,7 @@ class ArazzoJSON1Parser extends _Parser_ts__WEBPACK_IMPORTED_MODULE_4__["default
|
|
|
5757
5758
|
const parseResult = await (0,_speclynx_apidom_parser_adapter_arazzo_json_1__WEBPACK_IMPORTED_MODULE_1__.parse)(source, parserOpts);
|
|
5758
5759
|
const shouldParseSourceDescriptions = options?.parse?.parserOpts?.[this.name]?.sourceDescriptions ?? options?.parse?.parserOpts?.sourceDescriptions;
|
|
5759
5760
|
if (shouldParseSourceDescriptions) {
|
|
5760
|
-
const sourceDescriptions = await (0,
|
|
5761
|
+
const sourceDescriptions = await (0,_source_descriptions_ts__WEBPACK_IMPORTED_MODULE_5__.parseSourceDescriptions)(parseResult, file.uri, options, this.name);
|
|
5761
5762
|
parseResult.push(...sourceDescriptions);
|
|
5762
5763
|
}
|
|
5763
5764
|
return parseResult;
|
|
@@ -5768,11 +5769,12 @@ class ArazzoJSON1Parser extends _Parser_ts__WEBPACK_IMPORTED_MODULE_4__["default
|
|
|
5768
5769
|
}
|
|
5769
5770
|
}
|
|
5770
5771
|
}
|
|
5772
|
+
|
|
5771
5773
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ArazzoJSON1Parser);
|
|
5772
5774
|
|
|
5773
5775
|
/***/ },
|
|
5774
5776
|
|
|
5775
|
-
/***/
|
|
5777
|
+
/***/ 61407
|
|
5776
5778
|
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
5777
5779
|
|
|
5778
5780
|
"use strict";
|
|
@@ -5789,9 +5791,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
5789
5791
|
/* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(32131);
|
|
5790
5792
|
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(76332);
|
|
5791
5793
|
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(44673);
|
|
5792
|
-
/* harmony import */ var
|
|
5793
|
-
/* harmony import */ var
|
|
5794
|
-
/* harmony import */ var
|
|
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
|
+
|
|
5795
5799
|
|
|
5796
5800
|
|
|
5797
5801
|
|
|
@@ -5828,7 +5832,7 @@ async function parseSourceDescription(sourceDescription, ctx) {
|
|
|
5828
5832
|
parseResult.push(annotation);
|
|
5829
5833
|
return parseResult;
|
|
5830
5834
|
}
|
|
5831
|
-
const retrievalURI =
|
|
5835
|
+
const retrievalURI = _util_url_ts__WEBPACK_IMPORTED_MODULE_10__.resolve(ctx.baseURI, sourceDescriptionURI);
|
|
5832
5836
|
|
|
5833
5837
|
// skip if already visited (cycle detection)
|
|
5834
5838
|
if (ctx.visitedUrls.has(retrievalURI)) {
|
|
@@ -5839,7 +5843,7 @@ async function parseSourceDescription(sourceDescription, ctx) {
|
|
|
5839
5843
|
}
|
|
5840
5844
|
ctx.visitedUrls.add(retrievalURI);
|
|
5841
5845
|
try {
|
|
5842
|
-
const
|
|
5846
|
+
const sourceDescriptionParseResult = await (0,_index_ts__WEBPACK_IMPORTED_MODULE_12__["default"])(retrievalURI, (0,_options_util_ts__WEBPACK_IMPORTED_MODULE_11__.merge)(ctx.options, {
|
|
5843
5847
|
parse: {
|
|
5844
5848
|
mediaType: 'text/plain',
|
|
5845
5849
|
// allow parser plugin detection
|
|
@@ -5852,7 +5856,7 @@ async function parseSourceDescription(sourceDescription, ctx) {
|
|
|
5852
5856
|
}
|
|
5853
5857
|
}));
|
|
5854
5858
|
// merge parsed result into our parse result
|
|
5855
|
-
for (const item of
|
|
5859
|
+
for (const item of sourceDescriptionParseResult) {
|
|
5856
5860
|
parseResult.push(item);
|
|
5857
5861
|
}
|
|
5858
5862
|
} catch (error) {
|
|
@@ -5894,10 +5898,40 @@ async function parseSourceDescription(sourceDescription, ctx) {
|
|
|
5894
5898
|
}
|
|
5895
5899
|
|
|
5896
5900
|
/**
|
|
5897
|
-
*
|
|
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
|
+
*
|
|
5898
5926
|
* @public
|
|
5899
5927
|
*/
|
|
5900
|
-
async function parseSourceDescriptions(
|
|
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
|
+
});
|
|
5901
5935
|
const results = [];
|
|
5902
5936
|
|
|
5903
5937
|
/**
|
|
@@ -5968,14 +6002,15 @@ async function parseSourceDescriptions(parserName, api, file, options) {
|
|
|
5968
6002
|
"use strict";
|
|
5969
6003
|
__webpack_require__.r(__webpack_exports__);
|
|
5970
6004
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
5971
|
-
/* 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)
|
|
5972
6007
|
/* harmony export */ });
|
|
5973
6008
|
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14494);
|
|
5974
6009
|
/* harmony import */ var _speclynx_apidom_parser_adapter_arazzo_yaml_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16206);
|
|
5975
6010
|
/* harmony import */ var _speclynx_apidom_parser_adapter_arazzo_yaml_1__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(43195);
|
|
5976
6011
|
/* harmony import */ var _errors_ParserError_ts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(89371);
|
|
5977
6012
|
/* harmony import */ var _Parser_ts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13166);
|
|
5978
|
-
/* harmony import */ var
|
|
6013
|
+
/* harmony import */ var _source_descriptions_ts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(97782);
|
|
5979
6014
|
|
|
5980
6015
|
|
|
5981
6016
|
|
|
@@ -6021,7 +6056,7 @@ class ArazzoYAML1Parser extends _Parser_ts__WEBPACK_IMPORTED_MODULE_4__["default
|
|
|
6021
6056
|
const parseResult = await (0,_speclynx_apidom_parser_adapter_arazzo_yaml_1__WEBPACK_IMPORTED_MODULE_1__.parse)(source, parserOpts);
|
|
6022
6057
|
const shouldParseSourceDescriptions = options?.parse?.parserOpts?.[this.name]?.sourceDescriptions ?? options?.parse?.parserOpts?.sourceDescriptions;
|
|
6023
6058
|
if (shouldParseSourceDescriptions) {
|
|
6024
|
-
const sourceDescriptions = await (0,
|
|
6059
|
+
const sourceDescriptions = await (0,_source_descriptions_ts__WEBPACK_IMPORTED_MODULE_5__.parseSourceDescriptions)(parseResult, file.uri, options, this.name);
|
|
6025
6060
|
parseResult.push(...sourceDescriptions);
|
|
6026
6061
|
}
|
|
6027
6062
|
return parseResult;
|
|
@@ -6032,10 +6067,30 @@ class ArazzoYAML1Parser extends _Parser_ts__WEBPACK_IMPORTED_MODULE_4__["default
|
|
|
6032
6067
|
}
|
|
6033
6068
|
}
|
|
6034
6069
|
}
|
|
6070
|
+
|
|
6035
6071
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ArazzoYAML1Parser);
|
|
6036
6072
|
|
|
6037
6073
|
/***/ },
|
|
6038
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
|
+
|
|
6039
6094
|
/***/ 35844
|
|
6040
6095
|
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
6041
6096
|
|