@speclynx/apidom-overlay 5.2.7 → 6.0.1

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,9 @@ 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 _bases_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(77554);
92545
+
92097
92546
 
92098
92547
 
92099
92548
  /**
@@ -92102,7 +92551,7 @@ __webpack_require__.r(__webpack_exports__);
92102
92551
  /**
92103
92552
  * @public
92104
92553
  */
92105
- class ActionsVisitor extends _bases_mjs__WEBPACK_IMPORTED_MODULE_1__.BaseSpecificationFallbackVisitor {
92554
+ class ActionsVisitor extends _bases_mjs__WEBPACK_IMPORTED_MODULE_2__.BaseSpecificationFallbackVisitor {
92106
92555
  element;
92107
92556
  constructor(options) {
92108
92557
  super(options);
@@ -92111,7 +92560,7 @@ class ActionsVisitor extends _bases_mjs__WEBPACK_IMPORTED_MODULE_1__.BaseSpecifi
92111
92560
  ArrayElement(path) {
92112
92561
  const arrayElement = path.node;
92113
92562
  arrayElement.forEach(item => {
92114
- const specPath = ['document', 'objects', 'Action'];
92563
+ const specPath = (0,_predicates_mjs__WEBPACK_IMPORTED_MODULE_1__.isReusableActionReferenceLikeElement)(item) ? ['document', 'objects', 'ReusableActionReference'] : ['document', 'objects', 'Action'];
92115
92564
  const element = this.toRefractedElement(specPath, item);
92116
92565
  this.element.push(element);
92117
92566
  });
@@ -92203,6 +92652,8 @@ __webpack_require__.r(__webpack_exports__);
92203
92652
  /* harmony import */ var _SpecificationVisitor_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(75998);
92204
92653
  /* harmony import */ var _FallbackVisitor_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(89439);
92205
92654
  /* harmony import */ var _generics_FixedFieldsVisitor_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1783);
92655
+ /* harmony import */ var _generics_MapVisitor_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14990);
92656
+
92206
92657
 
92207
92658
 
92208
92659
 
@@ -92223,15 +92674,91 @@ const BaseSpecificationFallbackVisitor = (0,ts_mixer__WEBPACK_IMPORTED_MODULE_0_
92223
92674
  */
92224
92675
  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
92676
 
92677
+ /**
92678
+ * @public
92679
+ */
92680
+
92681
+ /**
92682
+ * Base class for visitors using Mixin(MapVisitor, FallbackVisitor).
92683
+ * @public
92684
+ */
92685
+ 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"]);
92686
+
92226
92687
  /**
92227
92688
  * @public
92228
92689
  */
92229
92690
  /* harmony export */ __webpack_require__.d(__webpack_exports__, [
92230
92691
  /* harmony export */ "BaseFixedFieldsFallbackVisitor", 0, /* binding */ BaseFixedFieldsFallbackVisitor,
92692
+ /* harmony export */ "BaseMapFallbackVisitor", 0, /* binding */ BaseMapFallbackVisitor,
92231
92693
  /* harmony export */ "BaseSpecificationFallbackVisitor", 0, /* binding */ BaseSpecificationFallbackVisitor
92232
92694
  /* harmony export */ ]);
92233
92695
 
92234
92696
 
92697
+ /***/ },
92698
+
92699
+ /***/ 11002
92700
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
92701
+
92702
+ "use strict";
92703
+ __webpack_require__.r(__webpack_exports__);
92704
+ /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(29498);
92705
+ /* harmony import */ var _elements_nces_ComponentsActions_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44405);
92706
+ /* harmony import */ var _bases_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(77554);
92707
+
92708
+
92709
+
92710
+ /**
92711
+ * @public
92712
+ */
92713
+ /**
92714
+ * @public
92715
+ */
92716
+ class ActionsVisitor extends _bases_mjs__WEBPACK_IMPORTED_MODULE_2__.BaseMapFallbackVisitor {
92717
+ constructor(options) {
92718
+ super(options);
92719
+ this.element = new _elements_nces_ComponentsActions_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]();
92720
+ this.specPath = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(['document', 'objects', 'ReusableAction']);
92721
+ }
92722
+ }
92723
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ActionsVisitor);
92724
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, [
92725
+ /* harmony export */ "default", 0, __WEBPACK_DEFAULT_EXPORT__
92726
+ /* harmony export */ ]);
92727
+
92728
+
92729
+ /***/ },
92730
+
92731
+ /***/ 55757
92732
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
92733
+
92734
+ "use strict";
92735
+ __webpack_require__.r(__webpack_exports__);
92736
+ /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(29498);
92737
+ /* harmony import */ var _elements_Components_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(96264);
92738
+ /* harmony import */ var _bases_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(77554);
92739
+
92740
+
92741
+
92742
+ /**
92743
+ * @public
92744
+ */
92745
+ /**
92746
+ * @public
92747
+ */
92748
+ class ComponentsVisitor extends _bases_mjs__WEBPACK_IMPORTED_MODULE_2__.BaseFixedFieldsFallbackVisitor {
92749
+ constructor(options) {
92750
+ super(options);
92751
+ this.element = new _elements_Components_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]();
92752
+ this.specPath = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(['document', 'objects', 'Components']);
92753
+ this.canSupportSpecificationExtensions = true;
92754
+ }
92755
+ }
92756
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ComponentsVisitor);
92757
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, [
92758
+ /* harmony export */ "default", 0, __WEBPACK_DEFAULT_EXPORT__
92759
+ /* harmony export */ ]);
92760
+
92761
+
92235
92762
  /***/ },
