kiru 0.50.8 → 0.51.0-preview.1

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 (76) hide show
  1. package/dist/constants.d.ts.map +1 -1
  2. package/dist/constants.js +1 -0
  3. package/dist/constants.js.map +1 -1
  4. package/dist/reconciler.d.ts.map +1 -1
  5. package/dist/reconciler.js +4 -12
  6. package/dist/reconciler.js.map +1 -1
  7. package/dist/router/client/index.d.ts +10 -0
  8. package/dist/router/client/index.d.ts.map +1 -0
  9. package/dist/router/client/index.js +73 -0
  10. package/dist/router/client/index.js.map +1 -0
  11. package/dist/router/dev/index.d.ts +2 -0
  12. package/dist/router/dev/index.d.ts.map +1 -0
  13. package/dist/router/dev/index.js +46 -0
  14. package/dist/router/dev/index.js.map +1 -0
  15. package/dist/router/fileRouter.d.ts +1 -1
  16. package/dist/router/fileRouter.d.ts.map +1 -1
  17. package/dist/router/fileRouter.js +10 -2
  18. package/dist/router/fileRouter.js.map +1 -1
  19. package/dist/router/fileRouterController.d.ts +4 -4
  20. package/dist/router/fileRouterController.d.ts.map +1 -1
  21. package/dist/router/fileRouterController.js +118 -47
  22. package/dist/router/fileRouterController.js.map +1 -1
  23. package/dist/router/globals.d.ts +3 -0
  24. package/dist/router/globals.d.ts.map +1 -1
  25. package/dist/router/globals.js +3 -0
  26. package/dist/router/globals.js.map +1 -1
  27. package/dist/router/head.d.ts +38 -0
  28. package/dist/router/head.d.ts.map +1 -0
  29. package/dist/router/head.js +63 -0
  30. package/dist/router/head.js.map +1 -0
  31. package/dist/router/index.d.ts +5 -0
  32. package/dist/router/index.d.ts.map +1 -1
  33. package/dist/router/index.js +5 -0
  34. package/dist/router/index.js.map +1 -1
  35. package/dist/router/pageConfig.d.ts +1 -1
  36. package/dist/router/pageConfig.d.ts.map +1 -1
  37. package/dist/router/pageConfig.js +1 -1
  38. package/dist/router/pageConfig.js.map +1 -1
  39. package/dist/router/server/index.d.ts +17 -0
  40. package/dist/router/server/index.d.ts.map +1 -0
  41. package/dist/router/server/index.js +160 -0
  42. package/dist/router/server/index.js.map +1 -0
  43. package/dist/router/types.d.ts +35 -11
  44. package/dist/router/types.d.ts.map +1 -1
  45. package/dist/router/types.internal.d.ts +6 -2
  46. package/dist/router/types.internal.d.ts.map +1 -1
  47. package/dist/router/utils/index.d.ts +4 -4
  48. package/dist/router/utils/index.d.ts.map +1 -1
  49. package/dist/router/utils/index.js +18 -5
  50. package/dist/router/utils/index.js.map +1 -1
  51. package/dist/types.dom.d.ts +2 -2
  52. package/dist/types.dom.d.ts.map +1 -1
  53. package/dist/types.utils.d.ts +3 -0
  54. package/dist/types.utils.d.ts.map +1 -1
  55. package/dist/utils/vdom.d.ts +2 -1
  56. package/dist/utils/vdom.d.ts.map +1 -1
  57. package/dist/utils/vdom.js +6 -1
  58. package/dist/utils/vdom.js.map +1 -1
  59. package/package.json +17 -1
  60. package/src/constants.ts +1 -0
  61. package/src/reconciler.ts +9 -19
  62. package/src/router/client/index.ts +97 -0
  63. package/src/router/dev/index.ts +63 -0
  64. package/src/router/fileRouter.ts +12 -3
  65. package/src/router/fileRouterController.ts +185 -73
  66. package/src/router/globals.ts +4 -0
  67. package/src/router/head.ts +66 -0
  68. package/src/router/index.ts +7 -0
  69. package/src/router/pageConfig.ts +2 -2
  70. package/src/router/server/index.ts +214 -0
  71. package/src/router/types.internal.ts +6 -2
  72. package/src/router/types.ts +43 -20
  73. package/src/router/utils/index.ts +25 -7
  74. package/src/types.dom.ts +2 -5
  75. package/src/types.utils.ts +4 -0
  76. package/src/utils/vdom.ts +9 -0
