diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..f9f78c9 --- /dev/null +++ b/.npmignore @@ -0,0 +1,2 @@ +readme_images +scripts \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..3614113 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,12 @@ +> **Attention:** ⚠️ means that a change breaks things. Manual adjustments will be necessary. So be careful before updating. Even data loss might occur. + +**Version 1.1.3 (19th of December 2024)** +- added missing path and cookie selection +- added links to official openAPI documentation + +**Version 1.1.2 (18th of July 2024)** +- updated dependencies +- Theme compatibility +- UI fixes (fixed label / input field lengths) +- Using full URL for the swagger-ui-tab +- Warning for "GET", "HEAD" and "DELETE" in request body tab \ No newline at end of file diff --git a/package.json b/package.json index 6d701cf..f788231 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@digital-tvilling/node-red-openapi-generator", - "version": "1.1.1", + "version": "1.1.3", "description": "A set of tools for generating OpenAPI3/Swagger documentation based on the HTTP nodes deployed in a flow. An updated version of the Node-RED Swagger Documentation Generator to support OpenAPI3.", "license": "Apache", "repository": { @@ -28,14 +28,17 @@ "Filip Åsblom " ], "dependencies": { - "i18next": "^23.11.5", - "swagger-ui": "^5.17.14", - "swagger-ui-dist": "^5.17.14" + "i18next": "^23.16.8", + "swagger-ui": "^5.18.2", + "swagger-ui-dist": "^5.18.2" }, "devDependencies": { "eslint": "^ 9.5.0" }, "engines": { "node": ">=18.0.0" - } + }, + "scripts": { + "setup": "./scripts/setup.sh" + } } diff --git a/scripts/setup.sh b/scripts/setup.sh new file mode 100644 index 0000000..44b4515 --- /dev/null +++ b/scripts/setup.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +# Install dependencies +npm install +# Initialize sample project +mkdir -p /home/gitpod/.node-red +cd /home/gitpod/.node-red/ +npm install +npm link /workspace/node-red-openapi-generator --save + +# Go back to workspace directory +cd /workspace/node-red-openapi-generator \ No newline at end of file diff --git a/swagger/swagger-ui/swagger-ui.html b/swagger/swagger-ui/swagger-ui.html index 1f10733..9406f63 100644 --- a/swagger/swagger-ui/swagger-ui.html +++ b/swagger/swagger-ui/swagger-ui.html @@ -12,8 +12,19 @@ + + diff --git a/swagger/swagger.js b/swagger/swagger.js index d81418b..ba403f5 100644 --- a/swagger/swagger.js +++ b/swagger/swagger.js @@ -79,13 +79,16 @@ module.exports = function (RED) { ); if (!resp.paths[endPoint]) resp.paths[endPoint] = {}; + // request body is permitted in methods GET, HEAD, DELETE but should be avoided https://swagger.io/specification/#operation-object + // editors will show invalid if those methods have an request body -> if not explicit set, do not set it + const avoidRequestBody = ['get', 'head', 'delete'] const { summary = swaggerDocNode.summary || name || method + " " + endPoint, description = swaggerDocNode.description || "", tags = swaggerDocNode.tags || "", deprecated = swaggerDocNode.deprecated || false, parameters = swaggerDocNode.parameters || [], - requestBody = swaggerDocNode.requestBody || {}, + requestBody = swaggerDocNode.requestBody || (avoidRequestBody.includes(method.toLowerCase()) ? undefined : {}), } = swaggerDocNode; const aryTags = csvStrToArray(tags);