@nifrajs/web 2.1.0 → 2.3.0

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 (194) hide show
  1. package/README.md +3 -3
  2. package/dist/build-vite.d.ts +68 -0
  3. package/dist/build-vite.d.ts.map +1 -0
  4. package/dist/build-vite.js +433 -0
  5. package/dist/build-vite.js.map +1 -0
  6. package/dist/build.d.ts +174 -65
  7. package/dist/build.d.ts.map +1 -1
  8. package/dist/build.js +376 -135
  9. package/dist/build.js.map +1 -1
  10. package/dist/bun-dev-entry.d.ts +83 -0
  11. package/dist/bun-dev-entry.d.ts.map +1 -0
  12. package/dist/bun-dev-entry.js +136 -0
  13. package/dist/bun-dev-entry.js.map +1 -0
  14. package/dist/chunk-names.js +1 -1
  15. package/dist/client.d.ts +3 -9
  16. package/dist/client.d.ts.map +1 -1
  17. package/dist/client.js +209 -27
  18. package/dist/client.js.map +1 -1
  19. package/dist/conformance.d.ts +2 -2
  20. package/dist/conformance.js +3 -3
  21. package/dist/deferred.d.ts +11 -11
  22. package/dist/deferred.d.ts.map +1 -1
  23. package/dist/deferred.js +16 -16
  24. package/dist/dev-error.d.ts +2 -2
  25. package/dist/dev-error.js +3 -3
  26. package/dist/dev-port.d.ts +36 -0
  27. package/dist/dev-port.d.ts.map +1 -0
  28. package/dist/dev-port.js +48 -0
  29. package/dist/dev-port.js.map +1 -0
  30. package/dist/dev.d.ts +62 -5
  31. package/dist/dev.d.ts.map +1 -1
  32. package/dist/dev.js +419 -60
  33. package/dist/dev.js.map +1 -1
  34. package/dist/draft.d.ts +44 -7
  35. package/dist/draft.d.ts.map +1 -1
  36. package/dist/draft.js +92 -9
  37. package/dist/draft.js.map +1 -1
  38. package/dist/fn-state.d.ts +56 -0
  39. package/dist/fn-state.d.ts.map +1 -0
  40. package/dist/fn-state.js +77 -0
  41. package/dist/fn-state.js.map +1 -0
  42. package/dist/fn.d.ts +111 -0
  43. package/dist/fn.d.ts.map +1 -0
  44. package/dist/fn.js +125 -0
  45. package/dist/fn.js.map +1 -0
  46. package/dist/fonts-google.d.ts +9 -9
  47. package/dist/fonts-google.js +10 -10
  48. package/dist/fonts.d.ts +7 -7
  49. package/dist/fonts.js +1 -1
  50. package/dist/forms.d.ts +8 -8
  51. package/dist/fs.d.ts +15 -2
  52. package/dist/fs.d.ts.map +1 -1
  53. package/dist/fs.js +8 -2
  54. package/dist/fs.js.map +1 -1
  55. package/dist/index.d.ts +266 -74
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +869 -179
  58. package/dist/index.js.map +1 -1
  59. package/dist/internal/head-attributes.d.ts +15 -0
  60. package/dist/internal/head-attributes.d.ts.map +1 -0
  61. package/dist/internal/head-attributes.js +99 -0
  62. package/dist/internal/head-attributes.js.map +1 -0
  63. package/dist/internal/script-types.d.ts +14 -0
  64. package/dist/internal/script-types.d.ts.map +1 -0
  65. package/dist/internal/script-types.js +17 -0
  66. package/dist/internal/script-types.js.map +1 -0
  67. package/dist/internal/server-boundary.d.ts +60 -0
  68. package/dist/internal/server-boundary.d.ts.map +1 -0
  69. package/dist/internal/server-boundary.js +174 -0
  70. package/dist/internal/server-boundary.js.map +1 -0
  71. package/dist/internal/timing-safe-equal.d.ts +16 -0
  72. package/dist/internal/timing-safe-equal.d.ts.map +1 -0
  73. package/dist/internal/timing-safe-equal.js +26 -0
  74. package/dist/internal/timing-safe-equal.js.map +1 -0
  75. package/dist/internal/vite-import.d.ts +63 -0
  76. package/dist/internal/vite-import.d.ts.map +1 -0
  77. package/dist/internal/vite-import.js +94 -0
  78. package/dist/internal/vite-import.js.map +1 -0
  79. package/dist/islands.d.ts +5 -5
  80. package/dist/islands.js +5 -5
  81. package/dist/isr.d.ts +15 -15
  82. package/dist/isr.d.ts.map +1 -1
  83. package/dist/isr.js +8 -21
  84. package/dist/isr.js.map +1 -1
  85. package/dist/llms-txt.d.ts.map +1 -1
  86. package/dist/llms-txt.js +12 -6
  87. package/dist/llms-txt.js.map +1 -1
  88. package/dist/manifest.d.ts +121 -40
  89. package/dist/manifest.d.ts.map +1 -1
  90. package/dist/manifest.js +136 -26
  91. package/dist/manifest.js.map +1 -1
  92. package/dist/module-graph.d.ts +91 -0
  93. package/dist/module-graph.d.ts.map +1 -0
  94. package/dist/module-graph.js +92 -0
  95. package/dist/module-graph.js.map +1 -0
  96. package/dist/navigation.d.ts +120 -5
  97. package/dist/navigation.d.ts.map +1 -1
  98. package/dist/navigation.js +37 -5
  99. package/dist/navigation.js.map +1 -1
  100. package/dist/plugins/css-modules.d.ts +3 -3
  101. package/dist/plugins/css-modules.d.ts.map +1 -1
  102. package/dist/plugins/css-modules.js +0 -0
  103. package/dist/plugins/css-modules.js.map +1 -1
  104. package/dist/plugins/kit.d.ts +8 -8
  105. package/dist/plugins/kit.js +9 -9
  106. package/dist/plugins/scss.js +3 -3
  107. package/dist/plugins/vite-leak-guard.d.ts +45 -0
  108. package/dist/plugins/vite-leak-guard.d.ts.map +1 -0
  109. package/dist/plugins/vite-leak-guard.js +67 -0
  110. package/dist/plugins/vite-leak-guard.js.map +1 -0
  111. package/dist/plugins/vite-server-fn.d.ts +23 -0
  112. package/dist/plugins/vite-server-fn.d.ts.map +1 -0
  113. package/dist/plugins/vite-server-fn.js +51 -0
  114. package/dist/plugins/vite-server-fn.js.map +1 -0
  115. package/dist/plugins/vite-server-only.d.ts +49 -0
  116. package/dist/plugins/vite-server-only.d.ts.map +1 -0
  117. package/dist/plugins/vite-server-only.js +57 -0
  118. package/dist/plugins/vite-server-only.js.map +1 -0
  119. package/dist/prerender.d.ts +5 -5
  120. package/dist/prerender.js +7 -7
  121. package/dist/public-dir.d.ts +36 -0
  122. package/dist/public-dir.d.ts.map +1 -0
  123. package/dist/public-dir.js +89 -0
  124. package/dist/public-dir.js.map +1 -0
  125. package/dist/query.d.ts +10 -10
  126. package/dist/query.js +15 -15
  127. package/dist/route-manifest.d.ts +91 -0
  128. package/dist/route-manifest.d.ts.map +1 -0
  129. package/dist/route-manifest.js +128 -0
  130. package/dist/route-manifest.js.map +1 -0
  131. package/dist/router.d.ts +94 -22
  132. package/dist/router.d.ts.map +1 -1
  133. package/dist/router.js +170 -58
  134. package/dist/router.js.map +1 -1
  135. package/dist/search.d.ts +94 -0
  136. package/dist/search.d.ts.map +1 -0
  137. package/dist/search.js +232 -0
  138. package/dist/search.js.map +1 -0
  139. package/dist/server-only.d.ts +6 -6
  140. package/dist/server-only.js +7 -7
  141. package/dist/service-worker.d.ts +56 -0
  142. package/dist/service-worker.d.ts.map +1 -0
  143. package/dist/service-worker.js +127 -0
  144. package/dist/service-worker.js.map +1 -0
  145. package/dist/vite.d.ts +25 -17
  146. package/dist/vite.d.ts.map +1 -1
  147. package/dist/vite.js +75 -33
  148. package/dist/vite.js.map +1 -1
  149. package/package.json +48 -4
  150. package/server-manifest.d.ts +31 -0
  151. package/src/build-vite.ts +553 -0
  152. package/src/build.ts +563 -172
  153. package/src/bun-dev-entry.ts +184 -0
  154. package/src/chunk-names.ts +1 -1
  155. package/src/client.ts +221 -30
  156. package/src/conformance.ts +3 -3
  157. package/src/deferred.ts +17 -17
  158. package/src/dev-error.ts +3 -3
  159. package/src/dev-port.ts +63 -0
  160. package/src/dev.ts +468 -66
  161. package/src/draft.ts +124 -12
  162. package/src/fn-state.ts +107 -0
  163. package/src/fn.ts +199 -0
  164. package/src/fonts-google.ts +13 -13
  165. package/src/fonts.ts +7 -7
  166. package/src/forms.ts +8 -8
  167. package/src/fs.ts +24 -6
  168. package/src/index.ts +1174 -225
  169. package/src/internal/head-attributes.ts +109 -0
  170. package/src/internal/script-types.ts +18 -0
  171. package/src/internal/server-boundary.ts +187 -0
  172. package/src/internal/timing-safe-equal.ts +24 -0
  173. package/src/internal/vite-import.ts +92 -0
  174. package/src/islands.ts +7 -7
  175. package/src/isr.ts +18 -30
  176. package/src/llms-txt.ts +13 -5
  177. package/src/manifest.ts +264 -48
  178. package/src/module-graph.ts +146 -0
  179. package/src/navigation.ts +151 -5
  180. package/src/plugins/css-modules.ts +0 -0
  181. package/src/plugins/kit.ts +11 -11
  182. package/src/plugins/scss.ts +3 -3
  183. package/src/plugins/vite-leak-guard.ts +110 -0
  184. package/src/plugins/vite-server-fn.ts +67 -0
  185. package/src/plugins/vite-server-only.ts +75 -0
  186. package/src/prerender.ts +10 -10
  187. package/src/public-dir.ts +108 -0
  188. package/src/query.ts +22 -22
  189. package/src/route-manifest.ts +240 -0
  190. package/src/router.ts +288 -74
  191. package/src/search.ts +297 -0
  192. package/src/server-only.ts +7 -7
  193. package/src/service-worker.ts +165 -0
  194. package/src/vite.ts +103 -49
