@absolutejs/absolute 0.19.0-beta.986 → 0.19.0-beta.988

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.
@@ -8,7 +8,7 @@ export declare const vueHmrMetadata: Map<string, {
8
8
  export declare const clearVueHmrCaches: () => void;
9
9
  export declare const detectVueChangeType: (filePath: string, descriptor: SFCDescriptor) => "script" | "template-only" | "full" | "style-only";
10
10
  export declare const generateVueHmrId: (sourceFilePath: string, vueRootDir: string) => string;
11
- export declare const compileVue: (entryPoints: string[], vueRootDir: string, isDev?: boolean, stylePreprocessors?: StylePreprocessorConfig) => Promise<{
11
+ export declare const compileVue: (entryPoints: string[], vueRootDir: string, isDev?: boolean, stylePreprocessors?: StylePreprocessorConfig, ssrOnlyEntries?: ReadonlySet<string>) => Promise<{
12
12
  hmrMetadata: Map<string, {
13
13
  hmrId: string;
14
14
  changeType: VueChangeType;
@@ -0,0 +1,6 @@
1
+ /** Walk every TypeScript source file under `projectRoot` and collect
2
+ * the set of Vue page manifest keys flagged `client: 'none'` at
3
+ * registration time. The returned names correspond to the PascalCased
4
+ * basenames of the .vue source files (e.g. `LandingPage` matches
5
+ * `LandingPage.vue`). */
6
+ export declare const scanVueSsrOnlyPages: (projectRoot: string) => Set<string>;
@@ -4,17 +4,27 @@ import { type StreamingSlotEnhancerOptions } from '../core/responseEnhancers';
4
4
  type VuePageRenderOptions = StreamingSlotEnhancerOptions & {
5
5
  collectStreamingSlots?: boolean;
6
6
  };
7
- export type VuePageRequestInput<Component extends VueComponent> = VuePageRenderOptions & {
8
- /** Hydration mode for the page bundle.
9
- * - `'auto'` (default): emit `<script>window.__INITIAL_PROPS__=…</script>`
10
- * plus the page's `<script type="module">` index, mounting Vue on the
11
- * client.
12
- * - `'none'`: SSR-only. Skip both scripts entirely so the page ships
13
- * pure HTML useful for marketing / docs pages that use Vue
14
- * templating + Tailwind without paying the runtime cost. */
15
- client?: 'auto' | 'none';
16
- headTag?: `<head>${string}</head>`;
7
+ /** Hydration mode for the page bundle.
8
+ * - `'auto'` (default): emit `<script>window.__INITIAL_PROPS__=…</script>`
9
+ * plus the page's `<script type="module">` index, mounting Vue on the
10
+ * client.
11
+ * - `'none'`: SSR-only. Skip both scripts entirely so the page ships
12
+ * pure HTML useful for marketing / docs pages that use Vue
13
+ * templating + Tailwind without paying the runtime cost. The build
14
+ * pipeline also skips emitting the per-page client bundle (and its
15
+ * manifest entry) when this option is set at registration time —
16
+ * `scanVueSsrOnlyPages` reads the literal `client: 'none'` token
17
+ * from the handler source and excludes the matching .vue entry
18
+ * from the client bundler pass. */
19
+ type VuePageClientMode = {
20
+ client: 'none';
21
+ indexPath?: string;
22
+ } | {
23
+ client?: 'auto';
17
24
  indexPath: string;
25
+ };
26
+ export type VuePageRequestInput<Component extends VueComponent> = VuePageRenderOptions & VuePageClientMode & {
27
+ headTag?: `<head>${string}</head>`;
18
28
  pagePath: string;
19
29
  Page?: Component;
20
30
  /** The incoming Elysia request. Forwarded into the page