diff --git a/.gitignore b/.gitignore index a5cafce8aaff50784bfa58d9c64c38392092c4e4..bbcf40c9751719662c0912bd3f5b52dcc6e3e6ac 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,8 @@ workspace.xml .gitlab-ci-local Wiki/.idea +NodeApp/src/config/Version.ts + ############################ MacOS # General .DS_Store diff --git a/NodeApp/.env.vault b/NodeApp/.env.vault index f6d35a5f86ea190e012c9ec8d378bab125ef1e2f..d23514b1f82b73507230f27e5d9b2f1fbaec3e90 100644 --- a/NodeApp/.env.vault +++ b/NodeApp/.env.vault @@ -4,8 +4,8 @@ #/--------------------------------------------------/ # development -DOTENV_VAULT_DEVELOPMENT="McsEkttfKr1Vl0q9g7z4+6IRodJFBiT+rZWlz8SH12VCeviOBsot3YnUku80PwUxI3MqaWKmw6WNL5eLxKLlo64coMfgdajaTcp9yOfK6CRfHfWdh3MCoAf8ZiqbJGkmaH2X8j2QcnzJ6C+v8S1ZPUxk49ug+6otlyKl8hnr9ECvNGFKJ+Xa5L7XzEo+IGIFDrEYDtxI2VyUOiwudRnP0WarU8KJNt28IZYz3M5zymdFFI8Wlcq2+KiOp/CjiKYDxALkcINGkffu1WIU/lS0WE1FVLbds2hMsGkB4LwT1Q1ASkmsVT/BIb/wRxamDmAN494cTgGqYdaM5IOCGt2BDtm2UJWFrM5txl/PKRrbgE8wjpIaSp5OQ33nRV2P1fGk38z3gYHVI3NG5SRzxZTo+D4lT9UdNmwWIzL6rXRfnJgUTwKhc0MBrl+giaIt3U8wzYB69/F5+thYruSJVir42/b+XpOWSovZTwYYcAO5dXML/24jR3eNMxTlcxVvXpdx/Eg8r5ZCHSsMVKCgmyfGA49xWGjaMqOiizu83mt9KhsXiRgaI1imKiOm85eK9CUkvfLTQo8ccK+RITMvLKtCZgirF4HLi7y5DVjvufhtjxxOXjknFmI3UJFmjU9cUAKC3ccsM9F8Pm4mo6XbcPjBXZdX/18gtlvxps5at1cH998F8ZPkoaEJGp7lCYlxXTEBHOxxCEd5DdUldhpbOUfSsYZHUuxiA1gqJvilok39bgxl1WpO6nPM7S0S0GaI1jGkPKOJ/gx1fBRY91sSQy9Qw/O3tBUId1Az0QZLQZ+gijr6kchd5aczHmIRa2z4AHCSbeuzmaGfP+4yh0M6FvPPCD4i" +DOTENV_VAULT_DEVELOPMENT="NTrhViMVBn/ekwfQ6v08+59FZipjGK0nZ7HJ7eUW1x4BrUG/hQlj3oRMddzPWa8DE8e++W/SCLWWdP6kEOj0xreTQyDymi1d/95TswRdGrmST9iYBTiW7SBoCW0jUCkXkCVcFj/81cButo52OP7BJoAyosc0R6qtt6mO+zxMSyA51tVERgis9TMHTkqH42Fa+2w0ggcYuu3fdbKLUSYoJMLeM08MttiGHy+5bPnS6fCpSuZzNpt9tgMz+K4uAkKjsRAk2BF8xrW3stG4CcWlejhHPllMh0hCF1tISrN2pTmAqS2J/MbIouohr7+LA/9Jqm/oaFUs1lybhMjT45DE7BjqOQWPKEhXx+8faWujOs2v5cV9X3W8uGvQlI4tluXxdvj/wJvPh8BoI7SLpZ0+6xSTl99TorE5bg5n1yuXRLcfZ3HuCqvgXAUAF8l955H9Bjgssoufe4BZroNkt1HWSgEIPMpJGMmzP27rpAfV9ROwQl6aMtCVFiC/0FvxgW4P8N/UgGAS4xCgWqURZ/3wFsko+RBG2gJ3FYEj+PnoRJoR7zhjKZhywLfNESshDmOsIUPYpMQEgKl7CEaRVFy+GSjnHosDeIZu7JqDJnU+URRQf1SzJqByjOyfVViI4Dqzhtm3lzT77xW5jJUurO+uhYGD8jDAKkwtSJV/RHLyz3p56No1YW2buIZhRTVcfmRsHYfTdZNFBY+lzR4DWe9HXbJ48apMN83grqlsFzyT9wfxMwzJAeR2Ah+QQyRTar3y0gckJWesdXprTGJbNZDmSCzMK1p6lvWtfnIgN0KJfQDU/OuoUogaiYJdJQ8cUDyTEARZtfQLV7+gMpf2BU66EGB8LhTmd1vqRusyYV1P7O8pfDjyt8j5uvpi4fCeIFpFcOdUANq6NrXnhvsFIc9gKk20Ky8Ar0QYtFXvo3K2dXcWbhj8sUN61rNHTC5JgWL8N8mf5kVmeIPZv/E5JfcFSPACVw==" # production -DOTENV_VAULT_PRODUCTION="aWWYhhCla0zC0MtLgZl1O7b4j8q5ya47bbHgZZtNJzw1PrL1I/2axdy6atW3v1cstw2putaNl4Gc81IM3GUPHyP6dDod6L7AMmLXKwrQFoYUxz0Za8fWLpnx79nY6A/zNgwfBqEZ0NE5o/GFKCDRYsfA6UuX8f6jBN2lhVK9leMU5DRvEyPrhKV4KHDwjKSTuqNbkZNW/BwyTf9Fdrd/SgUjgWA5Rvrg6N3RSkcHsuHfrBXzuzFHUFjQyrDlfS+fmpHj6PN69HWwtG+OjpgPaLocZ3WN2cDnb9X+rhB1W0uTN9Y8gAJkddUw3Kynf7YXimEBxWwV3ltdftIPAIcnz5cOx6lbzwFrXPnl2FesjpFZ1G27rZVr61kSUiILjRbOg9KIEmSqJXFzUHEyX7FwEYWxHtm1jw+76ePTV5g+4yfIxx2Vjo78uUKreASwtlA6CnsnnkFKqqLE3LYtskI7SYq/2t/Y0UrFKOFrOiK3Y5Kza7rRfcZo5SoNGFcyBw+4/YV5Tk/8z4zhyt/6lzLTA/w/mNXv4KCKn2oRBIUOlaMClvfmA2pwCv7YgpCGAycj0qQkhNhhIkd2F3cuc0o+U1XnWiqlEIVX9Z40gnrzodTRBmdvjVNdQ79nMvEVsmzjwmhoAC62RnyEnMUBrE9XM3RvRFoYFThOd7RE5TxCmLjbZfyVYN58hufZZDFT3oPYzoT9rzur6nU0NqjfNNU6BfZK4L+qGBg=" +DOTENV_VAULT_PRODUCTION="QyizJk0k4H0ebjOx03rGPVAL8XM2oRjdO6CXvCXATMvwgdLGGV7k4FKc5vWea7G7JL21KuHRAjdzq/DRhke5N1x5RECcKenMOBvClya6B4tj+UB3mixDkU5uTqAbcdvA64WGbQB3Ubh1ZVIgSLyK3ZUotbrKJkFplLWEuXfOtiRtc1o5MJVDYwy3aIxl2F0xUseSM7TYvH/HRwYwnddSojwaZ2UMQTM6ne4KifQSY6/VFlkaHen+9z8tjs9TLcRrxZK63WhN4OTDC3E1c6dRH9JIyAc6a1LE2L1CaGUvyCU3ipNkocLG+p/kJitJRK75PSbx2zfhceahC6PFkU5rdKpBLU06T8fyVNz2t4WemBT4qvVl7O7CbSN3WaL5talyrVVQEib4P3vg7O+c3tz+A6ZZltHSryROtiV4lD7cievfUPirzBlhkdn+g4qa2Z3v5p7/gMQ5fOEwFpOMDylXE+z7k9P+2KJWzFrQgEXHvBtiGQ79FIB2F+NjBLh4LeqyUjJFJCT/D2glDfRc+yJiiZhpOAx/7NYRQRjP26cgH9/IlLQXzzot362IjvomLKEjws9x2AlKXWy78xvIQPEnb4MCEuL2HJlRHll6aAKUeHpSyMfIqTJhTVkNmlChYXtbxuYvAwyEFVMLCtgbsyzCJmaHV9XQUzgreinKVJAV206xanLmS9mYd2jk6HopaUIDBLEN5HswOMAkVHkJKX65D8eQzEk0E9ymmnA6rui0mLz6gVRFuKmMZKpYcMZMiTk3oeFc/ZXTrj1iXHAJdeIs3bwdPTy/vejWMjeLxbH7HbKyYccQ4aG7N5oyiN+7SjuTJ0Y/eNzBIb2VXB6Zq//2lLHhs7+dfQZa" diff --git a/NodeApp/package-lock.json b/NodeApp/package-lock.json index 6d9c32798aafb2306f209eb808b9ce5398711637..c31f89fb2c84722aebd72bd9a722586039995f03 100644 --- a/NodeApp/package-lock.json +++ b/NodeApp/package-lock.json @@ -1,12 +1,13 @@ { "name": "dojo_cli", - "version": "2.1.0", + "version": "2.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "dojo_cli", - "version": "2.1.0", + "version": "2.2.0", + "license": "AGPLv3", "dependencies": { "ajv": "^8.12.0", "appdata-path": "^1.0.0", @@ -34,6 +35,7 @@ "@types/node": "^18.17.2", "@types/tar-stream": "^2.2.2", "dotenv-vault": "^1.25.0", + "genversion": "^3.1.1", "pkg": "^5.8.1", "tiny-typed-emitter": "^2.1.0", "ts-node": "^10.9.1", @@ -64,9 +66,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, "engines": { "node": ">=6.9.0" @@ -153,9 +155,9 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "dev": true, "engines": { "node": ">=6.0.0" @@ -177,21 +179,15 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", + "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -281,21 +277,6 @@ "node": ">=10" } }, - "node_modules/@oclif/core/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@oclif/core/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -318,9 +299,9 @@ "dev": true }, "node_modules/@oclif/plugin-help": { - "version": "5.2.19", - "resolved": "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-5.2.19.tgz", - "integrity": "sha512-gf6/dFtzMJ8RA4ovlBCBGJsZsd4jPXhYWJho+Gh6KmA+Ev9LupoExbE0qT+a2uHJyHEvIg4uX/MBW3qdERD/8g==", + "version": "5.2.20", + "resolved": "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-5.2.20.tgz", + "integrity": "sha512-u+GXX/KAGL9S10LxAwNUaWdzbEBARJ92ogmM7g3gDVud2HioCmvWQCDohNRVZ9GYV9oKwZ/M8xwd6a1d95rEKQ==", "dev": true, "dependencies": { "@oclif/core": "^2.15.0" @@ -384,9 +365,9 @@ } }, "node_modules/@oclif/plugin-not-found": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@oclif/plugin-not-found/-/plugin-not-found-2.4.1.tgz", - "integrity": "sha512-LqW7qpw5Q8ploRiup2jEIMQJXcxHP1tpwj45GApKQMe7GRdGdRdjBT9Tu+U2tdEgMqgMplAIhOsYCx2nc2nMSw==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/@oclif/plugin-not-found/-/plugin-not-found-2.4.3.tgz", + "integrity": "sha512-nIyaR4y692frwh7wIHZ3fb+2L6XEecQwRDIb4zbEam0TvaVmBQWZoColQyWA84ljFBPZ8XWiQyTz+ixSwdRkqg==", "dev": true, "dependencies": { "@oclif/core": "^2.15.0", @@ -452,9 +433,9 @@ } }, "node_modules/@oclif/plugin-update": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@oclif/plugin-update/-/plugin-update-3.2.3.tgz", - "integrity": "sha512-JVKwp4ysG9GU4RmG59MZYMunz8onRI+wEQzJThyYkUFd0VfZviYt2FHsyoNtxi30l0tInC8APgKp1pCCO4e+FQ==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@oclif/plugin-update/-/plugin-update-3.2.4.tgz", + "integrity": "sha512-41G7NTKND+yTpb8LHlvlMIcNoaEUIIJuEwju9igL+ME/pN/53opeXgFV2IjjeFiexXj50OfesY9OQ6lqOZHw+g==", "dev": true, "dependencies": { "@oclif/core": "^2.11.8", @@ -528,21 +509,6 @@ "node": ">=10" } }, - "node_modules/@oclif/plugin-update/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@oclif/plugin-update/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -559,9 +525,9 @@ } }, "node_modules/@oclif/plugin-warn-if-update-available": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-2.1.0.tgz", - "integrity": "sha512-liTWd/qSIqALsikr88CAB9o2xGFt0LdT5REbhxtrx16/trRmkxQ+0RHK1FieGZAzEENx/4D3YcC/Y67a0uyO0g==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-2.1.1.tgz", + "integrity": "sha512-y7eSzT6R5bmTIJbiMMXgOlbBpcWXGlVhNeQJBLBCCy1+90Wbjyqf6uvY0i2WcO4sh/THTJ20qCW80j3XUlgDTA==", "dev": true, "dependencies": { "@oclif/core": "^2.15.0", @@ -614,21 +580,6 @@ "node": ">=14.0.0" } }, - "node_modules/@oclif/plugin-warn-if-update-available/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@oclif/plugin-warn-if-update-available/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -645,9 +596,9 @@ } }, "node_modules/@oclif/screen": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@oclif/screen/-/screen-3.0.6.tgz", - "integrity": "sha512-nEv7dFPxCrWrvK6dQ8zya0/Kb54EXVcwIKV9capjSa89ZDoOo+qH0YSo4/eQVECXgW3eUvgKLDIcIt62YBk0HA==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@oclif/screen/-/screen-3.0.7.tgz", + "integrity": "sha512-jQBPHcMh5rcIPKdqA6xlzioLOmkaVnjg2MVyjMzBKV8hDhLWNSiZqx7NAWXpP70v2LFvGdVoV8BSbK9iID3eHg==", "dev": true, "engines": { "node": ">=12.0.0" @@ -678,18 +629,18 @@ "dev": true }, "node_modules/@types/cli-progress": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/@types/cli-progress/-/cli-progress-3.11.2.tgz", - "integrity": "sha512-Yt/8rEJalfa9ve2SbfQnwFHrc9QF52JIZYHW3FDaTMpkCvnns26ueKiPHDxyJ0CS//IqjMINTx7R5Xa7k7uFHQ==", + "version": "3.11.3", + "resolved": "https://registry.npmjs.org/@types/cli-progress/-/cli-progress-3.11.3.tgz", + "integrity": "sha512-/+C9xAdVtc+g5yHHkGBThgAA8rYpi5B+2ve3wLtybYj0JHEBs57ivR4x/zGfSsplRnV+psE91Nfin1soNKqz5Q==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/fs-extra": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.1.tgz", - "integrity": "sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.2.tgz", + "integrity": "sha512-c0hrgAOVYr21EX8J0jBMXGLMgJqVf/v6yxi0dLaJboW9aQPh16Id+z6w2Tx1hm+piJOLv8xPfVKZCLfjPw/IMQ==", "dev": true, "dependencies": { "@types/jsonfile": "*", @@ -707,9 +658,9 @@ } }, "node_modules/@types/jsonfile": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.1.tgz", - "integrity": "sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.2.tgz", + "integrity": "sha512-8t92P+oeW4d/CRQfJaSqEwXujrhH4OEeHRjGU3v1Q8mUS8GPF3yiX26sw4svv6faL2HfBtGTe2xWIoVgN3dy9w==", "dev": true, "dependencies": { "@types/node": "*" @@ -725,33 +676,33 @@ } }, "node_modules/@types/node": { - "version": "18.17.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.2.tgz", - "integrity": "sha512-wBo3KqP/PBqje5TI9UTiuL3yWfP6sdPtjtygSOqcYZWT232dfDeDOnkDps5wqZBP9NgGgYrNejinl0faAuE+HQ==", + "version": "18.18.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.3.tgz", + "integrity": "sha512-0OVfGupTl3NBFr8+iXpfZ8NR7jfFO+P1Q+IO/q0wbo02wYkP5gy36phojeYWpLQ6WAMjl+VfmqUk2YbUfp0irA==", "dev": true }, "node_modules/@types/tar-stream": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@types/tar-stream/-/tar-stream-2.2.2.tgz", - "integrity": "sha512-1AX+Yt3icFuU6kxwmPakaiGrJUwG44MpuiqPg4dSolRFk6jmvs4b3IbUol9wKDLIgU76gevn3EwE8y/DkSJCZQ==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@types/tar-stream/-/tar-stream-2.2.3.tgz", + "integrity": "sha512-if3mugZfjVkXOMZdFjIHySxY13r6GXPpyOlsDmLffvyI7tLz9wXE8BFjNivXsvUeyJ1KNlOpfLnag+ISmxgxPw==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/through": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz", - "integrity": "sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==", + "version": "0.0.31", + "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.31.tgz", + "integrity": "sha512-LpKpmb7FGevYgXnBXYs6HWnmiFyVG07Pt1cnbgM1IhEacITTiUaBXXvOR3Y50ksaJWGSfhbEvQFivQEFGCC55w==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/triple-beam": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.2.tgz", - "integrity": "sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==" + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.3.tgz", + "integrity": "sha512-6tOUG+nVHn0cJbVp25JFayS5UE6+xlbcNF9Lo9mU7U0zk3zeUShZied4YEQZjy1JBF043FSkdXw8YkUJuVtB5g==" }, "node_modules/acorn": { "version": "8.10.0", @@ -823,6 +774,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -909,9 +871,9 @@ } }, "node_modules/axios": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", - "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.1.tgz", + "integrity": "sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==", "dependencies": { "follow-redirects": "^1.15.0", "form-data": "^4.0.0", @@ -979,17 +941,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/boxen/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1114,18 +1065,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/clean-stack/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cli-boxes": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", @@ -1161,9 +1100,9 @@ } }, "node_modules/cli-spinners": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz", - "integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz", + "integrity": "sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==", "engines": { "node": ">=6" }, @@ -1331,12 +1270,6 @@ } } }, - "node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -1504,12 +1437,6 @@ "is-arrayish": "^0.2.1" } }, - "node_modules/error-ex/node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -1520,11 +1447,15 @@ } }, "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, "engines": { - "node": ">=0.8.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/esprima": { @@ -1568,9 +1499,9 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-fifo": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.0.tgz", - "integrity": "sha512-IgfweLvEpwyA4WgiQe9Nx6VV2QkML2NkvZnk1oKnIzXgXdWxuhF7zw4DvLTPZJn6PIUneiAXPF24QmoEqHTjyw==" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==" }, "node_modules/fast-glob": { "version": "3.3.1", @@ -1634,6 +1565,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/filelist": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", @@ -1685,15 +1624,24 @@ "node": ">=8" } }, + "node_modules/find-package": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-package/-/find-package-1.0.0.tgz", + "integrity": "sha512-yVn71XCCaNgxz58ERTl8nA/8YYtIQDY9mHSrgFBfiFtdNNfY0h183Vh8BRkKxD8x9TUw3ec290uJKhDVxqGZBw==", + "dev": true, + "dependencies": { + "parents": "^1.0.1" + } + }, "node_modules/fn.name": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" }, "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", "funding": [ { "type": "individual", @@ -1781,11 +1729,30 @@ "node": ">=14.14" } }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "node_modules/genversion": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/genversion/-/genversion-3.1.1.tgz", + "integrity": "sha512-/H861PMsihhjgX2qqhTN8egM11V04imhA+3JRFY3jjPua2Sy1NqaqqQPjSP8rdM9jZoKpFhVj9g3Fs9XPCjBYQ==", + "dev": true, + "dependencies": { + "commander": "^7.2.0", + "find-package": "^1.0.0" + }, + "bin": { + "genversion": "bin/genversion.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/genversion/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } }, "node_modules/get-caller-file": { "version": "2.0.5", @@ -1849,13 +1816,10 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, "engines": { "node": ">= 0.4.0" } @@ -1886,9 +1850,9 @@ } }, "node_modules/http-status-codes": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.2.0.tgz", - "integrity": "sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.3.0.tgz", + "integrity": "sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==" }, "node_modules/https-proxy-agent": { "version": "5.0.1", @@ -2026,9 +1990,10 @@ } }, "node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true }, "node_modules/is-core-module": { "version": "2.9.0", @@ -2255,6 +2220,14 @@ "npm": ">=1.4.28" } }, + "node_modules/jsonwebtoken/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, "node_modules/jwa": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", @@ -2497,9 +2470,9 @@ "dev": true }, "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/multistream": { "version": "4.1.0", @@ -2546,9 +2519,9 @@ } }, "node_modules/node-abi": { - "version": "3.45.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.45.0.tgz", - "integrity": "sha512-iwXuFrMAcFVi/ZoZiqq8BzAdsLw9kxDfTC0HMyjXfSL/6CSDAGD5UmR7azrAgWV1zKYq7dUUMj4owusBWKLsiQ==", + "version": "3.47.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.47.0.tgz", + "integrity": "sha512-2s6B2CWZM//kPgwnuI0KrYwNjfdByE25zvAaEpq9IH4zcNsarH8Ihu/UuX6XMPEogDAxkuUFeZn60pXNHAqn3A==", "dev": true, "dependencies": { "semver": "^7.3.5" @@ -2557,25 +2530,10 @@ "node": ">=10" } }, - "node_modules/node-abi/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/node-fetch": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", - "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dev": true, "dependencies": { "whatwg-url": "^5.0.0" @@ -2671,6 +2629,15 @@ "node": ">=8" } }, + "node_modules/parents": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", + "integrity": "sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg==", + "dev": true, + "dependencies": { + "path-platform": "~0.11.15" + } + }, "node_modules/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -2709,6 +2676,15 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/path-platform": { + "version": "0.11.15", + "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", + "integrity": "sha512-Y30dB6rab1A/nfEKsZxmr01nUotHX0c/ZiIAsCTatEe1CmS5Pm5He7fZ195bPT7RdquoaL8lLxFCMQi/bS7IJg==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -2797,21 +2773,6 @@ "node": ">=10" } }, - "node_modules/pkg-fetch/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/pkg/node_modules/fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", @@ -2971,12 +2932,12 @@ } }, "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", + "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", "dev": true, "dependencies": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -2988,9 +2949,9 @@ } }, "node_modules/resolve/node_modules/is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -3093,11 +3054,18 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { - "semver": "bin/semver" + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/shebang-command": { @@ -3179,6 +3147,11 @@ "is-arrayish": "^0.3.1" } }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -3488,9 +3461,9 @@ } }, "node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/tunnel-agent": { "version": "0.6.0", @@ -3505,9 +3478,9 @@ } }, "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "engines": { "node": ">=10" }, @@ -3516,9 +3489,9 @@ } }, "node_modules/typescript": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", - "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", "dev": true, "bin": { "tsc": "bin/tsc", diff --git a/NodeApp/package.json b/NodeApp/package.json index e9a00802869c089e96658d6e33d9939a877c80e1..1c30e7d57bdb595024027ea9f22eef18b1433268 100644 --- a/NodeApp/package.json +++ b/NodeApp/package.json @@ -1,6 +1,9 @@ { "name" : "dojo_cli", + "description" : "CLI of the Dojo project", "version" : "2.2.0", + "license" : "AGPLv3", + "author" : "Michaƫl Minelli <dojo@minelli.me>", "main" : "dist/app.js", "bin" : { "dojo": "./dist/app.js" @@ -22,9 +25,11 @@ ] }, "scripts" : { - "build" : "npx tsc", - "start:dev": "npx ts-node src/app.ts", - "test" : "echo \"Error: no test specified\" && exit 1" + "dotenv:build": "npx dotenv-vault local build", + "genversion" : "npx genversion -s -e src/config/Version.ts", + "build" : "npm run genversion; npx tsc", + "start:dev" : "npm run genversion; npx ts-node src/app.ts", + "test" : "echo \"Error: no test specified\" && exit 1" }, "dependencies" : { "ajv" : "^8.12.0", @@ -50,6 +55,7 @@ "@types/node" : "^18.17.2", "@types/tar-stream" : "^2.2.2", "dotenv-vault" : "^1.25.0", + "genversion" : "^3.1.1", "pkg" : "^5.8.1", "tiny-typed-emitter" : "^2.1.0", "ts-node" : "^10.9.1", diff --git a/NodeApp/src/config/Config.ts b/NodeApp/src/config/Config.ts index dca31f4290df75bdce9722cc600bdcbc640a1078..51193829e79c0be8760b24b6a6c9bbf120137936 100644 --- a/NodeApp/src/config/Config.ts +++ b/NodeApp/src/config/Config.ts @@ -6,6 +6,10 @@ class Config { folder: string; file: string; }; + public readonly gitlab: { + cliReleasePage: string + }; + public readonly folders: { defaultLocalExercise: string }; @@ -24,6 +28,10 @@ class Config { file : process.env.LOCAL_CONFIG_FILE || '' }; + this.gitlab = { + cliReleasePage: process.env.GITLAB_CLI_RELEASE_PAGE || '' + }; + this.folders = { defaultLocalExercise: process.env.LOCAL_EXERCISE_DEFAULT_FOLDER || './' }; diff --git a/NodeApp/src/managers/HttpManager.ts b/NodeApp/src/managers/HttpManager.ts index 2be4d248355e51f317c718e4657f481a7a0e7cbd..b95922e2293eadc197a7ac2c5e3d50df66ac974e 100644 --- a/NodeApp/src/managers/HttpManager.ts +++ b/NodeApp/src/managers/HttpManager.ts @@ -1,14 +1,18 @@ import axios, { AxiosRequestHeaders } from 'axios'; import SessionManager from './SessionManager'; import FormData from 'form-data'; -import logger from '../shared/logging/WinstonLogger'; import GitlabManager from './GitlabManager'; import { StatusCodes } from 'http-status-codes'; import ClientsSharedConfig from '../sharedByClients/config/ClientsSharedConfig'; +import { version } from '../config/Version'; +import DojoBackendResponse from '../shared/types/Dojo/DojoBackendResponse'; +import DojoStatusCode from '../shared/types/Dojo/DojoStatusCode'; +import boxen from 'boxen'; +import Config from '../config/Config'; class HttpManager { - public handleCommandErrors: boolean = true; + public handleAuthorizationCommandErrors: boolean = true; registerAxiosInterceptor() { this.registerRequestInterceptor(); @@ -32,6 +36,9 @@ class HttpManager { if ( SessionManager.isLogged ) { config.headers.Authorization = `Bearer ${ SessionManager.token }`; } + + config.headers['client'] = 'DojoCLI'; + config.headers['client-version'] = version; } if ( GitlabManager.isLogged && config.url && config.url.indexOf(ClientsSharedConfig.gitlab.apiURL) !== -1 ) { @@ -42,6 +49,19 @@ class HttpManager { }); } + private requestError(message: string) { + console.log(boxen(message, { + title : 'Request error', + titleAlignment: 'center', + borderColor : 'red', + borderStyle : 'bold', + margin : 1, + padding : 1, + textAlignment : 'left' + })); + process.exit(1); + } + private registerResponseInterceptor() { axios.interceptors.response.use((response) => { if ( response.data && response.data.sessionToken ) { @@ -51,28 +71,39 @@ class HttpManager { return response; }, (error) => { if ( error.response ) { - if ( this.handleCommandErrors ) { + if ( error.response.status === StatusCodes.METHOD_NOT_ALLOWED && error.response.data ) { + const data: DojoBackendResponse<{}> = error.response.data; + + switch ( data.code ) { + case DojoStatusCode.CLIENT_NOT_SUPPORTED: + this.requestError('Client not recognized by the server. Please contact the administrator.'); + break; + case DojoStatusCode.CLIENT_VERSION_NOT_SUPPORTED: + this.requestError(`CLI version not anymore supported by the server. Please update the CLI.\nYou can download the latest stable version (latest release without "-dev" suffix) on this page:\n${ Config.gitlab.cliReleasePage }`); + break; + default: + break; + } + } + + if ( this.handleAuthorizationCommandErrors ) { if ( error.response.url && error.response.url.indexOf(ClientsSharedConfig.apiURL) !== -1 ) { switch ( error.response.status ) { - case StatusCodes.UNAUTHORIZED: // Unauthorized - logger.error('Session expired or inexistent. Please login again.'); - process.exit(1); + case StatusCodes.UNAUTHORIZED: + this.requestError('Session expired or does not exist. Please login again.'); break; - case StatusCodes.FORBIDDEN: // Forbidden - logger.error('Forbidden access.'); - process.exit(1); + case StatusCodes.FORBIDDEN: + this.requestError('Forbidden access.'); break; } } } else { - this.handleCommandErrors = true; + this.handleAuthorizationCommandErrors = true; } } else { - logger.error('Error connecting to the server.'); - process.exit(1); + this.requestError('Error connecting to the server. Please check your internet connection. If the problem persists, please contact the administrator.'); } - return Promise.reject(error); }); } diff --git a/NodeApp/src/managers/SessionManager.ts b/NodeApp/src/managers/SessionManager.ts index 6e492fa8a103e1f0904778931d18e3499782ef8f..28082f59a9345997c53ddb8cb4a04eeab60e43eb 100644 --- a/NodeApp/src/managers/SessionManager.ts +++ b/NodeApp/src/managers/SessionManager.ts @@ -97,7 +97,7 @@ class SessionManager { ora('Checking Dojo session: ').start().info(); } - HttpManager.handleCommandErrors = false; + HttpManager.handleAuthorizationCommandErrors = false; const spinner: ora.Ora = ora({ text : `Testing Dojo session`, diff --git a/NodeApp/src/shared b/NodeApp/src/shared index 8bdbef31376a8284bd8a5139588b43a57cf74a4b..8424367748a6fc47f8da10b85e7663f3f7d07620 160000 --- a/NodeApp/src/shared +++ b/NodeApp/src/shared @@ -1 +1 @@ -Subproject commit 8bdbef31376a8284bd8a5139588b43a57cf74a4b +Subproject commit 8424367748a6fc47f8da10b85e7663f3f7d07620