vxrn 1.21.6 → 1.21.8

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 (68) hide show
  1. package/dist/config/getOptionsFilled.mjs +3 -5
  2. package/dist/config/getOptionsFilled.mjs.map +1 -1
  3. package/dist/config/getOptionsFilled.native.js +3 -5
  4. package/dist/config/getOptionsFilled.native.js.map +1 -1
  5. package/dist/config/getServerOptionsFilled.mjs +3 -2
  6. package/dist/config/getServerOptionsFilled.mjs.map +1 -1
  7. package/dist/config/getServerOptionsFilled.native.js +3 -2
  8. package/dist/config/getServerOptionsFilled.native.js.map +1 -1
  9. package/dist/config/getServerOptionsFilled.test.mjs +20 -0
  10. package/dist/config/getServerOptionsFilled.test.mjs.map +1 -0
  11. package/dist/config/getServerOptionsFilled.test.native.js +20 -0
  12. package/dist/config/getServerOptionsFilled.test.native.js.map +1 -0
  13. package/dist/config/getViteServerConfig.mjs +1 -0
  14. package/dist/config/getViteServerConfig.mjs.map +1 -1
  15. package/dist/config/getViteServerConfig.native.js +1 -0
  16. package/dist/config/getViteServerConfig.native.js.map +1 -1
  17. package/dist/exports/clean.mjs +84 -16
  18. package/dist/exports/clean.mjs.map +1 -1
  19. package/dist/exports/clean.native.js +89 -16
  20. package/dist/exports/clean.native.js.map +1 -1
  21. package/dist/exports/clean.test.mjs +81 -0
  22. package/dist/exports/clean.test.mjs.map +1 -0
  23. package/dist/exports/clean.test.native.js +88 -0
  24. package/dist/exports/clean.test.native.js.map +1 -0
  25. package/dist/exports/dev.mjs +14 -3
  26. package/dist/exports/dev.mjs.map +1 -1
  27. package/dist/exports/dev.native.js +14 -3
  28. package/dist/exports/dev.native.js.map +1 -1
  29. package/dist/serve/node.mjs +20 -24
  30. package/dist/serve/node.mjs.map +1 -1
  31. package/dist/serve/node.native.js +20 -22
  32. package/dist/serve/node.native.js.map +1 -1
  33. package/dist/serve/node.test.mjs +60 -0
  34. package/dist/serve/node.test.mjs.map +1 -0
  35. package/dist/serve/node.test.native.js +72 -0
  36. package/dist/serve/node.test.native.js.map +1 -0
  37. package/dist/utils/state.mjs +11 -1
  38. package/dist/utils/state.mjs.map +1 -1
  39. package/dist/utils/state.native.js +11 -1
  40. package/dist/utils/state.native.js.map +1 -1
  41. package/package.json +11 -11
  42. package/src/config/getOptionsFilled.ts +2 -4
  43. package/src/config/getServerOptionsFilled.test.ts +24 -0
  44. package/src/config/getServerOptionsFilled.ts +2 -1
  45. package/src/config/getViteServerConfig.ts +1 -0
  46. package/src/exports/clean.test.ts +82 -0
  47. package/src/exports/clean.ts +90 -26
  48. package/src/exports/dev.ts +19 -3
  49. package/src/serve/node.test.ts +63 -0
  50. package/src/serve/node.ts +22 -26
  51. package/src/types.ts +4 -2
  52. package/src/utils/state.ts +9 -1
  53. package/types/config/getOptionsFilled.d.ts +2 -0
  54. package/types/config/getOptionsFilled.d.ts.map +1 -1
  55. package/types/config/getServerOptionsFilled.d.ts.map +1 -1
  56. package/types/config/getServerOptionsFilled.test.d.ts.map +1 -0
  57. package/types/config/getViteServerConfig.d.ts.map +1 -1
  58. package/types/exports/build.d.ts +1 -0
  59. package/types/exports/build.d.ts.map +1 -1
  60. package/types/exports/clean.d.ts +6 -9
  61. package/types/exports/clean.d.ts.map +1 -1
  62. package/types/exports/clean.test.d.ts.map +1 -0
  63. package/types/exports/dev.d.ts.map +1 -1
  64. package/types/serve/node.d.ts.map +1 -1
  65. package/types/serve/node.test.d.ts.map +1 -0
  66. package/types/types.d.ts +3 -1
  67. package/types/types.d.ts.map +1 -1
  68. package/types/utils/state.d.ts.map +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"names":["execFile","mkdtemp","mkdir","readFile","rm","writeFile","tmpdir","dirname","join","pathToFileURL","promisify","afterEach","describe","expect","it","execFileAsync","root","recursive","force","cacheDir","viteDir","participantsDir","participantCount","Promise","all","JSON","stringify","versionHash","moduleUrl","import","meta","filename","href","workerScript","participant","String","results","Array","from","length","_","env","process","VXRN_DONT_CLEAN_SELF","output","map","stdout","match","toHaveLength","parse","toEqual","rejects","toMatchObject","code"],"sources":["../../src/exports/clean.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,QAAgB;AACzB,SAASC,OAAA,EAASC,KAAA,EAAOC,QAAA,EAAUC,EAAA,EAAIC,SAAA,QAAiB;AACxD,SAASC,MAAA,QAAc;AACvB,SAASC,OAAA,EAASC,IAAA,QAAY;AAC9B,SAASC,aAAA,QAAqB;AAC9B,SAASC,SAAA,QAAiB;AAC1B,SAASC,SAAA,EAAWC,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AAEhD,MAAMC,aAAA,GAAgBL,SAAA,CAAUV,QAAQ;AAExCY,QAAA,CAAS,0BAA0B,MAAM;EACvC,IAAII,IAAA;EAEJL,SAAA,CAAU,YAAY;IACpB,IAAIK,IAAA,EAAM;MACR,MAAMZ,EAAA,CAAGY,IAAA,EAAM;QAAEC,SAAA,EAAW;QAAMC,KAAA,EAAO;MAAK,CAAC;IACjD;EACF,CAAC;EAEDJ,EAAA,CAAG,kDAAkD,YAAY;IAC/DE,IAAA,GAAO,MAAMf,OAAA,CAAQO,IAAA,CAAKF,MAAA,CAAO,GAAG,wBAAwB,CAAC;IAC7D,MAAMa,QAAA,GAAWX,IAAA,CAAKQ,IAAA,EAAM,gBAAgB,OAAO;IACnD,MAAMI,OAAA,GAAUZ,IAAA,CAAKQ,IAAA,EAAM,gBAAgB,OAAO;IAClD,MAAMK,eAAA,GAAkBb,IAAA,CAAKQ,IAAA,EAAM,cAAc;IACjD,MAAMM,gBAAA,GAAmB;IAEzB,MAAMC,OAAA,CAAQC,GAAA,CAAI,CAChBtB,KAAA,CAAMiB,QAAA,EAAU;MAAEF,SAAA,EAAW;IAAK,CAAC,GACnCf,KAAA,CAAMkB,OAAA,EAAS;MAAEH,SAAA,EAAW;IAAK,CAAC,GAClCf,KAAA,CAAMmB,eAAA,EAAiB;MAAEJ,SAAA,EAAW;IAAK,CAAC,EAC3C;IACD,MAAMM,OAAA,CAAQC,GAAA,CAAI,CAChBnB,SAAA,CAAUG,IAAA,CAAKW,QAAA,EAAU,YAAY,GAAGM,IAAA,CAAKC,SAAA,CAAU;MAAEC,WAAA,EAAa;IAAM,CAAC,CAAC,GAC9EtB,SAAA,CAAUG,IAAA,CAAKW,QAAA,EAAU,OAAO,GAAG,OAAO,GAC1Cd,SAAA,CAAUG,IAAA,CAAKY,OAAA,EAAS,OAAO,GAAG,OAAO,EAC1C;IAED,MAAMQ,SAAA,GAAYnB,aAAA,CAAcD,IAAA,CAAKD,OAAA,CAAQsB,MAAA,CAAAC,IAAA,CAAYC,QAAQ,GAAG,UAAU,CAAC,EAAEC,IAAA;IACjF,MAAMC,YAAA,GAAgBC,WAAA,IAAwB;AAAA;AAAA;AAAA,+CAGHT,IAAA,CAAKC,SAAA,CAAUE,SAAS,CAAC;AAAA;AAAA,qBAEnDH,IAAA,CAAKC,SAAA,CAAUV,IAAI,CAAC;AAAA,gCACTS,IAAA,CAAKC,SAAA,CAAUL,eAAe,CAAC;AAAA,8CACjBI,IAAA,CAAKC,SAAA,CAAUS,MAAA,CAAOD,WAAW,CAAC,CAAC;AAAA,yDACxBZ,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;IAWrE,MAAMc,OAAA,GAAU,MAAMb,OAAA,CAAQC,GAAA,CAC5Ba,KAAA,CAAMC,IAAA,CAAK;MAAEC,MAAA,EAAQjB;IAAiB,GAAG,CAACkB,CAAA,EAAGN,WAAA,KAC3CnB,aAAA,CAAc,OAAO,CAAC,MAAMkB,YAAA,CAAaC,WAAW,CAAC,GAAG;MACtDO,GAAA,EAAK;QAAE,GAAGC,OAAA,CAAQD,GAAA;QAAKE,oBAAA,EAAsB;MAAG;IAClD,CAAC,CACH,CACF;IACA,MAAMC,MAAA,GAASR,OAAA,CAAQS,GAAA,CAAI,CAAC;MAAEC;IAAO,MAAMA,MAAM,EAAEtC,IAAA,CAAK,IAAI;IAE5DK,MAAA,CAAO+B,MAAA,CAAOG,KAAA,CAAM,oBAAoB,CAAC,EAAEC,YAAA,CAAa,CAAC;IACzDnC,MAAA,CAAO+B,MAAA,CAAOG,KAAA,CAAM,oBAAoB,CAAC,EAAEC,YAAA,CAAa,CAAC;IACzDnC,MAAA,CAAOY,IAAA,CAAKwB,KAAA,CAAM,MAAM9C,QAAA,CAASK,IAAA,CAAKW,QAAA,EAAU,YAAY,GAAG,MAAM,CAAC,CAAC,EAAE+B,OAAA,CAAQ;MAC/EvB,WAAA,EAAa;IACf,CAAC;IACD,MAAMd,MAAA,CAAOV,QAAA,CAASK,IAAA,CAAKW,QAAA,EAAU,OAAO,CAAC,CAAC,EAAEgC,OAAA,CAAQC,aAAA,CAAc;MACpEC,IAAA,EAAM;IACR,CAAC;IACD,MAAMxC,MAAA,CAAOV,QAAA,CAASK,IAAA,CAAKY,OAAA,EAAS,OAAO,CAAC,CAAC,EAAE+B,OAAA,CAAQC,aAAA,CAAc;MACnEC,IAAA,EAAM;IACR,CAAC;IACD,MAAMxC,MAAA,CACJV,QAAA,CAASK,IAAA,CAAKQ,IAAA,EAAM,gBAAgB,kBAAkB,CAAC,CACzD,EAAEmC,OAAA,CAAQC,aAAA,CAAc;MAAEC,IAAA,EAAM;IAAS,CAAC;EAC5C,GAAG,GAAM;AACX,CAAC","ignoreList":[]}
