@speclynx/apidom-overlay 5.2.7 → 6.0.6

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.
@@ -25,9 +25,12 @@ __webpack_require__.r(__webpack_exports__);
25
25
  /* harmony import */ var _speclynx_apidom_json_path__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(51680);
26
26
  /* harmony import */ var _speclynx_apidom_json_path__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(84637);
27
27
  /* harmony import */ var _speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(26432);
28
- /* harmony import */ var _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(18436);
29
- /* harmony import */ var _validate_ts__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(24338);
30
- /* harmony import */ var _trace_TraceBuilder_ts__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(90563);
28
+ /* harmony import */ var _speclynx_apidom_reference__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(29807);
29
+ /* harmony import */ var _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(18436);
30
+ /* harmony import */ var _validate_ts__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(24338);
31
+ /* harmony import */ var _trace_TraceBuilder_ts__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(90563);
32
+
33
+
31
34
 
32
35
 
33
36
 
@@ -35,6 +38,9 @@ __webpack_require__.r(__webpack_exports__);
35
38
 
36
39
 
37
40
 
41
+ /**
42
+ * @public
43
+ */
38
44
 
39
45
  /**
40
46
  * @public
@@ -72,7 +78,7 @@ const overlayCustomMerge = (_keyElement, options) => {
72
78
  const targetIsArray = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isArrayElement)(target);
73
79
  const sourceIsArray = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isArrayElement)(source);
74
80
  if (targetIsObject !== sourceIsObject || targetIsArray !== sourceIsArray) {
75
- throw new _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_9__["default"](`Incompatible types in overlay merge: cannot merge ` + `${targetIsObject ? 'object' : targetIsArray ? 'array' : 'primitive'} with ` + `${sourceIsObject ? 'object' : sourceIsArray ? 'array' : 'primitive'}`);
81
+ throw new _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_10__["default"](`Incompatible types in overlay merge: cannot merge ` + `${targetIsObject ? 'object' : targetIsArray ? 'array' : 'primitive'} with ` + `${sourceIsObject ? 'object' : sourceIsArray ? 'array' : 'primitive'}`);
76
82
  }
77
83
  return (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(target, source, options);
78
84
  };
@@ -98,7 +104,7 @@ const mergeValue = (targetElement, sourceElement, options = defaultApplyOptions)
98
104
  if (!targetIsObject && !targetIsArray && !sourceIsObject && !sourceIsArray) {
99
105
  return clone ? (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(sourceElement) : sourceElement;
100
106
  }
101
- throw new _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_9__["default"](`Incompatible types in overlay merge: cannot merge ` + `${targetIsObject ? 'object' : targetIsArray ? 'array' : 'primitive'} with ` + `${sourceIsObject ? 'object' : sourceIsArray ? 'array' : 'primitive'}`);
107
+ throw new _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_10__["default"](`Incompatible types in overlay merge: cannot merge ` + `${targetIsObject ? 'object' : targetIsArray ? 'array' : 'primitive'} with ` + `${sourceIsObject ? 'object' : sourceIsArray ? 'array' : 'primitive'}`);
102
108
  };
103
109
 
104
110
  /**
@@ -180,10 +186,10 @@ const applyUpdateAction = (normalizedPaths, updateValue, targetElement, options
180
186
  const applyCopyAction = (normalizedPaths, copyExpression, targetElement, options = defaultApplyOptions) => {
181
187
  const sourceMatches = (0,_speclynx_apidom_json_path__WEBPACK_IMPORTED_MODULE_6__.evaluate)(targetElement, copyExpression);
182
188
  if (sourceMatches.length === 0) {
183
- throw new _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_9__["default"](`Copy source JSONPath "${copyExpression}" selected zero nodes`);
189
+ throw new _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_10__["default"](`Copy source JSONPath "${copyExpression}" selected zero nodes`);
184
190
  }
185
191
  if (sourceMatches.length > 1) {
186
- throw new _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_9__["default"](`Copy source JSONPath "${copyExpression}" must select a single node, but selected ${sourceMatches.length}`);
192
+ throw new _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_10__["default"](`Copy source JSONPath "${copyExpression}" must select a single node, but selected ${sourceMatches.length}`);
187
193
  }
188
194
 
189
195
  /**
@@ -207,7 +213,7 @@ const applyRemoveAction = (normalizedPaths, targetElement, options = defaultAppl
207
213
  for (const normalizedPath of sorted) {
208
214
  const resolved = resolveParent(normalizedPath, result);
209
215
  if (resolved === null) {
210
- throw new _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_9__["default"]('Cannot remove the root node');
216
+ throw new _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_10__["default"]('Cannot remove the root node');
211
217
  }
212
218
  const {
213
219
  parent,
@@ -236,8 +242,8 @@ const applyRemoveAction = (normalizedPaths, targetElement, options = defaultAppl
236
242
  */
237
243
  const applyAction = (actionElement, targetElement, options = defaultApplyOptions) => {
238
244
  const opts = withDefaults(options);
239
- const tracer = opts.tracer ?? (opts.trace ? new _trace_TraceBuilder_ts__WEBPACK_IMPORTED_MODULE_11__["default"](opts.trace) : undefined);
240
- const actionValidation = (0,_validate_ts__WEBPACK_IMPORTED_MODULE_10__.validateAction)(actionElement);
245
+ const tracer = opts.tracer ?? (opts.trace ? new _trace_TraceBuilder_ts__WEBPACK_IMPORTED_MODULE_12__["default"](opts.trace) : undefined);
246
+ const actionValidation = (0,_validate_ts__WEBPACK_IMPORTED_MODULE_11__.validateAction)(actionElement);
241
247
  if (!actionValidation.valid) throw actionValidation.error;
242
248
  const targetExpression = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(actionElement.target);
243
249
  const matches = [];
@@ -250,7 +256,7 @@ const applyAction = (actionElement, targetElement, options = defaultApplyOptions
250
256
  });
