@swagger-api/apidom-ns-openapi-3-1 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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,16 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [0.84.0](https://github.com/swagger-api/apidom/compare/v0.83.0...v0.84.0) (2023-11-24)
7
+
8
+ ### Features
9
+
10
+ - **ns-workflows-1:** add support for JSONSchema Object ([#3445](https://github.com/swagger-api/apidom/issues/3445)) ([5b504e5](https://github.com/swagger-api/apidom/commit/5b504e523c532a31aaf1b133a14ff3b76c126435)), closes [#3392](https://github.com/swagger-api/apidom/issues/3392)
11
+
12
+ # [0.83.0](https://github.com/swagger-api/apidom/compare/v0.82.2...v0.83.0) (2023-11-07)
13
+
14
+ **Note:** Version bump only for package @swagger-api/apidom-ns-openapi-3-1
15
+
6
16
  ## [0.82.2](https://github.com/swagger-api/apidom/compare/v0.82.1...v0.82.2) (2023-11-03)
7
17
 
8
18
  ### Bug Fixes
@@ -465,6 +465,10 @@ class Schema extends _apidomCore.ObjectElement {
465
465
  get example() {
466
466
  return this.get('example');
467
467
  }
468
+
469
+ /**
470
+ * @deprecated The example property has been deprecated in favor of the JSON Schema examples keyword. Use of example is discouraged, and later versions of this specification may remove it.
471
+ */
468
472
  set example(example) {
469
473
  this.set('example', example);
470
474
  }
package/cjs/index.cjs CHANGED
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequ
4
4
  var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard").default;
5
5
  exports.__esModule = true;
6
6
  exports.isPathItemElement = exports.isParameterLikeElement = exports.isParameterElement = exports.isOperationElement = exports.isOpenapiElement = exports.isOpenApiExtension = exports.isOpenApi3_1LikeElement = exports.isOpenApi3_1Element = exports.isObjectElement = exports.isNumberElement = exports.isNullElement = exports.isMemberElement = exports.isMediaTypeElement = exports.isLinkPrimitiveElement = exports.isLinkElementExternal = exports.isLinkElement = exports.isLicenseElement = exports.isJsonSchemaDialectElement = exports.isInfoElement = exports.isExternalDocumentationElement = exports.isExampleElement = exports.isElement = exports.isContactElement = exports.isComponentsElement = exports.isCallbackElement = exports.isBooleanJsonSchemaElement = exports.isBooleanElement = exports.isArrayElement = exports.getNodeType = exports.default = exports.createToolbox = exports.XmlElement = exports.WebhooksElement = exports.TagsElement = exports.TagElement = exports.ServersElement = exports.ServerVariablesElement = exports.ServerVariableElement = exports.ServerElement = exports.SecuritySchemeElement = exports.SecurityRequirementElement = exports.SecurityElement = exports.SchemaElement = exports.ResponsesElement = exports.ResponseLinksElement = exports.ResponseHeadersElement = exports.ResponseElement = exports.ResponseContentElement = exports.RequestBodyElement = exports.RequestBodyContentElement = exports.ReferenceElement = exports.PathsElement = exports.PathItemServersElement = exports.PathItemParametersElement = exports.PathItemElement = exports.ParameterExamplesElement = exports.ParameterElement = exports.ParameterContentElement = exports.OperationTagsElement = exports.OperationServersElement = exports.OperationSecurityElement = exports.OperationParametersElement = exports.OperationElement = exports.OperationCallbacksElement = exports.OpenapiElement = exports.OpenApi3_1Element = exports.OpenAPIMediaTypes = exports.OAuthFlowsElement = exports.OAuthFlowScopesElement = exports.OAuthFlowElement = exports.MediaTypeExamplesElement = exports.MediaTypeEncodingElement = exports.MediaTypeElement = exports.LinkParametersElement = exports.LinkElement = exports.LicenseElement = exports.JsonSchemaDialectElement = exports.InfoElement = exports.HeaderExamplesElement = exports.HeaderElement = exports.HeaderContentElement = exports.ExternalDocumentationElement = exports.ExampleElement = exports.EncodingHeadersElement = exports.EncodingElement = exports.DiscriminatorMappingElement = exports.DiscriminatorElement = exports.ContactElement = exports.ComponentsSecuritySchemesElement = exports.ComponentsSchemasElement = exports.ComponentsResponsesElement = exports.ComponentsRequestBodiesElement = exports.ComponentsPathItemsElement = exports.ComponentsParametersElement = exports.ComponentsLinksElement = exports.ComponentsHeadersElement = exports.ComponentsExamplesElement = exports.ComponentsElement = exports.ComponentsCallbacksElement = exports.CallbackElement = void 0;
7
- exports.refractorPluginReplaceEmptyElement = exports.refractorPluginNormalizeServers = exports.refractorPluginNormalizeSecurityRequirements = exports.refractorPluginNormalizeParameters = exports.refractorPluginNormalizeParameterExamples = exports.refractorPluginNormalizeOperationIds = exports.refractorPluginNormalizeHeaderExamples = exports.mediaTypes = exports.keyMap = exports.isStringElement = exports.isServersElement = exports.isServerVariableElement = exports.isServerLikeElement = exports.isServerElement = exports.isSecurityRequirementElement = exports.isSchemaElement = exports.isResponsesElement = exports.isResponseLikeElement = exports.isResponseElement = exports.isRequestBodyElement = exports.isReferenceLikeElement = exports.isReferenceElementExternal = exports.isReferenceElement = exports.isRefElement = exports.isPathsElement = exports.isPathItemElementExternal = void 0;
7
+ exports.specificationObj = exports.refractorPluginReplaceEmptyElement = exports.refractorPluginNormalizeServers = exports.refractorPluginNormalizeSecurityRequirements = exports.refractorPluginNormalizeParameters = exports.refractorPluginNormalizeParameterExamples = exports.refractorPluginNormalizeOperationIds = exports.refractorPluginNormalizeHeaderExamples = exports.mediaTypes = exports.keyMap = exports.isStringElement = exports.isServersElement = exports.isServerVariableElement = exports.isServerLikeElement = exports.isServerElement = exports.isSecurityRequirementElement = exports.isSchemaElement = exports.isResponsesElement = exports.isResponseLikeElement = exports.isResponseElement = exports.isRequestBodyElement = exports.isReferenceLikeElement = exports.isReferenceElementExternal = exports.isReferenceElement = exports.isRefElement = exports.isPathsElement = exports.isPathItemElementExternal = void 0;
8
8
  var _apidomCore = require("@swagger-api/apidom-core");
9
9
  exports.isRefElement = _apidomCore.isRefElement;
10
10
  exports.isLinkPrimitiveElement = _apidomCore.isLinkElement;
@@ -37,6 +37,8 @@ var _normalizeHeaderExamples = _interopRequireDefault(require("./refractor/plugi
37
37
  exports.refractorPluginNormalizeHeaderExamples = _normalizeHeaderExamples.default;
38
38
  var _toolbox = _interopRequireDefault(require("./refractor/toolbox.cjs"));
39
39
  exports.createToolbox = _toolbox.default;
40
+ var _specification = _interopRequireDefault(require("./refractor/specification.cjs"));
41
+ exports.specificationObj = _specification.default;
40
42
  var _predicates = require("./predicates.cjs");
41
43
  exports.isCallbackElement = _predicates.isCallbackElement;
42
44
  exports.isComponentsElement = _predicates.isComponentsElement;
@@ -635,33 +635,24 @@ const plugin = () => ({
635
635
  const isEmptyElement = element => predicates.isStringElement(element) && predicates.includesClasses(['yaml-e-node', 'yaml-e-scalar'], element);
636
636
  return {
637
637
  visitor: {
638
- MemberElement(element, ...rest) {
639
- // no empty Element, continue with next one
640
- if (!isEmptyElement(element.value)) return undefined;
641
- const [,,, ancestors] = rest;
642
- const ancestor = ancestors[ancestors.length - 1]; // @TODO(vladimir.gorej@gmail.com): can be replaced by Array.prototype.at in future
643
- const elementFactory = findElementFactory(ancestor, (0, _apidomCore.toValue)(element.key));
644
-
645
- // no element factory found
646
- if (typeof elementFactory === 'undefined') return undefined;
647
- const originalValue = element.value;
648
- return new _apidomCore.MemberElement(element.key, elementFactory.call({
649
- context: ancestor
650
- }, undefined, (0, _apidomCore.cloneDeep)(originalValue.meta), (0, _apidomCore.cloneDeep)(originalValue.attributes)), (0, _apidomCore.cloneDeep)(element.meta), (0, _apidomCore.cloneDeep)(element.attributes));
651
- },
652
- StringElement(element, ...rest) {
638
+ StringElement(element, key, parent, path, ancestors) {
653
639
  if (!isEmptyElement(element)) return undefined;
654
- const [,,, ancestors] = rest;
655
- const ancestor = ancestors[ancestors.length - 1]; // @TODO(vladimir.gorej@gmail.com): can be replaced by Array.prototype.at in future
656
-
657
- // we're only interested in empty elements in ArrayElements
658
- if (!predicates.isArrayElement(ancestor)) return undefined;
659
- const elementFactory = findElementFactory(ancestor, '<*>');
640
+ const lineage = [...ancestors, parent].filter(predicates.isElement);
641
+ const parentElement = lineage[lineage.length - 1]; // @TODO(vladimir.gorej@gmail.com): can be replaced by Array.prototype.at in future
642
+ let elementFactory;
643
+ let context;
644
+ if (predicates.isArrayElement(parentElement)) {
645
+ context = element;
646
+ elementFactory = findElementFactory(parentElement, '<*>');
647
+ } else if (predicates.isMemberElement(parentElement)) {
648
+ context = lineage[lineage.length - 2]; // @TODO(vladimir.gorej@gmail.com): can be replaced by Array.prototype.at in future
649
+ elementFactory = findElementFactory(context, (0, _apidomCore.toValue)(parentElement.key));
650
+ }
660
651
 
661
652
  // no element factory found
662
- if (typeof elementFactory === 'undefined') return undefined;
653
+ if (typeof elementFactory !== 'function') return undefined;
663
654
  return elementFactory.call({
664
- context: element
655
+ context
665
656
  }, undefined, (0, _apidomCore.cloneDeep)(element.meta), (0, _apidomCore.cloneDeep)(element.attributes));
666
657
  }
667
658
  }
@@ -12,9 +12,11 @@ const createToolbox = () => {
12
12
  const namespace = (0, _apidomCore.createNamespace)(_namespace.default);
13
13
  const predicates = {
14
14
  ...openApi3_1Predicates,
15
+ isElement: _apidomCore.isElement,
15
16
  isStringElement: _apidomCore.isStringElement,
16
17
  isArrayElement: _apidomCore.isArrayElement,
17
18
  isObjectElement: _apidomCore.isObjectElement,
19
+ isMemberElement: _apidomCore.isMemberElement,
18
20
  isServersElement: _apidomNsOpenapi.isServersElement,
19
21
  includesClasses: _apidomCore.includesClasses
20
22
  };
@@ -11,7 +11,6 @@ var _predicates = require("../../../predicates.cjs");
11
11
  const WebhooksVisitor = (0, _stampit.default)(_apidomNsOpenapi.MapVisitor, _apidomNsOpenapi.FallbackVisitor, {
12
12
  props: {
13
13
  specPath: element => {
14
- // eslint-disable-next-line no-nested-ternary
15
14
  return (0, _apidomNsOpenapi.isReferenceLikeElement)(element) ? ['document', 'objects', 'Reference'] : ['document', 'objects', 'PathItem'];
16
15
  }
17
16
  },
@@ -10,7 +10,6 @@ var _predicates = require("../../../../predicates.cjs");
10
10
  const PathItemsVisitor = (0, _stampit.default)(_apidomNsOpenapi.MapVisitor, _apidomNsOpenapi.FallbackVisitor, {
11
11
  props: {
12
12
  specPath: element => {
13
- // eslint-disable-next-line no-nested-ternary
14
13
  return (0, _apidomNsOpenapi.isReferenceLikeElement)(element) ? ['document', 'objects', 'Reference'] : ['document', 'objects', 'PathItem'];
15
14
  }
16
15
  },
@@ -15,10 +15,13 @@ var _ParentSchemaAwareVisitor = _interopRequireDefault(require("./ParentSchemaAw
15
15
  const SchemaVisitor = (0, _stampit.default)(_apidomNsOpenapi.FixedFieldsVisitor, _ParentSchemaAwareVisitor.default, _apidomNsOpenapi.FallbackVisitor, {
16
16
  props: {
17
17
  specPath: (0, _ramda.always)(['document', 'objects', 'Schema']),
18
- canSupportSpecificationExtensions: true
18
+ canSupportSpecificationExtensions: true,
19
+ jsonSchemaDefaultDialect: _JsonSchemaDialect.default.default
19
20
  },
20
21
  // @ts-ignore
21
22
  init() {
23
+ this.element = new _Schema.default();
24
+
22
25
  /**
23
26
  * Private Api.
24
27
  */
@@ -35,7 +38,7 @@ const SchemaVisitor = (0, _stampit.default)(_apidomNsOpenapi.FixedFieldsVisitor,
35
38
  } else if (this.openApiGenericElement !== null && (0, _apidomCore.isStringElement)(this.openApiGenericElement.get('jsonSchemaDialect'))) {
36
39
  jsonSchemaDialect = (0, _apidomCore.toValue)(this.openApiGenericElement.get('jsonSchemaDialect'));
37
40
  } else {
38
- jsonSchemaDialect = (0, _apidomCore.toValue)(_JsonSchemaDialect.default.default);
41
+ jsonSchemaDialect = (0, _apidomCore.toValue)(this.jsonSchemaDefaultDialect);
39
42
  }
40
43
  return jsonSchemaDialect;
41
44
  };
@@ -57,7 +60,7 @@ const SchemaVisitor = (0, _stampit.default)(_apidomNsOpenapi.FixedFieldsVisitor,
57
60
  // get current $id keyword
58
61
  const $id = (0, _apidomCore.toValue)(objectElement.get('$id'));
59
62
 
60
- // remember $id keyword if it's a non empty strings
63
+ // remember $id keyword if it's a non-empty strings
61
64
  if ((0, _ramdaAdjunct.isNonEmptyString)($id)) {
62
65
  inherited$id.push($id);
63
66
  }
@@ -69,7 +72,6 @@ const SchemaVisitor = (0, _stampit.default)(_apidomNsOpenapi.FixedFieldsVisitor,
69
72
  */
70
73
  // eslint-disable-next-line @typescript-eslint/naming-convention
71
74
  this.ObjectElement = function _ObjectElement(objectElement) {
72
- this.element = new _Schema.default();
73
75
  handle$schema(objectElement);
74
76
  handle$id(objectElement);
75
77