@speclynx/apidom-parser-adapter-arazzo-json-1 2.13.1 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -20034,7 +20034,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
20034
20034
|
* @public
|
|
20035
20035
|
*/
|
|
20036
20036
|
const emptyElement = element => {
|
|
20037
|
-
const meta = !element.isMetaEmpty ?
|
|
20037
|
+
const meta = !element.isMetaEmpty ? element.meta.cloneDeep() : undefined;
|
|
20038
20038
|
const attributes = !element.isAttributesEmpty ? (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(element.attributes) : undefined;
|
|
20039
20039
|
|
|
20040
20040
|
// @ts-ignore
|
|
@@ -20050,7 +20050,7 @@ const getMergeFunction = (keyElement, options) => {
|
|
|
20050
20050
|
};
|
|
20051
20051
|
const getMetaMergeFunction = options => {
|
|
20052
20052
|
if (typeof options.customMetaMerge !== 'function') {
|
|
20053
|
-
return targetMeta =>
|
|
20053
|
+
return targetMeta => targetMeta.cloneDeep();
|
|
20054
20054
|
}
|
|
20055
20055
|
return options.customMetaMerge;
|
|
20056
20056
|
};
|
|
@@ -20122,8 +20122,20 @@ const deepmerge = (targetElement, sourceElement, options) => {
|
|
|
20122
20122
|
const mergedElement = sourceIsArrayElement && typeof mergedOptions.arrayElementMerge === 'function' ? mergedOptions.arrayElementMerge(targetElement, sourceElement, mergedOptions) : mergedOptions.objectElementMerge(targetElement, sourceElement, mergedOptions);
|
|
20123
20123
|
|
|
20124
20124
|
// merging meta & attributes
|
|
20125
|
-
|
|
20126
|
-
|
|
20125
|
+
if (!targetElement.isMetaEmpty && !sourceElement.isMetaEmpty) {
|
|
20126
|
+
mergedElement.meta = getMetaMergeFunction(mergedOptions)(targetElement.meta, sourceElement.meta);
|
|
20127
|
+
} else if (!targetElement.isMetaEmpty) {
|
|
20128
|
+
mergedElement.meta = targetElement.meta.cloneDeep();
|
|
20129
|
+
} else if (!sourceElement.isMetaEmpty) {
|
|
20130
|
+
mergedElement.meta = sourceElement.meta.cloneDeep();
|
|
20131
|
+
}
|
|
20132
|
+
if (!targetElement.isAttributesEmpty && !sourceElement.isAttributesEmpty) {
|
|
20133
|
+
mergedElement.attributes = getAttributesMergeFunction(mergedOptions)(targetElement.attributes, sourceElement.attributes);
|
|
20134
|
+
} else if (!targetElement.isAttributesEmpty) {
|
|
20135
|
+
mergedElement.attributes = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(targetElement.attributes);
|
|
20136
|
+
} else if (!sourceElement.isAttributesEmpty) {
|
|
20137
|
+
mergedElement.attributes = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(sourceElement.attributes);
|
|
20138
|
+
}
|
|
20127
20139
|
return mergedElement;
|
|
20128
20140
|
};
|
|
20129
20141
|
deepmerge.all = (list, options) => {
|
|
@@ -20462,6 +20474,105 @@ class KeyValuePair {
|
|
|
20462
20474
|
|
|
20463
20475
|
/***/ },
|
|
20464
20476
|
|
|
20477
|
+
/***/ 1844
|
|
20478
|
+
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
20479
|
+
|
|
20480
|
+
"use strict";
|
|
20481
|
+
__webpack_require__.r(__webpack_exports__);
|
|
20482
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
20483
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
20484
|
+
/* harmony export */ });
|
|
20485
|
+
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8138);
|
|
20486
|
+
|
|
20487
|
+
/**
|
|
20488
|
+
* Lightweight meta container for Element metadata.
|
|
20489
|
+
*
|
|
20490
|
+
* Data is stored as own properties on the instance; methods live on the prototype.
|
|
20491
|
+
* `Object.keys()`, `Object.entries()`, etc. only see data properties.
|
|
20492
|
+
*
|
|
20493
|
+
* @public
|
|
20494
|
+
*/
|
|
20495
|
+
class Metadata {
|
|
20496
|
+
// Set via prototype assignment in registration.ts to avoid circular dependency
|
|
20497
|
+
|
|
20498
|
+
get(name) {
|
|
20499
|
+
return this[name];
|
|
20500
|
+
}
|
|
20501
|
+
set(name, value) {
|
|
20502
|
+
this[name] = value;
|
|
20503
|
+
}
|
|
20504
|
+
hasKey(name) {
|
|
20505
|
+
return Object.hasOwn(this, name);
|
|
20506
|
+
}
|
|
20507
|
+
keys() {
|
|
20508
|
+
return Object.keys(this);
|
|
20509
|
+
}
|
|
20510
|
+
remove(name) {
|
|
20511
|
+
delete this[name];
|
|
20512
|
+
}
|
|
20513
|
+
get isEmpty() {
|
|
20514
|
+
return Object.keys(this).length === 0;
|
|
20515
|
+
}
|
|
20516
|
+
get isFrozen() {
|
|
20517
|
+
return Object.isFrozen(this);
|
|
20518
|
+
}
|
|
20519
|
+
freeze() {
|
|
20520
|
+
for (const value of Object.values(this)) {
|
|
20521
|
+
if (value instanceof this.Element) {
|
|
20522
|
+
value.freeze();
|
|
20523
|
+
} else if (Array.isArray(value) || value !== null && typeof value === 'object') {
|
|
20524
|
+
Object.freeze(value);
|
|
20525
|
+
}
|
|
20526
|
+
}
|
|
20527
|
+
Object.freeze(this);
|
|
20528
|
+
}
|
|
20529
|
+
|
|
20530
|
+
/**
|
|
20531
|
+
* Creates a shallow clone. Same references, new container.
|
|
20532
|
+
*/
|
|
20533
|
+
cloneShallow() {
|
|
20534
|
+
const clone = new Metadata();
|
|
20535
|
+
Object.assign(clone, this);
|
|
20536
|
+
return clone;
|
|
20537
|
+
}
|
|
20538
|
+
|
|
20539
|
+
/**
|
|
20540
|
+
* Merges another Metadata into a new instance.
|
|
20541
|
+
* Arrays are concatenated, all other values are overwritten by source.
|
|
20542
|
+
*/
|
|
20543
|
+
merge(source) {
|
|
20544
|
+
const result = this.cloneShallow();
|
|
20545
|
+
for (const [key, value] of Object.entries(source)) {
|
|
20546
|
+
const existing = result.get(key);
|
|
20547
|
+
if (Array.isArray(existing) && Array.isArray(value)) {
|
|
20548
|
+
result.set(key, [...existing, ...value]);
|
|
20549
|
+
} else {
|
|
20550
|
+
result.set(key, value);
|
|
20551
|
+
}
|
|
20552
|
+
}
|
|
20553
|
+
return result;
|
|
20554
|
+
}
|
|
20555
|
+
|
|
20556
|
+
/**
|
|
20557
|
+
* Creates a deep clone. Elements are deep cloned,
|
|
20558
|
+
* all other values are deep cloned via ramda clone.
|
|
20559
|
+
*/
|
|
20560
|
+
cloneDeep() {
|
|
20561
|
+
const copy = new Metadata();
|
|
20562
|
+
for (const [key, value] of Object.entries(this)) {
|
|
20563
|
+
if (value instanceof this.Element) {
|
|
20564
|
+
copy.set(key, this.cloneDeepElement(value));
|
|
20565
|
+
} else {
|
|
20566
|
+
copy.set(key, (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(value));
|
|
20567
|
+
}
|
|
20568
|
+
}
|
|
20569
|
+
return copy;
|
|
20570
|
+
}
|
|
20571
|
+
}
|
|
20572
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Metadata);
|
|
20573
|
+
|
|
20574
|
+
/***/ },
|
|
20575
|
+
|
|
20465
20576
|
/***/ 5156
|
|
20466
20577
|
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
20467
20578
|
|
|
@@ -21108,7 +21219,7 @@ const cloneShallowElement = element => {
|
|
|
21108
21219
|
const copy = new Ctor();
|
|
21109
21220
|
copy.element = element.element;
|
|
21110
21221
|
if (!element.isMetaEmpty) {
|
|
21111
|
-
copy.meta =
|
|
21222
|
+
copy.meta = element.meta.cloneDeep();
|
|
21112
21223
|
}
|
|
21113
21224
|
if (!element.isAttributesEmpty) {
|
|
21114
21225
|
copy.attributes = cloneDeep(element.attributes);
|
|
@@ -21136,8 +21247,8 @@ const cloneShallowElement = element => {
|
|
|
21136
21247
|
|
|
21137
21248
|
/**
|
|
21138
21249
|
* Creates a shallow clone of an ApiDOM Element, KeyValuePair, or ObjectSlice.
|
|
21139
|
-
* The element itself is cloned, but content references are shared
|
|
21140
|
-
*
|
|
21250
|
+
* The element itself is cloned, but content references are shared.
|
|
21251
|
+
* Meta and attributes are deep cloned to preserve semantic information.
|
|
21141
21252
|
* @public
|
|
21142
21253
|
*/
|
|
21143
21254
|
const cloneShallow = value => {
|
|
@@ -22212,7 +22323,7 @@ class CollectionElement extends _Element_mjs__WEBPACK_IMPORTED_MODULE_0__["defau
|
|
|
22212
22323
|
* Search the tree recursively and find the element with the matching ID.
|
|
22213
22324
|
*/
|
|
22214
22325
|
getById(id) {
|
|
22215
|
-
return this.find(item => item.id
|
|
22326
|
+
return this.find(item => item.id === id).first;
|
|
22216
22327
|
}
|
|
22217
22328
|
|
|
22218
22329
|
/**
|
|
@@ -22242,18 +22353,24 @@ class CollectionElement extends _Element_mjs__WEBPACK_IMPORTED_MODULE_0__["defau
|
|
|
22242
22353
|
"use strict";
|
|
22243
22354
|
__webpack_require__.r(__webpack_exports__);
|
|
22244
22355
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
22356
|
+
/* harmony export */ Metadata: () => (/* reexport safe */ _Metadata_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]),
|
|
22245
22357
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
22246
22358
|
/* harmony export */ });
|
|
22247
22359
|
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3654);
|
|
22248
|
-
/* harmony import */ var
|
|
22249
|
-
/* harmony import */ var
|
|
22360
|
+
/* harmony import */ var _Metadata_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1844);
|
|
22361
|
+
/* harmony import */ var _KeyValuePair_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6663);
|
|
22362
|
+
/* harmony import */ var _ObjectSlice_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(8504);
|
|
22363
|
+
|
|
22250
22364
|
|
|
22251
22365
|
|
|
22366
|
+
// shared singleton for frozen elements with no meta — avoids allocation on every access
|
|
22367
|
+
const FROZEN_EMPTY_METADATA = Object.freeze(new _Metadata_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]());
|
|
22252
22368
|
|
|
22253
22369
|
/**
|
|
22254
22370
|
* Valid content types for an Element.
|
|
22255
22371
|
* @public
|
|
22256
22372
|
*/
|
|
22373
|
+
|
|
22257
22374
|
/**
|
|
22258
22375
|
* Base Element class that all ApiDOM elements extend.
|
|
22259
22376
|
*
|
|
@@ -22351,7 +22468,7 @@ class Element {
|
|
|
22351
22468
|
_attributes;
|
|
22352
22469
|
|
|
22353
22470
|
// ============================================================
|
|
22354
|
-
// Prototype-assigned properties (set in
|
|
22471
|
+
// Prototype-assigned properties (set in registration.ts)
|
|
22355
22472
|
// Using 'declare' allows TypeScript to know about these
|
|
22356
22473
|
// without generating runtime code.
|
|
22357
22474
|
// ============================================================
|
|
@@ -22412,13 +22529,13 @@ class Element {
|
|
|
22412
22529
|
}
|
|
22413
22530
|
|
|
22414
22531
|
// KeyValuePair
|
|
22415
|
-
if (value instanceof
|
|
22532
|
+
if (value instanceof _KeyValuePair_mjs__WEBPACK_IMPORTED_MODULE_2__["default"]) {
|
|
22416
22533
|
this._content = value;
|
|
22417
22534
|
return;
|
|
22418
22535
|
}
|
|
22419
22536
|
|
|
22420
22537
|
// ObjectSlice - extract elements array
|
|
22421
|
-
if (value instanceof
|
|
22538
|
+
if (value instanceof _ObjectSlice_mjs__WEBPACK_IMPORTED_MODULE_3__["default"]) {
|
|
22422
22539
|
this._content = value.elements;
|
|
22423
22540
|
return;
|
|
22424
22541
|
}
|
|
@@ -22439,24 +22556,22 @@ class Element {
|
|
|
22439
22556
|
|
|
22440
22557
|
/**
|
|
22441
22558
|
* Metadata about this element (id, classes, title, description, links).
|
|
22442
|
-
* Lazily creates
|
|
22559
|
+
* Lazily creates a Metadata instance if not set.
|
|
22443
22560
|
*/
|
|
22444
22561
|
get meta() {
|
|
22445
22562
|
if (!this._meta) {
|
|
22446
|
-
if (this.isFrozen)
|
|
22447
|
-
|
|
22448
|
-
meta.freeze();
|
|
22449
|
-
return meta;
|
|
22450
|
-
}
|
|
22451
|
-
this._meta = new this.ObjectElement();
|
|
22563
|
+
if (this.isFrozen) return FROZEN_EMPTY_METADATA;
|
|
22564
|
+
this._meta = new _Metadata_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]();
|
|
22452
22565
|
}
|
|
22453
22566
|
return this._meta;
|
|
22454
22567
|
}
|
|
22455
22568
|
set meta(value) {
|
|
22456
|
-
if (value instanceof
|
|
22569
|
+
if (value instanceof _Metadata_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]) {
|
|
22457
22570
|
this._meta = value;
|
|
22458
|
-
} else {
|
|
22459
|
-
|
|
22571
|
+
} else if (value && typeof value === 'object') {
|
|
22572
|
+
const meta = new _Metadata_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]();
|
|
22573
|
+
Object.assign(meta, value);
|
|
22574
|
+
this._meta = meta;
|
|
22460
22575
|
}
|
|
22461
22576
|
}
|
|
22462
22577
|
|
|
@@ -22489,10 +22604,8 @@ class Element {
|
|
|
22489
22604
|
|
|
22490
22605
|
/** Unique identifier for this element. */
|
|
22491
22606
|
get id() {
|
|
22492
|
-
if (this.isFrozen) {
|
|
22493
|
-
return this.getMetaProperty('id', '');
|
|
22494
|
-
}
|
|
22495
22607
|
if (!this.hasMetaProperty('id')) {
|
|
22608
|
+
if (this.isFrozen) return '';
|
|
22496
22609
|
this.setMetaProperty('id', '');
|
|
22497
22610
|
}
|
|
22498
22611
|
return this.meta.get('id');
|
|
@@ -22503,10 +22616,8 @@ class Element {
|
|
|
22503
22616
|
|
|
22504
22617
|
/** CSS-like class names. */
|
|
22505
22618
|
get classes() {
|
|
22506
|
-
if (this.isFrozen) {
|
|
22507
|
-
return this.getMetaProperty('classes', []);
|
|
22508
|
-
}
|
|
22509
22619
|
if (!this.hasMetaProperty('classes')) {
|
|
22620
|
+
if (this.isFrozen) return [];
|
|
22510
22621
|
this.setMetaProperty('classes', []);
|
|
22511
22622
|
}
|
|
22512
22623
|
return this.meta.get('classes');
|
|
@@ -22517,11 +22628,13 @@ class Element {
|
|
|
22517
22628
|
|
|
22518
22629
|
/** Hyperlinks associated with this element. */
|
|
22519
22630
|
get links() {
|
|
22520
|
-
if (this.isFrozen) {
|
|
22521
|
-
return this.getMetaProperty('links', []);
|
|
22522
|
-
}
|
|
22523
22631
|
if (!this.hasMetaProperty('links')) {
|
|
22524
|
-
this.
|
|
22632
|
+
if (this.isFrozen) {
|
|
22633
|
+
const empty = new this.ArrayElement();
|
|
22634
|
+
empty.freeze();
|
|
22635
|
+
return empty;
|
|
22636
|
+
}
|
|
22637
|
+
this.setMetaProperty('links', new this.ArrayElement());
|
|
22525
22638
|
}
|
|
22526
22639
|
return this.meta.get('links');
|
|
22527
22640
|
}
|
|
@@ -22541,7 +22654,7 @@ class Element {
|
|
|
22541
22654
|
if (Array.isArray(content)) {
|
|
22542
22655
|
return content;
|
|
22543
22656
|
}
|
|
22544
|
-
if (content instanceof
|
|
22657
|
+
if (content instanceof _KeyValuePair_mjs__WEBPACK_IMPORTED_MODULE_2__["default"]) {
|
|
22545
22658
|
const children = [];
|
|
22546
22659
|
if (content.key) children.push(content.key);
|
|
22547
22660
|
if (content.value) children.push(content.value);
|
|
@@ -22571,7 +22684,6 @@ class Element {
|
|
|
22571
22684
|
|
|
22572
22685
|
// Freeze meta and attributes
|
|
22573
22686
|
if (this._meta) {
|
|
22574
|
-
this._meta.parent = this;
|
|
22575
22687
|
this._meta.freeze();
|
|
22576
22688
|
}
|
|
22577
22689
|
if (this._attributes) {
|
|
@@ -22606,7 +22718,7 @@ class Element {
|
|
|
22606
22718
|
if (_content instanceof Element) {
|
|
22607
22719
|
return _content.toValue();
|
|
22608
22720
|
}
|
|
22609
|
-
if (_content instanceof
|
|
22721
|
+
if (_content instanceof _KeyValuePair_mjs__WEBPACK_IMPORTED_MODULE_2__["default"]) {
|
|
22610
22722
|
return _content.toValue();
|
|
22611
22723
|
}
|
|
22612
22724
|
if (Array.isArray(_content)) {
|
|
@@ -22662,7 +22774,7 @@ class Element {
|
|
|
22662
22774
|
* @throws Error if this element has no ID
|
|
22663
22775
|
*/
|
|
22664
22776
|
toRef(path) {
|
|
22665
|
-
const idValue = this.id
|
|
22777
|
+
const idValue = this.id;
|
|
22666
22778
|
if (idValue === '') {
|
|
22667
22779
|
throw new Error('Cannot create reference to an element without an ID');
|
|
22668
22780
|
}
|
|
@@ -22674,26 +22786,16 @@ class Element {
|
|
|
22674
22786
|
}
|
|
22675
22787
|
|
|
22676
22788
|
/**
|
|
22677
|
-
* Gets a meta property.
|
|
22789
|
+
* Gets a meta property value.
|
|
22678
22790
|
*
|
|
22679
22791
|
* When the property doesn't exist:
|
|
22680
|
-
* - With defaultValue: returns
|
|
22792
|
+
* - With defaultValue: returns the provided default value
|
|
22681
22793
|
* - Without defaultValue: returns undefined
|
|
22682
|
-
*
|
|
22683
|
-
* Note: Each call with a default creates a new instance. Use setMetaProperty
|
|
22684
|
-
* first if you need reference equality across multiple accesses.
|
|
22685
22794
|
*/
|
|
22686
22795
|
|
|
22687
22796
|
getMetaProperty(name, defaultValue) {
|
|
22688
22797
|
if (!this.hasMetaProperty(name)) {
|
|
22689
|
-
|
|
22690
|
-
return undefined;
|
|
22691
|
-
}
|
|
22692
|
-
const element = this.refract(defaultValue);
|
|
22693
|
-
if (element && this.isFrozen) {
|
|
22694
|
-
element.freeze();
|
|
22695
|
-
}
|
|
22696
|
-
return element;
|
|
22798
|
+
return defaultValue;
|
|
22697
22799
|
}
|
|
22698
22800
|
return this.meta.get(name);
|
|
22699
22801
|
}
|
|
@@ -22706,20 +22808,17 @@ class Element {
|
|
|
22706
22808
|
}
|
|
22707
22809
|
|
|
22708
22810
|
/**
|
|
22709
|
-
*
|
|
22811
|
+
* Checks whether a meta property exists.
|
|
22710
22812
|
*/
|
|
22711
22813
|
hasMetaProperty(name) {
|
|
22712
|
-
|
|
22713
|
-
return this.meta.hasKey(name);
|
|
22714
|
-
}
|
|
22715
|
-
return false;
|
|
22814
|
+
return this._meta !== undefined && this._meta.hasKey(name);
|
|
22716
22815
|
}
|
|
22717
22816
|
|
|
22718
22817
|
/**
|
|
22719
22818
|
* Checks if meta is empty.
|
|
22720
22819
|
*/
|
|
22721
22820
|
get isMetaEmpty() {
|
|
22722
|
-
return this._meta === undefined || this.
|
|
22821
|
+
return this._meta === undefined || this._meta.isEmpty;
|
|
22723
22822
|
}
|
|
22724
22823
|
|
|
22725
22824
|
/**
|
|
@@ -22745,7 +22844,7 @@ class Element {
|
|
|
22745
22844
|
}
|
|
22746
22845
|
|
|
22747
22846
|
/**
|
|
22748
|
-
*
|
|
22847
|
+
* Checks whether an attributes property exists.
|
|
22749
22848
|
*/
|
|
22750
22849
|
hasAttributesProperty(name) {
|
|
22751
22850
|
if (!this.isAttributesEmpty) {
|
|
@@ -22764,6 +22863,7 @@ class Element {
|
|
|
22764
22863
|
|
|
22765
22864
|
// Re-export types for convenience
|
|
22766
22865
|
|
|
22866
|
+
|
|
22767
22867
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Element);
|
|
22768
22868
|
|
|
22769
22869
|
/***/ },
|
|
@@ -23202,6 +23302,10 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
23202
23302
|
/* harmony import */ var _elements_Style_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(9686);
|
|
23203
23303
|
/* harmony import */ var _ObjectSlice_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(8504);
|
|
23204
23304
|
/* harmony import */ var _KeyValuePair_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(6663);
|
|
23305
|
+
/* harmony import */ var _Metadata_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(1844);
|
|
23306
|
+
/* harmony import */ var _clone_index_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(2111);
|
|
23307
|
+
|
|
23308
|
+
|
|
23205
23309
|
|
|
23206
23310
|
|
|
23207
23311
|
|
|
@@ -23261,14 +23365,16 @@ function refract(value) {
|
|
|
23261
23365
|
}
|
|
23262
23366
|
|
|
23263
23367
|
// Set up prototype assignments for circular dependency resolution.
|
|
23264
|
-
// These allow Element instances to
|
|
23265
|
-
//
|
|
23368
|
+
// These allow Element and Metadata instances to reference classes they can't import
|
|
23369
|
+
// directly (which would cause circular imports).
|
|
23266
23370
|
// Using 'declare' in the class definitions enables type-safe access to these properties.
|
|
23267
23371
|
_primitives_Element_mjs__WEBPACK_IMPORTED_MODULE_0__["default"].prototype.ObjectElement = _primitives_ObjectElement_mjs__WEBPACK_IMPORTED_MODULE_8__["default"];
|
|
23268
23372
|
_primitives_Element_mjs__WEBPACK_IMPORTED_MODULE_0__["default"].prototype.ArrayElement = _primitives_ArrayElement_mjs__WEBPACK_IMPORTED_MODULE_6__["default"];
|
|
23269
23373
|
_primitives_Element_mjs__WEBPACK_IMPORTED_MODULE_0__["default"].prototype.RefElement = _elements_RefElement_mjs__WEBPACK_IMPORTED_MODULE_10__["default"];
|
|
23270
23374
|
_primitives_Element_mjs__WEBPACK_IMPORTED_MODULE_0__["default"].prototype.MemberElement = _primitives_MemberElement_mjs__WEBPACK_IMPORTED_MODULE_7__["default"];
|
|
23271
23375
|
_primitives_Element_mjs__WEBPACK_IMPORTED_MODULE_0__["default"].prototype.refract = refract;
|
|
23376
|
+
_Metadata_mjs__WEBPACK_IMPORTED_MODULE_18__["default"].prototype.Element = _primitives_Element_mjs__WEBPACK_IMPORTED_MODULE_0__["default"];
|
|
23377
|
+
_Metadata_mjs__WEBPACK_IMPORTED_MODULE_18__["default"].prototype.cloneDeepElement = element => (0,_clone_index_mjs__WEBPACK_IMPORTED_MODULE_19__.cloneDeep)(element);
|
|
23272
23378
|
|
|
23273
23379
|
/**
|
|
23274
23380
|
* Contains all of the element classes, and related structures and methods
|
|
@@ -23333,7 +23439,13 @@ class JSONSerialiser {
|
|
|
23333
23439
|
element: element.element
|
|
23334
23440
|
};
|
|
23335
23441
|
if (!element.isMetaEmpty) {
|
|
23336
|
-
|
|
23442
|
+
const serialisedMeta = this.serialiseMeta(element);
|
|
23443
|
+
if (serialisedMeta) {
|
|
23444
|
+
payload.meta = serialisedMeta.meta;
|
|
23445
|
+
if (serialisedMeta.rawKeys.length > 0) {
|
|
23446
|
+
payload.__meta_raw__ = serialisedMeta.rawKeys;
|
|
23447
|
+
}
|
|
23448
|
+
}
|
|
23337
23449
|
}
|
|
23338
23450
|
if (!element.isAttributesEmpty) {
|
|
23339
23451
|
payload.attributes = this.serialiseObject(element.attributes);
|
|
@@ -23380,7 +23492,7 @@ class JSONSerialiser {
|
|
|
23380
23492
|
element.element = value.element;
|
|
23381
23493
|
}
|
|
23382
23494
|
|
|
23383
|
-
// Extract
|
|
23495
|
+
// Extract special meta keys without mutating input, filter remaining meta
|
|
23384
23496
|
let mappingsDoc;
|
|
23385
23497
|
let stylesDoc;
|
|
23386
23498
|
let metaToDeserialize = value.meta;
|
|
@@ -23394,8 +23506,15 @@ class JSONSerialiser {
|
|
|
23394
23506
|
stylesDoc = __styles__;
|
|
23395
23507
|
metaToDeserialize = Object.keys(rest).length > 0 ? rest : undefined;
|
|
23396
23508
|
}
|
|
23509
|
+
|
|
23510
|
+
// determine which meta keys were raw primitives before serialization
|
|
23511
|
+
const rawKeys = value.__meta_raw__ ? new Set(value.__meta_raw__) : undefined;
|
|
23397
23512
|
if (metaToDeserialize) {
|
|
23398
|
-
|
|
23513
|
+
for (const [key, doc] of Object.entries(metaToDeserialize)) {
|
|
23514
|
+
const deserialized = this.deserialise(doc);
|
|
23515
|
+
// unwrap keys that were raw primitives before serialization
|
|
23516
|
+
element.setMetaProperty(key, rawKeys?.has(key) ? deserialized.toValue() : deserialized);
|
|
23517
|
+
}
|
|
23399
23518
|
}
|
|
23400
23519
|
|
|
23401
23520
|
// Restore source position from __mappings__
|
|
@@ -23458,6 +23577,27 @@ class JSONSerialiser {
|
|
|
23458
23577
|
}
|
|
23459
23578
|
return content;
|
|
23460
23579
|
}
|
|
23580
|
+
serialiseMeta(element) {
|
|
23581
|
+
const meta = {};
|
|
23582
|
+
const rawKeys = [];
|
|
23583
|
+
let hasEntries = false;
|
|
23584
|
+
for (const [key, value] of Object.entries(element.meta)) {
|
|
23585
|
+
if (value instanceof this.namespace.elements.Element) {
|
|
23586
|
+
meta[key] = this.serialise(value);
|
|
23587
|
+
hasEntries = true;
|
|
23588
|
+
} else if (value !== undefined) {
|
|
23589
|
+
// refract primitives to maintain JSON Refract spec compatibility
|
|
23590
|
+
const refracted = element.refract(value);
|
|
23591
|
+
meta[key] = this.serialise(refracted);
|
|
23592
|
+
rawKeys.push(key);
|
|
23593
|
+
hasEntries = true;
|
|
23594
|
+
}
|
|
23595
|
+
}
|
|
23596
|
+
return hasEntries ? {
|
|
23597
|
+
meta,
|
|
23598
|
+
rawKeys
|
|
23599
|
+
} : undefined;
|
|
23600
|
+
}
|
|
23461
23601
|
serialiseObject(obj) {
|
|
23462
23602
|
const result = {};
|
|
23463
23603
|
obj.forEach((value, key) => {
|
|
@@ -25364,7 +25504,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
25364
25504
|
const refract = (value, {
|
|
25365
25505
|
element = 'arazzoSpecification1',
|
|
25366
25506
|
plugins = [],
|
|
25367
|
-
specificationObj = _specification_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]
|
|
25507
|
+
specificationObj = _specification_mjs__WEBPACK_IMPORTED_MODULE_5__["default"],
|
|
25508
|
+
consume = false
|
|
25368
25509
|
} = {}) => {
|
|
25369
25510
|
const genericElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__.refract)(value);
|
|
25370
25511
|
const resolvedSpec = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_1__.resolveSpecification)(specificationObj);
|
|
@@ -25381,7 +25522,8 @@ const refract = (value, {
|
|
|
25381
25522
|
*/
|
|
25382
25523
|
const RootVisitorClass = (0,ramda__WEBPACK_IMPORTED_MODULE_4__["default"])(specPath, resolvedSpec);
|
|
25383
25524
|
const rootVisitor = new RootVisitorClass({
|
|
25384
|
-
specObj: resolvedSpec
|
|
25525
|
+
specObj: resolvedSpec,
|
|
25526
|
+
consume
|
|
25385
25527
|
});
|
|
25386
25528
|
(0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_2__.traverse)(genericElement, rootVisitor);
|
|
25387
25529
|
|
|
@@ -25973,7 +26115,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
25973
26115
|
*/
|
|
25974
26116
|
class FallbackVisitor extends _Visitor_mjs__WEBPACK_IMPORTED_MODULE_1__["default"] {
|
|
25975
26117
|
enter(path) {
|
|
25976
|
-
this.element = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.cloneDeep)(path.node);
|
|
26118
|
+
this.element = this.consume ? path.node : (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.cloneDeep)(path.node);
|
|
25977
26119
|
path.stop();
|
|
25978
26120
|
}
|
|
25979
26121
|
}
|
|
@@ -26040,7 +26182,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
26040
26182
|
*/
|
|
26041
26183
|
class SpecificationVisitor extends _Visitor_mjs__WEBPACK_IMPORTED_MODULE_6__["default"] {
|
|
26042
26184
|
specObj;
|
|
26043
|
-
passingOptionsNames = ['specObj'];
|
|
26185
|
+
passingOptionsNames = ['specObj', 'consume'];
|
|
26044
26186
|
constructor({
|
|
26045
26187
|
specObj,
|
|
26046
26188
|
...rest
|
|
@@ -26086,7 +26228,7 @@ class SpecificationVisitor extends _Visitor_mjs__WEBPACK_IMPORTED_MODULE_6__["de
|
|
|
26086
26228
|
*/
|
|
26087
26229
|
const visitor = this.retrieveVisitorInstance(specPath, options);
|
|
26088
26230
|
if (visitor instanceof _FallbackVisitor_mjs__WEBPACK_IMPORTED_MODULE_7__["default"] && visitor?.constructor === _FallbackVisitor_mjs__WEBPACK_IMPORTED_MODULE_7__["default"]) {
|
|
26089
|
-
return (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__.cloneDeep)(element);
|
|
26231
|
+
return this.consume ? element : (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__.cloneDeep)(element);
|
|
26090
26232
|
}
|
|
26091
26233
|
(0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_5__.traverse)(element, visitor, options);
|
|
26092
26234
|
return visitor.element;
|
|
@@ -26105,7 +26247,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
26105
26247
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
26106
26248
|
/* harmony export */ });
|
|
26107
26249
|
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8400);
|
|
26108
|
-
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
26250
|
+
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2111);
|
|
26109
26251
|
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5810);
|
|
26110
26252
|
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9686);
|
|
26111
26253
|
|
|
@@ -26120,19 +26262,21 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
26120
26262
|
*/
|
|
26121
26263
|
class Visitor {
|
|
26122
26264
|
element;
|
|
26265
|
+
consume = false;
|
|
26266
|
+
consumeSafe = false;
|
|
26123
26267
|
constructor(options = {}) {
|
|
26124
26268
|
Object.assign(this, options);
|
|
26125
26269
|
}
|
|
26126
26270
|
copyMetaAndAttributes(from, to) {
|
|
26127
|
-
if (!from.isMetaEmpty
|
|
26128
|
-
|
|
26129
|
-
|
|
26130
|
-
to.meta = (
|
|
26271
|
+
if (!from.isMetaEmpty && !to.isMetaEmpty) {
|
|
26272
|
+
to.meta = to.meta.merge(from.meta);
|
|
26273
|
+
} else if (!from.isMetaEmpty) {
|
|
26274
|
+
to.meta = from.meta.cloneDeep();
|
|
26131
26275
|
}
|
|
26132
|
-
if (!from.isAttributesEmpty
|
|
26133
|
-
|
|
26134
|
-
|
|
26135
|
-
to.attributes = (0,
|
|
26276
|
+
if (!from.isAttributesEmpty && !to.isAttributesEmpty) {
|
|
26277
|
+
to.attributes = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_0__["default"])(to.attributes, from.attributes);
|
|
26278
|
+
} else if (!from.isAttributesEmpty) {
|
|
26279
|
+
to.attributes = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(from.attributes);
|
|
26136
26280
|
}
|
|
26137
26281
|
_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"].transfer(from, to);
|
|
26138
26282
|
_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__["default"].transfer(from, to);
|
|
@@ -26679,6 +26823,7 @@ class ArazzoSpecificationVisitor extends _bases_mjs__WEBPACK_IMPORTED_MODULE_2__
|
|
|
26679
26823
|
constructor(options) {
|
|
26680
26824
|
super(options);
|
|
26681
26825
|
this.element = new _elements_ArazzoSpecification1_mjs__WEBPACK_IMPORTED_MODULE_3__["default"]();
|
|
26826
|
+
this.consumeSafe = true;
|
|
26682
26827
|
this.specPath = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(['document', 'objects', 'ArazzoSpecification']);
|
|
26683
26828
|
this.canSupportSpecificationExtensions = true;
|
|
26684
26829
|
}
|
|
@@ -27672,15 +27817,18 @@ class FixedFieldsVisitor extends _SpecificationVisitor_mjs__WEBPACK_IMPORTED_MOD
|
|
|
27672
27817
|
objectElement.forEach((value, key, memberElement) => {
|
|
27673
27818
|
if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isStringElement)(key) && fields.includes((0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(key)) && !this.ignoredFields.includes((0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(key))) {
|
|
27674
27819
|
const fixedFieldElement = this.toRefractedElement([...specPath, 'fixedFields', (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(key)], value);
|
|
27675
|
-
const newMemberElement = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(key), fixedFieldElement);
|
|
27820
|
+
const newMemberElement = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](this.consume ? key : (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(key), fixedFieldElement);
|
|
27676
27821
|
this.copyMetaAndAttributes(memberElement, newMemberElement);
|
|
27677
|
-
newMemberElement.classes.push('fixed-field');
|
|
27678
27822
|
this.element.push(newMemberElement);
|
|
27823
|
+
// consume: release processed generic subtree
|
|
27824
|
+
if (this.consume && this.consumeSafe && !memberElement.isFrozen) memberElement.value = undefined;
|
|
27679
27825
|
} else if (this.canSupportSpecificationExtensions && this.specificationExtensionPredicate(memberElement)) {
|
|
27680
27826
|
const extensionElement = this.toRefractedElement(['document', 'extension'], memberElement);
|
|
27681
27827
|
this.element.push(extensionElement);
|
|
27828
|
+
// consume: release processed generic subtree
|
|
27829
|
+
if (this.consume && this.consumeSafe && !memberElement.isFrozen) memberElement.value = undefined;
|
|
27682
27830
|
} else if (!this.ignoredFields.includes((0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(key))) {
|
|
27683
|
-
this.element.push((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(memberElement));
|
|
27831
|
+
this.element.push(this.consume ? memberElement : (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(memberElement));
|
|
27684
27832
|
}
|
|
27685
27833
|
});
|
|
27686
27834
|
this.copyMetaAndAttributes(objectElement, this.element);
|
|
@@ -27783,12 +27931,14 @@ class PatternedFieldsVisitor extends _SpecificationVisitor_mjs__WEBPACK_IMPORTED
|
|
|
27783
27931
|
} 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))) {
|
|
27784
27932
|
const specPath = this.specPath(value);
|
|
27785
27933
|
const patternedFieldElement = this.toRefractedElement(specPath, value);
|
|
27786
|
-
const newMemberElement = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(key), patternedFieldElement);
|
|
27934
|
+
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);
|
|
27787
27935
|
this.copyMetaAndAttributes(memberElement, newMemberElement);
|
|
27788
27936
|
newMemberElement.classes.push('patterned-field');
|
|
27789
27937
|
this.element.push(newMemberElement);
|
|
27938
|
+
// consume: release processed generic subtree
|
|
27939
|
+
if (this.consume && this.consumeSafe && !memberElement.isFrozen) memberElement.value = undefined;
|
|
27790
27940
|
} else if (!this.ignoredFields.includes((0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(key))) {
|
|
27791
|
-
this.element.push((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(memberElement));
|
|
27941
|
+
this.element.push(this.consume ? memberElement : (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(memberElement));
|
|
27792
27942
|
}
|
|
27793
27943
|
});
|
|
27794
27944
|
this.copyMetaAndAttributes(objectElement, this.element);
|
|
@@ -29807,7 +29957,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
29807
29957
|
*/
|
|
29808
29958
|
class FallbackVisitor extends _Visitor_mjs__WEBPACK_IMPORTED_MODULE_1__["default"] {
|
|
29809
29959
|
enter(path) {
|
|
29810
|
-
this.element = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.cloneDeep)(path.node);
|
|
29960
|
+
this.element = this.consume ? path.node : (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.cloneDeep)(path.node);
|
|
29811
29961
|
path.stop();
|
|
29812
29962
|
}
|
|
29813
29963
|
}
|
|
@@ -29847,7 +29997,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
29847
29997
|
*/
|
|
29848
29998
|
class SpecificationVisitor extends _Visitor_mjs__WEBPACK_IMPORTED_MODULE_6__["default"] {
|
|
29849
29999
|
specObj;
|
|
29850
|
-
passingOptionsNames = ['specObj', 'parent'];
|
|
30000
|
+
passingOptionsNames = ['specObj', 'parent', 'consume'];
|
|
29851
30001
|
constructor({
|
|
29852
30002
|
specObj,
|
|
29853
30003
|
...rest
|
|
@@ -29893,7 +30043,7 @@ class SpecificationVisitor extends _Visitor_mjs__WEBPACK_IMPORTED_MODULE_6__["de
|
|
|
29893
30043
|
*/
|
|
29894
30044
|
const visitor = this.retrieveVisitorInstance(specPath, options);
|
|
29895
30045
|
if (visitor instanceof _FallbackVisitor_mjs__WEBPACK_IMPORTED_MODULE_7__["default"] && visitor?.constructor === _FallbackVisitor_mjs__WEBPACK_IMPORTED_MODULE_7__["default"]) {
|
|
29896
|
-
return (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__.cloneDeep)(element);
|
|
30046
|
+
return this.consume ? element : (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__.cloneDeep)(element);
|
|
29897
30047
|
}
|
|
29898
30048
|
(0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_5__.traverse)(element, visitor, options);
|
|
29899
30049
|
return visitor.element;
|
|
@@ -29912,7 +30062,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
29912
30062
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
29913
30063
|
/* harmony export */ });
|
|
29914
30064
|
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8400);
|
|
29915
|
-
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
30065
|
+
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2111);
|
|
29916
30066
|
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5810);
|
|
29917
30067
|
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9686);
|
|
29918
30068
|
|
|
@@ -29927,19 +30077,21 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
29927
30077
|
*/
|
|
29928
30078
|
class Visitor {
|
|
29929
30079
|
element;
|
|
30080
|
+
consume = false;
|
|
30081
|
+
consumeSafe = false;
|
|
29930
30082
|
constructor(options) {
|
|
29931
30083
|
Object.assign(this, options);
|
|
29932
30084
|
}
|
|
29933
30085
|
copyMetaAndAttributes(from, to) {
|
|
29934
|
-
if (!from.isMetaEmpty
|
|
29935
|
-
|
|
29936
|
-
|
|
29937
|
-
to.meta = (
|
|
30086
|
+
if (!from.isMetaEmpty && !to.isMetaEmpty) {
|
|
30087
|
+
to.meta = to.meta.merge(from.meta);
|
|
30088
|
+
} else if (!from.isMetaEmpty) {
|
|
30089
|
+
to.meta = from.meta.cloneDeep();
|
|
29938
30090
|
}
|
|
29939
|
-
if (!from.isAttributesEmpty
|
|
29940
|
-
|
|
29941
|
-
|
|
29942
|
-
to.attributes = (0,
|
|
30091
|
+
if (!from.isAttributesEmpty && !to.isAttributesEmpty) {
|
|
30092
|
+
to.attributes = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_0__["default"])(to.attributes, from.attributes);
|
|
30093
|
+
} else if (!from.isAttributesEmpty) {
|
|
30094
|
+
to.attributes = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(from.attributes);
|
|
29943
30095
|
}
|
|
29944
30096
|
_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"].transfer(from, to);
|
|
29945
30097
|
_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__["default"].transfer(from, to);
|
|
@@ -30049,12 +30201,13 @@ class FixedFieldsVisitor extends _SpecificationVisitor_mjs__WEBPACK_IMPORTED_MOD
|
|
|
30049
30201
|
const keyValue = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(key);
|
|
30050
30202
|
if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isStringElement)(key) && fields.includes(keyValue) && !this.ignoredFields.includes(keyValue)) {
|
|
30051
30203
|
const fixedFieldElement = this.toRefractedElement([...specPath, 'fixedFields', keyValue], value);
|
|
30052
|
-
const newMemberElement = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(key), fixedFieldElement);
|
|
30204
|
+
const newMemberElement = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](this.consume ? key : (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(key), fixedFieldElement);
|
|
30053
30205
|
this.copyMetaAndAttributes(memberElement, newMemberElement);
|
|
30054
|
-
newMemberElement.classes.push('fixed-field');
|
|
30055
30206
|
this.element.content.push(newMemberElement);
|
|
30207
|
+
// consume: release processed generic subtree
|
|
30208
|
+
if (this.consume && this.consumeSafe && !memberElement.isFrozen) memberElement.value = undefined;
|
|
30056
30209
|
} else if (!this.ignoredFields.includes(keyValue)) {
|
|
30057
|
-
this.element.content.push((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(memberElement));
|
|
30210
|
+
this.element.content.push(this.consume ? memberElement : (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(memberElement));
|
|
30058
30211
|
}
|
|
30059
30212
|
});
|
|
30060
30213
|
this.copyMetaAndAttributes(objectElement, this.element);
|
|
@@ -30143,12 +30296,14 @@ class PatternedFieldsVisitor extends _SpecificationVisitor_mjs__WEBPACK_IMPORTED
|
|
|
30143
30296
|
if (!this.ignoredFields.includes(keyValue) && this.fieldPatternPredicate(keyValue)) {
|
|
30144
30297
|
const specPath = this.specPath(value);
|
|
30145
30298
|
const patternedFieldElement = this.toRefractedElement(specPath, value);
|
|
30146
|
-
const newMemberElement = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(key), patternedFieldElement);
|
|
30299
|
+
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);
|
|
30147
30300
|
this.copyMetaAndAttributes(memberElement, newMemberElement);
|
|
30148
30301
|
newMemberElement.classes.push('patterned-field');
|
|
30149
30302
|
this.element.content.push(newMemberElement);
|
|
30303
|
+
// consume: release processed generic subtree
|
|
30304
|
+
if (this.consume && this.consumeSafe && !memberElement.isFrozen) memberElement.value = undefined;
|
|
30150
30305
|
} else if (!this.ignoredFields.includes(keyValue)) {
|
|
30151
|
-
this.element.content.push((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(memberElement));
|
|
30306
|
+
this.element.content.push(this.consume ? memberElement : (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(memberElement));
|
|
30152
30307
|
}
|
|
30153
30308
|
});
|
|
30154
30309
|
this.copyMetaAndAttributes(objectElement, this.element);
|
|
@@ -30706,13 +30861,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
30706
30861
|
/* harmony import */ var ramda_adjunct__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3031);
|
|
30707
30862
|
/* harmony import */ var ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6513);
|
|
30708
30863
|
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5162);
|
|
30709
|
-
/* harmony import */ var
|
|
30710
|
-
/* harmony import */ var
|
|
30711
|
-
/* harmony import */ var
|
|
30712
|
-
/* harmony import */ var
|
|
30713
|
-
/* harmony import */ var
|
|
30714
|
-
/* harmony import */ var _elements_JSONSchema_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(4686);
|
|
30715
|
-
/* harmony import */ var _predicates_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(6059);
|
|
30864
|
+
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(4673);
|
|
30865
|
+
/* harmony import */ var _generics_FixedFieldsVisitor_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(5320);
|
|
30866
|
+
/* harmony import */ var _bases_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(9033);
|
|
30867
|
+
/* harmony import */ var _elements_JSONSchema_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(4686);
|
|
30868
|
+
/* harmony import */ var _predicates_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(6059);
|
|
30716
30869
|
|
|
30717
30870
|
|
|
30718
30871
|
|
|
@@ -30727,10 +30880,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
30727
30880
|
/**
|
|
30728
30881
|
* @public
|
|
30729
30882
|
*/
|
|
30730
|
-
class JSONSchemaVisitor extends
|
|
30883
|
+
class JSONSchemaVisitor extends _bases_mjs__WEBPACK_IMPORTED_MODULE_7__.JSONSchemaVisitorBase {
|
|
30731
30884
|
constructor(options) {
|
|
30732
30885
|
super(options);
|
|
30733
|
-
this.element = new
|
|
30886
|
+
this.element = new _elements_JSONSchema_mjs__WEBPACK_IMPORTED_MODULE_8__["default"]();
|
|
30887
|
+
this.consumeSafe = true;
|
|
30734
30888
|
this.specPath = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(['document', 'objects', 'JSONSchema']);
|
|
30735
30889
|
}
|
|
30736
30890
|
get defaultDialectIdentifier() {
|
|
@@ -30743,27 +30897,27 @@ class JSONSchemaVisitor extends _bases_mjs__WEBPACK_IMPORTED_MODULE_9__.JSONSche
|
|
|
30743
30897
|
|
|
30744
30898
|
// for further processing consider this JSONSchema Element as parent for all sub-schemas
|
|
30745
30899
|
this.parent = this.element;
|
|
30746
|
-
return
|
|
30900
|
+
return _generics_FixedFieldsVisitor_mjs__WEBPACK_IMPORTED_MODULE_6__["default"].prototype.ObjectElement.call(this, path);
|
|
30747
30901
|
}
|
|
30748
30902
|
handleDialectIdentifier(objectElement) {
|
|
30749
30903
|
// handle $schema keyword in embedded resources
|
|
30750
30904
|
if ((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_2__["default"])(this.parent) && !(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__.isStringElement)(objectElement.get('$schema'))) {
|
|
30751
30905
|
// no parent available and no $schema is defined, set default $schema
|
|
30752
30906
|
this.element.meta.set('inheritedDialectIdentifier', this.defaultDialectIdentifier);
|
|
30753
|
-
} else if ((0,
|
|
30907
|
+
} else if ((0,_predicates_mjs__WEBPACK_IMPORTED_MODULE_9__.isJSONSchemaElement)(this.parent) && !(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__.isStringElement)(objectElement.get('$schema'))) {
|
|
30754
30908
|
// parent is available and no $schema is defined, set parent $schema
|
|
30755
|
-
const inheritedDialectIdentifier = (0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(
|
|
30909
|
+
const inheritedDialectIdentifier = (0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(this.parent.meta.get('inheritedDialectIdentifier'), (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(this.parent.$schema));
|
|
30756
30910
|
this.element.meta.set('inheritedDialectIdentifier', inheritedDialectIdentifier);
|
|
30757
30911
|
}
|
|
30758
30912
|
}
|
|
30759
30913
|
handleSchemaIdentifier(objectElement, identifierKeyword = 'id') {
|
|
30760
30914
|
// handle schema identifier in embedded resources
|
|
30761
|
-
// fetch parent's ancestorsSchemaIdentifiers
|
|
30762
|
-
const ancestorsSchemaIdentifiers = this.parent !== undefined ? (
|
|
30915
|
+
// fetch parent's ancestorsSchemaIdentifiers (stored as plain string[])
|
|
30916
|
+
const ancestorsSchemaIdentifiers = this.parent !== undefined ? [...(this.parent.meta.get('ancestorsSchemaIdentifiers') ?? [])] : [];
|
|
30763
30917
|
// get current schema identifier
|
|
30764
|
-
const schemaIdentifier = (0,
|
|
30918
|
+
const schemaIdentifier = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(objectElement.get(identifierKeyword));
|
|
30765
30919
|
|
|
30766
|
-
// remember schema identifier if it's a non-empty
|
|
30920
|
+
// remember schema identifier if it's a non-empty string
|
|
30767
30921
|
if ((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(schemaIdentifier)) {
|
|
30768
30922
|
ancestorsSchemaIdentifiers.push(schemaIdentifier);
|
|
30769
30923
|
}
|
|
@@ -31925,8 +32079,9 @@ const parse = async source => {
|
|
|
31925
32079
|
if (source.trim().length === 0) {
|
|
31926
32080
|
return parseResult;
|
|
31927
32081
|
}
|
|
31928
|
-
|
|
32082
|
+
let pojo = JSON.parse(source);
|
|
31929
32083
|
const element = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.refract)(pojo);
|
|
32084
|
+
pojo = null; // allow GC to reclaim POJO
|
|
31930
32085
|
element.classes.push('result');
|
|
31931
32086
|
parseResult.push(element);
|
|
31932
32087
|
return parseResult;
|
|
@@ -33900,7 +34055,10 @@ const parse = async (source, options = {}) => {
|
|
|
33900
34055
|
result
|
|
33901
34056
|
} = parseResultElement;
|
|
33902
34057
|
if ((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_2__["default"])(result)) {
|
|
33903
|
-
const arazzoSpecificationElement = (0,_speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_6__.refractArazzoSpecification1)(result,
|
|
34058
|
+
const arazzoSpecificationElement = (0,_speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_6__.refractArazzoSpecification1)(result, {
|
|
34059
|
+
consume: true,
|
|
34060
|
+
...refractorOpts
|
|
34061
|
+
});
|
|
33904
34062
|
arazzoSpecificationElement.classes.push('result');
|
|
33905
34063
|
parseResultElement.replaceResult(arazzoSpecificationElement);
|
|
33906
34064
|
}
|