@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.
Files changed (204) hide show
  1. package/CHANGELOG.md +84 -0
  2. package/LICENSE +202 -0
  3. package/LICENSES/AFL-3.0.txt +182 -0
  4. package/LICENSES/Apache-2.0.txt +202 -0
  5. package/LICENSES/BSD-3-Clause.txt +26 -0
  6. package/LICENSES/MIT.txt +9 -0
  7. package/NOTICE +65 -0
  8. package/README.md +206 -0
  9. package/dist/apidom-ns-arazzo-1.browser.js +24106 -0
  10. package/dist/apidom-ns-arazzo-1.browser.min.js +1 -0
  11. package/package.json +64 -0
  12. package/src/elements/Arazzo.cjs +17 -0
  13. package/src/elements/Arazzo.mjs +14 -0
  14. package/src/elements/ArazzoSpecification1.cjs +47 -0
  15. package/src/elements/ArazzoSpecification1.mjs +43 -0
  16. package/src/elements/Components.cjs +39 -0
  17. package/src/elements/Components.mjs +35 -0
  18. package/src/elements/Criterion.cjs +33 -0
  19. package/src/elements/Criterion.mjs +29 -0
  20. package/src/elements/CriterionExpressionType.cjs +27 -0
  21. package/src/elements/CriterionExpressionType.mjs +24 -0
  22. package/src/elements/FailureAction.cjs +57 -0
  23. package/src/elements/FailureAction.mjs +53 -0
  24. package/src/elements/Info.cjs +40 -0
  25. package/src/elements/Info.mjs +37 -0
  26. package/src/elements/JSONSchema.cjs +10 -0
  27. package/src/elements/JSONSchema.mjs +7 -0
  28. package/src/elements/Parameter.cjs +33 -0
  29. package/src/elements/Parameter.mjs +30 -0
  30. package/src/elements/PayloadReplacement.cjs +27 -0
  31. package/src/elements/PayloadReplacement.mjs +24 -0
  32. package/src/elements/RequestBody.cjs +33 -0
  33. package/src/elements/RequestBody.mjs +29 -0
  34. package/src/elements/Reusable.cjs +28 -0
  35. package/src/elements/Reusable.mjs +25 -0
  36. package/src/elements/SourceDescription.cjs +33 -0
  37. package/src/elements/SourceDescription.mjs +30 -0
  38. package/src/elements/Step.cjs +81 -0
  39. package/src/elements/Step.mjs +77 -0
  40. package/src/elements/SuccessAction.cjs +45 -0
  41. package/src/elements/SuccessAction.mjs +41 -0
  42. package/src/elements/Workflow.cjs +75 -0
  43. package/src/elements/Workflow.mjs +71 -0
  44. package/src/elements/nces/ComponentsFailureActions.cjs +16 -0
  45. package/src/elements/nces/ComponentsFailureActions.mjs +13 -0
  46. package/src/elements/nces/ComponentsInputs.cjs +16 -0
  47. package/src/elements/nces/ComponentsInputs.mjs +13 -0
  48. package/src/elements/nces/ComponentsParameters.cjs +17 -0
  49. package/src/elements/nces/ComponentsParameters.mjs +14 -0
  50. package/src/elements/nces/ComponentsSuccessActions.cjs +16 -0
  51. package/src/elements/nces/ComponentsSuccessActions.mjs +13 -0
  52. package/src/elements/nces/FailureActionCriteria.cjs +17 -0
  53. package/src/elements/nces/FailureActionCriteria.mjs +14 -0
  54. package/src/elements/nces/RequestBodyReplacements.cjs +16 -0
  55. package/src/elements/nces/RequestBodyReplacements.mjs +13 -0
  56. package/src/elements/nces/SourceDescriptions.cjs +16 -0
  57. package/src/elements/nces/SourceDescriptions.mjs +13 -0
  58. package/src/elements/nces/StepDependsOn.cjs +16 -0
  59. package/src/elements/nces/StepDependsOn.mjs +13 -0
  60. package/src/elements/nces/StepOnFailure.cjs +16 -0
  61. package/src/elements/nces/StepOnFailure.mjs +13 -0
  62. package/src/elements/nces/StepOnSuccess.cjs +16 -0
  63. package/src/elements/nces/StepOnSuccess.mjs +13 -0
  64. package/src/elements/nces/StepOutputs.cjs +16 -0
  65. package/src/elements/nces/StepOutputs.mjs +13 -0
  66. package/src/elements/nces/StepParameters.cjs +17 -0
  67. package/src/elements/nces/StepParameters.mjs +14 -0
  68. package/src/elements/nces/StepSuccessCriteria.cjs +17 -0
  69. package/src/elements/nces/StepSuccessCriteria.mjs +14 -0
  70. package/src/elements/nces/SuccessActionCriteria.cjs +17 -0
  71. package/src/elements/nces/SuccessActionCriteria.mjs +14 -0
  72. package/src/elements/nces/WorkflowDependsOn.cjs +16 -0
  73. package/src/elements/nces/WorkflowDependsOn.mjs +13 -0
  74. package/src/elements/nces/WorkflowFailureActions.cjs +16 -0
  75. package/src/elements/nces/WorkflowFailureActions.mjs +13 -0
  76. package/src/elements/nces/WorkflowOutputs.cjs +16 -0
  77. package/src/elements/nces/WorkflowOutputs.mjs +13 -0
  78. package/src/elements/nces/WorkflowParameters.cjs +17 -0
  79. package/src/elements/nces/WorkflowParameters.mjs +14 -0
  80. package/src/elements/nces/WorkflowSteps.cjs +16 -0
  81. package/src/elements/nces/WorkflowSteps.mjs +13 -0
  82. package/src/elements/nces/WorkflowSuccessActions.cjs +16 -0
  83. package/src/elements/nces/WorkflowSuccessActions.mjs +13 -0
  84. package/src/elements/nces/Workflows.cjs +16 -0
  85. package/src/elements/nces/Workflows.mjs +13 -0
  86. package/src/index.cjs +146 -0
  87. package/src/index.mjs +38 -0
  88. package/src/media-types.cjs +34 -0
  89. package/src/media-types.mjs +30 -0
  90. package/src/namespace.cjs +49 -0
  91. package/src/namespace.mjs +44 -0
  92. package/src/predicates.cjs +467 -0
  93. package/src/predicates.mjs +461 -0
  94. package/src/refractor/index.cjs +52 -0
  95. package/src/refractor/index.mjs +46 -0
  96. package/src/refractor/plugins/replace-empty-element.cjs +89 -0
  97. package/src/refractor/plugins/replace-empty-element.mjs +83 -0
  98. package/src/refractor/predicates.cjs +17 -0
  99. package/src/refractor/predicates.mjs +11 -0
  100. package/src/refractor/registration.cjs +53 -0
  101. package/src/refractor/registration.mjs +34 -0
  102. package/src/refractor/specification.cjs +294 -0
  103. package/src/refractor/specification.mjs +289 -0
  104. package/src/refractor/toolbox.cjs +31 -0
  105. package/src/refractor/toolbox.mjs +23 -0
  106. package/src/refractor/visitors/FallbackVisitor.cjs +24 -0
  107. package/src/refractor/visitors/FallbackVisitor.mjs +18 -0
  108. package/src/refractor/visitors/SpecificationExtensionVisitor.cjs +18 -0
  109. package/src/refractor/visitors/SpecificationExtensionVisitor.mjs +13 -0
  110. package/src/refractor/visitors/SpecificationVisitor.cjs +74 -0
  111. package/src/refractor/visitors/SpecificationVisitor.mjs +68 -0
  112. package/src/refractor/visitors/Visitor.cjs +31 -0
  113. package/src/refractor/visitors/Visitor.mjs +28 -0
  114. package/src/refractor/visitors/arazzo-1/ArazzoVisitor.cjs +26 -0
  115. package/src/refractor/visitors/arazzo-1/ArazzoVisitor.mjs +20 -0
  116. package/src/refractor/visitors/arazzo-1/SourceDescriptionsVisitor.cjs +34 -0
  117. package/src/refractor/visitors/arazzo-1/SourceDescriptionsVisitor.mjs +28 -0
  118. package/src/refractor/visitors/arazzo-1/WorkflowsVisitor.cjs +34 -0
  119. package/src/refractor/visitors/arazzo-1/WorkflowsVisitor.mjs +28 -0
  120. package/src/refractor/visitors/arazzo-1/components/FailureActionsVisitor.cjs +26 -0
  121. package/src/refractor/visitors/arazzo-1/components/FailureActionsVisitor.mjs +20 -0
  122. package/src/refractor/visitors/arazzo-1/components/InputsVisitor.cjs +26 -0
  123. package/src/refractor/visitors/arazzo-1/components/InputsVisitor.mjs +20 -0
  124. package/src/refractor/visitors/arazzo-1/components/ParametersVisitor.cjs +26 -0
  125. package/src/refractor/visitors/arazzo-1/components/ParametersVisitor.mjs +20 -0
  126. package/src/refractor/visitors/arazzo-1/components/SuccessActionsVisitor.cjs +26 -0
  127. package/src/refractor/visitors/arazzo-1/components/SuccessActionsVisitor.mjs +20 -0
  128. package/src/refractor/visitors/arazzo-1/components/index.cjs +26 -0
  129. package/src/refractor/visitors/arazzo-1/components/index.mjs +20 -0
  130. package/src/refractor/visitors/arazzo-1/criterion/TypeVisitor.cjs +22 -0
  131. package/src/refractor/visitors/arazzo-1/criterion/TypeVisitor.mjs +16 -0
  132. package/src/refractor/visitors/arazzo-1/criterion/index.cjs +26 -0
  133. package/src/refractor/visitors/arazzo-1/criterion/index.mjs +20 -0
  134. package/src/refractor/visitors/arazzo-1/criterion-expression-type/VersionVisitor.cjs +17 -0
  135. package/src/refractor/visitors/arazzo-1/criterion-expression-type/VersionVisitor.mjs +12 -0
  136. package/src/refractor/visitors/arazzo-1/criterion-expression-type/index.cjs +26 -0
  137. package/src/refractor/visitors/arazzo-1/criterion-expression-type/index.mjs +20 -0
  138. package/src/refractor/visitors/arazzo-1/failure-action/CriteriaVisitor.cjs +34 -0
  139. package/src/refractor/visitors/arazzo-1/failure-action/CriteriaVisitor.mjs +28 -0
  140. package/src/refractor/visitors/arazzo-1/failure-action/index.cjs +26 -0
  141. package/src/refractor/visitors/arazzo-1/failure-action/index.mjs +20 -0
  142. package/src/refractor/visitors/arazzo-1/index.cjs +32 -0
  143. package/src/refractor/visitors/arazzo-1/index.mjs +26 -0
  144. package/src/refractor/visitors/arazzo-1/info/VersionVisitor.cjs +18 -0
  145. package/src/refractor/visitors/arazzo-1/info/VersionVisitor.mjs +13 -0
  146. package/src/refractor/visitors/arazzo-1/info/index.cjs +26 -0
  147. package/src/refractor/visitors/arazzo-1/info/index.mjs +20 -0
  148. package/src/refractor/visitors/arazzo-1/json-schema/index.cjs +17 -0
  149. package/src/refractor/visitors/arazzo-1/json-schema/index.mjs +12 -0
  150. package/src/refractor/visitors/arazzo-1/parameter/index.cjs +26 -0
  151. package/src/refractor/visitors/arazzo-1/parameter/index.mjs +20 -0
  152. package/src/refractor/visitors/arazzo-1/payload-replacement/index.cjs +26 -0
  153. package/src/refractor/visitors/arazzo-1/payload-replacement/index.mjs +20 -0
  154. package/src/refractor/visitors/arazzo-1/request-body/Replacements.cjs +34 -0
  155. package/src/refractor/visitors/arazzo-1/request-body/Replacements.mjs +28 -0
  156. package/src/refractor/visitors/arazzo-1/request-body/index.cjs +26 -0
  157. package/src/refractor/visitors/arazzo-1/request-body/index.mjs +20 -0
  158. package/src/refractor/visitors/arazzo-1/reusable/ReferenceVisitor.cjs +18 -0
  159. package/src/refractor/visitors/arazzo-1/reusable/ReferenceVisitor.mjs +12 -0
  160. package/src/refractor/visitors/arazzo-1/reusable/index.cjs +36 -0
  161. package/src/refractor/visitors/arazzo-1/reusable/index.mjs +30 -0
  162. package/src/refractor/visitors/arazzo-1/source-description/UrlVisitor.cjs +17 -0
  163. package/src/refractor/visitors/arazzo-1/source-description/UrlVisitor.mjs +12 -0
  164. package/src/refractor/visitors/arazzo-1/source-description/index.cjs +26 -0
  165. package/src/refractor/visitors/arazzo-1/source-description/index.mjs +20 -0
  166. package/src/refractor/visitors/arazzo-1/step/OnFailureVisitor.cjs +38 -0
  167. package/src/refractor/visitors/arazzo-1/step/OnFailureVisitor.mjs +32 -0
  168. package/src/refractor/visitors/arazzo-1/step/OnSuccessVisitor.cjs +38 -0
  169. package/src/refractor/visitors/arazzo-1/step/OnSuccessVisitor.mjs +32 -0
  170. package/src/refractor/visitors/arazzo-1/step/OutputsVisitor.cjs +25 -0
  171. package/src/refractor/visitors/arazzo-1/step/OutputsVisitor.mjs +19 -0
  172. package/src/refractor/visitors/arazzo-1/step/ParametersVisitor.cjs +38 -0
  173. package/src/refractor/visitors/arazzo-1/step/ParametersVisitor.mjs +32 -0
  174. package/src/refractor/visitors/arazzo-1/step/SuccessCriteriaVisitor.cjs +33 -0
  175. package/src/refractor/visitors/arazzo-1/step/SuccessCriteriaVisitor.mjs +27 -0
  176. package/src/refractor/visitors/arazzo-1/step/index.cjs +26 -0
  177. package/src/refractor/visitors/arazzo-1/step/index.mjs +20 -0
  178. package/src/refractor/visitors/arazzo-1/success-action/CriteriaVisitor.cjs +34 -0
  179. package/src/refractor/visitors/arazzo-1/success-action/CriteriaVisitor.mjs +28 -0
  180. package/src/refractor/visitors/arazzo-1/success-action/index.cjs +26 -0
  181. package/src/refractor/visitors/arazzo-1/success-action/index.mjs +20 -0
  182. package/src/refractor/visitors/arazzo-1/workflow/DependsOnVisitor.cjs +34 -0
  183. package/src/refractor/visitors/arazzo-1/workflow/DependsOnVisitor.mjs +28 -0
  184. package/src/refractor/visitors/arazzo-1/workflow/FailureActionsVisitor.cjs +38 -0
  185. package/src/refractor/visitors/arazzo-1/workflow/FailureActionsVisitor.mjs +32 -0
  186. package/src/refractor/visitors/arazzo-1/workflow/OutputsVisitor.cjs +25 -0
  187. package/src/refractor/visitors/arazzo-1/workflow/OutputsVisitor.mjs +19 -0
  188. package/src/refractor/visitors/arazzo-1/workflow/ParametersVisitor.cjs +38 -0
  189. package/src/refractor/visitors/arazzo-1/workflow/ParametersVisitor.mjs +32 -0
  190. package/src/refractor/visitors/arazzo-1/workflow/StepsVisitor.cjs +33 -0
  191. package/src/refractor/visitors/arazzo-1/workflow/StepsVisitor.mjs +27 -0
  192. package/src/refractor/visitors/arazzo-1/workflow/SuccessActionsVisitor.cjs +38 -0
  193. package/src/refractor/visitors/arazzo-1/workflow/SuccessActionsVisitor.mjs +32 -0
  194. package/src/refractor/visitors/arazzo-1/workflow/index.cjs +26 -0
  195. package/src/refractor/visitors/arazzo-1/workflow/index.mjs +20 -0
  196. package/src/refractor/visitors/generics/FixedFieldsVisitor.cjs +67 -0
  197. package/src/refractor/visitors/generics/FixedFieldsVisitor.mjs +60 -0
  198. package/src/refractor/visitors/generics/MapVisitor.cjs +21 -0
  199. package/src/refractor/visitors/generics/MapVisitor.mjs +15 -0
  200. package/src/refractor/visitors/generics/PatternedFieldsVisitor.cjs +67 -0
  201. package/src/refractor/visitors/generics/PatternedFieldsVisitor.mjs +61 -0
  202. package/src/traversal/visitor.cjs +38 -0
  203. package/src/traversal/visitor.mjs +35 -0
  204. 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;