251
257
  if (matches.length === 0) {
252
258
  if (opts.strict) {
253
- const error = new _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_9__["default"](`Action target "${targetExpression}" matched zero nodes (strict mode)`, {
259
+ const error = new _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_10__["default"](`Action target "${targetExpression}" matched zero nodes (strict mode)`, {
254
260
  action: actionElement
255
261
  });
256
262
  tracer?.action({
@@ -294,7 +300,7 @@ const applyAction = (actionElement, targetElement, options = defaultApplyOptions
294
300
 
295
301
  // update action
296
302
  if (actionElement.update !== undefined) {
297
- const nodesValidation = (0,_validate_ts__WEBPACK_IMPORTED_MODULE_10__.validateTargetNodes)(matches);
303
+ const nodesValidation = (0,_validate_ts__WEBPACK_IMPORTED_MODULE_11__.validateTargetNodes)(matches);
298
304
  if (!nodesValidation.valid) throw nodesValidation.error;
299
305
  const result = applyUpdateAction(normalizedPaths, actionElement.update, workingElement, mutatingOptions);
300
306
  tracer?.action({
@@ -308,7 +314,7 @@ const applyAction = (actionElement, targetElement, options = defaultApplyOptions
308
314
 
309
315
  // copy action
310
316
  if (actionElement.copy !== undefined) {
311
- const nodesValidation = (0,_validate_ts__WEBPACK_IMPORTED_MODULE_10__.validateTargetNodes)(matches);
317
+ const nodesValidation = (0,_validate_ts__WEBPACK_IMPORTED_MODULE_11__.validateTargetNodes)(matches);
312
318
  if (!nodesValidation.valid) throw nodesValidation.error;
313
319
  const copyExpression = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(actionElement.copy);
314
320
  const result = applyCopyAction(normalizedPaths, copyExpression, workingElement, mutatingOptions);
@@ -329,7 +335,7 @@ const applyAction = (actionElement, targetElement, options = defaultApplyOptions
329
335
  return workingElement;
330
336
  } catch (error) {
331
337
  // enrich OverlayError with action context, preserving original stack
332
- if (error instanceof _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_9__["default"] && !error.action) {
338
+ if (error instanceof _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_10__["default"] && !error.action) {
333
339
  error.action = actionElement;
334
340
  }
335
341
  tracer?.action({
@@ -338,7 +344,7 @@ const applyAction = (actionElement, targetElement, options = defaultApplyOptions
338
344
  matchCount: matches.length,
339
345
  normalizedPaths,
340
346
  success: false,
341
- error: error instanceof _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_9__["default"] ? error : undefined
347
+ error: error instanceof _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_10__["default"] ? error : undefined
342
348
  });
343
349
  throw error;
344
350
  }
@@ -363,12 +369,42 @@ const applyAction = (actionElement, targetElement, options = defaultApplyOptions
363
369
  * Under `immutable: false` the caller's parse result is updated in place
364
370
  * instead, with its result element replaced by the new tree.
365
371
  *
372
+ * The overlay is dereferenced first (`options.reference` configures
373
+ * `@speclynx/apidom-reference`), so Reusable Action References are applied as
374
+ * the Action Objects they resolve to. The overlay itself is never mutated.
375
+ *
366
376
  * @public
367
377
  */
368
- const applyOverlay = (overlayElement, targetElement, options = defaultApplyOptions) => {
378
+ const applyOverlay = async (overlayElement, targetElement, options = defaultApplyOptions) => {
369
379
  const overlay = overlayElement instanceof _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__["default"] ? overlayElement.api : overlayElement;
370
380
  if (!(0,_speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_8__.isOverlay1Element)(overlay)) {
371
- throw new _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_9__["default"]('First argument must be an Overlay 1.x document');
381
+ throw new _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_10__["default"]('First argument must be an Overlay 1.x document');
382
+ }
383
+
384
+ /**
385
+ * References (Overlay 1.2.0) are resolved by dereferencing before the target is
386
+ * touched, so an unresolvable reference fails the overlay without applying any action.
387
+ */
388
+ let dereferencedOverlay;
389
+ try {
390
+ // always immutable: dereferencing must never modify the caller's overlay
391
+ dereferencedOverlay = await (0,_speclynx_apidom_reference__WEBPACK_IMPORTED_MODULE_9__.dereferenceApiDOM)(overlay, {
392
+ ...options.reference,
393
+ dereference: {
394
+ ...options.reference?.dereference,
395
+ immutable: true
396
+ }
397
+ });
398
+ } catch (error) {
399
+ throw new _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_10__["default"](error.message, {
400
+ cause: error
401
+ });
402
+ }
403
+
404
+ // references left in place (`continueOnError`, `resolve.internal: false`) cannot be applied
405
+ const unresolvedReference = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isArrayElement)(dereferencedOverlay.actions) ? dereferencedOverlay.actions.content.find(_speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_8__.isReusableActionReferenceElement) : undefined;
406
+ if ((0,_speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_8__.isReusableActionReferenceElement)(unresolvedReference)) {
407
+ throw new _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_10__["default"](`Overlay contains unresolved Reusable Action Reference "${(0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(unresolvedReference.$ref)}"`);
372
408
  }
373
409
  const opts = withDefaults(options);
374
410
  let parseResult;
@@ -376,7 +412,7 @@ const applyOverlay = (overlayElement, targetElement, options = defaultApplyOptio
376
412
  let target;
377
413
  if (targetElement instanceof _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__["default"]) {
378
414
  if (targetElement.result === undefined) {
379
- throw new _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_9__["default"]('Target ParseResultElement contains no result element');
415
+ throw new _errors_OverlayError_ts__WEBPACK_IMPORTED_MODULE_10__["default"]('Target ParseResultElement contains no result element');
380
416
  }
381
417
  /**
382
418
  * Only the result element changes, so the wrapper is cloned shallowly: the
@@ -397,7 +433,7 @@ const applyOverlay = (overlayElement, targetElement, options = defaultApplyOptio
397
433
  * a success verdict into the caller's trace object, which must not survive a
398
434
  * throw from the checks above.
399
435
  */
400
- const tracer = opts.trace ? new _trace_TraceBuilder_ts__WEBPACK_IMPORTED_MODULE_11__["default"](opts.trace) : undefined;
436
+ const tracer = opts.trace ? new _trace_TraceBuilder_ts__WEBPACK_IMPORTED_MODULE_12__["default"](opts.trace) : undefined;
401
437
  const internalOptions = tracer ? {
402
438
  ...opts,
403
439
  tracer
@@ -407,8 +443,8 @@ const applyOverlay = (overlayElement, targetElement, options = defaultApplyOptio
407
443
  ...internalOptions,
408
444
  immutable: false
409
445
  };
410
- if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isArrayElement)(overlay.actions)) {
411
- for (const action of overlay.actions) {
446
+ if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isArrayElement)(dereferencedOverlay.actions)) {
447
+ for (const action of dereferencedOverlay.actions) {
412
448
  target = applyAction(action, target, mutatingOptions);
413
449
  }
414
450
  }
@@ -486,7 +522,7 @@ const applyAction = (action, target, options) => (0,_speclynx_apidom_core__WEBPA
486
522
  *
487
523
  * @public
488
524
  */
489
- const applyOverlay = (overlay, target, options) => (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_1__["default"])((0,_apidom_ts__WEBPACK_IMPORTED_MODULE_3__.applyOverlay)((0,_speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_2__.refractOverlay1)(overlay), (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.refract)(target), {
525
+ const applyOverlay = async (overlay, target, options) => (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_1__["default"])(await (0,_apidom_ts__WEBPACK_IMPORTED_MODULE_3__.applyOverlay)((0,_speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_2__.refractOverlay1)(overlay), (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.refract)(target), {
490
526
  ...options,
491
527
  immutable: false
492
528
  }));
@@ -513,11 +549,6 @@ __webpack_require__.r(__webpack_exports__);
513
549
 
514
550
 
515
551
 
516
-
517
- /**
518
- * @public
519
- */
520
-
521
552
  const defaultReferenceOptions = {
522
553
  parse: {
523
554
  parserOpts: {
@@ -588,7 +619,15 @@ const applyOverlay = async (overlayURI, targetURI, options = defaultOptions) =>
588
619
  // apply overlay actions to the target (mutable by default: targetParseResult with result replaced)
589
620
  return (0,_apidom_ts__WEBPACK_IMPORTED_MODULE_3__.applyOverlay)(overlayParseResult, targetParseResult, {
590
621
  ...options,
591
- immutable: options.immutable ?? defaultOptions.immutable
622
+ immutable: options.immutable ?? defaultOptions.immutable,
623
+ reference: {
624
+ ...options.reference,
625
+ // same normalization `parse` applies, so reference errors report the parsed document's URI
626
+ resolve: {
627
+ ...options.reference?.resolve,
628
+ baseURI: _speclynx_apidom_reference__WEBPACK_IMPORTED_MODULE_2__.url.sanitize(_speclynx_apidom_reference__WEBPACK_IMPORTED_MODULE_2__.url.stripHash(overlayURI))
629
+ }
630
+ }
592
631
  });
593
632
  };
594
633
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (applyOverlay);
@@ -678,7 +717,7 @@ __webpack_require__.r(__webpack_exports__);
678
717
  */
679
718
 
680
719
  const defaultDiffOptions = {
681
- overlay: '1.1.0',
720
+ overlay: '1.2.0',
682
721
  info: {
683
722
  title: 'API diff',
684
723
  version: '0.0.0'
@@ -807,7 +846,7 @@ const diffArrays = (left, right, segments, actions) => {
807
846
  * Produces an {@link Overlay1Element} that, when applied to `leftElement`, yields `rightElement`.
808
847
  *
809
848
  * Known limitations:
810
- * - Identical documents produce an overlay with an empty `actions` array. Overlay 1.1.0 §3
849
+ * - Identical documents produce an overlay with an empty `actions` array. Overlay 1.x §3
811
850
  * requires `actions` to be non-empty; callers should guard against the no-diff case.
812
851
  * - Root-level structural type change (e.g. object root → array root) throws {@link OverlayError}
813
852
  * because Overlay has no mechanism to replace the root node.
@@ -91194,6 +91233,36 @@ class Action extends _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__["de
91194
91233
  /* harmony export */ ]);
91195
91234
 
91196
91235
 
91236
+ /***/ },
91237
+
91238
+ /***/ 96264
91239
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
91240
+
91241
+ "use strict";
91242
+ __webpack_require__.r(__webpack_exports__);
91243
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(97071);
91244
+
91245
+ /**
91246
+ * @public
91247
+ */
91248
+ class Components extends _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__["default"] {
91249
+ constructor(content, meta, attributes) {
91250
+ super(content, meta, attributes);
91251
+ this.element = 'components';
91252
+ }
91253
+ get actions() {
91254
+ return this.get('actions');
91255
+ }
91256
+ set actions(actions) {
91257
+ this.set('actions', actions);
91258
+ }
91259
+ }
91260
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Components);
91261
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, [
91262
+ /* harmony export */ "default", 0, __WEBPACK_DEFAULT_EXPORT__
91263
+ /* harmony export */ ]);
91264
+
91265
+
91197
91266
  /***/ },
91198
91267
 
91199
91268
  /***/ 41012
@@ -91289,6 +91358,12 @@ class Overlay1 extends _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__["
91289
91358
  set overlay(overlay) {
91290
91359
  this.set('overlay', overlay);
91291
91360
  }
91361
+ get $self() {
91362
+ return this.get('$self');
91363
+ }
91364
+ set $self($self) {
91365
+ this.set('$self', $self);
91366
+ }
91292
91367
  get info() {
91293
91368
  return this.get('info');
91294
91369
  }
@@ -91307,6 +91382,12 @@ class Overlay1 extends _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__["
91307
91382
  set actions(actions) {
91308
91383
  this.set('actions', actions);
91309
91384
  }
91385
+ get components() {
91386
+ return this.get('components');
91387
+ }
91388
+ set components(components) {
91389
+ this.set('components', components);
91390
+ }
91310
91391
  }
91311
91392
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Overlay1);
91312
91393
  /* harmony export */ __webpack_require__.d(__webpack_exports__, [
@@ -91314,6 +91395,85 @@ class Overlay1 extends _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__["
91314
91395
  /* harmony export */ ]);
91315
91396
 
91316
91397
 
91398
+ /***/ },
91399
+
91400
+ /***/ 93745
91401
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
91402
+
91403
+ "use strict";
91404
+ __webpack_require__.r(__webpack_exports__);
91405
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(97071);
91406
+
91407
+ /**
91408
+ * @public
91409
+ */
91410
+ class ReusableAction extends _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__["default"] {
91411
+ constructor(content, meta, attributes) {
91412
+ super(content, meta, attributes);
91413
+ this.element = 'reusableAction';
91414
+ }
91415
+ get description() {
91416
+ return this.get('description');
91417
+ }
91418
+ set description(description) {
91419
+ this.set('description', description);
91420
+ }
91421
+ get fields() {
91422
+ return this.get('fields');
91423
+ }
91424
+ set fields(fields) {
91425
+ this.set('fields', fields);
91426
+ }
91427
+ }
91428
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ReusableAction);
91429
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, [
91430
+ /* harmony export */ "default", 0, __WEBPACK_DEFAULT_EXPORT__
91431
+ /* harmony export */ ]);
91432
+
91433
+
91434
+ /***/ },
91435
+
91436
+ /***/ 37016
91437
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
91438
+
91439
+ "use strict";
91440
+ __webpack_require__.r(__webpack_exports__);
91441
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(97071);
91442
+
91443
+
91444
+ /**
91445
+ * @public
91446
+ */
91447
+ class ReusableActionReference extends _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__["default"] {
91448
+ constructor(content, meta, attributes) {
91449
+ super(content, meta, attributes);
91450
+ this.element = 'reusableActionReference';
91451
+ }
91452
+ get $ref() {
91453
+ return this.get('$ref');
91454
+ }
91455
+ set $ref($ref) {
91456
+ this.set('$ref', $ref);
91457
+ }
91458
+ get target() {
91459
+ return this.get('target');
91460
+ }
91461
+ set target(target) {
91462
+ this.set('target', target);
91463
+ }
91464
+ get description() {
91465
+ return this.get('description');
91466
+ }
91467
+ set description(description) {
91468
+ this.set('description', description);
91469
+ }
91470
+ }
91471
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ReusableActionReference);
91472
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, [
91473
+ /* harmony export */ "default", 0, __WEBPACK_DEFAULT_EXPORT__
91474
+ /* harmony export */ ]);
91475
+
91476
+
91317
91477
  /***/ },
91318
91478
 
91319
91479
  /***/ 39505
@@ -91340,6 +91500,32 @@ class Actions extends _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__["d
91340
91500
  /* harmony export */ ]);
91341
91501
 
91342
91502
 
91503
+ /***/ },
91504
+
91505
+ /***/ 44405
91506
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
91507
+
91508
+ "use strict";
91509
+ __webpack_require__.r(__webpack_exports__);
91510
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(97071);
91511
+
91512
+
91513
+ /**
91514
+ * @public
91515
+ */
91516
+ class ComponentsActions extends _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__["default"] {
91517
+ static primaryClass = 'components-actions';
91518
+ constructor(content, meta, attributes) {
91519
+ super(content, meta, attributes);
91520
+ this.classes.push(ComponentsActions.primaryClass);
91521
+ }
91522
+ }
91523
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ComponentsActions);
91524
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, [
91525
+ /* harmony export */ "default", 0, __WEBPACK_DEFAULT_EXPORT__
91526
+ /* harmony export */ ]);
91527
+
91528
+
91343
91529
  /***/ },
91344
91530
 
91345
91531
  /***/ 13786
@@ -91367,7 +91553,7 @@ class OverlayMediaTypes extends _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_1
91367
91553
  const effectiveFormat = format === 'generic' ? 'overlay;version' : format;
91368
91554
  return this.filter(mediaType => mediaType.includes(effectiveFormat));
91369
91555
  }
91370
- findBy(version = '1.1.0', format = 'generic') {
91556
+ findBy(version = '1.2.0', format = 'generic') {
91371
91557
  const search = format === 'generic' ? `vnd.oai.overlay;version=${version}` : `vnd.oai.overlay+${format};version=${version}`;
91372
91558
  const found = this.find(mediaType => mediaType.includes(search));
91373
91559
  return found || this.unknownMediaType;
@@ -91380,7 +91566,7 @@ class OverlayMediaTypes extends _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_1
91380
91566
  /**
91381
91567
  * @public
91382
91568
  */
91383
- const mediaTypes = new OverlayMediaTypes('application/vnd.oai.overlay;version=1.0.0', 'application/vnd.oai.overlay+json;version=1.0.0', 'application/vnd.oai.overlay+yaml;version=1.0.0', 'application/vnd.oai.overlay;version=1.1.0', 'application/vnd.oai.overlay+json;version=1.1.0', 'application/vnd.oai.overlay+yaml;version=1.1.0');
91569
+ const mediaTypes = new OverlayMediaTypes('application/vnd.oai.overlay;version=1.0.0', 'application/vnd.oai.overlay+json;version=1.0.0', 'application/vnd.oai.overlay+yaml;version=1.0.0', 'application/vnd.oai.overlay;version=1.1.0', 'application/vnd.oai.overlay+json;version=1.1.0', 'application/vnd.oai.overlay+yaml;version=1.1.0', 'application/vnd.oai.overlay;version=1.2.0', 'application/vnd.oai.overlay+json;version=1.2.0', 'application/vnd.oai.overlay+yaml;version=1.2.0');
91384
91570
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (mediaTypes);
91385
91571
  /* harmony export */ __webpack_require__.d(__webpack_exports__, [
91386
91572
  /* harmony export */ "default", 0, __WEBPACK_DEFAULT_EXPORT__
@@ -91398,6 +91584,12 @@ __webpack_require__.r(__webpack_exports__);
91398
91584
  /* harmony import */ var _elements_Overlay1_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(68913);
91399
91585
  /* harmony import */ var _elements_Info_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41012);
91400
91586
  /* harmony import */ var _elements_Action_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(19642);
91587
+ /* harmony import */ var _elements_Components_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(96264);
91588
+ /* harmony import */ var _elements_ReusableAction_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(93745);
91589
+ /* harmony import */ var _elements_ReusableActionReference_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(37016);
91590
+
91591
+
91592
+
91401
91593
 
91402
91594
 
91403
91595
 
@@ -91414,6 +91606,9 @@ const overlay1 = {
91414
91606
  base.register('overlay1', _elements_Overlay1_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]);
91415
91607
  base.register('info', _elements_Info_mjs__WEBPACK_IMPORTED_MODULE_2__["default"]);
91416
91608
  base.register('action', _elements_Action_mjs__WEBPACK_IMPORTED_MODULE_3__["default"]);
91609
+ base.register('components', _elements_Components_mjs__WEBPACK_IMPORTED_MODULE_4__["default"]);
91610
+ base.register('reusableAction', _elements_ReusableAction_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]);
91611
+ base.register('reusableActionReference', _elements_ReusableActionReference_mjs__WEBPACK_IMPORTED_MODULE_6__["default"]);
91417
91612
  return base;
91418
91613
  }
91419
91614
  };
@@ -91434,13 +91629,21 @@ __webpack_require__.r(__webpack_exports__);
91434
91629
  /* harmony import */ var _elements_Overlay1_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(68913);
91435
91630
  /* harmony import */ var _elements_Info_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41012);
91436
91631
  /* harmony import */ var _elements_Action_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(19642);
91437
- /* harmony import */ var _elements_nces_Actions_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(39505);
91438
- // Overlay 1.1.0 elements
91632
+ /* harmony import */ var _elements_Components_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(96264);
91633
+ /* harmony import */ var _elements_ReusableAction_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(93745);
91634
+ /* harmony import */ var _elements_ReusableActionReference_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(37016);
91635
+ /* harmony import */ var _elements_nces_Actions_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(39505);
91636
+ /* harmony import */ var _elements_nces_ComponentsActions_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(44405);
91637
+ // Overlay 1.x.y elements
91638
+
91639
+
91640
+
91439
91641
 
91440
91642
 
91441
91643
 
91442
91644
  // NCE types
91443
91645
 
91646
+
91444
91647
  /**
91445
91648
  * @public
91446
91649
  */
@@ -91464,13 +91667,37 @@ const isActionElement = element => element instanceof _elements_Action_mjs__WEBP
91464
91667
  /**
91465
91668
  * @public
91466
91669
  */
91467
- const isActionsElement = element => element instanceof _elements_nces_Actions_mjs__WEBPACK_IMPORTED_MODULE_4__["default"];
91670
+ const isActionsElement = element => element instanceof _elements_nces_Actions_mjs__WEBPACK_IMPORTED_MODULE_7__["default"];
91671
+
91672
+ /**
91673
+ * @public
91674
+ */
91675
+ const isComponentsElement = element => element instanceof _elements_Components_mjs__WEBPACK_IMPORTED_MODULE_4__["default"];
91676
+
91677
+ /**
91678
+ * @public
91679
+ */
91680
+ const isReusableActionElement = element => element instanceof _elements_ReusableAction_mjs__WEBPACK_IMPORTED_MODULE_5__["default"];
91681
+
91682
+ /**
91683
+ * @public
91684
+ */
91685
+ const isReusableActionReferenceElement = element => element instanceof _elements_ReusableActionReference_mjs__WEBPACK_IMPORTED_MODULE_6__["default"];
91686
+
91687
+ /**
91688
+ * @public
91689
+ */
91690
+ const isComponentsActionsElement = element => element instanceof _elements_nces_ComponentsActions_mjs__WEBPACK_IMPORTED_MODULE_8__["default"];
91468
91691
  /* harmony export */ __webpack_require__.d(__webpack_exports__, [
91469
91692
  /* harmony export */ "isActionElement", 0, /* binding */ isActionElement,
91470
91693
  /* harmony export */ "isActionsElement", 0, /* binding */ isActionsElement,
91694
+ /* harmony export */ "isComponentsActionsElement", 0, /* binding */ isComponentsActionsElement,
91695
+ /* harmony export */ "isComponentsElement", 0, /* binding */ isComponentsElement,
91471
91696
  /* harmony export */ "isInfoElement", 0, /* binding */ isInfoElement,
91472
91697
  /* harmony export */ "isOverlay1Element", 0, /* binding */ isOverlay1Element,
91473
- /* harmony export */ "isOverlayElement", 0, /* binding */ isOverlayElement
91698
+ /* harmony export */ "isOverlayElement", 0, /* binding */ isOverlayElement,
91699
+ /* harmony export */ "isReusableActionElement", 0, /* binding */ isReusableActionElement,
91700
+ /* harmony export */ "isReusableActionReferenceElement", 0, /* binding */ isReusableActionReferenceElement
91474
91701
  /* harmony export */ ]);
91475
91702
 
91476
91703
 
@@ -91568,13 +91795,40 @@ const refractAction = (value, options = {}) => refract(value, {
91568
91795
  ...options,
91569
91796
  element: 'action'
91570
91797
  });
91798
+
91799
+ /**
91800
+ * @public
91801
+ */
91802
+ const refractComponents = (value, options = {}) => refract(value, {
91803
+ ...options,
91804
+ element: 'components'
91805
+ });
91806
+
91807
+ /**
91808
+ * @public
91809
+ */
91810
+ const refractReusableAction = (value, options = {}) => refract(value, {
91811
+ ...options,
91812
+ element: 'reusableAction'
91813
+ });
91814
+
91815
+ /**
91816
+ * @public
91817
+ */
91818
+ const refractReusableActionReference = (value, options = {}) => refract(value, {
91819
+ ...options,
91820
+ element: 'reusableActionReference'
91821
+ });
91571
91822
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (refract);
91572
91823
  /* harmony export */ __webpack_require__.d(__webpack_exports__, [
91573
91824
  /* harmony export */ "default", 0, __WEBPACK_DEFAULT_EXPORT__,
91574
91825
  /* harmony export */ "refractAction", 0, /* binding */ refractAction,
91826
+ /* harmony export */ "refractComponents", 0, /* binding */ refractComponents,
91575
91827
  /* harmony export */ "refractInfo", 0, /* binding */ refractInfo,
91576
91828
  /* harmony export */ "refractOverlay", 0, /* binding */ refractOverlay,
91577
- /* harmony export */ "refractOverlay1", 0, /* binding */ refractOverlay1
91829
+ /* harmony export */ "refractOverlay1", 0, /* binding */ refractOverlay1,
91830
+ /* harmony export */ "refractReusableAction", 0, /* binding */ refractReusableAction,
91831
+ /* harmony export */ "refractReusableActionReference", 0, /* binding */ refractReusableActionReference
91578
91832
  /* harmony export */ ]);
91579
91833
 
91580
91834
 
@@ -91587,9 +91841,12 @@ const refractAction = (value, options = {}) => refract(value, {
91587
91841
  __webpack_require__.r(__webpack_exports__);
91588
91842
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
91589
91843
  /* harmony export */ ActionElement: () => (/* reexport safe */ _elements_Action_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]),
91844
+ /* harmony export */ ComponentsElement: () => (/* reexport safe */ _elements_Components_mjs__WEBPACK_IMPORTED_MODULE_6__["default"]),
91590
91845
  /* harmony export */ InfoElement: () => (/* reexport safe */ _elements_Info_mjs__WEBPACK_IMPORTED_MODULE_4__["default"]),
91591
91846
  /* harmony export */ Overlay1Element: () => (/* reexport safe */ _elements_Overlay1_mjs__WEBPACK_IMPORTED_MODULE_3__["default"]),
91592
- /* harmony export */ OverlayElement: () => (/* reexport safe */ _elements_Overlay_mjs__WEBPACK_IMPORTED_MODULE_2__["default"])
91847
+ /* harmony export */ OverlayElement: () => (/* reexport safe */ _elements_Overlay_mjs__WEBPACK_IMPORTED_MODULE_2__["default"]),
91848
+ /* harmony export */ ReusableActionElement: () => (/* reexport safe */ _elements_ReusableAction_mjs__WEBPACK_IMPORTED_MODULE_7__["default"]),
91849
+ /* harmony export */ ReusableActionReferenceElement: () => (/* reexport safe */ _elements_ReusableActionReference_mjs__WEBPACK_IMPORTED_MODULE_8__["default"])
91593
91850
  /* harmony export */ });
91594
91851
  /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(60572);
91595
91852
  /* harmony import */ var ramda_adjunct__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(34606);
@@ -91597,7 +91854,13 @@ __webpack_require__.r(__webpack_exports__);
91597
91854
  /* harmony import */ var _elements_Overlay1_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(68913);
91598
91855
  /* harmony import */ var _elements_Info_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(41012);
91599
91856
  /* harmony import */ var _elements_Action_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(19642);
91600
- /* harmony import */ var _specification_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(18730);
91857
+ /* harmony import */ var _elements_Components_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(96264);
91858
+ /* harmony import */ var _elements_ReusableAction_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(93745);
91859
+ /* harmony import */ var _elements_ReusableActionReference_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(37016);
91860
+ /* harmony import */ var _specification_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(18730);
91861
+
91862
+
91863
+
91601
91864
 
91602
91865
 
91603
91866
 
@@ -91608,7 +91871,7 @@ __webpack_require__.r(__webpack_exports__);
91608
91871
  /**
91609
91872
  * @public
91610
91873
  */
91611
- const resolvedSpec = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_0__.resolveSpecification)(_specification_mjs__WEBPACK_IMPORTED_MODULE_6__["default"]);
91874
+ const resolvedSpec = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_0__.resolveSpecification)(_specification_mjs__WEBPACK_IMPORTED_MODULE_9__["default"]);
91612
91875
  const getFixedFields = fixedFieldsSpec => {
91613
91876
  return Object.entries(fixedFieldsSpec).map(([name, fieldSpec]) => {
91614
91877
  if ((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_1__["default"])(fieldSpec)) {
@@ -91635,6 +91898,18 @@ Object.defineProperty(_elements_Action_mjs__WEBPACK_IMPORTED_MODULE_5__["default
91635
91898
  get: () => getFixedFields(resolvedSpec.visitors.document.objects.Action.fixedFields),
91636
91899
  enumerable: true
91637
91900
  });
91901
+ Object.defineProperty(_elements_Components_mjs__WEBPACK_IMPORTED_MODULE_6__["default"], 'fixedFields', {
91902
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Components.fixedFields),
91903
+ enumerable: true
91904
+ });
91905
+ Object.defineProperty(_elements_ReusableAction_mjs__WEBPACK_IMPORTED_MODULE_7__["default"], 'fixedFields', {
91906
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.ReusableAction.fixedFields),
91907
+ enumerable: true
91908
+ });
91909
+ Object.defineProperty(_elements_ReusableActionReference_mjs__WEBPACK_IMPORTED_MODULE_8__["default"], 'fixedFields', {
91910
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.ReusableActionReference.fixedFields),
91911
+ enumerable: true
91912
+ });
91638
91913
 
91639
91914
 
91640
91915
  /***/ },
@@ -91657,8 +91932,20 @@ __webpack_require__.r(__webpack_exports__);
91657
91932
  const isOverlaySpecificationExtension = element => {
91658
91933
  return (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(element.key) && (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])('x-', (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_2__["default"])(element.key));
91659
91934
  };
91935
+
91936
+ /**
91937
+ * @public
91938
+ */
91939
+
91940
+ /**
91941
+ * @public
91942
+ */
91943
+ const isReusableActionReferenceLikeElement = element => {
91944
+ return (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isObjectElement)(element) && element.hasKey('$ref');
91945
+ };
91660
91946
  /* harmony export */ __webpack_require__.d(__webpack_exports__, [
91661
- /* harmony export */ "isOverlaySpecificationExtension", 0, /* binding */ isOverlaySpecificationExtension
91947
+ /* harmony export */ "isOverlaySpecificationExtension", 0, /* binding */ isOverlaySpecificationExtension,
91948
+ /* harmony export */ "isReusableActionReferenceLikeElement", 0, /* binding */ isReusableActionReferenceLikeElement
91662
91949
  /* harmony export */ ]);
91663
91950
 
91664
91951
 
@@ -91675,8 +91962,18 @@ __webpack_require__.r(__webpack_exports__);
91675
91962
  /* harmony import */ var _visitors_overlay_1_info_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(29529);
91676
91963
  /* harmony import */ var _visitors_overlay_1_info_VersionVisitor_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1025);
91677
91964
  /* harmony import */ var _visitors_overlay_1_action_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(39999);
91678
- /* harmony import */ var _visitors_SpecificationExtensionVisitor_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(8023);
91679
- /* harmony import */ var _visitors_FallbackVisitor_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(89439);
91965
+ /* harmony import */ var _visitors_overlay_1_components_index_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(55757);
91966
+ /* harmony import */ var _visitors_overlay_1_components_ActionsVisitor_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(11002);
91967
+ /* harmony import */ var _visitors_overlay_1_reusable_action_index_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(67911);
91968
+ /* harmony import */ var _visitors_overlay_1_reusable_action_reference_index_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(11011);
91969
+ /* harmony import */ var _visitors_overlay_1_reusable_action_reference_$RefVisitor_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(54152);
91970
+ /* harmony import */ var _visitors_SpecificationExtensionVisitor_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(8023);
91971
+ /* harmony import */ var _visitors_FallbackVisitor_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(89439);
91972
+
91973
+
91974
+
91975
+
91976
+
91680
91977
 
91681
91978
 
91682
91979
 
@@ -91698,7 +91995,7 @@ __webpack_require__.r(__webpack_exports__);
91698
91995
  */
91699
91996
  const specification = {
91700
91997
  visitors: {
91701
- value: _visitors_FallbackVisitor_mjs__WEBPACK_IMPORTED_MODULE_7__["default"],
91998
+ value: _visitors_FallbackVisitor_mjs__WEBPACK_IMPORTED_MODULE_12__["default"],
91702
91999
  document: {
91703
92000
  objects: {
91704
92001
  Overlay: {
@@ -91709,13 +92006,19 @@ const specification = {
91709
92006
  element: 'overlay',
91710
92007
  $visitor: _visitors_overlay_1_OverlayVisitor_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]
91711
92008
  },
92009
+ $self: {
92010
+ $ref: '#/visitors/value'
92011
+ },
91712
92012
  info: {
91713
92013
  $ref: '#/visitors/document/objects/Info'
91714
92014
  },
91715
92015
  extends: {
91716
92016
  $ref: '#/visitors/value'
91717
92017
  },
91718
- actions: _visitors_overlay_1_ActionsVisitor_mjs__WEBPACK_IMPORTED_MODULE_2__["default"]
92018
+ actions: _visitors_overlay_1_ActionsVisitor_mjs__WEBPACK_IMPORTED_MODULE_2__["default"],
92019
+ components: {
92020
+ $ref: '#/visitors/document/objects/Components'
92021
+ }
91719
92022
  }
91720
92023
  },
91721
92024
  Info: {
@@ -91752,10 +92055,42 @@ const specification = {
91752
92055
  alias: 'removeField'
91753
92056
  }
91754
92057
  }
92058
+ },
92059
+ Components: {
92060
+ element: 'components',
92061
+ $visitor: _visitors_overlay_1_components_index_mjs__WEBPACK_IMPORTED_MODULE_6__["default"],
92062
+ fixedFields: {
92063
+ actions: _visitors_overlay_1_components_ActionsVisitor_mjs__WEBPACK_IMPORTED_MODULE_7__["default"]
92064
+ }
92065
+ },
92066
+ ReusableAction: {
92067
+ element: 'reusableAction',
92068
+ $visitor: _visitors_overlay_1_reusable_action_index_mjs__WEBPACK_IMPORTED_MODULE_8__["default"],
92069
+ fixedFields: {
92070
+ description: {
92071
+ $ref: '#/visitors/value'
92072
+ },
92073
+ fields: {
92074
+ $ref: '#/visitors/document/objects/Action'
92075
+ }
92076
+ }
92077
+ },
92078
+ ReusableActionReference: {
92079
+ element: 'reusableActionReference',
92080
+ $visitor: _visitors_overlay_1_reusable_action_reference_index_mjs__WEBPACK_IMPORTED_MODULE_9__["default"],
92081
+ fixedFields: {
92082
+ $ref: _visitors_overlay_1_reusable_action_reference_$RefVisitor_mjs__WEBPACK_IMPORTED_MODULE_10__["default"],
92083
+ target: {
92084
+ $ref: '#/visitors/value'
92085
+ },
92086
+ description: {
92087
+ $ref: '#/visitors/value'
92088
+ }
92089
+ }
91755
92090
  }
91756
92091
  },
91757
92092
  extension: {
91758
- $visitor: _visitors_SpecificationExtensionVisitor_mjs__WEBPACK_IMPORTED_MODULE_6__["default"]
92093
+ $visitor: _visitors_SpecificationExtensionVisitor_mjs__WEBPACK_IMPORTED_MODULE_11__["default"]
91759
92094
  }
91760
92095
  }
91761
92096
  }
@@ -92085,6 +92420,118 @@ class FixedFieldsVisitor extends _SpecificationVisitor_mjs__WEBPACK_IMPORTED_MOD
92085
92420
  /* harmony export */ ]);
