From 21cf0a0d0bc77c16b8880aef8badad4a416a18c3 Mon Sep 17 00:00:00 2001 From: Joachim Schlienger Date: Wed, 25 Nov 2020 09:36:01 +0100 Subject: [PATCH 1/6] CHIST-3143: test linting with spectral and custom rule --- .idea/encodings.xml | 4 +- .spectral.yaml | 20 + README.md | 19 + functions/x-header-parameter.js | 10 + package-lock.json | 1131 +++++++++++++++++++++++++++++++ package.json | 7 +- 6 files changed, 1188 insertions(+), 3 deletions(-) create mode 100644 .spectral.yaml create mode 100644 functions/x-header-parameter.js diff --git a/.idea/encodings.xml b/.idea/encodings.xml index 016dea0..af673e7 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -2,5 +2,7 @@ + + - + \ No newline at end of file diff --git a/.spectral.yaml b/.spectral.yaml new file mode 100644 index 0000000..8727d05 --- /dev/null +++ b/.spectral.yaml @@ -0,0 +1,20 @@ +extends: spectral:oas +functions: [x-header-parameter] +rules: + wrong-version: + description: OpenApi version must be 3.0.1 + given: $.openapi + severity: error + then: + field: "@value" + function: pattern + functionOptions: + match: "^3.0.1+$" + x-header-not-set: + message: "{{error}}" + given: $.paths.*.post + severity: error + then: + function: "x-header-parameter" + functionOptions: + value: "test" \ No newline at end of file diff --git a/README.md b/README.md index df9487d..59c7074 100644 --- a/README.md +++ b/README.md @@ -50,3 +50,22 @@ Note: _(One must have issued `npm install` previously.)_ Run e.g. on master: `mvn -B release:prepare` e.g. via [![Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io#https://github.com/baloise/corellia) Subsequently the GitHub action worksflow "create release" will pick up the published tag and release and deploy the artifacts in the Github package registry. + + +## Spectral linting (just to not forget how to do it.) + +use the following comand to lint openapi.json +``` +node_modules\.bin\spectral.cmd lint docs\openapi.json +``` +.spectral contains the rules and functions/ contains the custome functions used in the rule +Custom example rules are: + - Version must be 3.0.1 + - all post actions must have X-Caller-Name and X-EventId in the header + +All standard rules for openapie 3 are usesd as well. + +Documentation can be found here: +https://meta.stoplight.io/docs/spectral/README.md + +docker run --rm -it -v %cd%:/tmp quay.balgroupit.com/baloise-base-images/spectral lint /tmp/docs/openapi.json --ruleset=/tmp/docs/spectral.yaml diff --git a/functions/x-header-parameter.js b/functions/x-header-parameter.js new file mode 100644 index 0000000..5bfb1b1 --- /dev/null +++ b/functions/x-header-parameter.js @@ -0,0 +1,10 @@ +module.exports = (targetVal, opts) => { + headers = targetVal.parameters.filter(param => (param.name == "X-Caller-Name" || param.name == "X-Event-ID")); + if (headers.length != 2) { + return [ + { + message: 'Header must have X-Caller-Name and X-Event-Id set in operation: ' + targetVal.operationId, + }, + ]; + } +}; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 08a67ee..3e8cd19 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,6 +4,395 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://nexus.balgroupit.com/repository/npm/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://nexus.balgroupit.com/repository/npm/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://nexus.balgroupit.com/repository/npm/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" + } + }, + "@stoplight/better-ajv-errors": { + "version": "0.0.3", + "resolved": "https://nexus.balgroupit.com/repository/npm/@stoplight/better-ajv-errors/-/better-ajv-errors-0.0.3.tgz", + "integrity": "sha512-q3PoPiYZdzfJjQ+q6ifuLVFx3dBKRxW1OBGxnLAoDlamYb+GJUNiaSLB32L6OB4fi6h/TsY21lZB7y7aYFM7tQ==", + "dev": true, + "requires": { + "jsonpointer": "^4.0.1", + "leven": "^3.1.0" + } + }, + "@stoplight/json": { + "version": "3.9.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/@stoplight/json/-/json-3.9.0.tgz", + "integrity": "sha512-jgEKIPMLbhaU5Nw9yw+VBw2OSfDxm8VQ/k5JNezAuDMjcmqCPz3rOQTVNOROStzi70l4DRxF7eBN9liYJq5Ojw==", + "dev": true, + "requires": { + "@stoplight/ordered-object-literal": "^1.0.1", + "@stoplight/types": "^11.9.0", + "jsonc-parser": "~2.2.1", + "lodash": "^4.17.15", + "safe-stable-stringify": "^1.1" + } + }, + "@stoplight/json-ref-readers": { + "version": "1.2.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/@stoplight/json-ref-readers/-/json-ref-readers-1.2.1.tgz", + "integrity": "sha512-fbh8sXRrwfOCx4EA2e6FGUwvu5zxCQ9xHZg3vYDFSb1HLTlrCeRTdx3VCmYjCSGAhpcwgpB4zMc8kiudujo8Yg==", + "dev": true, + "requires": { + "node-fetch": "^2.6.0" + }, + "dependencies": { + "node-fetch": { + "version": "2.6.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "dev": true + } + } + }, + "@stoplight/json-ref-resolver": { + "version": "3.1.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/@stoplight/json-ref-resolver/-/json-ref-resolver-3.1.0.tgz", + "integrity": "sha512-tEVlRi9sMVektCiPsnint0OD/2zzQOPb7GoWboBznDc3f/99SAjgL6TBWvuFCJXWLwhZP4GA55FggmtsF5OvQg==", + "dev": true, + "requires": { + "@stoplight/json": "^3.4.0", + "@stoplight/path": "^1.3.1", + "@stoplight/types": "^11.6.0", + "@types/urijs": "^1.19.9", + "dependency-graph": "~0.8.0", + "fast-memoize": "^2.5.1", + "immer": "^5.3.2", + "lodash": "^4.17.15", + "tslib": "^1.13.0", + "urijs": "^1.19.2" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "urijs": { + "version": "1.19.2", + "resolved": "https://nexus.balgroupit.com/repository/npm/urijs/-/urijs-1.19.2.tgz", + "integrity": "sha512-s/UIq9ap4JPZ7H1EB5ULo/aOUbWqfDi7FKzMC2Nz+0Si8GiT1rIEaprt8hy3Vy2Ex2aJPpOQv4P4DuOZ+K1c6w==", + "dev": true + } + } + }, + "@stoplight/lifecycle": { + "version": "2.3.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/@stoplight/lifecycle/-/lifecycle-2.3.1.tgz", + "integrity": "sha512-On7qGYPDG1sgx2AOuJp8Hmm6WdK8+1PpCs7DEYoJ1GWtruPij9Q/pW0AV9CuR8KbCrOnvYcBsplaanB+Q3g/7Q==", + "dev": true, + "requires": { + "wolfy87-eventemitter": "~5.2.8" + } + }, + "@stoplight/ordered-object-literal": { + "version": "1.0.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/@stoplight/ordered-object-literal/-/ordered-object-literal-1.0.1.tgz", + "integrity": "sha512-kDcBIKwzAXZTkgzaiPXH2I0JXavBkOb3jFzYNFS5cBuvZS3s/K+knpk2wLVt0n8XrnRQsSffzN6XG9HqUhfq6Q==", + "dev": true + }, + "@stoplight/path": { + "version": "1.3.2", + "resolved": "https://nexus.balgroupit.com/repository/npm/@stoplight/path/-/path-1.3.2.tgz", + "integrity": "sha512-lyIc6JUlUA8Ve5ELywPC8I2Sdnh1zc1zmbYgVarhXIp9YeAB0ReeqmGEOWNtlHkbP2DAA1AL65Wfn2ncjK/jtQ==", + "dev": true + }, + "@stoplight/spectral": { + "version": "5.7.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/@stoplight/spectral/-/spectral-5.7.1.tgz", + "integrity": "sha512-YsoSzKX2F07cEm8xTGKUo8CEvK0mO+3laVpJfP6QnBTNPz4Ym7GoRarbCbRJXkd6scoVGANlFDKQnnD1GvdEuw==", + "dev": true, + "requires": { + "@stoplight/better-ajv-errors": "0.0.3", + "@stoplight/json": "3.9.0", + "@stoplight/json-ref-readers": "1.2.1", + "@stoplight/json-ref-resolver": "3.1.0", + "@stoplight/lifecycle": "2.3.1", + "@stoplight/path": "1.3.2", + "@stoplight/types": "^11.9.0", + "@stoplight/yaml": "4.2.1", + "abort-controller": "3.0.0", + "ajv": "6.12.5", + "ajv-oai": "1.2.0", + "blueimp-md5": "2.13.0", + "chalk": "4.0.0", + "eol": "0.9.1", + "expression-eval": "3.1.2", + "fast-glob": "3.2.4", + "jsonpath-plus": "4.0.0", + "lodash": "4.17.19", + "nanoid": "2.1.11", + "nimma": "0.0.0", + "node-fetch": "2.6", + "proxy-agent": "3.1.1", + "strip-ansi": "6.0", + "text-table": "0.2", + "tslib": "1.13.0", + "yargs": "15.3.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.5", + "resolved": "https://nexus.balgroupit.com/repository/npm/ajv/-/ajv-6.12.5.tgz", + "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://nexus.balgroupit.com/repository/npm/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://nexus.balgroupit.com/repository/npm/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "dev": true + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yargs": { + "version": "15.3.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/yargs/-/yargs-15.3.1.tgz", + "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.1" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://nexus.balgroupit.com/repository/npm/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "@stoplight/types": { + "version": "11.9.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/@stoplight/types/-/types-11.9.0.tgz", + "integrity": "sha512-4bzPpWZobt0e+d0OtALCJyl1HGzKo6ur21qxnId9dTl8v3yeD+5HJKZ2h1mv7e94debH5QDtimMU80V6jbXM8Q==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.4", + "utility-types": "^3.10.0" + } + }, + "@stoplight/yaml": { + "version": "4.2.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/@stoplight/yaml/-/yaml-4.2.1.tgz", + "integrity": "sha512-EnSdRgOv/wrdMtdXdTiP5VvChg8lugDmSZVuhcdK/V1pibWd4+r9S4XpJlCx+xgCzg1oLM8pIv/d9cPwHU8XtA==", + "dev": true, + "requires": { + "@stoplight/ordered-object-literal": "^1.0.1", + "@stoplight/types": "^11.9.0", + "@stoplight/yaml-ast-parser": "0.0.48", + "tslib": "^1.12.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@stoplight/yaml-ast-parser": { + "version": "0.0.48", + "resolved": "https://nexus.balgroupit.com/repository/npm/@stoplight/yaml-ast-parser/-/yaml-ast-parser-0.0.48.tgz", + "integrity": "sha512-sV+51I7WYnLJnKPn2EMWgS4EUfoP4iWEbrWwbXsj0MZCB/xOK8j6+C9fntIdOM50kpx45ZLC3s6kwKivWuqvyg==", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.6", + "resolved": "https://nexus.balgroupit.com/repository/npm/@types/json-schema/-/json-schema-7.0.6.tgz", + "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", + "dev": true + }, + "@types/urijs": { + "version": "1.19.13", + "resolved": "https://nexus.balgroupit.com/repository/npm/@types/urijs/-/urijs-1.19.13.tgz", + "integrity": "sha512-Wg/E8Q+ylkR6JElTwOcjG7kM99/iJz28E9RKr8syOxssRs3gWchsziUkb+Nr254aUBWHY0QiScGAfIx4lKI3/g==", + "dev": true + }, "JSONSelect": { "version": "0.4.0", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/JSONSelect/-/JSONSelect-0.4.0.tgz", @@ -14,6 +403,24 @@ "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dev": true, + "requires": { + "event-target-shim": "^5.0.0" + } + }, + "agent-base": { + "version": "4.3.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, "ajv": { "version": "6.10.0", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/ajv/-/ajv-6.10.0.tgz", @@ -25,11 +432,29 @@ "uri-js": "^4.2.2" } }, + "ajv-oai": { + "version": "1.2.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/ajv-oai/-/ajv-oai-1.2.0.tgz", + "integrity": "sha512-BQ2HL/ZfiMm68Xdy7dkS49Vnnq+gSsxfOugJB4TA8Kmu4Ie9ZIa4K4VQYbcHxyW4ccg6l9VB57PjRA2RPh1elw==", + "dev": true, + "requires": { + "decimal.js": "^10.2.0" + } + }, "ansi-regex": { "version": "2.1.1", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "api-spec-converter": { "version": "2.7.32", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/api-spec-converter/-/api-spec-converter-2.7.32.tgz", @@ -95,6 +520,29 @@ "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, + "ast-types": { + "version": "0.14.2", + "resolved": "https://nexus.balgroupit.com/repository/npm/ast-types/-/ast-types-0.14.2.tgz", + "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==", + "dev": true, + "requires": { + "tslib": "^2.0.1" + }, + "dependencies": { + "tslib": { + "version": "2.0.3", + "resolved": "https://nexus.balgroupit.com/repository/npm/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + } + } + }, + "astring": { + "version": "1.4.3", + "resolved": "https://nexus.balgroupit.com/repository/npm/astring/-/astring-1.4.3.tgz", + "integrity": "sha512-yJlJU/bmN820vL+cbWShu2YQU87dBP5V7BH2N4wODapRv27A2dZtUD0LgjP9lZENvPe9XRoSyWx+pZR6qKqNBw==", + "dev": true + }, "asynckit": { "version": "0.4.0", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/asynckit/-/asynckit-0.4.0.tgz", @@ -123,6 +571,27 @@ "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/bluebird/-/bluebird-3.5.3.tgz", "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==" }, + "blueimp-md5": { + "version": "2.13.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/blueimp-md5/-/blueimp-md5-2.13.0.tgz", + "integrity": "sha512-lmp0m647R5e77ORduxLW5mISIDcvgJZa52vMBv5uVI3UmSWTQjkJsZVBfaFqQPw/QFogJwvY6e3Gl9nP+Loe+Q==", + "dev": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://nexus.balgroupit.com/repository/npm/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, "call-me-maybe": { "version": "1.0.1", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/call-me-maybe/-/call-me-maybe-1.0.1.tgz", @@ -138,6 +607,16 @@ "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, + "chalk": { + "version": "4.0.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, "cjson": { "version": "0.2.1", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/cjson/-/cjson-0.2.1.tgz", @@ -175,6 +654,21 @@ "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://nexus.balgroupit.com/repository/npm/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "colors": { "version": "0.5.1", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/colors/-/colors-0.5.1.tgz", @@ -241,6 +735,12 @@ "assert-plus": "^1.0.0" } }, + "data-uri-to-buffer": { + "version": "1.2.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz", + "integrity": "sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==", + "dev": true + }, "debug": { "version": "3.2.6", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/debug/-/debug-3.2.6.tgz", @@ -254,6 +754,12 @@ "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, + "decimal.js": { + "version": "10.2.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/decimal.js/-/decimal.js-10.2.1.tgz", + "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==", + "dev": true + }, "deep-extend": { "version": "0.6.0", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/deep-extend/-/deep-extend-0.6.0.tgz", @@ -272,11 +778,76 @@ "is-plain-object": "^2.0.1" } }, + "degenerator": { + "version": "1.0.4", + "resolved": "https://nexus.balgroupit.com/repository/npm/degenerator/-/degenerator-1.0.4.tgz", + "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", + "dev": true, + "requires": { + "ast-types": "0.x.x", + "escodegen": "1.x.x", + "esprima": "3.x.x" + }, + "dependencies": { + "escodegen": { + "version": "1.14.3", + "resolved": "https://nexus.balgroupit.com/repository/npm/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "esprima": { + "version": "4.0.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + } + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://nexus.balgroupit.com/repository/npm/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, + "depd": { + "version": "1.1.2", + "resolved": "https://nexus.balgroupit.com/repository/npm/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "dependency-graph": { + "version": "0.8.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/dependency-graph/-/dependency-graph-0.8.1.tgz", + "integrity": "sha512-g213uqF8fyk40W8SBjm079n3CZB4qSpCrA2ye1fLGzH/4HEgB6tzuW2CbLE7leb4t45/6h44Ud59Su1/ROTfqw==", + "dev": true + }, "deref": { "version": "0.7.6", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/deref/-/deref-0.7.6.tgz", @@ -320,6 +891,12 @@ "safer-buffer": "^2.1.0" } }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, "encoding": { "version": "0.1.12", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/encoding/-/encoding-0.1.12.tgz", @@ -336,6 +913,12 @@ "once": "^1.4.0" } }, + "eol": { + "version": "0.9.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/eol/-/eol-0.9.1.tgz", + "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==", + "dev": true + }, "error-ex": { "version": "1.3.2", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/error-ex/-/error-ex-1.3.2.tgz", @@ -349,6 +932,15 @@ "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/es6-promise/-/es6-promise-4.2.6.tgz", "integrity": "sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q==" }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, "escodegen": { "version": "0.0.21", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/escodegen/-/escodegen-0.0.21.tgz", @@ -381,6 +973,12 @@ "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/esutils/-/esutils-2.0.2.tgz", "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "dev": true + }, "execa": { "version": "0.7.0", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/execa/-/execa-0.7.0.tgz", @@ -395,6 +993,15 @@ "strip-eof": "^1.0.0" } }, + "expression-eval": { + "version": "3.1.2", + "resolved": "https://nexus.balgroupit.com/repository/npm/expression-eval/-/expression-eval-3.1.2.tgz", + "integrity": "sha512-c8ZN8fuAz0TRYKoGsrIq5kLNHtm81KAqWSBORHIY0DpJmZZrwK/r2zFDOhFIAJDV47gJ6irV7dWf1TOFpKvULQ==", + "dev": true, + "requires": { + "jsep": "^0.3.0" + } + }, "extend": { "version": "3.0.2", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/extend/-/extend-3.0.2.tgz", @@ -415,6 +1022,20 @@ "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" }, + "fast-glob": { + "version": "3.2.4", + "resolved": "https://nexus.balgroupit.com/repository/npm/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } + }, "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", @@ -425,6 +1046,36 @@ "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, + "fast-memoize": { + "version": "2.5.2", + "resolved": "https://nexus.balgroupit.com/repository/npm/fast-memoize/-/fast-memoize-2.5.2.tgz", + "integrity": "sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==", + "dev": true + }, + "fastq": { + "version": "1.9.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/fastq/-/fastq-1.9.0.tgz", + "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, "find-up": { "version": "2.1.0", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/find-up/-/find-up-2.1.0.tgz", @@ -458,6 +1109,42 @@ "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/formidable/-/formidable-1.2.1.tgz", "integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==" }, + "ftp": { + "version": "0.3.10", + "resolved": "https://nexus.balgroupit.com/repository/npm/ftp/-/ftp-0.3.10.tgz", + "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", + "dev": true, + "requires": { + "readable-stream": "1.1.x", + "xregexp": "2.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://nexus.balgroupit.com/repository/npm/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://nexus.balgroupit.com/repository/npm/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, "generate-schema": { "version": "2.6.0", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/generate-schema/-/generate-schema-2.6.0.tgz", @@ -477,6 +1164,37 @@ "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, + "get-uri": { + "version": "2.0.4", + "resolved": "https://nexus.balgroupit.com/repository/npm/get-uri/-/get-uri-2.0.4.tgz", + "integrity": "sha512-v7LT/s8kVjs+Tx0ykk1I+H/rbpzkHvuIq87LmeXptcf5sNWm9uQiwjNAt94SJPA1zOlCntmnOlJvVWKmzsxG8Q==", + "dev": true, + "requires": { + "data-uri-to-buffer": "1", + "debug": "2", + "extend": "~3.0.2", + "file-uri-to-path": "1", + "ftp": "~0.3.10", + "readable-stream": "2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://nexus.balgroupit.com/repository/npm/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, "getpass": { "version": "0.1.7", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/getpass/-/getpass-0.1.7.tgz", @@ -485,6 +1203,15 @@ "assert-plus": "^1.0.0" } }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, "google-discovery-to-swagger": { "version": "2.0.0", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/google-discovery-to-swagger/-/google-discovery-to-swagger-2.0.0.tgz", @@ -549,11 +1276,65 @@ "har-schema": "^2.0.0" } }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, "hosted-git-info": { "version": "2.7.1", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/hosted-git-info/-/hosted-git-info-2.7.1.tgz", "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" }, + "http-errors": { + "version": "1.7.3", + "resolved": "https://nexus.balgroupit.com/repository/npm/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "resolved": "https://nexus.balgroupit.com/repository/npm/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + } + } + }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, "http-signature": { "version": "1.2.0", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/http-signature/-/http-signature-1.2.0.tgz", @@ -569,6 +1350,16 @@ "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/http-status-codes/-/http-status-codes-1.3.2.tgz", "integrity": "sha512-nDUtj0ltIt08tGi2VWSpSzNNFye0v3YSe9lX3lIqLTuVvvRiYCvs4QQBSHo0eomFYw1wlUuofurUAlTm+vHnXg==" }, + "https-proxy-agent": { + "version": "3.0.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", + "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", + "dev": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + } + }, "iconv-lite": { "version": "0.4.24", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -577,6 +1368,12 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "immer": { + "version": "5.3.6", + "resolved": "https://nexus.balgroupit.com/repository/npm/immer/-/immer-5.3.6.tgz", + "integrity": "sha512-pqWQ6ozVfNOUDjrLfm4Pt7q4Q12cGw2HUZgry4Q5+Myxu9nmHRkWBpI0J4+MK0AxbdFtdMTwEGVl7Vd+vEiK+A==", + "dev": true + }, "infinity-agent": { "version": "1.0.2", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/infinity-agent/-/infinity-agent-1.0.2.tgz", @@ -592,11 +1389,23 @@ "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/invert-kv/-/invert-kv-1.0.0.tgz", "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" }, + "ip": { + "version": "1.1.5", + "resolved": "https://nexus.balgroupit.com/repository/npm/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, "is-arrayish": { "version": "0.2.1", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", @@ -605,6 +1414,21 @@ "number-is-nan": "^1.0.0" } }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, "is-plain-object": { "version": "2.0.4", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -703,6 +1527,12 @@ "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, + "jsep": { + "version": "0.3.5", + "resolved": "https://nexus.balgroupit.com/repository/npm/jsep/-/jsep-0.3.5.tgz", + "integrity": "sha512-AoRLBDc6JNnKjNcmonituEABS5bcfqDhQAWWXNTFrqu6nVXBpBAGfcoTGZMFlIrh9FjmE1CQyX9CTNwZrXMMDA==", + "dev": true + }, "json-refs": { "version": "3.0.12", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/json-refs/-/json-refs-3.0.12.tgz", @@ -845,6 +1675,12 @@ "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, + "jsonc-parser": { + "version": "2.2.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/jsonc-parser/-/jsonc-parser-2.2.1.tgz", + "integrity": "sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w==", + "dev": true + }, "jsonpath": { "version": "0.2.12", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/jsonpath/-/jsonpath-0.2.12.tgz", @@ -863,6 +1699,18 @@ } } }, + "jsonpath-plus": { + "version": "4.0.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/jsonpath-plus/-/jsonpath-plus-4.0.0.tgz", + "integrity": "sha512-e0Jtg4KAzDJKKwzbLaUtinCn0RZseWBVRTRGihSpvFlM3wTR7ExSp+PTdeTsDrLNJUe7L7JYJe8mblHX5SCT6A==", + "dev": true + }, + "jsonpointer": { + "version": "4.1.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/jsonpointer/-/jsonpointer-4.1.0.tgz", + "integrity": "sha512-CXcRvMyTlnR53xMcKnuMzfCA5i/nfblTnnr74CZb6C4vG39eu6w51t7nKmU5MfLfbTgGItliNyjO/ciNPDqClg==", + "dev": true + }, "jsprim": { "version": "1.4.1", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/jsprim/-/jsprim-1.4.1.tgz", @@ -882,6 +1730,12 @@ "invert-kv": "^1.0.0" } }, + "leven": { + "version": "3.1.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, "levn": { "version": "0.3.0", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/levn/-/levn-0.3.0.tgz", @@ -953,11 +1807,27 @@ "mimic-fn": "^1.0.0" } }, + "merge2": { + "version": "1.4.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, "methods": { "version": "1.1.2", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/methods/-/methods-1.1.2.tgz", "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://nexus.balgroupit.com/repository/npm/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, "mime": { "version": "1.6.0", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/mime/-/mime-1.6.0.tgz", @@ -991,11 +1861,33 @@ "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/ms/-/ms-2.1.1.tgz", "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" }, + "nanoid": { + "version": "2.1.11", + "resolved": "https://nexus.balgroupit.com/repository/npm/nanoid/-/nanoid-2.1.11.tgz", + "integrity": "sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==", + "dev": true + }, "native-promise-only": { "version": "0.8.1", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/native-promise-only/-/native-promise-only-0.8.1.tgz", "integrity": "sha1-IKMYwwy0X3H+et+/eyHJnBRy7xE=" }, + "netmask": { + "version": "1.0.6", + "resolved": "https://nexus.balgroupit.com/repository/npm/netmask/-/netmask-1.0.6.tgz", + "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=", + "dev": true + }, + "nimma": { + "version": "0.0.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/nimma/-/nimma-0.0.0.tgz", + "integrity": "sha512-if0VqyHpTMHKFORMiJ2WLWgoIF4xqwjybHZyvodQ/yCmiWag6RhLlMHeFukz4X31DanTBA26U+HwvXIrTaYQkQ==", + "dev": true, + "requires": { + "astring": "^1.4.3", + "jsep": "^0.3.4" + } + }, "node-fetch": { "version": "1.7.3", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/node-fetch/-/node-fetch-1.7.3.tgz", @@ -1143,6 +2035,52 @@ "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" }, + "pac-proxy-agent": { + "version": "3.0.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/pac-proxy-agent/-/pac-proxy-agent-3.0.1.tgz", + "integrity": "sha512-44DUg21G/liUZ48dJpUSjZnFfZro/0K5JTyFYLBcmh9+T6Ooi4/i4efwUiEy0+4oQusCBqWdhv16XohIj1GqnQ==", + "dev": true, + "requires": { + "agent-base": "^4.2.0", + "debug": "^4.1.1", + "get-uri": "^2.0.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^3.0.0", + "pac-resolver": "^3.0.0", + "raw-body": "^2.2.0", + "socks-proxy-agent": "^4.0.1" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://nexus.balgroupit.com/repository/npm/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "pac-resolver": { + "version": "3.0.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/pac-resolver/-/pac-resolver-3.0.0.tgz", + "integrity": "sha512-tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA==", + "dev": true, + "requires": { + "co": "^4.6.0", + "degenerator": "^1.0.4", + "ip": "^1.1.5", + "netmask": "^1.0.6", + "thunkify": "^2.1.2" + } + }, "parse-json": { "version": "2.2.0", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/parse-json/-/parse-json-2.2.0.tgz", @@ -1203,6 +2141,12 @@ "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://nexus.balgroupit.com/repository/npm/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, "pify": { "version": "2.3.0", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/pify/-/pify-2.3.0.tgz", @@ -1228,6 +2172,60 @@ "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/process-nextick-args/-/process-nextick-args-2.0.0.tgz", "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" }, + "proxy-agent": { + "version": "3.1.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/proxy-agent/-/proxy-agent-3.1.1.tgz", + "integrity": "sha512-WudaR0eTsDx33O3EJE16PjBRZWcX8GqCEeERw1W3hZJgH/F2a46g7jty6UGty6NeJ4CKQy8ds2CJPMiyeqaTvw==", + "dev": true, + "requires": { + "agent-base": "^4.2.0", + "debug": "4", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^3.0.0", + "lru-cache": "^5.1.1", + "pac-proxy-agent": "^3.0.1", + "proxy-from-env": "^1.0.0", + "socks-proxy-agent": "^4.0.1" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://nexus.balgroupit.com/repository/npm/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, "pseudomap": { "version": "1.0.2", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/pseudomap/-/pseudomap-1.0.2.tgz", @@ -1288,6 +2286,18 @@ "ret": "^0.2.0" } }, + "raw-body": { + "version": "2.4.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/raw-body/-/raw-body-2.4.1.tgz", + "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.3", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, "read-all-stream": { "version": "1.0.2", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/read-all-stream/-/read-all-stream-1.0.2.tgz", @@ -1376,11 +2386,29 @@ "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/ret/-/ret-0.2.2.tgz", "integrity": "sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==" }, + "reusify": { + "version": "1.0.4", + "resolved": "https://nexus.balgroupit.com/repository/npm/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "run-parallel": { + "version": "1.1.10", + "resolved": "https://nexus.balgroupit.com/repository/npm/run-parallel/-/run-parallel-1.1.10.tgz", + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", + "dev": true + }, "safe-buffer": { "version": "5.1.2", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, + "safe-stable-stringify": { + "version": "1.1.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/safe-stable-stringify/-/safe-stable-stringify-1.1.1.tgz", + "integrity": "sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw==", + "dev": true + }, "safer-buffer": { "version": "2.1.2", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -1401,6 +2429,12 @@ "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, "shebang-command": { "version": "1.2.0", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/shebang-command/-/shebang-command-1.2.0.tgz", @@ -1472,6 +2506,43 @@ "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/slash/-/slash-1.0.0.tgz", "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" }, + "smart-buffer": { + "version": "4.1.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", + "dev": true + }, + "socks": { + "version": "2.3.3", + "resolved": "https://nexus.balgroupit.com/repository/npm/socks/-/socks-2.3.3.tgz", + "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", + "dev": true, + "requires": { + "ip": "1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "4.0.2", + "resolved": "https://nexus.balgroupit.com/repository/npm/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", + "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", + "dev": true, + "requires": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "dependencies": { + "agent-base": { + "version": "4.2.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + } + } + }, "source-map": { "version": "0.6.0", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/source-map/-/source-map-0.6.0.tgz", @@ -1638,6 +2709,15 @@ "readable-stream": "^2.3.5" } }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, "swagger-converter": { "version": "1.5.1", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/swagger-converter/-/swagger-converter-1.5.1.tgz", @@ -1715,11 +2795,38 @@ "z-schema": "^3.22.0" } }, + "text-table": { + "version": "0.2.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "thunkify": { + "version": "2.1.2", + "resolved": "https://nexus.balgroupit.com/repository/npm/thunkify/-/thunkify-2.1.2.tgz", + "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=", + "dev": true + }, "timed-out": { "version": "2.0.0", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/timed-out/-/timed-out-2.0.0.tgz", "integrity": "sha1-84sK6B03R9YoAB9B2vxlKs5nHAo=" }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://nexus.balgroupit.com/repository/npm/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, "tough-cookie": { "version": "2.4.3", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/tough-cookie/-/tough-cookie-2.4.3.tgz", @@ -1777,6 +2884,12 @@ "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/underscore/-/underscore-1.7.0.tgz", "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, "uri-js": { "version": "4.2.2", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/uri-js/-/uri-js-4.2.2.tgz", @@ -1800,6 +2913,12 @@ "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, + "utility-types": { + "version": "3.10.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/utility-types/-/utility-types-3.10.0.tgz", + "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==", + "dev": true + }, "uuid": { "version": "3.3.2", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/uuid/-/uuid-3.3.2.tgz", @@ -1842,6 +2961,12 @@ "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, + "wolfy87-eventemitter": { + "version": "5.2.9", + "resolved": "https://nexus.balgroupit.com/repository/npm/wolfy87-eventemitter/-/wolfy87-eventemitter-5.2.9.tgz", + "integrity": "sha512-P+6vtWyuDw+MB01X7UeF8TaHBvbCovf4HPEMF/SV7BdDc1SMTiBy13SRD71lQh4ExFTG1d/WNzDGDCyOKSMblw==", + "dev": true + }, "wordwrap": { "version": "1.0.0", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/wordwrap/-/wordwrap-1.0.0.tgz", @@ -1887,6 +3012,12 @@ "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/xmlbuilder/-/xmlbuilder-9.0.7.tgz", "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" }, + "xregexp": { + "version": "2.0.0", + "resolved": "https://nexus.balgroupit.com/repository/npm/xregexp/-/xregexp-2.0.0.tgz", + "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=", + "dev": true + }, "y18n": { "version": "3.2.1", "resolved": "http://svx-build02.bvch.ch:9081/nexus/repository/npm/y18n/-/y18n-3.2.1.tgz", diff --git a/package.json b/package.json index f895d5b..7e6d293 100644 --- a/package.json +++ b/package.json @@ -9,8 +9,11 @@ "dependencies": { "api-spec-converter": "2.7.32" }, - "devDependencies": {}, + "devDependencies": { + "@stoplight/spectral": "^5.7.1" + }, "scripts": { - "convert": "api-spec-converter --from=openapi_3 --to=swagger_2 --syntax=json docs/openapi.json" + "convert": "api-spec-converter --from=openapi_3 --to=swagger_2 --syntax=json docs/openapi.json", + "spectral": "spectral lint docs/openapi.json --ruleset" } } From 51663a30f1525ef27638aafd548fb68007fceaee Mon Sep 17 00:00:00 2001 From: Joachim Schlienger Date: Wed, 25 Nov 2020 09:39:46 +0100 Subject: [PATCH 2/6] CHIST-3143: add linting as action --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2a46c06..fb5e3c0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,5 +13,7 @@ jobs: uses: actions/setup-java@v1 with: java-version: 1.8 + - name: Lint with spectral + run: npm install && ./node_modules/.bin/spectral.cmd lint ./docs/openapi.json - name: Build with Maven run: mvn clean verify --file pom.xml From edb6799160258f81fe1b0f7bbef494282f6d0038 Mon Sep 17 00:00:00 2001 From: Joachim Schlienger Date: Wed, 25 Nov 2020 09:44:51 +0100 Subject: [PATCH 3/6] CHIST-3143: only npm install --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fb5e3c0..1b083e3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,6 +14,6 @@ jobs: with: java-version: 1.8 - name: Lint with spectral - run: npm install && ./node_modules/.bin/spectral.cmd lint ./docs/openapi.json + run: npm install - name: Build with Maven run: mvn clean verify --file pom.xml From 21a5171169158ae4db24461764b13ca6964952a9 Mon Sep 17 00:00:00 2001 From: Joachim Schlienger Date: Wed, 25 Nov 2020 13:48:46 +0000 Subject: [PATCH 4/6] added spectral to package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7e6d293..7507516 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,6 @@ }, "scripts": { "convert": "api-spec-converter --from=openapi_3 --to=swagger_2 --syntax=json docs/openapi.json", - "spectral": "spectral lint docs/openapi.json --ruleset" + "spectral": "spectral lint docs/openapi.json" } } From fcea2dc9fc784597b52ab4f6336abd215a1672d1 Mon Sep 17 00:00:00 2001 From: Joachim Schlienger Date: Wed, 25 Nov 2020 14:54:31 +0100 Subject: [PATCH 5/6] CHIST-3143: npm and lint --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1b083e3..edfece6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,6 +14,6 @@ jobs: with: java-version: 1.8 - name: Lint with spectral - run: npm install + run: npm install && npm run spectral - name: Build with Maven run: mvn clean verify --file pom.xml From c6fcb051fa6f0ec629a6a469a38082cde4dd5ac0 Mon Sep 17 00:00:00 2001 From: Joachim Schlienger Date: Wed, 25 Nov 2020 16:07:35 +0100 Subject: [PATCH 6/6] CHIST-3143: fixed --- .spectral.yaml | 4 ++-- README.md | 7 ++++--- docs/openapi.json | 2 +- functions/x-header-parameter.js | 4 ++-- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/.spectral.yaml b/.spectral.yaml index 8727d05..34c0fa3 100644 --- a/.spectral.yaml +++ b/.spectral.yaml @@ -2,14 +2,14 @@ extends: spectral:oas functions: [x-header-parameter] rules: wrong-version: - description: OpenApi version must be 3.0.1 + description: OpenApi version must be 3.x.x given: $.openapi severity: error then: field: "@value" function: pattern functionOptions: - match: "^3.0.1+$" + match: "^3\.\d\.\d+$" x-header-not-set: message: "{{error}}" given: $.paths.*.post diff --git a/README.md b/README.md index 59c7074..33ff691 100644 --- a/README.md +++ b/README.md @@ -56,9 +56,10 @@ Subsequently the GitHub action worksflow "create release" will pick up the publi use the following comand to lint openapi.json ``` -node_modules\.bin\spectral.cmd lint docs\openapi.json +node run spectral ``` -.spectral contains the rules and functions/ contains the custome functions used in the rule +`.spectral` contains the rules and `functions/` contains the custom functions used in the rule + Custom example rules are: - Version must be 3.0.1 - all post actions must have X-Caller-Name and X-EventId in the header @@ -68,4 +69,4 @@ All standard rules for openapie 3 are usesd as well. Documentation can be found here: https://meta.stoplight.io/docs/spectral/README.md -docker run --rm -it -v %cd%:/tmp quay.balgroupit.com/baloise-base-images/spectral lint /tmp/docs/openapi.json --ruleset=/tmp/docs/spectral.yaml +`docker run --rm -it -v %cd%:/tmp quay.balgroupit.com/baloise-base-images/spectral lint /tmp/docs/openapi.json --ruleset=/tmp/docs/spectral.yaml` diff --git a/docs/openapi.json b/docs/openapi.json index 2e00226..5fe876e 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -478,7 +478,7 @@ "properties" : { "data" : { "type" : "array", - "description" : "The document itself. If the documentType is CONTRACT then the document must contain one of these keywords 'Versicherungsvertrag, Contrat d’assurance, Contratto di assicurazione, Insurance policy'", + "description" : "The document itself. If the documentType is CONTRACT then the document must contain one of these keywords 'Versicherungsvertrag, Contrat d�assurance, Contratto di assicurazione, Insurance policy'", "items" : { "type" : "string", "format" : "byte" diff --git a/functions/x-header-parameter.js b/functions/x-header-parameter.js index 5bfb1b1..d203ba2 100644 --- a/functions/x-header-parameter.js +++ b/functions/x-header-parameter.js @@ -1,6 +1,6 @@ module.exports = (targetVal, opts) => { - headers = targetVal.parameters.filter(param => (param.name == "X-Caller-Name" || param.name == "X-Event-ID")); - if (headers.length != 2) { + if ((targetVal.parameters.filter(param => param.name == "X-Caller-Name").length == 0) + || (targetVal.parameters.filter(param => param.name == "X-Event-ID").length == 0)) { return [ { message: 'Header must have X-Caller-Name and X-Event-Id set in operation: ' + targetVal.operationId,