@speclynx/apidom-datamodel 1.12.2 → 2.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.
Files changed (56) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/LICENSE +202 -0
  3. package/NOTICE +2 -2
  4. package/README.md +151 -19
  5. package/dist/apidom-datamodel.browser.js +1141 -167
  6. package/dist/apidom-datamodel.browser.min.js +1 -1
  7. package/package.json +6 -3
  8. package/src/KeyValuePair.cjs +0 -7
  9. package/src/KeyValuePair.mjs +0 -7
  10. package/src/Namespace.cjs +1 -1
  11. package/src/Namespace.mjs +1 -1
  12. package/src/ObjectSlice.cjs +0 -7
  13. package/src/ObjectSlice.mjs +0 -7
  14. package/src/clone/errors/CloneError.cjs +22 -0
  15. package/src/clone/errors/CloneError.mjs +19 -0
  16. package/src/clone/errors/DeepCloneError.cjs +11 -0
  17. package/src/clone/errors/DeepCloneError.mjs +6 -0
  18. package/src/clone/errors/ShallowCloneError.cjs +11 -0
  19. package/src/clone/errors/ShallowCloneError.mjs +6 -0
  20. package/src/clone/index.cjs +184 -0
  21. package/src/clone/index.mjs +174 -0
  22. package/src/elements/Annotation.cjs +35 -0
  23. package/src/elements/Annotation.mjs +30 -0
  24. package/src/elements/Comment.cjs +18 -0
  25. package/src/elements/Comment.mjs +13 -0
  26. package/src/elements/LinkElement.cjs +8 -2
  27. package/src/elements/LinkElement.mjs +8 -2
  28. package/src/elements/ParseResult.cjs +91 -0
  29. package/src/elements/ParseResult.mjs +86 -0
  30. package/src/elements/RefElement.cjs +4 -1
  31. package/src/elements/RefElement.mjs +4 -1
  32. package/src/elements/SourceMap.cjs +140 -0
  33. package/src/elements/SourceMap.mjs +134 -0
  34. package/src/index.cjs +31 -2
  35. package/src/index.mjs +7 -3
  36. package/src/predicates/elements.cjs +46 -0
  37. package/src/predicates/elements.mjs +35 -0
  38. package/src/predicates/index.cjs +68 -0
  39. package/src/predicates/index.mjs +48 -0
  40. package/src/predicates/primitives.cjs +69 -0
  41. package/src/predicates/primitives.mjs +56 -0
  42. package/src/primitives/ArrayElement.cjs +0 -21
  43. package/src/primitives/ArrayElement.mjs +0 -21
  44. package/src/primitives/CollectionElement.cjs +5 -19
  45. package/src/primitives/CollectionElement.mjs +5 -19
  46. package/src/primitives/Element.cjs +110 -60
  47. package/src/primitives/Element.mjs +110 -60
  48. package/src/primitives/MemberElement.cjs +6 -2
  49. package/src/primitives/MemberElement.mjs +6 -2
  50. package/src/primitives/ObjectElement.cjs +0 -2
  51. package/src/primitives/ObjectElement.mjs +0 -2
  52. package/src/registration.cjs +8 -0
  53. package/src/registration.mjs +5 -1
  54. package/src/serialisers/JSONSerialiser.cjs +35 -4
  55. package/src/serialisers/JSONSerialiser.mjs +34 -8
  56. package/types/apidom-datamodel.d.ts +347 -51
@@ -30,18 +30,22 @@ function _isPlaceholder(a) {
30
30
 
31
31
  __webpack_require__.r(__webpack_exports__);
32
32
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
33
+ /* harmony export */ AnnotationElement: () => (/* reexport safe */ _elements_Annotation_ts__WEBPACK_IMPORTED_MODULE_11__["default"]),
33
34
  /* harmony export */ ArrayElement: () => (/* reexport safe */ _primitives_ArrayElement_ts__WEBPACK_IMPORTED_MODULE_6__["default"]),
34
35
  /* harmony export */ BooleanElement: () => (/* reexport safe */ _primitives_BooleanElement_ts__WEBPACK_IMPORTED_MODULE_5__["default"]),
35
36
  /* harmony export */ CollectionElement: () => (/* reexport safe */ _primitives_CollectionElement_ts__WEBPACK_IMPORTED_MODULE_1__["default"]),
37
+ /* harmony export */ CommentElement: () => (/* reexport safe */ _elements_Comment_ts__WEBPACK_IMPORTED_MODULE_12__["default"]),
36
38
  /* harmony export */ Element: () => (/* reexport safe */ _primitives_Element_ts__WEBPACK_IMPORTED_MODULE_0__["default"]),
37
- /* harmony export */ KeyValuePair: () => (/* reexport safe */ _KeyValuePair_ts__WEBPACK_IMPORTED_MODULE_12__["default"]),
39
+ /* harmony export */ KeyValuePair: () => (/* reexport safe */ _KeyValuePair_ts__WEBPACK_IMPORTED_MODULE_16__["default"]),
38
40
  /* harmony export */ LinkElement: () => (/* reexport safe */ _elements_LinkElement_ts__WEBPACK_IMPORTED_MODULE_9__["default"]),
39
41
  /* harmony export */ MemberElement: () => (/* reexport safe */ _primitives_MemberElement_ts__WEBPACK_IMPORTED_MODULE_7__["default"]),
40
42
  /* harmony export */ NullElement: () => (/* reexport safe */ _primitives_NullElement_ts__WEBPACK_IMPORTED_MODULE_2__["default"]),
41
43
  /* harmony export */ NumberElement: () => (/* reexport safe */ _primitives_NumberElement_ts__WEBPACK_IMPORTED_MODULE_4__["default"]),
42
44
  /* harmony export */ ObjectElement: () => (/* reexport safe */ _primitives_ObjectElement_ts__WEBPACK_IMPORTED_MODULE_8__["default"]),
43
- /* harmony export */ ObjectSlice: () => (/* reexport safe */ _ObjectSlice_ts__WEBPACK_IMPORTED_MODULE_11__["default"]),
45
+ /* harmony export */ ObjectSlice: () => (/* reexport safe */ _ObjectSlice_ts__WEBPACK_IMPORTED_MODULE_15__["default"]),
46
+ /* harmony export */ ParseResultElement: () => (/* reexport safe */ _elements_ParseResult_ts__WEBPACK_IMPORTED_MODULE_13__["default"]),
44
47
  /* harmony export */ RefElement: () => (/* reexport safe */ _elements_RefElement_ts__WEBPACK_IMPORTED_MODULE_10__["default"]),
48
+ /* harmony export */ SourceMapElement: () => (/* reexport safe */ _elements_SourceMap_ts__WEBPACK_IMPORTED_MODULE_14__["default"]),
45
49
  /* harmony export */ StringElement: () => (/* reexport safe */ _primitives_StringElement_ts__WEBPACK_IMPORTED_MODULE_3__["default"]),
46
50
  /* harmony export */ refract: () => (/* binding */ refract)
47
51
  /* harmony export */ });
@@ -56,8 +60,16 @@ __webpack_require__.r(__webpack_exports__);
56
60
  /* harmony import */ var _primitives_ObjectElement_ts__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(975);
57
61
  /* harmony import */ var _elements_LinkElement_ts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(885);
58
62
  /* harmony import */ var _elements_RefElement_ts__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(474);
59
- /* harmony import */ var _ObjectSlice_ts__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(660);
60
- /* harmony import */ var _KeyValuePair_ts__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(807);
63
+ /* harmony import */ var _elements_Annotation_ts__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(24);
64
+ /* harmony import */ var _elements_Comment_ts__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(176);
65
+ /* harmony import */ var _elements_ParseResult_ts__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(755);
66
+ /* harmony import */ var _elements_SourceMap_ts__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(588);
67
+ /* harmony import */ var _ObjectSlice_ts__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(660);
68
+ /* harmony import */ var _KeyValuePair_ts__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(807);
69
+
70
+
71
+
72
+
61
73
 
62
74
 
63
75
 
@@ -132,6 +144,47 @@ _primitives_Element_ts__WEBPACK_IMPORTED_MODULE_0__["default"].prototype.refract
132
144
 
133
145
  /***/ }),
134
146
 
147
+ /***/ 24:
148
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
149
+
150
+ __webpack_require__.r(__webpack_exports__);
151
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
152
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
153
+ /* harmony export */ });
154
+ /* harmony import */ var _primitives_StringElement_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(805);
155
+
156
+ /**
157
+ * AnnotationElement represents a parsing annotation (warning or error).
158
+ *
159
+ * The annotation's class indicates its severity:
160
+ * - 'warning' - A non-fatal issue
161
+ * - 'error' - A fatal issue
162
+ *
163
+ * @public
164
+ */
165
+ class AnnotationElement extends _primitives_StringElement_ts__WEBPACK_IMPORTED_MODULE_0__["default"] {
166
+ constructor(content, meta, attributes) {
167
+ super(content, meta, attributes);
168
+ this.element = 'annotation';
169
+ }
170
+
171
+ /**
172
+ * The annotation code identifying the type of annotation.
173
+ */
174
+ get code() {
175
+ if (this.hasAttributesProperty('code')) {
176
+ return this.attributes.get('code');
177
+ }
178
+ return undefined;
179
+ }
180
+ set code(value) {
181
+ this.attributes.set('code', value);
182
+ }
183
+ }
184
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AnnotationElement);
185
+
186
+ /***/ }),
187
+
135
188
  /***/ 27:
136
189
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
137
190
 
