unplugin-https-reverse-proxy 1.0.0-beta.4 → 1.0.0-beta.7
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/README.md +9 -0
- package/dist/{chunk-GAKOA5LE.js → chunk-IUFVJYJ5.js} +69 -61
- package/dist/esbuild.cjs +70 -62
- package/dist/esbuild.js +1 -1
- package/dist/index.cjs +70 -62
- package/dist/index.js +1 -1
- package/dist/nuxt.cjs +44 -29
- package/dist/nuxt.js +3 -3
- package/dist/rollup.cjs +70 -62
- package/dist/rollup.js +1 -1
- package/dist/vite.cjs +70 -62
- package/dist/vite.js +1 -1
- package/dist/webpack.cjs +70 -62
- package/dist/webpack.js +1 -1
- package/package.json +2 -1
- package/src/caddy/constants.ts +11 -1
- package/src/caddy/index.ts +28 -5
- package/src/index.ts +51 -74
- package/src/nuxt.ts +3 -3
package/dist/vite.cjs
CHANGED
|
@@ -51,7 +51,6 @@ var import_unplugin2 = require("unplugin");
|
|
|
51
51
|
|
|
52
52
|
// src/index.ts
|
|
53
53
|
var import_node_process5 = __toESM(require("process"), 1);
|
|
54
|
-
var import_node_fs3 = require("fs");
|
|
55
54
|
var import_unplugin = require("unplugin");
|
|
56
55
|
var import_picocolors = __toESM(require("picocolors"), 1);
|
|
57
56
|
|
|
@@ -95,7 +94,7 @@ function isAdmin() {
|
|
|
95
94
|
}
|
|
96
95
|
|
|
97
96
|
// src/caddy/index.ts
|
|
98
|
-
var
|
|
97
|
+
var import_node_os2 = require("os");
|
|
99
98
|
var import_node_process4 = __toESM(require("process"), 1);
|
|
100
99
|
var import_node_fs2 = require("fs");
|
|
101
100
|
var import_node_child_process3 = require("child_process");
|
|
@@ -153,8 +152,16 @@ async function removeHost(ip, host) {
|
|
|
153
152
|
|
|
154
153
|
// src/caddy/constants.ts
|
|
155
154
|
var import_node_path2 = require("path");
|
|
155
|
+
var import_node_os = __toESM(require("os"), 1);
|
|
156
156
|
var import_node_process3 = __toESM(require("process"), 1);
|
|
157
|
-
var
|
|
157
|
+
var import_dotenv_flow = __toESM(require("dotenv-flow"), 1);
|
|
158
|
+
import_dotenv_flow.default.config();
|
|
159
|
+
function resolvePath(path2) {
|
|
160
|
+
if (path2.startsWith("~"))
|
|
161
|
+
return (0, import_node_path2.join)(import_node_os.default.homedir() || "", path2.slice(1));
|
|
162
|
+
return path2;
|
|
163
|
+
}
|
|
164
|
+
var TEMP_DIR = resolvePath(import_node_process3.default.env.UHRP_CADDY_PATH || import_node_process3.default.env.TEMP || import_node_process3.default.env.TMPDIR || "/tmp");
|
|
158
165
|
var caddyPath = (0, import_node_path2.join)(TEMP_DIR, `caddy${import_node_process3.default.platform === "win32" ? ".exe" : ""}`);
|
|
159
166
|
var caddyFilePath = (0, import_node_path2.join)(TEMP_DIR, "CADDYFILE");
|
|
160
167
|
var supportList = [
|
|
@@ -328,8 +335,12 @@ async function download() {
|
|
|
328
335
|
if (await testCaddy())
|
|
329
336
|
return caddyPath;
|
|
330
337
|
return new Promise((resolve, reject) => {
|
|
338
|
+
if (!(0, import_node_fs2.existsSync)(TEMP_DIR)) {
|
|
339
|
+
(0, import_node_fs2.mkdirSync)(TEMP_DIR, { recursive: true });
|
|
340
|
+
(0, import_node_fs2.chmodSync)(TEMP_DIR, 511);
|
|
341
|
+
}
|
|
331
342
|
const file = (0, import_node_fs2.createWriteStream)(caddyPath);
|
|
332
|
-
let _platform = (0,
|
|
343
|
+
let _platform = (0, import_node_os2.platform)().toString();
|
|
333
344
|
_platform === "win32" && (_platform = "windows");
|
|
334
345
|
let _arch = import_node_process4.default.arch.toString();
|
|
335
346
|
_arch === "x64" && (_arch = "amd64");
|
|
@@ -342,6 +353,9 @@ async function download() {
|
|
|
342
353
|
const httpsProxy = import_node_process4.default.env.HTTPS_PROXY || import_node_process4.default.env.https_proxy;
|
|
343
354
|
const httpAgent = httpProxy ? new import_http_proxy_agent.HttpProxyAgent(httpProxy) : void 0;
|
|
344
355
|
const httpsAgent = httpsProxy ? new import_https_proxy_agent.HttpsProxyAgent(httpsProxy) : void 0;
|
|
356
|
+
const chmodCaddyOnce = once(() => {
|
|
357
|
+
(0, import_node_fs2.chmodSync)(caddyPath, 511);
|
|
358
|
+
});
|
|
345
359
|
import_got_cjs.got.stream(dowmloadLink, {
|
|
346
360
|
agent: {
|
|
347
361
|
http: httpAgent,
|
|
@@ -349,11 +363,12 @@ async function download() {
|
|
|
349
363
|
}
|
|
350
364
|
}).on("downloadProgress", (progress) => {
|
|
351
365
|
logProgress(progress.percent);
|
|
366
|
+
chmodCaddyOnce();
|
|
352
367
|
}).pipe(file).on("finish", () => {
|
|
353
368
|
logProgressOver();
|
|
354
369
|
if (import_node_process4.default.platform === "win32")
|
|
355
370
|
return resolve(caddyPath);
|
|
356
|
-
(0, import_node_fs2.chmodSync)(caddyPath,
|
|
371
|
+
(0, import_node_fs2.chmodSync)(caddyPath, 511);
|
|
357
372
|
resolve(caddyPath);
|
|
358
373
|
}).on("error", (err) => {
|
|
359
374
|
reject(err);
|
|
@@ -364,7 +379,7 @@ function testCaddy() {
|
|
|
364
379
|
return new Promise((resolve, reject) => {
|
|
365
380
|
if (!(0, import_node_fs2.existsSync)(caddyPath))
|
|
366
381
|
return resolve(false);
|
|
367
|
-
(0, import_node_fs2.chmodSync)(caddyPath,
|
|
382
|
+
(0, import_node_fs2.chmodSync)(caddyPath, 511);
|
|
368
383
|
const child = import_node_process4.default.platform === "win32" ? (0, import_node_child_process3.spawn)(caddyPath, []) : (0, import_node_child_process3.spawn)("sudo", ["-E", caddyPath]);
|
|
369
384
|
child.on("close", () => {
|
|
370
385
|
return resolve(false);
|
|
@@ -439,6 +454,16 @@ var CaddyInstant = class {
|
|
|
439
454
|
const port = Number(source.split(":")[1]);
|
|
440
455
|
if (!Number.isNaN(port) && await tryPort(port))
|
|
441
456
|
await (0, import_kill_port.default)(port, "tcp");
|
|
457
|
+
const pwd2 = import_node_process4.default.cwd();
|
|
458
|
+
const viteCacheDir = `${pwd2}/node_modules/.vite`;
|
|
459
|
+
if ((0, import_node_fs2.existsSync)(viteCacheDir))
|
|
460
|
+
chmodRecursive(viteCacheDir, 511);
|
|
461
|
+
const nuxtCacheDir = `${pwd2}/.nuxt`;
|
|
462
|
+
if ((0, import_node_fs2.existsSync)(nuxtCacheDir))
|
|
463
|
+
await chmodRecursive(nuxtCacheDir, 511);
|
|
464
|
+
const webpackCacheDir = `${pwd2}/node_modules/.cache`;
|
|
465
|
+
if ((0, import_node_fs2.existsSync)(webpackCacheDir))
|
|
466
|
+
chmodRecursive(webpackCacheDir, 511);
|
|
442
467
|
if (!restore || this.stoped)
|
|
443
468
|
return originalExit(code);
|
|
444
469
|
try {
|
|
@@ -480,27 +505,17 @@ var caddy;
|
|
|
480
505
|
var pwd = import_node_process5.default.cwd();
|
|
481
506
|
var vitePrintUrls = once((options, source, target, base = "/", _printUrls) => {
|
|
482
507
|
_printUrls == null ? void 0 : _printUrls();
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
base
|
|
495
|
-
}, options)).then(() => {
|
|
496
|
-
const colorUrl = (url) => import_picocolors.default.green(url.replace(/:(\d+)\//, (_, port) => `:${import_picocolors.default.bold(port)}/`));
|
|
497
|
-
consola.success(` ${import_picocolors.default.green("\u279C")} ${import_picocolors.default.bold("run caddy reverse proxy success")}: ${colorUrl(`${options.https ? "https" : "http"}://${target}${base}`)}`);
|
|
498
|
-
}).catch((e) => {
|
|
499
|
-
throw e;
|
|
500
|
-
});
|
|
501
|
-
} catch (e) {
|
|
502
|
-
consola.error(e);
|
|
503
|
-
}
|
|
508
|
+
if (caddy)
|
|
509
|
+
return;
|
|
510
|
+
caddy = new CaddyInstant();
|
|
511
|
+
caddy.run(source, target, __spreadValues({
|
|
512
|
+
base
|
|
513
|
+
}, options)).then(() => {
|
|
514
|
+
const colorUrl = (url) => import_picocolors.default.green(url.replace(/:(\d+)\//, (_, port) => `:${import_picocolors.default.bold(port)}/`));
|
|
515
|
+
consola.success(` ${import_picocolors.default.green("\u279C")} ${import_picocolors.default.bold("run caddy reverse proxy success")}: ${colorUrl(`${options.https ? "https" : "http"}://${target}${base}`)}`);
|
|
516
|
+
}).catch((e) => {
|
|
517
|
+
throw e;
|
|
518
|
+
});
|
|
504
519
|
});
|
|
505
520
|
var unpluginFactory = (options) => ({
|
|
506
521
|
name: "unplugin-https-reverse-proxy",
|
|
@@ -511,12 +526,12 @@ var unpluginFactory = (options) => ({
|
|
|
511
526
|
},
|
|
512
527
|
configureServer(server) {
|
|
513
528
|
var _a;
|
|
529
|
+
if (config.command !== "serve")
|
|
530
|
+
return;
|
|
514
531
|
if (!isAdmin()) {
|
|
515
532
|
consola.warn("please run as administrator");
|
|
516
533
|
return;
|
|
517
534
|
}
|
|
518
|
-
if (config.command === "build")
|
|
519
|
-
return;
|
|
520
535
|
const {
|
|
521
536
|
enable = true,
|
|
522
537
|
target = ""
|
|
@@ -540,12 +555,12 @@ var unpluginFactory = (options) => ({
|
|
|
540
555
|
},
|
|
541
556
|
webpack(compiler) {
|
|
542
557
|
var _a;
|
|
558
|
+
if (import_node_process5.default.env.NODE_ENV !== "development")
|
|
559
|
+
return;
|
|
543
560
|
if (!isAdmin()) {
|
|
544
561
|
consola.warn("please run as administrator");
|
|
545
562
|
return;
|
|
546
563
|
}
|
|
547
|
-
if (import_node_process5.default.env.NODE_ENV !== "development")
|
|
548
|
-
return;
|
|
549
564
|
const {
|
|
550
565
|
enable = true,
|
|
551
566
|
target = ""
|
|
@@ -556,39 +571,32 @@ var unpluginFactory = (options) => ({
|
|
|
556
571
|
consola.fail("please provide target");
|
|
557
572
|
return;
|
|
558
573
|
}
|
|
559
|
-
const
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
if (_close) {
|
|
572
|
-
compiler.close = async (callback) => {
|
|
573
|
-
import_node_process5.default.on("exit", () => {
|
|
574
|
-
_close && _close(callback);
|
|
575
|
-
});
|
|
576
|
-
};
|
|
577
|
-
} else {
|
|
578
|
-
options.https = false;
|
|
579
|
-
}
|
|
580
|
-
caddy = new CaddyInstant();
|
|
581
|
-
caddy.run(source, target, __spreadValues({}, options)).then(() => {
|
|
582
|
-
const colorUrl = (url) => import_picocolors.default.green(url.replace(/:(\d+)\//, (_, port) => `:${import_picocolors.default.bold(port)}/`));
|
|
583
|
-
compiler.hooks.done.tap("unplugin-https-reverse-proxy", () => {
|
|
584
|
-
consola.success(` ${import_picocolors.default.green("\u279C")} ${import_picocolors.default.bold("run caddy reverse proxy success")}: ${colorUrl(`${options.https ? "https" : "http"}://${target}`)}`);
|
|
574
|
+
const devServer = __spreadValues(__spreadValues({
|
|
575
|
+
host: "localhost",
|
|
576
|
+
port: 8080
|
|
577
|
+
}, compiler.options.devServer), import_node_process5.default.VUE_CLI_SERVICE.projectOptions.devServer);
|
|
578
|
+
const source = `${devServer.host}:${devServer.port}`;
|
|
579
|
+
if (caddy)
|
|
580
|
+
return;
|
|
581
|
+
const _close = (_a = compiler.close) == null ? void 0 : _a.bind(compiler);
|
|
582
|
+
if (_close) {
|
|
583
|
+
compiler.close = async (callback) => {
|
|
584
|
+
import_node_process5.default.on("exit", () => {
|
|
585
|
+
_close && _close(callback);
|
|
585
586
|
});
|
|
586
|
-
}
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
} catch (e) {
|
|
590
|
-
consola.error(e);
|
|
587
|
+
};
|
|
588
|
+
} else {
|
|
589
|
+
options.https = false;
|
|
591
590
|
}
|
|
591
|
+
caddy = new CaddyInstant();
|
|
592
|
+
caddy.run(source, target, __spreadValues({}, options)).then(() => {
|
|
593
|
+
const colorUrl = (url) => import_picocolors.default.green(url.replace(/:(\d+)\//, (_, port) => `:${import_picocolors.default.bold(port)}/`));
|
|
594
|
+
compiler.hooks.done.tap("unplugin-https-reverse-proxy", () => {
|
|
595
|
+
consola.success(` ${import_picocolors.default.green("\u279C")} ${import_picocolors.default.bold("run caddy reverse proxy success")}: ${colorUrl(`${options.https ? "https" : "http"}://${target}`)}`);
|
|
596
|
+
});
|
|
597
|
+
}).catch((e) => {
|
|
598
|
+
throw e;
|
|
599
|
+
});
|
|
592
600
|
}
|
|
593
601
|
});
|
|
594
602
|
|
package/dist/vite.js
CHANGED
package/dist/webpack.cjs
CHANGED
|
@@ -51,7 +51,6 @@ var import_unplugin2 = require("unplugin");
|
|
|
51
51
|
|
|
52
52
|
// src/index.ts
|
|
53
53
|
var import_node_process5 = __toESM(require("process"), 1);
|
|
54
|
-
var import_node_fs3 = require("fs");
|
|
55
54
|
var import_unplugin = require("unplugin");
|
|
56
55
|
var import_picocolors = __toESM(require("picocolors"), 1);
|
|
57
56
|
|
|
@@ -95,7 +94,7 @@ function isAdmin() {
|
|
|
95
94
|
}
|
|
96
95
|
|
|
97
96
|
// src/caddy/index.ts
|
|
98
|
-
var
|
|
97
|
+
var import_node_os2 = require("os");
|
|
99
98
|
var import_node_process4 = __toESM(require("process"), 1);
|
|
100
99
|
var import_node_fs2 = require("fs");
|
|
101
100
|
var import_node_child_process3 = require("child_process");
|
|
@@ -153,8 +152,16 @@ async function removeHost(ip, host) {
|
|
|
153
152
|
|
|
154
153
|
// src/caddy/constants.ts
|
|
155
154
|
var import_node_path2 = require("path");
|
|
155
|
+
var import_node_os = __toESM(require("os"), 1);
|
|
156
156
|
var import_node_process3 = __toESM(require("process"), 1);
|
|
157
|
-
var
|
|
157
|
+
var import_dotenv_flow = __toESM(require("dotenv-flow"), 1);
|
|
158
|
+
import_dotenv_flow.default.config();
|
|
159
|
+
function resolvePath(path2) {
|
|
160
|
+
if (path2.startsWith("~"))
|
|
161
|
+
return (0, import_node_path2.join)(import_node_os.default.homedir() || "", path2.slice(1));
|
|
162
|
+
return path2;
|
|
163
|
+
}
|
|
164
|
+
var TEMP_DIR = resolvePath(import_node_process3.default.env.UHRP_CADDY_PATH || import_node_process3.default.env.TEMP || import_node_process3.default.env.TMPDIR || "/tmp");
|
|
158
165
|
var caddyPath = (0, import_node_path2.join)(TEMP_DIR, `caddy${import_node_process3.default.platform === "win32" ? ".exe" : ""}`);
|
|
159
166
|
var caddyFilePath = (0, import_node_path2.join)(TEMP_DIR, "CADDYFILE");
|
|
160
167
|
var supportList = [
|
|
@@ -328,8 +335,12 @@ async function download() {
|
|
|
328
335
|
if (await testCaddy())
|
|
329
336
|
return caddyPath;
|
|
330
337
|
return new Promise((resolve, reject) => {
|
|
338
|
+
if (!(0, import_node_fs2.existsSync)(TEMP_DIR)) {
|
|
339
|
+
(0, import_node_fs2.mkdirSync)(TEMP_DIR, { recursive: true });
|
|
340
|
+
(0, import_node_fs2.chmodSync)(TEMP_DIR, 511);
|
|
341
|
+
}
|
|
331
342
|
const file = (0, import_node_fs2.createWriteStream)(caddyPath);
|
|
332
|
-
let _platform = (0,
|
|
343
|
+
let _platform = (0, import_node_os2.platform)().toString();
|
|
333
344
|
_platform === "win32" && (_platform = "windows");
|
|
334
345
|
let _arch = import_node_process4.default.arch.toString();
|
|
335
346
|
_arch === "x64" && (_arch = "amd64");
|
|
@@ -342,6 +353,9 @@ async function download() {
|
|
|
342
353
|
const httpsProxy = import_node_process4.default.env.HTTPS_PROXY || import_node_process4.default.env.https_proxy;
|
|
343
354
|
const httpAgent = httpProxy ? new import_http_proxy_agent.HttpProxyAgent(httpProxy) : void 0;
|
|
344
355
|
const httpsAgent = httpsProxy ? new import_https_proxy_agent.HttpsProxyAgent(httpsProxy) : void 0;
|
|
356
|
+
const chmodCaddyOnce = once(() => {
|
|
357
|
+
(0, import_node_fs2.chmodSync)(caddyPath, 511);
|
|
358
|
+
});
|
|
345
359
|
import_got_cjs.got.stream(dowmloadLink, {
|
|
346
360
|
agent: {
|
|
347
361
|
http: httpAgent,
|
|
@@ -349,11 +363,12 @@ async function download() {
|
|
|
349
363
|
}
|
|
350
364
|
}).on("downloadProgress", (progress) => {
|
|
351
365
|
logProgress(progress.percent);
|
|
366
|
+
chmodCaddyOnce();
|
|
352
367
|
}).pipe(file).on("finish", () => {
|
|
353
368
|
logProgressOver();
|
|
354
369
|
if (import_node_process4.default.platform === "win32")
|
|
355
370
|
return resolve(caddyPath);
|
|
356
|
-
(0, import_node_fs2.chmodSync)(caddyPath,
|
|
371
|
+
(0, import_node_fs2.chmodSync)(caddyPath, 511);
|
|
357
372
|
resolve(caddyPath);
|
|
358
373
|
}).on("error", (err) => {
|
|
359
374
|
reject(err);
|
|
@@ -364,7 +379,7 @@ function testCaddy() {
|
|
|
364
379
|
return new Promise((resolve, reject) => {
|
|
365
380
|
if (!(0, import_node_fs2.existsSync)(caddyPath))
|
|
366
381
|
return resolve(false);
|
|
367
|
-
(0, import_node_fs2.chmodSync)(caddyPath,
|
|
382
|
+
(0, import_node_fs2.chmodSync)(caddyPath, 511);
|
|
368
383
|
const child = import_node_process4.default.platform === "win32" ? (0, import_node_child_process3.spawn)(caddyPath, []) : (0, import_node_child_process3.spawn)("sudo", ["-E", caddyPath]);
|
|
369
384
|
child.on("close", () => {
|
|
370
385
|
return resolve(false);
|
|
@@ -439,6 +454,16 @@ var CaddyInstant = class {
|
|
|
439
454
|
const port = Number(source.split(":")[1]);
|
|
440
455
|
if (!Number.isNaN(port) && await tryPort(port))
|
|
441
456
|
await (0, import_kill_port.default)(port, "tcp");
|
|
457
|
+
const pwd2 = import_node_process4.default.cwd();
|
|
458
|
+
const viteCacheDir = `${pwd2}/node_modules/.vite`;
|
|
459
|
+
if ((0, import_node_fs2.existsSync)(viteCacheDir))
|
|
460
|
+
chmodRecursive(viteCacheDir, 511);
|
|
461
|
+
const nuxtCacheDir = `${pwd2}/.nuxt`;
|
|
462
|
+
if ((0, import_node_fs2.existsSync)(nuxtCacheDir))
|
|
463
|
+
await chmodRecursive(nuxtCacheDir, 511);
|
|
464
|
+
const webpackCacheDir = `${pwd2}/node_modules/.cache`;
|
|
465
|
+
if ((0, import_node_fs2.existsSync)(webpackCacheDir))
|
|
466
|
+
chmodRecursive(webpackCacheDir, 511);
|
|
442
467
|
if (!restore || this.stoped)
|
|
443
468
|
return originalExit(code);
|
|
444
469
|
try {
|
|
@@ -480,27 +505,17 @@ var caddy;
|
|
|
480
505
|
var pwd = import_node_process5.default.cwd();
|
|
481
506
|
var vitePrintUrls = once((options, source, target, base = "/", _printUrls) => {
|
|
482
507
|
_printUrls == null ? void 0 : _printUrls();
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
base
|
|
495
|
-
}, options)).then(() => {
|
|
496
|
-
const colorUrl = (url) => import_picocolors.default.green(url.replace(/:(\d+)\//, (_, port) => `:${import_picocolors.default.bold(port)}/`));
|
|
497
|
-
consola.success(` ${import_picocolors.default.green("\u279C")} ${import_picocolors.default.bold("run caddy reverse proxy success")}: ${colorUrl(`${options.https ? "https" : "http"}://${target}${base}`)}`);
|
|
498
|
-
}).catch((e) => {
|
|
499
|
-
throw e;
|
|
500
|
-
});
|
|
501
|
-
} catch (e) {
|
|
502
|
-
consola.error(e);
|
|
503
|
-
}
|
|
508
|
+
if (caddy)
|
|
509
|
+
return;
|
|
510
|
+
caddy = new CaddyInstant();
|
|
511
|
+
caddy.run(source, target, __spreadValues({
|
|
512
|
+
base
|
|
513
|
+
}, options)).then(() => {
|
|
514
|
+
const colorUrl = (url) => import_picocolors.default.green(url.replace(/:(\d+)\//, (_, port) => `:${import_picocolors.default.bold(port)}/`));
|
|
515
|
+
consola.success(` ${import_picocolors.default.green("\u279C")} ${import_picocolors.default.bold("run caddy reverse proxy success")}: ${colorUrl(`${options.https ? "https" : "http"}://${target}${base}`)}`);
|
|
516
|
+
}).catch((e) => {
|
|
517
|
+
throw e;
|
|
518
|
+
});
|
|
504
519
|
});
|
|
505
520
|
var unpluginFactory = (options) => ({
|
|
506
521
|
name: "unplugin-https-reverse-proxy",
|
|
@@ -511,12 +526,12 @@ var unpluginFactory = (options) => ({
|
|
|
511
526
|
},
|
|
512
527
|
configureServer(server) {
|
|
513
528
|
var _a;
|
|
529
|
+
if (config.command !== "serve")
|
|
530
|
+
return;
|
|
514
531
|
if (!isAdmin()) {
|
|
515
532
|
consola.warn("please run as administrator");
|
|
516
533
|
return;
|
|
517
534
|
}
|
|
518
|
-
if (config.command === "build")
|
|
519
|
-
return;
|
|
520
535
|
const {
|
|
521
536
|
enable = true,
|
|
522
537
|
target = ""
|
|
@@ -540,12 +555,12 @@ var unpluginFactory = (options) => ({
|
|
|
540
555
|
},
|
|
541
556
|
webpack(compiler) {
|
|
542
557
|
var _a;
|
|
558
|
+
if (import_node_process5.default.env.NODE_ENV !== "development")
|
|
559
|
+
return;
|
|
543
560
|
if (!isAdmin()) {
|
|
544
561
|
consola.warn("please run as administrator");
|
|
545
562
|
return;
|
|
546
563
|
}
|
|
547
|
-
if (import_node_process5.default.env.NODE_ENV !== "development")
|
|
548
|
-
return;
|
|
549
564
|
const {
|
|
550
565
|
enable = true,
|
|
551
566
|
target = ""
|
|
@@ -556,39 +571,32 @@ var unpluginFactory = (options) => ({
|
|
|
556
571
|
consola.fail("please provide target");
|
|
557
572
|
return;
|
|
558
573
|
}
|
|
559
|
-
const
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
if (_close) {
|
|
572
|
-
compiler.close = async (callback) => {
|
|
573
|
-
import_node_process5.default.on("exit", () => {
|
|
574
|
-
_close && _close(callback);
|
|
575
|
-
});
|
|
576
|
-
};
|
|
577
|
-
} else {
|
|
578
|
-
options.https = false;
|
|
579
|
-
}
|
|
580
|
-
caddy = new CaddyInstant();
|
|
581
|
-
caddy.run(source, target, __spreadValues({}, options)).then(() => {
|
|
582
|
-
const colorUrl = (url) => import_picocolors.default.green(url.replace(/:(\d+)\//, (_, port) => `:${import_picocolors.default.bold(port)}/`));
|
|
583
|
-
compiler.hooks.done.tap("unplugin-https-reverse-proxy", () => {
|
|
584
|
-
consola.success(` ${import_picocolors.default.green("\u279C")} ${import_picocolors.default.bold("run caddy reverse proxy success")}: ${colorUrl(`${options.https ? "https" : "http"}://${target}`)}`);
|
|
574
|
+
const devServer = __spreadValues(__spreadValues({
|
|
575
|
+
host: "localhost",
|
|
576
|
+
port: 8080
|
|
577
|
+
}, compiler.options.devServer), import_node_process5.default.VUE_CLI_SERVICE.projectOptions.devServer);
|
|
578
|
+
const source = `${devServer.host}:${devServer.port}`;
|
|
579
|
+
if (caddy)
|
|
580
|
+
return;
|
|
581
|
+
const _close = (_a = compiler.close) == null ? void 0 : _a.bind(compiler);
|
|
582
|
+
if (_close) {
|
|
583
|
+
compiler.close = async (callback) => {
|
|
584
|
+
import_node_process5.default.on("exit", () => {
|
|
585
|
+
_close && _close(callback);
|
|
585
586
|
});
|
|
586
|
-
}
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
} catch (e) {
|
|
590
|
-
consola.error(e);
|
|
587
|
+
};
|
|
588
|
+
} else {
|
|
589
|
+
options.https = false;
|
|
591
590
|
}
|
|
591
|
+
caddy = new CaddyInstant();
|
|
592
|
+
caddy.run(source, target, __spreadValues({}, options)).then(() => {
|
|
593
|
+
const colorUrl = (url) => import_picocolors.default.green(url.replace(/:(\d+)\//, (_, port) => `:${import_picocolors.default.bold(port)}/`));
|
|
594
|
+
compiler.hooks.done.tap("unplugin-https-reverse-proxy", () => {
|
|
595
|
+
consola.success(` ${import_picocolors.default.green("\u279C")} ${import_picocolors.default.bold("run caddy reverse proxy success")}: ${colorUrl(`${options.https ? "https" : "http"}://${target}`)}`);
|
|
596
|
+
});
|
|
597
|
+
}).catch((e) => {
|
|
598
|
+
throw e;
|
|
599
|
+
});
|
|
592
600
|
}
|
|
593
601
|
});
|
|
594
602
|
|
package/dist/webpack.js
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "unplugin-https-reverse-proxy",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.0.0-beta.
|
|
4
|
+
"version": "1.0.0-beta.7",
|
|
5
5
|
"packageManager": "pnpm@8.6.12",
|
|
6
6
|
"description": "",
|
|
7
7
|
"license": "MIT",
|
|
@@ -104,6 +104,7 @@
|
|
|
104
104
|
},
|
|
105
105
|
"dependencies": {
|
|
106
106
|
"consola": "^3.2.3",
|
|
107
|
+
"dotenv-flow": "^4.1.0",
|
|
107
108
|
"esno": "^0.17.0",
|
|
108
109
|
"got-cjs": "^12.5.4",
|
|
109
110
|
"hosts-so-easy": "^1.2.9",
|
package/src/caddy/constants.ts
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
import { join } from 'node:path'
|
|
2
|
+
import os from 'node:os'
|
|
2
3
|
import process from 'node:process'
|
|
4
|
+
import dotenvFlow from 'dotenv-flow'
|
|
3
5
|
|
|
4
|
-
|
|
6
|
+
dotenvFlow.config()
|
|
7
|
+
|
|
8
|
+
function resolvePath(path: string) {
|
|
9
|
+
if (path.startsWith('~'))
|
|
10
|
+
return join(os.homedir() || '', path.slice(1))
|
|
11
|
+
return path
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export const TEMP_DIR = resolvePath(process.env.UHRP_CADDY_PATH || process.env.TEMP || process.env.TMPDIR || '/tmp')
|
|
5
15
|
export const caddyPath = join(TEMP_DIR, `caddy${process.platform === 'win32' ? '.exe' : ''}`)
|
|
6
16
|
export const caddyFilePath = join(TEMP_DIR, 'CADDYFILE')
|
|
7
17
|
|
package/src/caddy/index.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { platform } from 'node:os'
|
|
2
2
|
import process from 'node:process'
|
|
3
|
-
import { chmodSync, createWriteStream, existsSync, unlinkSync } from 'node:fs'
|
|
3
|
+
import { chmodSync, createWriteStream, existsSync, mkdirSync, unlinkSync } from 'node:fs'
|
|
4
4
|
import { spawn } from 'node:child_process'
|
|
5
5
|
import { got } from 'got-cjs'
|
|
6
6
|
import { HttpProxyAgent } from 'http-proxy-agent'
|
|
7
7
|
import { HttpsProxyAgent } from 'https-proxy-agent'
|
|
8
8
|
import kill from 'kill-port'
|
|
9
|
-
import { consola } from '../utils'
|
|
9
|
+
import { chmodRecursive, consola, once } from '../utils'
|
|
10
10
|
import { addHost, removeHost } from '../host'
|
|
11
|
-
import { caddyPath, supportList } from './constants'
|
|
11
|
+
import { TEMP_DIR, caddyPath, supportList } from './constants'
|
|
12
12
|
import { logProgress, logProgressOver, tryPort } from './utils'
|
|
13
13
|
|
|
14
14
|
export async function download() {
|
|
@@ -18,6 +18,11 @@ export async function download() {
|
|
|
18
18
|
return new Promise<string>((resolve, reject) => {
|
|
19
19
|
// https://caddyserver.com/api/download?os=darwin&arch=amd64
|
|
20
20
|
|
|
21
|
+
if (!existsSync(TEMP_DIR)) {
|
|
22
|
+
mkdirSync(TEMP_DIR, { recursive: true })
|
|
23
|
+
chmodSync(TEMP_DIR, 0o777)
|
|
24
|
+
}
|
|
25
|
+
|
|
21
26
|
const file = createWriteStream(caddyPath)
|
|
22
27
|
|
|
23
28
|
let _platform = platform().toString()
|
|
@@ -42,6 +47,11 @@ export async function download() {
|
|
|
42
47
|
const httpAgent = httpProxy ? new HttpProxyAgent(httpProxy) : undefined
|
|
43
48
|
const httpsAgent = httpsProxy ? new HttpsProxyAgent(httpsProxy) : undefined
|
|
44
49
|
|
|
50
|
+
const chmodCaddyOnce = once(() => {
|
|
51
|
+
// chmod +x
|
|
52
|
+
chmodSync(caddyPath, 0o777)
|
|
53
|
+
})
|
|
54
|
+
|
|
45
55
|
got.stream(dowmloadLink, {
|
|
46
56
|
agent: {
|
|
47
57
|
http: httpAgent,
|
|
@@ -49,12 +59,13 @@ export async function download() {
|
|
|
49
59
|
},
|
|
50
60
|
}).on('downloadProgress', (progress) => {
|
|
51
61
|
logProgress(progress.percent)
|
|
62
|
+
chmodCaddyOnce()
|
|
52
63
|
}).pipe(file).on('finish', () => {
|
|
53
64
|
logProgressOver()
|
|
54
65
|
if (process.platform === 'win32')
|
|
55
66
|
return resolve(caddyPath)
|
|
56
67
|
// chmod +x
|
|
57
|
-
chmodSync(caddyPath,
|
|
68
|
+
chmodSync(caddyPath, 0o777)
|
|
58
69
|
resolve(caddyPath)
|
|
59
70
|
}).on('error', (err) => {
|
|
60
71
|
// consola.error(err)
|
|
@@ -67,7 +78,7 @@ function testCaddy() {
|
|
|
67
78
|
return new Promise((resolve, reject) => {
|
|
68
79
|
if (!existsSync(caddyPath))
|
|
69
80
|
return resolve(false)
|
|
70
|
-
chmodSync(caddyPath,
|
|
81
|
+
chmodSync(caddyPath, 0o777)
|
|
71
82
|
const child = process.platform === 'win32' ? spawn(caddyPath, []) : spawn('sudo', ['-E', caddyPath])
|
|
72
83
|
child.on('close', () => {
|
|
73
84
|
return resolve(false)
|
|
@@ -170,6 +181,18 @@ export class CaddyInstant {
|
|
|
170
181
|
if (!Number.isNaN(port) && await tryPort(port))
|
|
171
182
|
await kill(port, 'tcp')
|
|
172
183
|
|
|
184
|
+
// fix `Error: EPERM: operation not permitted`
|
|
185
|
+
const pwd = process.cwd()
|
|
186
|
+
const viteCacheDir = `${pwd}/node_modules/.vite`
|
|
187
|
+
if (existsSync(viteCacheDir))
|
|
188
|
+
chmodRecursive(viteCacheDir, 0o777)
|
|
189
|
+
const nuxtCacheDir = `${pwd}/.nuxt`
|
|
190
|
+
if (existsSync(nuxtCacheDir))
|
|
191
|
+
await chmodRecursive(nuxtCacheDir, 0o777)
|
|
192
|
+
const webpackCacheDir = `${pwd}/node_modules/.cache`
|
|
193
|
+
if (existsSync(webpackCacheDir))
|
|
194
|
+
chmodRecursive(webpackCacheDir, 0o777)
|
|
195
|
+
|
|
173
196
|
if (!restore || this.stoped)
|
|
174
197
|
return originalExit(code)
|
|
175
198
|
|