@vantaloom/runtime-win32-x64 0.6.41 → 0.6.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/VERSION +1 -1
- package/bin/vantaloom-agent.exe +0 -0
- package/bin/vantaloom-api.exe +0 -0
- package/bin/vantaloomctl.exe +0 -0
- package/cli/package.json +1 -1
- package/cli/src/cli.mjs +93 -0
- package/manifest.json +2 -2
- package/package.json +1 -1
- package/web/404.html +1 -1
- package/web/__next.__PAGE__.txt +2 -2
- package/web/__next._full.txt +3 -3
- package/web/__next._head.txt +1 -1
- package/web/__next._index.txt +2 -2
- package/web/__next._tree.txt +2 -2
- package/web/_next/static/chunks/1395dc88105f6d3c.js +52 -0
- package/web/_next/static/chunks/c8d34b6940a0c100.css +2 -0
- package/web/_not-found/__next._full.txt +2 -2
- package/web/_not-found/__next._head.txt +1 -1
- package/web/_not-found/__next._index.txt +2 -2
- package/web/_not-found/__next._not-found/__PAGE__.txt +1 -1
- package/web/_not-found/__next._not-found.txt +1 -1
- package/web/_not-found/__next._tree.txt +2 -2
- package/web/_not-found.html +1 -1
- package/web/_not-found.txt +2 -2
- package/web/index.html +1 -1
- package/web/index.txt +3 -3
- package/web/_next/static/chunks/6e21ad582c4958fc.js +0 -52
- package/web/_next/static/chunks/f4e046f4a22040d8.css +0 -2
- /package/web/_next/static/{20gbke7k2h8PgD4WePSCl → 0rCkNzT_1cFDMPxwedXGo}/_buildManifest.js +0 -0
- /package/web/_next/static/{20gbke7k2h8PgD4WePSCl → 0rCkNzT_1cFDMPxwedXGo}/_clientMiddlewareManifest.json +0 -0
- /package/web/_next/static/{20gbke7k2h8PgD4WePSCl → 0rCkNzT_1cFDMPxwedXGo}/_ssgManifest.js +0 -0
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
f03a140
|
package/bin/vantaloom-agent.exe
CHANGED
|
Binary file
|
package/bin/vantaloom-api.exe
CHANGED
|
Binary file
|
package/bin/vantaloomctl.exe
CHANGED
|
Binary file
|
package/cli/package.json
CHANGED
package/cli/src/cli.mjs
CHANGED
|
@@ -2,12 +2,14 @@ import { execFileSync, spawnSync } from "node:child_process"
|
|
|
2
2
|
import {
|
|
3
3
|
appendFileSync,
|
|
4
4
|
chmodSync,
|
|
5
|
+
copyFileSync,
|
|
5
6
|
cpSync,
|
|
6
7
|
existsSync,
|
|
7
8
|
mkdirSync,
|
|
8
9
|
mkdtempSync,
|
|
9
10
|
readdirSync,
|
|
10
11
|
readFileSync,
|
|
12
|
+
renameSync,
|
|
11
13
|
rmSync,
|
|
12
14
|
writeFileSync,
|
|
13
15
|
} from "node:fs"
|
|
@@ -34,6 +36,81 @@ function meshBinarySet(platform) {
|
|
|
34
36
|
: ["vantaloom-mesh", "easytier-core"]
|
|
35
37
|
}
|
|
36
38
|
|
|
39
|
+
// sleepSync blocks for ms milliseconds without async (install runs top-to-bottom
|
|
40
|
+
// and must not race the file copy against a process that is still releasing its
|
|
41
|
+
// handles). Uses Atomics.wait on a throwaway buffer — no busy spin.
|
|
42
|
+
function sleepSync(ms) {
|
|
43
|
+
try {
|
|
44
|
+
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, Math.max(0, ms))
|
|
45
|
+
} catch {
|
|
46
|
+
const end = Date.now() + ms
|
|
47
|
+
while (Date.now() < end) {} // fallback busy-wait if SAB is unavailable
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const LOCK_ERROR_CODES = new Set(["EPERM", "EBUSY", "EACCES", "ETXTBSY"])
|
|
52
|
+
|
|
53
|
+
// copyFileResilient overwrites dst with src, surviving the Windows case where dst
|
|
54
|
+
// is a running/locked executable. Windows refuses to OVERWRITE or DELETE an in-use
|
|
55
|
+
// .exe (EPERM/EBUSY) but DOES allow RENAMING it — the file handle tracks the file
|
|
56
|
+
// object, not its path. So on a lock error we move the locked file aside and copy
|
|
57
|
+
// the new one into the freed path; the runtime picks up the new binary on its next
|
|
58
|
+
// start, and the moved-aside `.old-*` file is reaped on a later install. This is
|
|
59
|
+
// the fix for the EPERM that blocked update/restart when a prior process (api,
|
|
60
|
+
// agent, or an orphaned easytier/mesh) still held a binary open.
|
|
61
|
+
function copyFileResilient(src, dst) {
|
|
62
|
+
for (let attempt = 0; ; attempt += 1) {
|
|
63
|
+
try {
|
|
64
|
+
copyFileSync(src, dst)
|
|
65
|
+
return
|
|
66
|
+
} catch (err) {
|
|
67
|
+
if (!LOCK_ERROR_CODES.has(err.code) || !existsSync(dst)) {
|
|
68
|
+
if (attempt >= 4) throw err
|
|
69
|
+
sleepSync(250)
|
|
70
|
+
continue
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
const aside = `${dst}.old-${process.pid}-${attempt}`
|
|
74
|
+
renameSync(dst, aside)
|
|
75
|
+
copyFileSync(src, dst)
|
|
76
|
+
try { rmSync(aside, { force: true }) } catch {} // best-effort; may still be locked
|
|
77
|
+
return
|
|
78
|
+
} catch (moveErr) {
|
|
79
|
+
if (attempt >= 4) throw moveErr
|
|
80
|
+
sleepSync(300)
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// copyDirResilient recursively copies src→dst using copyFileResilient for every
|
|
87
|
+
// file, so a single locked binary can't abort the whole bin/ refresh. filter(srcPath)
|
|
88
|
+
// gates which entries are copied (mirrors fs.cp's filter).
|
|
89
|
+
function copyDirResilient(src, dst, filter) {
|
|
90
|
+
mkdirSync(dst, { recursive: true })
|
|
91
|
+
for (const entry of readdirSync(src, { withFileTypes: true })) {
|
|
92
|
+
const s = path.join(src, entry.name)
|
|
93
|
+
if (filter && !filter(s)) continue
|
|
94
|
+
const d = path.join(dst, entry.name)
|
|
95
|
+
if (entry.isDirectory()) {
|
|
96
|
+
copyDirResilient(s, d, filter)
|
|
97
|
+
} else {
|
|
98
|
+
copyFileResilient(s, d)
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// cleanupStaleReplacements deletes the `.old-*` files left behind by a prior
|
|
104
|
+
// lock-safe replace once their handles have been released (best-effort).
|
|
105
|
+
function cleanupStaleReplacements(dir) {
|
|
106
|
+
if (!existsSync(dir)) return
|
|
107
|
+
for (const entry of readdirSync(dir)) {
|
|
108
|
+
if (/\.old-\d+-\d+$/.test(entry)) {
|
|
109
|
+
try { rmSync(path.join(dir, entry), { force: true }) } catch {}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
37
114
|
const cliRoot = path.resolve(fileURLToPath(import.meta.url), "..", "..")
|
|
38
115
|
const repoCandidate = path.resolve(cliRoot, "..", "..")
|
|
39
116
|
const installedConfigPath = path.join(cliRoot, "config.json")
|
|
@@ -837,6 +914,16 @@ async function applyPackage(packageRoot, prefix, options) {
|
|
|
837
914
|
// don't write tray.pid, so vantaloomctl stop won't find them).
|
|
838
915
|
killTrayProcess(prefix)
|
|
839
916
|
|
|
917
|
+
// Windows releases a stopped process's file handles asynchronously; copying
|
|
918
|
+
// bin/ the instant after `stop` can still hit the old exe's lock (EPERM). Give
|
|
919
|
+
// the OS a moment to close handles, and sweep any `.old-*` files a previous
|
|
920
|
+
// lock-safe replace left behind (now that those handles are likely released).
|
|
921
|
+
// copyFileResilient below is the real safety net if a handle is still open.
|
|
922
|
+
if (existsSync(path.join(prefix, "bin"))) {
|
|
923
|
+
sleepSync(600)
|
|
924
|
+
cleanupStaleReplacements(path.join(prefix, "bin"))
|
|
925
|
+
}
|
|
926
|
+
|
|
840
927
|
// On Windows the privileged mesh service holds its binaries open, so we can't
|
|
841
928
|
// wipe or overwrite them with a plain copy. Detect that up front: if the
|
|
842
929
|
// service is running, skip those files in the bin/ copy (the elevated `apply`
|
|
@@ -875,6 +962,12 @@ async function applyPackage(packageRoot, prefix, options) {
|
|
|
875
962
|
const installed = path.join(dst, base)
|
|
876
963
|
return !(existsSync(installed) && fileSha(s) === fileSha(installed))
|
|
877
964
|
}
|
|
965
|
+
// bin/ holds the long-lived executables (api, agent, ctl, easytier, mesh).
|
|
966
|
+
// Copy each file with the lock-safe move-aside replace so a still-locked
|
|
967
|
+
// binary from a not-fully-exited prior process never aborts the update with
|
|
968
|
+
// EPERM (the bug that wedged update/restart).
|
|
969
|
+
copyDirResilient(src, dst, copyOpts.filter)
|
|
970
|
+
continue
|
|
878
971
|
} else {
|
|
879
972
|
removeKnownPath(dst, prefix)
|
|
880
973
|
}
|
package/manifest.json
CHANGED
package/package.json
CHANGED
package/web/404.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--0rCkNzT_1cFDMPxwedXGo--><html lang="zh-CN" class="font-sans antialiased" data-vtl-theme="default" data-vtl-density="default" data-vtl-motion="default"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/c8d34b6940a0c100.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/ccc016f22e340d7a.js"/><script src="/_next/static/chunks/465977caba526416.js" async=""></script><script src="/_next/static/chunks/757e2e1b77b5bacc.js" async=""></script><script src="/_next/static/chunks/turbopack-74ec218a8e8a6a34.js" async=""></script><script src="/_next/static/chunks/2f05240e9e23a8f9.js" async=""></script><script src="/_next/static/chunks/83c973dd6794ff6b.js" async=""></script><script src="/_next/static/chunks/7dfeab42587bcc0e.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>Vantaloom</title><meta name="description" content="Vantaloom local agent operations console."/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/ccc016f22e340d7a.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[22332,[\"/_next/static/chunks/2f05240e9e23a8f9.js\",\"/_next/static/chunks/83c973dd6794ff6b.js\",\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"ThemeProvider\"]\n3:I[64990,[\"/_next/static/chunks/2f05240e9e23a8f9.js\",\"/_next/static/chunks/83c973dd6794ff6b.js\",\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"TourProvider\"]\n4:I[45121,[\"/_next/static/chunks/2f05240e9e23a8f9.js\",\"/_next/static/chunks/83c973dd6794ff6b.js\",\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"default\"]\n5:I[60512,[\"/_next/static/chunks/2f05240e9e23a8f9.js\",\"/_next/static/chunks/83c973dd6794ff6b.js\",\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"default\"]\n6:I[35417,[\"/_next/static/chunks/2f05240e9e23a8f9.js\",\"/_next/static/chunks/83c973dd6794ff6b.js\",\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\n9:I[35417,[\"/_next/static/chunks/2f05240e9e23a8f9.js\",\"/_next/static/chunks/83c973dd6794ff6b.js\",\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"ViewportBoundary\"]\nb:I[35417,[\"/_next/static/chunks/2f05240e9e23a8f9.js\",\"/_next/static/chunks/83c973dd6794ff6b.js\",\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"MetadataBoundary\"]\nd:I[50025,[\"/_next/static/chunks/2f05240e9e23a8f9.js\",\"/_next/static/chunks/83c973dd6794ff6b.js\",\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"default\"]\n:HL[\"/_next/static/chunks/c8d34b6940a0c100.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"0rCkNzT_1cFDMPxwedXGo\",\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/c8d34b6940a0c100.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/2f05240e9e23a8f9.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/83c973dd6794ff6b.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/7dfeab42587bcc0e.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"zh-CN\",\"suppressHydrationWarning\":true,\"className\":\"font-sans antialiased\",\"data-vtl-theme\":\"default\",\"data-vtl-density\":\"default\",\"data-vtl-motion\":\"default\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lc\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"8:null\nc:[[\"$\",\"title\",\"0\",{\"children\":\"Vantaloom\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Vantaloom local agent operations console.\"}]]\n"])</script></body></html>
|
package/web/__next.__PAGE__.txt
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
2
|
2:I[66863,["/_next/static/chunks/7dfeab42587bcc0e.js"],"ClientPageRoot"]
|
|
3
|
-
3:I[66204,["/_next/static/chunks/2f05240e9e23a8f9.js","/_next/static/chunks/83c973dd6794ff6b.js","/_next/static/chunks/17e0384154325960.js","/_next/static/chunks/c990601c49cb69a5.js","/_next/static/chunks/
|
|
3
|
+
3:I[66204,["/_next/static/chunks/2f05240e9e23a8f9.js","/_next/static/chunks/83c973dd6794ff6b.js","/_next/static/chunks/17e0384154325960.js","/_next/static/chunks/c990601c49cb69a5.js","/_next/static/chunks/1395dc88105f6d3c.js","/_next/static/chunks/742d3900ca49db0a.js"],"default"]
|
|
4
4
|
6:I[35417,["/_next/static/chunks/7dfeab42587bcc0e.js"],"OutletBoundary"]
|
|
5
5
|
7:"$Sreact.suspense"
|
|
6
|
-
0:{"buildId":"
|
|
6
|
+
0:{"buildId":"0rCkNzT_1cFDMPxwedXGo","rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/17e0384154325960.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/c990601c49cb69a5.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/1395dc88105f6d3c.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/742d3900ca49db0a.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"loading":null,"isPartial":false}
|
|
7
7
|
4:{}
|
|
8
8
|
5:"$0:rsc:props:children:0:props:serverProvidedParams:params"
|
|
9
9
|
8:null
|
package/web/__next._full.txt
CHANGED
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
4:I[45121,["/_next/static/chunks/7dfeab42587bcc0e.js"],"default"]
|
|
5
5
|
5:I[60512,["/_next/static/chunks/7dfeab42587bcc0e.js"],"default"]
|
|
6
6
|
6:I[66863,["/_next/static/chunks/7dfeab42587bcc0e.js"],"ClientPageRoot"]
|
|
7
|
-
7:I[66204,["/_next/static/chunks/2f05240e9e23a8f9.js","/_next/static/chunks/83c973dd6794ff6b.js","/_next/static/chunks/17e0384154325960.js","/_next/static/chunks/c990601c49cb69a5.js","/_next/static/chunks/
|
|
7
|
+
7:I[66204,["/_next/static/chunks/2f05240e9e23a8f9.js","/_next/static/chunks/83c973dd6794ff6b.js","/_next/static/chunks/17e0384154325960.js","/_next/static/chunks/c990601c49cb69a5.js","/_next/static/chunks/1395dc88105f6d3c.js","/_next/static/chunks/742d3900ca49db0a.js"],"default"]
|
|
8
8
|
a:I[35417,["/_next/static/chunks/7dfeab42587bcc0e.js"],"OutletBoundary"]
|
|
9
9
|
b:"$Sreact.suspense"
|
|
10
10
|
d:I[35417,["/_next/static/chunks/7dfeab42587bcc0e.js"],"ViewportBoundary"]
|
|
11
11
|
f:I[35417,["/_next/static/chunks/7dfeab42587bcc0e.js"],"MetadataBoundary"]
|
|
12
12
|
11:I[50025,["/_next/static/chunks/7dfeab42587bcc0e.js"],"default"]
|
|
13
|
-
:HL["/_next/static/chunks/
|
|
14
|
-
0:{"P":null,"b":"
|
|
13
|
+
:HL["/_next/static/chunks/c8d34b6940a0c100.css","style"]
|
|
14
|
+
0:{"P":null,"b":"0rCkNzT_1cFDMPxwedXGo","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/c8d34b6940a0c100.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/2f05240e9e23a8f9.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/83c973dd6794ff6b.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"zh-CN","suppressHydrationWarning":true,"className":"font-sans antialiased","data-vtl-theme":"default","data-vtl-density":"default","data-vtl-motion":"default","children":["$","body",null,{"children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L6",null,{"Component":"$7","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@8","$@9"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/17e0384154325960.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/c990601c49cb69a5.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/1395dc88105f6d3c.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/742d3900ca49db0a.js","async":true,"nonce":"$undefined"}]],["$","$La",null,{"children":["$","$b",null,{"name":"Next.MetadataOutlet","children":"$@c"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$b",null,{"name":"Next.Metadata","children":"$L10"}]}]}],null]}],false]],"m":"$undefined","G":["$11",[]],"S":true}
|
|
15
15
|
8:{}
|
|
16
16
|
9:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params"
|
|
17
17
|
e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
package/web/__next._head.txt
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
2:I[35417,["/_next/static/chunks/7dfeab42587bcc0e.js"],"ViewportBoundary"]
|
|
3
3
|
3:I[35417,["/_next/static/chunks/7dfeab42587bcc0e.js"],"MetadataBoundary"]
|
|
4
4
|
4:"$Sreact.suspense"
|
|
5
|
-
0:{"buildId":"
|
|
5
|
+
0:{"buildId":"0rCkNzT_1cFDMPxwedXGo","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Vantaloom"}],["$","meta","1",{"name":"description","content":"Vantaloom local agent operations console."}]]}]}]}],null]}],"loading":null,"isPartial":false}
|
package/web/__next._index.txt
CHANGED
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
3:I[64990,["/_next/static/chunks/2f05240e9e23a8f9.js","/_next/static/chunks/83c973dd6794ff6b.js"],"TourProvider"]
|
|
4
4
|
4:I[45121,["/_next/static/chunks/7dfeab42587bcc0e.js"],"default"]
|
|
5
5
|
5:I[60512,["/_next/static/chunks/7dfeab42587bcc0e.js"],"default"]
|
|
6
|
-
:HL["/_next/static/chunks/
|
|
7
|
-
0:{"buildId":"
|
|
6
|
+
:HL["/_next/static/chunks/c8d34b6940a0c100.css","style"]
|
|
7
|
+
0:{"buildId":"0rCkNzT_1cFDMPxwedXGo","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/c8d34b6940a0c100.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/2f05240e9e23a8f9.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/83c973dd6794ff6b.js","async":true}]],["$","html",null,{"lang":"zh-CN","suppressHydrationWarning":true,"className":"font-sans antialiased","data-vtl-theme":"default","data-vtl-density":"default","data-vtl-motion":"default","children":["$","body",null,{"children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]}]]}],"loading":null,"isPartial":false}
|
package/web/__next._tree.txt
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
:HL["/_next/static/chunks/
|
|
2
|
-
0:{"buildId":"
|
|
1
|
+
:HL["/_next/static/chunks/c8d34b6940a0c100.css","style"]
|
|
2
|
+
0:{"buildId":"0rCkNzT_1cFDMPxwedXGo","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":true},"staleTime":300}
|