From d799e850e5b66b4b6fe180b14da5598f4903583c Mon Sep 17 00:00:00 2001 From: Vladimir Gorej Date: Wed, 2 Jun 2021 10:54:27 +0200 Subject: [PATCH 1/4] feat(ns-openapi-3-1): add support for Boolean JSON Schemas Refs https://github.com/OAI/OpenAPI-Specification/pull/2598 --- .../refractor/visitors/open-api-3-1/schema/index.ts | 12 +++++++++--- .../apidom-ns-openapi-3-1/test/refractor/index.ts | 7 +++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/apidom/packages/apidom-ns-openapi-3-1/src/refractor/visitors/open-api-3-1/schema/index.ts b/apidom/packages/apidom-ns-openapi-3-1/src/refractor/visitors/open-api-3-1/schema/index.ts index 6316e72a35..a4817798ed 100644 --- a/apidom/packages/apidom-ns-openapi-3-1/src/refractor/visitors/open-api-3-1/schema/index.ts +++ b/apidom/packages/apidom-ns-openapi-3-1/src/refractor/visitors/open-api-3-1/schema/index.ts @@ -1,7 +1,7 @@ import stampit from 'stampit'; import { always, defaultTo } from 'ramda'; import { isNonEmptyString, isNull } from 'ramda-adjunct'; -import { ObjectElement, isStringElement, ArrayElement } from 'apidom'; +import { ObjectElement, ArrayElement, BooleanElement, isStringElement, BREAK } from 'apidom'; import { isSchemaElement, isJsonSchemaDialectElement } from '../../../../predicates'; import SchemaElement from '../../../../elements/Schema'; @@ -17,8 +17,6 @@ const SchemaVisitor = stampit(FixedFieldsVisitor, ParentSchemaAwareVisitor, Fall }, // @ts-ignore init() { - this.element = new SchemaElement(); - /** * Private Api. */ @@ -85,6 +83,7 @@ const SchemaVisitor = stampit(FixedFieldsVisitor, ParentSchemaAwareVisitor, Fall * Public Api. */ this.ObjectElement = function _ObjectElement(objectElement: ObjectElement) { + this.element = new SchemaElement(); handle$schema(objectElement); handle$id(objectElement); @@ -93,6 +92,13 @@ const SchemaVisitor = stampit(FixedFieldsVisitor, ParentSchemaAwareVisitor, Fall // @ts-ignore return FixedFieldsVisitor.compose.methods.ObjectElement.call(this, objectElement); }; + + this.BooleanElement = function _BooleanElement(booleanElement: BooleanElement) { + this.element = booleanElement.clone(); + this.element.classes.push('boolean-json-schema'); + + return BREAK; + }; }, }); diff --git a/apidom/packages/apidom-ns-openapi-3-1/test/refractor/index.ts b/apidom/packages/apidom-ns-openapi-3-1/test/refractor/index.ts index 12ee8acccf..7a69483f7e 100644 --- a/apidom/packages/apidom-ns-openapi-3-1/test/refractor/index.ts +++ b/apidom/packages/apidom-ns-openapi-3-1/test/refractor/index.ts @@ -10,6 +10,13 @@ describe('refractor', function () { specify('should refract to OpenApi 3.1 namespace', function () { const genericObjectElement = new ObjectElement({ openapi: '3.1.0', + components: { + schemas: { + user: { + if: true, + }, + }, + }, }); const openApiElement = OpenApi3_1Element.refract(genericObjectElement); From 2f000756ae6bd38e805bd3a8d00071bb3616883a Mon Sep 17 00:00:00 2001 From: Vladimir Gorej Date: Wed, 2 Jun 2021 12:42:09 +0200 Subject: [PATCH 2/4] chore(deps-dev): fix security vulnerabilities --- apidom/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apidom/package-lock.json b/apidom/package-lock.json index 5ca0bf5bdd..11e2bd54b6 100644 --- a/apidom/package-lock.json +++ b/apidom/package-lock.json @@ -18512,9 +18512,9 @@ } }, "ws": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz", - "integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", "dev": true }, "xml-name-validator": { From a351ddfc1c44f63c29a483217d54a50547e8d7f0 Mon Sep 17 00:00:00 2001 From: Vladimir Gorej Date: Wed, 2 Jun 2021 15:37:19 +0200 Subject: [PATCH 3/4] chore(deps-dev): fix security vulnerabilities in apidom-playground --- experiments/apidom-playground/.npmrc | 2 +- experiments/apidom-playground/package-lock.json | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/experiments/apidom-playground/.npmrc b/experiments/apidom-playground/.npmrc index 188d4c4de1..74cb7685ef 100644 --- a/experiments/apidom-playground/.npmrc +++ b/experiments/apidom-playground/.npmrc @@ -1 +1 @@ -audit-whitelist=[565,1677,1693,1745,1747] +audit-whitelist=[565,1677,1693,1745,1747,1748] diff --git a/experiments/apidom-playground/package-lock.json b/experiments/apidom-playground/package-lock.json index b4902ccd5c..e647a1d0a1 100644 --- a/experiments/apidom-playground/package-lock.json +++ b/experiments/apidom-playground/package-lock.json @@ -6214,9 +6214,9 @@ "dev": true }, "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", "dev": true, "requires": { "ip": "^1.1.0", @@ -20276,9 +20276,9 @@ } }, "ws": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz", - "integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", "dev": true }, "xml-name-validator": { From f6703ad0492a8a849bfa92dd6d07014edd8dc386 Mon Sep 17 00:00:00 2001 From: Vladimir Gorej Date: Wed, 2 Jun 2021 15:38:02 +0200 Subject: [PATCH 4/4] test(ns-openapi-3-1): fix failing test --- .../packages/apidom-ns-openapi-3-1/test/refractor/index.ts | 7 ------- 1 file changed, 7 deletions(-) diff --git a/apidom/packages/apidom-ns-openapi-3-1/test/refractor/index.ts b/apidom/packages/apidom-ns-openapi-3-1/test/refractor/index.ts index 7a69483f7e..12ee8acccf 100644 --- a/apidom/packages/apidom-ns-openapi-3-1/test/refractor/index.ts +++ b/apidom/packages/apidom-ns-openapi-3-1/test/refractor/index.ts @@ -10,13 +10,6 @@ describe('refractor', function () { specify('should refract to OpenApi 3.1 namespace', function () { const genericObjectElement = new ObjectElement({ openapi: '3.1.0', - components: { - schemas: { - user: { - if: true, - }, - }, - }, }); const openApiElement = OpenApi3_1Element.refract(genericObjectElement);