92236
92763
 
92237
92764
  /***/ 30820
@@ -92332,6 +92859,96 @@ class InfoVisitor extends _bases_mjs__WEBPACK_IMPORTED_MODULE_2__.BaseFixedField
92332
92859
  /* harmony export */ ]);
92333
92860
 
92334
92861
 
92862
+ /***/ },
92863
+
92864
+ /***/ 54152
92865
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
92866
+
92867
+ "use strict";
92868
+ __webpack_require__.r(__webpack_exports__);
92869
+ /* harmony import */ var _FallbackVisitor_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(89439);
92870
+
92871
+ /**
92872
+ * @public
92873
+ */
92874
+ class $RefVisitor extends _FallbackVisitor_mjs__WEBPACK_IMPORTED_MODULE_0__["default"] {
92875
+ StringElement(path) {
92876
+ super.enter(path);
92877
+ this.element.classes.push('reference-value');
92878
+ }
92879
+ }
92880
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ($RefVisitor);
92881
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, [
92882
+ /* harmony export */ "default", 0, __WEBPACK_DEFAULT_EXPORT__
92883
+ /* harmony export */ ]);
92884
+
92885
+
92886
+ /***/ },
92887
+
92888
+ /***/ 11011
92889
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
92890
+
92891
+ "use strict";
92892
+ __webpack_require__.r(__webpack_exports__);
92893
+ /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(29498);
92894
+ /* harmony import */ var _elements_ReusableActionReference_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(37016);
92895
+ /* harmony import */ var _bases_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(77554);
92896
+
92897
+
92898
+
92899
+ /**
92900
+ * @public
92901
+ */
92902
+ /**
92903
+ * @public
92904
+ */
92905
+ class ReusableActionReferenceVisitor extends _bases_mjs__WEBPACK_IMPORTED_MODULE_2__.BaseFixedFieldsFallbackVisitor {
92906
+ constructor(options) {
92907
+ super(options);
92908
+ this.element = new _elements_ReusableActionReference_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]();
92909
+ this.specPath = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(['document', 'objects', 'ReusableActionReference']);
92910
+ this.canSupportSpecificationExtensions = true;
92911
+ }
92912
+ }
92913
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ReusableActionReferenceVisitor);
92914
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, [
92915
+ /* harmony export */ "default", 0, __WEBPACK_DEFAULT_EXPORT__
92916
+ /* harmony export */ ]);
92917
+
92918
+
92919
+ /***/ },
92920
+
92921
+ /***/ 67911
92922
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
92923
+
92924
+ "use strict";
92925
+ __webpack_require__.r(__webpack_exports__);
92926
+ /* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(29498);
92927
+ /* harmony import */ var _elements_ReusableAction_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(93745);
92928
+ /* harmony import */ var _bases_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(77554);
92929
+
92930
+
92931
+
92932
+ /**
92933
+ * @public
92934
+ */
92935
+ /**
92936
+ * @public
92937
+ */
92938
+ class ReusableActionVisitor extends _bases_mjs__WEBPACK_IMPORTED_MODULE_2__.BaseFixedFieldsFallbackVisitor {
92939
+ constructor(options) {
92940
+ super(options);
92941
+ this.element = new _elements_ReusableAction_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]();
92942
+ this.specPath = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(['document', 'objects', 'ReusableAction']);
92943
+ this.canSupportSpecificationExtensions = true;
92944
+ }
92945
+ }
92946
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ReusableActionVisitor);
92947
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, [
92948
+ /* harmony export */ "default", 0, __WEBPACK_DEFAULT_EXPORT__
92949
+ /* harmony export */ ]);
92950
+
92951
+
92335
92952
  /***/ },