@@ -139,6 +192,9 @@ __webpack_require__.r(__webpack_exports__);
139
192
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
140
193
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
141
194
  /* harmony export */ });
195
+ /* harmony import */ var _elements_SourceMap_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(588);
196
+
197
+
142
198
  /**
143
199
  * Serialized representation of an Element in JSON Refract format.
144
200
  * @public
@@ -183,12 +239,23 @@ class JSONSerialiser {
183
239
  const payload = {
184
240
  element: element.element
185
241
  };
186
- if (element._meta && element._meta.length > 0) {
242
+ if (!element.isMetaEmpty) {
187
243
  payload.meta = this.serialiseObject(element.meta);
188
244
  }
189
- if (element._attributes && element._attributes.length > 0) {
245
+ if (!element.isAttributesEmpty) {
190
246
  payload.attributes = this.serialiseObject(element.attributes);
191
247
  }
248
+
249
+ // Serialize source position as __mappings__ in meta (skip for SourceMapElement itself)
250
+ if (!(element instanceof _elements_SourceMap_ts__WEBPACK_IMPORTED_MODULE_0__["default"])) {
251
+ const sourceMap = _elements_SourceMap_ts__WEBPACK_IMPORTED_MODULE_0__["default"].from(element);
252
+ if (sourceMap) {
253
+ if (!payload.meta) {
254
+ payload.meta = {};
255
+ }
256
+ payload.meta.__mappings__ = this.serialise(sourceMap);
257
+ }
258
+ }
192
259
  const content = this.serialiseContent(element.content);
193
260
  if (content !== undefined) {
194
261
  payload.content = content;
@@ -208,8 +275,26 @@ class JSONSerialiser {
208
275
  if (element.element !== value.element) {
209
276
  element.element = value.element;
210
277
  }
211
- if (value.meta) {
212
- this.deserialiseObject(value.meta, element.meta);
278
+
279
+ // Extract __mappings__ without mutating input, filter remaining meta
280
+ let mappingsDoc;
281
+ let metaToDeserialize = value.meta;
282
+ if (value.meta?.__mappings__) {
283
+ const {
284
+ __mappings__,
285
+ ...rest
286
+ } = value.meta;
287
+ mappingsDoc = __mappings__;
288
+ metaToDeserialize = Object.keys(rest).length > 0 ? rest : undefined;
289
+ }
290
+ if (metaToDeserialize) {
291
+ this.deserialiseObject(metaToDeserialize, element.meta);
292
+ }
293
+
294
+ // Restore source position from __mappings__
295
+ if (mappingsDoc) {
296
+ const sourceMap = this.deserialise(mappingsDoc);
297
+ sourceMap.applyTo(element);
213
298
  }
214
299
  if (value.attributes) {
215
300
  this.deserialiseObject(value.attributes, element.attributes);
@@ -282,6 +367,24 @@ class JSONSerialiser {
282
367
 
283
368
  /***/ }),
284
369
 
370
+ /***/ 60:
371
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
372
+
373
+ __webpack_require__.r(__webpack_exports__);
374
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
375
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
376
+ /* harmony export */ });
377
+ /* harmony import */ var _CloneError_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(200);
378
+
379
+
380
+ /**
381
+ * @public
382
+ */
383
+ class ShallowCloneError extends _CloneError_ts__WEBPACK_IMPORTED_MODULE_0__["default"] {}
384
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ShallowCloneError);
385
+
386
+ /***/ }),
387
+
285
388
  /***/ 111:
286
389
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
287
390
 
@@ -305,6 +408,35 @@ function _objectIs(a, b) {
305
408
 
306
409
  /***/ }),
307
410
 
411
+ /***/ 126:
412
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
413
+
414
+ __webpack_require__.r(__webpack_exports__);
415
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
416
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
417
+ /* harmony export */ });
418
+ /* harmony import */ var _ApiDOMAggregateError_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(437);
419
+
420
+ /**
421
+ * @public
422
+ */
423
+ class ApiDOMError extends Error {
424
+ static [Symbol.hasInstance](instance) {
425
+ // we want to ApiDOMAggregateError to act as if ApiDOMError was its superclass
426
+ return super[Symbol.hasInstance](instance) || Function.prototype[Symbol.hasInstance].call(_ApiDOMAggregateError_mjs__WEBPACK_IMPORTED_MODULE_0__["default"], instance);
427
+ }
428
+ constructor(message, options) {
429
+ super(message, options);
430
+ this.name = this.constructor.name;
431
+ if (typeof Error.captureStackTrace === 'function') {
432
+ Error.captureStackTrace(this, this.constructor);
433
+ }
434
+ }
435
+ }
436
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ApiDOMError);
437
+
438
+ /***/ }),
439
+
308
440
  /***/ 136:
309
441
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
310
442
 
@@ -335,7 +467,11 @@ class MemberElement extends _Element_ts__WEBPACK_IMPORTED_MODULE_1__["default"]
335
467
  if (key !== undefined) {
336
468
  this.key = key;
337
469
  }
338
- if (value !== undefined) {
470
+
471
+ // Note: We check arguments.length to distinguish between:
472
+ // - new MemberElement('key') - value not provided, don't set
473
+ // - new MemberElement('key', undefined) - value explicitly undefined, set it
474
+ if (arguments.length >= 2) {
339
475
  this.value = value;
340
476
  }
341
477
  }
@@ -360,11 +496,264 @@ class MemberElement extends _Element_ts__WEBPACK_IMPORTED_MODULE_1__["default"]
360
496
  return this._content.value;
361
497
  }
362
498
  set value(value) {
363
- this._content.value = this.refract(value);
499
+ this._content.value = value === undefined ? undefined : this.refract(value);
364
500
  }
365
501
  }
366
502
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MemberElement);
367
503
 
