From 7c813195bf1e969e1c28cfc9c2e5457945af98c7 Mon Sep 17 00:00:00 2001 From: Phil Kunz Date: Sun, 19 Jan 2020 11:57:41 +0100 Subject: [PATCH] fix(core): update --- package-lock.json | 172 ++++++++++++++++++---------- package.json | 5 +- test/test.ts | 24 +++- ts/kubernetes.classes.kubeclient.ts | 49 +++++++- ts/kubernetes.paths.ts | 3 + ts/kubernetes.plugins.ts | 24 ++++ 6 files changed, 209 insertions(+), 68 deletions(-) create mode 100644 ts/kubernetes.paths.ts diff --git a/package-lock.json b/package-lock.json index 8992e61..435370e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -92,6 +92,11 @@ "ws": "^6.1.0" }, "dependencies": { + "@types/node": { + "version": "10.17.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.13.tgz", + "integrity": "sha512-pMCcqU2zT4TjqYFrWtYHKal7Sl30Ims6ulZ4UFXxI4xbtQqK/qqKwkDoBFCfooRqqmRu9vY3xaJRwxSh673aYg==" + }, "ws": { "version": "6.2.1", "resolved": "https://verdaccio.lossless.one/ws/-/ws-6.2.1.tgz", @@ -106,7 +111,6 @@ "version": "2.0.1", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fconsolecolor/-/consolecolor-2.0.1.tgz", "integrity": "sha512-iOFCHVeFZ2OywbdwSxVI4/wokkcLrXVdHLgvMmkNhJ220eeLgjNZWx3EJo3vNW3zq5ybCSCUIq0878djBxrWpw==", - "dev": true, "requires": { "ansi-256-colors": "^1.1.0" } @@ -115,7 +119,6 @@ "version": "3.0.3", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fearly/-/early-3.0.3.tgz", "integrity": "sha512-71/nwxTpqdp1glmHz4YaGusNl/XOOcPelAxC9RA6rpS/6280QyY2u4yx+mRdMrCzn7ruLYF5awbkS8llNZ94Pg==", - "dev": true, "requires": { "@pushrocks/consolecolor": "^2.0.1", "@pushrocks/smartpromise": "^2.0.5" @@ -124,8 +127,7 @@ "@pushrocks/smartpromise": { "version": "2.0.5", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-2.0.5.tgz", - "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==", - "dev": true + "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==" } } }, @@ -171,7 +173,6 @@ "version": "2.0.6", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartdelay/-/smartdelay-2.0.6.tgz", "integrity": "sha512-4wUnzWNhRPODpaaL5GuRaje/C5dg+TMhBxmr57PKc2fqYpy6azWJwonf/s5xpcbJLCPJRbj1x8M5MqgCFq2uvg==", - "dev": true, "requires": { "@pushrocks/smartpromise": "^3.0.6" } @@ -208,7 +209,6 @@ "version": "7.0.6", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartfile/-/smartfile-7.0.6.tgz", "integrity": "sha512-X1kWg1HSQ/MqasRIHPCf6D9CRrcIrpTjW8KLc4GkApJ/W/IVaKsQkJQfdimlg1uc/9v8AYnoRdiGa51yxyghZA==", - "dev": true, "requires": { "@pushrocks/smarthash": "^2.0.6", "@pushrocks/smartpath": "^4.0.1", @@ -224,7 +224,6 @@ "version": "2.1.6", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmarthash/-/smarthash-2.1.6.tgz", "integrity": "sha512-TYa3wECYkeDoE8SomxcCJFg5Kt4+G4MtNMu3yATJCCoPLJIbyV1CwUvYuFYkkce2W4ZvH9h/N6dsHc69oI5Jcw==", - "dev": true, "requires": { "@pushrocks/smartjson": "^3.0.10", "@pushrocks/smartpromise": "^3.0.6", @@ -236,7 +235,6 @@ "version": "3.0.10", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartjson/-/smartjson-3.0.10.tgz", "integrity": "sha512-0tBkET2yjmSSIf4DlgeyU8U/J2EshTmQGuMY28EjPq9VvuCFXLh72WmETpA4QqKRMqhWp1+P+RZgnQupW3GQxQ==", - "dev": true, "requires": { "@types/fast-json-stable-stringify": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", @@ -292,21 +290,18 @@ }, "@pushrocks/smartpath": { "version": "4.0.1", - "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpath/-/smartpath-4.0.1.tgz", - "integrity": "sha512-MaI0+uLQPCr2V3WGnbdgb0pWa9xkWyrP4qYcbsHIjeismGLbn9s3jmP/HIXU8LkgzRgaVb+BJxmZJHOwl32DyA==", - "dev": true + "resolved": "https://registry.npmjs.org/@pushrocks/smartpath/-/smartpath-4.0.1.tgz", + "integrity": "sha512-MaI0+uLQPCr2V3WGnbdgb0pWa9xkWyrP4qYcbsHIjeismGLbn9s3jmP/HIXU8LkgzRgaVb+BJxmZJHOwl32DyA==" }, "@pushrocks/smartpromise": { "version": "3.0.6", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartpromise/-/smartpromise-3.0.6.tgz", - "integrity": "sha512-vlQlBGNVIjfClgnsfgQBU6GIKcskYSFzEcKLt18ngPzPEcjKklXcxaqzLXpnoxR+KBh30QPE8255ncYHXuPPOg==", - "dev": true + "integrity": "sha512-vlQlBGNVIjfClgnsfgQBU6GIKcskYSFzEcKLt18ngPzPEcjKklXcxaqzLXpnoxR+KBh30QPE8255ncYHXuPPOg==" }, "@pushrocks/smartrequest": { "version": "1.1.47", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartrequest/-/smartrequest-1.1.47.tgz", "integrity": "sha512-0AuqtAI14VeWeXl2WpJbgCybVlG03rOjdGchAqy5k5lg9ACLhN3Z4kmoLgpBysWO/L2SjlAKB489SRyV3acykg==", - "dev": true, "requires": { "@pushrocks/smartpromise": "^3.0.5", "@types/form-data": "^2.5.0", @@ -339,6 +334,18 @@ "which": "^1.3.1" } }, + "@pushrocks/smartstring": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/@pushrocks/smartstring/-/smartstring-3.0.17.tgz", + "integrity": "sha512-60JQptpgw+PjxoC5Gx+Y9m3/dtMstHC5ElpdJhIlbJ7dQV7LkCGSonLAG+NZhPbvrhow2KZ3fob8stW0Iuy3JQ==", + "requires": { + "crypto-random-string": "^3.0.1", + "js-base64": "^2.5.1", + "normalize-newline": "^3.0.0", + "randomatic": "^3.1.1", + "strip-indent": "^3.0.0" + } + }, "@pushrocks/smarttime": { "version": "3.0.12", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmarttime/-/smarttime-3.0.12.tgz", @@ -356,7 +363,6 @@ "version": "3.2.0", "resolved": "https://verdaccio.lossless.one/@pushrocks%2ftapbundle/-/tapbundle-3.2.0.tgz", "integrity": "sha512-xnKIGe7NJqxWBaFeKIEXShDjV2wap1XJqmlp3m1MKqmIF62vRpZnkzpyE1ZAoNwiYQmIsXIpvP/PDv+iPevPfw==", - "dev": true, "requires": { "@pushrocks/early": "^3.0.3", "@pushrocks/smartdelay": "^2.0.3", @@ -370,6 +376,14 @@ "resolved": "https://verdaccio.lossless.one/@sindresorhus%2fis/-/is-0.7.0.tgz", "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==" }, + "@tsclass/tsclass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@tsclass/tsclass/-/tsclass-3.0.3.tgz", + "integrity": "sha512-BsPx1VVyXPMMqfERTMoseRQof8kWZZqeHl74un8Ba0aBxZx4DeEgi6OBR1XroWb4Znv+yOP+QQKOwHAffkKvMQ==", + "requires": { + "@pushrocks/tapbundle": "^3.0.13" + } + }, "@types/caseless": { "version": "0.12.2", "resolved": "https://verdaccio.lossless.one/@types%2fcaseless/-/caseless-0.12.2.tgz", @@ -378,14 +392,12 @@ "@types/chai": { "version": "4.2.7", "resolved": "https://verdaccio.lossless.one/@types%2fchai/-/chai-4.2.7.tgz", - "integrity": "sha512-luq8meHGYwvky0O7u0eQZdA7B4Wd9owUCqvbw2m3XCrCU8mplYOujMBbvyS547AxJkC+pGnd0Cm15eNxEUNU8g==", - "dev": true + "integrity": "sha512-luq8meHGYwvky0O7u0eQZdA7B4Wd9owUCqvbw2m3XCrCU8mplYOujMBbvyS547AxJkC+pGnd0Cm15eNxEUNU8g==" }, "@types/chai-as-promised": { "version": "7.1.2", "resolved": "https://verdaccio.lossless.one/@types%2fchai-as-promised/-/chai-as-promised-7.1.2.tgz", "integrity": "sha512-PO2gcfR3Oxa+u0QvECLe1xKXOqYTzCmWf0FhLhjREoW3fPAVamjihL7v1MOVLJLsnAMdLcjkfrs01yvDMwVK4Q==", - "dev": true, "requires": { "@types/chai": "*" } @@ -394,7 +406,6 @@ "version": "1.4.2", "resolved": "https://verdaccio.lossless.one/@types%2fchai-string/-/chai-string-1.4.2.tgz", "integrity": "sha512-ld/1hV5qcPRGuwlPdvRfvM3Ka/iofOk2pH4VkasK4b1JJP1LjNmWWn0LsISf6RRzyhVOvs93rb9tM09e+UuF8Q==", - "dev": true, "requires": { "@types/chai": "*" } @@ -412,8 +423,7 @@ "@types/fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://verdaccio.lossless.one/@types%2ffast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha512-mky/O83TXmGY39P1H9YbUpjV6l6voRYlufqfFCvel8l1phuy8HRjdWc1rrPuN53ITBJlbyMSV6z3niOySO5pgQ==", - "dev": true + "integrity": "sha512-mky/O83TXmGY39P1H9YbUpjV6l6voRYlufqfFCvel8l1phuy8HRjdWc1rrPuN53ITBJlbyMSV6z3niOySO5pgQ==" }, "@types/figures": { "version": "3.0.1", @@ -428,7 +438,6 @@ "version": "2.5.0", "resolved": "https://verdaccio.lossless.one/@types%2fform-data/-/form-data-2.5.0.tgz", "integrity": "sha512-23/wYiuckYYtFpL+4RPWiWmRQH2BjFuqCUi2+N3amB1a1Drv+i/byTrGvlLwRVLFNAZbwpbQ7JvTK+VCAPMbcg==", - "dev": true, "requires": { "form-data": "*" } @@ -437,7 +446,6 @@ "version": "8.0.1", "resolved": "https://verdaccio.lossless.one/@types%2ffs-extra/-/fs-extra-8.0.1.tgz", "integrity": "sha512-J00cVDALmi/hJOYsunyT52Hva5TnJeKP5yd1r+mH/ZU0mbYZflR0Z5kw5kITtKTRYMhm1JMClOFYdHnQszEvqw==", - "dev": true, "requires": { "@types/node": "*" } @@ -460,9 +468,9 @@ "dev": true }, "@types/node": { - "version": "10.17.13", - "resolved": "https://verdaccio.lossless.one/@types%2fnode/-/node-10.17.13.tgz", - "integrity": "sha512-pMCcqU2zT4TjqYFrWtYHKal7Sl30Ims6ulZ4UFXxI4xbtQqK/qqKwkDoBFCfooRqqmRu9vY3xaJRwxSh673aYg==" + "version": "13.1.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.1.8.tgz", + "integrity": "sha512-6XzyyNM9EKQW4HKuzbo/CkOIjn/evtCmsU+MUM1xDfJ+3/rNjBttM1NgN7AOQvN6tP1Sl1D1PIKMreTArnxM9A==" }, "@types/request": { "version": "2.48.4", @@ -479,7 +487,6 @@ "version": "2.0.34", "resolved": "https://verdaccio.lossless.one/@types%2fthrough2/-/through2-2.0.34.tgz", "integrity": "sha512-nhRG8+RuG/L+0fAZBQYaRflXKjTrHOKH8MFTChnf+dNVMxA3wHYYrfj0tztK0W51ABXjGfRCDc0vRkecCOrsow==", - "dev": true, "requires": { "@types/node": "*" } @@ -518,7 +525,6 @@ "version": "4.1.0", "resolved": "https://verdaccio.lossless.one/agentkeepalive/-/agentkeepalive-4.1.0.tgz", "integrity": "sha512-CW/n1wxF8RpEuuiq6Vbn9S8m0VSYDMnZESqaJ6F2cWN9fY8rei2qaxweIaRgq+ek8TqfoFIsUjaGNKGGEHElSg==", - "dev": true, "requires": { "debug": "^4.1.0", "depd": "^1.1.2", @@ -548,8 +554,7 @@ "ansi-256-colors": { "version": "1.1.0", "resolved": "https://verdaccio.lossless.one/ansi-256-colors/-/ansi-256-colors-1.1.0.tgz", - "integrity": "sha1-kQ3lDvzHwJ49gvL4er1rcAwYgYo=", - "dev": true + "integrity": "sha1-kQ3lDvzHwJ49gvL4er1rcAwYgYo=" }, "ansi-regex": { "version": "3.0.0", @@ -601,8 +606,7 @@ "assertion-error": { "version": "1.1.0", "resolved": "https://verdaccio.lossless.one/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" }, "async-limiter": { "version": "1.0.1", @@ -703,7 +707,6 @@ "version": "4.2.0", "resolved": "https://verdaccio.lossless.one/chai/-/chai-4.2.0.tgz", "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", - "dev": true, "requires": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", @@ -717,7 +720,6 @@ "version": "7.1.1", "resolved": "https://verdaccio.lossless.one/chai-as-promised/-/chai-as-promised-7.1.1.tgz", "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", - "dev": true, "requires": { "check-error": "^1.0.2" } @@ -725,8 +727,7 @@ "chai-string": { "version": "1.5.0", "resolved": "https://verdaccio.lossless.one/chai-string/-/chai-string-1.5.0.tgz", - "integrity": "sha512-sydDC3S3pNAQMYwJrs6dQX0oBQ6KfIPuOZ78n7rocW0eJJlsHPh2t3kwW7xfwYA/1Bf6/arGtSUo16rxR2JFlw==", - "dev": true + "integrity": "sha512-sydDC3S3pNAQMYwJrs6dQX0oBQ6KfIPuOZ78n7rocW0eJJlsHPh2t3kwW7xfwYA/1Bf6/arGtSUo16rxR2JFlw==" }, "chalk": { "version": "2.4.2", @@ -742,8 +743,7 @@ "check-error": { "version": "1.0.2", "resolved": "https://verdaccio.lossless.one/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=" }, "clean-stack": { "version": "1.3.0", @@ -869,6 +869,14 @@ "which": "^1.2.9" } }, + "crypto-random-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-3.1.0.tgz", + "integrity": "sha512-Tip3yGB+bA7B0W8E4K4mNf2rZhu5r2G5Tb89/utEl5tP1QuLjTF/S9a1b8ifDrR4ORc9Utf6tscpSEtBY3YcPQ==", + "requires": { + "type-fest": "^0.8.1" + } + }, "dashdash": { "version": "1.14.1", "resolved": "https://verdaccio.lossless.one/dashdash/-/dashdash-1.14.1.tgz", @@ -881,7 +889,6 @@ "version": "4.1.1", "resolved": "https://verdaccio.lossless.one/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, "requires": { "ms": "^2.1.1" } @@ -909,7 +916,6 @@ "version": "3.0.1", "resolved": "https://verdaccio.lossless.one/deep-eql/-/deep-eql-3.0.1.tgz", "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dev": true, "requires": { "type-detect": "^4.0.0" } @@ -936,8 +942,7 @@ "depd": { "version": "1.1.2", "resolved": "https://verdaccio.lossless.one/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "diff": { "version": "4.0.2", @@ -1112,7 +1117,6 @@ "version": "8.1.0", "resolved": "https://verdaccio.lossless.one/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -1133,8 +1137,7 @@ "get-func-name": { "version": "2.0.0", "resolved": "https://verdaccio.lossless.one/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=" }, "get-stream": { "version": "4.1.0", @@ -1200,8 +1203,7 @@ "graceful-fs": { "version": "4.2.3", "resolved": "https://verdaccio.lossless.one/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", - "dev": true + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" }, "har-schema": { "version": "2.0.0", @@ -1255,7 +1257,6 @@ "version": "1.2.1", "resolved": "https://verdaccio.lossless.one/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", - "dev": true, "requires": { "ms": "^2.0.0" } @@ -1322,6 +1323,11 @@ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" + }, "is-object": { "version": "1.0.1", "resolved": "https://verdaccio.lossless.one/is-object/-/is-object-1.0.1.tgz", @@ -1397,6 +1403,11 @@ "is-object": "^1.0.1" } }, + "js-base64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", + "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==" + }, "js-tokens": { "version": "4.0.0", "resolved": "https://verdaccio.lossless.one/js-tokens/-/js-tokens-4.0.0.tgz", @@ -1446,7 +1457,6 @@ "version": "4.0.0", "resolved": "https://verdaccio.lossless.one/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, "requires": { "graceful-fs": "^4.1.6" } @@ -1542,8 +1552,7 @@ "lodash.clonedeep": { "version": "4.5.0", "resolved": "https://verdaccio.lossless.one/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" }, "log-symbols": { "version": "2.2.0", @@ -1593,6 +1602,11 @@ "p-defer": "^1.0.0" } }, + "math-random": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==" + }, "mem": { "version": "4.3.0", "resolved": "https://verdaccio.lossless.one/mem/-/mem-4.3.0.tgz", @@ -1638,6 +1652,11 @@ "resolved": "https://verdaccio.lossless.one/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, + "min-indent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.0.tgz", + "integrity": "sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY=" + }, "minimatch": { "version": "3.0.4", "resolved": "https://verdaccio.lossless.one/minimatch/-/minimatch-3.0.4.tgz", @@ -1695,8 +1714,7 @@ "ms": { "version": "2.1.2", "resolved": "https://verdaccio.lossless.one/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "nice-try": { "version": "1.0.5", @@ -1722,6 +1740,11 @@ "uuid": "^3.3.2" } }, + "normalize-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-newline/-/normalize-newline-3.0.0.tgz", + "integrity": "sha1-HL6oBKukNgAfg5OKsh7AOdaa6dM=" + }, "normalize-url": { "version": "2.0.1", "resolved": "https://verdaccio.lossless.one/normalize-url/-/normalize-url-2.0.1.tgz", @@ -1944,8 +1967,7 @@ "pathval": { "version": "1.1.0", "resolved": "https://verdaccio.lossless.one/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", - "dev": true + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=" }, "performance-now": { "version": "2.1.0", @@ -2001,11 +2023,27 @@ "strict-uri-encode": "^1.0.0" } }, + "randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + } + } + }, "readable-stream": { "version": "3.4.0", "resolved": "https://verdaccio.lossless.one/readable-stream/-/readable-stream-3.4.0.tgz", "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", - "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -2194,7 +2232,6 @@ "version": "2.0.1", "resolved": "https://verdaccio.lossless.one/smartchai/-/smartchai-2.0.1.tgz", "integrity": "sha512-9M+R56OhAHXScxgr2vzQqxGx0XMS0QXriNZuP7hjlbVbo2FUT+l60iEzbwPt9Ga+5u2cEEjSSoZEQVqlROaddA==", - "dev": true, "requires": { "@types/chai": "^4.1.2", "@types/chai-as-promised": "^7.1.0", @@ -2268,7 +2305,6 @@ "version": "1.3.0", "resolved": "https://verdaccio.lossless.one/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, "requires": { "safe-buffer": "~5.2.0" } @@ -2288,6 +2324,14 @@ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "requires": { + "min-indent": "^1.0.0" + } + }, "supports-color": { "version": "5.5.0", "resolved": "https://verdaccio.lossless.one/supports-color/-/supports-color-5.5.0.tgz", @@ -2316,7 +2360,6 @@ "version": "3.0.1", "resolved": "https://verdaccio.lossless.one/through2/-/through2-3.0.1.tgz", "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", - "dev": true, "requires": { "readable-stream": "2 || 3" } @@ -2412,8 +2455,12 @@ "type-detect": { "version": "4.0.8", "resolved": "https://verdaccio.lossless.one/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" }, "typescript": { "version": "3.7.4", @@ -2429,8 +2476,7 @@ "universalify": { "version": "0.1.2", "resolved": "https://verdaccio.lossless.one/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" }, "uri-js": { "version": "4.2.2", diff --git a/package.json b/package.json index ec0e36f..99aa28f 100644 --- a/package.json +++ b/package.json @@ -16,11 +16,14 @@ "@gitzone/tsbuild": "^2.0.22", "@gitzone/tstest": "^1.0.15", "@pushrocks/tapbundle": "^3.0.7", - "@types/node": "^10.11.7", + "@types/node": "^13.1.8", "tslint": "^5.11.0", "tslint-config-prettier": "^1.15.0" }, "dependencies": { + "@pushrocks/smartpath": "^4.0.1", + "@pushrocks/smartstring": "^3.0.17", + "@tsclass/tsclass": "^3.0.3", "kubernetes-client": "^8.3.6" }, "files": [ diff --git a/test/test.ts b/test/test.ts index 982641e..6caee8d 100644 --- a/test/test.ts +++ b/test/test.ts @@ -1,10 +1,30 @@ import { expect, tap } from '@pushrocks/tapbundle'; import * as kubernetes from '../ts/index'; -let testClient = kubernetes.KubeClient; +let testClient: kubernetes.KubeClient; tap.test('first test', async () => { - + testClient = new kubernetes.KubeClient(); }); +tap.test('should init the client', async () => { + await testClient.init(); +}) + +tap.test('should be able to set a certificate', async () => { + await testClient.setSslSecret('central.eu', { + created: 123456, + csr: '', + domainName: '*.central.eu', + id: 'hu7e6rw', + privateKey: 'wowza', + publicKey: 'hellothere' + }) +}) + +tap.test('should get a secret', async () => { + const result = await testClient.getSslSecret('central.eu') + console.log(result); +}) + tap.start(); diff --git a/ts/kubernetes.classes.kubeclient.ts b/ts/kubernetes.classes.kubeclient.ts index f1643e1..a88aeb1 100644 --- a/ts/kubernetes.classes.kubeclient.ts +++ b/ts/kubernetes.classes.kubeclient.ts @@ -1,4 +1,5 @@ import * as plugins from './kubernetes.plugins'; +import * as paths from './kubernetes.paths'; export class KubeClient { public client: plugins.kubectl.ApiRoot; @@ -8,10 +9,54 @@ export class KubeClient { public async init () { const { KubeConfig } = require('kubernetes-client') const kubeconfig = new KubeConfig() - kubeconfig.loadFromFile('~/some/path'); + kubeconfig.loadFromFile(paths.defaultKubeConfigPath); const Request = require('kubernetes-client/backends/request'); const backend = new Request({ kubeconfig }); - this.client = new plugins.kubectl.Client1_13({ backend, version: '1.13' }) + this.client = new plugins.kubectl.Client1_13({ backend, version: '1.13' }); } + + public async setRegistry () { + + } + + /** + * sets an ssl secret + * @param domainNameArg + * @param sslCertificateArg + */ + public async setSslSecret (domainNameArg: string, sslCertificateArg: plugins.tsclass.network.ICert) { + this.client.api.v1.namespace('default').secret.post({ + body: { + apiVersion: 'v1', + kind: 'Secret', + metadata: { + name: `lossless-ssl-${domainNameArg}` + }, + type: 'Opaque', + data: { + 'tls.crt': plugins.smartstring.base64.encode(sslCertificateArg.publicKey), + 'tls.key': plugins.smartstring.base64.encode(sslCertificateArg.privateKey) + } + } + }) + } + + public async getSslSecret (domainNameArg: string) { + this.client.api.v1.namespace('default').secrets(domainNameArg).get(); + } + + /** + * removes an ssl secret + * @param domainName + */ + public async removeSslSecret (domainName: string) { + this.client.api.v1.namespace('default').secrets(domainName).delete(); + } + + public async setService () {} + + public async deleteService () {} + + public async installIngress () {} } diff --git a/ts/kubernetes.paths.ts b/ts/kubernetes.paths.ts new file mode 100644 index 0000000..ac3ab9f --- /dev/null +++ b/ts/kubernetes.paths.ts @@ -0,0 +1,3 @@ +import * as plugins from './kubernetes.plugins'; + +export const defaultKubeConfigPath = plugins.path.join(plugins.smartpath.get.home(), '.kube/config') diff --git a/ts/kubernetes.plugins.ts b/ts/kubernetes.plugins.ts index fad3ff5..f03ca36 100644 --- a/ts/kubernetes.plugins.ts +++ b/ts/kubernetes.plugins.ts @@ -1,3 +1,27 @@ +// node native scope +import * as path from 'path'; + +export { + path +} + +// tsclass scope +import * as tsclass from '@tsclass/tsclass'; + +export { + tsclass +} + +// pushrocks scope +import * as smartpath from '@pushrocks/smartpath'; +import * as smartstring from '@pushrocks/smartstring'; + +export { + smartpath, + smartstring +} + +// third party scope import * as kubeclient from 'kubernetes-client'; export {