@speclynx/apidom-ns-arazzo-1 1.12.2 → 2.0.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 (193) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/NOTICE +16 -7
  3. package/README.md +25 -25
  4. package/dist/apidom-ns-arazzo-1.browser.js +8596 -13272
  5. package/dist/apidom-ns-arazzo-1.browser.min.js +1 -1
  6. package/package.json +9 -8
  7. package/src/elements/Arazzo.cjs +2 -2
  8. package/src/elements/Arazzo.mjs +1 -1
  9. package/src/elements/ArazzoSpecification1.cjs +2 -2
  10. package/src/elements/ArazzoSpecification1.mjs +1 -1
  11. package/src/elements/Components.cjs +2 -2
  12. package/src/elements/Components.mjs +1 -1
  13. package/src/elements/Criterion.cjs +2 -2
  14. package/src/elements/Criterion.mjs +1 -1
  15. package/src/elements/CriterionExpressionType.cjs +2 -2
  16. package/src/elements/CriterionExpressionType.mjs +1 -1
  17. package/src/elements/FailureAction.cjs +2 -2
  18. package/src/elements/FailureAction.mjs +1 -1
  19. package/src/elements/Info.cjs +2 -2
  20. package/src/elements/Info.mjs +1 -1
  21. package/src/elements/Parameter.cjs +2 -2
  22. package/src/elements/Parameter.mjs +1 -1
  23. package/src/elements/PayloadReplacement.cjs +2 -2
  24. package/src/elements/PayloadReplacement.mjs +1 -1
  25. package/src/elements/RequestBody.cjs +2 -2
  26. package/src/elements/RequestBody.mjs +1 -1
  27. package/src/elements/Reusable.cjs +2 -2
  28. package/src/elements/Reusable.mjs +1 -1
  29. package/src/elements/SourceDescription.cjs +2 -2
  30. package/src/elements/SourceDescription.mjs +1 -1
  31. package/src/elements/Step.cjs +2 -2
  32. package/src/elements/Step.mjs +1 -1
  33. package/src/elements/SuccessAction.cjs +2 -2
  34. package/src/elements/SuccessAction.mjs +1 -1
  35. package/src/elements/Workflow.cjs +2 -2
  36. package/src/elements/Workflow.mjs +1 -1
  37. package/src/elements/nces/ComponentsFailureActions.cjs +2 -2
  38. package/src/elements/nces/ComponentsFailureActions.mjs +1 -1
  39. package/src/elements/nces/ComponentsInputs.cjs +2 -2
  40. package/src/elements/nces/ComponentsInputs.mjs +1 -1
  41. package/src/elements/nces/ComponentsParameters.cjs +2 -2
  42. package/src/elements/nces/ComponentsParameters.mjs +1 -1
  43. package/src/elements/nces/ComponentsSuccessActions.cjs +2 -2
  44. package/src/elements/nces/ComponentsSuccessActions.mjs +1 -1
  45. package/src/elements/nces/FailureActionCriteria.cjs +2 -2
  46. package/src/elements/nces/FailureActionCriteria.mjs +1 -1
  47. package/src/elements/nces/RequestBodyReplacements.cjs +2 -2
  48. package/src/elements/nces/RequestBodyReplacements.mjs +1 -1
  49. package/src/elements/nces/SourceDescriptions.cjs +2 -2
  50. package/src/elements/nces/SourceDescriptions.mjs +1 -1
  51. package/src/elements/nces/StepDependsOn.cjs +2 -2
  52. package/src/elements/nces/StepDependsOn.mjs +1 -1
  53. package/src/elements/nces/StepOnFailure.cjs +2 -2
  54. package/src/elements/nces/StepOnFailure.mjs +1 -1
  55. package/src/elements/nces/StepOnSuccess.cjs +2 -2
  56. package/src/elements/nces/StepOnSuccess.mjs +1 -1
  57. package/src/elements/nces/StepOutputs.cjs +2 -2
  58. package/src/elements/nces/StepOutputs.mjs +1 -1
  59. package/src/elements/nces/StepParameters.cjs +2 -2
  60. package/src/elements/nces/StepParameters.mjs +1 -1
  61. package/src/elements/nces/StepSuccessCriteria.cjs +2 -2
  62. package/src/elements/nces/StepSuccessCriteria.mjs +1 -1
  63. package/src/elements/nces/SuccessActionCriteria.cjs +2 -2
  64. package/src/elements/nces/SuccessActionCriteria.mjs +1 -1
  65. package/src/elements/nces/WorkflowDependsOn.cjs +2 -2
  66. package/src/elements/nces/WorkflowDependsOn.mjs +1 -1
  67. package/src/elements/nces/WorkflowFailureActions.cjs +2 -2
  68. package/src/elements/nces/WorkflowFailureActions.mjs +1 -1
  69. package/src/elements/nces/WorkflowOutputs.cjs +2 -2
  70. package/src/elements/nces/WorkflowOutputs.mjs +1 -1
  71. package/src/elements/nces/WorkflowParameters.cjs +2 -2
  72. package/src/elements/nces/WorkflowParameters.mjs +1 -1
  73. package/src/elements/nces/WorkflowSteps.cjs +2 -2
  74. package/src/elements/nces/WorkflowSteps.mjs +1 -1
  75. package/src/elements/nces/WorkflowSuccessActions.cjs +2 -2
  76. package/src/elements/nces/WorkflowSuccessActions.mjs +1 -1
  77. package/src/elements/nces/Workflows.cjs +2 -2
  78. package/src/elements/nces/Workflows.mjs +1 -1
  79. package/src/index.cjs +39 -34
  80. package/src/index.mjs +5 -5
  81. package/src/predicates.cjs +72 -277
  82. package/src/predicates.mjs +36 -277
  83. package/src/refractor/index.cjs +163 -17
  84. package/src/refractor/index.mjs +145 -16
  85. package/src/refractor/inspect.cjs +118 -0
  86. package/src/refractor/inspect.mjs +98 -0
  87. package/src/refractor/plugins/replace-empty-element.cjs +19 -18
  88. package/src/refractor/plugins/replace-empty-element.mjs +18 -17
  89. package/src/refractor/predicates.cjs +3 -2
  90. package/src/refractor/predicates.mjs +2 -1
  91. package/src/refractor/specification.cjs +19 -1
  92. package/src/refractor/specification.mjs +19 -1
  93. package/src/refractor/toolbox.cjs +4 -7
  94. package/src/refractor/toolbox.mjs +4 -6
  95. package/src/refractor/visitors/FallbackVisitor.cjs +4 -4
  96. package/src/refractor/visitors/FallbackVisitor.mjs +4 -4
  97. package/src/refractor/visitors/SpecificationExtensionVisitor.cjs +5 -4
  98. package/src/refractor/visitors/SpecificationExtensionVisitor.mjs +4 -3
  99. package/src/refractor/visitors/SpecificationVisitor.cjs +4 -3
  100. package/src/refractor/visitors/SpecificationVisitor.mjs +3 -2
  101. package/src/refractor/visitors/Visitor.cjs +10 -8
  102. package/src/refractor/visitors/Visitor.mjs +11 -9
  103. package/src/refractor/visitors/arazzo-1/ArazzoVisitor.cjs +5 -6
  104. package/src/refractor/visitors/arazzo-1/ArazzoVisitor.mjs +6 -7
  105. package/src/refractor/visitors/arazzo-1/SourceDescriptionsVisitor.cjs +5 -7
  106. package/src/refractor/visitors/arazzo-1/SourceDescriptionsVisitor.mjs +5 -7
  107. package/src/refractor/visitors/arazzo-1/WorkflowsVisitor.cjs +5 -7
  108. package/src/refractor/visitors/arazzo-1/WorkflowsVisitor.mjs +5 -7
  109. package/src/refractor/visitors/arazzo-1/bases.cjs +39 -0
  110. package/src/refractor/visitors/arazzo-1/bases.mjs +34 -0
  111. package/src/refractor/visitors/arazzo-1/components/FailureActionsVisitor.cjs +2 -4
  112. package/src/refractor/visitors/arazzo-1/components/FailureActionsVisitor.mjs +2 -4
  113. package/src/refractor/visitors/arazzo-1/components/InputsVisitor.cjs +2 -4
  114. package/src/refractor/visitors/arazzo-1/components/InputsVisitor.mjs +2 -4
  115. package/src/refractor/visitors/arazzo-1/components/ParametersVisitor.cjs +2 -4
  116. package/src/refractor/visitors/arazzo-1/components/ParametersVisitor.mjs +2 -4
  117. package/src/refractor/visitors/arazzo-1/components/SuccessActionsVisitor.cjs +2 -4
  118. package/src/refractor/visitors/arazzo-1/components/SuccessActionsVisitor.mjs +2 -4
  119. package/src/refractor/visitors/arazzo-1/components/index.cjs +2 -4
  120. package/src/refractor/visitors/arazzo-1/components/index.mjs +2 -4
  121. package/src/refractor/visitors/arazzo-1/criterion/TypeVisitor.cjs +4 -6
  122. package/src/refractor/visitors/arazzo-1/criterion/TypeVisitor.mjs +4 -5
  123. package/src/refractor/visitors/arazzo-1/criterion/index.cjs +2 -4
  124. package/src/refractor/visitors/arazzo-1/criterion/index.mjs +2 -4
  125. package/src/refractor/visitors/arazzo-1/criterion-expression-type/VersionVisitor.cjs +2 -3
  126. package/src/refractor/visitors/arazzo-1/criterion-expression-type/VersionVisitor.mjs +2 -3
  127. package/src/refractor/visitors/arazzo-1/criterion-expression-type/index.cjs +2 -4
  128. package/src/refractor/visitors/arazzo-1/criterion-expression-type/index.mjs +2 -4
  129. package/src/refractor/visitors/arazzo-1/failure-action/CriteriaVisitor.cjs +5 -7
  130. package/src/refractor/visitors/arazzo-1/failure-action/CriteriaVisitor.mjs +5 -7
  131. package/src/refractor/visitors/arazzo-1/failure-action/index.cjs +2 -4
  132. package/src/refractor/visitors/arazzo-1/failure-action/index.mjs +2 -4
  133. package/src/refractor/visitors/arazzo-1/index.cjs +4 -5
  134. package/src/refractor/visitors/arazzo-1/index.mjs +4 -5
  135. package/src/refractor/visitors/arazzo-1/info/VersionVisitor.cjs +2 -3
  136. package/src/refractor/visitors/arazzo-1/info/VersionVisitor.mjs +2 -3
  137. package/src/refractor/visitors/arazzo-1/info/index.cjs +2 -4
  138. package/src/refractor/visitors/arazzo-1/info/index.mjs +2 -4
  139. package/src/refractor/visitors/arazzo-1/parameter/index.cjs +2 -4
  140. package/src/refractor/visitors/arazzo-1/parameter/index.mjs +2 -4
  141. package/src/refractor/visitors/arazzo-1/payload-replacement/index.cjs +2 -4
  142. package/src/refractor/visitors/arazzo-1/payload-replacement/index.mjs +2 -4
  143. package/src/refractor/visitors/arazzo-1/request-body/Replacements.cjs +5 -7
  144. package/src/refractor/visitors/arazzo-1/request-body/Replacements.mjs +5 -7
  145. package/src/refractor/visitors/arazzo-1/request-body/index.cjs +2 -4
  146. package/src/refractor/visitors/arazzo-1/request-body/index.mjs +2 -4
  147. package/src/refractor/visitors/arazzo-1/reusable/ReferenceVisitor.cjs +2 -3
  148. package/src/refractor/visitors/arazzo-1/reusable/ReferenceVisitor.mjs +2 -3
  149. package/src/refractor/visitors/arazzo-1/reusable/index.cjs +6 -7
  150. package/src/refractor/visitors/arazzo-1/reusable/index.mjs +5 -6
  151. package/src/refractor/visitors/arazzo-1/source-description/UrlVisitor.cjs +2 -3
  152. package/src/refractor/visitors/arazzo-1/source-description/UrlVisitor.mjs +2 -3
  153. package/src/refractor/visitors/arazzo-1/source-description/index.cjs +2 -4
  154. package/src/refractor/visitors/arazzo-1/source-description/index.mjs +2 -4
  155. package/src/refractor/visitors/arazzo-1/step/OnFailureVisitor.cjs +6 -8
  156. package/src/refractor/visitors/arazzo-1/step/OnFailureVisitor.mjs +6 -8
  157. package/src/refractor/visitors/arazzo-1/step/OnSuccessVisitor.cjs +6 -8
  158. package/src/refractor/visitors/arazzo-1/step/OnSuccessVisitor.mjs +6 -8
  159. package/src/refractor/visitors/arazzo-1/step/OutputsVisitor.cjs +2 -4
  160. package/src/refractor/visitors/arazzo-1/step/OutputsVisitor.mjs +2 -4
  161. package/src/refractor/visitors/arazzo-1/step/ParametersVisitor.cjs +6 -8
  162. package/src/refractor/visitors/arazzo-1/step/ParametersVisitor.mjs +6 -8
  163. package/src/refractor/visitors/arazzo-1/step/SuccessCriteriaVisitor.cjs +5 -7
  164. package/src/refractor/visitors/arazzo-1/step/SuccessCriteriaVisitor.mjs +5 -7
  165. package/src/refractor/visitors/arazzo-1/step/index.cjs +2 -4
  166. package/src/refractor/visitors/arazzo-1/step/index.mjs +2 -4
  167. package/src/refractor/visitors/arazzo-1/success-action/CriteriaVisitor.cjs +5 -7
  168. package/src/refractor/visitors/arazzo-1/success-action/CriteriaVisitor.mjs +5 -7
  169. package/src/refractor/visitors/arazzo-1/success-action/index.cjs +2 -4
  170. package/src/refractor/visitors/arazzo-1/success-action/index.mjs +2 -4
  171. package/src/refractor/visitors/arazzo-1/workflow/DependsOnVisitor.cjs +5 -7
  172. package/src/refractor/visitors/arazzo-1/workflow/DependsOnVisitor.mjs +5 -7
  173. package/src/refractor/visitors/arazzo-1/workflow/FailureActionsVisitor.cjs +6 -8
  174. package/src/refractor/visitors/arazzo-1/workflow/FailureActionsVisitor.mjs +6 -8
  175. package/src/refractor/visitors/arazzo-1/workflow/OutputsVisitor.cjs +2 -4
  176. package/src/refractor/visitors/arazzo-1/workflow/OutputsVisitor.mjs +2 -4
  177. package/src/refractor/visitors/arazzo-1/workflow/ParametersVisitor.cjs +6 -8
  178. package/src/refractor/visitors/arazzo-1/workflow/ParametersVisitor.mjs +6 -8
  179. package/src/refractor/visitors/arazzo-1/workflow/StepsVisitor.cjs +5 -7
  180. package/src/refractor/visitors/arazzo-1/workflow/StepsVisitor.mjs +5 -7
  181. package/src/refractor/visitors/arazzo-1/workflow/SuccessActionsVisitor.cjs +6 -8
  182. package/src/refractor/visitors/arazzo-1/workflow/SuccessActionsVisitor.mjs +6 -8
  183. package/src/refractor/visitors/arazzo-1/workflow/index.cjs +2 -4
  184. package/src/refractor/visitors/arazzo-1/workflow/index.mjs +2 -4
  185. package/src/refractor/visitors/generics/FixedFieldsVisitor.cjs +9 -7
  186. package/src/refractor/visitors/generics/FixedFieldsVisitor.mjs +8 -6
  187. package/src/refractor/visitors/generics/PatternedFieldsVisitor.cjs +8 -6
  188. package/src/refractor/visitors/generics/PatternedFieldsVisitor.mjs +8 -6
  189. package/types/apidom-ns-arazzo-1.d.ts +325 -300
  190. package/src/refractor/registration.cjs +0 -53
  191. package/src/refractor/registration.mjs +0 -34
  192. package/src/traversal/visitor.cjs +0 -38
  193. package/src/traversal/visitor.mjs +0 -35
