vue-ssr-lite 0.1.9 → 0.1.11

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 (36) hide show
  1. package/README.md +94 -12
  2. package/dist/SsrApplicationRuntime.d.ts +16 -0
  3. package/dist/SsrApplicationRuntime.d.ts.map +1 -1
  4. package/dist/SsrBrowserRuntime.d.ts +21 -0
  5. package/dist/SsrBrowserRuntime.d.ts.map +1 -1
  6. package/dist/SsrDiagnosticsRuntime.d.ts +22 -0
  7. package/dist/SsrDiagnosticsRuntime.d.ts.map +1 -0
  8. package/dist/SsrReactivityRuntime.d.ts +52 -0
  9. package/dist/SsrReactivityRuntime.d.ts.map +1 -0
  10. package/dist/SsrRenderRuntime.d.ts +16 -2
  11. package/dist/SsrRenderRuntime.d.ts.map +1 -1
  12. package/dist/SsrRequestResolution.d.ts +79 -0
  13. package/dist/SsrRequestResolution.d.ts.map +1 -0
  14. package/dist/SsrRuntimeTypes.d.ts +40 -1
  15. package/dist/SsrRuntimeTypes.d.ts.map +1 -1
  16. package/dist/chunks/SsrApplicationRuntime-h6X7RjxC.mjs +154 -0
  17. package/dist/chunks/SsrDiagnosticsRuntime-B5VbSgsA.mjs +28 -0
  18. package/dist/chunks/SsrReactivityRuntime-CUbPx7ew.mjs +9 -0
  19. package/dist/chunks/SsrServerRuntime-yvAyDoVJ.mjs +731 -0
  20. package/dist/cli.mjs +1 -1
  21. package/dist/client.d.ts +2 -0
  22. package/dist/client.d.ts.map +1 -1
  23. package/dist/client.mjs +79 -31
  24. package/dist/index.d.ts +3 -0
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.mjs +18 -11
  27. package/dist/server/SsrRuntimeConfigRuntime.d.ts +54 -0
  28. package/dist/server/SsrRuntimeConfigRuntime.d.ts.map +1 -0
  29. package/dist/server/SsrServerRuntime.d.ts.map +1 -1
  30. package/dist/server.d.ts +1 -0
  31. package/dist/server.d.ts.map +1 -1
  32. package/dist/server.mjs +123 -23
  33. package/docs/SsrBuiltoCompatibility.md +12 -9
  34. package/package.json +1 -1
  35. package/dist/chunks/SsrApplicationRuntime-BFebmWyk.mjs +0 -95
  36. package/dist/chunks/SsrServerRuntime-ChrpJneS.mjs +0 -670
package/README.md CHANGED
@@ -74,7 +74,7 @@ yarn add --dev vite @vitejs/plugin-vue
74
74
 
75
75
  ### SPA
76
76
 
77
- Use `kind: 'spa'` for a normal Vue application that runs in the browser.
77
+ Use `kind: 'spa'` for a Vue application that runs in the browser.
78
78
 
79
79
  Examples:
80
80
 
@@ -84,7 +84,23 @@ Examples:
84
84
  - Authenticated application
85
85
  - Client-side portal
86
86
 
87
- A SPA keeps its normal Vite `main.ts` entry.
87
+ A single application definition is mountable in three modes — server render,
88
+ browser hydration of a server render, and pure client-side SPA. Define the app
89
+ once with `defineSsrApplication()` and mount it in the SPA entry with
90
+ `mountSpaApplication()`, so the SPA and SSR paths of the same application share
91
+ one plugin set, router and public-config delivery and cannot drift:
92
+
93
+ ```ts
94
+ // src/main.ts — thin SPA entry over the shared definition
95
+ import { mountSpaApplication } from 'vue-ssr-lite/client'
96
+ import { app } from './app' // defineSsrApplication({ ... })
97
+
98
+ void mountSpaApplication(app)
99
+ ```
100
+
101
+ A plain Vite `main.ts` (`createApp(App).use(router).mount('#app')`) still works
102
+ for an application that never needs SSR, but prefer the unified definition when
103
+ the same app also has an SSR entry.
88
104
 
89
105
  ### SSR
90
106
 
@@ -110,18 +126,30 @@ The following example creates:
110
126
 
111
127
  ## 1. Create the SPA Application
112
128
 
113
- Create a normal Vue entry:
129
+ Define the application once and mount it through the package. Router creation,
130
+ plugin installation, public-config delivery and mounting are owned by
131
+ `vue-ssr-lite`, identically to the SSR and hydration paths:
114
132
 