@@ -0,0 +1,88 @@
1
+ import { execFile } from "child_process";
2
+ import { mkdtemp, mkdir, readFile, rm, writeFile } from "fs/promises";
3
+ import { tmpdir } from "os";
4
+ import { dirname, join } from "path";
5
+ import { pathToFileURL } from "url";
6
+ import { promisify } from "util";
7
+ import { afterEach, describe, expect, it } from "vitest";
8
+ var execFileAsync = promisify(execFile);
9
+ describe("prepareCacheForVersion", function () {
10
+ var root;
11
+ afterEach(async function () {
12
+ if (root) {
13
+ await rm(root, {
14
+ recursive: true,
15
+ force: true
16
+ });
17
+ }
18
+ });
19
+ it("lets one process clean a stale same-root cache", async function () {
20
+ root = await mkdtemp(join(tmpdir(), "vxrn-concurrent-clean-"));
21
+ var cacheDir = join(root, "node_modules", ".vxrn");
22
+ var viteDir = join(root, "node_modules", ".vite");
23
+ var participantsDir = join(root, "participants");
24
+ var participantCount = 4;
25
+ await Promise.all([mkdir(cacheDir, {
26
+ recursive: true
27
+ }), mkdir(viteDir, {
28
+ recursive: true
29
+ }), mkdir(participantsDir, {
30
+ recursive: true
31
+ })]);
32
+ await Promise.all([writeFile(join(cacheDir, "state.json"), JSON.stringify({
33
+ versionHash: "old"
34
+ })), writeFile(join(cacheDir, "stale"), "stale"), writeFile(join(viteDir, "stale"), "stale")]);
35
+ var moduleUrl = pathToFileURL(join(dirname(import.meta.filename), "clean.ts")).href;
36
+ var workerScript = function (participant) {
37
+ return `
38
+ import { readdir, writeFile } from 'node:fs/promises'
39
+ import { join } from 'node:path'
40
+ import { prepareCacheForVersion } from ${JSON.stringify(moduleUrl)}
41
+
42
+ const root = ${JSON.stringify(root)}
43
+ const participantsDir = ${JSON.stringify(participantsDir)}
44
+ await writeFile(join(participantsDir, ${JSON.stringify(String(participant))}), '')
45
+ while ((await readdir(participantsDir)).length < ${participantCount}) {
46
+ await Bun.sleep(5)
47
+ }
48
+ const cleaned = await prepareCacheForVersion({
49
+ root,
50
+ cacheDir: join(root, 'node_modules', '.vxrn'),
51
+ versionHash: 'new',
52
+ })
53
+ console.info(cleaned ? 'cleaned-by-worker' : 'cache-already-current')
54
+ `;
55
+ };
56
+ var results = await Promise.all(Array.from({
57
+ length: participantCount
58
+ }, function (_, participant) {
59
+ return execFileAsync("bun", ["-e", workerScript(participant)], {
60
+ env: {
61
+ ...process.env,
62
+ VXRN_DONT_CLEAN_SELF: ""
63
+ }
64
+ });
65
+ }));
66
+ var output = results.map(function (param) {
67
+ var {
68
+ stdout
69
+ } = param;
70
+ return stdout;
71
+ }).join("\n");
72
+ expect(output.match(/\[vxrn\] cleaning/g)).toHaveLength(1);
73
+ expect(output.match(/cleaned-by-worker/g)).toHaveLength(1);
74
+ expect(JSON.parse(await readFile(join(cacheDir, "state.json"), "utf8"))).toEqual({
75
+ versionHash: "new"
76
+ });
77
+ await expect(readFile(join(cacheDir, "stale"))).rejects.toMatchObject({
78
+ code: "ENOENT"
79
+ });
80
+ await expect(readFile(join(viteDir, "stale"))).rejects.toMatchObject({
81
+ code: "ENOENT"
82
+ });
83
+ await expect(readFile(join(root, "node_modules", ".vxrn-clean.lock"))).rejects.toMatchObject({
84
+ code: "ENOENT"
85
+ });
86
+ }, 2e4);
87
+ });
88
+ //# sourceMappingURL=clean.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["execFile","mkdtemp","mkdir","readFile","rm","writeFile","tmpdir","dirname","join","pathToFileURL","promisify","afterEach","describe","expect","it","execFileAsync","root","recursive","force","cacheDir","viteDir","participantsDir","participantCount","Promise","all","JSON","stringify","versionHash","moduleUrl","import","meta","filename","href","workerScript","participant","String","results","Array","from","length","_","env","process","VXRN_DONT_CLEAN_SELF"],"sources":["../../src/exports/clean.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,QAAgB;AACzB,SAASC,OAAA,EAASC,KAAA,EAAOC,QAAA,EAAUC,EAAA,EAAIC,SAAA,QAAiB;AACxD,SAASC,MAAA,QAAc;AACvB,SAASC,OAAA,EAASC,IAAA,QAAY;AAC9B,SAASC,aAAA,QAAqB;AAC9B,SAASC,SAAA,QAAiB;AAC1B,SAASC,SAAA,EAAWC,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AAEhD,IAAAC,aAAM,GAAAL,SAAgB,CAAAV,QAAU;AAEhCY,QAAA,CAAS,0BAA0B,YAAM;EACvC,IAAII,IAAA;EAEJL,SAAA,CAAU,kBAAY;IACpB,IAAIK,IAAA,EAAM;MACR,MAAMZ,EAAA,CAAGY,IAAA,EAAM;QACjBC,SAAA;QACDC,KAAA;MAEE;IACD;EACA;EACAJ,EAAA,iDAA2C,EAAO;IAClDE,IAAA,GAAM,MAAAf,OAAA,CAAAO,IAAkB,CAAAF,MAAK,IAAM,wBAAc;IACjD,IAAAa,QAAM,GAAAX,IAAA,CAAAQ,IAAA,EAAmB;IAEzB,IAAAI,OAAM,GAAQZ,IAAI,CAAAQ,IAAA;IAAA,IAChBK,eAAgB,GAAEb,IAAA,CAAAQ,IAAW,gBAAM;IAAA,IACnCM,gBAAiB;IAAiB,MAClCC,OAAM,CAAAC,GAAA,EACPtB,KAAA,CAAAiB,QAAA;MACDF,SAAM,EAAQ;IACZ,IACAf,KAAA,CAAAkB,OAAU,EAAK;MACfH,SAAU;IACX,IAEDf,KAAM,CAAAmB,eAAY;MAClBJ,SAAM;IAAwC;IAAA,MAAAM,OAAA,CAAAC,GAAA,EAGsBnB,SAAA,CAAAG,IAAA,CAAAW,QAAA,iBAAAM,IAAA,CAAAC,SAAA;MAAAC,WAAA,EAEnD;IAAoB,KACsBtB,SAAA,CAAAG,IAAA,CAAAW,QAAA,mBACjB,GAAmCd,SAAA,CAAAG,IAAA,CAAAY,OAAA,qBACR;IAAA,IAAAQ,SAAA,GAAAnB,aAAA,CAAAD,IAAA,CAAAD,OAAA,CAAAsB,MAAA,CAAAC,IAAA,CAAAC,QAAA,gBAAAC,IAAA;IAAA,IAAAC,YAAA,YAAAA,CAAAC,WAAA;MAAA;AAAA;AAAA;AAAA,+CAAAT,IAAA,CAAAC,SAAA,CAAAE,SAAA;AAAA;AAAA,qBAAAH,IAAA,CAAAC,SAAA,CAAAV,IAAA;AAWrE,gCAAsBS,IAAQ,CAAAC,SAAA,CAAAL,eAAA;AAAA,8CACtBI,IAAA,CAAAC,SAAA,CAAAS,MAAA,CAAAD,WAAA;AAAA,yDAAgCZ,gBAAA;AAAA;AACoB;AACN;AACjD;AACH;AAEF;AAEA;AACA;AACA;IAAiF;IAEjF,IAACc,OAAA,SAAAb,OAAA,CAAAC,GAAA,CAAAa,KAAA,CAAAC,IAAA;MACDC,MAAM,EAAAjB;IAAgE,GACpE,UAAMkB,CAAA,EAAAN,WAAA;MACP,OAAAnB,aAAA,SACD,IAAM,EACJkB,YAAM,CAAAC,WAAA,EACP;QACDO,GAAM;UACJ,GAAAC,OAAc,CAAAD,GAAA;UACdE,oBAAwB;QACnB;MACV","ignoreList":[]}
@@ -38,7 +38,7 @@ const dev = async optionsIn => {
38
38
  printServerUrls
39
39
  } = await import("../utils/printServerUrls.mjs");