@@ -1,46 +1,175 @@
1
- import { visit, dereference, refract as baseRefract, dispatchRefractorPlugins } from '@speclynx/apidom-core';
1
+ import { resolveSpecification, dispatchRefractorPlugins } from '@speclynx/apidom-core';
2
+ import { traverse } from '@speclynx/apidom-traverse';
3
+ import { refract as baseRefract } from '@speclynx/apidom-datamodel';
2
4
  import { path } from 'ramda';
3
5
  import specification from "./specification.mjs";
4
- import { keyMap, getNodeType } from "../traversal/visitor.mjs";
5
6
  import createToolbox from "./toolbox.mjs";
7
+ /**
8
+ * @public
9
+ */
10
+ /**
11
+ * @public
12
+ */
6
13
  /**
7
14
  * @public
8
15
  */
9
16
  const refract = (value, {
10
- specPath = ['visitors', 'document', 'objects', 'ArazzoSpecification', '$visitor'],
11
- plugins = []
17
+ element = 'arazzoSpecification1',
18
+ plugins = [],
19
+ specificationObj = specification
12
20
  } = {}) => {
13
- const element = baseRefract(value);
14
- const resolvedSpec = dereference(specification);
21
+ const genericElement = baseRefract(value);
22
+ const resolvedSpec = resolveSpecification(specificationObj);
23
+ const elementMap = resolvedSpec.elementMap;
24
+ const specPath = elementMap[element];
25
+ if (!specPath) {
26
+ throw new Error(`Unknown element type: "${element}"`);
27
+ }
15
28
 
16
29
  /**
17
30
  * This is where generic ApiDOM becomes semantic (namespace applied).
18
31
  * We don't allow consumers to hook into this translation.
19
- * Though we allow consumers to define their onw plugins on already transformed ApiDOM.
32
+ * Though we allow consumers to define their own plugins on already transformed ApiDOM.
20
33
  */
21
34
  const RootVisitorClass = path(specPath, resolvedSpec);
22
35
  const rootVisitor = new RootVisitorClass({
23
36
  specObj: resolvedSpec
24
37
  });
25
- visit(element, rootVisitor);
38
+ traverse(genericElement, rootVisitor);
26
39
 
27
40
  /**
28
41
  * Running plugins visitors means extra single traversal === performance hit.
29
42
  */
30
43
  return dispatchRefractorPlugins(rootVisitor.element, plugins, {
31
- toolboxCreator: createToolbox,
32
- visitorOptions: {
33
- keyMap,
34
- nodeTypeGetter: getNodeType
35
- }
44
+ toolboxCreator: createToolbox
36
45
  });
37
46
  };