504
+ /***/ }),
505
+
506
+ /***/ 176:
507
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
508
+
509
+ __webpack_require__.r(__webpack_exports__);
510
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
511
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
512
+ /* harmony export */ });
513
+ /* harmony import */ var _primitives_StringElement_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(805);
514
+
515
+ /**
516
+ * CommentElement represents a comment in the source document.
517
+ *
518
+ * @public
519
+ */
520
+ class CommentElement extends _primitives_StringElement_ts__WEBPACK_IMPORTED_MODULE_0__["default"] {
521
+ constructor(content, meta, attributes) {
522
+ super(content, meta, attributes);
523
+ this.element = 'comment';
524
+ }
525
+ }
526
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CommentElement);
527
+
528
+ /***/ }),
529
+
530
+ /***/ 200:
531
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
532
+
533
+ __webpack_require__.r(__webpack_exports__);
534
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
535
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
536
+ /* harmony export */ });
537
+ /* harmony import */ var _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(641);
538
+
539
+
540
+ /**
541
+ * @public
542
+ */
543
+
544
+ /**
545
+ * @public
546
+ */
547
+ class CloneError extends _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_0__["default"] {
548
+ value;
549
+ constructor(message, structuredOptions) {
550
+ super(message, structuredOptions);
551
+ if (typeof structuredOptions !== 'undefined') {
552
+ this.value = structuredOptions.value;
553
+ }
554
+ }
555
+ }
556
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CloneError);
557
+
558
+ /***/ }),
559
+
560
+ /***/ 314:
561
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
562
+
563
+ __webpack_require__.r(__webpack_exports__);
564
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
565
+ /* harmony export */ CloneError: () => (/* reexport safe */ _errors_CloneError_ts__WEBPACK_IMPORTED_MODULE_7__["default"]),
566
+ /* harmony export */ DeepCloneError: () => (/* reexport safe */ _errors_DeepCloneError_ts__WEBPACK_IMPORTED_MODULE_5__["default"]),
567
+ /* harmony export */ ShallowCloneError: () => (/* reexport safe */ _errors_ShallowCloneError_ts__WEBPACK_IMPORTED_MODULE_6__["default"]),
568
+ /* harmony export */ cloneDeep: () => (/* binding */ cloneDeep),
569
+ /* harmony export */ cloneShallow: () => (/* binding */ cloneShallow)
570
+ /* harmony export */ });
571
+ /* harmony import */ var _ObjectSlice_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(660);
572
+ /* harmony import */ var _KeyValuePair_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(807);
573
+ /* harmony import */ var _predicates_index_ts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(762);
574
+ /* harmony import */ var _predicates_index_ts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(950);
575
+ /* harmony import */ var _elements_SourceMap_ts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(588);
576
+ /* harmony import */ var _errors_DeepCloneError_ts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(794);
577
+ /* harmony import */ var _errors_ShallowCloneError_ts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(60);
578
+ /* harmony import */ var _errors_CloneError_ts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(200);
579
+
580
+
581
+
582
+
583
+
584
+
585
+
586
+ /**
587
+ * @public
588
+ */
589
+
590
+ /**
591
+ * @public
592
+ */
593
+
594
+ const cloneDeepElement = (element, options) => {
595
+ const {
596
+ visited = new WeakMap()
597
+ } = options;
598
+ const passThroughOptions = {
599
+ ...options,
600
+ visited
601
+ };
602
+
603
+ // detect cycle and return memoized value
604
+ if (visited.has(element)) {
605
+ return visited.get(element);
606
+ }
607
+ const copy = cloneShallowElement(element);
608
+ visited.set(element, copy);
609
+ const {
610
+ content
611
+ } = element;
612
+ if (Array.isArray(content)) {
613
+ copy.content = content.map(el => cloneDeepElement(el, passThroughOptions));
614
+ } else if ((0,_predicates_index_ts__WEBPACK_IMPORTED_MODULE_2__.isElement)(content)) {
615
+ copy.content = cloneDeepElement(content, passThroughOptions);
616
+ } else if (content instanceof _KeyValuePair_ts__WEBPACK_IMPORTED_MODULE_1__["default"]) {
617
+ copy.content = cloneDeepKeyValuePair(content, passThroughOptions);
618
+ } else {
619
+ copy.content = content;
620
+ }
621
+ return copy;
622
+ };
623
+ const cloneDeepKeyValuePair = (kvp, options) => {
624
+ const {
625
+ visited = new WeakMap()
626
+ } = options;
627
+ const passThroughOptions = {
628
+ ...options,
629
+ visited
630
+ };
631
+ if (visited.has(kvp)) {
632
+ return visited.get(kvp);
633
+ }
634
+ const {
635
+ key,
636
+ value
637
+ } = kvp;
638
+ const keyCopy = key !== undefined ? cloneDeepElement(key, passThroughOptions) : undefined;
639
+ const valueCopy = value !== undefined ? cloneDeepElement(value, passThroughOptions) : undefined;
640
+ const copy = new _KeyValuePair_ts__WEBPACK_IMPORTED_MODULE_1__["default"](keyCopy, valueCopy);
641
+ visited.set(kvp, copy);
642
+ return copy;
643
+ };
644
+ const cloneDeepObjectSlice = (slice, options) => {
645
+ const {
646
+ visited = new WeakMap()
647
+ } = options;
648
+ const passThroughOptions = {
649
+ ...options,
650
+ visited
651
+ };
652
+ if (visited.has(slice)) {
653
+ return visited.get(slice);
654
+ }
655
+ const items = [...slice].map(element => cloneDeepElement(element, passThroughOptions));
656
+ const copy = new _ObjectSlice_ts__WEBPACK_IMPORTED_MODULE_0__["default"](items);
657
+ visited.set(slice, copy);
658
+ return copy;
659
+ };
660
+
661
+ /**
662
+ * Creates a deep clone of an ApiDOM Element, KeyValuePair, or ObjectSlice.
663
+ * Handles cycles by memoizing visited objects.
664
+ * @public
665
+ */
666
+ const cloneDeep = (value, options = {}) => {
667
+ if (value instanceof _KeyValuePair_ts__WEBPACK_IMPORTED_MODULE_1__["default"]) {
668
+ return cloneDeepKeyValuePair(value, options);
669
+ }
670
+ if (value instanceof _ObjectSlice_ts__WEBPACK_IMPORTED_MODULE_0__["default"]) {
671
+ return cloneDeepObjectSlice(value, options);
672
+ }
673
+ if ((0,_predicates_index_ts__WEBPACK_IMPORTED_MODULE_2__.isElement)(value)) {
674
+ return cloneDeepElement(value, options);
675
+ }
676
+ throw new _errors_DeepCloneError_ts__WEBPACK_IMPORTED_MODULE_5__["default"]("Value provided to cloneDeep function couldn't be cloned", {
677
+ value
678
+ });
679
+ };
680
+ cloneDeep.safe = value => {
681
+ try {
682
+ return cloneDeep(value);
683
+ } catch {
684
+ return value;
685
+ }
686
+ };
687
+ const cloneShallowKeyValuePair = keyValuePair => {
688
+ const {
689
+ key,
690
+ value
691
+ } = keyValuePair;
692
+ return new _KeyValuePair_ts__WEBPACK_IMPORTED_MODULE_1__["default"](key, value);
693
+ };
694
+ const cloneShallowObjectSlice = objectSlice => {
695
+ const items = [...objectSlice];
696
+ return new _ObjectSlice_ts__WEBPACK_IMPORTED_MODULE_0__["default"](items);
697
+ };
698
+ const cloneShallowElement = element => {
699
+ const Ctor = element.constructor;
700
+ const copy = new Ctor();
701
+ copy.element = element.element;
702
+ if (!element.isMetaEmpty) {
703
+ copy.meta = cloneDeep(element.meta);
704
+ }
705
+ if (!element.isAttributesEmpty) {
706
+ copy.attributes = cloneDeep(element.attributes);
707
+ }
708
+ if ((0,_predicates_index_ts__WEBPACK_IMPORTED_MODULE_3__.hasElementSourceMap)(element)) {
709
+ _elements_SourceMap_ts__WEBPACK_IMPORTED_MODULE_4__["default"].transfer(element, copy);
710
+ }
711
+ const {
712
+ content
713
+ } = element;
714
+ if ((0,_predicates_index_ts__WEBPACK_IMPORTED_MODULE_2__.isElement)(content)) {
715
+ copy.content = cloneShallowElement(content);
716
+ } else if (Array.isArray(content)) {
717
+ copy.content = [...content];
718
+ } else if (content instanceof _KeyValuePair_ts__WEBPACK_IMPORTED_MODULE_1__["default"]) {
719
+ copy.content = cloneShallowKeyValuePair(content);
720
+ } else {
721
+ copy.content = content;
722
+ }
723
+ return copy;
724
+ };
725
+
726
+ /**
727
+ * Creates a shallow clone of an ApiDOM Element, KeyValuePair, or ObjectSlice.
728
+ * The element itself is cloned, but content references are shared (except for
729
+ * meta and attributes which are deep cloned to preserve semantic information).
730
+ * @public
731
+ */
732
+ const cloneShallow = value => {
733
+ if (value instanceof _KeyValuePair_ts__WEBPACK_IMPORTED_MODULE_1__["default"]) {
734
+ return cloneShallowKeyValuePair(value);
735
+ }
736
+ if (value instanceof _ObjectSlice_ts__WEBPACK_IMPORTED_MODULE_0__["default"]) {
737
+ return cloneShallowObjectSlice(value);
738
+ }
739
+ if ((0,_predicates_index_ts__WEBPACK_IMPORTED_MODULE_2__.isElement)(value)) {
740
+ return cloneShallowElement(value);
741
+ }
742
+ throw new _errors_ShallowCloneError_ts__WEBPACK_IMPORTED_MODULE_6__["default"]("Value provided to cloneShallow function couldn't be cloned", {
743
+ value
744
+ });
745
+ };
746
+ cloneShallow.safe = value => {
747
+ try {
748
+ return cloneShallow(value);
749
+ } catch {
750
+ return value;
751
+ }
752
+ };
753
+
754
+
755
+
756
+
368
757
  /***/ }),
369
758
 
370
759
  /***/ 333:
@@ -419,6 +808,60 @@ __webpack_require__.r(__webpack_exports__);
419
808
  * @public
420
809
  */
