@mauroandre/velojs 0.0.43 → 0.0.45
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/agent/skills/velojs-loaders/SKILL.md +4 -2
- package/dist/cli.js +39 -34
- package/dist/init.d.ts +3 -1
- package/dist/init.js +42 -28
- package/dist/loader-store.d.ts +11 -6
- package/dist/loader-store.js +77 -61
- package/package.json +1 -1
|
@@ -127,8 +127,10 @@ Understanding the data flow helps you debug issues:
|
|
|
127
127
|
|
|
128
128
|
**Client-side navigation (SPA):**
|
|
129
129
|
1. User clicks a link
|
|
130
|
-
2. VeloJS
|
|
130
|
+
2. VeloJS marks stale the modules whose **declared params** changed — or that **were not part of the previous location** (they unmounted and are remounting now)
|
|
131
131
|
3. One `?_data=1` request serves all of them
|
|
132
132
|
4. Only the stale modules are written — a module the client owns locally (a filtered list, an optimistic edit) is left alone
|
|
133
133
|
|
|
134
|
-
|
|
134
|
+
The second rule is why returning to a page always shows fresh data: leaving `/` for `/leads` unmounts the Dashboard, so navigating back re-runs its loader. The first rule is why `/leads/1` → `/leads/2` refetches.
|
|
135
|
+
|
|
136
|
+
That last point is why a layout at `/admin/empresas` keeps a filtered list while you navigate among its children: it stays matched the whole time — no param changed and it never unmounted, so nothing invalidates it. (Leaving the subtree entirely and coming back *does* revalidate it — the layout remounted.)
|
package/dist/cli.js
CHANGED
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
import { spawnSync as
|
|
1
|
+
import { spawnSync as a } from "node:child_process";
|
|
2
2
|
import { join as n, resolve as u } from "node:path";
|
|
3
3
|
import p from "node:fs";
|
|
4
|
-
const
|
|
5
|
-
const
|
|
4
|
+
const t = process.argv.slice(2), c = t[0], v = (s, e = []) => {
|
|
5
|
+
const o = a(s, e, {
|
|
6
6
|
stdio: "inherit",
|
|
7
7
|
cwd: process.cwd()
|
|
8
8
|
});
|
|
9
|
-
process.exit(
|
|
9
|
+
process.exit(o.status ?? 0);
|
|
10
10
|
}, m = () => {
|
|
11
|
-
v("npx", ["vite", ...
|
|
12
|
-
},
|
|
13
|
-
const
|
|
11
|
+
v("npx", ["vite", ...t.slice(1)]);
|
|
12
|
+
}, f = (s) => {
|
|
13
|
+
const e = Date.now().toString(36), o = {
|
|
14
14
|
...process.env,
|
|
15
|
-
VELO_BUILD_HASH:
|
|
16
|
-
...
|
|
15
|
+
VELO_BUILD_HASH: e,
|
|
16
|
+
...s ? { VELO_STATIC: "1" } : {}
|
|
17
17
|
};
|
|
18
18
|
console.log("Building client...");
|
|
19
|
-
const r =
|
|
19
|
+
const r = a("npx", ["vite", "build"], {
|
|
20
20
|
stdio: "inherit",
|
|
21
21
|
cwd: process.cwd(),
|
|
22
|
-
env:
|
|
22
|
+
env: o
|
|
23
23
|
});
|
|
24
24
|
r.status !== 0 && (console.error("Client build failed. Aborting."), process.exit(r.status ?? 1)), console.log("Building server...");
|
|
25
|
-
const i =
|
|
25
|
+
const i = a("npx", ["vite", "build", "--mode", "server"], {
|
|
26
26
|
stdio: "inherit",
|
|
27
27
|
cwd: process.cwd(),
|
|
28
|
-
env:
|
|
28
|
+
env: o
|
|
29
29
|
});
|
|
30
|
-
i.status !== 0 && (console.error("Server build failed. Aborting."), process.exit(i.status ?? 1)), console.log("Build complete!"),
|
|
31
|
-
},
|
|
30
|
+
i.status !== 0 && (console.error("Server build failed. Aborting."), process.exit(i.status ?? 1)), console.log("Build complete!"), s && j();
|
|
31
|
+
}, j = async () => {
|
|
32
32
|
process.env.NODE_ENV = "production", process.env.VELO_STATIC = "1";
|
|
33
|
-
const
|
|
34
|
-
(!
|
|
33
|
+
const e = await import(u(process.cwd(), "dist/server.js")), o = e.default, r = e.routes;
|
|
34
|
+
(!o || !r) && (console.error("Failed to load app or routes from dist/server.js"), process.exit(1));
|
|
35
35
|
const { generateStatic: i } = await import("./static.js");
|
|
36
|
-
await i(
|
|
37
|
-
},
|
|
36
|
+
await i(o, r);
|
|
37
|
+
}, b = () => {
|
|
38
38
|
process.env.NODE_ENV = "production";
|
|
39
|
-
const
|
|
40
|
-
v("node", [
|
|
39
|
+
const s = u(process.cwd(), "dist/server.js");
|
|
40
|
+
v("node", [s]);
|
|
41
41
|
}, d = () => {
|
|
42
42
|
console.log(`
|
|
43
43
|
VeloJS CLI
|
|
@@ -46,7 +46,7 @@ Usage:
|
|
|
46
46
|
velojs <command>
|
|
47
47
|
|
|
48
48
|
Commands:
|
|
49
|
-
init Create a new VeloJS project
|
|
49
|
+
init Create a new VeloJS project (fails only on file conflicts; --force overwrites)
|
|
50
50
|
dev Start development server
|
|
51
51
|
build Build for production (client + server)
|
|
52
52
|
build --static Build as static site (HTML + JSON)
|
|
@@ -65,30 +65,35 @@ Examples:
|
|
|
65
65
|
velojs graph --view
|
|
66
66
|
`);
|
|
67
67
|
};
|
|
68
|
-
switch (
|
|
68
|
+
switch (c) {
|
|
69
69
|
case "init": {
|
|
70
|
-
const { runInit:
|
|
71
|
-
|
|
70
|
+
const { runInit: s } = await import("./init.js");
|
|
71
|
+
try {
|
|
72
|
+
const e = t[1] && !t[1].startsWith("-") ? t[1] : void 0;
|
|
73
|
+
await s(e, { force: t.includes("--force") });
|
|
74
|
+
} catch (e) {
|
|
75
|
+
console.error(e.message), process.exit(1);
|
|
76
|
+
}
|
|
72
77
|
break;
|
|
73
78
|
}
|
|
74
79
|
case "dev":
|
|
75
80
|
m();
|
|
76
81
|
break;
|
|
77
82
|
case "build": {
|
|
78
|
-
const
|
|
79
|
-
|
|
83
|
+
const s = t.includes("--static");
|
|
84
|
+
f(s);
|
|
80
85
|
break;
|
|
81
86
|
}
|
|
82
87
|
case "start":
|
|
83
|
-
|
|
88
|
+
b();
|
|
84
89
|
break;
|
|
85
90
|
case "graph": {
|
|
86
|
-
const { buildGraph:
|
|
91
|
+
const { buildGraph: s } = await import("./graph.js"), e = process.cwd(), o = t[1] && !t[1].startsWith("-") ? t[1] : null, r = n(e, o ?? "app"), i = s(r), l = n(e, ".velojs");
|
|
87
92
|
p.mkdirSync(l, { recursive: !0 });
|
|
88
|
-
const
|
|
89
|
-
if (p.writeFileSync(
|
|
90
|
-
const { serveGraphViewer:
|
|
91
|
-
console.log(`Graph viewer running at ${
|
|
93
|
+
const g = n(l, "graph.json");
|
|
94
|
+
if (p.writeFileSync(g, JSON.stringify(i)), console.log("Graph written to .velojs/graph.json"), t.includes("--view")) {
|
|
95
|
+
const { serveGraphViewer: h } = await import("./graph-viewer.js"), w = await h(e);
|
|
96
|
+
console.log(`Graph viewer running at ${w} (Ctrl+C to stop)`);
|
|
92
97
|
}
|
|
93
98
|
break;
|
|
94
99
|
}
|
|
@@ -98,5 +103,5 @@ switch (a) {
|
|
|
98
103
|
d();
|
|
99
104
|
break;
|
|
100
105
|
default:
|
|
101
|
-
|
|
106
|
+
c && console.error(`Unknown command: ${c}`), d(), process.exit(1);
|
|
102
107
|
}
|
package/dist/init.d.ts
CHANGED
package/dist/init.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import { fileURLToPath as
|
|
4
|
-
const
|
|
5
|
-
function
|
|
6
|
-
const
|
|
7
|
-
return JSON.parse(
|
|
1
|
+
import e from "node:fs";
|
|
2
|
+
import o from "node:path";
|
|
3
|
+
import { fileURLToPath as x } from "node:url";
|
|
4
|
+
const r = "@mauroandre/velojs";
|
|
5
|
+
function v() {
|
|
6
|
+
const n = o.dirname(x(import.meta.url)), p = o.resolve(n, "../package.json");
|
|
7
|
+
return JSON.parse(e.readFileSync(p, "utf-8")).version;
|
|
8
8
|
}
|
|
9
|
-
const
|
|
9
|
+
const g = {
|
|
10
10
|
".gitignore": `# Dependencies
|
|
11
11
|
node_modules/
|
|
12
12
|
|
|
@@ -26,7 +26,7 @@ dist/
|
|
|
26
26
|
"start": "velojs start"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"${
|
|
29
|
+
"${r}": "^${v()}"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@types/node": "latest",
|
|
@@ -34,7 +34,7 @@ dist/
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
`,
|
|
37
|
-
"vite.config.ts": `import { veloPlugin } from "${
|
|
37
|
+
"vite.config.ts": `import { veloPlugin } from "${r}/vite";
|
|
38
38
|
|
|
39
39
|
export default { plugins: [veloPlugin()] };
|
|
40
40
|
`,
|
|
@@ -59,7 +59,7 @@ export default { plugins: [veloPlugin()] };
|
|
|
59
59
|
"exclude": ["node_modules", "dist"]
|
|
60
60
|
}
|
|
61
61
|
`,
|
|
62
|
-
"app/routes.tsx": `import type { AppRoutes } from "${
|
|
62
|
+
"app/routes.tsx": `import type { AppRoutes } from "${r}";
|
|
63
63
|
|
|
64
64
|
import * as Root from "./client-root.js";
|
|
65
65
|
import * as Home from "./pages/Home.js";
|
|
@@ -79,11 +79,11 @@ export default [
|
|
|
79
79
|
`,
|
|
80
80
|
"app/server.tsx": `// Server initialization
|
|
81
81
|
// Use this file to set up server-side logic:
|
|
82
|
-
// import { addRoutes, onServer } from "${
|
|
82
|
+
// import { addRoutes, onServer } from "${r}/server";
|
|
83
83
|
`,
|
|
84
84
|
"app/client.tsx": `import "./styles/global.css";
|
|
85
85
|
`,
|
|
86
|
-
"app/client-root.tsx": `import { Scripts } from "${
|
|
86
|
+
"app/client-root.tsx": `import { Scripts } from "${r}";
|
|
87
87
|
|
|
88
88
|
interface RootProps {
|
|
89
89
|
children: preact.ComponentChildren;
|
|
@@ -147,25 +147,39 @@ a:hover {
|
|
|
147
147
|
};
|
|
148
148
|
`
|
|
149
149
|
};
|
|
150
|
-
async function
|
|
151
|
-
const
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
150
|
+
async function b(n, p) {
|
|
151
|
+
const s = n ? o.resolve(process.cwd(), n) : process.cwd(), a = o.basename(s);
|
|
152
|
+
e.existsSync(s) || e.mkdirSync(s, { recursive: !0 });
|
|
153
|
+
const d = Object.keys(g).filter(
|
|
154
|
+
(t) => t !== ".gitignore" && e.existsSync(o.join(s, t))
|
|
155
|
+
);
|
|
156
|
+
if (d.length > 0 && !p?.force)
|
|
157
|
+
throw new Error(
|
|
158
|
+
`Cannot init in "${a}": these files already exist and would be overwritten:
|
|
159
|
+
` + d.map((t) => ` ${t}`).join(`
|
|
160
|
+
`) + "\nMove them away, or run `velojs init --force` to overwrite."
|
|
161
|
+
);
|
|
162
|
+
for (const [t, l] of Object.entries(g)) {
|
|
163
|
+
const i = o.join(s, t), m = o.dirname(i);
|
|
164
|
+
if (e.existsSync(m) || e.mkdirSync(m, { recursive: !0 }), t === ".gitignore" && e.existsSync(i)) {
|
|
165
|
+
const h = e.readFileSync(i, "utf-8"), u = l.split(`
|
|
166
|
+
`).filter((c) => c && !c.startsWith("#") && !h.includes(c));
|
|
167
|
+
u.length > 0 && e.appendFileSync(i, `
|
|
168
|
+
# VeloJS
|
|
169
|
+
${u.join(`
|
|
170
|
+
`)}
|
|
171
|
+
`);
|
|
172
|
+
continue;
|
|
173
|
+
}
|
|
174
|
+
const f = t === "package.json" ? l.replace("my-velojs-app", a) : l;
|
|
175
|
+
e.writeFileSync(i, f);
|
|
162
176
|
}
|
|
163
177
|
console.log(`
|
|
164
|
-
Project created in ${
|
|
178
|
+
Project created in ${n ? a : "current directory"}!
|
|
165
179
|
`), console.log(`Next steps:
|
|
166
|
-
`),
|
|
180
|
+
`), n && console.log(` cd ${a}`), console.log(" npm install"), console.log(` npx velojs dev
|
|
167
181
|
`);
|
|
168
182
|
}
|
|
169
183
|
export {
|
|
170
|
-
|
|
184
|
+
b as runInit
|
|
171
185
|
};
|
package/dist/loader-store.d.ts
CHANGED
|
@@ -7,9 +7,12 @@
|
|
|
7
7
|
* no module-scope mirror to keep in sync.
|
|
8
8
|
*
|
|
9
9
|
* Invalidation follows the route tree: an entry is stale when the params its own
|
|
10
|
-
* route declares have changed
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
* route declares have changed — or when the module was not part of the previous
|
|
11
|
+
* location's matched chain (it unmounted and is now remounting). The first rule
|
|
12
|
+
* mirrors the server (a loader re-runs when a request arrives with different
|
|
13
|
+
* params); the second mirrors user expectation (returning to a page shows fresh
|
|
14
|
+
* data). A layout keeps its data while navigating among its children because it
|
|
15
|
+
* stays matched the whole time — its client-owned state survives.
|
|
13
16
|
*
|
|
14
17
|
* Deliberately NOT invalidated by:
|
|
15
18
|
* - a query-string change: `routes.tsx` declares path params, never `?x=`, so
|
|
@@ -32,14 +35,16 @@ export declare function registerRoutePatterns(routes: AppRoutes): void;
|
|
|
32
35
|
/**
|
|
33
36
|
* Extract the params a pattern declares from a pathname. Layout patterns are
|
|
34
37
|
* prefixes of the URL (`/x/:id` covers `/x/1/tab`), mirroring how the client
|
|
35
|
-
* router matches them, so the match is prefix-tolerant.
|
|
38
|
+
* router matches them, so the match is prefix-tolerant. Leaf patterns (routes
|
|
39
|
+
* without children) match exactly, mirroring wouter's exact `<Route>` for them.
|
|
36
40
|
*
|
|
37
41
|
* Returns null when the pattern does not cover the pathname at all.
|
|
38
42
|
*/
|
|
39
|
-
export declare function extractParams(pattern: string, pathname: string): Record<string, string> | null;
|
|
43
|
+
export declare function extractParams(pattern: string, pathname: string, exact?: boolean): Record<string, string> | null;
|
|
40
44
|
/**
|
|
41
45
|
* Called on every client navigation. Refetches exactly the entries whose
|
|
42
|
-
* declared params changed
|
|
46
|
+
* declared params changed OR that were not matched at the previous location
|
|
47
|
+
* (they unmounted and are remounting now), in one coalesced request.
|
|
43
48
|
*/
|
|
44
49
|
export declare function syncLocation(pathname: string): void;
|
|
45
50
|
/** Explicit refresh. Never coalesced: a caller asking after a mutation must not
|
package/dist/loader-store.js
CHANGED
|
@@ -1,103 +1,119 @@
|
|
|
1
|
-
import { signal as
|
|
2
|
-
const
|
|
3
|
-
let u =
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { signal as d } from "@preact/signals";
|
|
2
|
+
const S = d(!1), c = /* @__PURE__ */ new Map(), _ = /* @__PURE__ */ new Map(), f = /* @__PURE__ */ new Map(), h = /* @__PURE__ */ new Set(), p = /* @__PURE__ */ new Map();
|
|
3
|
+
let u = /* @__PURE__ */ new Set();
|
|
4
|
+
const l = /* @__PURE__ */ new Map(), y = /* @__PURE__ */ new WeakSet();
|
|
5
|
+
let w = !1;
|
|
6
|
+
function E(t) {
|
|
7
|
+
v();
|
|
6
8
|
let e = c.get(t);
|
|
7
|
-
return e || (e =
|
|
9
|
+
return e || (e = d(null), c.set(t, e)), e;
|
|
8
10
|
}
|
|
9
|
-
function
|
|
10
|
-
let e =
|
|
11
|
-
return e || (e =
|
|
11
|
+
function g(t) {
|
|
12
|
+
let e = _.get(t);
|
|
13
|
+
return e || (e = d(!1), _.set(t, e)), e;
|
|
12
14
|
}
|
|
13
|
-
function
|
|
14
|
-
if (
|
|
15
|
-
|
|
15
|
+
function v() {
|
|
16
|
+
if (w || typeof window > "u") return;
|
|
17
|
+
w = !0;
|
|
16
18
|
const t = window.__PAGE_DATA__;
|
|
17
19
|
if (t)
|
|
18
20
|
for (const e of Object.keys(t)) {
|
|
19
21
|
if (e.startsWith("__")) continue;
|
|
20
22
|
let n = c.get(e);
|
|
21
|
-
n || (n =
|
|
23
|
+
n || (n = d(null), c.set(e, n)), n.value = t[e];
|
|
22
24
|
}
|
|
23
25
|
}
|
|
24
|
-
function
|
|
25
|
-
if (
|
|
26
|
-
|
|
26
|
+
function x(t) {
|
|
27
|
+
if (y.has(t)) return;
|
|
28
|
+
y.add(t);
|
|
27
29
|
const e = (n) => {
|
|
28
30
|
for (const o of n) {
|
|
29
31
|
const i = o.module?.metadata;
|
|
30
|
-
i?.moduleId && i.fullPath !== void 0 &&
|
|
32
|
+
i?.moduleId && i.fullPath !== void 0 && (f.set(i.moduleId, i.fullPath), (!o.children || o.children.length === 0) && h.add(i.moduleId)), o.children && e(o.children);
|
|
31
33
|
}
|
|
32
34
|
};
|
|
33
35
|
if (e(t), typeof window < "u") {
|
|
34
|
-
|
|
35
|
-
for (const n of c.keys())
|
|
36
|
+
v();
|
|
37
|
+
for (const n of c.keys()) M(n, window.location.pathname);
|
|
38
|
+
u = L(window.location.pathname);
|
|
36
39
|
}
|
|
37
40
|
}
|
|
38
|
-
const
|
|
39
|
-
function
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
const P = (t) => t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
42
|
+
function m(t, e, n = !1) {
|
|
43
|
+
const o = [], i = t.split("/").map((s) => s.startsWith(":") ? (o.push(s.slice(1)), "([^/]+)") : P(s)).join("/"), a = e.match(
|
|
44
|
+
new RegExp(n ? `^${i}/?$` : `^${i}(?:/.*)?$`)
|
|
45
|
+
);
|
|
46
|
+
if (!a) return null;
|
|
47
|
+
const r = {};
|
|
48
|
+
return o.forEach((s, A) => {
|
|
49
|
+
r[s] = a[A + 1];
|
|
50
|
+
}), r;
|
|
46
51
|
}
|
|
47
|
-
function
|
|
48
|
-
const n =
|
|
52
|
+
function O(t, e) {
|
|
53
|
+
const n = f.get(t);
|
|
54
|
+
return n === void 0 ? !1 : m(n, e, h.has(t)) !== null;
|
|
55
|
+
}
|
|
56
|
+
function L(t) {
|
|
57
|
+
const e = /* @__PURE__ */ new Set();
|
|
58
|
+
for (const n of f.keys())
|
|
59
|
+
O(n, t) && e.add(n);
|
|
60
|
+
return e;
|
|
61
|
+
}
|
|
62
|
+
function k(t, e) {
|
|
63
|
+
const n = f.get(t);
|
|
49
64
|
if (n === void 0) return null;
|
|
50
|
-
const o =
|
|
65
|
+
const o = m(n, e, h.has(t));
|
|
51
66
|
return o === null ? null : JSON.stringify(o);
|
|
52
67
|
}
|
|
53
|
-
function
|
|
54
|
-
const n =
|
|
55
|
-
n !== null &&
|
|
68
|
+
function M(t, e) {
|
|
69
|
+
const n = k(t, e);
|
|
70
|
+
n !== null && p.set(t, n);
|
|
56
71
|
}
|
|
57
|
-
function
|
|
72
|
+
function H(t) {
|
|
58
73
|
if (typeof __VELO_STATIC__ < "u" && __VELO_STATIC__) return `${t === "/" ? "" : t}/index.json`;
|
|
59
74
|
const n = new URLSearchParams(window.location.search);
|
|
60
75
|
return n.set("_data", "1"), `${t}?${n.toString()}`;
|
|
61
76
|
}
|
|
62
|
-
async function
|
|
77
|
+
async function $(t, e, n) {
|
|
63
78
|
if (typeof window > "u" || t.length === 0) return;
|
|
64
|
-
const o =
|
|
65
|
-
for (const a of t)
|
|
66
|
-
let i = n ?
|
|
67
|
-
i || (i = fetch(o, { cache: "no-cache" }).then((a) => a.json()), n && (
|
|
68
|
-
}).then(() =>
|
|
79
|
+
const o = H(e);
|
|
80
|
+
for (const a of t) g(a).value = !0;
|
|
81
|
+
let i = n ? l.get(o) : void 0;
|
|
82
|
+
i || (i = fetch(o, { cache: "no-cache" }).then((a) => a.json()), n && (l.set(o, i), i.catch(() => {
|
|
83
|
+
}).then(() => l.delete(o))));
|
|
69
84
|
try {
|
|
70
85
|
const a = await i;
|
|
71
|
-
typeof __VELO_BUILD_HASH__ < "u" && a.__buildHash && a.__buildHash !== __VELO_BUILD_HASH__ && (
|
|
86
|
+
typeof __VELO_BUILD_HASH__ < "u" && a.__buildHash && a.__buildHash !== __VELO_BUILD_HASH__ && (S.value = !0);
|
|
72
87
|
for (const r of t)
|
|
73
|
-
r in a && (
|
|
88
|
+
r in a && (E(r).value = a[r], M(r, e));
|
|
74
89
|
} catch {
|
|
75
90
|
} finally {
|
|
76
|
-
for (const a of t)
|
|
91
|
+
for (const a of t) g(a).value = !1;
|
|
77
92
|
}
|
|
78
93
|
}
|
|
79
|
-
function
|
|
94
|
+
function T(t) {
|
|
80
95
|
if (typeof window > "u") return;
|
|
81
|
-
const e = [];
|
|
82
|
-
for (const
|
|
83
|
-
|
|
84
|
-
|
|
96
|
+
const e = [], n = L(t);
|
|
97
|
+
for (const o of c.keys()) {
|
|
98
|
+
if (!n.has(o)) continue;
|
|
99
|
+
const i = k(o, t);
|
|
100
|
+
p.get(o) === i && u.has(o) || e.push(o);
|
|
85
101
|
}
|
|
86
|
-
|
|
102
|
+
u = n, $(e, t, !0);
|
|
87
103
|
}
|
|
88
|
-
function
|
|
89
|
-
typeof window > "u" ||
|
|
104
|
+
function U(t) {
|
|
105
|
+
typeof window > "u" || $([t], window.location.pathname, !1);
|
|
90
106
|
}
|
|
91
|
-
function
|
|
92
|
-
c.clear(),
|
|
107
|
+
function D() {
|
|
108
|
+
c.clear(), _.clear(), f.clear(), h.clear(), p.clear(), u = /* @__PURE__ */ new Set(), l.clear(), w = !1, S.value = !1;
|
|
93
109
|
}
|
|
94
110
|
export {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
111
|
+
D as __resetLoaderStore,
|
|
112
|
+
S as __veloUpdatePending,
|
|
113
|
+
m as extractParams,
|
|
114
|
+
E as loaderEntry,
|
|
115
|
+
g as loaderLoading,
|
|
116
|
+
U as refetchModule,
|
|
117
|
+
x as registerRoutePatterns,
|
|
118
|
+
T as syncLocation
|
|
103
119
|
};
|