115
133
  ```ts
116
- // src/spa/main.ts
117
- import { createApp } from 'vue'
134
+ // src/spa/app.ts
135
+ import { defineSsrApplication } from 'vue-ssr-lite'
118
136
  import App from './App.vue'
119
- import router from './router'
137
+ import routes from './routes'
120
138
 
121
- const app = createApp(App)
139
+ export const app = defineSsrApplication({
140
+ id: 'dashboard',
141
+ rootComponent: App,
142
+ routes,
143
+ plugins: [/* your Vue plugins */],
144
+ })
145
+ ```
122
146
 
123
- app.use(router)
124
- app.mount('#app')
147
+ ```ts
148
+ // src/spa/main.ts — thin entry
149
+ import { mountSpaApplication } from 'vue-ssr-lite/client'
150
+ import { app } from './app'
151
+
152
+ void mountSpaApplication(app)
125
153
  ```
126
154
 
127
155
  Create the SPA root component:
@@ -161,7 +189,7 @@ Create the SPA HTML entry:
161
189
  </html>
162
190
  ```
163
191
 
164
- This remains a normal Vue and Vite SPA. No special SPA application definition is required.
192
+ The same definition backs the SSR entry, so the SPA and SSR paths cannot drift.
165
193
 
166
194
  ## 2. Create the SSR Application
167
195
 
@@ -912,12 +940,66 @@ server: {
912
940
 
913
941
  `/healthz` and `/readyz` include the active `role` in their JSON responses.
914
942
 
943
+ ## Server-side data resolution
944
+
945
+ `renderToString` awaits each component's native `onServerPrefetch`, which covers
946
+ data consumed reactively inside the component that declared it. For work started
947
+ OUTSIDE that lifecycle — a store action, an i18n loader, a lazy query — the
948
+ package exposes a generic, API-client-neutral **resolution contract**.
949
+
950
+ An installed plugin obtains it by injecting `SSR_REQUEST_RESOLUTION`
951
+ (`Symbol.for('vue-ssr:request-resolution')`, resolvable without importing this
952
+ package). It registers in-flight work with `track(promise)` and may call
953
+ `requestAdditionalPass()`. After each render pass the renderer awaits registered
954
+ work and re-renders when a plugin asked for another pass, up to
955
+ `server.maxResolutionPasses` (default 4) and bounded by
956
+ `server.resolutionDeadlineMs` and the request abort signal.
957
+
958
+ A fully resolvable page completes in **one pass** — extra passes occur only when
959
+ a plugin left work pending or requested one. `vue-ssr-lite` never inspects the
960
+ work; it only awaits it.
961
+
962
+ ## SSR-safe reactivity
963
+
964
+ During SSR, Vue does not flush the scheduler, so `watch(src, cb)` and
965
+ `watchEffect` run at most once and are then discarded — the most common cause of
966
+ "the shell renders but the content is missing" bugs. Server-safe APIs:
967
+
968
+ | API | Server behaviour |
969
+ | --- | --- |
970
+ | `computed` | ✅ Lazily evaluated during render |
971
+ | `ssrWatch(src, cb)` / `ssrWatchEffect(fn)` | ✅ Sync flush, active during render |
972
+ | `watch(src, cb)` / `watchEffect(fn)` | ⚠️ Runs once (or never), then discarded |
973
+ | `onServerPrefetch(async fn)` | ✅ Awaited before the component renders |
974
+ | `onMounted` / `onUpdated` | ❌ Browser only |
975
+
976
+ Use a `computed` to derive a value for the template; reach for `ssrWatch` /
977
+ `ssrWatchEffect` (exported from `vue-ssr-lite` and `vue-ssr-lite/client`) when
978
+ resolved data must drive an imperative side effect during the server render.
979
+
980
+ ## Runtime configuration helpers
981
+
982
+ `vue-ssr-lite/server` provides declarative helpers so a runtime definition is
983
+ configuration, not boilerplate: `ssrEnvBoolean`, `ssrEnvNumber`, `ssrEnvList`,
984
+ `requireSsrEnv`, `requireSsrHostname`, `requireSsrEnum`, `createSsrConsoleLogger`
985
+ and `createSsrSeoEndpoints` (`robots.txt` / `sitemap.xml` — `served`, `proxy` or
986
+ `disallow` by option). Host helpers such as `normalizeSsrHost` remain exported;
987
+ reuse them rather than re-implementing.
988
+
989
+ ## Development diagnostics
990
+
991
+ When diagnostics are enabled (`server.diagnostics`, default on outside
992
+ production) the renderer reports, with actionable messages: a loading
993
+ placeholder or `aria-busy="true"` still present after resolution, a route that
994
+ matched no component, and a body that resolved to nothing. These are dev-only
995
+ warnings; production render paths are untouched.
996
+
915
997
  ## Summary
916
998
 
917
999
  For a SPA:
918
1000
 
919
- 1. Create a normal Vue `main.ts`.
920
- 2. Create a normal HTML entry.
1001
+ 1. Define the app once with `defineSsrApplication()`.
1002
+ 2. Mount it in a thin `main.ts` with `mountSpaApplication()`.
921
1003
  3. Register the HTML file in `spaEntries`.
922
1004
  4. Add a runtime entry with `kind: 'spa'`.
923
1005
 
@@ -1,8 +1,24 @@
1
+ import { SsrResolutionController } from './SsrRequestResolution';
1
2
  import { SsrApplicationDefinition, SsrCreatedApplication, SsrHydrationState, SsrRenderRequest } from './SsrRuntimeTypes';
2
3
  export interface SsrCreateApplicationOptions<TApplicationState, TPublicConfig> {
3
4
  server: boolean;
4
5
  request: SsrRenderRequest<TPublicConfig>;
5
6
  hydrationState?: SsrHydrationState<TApplicationState, TPublicConfig> | null;
7
+ /**
8
+ * Pure client-side SPA mount (no server markup to hydrate). Uses `createApp`
9
+ * instead of `createSSRApp` so Vue performs a full client render.
10
+ */
11
+ spa?: boolean;
12
+ /**
13
+ * Server re-render only: opaque plugin state carried from the previous pass,
14
+ * restored so plugins (an API client cache, an i18n loader) resume warm.
15
+ */
16
+ resumeState?: Record<string, unknown> | null;
17
+ /**
18
+ * Reuse a resolution controller across render passes of the same request.
19
+ * A fresh one is created when omitted.
20
+ */
21
+ resolution?: SsrResolutionController;
6
22
  }
7
23
  export declare const createSsrApplication: <TApplicationState extends Record<string, any> = Record<string, unknown>, TPublicConfig = unknown, TExtension = unknown>(definition: SsrApplicationDefinition<TApplicationState, TPublicConfig, TExtension>, options: SsrCreateApplicationOptions<TApplicationState, TPublicConfig>) => Promise<SsrCreatedApplication<TApplicationState, TPublicConfig, TExtension>>;
8
24
  //# sourceMappingURL=SsrApplicationRuntime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SsrApplicationRuntime.d.ts","sourceRoot":"","sources":["../src/SsrApplicationRuntime.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAEjB,MAAM,mBAAmB,CAAA;AAE1B,MAAM,WAAW,2BAA2B,CAC1C,iBAAiB,EACjB,aAAa;IAEb,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAA;IACxC,cAAc,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,EAAE,aAAa,CAAC,GAAG,IAAI,CAAA;CAC5E;AAED,eAAO,MAAM,oBAAoB,GAC/B,iBAAiB,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvE,aAAa,GAAG,OAAO,EACvB,UAAU,GAAG,OAAO,EAEpB,YAAY,wBAAwB,CAClC,iBAAiB,EACjB,aAAa,EACb,UAAU,CACX,EACD,SAAS,2BAA2B,CAAC,iBAAiB,EAAE,aAAa,CAAC,KACrE,OAAO,CAAC,qBAAqB,CAAC,iBAAiB,EAAE,aAAa,EAAE,UAAU,CAAC,CAwF7E,CAAA"}
1
+ {"version":3,"file":"SsrApplicationRuntime.d.ts","sourceRoot":"","sources":["../src/SsrApplicationRuntime.ts"],"names":[],"mappings":"AAWA,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EACV,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAEjB,MAAM,mBAAmB,CAAA;AAE1B,MAAM,WAAW,2BAA2B,CAC1C,iBAAiB,EACjB,aAAa;IAEb,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAA;IACxC,cAAc,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,EAAE,aAAa,CAAC,GAAG,IAAI,CAAA;IAC3E;;;OAGG;IACH,GAAG,CAAC,EAAE,OAAO,CAAA;IACb;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAC5C;;;OAGG;IACH,UAAU,CAAC,EAAE,uBAAuB,CAAA;CACrC;AAED,eAAO,MAAM,oBAAoB,GAC/B,iBAAiB,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvE,aAAa,GAAG,OAAO,EACvB,UAAU,GAAG,OAAO,EAEpB,YAAY,wBAAwB,CAClC,iBAAiB,EACjB,aAAa,EACb,UAAU,CACX,EACD,SAAS,2BAA2B,CAAC,iBAAiB,EAAE,aAAa,CAAC,KACrE,OAAO,CAAC,qBAAqB,CAAC,iBAAiB,EAAE,aAAa,EAAE,UAAU,CAAC,CAqG7E,CAAA"}
@@ -1,8 +1,29 @@
1
+ import { App } from 'vue';
1
2
  import { SsrApplicationDefinition } from './SsrRuntimeTypes';
2
3
  export interface SsrHydrateOptions {
3
4
  mountSelector?: string;
4
5
  stateElementId?: string;
5
6
  removeHeadSelector?: string;
6
7
  }
8
+ export interface SsrSpaMountOptions<TPublicConfig = unknown> {
9
+ mountSelector?: string;
10
+ /** Client-side public config. Defaults to `{}` for a self-contained SPA. */
11
+ publicConfig?: TPublicConfig;
12
+ /** Initial URL to route to. Defaults to `window.location`. */
13
+ url?: string;
14
+ }
15
+ export interface SsrMountedApplication {
16
+ app: App;
17
+ /** Unmount the app and dispose per-request resources. */
18
+ unmount: () => void;
19
+ }
7
20
  export declare const hydrateSsrApplication: (definition: SsrApplicationDefinition<any, any, any>, options?: SsrHydrateOptions) => Promise<void>;
21
+ /**
22
+ * Mounts an {@link SsrApplicationDefinition} as a pure client-side SPA — the
23
+ * third mode alongside server render and browser hydration. The SAME definition
24
+ * (root component, routes, plugins, install hook, public config delivery) drives
25
+ * all three, so a consumer's SPA entry and SSR entry cannot drift. No server
26
+ * markup is required: Vue performs a full client render.
27
+ */
28
+ export declare const mountSpaApplication: <TApplicationState extends Record<string, any> = Record<string, unknown>, TPublicConfig = unknown, TExtension = unknown>(definition: SsrApplicationDefinition<TApplicationState, TPublicConfig, TExtension>, options?: SsrSpaMountOptions<TPublicConfig>) => Promise<SsrMountedApplication>;
8
29
  //# sourceMappingURL=SsrBrowserRuntime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SsrBrowserRuntime.d.ts","sourceRoot":"","sources":["../src/SsrBrowserRuntime.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,wBAAwB,EAGzB,MAAM,mBAAmB,CAAA;AAE1B,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,eAAO,MAAM,qBAAqB,GAChC,YAAY,wBAAwB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACnD,UAAS,iBAAsB,KAC9B,OAAO,CAAC,IAAI,CAsDd,CAAA"}
1
+ {"version":3,"file":"SsrBrowserRuntime.d.ts","sourceRoot":"","sources":["../src/SsrBrowserRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAG9B,OAAO,KAAK,EACV,wBAAwB,EAGzB,MAAM,mBAAmB,CAAA;AAE1B,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,kBAAkB,CAAC,aAAa,GAAG,OAAO;IACzD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,aAAa,CAAA;IAC5B,8DAA8D;IAC9D,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,GAAG,CAAA;IACR,yDAAyD;IACzD,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAkBD,eAAO,MAAM,qBAAqB,GAChC,YAAY,wBAAwB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACnD,UAAS,iBAAsB,KAC9B,OAAO,CAAC,IAAI,CAkDd,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAC9B,iBAAiB,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvE,aAAa,GAAG,OAAO,EACvB,UAAU,GAAG,OAAO,EAEpB,YAAY,wBAAwB,CAClC,iBAAiB,EACjB,aAAa,EACb,UAAU,CACX,EACD,UAAS,kBAAkB,CAAC,aAAa,CAAM,KAC9C,OAAO,CAAC,qBAAqB,CA8C/B,CAAA"}
@@ -0,0 +1,22 @@
1
+ import { Router } from 'vue-router';
2
+ /**
3
+ * Development-only render diagnostics.
4
+ *
5
+ * These surface the failure modes that otherwise ship silently to search
6
+ * engines: a server render that still shows a spinner, a route that matched no
7
+ * component, or a body that resolved to nothing. Every check is a pure string /
8
+ * route inspection with no side effects, and the caller only runs them when
9
+ * diagnostics are enabled, so production render paths are untouched.
10
+ */
11
+ export interface SsrRenderDiagnosticInput {
12
+ html: string;
13
+ route?: Router['currentRoute']['value'] | null;
14
+ requestUrl: string;
15
+ applicationId: string;
16
+ }
17
+ export interface SsrRenderDiagnostic {
18
+ code: 'loading-placeholder' | 'empty-route' | 'empty-content' | 'busy-attribute';
19
+ message: string;
20
+ }
21
+ export declare const collectSsrRenderDiagnostics: (input: SsrRenderDiagnosticInput) => SsrRenderDiagnostic[];
22
+ //# sourceMappingURL=SsrDiagnosticsRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SsrDiagnosticsRuntime.d.ts","sourceRoot":"","sources":["../src/SsrDiagnosticsRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC;;;;;;;;GAQG;AAEH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IAC9C,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EACA,qBAAqB,GACrB,aAAa,GACb,eAAe,GACf,gBAAgB,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;CAChB;AAoBD,eAAO,MAAM,2BAA2B,GACtC,OAAO,wBAAwB,KAC9B,mBAAmB,EAgCrB,CAAA"}
@@ -0,0 +1,52 @@
1
+ import { watchEffect, WatchCallback, WatchOptions, WatchSource, WatchStopHandle } from 'vue';
2
+ /**
3
+ * SSR-safe reactivity.
4
+ *
5
+ * # Which Vue reactivity APIs are server-safe
6
+ *
7
+ * During server-side rendering Vue does NOT flush the scheduler, so any effect
8
+ * queued to run later is created and then discarded. This is the single most
9
+ * common cause of "the shell renders but the content is missing" bugs.
10
+ *
11
+ * | API | Server behaviour |
12
+ * | ------------------------------------- | -------------------------------------------------- |
13
+ * | `computed` | ✅ Safe. Lazily evaluated during render. |
14
+ * | `watch(src, cb, { flush: 'sync' })` | ✅ Safe. Runs synchronously, stays active in render.|
15
+ * | `watch(src, cb)` / `{ flush:'pre' }` | ⚠️ Discarded. `immediate` runs once, then nothing.|
16
+ * | `watch(src, cb, { flush: 'post' })` | ⚠️ Discarded. Never runs on the server. |
17
+ * | `watchEffect(fn)` | ⚠️ Runs once at setup, then discarded. |
18
+ * | `onServerPrefetch(async fn)` | ✅ Safe. Awaited before the component renders. |
19
+ * | `onMounted` / `onUpdated` | ❌ Browser only. Never runs on the server. |
20
+ *
21
+ * # The primitive
22
+ *
23
+ * {@link ssrWatch} and {@link ssrWatchEffect} force `flush: 'sync'`, so the
24
+ * effect is active during the server render and reacts to state that settles
25
+ * mid-render (for example a ref written by an awaited `onServerPrefetch`). They
26
+ * behave identically on the server and in the browser, which is exactly what an
27
+ * application needs to derive state from resolved data without reinventing a
28
+ * broken watcher workaround.
29
+ *
30
+ * Prefer a `computed` when you only need to DERIVE a value for the template.
31
+ * Reach for {@link ssrWatch} when resolved data must drive an imperative side
32
+ * effect (populating an external store, setting a status code) that has to
33
+ * happen during the server render.
34
+ */
35
+ export type SsrWatchOptions<Immediate extends boolean = boolean> = Omit<WatchOptions<Immediate>, 'flush'>;
36
+ /**
37
+ * `watch`, pinned to `flush: 'sync'` so the callback is active during SSR.
38
+ *
39
+ * Identical semantics to Vue's `watch` otherwise: pass `{ immediate: true }` to
40
+ * run once on setup, and use the returned handle to stop it. Because the flush
41
+ * is synchronous, avoid mutating the watched source from inside the callback.
42
+ */
43
+ export declare function ssrWatch<T, Immediate extends boolean = false>(source: WatchSource<T>, callback: WatchCallback<T, Immediate extends true ? T | undefined : T>, options?: SsrWatchOptions<Immediate>): WatchStopHandle;
44
+ export declare function ssrWatch<T extends readonly unknown[], Immediate extends boolean = false>(source: readonly [...T] | (() => T), callback: WatchCallback<T, Immediate extends true ? T | undefined : T>, options?: SsrWatchOptions<Immediate>): WatchStopHandle;
45
+ /**
46
+ * `watchEffect`, pinned to `flush: 'sync'` so the effect is active during SSR.
47
+ * The effect runs immediately and re-runs synchronously whenever a tracked
48
+ * dependency changes — including changes that happen while the server render is
49
+ * still in progress.
50
+ */
51
+ export declare const ssrWatchEffect: (effect: Parameters<typeof watchEffect>[0], options?: Omit<NonNullable<Parameters<typeof watchEffect>[1]>, "flush">) => WatchStopHandle;
52
+ //# sourceMappingURL=SsrReactivityRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SsrReactivityRuntime.d.ts","sourceRoot":"","sources":["../src/SsrReactivityRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EACX,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,KAAK,CAAA;AAEZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,MAAM,MAAM,eAAe,CAAC,SAAS,SAAS,OAAO,GAAG,OAAO,IAAI,IAAI,CACrE,YAAY,CAAC,SAAS,CAAC,EACvB,OAAO,CACR,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,SAAS,SAAS,OAAO,GAAG,KAAK,EAC3D,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EACtB,QAAQ,EAAE,aAAa,CAAC,CAAC,EAAE,SAAS,SAAS,IAAI,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,EACtE,OAAO,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,GACnC,eAAe,CAAA;AAClB,wBAAgB,QAAQ,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,EAAE,SAAS,SAAS,OAAO,GAAG,KAAK,EACtF,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EACnC,QAAQ,EAAE,aAAa,CAAC,CAAC,EAAE,SAAS,SAAS,IAAI,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,EACtE,OAAO,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,GACnC,eAAe,CAAA;AASlB;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GACzB,QAAQ,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,EACzC,UAAU,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KACtE,eAAqE,CAAA"}
@@ -1,3 +1,17 @@
1
- import { SsrApplicationDefinition, SsrRenderRequest, SsrRenderResult } from './SsrRuntimeTypes';
2
- export declare const renderSsrApplication: <TApplicationState extends Record<string, any> = Record<string, unknown>, TPublicConfig = unknown, TExtension = unknown>(definition: SsrApplicationDefinition<TApplicationState, TPublicConfig, TExtension>, request: SsrRenderRequest<TPublicConfig>) => Promise<SsrRenderResult<TApplicationState, TPublicConfig>>;
1
+ import { SsrApplicationDefinition, SsrLogger, SsrRenderRequest, SsrRenderResult } from './SsrRuntimeTypes';
2
+ export interface SsrRenderOptions {
3
+ /**
4
+ * Maximum render passes. The first always runs; further passes only occur
5
+ * when a plugin left resolution work pending or asked for another pass.
6
+ * Defaults to 4, clamped to at least 1.
7
+ */
8
+ maxResolutionPasses?: number;
9
+ /** Bound, in ms, for awaiting registered work between passes. */
10
+ resolutionDeadlineMs?: number;
11
+ /** Enables development-only render diagnostics. Inert in production. */
12
+ diagnostics?: boolean;
13
+ /** Structured logger for diagnostics and pass reporting. */
14
+ logger?: SsrLogger;
15
+ }
16
+ export declare const renderSsrApplication: <TApplicationState extends Record<string, any> = Record<string, unknown>, TPublicConfig = unknown, TExtension = unknown>(definition: SsrApplicationDefinition<TApplicationState, TPublicConfig, TExtension>, request: SsrRenderRequest<TPublicConfig>, options?: SsrRenderOptions) => Promise<SsrRenderResult<TApplicationState, TPublicConfig>>;
3
17
  //# sourceMappingURL=SsrRenderRuntime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SsrRenderRuntime.d.ts","sourceRoot":"","sources":["../src/SsrRenderRuntime.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,wBAAwB,EAExB,gBAAgB,EAChB,eAAe,EAChB,MAAM,mBAAmB,CAAA;AAK1B,eAAO,MAAM,oBAAoB,GAC/B,iBAAiB,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvE,aAAa,GAAG,OAAO,EACvB,UAAU,GAAG,OAAO,EAEpB,YAAY,wBAAwB,CAClC,iBAAiB,EACjB,aAAa,EACb,UAAU,CACX,EACD,SAAS,gBAAgB,CAAC,aAAa,CAAC,KACvC,OAAO,CAAC,eAAe,CAAC,iBAAiB,EAAE,aAAa,CAAC,CA0E3D,CAAA"}
1
+ {"version":3,"file":"SsrRenderRuntime.d.ts","sourceRoot":"","sources":["../src/SsrRenderRuntime.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,wBAAwB,EAExB,SAAS,EACT,gBAAgB,EAChB,eAAe,EAChB,MAAM,mBAAmB,CAAA;AAK1B,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,iEAAiE;IACjE,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,wEAAwE;IACxE,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,SAAS,CAAA;CACnB;AAeD,eAAO,MAAM,oBAAoB,GAC/B,iBAAiB,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvE,aAAa,GAAG,OAAO,EACvB,UAAU,GAAG,OAAO,EAEpB,YAAY,wBAAwB,CAClC,iBAAiB,EACjB,aAAa,EACb,UAAU,CACX,EACD,SAAS,gBAAgB,CAAC,aAAa,CAAC,EACxC,UAAS,gBAAqB,KAC7B,OAAO,CAAC,eAAe,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAkK3D,CAAA"}
@@ -0,0 +1,79 @@
1
+ import { InjectionKey } from 'vue';
2
+ /**
3
+ * Generic, framework-neutral server-render resolution contract.
4
+ *
5
+ * `renderToString` makes a single pass and awaits each component's native
6
+ * `onServerPrefetch`. That covers data consumed reactively inside the component
7
+ * that declared it, but it offers no way to:
8
+ *
9
+ * 1. await asynchronous work that was started OUTSIDE a component's own
10
+ * prefetch lifecycle (a store action, an i18n loader, a lazy query), or
11
+ * 2. tell the renderer that application state settled AFTER the first pass and
12
+ * the tree should be produced again.
13
+ *
14
+ * This contract closes both gaps without `vue-ssr-lite` learning anything about
15
+ * the plugin doing the work. An installed plugin — an API client, a store, an
16
+ * i18n cache — obtains the active resolution by injecting
17
+ * {@link SSR_REQUEST_RESOLUTION}. The key is created with `Symbol.for(...)` so a
18
+ * plugin integrates WITHOUT importing this package (it re-derives the identical
19
+ * symbol):
20
+ *
21
+ * ```ts
22
+ * const resolution = app.runWithContext(() =>
23
+ * inject<SsrRequestResolution | null>(
24
+ * Symbol.for('vue-ssr:request-resolution'),
25
+ * null,
26
+ * )
27
+ * )
28
+ * resolution?.track(client.query(...))
29
+ * ```
30
+ *
31
+ * The contract is API-client neutral: it never inspects the work it is handed.
32
+ */
33
+ export interface SsrRequestResolution {
34
+ /** True while server-rendering, false during browser hydration / SPA mount. */
35
+ readonly server: boolean;
36
+ /** Zero-based index of the render pass currently in progress. */
37
+ readonly pass: number;
38
+ /**
39
+ * Register in-flight async work the renderer must await before it serializes
40
+ * the response. Returns the same promise for convenient chaining. Ignored in
41
+ * the browser, where there is no server render to gate. Rejections are
42
+ * swallowed by the renderer's await — the component tree owns error surfacing.
43
+ */
44
+ track<T>(work: Promise<T>): Promise<T>;
45
+ /**
46
+ * Request one additional render pass even when no tracked promise is pending.
47
+ * Use when work mutated shared state synchronously in a way the current tree
48
+ * did not observe. Honoured up to the configured pass bound.
49
+ */
50
+ requestAdditionalPass(): void;
51
+ }
52
+ /**
53
+ * Cross-package-stable injection key for {@link SsrRequestResolution}. Uses the
54
+ * global symbol registry so integrations resolve the same identity whether or
55
+ * not they import `vue-ssr-lite`.
56
+ */
57
+ export declare const SSR_REQUEST_RESOLUTION: InjectionKey<SsrRequestResolution>;
58
+ export interface SsrResolutionController extends SsrRequestResolution {
59
+ /** Begin a new render pass: clears the additional-pass request flag. */
60
+ beginPass(pass: number): void;
61
+ /** Promises registered during the current request that are not yet settled. */
62
+ pendingWork(): Promise<unknown>[];
63
+ /** True when a plugin explicitly asked for another pass this render. */
64
+ additionalPassRequested(): boolean;
65
+ /**
66
+ * Await all currently-tracked work, bounded by `deadlineMs` and aborted by
67
+ * `signal`. Returns `true` when everything settled within the deadline.
68
+ */
69
+ drain(deadlineMs: number, signal?: AbortSignal): Promise<boolean>;
70
+ /** Clear all state. Called once per request after the final pass. */
71
+ dispose(): void;
72
+ }
73
+ /**
74
+ * Creates the per-request resolution controller. Reused across every render
75
+ * pass of a single request so tracked work and pass requests accumulate
76
+ * coherently while the Vue application itself is recreated per pass.
77
+ */
78
+ export declare const createSsrResolutionController: (server?: boolean) => SsrResolutionController;
79
+ //# sourceMappingURL=SsrRequestResolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SsrRequestResolution.d.ts","sourceRoot":"","sources":["../src/SsrRequestResolution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,KAAK,CAAA;AAEvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,WAAW,oBAAoB;IACnC,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB;;;;;OAKG;IACH,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IACtC;;;;OAIG;IACH,qBAAqB,IAAI,IAAI,CAAA;CAC9B;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAE9B,YAAY,CAAC,oBAAoB,CAAC,CAAA;AAEvC,MAAM,WAAW,uBAAwB,SAAQ,oBAAoB;IACnE,wEAAwE;IACxE,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,+EAA+E;IAC/E,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAA;IACjC,wEAAwE;IACxE,uBAAuB,IAAI,OAAO,CAAA;IAClC;;;OAGG;IACH,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACjE,qEAAqE;IACrE,OAAO,IAAI,IAAI,CAAA;CAChB;AAYD;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,GACxC,SAAQ,OAAuC,KAC9C,uBA4EF,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import { App, Component, Plugin } from 'vue';
2
- import { Router, RouteRecordRaw } from 'vue-router';
2
+ import { Router, RouteRecordRaw, RouterScrollBehavior } from 'vue-router';
3
3
  import { SsrHydrationContext, SsrHydrationController } from './SsrHydrationRuntime';
4
+ import { SsrRequestResolution, SsrResolutionController } from './SsrRequestResolution';
4
5
  export type SsrHeaderValue = string | string[] | undefined;
5
6
  export type SsrHeaders = Record<string, SsrHeaderValue>;
6
7
  export interface SsrHeadPayload {
@@ -46,6 +47,8 @@ export interface SsrRenderMetrics {
46
47
  totalDurationMs: number;
47
48
  htmlBytes: number;
48
49
  stateBytes: number;
50
+ /** Number of render passes the resolution contract required. Usually 1. */
51
+ renderPasses: number;
49
52
  }
50
53
  export interface SsrRenderRequest<TPublicConfig = unknown> {
51
54
  requestId: string;
@@ -83,6 +86,12 @@ export interface SsrRequestContext<TApplicationState = Record<string, unknown>,
83
86
  response: SsrResponseState;
84
87
  /** Generic hydration state contract for installed application plugins. */
85
88
  hydration: SsrHydrationContext;
89
+ /**
90
+ * Generic server-render resolution contract. Installed plugins register
91
+ * in-flight work so the renderer can await it and re-render when resolution
92
+ * changes the tree. Present in every mode; a no-op outside the server render.
93
+ */
94
+ resolution: SsrRequestResolution;
86
95
  extension: TExtension;
87
96
  }
88
97
  export interface SsrApplicationSetup<TApplicationState, TPublicConfig, TExtension> {
@@ -91,6 +100,8 @@ export interface SsrApplicationSetup<TApplicationState, TPublicConfig, TExtensio
91
100
  context: SsrRequestContext<TApplicationState, TPublicConfig, TExtension>;
92
101
  /** Generic hydration state contract for installed application plugins. */
93
102
  hydration: SsrHydrationContext;
103
+ /** Generic server-render resolution contract for installed plugins. */
104
+ resolution: SsrRequestResolution;
94
105
  server: boolean;
95
106
  }
96
107
  export interface SsrApplicationDefinition<TApplicationState = Record<string, unknown>, TPublicConfig = unknown, TExtension = unknown> {
@@ -98,6 +109,12 @@ export interface SsrApplicationDefinition<TApplicationState = Record<string, unk
98
109
  rootComponent: Component;
99
110
  mountSelector?: string;
100
111
  routes?: RouteRecordRaw[] | (() => RouteRecordRaw[]);
112
+ /**
113
+ * Optional router scroll behaviour. When omitted, a sensible default is used
114
+ * (restore saved position, scroll to hash, otherwise top). Provide one to keep
115
+ * an application's existing behaviour exactly when adopting the definition.
116
+ */
117
+ scrollBehavior?: RouterScrollBehavior;
101
118
  /** Generic Vue plugins installed for every isolated server/browser app. */
102
119
  plugins?: readonly Plugin[];
103
120
  createInitialState?: () => TApplicationState;
@@ -112,6 +129,8 @@ export interface SsrCreatedApplication<TApplicationState = Record<string, unknow
112
129
  context: SsrRequestContext<TApplicationState, TPublicConfig, TExtension>;
113
130
  /** Per-request hydration controller owning plugin state and disposal. */
114
131
  hydration: SsrHydrationController;
132
+ /** Per-request resolution controller, shared across render passes. */
133
+ resolution: SsrResolutionController;
115
134
  }
116
135
  export interface SsrRenderResult<TApplicationState = unknown, TPublicConfig = unknown> {
117
136
  html: string;
@@ -210,6 +229,26 @@ export interface SsrServerOptions<TPublicConfig = unknown> {
210
229
  publicConfig: TPublicConfig;
211
230
  healthPath?: string;
212
231
  readinessPath?: string;
232
+ /**
233
+ * Maximum server render passes per request. The first pass always runs; extra
234
+ * passes only occur when an installed plugin left work pending or asked for
235
+ * another pass through the resolution contract. A fully resolvable page
236
+ * completes in one pass. Defaults to 4. Clamped to at least 1.
237
+ */
238
+ maxResolutionPasses?: number;
239
+ /**
240
+ * Upper bound, in milliseconds, for awaiting registered resolution work
241
+ * BETWEEN passes. Independent of — and additionally capped by — the overall
242
+ * `requestTimeoutMs` and the request abort signal. Defaults to
243
+ * `requestTimeoutMs` when unset.
244
+ */
245
+ resolutionDeadlineMs?: number;
246
+ /**
247
+ * Enables development-only render diagnostics (loading-placeholder detection,
248
+ * empty-route detection, discarded-watcher hints). Defaults to
249
+ * `NODE_ENV !== 'production'` when unset. Always inert in production.
250
+ */
251
+ diagnostics?: boolean;
213
252
  logger?: SsrLogger;
214
253
  onMetrics?: (metrics: SsrRenderMetrics) => void;
215
254
  renderError?: (context: SsrErrorRenderContext<TPublicConfig>) => SsrHttpResponse | null | Promise<SsrHttpResponse | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"SsrRuntimeTypes.d.ts","sourceRoot":"","sources":["../src/SsrRuntimeTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SsrRuntimeTypes.d.ts","sourceRoot":"","sources":["../src/SsrRuntimeTypes.ts"],"names":[],"mappings":"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"}