421
810
  class Element {
811
+ // ============================================================
812
+ // Public Properties
813
+ // ============================================================
814
+
815
+ /**
816
+ * Parent element reference (set when tree is frozen).
817
+ */
818
+ parent;
819
+
820
+ // ============================================================================
821
+ // Source Position (LSP-compatible, TextDocument-compatible, UTF-16 code units)
822
+ // web-tree-sitter automatically provides position data in UTF-16 code units.
823
+ // ============================================================================
824
+
825
+ /**
826
+ * Starting line number (0-based).
827
+ * Compatible with LSP Position.line.
828
+ */
829
+ startLine;
830
+
831
+ /**
832
+ * Starting character offset within the line (0-based, UTF-16 code units).
833
+ * Compatible with LSP Position.character.
834
+ */
835
+ startCharacter;
836
+
837
+ /**
838
+ * Starting offset from beginning of document (UTF-16 code units).
839
+ * Can be used directly as JavaScript string index.
840
+ */
841
+ startOffset;
842
+
843
+ /**
844
+ * Ending line number (0-based).
845
+ * Compatible with LSP Position.line.
846
+ */
847
+ endLine;
848
+
849
+ /**
850
+ * Ending character offset within the line (0-based, UTF-16 code units).
851
+ * Compatible with LSP Position.character.
852
+ */
853
+ endCharacter;
854
+
855
+ /**
856
+ * Ending offset from beginning of document (UTF-16 code units).
857
+ * Can be used directly as JavaScript string index.
858
+ */
859
+ endOffset;
860
+
861
+ // ============================================================
862
+ // Protected Properties
863
+ // ============================================================
864
+
422
865
  /**
423
866
  * The element type identifier.
424
867
  * @internal
@@ -443,11 +886,6 @@ class Element {
443
886
  */
444
887
  _attributes;
445
888
 
446
- /**
447
- * Parent element reference (set when tree is frozen).
448
- */
449
- parent;
450
-
451
889
  // ============================================================
452
890
  // Prototype-assigned properties (set in elements.ts)
453
891
  // Using 'declare' allows TypeScript to know about these
@@ -601,22 +1039,6 @@ class Element {
601
1039
  this.setMetaProperty('classes', value);
602
1040
  }
603
1041
 
604
- /** Human-readable title. */
605
- get title() {
606
- return this.getMetaProperty('title', '');
607
- }
608
- set title(value) {
609
- this.setMetaProperty('title', value);
610
- }
611
-
612
- /** Human-readable description. */
613
- get description() {
614
- return this.getMetaProperty('description', '');
615
- }
616
- set description(value) {
617
- this.setMetaProperty('description', value);
618
- }
619
-
620
1042
  /** Hyperlinks associated with this element. */
621
1043
  get links() {
622
1044
  return this.getMetaProperty('links', []);
@@ -688,41 +1110,6 @@ class Element {
688
1110
  Object.freeze(this);
689
1111
  }
690
1112
 
691
- // ============================================================
692
- // Cloneable Implementation
693
- // ============================================================
694
-
695
- /**
696
- * Creates a deep clone of this element.
697
- */
698
- clone() {
699
- const Ctor = this.constructor;
700
- const copy = new Ctor();
701
- copy.element = this.element;
702
- if (this._meta) {
703
- copy._meta = this._meta.clone();
704
- }
705
- if (this._attributes) {
706
- copy._attributes = this._attributes.clone();
707
- }
708
-
709
- // Clone content based on its type
710
- const {
711
- _content
712
- } = this;
713
- if (_content instanceof Element) {
714
- copy._content = _content.clone();
715
- } else if (_content instanceof _KeyValuePair_ts__WEBPACK_IMPORTED_MODULE_1__["default"]) {
716
- copy._content = _content.clone();
717
- } else if (Array.isArray(_content)) {
718
- copy._content = _content.map(el => el.clone());
719
- } else {
720
- // Primitives are immutable, assign as-is
721
- copy._content = _content;
722
- }
723
- return copy;
724
- }
725
-
726
1113
  // ============================================================
727
1114
  // ToValue Implementation
728
1115
  // ============================================================
@@ -803,10 +1190,6 @@ class Element {
803
1190
  return ref;
804
1191
  }
805
1192
 
806
- // ============================================================
807
- // Protected Helpers
808
- // ============================================================
809
-
810
1193
  /**
811
1194
  * Gets a meta property, creating it with default value if not present.
812
1195
  */
@@ -828,6 +1211,62 @@ class Element {
828
1211
  setMetaProperty(name, value) {
829
1212
  this.meta.set(name, value);
830
1213
  }
1214
+
1215
+ /**
1216
+ * Has meta property.
1217
+ */
1218
+ hasMetaProperty(name) {
1219
+ if (!this.isMetaEmpty) {
1220
+ return this.meta.hasKey(name);
1221
+ }
1222
+ return false;
1223
+ }
1224
+
1225
+ /**
1226
+ * Checks if meta is empty.
1227
+ */
1228
+ get isMetaEmpty() {
1229
+ return this._meta === undefined || this.meta.isEmpty;
1230
+ }
1231
+
1232
+ /**
1233
+ * Gets an attribute property, creating it with default value if not present.
1234
+ */
1235
+ getAttributesProperty(name, defaultValue) {
1236
+ if (!this.hasAttributesProperty(name)) {
1237
+ if (this.isFrozen) {
1238
+ const element = this.refract(defaultValue);
1239
+ element.freeze();
1240
+ return element;
1241
+ }
1242
+ this.attributes.set(name, defaultValue);
1243
+ }
1244
+ return this.attributes.get(name);
1245
+ }
1246
+
1247
+ /**
1248
+ * Sets an attributes property.
1249
+ */
1250
+ setAttributesProperty(name, value) {
1251
+ this.attributes.set(name, value);
1252
+ }
1253
+
1254
+ /**
1255
+ * Has attributes property.
1256
+ */
1257
+ hasAttributesProperty(name) {
1258
+ if (!this.isAttributesEmpty) {
1259
+ return this.attributes.hasKey(name);
1260
+ }
1261
+ return false;
1262
+ }
1263
+
1264
+ /**
1265
+ * Checks if attributes is empty.
1266
+ */
1267
+ get isAttributesEmpty() {
1268
+ return this._attributes === undefined || this.attributes.isEmpty;
1269
+ }
831
1270
  }
832
1271
 
833
1272
  // Re-export types for convenience
@@ -886,6 +1325,29 @@ function _functionName(f) {
886
1325
 
887
1326
  /***/ }),
888
1327
 
1328
+ /***/ 437:
1329
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1330
+
1331
+ __webpack_require__.r(__webpack_exports__);
1332
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1333
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
1334
+ /* harmony export */ });
1335
+ /**
1336
+ * @public
1337
+ */
1338
+ class ApiDOMAggregateError extends AggregateError {
1339
+ constructor(errors, message, options) {
1340
+ super(errors, message, options);
1341
+ this.name = this.constructor.name;
1342
+ if (typeof Error.captureStackTrace === 'function') {
1343
+ Error.captureStackTrace(this, this.constructor);
1344
+ }
1345
+ }
1346
+ }
1347
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ApiDOMAggregateError);
1348
+
1349
+ /***/ }),
1350
+
889
1351
  /***/ 474:
890
1352
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
891
1353
 
@@ -914,7 +1376,10 @@ class RefElement extends _primitives_Element_ts__WEBPACK_IMPORTED_MODULE_0__["de
914
1376
  * @defaultValue 'element'
915
1377
  */
916
1378
  get path() {
917
- return this.attributes.get('path');
1379
+ if (this.hasAttributesProperty('path')) {
1380
+ return this.attributes.get('path');
1381
+ }
1382
+ return undefined;
918
1383
  }
919
1384
  set path(newValue) {
920
1385
  this.attributes.set('path', newValue);
@@ -1117,7 +1582,8 @@ __webpack_require__.r(__webpack_exports__);
1117
1582
  /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(975);
1118
1583
  /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(885);
1119
1584
  /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(474);
1120
- /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(807);
1585
+ /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(588);
1586
+ /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(807);
1121
1587
 
1122
1588
 
1123
1589
  const isNull = value => value === null;
@@ -1177,7 +1643,7 @@ class Namespace {
1177
1643
  _attributeElementArrayKeys = [];
1178
1644
  constructor(options) {
1179
1645
  this.Element = _registration_ts__WEBPACK_IMPORTED_MODULE_1__["default"];
1180
- this.KeyValuePair = _registration_ts__WEBPACK_IMPORTED_MODULE_11__["default"];
1646
+ this.KeyValuePair = _registration_ts__WEBPACK_IMPORTED_MODULE_12__["default"];
1181
1647
  if (!options || !options.noDefault) {
1182
1648
  this.useDefault();
1183
1649
  }
@@ -1206,7 +1672,7 @@ class Namespace {
1206
1672
  */
1207
1673
  useDefault() {
1208
1674
  // Set up classes for default elements
1209
- this.register('null', _registration_ts__WEBPACK_IMPORTED_MODULE_2__["default"]).register('string', _registration_ts__WEBPACK_IMPORTED_MODULE_3__["default"]).register('number', _registration_ts__WEBPACK_IMPORTED_MODULE_4__["default"]).register('boolean', _registration_ts__WEBPACK_IMPORTED_MODULE_5__["default"]).register('array', _registration_ts__WEBPACK_IMPORTED_MODULE_6__["default"]).register('object', _registration_ts__WEBPACK_IMPORTED_MODULE_8__["default"]).register('member', _registration_ts__WEBPACK_IMPORTED_MODULE_7__["default"]).register('ref', _registration_ts__WEBPACK_IMPORTED_MODULE_10__["default"]).register('link', _registration_ts__WEBPACK_IMPORTED_MODULE_9__["default"]);
1675
+ this.register('null', _registration_ts__WEBPACK_IMPORTED_MODULE_2__["default"]).register('string', _registration_ts__WEBPACK_IMPORTED_MODULE_3__["default"]).register('number', _registration_ts__WEBPACK_IMPORTED_MODULE_4__["default"]).register('boolean', _registration_ts__WEBPACK_IMPORTED_MODULE_5__["default"]).register('array', _registration_ts__WEBPACK_IMPORTED_MODULE_6__["default"]).register('object', _registration_ts__WEBPACK_IMPORTED_MODULE_8__["default"]).register('member', _registration_ts__WEBPACK_IMPORTED_MODULE_7__["default"]).register('ref', _registration_ts__WEBPACK_IMPORTED_MODULE_10__["default"]).register('link', _registration_ts__WEBPACK_IMPORTED_MODULE_9__["default"]).register('sourceMap', _registration_ts__WEBPACK_IMPORTED_MODULE_11__["default"]);
1210
1676
 
1211
1677
  // Add instance detection functions to convert existing objects into
1212
1678
  // the corresponding refract elements.
@@ -1327,6 +1793,153 @@ _serialisers_JSONSerialiser_ts__WEBPACK_IMPORTED_MODULE_0__["default"].prototype
1327
1793
 
1328
1794
  /***/ }),
1329
1795
 
1796
+ /***/ 588:
1797
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1798
+
1799
+ __webpack_require__.r(__webpack_exports__);
1800
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1801
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
1802
+ /* harmony export */ });
1803
+ /* harmony import */ var _primitives_StringElement_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(805);
1804
+
1805
+
1806
+ /**
1807
+ * Shape with optional source position properties.
1808
+ * @public
1809
+ */
1810
+
1811
+ /**
1812
+ * SourceMapElement stores source position as a compact VLQ-encoded string.
1813
+ *
1814
+ * The encoded string contains 6 values: startLine, startCharacter, startOffset,
1815
+ * endLine, endCharacter, endOffset. All values use UTF-16 code units,
1816
+ * compatible with LSP, TextDocument, and JavaScript string indexing.
1817
+ *
1818
+ * web-tree-sitter automatically provides position data in UTF-16 code units.
1819
+ *
1820
+ * @public
1821
+ */
1822
+ class SourceMapElement extends _primitives_StringElement_ts__WEBPACK_IMPORTED_MODULE_0__["default"] {
1823
+ constructor(content, meta, attributes) {
1824
+ super(content, meta, attributes);
1825
+ this.element = 'sourceMap';
1826
+ }
1827
+
1828
+ /**
1829
+ * Transfers source position properties from one object to another.
1830
+ */
1831
+ static transfer(from, to) {
1832
+ to.startLine = from.startLine;
1833
+ to.startCharacter = from.startCharacter;
1834
+ to.startOffset = from.startOffset;
1835
+ to.endLine = from.endLine;
1836
+ to.endCharacter = from.endCharacter;
1837
+ to.endOffset = from.endOffset;
1838
+ }
1839
+
1840
+ /**
1841
+ * Creates a SourceMapElement from source position properties.
1842
+ * Returns undefined if any position property is not a number.
1843
+ * Also assigns position properties to the instance for inspection.
1844
+ */
1845
+ static from(source) {
1846
+ const {
1847
+ startLine,
1848
+ startCharacter,
1849
+ startOffset,
1850
+ endLine,
1851
+ endCharacter,
1852
+ endOffset
1853
+ } = source;
1854
+ if (typeof startLine !== 'number' || typeof startCharacter !== 'number' || typeof startOffset !== 'number' || typeof endLine !== 'number' || typeof endCharacter !== 'number' || typeof endOffset !== 'number') {
1855
+ return undefined;
1856
+ }
1857
+ const packed = packSourceMap([startLine, startCharacter, startOffset, endLine, endCharacter, endOffset]);
1858
+ const sourceMap = new SourceMapElement(packed);
1859
+ sourceMap.startLine = startLine;
1860
+ sourceMap.startCharacter = startCharacter;
1861
+ sourceMap.startOffset = startOffset;
1862
+ sourceMap.endLine = endLine;
1863
+ sourceMap.endCharacter = endCharacter;
1864
+ sourceMap.endOffset = endOffset;
1865
+ return sourceMap;
1866
+ }
1867
+
1868
+ /**
1869
+ * Decodes the VLQ string and applies source position properties to the target.
1870
+ */
1871
+ applyTo(target) {
1872
+ if (!this.content) return;
1873
+ [target.startLine, target.startCharacter, target.startOffset, target.endLine, target.endCharacter, target.endOffset] = unpackSourceMap(this.content);
1874
+ }
1875
+ }
1876
+ const BASE64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
1877
+
1878
+ // Encode one unsigned integer to Base64-VLQ
1879
+ function vlqEncodeInt(value) {
1880
+ let vlq = value >>> 0; // ensure unsigned 32-bit
1881
+ let out = '';
1882
+ do {
1883
+ let digit = vlq & 31; // 5 bits
1884
+ vlq >>>= 5;
1885
+ if (vlq !== 0) digit |= 32; // continuation bit
1886
+ out += BASE64[digit];
1887
+ } while (vlq !== 0);
1888
+ return out;
1889
+ }
1890
+
1891
+ // Decode one unsigned integer from Base64-VLQ, starting at `index`
1892
+ function vlqDecodeInt(str, index = 0) {
1893
+ let result = 0;
1894
+ let shift = 0;
1895
+ let i = index;
1896
+ while (true) {
1897
+ const ch = str[i++];
1898
+ const digit = BASE64.indexOf(ch);
1899
+ if (digit === -1) throw new Error(`Invalid Base64 VLQ char: ${ch}`);
1900
+ const cont = (digit & 32) !== 0;
1901
+ result |= (digit & 31) << shift;
1902
+ shift += 5;
1903
+ if (!cont) break;
1904
+ }
1905
+ return {
1906
+ value: result >>> 0,
1907
+ next: i
1908
+ };
1909
+ }
1910
+
1911
+ /**
1912
+ * Span of 6 position values: [startLine, startCharacter, startOffset, endLine, endCharacter, endOffset]
1913
+ * @public
1914
+ */
1915
+
1916
+ /**
1917
+ * Encodes 6 position values into a compact VLQ string.
1918
+ * @public
1919
+ */
1920
+ function packSourceMap(v) {
1921
+ return 'sm1:' + v.map(vlqEncodeInt).join('');
1922
+ }
1923
+
1924
+ /**
1925
+ * Decodes a VLQ string into 6 position values.
1926
+ * @public
1927
+ */
1928
+ function unpackSourceMap(packed) {
1929
+ const s = packed.startsWith('sm1:') ? packed.slice(4) : packed;
1930
+ const out = [];
1931
+ let i = 0;
1932
+ for (let k = 0; k < 6; k++) {
1933
+ const r = vlqDecodeInt(s, i);
1934
+ out.push(r.value);
1935
+ i = r.next;
1936
+ }
1937
+ return out;
1938
+ }
1939
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SourceMapElement);
1940
+
1941
+ /***/ }),
1942
+
1330
1943
  /***/ 590:
