@speclynx/apidom-ns-openapi-3-1 1.12.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/NOTICE +16 -7
  3. package/README.md +16 -29
  4. package/dist/apidom-ns-openapi-3-1.browser.js +13422 -14424
  5. package/dist/apidom-ns-openapi-3-1.browser.min.js +1 -1
  6. package/package.json +11 -11
  7. package/src/elements/JsonSchemaDialect.cjs +2 -2
  8. package/src/elements/JsonSchemaDialect.mjs +1 -1
  9. package/src/elements/OpenApi3-1.cjs +2 -2
  10. package/src/elements/OpenApi3-1.mjs +1 -1
  11. package/src/elements/PathItem.cjs +24 -24
  12. package/src/elements/PathItem.mjs +24 -24
  13. package/src/elements/nces/ComponentsPathItems.cjs +2 -2
  14. package/src/elements/nces/ComponentsPathItems.mjs +1 -1
  15. package/src/elements/nces/Webhooks.cjs +2 -2
  16. package/src/elements/nces/Webhooks.mjs +1 -1
  17. package/src/index.cjs +73 -49
  18. package/src/index.mjs +6 -3
  19. package/src/namespace.cjs +0 -1
  20. package/src/predicates.cjs +56 -187
  21. package/src/predicates.mjs +29 -186
  22. package/src/refractor/index.cjs +338 -17
  23. package/src/refractor/index.mjs +305 -16
  24. package/src/refractor/inspect.cjs +207 -0
  25. package/src/refractor/inspect.mjs +171 -0
  26. package/src/refractor/plugins/normalize-header-examples/NormalizeStorage.cjs +5 -5
  27. package/src/refractor/plugins/normalize-header-examples/NormalizeStorage.mjs +1 -1
  28. package/src/refractor/plugins/normalize-header-examples/index.cjs +11 -7
  29. package/src/refractor/plugins/normalize-header-examples/index.mjs +8 -4
  30. package/src/refractor/plugins/normalize-operation-ids.cjs +13 -6
  31. package/src/refractor/plugins/normalize-operation-ids.mjs +13 -6
  32. package/src/refractor/plugins/normalize-parameter-examples.cjs +11 -7
  33. package/src/refractor/plugins/normalize-parameter-examples.mjs +8 -4
  34. package/src/refractor/plugins/normalize-parameters.cjs +11 -5
  35. package/src/refractor/plugins/normalize-parameters.mjs +11 -5
  36. package/src/refractor/plugins/normalize-security-requirements.cjs +8 -4
  37. package/src/refractor/plugins/normalize-security-requirements.mjs +8 -4
  38. package/src/refractor/plugins/normalize-servers.cjs +15 -9
  39. package/src/refractor/plugins/normalize-servers.mjs +15 -9
  40. package/src/refractor/plugins/replace-empty-element.cjs +32 -30
  41. package/src/refractor/plugins/replace-empty-element.mjs +16 -15
  42. package/src/refractor/predicates.cjs +36 -0
  43. package/src/refractor/predicates.mjs +31 -0
  44. package/src/refractor/specification.cjs +43 -4
  45. package/src/refractor/specification.mjs +43 -4
  46. package/src/refractor/toolbox.cjs +12 -21
  47. package/src/refractor/toolbox.mjs +9 -16
  48. package/src/refractor/visitors/open-api-3-1/JsonSchemaDialectVisitor.cjs +5 -5
  49. package/src/refractor/visitors/open-api-3-1/JsonSchemaDialectVisitor.mjs +6 -6
  50. package/src/refractor/visitors/open-api-3-1/OpenapiVisitor.cjs +25 -0
  51. package/src/refractor/visitors/open-api-3-1/OpenapiVisitor.mjs +19 -0
  52. package/src/refractor/visitors/open-api-3-1/WebhooksVisitor.cjs +4 -5
  53. package/src/refractor/visitors/open-api-3-1/WebhooksVisitor.mjs +5 -6
  54. package/src/refractor/visitors/open-api-3-1/bases.cjs +46 -0
  55. package/src/refractor/visitors/open-api-3-1/bases.mjs +43 -0
  56. package/src/refractor/visitors/open-api-3-1/callback/index.cjs +2 -3
  57. package/src/refractor/visitors/open-api-3-1/callback/index.mjs +2 -3
  58. package/src/refractor/visitors/open-api-3-1/components/PathItemsVisitor.cjs +4 -5
  59. package/src/refractor/visitors/open-api-3-1/components/PathItemsVisitor.mjs +5 -6
  60. package/src/refractor/visitors/open-api-3-1/components/SchemasVisitor.cjs +2 -2
  61. package/src/refractor/visitors/open-api-3-1/components/SchemasVisitor.mjs +3 -5
  62. package/src/refractor/visitors/open-api-3-1/index.cjs +5 -4
  63. package/src/refractor/visitors/open-api-3-1/index.mjs +6 -5
  64. package/src/refractor/visitors/open-api-3-1/schema/index.cjs +11 -10
  65. package/src/refractor/visitors/open-api-3-1/schema/index.mjs +12 -11
  66. package/types/apidom-ns-openapi-3-1.d.ts +435 -274
  67. package/src/refractor/registration.cjs +0 -102
  68. package/src/refractor/registration.mjs +0 -66
  69. package/src/traversal/visitor.cjs +0 -57
  70. package/src/traversal/visitor.mjs +0 -54
