@speclynx/apidom-ns-arazzo-1 1.12.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 +84 -0
- package/LICENSE +202 -0
- package/LICENSES/AFL-3.0.txt +182 -0
- package/LICENSES/Apache-2.0.txt +202 -0
- package/LICENSES/BSD-3-Clause.txt +26 -0
- package/LICENSES/MIT.txt +9 -0
- package/NOTICE +65 -0
- package/README.md +206 -0
- package/dist/apidom-ns-arazzo-1.browser.js +24106 -0
- package/dist/apidom-ns-arazzo-1.browser.min.js +1 -0
- package/package.json +64 -0
- package/src/elements/Arazzo.cjs +17 -0
- package/src/elements/Arazzo.mjs +14 -0
- package/src/elements/ArazzoSpecification1.cjs +47 -0
- package/src/elements/ArazzoSpecification1.mjs +43 -0
- package/src/elements/Components.cjs +39 -0
- package/src/elements/Components.mjs +35 -0
- package/src/elements/Criterion.cjs +33 -0
- package/src/elements/Criterion.mjs +29 -0
- package/src/elements/CriterionExpressionType.cjs +27 -0
- package/src/elements/CriterionExpressionType.mjs +24 -0
- package/src/elements/FailureAction.cjs +57 -0
- package/src/elements/FailureAction.mjs +53 -0
- package/src/elements/Info.cjs +40 -0
- package/src/elements/Info.mjs +37 -0
- package/src/elements/JSONSchema.cjs +10 -0
- package/src/elements/JSONSchema.mjs +7 -0
- package/src/elements/Parameter.cjs +33 -0
- package/src/elements/Parameter.mjs +30 -0
- package/src/elements/PayloadReplacement.cjs +27 -0
- package/src/elements/PayloadReplacement.mjs +24 -0
- package/src/elements/RequestBody.cjs +33 -0
- package/src/elements/RequestBody.mjs +29 -0
- package/src/elements/Reusable.cjs +28 -0
- package/src/elements/Reusable.mjs +25 -0
- package/src/elements/SourceDescription.cjs +33 -0
- package/src/elements/SourceDescription.mjs +30 -0
- package/src/elements/Step.cjs +81 -0
- package/src/elements/Step.mjs +77 -0
- package/src/elements/SuccessAction.cjs +45 -0
- package/src/elements/SuccessAction.mjs +41 -0
- package/src/elements/Workflow.cjs +75 -0
- package/src/elements/Workflow.mjs +71 -0
- package/src/elements/nces/ComponentsFailureActions.cjs +16 -0
- package/src/elements/nces/ComponentsFailureActions.mjs +13 -0
- package/src/elements/nces/ComponentsInputs.cjs +16 -0
- package/src/elements/nces/ComponentsInputs.mjs +13 -0
- package/src/elements/nces/ComponentsParameters.cjs +17 -0
- package/src/elements/nces/ComponentsParameters.mjs +14 -0
- package/src/elements/nces/ComponentsSuccessActions.cjs +16 -0
- package/src/elements/nces/ComponentsSuccessActions.mjs +13 -0
- package/src/elements/nces/FailureActionCriteria.cjs +17 -0
- package/src/elements/nces/FailureActionCriteria.mjs +14 -0
- package/src/elements/nces/RequestBodyReplacements.cjs +16 -0
- package/src/elements/nces/RequestBodyReplacements.mjs +13 -0
- package/src/elements/nces/SourceDescriptions.cjs +16 -0
- package/src/elements/nces/SourceDescriptions.mjs +13 -0
- package/src/elements/nces/StepDependsOn.cjs +16 -0
- package/src/elements/nces/StepDependsOn.mjs +13 -0
- package/src/elements/nces/StepOnFailure.cjs +16 -0
- package/src/elements/nces/StepOnFailure.mjs +13 -0
- package/src/elements/nces/StepOnSuccess.cjs +16 -0
- package/src/elements/nces/StepOnSuccess.mjs +13 -0
- package/src/elements/nces/StepOutputs.cjs +16 -0
- package/src/elements/nces/StepOutputs.mjs +13 -0
- package/src/elements/nces/StepParameters.cjs +17 -0
- package/src/elements/nces/StepParameters.mjs +14 -0
- package/src/elements/nces/StepSuccessCriteria.cjs +17 -0
- package/src/elements/nces/StepSuccessCriteria.mjs +14 -0
- package/src/elements/nces/SuccessActionCriteria.cjs +17 -0
- package/src/elements/nces/SuccessActionCriteria.mjs +14 -0
- package/src/elements/nces/WorkflowDependsOn.cjs +16 -0
- package/src/elements/nces/WorkflowDependsOn.mjs +13 -0
- package/src/elements/nces/WorkflowFailureActions.cjs +16 -0
- package/src/elements/nces/WorkflowFailureActions.mjs +13 -0
- package/src/elements/nces/WorkflowOutputs.cjs +16 -0
- package/src/elements/nces/WorkflowOutputs.mjs +13 -0
- package/src/elements/nces/WorkflowParameters.cjs +17 -0
- package/src/elements/nces/WorkflowParameters.mjs +14 -0
- package/src/elements/nces/WorkflowSteps.cjs +16 -0
- package/src/elements/nces/WorkflowSteps.mjs +13 -0
- package/src/elements/nces/WorkflowSuccessActions.cjs +16 -0
- package/src/elements/nces/WorkflowSuccessActions.mjs +13 -0
- package/src/elements/nces/Workflows.cjs +16 -0
- package/src/elements/nces/Workflows.mjs +13 -0
- package/src/index.cjs +146 -0
- package/src/index.mjs +38 -0
- package/src/media-types.cjs +34 -0
- package/src/media-types.mjs +30 -0
- package/src/namespace.cjs +49 -0
- package/src/namespace.mjs +44 -0
- package/src/predicates.cjs +467 -0
- package/src/predicates.mjs +461 -0
- package/src/refractor/index.cjs +52 -0
- package/src/refractor/index.mjs +46 -0
- package/src/refractor/plugins/replace-empty-element.cjs +89 -0
- package/src/refractor/plugins/replace-empty-element.mjs +83 -0
- package/src/refractor/predicates.cjs +17 -0
- package/src/refractor/predicates.mjs +11 -0
- package/src/refractor/registration.cjs +53 -0
- package/src/refractor/registration.mjs +34 -0
- package/src/refractor/specification.cjs +294 -0
- package/src/refractor/specification.mjs +289 -0
- package/src/refractor/toolbox.cjs +31 -0
- package/src/refractor/toolbox.mjs +23 -0
- package/src/refractor/visitors/FallbackVisitor.cjs +24 -0
- package/src/refractor/visitors/FallbackVisitor.mjs +18 -0
- package/src/refractor/visitors/SpecificationExtensionVisitor.cjs +18 -0
- package/src/refractor/visitors/SpecificationExtensionVisitor.mjs +13 -0
- package/src/refractor/visitors/SpecificationVisitor.cjs +74 -0
- package/src/refractor/visitors/SpecificationVisitor.mjs +68 -0
- package/src/refractor/visitors/Visitor.cjs +31 -0
- package/src/refractor/visitors/Visitor.mjs +28 -0
- package/src/refractor/visitors/arazzo-1/ArazzoVisitor.cjs +26 -0
- package/src/refractor/visitors/arazzo-1/ArazzoVisitor.mjs +20 -0
- package/src/refractor/visitors/arazzo-1/SourceDescriptionsVisitor.cjs +34 -0
- package/src/refractor/visitors/arazzo-1/SourceDescriptionsVisitor.mjs +28 -0
- package/src/refractor/visitors/arazzo-1/WorkflowsVisitor.cjs +34 -0
- package/src/refractor/visitors/arazzo-1/WorkflowsVisitor.mjs +28 -0
- package/src/refractor/visitors/arazzo-1/components/FailureActionsVisitor.cjs +26 -0
- package/src/refractor/visitors/arazzo-1/components/FailureActionsVisitor.mjs +20 -0
- package/src/refractor/visitors/arazzo-1/components/InputsVisitor.cjs +26 -0
- package/src/refractor/visitors/arazzo-1/components/InputsVisitor.mjs +20 -0
- package/src/refractor/visitors/arazzo-1/components/ParametersVisitor.cjs +26 -0
- package/src/refractor/visitors/arazzo-1/components/ParametersVisitor.mjs +20 -0
- package/src/refractor/visitors/arazzo-1/components/SuccessActionsVisitor.cjs +26 -0
- package/src/refractor/visitors/arazzo-1/components/SuccessActionsVisitor.mjs +20 -0
- package/src/refractor/visitors/arazzo-1/components/index.cjs +26 -0
- package/src/refractor/visitors/arazzo-1/components/index.mjs +20 -0
- package/src/refractor/visitors/arazzo-1/criterion/TypeVisitor.cjs +22 -0
- package/src/refractor/visitors/arazzo-1/criterion/TypeVisitor.mjs +16 -0
- package/src/refractor/visitors/arazzo-1/criterion/index.cjs +26 -0
- package/src/refractor/visitors/arazzo-1/criterion/index.mjs +20 -0
- package/src/refractor/visitors/arazzo-1/criterion-expression-type/VersionVisitor.cjs +17 -0
- package/src/refractor/visitors/arazzo-1/criterion-expression-type/VersionVisitor.mjs +12 -0
- package/src/refractor/visitors/arazzo-1/criterion-expression-type/index.cjs +26 -0
- package/src/refractor/visitors/arazzo-1/criterion-expression-type/index.mjs +20 -0
- package/src/refractor/visitors/arazzo-1/failure-action/CriteriaVisitor.cjs +34 -0
- package/src/refractor/visitors/arazzo-1/failure-action/CriteriaVisitor.mjs +28 -0
- package/src/refractor/visitors/arazzo-1/failure-action/index.cjs +26 -0
- package/src/refractor/visitors/arazzo-1/failure-action/index.mjs +20 -0
- package/src/refractor/visitors/arazzo-1/index.cjs +32 -0
- package/src/refractor/visitors/arazzo-1/index.mjs +26 -0
- package/src/refractor/visitors/arazzo-1/info/VersionVisitor.cjs +18 -0
- package/src/refractor/visitors/arazzo-1/info/VersionVisitor.mjs +13 -0
- package/src/refractor/visitors/arazzo-1/info/index.cjs +26 -0
- package/src/refractor/visitors/arazzo-1/info/index.mjs +20 -0
- package/src/refractor/visitors/arazzo-1/json-schema/index.cjs +17 -0
- package/src/refractor/visitors/arazzo-1/json-schema/index.mjs +12 -0
- package/src/refractor/visitors/arazzo-1/parameter/index.cjs +26 -0
- package/src/refractor/visitors/arazzo-1/parameter/index.mjs +20 -0
- package/src/refractor/visitors/arazzo-1/payload-replacement/index.cjs +26 -0
- package/src/refractor/visitors/arazzo-1/payload-replacement/index.mjs +20 -0
- package/src/refractor/visitors/arazzo-1/request-body/Replacements.cjs +34 -0
- package/src/refractor/visitors/arazzo-1/request-body/Replacements.mjs +28 -0
- package/src/refractor/visitors/arazzo-1/request-body/index.cjs +26 -0
- package/src/refractor/visitors/arazzo-1/request-body/index.mjs +20 -0
- package/src/refractor/visitors/arazzo-1/reusable/ReferenceVisitor.cjs +18 -0
- package/src/refractor/visitors/arazzo-1/reusable/ReferenceVisitor.mjs +12 -0
- package/src/refractor/visitors/arazzo-1/reusable/index.cjs +36 -0
- package/src/refractor/visitors/arazzo-1/reusable/index.mjs +30 -0
- package/src/refractor/visitors/arazzo-1/source-description/UrlVisitor.cjs +17 -0
- package/src/refractor/visitors/arazzo-1/source-description/UrlVisitor.mjs +12 -0
- package/src/refractor/visitors/arazzo-1/source-description/index.cjs +26 -0
- package/src/refractor/visitors/arazzo-1/source-description/index.mjs +20 -0
- package/src/refractor/visitors/arazzo-1/step/OnFailureVisitor.cjs +38 -0
- package/src/refractor/visitors/arazzo-1/step/OnFailureVisitor.mjs +32 -0
- package/src/refractor/visitors/arazzo-1/step/OnSuccessVisitor.cjs +38 -0
- package/src/refractor/visitors/arazzo-1/step/OnSuccessVisitor.mjs +32 -0
- package/src/refractor/visitors/arazzo-1/step/OutputsVisitor.cjs +25 -0
- package/src/refractor/visitors/arazzo-1/step/OutputsVisitor.mjs +19 -0
- package/src/refractor/visitors/arazzo-1/step/ParametersVisitor.cjs +38 -0
- package/src/refractor/visitors/arazzo-1/step/ParametersVisitor.mjs +32 -0
- package/src/refractor/visitors/arazzo-1/step/SuccessCriteriaVisitor.cjs +33 -0
- package/src/refractor/visitors/arazzo-1/step/SuccessCriteriaVisitor.mjs +27 -0
- package/src/refractor/visitors/arazzo-1/step/index.cjs +26 -0
- package/src/refractor/visitors/arazzo-1/step/index.mjs +20 -0
- package/src/refractor/visitors/arazzo-1/success-action/CriteriaVisitor.cjs +34 -0
- package/src/refractor/visitors/arazzo-1/success-action/CriteriaVisitor.mjs +28 -0
- package/src/refractor/visitors/arazzo-1/success-action/index.cjs +26 -0
- package/src/refractor/visitors/arazzo-1/success-action/index.mjs +20 -0
- package/src/refractor/visitors/arazzo-1/workflow/DependsOnVisitor.cjs +34 -0
- package/src/refractor/visitors/arazzo-1/workflow/DependsOnVisitor.mjs +28 -0
- package/src/refractor/visitors/arazzo-1/workflow/FailureActionsVisitor.cjs +38 -0
- package/src/refractor/visitors/arazzo-1/workflow/FailureActionsVisitor.mjs +32 -0
- package/src/refractor/visitors/arazzo-1/workflow/OutputsVisitor.cjs +25 -0
- package/src/refractor/visitors/arazzo-1/workflow/OutputsVisitor.mjs +19 -0
- package/src/refractor/visitors/arazzo-1/workflow/ParametersVisitor.cjs +38 -0
- package/src/refractor/visitors/arazzo-1/workflow/ParametersVisitor.mjs +32 -0
- package/src/refractor/visitors/arazzo-1/workflow/StepsVisitor.cjs +33 -0
- package/src/refractor/visitors/arazzo-1/workflow/StepsVisitor.mjs +27 -0
- package/src/refractor/visitors/arazzo-1/workflow/SuccessActionsVisitor.cjs +38 -0
- package/src/refractor/visitors/arazzo-1/workflow/SuccessActionsVisitor.mjs +32 -0
- package/src/refractor/visitors/arazzo-1/workflow/index.cjs +26 -0
- package/src/refractor/visitors/arazzo-1/workflow/index.mjs +20 -0
- package/src/refractor/visitors/generics/FixedFieldsVisitor.cjs +67 -0
- package/src/refractor/visitors/generics/FixedFieldsVisitor.mjs +60 -0
- package/src/refractor/visitors/generics/MapVisitor.cjs +21 -0
- package/src/refractor/visitors/generics/MapVisitor.mjs +15 -0
- package/src/refractor/visitors/generics/PatternedFieldsVisitor.cjs +67 -0
- package/src/refractor/visitors/generics/PatternedFieldsVisitor.mjs +61 -0
- package/src/traversal/visitor.cjs +38 -0
- package/src/traversal/visitor.mjs +35 -0
- package/types/apidom-ns-arazzo-1.d.ts +1852 -0
|
@@ -0,0 +1,461 @@
|
|
|
1
|
+
import { createPredicate } from '@speclynx/apidom-core';
|
|
2
|
+
import { isJSONSchemaElement } from '@speclynx/apidom-ns-json-schema-2020-12';
|
|
3
|
+
|
|
4
|
+
// Arazzo 1.0.1 elements
|
|
5
|
+
import ArazzoElement from "./elements/Arazzo.mjs";
|
|
6
|
+
import ArazzoSpecification1Element from "./elements/ArazzoSpecification1.mjs";
|
|
7
|
+
import ComponentsElement from "./elements/Components.mjs";
|
|
8
|
+
import CriterionElement from "./elements/Criterion.mjs";
|
|
9
|
+
import CriterionExpressionTypeElement from "./elements/CriterionExpressionType.mjs";
|
|
10
|
+
import FailureActionElement from "./elements/FailureAction.mjs";
|
|
11
|
+
import InfoElement from "./elements/Info.mjs";
|
|
12
|
+
import ParameterElement from "./elements/Parameter.mjs";
|
|
13
|
+
import PayloadReplacementElement from "./elements/PayloadReplacement.mjs";
|
|
14
|
+
import RequestBodyElement from "./elements/RequestBody.mjs";
|
|
15
|
+
import ReusableElement from "./elements/Reusable.mjs";
|
|
16
|
+
import SourceDescriptionElement from "./elements/SourceDescription.mjs";
|
|
17
|
+
import StepElement from "./elements/Step.mjs";
|
|
18
|
+
import SuccessActionElement from "./elements/SuccessAction.mjs";
|
|
19
|
+
import WorkflowElement from "./elements/Workflow.mjs"; // NCE types
|
|
20
|
+
import ComponentsFailureActionsElement from "./elements/nces/ComponentsFailureActions.mjs";
|
|
21
|
+
import ComponentsInputsElement from "./elements/nces/ComponentsInputs.mjs";
|
|
22
|
+
import ComponentsParametersElement from "./elements/nces/ComponentsParameters.mjs";
|
|
23
|
+
import ComponentsSuccessActionsElement from "./elements/nces/ComponentsSuccessActions.mjs";
|
|
24
|
+
import FailureActionCriteriaElement from "./elements/nces/FailureActionCriteria.mjs";
|
|
25
|
+
import RequestBodyReplacementsElement from "./elements/nces/RequestBodyReplacements.mjs";
|
|
26
|
+
import SourceDescriptionsElement from "./elements/nces/SourceDescriptions.mjs";
|
|
27
|
+
import StepDependsOnElement from "./elements/nces/StepDependsOn.mjs";
|
|
28
|
+
import StepOnFailureElement from "./elements/nces/StepOnFailure.mjs";
|
|
29
|
+
import StepOnSuccessElement from "./elements/nces/StepOnSuccess.mjs";
|
|
30
|
+
import StepOutputsElement from "./elements/nces/StepOutputs.mjs";
|
|
31
|
+
import StepParametersElement from "./elements/nces/StepParameters.mjs";
|
|
32
|
+
import StepSuccessCriteriaElement from "./elements/nces/StepSuccessCriteria.mjs";
|
|
33
|
+
import SuccessActionCriteriaElement from "./elements/nces/SuccessActionCriteria.mjs";
|
|
34
|
+
import WorkflowDependsOnElement from "./elements/nces/WorkflowDependsOn.mjs";
|
|
35
|
+
import WorkflowFailureActionsElement from "./elements/nces/WorkflowFailureActions.mjs";
|
|
36
|
+
import WorkflowOutputsElement from "./elements/nces/WorkflowOutputs.mjs";
|
|
37
|
+
import WorkflowParametersElement from "./elements/nces/WorkflowParameters.mjs";
|
|
38
|
+
import WorkflowsElement from "./elements/nces/Workflows.mjs";
|
|
39
|
+
import WorkflowStepsElement from "./elements/nces/WorkflowSteps.mjs";
|
|
40
|
+
import WorkflowSuccessActionsElement from "./elements/nces/WorkflowSuccessActions.mjs";
|
|
41
|
+
export { isJSONSchemaElement };
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* @public
|
|
45
|
+
*/
|
|
46
|
+
export const isArazzoElement = createPredicate(({
|
|
47
|
+
hasBasicElementProps,
|
|
48
|
+
isElementType,
|
|
49
|
+
primitiveEq
|
|
50
|
+
}) => {
|
|
51
|
+
return element => element instanceof ArazzoElement || hasBasicElementProps(element) && isElementType('arazzo', element) && primitiveEq('string', element);
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* @public
|
|
56
|
+
*/
|
|
57
|
+
export const isArazzoSpecification1Element = createPredicate(({
|
|
58
|
+
hasBasicElementProps,
|
|
59
|
+
isElementType,
|
|
60
|
+
primitiveEq,
|
|
61
|
+
hasClass
|
|
62
|
+
}) => {
|
|
63
|
+
return element => element instanceof ArazzoSpecification1Element || hasBasicElementProps(element) && isElementType('arazzoSpecification1', element) && primitiveEq('object', element) && hasClass('api', element) && hasClass('arazzo', element);
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* @public
|
|
68
|
+
*/
|
|
69
|
+
export const isComponentsElement = createPredicate(({
|
|
70
|
+
hasBasicElementProps,
|
|
71
|
+
isElementType,
|
|
72
|
+
primitiveEq
|
|
73
|
+
}) => {
|
|
74
|
+
return element => element instanceof ComponentsElement || hasBasicElementProps(element) && isElementType('components', element) && primitiveEq('object', element);
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* @public
|
|
79
|
+
*/
|
|
80
|
+
export const isCriterionElement = createPredicate(({
|
|
81
|
+
hasBasicElementProps,
|
|
82
|
+
isElementType,
|
|
83
|
+
primitiveEq
|
|
84
|
+
}) => {
|
|
85
|
+
return element => element instanceof CriterionElement || hasBasicElementProps(element) && isElementType('criterion', element) && primitiveEq('object', element);
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* @public
|
|
90
|
+
*/
|
|
91
|
+
export const isCriterionExpressionTypeElement = createPredicate(({
|
|
92
|
+
hasBasicElementProps,
|
|
93
|
+
isElementType,
|
|
94
|
+
primitiveEq
|
|
95
|
+
}) => {
|
|
96
|
+
return element => element instanceof CriterionExpressionTypeElement || hasBasicElementProps(element) && isElementType('criterionExpressionType', element) && primitiveEq('object', element);
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* @public
|
|
101
|
+
*/
|
|
102
|
+
export const isFailureActionElement = createPredicate(({
|
|
103
|
+
hasBasicElementProps,
|
|
104
|
+
isElementType,
|
|
105
|
+
primitiveEq
|
|
106
|
+
}) => {
|
|
107
|
+
return element => element instanceof FailureActionElement || hasBasicElementProps(element) && isElementType('failureAction', element) && primitiveEq('object', element);
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* @public
|
|
112
|
+
*/
|
|
113
|
+
export const isInfoElement = createPredicate(({
|
|
114
|
+
hasBasicElementProps,
|
|
115
|
+
isElementType,
|
|
116
|
+
primitiveEq,
|
|
117
|
+
hasClass
|
|
118
|
+
}) => {
|
|
119
|
+
return element => element instanceof InfoElement || hasBasicElementProps(element) && isElementType('info', element) && primitiveEq('object', element) && hasClass('info', element);
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* @public
|
|
124
|
+
*/
|
|
125
|
+
export const isParameterElement = createPredicate(({
|
|
126
|
+
hasBasicElementProps,
|
|
127
|
+
isElementType,
|
|
128
|
+
primitiveEq
|
|
129
|
+
}) => {
|
|
130
|
+
return element => element instanceof ParameterElement || hasBasicElementProps(element) && isElementType('parameter', element) && primitiveEq('object', element);
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* @public
|
|
135
|
+
*/
|
|
136
|
+
export const isPayloadReplacementElement = createPredicate(({
|
|
137
|
+
hasBasicElementProps,
|
|
138
|
+
isElementType,
|
|
139
|
+
primitiveEq
|
|
140
|
+
}) => {
|
|
141
|
+
return element => element instanceof PayloadReplacementElement || hasBasicElementProps(element) && isElementType('payloadReplacement', element) && primitiveEq('object', element);
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* @public
|
|
146
|
+
*/
|
|
147
|
+
export const isRequestBodyElement = createPredicate(({
|
|
148
|
+
hasBasicElementProps,
|
|
149
|
+
isElementType,
|
|
150
|
+
primitiveEq
|
|
151
|
+
}) => {
|
|
152
|
+
return element => element instanceof RequestBodyElement || hasBasicElementProps(element) && isElementType('requestBody', element) && primitiveEq('object', element);
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* @public
|
|
157
|
+
*/
|
|
158
|
+
export const isReusableElement = createPredicate(({
|
|
159
|
+
hasBasicElementProps,
|
|
160
|
+
isElementType,
|
|
161
|
+
primitiveEq,
|
|
162
|
+
hasClass
|
|
163
|
+
}) => {
|
|
164
|
+
return element => element instanceof ReusableElement || hasBasicElementProps(element) && isElementType('reusable', element) && primitiveEq('object', element) && hasClass('arazzo-reference', element);
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* @public
|
|
169
|
+
*/
|
|
170
|
+
export const isSourceDescriptionElement = createPredicate(({
|
|
171
|
+
hasBasicElementProps,
|
|
172
|
+
isElementType,
|
|
173
|
+
primitiveEq
|
|
174
|
+
}) => {
|
|
175
|
+
return element => element instanceof SourceDescriptionElement || hasBasicElementProps(element) && isElementType('sourceDescription', element) && primitiveEq('object', element);
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* @public
|
|
180
|
+
*/
|
|
181
|
+
export const isStepElement = createPredicate(({
|
|
182
|
+
hasBasicElementProps,
|
|
183
|
+
isElementType,
|
|
184
|
+
primitiveEq
|
|
185
|
+
}) => {
|
|
186
|
+
return element => element instanceof StepElement || hasBasicElementProps(element) && isElementType('step', element) && primitiveEq('object', element);
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* @public
|
|
191
|
+
*/
|
|
192
|
+
export const isSuccessActionElement = createPredicate(({
|
|
193
|
+
hasBasicElementProps,
|
|
194
|
+
isElementType,
|
|
195
|
+
primitiveEq
|
|
196
|
+
}) => {
|
|
197
|
+
return element => element instanceof SuccessActionElement || hasBasicElementProps(element) && isElementType('successAction', element) && primitiveEq('object', element);
|
|
198
|
+
});
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* @public
|
|
202
|
+
*/
|
|
203
|
+
export const isWorkflowElement = createPredicate(({
|
|
204
|
+
hasBasicElementProps,
|
|
205
|
+
isElementType,
|
|
206
|
+
primitiveEq
|
|
207
|
+
}) => {
|
|
208
|
+
return element => element instanceof WorkflowElement || hasBasicElementProps(element) && isElementType('workflow', element) && primitiveEq('object', element);
|
|
209
|
+
});
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* @public
|
|
213
|
+
*/
|
|
214
|
+
export const isComponentsFailureActionsElement = createPredicate(({
|
|
215
|
+
hasBasicElementProps,
|
|
216
|
+
isElementType,
|
|
217
|
+
primitiveEq,
|
|
218
|
+
hasClass
|
|
219
|
+
}) => {
|
|
220
|
+
return element => element instanceof ComponentsFailureActionsElement || hasBasicElementProps(element) && isElementType('object', element) && primitiveEq('object', element) && hasClass('components-failure-actions', element);
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* @public
|
|
225
|
+
*/
|
|
226
|
+
export const isComponentsInputsElement = createPredicate(({
|
|
227
|
+
hasBasicElementProps,
|
|
228
|
+
isElementType,
|
|
229
|
+
primitiveEq,
|
|
230
|
+
hasClass
|
|
231
|
+
}) => {
|
|
232
|
+
return element => element instanceof ComponentsInputsElement || hasBasicElementProps(element) && isElementType('object', element) && primitiveEq('object', element) && hasClass('components-inputs', element);
|
|
233
|
+
});
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* @public
|
|
237
|
+
*/
|
|
238
|
+
export const isComponentsParametersElement = createPredicate(({
|
|
239
|
+
hasBasicElementProps,
|
|
240
|
+
isElementType,
|
|
241
|
+
primitiveEq,
|
|
242
|
+
hasClass
|
|
243
|
+
}) => {
|
|
244
|
+
return element => element instanceof ComponentsParametersElement || hasBasicElementProps(element) && isElementType('object', element) && primitiveEq('object', element) && hasClass('components-parameters', element) && hasClass('parameters', element);
|
|
245
|
+
});
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* @public
|
|
249
|
+
*/
|
|
250
|
+
export const isComponentsSuccessActionsElement = createPredicate(({
|
|
251
|
+
hasBasicElementProps,
|
|
252
|
+
isElementType,
|
|
253
|
+
primitiveEq,
|
|
254
|
+
hasClass
|
|
255
|
+
}) => {
|
|
256
|
+
return element => element instanceof ComponentsSuccessActionsElement || hasBasicElementProps(element) && isElementType('object', element) && primitiveEq('object', element) && hasClass('components-success-actions', element);
|
|
257
|
+
});
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* @public
|
|
261
|
+
*/
|
|
262
|
+
export const isFailureActionCriteriaElement = createPredicate(({
|
|
263
|
+
hasBasicElementProps,
|
|
264
|
+
isElementType,
|
|
265
|
+
primitiveEq,
|
|
266
|
+
hasClass
|
|
267
|
+
}) => {
|
|
268
|
+
return element => element instanceof FailureActionCriteriaElement || hasBasicElementProps(element) && isElementType('array', element) && primitiveEq('array', element) && hasClass('failure-action-criteria', element) && hasClass('criteria', element);
|
|
269
|
+
});
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* @public
|
|
273
|
+
*/
|
|
274
|
+
export const isRequestBodyReplacementsElement = createPredicate(({
|
|
275
|
+
hasBasicElementProps,
|
|
276
|
+
isElementType,
|
|
277
|
+
primitiveEq,
|
|
278
|
+
hasClass
|
|
279
|
+
}) => {
|
|
280
|
+
return element => element instanceof RequestBodyReplacementsElement || hasBasicElementProps(element) && isElementType('array', element) && primitiveEq('array', element) && hasClass('request-body-replacements', element);
|
|
281
|
+
});
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* @public
|
|
285
|
+
*/
|
|
286
|
+
export const isSourceDescriptionsElement = createPredicate(({
|
|
287
|
+
hasBasicElementProps,
|
|
288
|
+
isElementType,
|
|
289
|
+
primitiveEq,
|
|
290
|
+
hasClass
|
|
291
|
+
}) => {
|
|
292
|
+
return element => element instanceof SourceDescriptionsElement || hasBasicElementProps(element) && isElementType('sourceDescriptions', element) && primitiveEq('array', element) && hasClass('sourceDescriptions', element);
|
|
293
|
+
});
|
|
294
|
+
|
|
295
|
+
/**
|
|
296
|
+
* @public
|
|
297
|
+
*/
|
|
298
|
+
export const isStepDependsOnElement = createPredicate(({
|
|
299
|
+
hasBasicElementProps,
|
|
300
|
+
isElementType,
|
|
301
|
+
primitiveEq,
|
|
302
|
+
hasClass
|
|
303
|
+
}) => {
|
|
304
|
+
return element => element instanceof StepDependsOnElement || hasBasicElementProps(element) && isElementType('array', element) && primitiveEq('array', element) && hasClass('step-depends-on', element);
|
|
305
|
+
});
|
|
306
|
+
|
|
307
|
+
/**
|
|
308
|
+
* @public
|
|
309
|
+
*/
|
|
310
|
+
export const isStepOnFailureElement = createPredicate(({
|
|
311
|
+
hasBasicElementProps,
|
|
312
|
+
isElementType,
|
|
313
|
+
primitiveEq,
|
|
314
|
+
hasClass
|
|
315
|
+
}) => {
|
|
316
|
+
return element => element instanceof StepOnFailureElement || hasBasicElementProps(element) && isElementType('array', element) && primitiveEq('array', element) && hasClass('step-on-failure', element);
|
|
317
|
+
});
|
|
318
|
+
|
|
319
|
+
/**
|
|
320
|
+
* @public
|
|
321
|
+
*/
|
|
322
|
+
export const isStepOnSuccessElement = createPredicate(({
|
|
323
|
+
hasBasicElementProps,
|
|
324
|
+
isElementType,
|
|
325
|
+
primitiveEq,
|
|
326
|
+
hasClass
|
|
327
|
+
}) => {
|
|
328
|
+
return element => element instanceof StepOnSuccessElement || hasBasicElementProps(element) && isElementType('array', element) && primitiveEq('array', element) && hasClass('step-on-success', element);
|
|
329
|
+
});
|
|
330
|
+
|
|
331
|
+
/**
|
|
332
|
+
* @public
|
|
333
|
+
*/
|
|
334
|
+
export const isStepOutputsElement = createPredicate(({
|
|
335
|
+
hasBasicElementProps,
|
|
336
|
+
isElementType,
|
|
337
|
+
primitiveEq,
|
|
338
|
+
hasClass
|
|
339
|
+
}) => {
|
|
340
|
+
return element => element instanceof StepOutputsElement || hasBasicElementProps(element) && isElementType('array', element) && primitiveEq('array', element) && hasClass('step-outputs', element);
|
|
341
|
+
});
|
|
342
|
+
|
|
343
|
+
/**
|
|
344
|
+
* @public
|
|
345
|
+
*/
|
|
346
|
+
export const isStepParametersElement = createPredicate(({
|
|
347
|
+
hasBasicElementProps,
|
|
348
|
+
isElementType,
|
|
349
|
+
primitiveEq,
|
|
350
|
+
hasClass
|
|
351
|
+
}) => {
|
|
352
|
+
return element => element instanceof StepParametersElement || hasBasicElementProps(element) && isElementType('array', element) && primitiveEq('array', element) && hasClass('step-parameters', element);
|
|
353
|
+
});
|
|
354
|
+
|
|
355
|
+
/**
|
|
356
|
+
* @public
|
|
357
|
+
*/
|
|
358
|
+
export const isStepSuccessCriteriaElement = createPredicate(({
|
|
359
|
+
hasBasicElementProps,
|
|
360
|
+
isElementType,
|
|
361
|
+
primitiveEq,
|
|
362
|
+
hasClass
|
|
363
|
+
}) => {
|
|
364
|
+
return element => element instanceof StepSuccessCriteriaElement || hasBasicElementProps(element) && isElementType('array', element) && primitiveEq('array', element) && hasClass('step-success-criteria', element) && hasClass('criteria', element);
|
|
365
|
+
});
|
|
366
|
+
|
|
367
|
+
/**
|
|
368
|
+
* @public
|
|
369
|
+
*/
|
|
370
|
+
export const isSuccessActionCriteriaElement = createPredicate(({
|
|
371
|
+
hasBasicElementProps,
|
|
372
|
+
isElementType,
|
|
373
|
+
primitiveEq,
|
|
374
|
+
hasClass
|
|
375
|
+
}) => {
|
|
376
|
+
return element => element instanceof SuccessActionCriteriaElement || hasBasicElementProps(element) && isElementType('array', element) && primitiveEq('array', element) && hasClass('success-action-criteria', element) && hasClass('criteria', element);
|
|
377
|
+
});
|
|
378
|
+
|
|
379
|
+
/**
|
|
380
|
+
* @public
|
|
381
|
+
*/
|
|
382
|
+
export const isWorkflowDependsOnElement = createPredicate(({
|
|
383
|
+
hasBasicElementProps,
|
|
384
|
+
isElementType,
|
|
385
|
+
primitiveEq,
|
|
386
|
+
hasClass
|
|
387
|
+
}) => {
|
|
388
|
+
return element => element instanceof WorkflowDependsOnElement || hasBasicElementProps(element) && isElementType('array', element) && primitiveEq('array', element) && hasClass('workflow-depends-on', element);
|
|
389
|
+
});
|
|
390
|
+
|
|
391
|
+
/**
|
|
392
|
+
* @public
|
|
393
|
+
*/
|
|
394
|
+
export const isWorkflowFailureActionsElement = createPredicate(({
|
|
395
|
+
hasBasicElementProps,
|
|
396
|
+
isElementType,
|
|
397
|
+
primitiveEq,
|
|
398
|
+
hasClass
|
|
399
|
+
}) => {
|
|
400
|
+
return element => element instanceof WorkflowFailureActionsElement || hasBasicElementProps(element) && isElementType('array', element) && primitiveEq('array', element) && hasClass('workflow-failure-actions', element);
|
|
401
|
+
});
|
|
402
|
+
|
|
403
|
+
/**
|
|
404
|
+
* @public
|
|
405
|
+
*/
|
|
406
|
+
export const isWorkflowOutputsElement = createPredicate(({
|
|
407
|
+
hasBasicElementProps,
|
|
408
|
+
isElementType,
|
|
409
|
+
primitiveEq,
|
|
410
|
+
hasClass
|
|
411
|
+
}) => {
|
|
412
|
+
return element => element instanceof WorkflowOutputsElement || hasBasicElementProps(element) && isElementType('array', element) && primitiveEq('array', element) && hasClass('workflow-outputs', element);
|
|
413
|
+
});
|
|
414
|
+
|
|
415
|
+
/**
|
|
416
|
+
* @public
|
|
417
|
+
*/
|
|
418
|
+
export const isWorkflowParametersElement = createPredicate(({
|
|
419
|
+
hasBasicElementProps,
|
|
420
|
+
isElementType,
|
|
421
|
+
primitiveEq,
|
|
422
|
+
hasClass
|
|
423
|
+
}) => {
|
|
424
|
+
return element => element instanceof WorkflowParametersElement || hasBasicElementProps(element) && isElementType('array', element) && primitiveEq('array', element) && hasClass('workflow-parameters', element) && hasClass('parameters', element);
|
|
425
|
+
});
|
|
426
|
+
|
|
427
|
+
/**
|
|
428
|
+
* @public
|
|
429
|
+
*/
|
|
430
|
+
export const isWorkflowsElement = createPredicate(({
|
|
431
|
+
hasBasicElementProps,
|
|
432
|
+
isElementType,
|
|
433
|
+
primitiveEq,
|
|
434
|
+
hasClass
|
|
435
|
+
}) => {
|
|
436
|
+
return element => element instanceof WorkflowsElement || hasBasicElementProps(element) && isElementType('workflows', element) && primitiveEq('array', element) && hasClass('workflows', element);
|
|
437
|
+
});
|
|
438
|
+
|
|
439
|
+
/**
|
|
440
|
+
* @public
|
|
441
|
+
*/
|
|
442
|
+
export const isWorkflowStepsElement = createPredicate(({
|
|
443
|
+
hasBasicElementProps,
|
|
444
|
+
isElementType,
|
|
445
|
+
primitiveEq,
|
|
446
|
+
hasClass
|
|
447
|
+
}) => {
|
|
448
|
+
return element => element instanceof WorkflowStepsElement || hasBasicElementProps(element) && isElementType('array', element) && primitiveEq('array', element) && hasClass('workflow-steps', element);
|
|
449
|
+
});
|
|
450
|
+
|
|
451
|
+
/**
|
|
452
|
+
* @public
|
|
453
|
+
*/
|
|
454
|
+
export const isWorkflowSuccessActionsElement = createPredicate(({
|
|
455
|
+
hasBasicElementProps,
|
|
456
|
+
isElementType,
|
|
457
|
+
primitiveEq,
|
|
458
|
+
hasClass
|
|
459
|
+
}) => {
|
|
460
|
+
return element => element instanceof WorkflowSuccessActionsElement || hasBasicElementProps(element) && isElementType('array', element) && primitiveEq('array', element) && hasClass('workflow-success-actions', element);
|
|
461
|
+
});
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.default = exports.createRefractor = void 0;
|
|
6
|
+
var _apidomCore = require("@speclynx/apidom-core");
|
|
7
|
+
var _ramda = require("ramda");
|
|
8
|
+
var _specification = _interopRequireDefault(require("./specification.cjs"));
|
|
9
|
+
var _visitor = require("../traversal/visitor.cjs");
|
|
10
|
+
var _toolbox = _interopRequireDefault(require("./toolbox.cjs"));
|
|
11
|
+
/**
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
const refract = (value, {
|
|
15
|
+
specPath = ['visitors', 'document', 'objects', 'ArazzoSpecification', '$visitor'],
|
|
16
|
+
plugins = []
|
|
17
|
+
} = {}) => {
|
|
18
|
+
const element = (0, _apidomCore.refract)(value);
|
|
19
|
+
const resolvedSpec = (0, _apidomCore.dereference)(_specification.default);
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* This is where generic ApiDOM becomes semantic (namespace applied).
|
|
23
|
+
* We don't allow consumers to hook into this translation.
|
|
24
|
+
* Though we allow consumers to define their onw plugins on already transformed ApiDOM.
|
|
25
|
+
*/
|
|
26
|
+
const RootVisitorClass = (0, _ramda.path)(specPath, resolvedSpec);
|
|
27
|
+
const rootVisitor = new RootVisitorClass({
|
|
28
|
+
specObj: resolvedSpec
|
|
29
|
+
});
|
|
30
|
+
(0, _apidomCore.visit)(element, rootVisitor);
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Running plugins visitors means extra single traversal === performance hit.
|
|
34
|
+
*/
|
|
35
|
+
return (0, _apidomCore.dispatchRefractorPlugins)(rootVisitor.element, plugins, {
|
|
36
|
+
toolboxCreator: _toolbox.default,
|
|
37
|
+
visitorOptions: {
|
|
38
|
+
keyMap: _visitor.keyMap,
|
|
39
|
+
nodeTypeGetter: _visitor.getNodeType
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* @public
|
|
46
|
+
*/
|
|
47
|
+
const createRefractor = specPath => (value, options = {}) => refract(value, {
|
|
48
|
+
specPath,
|
|
49
|
+
...options
|
|
50
|
+
});
|
|
51
|
+
exports.createRefractor = createRefractor;
|
|
52
|
+
var _default = exports.default = refract;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { visit, dereference, refract as baseRefract, dispatchRefractorPlugins } from '@speclynx/apidom-core';
|
|
2
|
+
import { path } from 'ramda';
|
|
3
|
+
import specification from "./specification.mjs";
|
|
4
|
+
import { keyMap, getNodeType } from "../traversal/visitor.mjs";
|
|
5
|
+
import createToolbox from "./toolbox.mjs";
|
|
6
|
+
/**
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
const refract = (value, {
|
|
10
|
+
specPath = ['visitors', 'document', 'objects', 'ArazzoSpecification', '$visitor'],
|
|
11
|
+
plugins = []
|
|
12
|
+
} = {}) => {
|
|
13
|
+
const element = baseRefract(value);
|
|
14
|
+
const resolvedSpec = dereference(specification);
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* This is where generic ApiDOM becomes semantic (namespace applied).
|
|
18
|
+
* We don't allow consumers to hook into this translation.
|
|
19
|
+
* Though we allow consumers to define their onw plugins on already transformed ApiDOM.
|
|
20
|
+
*/
|
|
21
|
+
const RootVisitorClass = path(specPath, resolvedSpec);
|
|
22
|
+
const rootVisitor = new RootVisitorClass({
|
|
23
|
+
specObj: resolvedSpec
|
|
24
|
+
});
|
|
25
|
+
visit(element, rootVisitor);
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Running plugins visitors means extra single traversal === performance hit.
|
|
29
|
+
*/
|
|
30
|
+
return dispatchRefractorPlugins(rootVisitor.element, plugins, {
|
|
31
|
+
toolboxCreator: createToolbox,
|
|
32
|
+
visitorOptions: {
|
|
33
|
+
keyMap,
|
|
34
|
+
nodeTypeGetter: getNodeType
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* @public
|
|
41
|
+
*/
|
|
42
|
+
export const createRefractor = specPath => (value, options = {}) => refract(value, {
|
|
43
|
+
specPath,
|
|
44
|
+
...options
|
|
45
|
+
});
|
|
46
|
+
export default refract;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.default = void 0;
|
|
6
|
+
var _apidomCore = require("@speclynx/apidom-core");
|
|
7
|
+
var _Info = _interopRequireDefault(require("../../elements/Info.cjs"));
|
|
8
|
+
var _visitor = require("../../traversal/visitor.cjs");
|
|
9
|
+
/**
|
|
10
|
+
* Arazzo 1.0.1 specification elements.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* This plugin is specific to YAML 1.2 format, which allows defining key-value pairs
|
|
15
|
+
* with empty key, empty value, or both. If the value is not provided in YAML format,
|
|
16
|
+
* this plugin compensates for this missing value with the most appropriate semantic element type.
|
|
17
|
+
*
|
|
18
|
+
* https://yaml.org/spec/1.2.2/#72-empty-nodes
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
*
|
|
22
|
+
* ```yaml
|
|
23
|
+
* arazzo: 1.0.1
|
|
24
|
+
* info:
|
|
25
|
+
* ```
|
|
26
|
+
* Refracting result without this plugin:
|
|
27
|
+
*
|
|
28
|
+
* (ArazzoSpecification1Element
|
|
29
|
+
* (MemberElement
|
|
30
|
+
* (StringElement)
|
|
31
|
+
* (ArazzoElement))
|
|
32
|
+
* (MemberElement
|
|
33
|
+
* (StringElement)
|
|
34
|
+
* (StringElement))
|
|
35
|
+
*
|
|
36
|
+
* Refracting result with this plugin:
|
|
37
|
+
*
|
|
38
|
+
* (ArazzoSpecification1Element
|
|
39
|
+
* (MemberElement
|
|
40
|
+
* (StringElement)
|
|
41
|
+
* (ArazzoElement))
|
|
42
|
+
* (MemberElement
|
|
43
|
+
* (StringElement)
|
|
44
|
+
* (InfoElement))
|
|
45
|
+
*/
|
|
46
|
+
|
|
47
|
+
const isEmptyElement = element => (0, _apidomCore.isStringElement)(element) && (0, _apidomCore.includesClasses)(['yaml-e-node', 'yaml-e-scalar'], element);
|
|
48
|
+
const schema = {
|
|
49
|
+
// concrete types handling (CTs)
|
|
50
|
+
ArazzoSpecification1Element: {
|
|
51
|
+
info(...args) {
|
|
52
|
+
return new _Info.default(...args);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
const findElementFactory = (ancestor, keyName) => {
|
|
57
|
+
const elementType = (0, _visitor.getNodeType)(ancestor); // @ts-ignore
|
|
58
|
+
const keyMapping = schema[elementType] || schema[(0, _apidomCore.toValue)(ancestor.classes.first)];
|
|
59
|
+
return typeof keyMapping === 'undefined' ? undefined : Object.hasOwn(keyMapping, '[key: *]') ? keyMapping['[key: *]'] : keyMapping[keyName];
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* @public
|
|
64
|
+
*/
|
|
65
|
+
const plugin = () => () => ({
|
|
66
|
+
visitor: {
|
|
67
|
+
StringElement(element, key, parent, path, ancestors) {
|
|
68
|
+
if (!isEmptyElement(element)) return undefined;
|
|
69
|
+
const lineage = [...ancestors, parent].filter(_apidomCore.isElement);
|
|
70
|
+
const parentElement = lineage.at(-1);
|
|
71
|
+
let elementFactory;
|
|
72
|
+
let context;
|
|
73
|
+
if ((0, _apidomCore.isArrayElement)(parentElement)) {
|
|
74
|
+
context = element;
|
|
75
|
+
elementFactory = findElementFactory(parentElement, '<*>');
|
|
76
|
+
} else if ((0, _apidomCore.isMemberElement)(parentElement)) {
|
|
77
|
+
context = lineage.at(-2);
|
|
78
|
+
elementFactory = findElementFactory(context, (0, _apidomCore.toValue)(parentElement.key));
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// no element factory found
|
|
82
|
+
if (typeof elementFactory !== 'function') return undefined;
|
|
83
|
+
return elementFactory.call({
|
|
84
|
+
context
|
|
85
|
+
}, undefined, (0, _apidomCore.cloneDeep)(element.meta), (0, _apidomCore.cloneDeep)(element.attributes));
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
var _default = exports.default = plugin;
|