@swagger-api/apidom-ns-openapi-3-0 0.82.2 → 0.84.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 (29) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/cjs/refractor/plugins/replace-empty-element.cjs +22 -33
  3. package/cjs/refractor/visitors/open-api-3-0/components/CallbacksVisitor.cjs +0 -1
  4. package/cjs/refractor/visitors/open-api-3-0/components/ExamplesVisitor.cjs +0 -1
  5. package/cjs/refractor/visitors/open-api-3-0/components/HeadersVisitor.cjs +0 -1
  6. package/cjs/refractor/visitors/open-api-3-0/components/LinksVisitor.cjs +0 -1
  7. package/cjs/refractor/visitors/open-api-3-0/components/ParametersVisitor.cjs +0 -1
  8. package/cjs/refractor/visitors/open-api-3-0/components/RequestBodiesVisitor.cjs +0 -1
  9. package/cjs/refractor/visitors/open-api-3-0/components/ResponsesVisitor.cjs +0 -1
  10. package/cjs/refractor/visitors/open-api-3-0/components/SchemasVisitor.cjs +0 -1
  11. package/cjs/refractor/visitors/open-api-3-0/components/SecuritySchemesVisitor.cjs +0 -1
  12. package/cjs/refractor/visitors/open-api-3-0/response/HeadersVisitor.cjs +0 -1
  13. package/cjs/refractor/visitors/open-api-3-0/response/LinksVisitor.cjs +0 -1
  14. package/dist/apidom-ns-openapi-3-0.browser.js +7627 -7460
  15. package/dist/apidom-ns-openapi-3-0.browser.min.js +1 -1
  16. package/es/refractor/plugins/replace-empty-element.mjs +23 -34
  17. package/es/refractor/visitors/open-api-3-0/components/CallbacksVisitor.mjs +0 -1
  18. package/es/refractor/visitors/open-api-3-0/components/ExamplesVisitor.mjs +0 -1
  19. package/es/refractor/visitors/open-api-3-0/components/HeadersVisitor.mjs +0 -1
  20. package/es/refractor/visitors/open-api-3-0/components/LinksVisitor.mjs +0 -1
  21. package/es/refractor/visitors/open-api-3-0/components/ParametersVisitor.mjs +0 -1
  22. package/es/refractor/visitors/open-api-3-0/components/RequestBodiesVisitor.mjs +0 -1
  23. package/es/refractor/visitors/open-api-3-0/components/ResponsesVisitor.mjs +0 -1
  24. package/es/refractor/visitors/open-api-3-0/components/SchemasVisitor.mjs +0 -1
  25. package/es/refractor/visitors/open-api-3-0/components/SecuritySchemesVisitor.mjs +0 -1
  26. package/es/refractor/visitors/open-api-3-0/response/HeadersVisitor.mjs +0 -1
  27. package/es/refractor/visitors/open-api-3-0/response/LinksVisitor.mjs +0 -1
  28. package/package.json +6 -6
  29. package/types/dist.d.ts +2 -3
@@ -1,4 +1,4 @@
1
- import { MemberElement, ArrayElement, ObjectElement, isStringElement, includesClasses, isArrayElement, cloneDeep, toValue } from '@swagger-api/apidom-core';
1
+ import { ArrayElement, ObjectElement, isStringElement, isArrayElement, isElement, isMemberElement, includesClasses, cloneDeep, toValue } from '@swagger-api/apidom-core';
2
2
 
