diff --git a/package-lock.json b/package-lock.json index 96c6403..b62a924 100644 --- a/package-lock.json +++ b/package-lock.json @@ -93,7 +93,6 @@ "version": "3.0.4", "resolved": "https://verdaccio.lossless.one/@pushrocks%2flik/-/lik-3.0.4.tgz", "integrity": "sha512-abyDxBqZgUCvXxl7DNVnZ6gDv3jjH9XxqMW6VE4FvDnXJw7iShKpi/ImFEqR2ZEtACdad5/XORdP8Yw0EyrEog==", - "dev": true, "requires": { "@pushrocks/smartdelay": "^2.0.2", "@pushrocks/smartpromise": "^2.0.5", @@ -130,34 +129,19 @@ } }, "@pushrocks/smartdata": { - "version": "3.1.2", - "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartdata/-/smartdata-3.1.2.tgz", - "integrity": "sha512-3GBiaN4cvMsnBdb8rQAZ0Z04t73QQBf7j5qrClJg2X/5dFgXVCH4cXryXGYjMEz4kYvlW0yxyKgU3JjySqtnBw==", + "version": "3.1.13", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartdata/-/smartdata-3.1.13.tgz", + "integrity": "sha512-Tzq8aUkC2yQyVD9kwod2IMuq2T95fOBHUyppZDrOg0ms+UbfVb6BnikcwX+ypj0O6v2C4jCBKVl01vpqO1/FLg==", "requires": { - "@pushrocks/smartlog": "^1.0.6", + "@pushrocks/lik": "^3.0.4", + "@pushrocks/smartlog": "^2.0.9", "@pushrocks/smartpromise": "^2.0.5", - "@types/lodash": "^4.14.110", - "@types/mongodb": "^3.1.1", - "lik": "^2.0.5", - "lodash": "^4.17.10", - "mongodb": "^3.1.1", - "runtime-type-checks": "0.0.4", - "smartstring": "^2.0.28" - }, - "dependencies": { - "@pushrocks/smartlog": { - "version": "1.0.6", - "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartlog/-/smartlog-1.0.6.tgz", - "integrity": "sha512-XAGkkgfDiWNxGrBe9XAXg6astL9VAMPsrRWlxsSXOzwZv4MceX4H7Zl55VXrL71Psxi3KqMHWu6qXU7MIYzH+Q==", - "requires": { - "@pushrocks/smartlog-interfaces": "^1.0.9" - } - }, - "@pushrocks/smartlog-interfaces": { - "version": "1.0.15", - "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartlog-interfaces/-/smartlog-interfaces-1.0.15.tgz", - "integrity": "sha512-dn9a+IhneukhtVGQG031oodOITmmQ5s5hcMThd+cMUQL3XYTbLPnZVuJfTDeWCT0iqLqrBD/qp2d1RRc3W/qIQ==" - } + "@pushrocks/smartstring": "^3.0.5", + "@types/lodash": "^4.14.119", + "@types/mongodb": "^3.1.18", + "lodash": "^4.17.11", + "mongodb": "^3.1.10", + "runtime-type-checks": "0.0.4" } }, "@pushrocks/smartdelay": { @@ -181,16 +165,33 @@ "version": "2.0.3", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartevent/-/smartevent-2.0.3.tgz", "integrity": "sha512-x4B1mzzE6LrMATXsRLNuZpMTlB2JodL44MA4bF4FucU3SBBiWhFv3CFJRlO9B23SKZ1fwdJQrk2lT7YTUHXXJQ==", - "dev": true, "requires": { "@pushrocks/smartpromise": "^2.0.5" } }, + "@pushrocks/smartexpress": { + "version": "3.0.0", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartexpress/-/smartexpress-3.0.0.tgz", + "integrity": "sha512-F3x+AFUxkKxb5WgQuIZsfkrNzMz0PaYYIw4gdQbAPn5N/UCEP4eE2OQWXnAcCSYwsXI8hgjEuUOC9gTbCSPDRg==", + "requires": { + "@pushrocks/lik": "^3.0.4", + "@pushrocks/smartfile": "^6.0.11", + "@pushrocks/smartpromise": "^2.0.5", + "@types/express": "^4.16.0", + "@types/finalhandler": "0.0.33", + "@types/helmet": "0.0.42", + "@types/serve-static": "^1.13.2", + "body-parser": "^1.18.3", + "cors": "^2.8.5", + "express": "^4.16.4", + "express-force-ssl": "^0.3.2", + "helmet": "^3.15.0" + } + }, "@pushrocks/smartfile": { "version": "6.0.11", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartfile/-/smartfile-6.0.11.tgz", "integrity": "sha512-qITfYEUtSN478CFyYX0KatIYLV28u/KdO3ClOcKjx1epagpuYhkwfVELhyIDRvapMjuesoVgZcrXUhcvq0o9+w==", - "dev": true, "requires": { "@pushrocks/smartpath": "^4.0.1", "@pushrocks/smartpromise": "^2.0.5", @@ -207,7 +208,6 @@ "version": "2.0.9", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartlog/-/smartlog-2.0.9.tgz", "integrity": "sha512-F2u3O8OOQ7QXgg9o0lI7HnqEhSQZo2A8u0EuNbQH+Kj2oL62xDwjAg6KkINwH7ObSWpaldZ+I28prG0JxaRzvg==", - "dev": true, "requires": { "@pushrocks/smartlog-interfaces": "^2.0.2" } @@ -215,8 +215,7 @@ "@pushrocks/smartlog-interfaces": { "version": "2.0.5", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartlog-interfaces/-/smartlog-interfaces-2.0.5.tgz", - "integrity": "sha512-eLNlRpDwy3E+6v/B6fo/NiAo+UxBO3SxKgIIsgUGbWfVpsyUi0PG2xfVCdhJlhL1AsRRvKglfHSOB8qKE+XCLw==", - "dev": true + "integrity": "sha512-eLNlRpDwy3E+6v/B6fo/NiAo+UxBO3SxKgIIsgUGbWfVpsyUi0PG2xfVCdhJlhL1AsRRvKglfHSOB8qKE+XCLw==" }, "@pushrocks/smartparam": { "version": "1.0.4", @@ -232,8 +231,7 @@ "@pushrocks/smartpath": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@pushrocks/smartpath/-/smartpath-4.0.1.tgz", - "integrity": "sha512-MaI0+uLQPCr2V3WGnbdgb0pWa9xkWyrP4qYcbsHIjeismGLbn9s3jmP/HIXU8LkgzRgaVb+BJxmZJHOwl32DyA==", - "dev": true + "integrity": "sha512-MaI0+uLQPCr2V3WGnbdgb0pWa9xkWyrP4qYcbsHIjeismGLbn9s3jmP/HIXU8LkgzRgaVb+BJxmZJHOwl32DyA==" }, "@pushrocks/smartpromise": { "version": "2.0.5", @@ -244,7 +242,6 @@ "version": "1.1.14", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartrequest/-/smartrequest-1.1.14.tgz", "integrity": "sha512-+sDQB4Mxvpn8BIMPUQ7TPSCKUVMln3tHC4rp4pmfEHmBQK+g1XwtNr59aMA9kEoBDMt7li1hu+1cs+SNsWt6Gw==", - "dev": true, "requires": { "@pushrocks/smartpromise": "^2.0.5", "@types/form-data": "^2.2.1", @@ -255,7 +252,6 @@ "version": "2.0.3", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartrx/-/smartrx-2.0.3.tgz", "integrity": "sha512-OWxagu+CBdPaq76AIg91hJyrNhDTlEpesj01ooWCeVIaLY3G7yvFkqHsEKNOwPUG1LzCWmjq1l1dHQx9p2vJ9A==", - "dev": true, "requires": { "@pushrocks/lik": "^3.0.2", "@pushrocks/smartevent": "^2.0.3", @@ -278,7 +274,6 @@ "version": "3.0.5", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartstring/-/smartstring-3.0.5.tgz", "integrity": "sha512-Bws2s6+Pc0HIXA35QH6cl6LJywhZ1U5icjyYMx+1kH8nURG+njzkacfarr9NWqyVYYOVu7SgXLzp9sR0eH7k9g==", - "dev": true, "requires": { "crypto-random-string": "^1.0.0", "js-base64": "^2.4.9", @@ -291,13 +286,23 @@ "version": "3.0.5", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmarttime/-/smarttime-3.0.5.tgz", "integrity": "sha512-nHjJ8xRZ87OE8tBBIAOgjHJmJrc3MaPZtEZ5JDY2U9gjaED6JdRcdQ+vhSaLJT+U2u8YzXOuA6LfNN+X4jZm6A==", - "dev": true, "requires": { "@pushrocks/smartpromise": "^2.0.5", "@types/luxon": "^1.4.1", "luxon": "^1.8.0" } }, + "@pushrocks/smartunique": { + "version": "3.0.1", + "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartunique/-/smartunique-3.0.1.tgz", + "integrity": "sha512-xBu9ZB4C0BA0S/pbFFZn2ItPfnodPKpzrYIq1yN5XDs6OaookwcDF/iBwfS9+EYMSPENC9wAsOxg2RGMm4Qicw==", + "requires": { + "@types/shortid": "^0.0.29", + "@types/uuid": "^3.0.0", + "shortid": "^2.2.8", + "uuid": "^3.1.0" + } + }, "@pushrocks/tapbundle": { "version": "3.0.7", "resolved": "https://verdaccio.lossless.one/@pushrocks%2ftapbundle/-/tapbundle-3.0.7.tgz", @@ -317,6 +322,15 @@ "integrity": "sha512-ckADuv6O+sk1T3a4612wGzy6Ykg+Hbl+xFm/oTmIKByc5eyWVRNIb/ESjbsGP0x78Iswq+ReFtClhCwN2PIJ/A==", "dev": true }, + "@types/body-parser": { + "version": "1.17.0", + "resolved": "https://verdaccio.lossless.one/@types%2fbody-parser/-/body-parser-1.17.0.tgz", + "integrity": "sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w==", + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, "@types/bson": { "version": "1.0.11", "resolved": "https://verdaccio.lossless.one/@types%2fbson/-/bson-1.0.11.tgz", @@ -349,17 +363,57 @@ "@types/chai": "*" } }, + "@types/connect": { + "version": "3.4.32", + "resolved": "https://verdaccio.lossless.one/@types%2fconnect/-/connect-3.4.32.tgz", + "integrity": "sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg==", + "requires": { + "@types/node": "*" + } + }, + "@types/events": { + "version": "1.2.0", + "resolved": "https://verdaccio.lossless.one/@types%2fevents/-/events-1.2.0.tgz", + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==" + }, + "@types/express": { + "version": "4.16.0", + "resolved": "https://verdaccio.lossless.one/@types%2fexpress/-/express-4.16.0.tgz", + "integrity": "sha512-TtPEYumsmSTtTetAPXlJVf3kEqb6wZK0bZojpJQrnD/djV4q1oB6QQ8aKvKqwNPACoe02GNiy5zDzcYivR5Z2w==", + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.16.0", + "resolved": "https://verdaccio.lossless.one/@types%2fexpress-serve-static-core/-/express-serve-static-core-4.16.0.tgz", + "integrity": "sha512-lTeoCu5NxJU4OD9moCgm0ESZzweAx0YqsAcab6OB0EB3+As1OaHtKnaGJvcngQxYsi9UNv0abn4/DRavrRxt4w==", + "requires": { + "@types/events": "*", + "@types/node": "*", + "@types/range-parser": "*" + } + }, "@types/figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@types/figures/-/figures-2.0.0.tgz", "integrity": "sha512-mcRgJ+ncKuNI+Dwac7omO18B8C8u+YBS+AU/oyLhEyjAnT3cUUThhHgZpbiIvu5ZqSvdD30BXtrqg9nxc3OKMg==", "dev": true }, + "@types/finalhandler": { + "version": "0.0.33", + "resolved": "https://verdaccio.lossless.one/@types%2ffinalhandler/-/finalhandler-0.0.33.tgz", + "integrity": "sha512-nV2BixeE7zsjupfRymHLzmBaiXVKVtLELNJhD+MA3EWxSc9Gm68NhpY+quigOlkOpUoDTu8hZWs58yRFgUM5gw==", + "requires": { + "@types/node": "*" + } + }, "@types/form-data": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz", + "resolved": "https://verdaccio.lossless.one/@types%2fform-data/-/form-data-2.2.1.tgz", "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", - "dev": true, "requires": { "@types/node": "*" } @@ -368,11 +422,18 @@ "version": "5.0.4", "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.4.tgz", "integrity": "sha512-DsknoBvD8s+RFfSGjmERJ7ZOP1HI0UZRA3FSI+Zakhrc/Gy26YQsLI+m5V5DHxroHRJqCDLKJp7Hixn8zyaF7g==", - "dev": true, "requires": { "@types/node": "*" } }, + "@types/helmet": { + "version": "0.0.42", + "resolved": "https://verdaccio.lossless.one/@types%2fhelmet/-/helmet-0.0.42.tgz", + "integrity": "sha512-xQjlolRfr7LVa55sGnjtJGcV6/Hf7cfD1IuZo1Do+o3UobOoJJSLIbwkhd9tW18F1Kp4uB77T8TsJ2XKUDwp7g==", + "requires": { + "@types/express": "*" + } + }, "@types/lodash": { "version": "4.14.119", "resolved": "https://verdaccio.lossless.one/@types%2flodash/-/lodash-4.14.119.tgz", @@ -381,8 +442,12 @@ "@types/luxon": { "version": "1.4.1", "resolved": "https://verdaccio.lossless.one/@types%2fluxon/-/luxon-1.4.1.tgz", - "integrity": "sha512-mYv/gbkOJ40CDgR8st5sosfFNrJncdlkpdzQSNRdU86UQg3oWWmll4AO/7B8F5FlBC6YrIXqXDSnkoCBqo+uMA==", - "dev": true + "integrity": "sha512-mYv/gbkOJ40CDgR8st5sosfFNrJncdlkpdzQSNRdU86UQg3oWWmll4AO/7B8F5FlBC6YrIXqXDSnkoCBqo+uMA==" + }, + "@types/mime": { + "version": "2.0.0", + "resolved": "https://verdaccio.lossless.one/@types%2fmime/-/mime-2.0.0.tgz", + "integrity": "sha512-A2TAGbTFdBw9azHbpVd+/FkdW2T6msN1uct1O9bH3vTerEHKZhTXJUQXy+hNq1B0RagfU8U+KBdqiZpxjhOUQA==" }, "@types/minimatch": { "version": "3.0.3", @@ -403,11 +468,37 @@ "resolved": "https://verdaccio.lossless.one/@types%2fnode/-/node-10.12.18.tgz", "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==" }, + "@types/range-parser": { + "version": "1.2.3", + "resolved": "https://verdaccio.lossless.one/@types%2frange-parser/-/range-parser-1.2.3.tgz", + "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==" + }, + "@types/serve-static": { + "version": "1.13.2", + "resolved": "https://verdaccio.lossless.one/@types%2fserve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-/BZ4QRLpH/bNYgZgwhKEh+5AsboDBcUdlBYgzoLX0fpj3Y2gp6EApyOlM3bK53wQS/OE1SrdSYBAbux2D1528Q==", + "requires": { + "@types/express-serve-static-core": "*", + "@types/mime": "*" + } + }, + "@types/shortid": { + "version": "0.0.29", + "resolved": "https://verdaccio.lossless.one/@types%2fshortid/-/shortid-0.0.29.tgz", + "integrity": "sha1-gJPuBBam4r8qpjOBCRFLP7/6Dps=" + }, + "@types/uuid": { + "version": "3.4.4", + "resolved": "https://verdaccio.lossless.one/@types%2fuuid/-/uuid-3.4.4.tgz", + "integrity": "sha512-tPIgT0GUmdJQNSHxp0X2jnpQfBSTfGxUMc/2CXBU2mnyTFVYVa2ojpoQ74w0U2yn2vw3jnC640+77lkFFpdVDw==", + "requires": { + "@types/node": "*" + } + }, "@types/vinyl": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.2.tgz", "integrity": "sha512-2iYpNuOl98SrLPBZfEN9Mh2JCJ2EI9HU35SfgBEb51DcmaHkhp8cKMblYeBqMQiwXMgAD3W60DbQ4i/UdLiXhw==", - "dev": true, "requires": { "@types/node": "*" } @@ -424,10 +515,19 @@ "integrity": "sha512-y51XRWWg1GiW4+mV2zmFQUqJT3bX7nuUaXW4j8a2dFvT9ZlaNLjb7ZxcUSDyklt/UBWrW2+31x+hQpRzxaTFzw==", "dev": true }, + "accepts": { + "version": "1.3.5", + "resolved": "https://verdaccio.lossless.one/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "requires": { + "mime-types": "~2.1.18", + "negotiator": "0.6.1" + } + }, "acme-client": { - "version": "2.2.1", - "resolved": "https://verdaccio.lossless.one/acme-client/-/acme-client-2.2.1.tgz", - "integrity": "sha512-cqKWiF+iH17Opx3A82wRLS9pZRI61vXK7qTHBW10r5jldrzR1spvkPlhLb1/amH9ggHp1KEpZJLqdmfqbZ60Xw==", + "version": "2.2.2", + "resolved": "https://verdaccio.lossless.one/acme-client/-/acme-client-2.2.2.tgz", + "integrity": "sha512-dEIbynspvfRKHD7/I3B/zu2PDE3Zk/kJu95koZeMxycRAkmIxPiuc6z11im/i6P/jxzf3QxyXFqCg3PnP6gZnw==", "requires": { "axios": "^0.18.0", "babel-runtime": "^6.26.0", @@ -461,11 +561,15 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, "requires": { "sprintf-js": "~1.0.2" } }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://verdaccio.lossless.one/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", @@ -480,9 +584,8 @@ }, "asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "resolved": "https://verdaccio.lossless.one/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "axios": { "version": "0.18.0", @@ -564,6 +667,33 @@ "resolved": "https://verdaccio.lossless.one/bluebird/-/bluebird-3.5.3.tgz", "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==" }, + "body-parser": { + "version": "1.18.3", + "resolved": "https://verdaccio.lossless.one/body-parser/-/body-parser-1.18.3.tgz", + "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", + "requires": { + "bytes": "3.0.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "~1.6.3", + "iconv-lite": "0.4.23", + "on-finished": "~2.3.0", + "qs": "6.5.2", + "raw-body": "2.3.3", + "type-is": "~1.6.16" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://verdaccio.lossless.one/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + } + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -590,12 +720,22 @@ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, + "bytes": { + "version": "3.0.0", + "resolved": "https://verdaccio.lossless.one/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, "camelcase": { "version": "5.0.0", "resolved": "https://verdaccio.lossless.one/camelcase/-/camelcase-5.0.0.tgz", "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", "dev": true }, + "camelize": { + "version": "1.0.0", + "resolved": "https://verdaccio.lossless.one/camelize/-/camelize-1.0.0.tgz", + "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" + }, "chai": { "version": "4.2.0", "resolved": "https://verdaccio.lossless.one/chai/-/chai-4.2.0.tgz", @@ -676,26 +816,22 @@ "clone": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" }, "clone-buffer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", - "dev": true + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" }, "clone-stats": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" }, "cloneable-readable": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz", "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==", - "dev": true, "requires": { "inherits": "^2.0.1", "process-nextick-args": "^2.0.0", @@ -727,7 +863,6 @@ "version": "1.0.7", "resolved": "https://verdaccio.lossless.one/combined-stream/-/combined-stream-1.0.7.tgz", "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", - "dev": true, "requires": { "delayed-stream": "~1.0.0" } @@ -743,6 +878,31 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://verdaccio.lossless.one/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" + }, + "content-security-policy-builder": { + "version": "2.0.0", + "resolved": "https://verdaccio.lossless.one/content-security-policy-builder/-/content-security-policy-builder-2.0.0.tgz", + "integrity": "sha512-j+Nhmj1yfZAikJLImCvPJFE29x/UuBi+/MWqggGGc515JKaZrjuei2RhULJmy0MsstW3E3htl002bwmBNMKr7w==" + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://verdaccio.lossless.one/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://verdaccio.lossless.one/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://verdaccio.lossless.one/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, "core-js": { "version": "2.6.1", "resolved": "https://verdaccio.lossless.one/core-js/-/core-js-2.6.1.tgz", @@ -751,8 +911,16 @@ "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://verdaccio.lossless.one/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } }, "cross-spawn": { "version": "6.0.5", @@ -772,6 +940,11 @@ "resolved": "https://verdaccio.lossless.one/crypto-random-string/-/crypto-random-string-1.0.0.tgz", "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" }, + "dasherize": { + "version": "2.0.0", + "resolved": "https://verdaccio.lossless.one/dasherize/-/dasherize-2.0.0.tgz", + "integrity": "sha1-bYCcnNDPe7iVLYD8hPoT1H3bEwg=" + }, "debug": { "version": "3.2.6", "resolved": "https://verdaccio.lossless.one/debug/-/debug-3.2.6.tgz", @@ -802,19 +975,20 @@ "type-detect": "^4.0.0" } }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://verdaccio.lossless.one/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true + "resolved": "https://verdaccio.lossless.one/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://verdaccio.lossless.one/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://verdaccio.lossless.one/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, "diff": { "version": "3.5.0", @@ -822,6 +996,26 @@ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true }, + "dns-prefetch-control": { + "version": "0.1.0", + "resolved": "https://verdaccio.lossless.one/dns-prefetch-control/-/dns-prefetch-control-0.1.0.tgz", + "integrity": "sha1-YN20V3dOF48flBXwyrsOhbCzALI=" + }, + "dont-sniff-mimetype": { + "version": "1.0.0", + "resolved": "https://verdaccio.lossless.one/dont-sniff-mimetype/-/dont-sniff-mimetype-1.0.0.tgz", + "integrity": "sha1-WTKJDcn04vGeXrAqIAJuXl78j1g=" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://verdaccio.lossless.one/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://verdaccio.lossless.one/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, "end-of-stream": { "version": "1.4.1", "resolved": "https://verdaccio.lossless.one/end-of-stream/-/end-of-stream-1.4.1.tgz", @@ -831,35 +1025,17 @@ "once": "^1.4.0" } }, - "es-abstract": { - "version": "1.13.0", - "resolved": "https://verdaccio.lossless.one/es-abstract/-/es-abstract-1.13.0.tgz", - "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", - "requires": { - "es-to-primitive": "^1.2.0", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-keys": "^1.0.12" - } - }, - "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://verdaccio.lossless.one/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, "es6-error": { "version": "4.1.1", "resolved": "https://verdaccio.lossless.one/es6-error/-/es6-error-4.1.1.tgz", "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://verdaccio.lossless.one/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -869,8 +1045,7 @@ "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "esutils": { "version": "2.0.2", @@ -878,6 +1053,11 @@ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, + "etag": { + "version": "1.8.1", + "resolved": "https://verdaccio.lossless.one/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, "execa": { "version": "1.0.0", "resolved": "https://verdaccio.lossless.one/execa/-/execa-1.0.0.tgz", @@ -893,6 +1073,76 @@ "strip-eof": "^1.0.0" } }, + "expect-ct": { + "version": "0.1.1", + "resolved": "https://verdaccio.lossless.one/expect-ct/-/expect-ct-0.1.1.tgz", + "integrity": "sha512-ngXzTfoRGG7fYens3/RMb6yYoVLvLMfmsSllP/mZPxNHgFq41TmPSLF/nLY7fwoclI2vElvAmILFWGUYqdjfCg==" + }, + "express": { + "version": "4.16.4", + "resolved": "https://verdaccio.lossless.one/express/-/express-4.16.4.tgz", + "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", + "requires": { + "accepts": "~1.3.5", + "array-flatten": "1.1.1", + "body-parser": "1.18.3", + "content-disposition": "0.5.2", + "content-type": "~1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.1.1", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.4", + "qs": "6.5.2", + "range-parser": "~1.2.0", + "safe-buffer": "5.1.2", + "send": "0.16.2", + "serve-static": "1.13.2", + "setprototypeof": "1.1.0", + "statuses": "~1.4.0", + "type-is": "~1.6.16", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://verdaccio.lossless.one/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://verdaccio.lossless.one/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + } + } + }, + "express-force-ssl": { + "version": "0.3.2", + "resolved": "https://verdaccio.lossless.one/express-force-ssl/-/express-force-ssl-0.3.2.tgz", + "integrity": "sha1-AbK0mK5v0uQRUrIrV6Phc3c69n4=", + "requires": { + "lodash.assign": "^3.2.0" + } + }, + "feature-policy": { + "version": "0.2.0", + "resolved": "https://verdaccio.lossless.one/feature-policy/-/feature-policy-0.2.0.tgz", + "integrity": "sha512-2hGrlv6efG4hscYVZeaYjpzpT6I2OZgYqE2yDUzeAcKj2D1SH0AsEzqJNXzdoglEddcIXQQYop3lD97XpG75Jw==" + }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", @@ -902,6 +1152,35 @@ "escape-string-regexp": "^1.0.5" } }, + "finalhandler": { + "version": "1.1.1", + "resolved": "https://verdaccio.lossless.one/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://verdaccio.lossless.one/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://verdaccio.lossless.one/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + } + } + }, "find-up": { "version": "3.0.0", "resolved": "https://verdaccio.lossless.one/find-up/-/find-up-3.0.0.tgz", @@ -915,7 +1194,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", - "dev": true, "requires": { "readable-stream": "^2.0.2" } @@ -942,18 +1220,31 @@ "version": "2.3.3", "resolved": "https://verdaccio.lossless.one/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", "mime-types": "^2.1.12" } }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://verdaccio.lossless.one/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "frameguard": { + "version": "3.0.0", + "resolved": "https://verdaccio.lossless.one/frameguard/-/frameguard-3.0.0.tgz", + "integrity": "sha1-e8rUae57lukdEs6zlZx4I1qScuk=" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://verdaccio.lossless.one/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, "fs-extra": { "version": "7.0.1", "resolved": "https://verdaccio.lossless.one/fs-extra/-/fs-extra-7.0.1.tgz", "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, "requires": { "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", @@ -963,13 +1254,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://verdaccio.lossless.one/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "get-caller-file": { "version": "1.0.3", @@ -996,7 +1281,6 @@ "version": "7.1.3", "resolved": "https://verdaccio.lossless.one/glob/-/glob-7.1.3.tgz", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -1009,16 +1293,7 @@ "graceful-fs": { "version": "4.1.15", "resolved": "https://verdaccio.lossless.one/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://verdaccio.lossless.one/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" }, "has-ansi": { "version": "2.0.0", @@ -1043,16 +1318,86 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "has-symbols": { + "helmet": { + "version": "3.15.0", + "resolved": "https://verdaccio.lossless.one/helmet/-/helmet-3.15.0.tgz", + "integrity": "sha512-j9JjtAnWJj09lqe/PEICrhuDaX30TeokXJ9tW6ZPhVH0+LMoihDeJ58CdWeTGzM66p6EiIODmgAaWfdeIWI4Gg==", + "requires": { + "dns-prefetch-control": "0.1.0", + "dont-sniff-mimetype": "1.0.0", + "expect-ct": "0.1.1", + "feature-policy": "0.2.0", + "frameguard": "3.0.0", + "helmet-crossdomain": "0.3.0", + "helmet-csp": "2.7.1", + "hide-powered-by": "1.0.0", + "hpkp": "2.0.0", + "hsts": "2.1.0", + "ienoopen": "1.0.0", + "nocache": "2.0.0", + "referrer-policy": "1.1.0", + "x-xss-protection": "1.1.0" + } + }, + "helmet-crossdomain": { + "version": "0.3.0", + "resolved": "https://verdaccio.lossless.one/helmet-crossdomain/-/helmet-crossdomain-0.3.0.tgz", + "integrity": "sha512-YiXhj0E35nC4Na5EPE4mTfoXMf9JTGpN4OtB4aLqShKuH9d2HNaJX5MQoglO6STVka0uMsHyG5lCut5Kzsy7Lg==" + }, + "helmet-csp": { + "version": "2.7.1", + "resolved": "https://verdaccio.lossless.one/helmet-csp/-/helmet-csp-2.7.1.tgz", + "integrity": "sha512-sCHwywg4daQ2mY0YYwXSZRsgcCeerUwxMwNixGA7aMLkVmPTYBl7gJoZDHOZyXkqPrtuDT3s2B1A+RLI7WxSdQ==", + "requires": { + "camelize": "1.0.0", + "content-security-policy-builder": "2.0.0", + "dasherize": "2.0.0", + "platform": "1.3.5" + } + }, + "hide-powered-by": { "version": "1.0.0", - "resolved": "https://verdaccio.lossless.one/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" + "resolved": "https://verdaccio.lossless.one/hide-powered-by/-/hide-powered-by-1.0.0.tgz", + "integrity": "sha1-SoWtZYgfYoV/xwr3F0oRhNzM4ys=" + }, + "hpkp": { + "version": "2.0.0", + "resolved": "https://verdaccio.lossless.one/hpkp/-/hpkp-2.0.0.tgz", + "integrity": "sha1-EOFCJk52IVpdMMROxD3mTe5tFnI=" + }, + "hsts": { + "version": "2.1.0", + "resolved": "https://verdaccio.lossless.one/hsts/-/hsts-2.1.0.tgz", + "integrity": "sha512-zXhh/DqgrTXJ7erTN6Fh5k/xjMhDGXCqdYN3wvxUvGUQvnxcFfUd8E+6vLg/nk3ss1TYMb+DhRl25fYABioTvA==" + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://verdaccio.lossless.one/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://verdaccio.lossless.one/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ienoopen": { + "version": "1.0.0", + "resolved": "https://verdaccio.lossless.one/ienoopen/-/ienoopen-1.0.0.tgz", + "integrity": "sha1-NGpCj0dKrI9QzzeE6i0PFvYr2ms=" }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -1061,8 +1406,7 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "invert-kv": { "version": "2.0.0", @@ -1070,21 +1414,16 @@ "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", "dev": true }, + "ipaddr.js": { + "version": "1.8.0", + "resolved": "https://verdaccio.lossless.one/ipaddr.js/-/ipaddr.js-1.8.0.tgz", + "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=" + }, "is-buffer": { "version": "1.1.6", "resolved": "https://verdaccio.lossless.one/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://verdaccio.lossless.one/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://verdaccio.lossless.one/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" - }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://verdaccio.lossless.one/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", @@ -1094,8 +1433,7 @@ "is-number": { "version": "4.0.0", "resolved": "https://verdaccio.lossless.one/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" }, "is-promise": { "version": "2.1.0", @@ -1103,39 +1441,21 @@ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", "dev": true }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://verdaccio.lossless.one/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "requires": { - "has": "^1.0.1" - } - }, "is-stream": { "version": "1.1.0", "resolved": "https://verdaccio.lossless.one/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://verdaccio.lossless.one/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", - "requires": { - "has-symbols": "^1.0.0" - } - }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isexe": { "version": "2.0.0", @@ -1158,7 +1478,6 @@ "version": "3.12.1", "resolved": "https://verdaccio.lossless.one/js-yaml/-/js-yaml-3.12.1.tgz", "integrity": "sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==", - "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -1168,7 +1487,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, "requires": { "graceful-fs": "^4.1.6" } @@ -1176,8 +1494,7 @@ "kind-of": { "version": "6.0.2", "resolved": "https://verdaccio.lossless.one/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" }, "lcid": { "version": "2.0.0", @@ -1207,19 +1524,6 @@ "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", "dev": true }, - "lik": { - "version": "2.0.5", - "resolved": "https://verdaccio.lossless.one/lik/-/lik-2.0.5.tgz", - "integrity": "sha512-y3bLixmjfsnIAkJUoUFScBSb+ozl8Isn/B1zZ/PpE5LYg3ScS0sBpWS2INtpsZD6uK14S67dAyWXMWsGkiM3lw==", - "requires": { - "@types/lodash": "^4.14.97", - "@types/minimatch": "^3.0.3", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "smartq": "^1.1.6", - "symbol-tree": "^3.2.2" - } - }, "locate-path": { "version": "3.0.0", "resolved": "https://verdaccio.lossless.one/locate-path/-/locate-path-3.0.0.tgz", @@ -1235,11 +1539,84 @@ "resolved": "https://verdaccio.lossless.one/lodash/-/lodash-4.17.11.tgz", "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" }, + "lodash._baseassign": { + "version": "3.2.0", + "resolved": "https://verdaccio.lossless.one/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", + "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", + "requires": { + "lodash._basecopy": "^3.0.0", + "lodash.keys": "^3.0.0" + } + }, + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://verdaccio.lossless.one/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=" + }, + "lodash._bindcallback": { + "version": "3.0.1", + "resolved": "https://verdaccio.lossless.one/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", + "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=" + }, + "lodash._createassigner": { + "version": "3.1.1", + "resolved": "https://verdaccio.lossless.one/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", + "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=", + "requires": { + "lodash._bindcallback": "^3.0.0", + "lodash._isiterateecall": "^3.0.0", + "lodash.restparam": "^3.0.0" + } + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://verdaccio.lossless.one/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://verdaccio.lossless.one/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=" + }, + "lodash.assign": { + "version": "3.2.0", + "resolved": "https://verdaccio.lossless.one/lodash.assign/-/lodash.assign-3.2.0.tgz", + "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=", + "requires": { + "lodash._baseassign": "^3.0.0", + "lodash._createassigner": "^3.0.0", + "lodash.keys": "^3.0.0" + } + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://verdaccio.lossless.one/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=" + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://verdaccio.lossless.one/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=" + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://verdaccio.lossless.one/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "requires": { + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "lodash.restparam": { + "version": "3.6.1", + "resolved": "https://verdaccio.lossless.one/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=" + }, "luxon": { "version": "1.9.0", "resolved": "https://verdaccio.lossless.one/luxon/-/luxon-1.9.0.tgz", - "integrity": "sha512-N1kSwtIEhM/gIRGASXPgi1CwfQZX5VTjndYFjOsZdEEtWij2uSoRrgDGWwViZCUNY9Rwh4UVG/TLcUinHM20cA==", - "dev": true + "integrity": "sha512-N1kSwtIEhM/gIRGASXPgi1CwfQZX5VTjndYFjOsZdEEtWij2uSoRrgDGWwViZCUNY9Rwh4UVG/TLcUinHM20cA==" }, "make-error": { "version": "1.3.5", @@ -1259,8 +1636,12 @@ "math-random": { "version": "1.0.1", "resolved": "https://verdaccio.lossless.one/math-random/-/math-random-1.0.1.tgz", - "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", - "dev": true + "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://verdaccio.lossless.one/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, "mem": { "version": "4.0.0", @@ -1279,17 +1660,30 @@ "integrity": "sha512-ycuyV5gKpZln7HB/A11wCpAxEY9VQ2EhYU1F56pUAxvmj6OyOHtB9tkLLjAyFsPdghSP2S3Ujk3aYJCusgiMZg==", "optional": true }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://verdaccio.lossless.one/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://verdaccio.lossless.one/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "mime": { + "version": "1.4.1", + "resolved": "https://verdaccio.lossless.one/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + }, "mime-db": { "version": "1.37.0", "resolved": "https://verdaccio.lossless.one/mime-db/-/mime-db-1.37.0.tgz", - "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==", - "dev": true + "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==" }, "mime-types": { "version": "2.1.21", "resolved": "https://verdaccio.lossless.one/mime-types/-/mime-types-2.1.21.tgz", "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", - "dev": true, "requires": { "mime-db": "~1.37.0" } @@ -1362,12 +1756,27 @@ "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", "dev": true }, + "nanoid": { + "version": "2.0.0", + "resolved": "https://verdaccio.lossless.one/nanoid/-/nanoid-2.0.0.tgz", + "integrity": "sha512-SG2qscLE3iM4C0CNzGrsAojJHSVHMS1J8NnvJ31P1lH8P0hGHOiafmniNJz6w6q7vuoDlV7RdySlJgtqkFEVtQ==" + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://verdaccio.lossless.one/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + }, "nice-try": { "version": "1.0.5", "resolved": "https://verdaccio.lossless.one/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, + "nocache": { + "version": "2.0.0", + "resolved": "https://verdaccio.lossless.one/nocache/-/nocache-2.0.0.tgz", + "integrity": "sha1-ICtIAhoMTL3i34DeFaF0Q8i0OYA=" + }, "node-forge": { "version": "0.7.6", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.6.tgz", @@ -1393,25 +1802,23 @@ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, - "object-keys": { - "version": "1.0.12", - "resolved": "https://verdaccio.lossless.one/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==" + "object-assign": { + "version": "4.1.1", + "resolved": "https://verdaccio.lossless.one/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, - "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://verdaccio.lossless.one/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "on-finished": { + "version": "2.3.0", + "resolved": "https://verdaccio.lossless.one/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" + "ee-first": "1.1.1" } }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } @@ -1474,6 +1881,11 @@ "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", "dev": true }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://verdaccio.lossless.one/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" + }, "path-exists": { "version": "3.0.0", "resolved": "https://verdaccio.lossless.one/path-exists/-/path-exists-3.0.0.tgz", @@ -1483,8 +1895,7 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-key": { "version": "2.0.1", @@ -1498,6 +1909,11 @@ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://verdaccio.lossless.one/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, "pathval": { "version": "1.1.0", "resolved": "https://verdaccio.lossless.one/pathval/-/pathval-1.1.0.tgz", @@ -1507,8 +1923,12 @@ "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "platform": { + "version": "1.3.5", + "resolved": "https://verdaccio.lossless.one/platform/-/platform-1.3.5.tgz", + "integrity": "sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q==" }, "pretty-bytes": { "version": "4.0.2", @@ -1519,8 +1939,16 @@ "process-nextick-args": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + }, + "proxy-addr": { + "version": "2.0.4", + "resolved": "https://verdaccio.lossless.one/proxy-addr/-/proxy-addr-2.0.4.tgz", + "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.8.0" + } }, "pump": { "version": "3.0.0", @@ -1532,22 +1960,41 @@ "once": "^1.3.1" } }, + "qs": { + "version": "6.5.2", + "resolved": "https://verdaccio.lossless.one/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, "randomatic": { "version": "3.1.1", "resolved": "https://verdaccio.lossless.one/randomatic/-/randomatic-3.1.1.tgz", "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", - "dev": true, "requires": { "is-number": "^4.0.0", "kind-of": "^6.0.0", "math-random": "^1.0.1" } }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://verdaccio.lossless.one/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + }, + "raw-body": { + "version": "2.3.3", + "resolved": "https://verdaccio.lossless.one/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", + "unpipe": "1.0.0" + } + }, "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -1558,6 +2005,11 @@ "util-deprecate": "~1.0.1" } }, + "referrer-policy": { + "version": "1.1.0", + "resolved": "https://verdaccio.lossless.one/referrer-policy/-/referrer-policy-1.1.0.tgz", + "integrity": "sha1-NXdOtzW/UPtsB46DM0tHI1AgfXk=" + }, "reflect-metadata": { "version": "0.1.12", "resolved": "https://verdaccio.lossless.one/reflect-metadata/-/reflect-metadata-0.1.12.tgz", @@ -1571,14 +2023,12 @@ "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" }, "replace-ext": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", - "dev": true + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" }, "require-directory": { "version": "2.1.1", @@ -1627,7 +2077,6 @@ "version": "6.3.3", "resolved": "https://verdaccio.lossless.one/rxjs/-/rxjs-6.3.3.tgz", "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", - "dev": true, "requires": { "tslib": "^1.9.0" } @@ -1637,6 +2086,11 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://verdaccio.lossless.one/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, "saslprep": { "version": "1.0.2", "resolved": "https://verdaccio.lossless.one/saslprep/-/saslprep-1.0.2.tgz", @@ -1651,12 +2105,63 @@ "resolved": "https://verdaccio.lossless.one/semver/-/semver-5.6.0.tgz", "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" }, + "send": { + "version": "0.16.2", + "resolved": "https://verdaccio.lossless.one/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://verdaccio.lossless.one/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://verdaccio.lossless.one/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + } + } + }, + "serve-static": { + "version": "1.13.2", + "resolved": "https://verdaccio.lossless.one/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + } + }, "set-blocking": { "version": "2.0.0", "resolved": "https://verdaccio.lossless.one/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://verdaccio.lossless.one/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, "shebang-command": { "version": "1.2.0", "resolved": "https://verdaccio.lossless.one/shebang-command/-/shebang-command-1.2.0.tgz", @@ -1672,6 +2177,14 @@ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, + "shortid": { + "version": "2.2.14", + "resolved": "https://verdaccio.lossless.one/shortid/-/shortid-2.2.14.tgz", + "integrity": "sha512-4UnZgr9gDdA1kaKj/38IiudfC3KHKhDc1zi/HSxd9FQDR0VLwH3/y79tZJLsVYPsJgIjeHjqIWaWVRJUj9qZOQ==", + "requires": { + "nanoid": "^2.0.0" + } + }, "signal-exit": { "version": "3.0.2", "resolved": "https://verdaccio.lossless.one/signal-exit/-/signal-exit-3.0.2.tgz", @@ -1692,64 +2205,6 @@ "chai-string": "^1.4.0" } }, - "smartq": { - "version": "1.1.8", - "resolved": "https://verdaccio.lossless.one/smartq/-/smartq-1.1.8.tgz", - "integrity": "sha512-FURlYW/C3bLeZjJcBVyw7bxCyQoCXiXbLCZcDUKznhXHaLu35c8m33/a2H8CA0rtb82lvzN8dRLnBZAcNMzNHQ==", - "requires": { - "util.promisify": "^1.0.0" - } - }, - "smartstring": { - "version": "2.0.28", - "resolved": "https://verdaccio.lossless.one/smartstring/-/smartstring-2.0.28.tgz", - "integrity": "sha512-pneklqLF1w3k043fyM3eMrJ1lXRnE4b/W6xlQrpkf2fLb/w1+NbnfJopJVfWJxtft8bVPHhYRk6fa1JKH4qTVw==", - "requires": { - "crypto-random-string": "^1.0.0", - "js-base64": "^2.3.2", - "normalize-newline": "^3.0.0", - "randomatic": "^1.1.7", - "strip-indent": "^2.0.0", - "typings-global": "^1.0.20" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://verdaccio.lossless.one/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://verdaccio.lossless.one/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://verdaccio.lossless.one/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - }, - "randomatic": { - "version": "1.1.7", - "resolved": "https://verdaccio.lossless.one/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - } - } - } - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -1778,8 +2233,12 @@ "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://verdaccio.lossless.one/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, "string-width": { "version": "2.1.1", @@ -1795,7 +2254,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -1813,7 +2271,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, "requires": { "is-utf8": "^0.2.0" } @@ -1822,7 +2279,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz", "integrity": "sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=", - "dev": true, "requires": { "is-utf8": "^0.2.1" } @@ -1831,7 +2287,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", - "dev": true, "requires": { "first-chunk-stream": "^2.0.0", "strip-bom": "^2.0.0" @@ -1892,8 +2347,7 @@ "tslib": { "version": "1.9.3", "resolved": "https://verdaccio.lossless.one/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", - "dev": true + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" }, "tslint": { "version": "5.12.0", @@ -1936,48 +2390,55 @@ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, + "type-is": { + "version": "1.6.16", + "resolved": "https://verdaccio.lossless.one/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.18" + } + }, "typescript": { "version": "3.2.2", "resolved": "https://verdaccio.lossless.one/typescript/-/typescript-3.2.2.tgz", "integrity": "sha512-VCj5UiSyHBjwfYacmDuc/NOk4QQixbE+Wn7MFJuS0nRuPQbof132Pw4u53dm264O8LPc2MVsc7RJNml5szurkg==", "dev": true }, - "typings-global": { - "version": "1.0.28", - "resolved": "https://verdaccio.lossless.one/typings-global/-/typings-global-1.0.28.tgz", - "integrity": "sha512-6VOwJWEY2971HOMHu/7sURzUXiD4/LiMJPsMAOqkHHAtS3MVpLFE5gzTiHilsH9KY5VE1mBQirWIgWFsDuo90A==" - }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://verdaccio.lossless.one/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://verdaccio.lossless.one/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", - "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } + "utils-merge": { + "version": "1.0.1", + "resolved": "https://verdaccio.lossless.one/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, "uuid": { "version": "3.3.2", "resolved": "https://verdaccio.lossless.one/uuid/-/uuid-3.3.2.tgz", "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, + "vary": { + "version": "1.1.2", + "resolved": "https://verdaccio.lossless.one/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, "vinyl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", - "dev": true, "requires": { "clone": "^2.1.1", "clone-buffer": "^1.0.0", @@ -1991,7 +2452,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-3.0.0.tgz", "integrity": "sha1-sQTZ5ECf+jJfqt1SBkLQo7SIs2U=", - "dev": true, "requires": { "graceful-fs": "^4.1.2", "pify": "^2.3.0", @@ -2065,8 +2525,12 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "x-xss-protection": { + "version": "1.1.0", + "resolved": "https://verdaccio.lossless.one/x-xss-protection/-/x-xss-protection-1.1.0.tgz", + "integrity": "sha512-rx3GzJlgEeZ08MIcDsU2vY2B1QEriUKJTSiNHHUIem6eg9pzVOr2TL3Y4Pd6TMAM5D5azGjcxqI62piITBDHVg==" }, "y18n": { "version": "4.0.0", diff --git a/package.json b/package.json index 702d082..1ec9821 100644 --- a/package.json +++ b/package.json @@ -25,11 +25,16 @@ }, "homepage": "https://gitlab.com/umbrellazone/smartacme#README", "dependencies": { - "@pushrocks/smartdata": "^3.1.2", + "@pushrocks/lik": "^3.0.4", + "@pushrocks/smartdata": "^3.1.13", "@pushrocks/smartdelay": "^2.0.2", "@pushrocks/smartdns": "^3.0.8", + "@pushrocks/smartexpress": "^3.0.0", "@pushrocks/smartpromise": "^2.0.5", - "acme-client": "^2.2.1" + "@pushrocks/smartrequest": "^1.1.14", + "@pushrocks/smarttime": "^3.0.5", + "@pushrocks/smartunique": "^3.0.1", + "acme-client": "^2.2.2" }, "devDependencies": { "@gitzone/tsbuild": "^2.1.4", diff --git a/qenv.yml b/qenv.yml index 82a88ea..2a49fde 100644 --- a/qenv.yml +++ b/qenv.yml @@ -1,3 +1,6 @@ required: - CF_EMAIL - CF_KEY + - MONGODB_URL + - MONGODB_PASSWORD + - MONGODB_DATABASE diff --git a/test/test.ts b/test/test.ts index 4248cef..f87dc76 100644 --- a/test/test.ts +++ b/test/test.ts @@ -1,12 +1,14 @@ import { tap, expect } from '@pushrocks/tapbundle'; +import { Qenv } from '@pushrocks/qenv'; + +const testQenv = new Qenv('./', './.nogit/'); import * as smartacme from '../ts/index'; let smartAcmeInstance: smartacme.SmartAcme; tap.test('should create a valid instance of SmartAcme', async () => { - smartAcmeInstance = new smartacme.SmartAcme(); - await smartAcmeInstance.init({ + smartAcmeInstance = new smartacme.SmartAcme({ accountEmail: 'domains@lossless.org', accountPrivateKey: null, removeChallenge: async (...args) => { @@ -14,9 +16,15 @@ tap.test('should create a valid instance of SmartAcme', async () => { }, setChallenge: async (...args) => { console.log(args); - } + }, + mongoDescriptor: { + mongoDbName: testQenv.getEnvVarOnDemand('MONGODB_DATABASE'), + mongoDbPass: testQenv.getEnvVarOnDemand('MONGODB_PASSWORD'), + mongoDbUrl: testQenv.getEnvVarOnDemand('MONGODB_URL') + } }); - // await smartAcmeInstance.getCertificateForDomain('bleu.de'); + await smartAcmeInstance.init(); + await smartAcmeInstance.getCertificateForDomain('bleu.de'); }); tap.start(); diff --git a/ts/index.ts b/ts/index.ts index 7c69782..c324df1 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -1 +1,3 @@ export * from './smartacme.classes.smartacme'; + +export * from './smartacme.classes.certremoteclient'; diff --git a/ts/smartacme.certmanager.ts b/ts/smartacme.certmanager.ts deleted file mode 100644 index 2562c2d..0000000 --- a/ts/smartacme.certmanager.ts +++ /dev/null @@ -1,10 +0,0 @@ -import * as plugins from './smartacme.plugins'; - -export class CertManager { - /** - * retrieves a certificate - */ - retrieveCertificate() { - - } -} diff --git a/ts/smartacme.classes.cert.ts b/ts/smartacme.classes.cert.ts new file mode 100644 index 0000000..4d04c13 --- /dev/null +++ b/ts/smartacme.classes.cert.ts @@ -0,0 +1,34 @@ +import * as plugins from './smartacme.plugins'; +import { CertManager } from './smartacme.classes.certmanager'; + +import { Collection, svDb, unI } from '@pushrocks/smartdata'; + +@plugins.smartdata.Collection(() => { + return CertManager.activeDB; +}) +export class Cert extends plugins.smartdata.SmartDataDbDoc { + @unI() + public index: string; + + @svDb() + domainName: string; + + @svDb() + created: number; + + @svDb() + privateKey: string; + + @svDb() + publicKey: string; + + @svDb() + csr: string; + + constructor(privateKeyArg: string, publicKeyArg: string, csrArg: string) { + super(); + this.privateKey = privateKeyArg; + this.publicKey = publicKeyArg; + this.csr = csrArg; + } +} diff --git a/ts/smartacme.classes.certificate.ts b/ts/smartacme.classes.certificate.ts deleted file mode 100644 index fa88878..0000000 --- a/ts/smartacme.classes.certificate.ts +++ /dev/null @@ -1,7 +0,0 @@ -import * as plugins from './smartacme.plugins'; - -export class SslCertificate { - privateKey: string; - publicKey: string; - csr: string; -} \ No newline at end of file diff --git a/ts/smartacme.classes.certmanager.ts b/ts/smartacme.classes.certmanager.ts new file mode 100644 index 0000000..310eca3 --- /dev/null +++ b/ts/smartacme.classes.certmanager.ts @@ -0,0 +1,67 @@ +import * as plugins from './smartacme.plugins'; +import { Cert } from './smartacme.classes.cert'; + + +export class CertManager { + // ========= + // STATIC + // ========= + public static activeDB: plugins.smartdata.SmartdataDb; + + + // ========= + // INSTANCE + // ========= + private mongoDescriptor: plugins.smartdata.IMongoDescriptor; + public smartdataDb: plugins.smartdata.SmartdataDb; + + constructor(optionsArg: { + mongoDescriptor: plugins.smartdata.IMongoDescriptor; + }) { + this.mongoDescriptor = optionsArg.mongoDescriptor; + } + + public async init () { + this.smartdataDb = new plugins.smartdata.SmartdataDb(this.mongoDescriptor); + await this.smartdataDb.init(); + CertManager.activeDB = this.smartdataDb; + }; + + /** + * retrieves a certificate + * @returns the Cert class or null + * @param domainName the domain Name to retrieve the vcertificate for + */ + public async retrieveCertificate(domainName: string): Promise { + const existingCertificate: Cert = await Cert.getInstance({ + name: domainName + }); + + if(existingCertificate) { + return existingCertificate; + } else { + return null; + } + + } + + /** + * stores the certificate with the + * @param publicKeyArg + * @param privateKeyArg + * @param csrArg + */ + public async storeCertificate(privateKeyArg: string, publicKeyArg: string, csrArg: string) { + const cert = new Cert(privateKeyArg, publicKeyArg, csrArg); + cert.save(); + }; + + public async deleteCertificate(domainName: string) { + + }; + + /** + * checks all certs for expiration + */ + checkCerts() {} +} diff --git a/ts/smartacme.classes.certremoteclient.ts b/ts/smartacme.classes.certremoteclient.ts new file mode 100644 index 0000000..67034e8 --- /dev/null +++ b/ts/smartacme.classes.certremoteclient.ts @@ -0,0 +1,10 @@ +import * as plugins from './smartacme.plugins'; + +export class CertRemoteClient { + constructor(optionsArg: { + remoteUrl: string; + secret: string; + }) { + + } +} diff --git a/ts/smartacme.classes.certremotehandler.ts b/ts/smartacme.classes.certremotehandler.ts new file mode 100644 index 0000000..4011f9a --- /dev/null +++ b/ts/smartacme.classes.certremotehandler.ts @@ -0,0 +1,3 @@ +import * as plugins from './smartacme.plugins'; + +export class CertRemoteHandler {} \ No newline at end of file diff --git a/ts/smartacme.classes.smartacme.ts b/ts/smartacme.classes.smartacme.ts index a924d59..3ba35e4 100644 --- a/ts/smartacme.classes.smartacme.ts +++ b/ts/smartacme.classes.smartacme.ts @@ -1,11 +1,21 @@ import * as plugins from './smartacme.plugins'; +import { CertManager } from './smartacme.classes.certmanager'; +import { CertRemoteHandler } from './smartacme.classes.certremotehandler'; /** * */ -export interface ISmartAcmeStorage {} +export interface ISmartAcmeOptions { + accountPrivateKey?: string; + accountEmail: string; + setChallenge: (domainName: string, keyAuthorization: string) => Promise; + removeChallenge: (domainName: string) => Promise; + mongoDescriptor: plugins.smartdata.IMongoDescriptor; +} export class SmartAcme { + private options: ISmartAcmeOptions; + // the acme client private client: any; private smartdns = new plugins.smartdns.Smartdns(); @@ -17,15 +27,25 @@ export class SmartAcme { private setChallenge: (domainName: string, keyAuthorization: string) => Promise; private removeChallenge: (domainName: string) => Promise; - public async init(optionsArg: { - accountPrivateKey?: string; - accountEmail: string; - setChallenge: (domainName: string, keyAuthorization: string) => Promise - removeChallenge: (domainName: string) => Promise; - }) { - this.privateKey = optionsArg.accountPrivateKey || (await plugins.acme.forge.createPrivateKey()); - this.setChallenge = optionsArg.setChallenge; - this.removeChallenge = optionsArg.removeChallenge; + // certmanager + private certmanager: CertManager; + private certremoteHandler: CertRemoteHandler; + + constructor(optionsArg: ISmartAcmeOptions) { + this.options = optionsArg; + } + + public async init() { + this.privateKey = this.options.accountPrivateKey || (await plugins.acme.forge.createPrivateKey()); + this.setChallenge = this.options.setChallenge; + this.removeChallenge = this.options.removeChallenge; + + this.certmanager = new CertManager({ + mongoDescriptor: this.options.mongoDescriptor + }); + await this.certmanager.init(); + this.certremoteHandler = new CertRemoteHandler(); + this.client = new plugins.acme.Client({ directoryUrl: plugins.acme.directory.letsencrypt.staging, accountKey: this.privateKey @@ -34,13 +54,19 @@ export class SmartAcme { /* Register account */ await this.client.createAccount({ termsOfServiceAgreed: true, - contact: [`mailto:${optionsArg.accountEmail}`] + contact: [`mailto:${this.options.accountEmail}`] }); } public async getCertificateForDomain(domainArg: string) { const domain = domainArg; + const retrievedCertificate = await this.certmanager.retrieveCertificate(domain); + + if(retrievedCertificate) { + return retrievedCertificate; + } + /* Place new order */ const order = await this.client.createOrder({ identifiers: [{ type: 'dns', value: domain }, { type: 'dns', value: `*.${domain}` }] @@ -63,7 +89,6 @@ export class SmartAcme { await this.setChallenge(domainDnsName, keyAuthorization); await this.smartdns.checkUntilAvailable(domainDnsName, 'TXT', keyAuthorization, 100, 5000); - /* Verify that challenge is satisfied */ await this.client.verifyChallenge(authz, dnsChallenge); @@ -95,6 +120,8 @@ export class SmartAcme { console.log(`CSR:\n${csr.toString()}`); console.log(`Private key:\n${key.toString()}`); console.log(`Certificate:\n${cert.toString()}`); + + this.certmanager.storeCertificate(key.toString(), cert.toString(), csr.toString()); } toStorageObject() {} diff --git a/ts/smartacme.plugins.ts b/ts/smartacme.plugins.ts index e0e1163..7f2c1fb 100644 --- a/ts/smartacme.plugins.ts +++ b/ts/smartacme.plugins.ts @@ -1,9 +1,15 @@ // @pushrocks scope +import * as lik from '@pushrocks/lik'; +import * as smartdata from '@pushrocks/smartdata'; import * as smartdelay from '@pushrocks/smartdelay'; import * as smartdns from '@pushrocks/smartdns'; +import * as smartexpress from '@pushrocks/smartexpress'; import * as smartpromise from '@pushrocks/smartpromise'; +import * as smartrequest from '@pushrocks/smartrequest'; +import * as smartunique from '@pushrocks/smartunique'; +import * as smarttime from '@pushrocks/smarttime'; -export { smartdelay, smartdns, smartpromise }; +export { lik, smartdata, smartdelay, smartdns, smartexpress, smartpromise, smartrequest, smartunique, smarttime }; // thirs party scope import * as acme from 'acme-client'; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..369c55b --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,7 @@ +{ + "compilerOptions": { + "experimentalDecorators": true, + "target": "es2017", + "module": "commonjs" + } +}