@@ -2,16 +2,16 @@ import { Signal } from "../signals/base.js";
2
2
  import { flushSync } from "../scheduler.js";
3
3
  import { __DEV__ } from "../env.js";
4
4
  import { FileRouterDataLoadError } from "./errors.js";
5
- import { fileRouterInstance } from "./globals.js";
6
- import { formatViteImportMap, matchLayouts, matchRoute, normalizePrefixPath, parseQuery, wrapWithLayouts, } from "./utils/index.js";
5
+ import { fileRouterInstance, fileRouterRoute } from "./globals.js";
6
+ import { formatViteImportMap, matchLayouts, matchRoute, match404Route, normalizePrefixPath, parseQuery, wrapWithLayouts, } from "./utils/index.js";
7
7
  export class FileRouterController {
8
- constructor(config) {
8
+ constructor() {
9
9
  this.cleanups = [];
10
- fileRouterInstance.current = this;
10
+ this.enableTransitions = false;
11
11
  this.pages = {};
12
12
  this.layouts = {};
13
13
  this.abortController = new AbortController();
14
- this.routeState = new Signal(null);
14
+ this.currentPage = new Signal(null);
15
15
  this.currentPageProps = new Signal({});
16
16
  this.currentLayouts = new Signal([]);
17
17
  this.state = {
@@ -34,33 +34,71 @@ export class FileRouterController {
34
34
  this.filePathToPageRoute = new Map();
35
35
  this.pageRouteToConfig = new Map();
36
36
  }
37
- this.currentRoute = null;
38
- const { pages, layouts, dir = "/pages", baseUrl = "/", transition } = config;
37
+ const handlePopState = () => this.loadRoute();
38
+ window.addEventListener("popstate", handlePopState);
39
+ this.cleanups.push(() => window.removeEventListener("popstate", handlePopState));
40
+ }
41
+ init(config) {
42
+ const { pages, layouts, dir = "/pages", baseUrl = "/", transition, preloaded, } = config;
39
43
  this.enableTransitions = !!transition;
40
44
  const [normalizedDir, normalizedBaseUrl] = [
41
45
  normalizePrefixPath(dir),
42
46
  normalizePrefixPath(baseUrl),
43
47
  ];
44
- this.pages = formatViteImportMap(pages, normalizedDir, normalizedBaseUrl);
45
- if (__DEV__) {
46
- validateRoutes(this.pages);
48
+ if (preloaded) {
49
+ const { pages, layouts, page, pageProps, pageLayouts, route, params, query, } = preloaded;
50
+ this.state = {
51
+ params,
52
+ query,
53
+ path: route,
54
+ signal: this.abortController.signal,
55
+ };
56
+ this.currentPage.value = {
57
+ component: page.default,
58
+ config: page.config,
59
+ route,
60
+ };
61
+ this.currentPageProps.value = pageProps;
62
+ this.currentLayouts.value = pageLayouts.map((l) => l.default);
63
+ this.pages = pages;
64
+ this.layouts = layouts;
65
+ if (__DEV__) {
66
+ if (page.config) {
67
+ this.onPageConfigDefined(route, page.config);
68
+ }
69
+ }
70
+ if (__DEV__) {
71
+ validateRoutes(this.pages);
72
+ }
73
+ const loader = page.config?.loader;
74
+ if (__DEV__) {
75
+ if (loader) {
76
+ this.loadRouteData(page.config, pageProps, this.state);
77
+ }
78
+ }
79
+ else if (loader && loader.mode !== "static") {
80
+ this.loadRouteData(page.config, pageProps, this.state);
81
+ }
82
+ }
83
+ else {
84
+ this.pages = formatViteImportMap(pages, normalizedDir, normalizedBaseUrl);
85
+ this.layouts = formatViteImportMap(layouts, normalizedDir, normalizedBaseUrl);
86
+ if (__DEV__) {
87
+ validateRoutes(this.pages);
88
+ }
89
+ this.loadRoute();
47
90
  }
48
- this.layouts = formatViteImportMap(layouts, normalizedDir, normalizedBaseUrl);
49
- this.loadRoute();
50
- const handlePopState = () => this.loadRoute();
51
- window.addEventListener("popstate", handlePopState);
52
- this.cleanups.push(() => window.removeEventListener("popstate", handlePopState));
53
91
  }
54
92
  onPageConfigDefined(fp, config) {
55
93
  const existing = this.filePathToPageRoute?.get(fp);
56
94
  if (existing === undefined) {
57
- const route = this.currentRoute;
95
+ const route = fileRouterRoute.current;
58
96
  if (!route)
59
97
  return;
60
98
  this.filePathToPageRoute?.set(fp, { route, config });
61
99
  return;
62
100
  }
63
- const curPage = this.routeState.value;
101
+ const curPage = this.currentPage.value;
64
102
  if (curPage?.route === existing.route && config.loader) {
65
103
  const p = this.currentPageProps.value;
66
104
  let transition = this.enableTransitions;
@@ -76,42 +114,48 @@ export class FileRouterController {
76
114
  handleStateTransition(this.state.signal, transition, () => {
77
115
  this.currentPageProps.value = props;
78
116
  });
79
- this.loadRouteData(config.loader, props, this.state, transition);
117
+ this.loadRouteData(config, props, this.state, transition);
80
118
  }
81
119
  this.pageRouteToConfig?.set(existing.route, config);
82
120
  }
83
121
  getChildren() {
84
- const page = this.routeState.value;
122
+ const page = this.currentPage.value;
85
123
  if (!page)
86
124
  return null;
87
125
  const props = this.currentPageProps.value, layouts = this.currentLayouts.value;
88
126
  return wrapWithLayouts(layouts, page.component, props);
89
127
  }
90
128
  dispose() {
129
+ this.abortController?.abort();
91
130
  this.cleanups.forEach((cleanup) => cleanup());
131
+ this.cleanups.length = 0;
132
+ if (__DEV__) {
133
+ this.filePathToPageRoute?.clear();
134
+ this.pageRouteToConfig?.clear();
135
+ }
136
+ fileRouterRoute.current = null;
137
+ fileRouterInstance.current = null;
92
138
  }
93
- async loadRoute(path = window.location.pathname, props = {}, enableTransition = this.enableTransitions) {
139
+ async loadRoute(path = window.location.pathname, props = {}, enableTransition = this.enableTransitions, isStatic404 = false) {
94
140
  this.abortController?.abort();
95
141
  const signal = (this.abortController = new AbortController()).signal;
96
142
  try {
97
143
  const pathSegments = path.split("/").filter(Boolean);
98
- const routeMatch = matchRoute(this.pages, pathSegments);
99
- if (!routeMatch) {
100
- const _404 = matchRoute(this.pages, ["404"]);
101
- if (!_404) {
144
+ let routeMatch = matchRoute(this.pages, pathSegments);
145
+ if (!routeMatch || isStatic404) {
146
+ // Try to find a 404 page in parent directories
147
+ const _404Match = match404Route(this.pages, pathSegments);
148
+ if (!_404Match) {
102
149
  if (__DEV__) {
103
150
  console.error(`[kiru/router]: No 404 route defined (path: ${path}).
104
151
  See https://kirujs.dev/docs/api/file-router#404 for more information.`);
105
152
  }
106
153
  return;
107
154
  }
108
- const errorProps = {
109
- source: { path },
110
- };
111
- return this.navigate("/404", { replace: true, props: errorProps });
155
+ routeMatch = _404Match;
112
156
  }
113
157
  const { route, pageEntry, params, routeSegments } = routeMatch;
114
- this.currentRoute = route;
158
+ fileRouterRoute.current = route;
115
159
  const pagePromise = pageEntry.load();
116
160
  const layoutPromises = matchLayouts(this.layouts, routeSegments).map((layoutEntry) => layoutEntry.load());
117
161
  const [page, ...layouts] = await Promise.all([
@@ -119,7 +163,7 @@ See https://kirujs.dev/docs/api/file-router#404 for more information.`);
119
163
  ...layoutPromises,
120
164
  ]);
121
165
  const query = parseQuery(window.location.search);
122
- this.currentRoute = null;
166
+ fileRouterRoute.current = null;
123
167
  if (signal.aborted)
124
168
  return;
125
169
  if (typeof page.default !== "function") {
@@ -131,19 +175,40 @@ See https://kirujs.dev/docs/api/file-router#404 for more information.`);
131
175
  query,
132
176
  signal,
133
177
  };
134
- let config = page.config;
178
+ let config = page.config ?? {};
135
179
  if (__DEV__) {
136
180
  if (this.pageRouteToConfig?.has(route)) {
137
181
  config = this.pageRouteToConfig.get(route);
138
182
  }
139
183
  }
140
- if (config?.loader) {
141
- props = { ...props, loading: true, data: null, error: null };
142
- this.loadRouteData(config.loader, props, routerState, enableTransition);
184
+ const { loader } = config;
185
+ if (loader) {
186
+ if (loader.mode !== "static" || __DEV__) {
187
+ props = {
188
+ ...props,
189
+ loading: true,
190
+ data: null,
191
+ error: null,
192
+ };
193
+ this.loadRouteData(config, props, routerState, enableTransition);
194
+ }
195
+ else {
196
+ const staticProps = page.__KIRU_STATIC_PROPS__?.[path];
197
+ if (!staticProps) {
198
+ return this.loadRoute(path, props, enableTransition, true);
199
+ }
200
+ const { data, error } = staticProps;
201
+ props = {
202
+ ...props,
203
+ data: data,
204
+ error: error ? new FileRouterDataLoadError(error) : null,
205
+ loading: false,
206
+ };
207
+ }
143
208
  }
144
- this.state = routerState;
145
209
  handleStateTransition(signal, enableTransition, () => {
146
- this.routeState.value = {
210
+ this.state = routerState;
211
+ this.currentPage.value = {
147
212
  component: page.default,
148
213
  config,
149
214
  route: "/" + routeSegments.join("/"),
@@ -156,17 +221,23 @@ See https://kirujs.dev/docs/api/file-router#404 for more information.`);
156
221
  }
157
222
  catch (error) {
158
223
  console.error("[kiru/router]: Failed to load route component:", error);
159
- this.routeState.value = null;
224
+ this.currentPage.value = null;
160
225
  }
161
226
  }
162
- async loadRouteData(loader, props, routerState, enableTransition = this.enableTransitions) {
227
+ async loadRouteData(config, props, routerState, enableTransition = this.enableTransitions) {
228
+ const { loader } = config;
163
229
  loader
164
230
  .load(routerState)
165
- .then((data) => ({ data, error: null }), (error) => ({
231
+ .then((data) => ({
232
+ data,
233
+ error: null,
234
+ loading: false,
235
+ }), (error) => ({
166
236
  data: null,
167
237
  error: new FileRouterDataLoadError(error),
238
+ loading: false,
168
239
  }))
169
- .then(({ data, error }) => {
240
+ .then((state) => {
170
241
  if (routerState.signal.aborted)
171
242
  return;
172
243
  let transition = enableTransition;
@@ -176,9 +247,7 @@ See https://kirujs.dev/docs/api/file-router#404 for more information.`);
176
247
  handleStateTransition(routerState.signal, transition, () => {
177
248
  this.currentPageProps.value = {
178
249
  ...props,
179
- loading: false,
180
- data,
181
- error,
250
+ ...state,
182
251
  };
183
252
  });
184
253
  });
@@ -195,11 +264,11 @@ See https://kirujs.dev/docs/api/file-router#404 for more information.`);
195
264
  throw new Error(`No route defined (path: ${path}).`);
196
265
  }
197
266
  const { pageEntry, route } = routeMatch;
198
- this.currentRoute = route;
267
+ fileRouterRoute.current = route;
199
268
  const pagePromise = pageEntry.load();
200
269
  const layoutPromises = matchLayouts(this.layouts, route.split("/")).map((layoutEntry) => layoutEntry.load());
201
270
  await Promise.all([pagePromise, ...layoutPromises]);
202
- this.currentRoute = null;
271
+ fileRouterRoute.current = null;
203
272
  }
204
273
  catch (error) {
205
274
  console.error("[kiru/router]: Failed to prefetch route:", error);
@@ -251,9 +320,11 @@ function validateRoutes(pageMap) {
251
320
  }
252
321
  if (routeConflicts.length > 0) {
253
322
  let warning = "[kiru/router]: Route conflicts detected:\n";
254
- warning += routeConflicts.map(([route1, route2]) => {
323
+ warning += routeConflicts
324
+ .map(([route1, route2]) => {
255
325
  return ` - "${route1.filePath}" conflicts with "${route2.filePath}"\n`;
256
- });
326
+ })
327
+ .join("");
257
328
  warning += "Routes are ordered by specificity (higher specificity wins)";
258
329
  console.warn(warning);
259
330
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fileRouterController.js","sourceRoot":"","sources":["../../src/router/fileRouterController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fileRouterController.js","sourceRoot":"","sources":["../../src/router/fileRouterController.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,7 @@ import type { FileRouterController } from "./fileRouterController";
2
2
  export declare const fileRouterInstance: {
3
3
  current: FileRouterController | null;
4
4
  };
5
+ export declare const fileRouterRoute: {
6
+ current: string | null;
7
+ };
5
8
  //# sourceMappingURL=globals.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"globals.d.ts","sourceRoot":"","sources":["../../src/router/globals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAElE,eAAO,MAAM,kBAAkB;aACZ,oBAAoB,GAAG,IAAI;CAC7C,CAAA"}
1
+ {"version":3,"file":"globals.d.ts","sourceRoot":"","sources":["../../src/router/globals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAElE,eAAO,MAAM,kBAAkB;aACZ,oBAAoB,GAAG,IAAI;CAC7C,CAAA;AAED,eAAO,MAAM,eAAe;aACT,MAAM,GAAG,IAAI;CAC/B,CAAA"}
@@ -1,4 +1,7 @@
1
1
  export const fileRouterInstance = {
2
2
  current: null,
3
3
  };
4
+ export const fileRouterRoute = {
5
+ current: null,
6
+ };
4
7
  //# sourceMappingURL=globals.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"globals.js","sourceRoot":"","sources":["../../src/router/globals.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,OAAO,EAAE,IAAmC;CAC7C,CAAA"}
1
+ {"version":3,"file":"globals.js","sourceRoot":"","sources":["../../src/router/globals.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,OAAO,EAAE,IAAmC;CAC7C,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,IAAqB;CAC/B,CAAA"}
@@ -0,0 +1,38 @@
1
+ export { Content, Outlet };
2
+ /**
3
+ * Used with SSG. Renders content to the document head via a corresponding `<Head.Outlet>` component placed in your `document.tsx`.
4
+ * @example
5
+ * // src/pages/index.tsx
6
+ * export default function Index() {
7
+ * return (
8
+ * <div>
9
+ * <Head.Content>
10
+ * <title>My App - Home</title>
11
+ * </Head.Content>
12
+ * <h1>Home</h1>
13
+ * </div>
14
+ * )
15
+ }
16
+ */
17
+ declare function Content({ children }: {
18
+ children: JSX.Children;
19
+ }): Kiru.VNode | null;
20
+ /**
21
+ * Used with SSG. Renders content to the document head from a `<Head>` component in the currently rendered page.
22
+ * @example
23
+ * // document.tsx
24
+ * export default function Document() {
25
+ * return (
26
+ * <html lang="en">
27
+ * <head>
28
+ * <meta charset="utf-8" />
29
+ * <meta name="viewport" content="width=device-width, initial-scale=1" />
30
+ * <Head.Outlet />
31
+ * </head>
32
+ * <body>{children}</body>
33
+ * </html>
34
+ * )
35
+ }
36
+ */
37
+ declare function Outlet(): Kiru.VNode;
38
+ //# sourceMappingURL=head.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"head.d.ts","sourceRoot":"","sources":["../../src/router/head.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;AAE1B;;;;;;;;;;;;;;GAcG;AACH,iBAAS,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAA;CAAE,qBAuBxD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,iBAAS,MAAM,eAEd"}
@@ -0,0 +1,63 @@
1
+ import { createElement } from "../index.js";
2
+ import { Signal } from "../signals/base.js";
3
+ import { isValidTextChild, isVNode } from "../utils/index.js";
4
+ export { Content, Outlet };
5
+ /**
6
+ * Used with SSG. Renders content to the document head via a corresponding `<Head.Outlet>` component placed in your `document.tsx`.
7
+ * @example
8
+ * // src/pages/index.tsx
9
+ * export default function Index() {
10
+ * return (
11
+ * <div>
12
+ * <Head.Content>
13
+ * <title>My App - Home</title>
14
+ * </Head.Content>
15
+ * <h1>Home</h1>
16
+ * </div>
17
+ * )
18
+ }
19
+ */
20
+ function Content({ children }) {
21
+ if ("window" in globalThis) {
22
+ ;
23
+ (Array.isArray(children) ? children : [children])
24
+ .filter(isVNode)
25
+ .forEach(({ type, props }) => {
26
+ switch (type) {
27
+ case "title":
28
+ const title = (Array.isArray(props.children) ? props.children : [props.children])
29
+ .map((c) => (Signal.isSignal(c) ? c.value : c))
30
+ .filter(isValidTextChild)
31
+ .join("");
32
+ return (document.title = title);
33
+ case "meta":
34
+ return document
35
+ .querySelector(`meta[name="${props.name}"]`)
36
+ ?.setAttribute("content", String(props.content));
37
+ }
38
+ });
39
+ return null;
40
+ }
41
+ return createElement("kiru-head-content", { children });
42
+ }
43
+ /**
44
+ * Used with SSG. Renders content to the document head from a `<Head>` component in the currently rendered page.
45
+ * @example
46
+ * // document.tsx
47
+ * export default function Document() {
48
+ * return (
49
+ * <html lang="en">
50
+ * <head>
51
+ * <meta charset="utf-8" />
52
+ * <meta name="viewport" content="width=device-width, initial-scale=1" />
53
+ * <Head.Outlet />
54
+ * </head>
55
+ * <body>{children}</body>
56
+ * </html>
57
+ * )
58
+ }
59
+ */
60
+ function Outlet() {
61
+ return createElement("kiru-head-outlet");
62
+ }
63
+ //# sourceMappingURL=head.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"head.js","sourceRoot":"","sources":["../../src/router/head.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAE7D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;AAE1B;;;;;;;;;;;;;;GAcG;AACH,SAAS,OAAO,CAAC,EAAE,QAAQ,EAA8B;IACvD,IAAI,QAAQ,IAAI,UAAU,EAAE,CAAC;QAC3B,CAAC;QAAA,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;aAC/C,MAAM,CAAC,OAAO,CAAC;aACf,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;YAC3B,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,OAAO;oBACV,MAAM,KAAK,GAAG,CACZ,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAClE;yBACE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;yBAC9C,MAAM,CAAC,gBAAgB,CAAC;yBACxB,IAAI,CAAC,EAAE,CAAC,CAAA;oBACX,OAAO,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,CAAA;gBACjC,KAAK,MAAM;oBACT,OAAO,QAAQ;yBACZ,aAAa,CAAC,cAAc,KAAK,CAAC,IAAI,IAAI,CAAC;wBAC5C,EAAE,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;YACtD,CAAC;QACH,CAAC,CAAC,CAAA;QACJ,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,aAAa,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;AACzD,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,MAAM;IACb,OAAO,aAAa,CAAC,kBAAkB,CAAC,CAAA;AAC1C,CAAC"}
@@ -4,4 +4,9 @@ export { FileRouter, type FileRouterProps } from "./fileRouter.js";
4
4
  export * from "./link.js";
5
5
  export * from "./pageConfig.js";
6
6
  export type * from "./types.js";
7
+ import { Content, Outlet } from "./head.js";
8
+ export declare const Head: {
9
+ Content: typeof Content;
10
+ Outlet: typeof Outlet;
11
+ };
7
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACxE,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAClE,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,mBAAmB,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACxE,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAClE,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,mBAAmB,YAAY,CAAA;AAE/B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAE3C,eAAO,MAAM,IAAI;;;CAGhB,CAAA"}
@@ -3,4 +3,9 @@ export * from "./errors.js";
3
3
  export { FileRouter } from "./fileRouter.js";
4
4
  export * from "./link.js";
5
5
  export * from "./pageConfig.js";
6
+ import { Content, Outlet } from "./head.js";
7
+ export const Head = {
8
+ Content,
9
+ Outlet,
10
+ };
6
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA8B,MAAM,cAAc,CAAA;AACxE,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAA;AAClE,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA8B,MAAM,cAAc,CAAA;AACxE,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAA;AAClE,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAG/B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAE3C,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,OAAO;IACP,MAAM;CACP,CAAA"}
@@ -1,3 +1,3 @@
1
1
  import type { PageConfig } from "./types";
2
- export declare function definePageConfig<T extends PageConfig>(config: T): T;
2
+ export declare function definePageConfig<T>(config: PageConfig<T>): PageConfig<T>;
3
3
  //# sourceMappingURL=pageConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pageConfig.d.ts","sourceRoot":"","sources":["../../src/router/pageConfig.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,UAAU,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAUnE"}
1
+ {"version":3,"file":"pageConfig.d.ts","sourceRoot":"","sources":["../../src/router/pageConfig.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAUxE"}
@@ -1,7 +1,7 @@
1
1
  import { __DEV__ } from "../env.js";
2
2
  import { fileRouterInstance } from "./globals.js";
3
3
  export function definePageConfig(config) {
4
- if (__DEV__) {
4
+ if (__DEV__ && "window" in globalThis) {
5
5
  const filePath = window.__kiru?.HMRContext?.getCurrentFilePath();
6
6
  const fileRouter = fileRouterInstance.current;
7
7
  if (filePath && fileRouter) {
@@ -1 +1 @@
1
- {"version":3,"file":"pageConfig.js","sourceRoot":"","sources":["../../src/router/pageConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAGjD,MAAM,UAAU,gBAAgB,CAAuB,MAAS;IAC9D,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAA;QAChE,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAA;QAC7C,IAAI,QAAQ,IAAI,UAAU,EAAE,CAAC;YAC3B,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAClD,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"pageConfig.js","sourceRoot":"","sources":["../../src/router/pageConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAGjD,MAAM,UAAU,gBAAgB,CAAI,MAAqB;IACvD,IAAI,OAAO,IAAI,QAAQ,IAAI,UAAU,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAA;QAChE,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAA;QAC7C,IAAI,QAAQ,IAAI,UAAU,EAAE,CAAC;YAC3B,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAClD,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { Readable } from "node:stream";
2
+ import { FormattedViteImportMap } from "../types.internal.js";
3
+ export interface RenderContext {
4
+ pages: FormattedViteImportMap;
5
+ layouts: FormattedViteImportMap;
6
+ Document: Kiru.FC;
7
+ registerModule: (moduleId: string) => void;
8
+ registerPreloadedPageProps: (props: Record<string, unknown>) => void;
9
+ }
10
+ export interface RenderResult {
11
+ status: number;
12
+ immediate: string;
13
+ stream: Readable | null;
14
+ }
15
+ export declare function render(url: string, ctx: RenderContext, result?: RenderResult): Promise<RenderResult>;
16
+ export declare function generateStaticPaths(pages: FormattedViteImportMap): Promise<Record<string, string>>;
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/router/server/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,sBAAsB,EAAc,MAAM,sBAAsB,CAAA;AAIzE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,sBAAsB,CAAA;IAC7B,OAAO,EAAE,sBAAsB,CAAA;IAC/B,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAA;IACjB,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,0BAA0B,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;CACrE;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAA;CACxB;AAED,wBAAsB,MAAM,CAC1B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,aAAa,EAClB,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,YAAY,CAAC,CA8IvB;AAED,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,sBAAsB,mCAmCtE"}