38
47
 
39
48
  /**
40
49
  * @public
41
50
  */
42
- export const createRefractor = specPath => (value, options = {}) => refract(value, {
43
- specPath,
44
- ...options
51
+ export const refractArazzo = (value, options = {}) => refract(value, {
52
+ ...options,
53
+ element: 'arazzo'
54
+ });
55
+
56
+ /**
57
+ * @public
58
+ */
59
+ export const refractArazzoSpecification1 = (value, options = {}) => refract(value, {
60
+ ...options,
61
+ element: 'arazzoSpecification1'
62
+ });
63
+
64
+ /**
65
+ * @public
66
+ */
67
+ export const refractComponents = (value, options = {}) => refract(value, {
68
+ ...options,
69
+ element: 'components'
70
+ });
71
+
72
+ /**
73
+ * @public
74
+ */
75
+ export const refractCriterion = (value, options = {}) => refract(value, {
76
+ ...options,
77
+ element: 'criterion'
78
+ });
79
+
80
+ /**
81
+ * @public
82
+ */
83
+ export const refractCriterionExpressionType = (value, options = {}) => refract(value, {
84
+ ...options,
85
+ element: 'criterionExpressionType'
86
+ });
87
+
88
+ /**
89
+ * @public
90
+ */
91
+ export const refractFailureAction = (value, options = {}) => refract(value, {
92
+ ...options,
93
+ element: 'failureAction'
94
+ });
95
+
96
+ /**
97
+ * @public
98
+ */
99
+ export const refractInfo = (value, options = {}) => refract(value, {
100
+ ...options,
101
+ element: 'info'
102
+ });
103
+
104
+ /**
105
+ * @public
106
+ */
107
+ export const refractJSONSchema = (value, options = {}) => refract(value, {
108
+ ...options,
109
+ element: 'jSONSchema202012'
110
+ });
111
+
112
+ /**
113
+ * @public
114
+ */
115
+ export const refractParameter = (value, options = {}) => refract(value, {
116
+ ...options,
117
+ element: 'parameter'
118
+ });
119
+
120
+ /**
121
+ * @public
122
+ */
123
+ export const refractPayloadReplacement = (value, options = {}) => refract(value, {
124
+ ...options,
125
+ element: 'payloadReplacement'
126
+ });
127
+
128
+ /**
129
+ * @public
130
+ */
131
+ export const refractRequestBody = (value, options = {}) => refract(value, {
132
+ ...options,
133
+ element: 'requestBody'
134
+ });
135
+
136
+ /**
137
+ * @public
138
+ */
139
+ export const refractReusable = (value, options = {}) => refract(value, {
140
+ ...options,
141
+ element: 'reusable'
142
+ });
143
+
144
+ /**
145
+ * @public
146
+ */
147
+ export const refractSourceDescription = (value, options = {}) => refract(value, {
148
+ ...options,
149
+ element: 'sourceDescription'
150
+ });
151
+
152
+ /**
153
+ * @public
154
+ */
155
+ export const refractStep = (value, options = {}) => refract(value, {
156
+ ...options,
157
+ element: 'step'
158
+ });
159
+
160
+ /**
161
+ * @public
162
+ */
163
+ export const refractSuccessAction = (value, options = {}) => refract(value, {
164
+ ...options,
165
+ element: 'successAction'
166
+ });
167
+
168
+ /**
169
+ * @public
170
+ */
171
+ export const refractWorkflow = (value, options = {}) => refract(value, {
172
+ ...options,
173
+ element: 'workflow'
45
174
  });
46
175
  export default refract;
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
+ exports.__esModule = true;
5
+ var _apidomCore = require("@speclynx/apidom-core");
6
+ var _ramdaAdjunct = require("ramda-adjunct");
7
+ var _Arazzo = _interopRequireDefault(require("../elements/Arazzo.cjs"));
8
+ exports.ArazzoElement = _Arazzo.default;
9
+ var _ArazzoSpecification = _interopRequireDefault(require("../elements/ArazzoSpecification1.cjs"));
10
+ exports.ArazzoSpecification1Element = _ArazzoSpecification.default;
11
+ var _Components = _interopRequireDefault(require("../elements/Components.cjs"));
12
+ exports.ComponentsElement = _Components.default;
13
+ var _Criterion = _interopRequireDefault(require("../elements/Criterion.cjs"));
14
+ exports.CriterionElement = _Criterion.default;
15
+ var _CriterionExpressionType = _interopRequireDefault(require("../elements/CriterionExpressionType.cjs"));
16
+ exports.CriterionExpressionTypeElement = _CriterionExpressionType.default;
17
+ var _FailureAction = _interopRequireDefault(require("../elements/FailureAction.cjs"));
18
+ exports.FailureActionElement = _FailureAction.default;
19
+ var _Info = _interopRequireDefault(require("../elements/Info.cjs"));
20
+ exports.InfoElement = _Info.default;
21
+ var _JSONSchema = _interopRequireDefault(require("../elements/JSONSchema.cjs"));
22
+ exports.JSONSchemaElement = _JSONSchema.default;
23
+ var _Parameter = _interopRequireDefault(require("../elements/Parameter.cjs"));
24
+ exports.ParameterElement = _Parameter.default;
25
+ var _PayloadReplacement = _interopRequireDefault(require("../elements/PayloadReplacement.cjs"));
26
+ exports.PayloadReplacementElement = _PayloadReplacement.default;
27
+ var _RequestBody = _interopRequireDefault(require("../elements/RequestBody.cjs"));
28
+ exports.RequestBodyElement = _RequestBody.default;
29
+ var _Reusable = _interopRequireDefault(require("../elements/Reusable.cjs"));
30
+ exports.ReusableElement = _Reusable.default;
31
+ var _SourceDescription = _interopRequireDefault(require("../elements/SourceDescription.cjs"));
32
+ exports.SourceDescriptionElement = _SourceDescription.default;
33
+ var _Step = _interopRequireDefault(require("../elements/Step.cjs"));
34
+ exports.StepElement = _Step.default;
35
+ var _SuccessAction = _interopRequireDefault(require("../elements/SuccessAction.cjs"));
36
+ exports.SuccessActionElement = _SuccessAction.default;
37
+ var _Workflow = _interopRequireDefault(require("../elements/Workflow.cjs"));
38
+ exports.WorkflowElement = _Workflow.default;
39
+ var _specification = _interopRequireDefault(require("./specification.cjs"));
40
+ /**
41
+ * @public
42
+ */
43
+
44
+ const resolvedSpec = (0, _apidomCore.resolveSpecification)(_specification.default);
45
+ const getFixedFields = fixedFieldsSpec => {
46
+ return Object.entries(fixedFieldsSpec).map(([name, fieldSpec]) => {
47
+ if ((0, _ramdaAdjunct.isPlainObject)(fieldSpec)) {
48
+ return {
49
+ name,
50
+ ...fieldSpec
51
+ };
52
+ }
53
+ return {
54
+ name,
55
+ $visitor: fieldSpec
56
+ };
57
+ });
58
+ };
59
+ Object.defineProperty(_ArazzoSpecification.default, 'fixedFields', {
60
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.ArazzoSpecification.fixedFields),
61
+ enumerable: true
62
+ });
63
+ Object.defineProperty(_Components.default, 'fixedFields', {
64
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Components.fixedFields),
65
+ enumerable: true
66
+ });
67
+ Object.defineProperty(_Criterion.default, 'fixedFields', {
68
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Criterion.fixedFields),
69
+ enumerable: true
70
+ });
71
+ Object.defineProperty(_CriterionExpressionType.default, 'fixedFields', {
72
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.CriterionExpressionType.fixedFields),
73
+ enumerable: true
74
+ });
75
+ Object.defineProperty(_FailureAction.default, 'fixedFields', {
76
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.FailureAction.fixedFields),
77
+ enumerable: true
78
+ });
79
+ Object.defineProperty(_Info.default, 'fixedFields', {
80
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Info.fixedFields),
81
+ enumerable: true
82
+ });
83
+ Object.defineProperty(_JSONSchema.default, 'fixedFields', {
84
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.JSONSchema.fixedFields),
85
+ enumerable: true
86
+ });
87
+ Object.defineProperty(_Parameter.default, 'fixedFields', {
88
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Parameter.fixedFields),
89
+ enumerable: true
90
+ });
91
+ Object.defineProperty(_PayloadReplacement.default, 'fixedFields', {
92
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.PayloadReplacement.fixedFields),
93
+ enumerable: true
94
+ });
95
+ Object.defineProperty(_RequestBody.default, 'fixedFields', {
96
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.RequestBody.fixedFields),
97
+ enumerable: true
98
+ });
99
+ Object.defineProperty(_Reusable.default, 'fixedFields', {
100
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Reusable.fixedFields),
101
+ enumerable: true
102
+ });
103
+ Object.defineProperty(_SourceDescription.default, 'fixedFields', {
104
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.SourceDescription.fixedFields),
105
+ enumerable: true
106
+ });
107
+ Object.defineProperty(_Step.default, 'fixedFields', {
108
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Step.fixedFields),
109
+ enumerable: true
110
+ });
111
+ Object.defineProperty(_SuccessAction.default, 'fixedFields', {
112
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.SuccessAction.fixedFields),
113
+ enumerable: true
114
+ });
115
+ Object.defineProperty(_Workflow.default, 'fixedFields', {
116
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Workflow.fixedFields),
117
+ enumerable: true
118
+ });
@@ -0,0 +1,98 @@
1
+ import { resolveSpecification } from '@speclynx/apidom-core';
2
+ import { isPlainObject } from 'ramda-adjunct';
3
+ import ArazzoElement from "../elements/Arazzo.mjs";
4
+ import ArazzoSpecification1Element from "../elements/ArazzoSpecification1.mjs";
5
+ import ComponentsElement from "../elements/Components.mjs";
6
+ import CriterionElement from "../elements/Criterion.mjs";
7
+ import CriterionExpressionTypeElement from "../elements/CriterionExpressionType.mjs";
8
+ import FailureActionElement from "../elements/FailureAction.mjs";
9
+ import InfoElement from "../elements/Info.mjs";
10
+ import JSONSchemaElement from "../elements/JSONSchema.mjs";
11
+ import ParameterElement from "../elements/Parameter.mjs";
12
+ import PayloadReplacementElement from "../elements/PayloadReplacement.mjs";
13
+ import RequestBodyElement from "../elements/RequestBody.mjs";
14
+ import ReusableElement from "../elements/Reusable.mjs";
15
+ import SourceDescriptionElement from "../elements/SourceDescription.mjs";
16
+ import StepElement from "../elements/Step.mjs";
17
+ import SuccessActionElement from "../elements/SuccessAction.mjs";
18
+ import WorkflowElement from "../elements/Workflow.mjs";
19
+ import specification from "./specification.mjs";
20
+ /**
21
+ * @public
22
+ */
23
+ const resolvedSpec = resolveSpecification(specification);
24
+ const getFixedFields = fixedFieldsSpec => {
25
+ return Object.entries(fixedFieldsSpec).map(([name, fieldSpec]) => {
26
+ if (isPlainObject(fieldSpec)) {
27
+ return {
28
+ name,
29
+ ...fieldSpec
30
+ };
31
+ }
32
+ return {
33
+ name,
34
+ $visitor: fieldSpec
35
+ };
36
+ });
37
+ };
38
+ Object.defineProperty(ArazzoSpecification1Element, 'fixedFields', {
39
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.ArazzoSpecification.fixedFields),
40
+ enumerable: true
41
+ });
42
+ Object.defineProperty(ComponentsElement, 'fixedFields', {
43
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Components.fixedFields),
44
+ enumerable: true
45
+ });
46
+ Object.defineProperty(CriterionElement, 'fixedFields', {
47
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Criterion.fixedFields),
48
+ enumerable: true
49
+ });
50
+ Object.defineProperty(CriterionExpressionTypeElement, 'fixedFields', {
51
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.CriterionExpressionType.fixedFields),
52
+ enumerable: true
53
+ });
54
+ Object.defineProperty(FailureActionElement, 'fixedFields', {
55
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.FailureAction.fixedFields),
56
+ enumerable: true
57
+ });
58
+ Object.defineProperty(InfoElement, 'fixedFields', {
59
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Info.fixedFields),
60
+ enumerable: true
61
+ });
62
+ Object.defineProperty(JSONSchemaElement, 'fixedFields', {
63
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.JSONSchema.fixedFields),
64
+ enumerable: true
65
+ });
66
+ Object.defineProperty(ParameterElement, 'fixedFields', {
67
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Parameter.fixedFields),
68
+ enumerable: true
69
+ });
70
+ Object.defineProperty(PayloadReplacementElement, 'fixedFields', {
71
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.PayloadReplacement.fixedFields),
72
+ enumerable: true
73
+ });
74
+ Object.defineProperty(RequestBodyElement, 'fixedFields', {
75
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.RequestBody.fixedFields),
76
+ enumerable: true
77
+ });
78
+ Object.defineProperty(ReusableElement, 'fixedFields', {
79
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Reusable.fixedFields),
80
+ enumerable: true
81
+ });
82
+ Object.defineProperty(SourceDescriptionElement, 'fixedFields', {
83
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.SourceDescription.fixedFields),
84
+ enumerable: true
85
+ });
86
+ Object.defineProperty(StepElement, 'fixedFields', {
87
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Step.fixedFields),
88
+ enumerable: true
89
+ });
90
+ Object.defineProperty(SuccessActionElement, 'fixedFields', {
91
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.SuccessAction.fixedFields),
92
+ enumerable: true
93
+ });
94
+ Object.defineProperty(WorkflowElement, 'fixedFields', {
95
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Workflow.fixedFields),
96
+ enumerable: true
97
+ });
98
+ export { ArazzoElement, ArazzoSpecification1Element, ComponentsElement, CriterionElement, CriterionExpressionTypeElement, FailureActionElement, InfoElement, JSONSchemaElement, ParameterElement, PayloadReplacementElement, RequestBodyElement, ReusableElement, SourceDescriptionElement, StepElement, SuccessActionElement, WorkflowElement };
@@ -3,9 +3,10 @@
3
3
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
4
  exports.__esModule = true;