92336
92953
 
92337
92954
  /***/ 6017
@@ -107099,8 +107716,12 @@ async function dereferenceExtends(parseResult, parseResultRetrievalURI, options)
107099
107716
  if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isStringElement)(extendsElement)) {
107100
107717
  return;
107101
107718
  }
107719
+
107720
+ // Overlay 1.2.0: `$self` (itself resolved against the retrieval URI) is the base URI
107721
+ const selfElement = api.get('$self');
107722
+ 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
107723
  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)));
107724
+ 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
107725
  const extendsDereferenceResult = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__["default"]();
107105
107726
  extendsDereferenceResult.classes.push('extends');
107106
107727
  extendsDereferenceResult.setMetaProperty('retrievalURI', retrievalURI);
@@ -107156,13 +107777,18 @@ async function dereferenceExtends(parseResult, parseResultRetrievalURI, options)
107156
107777
  "use strict";
107157
107778
  __webpack_require__.r(__webpack_exports__);
107158
107779
  /* empty/unused harmony star reexport */
107780
+ /* empty/unused harmony star reexport */
107159
107781
  /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12111);
107160
107782
  /* harmony import */ var _speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13786);
107161
107783
  /* 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);
107784
+ /* harmony import */ var _speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(80796);
107785
+ /* harmony import */ var _DereferenceStrategy_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(12993);
107786
+ /* harmony import */ var _Reference_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(82302);
107787
+ /* harmony import */ var _ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(88526);
107788
+ /* harmony import */ var _extends_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(51826);
107789
+ /* harmony import */ var _visitor_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(64595);
107790
+
107791
+
107166
107792
 
107167
107793
 
107168
107794
 
@@ -107175,7 +107801,7 @@ __webpack_require__.r(__webpack_exports__);
107175
107801
  /**
107176
107802
  * @public
107177
107803
  */