1331
1944
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1332
1945
 
@@ -1367,13 +1980,6 @@ __webpack_require__.r(__webpack_exports__);
1367
1980
  * @public
1368
1981
  */
1369
1982
  class ArrayElement extends _CollectionElement_ts__WEBPACK_IMPORTED_MODULE_0__["default"] {
1370
- // Static Fantasy Land methods
1371
- static empty() {
1372
- return new this();
1373
- }
1374
- static 'fantasy-land/empty'() {
1375
- return ArrayElement.empty();
1376
- }
1377
1983
  constructor(content, meta, attributes) {
1378
1984
  super(content || [], meta, attributes);
1379
1985
  this.element = 'array';
@@ -1506,28 +2112,43 @@ class ArrayElement extends _CollectionElement_ts__WEBPACK_IMPORTED_MODULE_0__["d
1506
2112
  });
1507
2113
  }
1508
2114
 
1509
- // Fantasy Land
2115
+ /**
2116
+ * Returns an empty array element.
2117
+ */
2118
+ empty() {
2119
+ return new this.constructor([]);
2120
+ }
2121
+ }
2122
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ArrayElement);
2123
+
2124
+ /***/ }),
2125
+
2126
+ /***/ 641:
2127
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2128
+
2129
+ __webpack_require__.r(__webpack_exports__);
2130
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2131
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2132
+ /* harmony export */ });
2133
+ /* harmony import */ var _ApiDOMError_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(126);
1510
2134
 
1511
- /**
1512
- * Returns an empty array element.
1513
- */
1514
- empty() {
1515
- return new this.constructor([]);
1516
- }
1517
- 'fantasy-land/map'(transform) {
1518
- return new this.constructor(this.map(transform));
1519
- }
1520
- 'fantasy-land/chain'(transform) {
1521
- return this.map(element => transform(element)).reduce((a, b) => a.concat(b), this.empty());
1522
- }
1523
- 'fantasy-land/filter'(callback) {
1524
- return new this.constructor(this._content.filter(callback));
1525
- }
1526
- 'fantasy-land/reduce'(transform, initialValue) {
1527
- return this._content.reduce(transform, initialValue);
2135
+ /**
2136
+ * @public
2137
+ */
2138
+ class ApiDOMStructuredError extends _ApiDOMError_mjs__WEBPACK_IMPORTED_MODULE_0__["default"] {
2139
+ constructor(message, structuredOptions) {
2140
+ super(message, structuredOptions);
2141
+ if (structuredOptions != null && typeof structuredOptions === 'object') {
2142
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
2143
+ const {
2144
+ cause,
2145
+ ...causelessOptions
2146
+ } = structuredOptions;
2147
+ Object.assign(this, causelessOptions);
2148
+ }
1528
2149
  }
1529
2150
  }
1530
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ArrayElement);
2151
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ApiDOMStructuredError);
1531
2152
 
1532
2153
  /***/ }),
1533
2154
 
@@ -1761,13 +2382,6 @@ class ObjectSlice {
1761
2382
  return this;
1762
2383
  }
1763
2384
 
1764
- /**
1765
- * Creates a deep clone of the ObjectSlice.
1766
- */
1767
- clone() {
1768
- return new ObjectSlice(this.elements.map(element => element.clone()));
1769
- }
1770
-
1771
2385
  /**
1772
2386
  * Determines whether the slice includes a member with the given key value.
1773
2387
  * @param keyValue - The key value to search for
@@ -1800,6 +2414,187 @@ function _has(prop, obj) {
1800
2414
 
1801
2415
  /***/ }),
1802
2416
 