5
5
  exports.default = void 0;
6
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
7
+ var _apidomTraverse = require("@speclynx/apidom-traverse");
6
8
  var _apidomCore = require("@speclynx/apidom-core");
7
9
  var _Info = _interopRequireDefault(require("../../elements/Info.cjs"));
8
- var _visitor = require("../../traversal/visitor.cjs");
9
10
  /**
10
11
  * Arazzo 1.0.1 specification elements.
11
12
  */
@@ -44,19 +45,18 @@ var _visitor = require("../../traversal/visitor.cjs");
44
45
  * (InfoElement))
45
46
  */
46
47
 
47
- const isEmptyElement = element => (0, _apidomCore.isStringElement)(element) && (0, _apidomCore.includesClasses)(['yaml-e-node', 'yaml-e-scalar'], element);
48
+ const isEmptyElement = element => (0, _apidomDatamodel.isStringElement)(element) && (0, _apidomDatamodel.includesClasses)(element, ['yaml-e-node', 'yaml-e-scalar']);
48
49
  const schema = {
49
50
  // concrete types handling (CTs)
50
51
  ArazzoSpecification1Element: {
51
- info(...args) {
52
- return new _Info.default(...args);
53
- }
52
+ info: (content, meta, attributes) => new _Info.default(content, meta, attributes)
54
53
  }
55
54
  };