107178
- class Overlay1DereferenceStrategy extends _DereferenceStrategy_mjs__WEBPACK_IMPORTED_MODULE_3__["default"] {
107804
+ class Overlay1DereferenceStrategy extends _DereferenceStrategy_mjs__WEBPACK_IMPORTED_MODULE_4__["default"] {
107179
107805
  constructor(options) {
107180
107806
  super({
107181
107807
  ...(options ?? {}),
@@ -107192,11 +107818,11 @@ class Overlay1DereferenceStrategy extends _DereferenceStrategy_mjs__WEBPACK_IMPO
107192
107818
  return (0,_speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_2__.isOverlay1Element)(file.parseResult?.result);
107193
107819
  }
107194
107820
  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"]();
107821
+ const immutableRefSet = options.dereference.refSet ?? new _ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_6__["default"]();
107822
+ const mutableRefSet = new _ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_6__["default"]();
107197
107823
  let reference;
107198
107824
  if (!immutableRefSet.has(file.uri)) {
107199
- reference = new _Reference_mjs__WEBPACK_IMPORTED_MODULE_4__["default"]({
107825
+ reference = new _Reference_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]({
107200
107826
  uri: file.uri,
107201
107827
  value: file.parseResult
107202
107828
  });
@@ -107211,7 +107837,7 @@ class Overlay1DereferenceStrategy extends _DereferenceStrategy_mjs__WEBPACK_IMPO
107211
107837
  * We don't want to mutate the original refSet and the references.
107212
107838
  */
107213
107839
  if (options.dereference.immutable) {
107214
- immutableRefSet.refs.map(ref => new _Reference_mjs__WEBPACK_IMPORTED_MODULE_4__["default"]({
107840
+ immutableRefSet.refs.map(ref => new _Reference_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]({
107215
107841
  ...ref,
107216
107842
  value: (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.cloneDeep)(ref.value)
107217
107843
  })).forEach(ref => mutableRefSet.add(ref));
@@ -107219,19 +107845,31 @@ class Overlay1DereferenceStrategy extends _DereferenceStrategy_mjs__WEBPACK_IMPO
107219
107845
  }
107220
107846
  const dereferencedElement = reference.value;
107221
107847
 
107848
+ /**
107849
+ * Reusable Action References only occur within `actions`, so the root element is never
107850
+ * replaced and traversing it keeps reported locations relative to the document.
107851
+ */
107852
+ const visitor = new _visitor_mjs__WEBPACK_IMPORTED_MODULE_8__["default"]({
107853
+ reference,
107854
+ options
107855
+ });
107856
+ await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_3__.traverseAsync)(dereferencedElement.result, visitor, {
107857
+ mutable: true
107858
+ });
107859
+
107222
107860
  /**
107223
107861
  * Dereference extends target if option is enabled.
107224
107862
  */
107225
107863
  const shouldDereferenceExtends = options?.dereference?.strategyOpts?.[this.name]?.extends ?? options?.dereference?.strategyOpts?.extends;
107226
107864
  if (shouldDereferenceExtends) {
107227
- await (0,_extends_mjs__WEBPACK_IMPORTED_MODULE_6__.dereferenceExtends)(dereferencedElement, reference.uri, options);
107865
+ await (0,_extends_mjs__WEBPACK_IMPORTED_MODULE_7__.dereferenceExtends)(dereferencedElement, reference.uri, options);
107228
107866
  }
107229
107867
 
107230
107868
  /**
107231
107869
  * If immutable option is set, replay refs from the refSet.
107232
107870
  */
107233
107871
  if (options.dereference.immutable) {
107234
- mutableRefSet.refs.filter(ref => ref.uri.startsWith('immutable://')).map(ref => new _Reference_mjs__WEBPACK_IMPORTED_MODULE_4__["default"]({
107872
+ mutableRefSet.refs.filter(ref => ref.uri.startsWith('immutable://')).map(ref => new _Reference_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]({
107235
107873
  ...ref,
107236
107874
  uri: ref.uri.replace(/^immutable:\/\//, '')
107237
107875
  })).forEach(ref => immutableRefSet.add(ref));
@@ -107249,12 +107887,176 @@ class Overlay1DereferenceStrategy extends _DereferenceStrategy_mjs__WEBPACK_IMPO
107249
107887
  }
107250
107888
  }
107251
107889
 
107890
+
107252
107891
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Overlay1DereferenceStrategy);
107253
107892
  /* harmony export */ __webpack_require__.d(__webpack_exports__, [
107254
107893
  /* harmony export */ "default", 0, __WEBPACK_DEFAULT_EXPORT__
107255
107894
  /* harmony export */ ]);
107256
107895
 
107257
107896
 
107897
+ /***/ },
107898
+
107899
+ /***/ 64595
107900
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
107901
+
107902
+ "use strict";
107903
+ __webpack_require__.r(__webpack_exports__);
107904
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12111);
107905
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(18252);
107906
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25810);
107907
+ /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(44673);
107908
+ /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16280);
107909
+ /* harmony import */ var _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(44641);
107910
+ /* harmony import */ var _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(12020);
107911
+ /* harmony import */ var _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(61198);
107912
+ /* harmony import */ var _speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(26432);
107913
+ /* harmony import */ var _speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(35937);
107914
+ /* harmony import */ var _errors_UnresolvableReferenceError_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(34968);
107915
+
107916
+
107917
+
107918
+
107919
+
107920
+
107921
+ /**
107922
+ * @public
107923
+ */
107924
+ /**
107925
+ * @public
107926
+ */
107927
+ class Overlay1DereferenceVisitor {
107928
+ reference;
107929
+ options;
107930
+ constructor({
107931
+ reference,
107932
+ options
107933
+ }) {
107934
+ this.reference = reference;
107935
+ this.options = options;
107936
+ }
107937
+ ReusableActionReferenceElement(path) {
107938
+ const referencingElement = path.node;
107939
+
107940
+ // ignore if resolve.internal is false (Reusable Action References are internal references only)
107941
+ if (!this.options.resolve.internal) {
107942
+ path.skip();
107943
+ return;
107944
+ }
107945
+ const $ref = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(referencingElement.$ref);
107946
+ const overlayElement = this.reference.value.result;
107947
+ const actionElement = new _speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_9__.ActionElement();
107948
+ try {
107949
+ if (typeof $ref !== 'string') {
107950
+ throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_5__["default"]('Reusable Action Reference "$ref" field must be a string');
107951
+ }
107952
+
107953
+ // only `target`, `description` and extensions may accompany `$ref`
107954
+ const disallowedField = ['update', 'copy', 'remove'].find(field => referencingElement.hasKey(field));
107955
+ if (disallowedField !== undefined) {
107956
+ throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_5__["default"](`Reusable Action Reference "${$ref}" must not define "${disallowedField}"`, {
107957
+ $ref
107958
+ });
107959
+ }
107960
+
107961
+ // same-document reference only; external references are not supported
107962
+ if (!$ref.startsWith('#')) {
107963
+ throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_5__["default"](`Reusable Action Reference "${$ref}" must be a same-document reference`, {
107964
+ $ref
107965
+ });
107966
+ }
107967
+
107968
+ /**
107969
+ * Only entries of `components.actions` are refracted as Reusable Actions,
107970
+ * so the element type alone proves the pointer leads there.
107971
+ */
107972
+ let reusableAction;
107973
+ try {
107974
+ reusableAction = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_6__.evaluate)(overlayElement, _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_7__.URIFragmentIdentifier.from($ref));
107975
+ } catch {
107976
+ reusableAction = undefined;
107977
+ }
107978
+ if (!(0,_speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_8__.isReusableActionElement)(reusableAction)) {
107979
+ throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_5__["default"](`Reusable Action Reference "${$ref}" cannot be resolved`, {
107980
+ $ref
107981
+ });
107982
+ }
107983
+ const {
107984
+ fields
107985
+ } = reusableAction;
107986
+ if (fields !== undefined && !(0,_speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_8__.isActionElement)(fields)) {
107987
+ throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_5__["default"](`Reusable Action "${$ref}" must define "fields" as an object`, {
107988
+ $ref
107989
+ });
107990
+ }
107991
+ if ((0,_speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_8__.isActionElement)(fields) && fields.hasKey('target')) {
107992
+ throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_5__["default"](`Reusable Action "${$ref}" must not define "target" in its "fields"`, {
107993
+ $ref
107994
+ });
107995
+ }
107996
+
107997
+ // the reference supplies `target` and its `description` takes precedence over the one in `fields`
107998
+ const {
107999
+ target,
108000
+ description
108001
+ } = referencingElement;
108002
+ if (target !== undefined) {
108003
+ actionElement.set('target', (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.cloneDeep)(target));
108004
+ }
108005
+ if ((0,_speclynx_apidom_ns_overlay_1__WEBPACK_IMPORTED_MODULE_8__.isActionElement)(fields)) {
108006
+ fields.forEach((value, keyElement) => {
108007
+ actionElement.set((0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(keyElement), (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.cloneDeep)(value));
108008
+ });
108009
+ }
108010
+ if (description !== undefined) {
108011
+ actionElement.set('description', (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.cloneDeep)(description));
108012
+ }
108013
+ } catch (error) {
108014
+ const {
108015
+ continueOnError
108016
+ } = this.options.dereference;
108017
+ const unresolvedError = new _errors_UnresolvableReferenceError_mjs__WEBPACK_IMPORTED_MODULE_10__["default"](`Error while dereferencing Reusable Action Reference "${$ref}": ${error.message}`, {
108018
+ cause: error,
108019
+ type: referencingElement.element,
108020
+ uri: this.reference.uri,
108021
+ location: path.formatPath(),
108022
+ codeFrame: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(referencingElement),
108023
+ refFieldName: '$ref',
108024
+ refFieldValue: $ref,
108025
+ trace: []
108026
+ });
108027
+ if (continueOnError === false) throw unresolvedError;
108028
+ if (typeof continueOnError === 'function') continueOnError(unresolvedError);
108029
+ path.skip();
108030
+ return;
108031
+ }
108032
+
108033
+ // the action takes the place of the reference in `actions`, so it inherits its source position
108034
+ if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.hasElementSourceMap)(referencingElement)) {
108035
+ _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"].transfer(referencingElement, actionElement);
108036
+ }
108037
+
108038
+ // annotate with info about original referencing element
108039
+ actionElement.meta.set('ref-fields', {
108040
+ $ref,
108041
+ description: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(referencingElement.description)
108042
+ });
108043
+ // annotate with info about origin
108044
+ actionElement.meta.set('ref-origin', this.reference.uri);
108045
+ actionElement.meta.set('ref-type', referencingElement.element);
108046
+
108047
+ /**
108048
+ * Transclude referencing element with resolved Action Object.
108049
+ */
108050
+ path.replaceWith(actionElement);
108051
+ path.skip();
108052
+ }
108053
+ }
108054
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Overlay1DereferenceVisitor);
108055
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, [
108056
+ /* harmony export */ "default", 0, __WEBPACK_DEFAULT_EXPORT__
108057
+ /* harmony export */ ]);
108058
+
108059
+
107258
108060
  /***/ },
