unplugin-https-reverse-proxy 1.0.0-beta.0 → 1.0.0-beta.10
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 +94 -1
- package/dist/{chunk-3RTK3FSZ.js → chunk-RUJE3YFB.js} +21 -0
- package/dist/{chunk-KYMRDRAJ.js → chunk-XLSIGDFU.js} +135 -77
- package/dist/esbuild.cjs +153 -79
- package/dist/esbuild.js +2 -2
- package/dist/index.cjs +157 -81
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +6 -4
- package/dist/nuxt.cjs +101 -134
- package/dist/nuxt.js +29 -9
- package/dist/rollup.cjs +153 -79
- package/dist/rollup.js +2 -2
- package/dist/rspack.cjs +643 -0
- package/dist/rspack.d.cts +5 -0
- package/dist/rspack.d.ts +5 -0
- package/dist/rspack.js +10 -0
- package/dist/utils.cjs +25 -2
- package/dist/utils.d.cts +3 -1
- package/dist/utils.d.ts +3 -1
- package/dist/utils.js +7 -3
- package/dist/vite.cjs +153 -79
- package/dist/vite.d.cts +1 -2
- package/dist/vite.d.ts +1 -2
- package/dist/vite.js +7 -4
- package/dist/webpack.cjs +153 -79
- package/dist/webpack.js +7 -4
- package/package.json +42 -24
- package/src/caddy/constants.ts +13 -1
- package/src/caddy/index.ts +32 -5
- package/src/host/index.ts +4 -1
- package/src/index.ts +128 -85
- package/src/nuxt.ts +33 -6
- package/src/rspack.ts +5 -0
- package/src/utils.ts +21 -0
- package/dist/chunk-AXBUFN6T.js +0 -11
- package/dist/chunk-MDJOTQRD.js +0 -11
package/dist/nuxt.cjs
CHANGED
|
@@ -47,24 +47,36 @@ __export(nuxt_exports, {
|
|
|
47
47
|
default: () => nuxt_default
|
|
48
48
|
});
|
|
49
49
|
module.exports = __toCommonJS(nuxt_exports);
|
|
50
|
+
var import_node_process6 = __toESM(require("process"), 1);
|
|
50
51
|
var import_kit = require("@nuxt/kit");
|
|
51
|
-
|
|
52
|
-
// src/vite.ts
|
|
53
|
-
var import_unplugin2 = require("unplugin");
|
|
54
|
-
|
|
55
|
-
// src/index.ts
|
|
56
|
-
var import_node_process5 = __toESM(require("process"), 1);
|
|
57
|
-
var import_node_fs3 = require("fs");
|
|
58
|
-
var import_unplugin = require("unplugin");
|
|
59
|
-
var import_picocolors = __toESM(require("picocolors"), 1);
|
|
52
|
+
var import_schema = require("@nuxt/schema");
|
|
60
53
|
|
|
61
54
|
// src/utils.ts
|
|
62
55
|
var import_node_process = __toESM(require("process"), 1);
|
|
56
|
+
var import_node_path = __toESM(require("path"), 1);
|
|
57
|
+
var import_promises = require("fs/promises");
|
|
63
58
|
var import_node_child_process = require("child_process");
|
|
64
59
|
var import_consola = require("consola");
|
|
65
60
|
var consola = (0, import_consola.createConsola)({
|
|
66
61
|
level: 3
|
|
67
62
|
}).withTag("reverse-proxy");
|
|
63
|
+
async function chmodRecursive(_path, mode) {
|
|
64
|
+
await (0, import_promises.chmod)(_path, mode);
|
|
65
|
+
if ((await (0, import_promises.stat)(_path)).isDirectory()) {
|
|
66
|
+
const children = await (0, import_promises.readdir)(_path);
|
|
67
|
+
for (const child of children)
|
|
68
|
+
await chmodRecursive(import_node_path.default.join(_path, child), mode);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function once(fn) {
|
|
72
|
+
let called = false;
|
|
73
|
+
return (...args) => {
|
|
74
|
+
if (called)
|
|
75
|
+
return;
|
|
76
|
+
called = true;
|
|
77
|
+
return fn(...args);
|
|
78
|
+
};
|
|
79
|
+
}
|
|
68
80
|
function isAdmin() {
|
|
69
81
|
if (import_node_process.default.platform === "win32") {
|
|
70
82
|
try {
|
|
@@ -78,8 +90,13 @@ function isAdmin() {
|
|
|
78
90
|
}
|
|
79
91
|
}
|
|
80
92
|
|
|
93
|
+
// src/index.ts
|
|
94
|
+
var import_node_process5 = __toESM(require("process"), 1);
|
|
95
|
+
var import_unplugin = require("unplugin");
|
|
96
|
+
var import_picocolors = __toESM(require("picocolors"), 1);
|
|
97
|
+
|
|
81
98
|
// src/caddy/index.ts
|
|
82
|
-
var
|
|
99
|
+
var import_node_os2 = require("os");
|
|
83
100
|
var import_node_process4 = __toESM(require("process"), 1);
|
|
84
101
|
var import_node_fs2 = require("fs");
|
|
85
102
|
var import_node_child_process3 = require("child_process");
|
|
@@ -107,7 +124,7 @@ async function syncHost() {
|
|
|
107
124
|
import_node_process2.default.platform === "win32" ? "ipconfig /flushdns" : "sudo -E killall -HUP mDNSResponder",
|
|
108
125
|
(error, stdout, stderr) => {
|
|
109
126
|
if (error) {
|
|
110
|
-
|
|
127
|
+
consola.error(`exec error: ${error}`);
|
|
111
128
|
return resolve(false);
|
|
112
129
|
}
|
|
113
130
|
return resolve(true);
|
|
@@ -120,6 +137,8 @@ async function addHost(ip, host) {
|
|
|
120
137
|
(0, import_node_fs.chmodSync)(getPathOfSystemHostsPath(), 511);
|
|
121
138
|
hostInstance.add("127.0.0.1", "localhost");
|
|
122
139
|
hostInstance.add(ip, host);
|
|
140
|
+
if (ip === "localhost")
|
|
141
|
+
hostInstance.add("127.0.0.1", host);
|
|
123
142
|
await hostInstance.updateFinish();
|
|
124
143
|
return await syncHost();
|
|
125
144
|
}
|
|
@@ -134,11 +153,21 @@ async function removeHost(ip, host) {
|
|
|
134
153
|
}
|
|
135
154
|
|
|
136
155
|
// src/caddy/constants.ts
|
|
137
|
-
var
|
|
156
|
+
var import_node_path2 = require("path");
|
|
157
|
+
var import_node_os = __toESM(require("os"), 1);
|
|
138
158
|
var import_node_process3 = __toESM(require("process"), 1);
|
|
139
|
-
var
|
|
140
|
-
|
|
141
|
-
|
|
159
|
+
var import_dotenv_flow = __toESM(require("dotenv-flow"), 1);
|
|
160
|
+
import_dotenv_flow.default.config({
|
|
161
|
+
silent: true
|
|
162
|
+
});
|
|
163
|
+
function resolvePath(path2) {
|
|
164
|
+
if (path2.startsWith("~"))
|
|
165
|
+
return (0, import_node_path2.join)(import_node_os.default.homedir() || "", path2.slice(1));
|
|
166
|
+
return path2;
|
|
167
|
+
}
|
|
168
|
+
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");
|
|
169
|
+
var caddyPath = (0, import_node_path2.join)(TEMP_DIR, `caddy${import_node_process3.default.platform === "win32" ? ".exe" : ""}`);
|
|
170
|
+
var caddyFilePath = (0, import_node_path2.join)(TEMP_DIR, "CADDYFILE");
|
|
142
171
|
var supportList = [
|
|
143
172
|
{
|
|
144
173
|
platform: "dragonfly",
|
|
@@ -310,8 +339,12 @@ async function download() {
|
|
|
310
339
|
if (await testCaddy())
|
|
311
340
|
return caddyPath;
|
|
312
341
|
return new Promise((resolve, reject) => {
|
|
342
|
+
if (!(0, import_node_fs2.existsSync)(TEMP_DIR)) {
|
|
343
|
+
(0, import_node_fs2.mkdirSync)(TEMP_DIR, { recursive: true });
|
|
344
|
+
(0, import_node_fs2.chmodSync)(TEMP_DIR, 511);
|
|
345
|
+
}
|
|
313
346
|
const file = (0, import_node_fs2.createWriteStream)(caddyPath);
|
|
314
|
-
let _platform = (0,
|
|
347
|
+
let _platform = (0, import_node_os2.platform)().toString();
|
|
315
348
|
_platform === "win32" && (_platform = "windows");
|
|
316
349
|
let _arch = import_node_process4.default.arch.toString();
|
|
317
350
|
_arch === "x64" && (_arch = "amd64");
|
|
@@ -324,6 +357,9 @@ async function download() {
|
|
|
324
357
|
const httpsProxy = import_node_process4.default.env.HTTPS_PROXY || import_node_process4.default.env.https_proxy;
|
|
325
358
|
const httpAgent = httpProxy ? new import_http_proxy_agent.HttpProxyAgent(httpProxy) : void 0;
|
|
326
359
|
const httpsAgent = httpsProxy ? new import_https_proxy_agent.HttpsProxyAgent(httpsProxy) : void 0;
|
|
360
|
+
const chmodCaddyOnce = once(() => {
|
|
361
|
+
(0, import_node_fs2.chmodSync)(caddyPath, 511);
|
|
362
|
+
});
|
|
327
363
|
import_got_cjs.got.stream(dowmloadLink, {
|
|
328
364
|
agent: {
|
|
329
365
|
http: httpAgent,
|
|
@@ -331,11 +367,12 @@ async function download() {
|
|
|
331
367
|
}
|
|
332
368
|
}).on("downloadProgress", (progress) => {
|
|
333
369
|
logProgress(progress.percent);
|
|
370
|
+
chmodCaddyOnce();
|
|
334
371
|
}).pipe(file).on("finish", () => {
|
|
335
372
|
logProgressOver();
|
|
336
373
|
if (import_node_process4.default.platform === "win32")
|
|
337
374
|
return resolve(caddyPath);
|
|
338
|
-
(0, import_node_fs2.chmodSync)(caddyPath,
|
|
375
|
+
(0, import_node_fs2.chmodSync)(caddyPath, 511);
|
|
339
376
|
resolve(caddyPath);
|
|
340
377
|
}).on("error", (err) => {
|
|
341
378
|
reject(err);
|
|
@@ -346,7 +383,7 @@ function testCaddy() {
|
|
|
346
383
|
return new Promise((resolve, reject) => {
|
|
347
384
|
if (!(0, import_node_fs2.existsSync)(caddyPath))
|
|
348
385
|
return resolve(false);
|
|
349
|
-
(0, import_node_fs2.chmodSync)(caddyPath,
|
|
386
|
+
(0, import_node_fs2.chmodSync)(caddyPath, 511);
|
|
350
387
|
const child = import_node_process4.default.platform === "win32" ? (0, import_node_child_process3.spawn)(caddyPath, []) : (0, import_node_child_process3.spawn)("sudo", ["-E", caddyPath]);
|
|
351
388
|
child.on("close", () => {
|
|
352
389
|
return resolve(false);
|
|
@@ -418,6 +455,19 @@ var CaddyInstant = class {
|
|
|
418
455
|
});
|
|
419
456
|
const originalExit = import_node_process4.default.exit.bind(import_node_process4.default);
|
|
420
457
|
import_node_process4.default.exit = async (code) => {
|
|
458
|
+
const port = Number(source.split(":")[1]);
|
|
459
|
+
if (!Number.isNaN(port) && await tryPort(port))
|
|
460
|
+
await (0, import_kill_port.default)(port, "tcp");
|
|
461
|
+
const pwd = import_node_process4.default.cwd();
|
|
462
|
+
const viteCacheDir = `${pwd}/node_modules/.vite`;
|
|
463
|
+
if ((0, import_node_fs2.existsSync)(viteCacheDir))
|
|
464
|
+
chmodRecursive(viteCacheDir, 511);
|
|
465
|
+
const nuxtCacheDir = `${pwd}/.nuxt`;
|
|
466
|
+
if ((0, import_node_fs2.existsSync)(nuxtCacheDir))
|
|
467
|
+
await chmodRecursive(nuxtCacheDir, 511);
|
|
468
|
+
const webpackCacheDir = `${pwd}/node_modules/.cache`;
|
|
469
|
+
if ((0, import_node_fs2.existsSync)(webpackCacheDir))
|
|
470
|
+
chmodRecursive(webpackCacheDir, 511);
|
|
421
471
|
if (!restore || this.stoped)
|
|
422
472
|
return originalExit(code);
|
|
423
473
|
try {
|
|
@@ -454,74 +504,31 @@ var CaddyInstant = class {
|
|
|
454
504
|
};
|
|
455
505
|
|
|
456
506
|
// src/index.ts
|
|
457
|
-
var config;
|
|
458
507
|
var caddy;
|
|
459
|
-
var
|
|
460
|
-
var
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
if (!target) {
|
|
481
|
-
consola.fail("please provide target");
|
|
482
|
-
return;
|
|
483
|
-
}
|
|
484
|
-
_servce = server;
|
|
485
|
-
const _printUrls = server.printUrls;
|
|
486
|
-
server.printUrls = () => {
|
|
487
|
-
var _a;
|
|
488
|
-
_printUrls();
|
|
489
|
-
const pwd = import_node_process5.default.cwd();
|
|
490
|
-
const vireCacheDir = `${pwd}/node_modules/.vite`;
|
|
491
|
-
if ((0, import_node_fs3.existsSync)(vireCacheDir))
|
|
492
|
-
(0, import_node_fs3.chmodSync)(vireCacheDir, 511);
|
|
493
|
-
let source = `localhost:${config.server.port}`;
|
|
494
|
-
const url = (_a = server.resolvedUrls) == null ? void 0 : _a.local[0];
|
|
495
|
-
if (url) {
|
|
496
|
-
const u = new URL(url);
|
|
497
|
-
source = u.host;
|
|
498
|
-
}
|
|
499
|
-
const base = server.config.base || "/";
|
|
500
|
-
try {
|
|
501
|
-
if (caddy)
|
|
502
|
-
return;
|
|
503
|
-
caddy = new CaddyInstant();
|
|
504
|
-
caddy.run(source, target, __spreadValues({
|
|
505
|
-
base
|
|
506
|
-
}, options)).then(() => {
|
|
507
|
-
const colorUrl = (url2) => import_picocolors.default.green(url2.replace(/:(\d+)\//, (_, port) => `:${import_picocolors.default.bold(port)}/`));
|
|
508
|
-
consola.success(` ${import_picocolors.default.green("\u279C")} ${import_picocolors.default.bold("run caddy reverse proxy success")}: ${colorUrl(`${options.https ? "https" : "http"}://${target}${base}`)}`);
|
|
509
|
-
}).catch((e) => {
|
|
510
|
-
throw e;
|
|
511
|
-
});
|
|
512
|
-
} catch (e) {
|
|
513
|
-
consola.error(e);
|
|
514
|
-
}
|
|
515
|
-
};
|
|
516
|
-
}
|
|
508
|
+
var cwd = import_node_process5.default.cwd();
|
|
509
|
+
var vitePrintUrls = once((options, source, target, base = "/", _printUrls) => {
|
|
510
|
+
_printUrls == null ? void 0 : _printUrls();
|
|
511
|
+
if (caddy)
|
|
512
|
+
return;
|
|
513
|
+
caddy = new CaddyInstant();
|
|
514
|
+
caddy.run(source, target, __spreadValues({
|
|
515
|
+
base
|
|
516
|
+
}, options)).then(() => {
|
|
517
|
+
const colorUrl = (url) => import_picocolors.default.green(url.replace(/:(\d+)\//, (_, port) => `:${import_picocolors.default.bold(port)}/`));
|
|
518
|
+
consola.success(` ${import_picocolors.default.green("\u279C")} ${import_picocolors.default.bold("run caddy reverse proxy success")}: ${colorUrl(`${options.https ? "https" : "http"}://${target}${base}`)}`);
|
|
519
|
+
}).catch((e) => {
|
|
520
|
+
throw e;
|
|
521
|
+
});
|
|
522
|
+
});
|
|
523
|
+
|
|
524
|
+
// src/nuxt.ts
|
|
525
|
+
var nuxt_default = (0, import_kit.defineNuxtModule)({
|
|
526
|
+
meta: {
|
|
527
|
+
name: "nuxt-unplugin-https-reverse-proxy",
|
|
528
|
+
configKey: "unpluginHttpsReverseProxy"
|
|
517
529
|
},
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
if (!isAdmin()) {
|
|
521
|
-
consola.warn("please run as administrator");
|
|
522
|
-
return;
|
|
523
|
-
}
|
|
524
|
-
if (import_node_process5.default.env.NODE_ENV !== "development")
|
|
530
|
+
setup(options, _nuxt) {
|
|
531
|
+
if (import_node_process6.default.env.NODE_ENV !== "development")
|
|
525
532
|
return;
|
|
526
533
|
const {
|
|
527
534
|
enable = true,
|
|
@@ -529,60 +536,20 @@ var unpluginFactory = (options) => ({
|
|
|
529
536
|
} = options;
|
|
530
537
|
if (!enable)
|
|
531
538
|
return;
|
|
539
|
+
if (!isAdmin()) {
|
|
540
|
+
consola.warn("please run as administrator");
|
|
541
|
+
return;
|
|
542
|
+
}
|
|
532
543
|
if (!target) {
|
|
533
544
|
consola.fail("please provide target");
|
|
534
545
|
return;
|
|
535
546
|
}
|
|
536
|
-
|
|
537
|
-
const
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
if (caddy)
|
|
543
|
-
return;
|
|
544
|
-
const _close = (_a = compiler.close) == null ? void 0 : _a.bind(compiler);
|
|
545
|
-
if (_close) {
|
|
546
|
-
compiler.close = async (callback) => {
|
|
547
|
-
import_node_process5.default.on("exit", () => {
|
|
548
|
-
_close && _close(callback);
|
|
549
|
-
});
|
|
550
|
-
};
|
|
551
|
-
} else {
|
|
552
|
-
options.https = false;
|
|
553
|
-
}
|
|
554
|
-
caddy = new CaddyInstant();
|
|
555
|
-
caddy.run(source, target, __spreadValues({}, options)).then(() => {
|
|
556
|
-
const colorUrl = (url) => import_picocolors.default.green(url.replace(/:(\d+)\//, (_, port) => `:${import_picocolors.default.bold(port)}/`));
|
|
557
|
-
compiler.hooks.done.tap("unplugin-https-reverse-proxy", () => {
|
|
558
|
-
consola.success(` ${import_picocolors.default.green("\u279C")} ${import_picocolors.default.bold("run caddy reverse proxy success")}: ${colorUrl(`${options.https ? "https" : "http"}://${target}`)}`);
|
|
559
|
-
});
|
|
560
|
-
}).catch((e) => {
|
|
561
|
-
throw e;
|
|
562
|
-
});
|
|
563
|
-
} catch (e) {
|
|
564
|
-
consola.error(e);
|
|
565
|
-
}
|
|
566
|
-
}
|
|
567
|
-
});
|
|
568
|
-
|
|
569
|
-
// src/vite.ts
|
|
570
|
-
var vite_default = (0, import_unplugin2.createVitePlugin)(unpluginFactory);
|
|
571
|
-
|
|
572
|
-
// src/webpack.ts
|
|
573
|
-
var import_unplugin3 = require("unplugin");
|
|
574
|
-
var webpack_default = (0, import_unplugin3.createWebpackPlugin)(unpluginFactory);
|
|
575
|
-
|
|
576
|
-
// src/nuxt.ts
|
|
577
|
-
var import_schema = require("@nuxt/schema");
|
|
578
|
-
var nuxt_default = (0, import_kit.defineNuxtModule)({
|
|
579
|
-
meta: {
|
|
580
|
-
name: "nuxt-unplugin-https-reverse-proxy",
|
|
581
|
-
configKey: "unpluginHttpsReverseProxy"
|
|
582
|
-
},
|
|
583
|
-
setup(options, _nuxt) {
|
|
584
|
-
(0, import_kit.addVitePlugin)(() => vite_default(options));
|
|
585
|
-
(0, import_kit.addWebpackPlugin)(() => webpack_default(options));
|
|
547
|
+
_nuxt.hook("listen", (_, listener) => {
|
|
548
|
+
const url = listener.url;
|
|
549
|
+
const source = new URL(url).host;
|
|
550
|
+
const base = _nuxt.options.app.baseURL || "/";
|
|
551
|
+
vitePrintUrls(options, source, options.target, base);
|
|
552
|
+
});
|
|
586
553
|
}
|
|
587
554
|
});
|
|
588
555
|
exports.default = module.exports;
|
package/dist/nuxt.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./chunk-
|
|
2
|
+
vitePrintUrls
|
|
3
|
+
} from "./chunk-XLSIGDFU.js";
|
|
4
4
|
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
import "./chunk-3RTK3FSZ.js";
|
|
5
|
+
consola,
|
|
6
|
+
isAdmin
|
|
7
|
+
} from "./chunk-RUJE3YFB.js";
|
|
9
8
|
|
|
10
9
|
// src/nuxt.ts
|
|
11
|
-
import
|
|
10
|
+
import process from "process";
|
|
11
|
+
import { defineNuxtModule } from "@nuxt/kit";
|
|
12
12
|
import "@nuxt/schema";
|
|
13
13
|
var nuxt_default = defineNuxtModule({
|
|
14
14
|
meta: {
|
|
@@ -16,8 +16,28 @@ var nuxt_default = defineNuxtModule({
|
|
|
16
16
|
configKey: "unpluginHttpsReverseProxy"
|
|
17
17
|
},
|
|
18
18
|
setup(options, _nuxt) {
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
if (process.env.NODE_ENV !== "development")
|
|
20
|
+
return;
|
|
21
|
+
const {
|
|
22
|
+
enable = true,
|
|
23
|
+
target = ""
|
|
24
|
+
} = options;
|
|
25
|
+
if (!enable)
|
|
26
|
+
return;
|
|
27
|
+
if (!isAdmin()) {
|
|
28
|
+
consola.warn("please run as administrator");
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (!target) {
|
|
32
|
+
consola.fail("please provide target");
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
_nuxt.hook("listen", (_, listener) => {
|
|
36
|
+
const url = listener.url;
|
|
37
|
+
const source = new URL(url).host;
|
|
38
|
+
const base = _nuxt.options.app.baseURL || "/";
|
|
39
|
+
vitePrintUrls(options, source, options.target, base);
|
|
40
|
+
});
|
|
21
41
|
}
|
|
22
42
|
});
|
|
23
43
|
export {
|