package/dist/vite.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- /** Minimal app surface — `createWebApp(...)` satisfies it. */
1
+ /** Minimal app surface - `createWebApp(...)` satisfies it. */
2
2
  interface FetchApp {
3
3
  fetch(request: Request): Response | Promise<Response>;
4
4
  }
@@ -8,15 +8,19 @@ export interface ViteDevServerOptions {
8
8
  /** Client runtime module providing `mountRouter` (e.g. `"@nifrajs/web-react/client"`). */
9
9
  readonly clientModule: string;
10
10
  /**
11
- * Build the nifra app for the given dev client-entry URL. `importQuery` changes when a route file
12
- * changes — thread it into `discoverRoutes(routesDir, { importQuery })` so a hard reload SSRs edited
13
- * modules (HMR handles the live client update; this keeps server-render fresh).
11
+ * Build the nifra app for the given dev client-entry URL.
12
+ *
13
+ * `load` resolves a route module through **Vite's** graph (`ssrLoadModule`). Pass it to
14
+ * `discoverRoutes(routesDir, { load })` so SSR and the client are resolved by the SAME toolchain.
15
+ * Without it SSR resolves through Bun while the client resolves through Vite - two resolvers, one
16
+ * process - which is what makes `resolve.dedupe` fail to reach SSR and produces the dual-React
17
+ * crash. Vite re-evaluates on change, so no `importQuery` cache-buster is needed alongside it.
14
18
  */
15
- readonly createApp: (clientEntry: string, importQuery: string) => FetchApp | Promise<FetchApp>;
16
- /** Vite plugins — inject your framework's official plugin, e.g. `[react()]`. */
19
+ readonly createApp: (clientEntry: string, load: (absolutePath: string) => Promise<unknown>) => FetchApp | Promise<FetchApp>;
20
+ /** Vite plugins - inject your framework's official plugin, e.g. `[react()]`. */
17
21
  readonly plugins?: readonly unknown[];
18
22
  /**
19
- * Extra `resolve.conditions` prepended ahead of nifra's defaults — some frameworks need their own
23
+ * Extra `resolve.conditions` prepended ahead of nifra's defaults - some frameworks need their own
20
24
  * (e.g. Solid's `"solid"` condition routes `solid-js` to its source/JSX-dev build).
21
25
  */
22
26
  readonly conditions?: readonly string[];
@@ -31,16 +35,20 @@ export interface ViteDevServerOptions {
31
35
  readonly port?: number;
32
36
  /**
33
37
  * Use polling for the file watcher. Native fs events (fsevents/inotify) are unreliable inside
34
- * containers, networked filesystems, and some sandboxes — there, HMR silently never fires. Set
38
+ * containers, networked filesystems, and some sandboxes - there, HMR silently never fires. Set
35
39
  * `true` (or the env var `CHOKIDAR_USEPOLLING=1`) to poll instead. Default: off (native events).
36
40
  */
37
41
  readonly poll?: boolean;
42
+ /** Vite public directory. Defaults to `<root>/public`; `false` disables it. */
43
+ readonly publicDir?: string | false;
44
+ /** Client-visible environment prefix (default `"PUBLIC_"`; empty disables exposure). */
45
+ readonly publicEnvPrefix?: string;
38
46
  }
39
47
  export interface ViteDevServer {
40
48
  readonly port: number;
41
49
  stop(): Promise<void>;
42
50
  }
43
- /** The bits of a Node ServerResponse `pipeWebBodyToNode` touches — structural, to avoid a node:http dep here. */
51
+ /** The bits of a Node ServerResponse `pipeWebBodyToNode` touches - structural, to avoid a node:http dep here. */
44
52
  interface NodeResLike {
45
53
  flushHeaders?(): void;
46
54
  on(event: "close", cb: () => void): void;
@@ -53,30 +61,30 @@ interface NodeHeaderSink {
53
61
  }
54
62
  /**
55
63
  * Copy a Web `Response`'s headers onto a Node response, emitting EACH `Set-Cookie` as its own header. The
56
- * `Headers` iterator (and `.get`) join multiple set-cookie values with ", ", which corrupts cookies — e.g.
64
+ * `Headers` iterator (and `.get`) join multiple set-cookie values with ", ", which corrupts cookies - e.g.
57
65
  * better-auth's `session_token` + `session_data` collapse into one unparseable cookie and the session is
58
66
  * silently lost. `getSetCookie()` returns them split; Node's `setHeader` emits one header per array element.
59
67
  */
60
68
  export declare function applyResponseHeaders(headers: Headers, res: NodeHeaderSink): void;
61
69
  /**
62
70
  * Stream a Web `Response` body to a Node response chunk-by-chunk. Buffering the whole body (e.g.
63
- * `arrayBuffer()`) waits for the stream to END — which an open-ended SSE (`text/event-stream`) body never
71
+ * `arrayBuffer()`) waits for the stream to END - which an open-ended SSE (`text/event-stream`) body never
64
72
  * does, so it hung `nifra dev` (the Bun production server streamed it fine). This flushes each chunk as it
65
73
  * arrives and cancels the reader if the client disconnects; a finite body just streams its chunk(s) + ends.
66
74
  */
67
75
  export declare function pipeWebBodyToNode(body: ReadableStream<Uint8Array> | null, res: NodeResLike): Promise<void>;
68
76
  /**
69
77
  * Strip `optimizeDeps.rollupOptions.jsx` from a plugin's `config` hook output when running under
70
- * rolldown-vite — the source of the scary, harmless `Warning: Invalid input options … "jsx" Invalid
78
+ * rolldown-vite - the source of the scary, harmless `Warning: Invalid input options … "jsx" Invalid
71
79
  * key: Expected never but received "jsx"` on `nifra dev`.
72
80
  *
73
81
  * Why it happens: `@vitejs/plugin-react@4.x` (and peers) target an *older* rolldown-vite optimizeDeps
74
- * API — they inject `optimizeDeps.rollupOptions.jsx` to tell the dep pre-bundler to transform JSX. Vite
82
+ * API - they inject `optimizeDeps.rollupOptions.jsx` to tell the dep pre-bundler to transform JSX. Vite
75
83
  * 8's rolldown dep-optimizer renamed that surface to `optimizeDeps.rolldownOptions` (and moved jsx under
76
84
  * `transform.jsx`), so the stale `rollupOptions.jsx` is an unrecognized input option → the warning. It's
77
85
  * a version-skew artifact, not a real misconfig: the route source JSX transform runs through the
78
86
  * plugin's own `transform` hook (untouched here), and node_modules deps that get pre-bundled almost
79
- * never contain raw JSX — so dropping the dead key changes no behavior and keeps HMR/Fast Refresh
87
+ * never contain raw JSX - so dropping the dead key changes no behavior and keeps HMR/Fast Refresh
80
88
  * intact. We *strip* (rather than translate to `rolldownOptions`) so the fix is version-agnostic: a
81
89
  * plugin already emitting the correct `rolldownOptions` is left untouched, and a future plugin bump that
82
90
  * stops emitting `rollupOptions.jsx` makes this a no-op.
@@ -84,12 +92,12 @@ export declare function pipeWebBodyToNode(body: ReadableStream<Uint8Array> | nul
84
92
  * Scoped narrowly: only the `optimizeDeps.rollupOptions.jsx` key is removed, only under rolldown-vite,
85
93
  * and only from the value a plugin's `config` hook returns. Non-rolldown Vite is passed through verbatim.
86
94
  *
87
- * FLATTEN FIRST: a Vite plugin factory may return an ARRAY of plugins — `@vitejs/plugin-react`'s `react()`
95
+ * FLATTEN FIRST: a Vite plugin factory may return an ARRAY of plugins - `@vitejs/plugin-react`'s `react()`
88
96
  * returns `[vite:react-babel, vite:react-refresh]`, and it's `react:react-babel`'s `config` hook that emits
89
97
  * the offending `optimizeDeps.rollupOptions.jsx`. `nifra.config.ts` writes `vitePlugins = [react()]`, so the
90
98
  * plugin list arrives NESTED (`[[babel, refresh]]`). Without flattening, `.map` sees the inner array (which
91
- * has no `config`), leaves it untouched, and Vite — which flattens plugin arrays itself before running them
92
- * — then executes the un-stripped babel hook, so the warning survives. Flattening here (Vite accepts a flat
99
+ * has no `config`), leaves it untouched, and Vite - which flattens plugin arrays itself before running them
100
+ * - then executes the un-stripped babel hook, so the warning survives. Flattening here (Vite accepts a flat
93
101
  * list identically) is what lets the strip reach every real plugin.
94
102
  */
95
103
  export declare function normalizeRolldownPlugins(plugins: readonly unknown[], isRolldown: boolean): readonly unknown[];
@@ -1 +1 @@
1
- {"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"AAuBA,8DAA8D;AAC9D,UAAU,QAAQ;IAChB,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;CACtD;AAmBD,MAAM,WAAW,oBAAoB;IACnC,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,0FAA0F;IAC1F,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC9F,gFAAgF;IAChF,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,OAAO,EAAE,CAAA;IACrC;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACvC;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAClD,mDAAmD;IACnD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACtB;AA6CD,iHAAiH;AACjH,UAAU,WAAW;IACnB,YAAY,CAAC,IAAI,IAAI,CAAA;IACrB,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;IACxC,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAA;IACjC,GAAG,IAAI,IAAI,CAAA;CACZ;AAED,8DAA8D;AAC9D,UAAU,cAAc;IACtB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,IAAI,CAAA;CACjE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAOhF;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,EACvC,GAAG,EAAE,WAAW,GACf,OAAO,CAAC,IAAI,CAAC,CAkBf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,SAAS,OAAO,EAAE,EAC3B,UAAU,EAAE,OAAO,GAClB,SAAS,OAAO,EAAE,CAkCpB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,CA4G/F"}
1
+ {"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"AA4BA,8DAA8D;AAC9D,UAAU,QAAQ;IAChB,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;CACtD;AAuBD,MAAM,WAAW,oBAAoB;IACnC,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,0FAA0F;IAC1F,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B;;;;;;;;OAQG;IACH,QAAQ,CAAC,SAAS,EAAE,CAClB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,KAC7C,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IACjC,gFAAgF;IAChF,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,OAAO,EAAE,CAAA;IACrC;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACvC;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAClD,mDAAmD;IACnD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,+EAA+E;IAC/E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IACnC,wFAAwF;IACxF,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACtB;AA6CD,iHAAiH;AACjH,UAAU,WAAW;IACnB,YAAY,CAAC,IAAI,IAAI,CAAA;IACrB,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;IACxC,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAA;IACjC,GAAG,IAAI,IAAI,CAAA;CACZ;AAED,8DAA8D;AAC9D,UAAU,cAAc;IACtB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,IAAI,CAAA;CACjE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAOhF;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,EACvC,GAAG,EAAE,WAAW,GACf,OAAO,CAAC,IAAI,CAAC,CAkBf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,SAAS,OAAO,EAAE,EAC3B,UAAU,EAAE,OAAO,GAClB,SAAS,OAAO,EAAE,CAkCpB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,CA8I/F"}
package/dist/vite.js CHANGED
@@ -1,21 +1,26 @@
1
1
  /**
2
- * `@nifrajs/web/vite` — a **dev-only** server with true HMR, backed by Vite in middleware mode. nifra's
2
+ * `@nifrajs/web/vite` - a **dev-only** server with true HMR, backed by Vite in middleware mode. nifra's
3
3
  * production pipeline stays Bun-native (`@nifrajs/web/build` → `Bun.build`); this is purely for the dev
4
4
  * loop. Bun's own HMR is dev-server-only and DCE's `import.meta.hot` under `Bun.build` (nifra's bundler),
5
5
  * so HMR comes from Vite + the framework's official Vite plugin (React Fast Refresh, Vue/Svelte/Solid
6
- * HMR) — which you inject via `plugins` (the same structural-injection idiom as the Bun/codec plugins).
6
+ * HMR) - which you inject via `plugins` (the same structural-injection idiom as the Bun/codec plugins).
7
7
  *
8
8
  * Flow: Vite serves + HMR-swaps the client modules (nifra's codegen'd entry + the route files); nifra
9
9
  * still **SSRs** each request, and the rendered HTML is run through `vite.transformIndexHtml` so Vite
10
10
  * injects its HMR client + the framework's refresh preamble. Node `http` (not `Bun.serve`) because
11
- * Vite's `middlewares` are Connect-style — it runs fine under Bun.
11
+ * Vite's `middlewares` are Connect-style - it runs fine under Bun.
12
12
  */
13
13
  import { writeFileSync } from "node:fs";
14
14
  import { createServer as createHttpServer, } from "node:http";
15
15
  import { relative, resolve as resolvePath } from "node:path";
16
16
  import { renderDevErrorOverlay } from "./dev-error.js";
17
+ import { listenOrExplain } from "./dev-port.js";
17
18
  import { discoverRoutes } from "./fs.js";
18
19
  import { DEFAULT_DEV_PORT, generateClientEntry } from "./index.js";
20
+ import { vitePublicEnvPrefix } from "./internal/server-boundary.js";
21
+ import { importVite } from "./internal/vite-import.js";
22
+ import { viteServerFnStub } from "./plugins/vite-server-fn.js";
23
+ import { viteServerOnlyEmpty } from "./plugins/vite-server-only.js";
19
24
  // The codegen'd client entry is written here (at the Vite root) so Vite serves + HMRs it.
20
25
  const DEV_ENTRY = ".nifra-vite-entry.tsx";
21
26
  const readNodeBody = async (req) => {
@@ -51,7 +56,7 @@ function toWebRequest(req, body) {
51
56
  }
52
57
  /**
53
58
  * Copy a Web `Response`'s headers onto a Node response, emitting EACH `Set-Cookie` as its own header. The
54
- * `Headers` iterator (and `.get`) join multiple set-cookie values with ", ", which corrupts cookies — e.g.
59
+ * `Headers` iterator (and `.get`) join multiple set-cookie values with ", ", which corrupts cookies - e.g.
55
60
  * better-auth's `session_token` + `session_data` collapse into one unparseable cookie and the session is
56
61
  * silently lost. `getSetCookie()` returns them split; Node's `setHeader` emits one header per array element.
57
62
  */
@@ -67,7 +72,7 @@ export function applyResponseHeaders(headers, res) {
67
72
  }
68
73
  /**
69
74
  * Stream a Web `Response` body to a Node response chunk-by-chunk. Buffering the whole body (e.g.
70
- * `arrayBuffer()`) waits for the stream to END — which an open-ended SSE (`text/event-stream`) body never
75
+ * `arrayBuffer()`) waits for the stream to END - which an open-ended SSE (`text/event-stream`) body never
71
76
  * does, so it hung `nifra dev` (the Bun production server streamed it fine). This flushes each chunk as it
72
77
  * arrives and cancels the reader if the client disconnects; a finite body just streams its chunk(s) + ends.
73
78
  */
@@ -88,22 +93,22 @@ export async function pipeWebBodyToNode(body, res) {
88
93
  }
89
94
  }
90
95
  catch {
91
- // client disconnected mid-stream — the `close` handler already cancelled the reader
96
+ // client disconnected mid-stream - the `close` handler already cancelled the reader
92
97
  }
93
98
  res.end();
94
99
  }
95
100
  /**
96
101
  * Strip `optimizeDeps.rollupOptions.jsx` from a plugin's `config` hook output when running under
97
- * rolldown-vite — the source of the scary, harmless `Warning: Invalid input options … "jsx" Invalid
102
+ * rolldown-vite - the source of the scary, harmless `Warning: Invalid input options … "jsx" Invalid
98
103
  * key: Expected never but received "jsx"` on `nifra dev`.
99
104
  *
100
105
  * Why it happens: `@vitejs/plugin-react@4.x` (and peers) target an *older* rolldown-vite optimizeDeps
101
- * API — they inject `optimizeDeps.rollupOptions.jsx` to tell the dep pre-bundler to transform JSX. Vite
106
+ * API - they inject `optimizeDeps.rollupOptions.jsx` to tell the dep pre-bundler to transform JSX. Vite
102
107
  * 8's rolldown dep-optimizer renamed that surface to `optimizeDeps.rolldownOptions` (and moved jsx under
103
108
  * `transform.jsx`), so the stale `rollupOptions.jsx` is an unrecognized input option → the warning. It's
104
109
  * a version-skew artifact, not a real misconfig: the route source JSX transform runs through the
105
110
  * plugin's own `transform` hook (untouched here), and node_modules deps that get pre-bundled almost
106
- * never contain raw JSX — so dropping the dead key changes no behavior and keeps HMR/Fast Refresh
111
+ * never contain raw JSX - so dropping the dead key changes no behavior and keeps HMR/Fast Refresh
107
112
  * intact. We *strip* (rather than translate to `rolldownOptions`) so the fix is version-agnostic: a
108
113
  * plugin already emitting the correct `rolldownOptions` is left untouched, and a future plugin bump that
109
114
  * stops emitting `rollupOptions.jsx` makes this a no-op.
@@ -111,12 +116,12 @@ export async function pipeWebBodyToNode(body, res) {
111
116
  * Scoped narrowly: only the `optimizeDeps.rollupOptions.jsx` key is removed, only under rolldown-vite,
112
117
  * and only from the value a plugin's `config` hook returns. Non-rolldown Vite is passed through verbatim.
113
118
  *
114
- * FLATTEN FIRST: a Vite plugin factory may return an ARRAY of plugins — `@vitejs/plugin-react`'s `react()`
119
+ * FLATTEN FIRST: a Vite plugin factory may return an ARRAY of plugins - `@vitejs/plugin-react`'s `react()`
115
120
  * returns `[vite:react-babel, vite:react-refresh]`, and it's `react:react-babel`'s `config` hook that emits
116
121
  * the offending `optimizeDeps.rollupOptions.jsx`. `nifra.config.ts` writes `vitePlugins = [react()]`, so the
117
122
  * plugin list arrives NESTED (`[[babel, refresh]]`). Without flattening, `.map` sees the inner array (which
118
- * has no `config`), leaves it untouched, and Vite — which flattens plugin arrays itself before running them
119
- * — then executes the un-stripped babel hook, so the warning survives. Flattening here (Vite accepts a flat
123
+ * has no `config`), leaves it untouched, and Vite - which flattens plugin arrays itself before running them
124
+ * - then executes the un-stripped babel hook, so the warning survives. Flattening here (Vite accepts a flat
120
125
  * list identically) is what lets the strip reach every real plugin.
121
126
  */
122
127
  export function normalizeRolldownPlugins(plugins, isRolldown) {
@@ -148,7 +153,7 @@ export function normalizeRolldownPlugins(plugins, isRolldown) {
148
153
  return plugin;
149
154
  const wrappedHandler = (config, env) => {
150
155
  const returned = handler(config, env);
151
- // The hook may return a promise — normalize both shapes.
156
+ // The hook may return a promise - normalize both shapes.
152
157
  return returned instanceof Promise ? returned.then(stripJsxKey) : stripJsxKey(returned);
153
158
  };
154
159
  // Preserve the ORIGINAL shape: a function stays a function; the object form keeps its `order`
@@ -168,17 +173,19 @@ export async function createViteDevServer(options) {
168
173
  const routesDir = resolvePath(options.routesDir);
169
174
  const port = options.port ?? DEFAULT_DEV_PORT;
170
175
  // Codegen the client entry with Vite-servable, root-relative specifiers (e.g. `/routes/index.tsx`).
171
- const manifest = discoverRoutes(routesDir);
172
176
  const toUrl = (file) => `/${relative(root, `${routesDir}/${file}`)}`;
173
- writeFileSync(resolvePath(root, DEV_ENTRY), generateClientEntry(manifest, { clientModule: options.clientModule, resolve: toUrl }));
177
+ const writeClientEntry = () => {
178
+ const manifest = discoverRoutes(routesDir);
179
+ writeFileSync(resolvePath(root, DEV_ENTRY), generateClientEntry(manifest, { clientModule: options.clientModule, resolve: toUrl }));
180
+ };
181
+ writeClientEntry();
174
182
  const entryUrl = `/${DEV_ENTRY}`;
175
183
  // Create our HTTP server FIRST, then hand it to Vite as the HMR WebSocket host (`hmr.server`). In
176
- // middleware mode Vite would otherwise open a *separate* ws port (24678) — fragile: it conflicts
184
+ // middleware mode Vite would otherwise open a *separate* ws port (24678) - fragile: it conflicts
177
185
  // across restarts ("Port undefined is already in use" → the client never connects). Sharing one
178
186
  // port means HMR rides the same origin as the app, robust across restarts. The handler closes over
179
187
  // `vite`, which is assigned just below before the server starts listening.
180
188
  let vite;
181
- let version = 0;
182
189
  let app;
183
190
  const server = createHttpServer((req, res) => {
184
191
  vite.middlewares(req, res, () => {
@@ -190,7 +197,7 @@ export async function createViteDevServer(options) {
190
197
  const contentType = nifraRes.headers.get("content-type") ?? "";
191
198
  res.statusCode = nifraRes.status;
192
199
  if (!contentType.includes("text/html")) {
193
- // Data / redirect / asset response — pass through untouched, streamed (SSE-safe). Set-Cookie is
200
+ // Data / redirect / asset response - pass through untouched, streamed (SSE-safe). Set-Cookie is
194
201
  // emitted per-header so multi-cookie responses (e.g. better-auth sessions) aren't collapsed.
195
202
  applyResponseHeaders(nifraRes.headers, res);
196
203
  await pipeWebBodyToNode(nifraRes.body, res);
@@ -203,7 +210,7 @@ export async function createViteDevServer(options) {
203
210
  }
204
211
  catch (err) {
205
212
  // Source-map the stack first (Vite maps the bundled frames back to your `.ts`), then render
206
- // the readable dev overlay instead of a bare text dump. Dev-only — production maps to `_error`.
213
+ // the readable dev overlay instead of a bare text dump. Dev-only - production maps to `_error`.
207
214
  if (err instanceof Error)
208
215
  vite.ssrFixStacktrace(err);
209
216
  res.statusCode = 500;
@@ -214,15 +221,20 @@ export async function createViteDevServer(options) {
214
221
  });
215
222
  });
216
223
  // `conditions: ["bun"]` makes Vite resolve nifra's workspace packages (`@nifrajs/web-react/client`, …) to
217
- // their TS **source** — so the dev server needs no prior `dist` build of the adapter packages.
224
+ // their TS **source** - so the dev server needs no prior `dist` build of the adapter packages.
218
225
  const usePolling = options.poll ?? process.env.CHOKIDAR_USEPOLLING === "1";
219
- const viteModule = (await import("vite"));
226
+ // Never `import("vite")` directly here: the guard in `importVite` has to run first, and the dev
227
+ // server importing vite unguarded is precisely what poisoned the module for the whole process.
228
+ const viteModule = await importVite();
220
229
  const { createServer } = viteModule;
221
230
  // Under rolldown-vite (Vite 8+), strip the stale `optimizeDeps.rollupOptions.jsx` some framework
222
- // plugins still emit — it triggers a noisy "Invalid key … jsx" warning but does nothing useful here.
231
+ // plugins still emit - it triggers a noisy "Invalid key … jsx" warning but does nothing useful here.
223
232
  const plugins = normalizeRolldownPlugins(options.plugins ?? [], viteModule.rolldownVersion !== undefined);
224
233
  vite = await createServer({
225
234
  root,
235
+ // Dev must not inherit Vite's default `VITE_*` exposure beside Nifra's documented boundary.
236
+ envPrefix: vitePublicEnvPrefix(options.publicEnvPrefix),
237
+ ...(options.publicDir !== undefined ? { publicDir: options.publicDir } : {}),
226
238
  appType: "custom",
227
239
  server: {
228
240
  middlewareMode: true,
@@ -230,31 +242,61 @@ export async function createViteDevServer(options) {
230
242
  // Explicit watch config; poll when native fs events aren't delivered (containers/sandboxes).
231
243
  watch: usePolling ? { usePolling: true, interval: 80 } : {},
232
244
  },
233
- plugins: [...plugins],
245
+ // Ahead of the user's plugins: a `*.fn` module must be replaced before anything else
246
+ // reads it, and the dev server is a client bundler like any other.
247
+ plugins: [viteServerFnStub(), viteServerOnlyEmpty(), ...plugins],
234
248
  resolve: {
235
249
  conditions: [...(options.conditions ?? []), "bun", "module", "browser", "development"],
236
250
  // Dedupe React to ONE copy. In a multi-root workspace a shared package can pull react/react-dom
237
251
  // from a SIBLING app's node_modules, so the dev server loads two React cores → a second hook
238
252
  // dispatcher → `resolveDispatcher().useState` null on any hook-using route (the error points at the
239
- // component, not the resolution — brutal to diagnose). Mirrors the build-time reactDedupePlugin so
253
+ // component, not the resolution - brutal to diagnose). Mirrors the build-time reactDedupePlugin so
240
254
  // dev matches prod. No-op for non-React apps (the package simply isn't present to dedupe).
241
255
  dedupe: ["react", "react-dom"],
242
256
  },
243
257
  ...(options.define ? { define: options.define } : {}),
244
258
  });
245
- app = await options.createApp(entryUrl, `v=${version}`);
246
- // Keep server-render fresh on edits (Vite already HMRs the client live; this is for a hard reload).
247
- vite.watcher.on("change", () => {
248
- version += 1;
249
- Promise.resolve(options.createApp(entryUrl, `v=${version}`))
259
+ const ssrLoad = (absolutePath) => vite.ssrLoadModule(absolutePath);
260
+ app = await options.createApp(entryUrl, ssrLoad);
261
+ // Re-create the app on change so a hard reload picks up a route ADD/REMOVE (the manifest comes
262
+ // from a directory scan, which `ssrLoadModule` cannot invalidate). Module CONTENT no longer needs a
263
+ // version counter: Vite owns SSR resolution now and re-evaluates changed modules itself, which is
264
+ // the cache-busting the old `importQuery` was emulating against Bun's import cache.
265
+ let refreshVersion = 0;
266
+ const refreshApp = () => {
267
+ const version = ++refreshVersion;
268
+ Promise.resolve(options.createApp(entryUrl, ssrLoad))
250
269
  .then((next) => {
251
- app = next;
270
+ if (version === refreshVersion)
271
+ app = next;
252
272
  })
253
273
  .catch((err) => console.error("[nifra/web/vite] app re-create failed:", err));
254
- });
255
- await new Promise((done) => server.listen(port, done));
274
+ };
275
+ vite.watcher.on("change", refreshApp);
276
+ for (const event of ["add", "unlink"]) {
277
+ vite.watcher.on(event, (path) => {
278
+ if (path.startsWith(`${routesDir}/`) || path.startsWith(`${routesDir}\\`))
279
+ writeClientEntry();
280
+ refreshApp();
281
+ });
282
+ }
283
+ try {
284
+ await listenOrExplain(server, port);
285
+ }
286
+ catch (err) {
287
+ // Nothing is listening, but Vite is fully up by now - watchers, the dep optimizer, its own sockets -
288
+ // and every one of those keeps the event loop alive. Left open, the process prints the diagnosis and
289
+ // then HANGS on it, which is worse than the raw crash this guard replaced: the user sees a dev server
290
+ // that appears to be starting. Tear Vite down so the failure is terminal.
291
+ await vite.close().catch(() => { });
292
+ throw err;
293
+ }
294
+ // Report the port actually BOUND, not the one requested. They differ for `port: 0`, which is how you
295
+ // ask the OS for a free one - the correct thing to do in a test or when running several apps at once.
296
+ // Echoing the request back would return a literal 0, which connects to nothing.
297
+ const address = server.address();
256
298
  return {
257
- port,
299
+ port: typeof address === "object" && address !== null ? address.port : port,
258
300
  stop: async () => {
259
301
  server.close();
260
302
  await vite.close();
package/dist/vite.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"vite.js","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vite.js","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nifrajs/web",
3
- "version": "2.1.0",
4
- "description": "Framework-agnostic SSR core for nifra — the render seam + HTML document orchestration.",
3
+ "version": "2.3.0",
4
+ "description": "Framework-agnostic SSR core for nifra - the render seam + HTML document orchestration.",
5
5
  "keywords": [
6
6
  "bun",
7
7
  "typescript",
@@ -54,6 +54,11 @@
54
54
  "types": "./dist/islands.d.ts",
55
55
  "default": "./dist/islands.js"
56
56
  },
57
+ "./service-worker": {
58
+ "bun": "./src/service-worker.ts",
59
+ "types": "./dist/service-worker.d.ts",
60
+ "default": "./dist/service-worker.js"
61
+ },
57
62
  "./server-only": {
58
63
  "bun": "./src/server-only.ts",
59
64
  "types": "./dist/server-only.d.ts",
@@ -64,6 +69,16 @@
64
69
  "types": "./dist/build.d.ts",
65
70
  "default": "./dist/build.js"
66
71
  },
72
+ "./route-manifest": {
73
+ "bun": "./src/route-manifest.ts",
74
+ "types": "./dist/route-manifest.d.ts",
75
+ "default": "./dist/route-manifest.js"
76
+ },
77
+ "./build-vite": {
78
+ "bun": "./src/build-vite.ts",
79
+ "types": "./dist/build-vite.d.ts",
80
+ "default": "./dist/build-vite.js"
81
+ },
67
82
  "./fonts": {
68
83
  "bun": "./src/fonts-google.ts",
69
84
  "types": "./dist/fonts-google.d.ts",
@@ -104,14 +119,43 @@
104
119
  "types": "./dist/plugins/svg.d.ts",
105
120
  "default": "./dist/plugins/svg.js"
106
121
  },
122
+ "./plugins/vite-leak-guard": {
123
+ "bun": "./src/plugins/vite-leak-guard.ts",
124
+ "types": "./dist/plugins/vite-leak-guard.d.ts",
125
+ "default": "./dist/plugins/vite-leak-guard.js"
126
+ },
107
127
  "./css-modules": {
108
128
  "types": "./css-modules.d.ts"
129
+ },
130
+ "./server-manifest": {
131
+ "types": "./server-manifest.d.ts"
132
+ },
133
+ "./fn": {
134
+ "bun": "./src/fn.ts",
135
+ "types": "./dist/fn.d.ts",
136
+ "default": "./dist/fn.js"
137
+ },
138
+ "./plugins/vite-server-fn": {
139
+ "bun": "./src/plugins/vite-server-fn.ts",
140
+ "types": "./dist/plugins/vite-server-fn.d.ts",
141
+ "default": "./dist/plugins/vite-server-fn.js"
142
+ },
143
+ "./plugins/vite-server-only": {
144
+ "bun": "./src/plugins/vite-server-only.ts",
145
+ "types": "./dist/plugins/vite-server-only.d.ts",
146
+ "default": "./dist/plugins/vite-server-only.js"
147
+ },
148
+ "./fn-state": {
149
+ "bun": "./src/fn-state.ts",
150
+ "types": "./dist/fn-state.d.ts",
151
+ "default": "./dist/fn-state.js"
109
152
  }
110
153
  },
111
154
  "files": [
112
155
  "dist",
113
156
  "src",
114
- "css-modules.d.ts"
157
+ "css-modules.d.ts",
158
+ "server-manifest.d.ts"
115
159
  ],
116
160
  "sideEffects": false,
117
161
  "scripts": {
@@ -122,7 +166,7 @@
122
166
  "access": "public"
123
167
  },
124
168
  "dependencies": {
125
- "@nifrajs/core": "2.1.0"
169
+ "@nifrajs/core": "2.3.0"
126
170
  },
127
171
  "peerDependencies": {
128
172
  "sass": "^1.0.0",
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Ambient fallback types for a generated `server-manifest` module.
3
+ *
4
+ * `nifra build --target <t>` generates `server-manifest.ts` NEXT TO the server entry at build time, so a
5
+ * HAND-WRITTEN entry that imports `./server-manifest` has nothing to typecheck against until the first
6
+ * build - which is what forces a `@ts-nocheck` onto the very file that deploys. Reference this so the
7
+ * import is typed before then. Either from a `.d.ts` in your project:
8
+ *
9
+ * ```ts
10
+ * /// <reference types="@nifrajs/web/server-manifest" />
11
+ * ```
12
+ *
13
+ * or list it in `tsconfig.json` -> `compilerOptions.types: ["@nifrajs/web/server-manifest"]`.
14
+ *
15
+ * Once a build (or `nifra sync-manifest`) has written the real `server-manifest` next to your entry,
16
+ * TypeScript resolves the relative import to that file and its types win; this only fills the gap before
17
+ * then. Not needed with `nifra build --target`, which generates and bundles its own entry - a hand-written
18
+ * entry is the case this exists for.
19
+ */
20
+
21
+ declare module "*/server-manifest" {
22
+ import type { Manifest } from "@nifrajs/web"
23
+ /** Hashed client-bootstrap URL the entry passes to `createWebApp` (the hydration `<script src>`). */
24
+ export const clientEntry: string
25
+ /** Global stylesheet URLs, emitted as `<link rel="stylesheet">`. */
26
+ export const styles: readonly string[]
27
+ /** Per-route stylesheet URLs, keyed by route-relative source file. */
28
+ export const routeStyles: Readonly<Record<string, readonly string[]>>
29
+ /** The route manifest `createWebApp` renders. */
30
+ export const manifest: Manifest
31
+ }