@speclynx/apidom-overlay 4.6.0 → 4.7.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-overlay.browser.js +24 -15
- package/dist/apidom-overlay.browser.min.js +1 -1
- package/package.json +9 -8
- package/src/apply/realms/apidom.cjs +6 -4
- package/src/apply/realms/apidom.mjs +6 -4
- package/src/apply/realms/uri.cjs +16 -11
- package/src/apply/realms/uri.mjs +15 -10
- package/src/index.cjs +4 -2
- package/src/index.mjs +1 -1
- package/types/apidom-overlay.d.ts +9 -2
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
|
+
# [4.7.0](https://github.com/speclynx/apidom/compare/v4.6.0...v4.7.0) (2026-04-12)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- **overlay:** generic targets, export defaults, scoped opts ([#236](https://github.com/speclynx/apidom/issues/236)) ([7df6dc7](https://github.com/speclynx/apidom/commit/7df6dc79d18e4c71ceb17037a45f9ba069fdcaf1))
|
|
11
|
+
|
|
6
12
|
# [4.6.0](https://github.com/speclynx/apidom/compare/v4.5.0...v4.6.0) (2026-04-12)
|
|
7
13
|
|
|
8
14
|
### Features
|
|
@@ -306,10 +306,10 @@ const applyOverlay = (overlayElement, targetElement, options = defaultApplyOptio
|
|
|
306
306
|
}
|
|
307
307
|
let target;
|
|
308
308
|
if (targetElement instanceof _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]) {
|
|
309
|
-
if (targetElement.
|
|
310
|
-
throw new _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_8__["default"]('Target ParseResultElement contains no
|
|
309
|
+
if (targetElement.result === undefined) {
|
|
310
|
+
throw new _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_8__["default"]('Target ParseResultElement contains no result element');
|
|
311
311
|
}
|
|
312
|
-
target = targetElement.
|
|
312
|
+
target = targetElement.result;
|
|
313
313
|
} else {
|
|
314
314
|
target = targetElement;
|
|
315
315
|
}
|
|
@@ -325,7 +325,9 @@ const applyOverlay = (overlayElement, targetElement, options = defaultApplyOptio
|
|
|
325
325
|
target = applyAction(action, target, internalOptions);
|
|
326
326
|
}
|
|
327
327
|
if (targetElement instanceof _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]) {
|
|
328
|
-
targetElement.
|
|
328
|
+
if (target !== targetElement.result) {
|
|
329
|
+
targetElement.replaceResult(target);
|
|
330
|
+
}
|
|
329
331
|
return targetElement;
|
|
330
332
|
}
|
|
331
333
|
return target;
|
|
@@ -373,7 +375,8 @@ const applyOverlay = (overlay, target, options) => (0,_speclynx_apidom_core__WEB
|
|
|
373
375
|
"use strict";
|
|
374
376
|
__webpack_require__.r(__webpack_exports__);
|
|
375
377
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
376
|
-
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
378
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
|
|
379
|
+
/* harmony export */ defaultOptions: () => (/* binding */ defaultOptions)
|
|
377
380
|
/* harmony export */ });
|
|
378
381
|
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(96911);
|
|
379
382
|
/* harmony import */ var _speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(26432);
|
|
@@ -390,7 +393,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
390
393
|
* @public
|
|
391
394
|
*/
|
|
392
395
|
|
|
393
|
-
const
|
|
396
|
+
const defaultReferenceOptions = {
|
|
394
397
|
parse: {
|
|
395
398
|
parserOpts: {
|
|
396
399
|
strict: false,
|
|
@@ -414,6 +417,15 @@ const defaultOptions = {
|
|
|
414
417
|
}
|
|
415
418
|
};
|
|
416
419
|
|
|
420
|
+
/**
|
|
421
|
+
* @public
|
|
422
|
+
*/
|
|
423
|
+
const defaultOptions = {
|
|
424
|
+
immutable: false,
|
|
425
|
+
strict: false,
|
|
426
|
+
reference: defaultReferenceOptions
|
|
427
|
+
};
|
|
428
|
+
|
|
417
429
|
/**
|
|
418
430
|
* Applies an overlay document from a file/URL to its target document.
|
|
419
431
|
*
|
|
@@ -423,27 +435,23 @@ const defaultOptions = {
|
|
|
423
435
|
*
|
|
424
436
|
* @param overlayURI - URI to the overlay document (file path or URL)
|
|
425
437
|
* @param targetURI - URI to the target document; if omitted, uses the overlay's `extends` field
|
|
426
|
-
* @param options -
|
|
438
|
+
* @param options - overlay apply options; reference options live under `options.reference`
|
|
427
439
|
* @returns ParseResultElement with the modified target document
|
|
428
440
|
*
|
|
429
441
|
* @public
|
|
430
442
|
*/
|
|
431
|
-
const applyOverlay = async (overlayURI, targetURI, options = {
|
|
432
|
-
|
|
433
|
-
strict: false
|
|
434
|
-
}) => {
|
|
435
|
-
const mergedOptions = (0,_speclynx_apidom_reference__WEBPACK_IMPORTED_MODULE_2__.mergeOptions)(defaultOptions, options);
|
|
443
|
+
const applyOverlay = async (overlayURI, targetURI, options = defaultOptions) => {
|
|
444
|
+
const mergedRefOptions = (0,_speclynx_apidom_reference__WEBPACK_IMPORTED_MODULE_2__.mergeOptions)(defaultReferenceOptions, options.reference ?? {});
|
|
436
445
|
|
|
437
446
|
// parse the overlay document along with document attached to `extends` field (if present)
|
|
438
|
-
const overlayParseResult = await (0,_speclynx_apidom_reference__WEBPACK_IMPORTED_MODULE_2__.parse)(overlayURI,
|
|
447
|
+
const overlayParseResult = await (0,_speclynx_apidom_reference__WEBPACK_IMPORTED_MODULE_2__.parse)(overlayURI, mergedRefOptions);
|
|
439
448
|
const overlayElement = overlayParseResult.api;
|
|
440
449
|
if (!(0,_speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_1__.isOverlay1Element)(overlayElement)) {
|
|
441
450
|
throw new _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_4__["default"](`Failed to parse overlay document "${overlayURI}"`);
|
|
442
451
|
}
|
|
443
452
|
let targetParseResult;
|
|
444
453
|
if (targetURI) {
|
|
445
|
-
|
|
446
|
-
targetParseResult = await (0,_speclynx_apidom_reference__WEBPACK_IMPORTED_MODULE_2__.parse)(targetURI, targetOptions);
|
|
454
|
+
targetParseResult = await (0,_speclynx_apidom_reference__WEBPACK_IMPORTED_MODULE_2__.parse)(targetURI, mergedRefOptions);
|
|
447
455
|
} else {
|
|
448
456
|
const extendsElement = overlayElement.get('extends');
|
|
449
457
|
targetParseResult = extendsElement?.meta?.get('parseResult');
|
|
@@ -101017,6 +101025,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
101017
101025
|
/* harmony export */ applyOverlay: () => (/* reexport safe */ _apply_realms_uri_ts__WEBPACK_IMPORTED_MODULE_1__["default"]),
|
|
101018
101026
|
/* harmony export */ applyOverlayApiDOM: () => (/* reexport safe */ _apply_realms_apidom_ts__WEBPACK_IMPORTED_MODULE_0__.applyOverlay),
|
|
101019
101027
|
/* harmony export */ applyOverlayPOJO: () => (/* reexport safe */ _apply_realms_pojo_ts__WEBPACK_IMPORTED_MODULE_2__.applyOverlay),
|
|
101028
|
+
/* harmony export */ defaultApplyOverlayOptions: () => (/* reexport safe */ _apply_realms_uri_ts__WEBPACK_IMPORTED_MODULE_1__.defaultOptions),
|
|
101020
101029
|
/* harmony export */ validateAction: () => (/* reexport safe */ _validate_ts__WEBPACK_IMPORTED_MODULE_3__.validateAction)
|
|
101021
101030
|
/* harmony export */ });
|
|
101022
101031
|
/* harmony import */ var _apply_realms_apidom_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28216);
|