107259
108061
 
107260
108062
  /***/ 14520
@@ -109584,8 +110386,12 @@ async function parseExtends(parseResult, parseResultRetrievalURI, options) {
109584
110386
  if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isStringElement)(extendsElement)) {
109585
110387
  return;
109586
110388
  }
110389
+
110390
+ // Overlay 1.2.0: `$self` (itself resolved against the retrieval URI) is the base URI
110391
+ const selfElement = api.get('$self');
110392
+ 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
110393
  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)));
110394
+ 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
110395
  const extendsParseResult = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]();
109590
110396
  extendsParseResult.classes.push('extends');
109591
110397
  extendsParseResult.setMetaProperty('retrievalURI', retrievalURI);
@@ -111015,13 +111821,14 @@ const cwd = () => {
111015
111821
  const resolve = (from, to) => {
111016
111822
  const resolvedUrl = new URL(to, new URL(from, 'resolve://'));
111017
111823
  if (resolvedUrl.protocol === 'resolve:') {
111018
- // `from` is a relative URL.
111824
+ // `from` is a relative URL; a network-path reference (`//host/path`) keeps its authority
111019
111825
  const {
111826
+ host,
111020
111827
  pathname,
111021
111828
  search,
111022
111829
  hash
111023
111830
  } = resolvedUrl;
111024
- return pathname + search + hash;
111831
+ return (host ? `//${host}` : '') + pathname + search + hash;
111025
111832
  }
111026
111833
  return resolvedUrl.toString();
111027
111834
  };