92086
92421
 
92087
92422
 
92423
+ /***/ },
92424
+
92425
+ /***/ 14990
92426
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
92427
+
92428
+ "use strict";
92429
+ __webpack_require__.r(__webpack_exports__);
92430
+ /* harmony import */ var ramda_adjunct__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(68894);
92431
+ /* harmony import */ var _PatternedFieldsVisitor_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(47578);
92432
+
92433
+
92434
+ /**
92435
+ * @public
92436
+ */
92437
+ /**
92438
+ * @public
92439
+ */
92440
+ class MapVisitor extends _PatternedFieldsVisitor_mjs__WEBPACK_IMPORTED_MODULE_1__["default"] {
92441
+ constructor(options) {
92442
+ super(options);
92443
+ this.fieldPatternPredicate = ramda_adjunct__WEBPACK_IMPORTED_MODULE_0__["default"];
92444
+ }
92445
+ }
92446
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MapVisitor);
92447
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, [
92448
+ /* harmony export */ "default", 0, __WEBPACK_DEFAULT_EXPORT__
92449
+ /* harmony export */ ]);
92450
+
92451
+
92452
+ /***/ },
92453
+
92454
+ /***/ 47578
92455
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
92456
+
92457
+ "use strict";
92458
+ __webpack_require__.r(__webpack_exports__);
92459
+ /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28833);
92460
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12111);
92461
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(31770);
92462
+ /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(44673);
92463
+ /* harmony import */ var _SpecificationVisitor_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75998);
92464
+ /* harmony import */ var _predicates_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(21461);
92465
+
92466
+
92467
+
92468
+
92469
+
92470
+ /**
92471
+ * @public
92472
+ */
92473
+ /**
92474
+ * @public
92475
+ */
92476
+ class PatternedFieldsVisitor extends _SpecificationVisitor_mjs__WEBPACK_IMPORTED_MODULE_4__["default"] {
92477
+ specPath;
92478
+ ignoredFields;
92479
+ fieldPatternPredicate = ramda__WEBPACK_IMPORTED_MODULE_0__["default"];
92480
+ canSupportSpecificationExtensions = false;
92481
+ specificationExtensionPredicate = _predicates_mjs__WEBPACK_IMPORTED_MODULE_5__.isOverlaySpecificationExtension;
92482
+ constructor({
92483
+ specPath,
92484
+ ignoredFields,
92485
+ fieldPatternPredicate,
92486
+ canSupportSpecificationExtensions,
92487
+ specificationExtensionPredicate,
92488
+ ...rest
92489
+ }) {
92490
+ super({
92491
+ ...rest
92492
+ });
92493
+ this.specPath = specPath;
92494
+ this.ignoredFields = ignoredFields || [];
92495
+ if (typeof fieldPatternPredicate === 'function') {
92496
+ this.fieldPatternPredicate = fieldPatternPredicate;
92497
+ }
92498
+ if (typeof canSupportSpecificationExtensions === 'boolean') {
92499
+ this.canSupportSpecificationExtensions = canSupportSpecificationExtensions;
92500
+ }
92501
+ if (typeof specificationExtensionPredicate === 'function') {
92502
+ this.specificationExtensionPredicate = specificationExtensionPredicate;
92503
+ }
92504
+ }
92505
+ ObjectElement(path) {
92506
+ const objectElement = path.node;
92507
+ // @ts-ignore
92508
+ objectElement.forEach((value, key, memberElement) => {
92509
+ if (this.canSupportSpecificationExtensions && this.specificationExtensionPredicate(memberElement)) {
92510
+ const extensionElement = this.toRefractedElement(['document', 'extension'], memberElement);
92511
+ this.element.push(extensionElement);
92512
+ } else if (!this.ignoredFields.includes((0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(key)) && this.fieldPatternPredicate((0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(key))) {
92513
+ const specPath = this.specPath(value);
92514
+ const patternedFieldElement = this.toRefractedElement(specPath, value);
92515
+ const newMemberElement = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](this.consume ? key : (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(key), patternedFieldElement);
92516
+ this.copyMetaAndAttributes(memberElement, newMemberElement);
92517
+ newMemberElement.classes.push('patterned-field');
92518
+ this.element.push(newMemberElement);
92519
+ // consume: release processed generic subtree
92520
+ if (this.consume && this.consumeSafe && !memberElement.isFrozen) memberElement.value = undefined;
92521
+ } else if (!this.ignoredFields.includes((0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(key))) {
92522
+ this.element.push(this.consume ? memberElement : (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(memberElement));
92523
+ }
92524
+ });
92525
+ this.copyMetaAndAttributes(objectElement, this.element);
92526
+ path.stop();
92527
+ }
92528
+ }
92529
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PatternedFieldsVisitor);
92530
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, [
92531
+ /* harmony export */ "default", 0, __WEBPACK_DEFAULT_EXPORT__
92532
+ /* harmony export */ ]);
92533
+
92534
+
92088
92535
  /***/ },
92089
92536
 
92090
92537
  /***/ 25049
@@ -92093,7 +92540,11 @@ class FixedFieldsVisitor extends _SpecificationVisitor_mjs__WEBPACK_IMPORTED_MOD
92093
92540
  "use strict";
92094
92541
  __webpack_require__.r(__webpack_exports__);
92095
92542
  /* harmony import */ var _elements_nces_Actions_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(39505);
92096
- /* harmony import */ var _bases_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(77554);
92543
+ /* harmony import */ var _predicates_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21461);
92544
+ /* harmony import */ var _predicates_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(26432);
92545
+ /* harmony import */ var _bases_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(77554);
92546
+
92547
+
92097
92548
 