56
55
  const findElementFactory = (ancestor, keyName) => {
57
- const elementType = (0, _visitor.getNodeType)(ancestor); // @ts-ignore
56
+ const elementType = (0, _apidomTraverse.getNodeType)(ancestor);
58
57
  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];
58
+ if (typeof keyMapping === 'undefined') return undefined;
59
+ return Object.hasOwn(keyMapping, '[key: *]') ? keyMapping['[key: *]'] : keyMapping[keyName];
60
60
  };
61
61
 
62
62
  /**
@@ -64,25 +64,26 @@ const findElementFactory = (ancestor, keyName) => {
64
64
  */
65
65
  const plugin = () => () => ({
66
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);
67
+ StringElement(path) {
68
+ const element = path.node;
69
+ if (!isEmptyElement(element)) return;
70
+ const ancestors = path.getAncestorNodes().filter(_apidomDatamodel.isElement);
71
+ const parentElement = ancestors.at(0); // immediate parent first
71
72
  let elementFactory;
72
73
  let context;
73
- if ((0, _apidomCore.isArrayElement)(parentElement)) {
74
+ if ((0, _apidomDatamodel.isArrayElement)(parentElement)) {
74
75
  context = element;
75
76
  elementFactory = findElementFactory(parentElement, '<*>');
76
- } else if ((0, _apidomCore.isMemberElement)(parentElement)) {
77
- context = lineage.at(-2);
77
+ } else if ((0, _apidomDatamodel.isMemberElement)(parentElement)) {
78
+ context = ancestors.at(1); // grandparent
78
79
  elementFactory = findElementFactory(context, (0, _apidomCore.toValue)(parentElement.key));
79
80
  }
80
81
 
81
82
  // 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));
83
+ if (typeof elementFactory !== 'function') return;
84
+ const replacement = elementFactory(undefined, (0, _apidomDatamodel.cloneDeep)(element.meta), (0, _apidomDatamodel.cloneDeep)(element.attributes));
85
+ _apidomDatamodel.SourceMapElement.transfer(element, replacement);
86
+ path.replaceWith(replacement);
86
87
  }
87
88
  }
88
89
  });
