From 010c694b16c112da3b832914f300c7c6e1a684ac Mon Sep 17 00:00:00 2001 From: Hans Klunder Date: Mon, 25 Apr 2022 19:27:25 +0200 Subject: [PATCH] Support @seriousme/openapi-schema-validator v2.0.0 --- CHANGELOG.md | 6 ++++ examples/generatedProject/package.json | 2 +- lib/parser.js | 18 +++++------ package-lock.json | 44 +++++++++++++------------- package.json | 4 +-- 5 files changed, 40 insertions(+), 34 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 61e74f20..a2d2b823 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,12 @@ ### Changed - Migrated to ES Modules format +## [2.6.8] - 25-04-2022 +### Changed + - Updated dependencies: + @seriousme/openapi-schema-validator ^1.7.1 → ^2.0.0 + tap ^16.0.1 → ^16.1.0 + ## [2.6.7] - 22-04-2022 ### Changed - Deprecation of Nodejs < 14 diff --git a/examples/generatedProject/package.json b/examples/generatedProject/package.json index 5dc3d699..1d6afcb9 100644 --- a/examples/generatedProject/package.json +++ b/examples/generatedProject/package.json @@ -16,6 +16,6 @@ "devDependencies": { "fastify": "^3.28.0", "fastify-cli": "^2.15.0", - "tap": "^16.0.1" + "tap": "^16.1.0" } } \ No newline at end of file diff --git a/lib/parser.js b/lib/parser.js index d2364980..686e8c43 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -1,5 +1,4 @@ // this class is to bridge various parser versions -const Validator = require("@seriousme/openapi-schema-validator"); const ParserV2 = require("./parser.v2"); const ParserV3 = require("./parser.v3"); @@ -24,31 +23,32 @@ class parser { */ async preProcessSpec(specification) { + const { Validator } = await import("@seriousme/openapi-schema-validator"); const validator = new Validator(); try { const res = await validator.validate(specification); - if(res.valid){ + if (res.valid) { // clone the original specification as resolveRefs modifies the schema this.original = JSON.parse(JSON.stringify(validator.specification, null, 2)); - return { + return { valid: true, version: validator.version, spec: validator.resolveRefs() } } - throw Error(JSON.stringify(res.errors,null,2)); + throw Error(JSON.stringify(res.errors, null, 2)); } catch (e) { // eslint-disable-next-line console.log(e.message); - return { valid: false}; + return { valid: false }; } } async parse(specification) { const supportedVersions = new Set(["2.0", "3.0", "3.1"]); - + const res = await this.preProcessSpec(specification); - if (!res.valid || !supportedVersions.has(res.version)){ + if (!res.valid || !supportedVersions.has(res.version)) { throw new Error( "'specification' parameter must contain a valid version 2.0 or 3.0.x or 3.1.x specification" ); @@ -57,8 +57,8 @@ class parser { if (res.version === "2.0") { const parserV2 = new ParserV2(); return parserV2.parse(res.spec); - } - + } + const parserV3 = new ParserV3(); return parserV3.parse(res.spec); } diff --git a/package-lock.json b/package-lock.json index fe135b82..0ac9c06d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -403,9 +403,9 @@ "dev": true }, "@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz", + "integrity": "sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw==", "dev": true }, "@jridgewell/sourcemap-codec": { @@ -425,9 +425,9 @@ } }, "@seriousme/openapi-schema-validator": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@seriousme/openapi-schema-validator/-/openapi-schema-validator-1.7.1.tgz", - "integrity": "sha512-ROEusmdgP04NdmH0fgm6dxmm3w9EZ3wg6XGNSbo7WFPcIHNqQC7c1tWPo2fXgrLh7OVGPlzQk1nQQCZaRZv0dQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@seriousme/openapi-schema-validator/-/openapi-schema-validator-2.0.0.tgz", + "integrity": "sha512-otCoKtvDnb+bSiKj23clHKYyisEtrI7qgEg+YiS5z2c1gitKdCqeTvo/R6px/M6I0jSmjP2XDCtVJ+KiGOnnlQ==", "requires": { "ajv": "^8.11.0", "ajv-draft-04": "^1.0.0", @@ -673,15 +673,15 @@ "dev": true }, "browserslist": { - "version": "4.20.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", - "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", + "version": "4.20.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", + "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001317", - "electron-to-chromium": "^1.4.84", + "caniuse-lite": "^1.0.30001332", + "electron-to-chromium": "^1.4.118", "escalade": "^3.1.1", - "node-releases": "^2.0.2", + "node-releases": "^2.0.3", "picocolors": "^1.0.0" } }, @@ -958,9 +958,9 @@ } }, "electron-to-chromium": { - "version": "1.4.118", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.118.tgz", - "integrity": "sha512-maZIKjnYDvF7Fs35nvVcyr44UcKNwybr93Oba2n3HkKDFAtk0svERkLN/HyczJDS3Fo4wU9th9fUQd09ZLtj1w==", + "version": "1.4.119", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.119.tgz", + "integrity": "sha512-HPEmKy+d0xK8oCfEHc5t6wDsSAi1WmE3Ld08QrBjAPxaAzfuKP66VJ77lcTqxTt7GJmSE279s75mhW64Xh+4kw==", "dev": true }, "emoji-regex": { @@ -1648,9 +1648,9 @@ "dev": true }, "libtap": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/libtap/-/libtap-1.3.0.tgz", - "integrity": "sha512-yU5uSY987sVwpWiR5h84ZM96bxvmCQFZ/bOEJ1M7+Us8oez25fLmmLNGFRFGWi2PzuLqAzqzESH7HCaZ/b9IZA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/libtap/-/libtap-1.4.0.tgz", + "integrity": "sha512-STLFynswQ2A6W14JkabgGetBNk6INL1REgJ9UeNKw5llXroC2cGLgKTqavv0sl8OLVztLLipVKMcQ7yeUcqpmg==", "dev": true, "requires": { "async-hook-domain": "^2.0.4", @@ -2599,9 +2599,9 @@ } }, "tap": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/tap/-/tap-16.0.1.tgz", - "integrity": "sha512-y32sc4NFWzeOE1mrNvZoS1kRJADI8MCCSaatVBalCNVgusTf59h3t8mHZ3d0wSTQRs05JTOG52WC3KnWovhjPg==", + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/tap/-/tap-16.1.0.tgz", + "integrity": "sha512-EFERYEEDCLjvsT+B+z/qAVuxh5JPEmtn0aGh1ZT/2BN5nVLm6VbcL9fR/Y2FtsxvHuEC3Q2xLc1n1h7mnWVP9w==", "dev": true, "requires": { "@isaacs/import-jsx": "^4.0.1", @@ -2615,7 +2615,7 @@ "isexe": "^2.0.0", "istanbul-lib-processinfo": "^2.0.2", "jackspeak": "^1.4.1", - "libtap": "^1.3.0", + "libtap": "^1.4.0", "minipass": "^3.1.1", "mkdirp": "^1.0.4", "nyc": "^15.1.0", diff --git a/package.json b/package.json index aa7e79f6..e01982e6 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "openapi-glue": "./bin/openapi-glue-cli.js" }, "dependencies": { - "@seriousme/openapi-schema-validator": "^1.7.1", + "@seriousme/openapi-schema-validator": "^2.0.0", "ajv": "^8.11.0", "ajv-formats": "^2.1.1", "fastify-plugin": "^3.0.1", @@ -39,7 +39,7 @@ "devDependencies": { "fastify": "^3.28.0", "fastify-cli": "^2.15.0", - "tap": "^16.0.1" + "tap": "^16.1.0" }, "repository": { "type": "git",