@vertz/ui-server 0.2.0 → 0.2.3
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/README.md +298 -310
- package/dist/bun-dev-server.d.ts +115 -0
- package/dist/bun-dev-server.js +2032 -0
- package/dist/bun-plugin/fast-refresh-dom-state.d.ts +51 -0
- package/dist/bun-plugin/fast-refresh-dom-state.js +10 -0
- package/dist/bun-plugin/fast-refresh-runtime.d.ts +43 -0
- package/dist/bun-plugin/fast-refresh-runtime.js +150 -0
- package/dist/bun-plugin/index.d.ts +44 -0
- package/dist/bun-plugin/index.js +197 -0
- package/dist/dom-shim/index.d.ts +37 -6
- package/dist/dom-shim/index.js +12 -324
- package/dist/index.d.ts +331 -64
- package/dist/index.js +285 -292
- package/dist/jsx-runtime/index.js +15 -2
- package/dist/shared/chunk-2qsqp9xj.js +150 -0
- package/dist/shared/chunk-32688jav.js +564 -0
- package/dist/shared/chunk-4t0ekdyv.js +513 -0
- package/dist/shared/chunk-eb80r8e8.js +4 -0
- package/dist/ssr/index.d.ts +86 -0
- package/dist/ssr/index.js +11 -0
- package/package.json +35 -18
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,25 @@ interface RawHtml {
|
|
|
3
3
|
__raw: true;
|
|
4
4
|
html: string;
|
|
5
5
|
}
|
|
6
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* Create a raw HTML string that will NOT be escaped during SSR serialization.
|
|
8
|
+
*
|
|
9
|
+
* **WARNING: XSS RISK** — This function bypasses all HTML escaping. Never pass
|
|
10
|
+
* user-controlled input directly. Always sanitize with a trusted library (e.g.
|
|
11
|
+
* DOMPurify) before wrapping in `rawHtml()`.
|
|
12
|
+
*
|
|
13
|
+
* @example Safe usage
|
|
14
|
+
* ```ts
|
|
15
|
+
* rawHtml('<svg>...</svg>') // static markup — OK
|
|
16
|
+
* rawHtml(DOMPurify.sanitize(userInput)) // sanitized — OK
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @example Unsafe usage — NEVER do this
|
|
20
|
+
* ```ts
|
|
21
|
+
* rawHtml(userInput) // XSS vulnerability
|
|
22
|
+
* rawHtml(`<div>${userInput}</div>`) // XSS via interpolation
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
7
25
|
declare function rawHtml(html: string): RawHtml;
|
|
8
26
|
/** Virtual node representing an HTML element for SSR serialization. */
|
|
9
27
|
interface VNode {
|
|
@@ -62,68 +80,6 @@ declare function renderAssetTags(assets: AssetDescriptor[]): string;
|
|
|
62
80
|
* Returns an empty string if the CSS is empty.
|
|
63
81
|
*/
|
|
64
82
|
declare function inlineCriticalCss(css: string): string;
|
|
65
|
-
import { IncomingMessage, Server, ServerResponse } from "node:http";
|
|
66
|
-
import { InlineConfig, ViteDevServer } from "vite";
|
|
67
|
-
interface DevServerOptions {
|
|
68
|
-
/**
|
|
69
|
-
* Path to the SSR entry module (relative to project root).
|
|
70
|
-
* This module should a `renderToString` function.
|
|
71
|
-
*/
|
|
72
|
-
entry: string;
|
|
73
|
-
/**
|
|
74
|
-
* Port to listen on.
|
|
75
|
-
* @default 5173
|
|
76
|
-
*/
|
|
77
|
-
port?: number;
|
|
78
|
-
/**
|
|
79
|
-
* Host to bind to.
|
|
80
|
-
* @default '0.0.0.0'
|
|
81
|
-
*/
|
|
82
|
-
host?: string;
|
|
83
|
-
/**
|
|
84
|
-
* Custom Vite configuration.
|
|
85
|
-
* Merged with default middleware mode config.
|
|
86
|
-
*/
|
|
87
|
-
viteConfig?: InlineConfig;
|
|
88
|
-
/**
|
|
89
|
-
* Custom middleware to run before SSR handler.
|
|
90
|
-
* Useful for API routes, static file serving, etc.
|
|
91
|
-
*/
|
|
92
|
-
middleware?: (req: IncomingMessage, res: ServerResponse, next: () => void) => void;
|
|
93
|
-
/**
|
|
94
|
-
* Skip invalidating modules on each request.
|
|
95
|
-
* Useful for debugging or performance testing.
|
|
96
|
-
* @default false
|
|
97
|
-
*/
|
|
98
|
-
skipModuleInvalidation?: boolean;
|
|
99
|
-
/**
|
|
100
|
-
* Log requests to console.
|
|
101
|
-
* @default true
|
|
102
|
-
*/
|
|
103
|
-
logRequests?: boolean;
|
|
104
|
-
}
|
|
105
|
-
interface DevServer {
|
|
106
|
-
/**
|
|
107
|
-
* Start the server and listen on the configured port.
|
|
108
|
-
*/
|
|
109
|
-
listen(): Promise<void>;
|
|
110
|
-
/**
|
|
111
|
-
* Close the server.
|
|
112
|
-
*/
|
|
113
|
-
close(): Promise<void>;
|
|
114
|
-
/**
|
|
115
|
-
* The underlying Vite dev server.
|
|
116
|
-
*/
|
|
117
|
-
vite: ViteDevServer;
|
|
118
|
-
/**
|
|
119
|
-
* The underlying HTTP server.
|
|
120
|
-
*/
|
|
121
|
-
httpServer: Server;
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Create a Vite SSR development server.
|
|
125
|
-
*/
|
|
126
|
-
declare function createDevServer(options: DevServerOptions): DevServer;
|
|
127
83
|
/**
|
|
128
84
|
* Collector for `<head>` metadata during SSR.
|
|
129
85
|
*
|
|
@@ -169,6 +125,146 @@ declare function serializeToHtml(node: VNode | string | RawHtml): string;
|
|
|
169
125
|
* Returns a new VNode; the original is not mutated.
|
|
170
126
|
*/
|
|
171
127
|
declare function wrapWithHydrationMarkers(node: VNode, options: HydrationOptions): VNode;
|
|
128
|
+
interface PageOptions {
|
|
129
|
+
/** HTTP status code (default: 200) */
|
|
130
|
+
status?: number;
|
|
131
|
+
/** Page title */
|
|
132
|
+
title?: string;
|
|
133
|
+
/** Meta description */
|
|
134
|
+
description?: string;
|
|
135
|
+
/** Language attribute (default: 'en') */
|
|
136
|
+
lang?: string;
|
|
137
|
+
/** Favicon URL */
|
|
138
|
+
favicon?: string;
|
|
139
|
+
/** Open Graph meta tags */
|
|
140
|
+
og?: {
|
|
141
|
+
/** OG title (falls back to title) */
|
|
142
|
+
title?: string;
|
|
143
|
+
/** OG description (falls back to description) */
|
|
144
|
+
description?: string;
|
|
145
|
+
/** OG image URL */
|
|
146
|
+
image?: string;
|
|
147
|
+
/** OG canonical URL */
|
|
148
|
+
url?: string;
|
|
149
|
+
/** OG type (default: 'website') */
|
|
150
|
+
type?: string;
|
|
151
|
+
};
|
|
152
|
+
/** Twitter card meta tags */
|
|
153
|
+
twitter?: {
|
|
154
|
+
/** Twitter card type */
|
|
155
|
+
card?: string;
|
|
156
|
+
/** Twitter @username */
|
|
157
|
+
site?: string;
|
|
158
|
+
};
|
|
159
|
+
/** Array of script URLs to include at end of body */
|
|
160
|
+
scripts?: string[];
|
|
161
|
+
/** Array of stylesheet URLs to include in head */
|
|
162
|
+
styles?: string[];
|
|
163
|
+
/** Raw HTML escape hatch for head */
|
|
164
|
+
head?: string;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Render a VNode to a full HTML Response with common page structure.
|
|
168
|
+
*
|
|
169
|
+
* This is the main entry point for zero-boilerplate SSR. It wraps the component
|
|
170
|
+
* in a complete HTML document with doctype, head (meta, OG, Twitter, favicon,
|
|
171
|
+
* styles), and body (component content + scripts).
|
|
172
|
+
*
|
|
173
|
+
* @param vnode - The root VNode to render
|
|
174
|
+
* @param options - Optional page configuration
|
|
175
|
+
* @returns A Response with text/html content-type
|
|
176
|
+
*
|
|
177
|
+
* @example
|
|
178
|
+
* ```ts
|
|
179
|
+
* // Minimal usage
|
|
180
|
+
* return renderPage(App)
|
|
181
|
+
*
|
|
182
|
+
* // Full options
|
|
183
|
+
* return renderPage(App, {
|
|
184
|
+
* title: 'My App',
|
|
185
|
+
* description: 'Built with vertz',
|
|
186
|
+
* og: { image: '/og.png' },
|
|
187
|
+
* scripts: ['/app.js'],
|
|
188
|
+
* styles: ['/app.css'],
|
|
189
|
+
* })
|
|
190
|
+
* ```
|
|
191
|
+
*/
|
|
192
|
+
declare function renderPage(vnode: VNode, options?: PageOptions): Response;
|
|
193
|
+
import { Theme } from "@vertz/ui";
|
|
194
|
+
interface RenderToHTMLOptions<AppFn extends () => VNode> {
|
|
195
|
+
/** The app component function */
|
|
196
|
+
app: AppFn;
|
|
197
|
+
/** Request URL for SSR */
|
|
198
|
+
url: string;
|
|
199
|
+
/** Theme definition for CSS vars */
|
|
200
|
+
theme?: Theme;
|
|
201
|
+
/** Global CSS strings to inject */
|
|
202
|
+
styles?: string[];
|
|
203
|
+
/** HTML head configuration */
|
|
204
|
+
head?: {
|
|
205
|
+
title?: string;
|
|
206
|
+
meta?: Array<{
|
|
207
|
+
name?: string;
|
|
208
|
+
property?: string;
|
|
209
|
+
content: string;
|
|
210
|
+
}>;
|
|
211
|
+
links?: Array<{
|
|
212
|
+
rel: string;
|
|
213
|
+
href: string;
|
|
214
|
+
}>;
|
|
215
|
+
};
|
|
216
|
+
/** Container selector (default '#app') */
|
|
217
|
+
container?: string;
|
|
218
|
+
}
|
|
219
|
+
interface RenderToHTMLStreamOptions<AppFn extends () => VNode> extends RenderToHTMLOptions<AppFn> {
|
|
220
|
+
/** CSP nonce for inline scripts */
|
|
221
|
+
nonce?: string;
|
|
222
|
+
/** Global default for per-query ssrTimeout (ms) */
|
|
223
|
+
ssrTimeout?: number;
|
|
224
|
+
/** Hard timeout for entire stream (ms, default 30000) */
|
|
225
|
+
streamTimeout?: number;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Render a component to a streaming HTML Response.
|
|
229
|
+
*
|
|
230
|
+
* The initial HTML is sent immediately. For slow queries that timed out
|
|
231
|
+
* during SSR, their resolved data is streamed as inline `<script>` chunks
|
|
232
|
+
* that push data to the client's reactive system.
|
|
233
|
+
*
|
|
234
|
+
* @returns Promise<Response> - A streaming Response with text/html content
|
|
235
|
+
*/
|
|
236
|
+
declare function renderToHTMLStream<AppFn extends () => VNode>(options: RenderToHTMLStreamOptions<AppFn>): Promise<Response>;
|
|
237
|
+
/**
|
|
238
|
+
* Render a VNode to a full HTML string.
|
|
239
|
+
*
|
|
240
|
+
* This is a wrapper around renderPage() that provides a simpler API for
|
|
241
|
+
* theme and style injection.
|
|
242
|
+
*
|
|
243
|
+
* @param options - Render options including app, url, theme, styles, head
|
|
244
|
+
* @returns Promise<string> - The rendered HTML string
|
|
245
|
+
*
|
|
246
|
+
* @example
|
|
247
|
+
* ```ts
|
|
248
|
+
* import { renderToHTML, defineTheme } from '@vertz/ui-server';
|
|
249
|
+
*
|
|
250
|
+
* const theme = defineTheme({
|
|
251
|
+
* colors: { primary: { DEFAULT: '#3b82f6' } }
|
|
252
|
+
* });
|
|
253
|
+
*
|
|
254
|
+
* const html = await renderToHTML({
|
|
255
|
+
* app: App,
|
|
256
|
+
* url: '/',
|
|
257
|
+
* theme,
|
|
258
|
+
* styles: ['body { margin: 0; }'],
|
|
259
|
+
* head: { title: 'My App' }
|
|
260
|
+
* });
|
|
261
|
+
* ```
|
|
262
|
+
*/
|
|
263
|
+
declare function renderToHTML<AppFn extends () => VNode>(options: RenderToHTMLOptions<AppFn>): Promise<string>;
|
|
264
|
+
/**
|
|
265
|
+
* @deprecated Use the options-object overload: `renderToHTML({ app, url, ... })`
|
|
266
|
+
*/
|
|
267
|
+
declare function renderToHTML<AppFn extends () => VNode>(app: AppFn, options: RenderToHTMLOptions<AppFn>): Promise<string>;
|
|
172
268
|
/**
|
|
173
269
|
* Render a VNode tree to a `ReadableStream` of HTML chunks.
|
|
174
270
|
*
|
|
@@ -197,6 +293,177 @@ declare function resetSlotCounter(): void;
|
|
|
197
293
|
declare function createSlotPlaceholder(fallback: VNode | string): VNode & {
|
|
198
294
|
_slotId: number;
|
|
199
295
|
};
|
|
296
|
+
import { RenderAdapter } from "@vertz/ui/internals";
|
|
297
|
+
/**
|
|
298
|
+
* Create an SSR adapter that uses in-memory SSR node classes.
|
|
299
|
+
* Replaces `installDomShim()` — no global mutation needed.
|
|
300
|
+
*/
|
|
301
|
+
declare function createSSRAdapter(): RenderAdapter;
|
|
302
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
303
|
+
interface SSRQueryEntry {
|
|
304
|
+
promise: Promise<unknown>;
|
|
305
|
+
timeout: number;
|
|
306
|
+
resolve: (data: unknown) => void;
|
|
307
|
+
key: string;
|
|
308
|
+
resolved?: boolean;
|
|
309
|
+
}
|
|
310
|
+
interface SSRContext {
|
|
311
|
+
url: string;
|
|
312
|
+
errors: unknown[];
|
|
313
|
+
queries: SSRQueryEntry[];
|
|
314
|
+
/** Global per-query timeout override (ms). Set by the dev server entry. */
|
|
315
|
+
globalSSRTimeout?: number;
|
|
316
|
+
}
|
|
317
|
+
declare const ssrStorage: AsyncLocalStorage<SSRContext>;
|
|
318
|
+
declare function isInSSR(): boolean;
|
|
319
|
+
declare function getSSRUrl(): string | undefined;
|
|
320
|
+
/**
|
|
321
|
+
* Register an SSR query for awaiting before final render.
|
|
322
|
+
* No-op when called outside an SSR context.
|
|
323
|
+
*/
|
|
324
|
+
declare function registerSSRQuery(entry: SSRQueryEntry): void;
|
|
325
|
+
/**
|
|
326
|
+
* Get all registered SSR queries for the current render.
|
|
327
|
+
* Returns an empty array when called outside an SSR context.
|
|
328
|
+
*/
|
|
329
|
+
declare function getSSRQueries(): SSRQueryEntry[];
|
|
330
|
+
/**
|
|
331
|
+
* Set the global SSR timeout for queries that don't specify their own.
|
|
332
|
+
* Called by the virtual SSR entry to propagate the plugin-level ssrTimeout.
|
|
333
|
+
* Stored in the per-request SSR context (AsyncLocalStorage), not on globalThis.
|
|
334
|
+
*/
|
|
335
|
+
declare function setGlobalSSRTimeout(timeout: number): void;
|
|
336
|
+
/**
|
|
337
|
+
* Clear the global SSR timeout (cleanup after render).
|
|
338
|
+
*/
|
|
339
|
+
declare function clearGlobalSSRTimeout(): void;
|
|
340
|
+
/**
|
|
341
|
+
* Get the global SSR timeout for the current SSR context.
|
|
342
|
+
* Returns undefined if not set or outside SSR context.
|
|
343
|
+
*/
|
|
344
|
+
declare function getGlobalSSRTimeout(): number | undefined;
|
|
345
|
+
import { Theme as Theme2 } from "@vertz/ui";
|
|
346
|
+
interface SSRModule {
|
|
347
|
+
default?: () => unknown;
|
|
348
|
+
App?: () => unknown;
|
|
349
|
+
theme?: Theme2;
|
|
350
|
+
/** Global CSS strings to include in every SSR response (e.g. resets, body styles). */
|
|
351
|
+
styles?: string[];
|
|
352
|
+
/**
|
|
353
|
+
* Return all CSS tracked by the bundled @vertz/ui instance.
|
|
354
|
+
* The Vite SSR build inlines @vertz/ui into the server bundle, creating
|
|
355
|
+
* a separate module instance from @vertz/ui-server's dependency. Without
|
|
356
|
+
* this, component CSS from module-level css() calls is invisible to the
|
|
357
|
+
* SSR renderer. Export `getInjectedCSS` from @vertz/ui in the app entry.
|
|
358
|
+
*/
|
|
359
|
+
getInjectedCSS?: () => string[];
|
|
360
|
+
}
|
|
361
|
+
interface SSRRenderResult {
|
|
362
|
+
html: string;
|
|
363
|
+
css: string;
|
|
364
|
+
ssrData: Array<{
|
|
365
|
+
key: string;
|
|
366
|
+
data: unknown;
|
|
367
|
+
}>;
|
|
368
|
+
}
|
|
369
|
+
interface SSRDiscoverResult {
|
|
370
|
+
resolved: Array<{
|
|
371
|
+
key: string;
|
|
372
|
+
data: unknown;
|
|
373
|
+
}>;
|
|
374
|
+
pending: string[];
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* Render an SSR module to an HTML string with CSS and pre-fetched query data.
|
|
378
|
+
*
|
|
379
|
+
* Performs a two-pass render:
|
|
380
|
+
* - Pass 1: Discovery — calls the app to trigger query() registrations, awaits them
|
|
381
|
+
* - Pass 2: Render — calls the app again with data populated, renders to HTML
|
|
382
|
+
*/
|
|
383
|
+
declare function ssrRenderToString(module: SSRModule, url: string, options?: {
|
|
384
|
+
ssrTimeout?: number;
|
|
385
|
+
}): Promise<SSRRenderResult>;
|
|
386
|
+
/**
|
|
387
|
+
* Discover queries for a given URL without rendering.
|
|
388
|
+
* Runs only Pass 1 (query registration + resolution), no Pass 2 render.
|
|
389
|
+
* Used by the production handler to pre-fetch query data for client-side navigations.
|
|
390
|
+
*/
|
|
391
|
+
declare function ssrDiscoverQueries(module: SSRModule, url: string, options?: {
|
|
392
|
+
ssrTimeout?: number;
|
|
393
|
+
}): Promise<SSRDiscoverResult>;
|
|
394
|
+
interface SSRHandlerOptions {
|
|
395
|
+
/** The loaded SSR module (import('./dist/server/index.js')) */
|
|
396
|
+
module: SSRModule;
|
|
397
|
+
/** HTML template string (contents of dist/client/index.html) */
|
|
398
|
+
template: string;
|
|
399
|
+
/** SSR timeout for queries (default: 300ms) */
|
|
400
|
+
ssrTimeout?: number;
|
|
401
|
+
/**
|
|
402
|
+
* Map of CSS asset URLs to their content for inlining.
|
|
403
|
+
* Replaces `<link rel="stylesheet" href="...">` tags with inline `<style>` tags.
|
|
404
|
+
* Eliminates extra network requests, preventing FOUC on slow connections.
|
|
405
|
+
*
|
|
406
|
+
* @example
|
|
407
|
+
* ```ts
|
|
408
|
+
* inlineCSS: { '/assets/vertz.css': await Bun.file('./dist/client/assets/vertz.css').text() }
|
|
409
|
+
* ```
|
|
410
|
+
*/
|
|
411
|
+
inlineCSS?: Record<string, string>;
|
|
412
|
+
/**
|
|
413
|
+
* CSP nonce to inject on all inline `<script>` tags emitted during SSR.
|
|
414
|
+
*
|
|
415
|
+
* When set, the SSR data hydration script will include `nonce="<value>"`
|
|
416
|
+
* so that strict Content-Security-Policy headers do not block it.
|
|
417
|
+
*/
|
|
418
|
+
nonce?: string;
|
|
419
|
+
}
|
|
420
|
+
/**
|
|
421
|
+
* Create a web-standard SSR request handler.
|
|
422
|
+
*
|
|
423
|
+
* Handles two types of requests:
|
|
424
|
+
* - X-Vertz-Nav: 1 -> SSE Response with pre-fetched query data
|
|
425
|
+
* - Normal HTML request -> SSR-rendered HTML Response
|
|
426
|
+
*
|
|
427
|
+
* Does NOT serve static files — that's the adapter/platform's job.
|
|
428
|
+
*/
|
|
429
|
+
declare function createSSRHandler(options: SSRHandlerOptions): (request: Request) => Promise<Response>;
|
|
430
|
+
interface GenerateSSRHtmlOptions {
|
|
431
|
+
appHtml: string;
|
|
432
|
+
css: string;
|
|
433
|
+
ssrData: Array<{
|
|
434
|
+
key: string;
|
|
435
|
+
data: unknown;
|
|
436
|
+
}>;
|
|
437
|
+
clientEntry: string;
|
|
438
|
+
title?: string;
|
|
439
|
+
}
|
|
440
|
+
/**
|
|
441
|
+
* Generate a complete HTML document from SSR render results.
|
|
442
|
+
*/
|
|
443
|
+
declare function generateSSRHtml(options: GenerateSSRHtmlOptions): string;
|
|
444
|
+
/**
|
|
445
|
+
* Serialize data to JSON with `<` escaped as `\u003c`.
|
|
446
|
+
* Prevents `<\/script>` breakout and `<!--` injection in inline scripts.
|
|
447
|
+
*/
|
|
448
|
+
declare function safeSerialize(data: unknown): string;
|
|
449
|
+
/**
|
|
450
|
+
* Generate the inline `<script>` tag that bootstraps the SSR data streaming
|
|
451
|
+
* event bus on the client. Injected into `<head>` during streaming render.
|
|
452
|
+
*
|
|
453
|
+
* Creates:
|
|
454
|
+
* - `window.__VERTZ_SSR_DATA__` — buffered array of received data
|
|
455
|
+
* - `window.__VERTZ_SSR_PUSH__` — function to push data + dispatch event
|
|
456
|
+
*/
|
|
457
|
+
declare function getStreamingRuntimeScript(nonce?: string): string;
|
|
458
|
+
/**
|
|
459
|
+
* Create an inline `<script>` chunk that pushes resolved query data
|
|
460
|
+
* to the client via `__VERTZ_SSR_PUSH__`.
|
|
461
|
+
*
|
|
462
|
+
* @param key - The query cache key (must match client-side query key)
|
|
463
|
+
* @param data - The resolved query data
|
|
464
|
+
* @param nonce - Optional CSP nonce for the script tag
|
|
465
|
+
*/
|
|
466
|
+
declare function createSSRDataChunk(key: string, data: unknown, nonce?: string): string;
|
|
200
467
|
/**
|
|
201
468
|
* Encode a string as a UTF-8 Uint8Array chunk.
|
|
202
469
|
*/
|
|
@@ -224,4 +491,4 @@ declare function collectStreamChunks(stream: ReadableStream<Uint8Array>): Promis
|
|
|
224
491
|
* @param nonce - Optional CSP nonce to add to the inline script tag.
|
|
225
492
|
*/
|
|
226
493
|
declare function createTemplateChunk(slotId: number, resolvedHtml: string, nonce?: string): string;
|
|
227
|
-
export { wrapWithHydrationMarkers, streamToString, serializeToHtml, resetSlotCounter, renderToStream, renderHeadToHtml, renderAssetTags, rawHtml, inlineCriticalCss, encodeChunk, createTemplateChunk, createSlotPlaceholder,
|
|
494
|
+
export { wrapWithHydrationMarkers, streamToString, ssrStorage, ssrRenderToString, ssrDiscoverQueries, setGlobalSSRTimeout, serializeToHtml, safeSerialize, resetSlotCounter, renderToStream, renderToHTMLStream, renderToHTML, renderPage, renderHeadToHtml, renderAssetTags, registerSSRQuery, rawHtml, isInSSR, inlineCriticalCss, getStreamingRuntimeScript, getSSRUrl, getSSRQueries, getGlobalSSRTimeout, generateSSRHtml, encodeChunk, createTemplateChunk, createSlotPlaceholder, createSSRHandler, createSSRDataChunk, createSSRAdapter, collectStreamChunks, clearGlobalSSRTimeout, VNode, SSRRenderResult, SSRQueryEntry, SSRModule, SSRHandlerOptions, SSRDiscoverResult, RenderToStreamOptions, RenderToHTMLStreamOptions, RenderToHTMLOptions, RawHtml, PageOptions, HydrationOptions, HeadEntry, HeadCollector, GenerateSSRHtmlOptions, AssetDescriptor };
|