@@ -1,10 +1,11 @@
1
- import { isStringElement, isArrayElement, isElement, isMemberElement, includesClasses, cloneDeep, toValue } from '@speclynx/apidom-core';
1
+ import { isStringElement, isArrayElement, isElement, isMemberElement, includesClasses, cloneDeep, SourceMapElement } from '@speclynx/apidom-datamodel';
2
+ import { getNodeType } from '@speclynx/apidom-traverse';
3
+ import { toValue } from '@speclynx/apidom-core';
2
4
 
3
5
  /**
4
6
  * Arazzo 1.0.1 specification elements.
5
7
  */
6
8
  import InfoElement from "../../elements/Info.mjs";
7
- import { getNodeType } from "../../traversal/visitor.mjs";
8
9
  /**
9
10
  * This plugin is specific to YAML 1.2 format, which allows defining key-value pairs
10
11
  * with empty key, empty value, or both. If the value is not provided in YAML format,
@@ -38,19 +39,18 @@ import { getNodeType } from "../../traversal/visitor.mjs";
38
39
  * (StringElement)
39
40
  * (InfoElement))
40
41
  */
41
- const isEmptyElement = element => isStringElement(element) && includesClasses(['yaml-e-node', 'yaml-e-scalar'], element);
42
+ const isEmptyElement = element => isStringElement(element) && includesClasses(element, ['yaml-e-node', 'yaml-e-scalar']);
42
43
  const schema = {
43
44
  // concrete types handling (CTs)
44
45
  ArazzoSpecification1Element: {
45
- info(...args) {
46
- return new InfoElement(...args);
47
- }
46
+ info: (content, meta, attributes) => new InfoElement(content, meta, attributes)
48
47
  }
49
48
  };
