unplugin-https-reverse-proxy 4.0.4 → 4.1.0-beta.2

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.
Files changed (47) hide show
  1. package/README.md +30 -6
  2. package/dist/{chunk-5R33PUJP.js → chunk-7CA3EIIX.js} +681 -223
  3. package/dist/{chunk-2P7SUCQ3.js → chunk-EY3HXBJ4.js} +0 -26
  4. package/dist/chunk-RKHJN6KY.js +53 -0
  5. package/dist/esbuild.cjs +781 -300
  6. package/dist/esbuild.js +3 -2
  7. package/dist/index.cjs +781 -300
  8. package/dist/index.js +3 -2
  9. package/dist/nuxt.cjs +779 -290
  10. package/dist/nuxt.js +5 -9
  11. package/dist/privileged-helper.cjs +668 -0
  12. package/dist/privileged-helper.d.cts +2 -0
  13. package/dist/privileged-helper.d.ts +2 -0
  14. package/dist/privileged-helper.js +641 -0
  15. package/dist/rollup.cjs +781 -300
  16. package/dist/rollup.js +3 -2
  17. package/dist/rspack.cjs +781 -300
  18. package/dist/rspack.js +3 -2
  19. package/dist/utils.cjs +0 -28
  20. package/dist/utils.d.cts +1 -3
  21. package/dist/utils.d.ts +1 -3
  22. package/dist/utils.js +1 -5
  23. package/dist/vite.cjs +781 -300
  24. package/dist/vite.js +3 -2
  25. package/dist/webpack.cjs +781 -300
  26. package/dist/webpack.js +3 -2
  27. package/package.json +1 -4
  28. package/src/caddy/caddyfile.ts +1 -0
  29. package/src/caddy/index.ts +183 -110
  30. package/src/caddy/privileged.ts +118 -0
  31. package/src/caddy/utils.ts +0 -43
  32. package/src/index.ts +1 -15
  33. package/src/nuxt.ts +1 -6
  34. package/src/privileged/bootstrap.ts +174 -0
  35. package/src/privileged/client.ts +287 -0
  36. package/src/privileged/entry.ts +45 -0
  37. package/src/privileged/hosts-file.ts +142 -0
  38. package/src/privileged/launch.ts +193 -0
  39. package/src/privileged/ports.ts +45 -0
  40. package/src/privileged/protocol.ts +111 -0
  41. package/src/privileged/server.ts +465 -0
  42. package/src/privileged/session.ts +114 -0
  43. package/src/privileged/validation.ts +38 -0
  44. package/src/privileged/windows-elevation.ts +80 -0
  45. package/src/privileged-helper.ts +109 -0
  46. package/src/utils.ts +0 -28
  47. package/src/host/index.ts +0 -52
@@ -1,23 +1,11 @@
1
1
  // src/utils.ts
2
- import { execSync } from "node:child_process";
3
- import { chmod, readdir, stat } from "node:fs/promises";
4
2
  import { networkInterfaces } from "node:os";
5
- import path from "node:path";
6
- import process from "node:process";
7
3
  import { createConsola } from "consola";
8
4
  import c from "picocolors";
9
5
  import qrcode from "qrcode-terminal";
10
6
  var consola = createConsola({
11
7
  level: 3
12
8
  }).withTag("reverse-proxy");
13
- async function chmodRecursive(_path, mode) {
14
- await chmod(_path, mode);
15
- if ((await stat(_path)).isDirectory()) {
16
- const children = await readdir(_path);
17
- for (const child of children)
18
- await chmodRecursive(path.join(_path, child), mode);
19
- }
20
- }
21
9
  function once(fn) {
22
10
  let called = false;
23
11
  return (...args) => {
@@ -27,18 +15,6 @@ function once(fn) {
27
15
  return fn(...args);
28
16
  };
29
17
  }
30
- function isAdmin() {
31
- if (process.platform === "win32") {
32
- try {
33
- execSync("net session", { stdio: "ignore" });
34
- return true;
35
- } catch {
36
- return false;
37
- }
38
- } else {
39
- return !!(process.getuid && process.getuid() === 0);
40
- }
41
- }
42
18
  function getIpv4List() {
43
19
  const interfaces = networkInterfaces();
44
20
  return Object.values(interfaces).flatMap((nInterface) => nInterface ?? []).filter(
@@ -55,9 +31,7 @@ async function generateQrcode(input) {
55
31
 
56
32
  export {
57
33
  consola,
58
- chmodRecursive,
59
34
  once,
60
- isAdmin,
61
35
  getIpv4List,
62
36
  generateQrcode
63
37
  };
@@ -0,0 +1,53 @@
1
+ // src/privileged/protocol.ts
2
+ function serializeMessage(message) {
3
+ return `${JSON.stringify(message)}
4
+ `;
5
+ }
6
+ function splitLines(buffer, chunk) {
7
+ const parts = (buffer + chunk).split("\n");
8
+ const rest = parts.pop() ?? "";
9
+ return { lines: parts.filter((line) => line.trim() !== ""), rest };
10
+ }
11
+ function isRecord(value) {
12
+ return typeof value === "object" && value !== null;
13
+ }
14
+ function decodeMessage(line) {
15
+ let parsed;
16
+ try {
17
+ parsed = JSON.parse(line);
18
+ } catch (error) {
19
+ return { ok: false, error: `invalid JSON: ${error.message}` };
20
+ }
21
+ if (!isRecord(parsed))
22
+ return { ok: false, error: "message must be an object" };
23
+ if (parsed.type === "event") {
24
+ if (typeof parsed.kind !== "string")
25
+ return { ok: false, error: "event.kind must be a string" };
26
+ return { ok: true, message: parsed };
27
+ }
28
+ if (typeof parsed.id !== "number")
29
+ return { ok: false, error: "response.id must be a number" };
30
+ if (parsed.ok === true)
31
+ return { ok: true, message: { id: parsed.id, ok: true, result: parsed.result } };
32
+ if (parsed.ok === false) {
33
+ const error = isRecord(parsed.error) ? parsed.error : {};
34
+ return {
35
+ ok: true,
36
+ message: {
37
+ id: parsed.id,
38
+ ok: false,
39
+ error: {
40
+ message: typeof error.message === "string" ? error.message : "helper request failed",
41
+ code: typeof error.code === "string" ? error.code : void 0
42
+ }
43
+ }
44
+ };
45
+ }
46
+ return { ok: false, error: "response.ok must be a boolean" };
47
+ }
48
+
49
+ export {
50
+ serializeMessage,
51
+ splitLines,
52
+ decodeMessage
53
+ };