@speclynx/apidom-ns-openapi-3-0 5.0.2 → 5.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/dist/apidom-ns-openapi-3-0.browser.js +157 -47
- package/dist/apidom-ns-openapi-3-0.browser.min.js +1 -1
- package/package.json +10 -10
- package/src/refractor/plugins/normalize-parameters.cjs +16 -1
- package/src/refractor/plugins/normalize-parameters.mjs +17 -2
- package/src/refractor/plugins/replace-empty-element.cjs +1 -1
- package/src/refractor/plugins/replace-empty-element.mjs +1 -1
- package/src/refractor/visitors/Visitor.cjs +1 -1
- package/src/refractor/visitors/Visitor.mjs +1 -1
- package/src/refractor/visitors/open-api-3-0/operation/TagsVisitor.cjs +1 -0
- package/src/refractor/visitors/open-api-3-0/operation/TagsVisitor.mjs +1 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@speclynx/apidom-ns-openapi-3-0",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.1.1",
|
|
4
4
|
"description": "OpenAPI 3.0.x namespace for ApiDOM.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"apidom",
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
},
|
|
23
23
|
"type": "module",
|
|
24
24
|
"sideEffects": [
|
|
25
|
-
"./src/refractor/
|
|
26
|
-
"./src/refractor/
|
|
25
|
+
"./src/refractor/inspect.mjs",
|
|
26
|
+
"./src/refractor/inspect.cjs"
|
|
27
27
|
],
|
|
28
28
|
"unpkg": "./dist/apidom-ns-openapi-3-0.browser.min.js",
|
|
29
29
|
"main": "./src/index.cjs",
|
|
@@ -56,12 +56,12 @@
|
|
|
56
56
|
"license": "Apache-2.0",
|
|
57
57
|
"dependencies": {
|
|
58
58
|
"@babel/runtime-corejs3": "^8.0.0",
|
|
59
|
-
"@speclynx/apidom-core": "5.
|
|
60
|
-
"@speclynx/apidom-datamodel": "5.
|
|
61
|
-
"@speclynx/apidom-error": "5.
|
|
62
|
-
"@speclynx/apidom-json-pointer": "5.
|
|
63
|
-
"@speclynx/apidom-ns-json-schema-draft-4": "5.
|
|
64
|
-
"@speclynx/apidom-traverse": "5.
|
|
59
|
+
"@speclynx/apidom-core": "5.1.1",
|
|
60
|
+
"@speclynx/apidom-datamodel": "5.1.1",
|
|
61
|
+
"@speclynx/apidom-error": "5.1.1",
|
|
62
|
+
"@speclynx/apidom-json-pointer": "5.1.1",
|
|
63
|
+
"@speclynx/apidom-ns-json-schema-draft-4": "5.1.1",
|
|
64
|
+
"@speclynx/apidom-traverse": "5.1.1",
|
|
65
65
|
"ramda": "~0.32.0",
|
|
66
66
|
"ramda-adjunct": "^6.1.0",
|
|
67
67
|
"ts-mixer": "^6.0.4"
|
|
@@ -76,5 +76,5 @@
|
|
|
76
76
|
"README.md",
|
|
77
77
|
"CHANGELOG.md"
|
|
78
78
|
],
|
|
79
|
-
"gitHead": "
|
|
79
|
+
"gitHead": "b661f6f038953d118ad09eec0d7da7927db46f5c"
|
|
80
80
|
}
|
|
@@ -53,7 +53,22 @@ const inheritParametersToOperation = (operationElement, pathItemElement) => {
|
|
|
53
53
|
|
|
54
54
|
// prefers the first item if two items compare equal based on the predicate
|
|
55
55
|
const mergedParameters = (0, _ramda.uniqWith)(parameterEquals, [...operationParams, ...pathItemParams]);
|
|
56
|
-
|
|
56
|
+
const originalParameters = operationElement.parameters;
|
|
57
|
+
const mergedElement = new _OperationParameters.default(mergedParameters);
|
|
58
|
+
|
|
59
|
+
// the merged container may replace an existing source container — carry over
|
|
60
|
+
// its meta, attributes, source map and style
|
|
61
|
+
if ((0, _apidomDatamodel.isArrayElement)(originalParameters)) {
|
|
62
|
+
if (!originalParameters.isMetaEmpty) {
|
|
63
|
+
mergedElement.meta = (0, _apidomDatamodel.cloneDeep)(originalParameters.meta);
|
|
64
|
+
}
|
|
65
|
+
if (!originalParameters.isAttributesEmpty) {
|
|
66
|
+
mergedElement.attributes = (0, _apidomDatamodel.cloneDeep)(originalParameters.attributes);
|
|
67
|
+
}
|
|
68
|
+
_apidomDatamodel.SourceMapElement.transfer(originalParameters, mergedElement);
|
|
69
|
+
_apidomDatamodel.StyleElement.transfer(originalParameters, mergedElement);
|
|
70
|
+
}
|
|
71
|
+
operationElement.parameters = mergedElement;
|
|
57
72
|
};
|
|
58
73
|
|
|
59
74
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { uniqWith } from 'ramda';
|
|
2
2
|
import { toValue } from '@speclynx/apidom-core';
|
|
3
|
-
import { isStringElement, isArrayElement } from '@speclynx/apidom-datamodel';
|
|
3
|
+
import { SourceMapElement, StyleElement, cloneDeep, isStringElement, isArrayElement } from '@speclynx/apidom-datamodel';
|
|
4
4
|
import OperationParametersElement from "../../elements/nces/OperationParameters.mjs";
|
|
5
5
|
import NormalizeStorage from "./normalize-storage/index.mjs";
|
|
6
6
|
import { isParameterElement } from "../../predicates.mjs";
|
|
@@ -45,7 +45,22 @@ const inheritParametersToOperation = (operationElement, pathItemElement) => {
|
|
|
45
45
|
|
|
46
46
|
// prefers the first item if two items compare equal based on the predicate
|
|
47
47
|
const mergedParameters = uniqWith(parameterEquals, [...operationParams, ...pathItemParams]);
|
|
48
|
-
operationElement.parameters
|
|
48
|
+
const originalParameters = operationElement.parameters;
|
|
49
|
+
const mergedElement = new OperationParametersElement(mergedParameters);
|
|
50
|
+
|
|
51
|
+
// the merged container may replace an existing source container — carry over
|
|
52
|
+
// its meta, attributes, source map and style
|
|
53
|
+
if (isArrayElement(originalParameters)) {
|
|
54
|
+
if (!originalParameters.isMetaEmpty) {
|
|
55
|
+
mergedElement.meta = cloneDeep(originalParameters.meta);
|
|
56
|
+
}
|
|
57
|
+
if (!originalParameters.isAttributesEmpty) {
|
|
58
|
+
mergedElement.attributes = cloneDeep(originalParameters.attributes);
|
|
59
|
+
}
|
|
60
|
+
SourceMapElement.transfer(originalParameters, mergedElement);
|
|
61
|
+
StyleElement.transfer(originalParameters, mergedElement);
|
|
62
|
+
}
|
|
63
|
+
operationElement.parameters = mergedElement;
|
|
49
64
|
};
|
|
50
65
|
|
|
51
66
|
/**
|
|
@@ -625,7 +625,7 @@ const plugin = () => () => ({
|
|
|
625
625
|
if (typeof elementFactory !== 'function') return;
|
|
626
626
|
const newElement = elementFactory.call({
|
|
627
627
|
context
|
|
628
|
-
}, undefined, element.isMetaEmpty ? undefined : element.meta
|
|
628
|
+
}, undefined, element.isMetaEmpty ? undefined : (0, _apidomDatamodel.cloneDeep)(element.meta), element.isAttributesEmpty ? undefined : (0, _apidomDatamodel.cloneDeep)(element.attributes));
|
|
629
629
|
_apidomDatamodel.SourceMapElement.transfer(element, newElement);
|
|
630
630
|
_apidomDatamodel.StyleElement.transfer(element, newElement);
|
|
631
631
|
path.replaceWith(newElement);
|
|
@@ -615,7 +615,7 @@ const plugin = () => () => ({
|
|
|
615
615
|
if (typeof elementFactory !== 'function') return;
|
|
616
616
|
const newElement = elementFactory.call({
|
|
617
617
|
context
|
|
618
|
-
}, undefined, element.isMetaEmpty ? undefined : element.meta
|
|
618
|
+
}, undefined, element.isMetaEmpty ? undefined : cloneDeep(element.meta), element.isAttributesEmpty ? undefined : cloneDeep(element.attributes));
|
|
619
619
|
SourceMapElement.transfer(element, newElement);
|
|
620
620
|
StyleElement.transfer(element, newElement);
|
|
621
621
|
path.replaceWith(newElement);
|
|
@@ -24,7 +24,7 @@ class Visitor {
|
|
|
24
24
|
if (!from.isMetaEmpty && !to.isMetaEmpty) {
|
|
25
25
|
to.meta = to.meta.merge(from.meta);
|
|
26
26
|
} else if (!from.isMetaEmpty) {
|
|
27
|
-
to.meta = from.meta
|
|
27
|
+
to.meta = (0, _apidomDatamodel.cloneDeep)(from.meta);
|
|
28
28
|
}
|
|
29
29
|
if (!from.isAttributesEmpty && !to.isAttributesEmpty) {
|
|
30
30
|
to.attributes = (0, _apidomCore.deepmerge)(to.attributes, from.attributes);
|
|
@@ -19,7 +19,7 @@ class Visitor {
|
|
|
19
19
|
if (!from.isMetaEmpty && !to.isMetaEmpty) {
|
|
20
20
|
to.meta = to.meta.merge(from.meta);
|
|
21
21
|
} else if (!from.isMetaEmpty) {
|
|
22
|
-
to.meta = from.meta
|
|
22
|
+
to.meta = cloneDeep(from.meta);
|
|
23
23
|
}
|
|
24
24
|
if (!from.isAttributesEmpty && !to.isAttributesEmpty) {
|
|
25
25
|
to.attributes = deepmerge(to.attributes, from.attributes);
|
|
@@ -23,6 +23,7 @@ class TagsVisitor extends _FallbackVisitor.default {
|
|
|
23
23
|
ArrayElement(path) {
|
|
24
24
|
const arrayElement = path.node;
|
|
25
25
|
this.element = this.element.concat((0, _apidomDatamodel.cloneDeep)(arrayElement));
|
|
26
|
+
this.copyMetaAndAttributes(arrayElement, this.element);
|
|
26
27
|
path.stop();
|
|
27
28
|
}
|
|
28
29
|
}
|