92098
92549
 
92099
92550
  /**
@@ -92102,7 +92553,7 @@ __webpack_require__.r(__webpack_exports__);
92102
92553
  /**
92103
92554
  * @public
92104
92555
  */
92105
- class ActionsVisitor extends _bases_mjs__WEBPACK_IMPORTED_MODULE_1__.BaseSpecificationFallbackVisitor {
92556
+ class ActionsVisitor extends _bases_mjs__WEBPACK_IMPORTED_MODULE_3__.BaseSpecificationFallbackVisitor {
92106
92557
  element;
92107
92558
  constructor(options) {
92108
92559
  super(options);
@@ -92111,8 +92562,11 @@ class ActionsVisitor extends _bases_mjs__WEBPACK_IMPORTED_MODULE_1__.BaseSpecifi
92111
92562
  ArrayElement(path) {
92112
92563
  const arrayElement = path.node;
92113
92564
  arrayElement.forEach(item => {
92114
- const specPath = ['document', 'objects', 'Action'];
92565
+ const specPath = (0,_predicates_mjs__WEBPACK_IMPORTED_MODULE_1__.isReusableActionReferenceLikeElement)(item) ? ['document', 'objects', 'ReusableActionReference'] : ['document', 'objects', 'Action'];
92115
92566
  const element = this.toRefractedElement(specPath, item);
92567
+ if ((0,_predicates_mjs__WEBPACK_IMPORTED_MODULE_2__.isReusableActionReferenceElement)(element)) {
92568
+ element.meta.set('referenced-element', 'reusableAction');
92569
+ }
92116
92570
  this.element.push(element);
92117
92571
  });
92118
92572
  this.copyMetaAndAttributes(arrayElement, this.element);
@@ -92203,6 +92657,8 @@ __webpack_require__.r(__webpack_exports__);
92203
92657
  /* harmony import */ var _SpecificationVisitor_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(75998);
92204
92658
  /* harmony import */ var _FallbackVisitor_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(89439);
92205
92659
  /* harmony import */ var _generics_FixedFieldsVisitor_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1783);
92660
+ /* harmony import */ var _generics_MapVisitor_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14990);
92661
+
92206
92662
 
92207
92663
 
92208
92664
 
@@ -92223,15 +92679,91 @@ const BaseSpecificationFallbackVisitor = (0,ts_mixer__WEBPACK_IMPORTED_MODULE_0_
92223
92679
  */
92224
92680
  const BaseFixedFieldsFallbackVisitor = (0,ts_mixer__WEBPACK_IMPORTED_MODULE_0__.Mixin)(_generics_FixedFieldsVisitor_mjs__WEBPACK_IMPORTED_MODULE_3__["default"], _FallbackVisitor_mjs__WEBPACK_IMPORTED_MODULE_2__["default"]);
92225
92681
 
92682
+ /**
92683
+ * @public
92684
+ */
92685
+
92686
+ /**
92687
+ * Base class for visitors using Mixin(MapVisitor, FallbackVisitor).
92688
+ * @public
92689
+ */
92690
+ const BaseMapFallbackVisitor = (0,ts_mixer__WEBPACK_IMPORTED_MODULE_0__.Mixin)(_generics_MapVisitor_mjs__WEBPACK_IMPORTED_MODULE_4__["default"], _FallbackVisitor_mjs__WEBPACK_IMPORTED_MODULE_2__["default"]);
92691
+
92226
92692
  /**
92227
92693
  * @public
92228
92694
  */
92229
92695
  /* harmony export */ __webpack_require__.d(__webpack_exports__, [
92230
92696
  /* harmony export */ "BaseFixedFieldsFallbackVisitor", 0, /* binding */ BaseFixedFieldsFallbackVisitor,
92697
+ /* harmony export */ "BaseMapFallbackVisitor", 0, /* binding */ BaseMapFallbackVisitor,
92231
92698
  /* harmony export */ "BaseSpecificationFallbackVisitor", 0, /* binding */ BaseSpecificationFallbackVisitor
92232
92699
  /* harmony export */ ]);
92233
92700
 
92234
92701
 
92702
+ /***/ },
92703
+
92704
+ /***/ 11002
92705
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
92706
+
92707
+ "use strict";
92708
+ __webpack_require__.r(__webpack_exports__);
92709
+ /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(29498);
92710
+ /* harmony import */ var _elements_nces_ComponentsActions_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44405);
92711
+ /* harmony import */ var _bases_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(77554);
92712
+
92713
+
92714
+
92715
+ /**
92716
+ * @public
92717
+ */
92718
+ /**
92719
+ * @public
92720
+ */
92721
+ class ActionsVisitor extends _bases_mjs__WEBPACK_IMPORTED_MODULE_2__.BaseMapFallbackVisitor {
92722
+ constructor(options) {
92723
+ super(options);
92724
+ this.element = new _elements_nces_ComponentsActions_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]();
92725
+ this.specPath = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(['document', 'objects', 'ReusableAction']);
92726
+ }
92727
+ }
92728
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ActionsVisitor);
92729
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, [
92730
+ /* harmony export */ "default", 0, __WEBPACK_DEFAULT_EXPORT__
92731
+ /* harmony export */ ]);
92732
+
92733
+
92734
+ /***/ },
92735
+
92736
+ /***/ 55757
92737
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
92738
+
92739
+ "use strict";
92740
+ __webpack_require__.r(__webpack_exports__);
92741
+ /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(29498);
92742
+ /* harmony import */ var _elements_Components_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(96264);
92743
+ /* harmony import */ var _bases_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(77554);
92744
+
92745
+
92746
+
92747
+ /**
92748
+ * @public
92749
+ */
92750
+ /**
92751
+ * @public
92752
+ */
92753
+ class ComponentsVisitor extends _bases_mjs__WEBPACK_IMPORTED_MODULE_2__.BaseFixedFieldsFallbackVisitor {
92754
+ constructor(options) {
92755
+ super(options);
92756
+ this.element = new _elements_Components_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]();
92757
+ this.specPath = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(['document', 'objects', 'Components']);
92758
+ this.canSupportSpecificationExtensions = true;
92759
+ }
92760
+ }
92761
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ComponentsVisitor);
92762
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, [
92763
+ /* harmony export */ "default", 0, __WEBPACK_DEFAULT_EXPORT__
92764
+ /* harmony export */ ]);
92765
+
92766
+
92235
92767
  /***/ },