40
40
  const {
41
- clean
41
+ prepareCacheForVersion
42
42
  } = await import("./clean.mjs");
43
43
  const {
44
44
  filterViteServerResolvedUrls
@@ -92,10 +92,16 @@ export default defineConfig({
92
92
  }
93
93
  }
94
94
  const oneServerConfig = config?.plugins?.find(x => Array.isArray(x) && x[0]?.["name"] === "one:config")?.[0]?.["__get"]?.server;
95
+ const viteServerConfig = config.server;
95
96
  const options = await fillOptions({
96
97
  ...optionsIn,
97
98
  server: {
98
99
  ...oneServerConfig,
100
+ ...removeUndefined({
101
+ host: viteServerConfig?.host === true ? "0.0.0.0" : typeof viteServerConfig?.host === "string" ? viteServerConfig.host : void 0,
102
+ https: viteServerConfig?.https,
103
+ port: viteServerConfig?.port
104
+ }),
99
105
  ...removeUndefined(optionsIn.server || {})
100
106
  }
101
107
  });
@@ -103,8 +109,13 @@ export default defineConfig({
103
109
  cacheDir
104
110
  } = options;
105
111
  bindKeypressInput();
106
- if (options.clean) {
107
- await clean(optionsIn, options.clean);
112
+ const cacheWasCleaned = await prepareCacheForVersion({
113
+ root: options.root,
114
+ cacheDir,
115
+ versionHash: options.versionHash,
116
+ forceClean: optionsIn.clean === true
117
+ });
118
+ if (options.clean || cacheWasCleaned) {
108
119
  process.env.METRO_RESET_CACHE = "1";
109
120
  }
110
121
  await ensureDir(cacheDir);
@@ -1 +1 @@
1
- {"version":3,"names":["FSExtra","colors","debounce","normalizePath","ensureDir","setupOrphanDetection","process","platform","initialPpid","ppid","interval","setInterval","exit","unref","dev","optionsIn","devStartTime","Date","now","env","IS_VXRN_CLI","debug","DEBUG","startUserInterface","bindKeypressInput","fillOptions","getViteServerConfig","printServerUrls","clean","filterViteServerResolvedUrls","removeUndefined","createServer","loadConfigFromFile","config","mode","command","console","error","extraConfig","resolve","extraConfigPath","extraResult","mergeConfig","info","cyan","warn","yellow","oneServerConfig","plugins","find","x","Array","isArray","server","options","cacheDir","METRO_RESET_CACHE","serverConfig","viteServer","isClosing","start","connectedNativeClients","pendingTransforms","Map","watcher","addListener","path","normalizedPath","includes","normalizedCwd","cwd","id","replace","endsWith","has","set","transformRequest","err","get","httpServer","on","listen","totalStartupTime","bold","viteServerResolvedUrls","resolvedUrls","logger","closePromise","Promise","res","stop","removeAllListeners","close"],"sources":["../../src/exports/dev.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["FSExtra","colors","debounce","normalizePath","ensureDir","setupOrphanDetection","process","platform","initialPpid","ppid","interval","setInterval","exit","unref","dev","optionsIn","devStartTime","Date","now","env","IS_VXRN_CLI","debug","DEBUG","startUserInterface","bindKeypressInput","fillOptions","getViteServerConfig","printServerUrls","prepareCacheForVersion","filterViteServerResolvedUrls","removeUndefined","createServer","loadConfigFromFile","config","mode","command","console","error","extraConfig","resolve","extraConfigPath","extraResult","mergeConfig","info","cyan","warn","yellow","oneServerConfig","plugins","find","x","Array","isArray","server","viteServerConfig","options","host","https","port","cacheDir","cacheWasCleaned","root","versionHash","forceClean","clean","METRO_RESET_CACHE","serverConfig","viteServer","isClosing","start","connectedNativeClients","pendingTransforms","Map","watcher","addListener","path","normalizedPath","includes","normalizedCwd","cwd","id","replace","endsWith","has","set","transformRequest","err","get","httpServer","on","listen","totalStartupTime","bold","viteServerResolvedUrls","resolvedUrls","logger","closePromise","Promise","res","stop","removeAllListeners","close"],"sources":["../../src/exports/dev.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -41,7 +41,7 @@ var dev = async function (optionsIn) {
41
41
  printServerUrls
42
42
  } = await import("../utils/printServerUrls.native.js");
43
43
  var {
44
- clean
44
+ prepareCacheForVersion
45
45
  } = await import("./clean.native.js");
46
46
  var {
47
47
  filterViteServerResolvedUrls
@@ -98,10 +98,16 @@ export default defineConfig({
98
98
  var _x_;
99
99
  return Array.isArray(x) && ((_x_ = x[0]) === null || _x_ === void 0 ? void 0 : _x_["name"]) === "one:config";
100
100
  })) === null || _config_plugins_find === void 0 ? void 0 : (_config_plugins_find_ = _config_plugins_find[0]) === null || _config_plugins_find_ === void 0 ? void 0 : (_config_plugins_find____get = _config_plugins_find_["__get"]) === null || _config_plugins_find____get === void 0 ? void 0 : _config_plugins_find____get.server;
101
+ var viteServerConfig = config.server;
101
102
  var options = await fillOptions({
102
103
  ...optionsIn,
103
104
  server: {
104
105
  ...oneServerConfig,
106
+ ...removeUndefined({
107
+ host: (viteServerConfig === null || viteServerConfig === void 0 ? void 0 : viteServerConfig.host) === true ? "0.0.0.0" : typeof (viteServerConfig === null || viteServerConfig === void 0 ? void 0 : viteServerConfig.host) === "string" ? viteServerConfig.host : void 0,
108
+ https: viteServerConfig === null || viteServerConfig === void 0 ? void 0 : viteServerConfig.https,
109
+ port: viteServerConfig === null || viteServerConfig === void 0 ? void 0 : viteServerConfig.port
110
+ }),
105
111
  ...removeUndefined(optionsIn.server || {})
106
112
  }
107
113
  });
@@ -109,8 +115,13 @@ export default defineConfig({
109
115
  cacheDir
110
116
  } = options;
111
117
  bindKeypressInput();
112
- if (options.clean) {
113
- await clean(optionsIn, options.clean);
118
+ var cacheWasCleaned = await prepareCacheForVersion({
119
+ root: options.root,
120
+ cacheDir,
121
+ versionHash: options.versionHash,
122
+ forceClean: optionsIn.clean === true
123
+ });
124
+ if (options.clean || cacheWasCleaned) {
114
125
  process.env.METRO_RESET_CACHE = "1";
115
126
  }
116
127
  await ensureDir(cacheDir);
@@ -1 +1 @@
1
- {"version":3,"names":["FSExtra","colors","debounce","normalizePath","ensureDir","setupOrphanDetection","process","platform","initialPpid","ppid","interval","setInterval","exit","unref","dev","optionsIn","_ref","_config_plugins_find____get","_config_plugins_find_","_config_plugins_find","_config_plugins","devStartTime","Date","now","env","IS_VXRN_CLI","debug","_process_env","DEBUG","startUserInterface","bindKeypressInput","fillOptions","getViteServerConfig","printServerUrls","clean","filterViteServerResolvedUrls","removeUndefined","createServer","loadConfigFromFile","config","mode","command","console","error","extraConfig","resolve","extraConfigPath","extraResult","mergeConfig","info","cyan","warn","yellow","oneServerConfig","plugins","find","x","_x_","Array","isArray","server","options","cacheDir","METRO_RESET_CACHE","serverConfig","viteServer","isClosing","start","_viteServer_httpServer","connectedNativeClients","pendingTransforms","Map","watcher","addListener","path","normalizedPath","includes","normalizedCwd","cwd","id","replace","endsWith","has","set","transformRequest","err","get","httpServer","on","listen","totalStartupTime","bold","viteServerResolvedUrls","resolvedUrls","logger","closePromise","Promise","res","_viteServer_httpServer2","stop","removeAllListeners"],"sources":["../../src/exports/dev.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["FSExtra","colors","debounce","normalizePath","ensureDir","setupOrphanDetection","process","platform","initialPpid","ppid","interval","setInterval","exit","unref","dev","optionsIn","_ref","_config_plugins_find____get","_config_plugins_find_","_config_plugins_find","_config_plugins","devStartTime","Date","now","env","IS_VXRN_CLI","debug","_process_env","DEBUG","startUserInterface","bindKeypressInput","fillOptions","getViteServerConfig","printServerUrls","prepareCacheForVersion","filterViteServerResolvedUrls","removeUndefined","createServer","loadConfigFromFile","config","mode","command","console","error","extraConfig","resolve","extraConfigPath","extraResult","mergeConfig","info","cyan","warn","yellow","oneServerConfig","plugins","find","x","_x_","Array","isArray","server","viteServerConfig","options","host","https","port","cacheDir","cacheWasCleaned","root","versionHash","forceClean","clean","METRO_RESET_CACHE","serverConfig","viteServer","isClosing","start","_viteServer_httpServer","connectedNativeClients","pendingTransforms","Map","watcher","addListener","path","normalizedPath","includes","normalizedCwd","cwd","id","replace","endsWith","has","set","transformRequest","err","get","httpServer","on","listen","totalStartupTime","bold","viteServerResolvedUrls","resolvedUrls","logger","closePromise","Promise","res","_viteServer_httpServer2","stop","removeAllListeners"],"sources":["../../src/exports/dev.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,6 @@
1
1
  import { createServer } from "node:http";
2
2
  import { networkInterfaces, platform } from "node:os";
3
3
  import { getRequestListener } from "@hono/node-server";
4
- import { serve as honoServe } from "@hono/node-server";
5
4
  import colors from "picocolors";
6
5
  function getNetworkAddress() {
7
6
  for (const addresses of Object.values(networkInterfaces())) {
@@ -20,22 +19,20 @@ const canReusePort = !["win32", "darwin"].includes(platform()) && (isBun || (()
20
19
  async function honoServeNode(app, options) {
21
20
  const port = options.port ?? 3e3;
22
21
  const host = options.host ?? "0.0.0.0";
23
- let server;
24
- if (canReusePort) {
25
- const listener = getRequestListener(app.fetch);
26
- server = createServer(listener);
27
- server.listen({
28
- port,
29
- host,
22
+ const listener = getRequestListener((request, env) => {
23
+ request.headers.delete("x-vxrn-peer-address");
24
+ const address = env.incoming.socket.remoteAddress;
25
+ if (address) request.headers.set("x-vxrn-peer-address", address);
26
+ return app.fetch(request, env);
27
+ });
28
+ const server = createServer(listener);
29
+ server.listen({
30
+ port,
31
+ host,
32
+ ...(canReusePort && process.env.ONE_CLUSTER_WORKER === "1" ? {
30
33
  reusePort: true
31
- });
32
- } else {
33
- server = honoServe({
34
- fetch: app.fetch,
35
- port,
36
- hostname: host
37
- });
38
- }
34
+ } : {})
35
+ });
39
36
  const colorUrl = url => colors.cyan(url.replace(/:(\d+)\//, (_, port2) => `:${colors.bold(port2)}/`));
40
37
  const displayHost = host === "0.0.0.0" ? "localhost" : host;
41
38
  const localUrl = `http://${displayHost}:${port}/`;
@@ -49,15 +46,14 @@ async function honoServeNode(app, options) {
49
46
  }
50
47
  }
51
48
  console.info();
52
- const shutdown = () => {
53
- server.close(() => {
54
- process.exit(0);
55
- });
56
- };
57
- process.on("SIGINT", shutdown);
58
- process.on("SIGTERM", shutdown);
59
- await new Promise(res => {
49
+ const shutdown = () => server.close();
50
+ process.once("SIGINT", shutdown);
51
+ process.once("SIGTERM", shutdown);
52
+ await new Promise((res, rej) => {
53
+ server.once("error", rej);
60
54
  server.on("close", () => {
55
+ process.off("SIGINT", shutdown);
56
+ process.off("SIGTERM", shutdown);
61
57
  res();
62
58
  });
63
59
  });
@@ -1 +1 @@
1
- {"version":3,"names":["createServer","networkInterfaces","platform","getRequestListener","serve","honoServe","colors","getNetworkAddress","addresses","Object","values","addr","family","internal","address","isBun","process","versions","bun","canReusePort","includes","major","minor","node","split","map","Number","honoServeNode","app","options","port","host","server","listener","fetch","listen","reusePort","hostname","colorUrl","url","cyan","replace","_","port2","bold","displayHost","localUrl","console","info","green","networkHost","networkUrl","shutdown","close","exit","on","Promise","res"],"sources":["../../src/serve/node.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createServer","networkInterfaces","platform","getRequestListener","colors","getNetworkAddress","addresses","Object","values","addr","family","internal","address","isBun","process","versions","bun","canReusePort","includes","major","minor","node","split","map","Number","honoServeNode","app","options","port","host","listener","request","env","headers","delete","incoming","socket","remoteAddress","set","fetch","server","listen","ONE_CLUSTER_WORKER","reusePort","colorUrl","url","cyan","replace","_","port2","bold","displayHost","localUrl","console","info","green","networkHost","networkUrl","shutdown","close","once","Promise","res","rej","on","off"],"sources":["../../src/serve/node.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,6 @@
1
1
  import { createServer } from "http";
2
2
  import { networkInterfaces, platform } from "os";
3
3
  import { getRequestListener } from "@hono/node-server";
4
- import { serve as honoServe } from "@hono/node-server";
5
4
  import colors from "picocolors";
6
5
  function getNetworkAddress() {
7
6
  var _iteratorNormalCompletion = true,
@@ -59,22 +58,20 @@ async function honoServeNode(app, options) {
59
58
  var _options_port, _options_host;
60
59
  var port = (_options_port = options.port) !== null && _options_port !== void 0 ? _options_port : 3e3;
61
60
  var host = (_options_host = options.host) !== null && _options_host !== void 0 ? _options_host : "0.0.0.0";
62
- var server;
63
- if (canReusePort) {
64
- var listener = getRequestListener(app.fetch);
65
- server = createServer(listener);
66
- server.listen({
67
- port,
68
- host,
61
+ var listener = getRequestListener(function (request, env) {
62
+ request.headers.delete("x-vxrn-peer-address");
63
+ var address = env.incoming.socket.remoteAddress;
64
+ if (address) request.headers.set("x-vxrn-peer-address", address);
65
+ return app.fetch(request, env);
66
+ });
67
+ var server = createServer(listener);
68
+ server.listen({
69
+ port,
70
+ host,
71
+ ...(canReusePort && process.env.ONE_CLUSTER_WORKER === "1" ? {
69
72
  reusePort: true
70
- });
71
- } else {
72
- server = honoServe({
73
- fetch: app.fetch,
74
- port,
75
- hostname: host
76
- });
77
- }
73
+ } : {})
74
+ });
78
75
  var colorUrl = function (url) {
79
76
  return colors.cyan(url.replace(/:(\d+)\//, function (_, port2) {
80
77
  return `:${colors.bold(port2)}/`;
@@ -93,14 +90,15 @@ async function honoServeNode(app, options) {
93
90
  }
94
91
  console.info();
95
92
  var shutdown = function () {
96
- server.close(function () {
97
- process.exit(0);
98
- });
93
+ return server.close();
99
94
  };
100
- process.on("SIGINT", shutdown);
101
- process.on("SIGTERM", shutdown);
102
- await new Promise(function (res) {
95
+ process.once("SIGINT", shutdown);
96
+ process.once("SIGTERM", shutdown);
97
+ await new Promise(function (res, rej) {
98
+ server.once("error", rej);
103
99
  server.on("close", function () {
100
+ process.off("SIGINT", shutdown);
101
+ process.off("SIGTERM", shutdown);
104
102
  res();
105
103
  });
106
104
  });
@@ -1 +1 @@
1
- {"version":3,"names":["createServer","networkInterfaces","platform","getRequestListener","serve","honoServe","colors","getNetworkAddress","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","values","Symbol","iterator","_step","next","done","addresses","value","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","addr","family","internal","address","err","return","isBun","process","versions","bun","canReusePort","includes","major","minor","node","split","map","Number","honoServeNode","app","options","_options_port","_options_host","port","host","server"],"sources":["../../src/serve/node.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,YAAA,QAAiC;AAC1C,SAASC,iBAAA,EAAmBC,QAAA,QAAgB;AAC5C,SAASC,kBAAA,QAA0B;AACnC,SAASC,KAAA,IAASC,SAAA,QAAiB;AAGnC,OAAOC,MAAA,MAAY;AAGnB,SAASC,kBAAA,EAAwC;EAC/C,IAAAC,yBAAwB,GAAO;IAAOC,iBAAA,GAAmB,KAAG;IAAAC,cAAA;EAC1D;IACE,SAAIC,SAAK,GAAAC,MAAW,CAAAC,MAAW,CAAAZ,iBAAe,IAAAa,MAAA,CAAAC,QAAA,KAAAC,KAAA,IAAAR,yBAAA,IAAAQ,KAAA,GAAAL,SAAA,CAAAM,IAAA,IAAAC,IAAA,GAAAV,yBAAA;MAC5C,IAAAW,SAAO,GAAKH,KAAA,CAAAI,KAAA;MACd,IAAAC,0BAAA;QAAAC,kBAAA;QAAAC,eAAA;MACF;QACF,SAAAC,UAAA,IAAAL,SAAA,QAAAL,MAAA,CAAAC,QAAA,KAAAU,MAAA,IAAAJ,0BAAA,IAAAI,MAAA,GAAAD,UAAA,CAAAP,IAAA,IAAAC,IAAA,GAAAG,0BAAA;UACF,IAAAK,IAAA,GAAAD,MAAA,CAAAL,KAAA;UAEM,IAAQM,IAAA,CAAAC,MAAO,KAAQ,UAAS,CAAAD,IAAA,CAAQE,QAAA;YAIxC,OAAAF,IACF,CAAAG,OAAA;UAGS;QACP;MACC,SAAAC,GAAA;QAIPR,kBAAsB,GAAc;QAC5BC,eAAe,GAAAO,GAAA;MACrB,UAAa;QAET;UAEA,KAAAT,0BAAc,IAAAG,UAAA,CAAAO,MAAA;YAGVP,UAAW,CAAAO,MAAA;UACjB;QACA,UAAc;UACT,IAAAT,kBAAA;YACL,MAASC,eAAU;UACjB;QACA;MACA;IACF;EACF,SAAAO,GAAA;IAEArB,iBAAkB,OAChB;IAEFC,cAAM,GAAAoB,GAAc;EACpB,UAAM;IAEN;MACA,IAAQ,CAAAtB,yBAAuB,IAAAG,SAAS,CAAAoB,MAAO,IAAK,MAAO;QAEvDpB,SAAS,CAAAoB,MAAA,EAAW;MACtB;IACA,UAAI;MACF,IAAAtB,iBAAmB;QACnB,MAAQC,cAAA;MAAA;IACoE;EAC5E;AACF;AAEF,IAAAsB,KAAA,GAAQ,OAAKC,OAAA,CAAAC,QAAA,CAAAC,GAAA;AAEb,IAAAC,YAAM,GAAW,EACf,SACE,SAAc,CAAAC,QACf,CAAAnC,QAAA,QAAA8B,KAAA;EACH,KAAAM,KAAA,EAAAC,KAAA,IAAAN,OAAA,CAAAC,QAAA,CAAAM,IAAA,CAAAC,KAAA,MAAAC,GAAA,CAAAC,MAAA;EAEA,OAAAL,KAAW,SAAUA,KAAA,KAAQ,MAAAC,KAAA,UAAAD,KAAA;AAC7B;AAEA,eAAUM,aAAeA,CAAQC,GAAA,EAAAC,OAAA;EAC/B,IAAAC,aAAU,EAAAC,aAAe;EACvB,IAAAC,IAAI,IAAAF,aAAA,GAAAD,OAAA,CAAAG,IAAA,cAAAF,aAAA,cAAAA,aAAA;EAAA,IACLG,IAAA,IAAAF,aAAA,GAAAF,OAAA,CAAAI,IAAA,cAAAF,aAAA,cAAAA,aAAA;EACH,IAACG,MAAA;EACH,IAAAf,YAAA","ignoreList":[]}
1
+ {"version":3,"names":["createServer","networkInterfaces","platform","getRequestListener","colors","getNetworkAddress","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","values","Symbol","iterator","_step","next","done","addresses","value","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","addr","family","internal","address","err","return","isBun","process","versions","bun","canReusePort","includes","major","minor","node","split","map","Number","honoServeNode","app","options","_options_port","_options_host","port","host","listener","request","env"],"sources":["../../src/serve/node.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,YAAA,QAAoB;AAC7B,SAASC,iBAAA,EAAmBC,QAAA,QAAgB;AAC5C,SAASC,kBAAA,QAA0B;AAEnC,OAAOC,MAAA,MAAY;AAGnB,SAASC,kBAAA,EAAwC;EAC/C,IAAAC,yBAAwB,GAAO;IAAOC,iBAAA,GAAmB,KAAG;IAAAC,cAAA;EAC1D;IACE,SAAIC,SAAK,GAAAC,MAAW,CAAAC,MAAW,CAAAV,iBAAe,IAAAW,MAAA,CAAAC,QAAA,KAAAC,KAAA,IAAAR,yBAAA,IAAAQ,KAAA,GAAAL,SAAA,CAAAM,IAAA,IAAAC,IAAA,GAAAV,yBAAA;MAC5C,IAAAW,SAAO,GAAKH,KAAA,CAAAI,KAAA;MACd,IAAAC,0BAAA;QAAAC,kBAAA;QAAAC,eAAA;MACF;QACF,SAAAC,UAAA,IAAAL,SAAA,QAAAL,MAAA,CAAAC,QAAA,KAAAU,MAAA,IAAAJ,0BAAA,IAAAI,MAAA,GAAAD,UAAA,CAAAP,IAAA,IAAAC,IAAA,GAAAG,0BAAA;UACF,IAAAK,IAAA,GAAAD,MAAA,CAAAL,KAAA;UAEM,IAAQM,IAAA,CAAAC,MAAO,KAAQ,UAAS,CAAAD,IAAA,CAAQE,QAAA;YAIxC,OAAAF,IACF,CAAAG,OAAA;UAGS;QACP;MACC,SAAAC,GAAA;QAIPR,kBAAsB,GAAc;QAC5BC,eAAe,GAAAO,GAAA;MACrB,UAAa;QAEP;UACJ,IAAQ,CAAAT,0BAAe,IAAAG,UAAqB,CAAAO,MAAA;YACtCP,UAAU,CAAAO,MAAI;UAChB;QACJ,UAAW;UACZ,IAAAT,kBAAA;YACK,MAASC,eAAa;UACrB;QACL;MACA;IACA;EAGF,CAAC,QAAAO,GAAA;IAEDrB,iBAAkB,OAChB;IAEFC,cAAM,GAAAoB,GAAc;EACpB,UAAM;IAEN;MACA,IAAQ,CAAAtB,yBAAuB,IAAAG,SAAS,CAAAoB,MAAO,IAAK,MAAO;QAEvDpB,SAAS,CAAAoB,MAAA,EAAW;MACtB;IACA,UAAI;MACF,IAAAtB,iBAAmB;QACnB,MAAQC,cAAA;MAAA;IACoE;EAC5E;AACF;AAEF,IAAAsB,KAAA,GAAQ,OAAKC,OAAA,CAAAC,QAAA,CAAAC,GAAA;AAEb,IAAAC,YAAM,GAAW,EAEjB,SACA,QAAQ,CAER,CAAAC,QAAM,CAAAjC,QAAI,CAAc,CAAC,MAAK4B,KAAA,IAAQ;EACpC,KAAAM,KAAO,EAAAC,KAAK,IAAAN,OAAY,CAAAC,QAAA,CAAAM,IAAA,CAAAC,KAAA,MAAAC,GAAA,CAAAC,MAAA;EACxB,OAAAL,KAAU,SAASA,KAAA,KAAM,MAAAC,KAAA,UAAAD,KAAA;AACvB;AACA,eAAQM,aAAIA,CAAWC,GAAA,EAAAC,OAAQ;EAC/B,IAAAC,aAAI,EAAAC,aAAA;EAAA,IACLC,IAAA,IAAAF,aAAA,GAAAD,OAAA,CAAAG,IAAA,cAAAF,aAAA,cAAAA,aAAA;EACH,IAACG,IAAA,IAAAF,aAAA,GAAAF,OAAA,CAAAI,IAAA,cAAAF,aAAA,cAAAA,aAAA;EACH,IAAAG,QAAA,GAAA9C,kBAAA,WAAA+C,OAAA,EAAAC,GAAA","ignoreList":[]}
@@ -0,0 +1,60 @@
1
+ import { createServer } from "node:http";
2
+ import { Hono } from "hono";
3
+ import { describe, expect, test } from "vitest";
4
+ import { honoServeNode } from "./node.mjs";
5
+ describe("honoServeNode", () => {
6
+ test("rejects when the listener cannot bind", async () => {
7
+ const occupied = createServer();
8
+ await new Promise((resolve, reject) => {
9
+ occupied.once("error", reject);
10
+ occupied.listen(0, "127.0.0.1", resolve);
11
+ });
12
+ const address = occupied.address();
13
+ if (!address || typeof address === "string") throw new Error("missing test port");
14
+ const app = new Hono().get("/health", context => context.text("ok"));
15
+ await expect(honoServeNode(app, {
16
+ host: "127.0.0.1",
17
+ port: address.port
18
+ })).rejects.toMatchObject({
19
+ code: "EADDRINUSE"
20
+ });
21
+ await new Promise((resolve, reject) => occupied.close(error => error ? reject(error) : resolve()));
22
+ });
23
+ test("overwrites the trusted peer address header from the socket", async () => {
24
+ const reservation = createServer();
25
+ await new Promise((resolve, reject) => {
26
+ reservation.once("error", reject);
27
+ reservation.listen(0, "127.0.0.1", resolve);
28
+ });
29
+ const address = reservation.address();
30
+ if (!address || typeof address === "string") throw new Error("missing test port");
31
+ await new Promise((resolve, reject) => reservation.close(error => error ? reject(error) : resolve()));
32
+ const app = new Hono().get("/peer", context => context.text(context.req.header("x-vxrn-peer-address") || ""));
33
+ const running = honoServeNode(app, {
34
+ host: "127.0.0.1",
35
+ port: address.port
36
+ });
37
+ await new Promise((resolve, reject) => {
38
+ const startedAt = Date.now();
39
+ const probe = async () => {
40
+ try {
41
+ const response = await fetch(`http://127.0.0.1:${address.port}/peer`, {
42
+ headers: {
43
+ "x-vxrn-peer-address": "203.0.113.9"
44
+ }
45
+ });
46
+ expect(await response.text()).toBe("127.0.0.1");
47
+ resolve();
48
+ } catch (error) {
49
+ if (Date.now() - startedAt > 2e3) reject(error);else setTimeout(probe, 20);
50
+ }
51
+ };
52
+ void probe();
53
+ });
54
+ const shutdown = process.listeners("SIGTERM").at(-1);
55
+ expect(shutdown).toBeTypeOf("function");
56
+ shutdown?.("SIGTERM");
57
+ await running;
58
+ });
59
+ });
60
+ //# sourceMappingURL=node.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createServer","Hono","describe","expect","test","honoServeNode","occupied","Promise","resolve","reject","once","listen","address","Error","app","get","context","text","host","port","rejects","toMatchObject","code","close","error","reservation","req","header","running","startedAt","Date","now","probe","response","fetch","headers","toBe","setTimeout","shutdown","process","listeners","at","toBeTypeOf"],"sources":["../../src/serve/node.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,YAAA,QAAoB;AAC7B,SAASC,IAAA,QAAY;AACrB,SAASC,QAAA,EAAUC,MAAA,EAAQC,IAAA,QAAY;AACvC,SAASC,aAAA,QAAqB;AAE9BH,QAAA,CAAS,iBAAiB,MAAM;EAC9BE,IAAA,CAAK,yCAAyC,YAAY;IACxD,MAAME,QAAA,GAAWN,YAAA,CAAa;IAC9B,MAAM,IAAIO,OAAA,CAAc,CAACC,OAAA,EAASC,MAAA,KAAW;MAC3CH,QAAA,CAASI,IAAA,CAAK,SAASD,MAAM;MAC7BH,QAAA,CAASK,MAAA,CAAO,GAAG,aAAaH,OAAO;IACzC,CAAC;IACD,MAAMI,OAAA,GAAUN,QAAA,CAASM,OAAA,CAAQ;IACjC,IAAI,CAACA,OAAA,IAAW,OAAOA,OAAA,KAAY,UAAU,MAAM,IAAIC,KAAA,CAAM,mBAAmB;IAEhF,MAAMC,GAAA,GAAM,IAAIb,IAAA,CAAK,EAAEc,GAAA,CAAI,WAAYC,OAAA,IAAYA,OAAA,CAAQC,IAAA,CAAK,IAAI,CAAC;IACrE,MAAMd,MAAA,CACJE,aAAA,CAAcS,GAAA,EAAK;MAAEI,IAAA,EAAM;MAAaC,IAAA,EAAMP,OAAA,CAAQO;IAAK,CAAC,CAC9D,EAAEC,OAAA,CAAQC,aAAA,CAAc;MAAEC,IAAA,EAAM;IAAa,CAAC;IAE9C,MAAM,IAAIf,OAAA,CAAc,CAACC,OAAA,EAASC,MAAA,KAChCH,QAAA,CAASiB,KAAA,CAAOC,KAAA,IAAWA,KAAA,GAAQf,MAAA,CAAOe,KAAK,IAAIhB,OAAA,CAAQ,CAAE,CAC/D;EACF,CAAC;EAEDJ,IAAA,CAAK,8DAA8D,YAAY;IAC7E,MAAMqB,WAAA,GAAczB,YAAA,CAAa;IACjC,MAAM,IAAIO,OAAA,CAAc,CAACC,OAAA,EAASC,MAAA,KAAW;MAC3CgB,WAAA,CAAYf,IAAA,CAAK,SAASD,MAAM;MAChCgB,WAAA,CAAYd,MAAA,CAAO,GAAG,aAAaH,OAAO;IAC5C,CAAC;IACD,MAAMI,OAAA,GAAUa,WAAA,CAAYb,OAAA,CAAQ;IACpC,IAAI,CAACA,OAAA,IAAW,OAAOA,OAAA,KAAY,UAAU,MAAM,IAAIC,KAAA,CAAM,mBAAmB;IAChF,MAAM,IAAIN,OAAA,CAAc,CAACC,OAAA,EAASC,MAAA,KAChCgB,WAAA,CAAYF,KAAA,CAAOC,KAAA,IAAWA,KAAA,GAAQf,MAAA,CAAOe,KAAK,IAAIhB,OAAA,CAAQ,CAAE,CAClE;IAEA,MAAMM,GAAA,GAAM,IAAIb,IAAA,CAAK,EAAEc,GAAA,CAAI,SAAUC,OAAA,IACnCA,OAAA,CAAQC,IAAA,CAAKD,OAAA,CAAQU,GAAA,CAAIC,MAAA,CAAO,qBAAqB,KAAK,EAAE,CAC9D;IACA,MAAMC,OAAA,GAAUvB,aAAA,CAAcS,GAAA,EAAK;MAAEI,IAAA,EAAM;MAAaC,IAAA,EAAMP,OAAA,CAAQO;IAAK,CAAC;IAC5E,MAAM,IAAIZ,OAAA,CAAc,CAACC,OAAA,EAASC,MAAA,KAAW;MAC3C,MAAMoB,SAAA,GAAYC,IAAA,CAAKC,GAAA,CAAI;MAC3B,MAAMC,KAAA,GAAQ,MAAAA,CAAA,KAAY;QACxB,IAAI;UACF,MAAMC,QAAA,GAAW,MAAMC,KAAA,CAAM,oBAAoBtB,OAAA,CAAQO,IAAI,SAAS;YACpEgB,OAAA,EAAS;cAAE,uBAAuB;YAAc;UAClD,CAAC;UACDhC,MAAA,CAAO,MAAM8B,QAAA,CAAShB,IAAA,CAAK,CAAC,EAAEmB,IAAA,CAAK,WAAW;UAC9C5B,OAAA,CAAQ;QACV,SAASgB,KAAA,EAAO;UACd,IAAIM,IAAA,CAAKC,GAAA,CAAI,IAAIF,SAAA,GAAY,KAAOpB,MAAA,CAAOe,KAAK,OAC3Ca,UAAA,CAAWL,KAAA,EAAO,EAAE;QAC3B;MACF;MACA,KAAKA,KAAA,CAAM;IACb,CAAC;IACD,MAAMM,QAAA,GAAWC,OAAA,CAAQC,SAAA,CAAU,SAAS,EAAEC,EAAA,CAAG,EAAE;IACnDtC,MAAA,CAAOmC,QAAQ,EAAEI,UAAA,CAAW,UAAU;IACtCJ,QAAA,GAAW,SAAS;IACpB,MAAMV,OAAA;EACR,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,72 @@
1
+ import { createServer } from "http";
2
+ import { Hono } from "hono";
3
+ import { describe, expect, test } from "vitest";
4
+ import { honoServeNode } from "./node.native.js";
5
+ describe("honoServeNode", function () {
6
+ test("rejects when the listener cannot bind", async function () {
7
+ var occupied = createServer();
8
+ await new Promise(function (resolve, reject) {
9
+ occupied.once("error", reject);
10
+ occupied.listen(0, "127.0.0.1", resolve);
11
+ });
12
+ var address = occupied.address();
13
+ if (!address || typeof address === "string") throw new Error("missing test port");
14
+ var app = new Hono().get("/health", function (context) {
15
+ return context.text("ok");
16
+ });
17
+ await expect(honoServeNode(app, {
18
+ host: "127.0.0.1",
19
+ port: address.port
20
+ })).rejects.toMatchObject({
21
+ code: "EADDRINUSE"
22
+ });
23
+ await new Promise(function (resolve, reject) {
24
+ return occupied.close(function (error) {
25
+ return error ? reject(error) : resolve();
26
+ });
27
+ });
28
+ });
29
+ test("overwrites the trusted peer address header from the socket", async function () {
30
+ var reservation = createServer();
31
+ await new Promise(function (resolve, reject) {
32
+ reservation.once("error", reject);
33
+ reservation.listen(0, "127.0.0.1", resolve);
34
+ });
35
+ var address = reservation.address();
36
+ if (!address || typeof address === "string") throw new Error("missing test port");
37
+ await new Promise(function (resolve, reject) {
38
+ return reservation.close(function (error) {
39
+ return error ? reject(error) : resolve();
40
+ });
41
+ });
42
+ var app = new Hono().get("/peer", function (context) {
43
+ return context.text(context.req.header("x-vxrn-peer-address") || "");
44
+ });
45
+ var running = honoServeNode(app, {
46
+ host: "127.0.0.1",
47
+ port: address.port
48
+ });
49
+ await new Promise(function (resolve, reject) {
50
+ var startedAt = Date.now();
51
+ var probe = async function () {
52
+ try {
53
+ var response = await fetch(`http://127.0.0.1:${address.port}/peer`, {
54
+ headers: {
55
+ "x-vxrn-peer-address": "203.0.113.9"
56
+ }
57
+ });
58
+ expect(await response.text()).toBe("127.0.0.1");
59
+ resolve();
60
+ } catch (error) {
61
+ if (Date.now() - startedAt > 2e3) reject(error);else setTimeout(probe, 20);
62
+ }
63
+ };
64
+ void probe();
65
+ });
66
+ var shutdown = process.listeners("SIGTERM").at(-1);
67
+ expect(shutdown).toBeTypeOf("function");
68
+ shutdown === null || shutdown === void 0 ? void 0 : shutdown("SIGTERM");
69
+ await running;
70
+ });
71
+ });
72
+ //# sourceMappingURL=node.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createServer","Hono","describe","expect","test","honoServeNode","occupied","Promise","resolve","reject","once","listen","address","Error","app","get","context","text","host","port","rejects","toMatchObject","code","close","error","reservation","req","header","running","startedAt","Date","now","probe","response","fetch","headers","toBe"],"sources":["../../src/serve/node.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,YAAA,QAAoB;AAC7B,SAASC,IAAA,QAAY;AACrB,SAASC,QAAA,EAAUC,MAAA,EAAQC,IAAA,QAAY;AACvC,SAASC,aAAA,QAAqB;AAE9BH,QAAA,CAAS,iBAAiB,YAAM;EAC9BE,IAAA,CAAK,yCAAyC,kBAAY;IACxD,IAAAE,QAAM,GAAAN,YAAW;IACjB,MAAM,IAAIO,OAAA,CAAc,UAACC,OAAS,EAAAC,MAAW;MAC3CH,QAAA,CAASI,IAAA,CAAK,SAASD,MAAM;MAC7BH,QAAA,CAASK,MAAA,CAAO,GAAG,aAAaH,OAAO;IACzC,CAAC;IACD,IAAAI,OAAM,GAAAN,QAAU,CAAAM,OAAS;IACzB,IAAI,CAACA,OAAA,IAAW,OAAOA,OAAA,KAAY,UAAU,MAAM,IAAIC,KAAA,CAAM,mBAAmB;IAEhF,IAAAC,GAAM,OAAMb,IAAI,GAAKc,GAAE,UAAI,YAAYC,OAAY;MACnD,OAAMA,OAAA,CAAAC,IAAA;IAAA,EACJ;IACF,MAAEd,MAAQ,CAAAE,aAAgB,CAAAS,GAAA,EAAM;MAEhCI,IAAM,aAAI;MAAcC,IAAC,EAAAP,OAAS,CAAAO;IAElC,IAAAC,OAAA,CAAAC,aAAA;MACDC,IAAA;IAED;IACE,MAAM,IAAAf,OAAA,WAAcC,OAAa,EAAAC,MAAA;MACjC,OAAMH,QAAI,CAAciB,KAAC,WAASC,KAAA,EAAW;QAC3C,OAAAA,KAAY,GAAKf,MAAA,CAAAe,KAAS,IAAMhB,OAAA;MAChC;IACF,CAAC;EACD;EACAJ,IAAA,6DAA6D,oBAAmB;IAChF,IAAAqB,WAAU,GAAAzB,YAAA;IAAA,MAAe,IAAAO,OAAS,WAChCC,OAAA,EAAYC,MAAO;MACrBgB,WAAA,CAAAf,IAAA,UAAAD,MAAA;MAEAgB,WAAY,CAAAd,MAAI,CAAK,GAAE,aAAAH,OAAA;IAAA,EAAI;IAAA,IAAUI,OAAA,GAAAa,WAC3B,CAAAb,OAAK;IACf,KAAAA,OAAA,WAAAA,OAAA,yBAAAC,KAAA;IACA,MAAM,IAAAN,OAAU,WAAAC,OAAc,EAAKC,MAAE,EAAM;MAC3C,OAAMgB,WAAmB,CAAAF,KAAA,WAASC,KAAW;QAC3C,OAAMA,KAAA,GAAAf,MAAiB,CAAAe,KAAI,IAAAhB,OAAA;MAC3B;IACE;IACE,IAAAM,GAAA,OAAMb,IAAA,GAAAc,GAAW,QAAM,YAAMC,OAAA;MAAyC,OACpEA,OAAA,CAASC,IAAE,CAAAD,OAAA,CAAAU,GAAA,CAAAC,MAAA,sBAAqC;IAAA;IAElD,IAAAC,OAAA,GAAOvB,aAAM,CAASS,GAAA,EAAK;MAC3BI,IAAA,aAAQ;MAAAC,IACV,EAAAP,OAAS,CAAAO;IACP;IAAgD,UAC3CZ,OAAA,WAAWC,OAAS,EAAAC,MAAA;MAAA,IAC3BoB,SAAA,GAAAC,IAAA,CAAAC,GAAA;MACF,IAAAC,KAAA,kBAAAA,CAAA;QACA,IAAK;UACN,IAAAC,QAAA,SAAAC,KAAA,qBAAAtB,OAAA,CAAAO,IAAA;YACKgB,OAAA,EAAW;cACV,qBAAqB;YAC5B;UACM;UACPhC,MAAA,OAAA8B,QAAA,CAAAhB,IAAA,IAAAmB,IAAA;UACF5B,OAAA","ignoreList":[]}
@@ -1,4 +1,6 @@
1
1
  import FSExtra from "fs-extra";
2
+ import { randomUUID } from "node:crypto";
3
+ import { rename, rm } from "node:fs/promises";
2
4
  import { join } from "node:path";
3
5
  async function readState(cacheDir) {
4
6
  const statePath = join(cacheDir, "state.json");
@@ -11,8 +13,16 @@ async function readState(cacheDir) {
11
13
  }
12
14
  async function writeState(cacheDir, state) {
13
15
  const statePath = join(cacheDir, "state.json");
16
+ const pendingStatePath = `${statePath}.${process.pid}.${randomUUID()}.tmp`;
14
17
  await FSExtra.ensureDir(cacheDir);
15
- await FSExtra.writeJSON(statePath, state);
18
+ try {
19
+ await FSExtra.writeJSON(pendingStatePath, state);
20
+ await rename(pendingStatePath, statePath);
21
+ } finally {
22
+ await rm(pendingStatePath, {
23
+ force: true
24
+ });
25
+ }
16
26
  }
17
27
  export { readState, writeState };
18
28
  //# sourceMappingURL=state.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["FSExtra","join","readState","cacheDir","statePath","state","pathExists","readJSON","writeState","ensureDir","writeJSON"],"sources":["../../src/utils/state.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,OAAA,MAAa;AACpB,SAASC,IAAA,QAAY;AAMrB,eAAsBC,UAAUC,QAAA,EAAkB;EAChD,MAAMC,SAAA,GAAYH,IAAA,CAAKE,QAAA,EAAU,YAAY;EAC7C,IAAI;IACF,MAAME,KAAA,GAAgB,OAAML,OAAA,CAAQM,UAAA,CAAWF,SAAS,KACpD,MAAMJ,OAAA,CAAQO,QAAA,CAASH,SAAS,IAChC,CAAC;IACL,OAAOC,KAAA;EACT,QAAQ;IAEN,OAAO,CAAC;EACV;AACF;AAEA,eAAsBG,WAAWL,QAAA,EAAkBE,KAAA,EAAc;EAC/D,MAAMD,SAAA,GAAYH,IAAA,CAAKE,QAAA,EAAU,YAAY;EAC7C,MAAMH,OAAA,CAAQS,SAAA,CAAUN,QAAQ;EAChC,MAAMH,OAAA,CAAQU,SAAA,CAAUN,SAAA,EAAWC,KAAK;AAC1C","ignoreList":[]}
1
+ {"version":3,"names":["FSExtra","randomUUID","rename","rm","join","readState","cacheDir","statePath","state","pathExists","readJSON","writeState","pendingStatePath","process","pid","ensureDir","writeJSON","force"],"sources":["../../src/utils/state.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,OAAA,MAAa;AACpB,SAASC,UAAA,QAAkB;AAC3B,SAASC,MAAA,EAAQC,EAAA,QAAU;AAC3B,SAASC,IAAA,QAAY;AAMrB,eAAsBC,UAAUC,QAAA,EAAkB;EAChD,MAAMC,SAAA,GAAYH,IAAA,CAAKE,QAAA,EAAU,YAAY;EAC7C,IAAI;IACF,MAAME,KAAA,GAAgB,OAAMR,OAAA,CAAQS,UAAA,CAAWF,SAAS,KACpD,MAAMP,OAAA,CAAQU,QAAA,CAASH,SAAS,IAChC,CAAC;IACL,OAAOC,KAAA;EACT,QAAQ;IAEN,OAAO,CAAC;EACV;AACF;AAEA,eAAsBG,WAAWL,QAAA,EAAkBE,KAAA,EAAc;EAC/D,MAAMD,SAAA,GAAYH,IAAA,CAAKE,QAAA,EAAU,YAAY;EAC7C,MAAMM,gBAAA,GAAmB,GAAGL,SAAS,IAAIM,OAAA,CAAQC,GAAG,IAAIb,UAAA,CAAW,CAAC;EACpE,MAAMD,OAAA,CAAQe,SAAA,CAAUT,QAAQ;EAChC,IAAI;IACF,MAAMN,OAAA,CAAQgB,SAAA,CAAUJ,gBAAA,EAAkBJ,KAAK;IAC/C,MAAMN,MAAA,CAAOU,gBAAA,EAAkBL,SAAS;EAC1C,UAAE;IACA,MAAMJ,EAAA,CAAGS,gBAAA,EAAkB;MAAEK,KAAA,EAAO;IAAK,CAAC;EAC5C;AACF","ignoreList":[]}