2417
+ /***/ 755:
2418
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2419
+
2420
+ __webpack_require__.r(__webpack_exports__);
2421
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2422
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2423
+ /* harmony export */ });
2424
+ /* harmony import */ var _primitives_ArrayElement_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(603);
2425
+ /* harmony import */ var _predicates_index_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(950);
2426
+
2427
+
2428
+ /**
2429
+ * ParseResultElement represents the result of parsing a document.
2430
+ *
2431
+ * Contains the parsed API element, any result elements, and annotations
2432
+ * (warnings and errors) from the parsing process.
2433
+ *
2434
+ * @public
2435
+ */
2436
+ class ParseResultElement extends _primitives_ArrayElement_ts__WEBPACK_IMPORTED_MODULE_0__["default"] {
2437
+ constructor(content, meta, attributes) {
2438
+ super(content, meta, attributes);
2439
+ this.element = 'parseResult';
2440
+ }
2441
+
2442
+ /**
2443
+ * The main API element from the parse result.
2444
+ */
2445
+ get api() {
2446
+ return this.filter(item => (0,_predicates_index_ts__WEBPACK_IMPORTED_MODULE_1__.includesClasses)(item, ['api'])).first;
2447
+ }
2448
+
2449
+ /**
2450
+ * All result elements from the parse result.
2451
+ */
2452
+ get results() {
2453
+ return this.filter(item => (0,_predicates_index_ts__WEBPACK_IMPORTED_MODULE_1__.includesClasses)(item, ['result']));
2454
+ }
2455
+
2456
+ /**
2457
+ * The first result element.
2458
+ */
2459
+ get result() {
2460
+ return this.results.first;
2461
+ }
2462
+
2463
+ /**
2464
+ * All annotation elements (warnings and errors).
2465
+ */
2466
+ get annotations() {
2467
+ return this.filter(item => item.element === 'annotation');
2468
+ }
2469
+
2470
+ /**
2471
+ * All warning annotations.
2472
+ */
2473
+ get warnings() {
2474
+ return this.filter(item => item.element === 'annotation' && (0,_predicates_index_ts__WEBPACK_IMPORTED_MODULE_1__.includesClasses)(item, ['warning']));
2475
+ }
2476
+
2477
+ /**
2478
+ * All error annotations.
2479
+ */
2480
+ get errors() {
2481
+ return this.filter(item => item.element === 'annotation' && (0,_predicates_index_ts__WEBPACK_IMPORTED_MODULE_1__.includesClasses)(item, ['error']));
2482
+ }
2483
+
2484
+ /**
2485
+ * Whether the parse result is empty (contains only annotations).
2486
+ */
2487
+ get isEmpty() {
2488
+ return this.reject(item => item.element === 'annotation').length === 0;
2489
+ }
2490
+
2491
+ /**
2492
+ * Replaces the first result element with the given replacement.
2493
+ * @returns true if replacement was successful, false otherwise
2494
+ */
2495
+ replaceResult(replacement) {
2496
+ const {
2497
+ result
2498
+ } = this;
2499
+ if (result === undefined) {
2500
+ return false;
2501
+ }
2502
+ const content = this._content;
2503
+ const searchIndex = content.findIndex(e => e === result);
2504
+ if (searchIndex === -1) {
2505
+ return false;
2506
+ }
2507
+ content[searchIndex] = replacement;
2508
+ return true;
2509
+ }
2510
+ }
2511
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ParseResultElement);
2512
+
2513
+ /***/ }),
2514
+
2515
+ /***/ 762:
2516
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2517
+
2518
+ __webpack_require__.r(__webpack_exports__);
2519
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2520
+ /* harmony export */ isArrayElement: () => (/* binding */ isArrayElement),
2521
+ /* harmony export */ isBooleanElement: () => (/* binding */ isBooleanElement),
2522
+ /* harmony export */ isElement: () => (/* binding */ isElement),
2523
+ /* harmony export */ isMemberElement: () => (/* binding */ isMemberElement),
2524
+ /* harmony export */ isNullElement: () => (/* binding */ isNullElement),
2525
+ /* harmony export */ isNumberElement: () => (/* binding */ isNumberElement),
2526
+ /* harmony export */ isObjectElement: () => (/* binding */ isObjectElement),
2527
+ /* harmony export */ isPrimitiveElement: () => (/* binding */ isPrimitiveElement),
2528
+ /* harmony export */ isStringElement: () => (/* binding */ isStringElement)
2529
+ /* harmony export */ });
2530
+ /* harmony import */ var _primitives_Element_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(370);
2531
+ /* harmony import */ var _primitives_StringElement_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(805);
2532
+ /* harmony import */ var _primitives_NumberElement_ts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(933);
2533
+ /* harmony import */ var _primitives_NullElement_ts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(377);
2534
+ /* harmony import */ var _primitives_BooleanElement_ts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(492);
2535
+ /* harmony import */ var _primitives_ArrayElement_ts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(603);
2536
+ /* harmony import */ var _primitives_ObjectElement_ts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(975);
2537
+ /* harmony import */ var _primitives_MemberElement_ts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(136);
2538
+
2539
+
2540
+
2541
+
2542
+
2543
+
2544
+
2545
+
2546
+
2547
+ /**
2548
+ * @public
2549
+ */
2550
+ const isElement = element => element instanceof _primitives_Element_ts__WEBPACK_IMPORTED_MODULE_0__["default"];
2551
+
2552
+ /**
2553
+ * @public
2554
+ */
2555
+ const isStringElement = element => element instanceof _primitives_StringElement_ts__WEBPACK_IMPORTED_MODULE_1__["default"];
2556
+
2557
+ /**
2558
+ * @public
2559
+ */
2560
+ const isNumberElement = element => element instanceof _primitives_NumberElement_ts__WEBPACK_IMPORTED_MODULE_2__["default"];
2561
+
2562
+ /**
2563
+ * @public
2564
+ */
2565
+ const isNullElement = element => element instanceof _primitives_NullElement_ts__WEBPACK_IMPORTED_MODULE_3__["default"];
2566
+
2567
+ /**
2568
+ * @public
2569
+ */
2570
+ const isBooleanElement = element => element instanceof _primitives_BooleanElement_ts__WEBPACK_IMPORTED_MODULE_4__["default"];
2571
+
2572
+ /**
2573
+ * @public
2574
+ */
2575
+ const isArrayElement = element => element instanceof _primitives_ArrayElement_ts__WEBPACK_IMPORTED_MODULE_5__["default"];
2576
+
2577
+ /**
2578
+ * @public
2579
+ */
2580
+ const isObjectElement = element => element instanceof _primitives_ObjectElement_ts__WEBPACK_IMPORTED_MODULE_6__["default"];
2581
+
2582
+ /**
2583
+ * @public
2584
+ */
2585
+ const isMemberElement = element => element instanceof _primitives_MemberElement_ts__WEBPACK_IMPORTED_MODULE_7__["default"];
2586
+
2587
+ /**
2588
+ * @public
2589
+ */
2590
+
2591
+ /**
2592
+ * @public
2593
+ */
2594
+ const isPrimitiveElement = element => isObjectElement(element) && element.element === 'object' || isArrayElement(element) && element.element === 'array' || isBooleanElement(element) && element.element === 'boolean' || isNumberElement(element) && element.element === 'number' || isStringElement(element) && element.element === 'string' || isNullElement(element) && element.element === 'null' || isMemberElement(element) && element.element === 'member';
2595
+
2596
+ /***/ }),
2597
+
1803
2598
  /***/ 766:
1804
2599
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1805
2600
 
@@ -1875,20 +2670,15 @@ class CollectionElement extends _Element_ts__WEBPACK_IMPORTED_MODULE_0__["defaul
1875
2670
  }
1876
2671
 
1877
2672
  /**
1878
- * Adds the given element to the end of the collection.
2673
+ * Adds the given elements to the end of the collection.
1879
2674
  */
1880
- push(value) {
1881
- this._content.push(this.refract(value));
2675
+ push(...values) {
2676
+ for (const value of values) {
2677
+ this._content.push(this.refract(value));
2678
+ }
1882
2679
  return this;
1883
2680
  }
1884
2681
 
1885
- /**
1886
- * Alias for push.
1887
- */
1888
- add(value) {
1889
- this.push(value);
1890
- }
1891
-
1892
2682
  /**
1893
2683
  * Removes the first element from the collection.
1894
2684
  */
@@ -1971,16 +2761,10 @@ class CollectionElement extends _Element_ts__WEBPACK_IMPORTED_MODULE_0__["defaul
1971
2761
  return this.find(item => item.id.toValue() === id).first;
1972
2762
  }
1973
2763
 
1974
- // Fantasy Land - Monoid
1975
-
1976
2764
  /**
1977
2765
  * Returns an empty collection element.
1978
2766
  */
1979
2767
 
1980
- 'fantasy-land/empty'() {
1981
- return this.empty();
1982
- }
1983
-
1984
2768
  /**
1985
2769
  * Concatenates two collection elements.
1986
2770
  */
@@ -1988,9 +2772,6 @@ class CollectionElement extends _Element_ts__WEBPACK_IMPORTED_MODULE_0__["defaul
1988
2772
  const Ctor = this.constructor;
1989
2773
  return new Ctor(this._content.concat(other._content));
1990
2774
  }
1991
- 'fantasy-land/concat'(other) {
1992
- return this.concat(other);
1993
- }
1994
2775
 
1995
2776
  // Iterator support
1996
2777
  [Symbol.iterator]() {
@@ -2085,6 +2866,24 @@ var keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? /*#__PURE__*/(
2085
2866
 
2086
2867
  /***/ }),
2087
2868
 
2869
+ /***/ 794:
2870
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2871
+
2872
+ __webpack_require__.r(__webpack_exports__);
2873
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2874
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2875
+ /* harmony export */ });
2876
+ /* harmony import */ var _CloneError_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(200);
2877
+
2878
+
2879
+ /**
2880
+ * @public
2881
+ */
2882
+ class DeepCloneError extends _CloneError_ts__WEBPACK_IMPORTED_MODULE_0__["default"] {}
2883
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (DeepCloneError);
2884
+
2885
+ /***/ }),
2886
+
2088
2887
  /***/ 805:
2089
2888
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2090
2889
 
@@ -2142,13 +2941,6 @@ class KeyValuePair {
2142
2941
  this.value = value;
2143
2942
  }
2144
2943
 
2145
- /**
2146
- * Creates a deep clone of the KeyValuePair.
2147
- */
2148
- clone() {
2149
- return new KeyValuePair(this.key?.clone(), this.value?.clone());
2150
- }
2151
-
2152
2944
  /**
2153
2945
  * Converts to a plain JavaScript object representation.
2154
2946
  */
