source: node_modules/@swagger-api/apidom-ns-openapi-3-0/cjs/refractor/plugins/replace-empty-element.cjs@ d24f17c

main
Last change on this file since d24f17c was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 20.9 KB
Line 
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4exports.__esModule = true;
5exports.default = void 0;
6var _apidomCore = require("@swagger-api/apidom-core");
7var _Info = _interopRequireDefault(require("../../elements/Info.cjs"));
8var _Contact = _interopRequireDefault(require("../../elements/Contact.cjs"));
9var _License = _interopRequireDefault(require("../../elements/License.cjs"));
10var _Paths = _interopRequireDefault(require("../../elements/Paths.cjs"));
11var _PathItem = _interopRequireDefault(require("../../elements/PathItem.cjs"));
12var _Components = _interopRequireDefault(require("../../elements/Components.cjs"));
13var _ExternalDocumentation = _interopRequireDefault(require("../../elements/ExternalDocumentation.cjs"));
14var _Operation = _interopRequireDefault(require("../../elements/Operation.cjs"));
15var _Schema = _interopRequireDefault(require("../../elements/Schema.cjs"));
16var _RequestBody = _interopRequireDefault(require("../../elements/RequestBody.cjs"));
17var _Responses = _interopRequireDefault(require("../../elements/Responses.cjs"));
18var _Response = _interopRequireDefault(require("../../elements/Response.cjs"));
19var _Server = _interopRequireDefault(require("../../elements/Server.cjs"));
20var _Discriminator = _interopRequireDefault(require("../../elements/Discriminator.cjs"));
21var _Xml = _interopRequireDefault(require("../../elements/Xml.cjs"));
22var _OAuthFlows = _interopRequireDefault(require("../../elements/OAuthFlows.cjs"));
23var _OAuthFlow = _interopRequireDefault(require("../../elements/OAuthFlow.cjs"));
24var _ServerVariable = _interopRequireDefault(require("../../elements/ServerVariable.cjs"));
25var _Parameter = _interopRequireDefault(require("../../elements/Parameter.cjs"));
26var _Example = _interopRequireDefault(require("../../elements/Example.cjs"));
27var _Header = _interopRequireDefault(require("../../elements/Header.cjs"));
28var _SecurityScheme = _interopRequireDefault(require("../../elements/SecurityScheme.cjs"));
29var _Link = _interopRequireDefault(require("../../elements/Link.cjs"));
30var _Callback = _interopRequireDefault(require("../../elements/Callback.cjs"));
31var _MediaType = _interopRequireDefault(require("../../elements/MediaType.cjs"));
32var _Encoding = _interopRequireDefault(require("../../elements/Encoding.cjs"));
33var _SecurityRequirement = _interopRequireDefault(require("../../elements/SecurityRequirement.cjs"));
34var _Tag = _interopRequireDefault(require("../../elements/Tag.cjs"));
35var _Servers = _interopRequireDefault(require("../../elements/nces/Servers.cjs"));
36var _Security = _interopRequireDefault(require("../../elements/nces/Security.cjs"));
37var _Tags = _interopRequireDefault(require("../../elements/nces/Tags.cjs"));
38var _ServerVariables = _interopRequireDefault(require("../../elements/nces/ServerVariables.cjs"));
39var _ComponentsSchemas = _interopRequireDefault(require("../../elements/nces/ComponentsSchemas.cjs"));
40var _ComponentsResponses = _interopRequireDefault(require("../../elements/nces/ComponentsResponses.cjs"));
41var _ComponentsParameters = _interopRequireDefault(require("../../elements/nces/ComponentsParameters.cjs"));
42var _ComponentsExamples = _interopRequireDefault(require("../../elements/nces/ComponentsExamples.cjs"));
43var _ComponentsRequestBodies = _interopRequireDefault(require("../../elements/nces/ComponentsRequestBodies.cjs"));
44var _ComponentsHeaders = _interopRequireDefault(require("../../elements/nces/ComponentsHeaders.cjs"));
45var _ComponentsSecuritySchemes = _interopRequireDefault(require("../../elements/nces/ComponentsSecuritySchemes.cjs"));
46var _ComponentsLinks = _interopRequireDefault(require("../../elements/nces/ComponentsLinks.cjs"));
47var _ComponentsCallbacks = _interopRequireDefault(require("../../elements/nces/ComponentsCallbacks.cjs"));
48var _PathItemServers = _interopRequireDefault(require("../../elements/nces/PathItemServers.cjs"));
49var _PathItemParameters = _interopRequireDefault(require("../../elements/nces/PathItemParameters.cjs"));
50var _OperationParameters = _interopRequireDefault(require("../../elements/nces/OperationParameters.cjs"));
51var _ParameterExamples = _interopRequireDefault(require("../../elements/nces/ParameterExamples.cjs"));
52var _ParameterContent = _interopRequireDefault(require("../../elements/nces/ParameterContent.cjs"));
53var _OperationTags = _interopRequireDefault(require("../../elements/nces/OperationTags.cjs"));
54var _OperationCallbacks = _interopRequireDefault(require("../../elements/nces/OperationCallbacks.cjs"));
55var _OperationSecurity = _interopRequireDefault(require("../../elements/nces/OperationSecurity.cjs"));
56var _OperationServers = _interopRequireDefault(require("../../elements/nces/OperationServers.cjs"));
57var _RequestBodyContent = _interopRequireDefault(require("../../elements/nces/RequestBodyContent.cjs"));
58var _MediaTypeExamples = _interopRequireDefault(require("../../elements/nces/MediaTypeExamples.cjs"));
59var _MediaTypeEncoding = _interopRequireDefault(require("../../elements/nces/MediaTypeEncoding.cjs"));
60var _EncodingHeaders = _interopRequireDefault(require("../../elements/nces/EncodingHeaders.cjs"));
61var _ResponseHeaders = _interopRequireDefault(require("../../elements/nces/ResponseHeaders.cjs"));
62var _ResponseContent = _interopRequireDefault(require("../../elements/nces/ResponseContent.cjs"));
63var _ResponseLinks = _interopRequireDefault(require("../../elements/nces/ResponseLinks.cjs"));
64var _DiscriminatorMapping = _interopRequireDefault(require("../../elements/nces/DiscriminatorMapping.cjs"));
65var _OAuthFlowScopes = _interopRequireDefault(require("../../elements/nces/OAuthFlowScopes.cjs"));
66var _LinkParameters = _interopRequireDefault(require("../../elements/nces/LinkParameters.cjs"));
67var _HeaderExamples = _interopRequireDefault(require("../../elements/nces/HeaderExamples.cjs"));
68var _HeaderContent = _interopRequireDefault(require("../../elements/nces/HeaderContent.cjs"));
69var _visitor = require("../../traversal/visitor.cjs");
70/**
71 * OpenAPI 3.0.3 specification elements.
72 */
73
74// non-concrete Elements (NCEs)
75
76/**
77 * This plugin is specific to YAML 1.2 format, which allows defining key-value pairs
78 * with empty key, empty value, or both. If the value is not provided in YAML format,
79 * this plugin compensates for this missing value with the most appropriate semantic element type.
80 *
81 * https://yaml.org/spec/1.2.2/#72-empty-nodes
82 *
83 * @example
84 *
85 * ```yaml
86 * openapi: 3.0.3
87 * info:
88 * ```
89 * Refracting result without this plugin:
90 *
91 * (OpenApi3_0Element
92 * (MemberElement
93 * (StringElement)
94 * (OpenapiElement))
95 * (MemberElement
96 * (StringElement)
97 * (StringElement))
98 *
99 * Refracting result with this plugin:
100 *
101 * (OpenApi3_0Element
102 * (MemberElement
103 * (StringElement)
104 * (OpenapiElement))
105 * (MemberElement
106 * (StringElement)
107 * (InfoElement))
108 */
109
110const isEmptyElement = element => (0, _apidomCore.isStringElement)(element) && (0, _apidomCore.includesClasses)(['yaml-e-node', 'yaml-e-scalar'], element);
111const schema = {
112 // concrete types handling (CTs)
113 OpenApi3_0Element: {
114 info(...args) {
115 return new _Info.default(...args);
116 },
117 servers(...args) {
118 return new _Servers.default(...args);
119 },
120 paths(...args) {
121 return new _Paths.default(...args);
122 },
123 components(...args) {
124 return new _Components.default(...args);
125 },
126 security(...args) {
127 return new _Security.default(...args);
128 },
129 tags(...args) {
130 return new _Tags.default(...args);
131 },
132 externalDocs(...args) {
133 return new _ExternalDocumentation.default(...args);
134 }
135 },
136 InfoElement: {
137 contact(...args) {
138 return new _Contact.default(...args);
139 },
140 license(...args) {
141 return new _License.default(...args);
142 }
143 },
144 ServerElement: {
145 variables(...args) {
146 return new _ServerVariables.default(...args);
147 }
148 },
149 ServerVariableElement: {
150 enum(...args) {
151 return new _apidomCore.ArrayElement(...args);
152 }
153 },
154 PathsElement: {
155 '[key: *]': function key(...args) {
156 return new _PathItem.default(...args);
157 }
158 },
159 PathItemElement: {
160 get(...args) {
161 return new _Operation.default(...args);
162 },
163 put(...args) {
164 return new _Operation.default(...args);
165 },
166 post(...args) {
167 return new _Operation.default(...args);
168 },
169 delete(...args) {
170 return new _Operation.default(...args);
171 },
172 options(...args) {
173 return new _Operation.default(...args);
174 },
175 head(...args) {
176 return new _Operation.default(...args);
177 },
178 patch(...args) {
179 return new _Operation.default(...args);
180 },
181 trace(...args) {
182 return new _Operation.default(...args);
183 },
184 servers(...args) {
185 return new _PathItemServers.default(...args);
186 },
187 parameters(...args) {
188 return new _PathItemParameters.default(...args);
189 }
190 },
191 OperationElement: {
192 tags(...args) {
193 return new _OperationTags.default(...args);
194 },
195 externalDocs(...args) {
196 return new _ExternalDocumentation.default(...args);
197 },
198 parameters(...args) {
199 return new _OperationParameters.default(...args);
200 },
201 requestBody(...args) {
202 return new _RequestBody.default(...args);
203 },
204 responses(...args) {
205 return new _Responses.default(...args);
206 },
207 callbacks(...args) {
208 return new _OperationCallbacks.default(...args);
209 },
210 security(...args) {
211 return new _OperationSecurity.default(...args);
212 },
213 servers(...args) {
214 return new _OperationServers.default(...args);
215 }
216 },
217 ParameterElement: {
218 schema(...args) {
219 return new _Schema.default(...args);
220 },
221 examples(...args) {
222 return new _ParameterExamples.default(...args);
223 },
224 content(...args) {
225 return new _ParameterContent.default(...args);
226 }
227 },
228 RequestBodyElement: {
229 content(...args) {
230 return new _RequestBodyContent.default(...args);
231 }
232 },
233 MediaTypeElement: {
234 schema(...args) {
235 return new _Schema.default(...args);
236 },
237 examples(...args) {
238 return new _MediaTypeExamples.default(...args);
239 },
240 encoding(...args) {
241 return new _MediaTypeEncoding.default(...args);
242 }
243 },
244 EncodingElement: {
245 headers(...args) {
246 return new _EncodingHeaders.default(...args);
247 }
248 },
249 ResponsesElement: {
250 '[key: *]': function key(...args) {
251 return new _Response.default(...args);
252 }
253 },
254 ResponseElement: {
255 headers(...args) {
256 return new _ResponseHeaders.default(...args);
257 },
258 content(...args) {
259 return new _ResponseContent.default(...args);
260 },
261 links(...args) {
262 return new _ResponseLinks.default(...args);
263 }
264 },
265 CallbackElement: {
266 '[key: *]': function key(...args) {
267 return new _PathItem.default(...args);
268 }
269 },
270 LinkElement: {
271 parameters(...args) {
272 return new _LinkParameters.default(...args);
273 },
274 server(...args) {
275 return new _Server.default(...args);
276 }
277 },
278 HeaderElement: {
279 schema(...args) {
280 return new _Schema.default(...args);
281 },
282 examples(...args) {
283 return new _HeaderExamples.default(...args);
284 },
285 content(...args) {
286 return new _HeaderContent.default(...args);
287 }
288 },
289 ComponentsElement: {
290 schemas(...args) {
291 return new _ComponentsSchemas.default(...args);
292 },
293 responses(...args) {
294 return new _ComponentsResponses.default(...args);
295 },
296 parameters(...args) {
297 return new _ComponentsParameters.default(...args);
298 },
299 examples(...args) {
300 return new _ComponentsExamples.default(...args);
301 },
302 requestBodies(...args) {
303 return new _ComponentsRequestBodies.default(...args);
304 },
305 headers(...args) {
306 return new _ComponentsHeaders.default(...args);
307 },
308 securitySchemes(...args) {
309 return new _ComponentsSecuritySchemes.default(...args);
310 },
311 links(...args) {
312 return new _ComponentsLinks.default(...args);
313 },
314 callbacks(...args) {
315 return new _ComponentsCallbacks.default(...args);
316 }
317 },
318 SecurityRequirementElement: {
319 '[key: *]': function key(...args) {
320 return new _apidomCore.ArrayElement(...args);
321 }
322 },
323 TagElement: {
324 externalDocs(...args) {
325 return new _ExternalDocumentation.default(...args);
326 }
327 },
328 SchemaElement: {
329 definitions(...args) {
330 const element = new _apidomCore.ObjectElement(...args);
331 element.classes.push('json-schema-definitions');
332 return element;
333 },
334 allOf(...args) {
335 const element = new _apidomCore.ArrayElement(...args);
336 element.classes.push('json-schema-allOf');
337 return element;
338 },
339 anyOf(...args) {
340 const element = new _apidomCore.ArrayElement(...args);
341 element.classes.push('json-schema-anyOf');
342 return element;
343 },
344 oneOf(...args) {
345 const element = new _apidomCore.ArrayElement(...args);
346 element.classes.push('json-schema-oneOf');
347 return element;
348 },
349 not(...args) {
350 return new _Schema.default(...args);
351 },
352 items(...args) {
353 return new _Schema.default(...args);
354 },
355 properties(...args) {
356 const element = new _apidomCore.ObjectElement(...args);
357 element.classes.push('json-schema-properties');
358 return element;
359 },
360 patternProperties(...args) {
361 const element = new _apidomCore.ObjectElement(...args);
362 element.classes.push('json-schema-patternProperties');
363 return element;
364 },
365 additionalProperties(...args) {
366 return new _Schema.default(...args);
367 },
368 enum(...args) {
369 const element = new _apidomCore.ArrayElement(...args);
370 element.classes.push('json-schema-enum');
371 return element;
372 },
373 required(...args) {
374 const element = new _apidomCore.ArrayElement(...args);
375 element.classes.push('json-schema-required');
376 return element;
377 },
378 discriminator(...args) {
379 return new _Discriminator.default(...args);
380 },
381 xml(...args) {
382 return new _Xml.default(...args);
383 },
384 externalDocs(...args) {
385 return new _ExternalDocumentation.default(...args);
386 }
387 },
388 DiscriminatorElement: {
389 mapping(...args) {
390 return new _DiscriminatorMapping.default(...args);
391 }
392 },
393 SecuritySchemeElement: {
394 flows(...args) {
395 return new _OAuthFlows.default(...args);
396 }
397 },
398 OAuthFlowsElement: {
399 implicit(...args) {
400 return new _OAuthFlow.default(...args);
401 },
402 password(...args) {
403 return new _OAuthFlow.default(...args);
404 },
405 clientCredentials(...args) {
406 return new _OAuthFlow.default(...args);
407 },
408 authorizationCode(...args) {
409 return new _OAuthFlow.default(...args);
410 }
411 },
412 OAuthFlowElement: {
413 scopes(...args) {
414 return new _OAuthFlowScopes.default(...args);
415 }
416 },
417 // non-concrete types handling (NCEs)
418 [_ServerVariables.default.primaryClass]: {
419 '[key: *]': function key(...args) {
420 return new _ServerVariable.default(...args);
421 }
422 },
423 [_ComponentsSchemas.default.primaryClass]: {
424 '[key: *]': function key(...args) {
425 return new _Schema.default(...args);
426 }
427 },
428 [_ComponentsResponses.default.primaryClass]: {
429 '[key: *]': function key(...args) {
430 return new _Response.default(...args);
431 }
432 },
433 [_ComponentsParameters.default.primaryClass]: {
434 '[key: *]': function key(...args) {
435 return new _Parameter.default(...args);
436 }
437 },
438 [_ComponentsExamples.default.primaryClass]: {
439 '[key: *]': function key(...args) {
440 return new _Example.default(...args);
441 }
442 },
443 [_ComponentsRequestBodies.default.primaryClass]: {
444 '[key: *]': function key(...args) {
445 return new _RequestBody.default(...args);
446 }
447 },
448 [_ComponentsHeaders.default.primaryClass]: {
449 '[key: *]': function key(...args) {
450 return new _Header.default(...args);
451 }
452 },
453 [_ComponentsSecuritySchemes.default.primaryClass]: {
454 '[key: *]': function key(...args) {
455 return new _SecurityScheme.default(...args);
456 }
457 },
458 [_ComponentsLinks.default.primaryClass]: {
459 '[key: *]': function key(...args) {
460 return new _Link.default(...args);
461 }
462 },
463 [_ComponentsCallbacks.default.primaryClass]: {
464 '[key: *]': function key(...args) {
465 return new _Callback.default(...args);
466 }
467 },
468 [_OperationCallbacks.default.primaryClass]: {
469 '[key: *]': function key(...args) {
470 return new _Callback.default(...args);
471 }
472 },
473 [_ParameterExamples.default.primaryClass]: {
474 '[key: *]': function key(...args) {
475 return new _Example.default(...args);
476 }
477 },
478 [_ParameterContent.default.primaryClass]: {
479 '[key: *]': function key(...args) {
480 return new _MediaType.default(...args);
481 }
482 },
483 [_RequestBodyContent.default.primaryClass]: {
484 '[key: *]': function key(...args) {
485 return new _MediaType.default(...args);
486 }
487 },
488 [_MediaTypeExamples.default.primaryClass]: {
489 '[key: *]': function key(...args) {
490 return new _Example.default(...args);
491 }
492 },
493 [_MediaTypeEncoding.default.primaryClass]: {
494 '[key: *]': function key(...args) {
495 return new _Encoding.default(...args);
496 }
497 },
498 [_EncodingHeaders.default.primaryClass]: {
499 '[key: *]': function key(...args) {
500 return new _Header.default(...args);
501 }
502 },
503 [_ResponseHeaders.default.primaryClass]: {
504 '[key: *]': function key(...args) {
505 return new _Header.default(...args);
506 }
507 },
508 [_ResponseContent.default.primaryClass]: {
509 '[key: *]': function key(...args) {
510 return new _MediaType.default(...args);
511 }
512 },
513 [_ResponseLinks.default.primaryClass]: {
514 '[key: *]': function key(...args) {
515 return new _Link.default(...args);
516 }
517 },
518 'json-schema-$defs': {
519 '[key: *]': function key(...args) {
520 return new _Schema.default(...args);
521 }
522 },
523 'json-schema-dependentSchemas': {
524 '[key: *]': function key(...args) {
525 return new _Schema.default(...args);
526 }
527 },
528 'json-schema-properties': {
529 '[key: *]': function key(...args) {
530 return new _Schema.default(...args);
531 }
532 },
533 [_Servers.default.primaryClass]: {
534 '<*>': function asterisk(...args) {
535 return new _Server.default(...args);
536 }
537 },
538 [_Security.default.primaryClass]: {
539 '<*>': function asterisk(...args) {
540 return new _SecurityRequirement.default(...args);
541 }
542 },
543 [_Tags.default.primaryClass]: {
544 '<*>': function asterisk(...args) {
545 return new _Tag.default(...args);
546 }
547 },
548 [_PathItemServers.default.primaryClass]: {
549 '<*>': function asterisk(...args) {
550 return new _Server.default(...args);
551 }
552 },
553 [_PathItemParameters.default.primaryClass]: {
554 '<*>': function asterisk(...args) {
555 return new _Parameter.default(...args);
556 }
557 },
558 [_OperationParameters.default.primaryClass]: {
559 '<*>': function asterisk(...args) {
560 return new _Parameter.default(...args);
561 }
562 },
563 [_OperationSecurity.default.primaryClass]: {
564 '<*>': function asterisk(...args) {
565 return new _SecurityRequirement.default(...args);
566 }
567 },
568 [_OperationServers.default.primaryClass]: {
569 '<*>': function asterisk(...args) {
570 return new _Server.default(...args);
571 }
572 },
573 'json-schema-allOf': {
574 '<*>': function asterisk(...args) {
575 return new _Schema.default(...args);
576 }
577 },
578 'json-schema-anyOf': {
579 '<*>': function asterisk(...args) {
580 return new _Schema.default(...args);
581 }
582 },
583 'json-schema-oneOf': {
584 '<*>': function asterisk(...args) {
585 return new _Schema.default(...args);
586 }
587 },
588 'json-schema-prefixItems': {
589 '<*>': function asterisk(...args) {
590 return new _Schema.default(...args);
591 }
592 }
593};
594const findElementFactory = (ancestor, keyName) => {
595 const elementType = (0, _visitor.getNodeType)(ancestor); // @ts-ignore
596 const keyMapping = schema[elementType] || schema[(0, _apidomCore.toValue)(ancestor.classes.first)];
597 return typeof keyMapping === 'undefined' ? undefined : Object.prototype.hasOwnProperty.call(keyMapping, '[key: *]') ? keyMapping['[key: *]'] : keyMapping[keyName];
598};
599const plugin = () => () => ({
600 visitor: {
601 StringElement(element, key, parent, path, ancestors) {
602 if (!isEmptyElement(element)) return undefined;
603 const lineage = [...ancestors, parent].filter(_apidomCore.isElement);
604 const parentElement = lineage[lineage.length - 1]; // @TODO(vladimir.gorej@gmail.com): can be replaced by Array.prototype.at in future
605 let elementFactory;
606 let context;
607 if ((0, _apidomCore.isArrayElement)(parentElement)) {
608 context = element;
609 elementFactory = findElementFactory(parentElement, '<*>');
610 } else if ((0, _apidomCore.isMemberElement)(parentElement)) {
611 context = lineage[lineage.length - 2]; // @TODO(vladimir.gorej@gmail.com): can be replaced by Array.prototype.at in future
612 elementFactory = findElementFactory(context, (0, _apidomCore.toValue)(parentElement.key));
613 }
614
615 // no element factory found
616 if (typeof elementFactory !== 'function') return undefined;
617 return elementFactory.call({
618 context
619 }, undefined, (0, _apidomCore.cloneDeep)(element.meta), (0, _apidomCore.cloneDeep)(element.attributes));
620 }
621 }
622});
623var _default = exports.default = plugin;
Note: See TracBrowser for help on using the repository browser.