92236
92768
 
92237
92769
  /***/ 30820
@@ -92332,6 +92864,96 @@ class InfoVisitor extends _bases_mjs__WEBPACK_IMPORTED_MODULE_2__.BaseFixedField
92332
92864
  /* harmony export */ ]);
92333
92865
 
92334
92866
 
92867
+ /***/ },
92868
+
92869
+ /***/ 54152
92870
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
92871
+
92872
+ "use strict";
92873
+ __webpack_require__.r(__webpack_exports__);
92874
+ /* harmony import */ var _FallbackVisitor_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(89439);
92875
+
92876
+ /**
92877
+ * @public
92878
+ */
92879
+ class $RefVisitor extends _FallbackVisitor_mjs__WEBPACK_IMPORTED_MODULE_0__["default"] {
92880
+ StringElement(path) {
92881
+ super.enter(path);
92882
+ this.element.classes.push('reference-value');
92883
+ }
92884
+ }
92885
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ($RefVisitor);
92886
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, [
92887
+ /* harmony export */ "default", 0, __WEBPACK_DEFAULT_EXPORT__
92888
+ /* harmony export */ ]);
92889
+
92890
+
92891
+ /***/ },
92892
+
92893
+ /***/ 11011
92894
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
92895
+
92896
+ "use strict";
92897
+ __webpack_require__.r(__webpack_exports__);
92898
+ /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(29498);
92899
+ /* harmony import */ var _elements_ReusableActionReference_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(37016);
92900
+ /* harmony import */ var _bases_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(77554);
92901
+
92902
+
92903
+
92904
+ /**
92905
+ * @public
92906
+ */
92907
+ /**
92908
+ * @public
92909
+ */
92910
+ class ReusableActionReferenceVisitor extends _bases_mjs__WEBPACK_IMPORTED_MODULE_2__.BaseFixedFieldsFallbackVisitor {
92911
+ constructor(options) {
92912
+ super(options);
92913
+ this.element = new _elements_ReusableActionReference_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]();
92914
+ this.specPath = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(['document', 'objects', 'ReusableActionReference']);
92915
+ this.canSupportSpecificationExtensions = true;
92916
+ }
92917
+ }
92918
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ReusableActionReferenceVisitor);
92919
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, [
92920
+ /* harmony export */ "default", 0, __WEBPACK_DEFAULT_EXPORT__
92921
+ /* harmony export */ ]);
92922
+
92923
+
92924
+ /***/ },
92925
+
92926
+ /***/ 67911
92927
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
92928
+
92929
+ "use strict";
92930
+ __webpack_require__.r(__webpack_exports__);
92931
+ /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(29498);
92932
+ /* harmony import */ var _elements_ReusableAction_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(93745);
92933
+ /* harmony import */ var _bases_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(77554);
92934
+
92935
+
92936
+
92937
+ /**
92938
+ * @public
92939
+ */
92940
+ /**
92941
+ * @public
92942
+ */
92943
+ class ReusableActionVisitor extends _bases_mjs__WEBPACK_IMPORTED_MODULE_2__.BaseFixedFieldsFallbackVisitor {
92944
+ constructor(options) {
92945
+ super(options);
92946
+ this.element = new _elements_ReusableAction_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]();
92947
+ this.specPath = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(['document', 'objects', 'ReusableAction']);
92948
+ this.canSupportSpecificationExtensions = true;
92949
+ }
92950
+ }
92951
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ReusableActionVisitor);
92952
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, [
92953
+ /* harmony export */ "default", 0, __WEBPACK_DEFAULT_EXPORT__
92954
+ /* harmony export */ ]);
92955
+
92956
+
92335
92957
  /***/ },
