Compare commits
62 Commits
Author | SHA1 | Date | |
---|---|---|---|
7b0f824d29 | |||
b5796b86d5 | |||
1f8ea59221 | |||
d717568572 | |||
28d050851f | |||
acbd109985 | |||
cc38a6d10e | |||
748b07efe2 | |||
be4fd0978a | |||
4521010b82 | |||
bd1f1a4c1c | |||
d3bdd56660 | |||
c38a7c4c32 | |||
858628196a | |||
4910679058 | |||
97db2012ca | |||
0ee13b4e06 | |||
21f5882fa3 | |||
48b43f9f0d | |||
d3d476fd53 | |||
b80b8a0a20 | |||
384943f697 | |||
e9239ed978 | |||
baf1844866 | |||
0b3d7f8a06 | |||
c38a2745e9 | |||
a0f39d1c5b | |||
c67ac868a5 | |||
90e1a0453e | |||
d7765fb5dc | |||
0fdd17b430 | |||
0562de6aa1 | |||
7b550a35aa | |||
fb66aac6e7 | |||
208790cfcf | |||
5978bbaf66 | |||
1c47eafe5f | |||
69e3a71354 | |||
21e92bf0c1 | |||
d732e6e7aa | |||
5fdfcdb407 | |||
49e2e90bda | |||
b8e53e7b42 | |||
1136841b3d | |||
42cbc51d22 | |||
2d16403ad1 | |||
afe847499a | |||
f980bb70b4 | |||
f192a8f041 | |||
64bf3aef6d | |||
a5e3cbd05b | |||
2f0fad999a | |||
5e6477720d | |||
bad8bf0688 | |||
4f1db106fb | |||
d47829a8b2 | |||
ca55d06244 | |||
7284924b26 | |||
10857aa12b | |||
c968c7f844 | |||
b07015f6c4 | |||
ca4ddade17 |
@ -12,20 +12,12 @@ stages:
|
|||||||
- release
|
- release
|
||||||
- metadata
|
- metadata
|
||||||
|
|
||||||
|
before_script:
|
||||||
|
- npm install -g @shipzone/npmci
|
||||||
|
|
||||||
# ====================
|
# ====================
|
||||||
# security stage
|
# security stage
|
||||||
# ====================
|
# ====================
|
||||||
mirror:
|
|
||||||
stage: security
|
|
||||||
script:
|
|
||||||
- npmci git mirror
|
|
||||||
only:
|
|
||||||
- tags
|
|
||||||
tags:
|
|
||||||
- lossless
|
|
||||||
- docker
|
|
||||||
- notpriv
|
|
||||||
|
|
||||||
auditProductionDependencies:
|
auditProductionDependencies:
|
||||||
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||||
stage: security
|
stage: security
|
||||||
@ -36,6 +28,7 @@ auditProductionDependencies:
|
|||||||
- npmci command npm audit --audit-level=high --only=prod --production
|
- npmci command npm audit --audit-level=high --only=prod --production
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
|
allow_failure: true
|
||||||
|
|
||||||
auditDevDependencies:
|
auditDevDependencies:
|
||||||
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||||
@ -96,10 +89,9 @@ codequality:
|
|||||||
only:
|
only:
|
||||||
- tags
|
- tags
|
||||||
script:
|
script:
|
||||||
- npmci command npm install -g tslint typescript
|
- npmci command npm install -g typescript
|
||||||
- npmci npm prepare
|
- npmci npm prepare
|
||||||
- npmci npm install
|
- npmci npm install
|
||||||
- npmci command "tslint -c tslint.json ./ts/**/*.ts"
|
|
||||||
tags:
|
tags:
|
||||||
- lossless
|
- lossless
|
||||||
- docker
|
- docker
|
||||||
@ -119,11 +111,10 @@ trigger:
|
|||||||
pages:
|
pages:
|
||||||
stage: metadata
|
stage: metadata
|
||||||
script:
|
script:
|
||||||
- npmci node install lts
|
- npmci node install stable
|
||||||
- npmci command npm install -g @gitzone/tsdoc
|
|
||||||
- npmci npm prepare
|
- npmci npm prepare
|
||||||
- npmci npm install
|
- npmci npm install
|
||||||
- npmci command tsdoc
|
- npmci command npm run buildDocs
|
||||||
tags:
|
tags:
|
||||||
- lossless
|
- lossless
|
||||||
- docker
|
- docker
|
||||||
|
24
.vscode/launch.json
vendored
24
.vscode/launch.json
vendored
@ -2,28 +2,10 @@
|
|||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"configurations": [
|
"configurations": [
|
||||||
{
|
{
|
||||||
"name": "current file",
|
"command": "npm test",
|
||||||
"type": "node",
|
"name": "Run npm test",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"args": [
|
"type": "node-terminal"
|
||||||
"${relativeFile}"
|
|
||||||
],
|
|
||||||
"runtimeArgs": ["-r", "@gitzone/tsrun"],
|
|
||||||
"cwd": "${workspaceRoot}",
|
|
||||||
"protocol": "inspector",
|
|
||||||
"internalConsoleOptions": "openOnSessionStart"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "test.ts",
|
|
||||||
"type": "node",
|
|
||||||
"request": "launch",
|
|
||||||
"args": [
|
|
||||||
"test/test.ts"
|
|
||||||
],
|
|
||||||
"runtimeArgs": ["-r", "@gitzone/tsrun"],
|
|
||||||
"cwd": "${workspaceRoot}",
|
|
||||||
"protocol": "inspector",
|
|
||||||
"internalConsoleOptions": "openOnSessionStart"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
"githost": "gitlab.com",
|
"githost": "gitlab.com",
|
||||||
"gitscope": "pushrocks",
|
"gitscope": "pushrocks",
|
||||||
"gitrepo": "smartproxy",
|
"gitrepo": "smartproxy",
|
||||||
"shortDescription": "a proxy for handling high workloads of proxying",
|
"description": "a proxy for handling high workloads of proxying",
|
||||||
"npmPackagename": "@pushrocks/smartproxy",
|
"npmPackagename": "@pushrocks/smartproxy",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"projectDomain": "push.rocks"
|
"projectDomain": "push.rocks"
|
||||||
|
136
package-lock.json
generated
136
package-lock.json
generated
@ -1,18 +1,18 @@
|
|||||||
{
|
{
|
||||||
"name": "@pushrocks/smartproxy",
|
"name": "@pushrocks/smartproxy",
|
||||||
"version": "3.0.4",
|
"version": "3.0.35",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@pushrocks/smartproxy",
|
"name": "@pushrocks/smartproxy",
|
||||||
"version": "3.0.4",
|
"version": "3.0.35",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@pushrocks/lik": "^6.0.0",
|
"@pushrocks/lik": "^6.0.0",
|
||||||
"@pushrocks/smartnetwork": "^3.0.0",
|
"@pushrocks/smartdelay": "^2.0.13",
|
||||||
"@pushrocks/smartpromise": "^3.1.7",
|
"@pushrocks/smartpromise": "^3.1.7",
|
||||||
"@pushrocks/smartrequest": "^2.0.0",
|
"@pushrocks/smartrequest": "^2.0.6",
|
||||||
"@pushrocks/smartstring": "^4.0.2",
|
"@pushrocks/smartstring": "^4.0.2",
|
||||||
"@tsclass/tsclass": "^4.0.17",
|
"@tsclass/tsclass": "^4.0.17",
|
||||||
"@types/ws": "^8.5.3",
|
"@types/ws": "^8.5.3",
|
||||||
@ -794,6 +794,7 @@
|
|||||||
"version": "2.0.4",
|
"version": "2.0.4",
|
||||||
"resolved": "https://verdaccio.lossless.one/@leichtgewicht%2fip-codec/-/ip-codec-2.0.4.tgz",
|
"resolved": "https://verdaccio.lossless.one/@leichtgewicht%2fip-codec/-/ip-codec-2.0.4.tgz",
|
||||||
"integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==",
|
"integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@lit/reactive-element": {
|
"node_modules/@lit/reactive-element": {
|
||||||
@ -1366,6 +1367,7 @@
|
|||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartnetwork/-/smartnetwork-3.0.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartnetwork/-/smartnetwork-3.0.0.tgz",
|
||||||
"integrity": "sha512-UsV5ifrizBIF8UVgZ0BoEuTq+UsRi9CFFwa6ZPOkggREN7L5ZQ66zo5VcumTOE9TC1tPlCekGuUH+CZOUH4KxQ==",
|
"integrity": "sha512-UsV5ifrizBIF8UVgZ0BoEuTq+UsRi9CFFwa6ZPOkggREN7L5ZQ66zo5VcumTOE9TC1tPlCekGuUH+CZOUH4KxQ==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@pushrocks/smartpromise": "^3.1.7",
|
"@pushrocks/smartpromise": "^3.1.7",
|
||||||
@ -1553,9 +1555,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@pushrocks/smartrequest": {
|
"node_modules/@pushrocks/smartrequest": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.6",
|
||||||
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartrequest/-/smartrequest-2.0.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartrequest/-/smartrequest-2.0.6.tgz",
|
||||||
"integrity": "sha512-Xmi+2xYvy67aOMg+XO08RaIZ2QjZZonvz7lEFx5esFzu4LIbwYOzN3GEmZ6/gz9yqdGCBknUxTSLfKCO/hZgTg==",
|
"integrity": "sha512-rfE7vSr3ZrXLddCiyddU0vpL1ok0PbwL6bpd2gPNzwpCx4+q+4khQFADMKprzykRtQ4jYdKdhplJzwJGxBMI+g==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@pushrocks/smartpromise": "^3.1.7",
|
"@pushrocks/smartpromise": "^3.1.7",
|
||||||
@ -1896,6 +1898,7 @@
|
|||||||
"version": "0.14.0",
|
"version": "0.14.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/@sindresorhus%2fis/-/is-0.14.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/@sindresorhus%2fis/-/is-0.14.0.tgz",
|
||||||
"integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
|
"integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6"
|
"node": ">=6"
|
||||||
@ -1912,6 +1915,7 @@
|
|||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://verdaccio.lossless.one/@szmarczak%2fhttp-timer/-/http-timer-1.1.2.tgz",
|
"resolved": "https://verdaccio.lossless.one/@szmarczak%2fhttp-timer/-/http-timer-1.1.2.tgz",
|
||||||
"integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
|
"integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"defer-to-connect": "^1.0.1"
|
"defer-to-connect": "^1.0.1"
|
||||||
@ -2110,6 +2114,7 @@
|
|||||||
"version": "3.0.1",
|
"version": "3.0.1",
|
||||||
"resolved": "https://verdaccio.lossless.one/@types%2fdefault-gateway/-/default-gateway-3.0.1.tgz",
|
"resolved": "https://verdaccio.lossless.one/@types%2fdefault-gateway/-/default-gateway-3.0.1.tgz",
|
||||||
"integrity": "sha512-tpu0hp+AOIzwdAHyZPzLE5pCf9uT0pb+xZ76T4S7MrY2YTVq918Q7Q2VQ3KCVQqYxM7nxuCK/SL3X97jBEIeKQ==",
|
"integrity": "sha512-tpu0hp+AOIzwdAHyZPzLE5pCf9uT0pb+xZ76T4S7MrY2YTVq918Q7Q2VQ3KCVQqYxM7nxuCK/SL3X97jBEIeKQ==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@types/express": {
|
"node_modules/@types/express": {
|
||||||
@ -3095,6 +3100,7 @@
|
|||||||
"version": "6.1.0",
|
"version": "6.1.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/cacheable-request/-/cacheable-request-6.1.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/cacheable-request/-/cacheable-request-6.1.0.tgz",
|
||||||
"integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
|
"integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"clone-response": "^1.0.2",
|
"clone-response": "^1.0.2",
|
||||||
@ -3113,6 +3119,7 @@
|
|||||||
"version": "5.2.0",
|
"version": "5.2.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/get-stream/-/get-stream-5.2.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/get-stream/-/get-stream-5.2.0.tgz",
|
||||||
"integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
|
"integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"pump": "^3.0.0"
|
"pump": "^3.0.0"
|
||||||
@ -3128,6 +3135,7 @@
|
|||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
|
||||||
"integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
|
"integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
@ -3343,6 +3351,7 @@
|
|||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
"resolved": "https://verdaccio.lossless.one/clone-response/-/clone-response-1.0.3.tgz",
|
"resolved": "https://verdaccio.lossless.one/clone-response/-/clone-response-1.0.3.tgz",
|
||||||
"integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==",
|
"integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"mimic-response": "^1.0.0"
|
"mimic-response": "^1.0.0"
|
||||||
@ -3761,6 +3770,7 @@
|
|||||||
"version": "3.3.0",
|
"version": "3.3.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/decompress-response/-/decompress-response-3.3.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/decompress-response/-/decompress-response-3.3.0.tgz",
|
||||||
"integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
|
"integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"mimic-response": "^1.0.0"
|
"mimic-response": "^1.0.0"
|
||||||
@ -3780,6 +3790,7 @@
|
|||||||
"version": "1.1.3",
|
"version": "1.1.3",
|
||||||
"resolved": "https://verdaccio.lossless.one/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
|
"resolved": "https://verdaccio.lossless.one/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
|
||||||
"integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==",
|
"integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/define-lazy-prop": {
|
"node_modules/define-lazy-prop": {
|
||||||
@ -3888,6 +3899,7 @@
|
|||||||
"version": "5.4.0",
|
"version": "5.4.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/dns-packet/-/dns-packet-5.4.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/dns-packet/-/dns-packet-5.4.0.tgz",
|
||||||
"integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==",
|
"integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@leichtgewicht/ip-codec": "^2.0.1"
|
"@leichtgewicht/ip-codec": "^2.0.1"
|
||||||
@ -3900,6 +3912,7 @@
|
|||||||
"version": "4.2.2",
|
"version": "4.2.2",
|
||||||
"resolved": "https://verdaccio.lossless.one/dns-socket/-/dns-socket-4.2.2.tgz",
|
"resolved": "https://verdaccio.lossless.one/dns-socket/-/dns-socket-4.2.2.tgz",
|
||||||
"integrity": "sha512-BDeBd8najI4/lS00HSKpdFia+OvUMytaVjfzR9n5Lq8MlZRSvtbI+uLtx1+XmQFls5wFU9dssccTmQQ6nfpjdg==",
|
"integrity": "sha512-BDeBd8najI4/lS00HSKpdFia+OvUMytaVjfzR9n5Lq8MlZRSvtbI+uLtx1+XmQFls5wFU9dssccTmQQ6nfpjdg==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"dns-packet": "^5.2.4"
|
"dns-packet": "^5.2.4"
|
||||||
@ -3922,6 +3935,7 @@
|
|||||||
"version": "0.1.5",
|
"version": "0.1.5",
|
||||||
"resolved": "https://verdaccio.lossless.one/duplexer3/-/duplexer3-0.1.5.tgz",
|
"resolved": "https://verdaccio.lossless.one/duplexer3/-/duplexer3-0.1.5.tgz",
|
||||||
"integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==",
|
"integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==",
|
||||||
|
"dev": true,
|
||||||
"license": "BSD-3-Clause"
|
"license": "BSD-3-Clause"
|
||||||
},
|
},
|
||||||
"node_modules/ee-first": {
|
"node_modules/ee-first": {
|
||||||
@ -3952,6 +3966,7 @@
|
|||||||
"version": "1.4.4",
|
"version": "1.4.4",
|
||||||
"resolved": "https://verdaccio.lossless.one/end-of-stream/-/end-of-stream-1.4.4.tgz",
|
"resolved": "https://verdaccio.lossless.one/end-of-stream/-/end-of-stream-1.4.4.tgz",
|
||||||
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
|
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"once": "^1.4.0"
|
"once": "^1.4.0"
|
||||||
@ -5106,6 +5121,7 @@
|
|||||||
"version": "9.6.0",
|
"version": "9.6.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/got/-/got-9.6.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/got/-/got-9.6.0.tgz",
|
||||||
"integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
|
"integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@sindresorhus/is": "^0.14.0",
|
"@sindresorhus/is": "^0.14.0",
|
||||||
@ -5128,6 +5144,7 @@
|
|||||||
"version": "4.1.0",
|
"version": "4.1.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/get-stream/-/get-stream-4.1.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/get-stream/-/get-stream-4.1.0.tgz",
|
||||||
"integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
|
"integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"pump": "^3.0.0"
|
"pump": "^3.0.0"
|
||||||
@ -5299,6 +5316,7 @@
|
|||||||
"version": "4.1.0",
|
"version": "4.1.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
|
||||||
"integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
|
"integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
|
||||||
|
"dev": true,
|
||||||
"license": "BSD-2-Clause"
|
"license": "BSD-2-Clause"
|
||||||
},
|
},
|
||||||
"node_modules/http-errors": {
|
"node_modules/http-errors": {
|
||||||
@ -5355,6 +5373,7 @@
|
|||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://verdaccio.lossless.one/icmp/-/icmp-2.0.1.tgz",
|
"resolved": "https://verdaccio.lossless.one/icmp/-/icmp-2.0.1.tgz",
|
||||||
"integrity": "sha512-M7r2J6pjZOwZFSjsFNvYlWvtpVbCckwCd2EQSHc4Mzscwp9X7DUpnPcQiVceKI9YQ42INb53cMmgIzaRs87Jmg==",
|
"integrity": "sha512-M7r2J6pjZOwZFSjsFNvYlWvtpVbCckwCd2EQSHc4Mzscwp9X7DUpnPcQiVceKI9YQ42INb53cMmgIzaRs87Jmg==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"raw-socket": "^1.7.0"
|
"raw-socket": "^1.7.0"
|
||||||
@ -5449,6 +5468,7 @@
|
|||||||
"version": "4.3.0",
|
"version": "4.3.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/ip-regex/-/ip-regex-4.3.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/ip-regex/-/ip-regex-4.3.0.tgz",
|
||||||
"integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==",
|
"integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
@ -5546,6 +5566,7 @@
|
|||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/is-ip/-/is-ip-3.1.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/is-ip/-/is-ip-3.1.0.tgz",
|
||||||
"integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==",
|
"integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ip-regex": "^4.0.0"
|
"ip-regex": "^4.0.0"
|
||||||
@ -5671,6 +5692,7 @@
|
|||||||
"version": "1.3.0",
|
"version": "1.3.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/isopen/-/isopen-1.3.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/isopen/-/isopen-1.3.0.tgz",
|
||||||
"integrity": "sha512-AN6Q9J0UlqHFl1fN/2xJCHCBLCBCFDjZhpGBO1gh3wzgRPsFSFBUL36I2Lbfd9qkuoj58axmE7j83iejTQsk8Q==",
|
"integrity": "sha512-AN6Q9J0UlqHFl1fN/2xJCHCBLCBCFDjZhpGBO1gh3wzgRPsFSFBUL36I2Lbfd9qkuoj58axmE7j83iejTQsk8Q==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/istanbul-lib-coverage": {
|
"node_modules/istanbul-lib-coverage": {
|
||||||
@ -5765,6 +5787,7 @@
|
|||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/json-buffer/-/json-buffer-3.0.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/json-buffer/-/json-buffer-3.0.0.tgz",
|
||||||
"integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=",
|
"integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/jsonfile": {
|
"node_modules/jsonfile": {
|
||||||
@ -5797,6 +5820,7 @@
|
|||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/keyv/-/keyv-3.1.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/keyv/-/keyv-3.1.0.tgz",
|
||||||
"integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
|
"integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"json-buffer": "3.0.0"
|
"json-buffer": "3.0.0"
|
||||||
@ -6176,6 +6200,7 @@
|
|||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://verdaccio.lossless.one/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
|
"resolved": "https://verdaccio.lossless.one/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
|
||||||
"integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
|
"integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
@ -6356,6 +6381,7 @@
|
|||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://verdaccio.lossless.one/mimic-response/-/mimic-response-1.0.1.tgz",
|
"resolved": "https://verdaccio.lossless.one/mimic-response/-/mimic-response-1.0.1.tgz",
|
||||||
"integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
|
"integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=4"
|
"node": ">=4"
|
||||||
@ -6420,6 +6446,7 @@
|
|||||||
"version": "2.14.2",
|
"version": "2.14.2",
|
||||||
"resolved": "https://verdaccio.lossless.one/nan/-/nan-2.14.2.tgz",
|
"resolved": "https://verdaccio.lossless.one/nan/-/nan-2.14.2.tgz",
|
||||||
"integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==",
|
"integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/nanocolors": {
|
"node_modules/nanocolors": {
|
||||||
@ -6530,6 +6557,7 @@
|
|||||||
"version": "4.5.1",
|
"version": "4.5.1",
|
||||||
"resolved": "https://verdaccio.lossless.one/normalize-url/-/normalize-url-4.5.1.tgz",
|
"resolved": "https://verdaccio.lossless.one/normalize-url/-/normalize-url-4.5.1.tgz",
|
||||||
"integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
|
"integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
@ -6590,6 +6618,7 @@
|
|||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/once/-/once-1.4.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/once/-/once-1.4.0.tgz",
|
||||||
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
||||||
|
"dev": true,
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"wrappy": "1"
|
"wrappy": "1"
|
||||||
@ -6666,6 +6695,7 @@
|
|||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/p-cancelable/-/p-cancelable-1.1.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/p-cancelable/-/p-cancelable-1.1.0.tgz",
|
||||||
"integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
|
"integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6"
|
"node": ">=6"
|
||||||
@ -6930,6 +6960,7 @@
|
|||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/prepend-http/-/prepend-http-2.0.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/prepend-http/-/prepend-http-2.0.0.tgz",
|
||||||
"integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
|
"integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=4"
|
"node": ">=4"
|
||||||
@ -7005,6 +7036,7 @@
|
|||||||
"version": "4.0.4",
|
"version": "4.0.4",
|
||||||
"resolved": "https://verdaccio.lossless.one/public-ip/-/public-ip-4.0.4.tgz",
|
"resolved": "https://verdaccio.lossless.one/public-ip/-/public-ip-4.0.4.tgz",
|
||||||
"integrity": "sha512-EJ0VMV2vF6Cu7BIPo3IMW1Maq6ME+fbR0NcPmqDfpfNGIRPue1X8QrGjrg/rfjDkOsIkKHIf2S5FlEa48hFMTA==",
|
"integrity": "sha512-EJ0VMV2vF6Cu7BIPo3IMW1Maq6ME+fbR0NcPmqDfpfNGIRPue1X8QrGjrg/rfjDkOsIkKHIf2S5FlEa48hFMTA==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"dns-socket": "^4.2.2",
|
"dns-socket": "^4.2.2",
|
||||||
@ -7022,6 +7054,7 @@
|
|||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/pump/-/pump-3.0.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/pump/-/pump-3.0.0.tgz",
|
||||||
"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
|
"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"end-of-stream": "^1.1.0",
|
"end-of-stream": "^1.1.0",
|
||||||
@ -7188,6 +7221,7 @@
|
|||||||
"version": "1.7.0",
|
"version": "1.7.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/raw-socket/-/raw-socket-1.7.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/raw-socket/-/raw-socket-1.7.0.tgz",
|
||||||
"integrity": "sha512-mXqWihgwaFNmV5le0dWk5o+03M3A2zBIkC9BNaE6R0CJN9eYot++j2FIqgNSDq6/Vmu32PPI155SiiWNV2yyFQ==",
|
"integrity": "sha512-mXqWihgwaFNmV5le0dWk5o+03M3A2zBIkC9BNaE6R0CJN9eYot++j2FIqgNSDq6/Vmu32PPI155SiiWNV2yyFQ==",
|
||||||
|
"dev": true,
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -7322,6 +7356,7 @@
|
|||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://verdaccio.lossless.one/responselike/-/responselike-1.0.2.tgz",
|
"resolved": "https://verdaccio.lossless.one/responselike/-/responselike-1.0.2.tgz",
|
||||||
"integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
|
"integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"lowercase-keys": "^1.0.0"
|
"lowercase-keys": "^1.0.0"
|
||||||
@ -7867,6 +7902,7 @@
|
|||||||
"version": "5.12.1",
|
"version": "5.12.1",
|
||||||
"resolved": "https://verdaccio.lossless.one/systeminformation/-/systeminformation-5.12.1.tgz",
|
"resolved": "https://verdaccio.lossless.one/systeminformation/-/systeminformation-5.12.1.tgz",
|
||||||
"integrity": "sha512-qAV0xSeSJlg0ZHmQ1T2rLrL54SATalBx6v4T8Sd5s17pEm6saX3LKzlPhfPx+EfT91y9yhRYnKhnMoLTFkxbqw==",
|
"integrity": "sha512-qAV0xSeSJlg0ZHmQ1T2rLrL54SATalBx6v4T8Sd5s17pEm6saX3LKzlPhfPx+EfT91y9yhRYnKhnMoLTFkxbqw==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"os": [
|
"os": [
|
||||||
"darwin",
|
"darwin",
|
||||||
@ -7958,6 +7994,7 @@
|
|||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
|
||||||
"integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
|
"integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6"
|
"node": ">=6"
|
||||||
@ -8273,6 +8310,7 @@
|
|||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
|
||||||
"integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
|
"integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
|
||||||
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"prepend-http": "^2.0.0"
|
"prepend-http": "^2.0.0"
|
||||||
@ -8438,6 +8476,7 @@
|
|||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://verdaccio.lossless.one/wrappy/-/wrappy-1.0.2.tgz",
|
"resolved": "https://verdaccio.lossless.one/wrappy/-/wrappy-1.0.2.tgz",
|
||||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
|
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
|
||||||
|
"dev": true,
|
||||||
"license": "ISC"
|
"license": "ISC"
|
||||||
},
|
},
|
||||||
"node_modules/ws": {
|
"node_modules/ws": {
|
||||||
@ -9237,7 +9276,8 @@
|
|||||||
"@leichtgewicht/ip-codec": {
|
"@leichtgewicht/ip-codec": {
|
||||||
"version": "2.0.4",
|
"version": "2.0.4",
|
||||||
"resolved": "https://verdaccio.lossless.one/@leichtgewicht%2fip-codec/-/ip-codec-2.0.4.tgz",
|
"resolved": "https://verdaccio.lossless.one/@leichtgewicht%2fip-codec/-/ip-codec-2.0.4.tgz",
|
||||||
"integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A=="
|
"integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"@lit/reactive-element": {
|
"@lit/reactive-element": {
|
||||||
"version": "1.3.4",
|
"version": "1.3.4",
|
||||||
@ -9767,6 +9807,7 @@
|
|||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartnetwork/-/smartnetwork-3.0.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartnetwork/-/smartnetwork-3.0.0.tgz",
|
||||||
"integrity": "sha512-UsV5ifrizBIF8UVgZ0BoEuTq+UsRi9CFFwa6ZPOkggREN7L5ZQ66zo5VcumTOE9TC1tPlCekGuUH+CZOUH4KxQ==",
|
"integrity": "sha512-UsV5ifrizBIF8UVgZ0BoEuTq+UsRi9CFFwa6ZPOkggREN7L5ZQ66zo5VcumTOE9TC1tPlCekGuUH+CZOUH4KxQ==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@pushrocks/smartpromise": "^3.1.7",
|
"@pushrocks/smartpromise": "^3.1.7",
|
||||||
"@pushrocks/smartstring": "^4.0.2",
|
"@pushrocks/smartstring": "^4.0.2",
|
||||||
@ -9933,9 +9974,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@pushrocks/smartrequest": {
|
"@pushrocks/smartrequest": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.6",
|
||||||
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartrequest/-/smartrequest-2.0.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartrequest/-/smartrequest-2.0.6.tgz",
|
||||||
"integrity": "sha512-Xmi+2xYvy67aOMg+XO08RaIZ2QjZZonvz7lEFx5esFzu4LIbwYOzN3GEmZ6/gz9yqdGCBknUxTSLfKCO/hZgTg==",
|
"integrity": "sha512-rfE7vSr3ZrXLddCiyddU0vpL1ok0PbwL6bpd2gPNzwpCx4+q+4khQFADMKprzykRtQ4jYdKdhplJzwJGxBMI+g==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@pushrocks/smartpromise": "^3.1.7",
|
"@pushrocks/smartpromise": "^3.1.7",
|
||||||
"@pushrocks/smarturl": "^3.0.2",
|
"@pushrocks/smarturl": "^3.0.2",
|
||||||
@ -10258,7 +10299,8 @@
|
|||||||
"@sindresorhus/is": {
|
"@sindresorhus/is": {
|
||||||
"version": "0.14.0",
|
"version": "0.14.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/@sindresorhus%2fis/-/is-0.14.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/@sindresorhus%2fis/-/is-0.14.0.tgz",
|
||||||
"integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ=="
|
"integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"@socket.io/component-emitter": {
|
"@socket.io/component-emitter": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
@ -10270,6 +10312,7 @@
|
|||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://verdaccio.lossless.one/@szmarczak%2fhttp-timer/-/http-timer-1.1.2.tgz",
|
"resolved": "https://verdaccio.lossless.one/@szmarczak%2fhttp-timer/-/http-timer-1.1.2.tgz",
|
||||||
"integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
|
"integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"defer-to-connect": "^1.0.1"
|
"defer-to-connect": "^1.0.1"
|
||||||
}
|
}
|
||||||
@ -10441,7 +10484,8 @@
|
|||||||
"@types/default-gateway": {
|
"@types/default-gateway": {
|
||||||
"version": "3.0.1",
|
"version": "3.0.1",
|
||||||
"resolved": "https://verdaccio.lossless.one/@types%2fdefault-gateway/-/default-gateway-3.0.1.tgz",
|
"resolved": "https://verdaccio.lossless.one/@types%2fdefault-gateway/-/default-gateway-3.0.1.tgz",
|
||||||
"integrity": "sha512-tpu0hp+AOIzwdAHyZPzLE5pCf9uT0pb+xZ76T4S7MrY2YTVq918Q7Q2VQ3KCVQqYxM7nxuCK/SL3X97jBEIeKQ=="
|
"integrity": "sha512-tpu0hp+AOIzwdAHyZPzLE5pCf9uT0pb+xZ76T4S7MrY2YTVq918Q7Q2VQ3KCVQqYxM7nxuCK/SL3X97jBEIeKQ==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"@types/express": {
|
"@types/express": {
|
||||||
"version": "4.17.13",
|
"version": "4.17.13",
|
||||||
@ -11192,6 +11236,7 @@
|
|||||||
"version": "6.1.0",
|
"version": "6.1.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/cacheable-request/-/cacheable-request-6.1.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/cacheable-request/-/cacheable-request-6.1.0.tgz",
|
||||||
"integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
|
"integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"clone-response": "^1.0.2",
|
"clone-response": "^1.0.2",
|
||||||
"get-stream": "^5.1.0",
|
"get-stream": "^5.1.0",
|
||||||
@ -11206,6 +11251,7 @@
|
|||||||
"version": "5.2.0",
|
"version": "5.2.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/get-stream/-/get-stream-5.2.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/get-stream/-/get-stream-5.2.0.tgz",
|
||||||
"integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
|
"integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"pump": "^3.0.0"
|
"pump": "^3.0.0"
|
||||||
}
|
}
|
||||||
@ -11213,7 +11259,8 @@
|
|||||||
"lowercase-keys": {
|
"lowercase-keys": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
|
||||||
"integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA=="
|
"integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
|
||||||
|
"dev": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -11366,6 +11413,7 @@
|
|||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
"resolved": "https://verdaccio.lossless.one/clone-response/-/clone-response-1.0.3.tgz",
|
"resolved": "https://verdaccio.lossless.one/clone-response/-/clone-response-1.0.3.tgz",
|
||||||
"integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==",
|
"integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"mimic-response": "^1.0.0"
|
"mimic-response": "^1.0.0"
|
||||||
}
|
}
|
||||||
@ -11662,6 +11710,7 @@
|
|||||||
"version": "3.3.0",
|
"version": "3.3.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/decompress-response/-/decompress-response-3.3.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/decompress-response/-/decompress-response-3.3.0.tgz",
|
||||||
"integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
|
"integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"mimic-response": "^1.0.0"
|
"mimic-response": "^1.0.0"
|
||||||
}
|
}
|
||||||
@ -11675,7 +11724,8 @@
|
|||||||
"defer-to-connect": {
|
"defer-to-connect": {
|
||||||
"version": "1.1.3",
|
"version": "1.1.3",
|
||||||
"resolved": "https://verdaccio.lossless.one/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
|
"resolved": "https://verdaccio.lossless.one/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
|
||||||
"integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ=="
|
"integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"define-lazy-prop": {
|
"define-lazy-prop": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
@ -11745,6 +11795,7 @@
|
|||||||
"version": "5.4.0",
|
"version": "5.4.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/dns-packet/-/dns-packet-5.4.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/dns-packet/-/dns-packet-5.4.0.tgz",
|
||||||
"integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==",
|
"integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@leichtgewicht/ip-codec": "^2.0.1"
|
"@leichtgewicht/ip-codec": "^2.0.1"
|
||||||
}
|
}
|
||||||
@ -11753,6 +11804,7 @@
|
|||||||
"version": "4.2.2",
|
"version": "4.2.2",
|
||||||
"resolved": "https://verdaccio.lossless.one/dns-socket/-/dns-socket-4.2.2.tgz",
|
"resolved": "https://verdaccio.lossless.one/dns-socket/-/dns-socket-4.2.2.tgz",
|
||||||
"integrity": "sha512-BDeBd8najI4/lS00HSKpdFia+OvUMytaVjfzR9n5Lq8MlZRSvtbI+uLtx1+XmQFls5wFU9dssccTmQQ6nfpjdg==",
|
"integrity": "sha512-BDeBd8najI4/lS00HSKpdFia+OvUMytaVjfzR9n5Lq8MlZRSvtbI+uLtx1+XmQFls5wFU9dssccTmQQ6nfpjdg==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"dns-packet": "^5.2.4"
|
"dns-packet": "^5.2.4"
|
||||||
}
|
}
|
||||||
@ -11769,7 +11821,8 @@
|
|||||||
"duplexer3": {
|
"duplexer3": {
|
||||||
"version": "0.1.5",
|
"version": "0.1.5",
|
||||||
"resolved": "https://verdaccio.lossless.one/duplexer3/-/duplexer3-0.1.5.tgz",
|
"resolved": "https://verdaccio.lossless.one/duplexer3/-/duplexer3-0.1.5.tgz",
|
||||||
"integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA=="
|
"integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"ee-first": {
|
"ee-first": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
@ -11793,6 +11846,7 @@
|
|||||||
"version": "1.4.4",
|
"version": "1.4.4",
|
||||||
"resolved": "https://verdaccio.lossless.one/end-of-stream/-/end-of-stream-1.4.4.tgz",
|
"resolved": "https://verdaccio.lossless.one/end-of-stream/-/end-of-stream-1.4.4.tgz",
|
||||||
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
|
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"once": "^1.4.0"
|
"once": "^1.4.0"
|
||||||
}
|
}
|
||||||
@ -12500,6 +12554,7 @@
|
|||||||
"version": "9.6.0",
|
"version": "9.6.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/got/-/got-9.6.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/got/-/got-9.6.0.tgz",
|
||||||
"integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
|
"integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@sindresorhus/is": "^0.14.0",
|
"@sindresorhus/is": "^0.14.0",
|
||||||
"@szmarczak/http-timer": "^1.1.2",
|
"@szmarczak/http-timer": "^1.1.2",
|
||||||
@ -12518,6 +12573,7 @@
|
|||||||
"version": "4.1.0",
|
"version": "4.1.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/get-stream/-/get-stream-4.1.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/get-stream/-/get-stream-4.1.0.tgz",
|
||||||
"integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
|
"integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"pump": "^3.0.0"
|
"pump": "^3.0.0"
|
||||||
}
|
}
|
||||||
@ -12633,7 +12689,8 @@
|
|||||||
"http-cache-semantics": {
|
"http-cache-semantics": {
|
||||||
"version": "4.1.0",
|
"version": "4.1.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
|
||||||
"integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="
|
"integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"http-errors": {
|
"http-errors": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
@ -12678,6 +12735,7 @@
|
|||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://verdaccio.lossless.one/icmp/-/icmp-2.0.1.tgz",
|
"resolved": "https://verdaccio.lossless.one/icmp/-/icmp-2.0.1.tgz",
|
||||||
"integrity": "sha512-M7r2J6pjZOwZFSjsFNvYlWvtpVbCckwCd2EQSHc4Mzscwp9X7DUpnPcQiVceKI9YQ42INb53cMmgIzaRs87Jmg==",
|
"integrity": "sha512-M7r2J6pjZOwZFSjsFNvYlWvtpVbCckwCd2EQSHc4Mzscwp9X7DUpnPcQiVceKI9YQ42INb53cMmgIzaRs87Jmg==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"raw-socket": "^1.7.0"
|
"raw-socket": "^1.7.0"
|
||||||
}
|
}
|
||||||
@ -12739,7 +12797,8 @@
|
|||||||
"ip-regex": {
|
"ip-regex": {
|
||||||
"version": "4.3.0",
|
"version": "4.3.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/ip-regex/-/ip-regex-4.3.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/ip-regex/-/ip-regex-4.3.0.tgz",
|
||||||
"integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q=="
|
"integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"ipaddr.js": {
|
"ipaddr.js": {
|
||||||
"version": "1.9.1",
|
"version": "1.9.1",
|
||||||
@ -12796,6 +12855,7 @@
|
|||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/is-ip/-/is-ip-3.1.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/is-ip/-/is-ip-3.1.0.tgz",
|
||||||
"integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==",
|
"integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"ip-regex": "^4.0.0"
|
"ip-regex": "^4.0.0"
|
||||||
}
|
}
|
||||||
@ -12877,7 +12937,8 @@
|
|||||||
"isopen": {
|
"isopen": {
|
||||||
"version": "1.3.0",
|
"version": "1.3.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/isopen/-/isopen-1.3.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/isopen/-/isopen-1.3.0.tgz",
|
||||||
"integrity": "sha512-AN6Q9J0UlqHFl1fN/2xJCHCBLCBCFDjZhpGBO1gh3wzgRPsFSFBUL36I2Lbfd9qkuoj58axmE7j83iejTQsk8Q=="
|
"integrity": "sha512-AN6Q9J0UlqHFl1fN/2xJCHCBLCBCFDjZhpGBO1gh3wzgRPsFSFBUL36I2Lbfd9qkuoj58axmE7j83iejTQsk8Q==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"istanbul-lib-coverage": {
|
"istanbul-lib-coverage": {
|
||||||
"version": "3.2.0",
|
"version": "3.2.0",
|
||||||
@ -12946,7 +13007,8 @@
|
|||||||
"json-buffer": {
|
"json-buffer": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/json-buffer/-/json-buffer-3.0.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/json-buffer/-/json-buffer-3.0.0.tgz",
|
||||||
"integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
|
"integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"jsonfile": {
|
"jsonfile": {
|
||||||
"version": "6.1.0",
|
"version": "6.1.0",
|
||||||
@ -12971,6 +13033,7 @@
|
|||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/keyv/-/keyv-3.1.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/keyv/-/keyv-3.1.0.tgz",
|
||||||
"integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
|
"integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"json-buffer": "3.0.0"
|
"json-buffer": "3.0.0"
|
||||||
}
|
}
|
||||||
@ -13281,7 +13344,8 @@
|
|||||||
"lowercase-keys": {
|
"lowercase-keys": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://verdaccio.lossless.one/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
|
"resolved": "https://verdaccio.lossless.one/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
|
||||||
"integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA=="
|
"integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"lru-cache": {
|
"lru-cache": {
|
||||||
"version": "6.0.0",
|
"version": "6.0.0",
|
||||||
@ -13398,7 +13462,8 @@
|
|||||||
"mimic-response": {
|
"mimic-response": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://verdaccio.lossless.one/mimic-response/-/mimic-response-1.0.1.tgz",
|
"resolved": "https://verdaccio.lossless.one/mimic-response/-/mimic-response-1.0.1.tgz",
|
||||||
"integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
|
"integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"min-indent": {
|
"min-indent": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
@ -13440,7 +13505,8 @@
|
|||||||
"nan": {
|
"nan": {
|
||||||
"version": "2.14.2",
|
"version": "2.14.2",
|
||||||
"resolved": "https://verdaccio.lossless.one/nan/-/nan-2.14.2.tgz",
|
"resolved": "https://verdaccio.lossless.one/nan/-/nan-2.14.2.tgz",
|
||||||
"integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ=="
|
"integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"nanocolors": {
|
"nanocolors": {
|
||||||
"version": "0.2.13",
|
"version": "0.2.13",
|
||||||
@ -13503,7 +13569,8 @@
|
|||||||
"normalize-url": {
|
"normalize-url": {
|
||||||
"version": "4.5.1",
|
"version": "4.5.1",
|
||||||
"resolved": "https://verdaccio.lossless.one/normalize-url/-/normalize-url-4.5.1.tgz",
|
"resolved": "https://verdaccio.lossless.one/normalize-url/-/normalize-url-4.5.1.tgz",
|
||||||
"integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA=="
|
"integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"object-assign": {
|
"object-assign": {
|
||||||
"version": "4.1.1",
|
"version": "4.1.1",
|
||||||
@ -13540,6 +13607,7 @@
|
|||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/once/-/once-1.4.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/once/-/once-1.4.0.tgz",
|
||||||
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"wrappy": "1"
|
"wrappy": "1"
|
||||||
}
|
}
|
||||||
@ -13589,7 +13657,8 @@
|
|||||||
"p-cancelable": {
|
"p-cancelable": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/p-cancelable/-/p-cancelable-1.1.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/p-cancelable/-/p-cancelable-1.1.0.tgz",
|
||||||
"integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw=="
|
"integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"p-limit": {
|
"p-limit": {
|
||||||
"version": "2.3.0",
|
"version": "2.3.0",
|
||||||
@ -13771,7 +13840,8 @@
|
|||||||
"prepend-http": {
|
"prepend-http": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/prepend-http/-/prepend-http-2.0.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/prepend-http/-/prepend-http-2.0.0.tgz",
|
||||||
"integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc="
|
"integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"pretty-ms": {
|
"pretty-ms": {
|
||||||
"version": "7.0.1",
|
"version": "7.0.1",
|
||||||
@ -13824,6 +13894,7 @@
|
|||||||
"version": "4.0.4",
|
"version": "4.0.4",
|
||||||
"resolved": "https://verdaccio.lossless.one/public-ip/-/public-ip-4.0.4.tgz",
|
"resolved": "https://verdaccio.lossless.one/public-ip/-/public-ip-4.0.4.tgz",
|
||||||
"integrity": "sha512-EJ0VMV2vF6Cu7BIPo3IMW1Maq6ME+fbR0NcPmqDfpfNGIRPue1X8QrGjrg/rfjDkOsIkKHIf2S5FlEa48hFMTA==",
|
"integrity": "sha512-EJ0VMV2vF6Cu7BIPo3IMW1Maq6ME+fbR0NcPmqDfpfNGIRPue1X8QrGjrg/rfjDkOsIkKHIf2S5FlEa48hFMTA==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"dns-socket": "^4.2.2",
|
"dns-socket": "^4.2.2",
|
||||||
"got": "^9.6.0",
|
"got": "^9.6.0",
|
||||||
@ -13834,6 +13905,7 @@
|
|||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/pump/-/pump-3.0.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/pump/-/pump-3.0.0.tgz",
|
||||||
"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
|
"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"end-of-stream": "^1.1.0",
|
"end-of-stream": "^1.1.0",
|
||||||
"once": "^1.3.1"
|
"once": "^1.3.1"
|
||||||
@ -13935,6 +14007,7 @@
|
|||||||
"version": "1.7.0",
|
"version": "1.7.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/raw-socket/-/raw-socket-1.7.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/raw-socket/-/raw-socket-1.7.0.tgz",
|
||||||
"integrity": "sha512-mXqWihgwaFNmV5le0dWk5o+03M3A2zBIkC9BNaE6R0CJN9eYot++j2FIqgNSDq6/Vmu32PPI155SiiWNV2yyFQ==",
|
"integrity": "sha512-mXqWihgwaFNmV5le0dWk5o+03M3A2zBIkC9BNaE6R0CJN9eYot++j2FIqgNSDq6/Vmu32PPI155SiiWNV2yyFQ==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"nan": "2.14.*"
|
"nan": "2.14.*"
|
||||||
}
|
}
|
||||||
@ -14034,6 +14107,7 @@
|
|||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://verdaccio.lossless.one/responselike/-/responselike-1.0.2.tgz",
|
"resolved": "https://verdaccio.lossless.one/responselike/-/responselike-1.0.2.tgz",
|
||||||
"integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
|
"integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"lowercase-keys": "^1.0.0"
|
"lowercase-keys": "^1.0.0"
|
||||||
}
|
}
|
||||||
@ -14424,7 +14498,8 @@
|
|||||||
"systeminformation": {
|
"systeminformation": {
|
||||||
"version": "5.12.1",
|
"version": "5.12.1",
|
||||||
"resolved": "https://verdaccio.lossless.one/systeminformation/-/systeminformation-5.12.1.tgz",
|
"resolved": "https://verdaccio.lossless.one/systeminformation/-/systeminformation-5.12.1.tgz",
|
||||||
"integrity": "sha512-qAV0xSeSJlg0ZHmQ1T2rLrL54SATalBx6v4T8Sd5s17pEm6saX3LKzlPhfPx+EfT91y9yhRYnKhnMoLTFkxbqw=="
|
"integrity": "sha512-qAV0xSeSJlg0ZHmQ1T2rLrL54SATalBx6v4T8Sd5s17pEm6saX3LKzlPhfPx+EfT91y9yhRYnKhnMoLTFkxbqw==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"tar-fs": {
|
"tar-fs": {
|
||||||
"version": "2.1.1",
|
"version": "2.1.1",
|
||||||
@ -14485,7 +14560,8 @@
|
|||||||
"to-readable-stream": {
|
"to-readable-stream": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
|
||||||
"integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q=="
|
"integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"to-regex-range": {
|
"to-regex-range": {
|
||||||
"version": "5.0.1",
|
"version": "5.0.1",
|
||||||
@ -14687,6 +14763,7 @@
|
|||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://verdaccio.lossless.one/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
|
"resolved": "https://verdaccio.lossless.one/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
|
||||||
"integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
|
"integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"prepend-http": "^2.0.0"
|
"prepend-http": "^2.0.0"
|
||||||
}
|
}
|
||||||
@ -14801,7 +14878,8 @@
|
|||||||
"wrappy": {
|
"wrappy": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://verdaccio.lossless.one/wrappy/-/wrappy-1.0.2.tgz",
|
"resolved": "https://verdaccio.lossless.one/wrappy/-/wrappy-1.0.2.tgz",
|
||||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"ws": {
|
"ws": {
|
||||||
"version": "8.8.1",
|
"version": "8.8.1",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@pushrocks/smartproxy",
|
"name": "@pushrocks/smartproxy",
|
||||||
"version": "3.0.4",
|
"version": "3.0.35",
|
||||||
"private": false,
|
"private": false,
|
||||||
"description": "a proxy for handling high workloads of proxying",
|
"description": "a proxy for handling high workloads of proxying",
|
||||||
"main": "dist_ts/index.js",
|
"main": "dist_ts/index.js",
|
||||||
@ -11,7 +11,8 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "(tstest test/)",
|
"test": "(tstest test/)",
|
||||||
"build": "(tsbuild --web --allowimplicitany)",
|
"build": "(tsbuild --web --allowimplicitany)",
|
||||||
"format": "(gitzone format)"
|
"format": "(gitzone format)",
|
||||||
|
"buildDocs": "tsdoc"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@gitzone/tsbuild": "^2.1.63",
|
"@gitzone/tsbuild": "^2.1.63",
|
||||||
@ -21,9 +22,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@pushrocks/lik": "^6.0.0",
|
"@pushrocks/lik": "^6.0.0",
|
||||||
"@pushrocks/smartnetwork": "^3.0.0",
|
"@pushrocks/smartdelay": "^2.0.13",
|
||||||
"@pushrocks/smartpromise": "^3.1.7",
|
"@pushrocks/smartpromise": "^3.1.7",
|
||||||
"@pushrocks/smartrequest": "^2.0.0",
|
"@pushrocks/smartrequest": "^2.0.6",
|
||||||
"@pushrocks/smartstring": "^4.0.2",
|
"@pushrocks/smartstring": "^4.0.2",
|
||||||
"@tsclass/tsclass": "^4.0.17",
|
"@tsclass/tsclass": "^4.0.17",
|
||||||
"@types/ws": "^8.5.3",
|
"@types/ws": "^8.5.3",
|
||||||
|
@ -5,7 +5,7 @@ let testProxy: smartproxy.NetworkProxy;
|
|||||||
|
|
||||||
tap.test('first test', async () => {
|
tap.test('first test', async () => {
|
||||||
testProxy = new smartproxy.NetworkProxy({
|
testProxy = new smartproxy.NetworkProxy({
|
||||||
port: 3001
|
port: 3001,
|
||||||
});
|
});
|
||||||
expect(testProxy).toBeInstanceOf(smartproxy.NetworkProxy);
|
expect(testProxy).toBeInstanceOf(smartproxy.NetworkProxy);
|
||||||
});
|
});
|
||||||
|
@ -3,6 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
export const commitinfo = {
|
export const commitinfo = {
|
||||||
name: '@pushrocks/smartproxy',
|
name: '@pushrocks/smartproxy',
|
||||||
version: '3.0.4',
|
version: '3.0.35',
|
||||||
description: 'a proxy for handling high workloads of proxying'
|
description: 'a proxy for handling high workloads of proxying'
|
||||||
}
|
}
|
||||||
|
@ -1,2 +1,3 @@
|
|||||||
export * from './smartproxy.classes.networkproxy.js'
|
export * from './smartproxy.classes.networkproxy.js';
|
||||||
export * from './smartproxy.portproxy.js';
|
export * from './smartproxy.portproxy.js';
|
||||||
|
export * from './smartproxy.classes.sslredirect.js'
|
@ -6,7 +6,6 @@ export interface INetworkProxyOptions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class NetworkProxy {
|
export class NetworkProxy {
|
||||||
|
|
||||||
// INSTANCE
|
// INSTANCE
|
||||||
public options: INetworkProxyOptions;
|
public options: INetworkProxyOptions;
|
||||||
public proxyConfigs: plugins.tsclass.network.IReverseProxyConfig[] = [];
|
public proxyConfigs: plugins.tsclass.network.IReverseProxyConfig[] = [];
|
||||||
@ -117,36 +116,46 @@ JNj2Dr5H0XoLFFnvuvzcRbhlJ9J67JzR+7g=
|
|||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
async (req, res) => {
|
async (originRequest, originResponse) => {
|
||||||
console.log('got request');
|
|
||||||
const destinationConfig = this.router.routeReq(req);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* endRequest function
|
* endRequest function
|
||||||
* can be used to prematurely end a request
|
* can be used to prematurely end a request
|
||||||
*/
|
*/
|
||||||
const endRequest = (
|
const endOriginReqRes = (
|
||||||
statusArg: number = 404,
|
statusArg: number = 404,
|
||||||
messageArg: string = 'This route is not available on this server.',
|
messageArg: string = 'This route is not available on this server.',
|
||||||
headers: plugins.http.OutgoingHttpHeaders = {}
|
headers: plugins.http.OutgoingHttpHeaders = {}
|
||||||
) => {
|
) => {
|
||||||
res.writeHead(statusArg, messageArg);
|
originResponse.writeHead(statusArg, messageArg);
|
||||||
res.end(messageArg);
|
originResponse.end(messageArg);
|
||||||
|
if (originRequest.socket !== originResponse.socket) {
|
||||||
|
console.log('hey, something is strange.')
|
||||||
|
}
|
||||||
|
originResponse.destroy();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
console.log(`got request: ${originRequest.headers.host}${plugins.url.parse(originRequest.url).path}`);
|
||||||
|
const destinationConfig = this.router.routeReq(originRequest);
|
||||||
|
|
||||||
|
if (!destinationConfig) {
|
||||||
|
console.log(`${originRequest.headers.host} can't be routed properly. Terminating request.`);
|
||||||
|
endOriginReqRes();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// authentication
|
// authentication
|
||||||
if (destinationConfig.authentication) {
|
if (destinationConfig.authentication) {
|
||||||
const authInfo = destinationConfig.authentication;
|
const authInfo = destinationConfig.authentication;
|
||||||
switch (authInfo.type) {
|
switch (authInfo.type) {
|
||||||
case 'Basic':
|
case 'Basic':
|
||||||
const authHeader = req.headers.authorization;
|
const authHeader = originRequest.headers.authorization;
|
||||||
if (authHeader) {
|
if (authHeader) {
|
||||||
if (!authHeader.includes('Basic ')) {
|
if (!authHeader.includes('Basic ')) {
|
||||||
return endRequest(401, 'Authentication required', {
|
return endOriginReqRes(401, 'Authentication required', {
|
||||||
'WWW-Authenticate': 'Basic realm="Access to the staging site", charset="UTF-8"',
|
'WWW-Authenticate': 'Basic realm="Access to the staging site", charset="UTF-8"',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
const authStringBase64 = req.headers.authorization.replace('Basic ', '');
|
const authStringBase64 = originRequest.headers.authorization.replace('Basic ', '');
|
||||||
const authString: string = plugins.smartstring.base64.decode(authStringBase64);
|
const authString: string = plugins.smartstring.base64.decode(authStringBase64);
|
||||||
const userPassArray = authString.split(':');
|
const userPassArray = authString.split(':');
|
||||||
const user = userPassArray[0];
|
const user = userPassArray[0];
|
||||||
@ -154,12 +163,12 @@ JNj2Dr5H0XoLFFnvuvzcRbhlJ9J67JzR+7g=
|
|||||||
if (user === authInfo.user && pass === authInfo.pass) {
|
if (user === authInfo.user && pass === authInfo.pass) {
|
||||||
console.log('request successfully authenticated');
|
console.log('request successfully authenticated');
|
||||||
} else {
|
} else {
|
||||||
return endRequest(403, 'Forbidden: Wrong credentials');
|
return endOriginReqRes(403, 'Forbidden: Wrong credentials');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return endRequest(
|
return endOriginReqRes(
|
||||||
403,
|
403,
|
||||||
'Forbidden: unsupported authentication method configured. Please report to the admin.'
|
'Forbidden: unsupported authentication method configured. Please report to the admin.'
|
||||||
);
|
);
|
||||||
@ -168,42 +177,66 @@ JNj2Dr5H0XoLFFnvuvzcRbhlJ9J67JzR+7g=
|
|||||||
|
|
||||||
let destinationUrl: string;
|
let destinationUrl: string;
|
||||||
if (destinationConfig) {
|
if (destinationConfig) {
|
||||||
destinationUrl = `http://${destinationConfig.destinationIp}:${destinationConfig.destinationPort}${req.url}`;
|
destinationUrl = `http://${destinationConfig.destinationIp}:${destinationConfig.destinationPort}${originRequest.url}`;
|
||||||
} else {
|
} else {
|
||||||
return endRequest();
|
return endOriginReqRes();
|
||||||
}
|
}
|
||||||
console.log(destinationUrl);
|
console.log(destinationUrl);
|
||||||
const response = await plugins.smartrequest.request(
|
const proxyResponse = await plugins.smartrequest.request(
|
||||||
destinationUrl,
|
destinationUrl,
|
||||||
{
|
{
|
||||||
method: req.method,
|
method: originRequest.method,
|
||||||
headers: req.headers,
|
headers: originRequest.headers,
|
||||||
keepAlive: true,
|
keepAlive: true,
|
||||||
},
|
},
|
||||||
true, // lets make this streaming
|
true, // lets make this streaming
|
||||||
(request) => {
|
(proxyRequest) => {
|
||||||
req.on('data', (data) => {
|
originRequest.on('data', (data) => {
|
||||||
request.write(data);
|
proxyRequest.write(data);
|
||||||
});
|
});
|
||||||
req.on('end', (data) => {
|
originRequest.on('end', (data) => {
|
||||||
request.end();
|
proxyRequest.end();
|
||||||
});
|
});
|
||||||
|
originRequest.on('error', () => {
|
||||||
|
proxyRequest.end();
|
||||||
|
});
|
||||||
|
originRequest.on('close', () => {
|
||||||
|
proxyRequest.end();
|
||||||
|
});
|
||||||
|
originRequest.on('timeout', () => {
|
||||||
|
proxyRequest.end();
|
||||||
|
originRequest.destroy();
|
||||||
|
});
|
||||||
|
proxyRequest.on('error', () => {
|
||||||
|
endOriginReqRes();
|
||||||
|
})
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
res.statusCode = response.statusCode;
|
originResponse.statusCode = proxyResponse.statusCode;
|
||||||
console.log(response.statusCode);
|
console.log(proxyResponse.statusCode);
|
||||||
for (const defaultHeader of Object.keys(this.defaultHeaders)) {
|
for (const defaultHeader of Object.keys(this.defaultHeaders)) {
|
||||||
res.setHeader(defaultHeader, this.defaultHeaders[defaultHeader]);
|
originResponse.setHeader(defaultHeader, this.defaultHeaders[defaultHeader]);
|
||||||
}
|
}
|
||||||
for (const header of Object.keys(response.headers)) {
|
for (const header of Object.keys(proxyResponse.headers)) {
|
||||||
res.setHeader(header, response.headers[header]);
|
originResponse.setHeader(header, proxyResponse.headers[header]);
|
||||||
}
|
}
|
||||||
response.on('data', (data) => {
|
proxyResponse.on('data', (data) => {
|
||||||
res.write(data);
|
originResponse.write(data);
|
||||||
});
|
});
|
||||||
response.on('end', () => {
|
proxyResponse.on('end', () => {
|
||||||
res.end();
|
originResponse.end();
|
||||||
});
|
});
|
||||||
|
proxyResponse.on('error', () => {
|
||||||
|
originResponse.destroy();
|
||||||
|
});
|
||||||
|
proxyResponse.on('close', () => {
|
||||||
|
originResponse.end();
|
||||||
|
});
|
||||||
|
proxyResponse.on('timeout', () => {
|
||||||
|
originResponse.end();
|
||||||
|
originResponse.destroy()
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -211,53 +244,52 @@ JNj2Dr5H0XoLFFnvuvzcRbhlJ9J67JzR+7g=
|
|||||||
const wss = new plugins.ws.WebSocketServer({ server: this.httpsServer });
|
const wss = new plugins.ws.WebSocketServer({ server: this.httpsServer });
|
||||||
wss.on('connection', (ws: plugins.wsDefault) => {
|
wss.on('connection', (ws: plugins.wsDefault) => {
|
||||||
console.log('got connection for wsc');
|
console.log('got connection for wsc');
|
||||||
const wscConnected = plugins.smartpromise.defer();
|
let wscConnectedDeferred: plugins.smartpromise.Deferred<plugins.wsDefault>;
|
||||||
|
|
||||||
const wsc = new plugins.wsDefault(this.router.routeWs(ws), {
|
|
||||||
headers: {
|
|
||||||
Host: ws.url,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
wsc.on('open', () => {
|
|
||||||
wscConnected.resolve();
|
|
||||||
});
|
|
||||||
|
|
||||||
ws.on('message', async (message) => {
|
ws.on('message', async (message) => {
|
||||||
await wscConnected.promise;
|
if (!wscConnectedDeferred) {
|
||||||
|
wscConnectedDeferred = plugins.smartpromise.defer();
|
||||||
|
const wsc = new plugins.wsDefault(this.router.routeWs(ws), {
|
||||||
|
headers: {
|
||||||
|
Host: ws.url,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
wsc.on('open', () => {
|
||||||
|
wscConnectedDeferred.resolve(wsc);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const wsc = await wscConnectedDeferred.promise;
|
||||||
wsc.emit('message', message);
|
wsc.emit('message', message);
|
||||||
});
|
wsc.on('message', (message) => {
|
||||||
wsc.on('message', (message) => {
|
ws.emit('message', message);
|
||||||
ws.emit('message', message);
|
});
|
||||||
});
|
|
||||||
|
|
||||||
// handle closing
|
// handle closing
|
||||||
const cleanUp = () => {
|
const cleanUp = () => {
|
||||||
ws.removeAllListeners();
|
ws.terminate();
|
||||||
ws.close();
|
wsc.terminate();
|
||||||
ws.terminate();
|
};
|
||||||
wsc.removeAllListeners();
|
|
||||||
wsc.close();
|
|
||||||
wsc.terminate();
|
|
||||||
};
|
|
||||||
|
|
||||||
ws.on('close', (message) => {
|
ws.on('close', (message) => {
|
||||||
cleanUp();
|
cleanUp();
|
||||||
});
|
});
|
||||||
wsc.on('close', (message) => {
|
|
||||||
cleanUp();
|
wsc.on('close', (message) => {
|
||||||
|
cleanUp();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
this.httpsServer.keepAliveTimeout = 61000;
|
this.httpsServer.keepAliveTimeout = 61000;
|
||||||
this.httpsServer.headersTimeout = 65000;
|
this.httpsServer.headersTimeout = 65000;
|
||||||
|
|
||||||
this.httpsServer.on('connection', (connection: plugins.net.Socket) => {
|
this.httpsServer.on('connection', (connection: plugins.net.Socket) => {
|
||||||
connection.setTimeout(120000);
|
|
||||||
this.socketMap.add(connection);
|
this.socketMap.add(connection);
|
||||||
|
console.log(`added connection. now ${this.socketMap.getArray().length} sockets connected.`);
|
||||||
const cleanupConnection = () => {
|
const cleanupConnection = () => {
|
||||||
if (this.socketMap.checkForObject(connection)) {
|
if (this.socketMap.checkForObject(connection)) {
|
||||||
this.socketMap.remove(connection);
|
this.socketMap.remove(connection);
|
||||||
connection.end();
|
console.log(`removed connection. ${this.socketMap.getArray().length} sockets remaining.`);
|
||||||
connection.removeAllListeners();
|
|
||||||
connection.destroy();
|
connection.destroy();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -272,14 +304,17 @@ JNj2Dr5H0XoLFFnvuvzcRbhlJ9J67JzR+7g=
|
|||||||
});
|
});
|
||||||
connection.on('timeout', () => {
|
connection.on('timeout', () => {
|
||||||
cleanupConnection();
|
cleanupConnection();
|
||||||
});
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
this.httpsServer.listen(this.options.port);
|
this.httpsServer.listen(this.options.port);
|
||||||
console.log(`ProxyWorker -> OK: now listening for new connections on port ${this.options.port}`);
|
console.log(
|
||||||
|
`ProxyWorker -> OK: now listening for new connections on port ${this.options.port}`
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async updateProxyConfigs(proxyConfigsArg: plugins.tsclass.network.IReverseProxyConfig[]) {
|
public async updateProxyConfigs(proxyConfigsArg: plugins.tsclass.network.IReverseProxyConfig[]) {
|
||||||
|
console.log(`got new proxy configs`);
|
||||||
this.proxyConfigs = proxyConfigsArg;
|
this.proxyConfigs = proxyConfigsArg;
|
||||||
this.router.setNewProxyConfigs(proxyConfigsArg);
|
this.router.setNewProxyConfigs(proxyConfigsArg);
|
||||||
for (const hostCandidate of this.proxyConfigs) {
|
for (const hostCandidate of this.proxyConfigs) {
|
||||||
@ -306,13 +341,9 @@ JNj2Dr5H0XoLFFnvuvzcRbhlJ9J67JzR+7g=
|
|||||||
});
|
});
|
||||||
this.httpsServer;
|
this.httpsServer;
|
||||||
}
|
}
|
||||||
/* this.httpsServer.close();
|
|
||||||
this.httpsServer.listen(this.port); */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public async addDefaultHeaders(headersArg: {
|
public async addDefaultHeaders(headersArg: { [key: string]: string }) {
|
||||||
[key: string]: string;
|
|
||||||
}) {
|
|
||||||
for (const headerKey of Object.keys(headersArg)) {
|
for (const headerKey of Object.keys(headersArg)) {
|
||||||
this.defaultHeaders[headerKey] = headersArg[headerKey];
|
this.defaultHeaders[headerKey] = headersArg[headerKey];
|
||||||
}
|
}
|
||||||
|
32
ts/smartproxy.classes.sslredirect.ts
Normal file
32
ts/smartproxy.classes.sslredirect.ts
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
import * as plugins from './smartproxy.plugins.js';
|
||||||
|
|
||||||
|
export class SslRedirect {
|
||||||
|
httpServer: plugins.http.Server;
|
||||||
|
port: number;
|
||||||
|
constructor(portArg: number) {
|
||||||
|
this.port = portArg;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async start() {
|
||||||
|
this.httpServer = plugins.http.createServer((request, response) => {
|
||||||
|
const requestUrl = new URL(request.url, `http://${request.headers.host}`);
|
||||||
|
const completeUrlWithoutProtocol = `${requestUrl.host}${requestUrl.pathname}${requestUrl.search}`;
|
||||||
|
const redirectUrl = `https://${completeUrlWithoutProtocol}`;
|
||||||
|
console.log(`Got http request for http://${completeUrlWithoutProtocol}`);
|
||||||
|
console.log(`Redirecting to ${redirectUrl}`);
|
||||||
|
response.writeHead(302, {
|
||||||
|
Location: redirectUrl,
|
||||||
|
});
|
||||||
|
response.end();
|
||||||
|
});
|
||||||
|
this.httpServer.listen(this.port);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async stop() {
|
||||||
|
const done = plugins.smartpromise.defer();
|
||||||
|
this.httpServer.close(() => {
|
||||||
|
done.resolve();
|
||||||
|
});
|
||||||
|
await done.promise;
|
||||||
|
}
|
||||||
|
}
|
@ -13,11 +13,12 @@ export { tsclass };
|
|||||||
|
|
||||||
// pushrocks scope
|
// pushrocks scope
|
||||||
import * as lik from '@pushrocks/lik';
|
import * as lik from '@pushrocks/lik';
|
||||||
|
import * as smartdelay from '@pushrocks/smartdelay';
|
||||||
import * as smartpromise from '@pushrocks/smartpromise';
|
import * as smartpromise from '@pushrocks/smartpromise';
|
||||||
import * as smartrequest from '@pushrocks/smartrequest';
|
import * as smartrequest from '@pushrocks/smartrequest';
|
||||||
import * as smartstring from '@pushrocks/smartstring';
|
import * as smartstring from '@pushrocks/smartstring';
|
||||||
|
|
||||||
export { lik, smartrequest, smartpromise, smartstring };
|
export { lik, smartdelay, smartrequest, smartpromise, smartstring };
|
||||||
|
|
||||||
// third party scope
|
// third party scope
|
||||||
import * as ws from 'ws';
|
import * as ws from 'ws';
|
||||||
|
@ -1,30 +1,17 @@
|
|||||||
import * as plugins from './smartproxy.plugins.js';
|
import * as plugins from './smartproxy.plugins.js';
|
||||||
import * as net from 'net';
|
import * as net from 'net';
|
||||||
let netServer: plugins.net.Server;
|
|
||||||
let httpServer: plugins.http.Server;
|
|
||||||
|
|
||||||
export class PortProxy {
|
export class PortProxy {
|
||||||
|
netServer: plugins.net.Server;
|
||||||
fromPort: number;
|
fromPort: number;
|
||||||
toPort: number;
|
toPort: number;
|
||||||
|
|
||||||
constructor(fromPortArg: number, toPortArg: number) {
|
constructor(fromPortArg: number, toPortArg: number) {
|
||||||
this.fromPort = fromPortArg;
|
this.fromPort = fromPortArg;
|
||||||
this.toPort = toPortArg
|
this.toPort = toPortArg;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async start () {
|
public async start() {
|
||||||
httpServer = plugins.http.createServer((request, response) => {
|
|
||||||
const requestUrl = new URL(request.url, `http://${request.headers.host}`);
|
|
||||||
const completeUrlWithoutProtocol = `${requestUrl.host}${requestUrl.pathname}${requestUrl.search}`;
|
|
||||||
const redirectUrl = `https://${completeUrlWithoutProtocol}`;
|
|
||||||
console.log(`Got http request for http://${completeUrlWithoutProtocol}`);
|
|
||||||
console.log(`Redirecting to ${redirectUrl}`);
|
|
||||||
response.writeHead(302, {
|
|
||||||
Location: redirectUrl,
|
|
||||||
});
|
|
||||||
response.end();
|
|
||||||
});
|
|
||||||
httpServer.listen(this.fromPort);
|
|
||||||
const cleanUpSockets = (from: plugins.net.Socket, to: plugins.net.Socket) => {
|
const cleanUpSockets = (from: plugins.net.Socket, to: plugins.net.Socket) => {
|
||||||
from.end();
|
from.end();
|
||||||
to.end();
|
to.end();
|
||||||
@ -34,8 +21,8 @@ export class PortProxy {
|
|||||||
to.unpipe();
|
to.unpipe();
|
||||||
from.destroy();
|
from.destroy();
|
||||||
to.destroy();
|
to.destroy();
|
||||||
}
|
};
|
||||||
netServer = net
|
this.netServer = net
|
||||||
.createServer((from) => {
|
.createServer((from) => {
|
||||||
const to = net.createConnection({
|
const to = net.createConnection({
|
||||||
host: 'localhost',
|
host: 'localhost',
|
||||||
@ -64,10 +51,10 @@ export class PortProxy {
|
|||||||
});
|
});
|
||||||
from.on('end', () => {
|
from.on('end', () => {
|
||||||
cleanUpSockets(from, to);
|
cleanUpSockets(from, to);
|
||||||
})
|
});
|
||||||
to.on('end', () => {
|
to.on('end', () => {
|
||||||
cleanUpSockets(from, to);
|
cleanUpSockets(from, to);
|
||||||
})
|
});
|
||||||
})
|
})
|
||||||
.listen(this.fromPort);
|
.listen(this.fromPort);
|
||||||
console.log(`PortProxy -> OK: Now listening on port ${this.fromPort}`);
|
console.log(`PortProxy -> OK: Now listening on port ${this.fromPort}`);
|
||||||
@ -75,11 +62,9 @@ export class PortProxy {
|
|||||||
|
|
||||||
public async stop() {
|
public async stop() {
|
||||||
const done = plugins.smartpromise.defer();
|
const done = plugins.smartpromise.defer();
|
||||||
httpServer.close(() => {
|
this.netServer.close(() => {
|
||||||
netServer.close(() => {
|
done.resolve();
|
||||||
done.resolve();
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
await done.promise;
|
await done.promise;
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
Reference in New Issue
Block a user