@speclynx/apidom-ns-openapi-3-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.
- package/CHANGELOG.md +15 -0
- package/dist/apidom-ns-openapi-3-1.browser.js +322 -154
- package/dist/apidom-ns-openapi-3-1.browser.min.js +1 -1
- package/package.json +8 -8
- package/src/refractor/index.cjs +4 -2
- package/src/refractor/index.mjs +4 -2
- package/src/refractor/plugins/normalize-operation-ids.cjs +3 -3
- package/src/refractor/plugins/normalize-operation-ids.mjs +3 -3
- package/src/refractor/plugins/replace-empty-element.cjs +3 -2
- package/src/refractor/plugins/replace-empty-element.mjs +3 -2
- package/src/refractor/visitors/open-api-3-1/index.cjs +9 -0
- package/src/refractor/visitors/open-api-3-1/index.mjs +9 -0
- package/src/refractor/visitors/open-api-3-1/schema/index.cjs +2 -2
- package/src/refractor/visitors/open-api-3-1/schema/index.mjs +2 -2
- package/types/apidom-ns-openapi-3-1.d.ts +2 -1
|
@@ -1353,7 +1353,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1353
1353
|
const refract = (value, {
|
|
1354
1354
|
element = 'openApi3_1',
|
|
1355
1355
|
plugins = [],
|
|
1356
|
-
specificationObj = _specification_ts__WEBPACK_IMPORTED_MODULE_5__["default"]
|
|
1356
|
+
specificationObj = _specification_ts__WEBPACK_IMPORTED_MODULE_5__["default"],
|
|
1357
|
+
consume = false
|
|
1357
1358
|
} = {}) => {
|
|
1358
1359
|
const genericElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.refract)(value);
|
|
1359
1360
|
const resolvedSpec = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_1__.resolveSpecification)(specificationObj);
|
|
@@ -1370,7 +1371,8 @@ const refract = (value, {
|
|
|
1370
1371
|
*/
|
|
1371
1372
|
const RootVisitorClass = (0,ramda__WEBPACK_IMPORTED_MODULE_4__["default"])(specPath, resolvedSpec);
|
|
1372
1373
|
const rootVisitor = new RootVisitorClass({
|
|
1373
|
-
specObj: resolvedSpec
|
|
1374
|
+
specObj: resolvedSpec,
|
|
1375
|
+
consume
|
|
1374
1376
|
});
|
|
1375
1377
|
(0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_3__.traverse)(genericElement, rootVisitor, {
|
|
1376
1378
|
nodeTypeGetter: _speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_3__.getNodePrimitiveType
|
|
@@ -1929,7 +1931,7 @@ const plugin = ({
|
|
|
1929
1931
|
if (typeof linkElement.operationId === 'undefined') return;
|
|
1930
1932
|
const linkOperationId = String((0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(linkElement.operationId));
|
|
1931
1933
|
const operationElement = normalizedOperations.find(normalizedOperationElement => {
|
|
1932
|
-
const originalOperationId =
|
|
1934
|
+
const originalOperationId = normalizedOperationElement.meta.get('originalOperationId');
|
|
1933
1935
|
return originalOperationId === linkOperationId;
|
|
1934
1936
|
});
|
|
1935
1937
|
|
|
@@ -1950,7 +1952,7 @@ const plugin = ({
|
|
|
1950
1952
|
enter(path) {
|
|
1951
1953
|
const pathItemElement = path.node;
|
|
1952
1954
|
// `path` meta may not be always available, e.g. in Callback Object or Components Object
|
|
1953
|
-
const pathTemplate = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])('path',
|
|
1955
|
+
const pathTemplate = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])('path', pathItemElement.meta.get('path'));
|
|
1954
1956
|
pathTemplates.push(pathTemplate);
|
|
1955
1957
|
},
|
|
1956
1958
|
leave() {
|
|
@@ -1976,7 +1978,7 @@ const plugin = ({
|
|
|
1976
1978
|
// perform operationId normalization
|
|
1977
1979
|
const pathTemplate = (0,ramda__WEBPACK_IMPORTED_MODULE_2__["default"])(pathTemplates);
|
|
1978
1980
|
// `http-method` meta may not be always available, e.g. in Callback Object or Components Object
|
|
1979
|
-
const method = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])('method',
|
|
1981
|
+
const method = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])('method', operationElement.meta.get('http-method'));
|
|
1980
1982
|
const normalizedOperationId = operationIdNormalizer(originalOperationId, pathTemplate, method);
|
|
1981
1983
|
|
|
1982
1984
|
// normalization is not necessary
|
|
@@ -2471,8 +2473,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
2471
2473
|
/* harmony export */ });
|
|
2472
2474
|
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25162);
|
|
2473
2475
|
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12111);
|
|
2474
|
-
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
|
|
2475
|
-
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
|
|
2476
|
+
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(97601);
|
|
2477
|
+
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(18252);
|
|
2476
2478
|
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(97071);
|
|
2477
2479
|
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(25810);
|
|
2478
2480
|
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(49686);
|
|
@@ -2658,7 +2660,7 @@ const schema = {
|
|
|
2658
2660
|
},
|
|
2659
2661
|
ServerVariableElement: {
|
|
2660
2662
|
enum(...args) {
|
|
2661
|
-
return new
|
|
2663
|
+
return new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](...args);
|
|
2662
2664
|
}
|
|
2663
2665
|
},
|
|
2664
2666
|
PathsElement: {
|
|
@@ -2827,7 +2829,7 @@ const schema = {
|
|
|
2827
2829
|
},
|
|
2828
2830
|
SecurityRequirementElement: {
|
|
2829
2831
|
'[key: *]': function key(...args) {
|
|
2830
|
-
return new
|
|
2832
|
+
return new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](...args);
|
|
2831
2833
|
}
|
|
2832
2834
|
},
|
|
2833
2835
|
TagElement: {
|
|
@@ -2847,17 +2849,17 @@ const schema = {
|
|
|
2847
2849
|
return element;
|
|
2848
2850
|
},
|
|
2849
2851
|
allOf(...args) {
|
|
2850
|
-
const element = new
|
|
2852
|
+
const element = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](...args);
|
|
2851
2853
|
element.classes.push('json-schema-allOf');
|
|
2852
2854
|
return element;
|
|
2853
2855
|
},
|
|
2854
2856
|
anyOf(...args) {
|
|
2855
|
-
const element = new
|
|
2857
|
+
const element = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](...args);
|
|
2856
2858
|
element.classes.push('json-schema-anyOf');
|
|
2857
2859
|
return element;
|
|
2858
2860
|
},
|
|
2859
2861
|
oneOf(...args) {
|
|
2860
|
-
const element = new
|
|
2862
|
+
const element = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](...args);
|
|
2861
2863
|
element.classes.push('json-schema-oneOf');
|
|
2862
2864
|
return element;
|
|
2863
2865
|
},
|
|
@@ -2879,7 +2881,7 @@ const schema = {
|
|
|
2879
2881
|
return element;
|
|
2880
2882
|
},
|
|
2881
2883
|
prefixItems(...args) {
|
|
2882
|
-
const element = new
|
|
2884
|
+
const element = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](...args);
|
|
2883
2885
|
element.classes.push('json-schema-prefixItems');
|
|
2884
2886
|
return element;
|
|
2885
2887
|
},
|
|
@@ -2912,17 +2914,17 @@ const schema = {
|
|
|
2912
2914
|
return new _elements_Schema_ts__WEBPACK_IMPORTED_MODULE_50__["default"](...args);
|
|
2913
2915
|
},
|
|
2914
2916
|
type(...args) {
|
|
2915
|
-
const element = new
|
|
2917
|
+
const element = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](...args);
|
|
2916
2918
|
element.classes.push('json-schema-type');
|
|
2917
2919
|
return element;
|
|
2918
2920
|
},
|
|
2919
2921
|
enum(...args) {
|
|
2920
|
-
const element = new
|
|
2922
|
+
const element = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](...args);
|
|
2921
2923
|
element.classes.push('json-schema-enum');
|
|
2922
2924
|
return element;
|
|
2923
2925
|
},
|
|
2924
2926
|
required(...args) {
|
|
2925
|
-
const element = new
|
|
2927
|
+
const element = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](...args);
|
|
2926
2928
|
element.classes.push('json-schema-required');
|
|
2927
2929
|
return element;
|
|
2928
2930
|
},
|
|
@@ -2932,7 +2934,7 @@ const schema = {
|
|
|
2932
2934
|
return element;
|
|
2933
2935
|
},
|
|
2934
2936
|
examples(...args) {
|
|
2935
|
-
const element = new
|
|
2937
|
+
const element = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](...args);
|
|
2936
2938
|
element.classes.push('json-schema-examples');
|
|
2937
2939
|
return element;
|
|
2938
2940
|
},
|
|
@@ -3165,7 +3167,8 @@ const schema = {
|
|
|
3165
3167
|
};
|
|
3166
3168
|
const findElementFactory = (ancestor, keyName) => {
|
|
3167
3169
|
const elementType = (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_8__.getNodeType)(ancestor);
|
|
3168
|
-
const
|
|
3170
|
+
const classType = ancestor.isMetaEmpty ? undefined : ancestor.classes.at(0);
|
|
3171
|
+
const keyMapping = schema[elementType] || schema[classType];
|
|
3169
3172
|
return typeof keyMapping === 'undefined' ? undefined : Object.hasOwn(keyMapping, '[key: *]') ? keyMapping['[key: *]'] : keyMapping[keyName];
|
|
3170
3173
|
};
|
|
3171
3174
|
|
|
@@ -3173,7 +3176,7 @@ const findElementFactory = (ancestor, keyName) => {
|
|
|
3173
3176
|
* @public
|
|
3174
3177
|
*/
|
|
3175
3178
|
const plugin = () => () => {
|
|
3176
|
-
const isEmptyElement = element => (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isStringElement)(element) && (0,
|
|
3179
|
+
const isEmptyElement = element => (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isStringElement)(element) && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__.includesClasses)(element, ['yaml-e-node', 'yaml-e-scalar']);
|
|
3177
3180
|
return {
|
|
3178
3181
|
visitor: {
|
|
3179
3182
|
StringElement(path) {
|
|
@@ -3195,7 +3198,7 @@ const plugin = () => () => {
|
|
|
3195
3198
|
if (typeof elementFactory !== 'function') return;
|
|
3196
3199
|
const newElement = elementFactory.call({
|
|
3197
3200
|
context
|
|
3198
|
-
}, undefined,
|
|
3201
|
+
}, undefined, element.isMetaEmpty ? undefined : element.meta.cloneDeep(), element.isAttributesEmpty ? undefined : (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(element.attributes));
|
|
3199
3202
|
_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_5__["default"].transfer(element, newElement);
|
|
3200
3203
|
_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_6__["default"].transfer(element, newElement);
|
|
3201
3204
|
path.replaceWith(newElement);
|
|
@@ -4435,9 +4438,13 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
4435
4438
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
4436
4439
|
/* harmony export */ });
|
|
4437
4440
|
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(29498);
|
|
4438
|
-
/* harmony import */ var
|
|
4439
|
-
/* harmony import */ var
|
|
4440
|
-
/* harmony import */ var
|
|
4441
|
+
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25162);
|
|
4442
|
+
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(44673);
|
|
4443
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(58368);
|
|
4444
|
+
/* harmony import */ var _elements_OpenApi3_1_ts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75474);
|
|
4445
|
+
/* harmony import */ var _bases_ts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(55996);
|
|
4446
|
+
|
|
4447
|
+
|
|
4441
4448
|
|
|
4442
4449
|
|
|
4443
4450
|
|
|
@@ -4451,18 +4458,25 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
4451
4458
|
* @public
|
|
4452
4459
|
*/
|
|
4453
4460
|
|
|
4454
|
-
class OpenApi3_1Visitor extends
|
|
4461
|
+
class OpenApi3_1Visitor extends _bases_ts__WEBPACK_IMPORTED_MODULE_5__.BaseFixedFieldsVisitor {
|
|
4455
4462
|
constructor(options) {
|
|
4456
4463
|
super(options);
|
|
4457
|
-
this.element = new
|
|
4464
|
+
this.element = new _elements_OpenApi3_1_ts__WEBPACK_IMPORTED_MODULE_4__["default"]();
|
|
4458
4465
|
this.specPath = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(['document', 'objects', 'OpenApi']);
|
|
4459
4466
|
this.canSupportSpecificationExtensions = true;
|
|
4467
|
+
this.consumeSafe = true;
|
|
4460
4468
|
this.openApiSemanticElement = this.element;
|
|
4461
4469
|
}
|
|
4462
4470
|
ObjectElement(path) {
|
|
4463
4471
|
const objectElement = path.node;
|
|
4464
4472
|
this.openApiGenericElement = objectElement;
|
|
4465
|
-
|
|
4473
|
+
// precompute values from generic root before consume may release fields
|
|
4474
|
+
if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(objectElement.get('jsonSchemaDialect'))) {
|
|
4475
|
+
this.sourceContext = {
|
|
4476
|
+
jsonSchemaDialect: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_2__["default"])(objectElement.get('jsonSchemaDialect'))
|
|
4477
|
+
};
|
|
4478
|
+
}
|
|
4479
|
+
_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_3__["default"].prototype.ObjectElement.call(this, path);
|
|
4466
4480
|
}
|
|
4467
4481
|
}
|
|
4468
4482
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OpenApi3_1Visitor);
|
|
@@ -5143,8 +5157,8 @@ class SchemaVisitor extends _bases_ts__WEBPACK_IMPORTED_MODULE_8__.BaseSchemaVis
|
|
|
5143
5157
|
(0,_predicates_ts__WEBPACK_IMPORTED_MODULE_5__.isJsonSchemaDialectElement)(this.openApiSemanticElement.jsonSchemaDialect)) {
|
|
5144
5158
|
// @ts-ignore
|
|
5145
5159
|
jsonSchemaDialect = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_2__["default"])(this.openApiSemanticElement.jsonSchemaDialect);
|
|
5146
|
-
} else if (this.
|
|
5147
|
-
jsonSchemaDialect =
|
|
5160
|
+
} else if (this.sourceContext?.jsonSchemaDialect !== undefined) {
|
|
5161
|
+
jsonSchemaDialect = this.sourceContext.jsonSchemaDialect;
|
|
5148
5162
|
} else {
|
|
5149
5163
|
jsonSchemaDialect = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_2__["default"])(this.jsonSchemaDefaultDialect);
|
|
5150
5164
|
}
|
|
@@ -21622,7 +21636,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
21622
21636
|
* @public
|
|
21623
21637
|
*/
|
|
21624
21638
|
const emptyElement = element => {
|
|
21625
|
-
const meta = !element.isMetaEmpty ?
|
|
21639
|
+
const meta = !element.isMetaEmpty ? element.meta.cloneDeep() : undefined;
|
|
21626
21640
|
const attributes = !element.isAttributesEmpty ? (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(element.attributes) : undefined;
|
|
21627
21641
|
|
|
21628
21642
|
// @ts-ignore
|
|
@@ -21638,7 +21652,7 @@ const getMergeFunction = (keyElement, options) => {
|
|
|
21638
21652
|
};
|
|
21639
21653
|
const getMetaMergeFunction = options => {
|
|
21640
21654
|
if (typeof options.customMetaMerge !== 'function') {
|
|
21641
|
-
return targetMeta =>
|
|
21655
|
+
return targetMeta => targetMeta.cloneDeep();
|
|
21642
21656
|
}
|
|
21643
21657
|
return options.customMetaMerge;
|
|
21644
21658
|
};
|
|
@@ -21710,8 +21724,20 @@ const deepmerge = (targetElement, sourceElement, options) => {
|
|
|
21710
21724
|
const mergedElement = sourceIsArrayElement && typeof mergedOptions.arrayElementMerge === 'function' ? mergedOptions.arrayElementMerge(targetElement, sourceElement, mergedOptions) : mergedOptions.objectElementMerge(targetElement, sourceElement, mergedOptions);
|
|
21711
21725
|
|
|
21712
21726
|
// merging meta & attributes
|
|
21713
|
-
|
|
21714
|
-
|
|
21727
|
+
if (!targetElement.isMetaEmpty && !sourceElement.isMetaEmpty) {
|
|
21728
|
+
mergedElement.meta = getMetaMergeFunction(mergedOptions)(targetElement.meta, sourceElement.meta);
|
|
21729
|
+
} else if (!targetElement.isMetaEmpty) {
|
|
21730
|
+
mergedElement.meta = targetElement.meta.cloneDeep();
|
|
21731
|
+
} else if (!sourceElement.isMetaEmpty) {
|
|
21732
|
+
mergedElement.meta = sourceElement.meta.cloneDeep();
|
|
21733
|
+
}
|
|
21734
|
+
if (!targetElement.isAttributesEmpty && !sourceElement.isAttributesEmpty) {
|
|
21735
|
+
mergedElement.attributes = getAttributesMergeFunction(mergedOptions)(targetElement.attributes, sourceElement.attributes);
|
|
21736
|
+
} else if (!targetElement.isAttributesEmpty) {
|
|
21737
|
+
mergedElement.attributes = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(targetElement.attributes);
|
|
21738
|
+
} else if (!sourceElement.isAttributesEmpty) {
|
|
21739
|
+
mergedElement.attributes = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(sourceElement.attributes);
|
|
21740
|
+
}
|
|
21715
21741
|
return mergedElement;
|
|
21716
21742
|
};
|
|
21717
21743
|
deepmerge.all = (list, options) => {
|
|
@@ -22044,6 +22070,104 @@ class KeyValuePair {
|
|
|
22044
22070
|
|
|
22045
22071
|
/***/ },
|
|
22046
22072
|
|
|
22073
|
+
/***/ 51844
|
|
22074
|
+
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
22075
|
+
|
|
22076
|
+
__webpack_require__.r(__webpack_exports__);
|
|
22077
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
22078
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
22079
|
+
/* harmony export */ });
|
|
22080
|
+
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8138);
|
|
22081
|
+
|
|
22082
|
+
/**
|
|
22083
|
+
* Lightweight meta container for Element metadata.
|
|
22084
|
+
*
|
|
22085
|
+
* Data is stored as own properties on the instance; methods live on the prototype.
|
|
22086
|
+
* `Object.keys()`, `Object.entries()`, etc. only see data properties.
|
|
22087
|
+
*
|
|
22088
|
+
* @public
|
|
22089
|
+
*/
|
|
22090
|
+
class Metadata {
|
|
22091
|
+
// Set via prototype assignment in registration.ts to avoid circular dependency
|
|
22092
|
+
|
|
22093
|
+
get(name) {
|
|
22094
|
+
return this[name];
|
|
22095
|
+
}
|
|
22096
|
+
set(name, value) {
|
|
22097
|
+
this[name] = value;
|
|
22098
|
+
}
|
|
22099
|
+
hasKey(name) {
|
|
22100
|
+
return Object.hasOwn(this, name);
|
|
22101
|
+
}
|
|
22102
|
+
keys() {
|
|
22103
|
+
return Object.keys(this);
|
|
22104
|
+
}
|
|
22105
|
+
remove(name) {
|
|
22106
|
+
delete this[name];
|
|
22107
|
+
}
|
|
22108
|
+
get isEmpty() {
|
|
22109
|
+
return Object.keys(this).length === 0;
|
|
22110
|
+
}
|
|
22111
|
+
get isFrozen() {
|
|
22112
|
+
return Object.isFrozen(this);
|
|
22113
|
+
}
|
|
22114
|
+
freeze() {
|
|
22115
|
+
for (const value of Object.values(this)) {
|
|
22116
|
+
if (value instanceof this.Element) {
|
|
22117
|
+
value.freeze();
|
|
22118
|
+
} else if (Array.isArray(value) || value !== null && typeof value === 'object') {
|
|
22119
|
+
Object.freeze(value);
|
|
22120
|
+
}
|
|
22121
|
+
}
|
|
22122
|
+
Object.freeze(this);
|
|
22123
|
+
}
|
|
22124
|
+
|
|
22125
|
+
/**
|
|
22126
|
+
* Creates a shallow clone. Same references, new container.
|
|
22127
|
+
*/
|
|
22128
|
+
cloneShallow() {
|
|
22129
|
+
const clone = new Metadata();
|
|
22130
|
+
Object.assign(clone, this);
|
|
22131
|
+
return clone;
|
|
22132
|
+
}
|
|
22133
|
+
|
|
22134
|
+
/**
|
|
22135
|
+
* Merges another Metadata into a new instance.
|
|
22136
|
+
* Arrays are concatenated, all other values are overwritten by source.
|
|
22137
|
+
*/
|
|
22138
|
+
merge(source) {
|
|
22139
|
+
const result = this.cloneShallow();
|
|
22140
|
+
for (const [key, value] of Object.entries(source)) {
|
|
22141
|
+
const existing = result.get(key);
|
|
22142
|
+
if (Array.isArray(existing) && Array.isArray(value)) {
|
|
22143
|
+
result.set(key, [...existing, ...value]);
|
|
22144
|
+
} else {
|
|
22145
|
+
result.set(key, value);
|
|
22146
|
+
}
|
|
22147
|
+
}
|
|
22148
|
+
return result;
|
|
22149
|
+
}
|
|
22150
|
+
|
|
22151
|
+
/**
|
|
22152
|
+
* Creates a deep clone. Elements are deep cloned,
|
|
22153
|
+
* all other values are deep cloned via ramda clone.
|
|
22154
|
+
*/
|
|
22155
|
+
cloneDeep() {
|
|
22156
|
+
const copy = new Metadata();
|
|
22157
|
+
for (const [key, value] of Object.entries(this)) {
|
|
22158
|
+
if (value instanceof this.Element) {
|
|
22159
|
+
copy.set(key, this.cloneDeepElement(value));
|
|
22160
|
+
} else {
|
|
22161
|
+
copy.set(key, (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(value));
|
|
22162
|
+
}
|
|
22163
|
+
}
|
|
22164
|
+
return copy;
|
|
22165
|
+
}
|
|
22166
|
+
}
|
|
22167
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Metadata);
|
|
22168
|
+
|
|
22169
|
+
/***/ },
|
|
22170
|
+
|
|
22047
22171
|
/***/ 55156
|
|
22048
22172
|
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
22049
22173
|
|
|
@@ -22684,7 +22808,7 @@ const cloneShallowElement = element => {
|
|
|
22684
22808
|
const copy = new Ctor();
|
|
22685
22809
|
copy.element = element.element;
|
|
22686
22810
|
if (!element.isMetaEmpty) {
|
|
22687
|
-
copy.meta =
|
|
22811
|
+
copy.meta = element.meta.cloneDeep();
|
|
22688
22812
|
}
|
|
22689
22813
|
if (!element.isAttributesEmpty) {
|
|
22690
22814
|
copy.attributes = cloneDeep(element.attributes);
|
|
@@ -22712,8 +22836,8 @@ const cloneShallowElement = element => {
|
|
|
22712
22836
|
|
|
22713
22837
|
/**
|
|
22714
22838
|
* Creates a shallow clone of an ApiDOM Element, KeyValuePair, or ObjectSlice.
|
|
22715
|
-
* The element itself is cloned, but content references are shared
|
|
22716
|
-
*
|
|
22839
|
+
* The element itself is cloned, but content references are shared.
|
|
22840
|
+
* Meta and attributes are deep cloned to preserve semantic information.
|
|
22717
22841
|
* @public
|
|
22718
22842
|
*/
|
|
22719
22843
|
const cloneShallow = value => {
|
|
@@ -23775,7 +23899,7 @@ class CollectionElement extends _Element_mjs__WEBPACK_IMPORTED_MODULE_0__["defau
|
|
|
23775
23899
|
* Search the tree recursively and find the element with the matching ID.
|
|
23776
23900
|
*/
|
|
23777
23901
|
getById(id) {
|
|
23778
|
-
return this.find(item => item.id
|
|
23902
|
+
return this.find(item => item.id === id).first;
|
|
23779
23903
|
}
|
|
23780
23904
|
|
|
23781
23905
|
/**
|
|
@@ -23804,18 +23928,24 @@ class CollectionElement extends _Element_mjs__WEBPACK_IMPORTED_MODULE_0__["defau
|
|
|
23804
23928
|
|
|
23805
23929
|
__webpack_require__.r(__webpack_exports__);
|
|
23806
23930
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
23931
|
+
/* harmony export */ Metadata: () => (/* reexport safe */ _Metadata_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]),
|
|
23807
23932
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
23808
23933
|
/* harmony export */ });
|
|
23809
23934
|
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(53654);
|
|
23810
|
-
/* harmony import */ var
|
|
23811
|
-
/* harmony import */ var
|
|
23935
|
+
/* harmony import */ var _Metadata_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51844);
|
|
23936
|
+
/* harmony import */ var _KeyValuePair_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(36663);
|
|
23937
|
+
/* harmony import */ var _ObjectSlice_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(38504);
|
|
23938
|
+
|
|
23812
23939
|
|
|
23813
23940
|
|
|
23941
|
+
// shared singleton for frozen elements with no meta — avoids allocation on every access
|
|
23942
|
+
const FROZEN_EMPTY_METADATA = Object.freeze(new _Metadata_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]());
|
|
23814
23943
|
|
|
23815
23944
|
/**
|
|
23816
23945
|
* Valid content types for an Element.
|
|
23817
23946
|
* @public
|
|
23818
23947
|
*/
|
|
23948
|
+
|
|
23819
23949
|
/**
|
|
23820
23950
|
* Base Element class that all ApiDOM elements extend.
|
|
23821
23951
|
*
|
|
@@ -23913,7 +24043,7 @@ class Element {
|
|
|
23913
24043
|
_attributes;
|
|
23914
24044
|
|
|
23915
24045
|
// ============================================================
|
|
23916
|
-
// Prototype-assigned properties (set in
|
|
24046
|
+
// Prototype-assigned properties (set in registration.ts)
|
|
23917
24047
|
// Using 'declare' allows TypeScript to know about these
|
|
23918
24048
|
// without generating runtime code.
|
|
23919
24049
|
// ============================================================
|
|
@@ -23974,13 +24104,13 @@ class Element {
|
|
|
23974
24104
|
}
|
|
23975
24105
|
|
|
23976
24106
|
// KeyValuePair
|
|
23977
|
-
if (value instanceof
|
|
24107
|
+
if (value instanceof _KeyValuePair_mjs__WEBPACK_IMPORTED_MODULE_2__["default"]) {
|
|
23978
24108
|
this._content = value;
|
|
23979
24109
|
return;
|
|
23980
24110
|
}
|
|
23981
24111
|
|
|
23982
24112
|
// ObjectSlice - extract elements array
|
|
23983
|
-
if (value instanceof
|
|
24113
|
+
if (value instanceof _ObjectSlice_mjs__WEBPACK_IMPORTED_MODULE_3__["default"]) {
|
|
23984
24114
|
this._content = value.elements;
|
|
23985
24115
|
return;
|
|
23986
24116
|
}
|
|
@@ -24001,24 +24131,22 @@ class Element {
|
|
|
24001
24131
|
|
|
24002
24132
|
/**
|
|
24003
24133
|
* Metadata about this element (id, classes, title, description, links).
|
|
24004
|
-
* Lazily creates
|
|
24134
|
+
* Lazily creates a Metadata instance if not set.
|
|
24005
24135
|
*/
|
|
24006
24136
|
get meta() {
|
|
24007
24137
|
if (!this._meta) {
|
|
24008
|
-
if (this.isFrozen)
|
|
24009
|
-
|
|
24010
|
-
meta.freeze();
|
|
24011
|
-
return meta;
|
|
24012
|
-
}
|
|
24013
|
-
this._meta = new this.ObjectElement();
|
|
24138
|
+
if (this.isFrozen) return FROZEN_EMPTY_METADATA;
|
|
24139
|
+
this._meta = new _Metadata_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]();
|
|
24014
24140
|
}
|
|
24015
24141
|
return this._meta;
|
|
24016
24142
|
}
|
|
24017
24143
|
set meta(value) {
|
|
24018
|
-
if (value instanceof
|
|
24144
|
+
if (value instanceof _Metadata_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]) {
|
|
24019
24145
|
this._meta = value;
|
|
24020
|
-
} else {
|
|
24021
|
-
|
|
24146
|
+
} else if (value && typeof value === 'object') {
|
|
24147
|
+
const meta = new _Metadata_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]();
|
|
24148
|
+
Object.assign(meta, value);
|
|
24149
|
+
this._meta = meta;
|
|
24022
24150
|
}
|
|
24023
24151
|
}
|
|
24024
24152
|
|
|
@@ -24051,10 +24179,8 @@ class Element {
|
|
|
24051
24179
|
|
|
24052
24180
|
/** Unique identifier for this element. */
|
|
24053
24181
|
get id() {
|
|
24054
|
-
if (this.isFrozen) {
|
|
24055
|
-
return this.getMetaProperty('id', '');
|
|
24056
|
-
}
|
|
24057
24182
|
if (!this.hasMetaProperty('id')) {
|
|
24183
|
+
if (this.isFrozen) return '';
|
|
24058
24184
|
this.setMetaProperty('id', '');
|
|
24059
24185
|
}
|
|
24060
24186
|
return this.meta.get('id');
|
|
@@ -24065,10 +24191,8 @@ class Element {
|
|
|
24065
24191
|
|
|
24066
24192
|
/** CSS-like class names. */
|
|
24067
24193
|
get classes() {
|
|
24068
|
-
if (this.isFrozen) {
|
|
24069
|
-
return this.getMetaProperty('classes', []);
|
|
24070
|
-
}
|
|
24071
24194
|
if (!this.hasMetaProperty('classes')) {
|
|
24195
|
+
if (this.isFrozen) return [];
|
|
24072
24196
|
this.setMetaProperty('classes', []);
|
|
24073
24197
|
}
|
|
24074
24198
|
return this.meta.get('classes');
|
|
@@ -24079,11 +24203,13 @@ class Element {
|
|
|
24079
24203
|
|
|
24080
24204
|
/** Hyperlinks associated with this element. */
|
|
24081
24205
|
get links() {
|
|
24082
|
-
if (this.isFrozen) {
|
|
24083
|
-
return this.getMetaProperty('links', []);
|
|
24084
|
-
}
|
|
24085
24206
|
if (!this.hasMetaProperty('links')) {
|
|
24086
|
-
this.
|
|
24207
|
+
if (this.isFrozen) {
|
|
24208
|
+
const empty = new this.ArrayElement();
|
|
24209
|
+
empty.freeze();
|
|
24210
|
+
return empty;
|
|
24211
|
+
}
|
|
24212
|
+
this.setMetaProperty('links', new this.ArrayElement());
|
|
24087
24213
|
}
|
|
24088
24214
|
return this.meta.get('links');
|
|
24089
24215
|
}
|
|
@@ -24103,7 +24229,7 @@ class Element {
|
|
|
24103
24229
|
if (Array.isArray(content)) {
|
|
24104
24230
|
return content;
|
|
24105
24231
|
}
|
|
24106
|
-
if (content instanceof
|
|
24232
|
+
if (content instanceof _KeyValuePair_mjs__WEBPACK_IMPORTED_MODULE_2__["default"]) {
|
|
24107
24233
|
const children = [];
|
|
24108
24234
|
if (content.key) children.push(content.key);
|
|
24109
24235
|
if (content.value) children.push(content.value);
|
|
@@ -24133,7 +24259,6 @@ class Element {
|
|
|
24133
24259
|
|
|
24134
24260
|
// Freeze meta and attributes
|
|
24135
24261
|
if (this._meta) {
|
|
24136
|
-
this._meta.parent = this;
|
|
24137
24262
|
this._meta.freeze();
|
|
24138
24263
|
}
|
|
24139
24264
|
if (this._attributes) {
|
|
@@ -24168,7 +24293,7 @@ class Element {
|
|
|
24168
24293
|
if (_content instanceof Element) {
|
|
24169
24294
|
return _content.toValue();
|
|
24170
24295
|
}
|
|
24171
|
-
if (_content instanceof
|
|
24296
|
+
if (_content instanceof _KeyValuePair_mjs__WEBPACK_IMPORTED_MODULE_2__["default"]) {
|
|
24172
24297
|
return _content.toValue();
|
|
24173
24298
|
}
|
|
24174
24299
|
if (Array.isArray(_content)) {
|
|
@@ -24224,7 +24349,7 @@ class Element {
|
|
|
24224
24349
|
* @throws Error if this element has no ID
|
|
24225
24350
|
*/
|
|
24226
24351
|
toRef(path) {
|
|
24227
|
-
const idValue = this.id
|
|
24352
|
+
const idValue = this.id;
|
|
24228
24353
|
if (idValue === '') {
|
|
24229
24354
|
throw new Error('Cannot create reference to an element without an ID');
|
|
24230
24355
|
}
|
|
@@ -24236,26 +24361,16 @@ class Element {
|
|
|
24236
24361
|
}
|
|
24237
24362
|
|
|
24238
24363
|
/**
|
|
24239
|
-
* Gets a meta property.
|
|
24364
|
+
* Gets a meta property value.
|
|
24240
24365
|
*
|
|
24241
24366
|
* When the property doesn't exist:
|
|
24242
|
-
* - With defaultValue: returns
|
|
24367
|
+
* - With defaultValue: returns the provided default value
|
|
24243
24368
|
* - Without defaultValue: returns undefined
|
|
24244
|
-
*
|
|
24245
|
-
* Note: Each call with a default creates a new instance. Use setMetaProperty
|
|
24246
|
-
* first if you need reference equality across multiple accesses.
|
|
24247
24369
|
*/
|
|
24248
24370
|
|
|
24249
24371
|
getMetaProperty(name, defaultValue) {
|
|
24250
24372
|
if (!this.hasMetaProperty(name)) {
|
|
24251
|
-
|
|
24252
|
-
return undefined;
|
|
24253
|
-
}
|
|
24254
|
-
const element = this.refract(defaultValue);
|
|
24255
|
-
if (element && this.isFrozen) {
|
|
24256
|
-
element.freeze();
|
|
24257
|
-
}
|
|
24258
|
-
return element;
|
|
24373
|
+
return defaultValue;
|
|
24259
24374
|
}
|
|
24260
24375
|
return this.meta.get(name);
|
|
24261
24376
|
}
|
|
@@ -24268,20 +24383,17 @@ class Element {
|
|
|
24268
24383
|
}
|
|
24269
24384
|
|
|
24270
24385
|
/**
|
|
24271
|
-
*
|
|
24386
|
+
* Checks whether a meta property exists.
|
|
24272
24387
|
*/
|
|
24273
24388
|
hasMetaProperty(name) {
|
|
24274
|
-
|
|
24275
|
-
return this.meta.hasKey(name);
|
|
24276
|
-
}
|
|
24277
|
-
return false;
|
|
24389
|
+
return this._meta !== undefined && this._meta.hasKey(name);
|
|
24278
24390
|
}
|
|
24279
24391
|
|
|
24280
24392
|
/**
|
|
24281
24393
|
* Checks if meta is empty.
|
|
24282
24394
|
*/
|
|
24283
24395
|
get isMetaEmpty() {
|
|
24284
|
-
return this._meta === undefined || this.
|
|
24396
|
+
return this._meta === undefined || this._meta.isEmpty;
|
|
24285
24397
|
}
|
|
24286
24398
|
|
|
24287
24399
|
/**
|
|
@@ -24307,7 +24419,7 @@ class Element {
|
|
|
24307
24419
|
}
|
|
24308
24420
|
|
|
24309
24421
|
/**
|
|
24310
|
-
*
|
|
24422
|
+
* Checks whether an attributes property exists.
|
|
24311
24423
|
*/
|
|
24312
24424
|
hasAttributesProperty(name) {
|
|
24313
24425
|
if (!this.isAttributesEmpty) {
|
|
@@ -24326,6 +24438,7 @@ class Element {
|
|
|
24326
24438
|
|
|
24327
24439
|
// Re-export types for convenience
|
|
24328
24440
|
|
|
24441
|
+
|
|
24329
24442
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Element);
|
|
24330
24443
|
|
|
24331
24444
|
/***/ },
|
|
@@ -24758,6 +24871,10 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
24758
24871
|
/* harmony import */ var _elements_Style_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(49686);
|
|
24759
24872
|
/* harmony import */ var _ObjectSlice_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(38504);
|
|
24760
24873
|
/* harmony import */ var _KeyValuePair_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(36663);
|
|
24874
|
+
/* harmony import */ var _Metadata_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(51844);
|
|
24875
|
+
/* harmony import */ var _clone_index_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(12111);
|
|
24876
|
+
|
|
24877
|
+
|
|
24761
24878
|
|
|
24762
24879
|
|
|
24763
24880
|
|
|
@@ -24817,14 +24934,16 @@ function refract(value) {
|
|
|
24817
24934
|
}
|
|
24818
24935
|
|
|
24819
24936
|
// Set up prototype assignments for circular dependency resolution.
|
|
24820
|
-
// These allow Element instances to
|
|
24821
|
-
//
|
|
24937
|
+
// These allow Element and Metadata instances to reference classes they can't import
|
|
24938
|
+
// directly (which would cause circular imports).
|
|
24822
24939
|
// Using 'declare' in the class definitions enables type-safe access to these properties.
|
|
24823
24940
|
_primitives_Element_mjs__WEBPACK_IMPORTED_MODULE_0__["default"].prototype.ObjectElement = _primitives_ObjectElement_mjs__WEBPACK_IMPORTED_MODULE_8__["default"];
|
|
24824
24941
|
_primitives_Element_mjs__WEBPACK_IMPORTED_MODULE_0__["default"].prototype.ArrayElement = _primitives_ArrayElement_mjs__WEBPACK_IMPORTED_MODULE_6__["default"];
|
|
24825
24942
|
_primitives_Element_mjs__WEBPACK_IMPORTED_MODULE_0__["default"].prototype.RefElement = _elements_RefElement_mjs__WEBPACK_IMPORTED_MODULE_10__["default"];
|
|
24826
24943
|
_primitives_Element_mjs__WEBPACK_IMPORTED_MODULE_0__["default"].prototype.MemberElement = _primitives_MemberElement_mjs__WEBPACK_IMPORTED_MODULE_7__["default"];
|
|
24827
24944
|
_primitives_Element_mjs__WEBPACK_IMPORTED_MODULE_0__["default"].prototype.refract = refract;
|
|
24945
|
+
_Metadata_mjs__WEBPACK_IMPORTED_MODULE_18__["default"].prototype.Element = _primitives_Element_mjs__WEBPACK_IMPORTED_MODULE_0__["default"];
|
|
24946
|
+
_Metadata_mjs__WEBPACK_IMPORTED_MODULE_18__["default"].prototype.cloneDeepElement = element => (0,_clone_index_mjs__WEBPACK_IMPORTED_MODULE_19__.cloneDeep)(element);
|
|
24828
24947
|
|
|
24829
24948
|
/**
|
|
24830
24949
|
* Contains all of the element classes, and related structures and methods
|
|
@@ -24888,7 +25007,13 @@ class JSONSerialiser {
|
|
|
24888
25007
|
element: element.element
|
|
24889
25008
|
};
|
|
24890
25009
|
if (!element.isMetaEmpty) {
|
|
24891
|
-
|
|
25010
|
+
const serialisedMeta = this.serialiseMeta(element);
|
|
25011
|
+
if (serialisedMeta) {
|
|
25012
|
+
payload.meta = serialisedMeta.meta;
|
|
25013
|
+
if (serialisedMeta.rawKeys.length > 0) {
|
|
25014
|
+
payload.__meta_raw__ = serialisedMeta.rawKeys;
|
|
25015
|
+
}
|
|
25016
|
+
}
|
|
24892
25017
|
}
|
|
24893
25018
|
if (!element.isAttributesEmpty) {
|
|
24894
25019
|
payload.attributes = this.serialiseObject(element.attributes);
|
|
@@ -24935,7 +25060,7 @@ class JSONSerialiser {
|
|
|
24935
25060
|
element.element = value.element;
|
|
24936
25061
|
}
|
|
24937
25062
|
|
|
24938
|
-
// Extract
|
|
25063
|
+
// Extract special meta keys without mutating input, filter remaining meta
|
|
24939
25064
|
let mappingsDoc;
|
|
24940
25065
|
let stylesDoc;
|
|
24941
25066
|
let metaToDeserialize = value.meta;
|
|
@@ -24949,8 +25074,15 @@ class JSONSerialiser {
|
|
|
24949
25074
|
stylesDoc = __styles__;
|
|
24950
25075
|
metaToDeserialize = Object.keys(rest).length > 0 ? rest : undefined;
|
|
24951
25076
|
}
|
|
25077
|
+
|
|
25078
|
+
// determine which meta keys were raw primitives before serialization
|
|
25079
|
+
const rawKeys = value.__meta_raw__ ? new Set(value.__meta_raw__) : undefined;
|
|
24952
25080
|
if (metaToDeserialize) {
|
|
24953
|
-
|
|
25081
|
+
for (const [key, doc] of Object.entries(metaToDeserialize)) {
|
|
25082
|
+
const deserialized = this.deserialise(doc);
|
|
25083
|
+
// unwrap keys that were raw primitives before serialization
|
|
25084
|
+
element.setMetaProperty(key, rawKeys?.has(key) ? deserialized.toValue() : deserialized);
|
|
25085
|
+
}
|
|
24954
25086
|
}
|
|
24955
25087
|
|
|
24956
25088
|
// Restore source position from __mappings__
|
|
@@ -25013,6 +25145,27 @@ class JSONSerialiser {
|
|
|
25013
25145
|
}
|
|
25014
25146
|
return content;
|
|
25015
25147
|
}
|
|
25148
|
+
serialiseMeta(element) {
|
|
25149
|
+
const meta = {};
|
|
25150
|
+
const rawKeys = [];
|
|
25151
|
+
let hasEntries = false;
|
|
25152
|
+
for (const [key, value] of Object.entries(element.meta)) {
|
|
25153
|
+
if (value instanceof this.namespace.elements.Element) {
|
|
25154
|
+
meta[key] = this.serialise(value);
|
|
25155
|
+
hasEntries = true;
|
|
25156
|
+
} else if (value !== undefined) {
|
|
25157
|
+
// refract primitives to maintain JSON Refract spec compatibility
|
|
25158
|
+
const refracted = element.refract(value);
|
|
25159
|
+
meta[key] = this.serialise(refracted);
|
|
25160
|
+
rawKeys.push(key);
|
|
25161
|
+
hasEntries = true;
|
|
25162
|
+
}
|
|
25163
|
+
}
|
|
25164
|
+
return hasEntries ? {
|
|
25165
|
+
meta,
|
|
25166
|
+
rawKeys
|
|
25167
|
+
} : undefined;
|
|
25168
|
+
}
|
|
25016
25169
|
serialiseObject(obj) {
|
|
25017
25170
|
const result = {};
|
|
25018
25171
|
obj.forEach((value, key) => {
|
|
@@ -27095,7 +27248,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
27095
27248
|
*/
|
|
27096
27249
|
class FallbackVisitor extends _Visitor_mjs__WEBPACK_IMPORTED_MODULE_1__["default"] {
|
|
27097
27250
|
enter(path) {
|
|
27098
|
-
this.element = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.cloneDeep)(path.node);
|
|
27251
|
+
this.element = this.consume ? path.node : (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.cloneDeep)(path.node);
|
|
27099
27252
|
path.stop();
|
|
27100
27253
|
}
|
|
27101
27254
|
}
|
|
@@ -27134,7 +27287,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
27134
27287
|
*/
|
|
27135
27288
|
class SpecificationVisitor extends _Visitor_mjs__WEBPACK_IMPORTED_MODULE_6__["default"] {
|
|
27136
27289
|
specObj;
|
|
27137
|
-
passingOptionsNames = ['specObj', 'parent'];
|
|
27290
|
+
passingOptionsNames = ['specObj', 'parent', 'consume'];
|
|
27138
27291
|
constructor({
|
|
27139
27292
|
specObj,
|
|
27140
27293
|
...rest
|
|
@@ -27180,7 +27333,7 @@ class SpecificationVisitor extends _Visitor_mjs__WEBPACK_IMPORTED_MODULE_6__["de
|
|
|
27180
27333
|
*/
|
|
27181
27334
|
const visitor = this.retrieveVisitorInstance(specPath, options);
|
|
27182
27335
|
if (visitor instanceof _FallbackVisitor_mjs__WEBPACK_IMPORTED_MODULE_7__["default"] && visitor?.constructor === _FallbackVisitor_mjs__WEBPACK_IMPORTED_MODULE_7__["default"]) {
|
|
27183
|
-
return (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__.cloneDeep)(element);
|
|
27336
|
+
return this.consume ? element : (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__.cloneDeep)(element);
|
|
27184
27337
|
}
|
|
27185
27338
|
(0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_5__.traverse)(element, visitor, options);
|
|
27186
27339
|
return visitor.element;
|
|
@@ -27198,7 +27351,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
27198
27351
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
27199
27352
|
/* harmony export */ });
|
|
27200
27353
|
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28400);
|
|
27201
|
-
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
27354
|
+
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12111);
|
|
27202
27355
|
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25810);
|
|
27203
27356
|
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(49686);
|
|
27204
27357
|
|
|
@@ -27213,19 +27366,21 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
27213
27366
|
*/
|
|
27214
27367
|
class Visitor {
|
|
27215
27368
|
element;
|
|
27369
|
+
consume = false;
|
|
27370
|
+
consumeSafe = false;
|
|
27216
27371
|
constructor(options) {
|
|
27217
27372
|
Object.assign(this, options);
|
|
27218
27373
|
}
|
|
27219
27374
|
copyMetaAndAttributes(from, to) {
|
|
27220
|
-
if (!from.isMetaEmpty
|
|
27221
|
-
|
|
27222
|
-
|
|
27223
|
-
to.meta = (
|
|
27375
|
+
if (!from.isMetaEmpty && !to.isMetaEmpty) {
|
|
27376
|
+
to.meta = to.meta.merge(from.meta);
|
|
27377
|
+
} else if (!from.isMetaEmpty) {
|
|
27378
|
+
to.meta = from.meta.cloneDeep();
|
|
27224
27379
|
}
|
|
27225
|
-
if (!from.isAttributesEmpty
|
|
27226
|
-
|
|
27227
|
-
|
|
27228
|
-
to.attributes = (0,
|
|
27380
|
+
if (!from.isAttributesEmpty && !to.isAttributesEmpty) {
|
|
27381
|
+
to.attributes = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_0__["default"])(to.attributes, from.attributes);
|
|
27382
|
+
} else if (!from.isAttributesEmpty) {
|
|
27383
|
+
to.attributes = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(from.attributes);
|
|
27229
27384
|
}
|
|
27230
27385
|
_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"].transfer(from, to);
|
|
27231
27386
|
_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__["default"].transfer(from, to);
|
|
@@ -27333,12 +27488,13 @@ class FixedFieldsVisitor extends _SpecificationVisitor_mjs__WEBPACK_IMPORTED_MOD
|
|
|
27333
27488
|
const keyValue = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(key);
|
|
27334
27489
|
if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isStringElement)(key) && fields.includes(keyValue) && !this.ignoredFields.includes(keyValue)) {
|
|
27335
27490
|
const fixedFieldElement = this.toRefractedElement([...specPath, 'fixedFields', keyValue], value);
|
|
27336
|
-
const newMemberElement = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(key), fixedFieldElement);
|
|
27491
|
+
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);
|
|
27337
27492
|
this.copyMetaAndAttributes(memberElement, newMemberElement);
|
|
27338
|
-
newMemberElement.classes.push('fixed-field');
|
|
27339
27493
|
this.element.content.push(newMemberElement);
|
|
27494
|
+
// consume: release processed generic subtree
|
|
27495
|
+
if (this.consume && this.consumeSafe && !memberElement.isFrozen) memberElement.value = undefined;
|
|
27340
27496
|
} else if (!this.ignoredFields.includes(keyValue)) {
|
|
27341
|
-
this.element.content.push((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(memberElement));
|
|
27497
|
+
this.element.content.push(this.consume ? memberElement : (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(memberElement));
|
|
27342
27498
|
}
|
|
27343
27499
|
});
|
|
27344
27500
|
this.copyMetaAndAttributes(objectElement, this.element);
|
|
@@ -27425,12 +27581,14 @@ class PatternedFieldsVisitor extends _SpecificationVisitor_mjs__WEBPACK_IMPORTED
|
|
|
27425
27581
|
if (!this.ignoredFields.includes(keyValue) && this.fieldPatternPredicate(keyValue)) {
|
|
27426
27582
|
const specPath = this.specPath(value);
|
|
27427
27583
|
const patternedFieldElement = this.toRefractedElement(specPath, value);
|
|
27428
|
-
const newMemberElement = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(key), patternedFieldElement);
|
|
27584
|
+
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);
|
|
27429
27585
|
this.copyMetaAndAttributes(memberElement, newMemberElement);
|
|
27430
27586
|
newMemberElement.classes.push('patterned-field');
|
|
27431
27587
|
this.element.content.push(newMemberElement);
|
|
27588
|
+
// consume: release processed generic subtree
|
|
27589
|
+
if (this.consume && this.consumeSafe && !memberElement.isFrozen) memberElement.value = undefined;
|
|
27432
27590
|
} else if (!this.ignoredFields.includes(keyValue)) {
|
|
27433
|
-
this.element.content.push((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(memberElement));
|
|
27591
|
+
this.element.content.push(this.consume ? memberElement : (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(memberElement));
|
|
27434
27592
|
}
|
|
27435
27593
|
});
|
|
27436
27594
|
this.copyMetaAndAttributes(objectElement, this.element);
|
|
@@ -27972,13 +28130,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
27972
28130
|
/* harmony import */ var ramda_adjunct__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33031);
|
|
27973
28131
|
/* harmony import */ var ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(68894);
|
|
27974
28132
|
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(25162);
|
|
27975
|
-
/* harmony import */ var
|
|
27976
|
-
/* harmony import */ var
|
|
27977
|
-
/* harmony import */ var
|
|
27978
|
-
/* harmony import */ var
|
|
27979
|
-
/* harmony import */ var
|
|
27980
|
-
/* harmony import */ var _elements_JSONSchema_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(94686);
|
|
27981
|
-
/* harmony import */ var _predicates_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(86059);
|
|
28133
|
+
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(44673);
|
|
28134
|
+
/* harmony import */ var _generics_FixedFieldsVisitor_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(55320);
|
|
28135
|
+
/* harmony import */ var _bases_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(89033);
|
|
28136
|
+
/* harmony import */ var _elements_JSONSchema_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(94686);
|
|
28137
|
+
/* harmony import */ var _predicates_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(86059);
|
|
27982
28138
|
|
|
27983
28139
|
|
|
27984
28140
|
|
|
@@ -27993,10 +28149,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
27993
28149
|
/**
|
|
27994
28150
|
* @public
|
|
27995
28151
|
*/
|
|
27996
|
-
class JSONSchemaVisitor extends
|
|
28152
|
+
class JSONSchemaVisitor extends _bases_mjs__WEBPACK_IMPORTED_MODULE_7__.JSONSchemaVisitorBase {
|
|
27997
28153
|
constructor(options) {
|
|
27998
28154
|
super(options);
|
|
27999
|
-
this.element = new
|
|
28155
|
+
this.element = new _elements_JSONSchema_mjs__WEBPACK_IMPORTED_MODULE_8__["default"]();
|
|
28156
|
+
this.consumeSafe = true;
|
|
28000
28157
|
this.specPath = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(['document', 'objects', 'JSONSchema']);
|
|
28001
28158
|
}
|
|
28002
28159
|
get defaultDialectIdentifier() {
|
|
@@ -28009,27 +28166,27 @@ class JSONSchemaVisitor extends _bases_mjs__WEBPACK_IMPORTED_MODULE_9__.JSONSche
|
|
|
28009
28166
|
|
|
28010
28167
|
// for further processing consider this JSONSchema Element as parent for all sub-schemas
|
|
28011
28168
|
this.parent = this.element;
|
|
28012
|
-
return
|
|
28169
|
+
return _generics_FixedFieldsVisitor_mjs__WEBPACK_IMPORTED_MODULE_6__["default"].prototype.ObjectElement.call(this, path);
|
|
28013
28170
|
}
|
|
28014
28171
|
handleDialectIdentifier(objectElement) {
|
|
28015
28172
|
// handle $schema keyword in embedded resources
|
|
28016
28173
|
if ((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_2__["default"])(this.parent) && !(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__.isStringElement)(objectElement.get('$schema'))) {
|
|
28017
28174
|
// no parent available and no $schema is defined, set default $schema
|
|
28018
28175
|
this.element.meta.set('inheritedDialectIdentifier', this.defaultDialectIdentifier);
|
|
28019
|
-
} else if ((0,
|
|
28176
|
+
} else if ((0,_predicates_mjs__WEBPACK_IMPORTED_MODULE_9__.isJSONSchemaElement)(this.parent) && !(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__.isStringElement)(objectElement.get('$schema'))) {
|
|
28020
28177
|
// parent is available and no $schema is defined, set parent $schema
|
|
28021
|
-
const inheritedDialectIdentifier = (0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(
|
|
28178
|
+
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));
|
|
28022
28179
|
this.element.meta.set('inheritedDialectIdentifier', inheritedDialectIdentifier);
|
|
28023
28180
|
}
|
|
28024
28181
|
}
|
|
28025
28182
|
handleSchemaIdentifier(objectElement, identifierKeyword = 'id') {
|
|
28026
28183
|
// handle schema identifier in embedded resources
|
|
28027
|
-
// fetch parent's ancestorsSchemaIdentifiers
|
|
28028
|
-
const ancestorsSchemaIdentifiers = this.parent !== undefined ? (
|
|
28184
|
+
// fetch parent's ancestorsSchemaIdentifiers (stored as plain string[])
|
|
28185
|
+
const ancestorsSchemaIdentifiers = this.parent !== undefined ? [...(this.parent.meta.get('ancestorsSchemaIdentifiers') ?? [])] : [];
|
|
28029
28186
|
// get current schema identifier
|
|
28030
|
-
const schemaIdentifier = (0,
|
|
28187
|
+
const schemaIdentifier = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(objectElement.get(identifierKeyword));
|
|
28031
28188
|
|
|
28032
|
-
// remember schema identifier if it's a non-empty
|
|
28189
|
+
// remember schema identifier if it's a non-empty string
|
|
28033
28190
|
if ((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_3__["default"])(schemaIdentifier)) {
|
|
28034
28191
|
ancestorsSchemaIdentifiers.push(schemaIdentifier);
|
|
28035
28192
|
}
|
|
@@ -32666,7 +32823,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
32666
32823
|
*/
|
|
32667
32824
|
class FallbackVisitor extends _Visitor_mjs__WEBPACK_IMPORTED_MODULE_1__["default"] {
|
|
32668
32825
|
enter(path) {
|
|
32669
|
-
this.element = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.cloneDeep)(path.node);
|
|
32826
|
+
this.element = this.consume ? path.node : (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.cloneDeep)(path.node);
|
|
32670
32827
|
path.stop();
|
|
32671
32828
|
}
|
|
32672
32829
|
}
|
|
@@ -32730,8 +32887,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
32730
32887
|
*/
|
|
32731
32888
|
class SpecificationVisitor extends _Visitor_mjs__WEBPACK_IMPORTED_MODULE_6__["default"] {
|
|
32732
32889
|
specObj;
|
|
32733
|
-
passingOptionsNames = ['specObj', 'openApiGenericElement', 'openApiSemanticElement'];
|
|
32890
|
+
passingOptionsNames = ['specObj', 'openApiGenericElement', 'sourceContext', 'openApiSemanticElement', 'consume'];
|
|
32734
32891
|
openApiGenericElement;
|
|
32892
|
+
sourceContext;
|
|
32735
32893
|
openApiSemanticElement;
|
|
32736
32894
|
constructor({
|
|
32737
32895
|
specObj,
|
|
@@ -32786,7 +32944,7 @@ class SpecificationVisitor extends _Visitor_mjs__WEBPACK_IMPORTED_MODULE_6__["de
|
|
|
32786
32944
|
*/
|
|
32787
32945
|
const visitor = this.retrieveVisitorInstance(specPath, options);
|
|
32788
32946
|
if (visitor instanceof _FallbackVisitor_mjs__WEBPACK_IMPORTED_MODULE_7__["default"] && visitor?.constructor === _FallbackVisitor_mjs__WEBPACK_IMPORTED_MODULE_7__["default"]) {
|
|
32789
|
-
return (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__.cloneDeep)(element);
|
|
32947
|
+
return this.consume ? element : (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__.cloneDeep)(element);
|
|
32790
32948
|
}
|
|
32791
32949
|
(0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_5__.traverse)(element, visitor, {
|
|
32792
32950
|
nodeTypeGetter: _speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_5__.getNodePrimitiveType
|
|
@@ -32806,7 +32964,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
32806
32964
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
32807
32965
|
/* harmony export */ });
|
|
32808
32966
|
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28400);
|
|
32809
|
-
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
32967
|
+
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12111);
|
|
32810
32968
|
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25810);
|
|
32811
32969
|
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(49686);
|
|
32812
32970
|
|
|
@@ -32821,19 +32979,21 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
32821
32979
|
*/
|
|
32822
32980
|
class Visitor {
|
|
32823
32981
|
element;
|
|
32982
|
+
consume = false;
|
|
32983
|
+
consumeSafe = false;
|
|
32824
32984
|
constructor(options = {}) {
|
|
32825
32985
|
Object.assign(this, options);
|
|
32826
32986
|
}
|
|
32827
32987
|
copyMetaAndAttributes(from, to) {
|
|
32828
|
-
if (!from.isMetaEmpty
|
|
32829
|
-
|
|
32830
|
-
|
|
32831
|
-
to.meta = (
|
|
32988
|
+
if (!from.isMetaEmpty && !to.isMetaEmpty) {
|
|
32989
|
+
to.meta = to.meta.merge(from.meta);
|
|
32990
|
+
} else if (!from.isMetaEmpty) {
|
|
32991
|
+
to.meta = from.meta.cloneDeep();
|
|
32832
32992
|
}
|
|
32833
|
-
if (!from.isAttributesEmpty
|
|
32834
|
-
|
|
32835
|
-
|
|
32836
|
-
to.attributes = (0,
|
|
32993
|
+
if (!from.isAttributesEmpty && !to.isAttributesEmpty) {
|
|
32994
|
+
to.attributes = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_0__["default"])(to.attributes, from.attributes);
|
|
32995
|
+
} else if (!from.isAttributesEmpty) {
|
|
32996
|
+
to.attributes = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(from.attributes);
|
|
32837
32997
|
}
|
|
32838
32998
|
_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"].transfer(from, to);
|
|
32839
32999
|
_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__["default"].transfer(from, to);
|
|
@@ -32953,15 +33113,20 @@ class FixedFieldsVisitor extends _SpecificationVisitor_mjs__WEBPACK_IMPORTED_MOD
|
|
|
32953
33113
|
const keyValue = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(key);
|
|
32954
33114
|
if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isStringElement)(key) && fields.includes(keyValue) && !this.ignoredFields.includes(keyValue)) {
|
|
32955
33115
|
const fixedFieldElement = this.toRefractedElement([...specPath, 'fixedFields', keyValue], value);
|
|
32956
|
-
const newMemberElement = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(key), fixedFieldElement);
|
|
33116
|
+
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);
|
|
32957
33117
|
this.copyMetaAndAttributes(memberElement, newMemberElement);
|
|
32958
|
-
newMemberElement.classes.push('fixed-field');
|
|
32959
33118
|
this.element.content.push(newMemberElement);
|
|
33119
|
+
// consume: release processed generic subtree
|
|
33120
|
+
if (this.consume && this.consumeSafe && !memberElement.isFrozen) memberElement.value = undefined;
|
|
32960
33121
|
} else if (this.canSupportSpecificationExtensions && this.specificationExtensionPredicate(memberElement)) {
|
|
32961
33122
|
const extensionElement = this.toRefractedElement(['document', 'extension'], memberElement);
|
|
32962
33123
|
this.element.content.push(extensionElement);
|
|
33124
|
+
// consume: release processed generic subtree
|
|
33125
|
+
if (this.consume && this.consumeSafe && !memberElement.isFrozen) {
|
|
33126
|
+
memberElement.value = undefined;
|
|
33127
|
+
}
|
|
32963
33128
|
} else if (!this.ignoredFields.includes(keyValue)) {
|
|
32964
|
-
this.element.content.push((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(memberElement));
|
|
33129
|
+
this.element.content.push(this.consume ? memberElement : (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(memberElement));
|
|
32965
33130
|
}
|
|
32966
33131
|
});
|
|
32967
33132
|
this.copyMetaAndAttributes(objectElement, this.element);
|
|
@@ -33140,12 +33305,14 @@ class PatternedFieldsVisitor extends _SpecificationVisitor_mjs__WEBPACK_IMPORTED
|
|
|
33140
33305
|
} else if (!this.ignoredFields.includes(keyValue) && this.fieldPatternPredicate(keyValue)) {
|
|
33141
33306
|
const specPath = this.specPath(value);
|
|
33142
33307
|
const patternedFieldElement = this.toRefractedElement(specPath, value);
|
|
33143
|
-
const newMemberElement = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(key), patternedFieldElement);
|
|
33308
|
+
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);
|
|
33144
33309
|
this.copyMetaAndAttributes(memberElement, newMemberElement);
|
|
33145
33310
|
newMemberElement.classes.push('patterned-field');
|
|
33146
33311
|
this.element.content.push(newMemberElement);
|
|
33312
|
+
// consume: release processed generic subtree
|
|
33313
|
+
if (this.consume && this.consumeSafe && !memberElement.isFrozen) memberElement.value = undefined;
|
|
33147
33314
|
} else if (!this.ignoredFields.includes(keyValue)) {
|
|
33148
|
-
this.element.content.push((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(memberElement));
|
|
33315
|
+
this.element.content.push(this.consume ? memberElement : (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(memberElement));
|
|
33149
33316
|
}
|
|
33150
33317
|
});
|
|
33151
33318
|
this.copyMetaAndAttributes(objectElement, this.element);
|
|
@@ -33989,6 +34156,7 @@ class ComponentsVisitor extends _bases_mjs__WEBPACK_IMPORTED_MODULE_2__.BaseFixe
|
|
|
33989
34156
|
this.element = new _elements_Components_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]();
|
|
33990
34157
|
this.specPath = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(['document', 'objects', 'Components']);
|
|
33991
34158
|
this.canSupportSpecificationExtensions = true;
|
|
34159
|
+
this.consumeSafe = true;
|
|
33992
34160
|
}
|
|
33993
34161
|
}
|
|
33994
34162
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ComponentsVisitor);
|
|
@@ -34414,6 +34582,7 @@ class OpenApi3_0Visitor extends _bases_mjs__WEBPACK_IMPORTED_MODULE_1__.BaseFixe
|
|
|
34414
34582
|
this.element = new _elements_OpenApi3_0_mjs__WEBPACK_IMPORTED_MODULE_2__["default"]();
|
|
34415
34583
|
this.specPath = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(['document', 'objects', 'OpenApi']);
|
|
34416
34584
|
this.canSupportSpecificationExtensions = true;
|
|
34585
|
+
this.consumeSafe = true;
|
|
34417
34586
|
}
|
|
34418
34587
|
ObjectElement(path) {
|
|
34419
34588
|
_bases_mjs__WEBPACK_IMPORTED_MODULE_1__.BaseFixedFieldsVisitor.prototype.ObjectElement.call(this, path);
|
|
@@ -35275,11 +35444,10 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
35275
35444
|
/* harmony export */ });
|
|
35276
35445
|
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(29498);
|
|
35277
35446
|
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25162);
|
|
35278
|
-
/* harmony import */ var
|
|
35279
|
-
/* harmony import */ var
|
|
35280
|
-
/* harmony import */ var
|
|
35281
|
-
/* harmony import */ var
|
|
35282
|
-
/* harmony import */ var _bases_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(74367);
|
|
35447
|
+
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(44673);
|
|
35448
|
+
/* harmony import */ var _elements_PathItem_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(98557);
|
|
35449
|
+
/* harmony import */ var _predicates_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(32131);
|
|
35450
|
+
/* harmony import */ var _bases_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(74367);
|
|
35283
35451
|
|
|
35284
35452
|
|
|
35285
35453
|
|
|
@@ -35292,22 +35460,21 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
35292
35460
|
/**
|
|
35293
35461
|
* @public
|
|
35294
35462
|
*/
|
|
35295
|
-
class PathItemVisitor extends
|
|
35463
|
+
class PathItemVisitor extends _bases_mjs__WEBPACK_IMPORTED_MODULE_5__.BaseFixedFieldsVisitor {
|
|
35296
35464
|
constructor(options) {
|
|
35297
35465
|
super(options);
|
|
35298
|
-
this.element = new
|
|
35466
|
+
this.element = new _elements_PathItem_mjs__WEBPACK_IMPORTED_MODULE_3__["default"]();
|
|
35299
35467
|
this.specPath = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(['document', 'objects', 'PathItem']);
|
|
35468
|
+
this.consumeSafe = true;
|
|
35300
35469
|
}
|
|
35301
35470
|
ObjectElement(path) {
|
|
35302
|
-
|
|
35471
|
+
_bases_mjs__WEBPACK_IMPORTED_MODULE_5__.BaseFixedFieldsVisitor.prototype.ObjectElement.call(this, path);
|
|
35303
35472
|
|
|
35304
35473
|
// decorate Operation elements with HTTP method
|
|
35305
|
-
this.element.filter(
|
|
35474
|
+
this.element.filter(_predicates_mjs__WEBPACK_IMPORTED_MODULE_4__.isOperationElement)
|
|
35306
35475
|
// @ts-ignore
|
|
35307
35476
|
.forEach((operationElement, httpMethodElementCI) => {
|
|
35308
|
-
|
|
35309
|
-
httpMethodElementCS.content = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_3__["default"])(httpMethodElementCS).toUpperCase();
|
|
35310
|
-
operationElement.meta.set('http-method', httpMethodElementCS);
|
|
35477
|
+
operationElement.meta.set('http-method', (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_2__["default"])(httpMethodElementCI).toUpperCase());
|
|
35311
35478
|
});
|
|
35312
35479
|
|
|
35313
35480
|
// mark this PathItemElement with reference metadata
|
|
@@ -35329,7 +35496,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
35329
35496
|
/* harmony export */ });
|
|
35330
35497
|
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(53679);
|
|
35331
35498
|
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(29498);
|
|
35332
|
-
/* harmony import */ var
|
|
35499
|
+
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(44673);
|
|
35333
35500
|
/* harmony import */ var _elements_Paths_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(8535);
|
|
35334
35501
|
/* harmony import */ var _predicates_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(32131);
|
|
35335
35502
|
/* harmony import */ var _bases_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(74367);
|
|
@@ -35350,6 +35517,7 @@ class PathsVisitor extends _bases_mjs__WEBPACK_IMPORTED_MODULE_5__.BasePatterned
|
|
|
35350
35517
|
this.element = new _elements_Paths_mjs__WEBPACK_IMPORTED_MODULE_3__["default"]();
|
|
35351
35518
|
this.specPath = (0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(['document', 'objects', 'PathItem']);
|
|
35352
35519
|
this.canSupportSpecificationExtensions = true;
|
|
35520
|
+
this.consumeSafe = true;
|
|
35353
35521
|
this.fieldPatternPredicate = ramda__WEBPACK_IMPORTED_MODULE_0__["default"];
|
|
35354
35522
|
}
|
|
35355
35523
|
ObjectElement(path) {
|
|
@@ -35361,7 +35529,7 @@ class PathsVisitor extends _bases_mjs__WEBPACK_IMPORTED_MODULE_5__.BasePatterned
|
|
|
35361
35529
|
.forEach((pathItemElement, key) => {
|
|
35362
35530
|
key.classes.push('openapi-path-template');
|
|
35363
35531
|
key.classes.push('path-template');
|
|
35364
|
-
pathItemElement.meta.set('path', (0,
|
|
35532
|
+
pathItemElement.meta.set('path', (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_2__["default"])(key));
|
|
35365
35533
|
});
|
|
35366
35534
|
}
|
|
35367
35535
|
}
|