92336
92958
 
92337
92959
  /***/ 6017
@@ -107099,8 +107721,12 @@ async function dereferenceExtends(parseResult, parseResultRetrievalURI, options)
107099
107721
  if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isStringElement)(extendsElement)) {
107100
107722
  return;
107101
107723
  }
107724
+
107725
+ // Overlay 1.2.0: `$self` (itself resolved against the retrieval URI) is the base URI
107726
+ const selfElement = api.get('$self');
107727
+ const baseURI = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isStringElement)(selfElement) ? _util_url_mjs__WEBPACK_IMPORTED_MODULE_8__.resolve(file.uri, (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(selfElement)) : file.uri;
107102
107728
  const extendsURI = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(extendsElement);
107103
- const retrievalURI = _util_url_mjs__WEBPACK_IMPORTED_MODULE_8__.sanitize(_util_url_mjs__WEBPACK_IMPORTED_MODULE_8__.stripHash(_util_url_mjs__WEBPACK_IMPORTED_MODULE_8__.resolve(file.uri, extendsURI)));
107729
+ const retrievalURI = _util_url_mjs__WEBPACK_IMPORTED_MODULE_8__.sanitize(_util_url_mjs__WEBPACK_IMPORTED_MODULE_8__.stripHash(_util_url_mjs__WEBPACK_IMPORTED_MODULE_8__.resolve(baseURI, extendsURI)));
107104
107730
  const extendsDereferenceResult = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__["default"]();
107105
107731
  extendsDereferenceResult.classes.push('extends');
107106
107732
  extendsDereferenceResult.setMetaProperty('retrievalURI', retrievalURI);
@@ -107156,13 +107782,18 @@ async function dereferenceExtends(parseResult, parseResultRetrievalURI, options)
107156
107782
  "use strict";
107157
107783
  __webpack_require__.r(__webpack_exports__);
107158
107784
  /* empty/unused harmony star reexport */
107785
+ /* empty/unused harmony star reexport */
107159
107786
  /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12111);
