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
@@ -4,7 +4,7 @@ import { tmpdir } from "node:os";
4
4
  import { join } from "node:path";
5
5
  import { readPackageJSON } from "pkg-types";
6
6
  import { getServerOptionsFilled } from "./getServerOptionsFilled.mjs";
7
- import { readState, writeState } from "../utils/state.mjs";
7
+ import { readState } from "../utils/state.mjs";
8
8
  import { getCacheDir } from "../utils/getCacheDir.mjs";
9
9
  const require2 = createRequire(import.meta.url);
10
10
  let optionsFilled = null;
@@ -26,9 +26,6 @@ async function fillOptions(options, {
26
26
  } : void 0;
27
27
  const versionHash = hashString(JSON.stringify(packageJSON));
28
28
  const clean = options.clean ?? (state.versionHash && state.versionHash !== versionHash) ? "vite" : false;
29
- void writeState(cacheDir, {
30
- versionHash
31
- });
32
29
  if (typeof options.build?.server !== "boolean" && !options.build?.server) {
33
30
  options.build ||= {};
34
31
  options.build.server = false;
@@ -54,7 +51,8 @@ async function fillOptions(options, {
54
51
  packageVersions,
55
52
  state,
56
53
  packageRootDir,
57
- cacheDir
54
+ cacheDir,
55
+ versionHash
58
56
  };
59
57
  optionsFilled = final;
60
58
  return final;
@@ -1 +1 @@
1
- {"version":3,"names":["createHash","createRequire","tmpdir","join","readPackageJSON","getServerOptionsFilled","readState","writeState","getCacheDir","require","import","meta","url","optionsFilled","fillOptions","options","mode","root","process","cwd","entries","devMode","packageRootDir","resolve","cacheDir","state","packageJSON","Promise","all","deps","dependencies","packageVersions","react","replace","reactNative","versionHash","hashString","JSON","stringify","clean","build","server","debugBundlePath","debugBundle","Math","round","random","final","debugBundlePaths","ios","android","native","getOptionsFilled","str","hash","update","digest"],"sources":["../../src/config/getOptionsFilled.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createHash","createRequire","tmpdir","join","readPackageJSON","getServerOptionsFilled","readState","getCacheDir","require","import","meta","url","optionsFilled","fillOptions","options","mode","root","process","cwd","entries","devMode","packageRootDir","resolve","cacheDir","state","packageJSON","Promise","all","deps","dependencies","packageVersions","react","replace","reactNative","versionHash","hashString","JSON","stringify","clean","build","server","debugBundlePath","debugBundle","Math","round","random","final","debugBundlePaths","ios","android","native","getOptionsFilled","str","hash","update","digest"],"sources":["../../src/config/getOptionsFilled.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,7 @@ import { tmpdir } from "os";
4
4
  import { join } from "path";
5
5
  import { readPackageJSON } from "pkg-types";
6
6
  import { getServerOptionsFilled } from "./getServerOptionsFilled.native.js";
7
- import { readState, writeState } from "../utils/state.native.js";
7
+ import { readState } from "../utils/state.native.js";
8
8
  import { getCacheDir } from "../utils/getCacheDir.native.js";
9
9
  var require2 = createRequire(import.meta.url);
10
10
  var optionsFilled = null;
@@ -29,9 +29,6 @@ async function fillOptions(options) {
29
29
  } : void 0;
30
30
  var versionHash = hashString(JSON.stringify(packageJSON));
31
31
  var clean = ((_options_clean = options.clean) !== null && _options_clean !== void 0 ? _options_clean : state.versionHash && state.versionHash !== versionHash) ? "vite" : false;
32
- void writeState(cacheDir, {
33
- versionHash
34
- });
35
32
  if (typeof ((_options_build = options.build) === null || _options_build === void 0 ? void 0 : _options_build.server) !== "boolean" && !((_options_build1 = options.build) === null || _options_build1 === void 0 ? void 0 : _options_build1.server)) {
36
33
  var _options;
37
34
  (_options = options).build || (_options.build = {});
@@ -58,7 +55,8 @@ async function fillOptions(options) {
58
55
  packageVersions,
59
56
  state,
60
57
  packageRootDir,
61
- cacheDir
58
+ cacheDir,
59
+ versionHash
62
60
  };
63
61
  optionsFilled = final;
64
62
  return final;
@@ -1 +1 @@
1
- {"version":3,"names":["createHash","createRequire","tmpdir","join","readPackageJSON","getServerOptionsFilled","readState","writeState","getCacheDir","require2","import","meta","url","optionsFilled","fillOptions","options","mode","arguments","length","_options_clean","_options_build","_options_build1","root","process","cwd","entries","devMode","packageRootDir","resolve","cacheDir","state","packageJSON","Promise","all","deps","dependencies","packageVersions","react","replace","reactNative","versionHash","hashString","JSON","stringify","clean","build","server","_options","debugBundlePath","debugBundle","Math","round","random","final","debugBundlePaths","ios","android","native"],"sources":["../../src/config/getOptionsFilled.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,QAAkB;AAC3B,SAASC,aAAA,QAAqB;AAC9B,SAASC,MAAA,QAAc;AACvB,SAASC,IAAA,QAAY;AACrB,SAASC,eAAA,QAAuB;AAEhC,SAASC,sBAAA,QAA8B;AACvC,SAASC,SAAA,EAAWC,UAAA,QAAkB;AACtC,SAASC,WAAA,QAAmB;AAE5B,IAAAC,QAAM,GAAAR,aAAU,CAAAS,MAAc,CAAAC,IAAA,CAAAC,GAAY;AAgC1C,IAAIC,aAAA,GAA0C;AAE9C,eAAsBC,YACpBC,OAAA,EACA;EAEA;IAAMC,IAAE;EAAO,IAAQC,SAAO,CAAAC,MAAQ,GAAI,KAAAD,SAAA,iBAAAA,SAAA;EAE1C,IAAAE,cAAgB;EAEhB,IAAAC,cAAM,EAAAC,eAAsB;EAC5B;IAAMC,IAAA,GAAAC,OAAW,CAAAC,GAAA;IAAAC;EAAgB,IAAAV,OAAA;EAEjC,IAAAW,OAAO,GAAOX,OAAA,CAAAC,IAAW,KAAI,YAAc,QAAK,GAAAA,IAAU,UAAQ;EAElE,IAAAW,cAAa,GAAAxB,IAAY,CAAAM,QAAA,CAAAmB,OAAiB;EAE1C,IAAAC,QAAM,GAAArB,WACJ,CAAAc,IAAK;EACD,IACE,CAAAQ,KAAO,EAAAC,WAAW,UAAQC,OAAW,CAAAC,GAAA,EACrC3B,SAAA,CAAAuB,QAAkB,GACpBzB,eACA,GAEN;EACA,IAAA8B,IAAM,GAAAH,WACK,CAAAI,YAAU,IAAM;EAK3B,IAAAC,eAAgB,GAAAF,IAAU,CAAAG,KAAE,IAAAH,IAAY,CAAC;IAEzCG,KAAI,EAAAH,IAAO,CAAAG,KAAQ,CAAAC,OAAO,UAAW;IAEnCC,WAAQ,EAAAL,IAAA,CAAU,cAAC,EAAAI,OAAA;EACnB,UAAQ;EACV,IAAAE,WAAA,GAAAC,UAAA,CAAAC,IAAA,CAAAC,SAAA,CAAAZ,WAAA;EAEA,IAAAa,KAAM,KAAAzB,cACJ,GAAAJ,OAAQ,CAAA6B,KAAA,MAAe,IAAO,IAAAzB,cAAQ,UAAgB,IAAAA,cAC1C,GAAAW,KAAA,CAAAU,WACH,IAAOV,KAAG,CAAAU,WAAe,KAAAA,WAAW,IAAO,MAAY,QAAK;EAEvE,KAAAjC,UAAc,CAAAsB,QAAA;IACZW;EAAG;EAAA,IAEH,SAAApB,cAAkB,GAAAL,OAAA,CAAA8B,KAAA,cAAAzB,cAAA,uBAAAA,cAAA,CAAA0B,MAAA,sBAAAzB,eAAA,GAAAN,OAAA,CAAA8B,KAAA,cAAAxB,eAAA,uBAAAA,eAAA,CAAAyB,MAAA;IAAA,IAChBC,QAAK;IAAA,CAAAA,QACL,GAAShC,OAAA,EAAA8B,KAAA,KAAAE,QAAA,CAAAF,KAAA;IACX9B,OAAA,CAAA8B,KAAA,CAAAC,MAAA;EAAA;EAC4C,IAC5CE,eAAA,GAAAjC,OAAA,CAAAkC,WAAA,WAAAlC,OAAA,CAAAkC,WAAA,gBAAAlC,OAAA,CAAAkC,WAAA,GAAA9C,IAAA,CAAAD,MAAA,cAAAgD,IAAA,CAAAC,KAAA,CAAAD,IAAA,CAAAE,MAAA;EAAA,IACAC,KAAA;IACA,GAAAtC,OAAQ;IACR;IAASuC,gBACC;MACRC,GAAA,EAAAP,eAAQ;MACRQ,OAAG,EAAAR;IACL;IACAhC,IAAA,EAAAU,OAAA;IACAkB,KAAA;IACAtB,IAAA;IACAwB,MAAA,QAAAzC,sBAAA,CAAAU,OAAA,CAAA+B,MAAA,EAAA9B,IAAA;IACAS,OAAA;MACFgC,MAAA;MAEAX,MAAA,0BAAgB;MAEhB,GAAOrB;IACT;IAEOM,WAAS;IACdK,eAAO;IACTN,KAAA;IAEAH,cAAS;IACPE;EACA;EACAhB,aAAY,GAAAwC,KAAO;EACrB,OAAAA,KAAA","ignoreList":[]}
1
+ {"version":3,"names":["createHash","createRequire","tmpdir","join","readPackageJSON","getServerOptionsFilled","readState","getCacheDir","require2","import","meta","url","optionsFilled","fillOptions","options","mode","arguments","length","_options_clean","_options_build","_options_build1","root","process","cwd","entries","devMode","packageRootDir","resolve","cacheDir","state","packageJSON","Promise","all","deps","dependencies","packageVersions","react","replace","reactNative","versionHash","hashString","JSON","stringify","clean","build","server","_options","debugBundlePath","debugBundle","Math","round","random","final","debugBundlePaths","ios","android","native","getOptionsFilled"],"sources":["../../src/config/getOptionsFilled.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,QAAkB;AAC3B,SAASC,aAAA,QAAqB;AAC9B,SAASC,MAAA,QAAc;AACvB,SAASC,IAAA,QAAY;AACrB,SAASC,eAAA,QAAuB;AAEhC,SAASC,sBAAA,QAA8B;AACvC,SAASC,SAAA,QAAiB;AAC1B,SAASC,WAAA,QAAmB;AAE5B,IAAAC,QAAM,GAAAP,aAAU,CAAAQ,MAAc,CAAAC,IAAA,CAAAC,GAAY;AAgC1C,IAAIC,aAAA,GAA0C;AAE9C,eAAsBC,YACpBC,OAAA,EACA;EAEA;IAAMC,IAAE;EAAO,IAAQC,SAAO,CAAAC,MAAQ,GAAI,KAAAD,SAAA,iBAAAA,SAAA;EAE1C,IAAAE,cAAgB;EAEhB,IAAAC,cAAM,EAAAC,eAAsB;EAC5B;IAAMC,IAAA,GAAAC,OAAW,CAAAC,GAAA;IAAAC;EAAgB,IAAAV,OAAA;EAEjC,IAAAW,OAAO,GAAOX,OAAA,CAAAC,IAAW,KAAI,YAAc,QAAK,GAAAA,IAAU,UAAQ;EAElE,IAAAW,cAAa,GAAAvB,IAAY,CAAAK,QAAA,CAAAmB,OAAiB;EAE1C,IAAAC,QAAM,GAAArB,WACJ,CAAAc,IAAK;EACD,IACE,CAAAQ,KAAO,EAAAC,WAAW,UAAQC,OAAW,CAAAC,GAAA,EACrC1B,SAAA,CAAAsB,QAAkB,GACpBxB,eACA,GAEN;EACA,IAAA6B,IAAM,GAAAH,WACK,CAAAI,YAAU,IAAM;EAI3B,IAAIC,eAAe,GAAAF,IAAO,CAAAG,KAAA,IAAAH,IAAW,eAAc,IAAQ;IAEzDG,KAAA,EAAAH,IAAQ,CAAAG,KAAA,CAAUC,OAAC;IACnBC,WAAQ,EAAAL,IAAM,eAAS,EAAAI,OAAA;EACzB;EAEA,IAAAE,WAAM,GAAAC,UACJ,CAAAC,IAAQ,CAAAC,SAAA,CAAAZ,WAAsB;EAIhC,IAAAa,KAAM,KAAQzB,cAAA,GAAAJ,OAAA,CAAA6B,KAAA,cAAAzB,cAAA,cAAAA,cAAA,GAAAW,KAAA,CAAAU,WAAA,IAAAV,KAAA,CAAAU,WAAA,KAAAA,WAAA;EAAA,IACZ,QAAG,CAAApB,cAAA,GAAAL,OAAA,CAAA8B,KAAA,cAAAzB,cAAA,uBAAAA,cAAA,CAAA0B,MAAA,sBAAAzB,eAAA,GAAAN,OAAA,CAAA8B,KAAA,cAAAxB,eAAA,uBAAAA,eAAA,CAAAyB,MAAA;IAAA,IAAAC,QAAA;IAEH,CAAAA,QAAA,GAAAhC,OAAkB,EAAA8B,KAAA,KAAAE,QAAA,CAAAF,KAAA;IAAA9B,OACX,CAAA8B,KAAA,CAAAC,MAAA;EAAA;EACI,IACXE,eAAA,GAAAjC,OAAA,CAAAkC,WAAA,WAAAlC,OAAA,CAAAkC,WAAA,gBAAAlC,OAAA,CAAAkC,WAAA,GAAA7C,IAAA,CAAAD,MAAA,cAAA+C,IAAA,CAAAC,KAAA,CAAAD,IAAA,CAAAE,MAAA;EAAA,IACAC,KAAM;IACN,GAAAtC,OAAA;IACA;IACAuC,gBAAc;MACdC,GAAA,EAAAP,eAAS;MACPQ,OAAA,EAAQR;IAAA;IACAhC,IACR,EAAGU,OAAA;IACLkB,KAAA;IACAtB,IAAA;IACAwB,MAAA,QAAAxC,sBAAA,CAAAS,OAAA,CAAA+B,MAAA,EAAA9B,IAAA;IACAS,OAAA;MACAgC,MAAA;MACAX,MAAA;MACA,GAAArB;IACF;IAEAM,WAAA;IAEAK,eAAO;IACTN,KAAA;IAEOH,cAAS;IACdE,QAAO;IACTW;EAEA;EACE3B,aAAa,GAAAwC,KAAA;EACb,OAAKA,KAAO;AACZ;AACF,SAAAK,iBAAA","ignoreList":[]}
@@ -2,13 +2,14 @@ import { getPort } from "get-port-please";
2
2
  async function getServerOptionsFilled(serverOptions, mode) {
3
3
  const {
4
4
  host = "0.0.0.0",
5
- port: requestedPort
5
+ port: requestedPort,
6
+ https
6
7
  } = serverOptions || {};
7
8
  const envPort = process.env.ONE_PORT ? Number(process.env.ONE_PORT) : void 0;
8
9
  const forcePort = process.env.ONE_FORCE_PORT ? Number(process.env.ONE_FORCE_PORT) : void 0;
9
10
  const defaultPort = mode === "dev" ? 8081 : 3e3;
10
11
  const portToUse = forcePort ?? requestedPort ?? envPort ?? defaultPort;
11
- const protocol = "http:";
12
+ const protocol = https ? "https:" : "http:";
12
13
  const isClusterWorker = process.env.ONE_CLUSTER_WORKER === "1";
13
14
  let port;
14
15
  if (isClusterWorker) {
@@ -1 +1 @@
1
- {"version":3,"names":["getPort","getServerOptionsFilled","serverOptions","mode","host","port","requestedPort","envPort","process","env","ONE_PORT","Number","forcePort","ONE_FORCE_PORT","defaultPort","portToUse","protocol","isClusterWorker","ONE_CLUSTER_WORKER","isExplicitPort","portRange","Error","urlHost","loadEnv","compress","url"],"sources":["../../src/config/getServerOptionsFilled.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,QAAe;AAGxB,eAAsBC,uBACpBC,aAAA,EACAC,IAAA,EACiC;EACjC,MAAM;IACJC,IAAA,GAAO;IACPC,IAAA,EAAMC;EACR,IAAIJ,aAAA,IAAiB,CAAC;EAEtB,MAAMK,OAAA,GAAUC,OAAA,CAAQC,GAAA,CAAIC,QAAA,GAAWC,MAAA,CAAOH,OAAA,CAAQC,GAAA,CAAIC,QAAQ,IAAI;EACtE,MAAME,SAAA,GAAYJ,OAAA,CAAQC,GAAA,CAAII,cAAA,GAC1BF,MAAA,CAAOH,OAAA,CAAQC,GAAA,CAAII,cAAc,IACjC;EACJ,MAAMC,WAAA,GAAcX,IAAA,KAAS,QAAQ,OAAO;EAC5C,MAAMY,SAAA,GAAYH,SAAA,IAAaN,aAAA,IAAiBC,OAAA,IAAWO,WAAA;EAC3D,MAAME,QAAA,GAAW;EAIjB,MAAMC,eAAA,GAAkBT,OAAA,CAAQC,GAAA,CAAIS,kBAAA,KAAuB;EAE3D,IAAIb,IAAA;EACJ,IAAIY,eAAA,EAAiB;IACnBZ,IAAA,GAAOU,SAAA;EACT,OAAO;IAGL,MAAMI,cAAA,GAAiB,CAAC,EAAEP,SAAA,IAAaN,aAAA,IAAiBC,OAAA;IACxDF,IAAA,GAAO,MAAML,OAAA,CAAQ;MACnBK,IAAA,EAAMU,SAAA;MACNK,SAAA,EAAWD,cAAA,GAAiB,CAACJ,SAAA,EAAWA,SAAS,IAAI,CAACA,SAAA,EAAWA,SAAA,GAAY,GAAG;MAChFX;IACF,CAAC;IAGD,IAAIe,cAAA,IAAkBd,IAAA,KAASU,SAAA,EAAW;MACxC,MAAM,IAAIM,KAAA,CACR,QAAQN,SAAS,kEACnB;IACF;EACF;EAGA,MAAMO,OAAA,GAAUlB,IAAA,KAAS,YAAY,cAAcA,IAAA;EAEnD,OAAO;IACLmB,OAAA,EAAS;IACTC,QAAA,EAAU;IACV,GAAGtB,aAAA;IACHG,IAAA;IACAD,IAAA;IACAY,QAAA;IACAS,GAAA,EAAK,GAAGT,QAAQ,KAAKM,OAAO,IAAIjB,IAAI;EACtC;AACF","ignoreList":[]}
1
+ {"version":3,"names":["getPort","getServerOptionsFilled","serverOptions","mode","host","port","requestedPort","https","envPort","process","env","ONE_PORT","Number","forcePort","ONE_FORCE_PORT","defaultPort","portToUse","protocol","isClusterWorker","ONE_CLUSTER_WORKER","isExplicitPort","portRange","Error","urlHost","loadEnv","compress","url"],"sources":["../../src/config/getServerOptionsFilled.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,QAAe;AAGxB,eAAsBC,uBACpBC,aAAA,EACAC,IAAA,EACiC;EACjC,MAAM;IACJC,IAAA,GAAO;IACPC,IAAA,EAAMC,aAAA;IACNC;EACF,IAAIL,aAAA,IAAiB,CAAC;EAEtB,MAAMM,OAAA,GAAUC,OAAA,CAAQC,GAAA,CAAIC,QAAA,GAAWC,MAAA,CAAOH,OAAA,CAAQC,GAAA,CAAIC,QAAQ,IAAI;EACtE,MAAME,SAAA,GAAYJ,OAAA,CAAQC,GAAA,CAAII,cAAA,GAC1BF,MAAA,CAAOH,OAAA,CAAQC,GAAA,CAAII,cAAc,IACjC;EACJ,MAAMC,WAAA,GAAcZ,IAAA,KAAS,QAAQ,OAAO;EAC5C,MAAMa,SAAA,GAAYH,SAAA,IAAaP,aAAA,IAAiBE,OAAA,IAAWO,WAAA;EAC3D,MAAME,QAAA,GAAWV,KAAA,GAAS,WAAsB;EAIhD,MAAMW,eAAA,GAAkBT,OAAA,CAAQC,GAAA,CAAIS,kBAAA,KAAuB;EAE3D,IAAId,IAAA;EACJ,IAAIa,eAAA,EAAiB;IACnBb,IAAA,GAAOW,SAAA;EACT,OAAO;IAGL,MAAMI,cAAA,GAAiB,CAAC,EAAEP,SAAA,IAAaP,aAAA,IAAiBE,OAAA;IACxDH,IAAA,GAAO,MAAML,OAAA,CAAQ;MACnBK,IAAA,EAAMW,SAAA;MACNK,SAAA,EAAWD,cAAA,GAAiB,CAACJ,SAAA,EAAWA,SAAS,IAAI,CAACA,SAAA,EAAWA,SAAA,GAAY,GAAG;MAChFZ;IACF,CAAC;IAGD,IAAIgB,cAAA,IAAkBf,IAAA,KAASW,SAAA,EAAW;MACxC,MAAM,IAAIM,KAAA,CACR,QAAQN,SAAS,kEACnB;IACF;EACF;EAGA,MAAMO,OAAA,GAAUnB,IAAA,KAAS,YAAY,cAAcA,IAAA;EAEnD,OAAO;IACLoB,OAAA,EAAS;IACTC,QAAA,EAAU;IACV,GAAGvB,aAAA;IACHG,IAAA;IACAD,IAAA;IACAa,QAAA;IACAS,GAAA,EAAK,GAAGT,QAAQ,KAAKM,OAAO,IAAIlB,IAAI;EACtC;AACF","ignoreList":[]}
@@ -4,13 +4,14 @@ async function getServerOptionsFilled(serverOptions, mode) {
4
4
  var {
5
5
  host = "0.0.0.0",
6
6
  /* TODO: Better default to 127.0.0.1 due to security reasons, and only dynamically change to 0.0.0.0 if the user is requesting an Expo QR code */
7
- port: requestedPort
7
+ port: requestedPort,
8
+ https
8
9
  } = serverOptions || {};
9
10
  var envPort = process.env.ONE_PORT ? Number(process.env.ONE_PORT) : void 0;
10
11
  var forcePort = process.env.ONE_FORCE_PORT ? Number(process.env.ONE_FORCE_PORT) : void 0;
11
12
  var defaultPort = mode === "dev" ? 8081 : 3e3;
12
13
  var portToUse = (_ref = (_ref1 = forcePort !== null && forcePort !== void 0 ? forcePort : requestedPort) !== null && _ref1 !== void 0 ? _ref1 : envPort) !== null && _ref !== void 0 ? _ref : defaultPort;
13
- var protocol = "http:";
14
+ var protocol = https ? "https:" : "http:";
14
15
  var isClusterWorker = process.env.ONE_CLUSTER_WORKER === "1";
15
16
  var port;
16
17
  if (isClusterWorker) {
@@ -1 +1 @@
1
- {"version":3,"names":["getPort","getServerOptionsFilled","serverOptions","mode","_ref","_ref1","host","port","requestedPort","envPort","process","env","ONE_PORT","Number","forcePort","ONE_FORCE_PORT","defaultPort","portToUse","protocol","isClusterWorker","ONE_CLUSTER_WORKER","_ref2","isExplicitPort","portRange","Error","urlHost","loadEnv","compress"],"sources":["../../src/config/getServerOptionsFilled.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,QAAe;AAGxB,eAAsBC,uBACpBC,aAAA,EACAC,IAAA,EACiC;EACjC,IAAAC,IAAM,EAAAC,KAAA;EAAA,IACJ;IACAC,IAAA,GAAM;IACR;IAEAC,IAAM,EAAAC;EACN,IAAAN,aAAM,IAAY;EAGlB,IAAAO,OAAM,GAAAC,OAAc,CAAAC,GAAA,CAAAC,QAAS,GAAQC,MAAA,CAAOH,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAC5C,IAAAE,SAAM,GAAAJ,OAAY,CAAAC,GAAA,CAAAI,cAAa,GAAAF,MAAiB,CAAAH,OAAW,CAAAC,GAAA,CAAAI,cAAA;EAC3D,IAAAC,WAAM,GAAWb,IAAA;EAIjB,IAAAc,SAAM,IAAAb,IAAA,GAAkB,CAAAC,KAAA,GAAQS,SAAI,aAAAA,SAAuB,cAAAA,SAAA,GAAAN,aAAA,cAAAH,KAAA,cAAAA,KAAA,GAAAI,OAAA,cAAAL,IAAA,cAAAA,IAAA,GAAAY,WAAA;EAE3D,IAAIE,QAAA;EACJ,IAAIC,eAAA,GAAiBT,OAAA,CAAAC,GAAA,CAAAS,kBAAA;EACnB,IAAAb,IAAA;EACF,IAAAY,eAAO;IAGLZ,IAAA,GAAMU,SAAA;EACN;IAAqB,IACnBI,KAAM;IAAA,IACNC,cAAW,OAAAD,KAAiB,GAACP,SAAW,SAAS,IAAIA,SAAC,KAAW,SAAAA,SAAe,GAAAN,aAAA,cAAAa,KAAA,cAAAA,KAAA,GAAAZ,OAAA;IAAAF,IAChF,SAAAP,OAAA;MACDO,IAAA,EAAAU,SAAA;MAGDM,SAAI,EAAAD,cAAkB,IACpBL,SAAU,EACRA,SAAQ,CACV,IACFA,SAAA,EACFA,SAAA,OAGA;MAEAX;IACE;IACA,IAAAgB,cAAU,IAAAf,IAAA,KAAAU,SAAA;MACV,MAAG,IAAAO,KAAA,SAAAP,SAAA;IACH;EAAA;EACA,IACAQ,OAAA,GAAAnB,IAAA,+BAAAA,IAAA;EAAA,OACK;IACPoB,OAAA;IACFC,QAAA","ignoreList":[]}
1
+ {"version":3,"names":["getPort","getServerOptionsFilled","serverOptions","mode","_ref","_ref1","host","port","requestedPort","https","envPort","process","env","ONE_PORT","Number","forcePort","ONE_FORCE_PORT","defaultPort","portToUse","protocol","isClusterWorker","ONE_CLUSTER_WORKER","_ref2","isExplicitPort","portRange","Error","urlHost","loadEnv","compress"],"sources":["../../src/config/getServerOptionsFilled.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,QAAe;AAGxB,eAAsBC,uBACpBC,aAAA,EACAC,IAAA,EACiC;EACjC,IAAAC,IAAM,EAAAC,KAAA;EAAA,IACJ;IACAC,IAAA,GAAM;IACN;IACFC,IAAI,EAAAC,aAAiB;IAErBC;EACA,IAAAP,aAAM,IAAY;EAGlB,IAAAQ,OAAM,GAAAC,OAAc,CAAAC,GAAA,CAAAC,QAAS,GAAQC,MAAA,CAAOH,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAC5C,IAAAE,SAAM,GAAAJ,OAAY,CAAAC,GAAA,CAAAI,cAAa,GAAAF,MAAiB,CAAAH,OAAW,CAAAC,GAAA,CAAAI,cAAA;EAC3D,IAAAC,WAAM,GAAWd,IAAA,KAAS,YAAsB;EAIhD,IAAAe,SAAM,IAAAd,IAAA,GAAkB,CAAAC,KAAA,GAAQU,SAAI,aAAAA,SAAuB,cAAAA,SAAA,GAAAP,aAAA,cAAAH,KAAA,cAAAA,KAAA,GAAAK,OAAA,cAAAN,IAAA,cAAAA,IAAA,GAAAa,WAAA;EAE3D,IAAIE,QAAA,GAAAV,KAAA;EACJ,IAAIW,eAAA,GAAiBT,OAAA,CAAAC,GAAA,CAAAS,kBAAA;EACnB,IAAAd,IAAA;EACF,IAAAa,eAAO;IAGLb,IAAA,GAAMW,SAAA;EACN;IAAqB,IACnBI,KAAM;IAAA,IACNC,cAAW,OAAAD,KAAiB,GAACP,SAAW,SAAS,IAAIA,SAAC,KAAW,SAAAA,SAAe,GAAAP,aAAA,cAAAc,KAAA,cAAAA,KAAA,GAAAZ,OAAA;IAAAH,IAChF,SAAAP,OAAA;MACDO,IAAA,EAAAW,SAAA;MAGDM,SAAI,EAAAD,cAAkB,IACpBL,SAAU,EACRA,SAAQ,CACV,IACFA,SAAA,EACFA,SAAA,OAGA;MAEAZ;IACE;IACA,IAAAiB,cAAU,IAAAhB,IAAA,KAAAW,SAAA;MACV,MAAG,IAAAO,KAAA,SAAAP,SAAA;IACH;EAAA;EACA,IACAQ,OAAA,GAAApB,IAAA,+BAAAA,IAAA;EAAA,OACK;IACPqB,OAAA;IACFC,QAAA","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ import { describe, expect, test } from "vitest";
2
+ import { getServerOptionsFilled } from "./getServerOptionsFilled.mjs";
3
+ describe("getServerOptionsFilled", () => {
4
+ test("uses the configured TLS protocol in the public server URL", async () => {
5
+ const server = await getServerOptionsFilled({
6
+ host: "127.0.0.1",
7
+ https: {
8
+ cert: "certificate",
9
+ key: "private-key"
10
+ }
11
+ }, "dev");
12
+ expect(server.protocol).toBe("https:");
13
+ expect(server.url).toBe(`https://127.0.0.1:${server.port}`);
14
+ expect(server.https).toEqual({
15
+ cert: "certificate",
16
+ key: "private-key"
17
+ });
18
+ });
19
+ });
20
+ //# sourceMappingURL=getServerOptionsFilled.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","expect","test","getServerOptionsFilled","server","host","https","cert","key","protocol","toBe","url","port","toEqual"],"sources":["../../src/config/getServerOptionsFilled.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,IAAA,QAAY;AACvC,SAASC,sBAAA,QAA8B;AAEvCH,QAAA,CAAS,0BAA0B,MAAM;EACvCE,IAAA,CAAK,6DAA6D,YAAY;IAC5E,MAAME,MAAA,GAAS,MAAMD,sBAAA,CACnB;MACEE,IAAA,EAAM;MACNC,KAAA,EAAO;QACLC,IAAA,EAAM;QACNC,GAAA,EAAK;MACP;IACF,GACA,KACF;IAEAP,MAAA,CAAOG,MAAA,CAAOK,QAAQ,EAAEC,IAAA,CAAK,QAAQ;IACrCT,MAAA,CAAOG,MAAA,CAAOO,GAAG,EAAED,IAAA,CAAK,qBAAqBN,MAAA,CAAOQ,IAAI,EAAE;IAC1DX,MAAA,CAAOG,MAAA,CAAOE,KAAK,EAAEO,OAAA,CAAQ;MAC3BN,IAAA,EAAM;MACNC,GAAA,EAAK;IACP,CAAC;EACH,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ import { describe, expect, test } from "vitest";
2
+ import { getServerOptionsFilled } from "./getServerOptionsFilled.native.js";
3
+ describe("getServerOptionsFilled", function () {
4
+ test("uses the configured TLS protocol in the public server URL", async function () {
5
+ var server = await getServerOptionsFilled({
6
+ host: "127.0.0.1",
7
+ https: {
8
+ cert: "certificate",
9
+ key: "private-key"
10
+ }
11
+ }, "dev");
12
+ expect(server.protocol).toBe("https:");
13
+ expect(server.url).toBe(`https://127.0.0.1:${server.port}`);
14
+ expect(server.https).toEqual({
15
+ cert: "certificate",
16
+ key: "private-key"
17
+ });
18
+ });
19
+ });
20
+ //# sourceMappingURL=getServerOptionsFilled.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","expect","test","getServerOptionsFilled","server","host","https","cert","key","protocol","toBe","url","port","toEqual"],"sources":["../../src/config/getServerOptionsFilled.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,IAAA,QAAY;AACvC,SAASC,sBAAA,QAA8B;AAEvCH,QAAA,CAAS,0BAA0B,YAAM;EACvCE,IAAA,CAAK,6DAA6D,kBAAY;IAC5E,IAAAE,MAAM,SAASD,sBAAM;MACnBE,IAAA;MAAAC,KACE;QACAC,IAAA,eAAO;QAAAC,GACL;MAAM;IACD,QACP;IAAAP,MACF,CAAAG,MAAA,CAAAK,QAAA,EAAAC,IAAA;IAAAT,MACA,CAAAG,MAAA,CAAAO,GAAA,EAAAD,IAAA,sBAAAN,MAAA,CAAAQ,IAAA;IACFX,MAAA,CAAAG,MAAA,CAAAE,KAAA,EAAAO,OAAA;MAEAN,IAAA,EAAO,aAAO;MACdC,GAAA,EAAO;IACP;EAA6B;AACrB","ignoreList":[]}
@@ -19,6 +19,7 @@ async function getViteServerConfig(config, userViteConfig) {
19
19
  path: "/__vxrnhmr"
20
20
  },
21
21
  host: server.host,
22
+ https: server.https,
22
23
  port: server.port
23
24
  },
24
25
  root
@@ -1 +1 @@
1
- {"version":3,"names":["mergeConfig","getBaseViteConfigWithPlugins","getOptimizeDeps","mergeUserConfig","getReactNativePlugins","getAdditionalViteConfig","getViteServerConfig","config","userViteConfig","root","server","optimizeDeps","serverConfig","plugins","hmr","path","host","port","rerouteNoExternalConfig","ssr","noExternal","rest","mergableUserConf","process","env","DEBUG","console","debug","JSON","stringify"],"sources":["../../src/config/getViteServerConfig.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,QAAuD;AAEhE,SAASC,4BAAA,QAAoC;AAC7C,SAASC,eAAA,QAAuB;AAEhC,SAASC,eAAA,QAAuB;AAEhC,SAASC,qBAAA,QAA6B;AACtC,SAASC,uBAAA,QAA+B;AAMxC,eAAsBC,oBACpBC,MAAA,EACAC,cAAA,EACA;EACA,MAAM;IAAEC,IAAA;IAAMC;EAAO,IAAIH,MAAA;EACzB,MAAM;IAAEI;EAAa,IAAIT,eAAA,CAAgB,OAAO;EAGhD,IAAIU,YAAA,GAA2BZ,WAAA,CAC7B,MAAMC,4BAAA,CAA6BM,MAAM,GAEzCP,WAAA,CAAYK,uBAAA,CAAwB,GAAG;IACrCQ,OAAA,EAAS,CAAC,GAAGT,qBAAA,CAAsBG,MAAM,CAAC;IAC1CG,MAAA,EAAQ;MACNI,GAAA,EAAK;QACHC,IAAA,EAAM;MACR;MACAC,IAAA,EAAMN,MAAA,CAAOM,IAAA;MACbC,IAAA,EAAMP,MAAA,CAAOO;IACf;IACAR;EACF,CAAsB,CACxB;EAEA,MAAMS,uBAAA,GAA0BV,cAAA,EAAgBW,GAAA,EAAKC,UAAA,KAAe;EACpE,IAAIF,uBAAA,EAAyB;IAC3B,OAAOV,cAAA,CAAeW,GAAA,CAAKC,UAAA;EAC7B;EAMA,MAAM;IAAEP,OAAA;IAAS,GAAGQ;EAAK,IAAIb,cAAA,IAAkB,CAAC;EAChD,MAAMc,gBAAA,GAAmB;IACvB,GAAGD;EACL;EAEAT,YAAA,GAAeT,eAAA,CAAgBQ,YAAA,EAAcC,YAAA,EAAcU,gBAAgB;EAE3E,IAAIJ,uBAAA,EAAyB;IAC3BN,YAAA,CAAaO,GAAA,CAAKC,UAAA,GAAa;EACjC;EAGA,IAAIG,OAAA,CAAQC,GAAA,CAAIC,KAAA,EAAO;IAErBC,OAAA,CAAQC,KAAA,CAAM,kBAAkBC,IAAA,CAAKC,SAAA,CAAUjB,YAAA,EAAc,MAAM,CAAC,GAAG;AAAA;AAAA,CAAU;EACnF;EAEA,OAAOA,YAAA;AACT","ignoreList":[]}
1
+ {"version":3,"names":["mergeConfig","getBaseViteConfigWithPlugins","getOptimizeDeps","mergeUserConfig","getReactNativePlugins","getAdditionalViteConfig","getViteServerConfig","config","userViteConfig","root","server","optimizeDeps","serverConfig","plugins","hmr","path","host","https","port","rerouteNoExternalConfig","ssr","noExternal","rest","mergableUserConf","process","env","DEBUG","console","debug","JSON","stringify"],"sources":["../../src/config/getViteServerConfig.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,QAAuD;AAEhE,SAASC,4BAAA,QAAoC;AAC7C,SAASC,eAAA,QAAuB;AAEhC,SAASC,eAAA,QAAuB;AAEhC,SAASC,qBAAA,QAA6B;AACtC,SAASC,uBAAA,QAA+B;AAMxC,eAAsBC,oBACpBC,MAAA,EACAC,cAAA,EACA;EACA,MAAM;IAAEC,IAAA;IAAMC;EAAO,IAAIH,MAAA;EACzB,MAAM;IAAEI;EAAa,IAAIT,eAAA,CAAgB,OAAO;EAGhD,IAAIU,YAAA,GAA2BZ,WAAA,CAC7B,MAAMC,4BAAA,CAA6BM,MAAM,GAEzCP,WAAA,CAAYK,uBAAA,CAAwB,GAAG;IACrCQ,OAAA,EAAS,CAAC,GAAGT,qBAAA,CAAsBG,MAAM,CAAC;IAC1CG,MAAA,EAAQ;MACNI,GAAA,EAAK;QACHC,IAAA,EAAM;MACR;MACAC,IAAA,EAAMN,MAAA,CAAOM,IAAA;MACbC,KAAA,EAAOP,MAAA,CAAOO,KAAA;MACdC,IAAA,EAAMR,MAAA,CAAOQ;IACf;IACAT;EACF,CAAsB,CACxB;EAEA,MAAMU,uBAAA,GAA0BX,cAAA,EAAgBY,GAAA,EAAKC,UAAA,KAAe;EACpE,IAAIF,uBAAA,EAAyB;IAC3B,OAAOX,cAAA,CAAeY,GAAA,CAAKC,UAAA;EAC7B;EAMA,MAAM;IAAER,OAAA;IAAS,GAAGS;EAAK,IAAId,cAAA,IAAkB,CAAC;EAChD,MAAMe,gBAAA,GAAmB;IACvB,GAAGD;EACL;EAEAV,YAAA,GAAeT,eAAA,CAAgBQ,YAAA,EAAcC,YAAA,EAAcW,gBAAgB;EAE3E,IAAIJ,uBAAA,EAAyB;IAC3BP,YAAA,CAAaQ,GAAA,CAAKC,UAAA,GAAa;EACjC;EAGA,IAAIG,OAAA,CAAQC,GAAA,CAAIC,KAAA,EAAO;IAErBC,OAAA,CAAQC,KAAA,CAAM,kBAAkBC,IAAA,CAAKC,SAAA,CAAUlB,YAAA,EAAc,MAAM,CAAC,GAAG;AAAA;AAAA,CAAU;EACnF;EAEA,OAAOA,YAAA;AACT","ignoreList":[]}
@@ -20,6 +20,7 @@ async function getViteServerConfig(config, userViteConfig) {
20
20
  path: "/__vxrnhmr"
21
21
  },
22
22
  host: server.host,
23
+ https: server.https,
23
24
  port: server.port
24
25
  },
25
26
  root
@@ -1 +1 @@
1
- {"version":3,"names":["mergeConfig","getBaseViteConfigWithPlugins","getOptimizeDeps","mergeUserConfig","getReactNativePlugins","getAdditionalViteConfig","getViteServerConfig","config","userViteConfig","_userViteConfig_ssr","root","server","optimizeDeps","serverConfig","plugins","hmr","path","host","port","rerouteNoExternalConfig","ssr","noExternal","rest","mergableUserConf","process","env","DEBUG","console","debug","JSON","stringify"],"sources":["../../src/config/getViteServerConfig.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,QAAuD;AAEhE,SAASC,4BAAA,QAAoC;AAC7C,SAASC,eAAA,QAAuB;AAEhC,SAASC,eAAA,QAAuB;AAEhC,SAASC,qBAAA,QAA6B;AACtC,SAASC,uBAAA,QAA+B;AAMxC,eAAsBC,oBACpBC,MAAA,EACAC,cAAA,EACA;EACA,IAAAC,mBAAqB;EACrB;IAAMC,IAAE;IAAAC;EAAA,IAAaJ,MAAI;EAGzB,IAAI;IAAAK;EAA2B,IAAAV,eAAA;EAAA,IAC7BW,YAAM,GAAAb,WAAA,OAA6BC,4BAAM,CAAAM,MAAA,GAAAP,WAAA,CAAAK,uBAAA;IAEzCS,OAAA,GACE,GAAAV,qBAAa,CAAAG,MAAA,EAA6B;IAClCI,MACN;MAAKI,GAAA,EACH;QACFC,IAAA;MAAA;MACaC,IACb,EAAAN,MAAM,CAAAM,IAAO;MACfC,IAAA,EAAAP,MAAA,CAAAO;IAAA;IAEFR;EACF;EAEA,IAAAS,uBAAM,IAAAX,cAA0B,KAAgB,IAAK,IAAAA,cAAe,wBAAAC,mBAAA,GAAAD,cAAA,CAAAY,GAAA,cAAAX,mBAAA,uBAAAA,mBAAA,CAAAY,UAAA;EACpE,IAAIF,uBAAA,EAAyB;IAC3B,OAAOX,cAAA,CAAeY,GAAA,CAAKC,UAAA;EAC7B;EAMA;IAAMP,OAAE;IAAA,GAASQ;EAAG,IAAKd,cAAI,MAAkB;EAC/C,IAAAe,gBAAM;IACJ,GAAGD;EACL;EAEAT,YAAA,GAAeV,eAAA,CAAgBS,YAAA,EAAcC,YAAA,EAAcU,gBAAgB;EAE3E,IAAIJ,uBAAA,EAAyB;IAC3BN,YAAA,CAAaO,GAAA,CAAKC,UAAA,GAAa;EACjC;EAGA,IAAIG,OAAA,CAAQC,GAAA,CAAIC,KAAA,EAAO;IAErBC,OAAA,CAAQC,KAAA,CAAM,kBAAkBC,IAAA,CAAKC,SAAA,CAAUjB,YAAA,EAAc,MAAM,CAAC,GAAG;AAAA;AAAA,CAAU;EACnF;EAEA,OAAOA,YAAA;AACT","ignoreList":[]}
1
+ {"version":3,"names":["mergeConfig","getBaseViteConfigWithPlugins","getOptimizeDeps","mergeUserConfig","getReactNativePlugins","getAdditionalViteConfig","getViteServerConfig","config","userViteConfig","_userViteConfig_ssr","root","server","optimizeDeps","serverConfig","plugins","hmr","path","host","https","port","rerouteNoExternalConfig","ssr","noExternal","rest","mergableUserConf","process","env","DEBUG","console","debug","JSON","stringify"],"sources":["../../src/config/getViteServerConfig.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,QAAuD;AAEhE,SAASC,4BAAA,QAAoC;AAC7C,SAASC,eAAA,QAAuB;AAEhC,SAASC,eAAA,QAAuB;AAEhC,SAASC,qBAAA,QAA6B;AACtC,SAASC,uBAAA,QAA+B;AAMxC,eAAsBC,oBACpBC,MAAA,EACAC,cAAA,EACA;EACA,IAAAC,mBAAqB;EACrB;IAAMC,IAAE;IAAAC;EAAA,IAAaJ,MAAI;EAGzB,IAAI;IAAAK;EAA2B,IAAAV,eAAA;EAAA,IAC7BW,YAAM,GAAAb,WAAA,OAA6BC,4BAAM,CAAAM,MAAA,GAAAP,WAAA,CAAAK,uBAAA;IAEzCS,OAAA,GACE,GAAAV,qBAAa,CAAAG,MAAA,EAA6B;IAClCI,MACN;MAAKI,GAAA,EACH;QACFC,IAAA;MAAA;MACaC,IACb,EAAAN,MAAO,CAAAM,IAAO;MAAAC,KACd,EAAAP,MAAM,CAAAO,KAAO;MACfC,IAAA,EAAAR,MAAA,CAAAQ;IAAA;IAEFT;EACF;EAEA,IAAAU,uBAAM,IAAAZ,cAA0B,KAAgB,IAAK,IAAAA,cAAe,wBAAAC,mBAAA,GAAAD,cAAA,CAAAa,GAAA,cAAAZ,mBAAA,uBAAAA,mBAAA,CAAAa,UAAA;EACpE,IAAIF,uBAAA,EAAyB;IAC3B,OAAOZ,cAAA,CAAea,GAAA,CAAKC,UAAA;EAC7B;EAMA;IAAMR,OAAE;IAAA,GAASS;EAAG,IAAKf,cAAI,MAAkB;EAC/C,IAAAgB,gBAAM;IACJ,GAAGD;EACL;EAEAV,YAAA,GAAeV,eAAA,CAAgBS,YAAA,EAAcC,YAAA,EAAcW,gBAAgB;EAE3E,IAAIJ,uBAAA,EAAyB;IAC3BP,YAAA,CAAaQ,GAAA,CAAKC,UAAA,GAAa;EACjC;EAGA,IAAIG,OAAA,CAAQC,GAAA,CAAIC,KAAA,EAAO;IAErBC,OAAA,CAAQC,KAAA,CAAM,kBAAkBC,IAAA,CAAKC,SAAA,CAAUlB,YAAA,EAAc,MAAM,CAAC,GAAG;AAAA;AAAA,CAAU;EACnF;EAEA,OAAOA,YAAA;AACT","ignoreList":[]}
@@ -1,31 +1,99 @@
1
- import { rm } from "node:fs/promises";
2
- import { join } from "node:path";
1
+ import { mkdir, readFile, rm, writeFile } from "node:fs/promises";
2
+ import { dirname, join } from "node:path";
3
3
  import { fillOptions } from "../config/getOptionsFilled.mjs";
4
4
  import { getSSRExternalsCachePath } from "../plugins/autoDepOptimizePlugin.mjs";
5
5
  import { getCacheDir } from "../utils/getCacheDir.mjs";
6
- const clean = async (rest, only) => {
7
- const options = await fillOptions(rest);
8
- const {
9
- root
10
- } = options;
11
- console.info(`[vxrn] cleaning`);
12
- await Promise.all([rm(getSSRExternalsCachePath(root)).catch(throwIfNotMissingError), rm(join(root, "node_modules", ".vite"), {
6
+ import { readState, writeState } from "../utils/state.mjs";
7
+ const CLEAN_LOCK_WAIT_MS = 25;
8
+ const CLEAN_LOCK_TIMEOUT_MS = 6e4;
9
+ function getErrorCode(err) {
10
+ if (err instanceof Error && "code" in err && typeof err.code === "string") {
11
+ return err.code;
12
+ }
13
+ }
14
+ async function withCacheCleanLock(cacheDir, action) {
15
+ const lockPath = join(dirname(cacheDir), ".vxrn-clean.lock");
16
+ const startedAt = Date.now();
17
+ await mkdir(dirname(lockPath), {
18
+ recursive: true
19
+ });
20
+ while (true) {
21
+ try {
22
+ await writeFile(lockPath, `${process.pid}
23
+ `, {
24
+ flag: "wx"
25
+ });
26
+ break;
27
+ } catch (err) {
28
+ if (getErrorCode(err) !== "EEXIST") {
29
+ throw err;
30
+ }
31
+ if (Date.now() - startedAt >= CLEAN_LOCK_TIMEOUT_MS) {
32
+ let owner = "unknown process";
33
+ try {
34
+ owner = `process ${(await readFile(lockPath, "utf8")).trim()}`;
35
+ } catch (readErr) {
36
+ if (getErrorCode(readErr) === "ENOENT") {
37
+ continue;
38
+ }
39
+ throw readErr;
40
+ }
41
+ throw new Error(`Timed out waiting for VXRN cache cleanup lock held by ${owner}`);
42
+ }
43
+ await new Promise(resolve => setTimeout(resolve, CLEAN_LOCK_WAIT_MS));
44
+ }
45
+ }
46
+ try {
47
+ return await action();
48
+ } finally {
49
+ await rm(lockPath, {
50
+ force: true
51
+ });
52
+ }
53
+ }
54
+ async function removeCachePaths(root, only) {
55
+ const removeVxrnCache = process.env.VXRN_DONT_CLEAN_SELF ? rm(getSSRExternalsCachePath(root)).catch(throwIfNotMissingError) : rm(getCacheDir(root), {
13
56
  recursive: true,
14
57
  force: true
15
- }).catch(throwIfNotMissingError), process.env.VXRN_DONT_CLEAN_SELF ? null : rm(getCacheDir(root), {
58
+ }).catch(throwIfNotMissingError);
59
+ console.info(`[vxrn] cleaning`);
60
+ await Promise.all([rm(join(root, "node_modules", ".vite"), {
16
61
  recursive: true,
17
62
  force: true
18
- }).catch(throwIfNotMissingError), only === "vite" ? null : rm(join(root, "dist"), {
63
+ }).catch(throwIfNotMissingError), removeVxrnCache, only === "vite" ? null : rm(join(root, "dist"), {
19
64
  recursive: true,
20
65
  force: true
21
66
  }).catch(throwIfNotMissingError)]);
67
+ }
68
+ async function prepareCacheForVersion({
69
+ root,
70
+ cacheDir,
71
+ versionHash,
72
+ forceClean = false
73
+ }) {
74
+ return withCacheCleanLock(cacheDir, async () => {
75
+ const state = await readState(cacheDir);
76
+ const versionChanged = !!state.versionHash && state.versionHash !== versionHash;
77
+ const shouldClean = forceClean || versionChanged;
78
+ if (shouldClean) {
79
+ await removeCachePaths(root, "vite");
80
+ }
81
+ if (shouldClean || state.versionHash !== versionHash) {
82
+ await writeState(cacheDir, {
83
+ versionHash
84
+ });
85
+ }
86
+ return shouldClean;
87
+ });
88
+ }
89
+ const clean = async (rest, only) => {
90
+ const options = await fillOptions(rest);
91
+ await withCacheCleanLock(options.cacheDir, () => removeCachePaths(options.root, only));
22
92
  };
23
93
  function throwIfNotMissingError(err) {
24
- if (err instanceof Error) {
25
- if (err.code !== "ENOENT") {
26
- throw Error;
27
- }
94
+ if (getErrorCode(err) !== "ENOENT") {
95
+ throw err;
28
96
  }
29
97
  }
30
- export { clean };
98
+ export { clean, prepareCacheForVersion };
31
99
  //# sourceMappingURL=clean.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["rm","join","fillOptions","getSSRExternalsCachePath","getCacheDir","clean","rest","only","options","root","console","info","Promise","all","catch","throwIfNotMissingError","recursive","force","process","env","VXRN_DONT_CLEAN_SELF","err","Error","code"],"sources":["../../src/exports/clean.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,EAAA,QAAU;AACnB,SAASC,IAAA,QAAY;AAErB,SAASC,WAAA,QAAmB;AAC5B,SAASC,wBAAA,QAAgC;AACzC,SAASC,WAAA,QAAmB;AAYrB,MAAMC,KAAA,GAAQ,MAAAA,CAAOC,IAAA,EAAmBC,IAAA,KAAkB;EAC/D,MAAMC,OAAA,GAAU,MAAMN,WAAA,CAAYI,IAAI;EACtC,MAAM;IAAEG;EAAK,IAAID,OAAA;EAEjBE,OAAA,CAAQC,IAAA,CAAK,iBAAiB;EAE9B,MAAMC,OAAA,CAAQC,GAAA,CAAI,CAChBb,EAAA,CAAGG,wBAAA,CAAyBM,IAAI,CAAC,EAAEK,KAAA,CAAMC,sBAAsB,GAC/Df,EAAA,CAAGC,IAAA,CAAKQ,IAAA,EAAM,gBAAgB,OAAO,GAAG;IACtCO,SAAA,EAAW;IACXC,KAAA,EAAO;EACT,CAAC,EAAEH,KAAA,CAAMC,sBAAsB,GAC/BG,OAAA,CAAQC,GAAA,CAAIC,oBAAA,GACR,OACApB,EAAA,CAAGI,WAAA,CAAYK,IAAI,GAAG;IACpBO,SAAA,EAAW;IACXC,KAAA,EAAO;EACT,CAAC,EAAEH,KAAA,CAAMC,sBAAsB,GACnCR,IAAA,KAAS,SACL,OACAP,EAAA,CAAGC,IAAA,CAAKQ,IAAA,EAAM,MAAM,GAAG;IACrBO,SAAA,EAAW;IACXC,KAAA,EAAO;EACT,CAAC,EAAEH,KAAA,CAAMC,sBAAsB,EACpC;AACH;AAEA,SAASA,uBAAuBM,GAAA,EAAc;EAC5C,IAAIA,GAAA,YAAeC,KAAA,EAAO;IACxB,IAAKD,GAAA,CAA8BE,IAAA,KAAS,UAAU;MACpD,MAAMD,KAAA;IACR;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"names":["mkdir","readFile","rm","writeFile","dirname","join","fillOptions","getSSRExternalsCachePath","getCacheDir","readState","writeState","CLEAN_LOCK_WAIT_MS","CLEAN_LOCK_TIMEOUT_MS","getErrorCode","err","Error","code","withCacheCleanLock","cacheDir","action","lockPath","startedAt","Date","now","recursive","process","pid","flag","owner","trim","readErr","Promise","resolve","setTimeout","force","removeCachePaths","root","only","removeVxrnCache","env","VXRN_DONT_CLEAN_SELF","catch","throwIfNotMissingError","console","info","all","prepareCacheForVersion","versionHash","forceClean","state","versionChanged","shouldClean","clean","rest","options"],"sources":["../../src/exports/clean.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAA,EAAOC,QAAA,EAAUC,EAAA,EAAIC,SAAA,QAAiB;AAC/C,SAASC,OAAA,EAASC,IAAA,QAAY;AAE9B,SAASC,WAAA,QAAmB;AAC5B,SAASC,wBAAA,QAAgC;AACzC,SAASC,WAAA,QAAmB;AAC5B,SAASC,SAAA,EAAWC,UAAA,QAAkB;AAEtC,MAAMC,kBAAA,GAAqB;AAC3B,MAAMC,qBAAA,GAAwB;AAE9B,SAASC,aAAaC,GAAA,EAAc;EAClC,IAAIA,GAAA,YAAeC,KAAA,IAAS,UAAUD,GAAA,IAAO,OAAOA,GAAA,CAAIE,IAAA,KAAS,UAAU;IACzE,OAAOF,GAAA,CAAIE,IAAA;EACb;AACF;AAEA,eAAeC,mBAAsBC,QAAA,EAAkBC,MAAA,EAA0B;EAC/E,MAAMC,QAAA,GAAWf,IAAA,CAAKD,OAAA,CAAQc,QAAQ,GAAG,kBAAkB;EAC3D,MAAMG,SAAA,GAAYC,IAAA,CAAKC,GAAA,CAAI;EAC3B,MAAMvB,KAAA,CAAMI,OAAA,CAAQgB,QAAQ,GAAG;IAAEI,SAAA,EAAW;EAAK,CAAC;EAElD,OAAO,MAAM;IACX,IAAI;MACF,MAAMrB,SAAA,CAAUiB,QAAA,EAAU,GAAGK,OAAA,CAAQC,GAAG;AAAA,GAAM;QAAEC,IAAA,EAAM;MAAK,CAAC;MAC5D;IACF,SAASb,GAAA,EAAK;MACZ,IAAID,YAAA,CAAaC,GAAG,MAAM,UAAU;QAClC,MAAMA,GAAA;MACR;MAEA,IAAIQ,IAAA,CAAKC,GAAA,CAAI,IAAIF,SAAA,IAAaT,qBAAA,EAAuB;QACnD,IAAIgB,KAAA,GAAQ;QACZ,IAAI;UACFA,KAAA,GAAQ,YAAY,MAAM3B,QAAA,CAASmB,QAAA,EAAU,MAAM,GAAGS,IAAA,CAAK,CAAC;QAC9D,SAASC,OAAA,EAAS;UAChB,IAAIjB,YAAA,CAAaiB,OAAO,MAAM,UAAU;YACtC;UACF;UACA,MAAMA,OAAA;QACR;QACA,MAAM,IAAIf,KAAA,CAAM,yDAAyDa,KAAK,EAAE;MAClF;MACA,MAAM,IAAIG,OAAA,CAAeC,OAAA,IAAYC,UAAA,CAAWD,OAAA,EAASrB,kBAAkB,CAAC;IAC9E;EACF;EAEA,IAAI;IACF,OAAO,MAAMQ,MAAA,CAAO;EACtB,UAAE;IACA,MAAMjB,EAAA,CAAGkB,QAAA,EAAU;MAAEc,KAAA,EAAO;IAAK,CAAC;EACpC;AACF;AAEA,eAAeC,iBAAiBC,IAAA,EAAcC,IAAA,EAAe;EAC3D,MAAMC,eAAA,GAAkBb,OAAA,CAAQc,GAAA,CAAIC,oBAAA,GAChCtC,EAAA,CAAGK,wBAAA,CAAyB6B,IAAI,CAAC,EAAEK,KAAA,CAAMC,sBAAsB,IAC/DxC,EAAA,CAAGM,WAAA,CAAY4B,IAAI,GAAG;IACpBZ,SAAA,EAAW;IACXU,KAAA,EAAO;EACT,CAAC,EAAEO,KAAA,CAAMC,sBAAsB;EAEnCC,OAAA,CAAQC,IAAA,CAAK,iBAAiB;EAE9B,MAAMb,OAAA,CAAQc,GAAA,CAAI,CAChB3C,EAAA,CAAGG,IAAA,CAAK+B,IAAA,EAAM,gBAAgB,OAAO,GAAG;IACtCZ,SAAA,EAAW;IACXU,KAAA,EAAO;EACT,CAAC,EAAEO,KAAA,CAAMC,sBAAsB,GAC/BJ,eAAA,EACAD,IAAA,KAAS,SACL,OACAnC,EAAA,CAAGG,IAAA,CAAK+B,IAAA,EAAM,MAAM,GAAG;IACrBZ,SAAA,EAAW;IACXU,KAAA,EAAO;EACT,CAAC,EAAEO,KAAA,CAAMC,sBAAsB,EACpC;AACH;AAEA,eAAsBI,uBAAuB;EAC3CV,IAAA;EACAlB,QAAA;EACA6B,WAAA;EACAC,UAAA,GAAa;AACf,GAKG;EACD,OAAO/B,kBAAA,CAAmBC,QAAA,EAAU,YAAY;IAC9C,MAAM+B,KAAA,GAAQ,MAAMxC,SAAA,CAAUS,QAAQ;IACtC,MAAMgC,cAAA,GAAiB,CAAC,CAACD,KAAA,CAAMF,WAAA,IAAeE,KAAA,CAAMF,WAAA,KAAgBA,WAAA;IACpE,MAAMI,WAAA,GAAcH,UAAA,IAAcE,cAAA;IAElC,IAAIC,WAAA,EAAa;MACf,MAAMhB,gBAAA,CAAiBC,IAAA,EAAM,MAAM;IACrC;IACA,IAAIe,WAAA,IAAeF,KAAA,CAAMF,WAAA,KAAgBA,WAAA,EAAa;MACpD,MAAMrC,UAAA,CAAWQ,QAAA,EAAU;QAAE6B;MAAY,CAAC;IAC5C;IAEA,OAAOI,WAAA;EACT,CAAC;AACH;AAEO,MAAMC,KAAA,GAAQ,MAAAA,CAAOC,IAAA,EAAmBhB,IAAA,KAAkB;EAC/D,MAAMiB,OAAA,GAAU,MAAMhD,WAAA,CAAY+C,IAAI;EACtC,MAAMpC,kBAAA,CAAmBqC,OAAA,CAAQpC,QAAA,EAAU,MAAMiB,gBAAA,CAAiBmB,OAAA,CAAQlB,IAAA,EAAMC,IAAI,CAAC;AACvF;AAEA,SAASK,uBAAuB5B,GAAA,EAAc;EAC5C,IAAID,YAAA,CAAaC,GAAG,MAAM,UAAU;IAClC,MAAMA,GAAA;EACR;AACF","ignoreList":[]}
@@ -1,8 +1,9 @@
1
- import { rm } from "fs/promises";
2
- import { join } from "path";
1
+ import { mkdir, readFile, rm, writeFile } from "fs/promises";
2
+ import { dirname, join } from "path";
3
3
  import { fillOptions } from "../config/getOptionsFilled.native.js";
4
4
  import { getSSRExternalsCachePath } from "../plugins/autoDepOptimizePlugin.native.js";
5
5
  import { getCacheDir } from "../utils/getCacheDir.native.js";
6
+ import { readState, writeState } from "../utils/state.native.js";
6
7
  function _instanceof(left, right) {
7
8
  if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
8
9
  return !!right[Symbol.hasInstance](left);
@@ -10,29 +11,101 @@ function _instanceof(left, right) {
10
11
  return left instanceof right;
11
12
  }
12
13
  }
13
- var clean = async function (rest, only) {
14
- var options = await fillOptions(rest);
15
- var {
16
- root
17
- } = options;
18
- console.info(`[vxrn] cleaning`);
19
- await Promise.all([rm(getSSRExternalsCachePath(root)).catch(throwIfNotMissingError), rm(join(root, "node_modules", ".vite"), {
14
+ var CLEAN_LOCK_WAIT_MS = 25;
15
+ var CLEAN_LOCK_TIMEOUT_MS = 6e4;
16
+ function getErrorCode(err) {
17
+ if (_instanceof(err, Error) && "code" in err && typeof err.code === "string") {
18
+ return err.code;
19
+ }
20
+ }
21
+ async function withCacheCleanLock(cacheDir, action) {
22
+ var lockPath = join(dirname(cacheDir), ".vxrn-clean.lock");
23
+ var startedAt = Date.now();
24
+ await mkdir(dirname(lockPath), {
25
+ recursive: true
26
+ });
27
+ while (true) {
28
+ try {
29
+ await writeFile(lockPath, `${process.pid}
30
+ `, {
31
+ flag: "wx"
32
+ });
33
+ break;
34
+ } catch (err) {
35
+ if (getErrorCode(err) !== "EEXIST") {
36
+ throw err;
37
+ }
38
+ if (Date.now() - startedAt >= CLEAN_LOCK_TIMEOUT_MS) {
39
+ var owner = "unknown process";
40
+ try {
41
+ owner = `process ${(await readFile(lockPath, "utf8")).trim()}`;
42
+ } catch (readErr) {
43
+ if (getErrorCode(readErr) === "ENOENT") {
44
+ continue;
45
+ }
46
+ throw readErr;
47
+ }
48
+ throw new Error(`Timed out waiting for VXRN cache cleanup lock held by ${owner}`);
49
+ }
50
+ await new Promise(function (resolve) {
51
+ return setTimeout(resolve, CLEAN_LOCK_WAIT_MS);
52
+ });
53
+ }
54
+ }
55
+ try {
56
+ return await action();
57
+ } finally {
58
+ await rm(lockPath, {
59
+ force: true
60
+ });
61
+ }
62
+ }
63
+ async function removeCachePaths(root, only) {
64
+ var removeVxrnCache = process.env.VXRN_DONT_CLEAN_SELF ? rm(getSSRExternalsCachePath(root)).catch(throwIfNotMissingError) : rm(getCacheDir(root), {
20
65
  recursive: true,
21
66
  force: true
22
- }).catch(throwIfNotMissingError), process.env.VXRN_DONT_CLEAN_SELF ? null : rm(getCacheDir(root), {
67
+ }).catch(throwIfNotMissingError);
68
+ console.info(`[vxrn] cleaning`);
69
+ await Promise.all([rm(join(root, "node_modules", ".vite"), {
23
70
  recursive: true,
24
71
  force: true
25
- }).catch(throwIfNotMissingError), only === "vite" ? null : rm(join(root, "dist"), {
72
+ }).catch(throwIfNotMissingError), removeVxrnCache, only === "vite" ? null : rm(join(root, "dist"), {
26
73
  recursive: true,
27
74
  force: true
28
75
  }).catch(throwIfNotMissingError)]);
76
+ }
77
+ async function prepareCacheForVersion(param) {
78
+ var {
79
+ root,
80
+ cacheDir,
81
+ versionHash,
82
+ forceClean = false
83
+ } = param;
84
+ return withCacheCleanLock(cacheDir, async function () {
85
+ var state = await readState(cacheDir);
86
+ var versionChanged = !!state.versionHash && state.versionHash !== versionHash;
87
+ var shouldClean = forceClean || versionChanged;
88
+ if (shouldClean) {
89
+ await removeCachePaths(root, "vite");
90
+ }
91
+ if (shouldClean || state.versionHash !== versionHash) {
92
+ await writeState(cacheDir, {
93
+ versionHash
94
+ });
95
+ }
96
+ return shouldClean;
97
+ });
98
+ }
99
+ var clean = async function (rest, only) {
100
+ var options = await fillOptions(rest);
101
+ await withCacheCleanLock(options.cacheDir, function () {
102
+ return removeCachePaths(options.root, only);
103
+ });
29
104
  };
30
105
  function throwIfNotMissingError(err) {
31
- if (_instanceof(err, Error)) {
32
- if (err.code !== "ENOENT") {
33
- throw Error;
34
- }
106
+ if (getErrorCode(err) !== "ENOENT") {
107
+ throw err;
35
108
  }
36
109
  }
37
- export { clean };
110
+ export { clean, prepareCacheForVersion };
38
111
  //# sourceMappingURL=clean.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["rm","join","fillOptions","getSSRExternalsCachePath","getCacheDir","_instanceof","left","right","Symbol","hasInstance","clean","rest","only","options","root","console","info","Promise","all","catch","throwIfNotMissingError","recursive","force","process","env","VXRN_DONT_CLEAN_SELF"],"sources":["../../src/exports/clean.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,EAAA,QAAU;AACnB,SAASC,IAAA,QAAY;AAErB,SAASC,WAAA,QAAmB;AAC5B,SAASC,wBAAA,QAAgC;AACzC,SAASC,WAAA,QAAmB;AAYrB,SAAMC,WAAQA,CAAOC,IAAA,EAAmBC,KAAA;EAC7C,IAAAA,KAAM,QAAU,WAAMC,MAAY,KAAI,eAAAD,KAAA,CAAAC,MAAA,CAAAC,WAAA;IACtC,OAAQ,EAAAF,KAAK,CAAIC,MAAA,CAAAC,WAAA,EAAAH,IAAA;EAEjB;IAEA,OAAMA,IAAA,YAAYC,KAAA;EAAA;AAC+C;AACvB,IAAAG,KACtC,kBAAAA,CAAWC,IAAA,EAAAC,IAAA;EAAA,IACXC,OAAO,SAAAX,WAAA,CAAAS,IAAA;EAAA,IACR;IAAEG;EAAM,IAAAD,OAAA;EAAsBE,OAC/B,CAAAC,IAAQ,kBAAI;EAEc,MACpBC,OAAA,CAAAC,GAAW,EAAAlB,EACX,CAAAG,wBAAO,CAAAW,IAAA,GAAAK,KAAA,CAAAC,sBAAA,GACTpB,EAAC,CAAEC,IAAA,CAAAa,IAAM,yBAAsB;IACnCO,SAAS;IAGHC,KAAA;EAAW,EACX,CAAAH,KAAA,CAAOC,sBAAA,GACTG,OAAG,CAAAC,GAAM,CAAAC,oBAAsB,UAAAzB,EAAA,CAAAI,WAAA,CAAAU,IAAA;IACpCO,SAAA;IACHC,KAAA;EAEA,GAAAH,KAAS,CAAAC,sBAAuB,GAC9BR,IAAI,cAAe,OAAOZ,EAAA,CAAAC,IAAA,CAAAa,IAAA;IACxBO,SAAmC,MAAS;IAC1CC,KAAA,EAAM;EACR,GAAAH,KAAA,CAAAC,sBAAA,EACF;AACF","ignoreList":[]}
1
+ {"version":3,"names":["mkdir","readFile","rm","writeFile","dirname","join","fillOptions","getSSRExternalsCachePath","getCacheDir","readState","writeState","_instanceof","left","right","Symbol","hasInstance","CLEAN_LOCK_WAIT_MS","CLEAN_LOCK_TIMEOUT_MS","getErrorCode","err","Error","code","withCacheCleanLock","cacheDir","action","lockPath","startedAt","Date","now","recursive","process","pid","flag","owner","trim","readErr","Promise","resolve","setTimeout","force","removeCachePaths","root","only","removeVxrnCache","env","VXRN_DONT_CLEAN_SELF","catch","throwIfNotMissingError","console","info","all","prepareCacheForVersion","param","versionHash","forceClean","state","versionChanged","shouldClean"],"sources":["../../src/exports/clean.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,81 @@
1
+ import { execFile } from "node:child_process";
2
+ import { mkdtemp, mkdir, readFile, rm, writeFile } from "node:fs/promises";
3
+ import { tmpdir } from "node:os";
4
+ import { dirname, join } from "node:path";
5
+ import { pathToFileURL } from "node:url";
6
+ import { promisify } from "node:util";
7
+ import { afterEach, describe, expect, it } from "vitest";
8
+ const execFileAsync = promisify(execFile);
9
+ describe("prepareCacheForVersion", () => {
10
+ let root;
11
+ afterEach(async () => {
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 () => {
20
+ root = await mkdtemp(join(tmpdir(), "vxrn-concurrent-clean-"));
21
+ const cacheDir = join(root, "node_modules", ".vxrn");
22
+ const viteDir = join(root, "node_modules", ".vite");
23
+ const participantsDir = join(root, "participants");
24
+ const 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
+ const moduleUrl = pathToFileURL(join(dirname(import.meta.filename), "clean.ts")).href;
36
+ const workerScript = participant => `
37
+ import { readdir, writeFile } from 'node:fs/promises'
38
+ import { join } from 'node:path'
39
+ import { prepareCacheForVersion } from ${JSON.stringify(moduleUrl)}
40
+
41
+ const root = ${JSON.stringify(root)}
42
+ const participantsDir = ${JSON.stringify(participantsDir)}
43
+ await writeFile(join(participantsDir, ${JSON.stringify(String(participant))}), '')
44
+ while ((await readdir(participantsDir)).length < ${participantCount}) {
45
+ await Bun.sleep(5)
46
+ }
47
+ const cleaned = await prepareCacheForVersion({
48
+ root,
49
+ cacheDir: join(root, 'node_modules', '.vxrn'),
50
+ versionHash: 'new',
51
+ })
52
+ console.info(cleaned ? 'cleaned-by-worker' : 'cache-already-current')
53
+ `;
54
+ const results = await Promise.all(Array.from({
55
+ length: participantCount
56
+ }, (_, participant) => execFileAsync("bun", ["-e", workerScript(participant)], {
57
+ env: {
58
+ ...process.env,
59
+ VXRN_DONT_CLEAN_SELF: ""
60
+ }
61
+ })));
62
+ const output = results.map(({
63
+ stdout
64
+ }) => stdout).join("\n");
65
+ expect(output.match(/\[vxrn\] cleaning/g)).toHaveLength(1);
66
+ expect(output.match(/cleaned-by-worker/g)).toHaveLength(1);
67
+ expect(JSON.parse(await readFile(join(cacheDir, "state.json"), "utf8"))).toEqual({
68
+ versionHash: "new"
69
+ });
70
+ await expect(readFile(join(cacheDir, "stale"))).rejects.toMatchObject({
71
+ code: "ENOENT"
72
+ });
73
+ await expect(readFile(join(viteDir, "stale"))).rejects.toMatchObject({
74
+ code: "ENOENT"
75
+ });
76
+ await expect(readFile(join(root, "node_modules", ".vxrn-clean.lock"))).rejects.toMatchObject({
77
+ code: "ENOENT"
78
+ });
79
+ }, 2e4);
80
+ });
81
+ //# sourceMappingURL=clean.test.mjs.map