@@ -2194,7 +2986,10 @@ class LinkElement extends _primitives_Element_ts__WEBPACK_IMPORTED_MODULE_0__["d
2194
2986
  * The relation identifier for the link, as defined in RFC 5988.
2195
2987
  */
2196
2988
  get relation() {
2197
- return this.attributes.get('relation');
2989
+ if (this.hasAttributesProperty('relation')) {
2990
+ return this.attributes.get('relation');
2991
+ }
2992
+ return undefined;
2198
2993
  }
2199
2994
  set relation(relation) {
2200
2995
  this.attributes.set('relation', relation);
@@ -2204,7 +2999,10 @@ class LinkElement extends _primitives_Element_ts__WEBPACK_IMPORTED_MODULE_0__["d
2204
2999
  * The URI for the given link.
2205
3000
  */
2206
3001
  get href() {
2207
- return this.attributes.get('href');
3002
+ if (this.hasAttributesProperty('href')) {
3003
+ return this.attributes.get('href');
3004
+ }
3005
+ return undefined;
2208
3006
  }
2209
3007
  set href(href) {
2210
3008
  this.attributes.set('href', href);
@@ -2289,6 +3087,84 @@ function _arrayFromIterator(iter) {
2289
3087
 
2290
3088
  /***/ }),
2291
3089
 
3090
+ /***/ 950:
3091
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3092
+
3093
+ __webpack_require__.r(__webpack_exports__);
3094
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3095
+ /* harmony export */ hasElementSourceMap: () => (/* binding */ hasElementSourceMap),
3096
+ /* harmony export */ includesClasses: () => (/* binding */ includesClasses),
3097
+ /* harmony export */ includesSymbols: () => (/* binding */ includesSymbols),
3098
+ /* harmony export */ isAnnotationElement: () => (/* reexport safe */ _elements_ts__WEBPACK_IMPORTED_MODULE_1__.isAnnotationElement),
3099
+ /* harmony export */ isArrayElement: () => (/* reexport safe */ _primitives_ts__WEBPACK_IMPORTED_MODULE_0__.isArrayElement),
3100
+ /* harmony export */ isBooleanElement: () => (/* reexport safe */ _primitives_ts__WEBPACK_IMPORTED_MODULE_0__.isBooleanElement),
3101
+ /* harmony export */ isCommentElement: () => (/* reexport safe */ _elements_ts__WEBPACK_IMPORTED_MODULE_1__.isCommentElement),
3102
+ /* harmony export */ isElement: () => (/* reexport safe */ _primitives_ts__WEBPACK_IMPORTED_MODULE_0__.isElement),
3103
+ /* harmony export */ isLinkElement: () => (/* reexport safe */ _elements_ts__WEBPACK_IMPORTED_MODULE_1__.isLinkElement),
3104
+ /* harmony export */ isMemberElement: () => (/* reexport safe */ _primitives_ts__WEBPACK_IMPORTED_MODULE_0__.isMemberElement),
3105
+ /* harmony export */ isNullElement: () => (/* reexport safe */ _primitives_ts__WEBPACK_IMPORTED_MODULE_0__.isNullElement),
3106
+ /* harmony export */ isNumberElement: () => (/* reexport safe */ _primitives_ts__WEBPACK_IMPORTED_MODULE_0__.isNumberElement),
3107
+ /* harmony export */ isObjectElement: () => (/* reexport safe */ _primitives_ts__WEBPACK_IMPORTED_MODULE_0__.isObjectElement),
3108
+ /* harmony export */ isParseResultElement: () => (/* reexport safe */ _elements_ts__WEBPACK_IMPORTED_MODULE_1__.isParseResultElement),
3109
+ /* harmony export */ isPrimitiveElement: () => (/* reexport safe */ _primitives_ts__WEBPACK_IMPORTED_MODULE_0__.isPrimitiveElement),
3110
+ /* harmony export */ isRefElement: () => (/* reexport safe */ _elements_ts__WEBPACK_IMPORTED_MODULE_1__.isRefElement),
3111
+ /* harmony export */ isSourceMapElement: () => (/* reexport safe */ _elements_ts__WEBPACK_IMPORTED_MODULE_1__.isSourceMapElement),
3112
+ /* harmony export */ isStringElement: () => (/* reexport safe */ _primitives_ts__WEBPACK_IMPORTED_MODULE_0__.isStringElement)
3113
+ /* harmony export */ });
3114
+ /* harmony import */ var _primitives_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(762);
3115
+ /* harmony import */ var _elements_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(969);
3116
+
3117
+
3118
+
3119
+
3120
+
3121
+ /**
3122
+ * Checks if an element has complete source position information.
3123
+ * Returns true only if all 6 position properties are numbers.
3124
+ * @public
3125
+ */
3126
+ const hasElementSourceMap = element => {
3127
+ return typeof element.startLine === 'number' && typeof element.startCharacter === 'number' && typeof element.startOffset === 'number' && typeof element.endLine === 'number' && typeof element.endCharacter === 'number' && typeof element.endOffset === 'number';
3128
+ };
3129
+
3130
+ /**
3131
+ * @public
3132
+ */
3133
+ const includesSymbols = (element, symbols) => {
3134
+ if (symbols.length === 0) {
3135
+ return true;
3136
+ }
3137
+ if (!element.hasAttributesProperty('symbols')) {
3138
+ return false;
3139
+ }
3140
+ const elementSymbols = element.attributes.get('symbols');
3141
+ if (!(0,_primitives_ts__WEBPACK_IMPORTED_MODULE_0__.isArrayElement)(elementSymbols)) {
3142
+ return false;
3143
+ }
3144
+ return symbols.every(symbol => elementSymbols.includes(symbol));
3145
+ };
3146
+
3147
+ /**
3148
+ * @public
3149
+ */
3150
+ const includesClasses = (element, classes) => {
3151
+ if (classes.length === 0) {
3152
+ return true;
3153
+ }
3154
+ if (!(0,_primitives_ts__WEBPACK_IMPORTED_MODULE_0__.isElement)(element)) {
3155
+ return false;
3156
+ }
3157
+ if (element.isMetaEmpty) {
3158
+ return false;
3159
+ }
3160
+ if (!element.hasMetaProperty('classes')) {
3161
+ return false;
3162
+ }
3163
+ return classes.every(cls => element.classes.includes(cls));
3164
+ };
3165
+
3166
+ /***/ }),
3167
+
2292
3168
  /***/ 959:
2293
3169
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2294
3170
 
@@ -2376,6 +3252,63 @@ var type = /*#__PURE__*/(0,_internal_curry1_js__WEBPACK_IMPORTED_MODULE_0__["def
2376
3252
 
2377
3253
  /***/ }),
2378
3254
 
3255
+ /***/ 969:
3256
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3257
+
3258
+ __webpack_require__.r(__webpack_exports__);
3259
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3260
+ /* harmony export */ isAnnotationElement: () => (/* binding */ isAnnotationElement),
3261
+ /* harmony export */ isCommentElement: () => (/* binding */ isCommentElement),
3262
+ /* harmony export */ isLinkElement: () => (/* binding */ isLinkElement),
3263
+ /* harmony export */ isParseResultElement: () => (/* binding */ isParseResultElement),
3264
+ /* harmony export */ isRefElement: () => (/* binding */ isRefElement),
3265
+ /* harmony export */ isSourceMapElement: () => (/* binding */ isSourceMapElement)
3266
+ /* harmony export */ });
3267
+ /* harmony import */ var _elements_LinkElement_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(885);
3268
+ /* harmony import */ var _elements_RefElement_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(474);
3269
+ /* harmony import */ var _elements_Annotation_ts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(24);
3270
+ /* harmony import */ var _elements_Comment_ts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(176);
3271
+ /* harmony import */ var _elements_ParseResult_ts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(755);
3272
+ /* harmony import */ var _elements_SourceMap_ts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(588);
3273
+
3274
+
3275
+
3276
+
3277
+
3278
+
3279
+
3280
+ /**
3281
+ * @public
3282
+ */
3283
+ const isLinkElement = element => element instanceof _elements_LinkElement_ts__WEBPACK_IMPORTED_MODULE_0__["default"];
3284
+
3285
+ /**
3286
+ * @public
3287
+ */
3288
+ const isRefElement = element => element instanceof _elements_RefElement_ts__WEBPACK_IMPORTED_MODULE_1__["default"];
3289
+
3290
+ /**
3291
+ * @public
3292
+ */
3293
+ const isAnnotationElement = element => element instanceof _elements_Annotation_ts__WEBPACK_IMPORTED_MODULE_2__["default"];
3294
+
3295
+ /**
3296
+ * @public
3297
+ */
3298
+ const isCommentElement = element => element instanceof _elements_Comment_ts__WEBPACK_IMPORTED_MODULE_3__["default"];
3299
+
3300
+ /**
3301
+ * @public
3302
+ */
3303
+ const isParseResultElement = element => element instanceof _elements_ParseResult_ts__WEBPACK_IMPORTED_MODULE_4__["default"];
3304
+
3305
+ /**
3306
+ * @public
3307
+ */
3308
+ const isSourceMapElement = element => element instanceof _elements_SourceMap_ts__WEBPACK_IMPORTED_MODULE_5__["default"];
3309
+
3310
+ /***/ }),
3311
+
2379
3312
  /***/ 975:
2380
3313
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2381
3314
 
@@ -2594,8 +3527,6 @@ class ObjectElement extends _CollectionElement_ts__WEBPACK_IMPORTED_MODULE_0__["
2594
3527
  return memo;
2595
3528
  }
2596
3529
 
2597
- // Fantasy Land
2598
-
2599
3530
  /**
2600
3531
  * Returns an empty object element.
2601
3532
  */
