eddev 2.0.0-beta.229 → 2.0.0-beta.230
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/dist/app/lib/devtools/loader.js +2 -2
- package/dist/app/lib/routing/components/BrowserRouter.d.ts.map +1 -1
- package/dist/app/lib/routing/components/BrowserRouter.js +35 -6
- package/dist/app/lib/routing/components/ClientOnly.js +2 -2
- package/dist/app/lib/routing/components/Link.d.ts +8 -5
- package/dist/app/lib/routing/components/Link.d.ts.map +1 -1
- package/dist/app/lib/routing/components/Link.js +15 -7
- package/dist/app/lib/routing/hooks/{useIsSSR.d.ts → useHydrating.d.ts} +7 -1
- package/dist/app/lib/routing/hooks/useHydrating.d.ts.map +1 -0
- package/dist/app/lib/routing/hooks/{useIsSSR.js → useHydrating.js} +9 -1
- package/dist/app/lib/routing/index.d.ts +1 -1
- package/dist/app/lib/routing/index.d.ts.map +1 -1
- package/dist/app/lib/routing/index.js +1 -1
- package/dist/app/lib/routing/types.d.ts +13 -2
- package/dist/app/lib/routing/types.d.ts.map +1 -1
- package/dist/app/server/render-ai-page.d.ts.map +1 -1
- package/dist/app/server/render-ai-page.js +3 -1
- package/dist/app/server/render-ssr-page.js +1 -1
- package/dist/app/server/server-context.d.ts +1 -0
- package/dist/app/server/server-context.d.ts.map +1 -1
- package/dist/app/server/server-context.js +9 -2
- package/dist/node/cli/version.d.ts +1 -1
- package/dist/node/cli/version.js +1 -1
- package/dist/node/compiler/vinxi-app.d.ts.map +1 -1
- package/dist/node/compiler/vinxi-app.js +6 -2
- package/dist/node/compiler/vinxi-codegen.js +1 -1
- package/package.json +1 -1
- package/dist/app/lib/routing/hooks/useIsSSR.d.ts.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { lazy, useEffect } from "react";
|
|
3
3
|
import { usePersistState } from "./hooks/usePersistState.js";
|
|
4
|
-
import {
|
|
4
|
+
import { useHydrating } from "../routing/hooks/useHydrating.js";
|
|
5
5
|
const DevUI = lazy(() => import("./components/DevUI.js"));
|
|
6
6
|
export function DevUILoader() {
|
|
7
|
-
const ssr =
|
|
7
|
+
const ssr = useHydrating();
|
|
8
8
|
const [render, setRender] = usePersistState("enable_devui", false);
|
|
9
9
|
useEffect(() => {
|
|
10
10
|
if (document.location.search.includes("activate-dev-ui") ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserRouter.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/components/BrowserRouter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAuD,MAAM,OAAO,CAAA;AAK9F,OAAO,
|
|
1
|
+
{"version":3,"file":"BrowserRouter.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/components/BrowserRouter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAuD,MAAM,OAAO,CAAA;AAK9F,OAAO,EAGL,cAAc,EAId,KAAK,SAAS,EAGf,MAAM,aAAa,CAAA;AAWpB,KAAK,KAAK,GAAG,iBAAiB,CAAC;IAC7B,SAAS,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;IACpD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB,CAAC,CAAA;AAuEF,wBAAgB,eAAe;WAFJ,cAAc;SAAO,SAAS;SAIxD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,2CAgezC"}
|
|
@@ -73,6 +73,7 @@ export function getClientRouter() {
|
|
|
73
73
|
export function BrowserRouter(props) {
|
|
74
74
|
const pendingRoute = useRef(null);
|
|
75
75
|
const [transitioning, startTransition] = useTransition();
|
|
76
|
+
const pendingNavigationClick = useRef(null);
|
|
76
77
|
const [routerState, setRouterState] = useState(() => ({
|
|
77
78
|
activeRoute: initialRoute,
|
|
78
79
|
history: [initialRoute],
|
|
@@ -198,6 +199,7 @@ export function BrowserRouter(props) {
|
|
|
198
199
|
emitEvent({
|
|
199
200
|
type: "navigate:start",
|
|
200
201
|
link,
|
|
202
|
+
linkData: args.linkData,
|
|
201
203
|
currentRoute: currentRoute,
|
|
202
204
|
hasPreloadedData: hasRouteData,
|
|
203
205
|
goingBack: !!args.goingBack,
|
|
@@ -208,7 +210,13 @@ export function BrowserRouter(props) {
|
|
|
208
210
|
if (cancelled)
|
|
209
211
|
return;
|
|
210
212
|
const data = await loader.loadRouteData(parseHrefPath(args.url)).catch((err) => {
|
|
211
|
-
emitEvent({
|
|
213
|
+
emitEvent({
|
|
214
|
+
type: "error",
|
|
215
|
+
url: args.url,
|
|
216
|
+
error: err,
|
|
217
|
+
critical: true,
|
|
218
|
+
linkData: args.linkData,
|
|
219
|
+
});
|
|
212
220
|
return {
|
|
213
221
|
view: "_error",
|
|
214
222
|
viewType: "react",
|
|
@@ -237,6 +245,7 @@ export function BrowserRouter(props) {
|
|
|
237
245
|
component: lazyComponent,
|
|
238
246
|
returnState: args.restoreState ?? {},
|
|
239
247
|
meta: getRouteMeta(data),
|
|
248
|
+
linkData: args.linkData,
|
|
240
249
|
});
|
|
241
250
|
setState({
|
|
242
251
|
pendingRoute: route,
|
|
@@ -246,12 +255,14 @@ export function BrowserRouter(props) {
|
|
|
246
255
|
currentRoute,
|
|
247
256
|
loadedRoute: route,
|
|
248
257
|
link,
|
|
258
|
+
linkData: args.linkData,
|
|
249
259
|
});
|
|
250
260
|
emitEvent({
|
|
251
261
|
type: "navigate:will-change",
|
|
252
262
|
currentRoute,
|
|
253
263
|
loadedRoute: route,
|
|
254
264
|
link,
|
|
265
|
+
linkData: args.linkData,
|
|
255
266
|
});
|
|
256
267
|
internals.transitionEnded = () => {
|
|
257
268
|
internals.transitionEnded = null;
|
|
@@ -264,8 +275,10 @@ export function BrowserRouter(props) {
|
|
|
264
275
|
currentRoute: route,
|
|
265
276
|
lastRoute: currentRoute,
|
|
266
277
|
link,
|
|
278
|
+
linkData: args.linkData,
|
|
267
279
|
});
|
|
268
280
|
$routeMetaStore.data = route.meta;
|
|
281
|
+
pendingNavigationClick.current = null;
|
|
269
282
|
// Update the 'Edit Page' button, if there is one
|
|
270
283
|
if (route.meta.editLink) {
|
|
271
284
|
const button = document.querySelector("#wp-admin-bar-edit a");
|
|
@@ -286,11 +299,12 @@ export function BrowserRouter(props) {
|
|
|
286
299
|
const api = {
|
|
287
300
|
loader: loader,
|
|
288
301
|
hostname: window?._PAGE_DATA?.hostname,
|
|
289
|
-
async navigate(url) {
|
|
302
|
+
async navigate(url, args) {
|
|
290
303
|
doRouteTransition({
|
|
291
304
|
url: url,
|
|
292
305
|
shouldPush: true,
|
|
293
306
|
goingBack: false,
|
|
307
|
+
linkData: args?.linkData,
|
|
294
308
|
});
|
|
295
309
|
},
|
|
296
310
|
getState() {
|
|
@@ -320,7 +334,7 @@ export function BrowserRouter(props) {
|
|
|
320
334
|
});
|
|
321
335
|
}
|
|
322
336
|
catch (err) {
|
|
323
|
-
emitEvent({ type: "error", error: err, critical: false });
|
|
337
|
+
emitEvent({ type: "error", error: err, critical: false, linkData: undefined });
|
|
324
338
|
}
|
|
325
339
|
},
|
|
326
340
|
async preload(url) {
|
|
@@ -338,7 +352,7 @@ export function BrowserRouter(props) {
|
|
|
338
352
|
}
|
|
339
353
|
}
|
|
340
354
|
catch (err) {
|
|
341
|
-
emitEvent({ type: "error", error: err, critical: false });
|
|
355
|
+
emitEvent({ type: "error", error: err, critical: false, linkData: undefined });
|
|
342
356
|
}
|
|
343
357
|
},
|
|
344
358
|
subscribe(fn) {
|
|
@@ -347,14 +361,27 @@ export function BrowserRouter(props) {
|
|
|
347
361
|
subscribers.delete(fn);
|
|
348
362
|
};
|
|
349
363
|
},
|
|
350
|
-
handleClickEvent(e, originalHref, preferBack, eventTarget) {
|
|
364
|
+
handleClickEvent(e, originalHref, preferBack, eventTarget, linkData) {
|
|
351
365
|
const { mode, href, isSameUrl } = getLinkHandlerMode(e, originalHref, state.activeRoute);
|
|
352
366
|
let cancelled = false;
|
|
367
|
+
// If the same link has only just been clicked very recently, ignore it.
|
|
368
|
+
// Likely this is a double-click, or the page has taken a bit longer to load than the user expected.
|
|
369
|
+
if (pendingNavigationClick.current && pendingNavigationClick.current.href === href) {
|
|
370
|
+
const pendingAge = Date.now() - pendingNavigationClick.current.startTime;
|
|
371
|
+
if (pendingAge < 1000) {
|
|
372
|
+
e.preventDefault();
|
|
373
|
+
return;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
else {
|
|
377
|
+
pendingNavigationClick.current = { startTime: Date.now(), href: href };
|
|
378
|
+
}
|
|
353
379
|
if (href) {
|
|
354
380
|
emitEvent({
|
|
355
381
|
type: "clicked",
|
|
356
382
|
currentRoute: getActiveRoute(),
|
|
357
383
|
link: parseRouteLink(href),
|
|
384
|
+
linkData,
|
|
358
385
|
mode,
|
|
359
386
|
href,
|
|
360
387
|
isSameUrl,
|
|
@@ -383,7 +410,9 @@ export function BrowserRouter(props) {
|
|
|
383
410
|
}
|
|
384
411
|
}
|
|
385
412
|
}
|
|
386
|
-
api.navigate(href
|
|
413
|
+
api.navigate(href, {
|
|
414
|
+
linkData,
|
|
415
|
+
});
|
|
387
416
|
}
|
|
388
417
|
},
|
|
389
418
|
emitEvent,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { Fragment } from "react";
|
|
3
|
-
import {
|
|
3
|
+
import { useHydrating } from "../hooks/useHydrating.js";
|
|
4
4
|
/**
|
|
5
5
|
* Renders children, but only on the client.
|
|
6
6
|
*
|
|
7
7
|
* The optional 'fallback' prop can be used to show a loading state or placeholder content while the client bundle is loading.
|
|
8
8
|
*/
|
|
9
9
|
export function ClientOnly(props) {
|
|
10
|
-
const mounted =
|
|
10
|
+
const mounted = useHydrating();
|
|
11
11
|
if (mounted)
|
|
12
12
|
return props.fallback ?? null;
|
|
13
13
|
return _jsx(Fragment, { children: props.children });
|
|
@@ -1,23 +1,26 @@
|
|
|
1
1
|
import { ComponentPropsWithRef, ElementType, MouseEvent, ReactElement } from "react";
|
|
2
|
+
import { LinkClickData } from "../types.js";
|
|
2
3
|
type Props<T extends ElementType = "a"> = NoInfer<Omit<ComponentPropsWithRef<T>, "href" | "target">> & {
|
|
3
4
|
href?: string | null;
|
|
4
5
|
target?: string | null;
|
|
5
6
|
as?: T;
|
|
6
7
|
preferBack?: boolean | "exact";
|
|
8
|
+
linkData?: LinkClickData;
|
|
7
9
|
};
|
|
8
10
|
export declare function useLinkProps<T extends ElementType = "a">(props: Exclude<Props<T>, "as">, ref?: React.Ref<HTMLAnchorElement>): ({
|
|
9
11
|
ref: import("react").Ref<HTMLAnchorElement> | undefined;
|
|
10
|
-
} & Exclude<Props<T>, "as"> & {
|
|
11
|
-
href: string | undefined;
|
|
12
|
-
onClick: (e: MouseEvent) => void;
|
|
13
|
-
}) | ({
|
|
14
|
-
ref: import("react").Ref<HTMLAnchorElement> | undefined;
|
|
15
12
|
"data-active": boolean | "path" | "query" | "exact" | undefined;
|
|
16
13
|
"data-child-active": boolean | undefined;
|
|
17
14
|
"data-pending": "path" | "query" | "exact" | undefined;
|
|
18
15
|
} & Exclude<Props<T>, "as"> & {
|
|
19
16
|
href: string;
|
|
20
17
|
onMouseEnter: (e: MouseEvent) => void;
|
|
18
|
+
onPointerDown: (e: PointerEvent) => void;
|
|
19
|
+
onClick: (e: MouseEvent) => void;
|
|
20
|
+
}) | ({
|
|
21
|
+
ref: import("react").Ref<HTMLAnchorElement> | undefined;
|
|
22
|
+
} & Exclude<Props<T>, "as"> & {
|
|
23
|
+
href: string | undefined;
|
|
21
24
|
onClick: (e: MouseEvent) => void;
|
|
22
25
|
});
|
|
23
26
|
export declare const Link: <T extends ElementType = "a">(props: Props<T>) => ReactElement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/components/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAsC,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/components/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAsC,MAAM,OAAO,CAAA;AAIxH,OAAO,EAAE,aAAa,EAAc,MAAM,aAAa,CAAA;AAKvD,KAAK,KAAK,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,GAAG;IACrG,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,EAAE,CAAC,EAAE,CAAC,CAAA;IACN,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;IAC9B,QAAQ,CAAC,EAAE,aAAa,CAAA;CACzB,CAAA;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG,EACtD,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAC9B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC;;;;;;;sBAuBd,UAAU;uBAOT,YAAY;iBAOlB,UAAU;;;;;iBA9BR,UAAU;GAwC5B;AAED,eAAO,MAAM,IAAI,EAIX,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,YAAY,CAAA;AAKpE;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM;;;;;;;;;;;;EA6BxC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createElement, forwardRef, useMemo } from "react";
|
|
2
2
|
import { parseURL, resolveURL, withoutTrailingSlash } from "ufo";
|
|
3
|
-
import {
|
|
3
|
+
import { useHydrating } from "../hooks/useHydrating.js";
|
|
4
4
|
import { useRouter } from "../hooks/useRouter.js";
|
|
5
5
|
import { addTrailingSlash, getLinkHandlerMode, isSameOrigin } from "../utils.js";
|
|
6
6
|
import { useRoute } from "../hooks/useRoute.js";
|
|
@@ -19,7 +19,7 @@ export function useLinkProps(props, ref) {
|
|
|
19
19
|
}
|
|
20
20
|
const router = useRouter();
|
|
21
21
|
const state = useLinkState(props.href ?? "");
|
|
22
|
-
|
|
22
|
+
const finalProps = {
|
|
23
23
|
ref: ref,
|
|
24
24
|
"data-active": state.active ?? undefined,
|
|
25
25
|
"data-child-active": state.childActive ?? undefined,
|
|
@@ -27,9 +27,14 @@ export function useLinkProps(props, ref) {
|
|
|
27
27
|
...props,
|
|
28
28
|
href: addTrailingSlash(props.href),
|
|
29
29
|
onMouseEnter: (e) => {
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
props.onMouseEnter?.(e);
|
|
31
|
+
const mode = getLinkHandlerMode(e, props.href);
|
|
32
|
+
if (mode.mode === "navigate") {
|
|
33
|
+
router.preload(props.href);
|
|
32
34
|
}
|
|
35
|
+
},
|
|
36
|
+
onPointerDown: (e) => {
|
|
37
|
+
props.onPointerDown?.(e);
|
|
33
38
|
const mode = getLinkHandlerMode(e, props.href);
|
|
34
39
|
if (mode.mode === "navigate") {
|
|
35
40
|
router.preload(props.href);
|
|
@@ -37,11 +42,14 @@ export function useLinkProps(props, ref) {
|
|
|
37
42
|
},
|
|
38
43
|
onClick: (e) => {
|
|
39
44
|
props.onClick?.(e);
|
|
40
|
-
router.handleClickEvent(e, props.href ?? undefined, props.preferBack);
|
|
45
|
+
router.handleClickEvent(e, props.href ?? undefined, props.preferBack, undefined, props.linkData);
|
|
41
46
|
},
|
|
42
47
|
};
|
|
48
|
+
delete finalProps.preferBack;
|
|
49
|
+
delete finalProps.linkData;
|
|
50
|
+
return finalProps;
|
|
43
51
|
}
|
|
44
|
-
export const Link = forwardRef(({
|
|
52
|
+
export const Link = forwardRef(({ as, ...props }, ref) => {
|
|
45
53
|
const Comp = as || "a";
|
|
46
54
|
const finalProps = useLinkProps(props, ref);
|
|
47
55
|
return createElement(Comp, finalProps);
|
|
@@ -56,7 +64,7 @@ Link.displayName = "Link";
|
|
|
56
64
|
export function useLinkState(href) {
|
|
57
65
|
const route = useRoute();
|
|
58
66
|
const pendingRoute = useRouterState((r) => r.pendingRoute);
|
|
59
|
-
const isSSR =
|
|
67
|
+
const isSSR = useHydrating();
|
|
60
68
|
const state = useMemo(() => {
|
|
61
69
|
// If we're in SSR mode, do a quick and dirty check, which relies on the href being relative.
|
|
62
70
|
if (isSSR) {
|
|
@@ -5,5 +5,11 @@
|
|
|
5
5
|
*
|
|
6
6
|
* On the client, this hook will return `true` once, after hydration, and then switch to `false`.
|
|
7
7
|
*/
|
|
8
|
+
export declare function useHydrating(): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Alias of useHydrating (was renamed)
|
|
11
|
+
* @deprecated
|
|
12
|
+
* @see useHydrating
|
|
13
|
+
*/
|
|
8
14
|
export declare function useIsSSR(): boolean;
|
|
9
|
-
//# sourceMappingURL=
|
|
15
|
+
//# sourceMappingURL=useHydrating.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useHydrating.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/hooks/useHydrating.tsx"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,wBAAgB,YAAY,YAa3B;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,YAEvB"}
|
|
@@ -7,7 +7,7 @@ let isSSR = true;
|
|
|
7
7
|
*
|
|
8
8
|
* On the client, this hook will return `true` once, after hydration, and then switch to `false`.
|
|
9
9
|
*/
|
|
10
|
-
export function
|
|
10
|
+
export function useHydrating() {
|
|
11
11
|
const [value, setValue] = useState(isSSR);
|
|
12
12
|
useEffect(() => {
|
|
13
13
|
if (!isSSR)
|
|
@@ -20,3 +20,11 @@ export function useIsSSR() {
|
|
|
20
20
|
}, []);
|
|
21
21
|
return value;
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Alias of useHydrating (was renamed)
|
|
25
|
+
* @deprecated
|
|
26
|
+
* @see useHydrating
|
|
27
|
+
*/
|
|
28
|
+
export function useIsSSR() {
|
|
29
|
+
return useHydrating();
|
|
30
|
+
}
|
|
@@ -11,7 +11,7 @@ export * from "./hooks/useRouter.js";
|
|
|
11
11
|
export * from "./hooks/useRouterEvents.js";
|
|
12
12
|
export * from "./hooks/useRouterState.js";
|
|
13
13
|
export * from "./hooks/useRestorableState.js";
|
|
14
|
-
export * from "./hooks/
|
|
14
|
+
export * from "./hooks/useHydrating.js";
|
|
15
15
|
export * from "./hooks/useSearchParams.js";
|
|
16
16
|
export { getLinkHandlerMode, isSameOrigin } from "./utils.js";
|
|
17
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/app/lib/routing/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAE1B,cAAc,sBAAsB,CAAA;AACpC,cAAc,mCAAmC,CAAA;AACjD,cAAc,+BAA+B,CAAA;AAC7C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mCAAmC,CAAA;AAEjD,cAAc,qBAAqB,CAAA;AACnC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,sBAAsB,CAAA;AACpC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,2BAA2B,CAAA;AACzC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/app/lib/routing/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAE1B,cAAc,sBAAsB,CAAA;AACpC,cAAc,mCAAmC,CAAA;AACjD,cAAc,+BAA+B,CAAA;AAC7C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mCAAmC,CAAA;AAEjD,cAAc,qBAAqB,CAAA;AACnC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,sBAAsB,CAAA;AACpC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,2BAA2B,CAAA;AACzC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -11,6 +11,6 @@ export * from "./hooks/useRouter.js";
|
|
|
11
11
|
export * from "./hooks/useRouterEvents.js";
|
|
12
12
|
export * from "./hooks/useRouterState.js";
|
|
13
13
|
export * from "./hooks/useRestorableState.js";
|
|
14
|
-
export * from "./hooks/
|
|
14
|
+
export * from "./hooks/useHydrating.js";
|
|
15
15
|
export * from "./hooks/useSearchParams.js";
|
|
16
16
|
export { getLinkHandlerMode, isSameOrigin } from "./utils.js";
|
|
@@ -39,6 +39,7 @@ export type RouteLink = {
|
|
|
39
39
|
export type RouterEvent = ({
|
|
40
40
|
type: "clicked";
|
|
41
41
|
link: RouteLink;
|
|
42
|
+
linkData: LinkClickData | undefined;
|
|
42
43
|
currentRoute: RouteState;
|
|
43
44
|
target?: HTMLElement;
|
|
44
45
|
cancel: () => void;
|
|
@@ -48,6 +49,7 @@ export type RouterEvent = ({
|
|
|
48
49
|
} | {
|
|
49
50
|
type: "navigate:start";
|
|
50
51
|
link: RouteLink;
|
|
52
|
+
linkData: LinkClickData | undefined;
|
|
51
53
|
currentRoute: RouteState;
|
|
52
54
|
hasPreloadedData: boolean;
|
|
53
55
|
goingBack?: boolean;
|
|
@@ -55,16 +57,19 @@ export type RouterEvent = ({
|
|
|
55
57
|
} | {
|
|
56
58
|
type: "navigate:data-ready";
|
|
57
59
|
link: RouteLink;
|
|
60
|
+
linkData: LinkClickData | undefined;
|
|
58
61
|
currentRoute: RouteState;
|
|
59
62
|
loadedRoute: RouteState;
|
|
60
63
|
} | {
|
|
61
64
|
type: "navigate:will-change";
|
|
62
65
|
link: RouteLink;
|
|
66
|
+
linkData: LinkClickData | undefined;
|
|
63
67
|
currentRoute: RouteState;
|
|
64
68
|
loadedRoute: RouteState;
|
|
65
69
|
} | {
|
|
66
70
|
type: "navigate:changed";
|
|
67
71
|
link: RouteLink;
|
|
72
|
+
linkData: LinkClickData | undefined;
|
|
68
73
|
lastRoute: RouteState;
|
|
69
74
|
currentRoute: RouteState;
|
|
70
75
|
} | {
|
|
@@ -84,6 +89,7 @@ export type RouterEvent = ({
|
|
|
84
89
|
} | {
|
|
85
90
|
type: "error";
|
|
86
91
|
critical: boolean;
|
|
92
|
+
linkData: LinkClickData | undefined;
|
|
87
93
|
url?: string;
|
|
88
94
|
shouldReload?: boolean;
|
|
89
95
|
error: Error;
|
|
@@ -110,7 +116,9 @@ export type RouterAPI = {
|
|
|
110
116
|
/** Prefetch the data for a page, but not it's components. */
|
|
111
117
|
prefetch: (url: string) => Promise<void>;
|
|
112
118
|
/** Begin transitioning to a new page */
|
|
113
|
-
navigate: (url: string,
|
|
119
|
+
navigate: (url: string, args?: {
|
|
120
|
+
linkData?: LinkClickData;
|
|
121
|
+
}) => Promise<void>;
|
|
114
122
|
/** Replace the browser search params value with the given data, without transitioning the route */
|
|
115
123
|
replaceQuery: (search: Record<string, string | string[]>) => void;
|
|
116
124
|
/** Replace the hash */
|
|
@@ -122,7 +130,7 @@ export type RouterAPI = {
|
|
|
122
130
|
* @param href An optional URL. This must be provided if no `href` property exists on the clicked element
|
|
123
131
|
* @param preferBack If set, clicking this link will send the user 'back', when clicking a link to the previous history item.
|
|
124
132
|
*/
|
|
125
|
-
handleClickEvent(e: PointerOrMouseEvent, href?: string, preferBack?: boolean | "exact", element?: HTMLElement): void;
|
|
133
|
+
handleClickEvent(e: PointerOrMouseEvent, href?: string, preferBack?: boolean | "exact", element?: HTMLElement, linkData?: LinkClickData): void;
|
|
126
134
|
/** A reference to the route loader (mostly for internal use) */
|
|
127
135
|
loader: RouteLoader;
|
|
128
136
|
/** Subscribe to events */
|
|
@@ -161,7 +169,10 @@ export type TypedRouteState<T, TProps> = {
|
|
|
161
169
|
props: TProps;
|
|
162
170
|
/** Loaded metadata for this route */
|
|
163
171
|
meta: RouteMeta;
|
|
172
|
+
/** Link data, provided using `<Link linkData={...} />`. Will be `undefined` if none was provided. */
|
|
173
|
+
linkData?: LinkClickData;
|
|
164
174
|
};
|
|
175
|
+
export type LinkClickData = Record<string, any>;
|
|
165
176
|
export type RouteMeta = {
|
|
166
177
|
title?: string;
|
|
167
178
|
tags?: RouteMetaTag[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/app/lib/routing/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/app/lib/routing/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-ai-page.d.ts","sourceRoot":"","sources":["../../../src/app/server/render-ai-page.tsx"],"names":[],"mappings":"AAmGA,KAAK,UAAU,GAAG;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"render-ai-page.d.ts","sourceRoot":"","sources":["../../../src/app/server/render-ai-page.tsx"],"names":[],"mappings":"AAmGA,KAAK,UAAU,GAAG;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CA4CpF"}
|
|
@@ -65,7 +65,9 @@ export async function renderPageForIndexing(args) {
|
|
|
65
65
|
const serverContext = ServerContext.main;
|
|
66
66
|
let responseInit = {};
|
|
67
67
|
const [{ appData }, response] = await Promise.all([
|
|
68
|
-
serverContext.fetchAppData({
|
|
68
|
+
serverContext.fetchAppData({
|
|
69
|
+
newOrigin: args.newOrigin,
|
|
70
|
+
}),
|
|
69
71
|
serverContext.fetchRouteData({
|
|
70
72
|
pathname: args.pathname,
|
|
71
73
|
newOrigin: args.newOrigin,
|
|
@@ -108,7 +108,7 @@ export async function renderPage(args) {
|
|
|
108
108
|
};
|
|
109
109
|
try {
|
|
110
110
|
const [{ appData, trackers }, response] = await Promise.all([
|
|
111
|
-
serverContext.fetchAppData({ bypass: args.bypass }),
|
|
111
|
+
serverContext.fetchAppData({ bypass: args.bypass, newOrigin: args.newOrigin }),
|
|
112
112
|
serverContext.fetchRouteData({
|
|
113
113
|
pathname: args.pathname,
|
|
114
114
|
newOrigin: args.newOrigin,
|
|
@@ -48,6 +48,7 @@ export declare class ServerContext {
|
|
|
48
48
|
}): Promise<Response>;
|
|
49
49
|
fetchAppData(args: {
|
|
50
50
|
bypass?: boolean;
|
|
51
|
+
newOrigin?: string;
|
|
51
52
|
}): Promise<ServerAppData>;
|
|
52
53
|
extractRequestHeaders(req?: RequestHeaders): Partial<Record<import("vinxi/http").HTTPHeaderName, string | undefined>>;
|
|
53
54
|
fetchNamedQuery(req: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-context.d.ts","sourceRoot":"","sources":["../../../src/app/server/server-context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAC1D,OAAO,EAAE,OAAO,EAAE,cAAc,EAAoC,MAAM,YAAY,CAAA;AACtF,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAE3E,OAAO,EAAiC,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAEpF,OAAO,EAAqB,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAE5E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAKxD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,OAAO,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,eAAe,CAAA;IAC7B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,MAAM,EAAE,QAAQ,CAAA;IAChB,WAAW,EAAE,aAAa,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAA;CACxC,CAAA;AAkBD;;GAEG;AACH,KAAK,aAAa,GAAG;IACnB,OAAO,EAAE,GAAG,CAAA;IACZ,QAAQ,EAAE,WAAW,CAAA;CACtB,CAAA;AAED,qBAAa,aAAa;IACxB,GAAG,EAAE,OAAO,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IACxD,QAAQ,EAAE,MAAM,EAAE,CAAK;IACvB,MAAM,EAAE,QAAQ,CAAA;IAChB,WAAW,EAAE,aAAa,CAAA;IAE1B,MAAM,CAAC,IAAI,EAAE,aAAa,CAAA;gBAEd,IAAI,EAAE,iBAAiB;IAYnC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAOzC,IAAI,OAAO,yBAEV;IAED,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,oBAAoB;IAI1C,YAAY,CAAC,GAAG,EAAE,MAAM;IAQlB,WAAW,CACf,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,WAAW,GAAG;QAAE,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GACjE,OAAO,CAAC,QAAQ,CAAC;IAgCpB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,KAAK,EAAE;IAmFvG,cAAc,CAAC,GAAG,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,cAAc,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;
|
|
1
|
+
{"version":3,"file":"server-context.d.ts","sourceRoot":"","sources":["../../../src/app/server/server-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -261,6 +261,9 @@ export class ServerContext {
|
|
|
261
261
|
};
|
|
262
262
|
},
|
|
263
263
|
});
|
|
264
|
+
if (this.cacheConfig.serverless.isr) {
|
|
265
|
+
result.headers.delete("cache-control");
|
|
266
|
+
}
|
|
264
267
|
return new Response(result.data, {
|
|
265
268
|
status: result.status,
|
|
266
269
|
headers: result.headers,
|
|
@@ -269,11 +272,13 @@ export class ServerContext {
|
|
|
269
272
|
async fetchAppData(args) {
|
|
270
273
|
const data = await swr({
|
|
271
274
|
key: "fetchAppData",
|
|
272
|
-
cache: pageCache
|
|
275
|
+
cache: pageCache,
|
|
276
|
+
forceFresh: this.dev || args.bypass,
|
|
273
277
|
getFreshValue: async (ctx) => {
|
|
274
278
|
const response = await this.fetchOrigin("/_appdata", {
|
|
275
279
|
cache: "no-cache",
|
|
276
280
|
replaceUrls: true,
|
|
281
|
+
newOrigin: args.newOrigin,
|
|
277
282
|
headers: {
|
|
278
283
|
"Content-Type": "application/json",
|
|
279
284
|
Accept: "application/json",
|
|
@@ -290,7 +295,6 @@ export class ServerContext {
|
|
|
290
295
|
result.__generated = new Date().toISOString();
|
|
291
296
|
return result;
|
|
292
297
|
},
|
|
293
|
-
forceFresh: this.dev,
|
|
294
298
|
});
|
|
295
299
|
return data;
|
|
296
300
|
}
|
|
@@ -351,6 +355,9 @@ export class ServerContext {
|
|
|
351
355
|
return result;
|
|
352
356
|
},
|
|
353
357
|
});
|
|
358
|
+
if (this.cacheConfig.serverless.isr) {
|
|
359
|
+
result.headers.delete("cache-control");
|
|
360
|
+
}
|
|
354
361
|
return new Response(result.data, {
|
|
355
362
|
status: result.status,
|
|
356
363
|
headers: result.headers,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "2.0.0-beta.
|
|
1
|
+
export declare const VERSION = "2.0.0-beta.230";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/node/cli/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const VERSION = "2.0.0-beta.
|
|
1
|
+
export const VERSION = "2.0.0-beta.230";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vinxi-app.d.ts","sourceRoot":"","sources":["../../../src/node/compiler/vinxi-app.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAGtD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAI/C,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,aAAa,GAAG,YAAY,CAAA;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,MAAM,EAAE,QAAQ,CAAA;CACjB,CAAA;AAED,KAAK,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,CAAA;AAC7D,KAAK,mBAAmB,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,QAAQ,CAAA;AACrD,KAAK,iBAAiB,GAAG,MAAM,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAA;AAEhE,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAA;CAC1C,CAAA;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"vinxi-app.d.ts","sourceRoot":"","sources":["../../../src/node/compiler/vinxi-app.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAGtD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAI/C,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,aAAa,GAAG,YAAY,CAAA;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,MAAM,EAAE,QAAQ,CAAA;CACjB,CAAA;AAED,KAAK,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,CAAA;AAC7D,KAAK,mBAAmB,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,QAAQ,CAAA;AACrD,KAAK,iBAAiB,GAAG,MAAM,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAA;AAEhE,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAA;CAC1C,CAAA;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,uBA2O3C"}
|
|
@@ -75,8 +75,12 @@ export function createVinxiApp(args) {
|
|
|
75
75
|
},
|
|
76
76
|
},
|
|
77
77
|
"/_data/query/**": {
|
|
78
|
-
isr:
|
|
79
|
-
|
|
78
|
+
isr: {
|
|
79
|
+
expiration: cacheConfig.queryHooksTTL ?? 0,
|
|
80
|
+
allowQuery: ["params"],
|
|
81
|
+
group: 1,
|
|
82
|
+
passQuery: true,
|
|
83
|
+
},
|
|
80
84
|
cache: {
|
|
81
85
|
varies: ["Authorization", "woocommerce-session"],
|
|
82
86
|
},
|
|
@@ -305,7 +305,7 @@ export function createVinxiCodegen(opts) {
|
|
|
305
305
|
throw new Error("Invalid query parameters")
|
|
306
306
|
}
|
|
307
307
|
|
|
308
|
-
return await serverContext.fetchNamedQuery({ name: id, params: params, headers: getRequestHeaders(event), bypass: serverContext.shouldBypass(event) })
|
|
308
|
+
return await serverContext.fetchNamedQuery({ name: id, newOrigin: url.origin, params: params, headers: getRequestHeaders(event), bypass: serverContext.shouldBypass(event) })
|
|
309
309
|
}),
|
|
310
310
|
)
|
|
311
311
|
.get(
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useIsSSR.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/hooks/useIsSSR.tsx"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,wBAAgB,QAAQ,YAavB"}
|