107160
107787
  /* harmony import */ var _speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13786);
107161
107788
  /* harmony import */ var _speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(26432);
107162
- /* harmony import */ var _DereferenceStrategy_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12993);
107163
- /* harmony import */ var _Reference_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(82302);
107164
- /* harmony import */ var _ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(88526);
107165
- /* harmony import */ var _extends_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(51826);
107789
+ /* harmony import */ var _speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(80796);
107790
+ /* harmony import */ var _DereferenceStrategy_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(12993);
107791
+ /* harmony import */ var _Reference_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(82302);
107792
+ /* harmony import */ var _ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(88526);
107793
+ /* harmony import */ var _extends_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(51826);
107794
+ /* harmony import */ var _visitor_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(64595);
107795
+
107796
+
107166
107797
 
107167
107798
 
107168
107799
 
@@ -107175,7 +107806,7 @@ __webpack_require__.r(__webpack_exports__);
107175
107806
  /**
107176
107807
  * @public
107177
107808
  */
107178
- class Overlay1DereferenceStrategy extends _DereferenceStrategy_mjs__WEBPACK_IMPORTED_MODULE_3__["default"] {
107809
+ class Overlay1DereferenceStrategy extends _DereferenceStrategy_mjs__WEBPACK_IMPORTED_MODULE_4__["default"] {
107179
107810
  constructor(options) {
107180
107811
  super({
107181
107812
  ...(options ?? {}),
@@ -107192,11 +107823,11 @@ class Overlay1DereferenceStrategy extends _DereferenceStrategy_mjs__WEBPACK_IMPO
107192
107823
  return (0,_speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_2__.isOverlay1Element)(file.parseResult?.result);
107193
107824
  }
107194
107825
  async dereference(file, options) {
107195
- const immutableRefSet = options.dereference.refSet ?? new _ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]();
107196
- const mutableRefSet = new _ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]();
107826
+ const immutableRefSet = options.dereference.refSet ?? new _ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_6__["default"]();
107827
+ const mutableRefSet = new _ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_6__["default"]();
107197
107828
  let reference;
107198
107829
  if (!immutableRefSet.has(file.uri)) {
107199
- reference = new _Reference_mjs__WEBPACK_IMPORTED_MODULE_4__["default"]({
107830
+ reference = new _Reference_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]({
107200
107831
  uri: file.uri,
107201
107832
  value: file.parseResult
107202
107833
  });
@@ -107211,7 +107842,7 @@ class Overlay1DereferenceStrategy extends _DereferenceStrategy_mjs__WEBPACK_IMPO
107211
107842
  * We don't want to mutate the original refSet and the references.
107212
107843
  */
107213
107844
  if (options.dereference.immutable) {
107214
- immutableRefSet.refs.map(ref => new _Reference_mjs__WEBPACK_IMPORTED_MODULE_4__["default"]({
107845
+ immutableRefSet.refs.map(ref => new _Reference_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]({
107215
107846
  ...ref,
107216
107847
  value: (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.cloneDeep)(ref.value)
107217
107848
  })).forEach(ref => mutableRefSet.add(ref));
@@ -107219,19 +107850,31 @@ class Overlay1DereferenceStrategy extends _DereferenceStrategy_mjs__WEBPACK_IMPO
107219
107850
  }
107220
107851
  const dereferencedElement = reference.value;
107221
107852
 
107853
+ /**
107854
+ * Reusable Action References only occur within `actions`, so the root element is never
107855
+ * replaced and traversing it keeps reported locations relative to the document.
107856
+ */
107857
+ const visitor = new _visitor_mjs__WEBPACK_IMPORTED_MODULE_8__["default"]({
107858
+ reference,
107859
+ options
107860
+ });
107861
+ await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_3__.traverseAsync)(dereferencedElement.result, visitor, {
107862
+ mutable: true
107863
+ });
107864
+
107222
107865
  /**
107223
107866
  * Dereference extends target if option is enabled.
107224
107867
  */
107225
107868
  const shouldDereferenceExtends = options?.dereference?.strategyOpts?.[this.name]?.extends ?? options?.dereference?.strategyOpts?.extends;
107226
107869
  if (shouldDereferenceExtends) {
107227
- await (0,_extends_mjs__WEBPACK_IMPORTED_MODULE_6__.dereferenceExtends)(dereferencedElement, reference.uri, options);
107870
+ await (0,_extends_mjs__WEBPACK_IMPORTED_MODULE_7__.dereferenceExtends)(dereferencedElement, reference.uri, options);
107228
107871
  }
107229
107872
 
107230
107873
  /**
107231
107874
  * If immutable option is set, replay refs from the refSet.
107232
107875
  */
107233
107876
  if (options.dereference.immutable) {
107234
- mutableRefSet.refs.filter(ref => ref.uri.startsWith('immutable://')).map(ref => new _Reference_mjs__WEBPACK_IMPORTED_MODULE_4__["default"]({
107877
+ mutableRefSet.refs.filter(ref => ref.uri.startsWith('immutable://')).map(ref => new _Reference_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]({
107235
107878
  ...ref,
107236
107879
  uri: ref.uri.replace(/^immutable:\/\//, '')
107237
107880
  })).forEach(ref => immutableRefSet.add(ref));
@@ -107249,12 +107892,176 @@ class Overlay1DereferenceStrategy extends _DereferenceStrategy_mjs__WEBPACK_IMPO
107249
107892
  }
107250
107893
  }
107251
107894
 
107895
+
107252
107896
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Overlay1DereferenceStrategy);
107253
107897
  /* harmony export */ __webpack_require__.d(__webpack_exports__, [
107254
107898
  /* harmony export */ "default", 0, __WEBPACK_DEFAULT_EXPORT__
107255
107899
  /* harmony export */ ]);
107256
107900
 
107257
107901
 
107902
+ /***/ },
107903
+
107904
+ /***/ 64595
107905
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
107906
+
107907
+ "use strict";
107908
+ __webpack_require__.r(__webpack_exports__);
107909
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12111);
107910
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(18252);
107911
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25810);
107912
+ /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(44673);
107913
+ /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16280);
107914
+ /* harmony import */ var _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(44641);
107915
+ /* harmony import */ var _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(12020);
107916
+ /* harmony import */ var _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(61198);
107917
+ /* harmony import */ var _speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(26432);
107918
+ /* harmony import */ var _speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(35937);
107919
+ /* harmony import */ var _errors_UnresolvableReferenceError_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(34968);
107920
+
107921
+
107922
+
107923
+
107924
+
107925
+
107926
+ /**
107927
+ * @public
107928
+ */
107929
+ /**
107930
+ * @public
107931
+ */
107932
+ class Overlay1DereferenceVisitor {
107933
+ reference;
107934
+ options;
107935
+ constructor({
107936
+ reference,
107937
+ options
107938
+ }) {
107939
+ this.reference = reference;
107940
+ this.options = options;
107941
+ }
107942
+ ReusableActionReferenceElement(path) {
107943
+ const referencingElement = path.node;
107944
+
107945
+ // ignore if resolve.internal is false (Reusable Action References are internal references only)
107946
+ if (!this.options.resolve.internal) {
107947
+ path.skip();
107948
+ return;
107949
+ }
107950
+ const $ref = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(referencingElement.$ref);
107951
+ const overlayElement = this.reference.value.result;
107952
+ const actionElement = new _speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_9__.ActionElement();
107953
+ try {
107954
+ if (typeof $ref !== 'string') {
107955
+ throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_5__["default"]('Reusable Action Reference "$ref" field must be a string');
107956
+ }
107957
+
107958
+ // only `target`, `description` and extensions may accompany `$ref`
107959
+ const disallowedField = ['update', 'copy', 'remove'].find(field => referencingElement.hasKey(field));
107960
+ if (disallowedField !== undefined) {
107961
+ throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_5__["default"](`Reusable Action Reference "${$ref}" must not define "${disallowedField}"`, {
107962
+ $ref
107963
+ });
107964
+ }
107965
+
107966
+ // same-document reference only; external references are not supported
107967
+ if (!$ref.startsWith('#')) {
107968
+ throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_5__["default"](`Reusable Action Reference "${$ref}" must be a same-document reference`, {
107969
+ $ref
107970
+ });
107971
+ }
107972
+
107973
+ /**
107974
+ * Only entries of `components.actions` are refracted as Reusable Actions,
107975
+ * so the element type alone proves the pointer leads there.
107976
+ */
107977
+ let reusableAction;
107978
+ try {
107979
+ reusableAction = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_6__.evaluate)(overlayElement, _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_7__.URIFragmentIdentifier.from($ref));
107980
+ } catch {
107981
+ reusableAction = undefined;
107982
+ }
107983
+ if (!(0,_speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_8__.isReusableActionElement)(reusableAction)) {
107984
+ throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_5__["default"](`Reusable Action Reference "${$ref}" cannot be resolved`, {
107985
+ $ref
107986
+ });
107987
+ }
107988
+ const {
107989
+ fields
107990
+ } = reusableAction;
107991
+ if (fields !== undefined && !(0,_speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_8__.isActionElement)(fields)) {
107992
+ throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_5__["default"](`Reusable Action "${$ref}" must define "fields" as an object`, {
107993
+ $ref
107994
+ });
107995
+ }
107996
+ if ((0,_speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_8__.isActionElement)(fields) && fields.hasKey('target')) {
107997
+ throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_5__["default"](`Reusable Action "${$ref}" must not define "target" in its "fields"`, {
107998
+ $ref
107999
+ });
108000
+ }
108001
+
108002
+ // the reference supplies `target` and its `description` takes precedence over the one in `fields`
108003
+ const {
108004
+ target,
108005
+ description
108006
+ } = referencingElement;
108007
+ if (target !== undefined) {
108008
+ actionElement.set('target', (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.cloneDeep)(target));
108009
+ }
108010
+ if ((0,_speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_8__.isActionElement)(fields)) {
108011
+ fields.forEach((value, keyElement) => {
108012
+ actionElement.set((0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(keyElement), (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.cloneDeep)(value));
108013
+ });
108014
+ }
108015
+ if (description !== undefined) {
108016
+ actionElement.set('description', (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.cloneDeep)(description));
108017
+ }
108018
+ } catch (error) {
108019
+ const {
108020
+ continueOnError
108021
+ } = this.options.dereference;
108022
+ const unresolvedError = new _errors_UnresolvableReferenceError_mjs__WEBPACK_IMPORTED_MODULE_10__["default"](`Error while dereferencing Reusable Action Reference "${$ref}": ${error.message}`, {
108023
+ cause: error,
108024
+ type: referencingElement.element,
108025
+ uri: this.reference.uri,
108026
+ location: path.formatPath(),
108027
+ codeFrame: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(referencingElement),
108028
+ refFieldName: '$ref',
108029
+ refFieldValue: $ref,
108030
+ trace: []
108031
+ });
108032
+ if (continueOnError === false) throw unresolvedError;
108033
+ if (typeof continueOnError === 'function') continueOnError(unresolvedError);
108034
+ path.skip();
108035
+ return;
108036
+ }
108037
+
108038
+ // the action takes the place of the reference in `actions`, so it inherits its source position
108039
+ if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.hasElementSourceMap)(referencingElement)) {
108040
+ _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"].transfer(referencingElement, actionElement);
108041
+ }
108042
+
108043
+ // annotate with info about original referencing element
108044
+ actionElement.meta.set('ref-fields', {
108045
+ $ref,
108046
+ description: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(referencingElement.description)
108047
+ });
108048
+ // annotate with info about origin
108049
+ actionElement.meta.set('ref-origin', this.reference.uri);
108050
+ actionElement.meta.set('ref-type', referencingElement.element);
108051
+
108052
+ /**
108053
+ * Transclude referencing element with resolved Action Object.
108054
+ */
108055
+ path.replaceWith(actionElement);
108056
+ path.skip();
108057
+ }
108058
+ }
108059
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Overlay1DereferenceVisitor);
108060
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, [
108061
+ /* harmony export */ "default", 0, __WEBPACK_DEFAULT_EXPORT__
108062
+ /* harmony export */ ]);
108063
+
108064
+
107258
108065
  /***/ },