@@ -2666,41 +3597,81 @@ class ObjectElement extends _CollectionElement_ts__WEBPACK_IMPORTED_MODULE_0__["
2666
3597
  var __webpack_exports__ = {};
2667
3598
  __webpack_require__.r(__webpack_exports__);
2668
3599
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2669
- /* harmony export */ ArrayElement: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_8__["default"]),
2670
- /* harmony export */ BooleanElement: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_7__["default"]),
2671
- /* harmony export */ CollectionElement: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_3__["default"]),
2672
- /* harmony export */ Element: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_2__["default"]),
2673
- /* harmony export */ JSONSerialiser: () => (/* reexport safe */ _serialisers_JSONSerialiser_ts__WEBPACK_IMPORTED_MODULE_15__["default"]),
3600
+ /* harmony export */ AnnotationElement: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_17__["default"]),
3601
+ /* harmony export */ ArrayElement: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_12__["default"]),
3602
+ /* harmony export */ BooleanElement: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_11__["default"]),
3603
+ /* harmony export */ CloneError: () => (/* reexport safe */ _clone_index_ts__WEBPACK_IMPORTED_MODULE_3__["default"]),
3604
+ /* harmony export */ CollectionElement: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_7__["default"]),
3605
+ /* harmony export */ CommentElement: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_18__["default"]),
3606
+ /* harmony export */ DeepCloneError: () => (/* reexport safe */ _clone_index_ts__WEBPACK_IMPORTED_MODULE_4__["default"]),
3607
+ /* harmony export */ Element: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_6__["default"]),
3608
+ /* harmony export */ JSONSerialiser: () => (/* reexport safe */ _serialisers_JSONSerialiser_ts__WEBPACK_IMPORTED_MODULE_23__["default"]),
2674
3609
  /* harmony export */ KeyValuePair: () => (/* reexport safe */ _KeyValuePair_ts__WEBPACK_IMPORTED_MODULE_1__["default"]),
2675
- /* harmony export */ LinkElement: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_11__["default"]),
2676
- /* harmony export */ MemberElement: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_9__["default"]),
3610
+ /* harmony export */ LinkElement: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_15__["default"]),
3611
+ /* harmony export */ MemberElement: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_13__["default"]),
2677
3612
  /* harmony export */ Namespace: () => (/* reexport safe */ _Namespace_ts__WEBPACK_IMPORTED_MODULE_0__["default"]),
2678
- /* harmony export */ NullElement: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_4__["default"]),
2679
- /* harmony export */ NumberElement: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_6__["default"]),
2680
- /* harmony export */ ObjectElement: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_10__["default"]),
2681
- /* harmony export */ ObjectSlice: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_13__["default"]),
2682
- /* harmony export */ RefElement: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_12__["default"]),
2683
- /* harmony export */ StringElement: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_5__["default"]),
2684
- /* harmony export */ refract: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_14__.refract)
3613
+ /* harmony export */ NullElement: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_8__["default"]),
3614
+ /* harmony export */ NumberElement: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_10__["default"]),
3615
+ /* harmony export */ ObjectElement: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_14__["default"]),
3616
+ /* harmony export */ ObjectSlice: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_21__["default"]),
3617
+ /* harmony export */ ParseResultElement: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_19__["default"]),
3618
+ /* harmony export */ RefElement: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_16__["default"]),
3619
+ /* harmony export */ ShallowCloneError: () => (/* reexport safe */ _clone_index_ts__WEBPACK_IMPORTED_MODULE_5__["default"]),
3620
+ /* harmony export */ SourceMapElement: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_20__["default"]),
3621
+ /* harmony export */ StringElement: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_9__["default"]),
3622
+ /* harmony export */ cloneDeep: () => (/* reexport safe */ _clone_index_ts__WEBPACK_IMPORTED_MODULE_2__.cloneDeep),
3623
+ /* harmony export */ cloneShallow: () => (/* reexport safe */ _clone_index_ts__WEBPACK_IMPORTED_MODULE_2__.cloneShallow),
3624
+ /* harmony export */ hasElementSourceMap: () => (/* reexport safe */ _predicates_index_ts__WEBPACK_IMPORTED_MODULE_26__.hasElementSourceMap),
3625
+ /* harmony export */ includesClasses: () => (/* reexport safe */ _predicates_index_ts__WEBPACK_IMPORTED_MODULE_26__.includesClasses),
3626
+ /* harmony export */ includesSymbols: () => (/* reexport safe */ _predicates_index_ts__WEBPACK_IMPORTED_MODULE_26__.includesSymbols),
3627
+ /* harmony export */ isAnnotationElement: () => (/* reexport safe */ _predicates_index_ts__WEBPACK_IMPORTED_MODULE_25__.isAnnotationElement),
3628
+ /* harmony export */ isArrayElement: () => (/* reexport safe */ _predicates_index_ts__WEBPACK_IMPORTED_MODULE_24__.isArrayElement),
3629
+ /* harmony export */ isBooleanElement: () => (/* reexport safe */ _predicates_index_ts__WEBPACK_IMPORTED_MODULE_24__.isBooleanElement),
3630
+ /* harmony export */ isCommentElement: () => (/* reexport safe */ _predicates_index_ts__WEBPACK_IMPORTED_MODULE_25__.isCommentElement),
3631
+ /* harmony export */ isElement: () => (/* reexport safe */ _predicates_index_ts__WEBPACK_IMPORTED_MODULE_24__.isElement),
3632
+ /* harmony export */ isLinkElement: () => (/* reexport safe */ _predicates_index_ts__WEBPACK_IMPORTED_MODULE_25__.isLinkElement),
3633
+ /* harmony export */ isMemberElement: () => (/* reexport safe */ _predicates_index_ts__WEBPACK_IMPORTED_MODULE_24__.isMemberElement),
3634
+ /* harmony export */ isNullElement: () => (/* reexport safe */ _predicates_index_ts__WEBPACK_IMPORTED_MODULE_24__.isNullElement),
3635
+ /* harmony export */ isNumberElement: () => (/* reexport safe */ _predicates_index_ts__WEBPACK_IMPORTED_MODULE_24__.isNumberElement),
3636
+ /* harmony export */ isObjectElement: () => (/* reexport safe */ _predicates_index_ts__WEBPACK_IMPORTED_MODULE_24__.isObjectElement),
3637
+ /* harmony export */ isParseResultElement: () => (/* reexport safe */ _predicates_index_ts__WEBPACK_IMPORTED_MODULE_25__.isParseResultElement),
3638
+ /* harmony export */ isPrimitiveElement: () => (/* reexport safe */ _predicates_index_ts__WEBPACK_IMPORTED_MODULE_24__.isPrimitiveElement),
3639
+ /* harmony export */ isRefElement: () => (/* reexport safe */ _predicates_index_ts__WEBPACK_IMPORTED_MODULE_25__.isRefElement),
3640
+ /* harmony export */ isSourceMapElement: () => (/* reexport safe */ _predicates_index_ts__WEBPACK_IMPORTED_MODULE_25__.isSourceMapElement),
3641
+ /* harmony export */ isStringElement: () => (/* reexport safe */ _predicates_index_ts__WEBPACK_IMPORTED_MODULE_24__.isStringElement),
3642
+ /* harmony export */ refract: () => (/* reexport safe */ _registration_ts__WEBPACK_IMPORTED_MODULE_22__.refract)
2685
3643
  /* harmony export */ });
2686
3644
  /* harmony import */ var _Namespace_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(576);
2687
3645
  /* harmony import */ var _KeyValuePair_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(807);
2688
- /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(370);
2689
- /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(766);
2690
- /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(377);
2691
- /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(805);
2692
- /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(933);
2693
- /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(492);
2694
- /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(603);
2695
- /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(136);
2696
- /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(975);
2697
- /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(885);
2698
- /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(474);
2699
- /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(660);
2700
- /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(18);
2701
- /* harmony import */ var _serialisers_JSONSerialiser_ts__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(27);
2702
-
2703
-
3646
+ /* harmony import */ var _clone_index_ts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(314);
3647
+ /* harmony import */ var _clone_index_ts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(200);
3648
+ /* harmony import */ var _clone_index_ts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(794);
3649
+ /* harmony import */ var _clone_index_ts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(60);
3650
+ /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(370);
3651
+ /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(766);
3652
+ /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(377);
3653
+ /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(805);
3654
+ /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(933);
3655
+ /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(492);
3656
+ /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(603);
3657
+ /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(136);
3658
+ /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(975);
3659
+ /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(885);
3660
+ /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(474);
3661
+ /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(24);
3662
+ /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(176);
3663
+ /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(755);
3664
+ /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(588);
3665
+ /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(660);
3666
+ /* harmony import */ var _registration_ts__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(18);
3667
+ /* harmony import */ var _serialisers_JSONSerialiser_ts__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(27);
3668
+ /* harmony import */ var _predicates_index_ts__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(762);
3669
+ /* harmony import */ var _predicates_index_ts__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(969);
3670
+ /* harmony import */ var _predicates_index_ts__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(950);
3671
+
3672
+
3673
+
3674
+ // Clone utilities
2704
3675
 
2705
3676
  // Re-export elements directly to preserve JSDoc
2706
3677
 
@@ -2711,6 +3682,9 @@ __webpack_require__.r(__webpack_exports__);
2711
3682
  // Re-export types - for advanced users extending the library
2712
3683
 
2713
3684
  // Re-export types - used in public method signatures
3685
+
3686
+ // Re-export predicates
3687
+
2714
3688
  /******/ return __webpack_exports__;
2715
3689
  /******/ })()
2716
3690
  ;