@@ -0,0 +1,207 @@
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 _Callback = _interopRequireDefault(require("../elements/Callback.cjs"));
8
+ exports.CallbackElement = _Callback.default;
9
+ var _Components = _interopRequireDefault(require("../elements/Components.cjs"));
10
+ exports.ComponentsElement = _Components.default;
11
+ var _Contact = _interopRequireDefault(require("../elements/Contact.cjs"));
12
+ exports.ContactElement = _Contact.default;
13
+ var _Discriminator = _interopRequireDefault(require("../elements/Discriminator.cjs"));
14
+ exports.DiscriminatorElement = _Discriminator.default;
15
+ var _Encoding = _interopRequireDefault(require("../elements/Encoding.cjs"));
16
+ exports.EncodingElement = _Encoding.default;
17
+ var _Example = _interopRequireDefault(require("../elements/Example.cjs"));
18
+ exports.ExampleElement = _Example.default;
19
+ var _ExternalDocumentation = _interopRequireDefault(require("../elements/ExternalDocumentation.cjs"));
20
+ exports.ExternalDocumentationElement = _ExternalDocumentation.default;
21
+ var _Header = _interopRequireDefault(require("../elements/Header.cjs"));
22
+ exports.HeaderElement = _Header.default;
23
+ var _Info = _interopRequireDefault(require("../elements/Info.cjs"));
24
+ exports.InfoElement = _Info.default;
25
+ var _JsonSchemaDialect = _interopRequireDefault(require("../elements/JsonSchemaDialect.cjs"));
26
+ exports.JsonSchemaDialectElement = _JsonSchemaDialect.default;
27
+ var _License = _interopRequireDefault(require("../elements/License.cjs"));
28
+ exports.LicenseElement = _License.default;
29
+ var _Link = _interopRequireDefault(require("../elements/Link.cjs"));
30
+ exports.LinkElement = _Link.default;
31
+ var _MediaType = _interopRequireDefault(require("../elements/MediaType.cjs"));
32
+ exports.MediaTypeElement = _MediaType.default;
33
+ var _OAuthFlow = _interopRequireDefault(require("../elements/OAuthFlow.cjs"));
34
+ exports.OAuthFlowElement = _OAuthFlow.default;
35
+ var _OAuthFlows = _interopRequireDefault(require("../elements/OAuthFlows.cjs"));
36
+ exports.OAuthFlowsElement = _OAuthFlows.default;
37
+ var _Openapi = _interopRequireDefault(require("../elements/Openapi.cjs"));
38
+ exports.OpenapiElement = _Openapi.default;
39
+ var _OpenApi = _interopRequireDefault(require("../elements/OpenApi3-1.cjs"));
40
+ exports.OpenApi3_1Element = _OpenApi.default;
41
+ var _Operation = _interopRequireDefault(require("../elements/Operation.cjs"));
42
+ exports.OperationElement = _Operation.default;
43
+ var _Parameter = _interopRequireDefault(require("../elements/Parameter.cjs"));
44
+ exports.ParameterElement = _Parameter.default;
45
+ var _PathItem = _interopRequireDefault(require("../elements/PathItem.cjs"));
46
+ exports.PathItemElement = _PathItem.default;
47
+ var _Paths = _interopRequireDefault(require("../elements/Paths.cjs"));
48
+ exports.PathsElement = _Paths.default;
49
+ var _Reference = _interopRequireDefault(require("../elements/Reference.cjs"));
50
+ exports.ReferenceElement = _Reference.default;
51
+ var _RequestBody = _interopRequireDefault(require("../elements/RequestBody.cjs"));
52
+ exports.RequestBodyElement = _RequestBody.default;
53
+ var _Response = _interopRequireDefault(require("../elements/Response.cjs"));
54
+ exports.ResponseElement = _Response.default;
55
+ var _Responses = _interopRequireDefault(require("../elements/Responses.cjs"));
56
+ exports.ResponsesElement = _Responses.default;
57
+ var _Schema = _interopRequireDefault(require("../elements/Schema.cjs"));
58
+ exports.SchemaElement = _Schema.default;
59
+ var _SecurityRequirement = _interopRequireDefault(require("../elements/SecurityRequirement.cjs"));
60
+ exports.SecurityRequirementElement = _SecurityRequirement.default;
61
+ var _SecurityScheme = _interopRequireDefault(require("../elements/SecurityScheme.cjs"));
62
+ exports.SecuritySchemeElement = _SecurityScheme.default;
63
+ var _Server = _interopRequireDefault(require("../elements/Server.cjs"));
64
+ exports.ServerElement = _Server.default;
65
+ var _ServerVariable = _interopRequireDefault(require("../elements/ServerVariable.cjs"));
66
+ exports.ServerVariableElement = _ServerVariable.default;
67
+ var _Tag = _interopRequireDefault(require("../elements/Tag.cjs"));
68
+ exports.TagElement = _Tag.default;
69
+ var _Xml = _interopRequireDefault(require("../elements/Xml.cjs"));
70
+ exports.XmlElement = _Xml.default;
71
+ var _specification = _interopRequireDefault(require("./specification.cjs"));
72
+ /**
73
+ * OpenAPI 3.1 specification elements.
74
+ */
75
+
76
+ /**
77
+ * @public
78
+ */
79
+
80
+ // Resolve specification to dereference $ref pointers
81
+ const resolvedSpec = (0, _apidomCore.resolveSpecification)(_specification.default);
82
+
83
+ // Extract fixed fields as list of { name, alias?, $visitor }
84
+ const getFixedFields = fixedFieldsSpec => {
85
+ return Object.entries(fixedFieldsSpec).map(([name, fieldSpec]) => {
86
+ if ((0, _ramdaAdjunct.isPlainObject)(fieldSpec)) {
87
+ return {
88
+ name,
89
+ ...fieldSpec
90
+ };
91
+ }
92
+ return {
93
+ name,
94
+ $visitor: fieldSpec
95
+ };
96
+ });
97
+ };
98
+
99
+ // OpenAPI 3.1 specification elements
100
+ Object.defineProperty(_OpenApi.default, 'fixedFields', {
101
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.OpenApi.fixedFields),
102
+ enumerable: true
103
+ });
104
+ Object.defineProperty(_Info.default, 'fixedFields', {
105
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Info.fixedFields),
106
+ enumerable: true
107
+ });
108
+ Object.defineProperty(_Contact.default, 'fixedFields', {
109
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Contact.fixedFields),
110
+ enumerable: true
111
+ });
112
+ Object.defineProperty(_License.default, 'fixedFields', {
113
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.License.fixedFields),
114
+ enumerable: true
115
+ });
116
+ Object.defineProperty(_Server.default, 'fixedFields', {
117
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Server.fixedFields),
118
+ enumerable: true
119
+ });
120
+ Object.defineProperty(_ServerVariable.default, 'fixedFields', {
121
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.ServerVariable.fixedFields),
122
+ enumerable: true
123
+ });
124
+ Object.defineProperty(_Components.default, 'fixedFields', {
125
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Components.fixedFields),
126
+ enumerable: true
127
+ });
128
+ Object.defineProperty(_PathItem.default, 'fixedFields', {
129
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.PathItem.fixedFields),
130
+ enumerable: true
131
+ });
132
+ Object.defineProperty(_Operation.default, 'fixedFields', {
133
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Operation.fixedFields),
134
+ enumerable: true
135
+ });
136
+ Object.defineProperty(_ExternalDocumentation.default, 'fixedFields', {
137
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.ExternalDocumentation.fixedFields),
138
+ enumerable: true
139
+ });
140
+ Object.defineProperty(_Parameter.default, 'fixedFields', {
141
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Parameter.fixedFields),
142
+ enumerable: true
143
+ });
144
+ Object.defineProperty(_RequestBody.default, 'fixedFields', {
145
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.RequestBody.fixedFields),
146
+ enumerable: true
147
+ });
148
+ Object.defineProperty(_MediaType.default, 'fixedFields', {
149
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.MediaType.fixedFields),
150
+ enumerable: true
151
+ });
152
+ Object.defineProperty(_Encoding.default, 'fixedFields', {
153
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Encoding.fixedFields),
154
+ enumerable: true
155
+ });
156
+ Object.defineProperty(_Responses.default, 'fixedFields', {
157
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Responses.fixedFields),
158
+ enumerable: true
159
+ });
160
+ Object.defineProperty(_Response.default, 'fixedFields', {
161
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Response.fixedFields),
162
+ enumerable: true
163
+ });
164
+ Object.defineProperty(_Example.default, 'fixedFields', {
165
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Example.fixedFields),
166
+ enumerable: true
167
+ });
168
+ Object.defineProperty(_Link.default, 'fixedFields', {
169
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Link.fixedFields),
170
+ enumerable: true
171
+ });
172
+ Object.defineProperty(_Header.default, 'fixedFields', {
173
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Header.fixedFields),
174
+ enumerable: true
175
+ });
176
+ Object.defineProperty(_Tag.default, 'fixedFields', {
177
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Tag.fixedFields),
178
+ enumerable: true
179
+ });
180
+ Object.defineProperty(_Reference.default, 'fixedFields', {
181
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Reference.fixedFields),
182
+ enumerable: true
183
+ });
184
+ Object.defineProperty(_Schema.default, 'fixedFields', {
185
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Schema.fixedFields),
186
+ enumerable: true
187
+ });
188
+ Object.defineProperty(_Discriminator.default, 'fixedFields', {
189
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Discriminator.fixedFields),
190
+ enumerable: true
191
+ });
192
+ Object.defineProperty(_Xml.default, 'fixedFields', {
193
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.XML.fixedFields),
194
+ enumerable: true
195
+ });
196
+ Object.defineProperty(_SecurityScheme.default, 'fixedFields', {
197
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.SecurityScheme.fixedFields),
198
+ enumerable: true
199
+ });
200
+ Object.defineProperty(_OAuthFlows.default, 'fixedFields', {
201
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.OAuthFlows.fixedFields),
202
+ enumerable: true
203
+ });
204
+ Object.defineProperty(_OAuthFlow.default, 'fixedFields', {
205
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.OAuthFlow.fixedFields),
206
+ enumerable: true
207
+ });
@@ -0,0 +1,171 @@
1
+ import { resolveSpecification } from '@speclynx/apidom-core';
2
+ import { isPlainObject } from 'ramda-adjunct';
3
+
4
+ /**
5
+ * OpenAPI 3.1 specification elements.
6
+ */
7
+ import CallbackElement from "../elements/Callback.mjs";
8
+ import ComponentsElement from "../elements/Components.mjs";
9
+ import ContactElement from "../elements/Contact.mjs";
10
+ import DiscriminatorElement from "../elements/Discriminator.mjs";
11
+ import EncodingElement from "../elements/Encoding.mjs";
12
+ import ExampleElement from "../elements/Example.mjs";
13
+ import ExternalDocumentationElement from "../elements/ExternalDocumentation.mjs";
14
+ import HeaderElement from "../elements/Header.mjs";
15
+ import InfoElement from "../elements/Info.mjs";
16
+ import JsonSchemaDialectElement from "../elements/JsonSchemaDialect.mjs";
17
+ import LicenseElement from "../elements/License.mjs";
18
+ import LinkElement from "../elements/Link.mjs";
19
+ import MediaTypeElement from "../elements/MediaType.mjs";
20
+ import OAuthFlowElement from "../elements/OAuthFlow.mjs";
21
+ import OAuthFlowsElement from "../elements/OAuthFlows.mjs";
22
+ import OpenapiElement from "../elements/Openapi.mjs";
23
+ import OpenApi3_1Element from "../elements/OpenApi3-1.mjs";
24
+ import OperationElement from "../elements/Operation.mjs";
25
+ import ParameterElement from "../elements/Parameter.mjs";
26
+ import PathItemElement from "../elements/PathItem.mjs";
27
+ import PathsElement from "../elements/Paths.mjs";
28
+ import ReferenceElement from "../elements/Reference.mjs";
29
+ import RequestBodyElement from "../elements/RequestBody.mjs";
30
+ import ResponseElement from "../elements/Response.mjs";
31
+ import ResponsesElement from "../elements/Responses.mjs";
32
+ import SchemaElement from "../elements/Schema.mjs";
33
+ import SecurityRequirementElement from "../elements/SecurityRequirement.mjs";
34
+ import SecuritySchemeElement from "../elements/SecurityScheme.mjs";
35
+ import ServerElement from "../elements/Server.mjs";
36
+ import ServerVariableElement from "../elements/ServerVariable.mjs";
37
+ import TagElement from "../elements/Tag.mjs";
38
+ import XmlElement from "../elements/Xml.mjs";
39
+ import specification from "./specification.mjs";
40
+ /**
41
+ * @public
42
+ */
43
+ // Resolve specification to dereference $ref pointers
44
+ const resolvedSpec = resolveSpecification(specification);
45
+
46
+ // Extract fixed fields as list of { name, alias?, $visitor }
47
+ const getFixedFields = fixedFieldsSpec => {
48
+ return Object.entries(fixedFieldsSpec).map(([name, fieldSpec]) => {
49
+ if (isPlainObject(fieldSpec)) {
50
+ return {
51
+ name,
52
+ ...fieldSpec
53
+ };
54
+ }
55
+ return {
56
+ name,
57
+ $visitor: fieldSpec
58
+ };
59
+ });
60
+ };
61
+
62
+ // OpenAPI 3.1 specification elements
63
+ Object.defineProperty(OpenApi3_1Element, 'fixedFields', {
64
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.OpenApi.fixedFields),
65
+ enumerable: true
66
+ });
67
+ Object.defineProperty(InfoElement, 'fixedFields', {
68
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Info.fixedFields),
69
+ enumerable: true
70
+ });
71
+ Object.defineProperty(ContactElement, 'fixedFields', {
72
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Contact.fixedFields),
73
+ enumerable: true
74
+ });
75
+ Object.defineProperty(LicenseElement, 'fixedFields', {
76
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.License.fixedFields),
77
+ enumerable: true
78
+ });
79
+ Object.defineProperty(ServerElement, 'fixedFields', {
80
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Server.fixedFields),
81
+ enumerable: true
82
+ });
83
+ Object.defineProperty(ServerVariableElement, 'fixedFields', {
84
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.ServerVariable.fixedFields),
85
+ enumerable: true
86
+ });
87
+ Object.defineProperty(ComponentsElement, 'fixedFields', {
88
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Components.fixedFields),
89
+ enumerable: true
90
+ });
91
+ Object.defineProperty(PathItemElement, 'fixedFields', {
92
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.PathItem.fixedFields),
93
+ enumerable: true
94
+ });
95
+ Object.defineProperty(OperationElement, 'fixedFields', {
96
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Operation.fixedFields),
97
+ enumerable: true
98
+ });
99
+ Object.defineProperty(ExternalDocumentationElement, 'fixedFields', {
100
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.ExternalDocumentation.fixedFields),
101
+ enumerable: true
102
+ });
103
+ Object.defineProperty(ParameterElement, 'fixedFields', {
104
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Parameter.fixedFields),
105
+ enumerable: true
106
+ });
107
+ Object.defineProperty(RequestBodyElement, 'fixedFields', {
108
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.RequestBody.fixedFields),
109
+ enumerable: true
110
+ });
111
+ Object.defineProperty(MediaTypeElement, 'fixedFields', {
112
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.MediaType.fixedFields),
113
+ enumerable: true
114
+ });
115
+ Object.defineProperty(EncodingElement, 'fixedFields', {
116
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Encoding.fixedFields),
117
+ enumerable: true
118
+ });
119
+ Object.defineProperty(ResponsesElement, 'fixedFields', {
120
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Responses.fixedFields),
121
+ enumerable: true
122
+ });
123
+ Object.defineProperty(ResponseElement, 'fixedFields', {
124
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Response.fixedFields),
125
+ enumerable: true
126
+ });
127
+ Object.defineProperty(ExampleElement, 'fixedFields', {
128
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Example.fixedFields),
129
+ enumerable: true
130
+ });
131
+ Object.defineProperty(LinkElement, 'fixedFields', {
132
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Link.fixedFields),
133
+ enumerable: true
134
+ });
135
+ Object.defineProperty(HeaderElement, 'fixedFields', {
136
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Header.fixedFields),
137
+ enumerable: true
138
+ });
139
+ Object.defineProperty(TagElement, 'fixedFields', {
140
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Tag.fixedFields),
141
+ enumerable: true
142
+ });
143
+ Object.defineProperty(ReferenceElement, 'fixedFields', {
144
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Reference.fixedFields),
145
+ enumerable: true
146
+ });
147
+ Object.defineProperty(SchemaElement, 'fixedFields', {
148
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Schema.fixedFields),
149
+ enumerable: true
150
+ });
151
+ Object.defineProperty(DiscriminatorElement, 'fixedFields', {
152
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.Discriminator.fixedFields),
153
+ enumerable: true
154
+ });
155
+ Object.defineProperty(XmlElement, 'fixedFields', {
156
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.XML.fixedFields),
157
+ enumerable: true
158
+ });
159
+ Object.defineProperty(SecuritySchemeElement, 'fixedFields', {
160
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.SecurityScheme.fixedFields),
161
+ enumerable: true
162
+ });
163
+ Object.defineProperty(OAuthFlowsElement, 'fixedFields', {
164
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.OAuthFlows.fixedFields),
165
+ enumerable: true
166
+ });
167
+ Object.defineProperty(OAuthFlowElement, 'fixedFields', {
168
+ get: () => getFixedFields(resolvedSpec.visitors.document.objects.OAuthFlow.fixedFields),
169
+ enumerable: true
170
+ });
171
+ export { CallbackElement, ComponentsElement, ContactElement, DiscriminatorElement, EncodingElement, ExampleElement, ExternalDocumentationElement, HeaderElement, InfoElement, JsonSchemaDialectElement, LicenseElement, LinkElement, MediaTypeElement, OAuthFlowElement, OAuthFlowsElement, OpenapiElement, OpenApi3_1Element, OperationElement, ParameterElement, PathItemElement, PathsElement, ReferenceElement, RequestBodyElement, ResponseElement, ResponsesElement, SchemaElement, SecurityRequirementElement, SecuritySchemeElement, ServerElement, ServerVariableElement, TagElement, XmlElement };
@@ -2,7 +2,7 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.default = void 0;
5
- var _apidomCore = require("@speclynx/apidom-core");
5
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
6
6
  class NormalizeStorage {
7
7
  internalStore;
8
8
  constructor(storageElement, storageField, storageSubField) {
@@ -13,13 +13,13 @@ class NormalizeStorage {
13
13
  get store() {
14
14
  if (!this.internalStore) {
15
15
  let rootStore = this.storageElement.get(this.storageField);
16
- if (!(0, _apidomCore.isObjectElement)(rootStore)) {
17
- rootStore = new _apidomCore.ObjectElement();
16
+ if (!(0, _apidomDatamodel.isObjectElement)(rootStore)) {
17
+ rootStore = new _apidomDatamodel.ObjectElement();
18
18
  this.storageElement.set(this.storageField, rootStore);
19
19
  }
20
20
  let store = rootStore.get(this.storageSubField);
21
- if (!(0, _apidomCore.isArrayElement)(store)) {
22
- store = new _apidomCore.ArrayElement();
21
+ if (!(0, _apidomDatamodel.isArrayElement)(store)) {
22
+ store = new _apidomDatamodel.ArrayElement();
23
23
  rootStore.set(this.storageSubField, store);
24
24
  }
25
25
  this.internalStore = store;
@@ -1,4 +1,4 @@
1
- import { ArrayElement, ObjectElement, isObjectElement, isArrayElement } from '@speclynx/apidom-core';
1
+ import { ArrayElement, ObjectElement, isObjectElement, isArrayElement } from '@speclynx/apidom-datamodel';
2
2
  class NormalizeStorage {
3
3
  internalStore;
4
4
  constructor(storageElement, storageField, storageSubField) {
@@ -3,7 +3,7 @@
3
3
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
4
  exports.__esModule = true;
5
5
  exports.default = void 0;
6
- var _apidomCore = require("@speclynx/apidom-core");
6
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
7
7
  var _NormalizeStorage = _interopRequireDefault(require("./NormalizeStorage.cjs"));
8
8
  /**
9
9
  * Override of Schema.example and Schema.examples field inside the Header Objects.
@@ -35,7 +35,8 @@ const plugin = ({
35
35
  return {
36
36
  visitor: {
37
37
  OpenApi3_1Element: {
38
- enter(element) {
38
+ enter(path) {
39
+ const element = path.node;
39
40
  storage = new _NormalizeStorage.default(element, storageField, 'header-examples');
40
41
  },
41
42
  leave() {
@@ -43,7 +44,10 @@ const plugin = ({
43
44
  }
44
45
  },
45
46
  HeaderElement: {
46
- leave(headerElement, key, parent, path, ancestors) {
47
+ leave(path) {
48
+ const headerElement = path.node;
49
+ const ancestors = path.getAncestorNodes().reverse(); // root to parent order
50
+
47
51
  // skip visiting this Header Object
48
52
  if (ancestors.some(predicates.isComponentsElement)) {
49
53
  return;
@@ -57,7 +61,7 @@ const plugin = ({
57
61
  if (typeof headerElement.schema?.example === 'undefined' && typeof headerElement.schema?.examples === 'undefined') {
58
62
  return;
59
63
  }
60
- const headerJSONPointer = ancestorLineageToJSONPointer([...ancestors, parent, headerElement]);
64
+ const headerJSONPointer = ancestorLineageToJSONPointer([...ancestors, headerElement]);
61
65
 
62
66
  // skip visiting this Header Object if it's already normalized
63
67
  if (storage.includes(headerJSONPointer)) {
@@ -71,7 +75,7 @@ const plugin = ({
71
75
  if (typeof headerElement.examples !== 'undefined' && predicates.isObjectElement(headerElement.examples)) {
72
76
  // @ts-ignore
73
77
  const examples = headerElement.examples.map(example => {
74
- return _apidomCore.cloneDeep.safe(example.value);
78
+ return _apidomDatamodel.cloneDeep.safe(example.value);
75
79
  });
76
80
  if (typeof headerElement.schema.examples !== 'undefined') {
77
81
  headerElement.schema.set('examples', examples);
@@ -89,11 +93,11 @@ const plugin = ({
89
93
  */
90
94
  if (typeof headerElement.example !== 'undefined') {
91
95
  if (typeof headerElement.schema.examples !== 'undefined') {
92
- headerElement.schema.set('examples', [(0, _apidomCore.cloneDeep)(headerElement.example)]);
96
+ headerElement.schema.set('examples', [(0, _apidomDatamodel.cloneDeep)(headerElement.example)]);
93
97
  storage.append(headerJSONPointer);
94
98
  }
95
99
  if (typeof headerElement.schema.example !== 'undefined') {
96
- headerElement.schema.set('example', (0, _apidomCore.cloneDeep)(headerElement.example));
100
+ headerElement.schema.set('example', (0, _apidomDatamodel.cloneDeep)(headerElement.example));
97
101
  storage.append(headerJSONPointer);
98
102
  }
99
103
  }
@@ -1,4 +1,4 @@
1
- import { cloneDeep } from '@speclynx/apidom-core';
1
+ import { cloneDeep } from '@speclynx/apidom-datamodel';
2
2
  import NormalizeStorage from "./NormalizeStorage.mjs";
3
3
  /**
4
4
  * Override of Schema.example and Schema.examples field inside the Header Objects.
@@ -29,7 +29,8 @@ const plugin = ({
29
29
  return {
30
30
  visitor: {
31
31
  OpenApi3_1Element: {
32
- enter(element) {
32
+ enter(path) {
33
+ const element = path.node;
33
34
  storage = new NormalizeStorage(element, storageField, 'header-examples');
34
35
  },
35
36
  leave() {
@@ -37,7 +38,10 @@ const plugin = ({
37
38
  }
38
39
  },
39
40
  HeaderElement: {
40
- leave(headerElement, key, parent, path, ancestors) {
41
+ leave(path) {
42
+ const headerElement = path.node;
43
+ const ancestors = path.getAncestorNodes().reverse(); // root to parent order
44
+
41
45
  // skip visiting this Header Object
42
46
  if (ancestors.some(predicates.isComponentsElement)) {
43
47
  return;
@@ -51,7 +55,7 @@ const plugin = ({
51
55
  if (typeof headerElement.schema?.example === 'undefined' && typeof headerElement.schema?.examples === 'undefined') {
52
56
  return;
53
57
  }
54
- const headerJSONPointer = ancestorLineageToJSONPointer([...ancestors, parent, headerElement]);
58
+ const headerJSONPointer = ancestorLineageToJSONPointer([...ancestors, headerElement]);
55
59
 
56
60
  // skip visiting this Header Object if it's already normalized
57
61
  if (storage.includes(headerJSONPointer)) {
@@ -4,6 +4,7 @@ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequ
4
4
  exports.__esModule = true;
5
5
  exports.default = void 0;
6
6
  var _ramda = require("ramda");
7
+ var _apidomDatamodel = require("@speclynx/apidom-datamodel");
7
8
  var _apidomCore = require("@speclynx/apidom-core");
8
9
  var _NormalizeStorage = _interopRequireDefault(require("./normalize-header-examples/NormalizeStorage.cjs"));
9
10
  const removeSpaces = operationId => {
@@ -62,7 +63,8 @@ const plugin = ({
62
63
  return {
63
64
  visitor: {
64
65
  OpenApi3_1Element: {
65
- enter(element) {
66
+ enter(path) {
67
+ const element = path.node;
66
68
  storage = new _NormalizeStorage.default(element, storageField, 'operation-ids');
67
69
  },
68
70
  leave() {
@@ -93,7 +95,7 @@ const plugin = ({
93
95
 
94
96
  // Link Object doesn't need to be rectified
95
97
  if (typeof operationElement === 'undefined') return;
96
- linkElement.operationId = _apidomCore.cloneDeep.safe(operationElement.operationId);
98
+ linkElement.operationId = _apidomDatamodel.cloneDeep.safe(operationElement.operationId);
97
99
  linkElement.meta.set('originalOperationId', linkOperationId);
98
100
  linkElement.set('__originalOperationId', linkOperationId);
99
101
  });
@@ -105,7 +107,8 @@ const plugin = ({
105
107
  }
106
108
  },
107
109
  PathItemElement: {
108
- enter(pathItemElement) {
110
+ enter(path) {
111
+ const pathItemElement = path.node;
109
112
  // `path` meta may not be always available, e.g. in Callback Object or Components Object
110
113
  const pathTemplate = (0, _ramda.defaultTo)('path', (0, _apidomCore.toValue)(pathItemElement.meta.get('path')));
111
114
  pathTemplates.push(pathTemplate);
@@ -115,10 +118,13 @@ const plugin = ({
115
118
  }
116
119
  },
117
120
  OperationElement: {
118
- enter(operationElement, key, parent, path, ancestors) {
121
+ enter(path) {
122
+ const operationElement = path.node;
123
+ const ancestors = path.getAncestorNodes().reverse(); // root to parent order
124
+
119
125
  // operationId field is undefined, needs no normalization
120
126
  if (typeof operationElement.operationId === 'undefined') return;
121
- const operationJSONPointer = ancestorLineageToJSONPointer([...ancestors, parent, operationElement]);
127
+ const operationJSONPointer = ancestorLineageToJSONPointer([...ancestors, operationElement]);
122
128
 
123
129
  // skip visiting this Operation Object if it's already normalized
124
130
  if (storage.includes(operationJSONPointer)) {
@@ -145,7 +151,8 @@ const plugin = ({
145
151
  }
146
152
  },
147
153
  LinkElement: {
148
- leave(linkElement) {
154
+ leave(path) {
155
+ const linkElement = path.node;
149
156
  // make sure this Link elements doesn't come from base namespace
150
157
  if (!predicates.isLinkElement(linkElement)) return;
151
158
  // ignore Link Objects with undefined operationId
@@ -1,5 +1,6 @@
1
1
  import { last, defaultTo, groupBy } from 'ramda';
2
- import { toValue, cloneDeep } from '@speclynx/apidom-core';
2
+ import { cloneDeep } from '@speclynx/apidom-datamodel';
3
+ import { toValue } from '@speclynx/apidom-core';
3
4
  import NormalizeStorage from "./normalize-header-examples/NormalizeStorage.mjs";
4
5
  const removeSpaces = operationId => {
5
6
  return operationId.replace(/\s/g, '');
@@ -57,7 +58,8 @@ const plugin = ({
57
58
  return {
58
59
  visitor: {
59
60
  OpenApi3_1Element: {
60
- enter(element) {
61
+ enter(path) {
62
+ const element = path.node;
61
63
  storage = new NormalizeStorage(element, storageField, 'operation-ids');
62
64
  },
63
65
  leave() {
@@ -100,7 +102,8 @@ const plugin = ({
100
102
  }
101
103
  },
102
104
  PathItemElement: {
103
- enter(pathItemElement) {
105
+ enter(path) {
106
+ const pathItemElement = path.node;
104
107
  // `path` meta may not be always available, e.g. in Callback Object or Components Object
105
108
  const pathTemplate = defaultTo('path', toValue(pathItemElement.meta.get('path')));
106
109
  pathTemplates.push(pathTemplate);
@@ -110,10 +113,13 @@ const plugin = ({
110
113
  }
111
114
  },
112
115
  OperationElement: {
113
- enter(operationElement, key, parent, path, ancestors) {
116
+ enter(path) {
117
+ const operationElement = path.node;
118
+ const ancestors = path.getAncestorNodes().reverse(); // root to parent order
119
+
114
120
  // operationId field is undefined, needs no normalization
115
121
  if (typeof operationElement.operationId === 'undefined') return;
116
- const operationJSONPointer = ancestorLineageToJSONPointer([...ancestors, parent, operationElement]);
122
+ const operationJSONPointer = ancestorLineageToJSONPointer([...ancestors, operationElement]);
117
123
 
118
124
  // skip visiting this Operation Object if it's already normalized
119
125
  if (storage.includes(operationJSONPointer)) {
@@ -140,7 +146,8 @@ const plugin = ({
140
146
  }
141
147
  },
142
148
  LinkElement: {
143
- leave(linkElement) {
149
+ leave(path) {
150
+ const linkElement = path.node;
144
151
  // make sure this Link elements doesn't come from base namespace
145
152
  if (!predicates.isLinkElement(linkElement)) return;
146
153
  // ignore Link Objects with undefined operationId