50
49
  const findElementFactory = (ancestor, keyName) => {
51
- const elementType = getNodeType(ancestor); // @ts-ignore
50
+ const elementType = getNodeType(ancestor);
52
51
  const keyMapping = schema[elementType] || schema[toValue(ancestor.classes.first)];
53
- return typeof keyMapping === 'undefined' ? undefined : Object.hasOwn(keyMapping, '[key: *]') ? keyMapping['[key: *]'] : keyMapping[keyName];
52
+ if (typeof keyMapping === 'undefined') return undefined;
53
+ return Object.hasOwn(keyMapping, '[key: *]') ? keyMapping['[key: *]'] : keyMapping[keyName];
54
54
  };
55
55
 
56
56
  /**
@@ -58,25 +58,26 @@ const findElementFactory = (ancestor, keyName) => {
58
58
  */
59
59
  const plugin = () => () => ({
60
60
  visitor: {
61
- StringElement(element, key, parent, path, ancestors) {
62
- if (!isEmptyElement(element)) return undefined;
63
- const lineage = [...ancestors, parent].filter(isElement);
64
- const parentElement = lineage.at(-1);
61
+ StringElement(path) {
62
+ const element = path.node;
63
+ if (!isEmptyElement(element)) return;
64
+ const ancestors = path.getAncestorNodes().filter(isElement);
65
+ const parentElement = ancestors.at(0); // immediate parent first
65
66
  let elementFactory;
66
67
  let context;
67
68
  if (isArrayElement(parentElement)) {
68
69
  context = element;
69
70
  elementFactory = findElementFactory(parentElement, '<*>');
70
71
  } else if (isMemberElement(parentElement)) {
71
- context = lineage.at(-2);
72
+ context = ancestors.at(1); // grandparent
72
73
  elementFactory = findElementFactory(context, toValue(parentElement.key));
73
74
  }
74
75
 
75
76
  // no element factory found
76
- if (typeof elementFactory !== 'function') return undefined;
77
- return elementFactory.call({
78
- context
79
- }, undefined, cloneDeep(element.meta), cloneDeep(element.attributes));
77
+ if (typeof elementFactory !== 'function') return;
78
+ const replacement = elementFactory(undefined, cloneDeep(element.meta), cloneDeep(element.attributes));
79
+ SourceMapElement.transfer(element, replacement);
80
+ path.replaceWith(replacement);
80
81
  }
81
82
  }
82
83
  });
@@ -3,15 +3,16 @@
3
3
  exports.__esModule = true;
4
4
  exports.isReusableLikeElement = exports.isArazzoSpecificationExtension = void 0;
5
5
  var _ramda = require("ramda");
6
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
6
7
  var _apidomCore = require("@speclynx/apidom-core");
7
8
  /**
8
9
  * @public
9
10
  */
10
11
  const isArazzoSpecificationExtension = element => {
11
- return (0, _apidomCore.isStringElement)(element.key) && (0, _ramda.startsWith)('x-', (0, _apidomCore.toValue)(element.key));
12
+ return (0, _apidomDatamodel.isStringElement)(element.key) && (0, _ramda.startsWith)('x-', (0, _apidomCore.toValue)(element.key));
12
13
  };
13
14
  exports.isArazzoSpecificationExtension = isArazzoSpecificationExtension;
14
15
  const isReusableLikeElement = element => {
15
- return (0, _apidomCore.isObjectElement)(element) && element.hasKey('reference');
16
+ return (0, _apidomDatamodel.isObjectElement)(element) && element.hasKey('reference');
16
17
  };
17
18
  exports.isReusableLikeElement = isReusableLikeElement;
@@ -1,5 +1,6 @@
1
1
  import { startsWith } from 'ramda';
2
- import { isStringElement, toValue, isObjectElement } from '@speclynx/apidom-core';
2
+ import { isStringElement, isObjectElement } from '@speclynx/apidom-datamodel';
3
+ import { toValue } from '@speclynx/apidom-core';
3
4
  /**
4
5
  * @public
5
6
  */