107259
108066
 
107260
108067
  /***/ 14520
@@ -109584,8 +110391,12 @@ async function parseExtends(parseResult, parseResultRetrievalURI, options) {
109584
110391
  if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isStringElement)(extendsElement)) {
109585
110392
  return;
109586
110393
  }
110394
+
110395
+ // Overlay 1.2.0: `$self` (itself resolved against the retrieval URI) is the base URI
110396
+ const selfElement = api.get('$self');
110397
+ const baseURI = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isStringElement)(selfElement) ? _util_url_mjs__WEBPACK_IMPORTED_MODULE_6__.resolve(file.uri, (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(selfElement)) : file.uri;
109587
110398
  const extendsURI = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(extendsElement);
109588
- const retrievalURI = _util_url_mjs__WEBPACK_IMPORTED_MODULE_6__.sanitize(_util_url_mjs__WEBPACK_IMPORTED_MODULE_6__.stripHash(_util_url_mjs__WEBPACK_IMPORTED_MODULE_6__.resolve(file.uri, extendsURI)));
110399
+ const retrievalURI = _util_url_mjs__WEBPACK_IMPORTED_MODULE_6__.sanitize(_util_url_mjs__WEBPACK_IMPORTED_MODULE_6__.stripHash(_util_url_mjs__WEBPACK_IMPORTED_MODULE_6__.resolve(baseURI, extendsURI)));
109589
110400
  const extendsParseResult = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]();
109590
110401
  extendsParseResult.classes.push('extends');
109591
110402
  extendsParseResult.setMetaProperty('retrievalURI', retrievalURI);
@@ -111015,13 +111826,14 @@ const cwd = () => {
111015
111826
  const resolve = (from, to) => {
111016
111827
  const resolvedUrl = new URL(to, new URL(from, 'resolve://'));
111017
111828
  if (resolvedUrl.protocol === 'resolve:') {
111018
- // `from` is a relative URL.
111829
+ // `from` is a relative URL; a network-path reference (`//host/path`) keeps its authority
111019
111830
  const {
111831
+ host,
111020
111832
  pathname,
111021
111833
  search,
111022
111834
  hash
111023
111835
  } = resolvedUrl;
111024
- return pathname + search + hash;
111836
+ return (host ? `//${host}` : '') + pathname + search + hash;
111025
111837
  }
111026
111838
  return resolvedUrl.toString();
111027
111839
  };