3
3
  /**
4
4
  * OpenAPI 3.0.3 specification elements.
@@ -588,39 +588,28 @@ const findElementFactory = (ancestor, keyName) => {
588
588
  const keyMapping = schema[elementType] || schema[toValue(ancestor.classes.first)];
589
589
  return typeof keyMapping === 'undefined' ? undefined : Object.prototype.hasOwnProperty.call(keyMapping, '[key: *]') ? keyMapping['[key: *]'] : keyMapping[keyName];
590
590
  };
591
- const plugin = () => () => {
592
- return {
593
- visitor: {
594
- MemberElement(element, ...rest) {
595
- // no empty Element, continue with next one
596
- if (!isEmptyElement(element.value)) return undefined;
597
- const [,,, ancestors] = rest;
598
- const ancestor = ancestors[ancestors.length - 1]; // @TODO(vladimir.gorej@gmail.com): can be replaced by Array.prototype.at in future
599
- const elementFactory = findElementFactory(ancestor, toValue(element.key));
600
-
601
- // no element factory found
602
- if (typeof elementFactory === 'undefined') return undefined;
603
- const originalValue = element.value;
604
- return new MemberElement(element.key, elementFactory.call({
605
- context: ancestor
606
- }, undefined, cloneDeep(originalValue.meta), cloneDeep(originalValue.attributes)), cloneDeep(element.meta), cloneDeep(element.attributes));
607
- },
608
- StringElement(element, ...rest) {
609
- if (!isEmptyElement(element)) return undefined;
610
- const [,,, ancestors] = rest;
611
- const ancestor = ancestors[ancestors.length - 1]; // @TODO(vladimir.gorej@gmail.com): can be replaced by Array.prototype.at in future
612
-
613
- // we're only interested in empty elements in ArrayElements
614
- if (!isArrayElement(ancestor)) return undefined;
615
- const elementFactory = findElementFactory(ancestor, '<*>');
616
-
617
- // no element factory found
618
- if (typeof elementFactory === 'undefined') return undefined;
619
- return elementFactory.call({
620
- context: element
621
- }, undefined, cloneDeep(element.meta), cloneDeep(element.attributes));
591
+ const plugin = () => () => ({
592
+ visitor: {
593
+ StringElement(element, key, parent, path, ancestors) {
594
+ if (!isEmptyElement(element)) return undefined;
595
+ const lineage = [...ancestors, parent].filter(isElement);
596
+ const parentElement = lineage[lineage.length - 1]; // @TODO(vladimir.gorej@gmail.com): can be replaced by Array.prototype.at in future
597
+ let elementFactory;
598
+ let context;
599
+ if (isArrayElement(parentElement)) {
600
+ context = element;
601
+ elementFactory = findElementFactory(parentElement, '<*>');
602
+ } else if (isMemberElement(parentElement)) {
603
+ context = lineage[lineage.length - 2]; // @TODO(vladimir.gorej@gmail.com): can be replaced by Array.prototype.at in future
604
+ elementFactory = findElementFactory(context, toValue(parentElement.key));
622
605
  }
606
+
607
+ // no element factory found
608
+ if (typeof elementFactory !== 'function') return undefined;
609
+ return elementFactory.call({
610
+ context
611
+ }, undefined, cloneDeep(element.meta), cloneDeep(element.attributes));
623
612
  }
624
- };
625
- };
613
+ }
614
+ });
626
615
  export default plugin;
@@ -7,7 +7,6 @@ import { isReferenceElement } from "../../../../predicates.mjs";
7
7
  const CallbacksElement = stampit(MapVisitor, FallbackVisitor, {
8
8
  props: {
9
9
  specPath: element => {
10
- // eslint-disable-next-line no-nested-ternary
11
10
  return isReferenceLikeElement(element) ? ['document', 'objects', 'Reference'] : ['document', 'objects', 'Callback'];
12
11
  }
13
12
  },
@@ -7,7 +7,6 @@ import { isReferenceElement } from "../../../../predicates.mjs";
7
7
  const ExamplesVisitor = stampit(MapVisitor, FallbackVisitor, {
8
8
  props: {
9
9
  specPath: element => {
10
- // eslint-disable-next-line no-nested-ternary
11
10
  return isReferenceLikeElement(element) ? ['document', 'objects', 'Reference'] : ['document', 'objects', 'Example'];
12
11
  }
13
12
  },
@@ -8,7 +8,6 @@ import { isReferenceElement, isHeaderElement } from "../../../../predicates.mjs"
8
8
  const HeadersVisitor = stampit(MapVisitor, FallbackVisitor, {
9
9
  props: {
10
10
  specPath: element => {
11
- // eslint-disable-next-line no-nested-ternary
12
11
  return isReferenceLikeElement(element) ? ['document', 'objects', 'Reference'] : ['document', 'objects', 'Header'];
13
12
  }
14
13
  },
@@ -7,7 +7,6 @@ import { isReferenceElement } from "../../../../predicates.mjs";
7
7
  const LinksVisitor = stampit(MapVisitor, FallbackVisitor, {
8
8
  props: {
9
9
  specPath: element => {
10
- // eslint-disable-next-line no-nested-ternary
11
10
  return isReferenceLikeElement(element) ? ['document', 'objects', 'Reference'] : ['document', 'objects', 'Link'];
12
11
  }
13
12
  },
@@ -7,7 +7,6 @@ import { isReferenceElement } from "../../../../predicates.mjs";
7
7
  const ParametersVisitor = stampit(MapVisitor, FallbackVisitor, {
8
8
  props: {
9
9
  specPath: element => {
10
- // eslint-disable-next-line no-nested-ternary
11
10
  return isReferenceLikeElement(element) ? ['document', 'objects', 'Reference'] : ['document', 'objects', 'Parameter'];
12
11
  }
13
12
  },
@@ -7,7 +7,6 @@ import { isReferenceElement } from "../../../../predicates.mjs";
7
7
  const RequestBodiesVisitor = stampit(MapVisitor, FallbackVisitor, {
8
8
  props: {
9
9
  specPath: element => {
10
- // eslint-disable-next-line no-nested-ternary
11
10
  return isReferenceLikeElement(element) ? ['document', 'objects', 'Reference'] : ['document', 'objects', 'RequestBody'];
12
11
  }
13
12
  },
@@ -8,7 +8,6 @@ import { isReferenceElement, isResponseElement } from "../../../../predicates.mj
8
8
  const ResponsesVisitor = stampit(MapVisitor, FallbackVisitor, {
9
9
  props: {
10
10
  specPath: element => {
11
- // eslint-disable-next-line no-nested-ternary
12
11
  return isReferenceLikeElement(element) ? ['document', 'objects', 'Reference'] : ['document', 'objects', 'Response'];
13
12
  }
14
13
  },
@@ -7,7 +7,6 @@ import { isReferenceElement } from "../../../../predicates.mjs";
7
7
  const SchemasVisitor = stampit(MapVisitor, FallbackVisitor, {
8
8
  props: {
9
9
  specPath: element => {
10
- // eslint-disable-next-line no-nested-ternary
11
10
  return isReferenceLikeElement(element) ? ['document', 'objects', 'Reference'] : ['document', 'objects', 'Schema'];
12
11
  }
13
12
  },
@@ -7,7 +7,6 @@ import { isReferenceElement } from "../../../../predicates.mjs";
7
7
  const ParametersVisitor = stampit(MapVisitor, FallbackVisitor, {
8
8
  props: {
9
9
  specPath: element => {
10
- // eslint-disable-next-line no-nested-ternary
11
10
  return isReferenceLikeElement(element) ? ['document', 'objects', 'Reference'] : ['document', 'objects', 'SecurityScheme'];
12
11
  }
13
12
  },
@@ -8,7 +8,6 @@ import { isHeaderElement, isReferenceElement } from "../../../../predicates.mjs"
8
8
  const HeadersVisitor = stampit(MapVisitor, FallbackVisitor, {
9
9
  props: {
10
10
  specPath: element => {
11
- // eslint-disable-next-line no-nested-ternary
12
11
  return isReferenceLikeElement(element) ? ['document', 'objects', 'Reference'] : ['document', 'objects', 'Header'];
13
12
  }
14
13
  },
@@ -7,7 +7,6 @@ import { isReferenceElement } from "../../../../predicates.mjs";
7
7
  const HeadersVisitor = stampit(MapVisitor, FallbackVisitor, {
8
8
  props: {
9
9
  specPath: element => {
10
- // eslint-disable-next-line no-nested-ternary
11
10
  return isReferenceLikeElement(element) ? ['document', 'objects', 'Reference'] : ['document', 'objects', 'Link'];
12
11
  }
13
12
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@swagger-api/apidom-ns-openapi-3-0",
3
- "version": "0.82.2",
3
+ "version": "0.84.0",
4
4
  "description": "OpenAPI 3.0.x namespace for ApiDOM.",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -42,11 +42,11 @@
42
42
  "license": "Apache-2.0",
43
43
  "dependencies": {
44
44
  "@babel/runtime-corejs3": "^7.20.7",
45
- "@swagger-api/apidom-core": "^0.82.2",
46
- "@swagger-api/apidom-error": "^0.82.1",
47
- "@swagger-api/apidom-ns-json-schema-draft-4": "^0.82.2",
45
+ "@swagger-api/apidom-core": "^0.84.0",
46
+ "@swagger-api/apidom-error": "^0.84.0",
47
+ "@swagger-api/apidom-ns-json-schema-draft-4": "^0.84.0",
48
48
  "@types/ramda": "~0.29.6",
49
- "ramda": "~0.29.0",
49
+ "ramda": "~0.29.1",
50
50
  "ramda-adjunct": "^4.1.1",
51
51
  "stampit": "^4.3.2"
52
52
  },
@@ -60,5 +60,5 @@
60
60
  "README.md",
61
61
  "CHANGELOG.md"
62
62
  ],
63
- "gitHead": "4d2a5697cba7abcab32abfdbea6ba946b4fd262f"
63
+ "gitHead": "6dbd9983371b63b56cab3983e478ef29e9e1525f"
64
64
  }
package/types/dist.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /// <reference types="@swagger-api/apidom-core/types/minim" />
2
2
  import * as _swagger_api_apidom_core from '@swagger-api/apidom-core';
3
- import { MediaTypes, NamespacePluginOptions, MemberElement, StringElement, Element, ObjectElement, Meta, Attributes, BooleanElement, ArrayElement, ElementPredicate } from '@swagger-api/apidom-core';
3
+ import { MediaTypes, NamespacePluginOptions, StringElement, Element, ObjectElement, Meta, Attributes, BooleanElement, ArrayElement, ElementPredicate, MemberElement } from '@swagger-api/apidom-core';
4
4
  export { isArrayElement, isBooleanElement, isElement, isLinkElement as isLinkPrimitiveElement, isMemberElement, isNullElement, isNumberElement, isObjectElement, isRefElement, isStringElement } from '@swagger-api/apidom-core';
5
5
  import * as minim from 'minim';
6
6
  import * as stampit from 'stampit';
@@ -21,8 +21,7 @@ declare const openApi3_0: {
21
21
 
22
22
  declare const plugin: () => () => {
23
23
  visitor: {
24
- MemberElement(element: MemberElement, ...rest: any): MemberElement | undefined;
25
- StringElement(element: StringElement, ...rest: any): any;
24
+ StringElement(element: StringElement, key: any, parent: any, path: any, ancestors: any[]): any;
26
25
  };
27
26
  };
28
27