@pinnacle0/webpack-util 0.5.3 → 0.5.5

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.
package/package.json CHANGED
@@ -1,32 +1,33 @@
1
1
  {
2
2
  "name": "@pinnacle0/webpack-util",
3
- "version": "0.5.3",
3
+ "version": "0.5.5",
4
4
  "license": "MIT",
5
5
  "main": "src/index.js",
6
6
  "dependencies": {
7
- "@pmmmwh/react-refresh-webpack-plugin": "0.5.10",
8
- "@swc/core": "1.3.68",
9
- "autoprefixer": "10.4.14",
10
- "browserslist": "4.21.9",
7
+ "@pmmmwh/react-refresh-webpack-plugin": "0.5.11",
8
+ "@swc/core": "1.3.78",
9
+ "autoprefixer": "10.4.15",
10
+ "browserslist": "4.21.10",
11
11
  "chalk": "4.1.2",
12
12
  "css-loader": "6.8.1",
13
13
  "css-minimizer-webpack-plugin": "5.0.1",
14
14
  "fork-ts-checker-webpack-plugin": "8.0.0",
15
15
  "fs-extra": "11.1.1",
16
16
  "html-webpack-plugin": "5.5.3",
17
- "less": "4.1.3",
17
+ "less": "4.2.0",
18
18
  "less-loader": "11.1.3",
19
- "lightningcss": "1.21.5",
19
+ "lightningcss": "1.21.7",
20
20
  "mini-css-extract-plugin": "2.7.6",
21
21
  "pretty-format": "29.6.1",
22
22
  "react-refresh": "0.14.0",
23
+ "socks-proxy-agent": "8.0.1",
23
24
  "style-loader": "3.3.3",
24
25
  "swc-loader": "0.2.3",
26
+ "swc-plugin-core-fe-hmr": "1.0.3",
25
27
  "terser-webpack-plugin": "5.3.9",
26
- "webpack": "5.88.1",
28
+ "webpack": "5.88.2",
27
29
  "webpack-dev-server": "4.15.1",
28
- "yargs": "17.7.2",
29
- "swc-plugin-core-fe-hmr": "1.0.3"
30
+ "yargs": "17.7.2"
30
31
  },
31
32
  "peerDependencies": {
32
33
  "typescript": "*",
@@ -0,0 +1,13 @@
1
+ interface ProxySettings {
2
+ server: string;
3
+ port: number;
4
+ }
5
+ /**
6
+ * Create a socks proxy agent.
7
+ * getSocketsProxySettings only work on Mac, (sorry for windows and linux user)
8
+ */
9
+ export declare class SystemProxySettingsUtil {
10
+ static get(): ProxySettings | null;
11
+ private static parseRawWebProxySettings;
12
+ }
13
+ export {};
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SystemProxySettingsUtil = void 0;
7
+ const os_1 = __importDefault(require("os"));
8
+ const child_process_1 = require("child_process");
9
+ /**
10
+ * Create a socks proxy agent.
11
+ * getSocketsProxySettings only work on Mac, (sorry for windows and linux user)
12
+ */
13
+ class SystemProxySettingsUtil {
14
+ static get() {
15
+ if (os_1.default.platform() !== "darwin")
16
+ return null;
17
+ const which = (0, child_process_1.spawnSync)("which", ["networksetup"]);
18
+ if (which.status !== 0)
19
+ return null;
20
+ const bin = which.stdout.toString().trim();
21
+ const listDevices = (0, child_process_1.spawnSync)(bin, ["-listallnetworkservices"]);
22
+ if (listDevices.status !== 0)
23
+ return null;
24
+ const devices = listDevices.stdout.toString().trim().split("\n").slice(1);
25
+ for (const device of devices) {
26
+ const getSettings = (0, child_process_1.spawnSync)(bin, ["-getwebproxy", device]);
27
+ if (getSettings.status !== 0)
28
+ continue;
29
+ const settings = this.parseRawWebProxySettings(getSettings.stdout.toString().trim());
30
+ if (settings)
31
+ return settings;
32
+ }
33
+ return null;
34
+ }
35
+ static parseRawWebProxySettings(raw) {
36
+ const setting = raw.split("\n").reduce((settings, line) => {
37
+ const [key, value] = line.split(":").map(s => s.trim());
38
+ if (key === "Enabled") {
39
+ settings.enabled = value === "Yes";
40
+ }
41
+ else if (key === "Server") {
42
+ settings.server = value;
43
+ }
44
+ else if (key === "Port") {
45
+ settings.port = Number(value);
46
+ }
47
+ return settings;
48
+ }, {});
49
+ return setting.enabled ? { server: setting.server, port: setting.port } : null;
50
+ }
51
+ }
52
+ exports.SystemProxySettingsUtil = SystemProxySettingsUtil;
53
+ //# sourceMappingURL=SystemProxySettingsUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SystemProxySettingsUtil.js","sourceRoot":"","sources":["../../src/SystemProxySettingsUtil.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,iDAAwC;AAOxC;;;GAGG;AACH,MAAa,uBAAuB;IAChC,MAAM,CAAC,GAAG;QACN,IAAI,YAAE,CAAC,QAAQ,EAAE,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE5C,MAAM,KAAK,GAAG,IAAA,yBAAS,EAAC,OAAO,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;QACnD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACpC,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAE3C,MAAM,WAAW,GAAG,IAAA,yBAAS,EAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAChE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1C,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE1E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC1B,MAAM,WAAW,GAAG,IAAA,yBAAS,EAAC,GAAG,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;YAC7D,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YACrF,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC;SACjC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,wBAAwB,CAAC,GAAW;QAC/C,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAClC,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE;YACf,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACxD,IAAI,GAAG,KAAK,SAAS,EAAE;gBACnB,QAAQ,CAAC,OAAO,GAAG,KAAK,KAAK,KAAK,CAAC;aACtC;iBAAM,IAAI,GAAG,KAAK,QAAQ,EAAE;gBACzB,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC;aAC3B;iBAAM,IAAI,GAAG,KAAK,MAAM,EAAE;gBACvB,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;aACjC;YACD,OAAO,QAAQ,CAAC;QACpB,CAAC,EACD,EAAwC,CAC3C,CAAC;QAEF,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjF,CAAC;CACJ;AAvCD,0DAuCC"}
@@ -5,6 +5,11 @@ export interface WebpackServerStarterOptions extends Pick<WebpackConfigGenerator
5
5
  apiProxy?: {
6
6
  target: string;
7
7
  context: string[];
8
+ /**
9
+ * Use system socks proxy for all the api requests, you can also specify a socks proxy url, eg: socks5://127.0.0.1:1086
10
+ * Default: true
11
+ */
12
+ useSystemSocksProxy?: boolean | string;
8
13
  };
9
14
  interceptExpressApp?: (app: NonNullable<DevServer["app"]>) => void;
10
15
  }
@@ -25,4 +30,5 @@ export declare class WebpackServerStarter {
25
30
  constructor({ projectDirectory, port, apiProxy, interceptExpressApp, dynamicPathResolvers, extraEntries, prioritizedExtensionPrefixes, defineVars, extraExtensionsForOtherRule, tsconfigFilePath, tsconfigFilename, }: WebpackServerStarterOptions);
26
31
  run(): Promise<void>;
27
32
  private createDevServerInstance;
33
+ private createAPISocksProxyAgent;
28
34
  }
@@ -18,6 +18,8 @@ const path_1 = __importDefault(require("path"));
18
18
  const webpack_1 = __importDefault(require("webpack"));
19
19
  const webpack_dev_server_1 = __importDefault(require("webpack-dev-server"));
20
20
  const WebpackConfigGenerator_1 = require("./WebpackConfigGenerator");
21
+ const socks_proxy_agent_1 = require("socks-proxy-agent");
22
+ const SystemProxySettingsUtil_1 = require("./SystemProxySettingsUtil");
21
23
  /**
22
24
  * Start webpack dev server, by creating WebpackServerStarter instance and then run.
23
25
  *
@@ -27,12 +29,14 @@ const WebpackConfigGenerator_1 = require("./WebpackConfigGenerator");
27
29
  */
28
30
  class WebpackServerStarter {
29
31
  constructor({ projectDirectory, port, apiProxy, interceptExpressApp, dynamicPathResolvers, extraEntries, prioritizedExtensionPrefixes, defineVars, extraExtensionsForOtherRule, tsconfigFilePath, tsconfigFilename, }) {
32
+ var _a;
30
33
  this.logger = devtool_util_1.Utility.createConsoleLogger("WebpackServerStarter");
31
34
  this.devServerConfigContentBase = path_1.default.join(projectDirectory, "static");
32
35
  this.port = port;
33
36
  this.apiProxy = apiProxy
34
37
  ? [
35
38
  {
39
+ agent: this.createAPISocksProxyAgent((_a = apiProxy.useSystemSocksProxy) !== null && _a !== void 0 ? _a : true),
36
40
  context: apiProxy.context,
37
41
  target: apiProxy.target,
38
42
  secure: false,
@@ -113,6 +117,20 @@ class WebpackServerStarter {
113
117
  proxy: this.apiProxy,
114
118
  }, (0, webpack_1.default)(this.webpackConfig));
115
119
  }
120
+ createAPISocksProxyAgent(useSocksProxy) {
121
+ if (useSocksProxy === false)
122
+ return null;
123
+ if (typeof useSocksProxy === "string") {
124
+ this.logger.info(["Using socks proxy:", useSocksProxy]);
125
+ return new socks_proxy_agent_1.SocksProxyAgent(useSocksProxy);
126
+ }
127
+ const settings = SystemProxySettingsUtil_1.SystemProxySettingsUtil.get();
128
+ if (!settings)
129
+ return null;
130
+ const url = `socks://${settings.server}:${settings.port}`;
131
+ this.logger.info(["Using socks proxy:", url]);
132
+ return new socks_proxy_agent_1.SocksProxyAgent(url);
133
+ }
116
134
  }
117
135
  exports.WebpackServerStarter = WebpackServerStarter;
118
136
  //# sourceMappingURL=WebpackServerStarter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WebpackServerStarter.js","sourceRoot":"","sources":["../../src/WebpackServerStarter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebpackServerStarter.js","sourceRoot":"","sources":["../../src/WebpackServerStarter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,0DAAgD;AAChD,gDAAwB;AACxB,sDAA8B;AAC9B,4EAA2C;AAC3C,qEAAgE;AAChE,yDAAkD;AAClD,uEAAkE;AAwBlE;;;;;;GAMG;AAEH,MAAa,oBAAoB;IAQ7B,YAAY,EACR,gBAAgB,EAChB,IAAI,EACJ,QAAQ,EACR,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,4BAA4B,EAC5B,UAAU,EACV,2BAA2B,EAC3B,gBAAgB,EAChB,gBAAgB,GACU;;QAfb,WAAM,GAAG,sBAAO,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;QAgB1E,IAAI,CAAC,0BAA0B,GAAG,cAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ;YACpB,CAAC,CAAC;gBACI;oBACI,KAAK,EAAE,IAAI,CAAC,wBAAwB,CAAC,MAAA,QAAQ,CAAC,mBAAmB,mCAAI,IAAI,CAAC;oBAC1E,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,MAAM,EAAE,KAAK;oBACb,YAAY,EAAE,IAAI;iBACrB;aACJ;YACH,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,CAAC,gBAAgB;YACjB,mBAAmB;gBACnB,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,EAAE;oBACxB,SAAS,CAAC,GAAG,IAAI,mBAAmB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;oBACpD,OAAO,WAAW,CAAC;gBACvB,CAAC,CAAC,CAAC;QACP,IAAI,CAAC,aAAa,GAAG,IAAI,+CAAsB,CAAC;YAC5C,gBAAgB;YAChB,oBAAoB;YACpB,YAAY;YACZ,4BAA4B;YAC5B,UAAU;YACV,2BAA2B;YAC3B,gBAAgB;YAChB,gBAAgB;SACnB,CAAC,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEK,GAAG;;YACL,IAAI;gBACA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,6BAA6B,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACrE,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC9C,MAAM,OAAO,GAAqB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACxD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;oBAC1B,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;wBACpB,gCAAgC;wBAChC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;wBAC9B,OAAO,CAAC,IAAI,EAAE,CAAC;oBACnB,CAAC,CAAC,CAAC;iBACN;gBACD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;aACxB;YAAC,OAAO,CAAC,EAAE;gBACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACrB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACnB;QACL,CAAC;KAAA;IAEO,uBAAuB;QAC3B,OAAO,IAAI,4BAAS,CAChB;YACI,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE;gBACJ,SAAS,EAAE,IAAI,CAAC,0BAA0B,EAAE,gCAAgC;aAC/E;YACD,kBAAkB,EAAE,IAAI;YACxB,MAAM,EAAE;gBACJ,IAAI,EAAE,OAAO;aAChB;YACD,QAAQ,EAAE,IAAI;YACd,GAAG,EAAE,IAAI;YACT,MAAM,EAAE;gBACJ,OAAO,EAAE;oBACL,MAAM,EAAE,IAAI;iBACf;aACJ;YACD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,aAAa,EAAE;gBACX,KAAK,EAAE;oBACH,MAAM,EAAE,IAAI;oBACZ,kIAAkI;oBAClI,GAAG,EAAE,KAAK;oBACV,MAAM,EAAE,IAAI;oBACZ,WAAW,EAAE,IAAI;oBACjB,QAAQ,EAAE,IAAI;oBACd,aAAa,EAAE,IAAI;oBACnB,OAAO,EAAE,MAAM;iBAClB;aACJ;YACD,KAAK,EAAE,IAAI,CAAC,QAAQ;SACvB,EACD,IAAA,iBAAO,EAAC,IAAI,CAAC,aAAa,CAAC,CAC9B,CAAC;IACN,CAAC;IAEO,wBAAwB,CAAC,aAA+B;QAC5D,IAAI,aAAa,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QAEzC,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;YACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC,CAAC;YACxD,OAAO,IAAI,mCAAe,CAAC,aAAa,CAAC,CAAC;SAC7C;QAED,MAAM,QAAQ,GAAG,iDAAuB,CAAC,GAAG,EAAE,CAAC;QAC/C,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3B,MAAM,GAAG,GAAG,WAAW,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9C,OAAO,IAAI,mCAAe,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;CACJ;AA5HD,oDA4HC"}