@finesoft/front 0.1.19 → 0.1.21

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/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { FrameworkConfig, Framework, BasePage, PrefetchedIntent } from './browser.cjs';
2
- export { ACTION_KINDS, Action, ActionDispatcher, ActionHandler, ActionHandlerDependencies, AsyncMapper, BaseController, BaseItem, BaseLogger, BaseShelf, BrowserAppConfig, CompositeLogger, CompositeLoggerFactory, CompoundAction, ConsoleLogger, ConsoleLoggerFactory, Container, DEP_KEYS, ExternalUrlAction, ExternalUrlDependencies, FeatureFlags, FlowAction, FlowActionCallbacks, FlowActionDependencies, History, HttpClient, HttpClientConfig, HttpError, Intent, IntentController, IntentDispatcher, Locale, Logger, LoggerFactory, Logger as LoggerInterface, LruMap, Mapper, MetricsRecorder, Net, None, Optional, PrefetchedIntents, RouteDefinition, RouteMatch, Router, Storage, buildUrl, createPrefetchedIntentsFromDom, defineRoutes, deserializeServerData, generateUuid, getBaseUrl, isCompoundAction, isExternalUrlAction, isFlowAction, isNone, isSome, makeDependencies, makeExternalUrlAction, makeFlowAction, mapEach, pipe, pipeAsync, registerActionHandlers, registerExternalUrlHandler, registerFlowActionHandler, removeHost, removeQueryParams, removeScheme, resetFilterCache, shouldLog, stableStringify, startBrowserApp, tryScroll } from './browser.cjs';
2
+ export { ACTION_KINDS, Action, ActionDispatcher, ActionHandler, ActionHandlerDependencies, AsyncMapper, BaseController, BaseItem, BaseLogger, BaseShelf, BrowserAppConfig, CompositeLogger, CompositeLoggerFactory, CompoundAction, ConsoleLogger, ConsoleLoggerFactory, Container, DEP_KEYS, ExternalUrlAction, ExternalUrlDependencies, FeatureFlags, FlowAction, FlowActionCallbacks, FlowActionDependencies, History, HttpClient, HttpClientConfig, HttpError, Intent, IntentController, IntentDispatcher, Locale, Logger, LoggerFactory, Logger as LoggerInterface, LruMap, Mapper, MetricsRecorder, Net, None, Optional, PrefetchedIntents, RenderMode, RouteDefinition, RouteMatch, Router, Storage, buildUrl, createPrefetchedIntentsFromDom, defineRoutes, deserializeServerData, generateUuid, getBaseUrl, isCompoundAction, isExternalUrlAction, isFlowAction, isNone, isSome, makeDependencies, makeExternalUrlAction, makeFlowAction, mapEach, pipe, pipeAsync, registerActionHandlers, registerExternalUrlHandler, registerFlowActionHandler, removeHost, removeQueryParams, removeScheme, resetFilterCache, shouldLog, stableStringify, startBrowserApp, tryScroll } from './browser.cjs';
3
3
  import * as node_fs from 'node:fs';
4
4
  import { Hono } from 'hono';
5
5
  import { ViteDevServer } from 'vite';
@@ -35,6 +35,8 @@ interface SSRRenderResult {
35
35
  head: string;
36
36
  css: string;
37
37
  serverData: PrefetchedIntent[];
38
+ /** 该路由的渲染模式(由 Router 返回) */
39
+ renderMode?: string;
38
40
  }
39
41
  declare function ssrRender(options: SSRRenderOptions): Promise<SSRRenderResult>;
40
42
 
@@ -88,6 +90,11 @@ interface InjectSSROptions {
88
90
  serializedData: string;
89
91
  }
90
92
  declare function injectSSRContent(options: InjectSSROptions): string;
93
+ /**
94
+ * CSR 空壳注入 — 只替换 lang,清空 body/head/data 占位符
95
+ * 用于 renderMode === "csr" 的路由
96
+ */
97
+ declare function injectCSRShell(template: string, locale: string): string;
91
98
 
92
99
  /**
93
100
  * serializeServerData — 将 PrefetchedIntents 数据序列化为安全的 JSON
@@ -121,6 +128,11 @@ interface AdapterContext {
121
128
  resolvedResolve: unknown;
122
129
  /** Vite 的 css 配置 */
123
130
  resolvedCss: unknown;
131
+ /**
132
+ * 按路由覆盖的渲染模式。
133
+ * key: 精确路径或 glob 模式,value: "ssr" | "csr" | "prerender"
134
+ */
135
+ renderModes?: Record<string, string>;
124
136
  vite: any;
125
137
  fs: typeof node_fs;
126
138
  path: {
@@ -139,6 +151,25 @@ interface GenerateSSREntryOptions {
139
151
  platformImport: string;
140
152
  /** 平台特定的导出语句(如 `export default handle(app);`) */
141
153
  platformExport: string;
154
+ /**
155
+ * 平台特定的 ISR 缓存实现代码(可选)。
156
+ * 需提供 `async function platformCacheGet(url)` 返回 string|null,
157
+ * 和 `async function platformCacheSet(url, html)` 的函数定义。
158
+ * 不提供时使用内置的内存 Map 缓存。
159
+ */
160
+ platformCache?: string;
161
+ /**
162
+ * 平台特定的响应后处理代码(可选)。
163
+ * 在 prerender 路由返回前执行,可用于设置 CDN 缓存头等。
164
+ * 代码中可使用变量 `c`(Hono Context)。
165
+ */
166
+ platformPrerenderResponseHook?: string;
167
+ /**
168
+ * 平台特定的中间件代码(可选)。
169
+ * 插入在 catch-all GET 路由之前,可用于添加静态文件服务等。
170
+ * 代码中可使用变量 `app`(Hono 实例)。
171
+ */
172
+ platformMiddleware?: string;
142
173
  }
143
174
  interface BuildBundleOptions {
144
175
  /** 临时入口文件路径 */
@@ -264,6 +295,7 @@ interface SSRModule {
264
295
  head: string;
265
296
  css: string;
266
297
  serverData: unknown;
298
+ renderMode?: string;
267
299
  }>;
268
300
  serializeServerData: (data: unknown) => string;
269
301
  }
@@ -413,6 +445,20 @@ interface FinesoftFrontViteOptions {
413
445
  * - 不设置则不生成部署产物
414
446
  */
415
447
  adapter?: string | Adapter;
448
+ /**
449
+ * 按路由覆盖渲染模式(优先级高于 RouteDefinition.renderMode)。
450
+ * key: 精确路径或 glob 模式,如 "/search" 或 "/blog/*"
451
+ * value: "ssr" | "csr" | "prerender"
452
+ *
453
+ * @example
454
+ * ```ts
455
+ * renderModes: {
456
+ * "/search": "csr",
457
+ * "/blog/*": "prerender",
458
+ * }
459
+ * ```
460
+ */
461
+ renderModes?: Record<string, "ssr" | "csr" | "prerender">;
416
462
  }
417
463
  declare function finesoftFrontViteConfig(options?: FinesoftFrontViteOptions): {
418
464
  name: string;
@@ -425,4 +471,4 @@ declare function finesoftFrontViteConfig(options?: FinesoftFrontViteOptions): {
425
471
  closeBundle(): Promise<void>;
426
472
  };
427
473
 
428
- export { type Adapter, type AdapterContext, BasePage, type FinesoftFrontViteOptions, Framework, FrameworkConfig, type InjectSSROptions, PrefetchedIntent, type RuntimeInfo, type SSRAppOptions, type SSRModule, type SSRRenderConfig, type SSRRenderOptions, type SSRRenderResult, SSR_PLACEHOLDERS, type ServerConfig, type ServerInstance, type StartServerOptions, autoAdapter, cloudflareAdapter, createSSRApp, createSSRRender, createServer, detectRuntime, finesoftFrontViteConfig, injectSSRContent, netlifyAdapter, nodeAdapter, parseAcceptLanguage, resolveAdapter, resolveRoot, serializeServerData, ssrRender, startServer, staticAdapter, vercelAdapter };
474
+ export { type Adapter, type AdapterContext, BasePage, type FinesoftFrontViteOptions, Framework, FrameworkConfig, type InjectSSROptions, PrefetchedIntent, type RuntimeInfo, type SSRAppOptions, type SSRModule, type SSRRenderConfig, type SSRRenderOptions, type SSRRenderResult, SSR_PLACEHOLDERS, type ServerConfig, type ServerInstance, type StartServerOptions, autoAdapter, cloudflareAdapter, createSSRApp, createSSRRender, createServer, detectRuntime, finesoftFrontViteConfig, injectCSRShell, injectSSRContent, netlifyAdapter, nodeAdapter, parseAcceptLanguage, resolveAdapter, resolveRoot, serializeServerData, ssrRender, startServer, staticAdapter, vercelAdapter };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { FrameworkConfig, Framework, BasePage, PrefetchedIntent } from './browser.js';
2
- export { ACTION_KINDS, Action, ActionDispatcher, ActionHandler, ActionHandlerDependencies, AsyncMapper, BaseController, BaseItem, BaseLogger, BaseShelf, BrowserAppConfig, CompositeLogger, CompositeLoggerFactory, CompoundAction, ConsoleLogger, ConsoleLoggerFactory, Container, DEP_KEYS, ExternalUrlAction, ExternalUrlDependencies, FeatureFlags, FlowAction, FlowActionCallbacks, FlowActionDependencies, History, HttpClient, HttpClientConfig, HttpError, Intent, IntentController, IntentDispatcher, Locale, Logger, LoggerFactory, Logger as LoggerInterface, LruMap, Mapper, MetricsRecorder, Net, None, Optional, PrefetchedIntents, RouteDefinition, RouteMatch, Router, Storage, buildUrl, createPrefetchedIntentsFromDom, defineRoutes, deserializeServerData, generateUuid, getBaseUrl, isCompoundAction, isExternalUrlAction, isFlowAction, isNone, isSome, makeDependencies, makeExternalUrlAction, makeFlowAction, mapEach, pipe, pipeAsync, registerActionHandlers, registerExternalUrlHandler, registerFlowActionHandler, removeHost, removeQueryParams, removeScheme, resetFilterCache, shouldLog, stableStringify, startBrowserApp, tryScroll } from './browser.js';
2
+ export { ACTION_KINDS, Action, ActionDispatcher, ActionHandler, ActionHandlerDependencies, AsyncMapper, BaseController, BaseItem, BaseLogger, BaseShelf, BrowserAppConfig, CompositeLogger, CompositeLoggerFactory, CompoundAction, ConsoleLogger, ConsoleLoggerFactory, Container, DEP_KEYS, ExternalUrlAction, ExternalUrlDependencies, FeatureFlags, FlowAction, FlowActionCallbacks, FlowActionDependencies, History, HttpClient, HttpClientConfig, HttpError, Intent, IntentController, IntentDispatcher, Locale, Logger, LoggerFactory, Logger as LoggerInterface, LruMap, Mapper, MetricsRecorder, Net, None, Optional, PrefetchedIntents, RenderMode, RouteDefinition, RouteMatch, Router, Storage, buildUrl, createPrefetchedIntentsFromDom, defineRoutes, deserializeServerData, generateUuid, getBaseUrl, isCompoundAction, isExternalUrlAction, isFlowAction, isNone, isSome, makeDependencies, makeExternalUrlAction, makeFlowAction, mapEach, pipe, pipeAsync, registerActionHandlers, registerExternalUrlHandler, registerFlowActionHandler, removeHost, removeQueryParams, removeScheme, resetFilterCache, shouldLog, stableStringify, startBrowserApp, tryScroll } from './browser.js';
3
3
  import * as node_fs from 'node:fs';
4
4
  import { Hono } from 'hono';
5
5
  import { ViteDevServer } from 'vite';
@@ -35,6 +35,8 @@ interface SSRRenderResult {
35
35
  head: string;
36
36
  css: string;
37
37
  serverData: PrefetchedIntent[];
38
+ /** 该路由的渲染模式(由 Router 返回) */
39
+ renderMode?: string;
38
40
  }
39
41
  declare function ssrRender(options: SSRRenderOptions): Promise<SSRRenderResult>;
40
42
 
@@ -88,6 +90,11 @@ interface InjectSSROptions {
88
90
  serializedData: string;
89
91
  }
90
92
  declare function injectSSRContent(options: InjectSSROptions): string;
93
+ /**
94
+ * CSR 空壳注入 — 只替换 lang,清空 body/head/data 占位符
95
+ * 用于 renderMode === "csr" 的路由
96
+ */
97
+ declare function injectCSRShell(template: string, locale: string): string;
91
98
 
92
99
  /**
93
100
  * serializeServerData — 将 PrefetchedIntents 数据序列化为安全的 JSON
@@ -121,6 +128,11 @@ interface AdapterContext {
121
128
  resolvedResolve: unknown;
122
129
  /** Vite 的 css 配置 */
123
130
  resolvedCss: unknown;
131
+ /**
132
+ * 按路由覆盖的渲染模式。
133
+ * key: 精确路径或 glob 模式,value: "ssr" | "csr" | "prerender"
134
+ */
135
+ renderModes?: Record<string, string>;
124
136
  vite: any;
125
137
  fs: typeof node_fs;
126
138
  path: {
@@ -139,6 +151,25 @@ interface GenerateSSREntryOptions {
139
151
  platformImport: string;
140
152
  /** 平台特定的导出语句(如 `export default handle(app);`) */
141
153
  platformExport: string;
154
+ /**
155
+ * 平台特定的 ISR 缓存实现代码(可选)。
156
+ * 需提供 `async function platformCacheGet(url)` 返回 string|null,
157
+ * 和 `async function platformCacheSet(url, html)` 的函数定义。
158
+ * 不提供时使用内置的内存 Map 缓存。
159
+ */
160
+ platformCache?: string;
161
+ /**
162
+ * 平台特定的响应后处理代码(可选)。
163
+ * 在 prerender 路由返回前执行,可用于设置 CDN 缓存头等。
164
+ * 代码中可使用变量 `c`(Hono Context)。
165
+ */
166
+ platformPrerenderResponseHook?: string;
167
+ /**
168
+ * 平台特定的中间件代码(可选)。
169
+ * 插入在 catch-all GET 路由之前,可用于添加静态文件服务等。
170
+ * 代码中可使用变量 `app`(Hono 实例)。
171
+ */
172
+ platformMiddleware?: string;
142
173
  }
143
174
  interface BuildBundleOptions {
144
175
  /** 临时入口文件路径 */
@@ -264,6 +295,7 @@ interface SSRModule {
264
295
  head: string;
265
296
  css: string;
266
297
  serverData: unknown;
298
+ renderMode?: string;
267
299
  }>;
268
300
  serializeServerData: (data: unknown) => string;
269
301
  }
@@ -413,6 +445,20 @@ interface FinesoftFrontViteOptions {
413
445
  * - 不设置则不生成部署产物
414
446
  */
415
447
  adapter?: string | Adapter;
448
+ /**
449
+ * 按路由覆盖渲染模式(优先级高于 RouteDefinition.renderMode)。
450
+ * key: 精确路径或 glob 模式,如 "/search" 或 "/blog/*"
451
+ * value: "ssr" | "csr" | "prerender"
452
+ *
453
+ * @example
454
+ * ```ts
455
+ * renderModes: {
456
+ * "/search": "csr",
457
+ * "/blog/*": "prerender",
458
+ * }
459
+ * ```
460
+ */
461
+ renderModes?: Record<string, "ssr" | "csr" | "prerender">;
416
462
  }
417
463
  declare function finesoftFrontViteConfig(options?: FinesoftFrontViteOptions): {
418
464
  name: string;
@@ -425,4 +471,4 @@ declare function finesoftFrontViteConfig(options?: FinesoftFrontViteOptions): {
425
471
  closeBundle(): Promise<void>;
426
472
  };
427
473
 
428
- export { type Adapter, type AdapterContext, BasePage, type FinesoftFrontViteOptions, Framework, FrameworkConfig, type InjectSSROptions, PrefetchedIntent, type RuntimeInfo, type SSRAppOptions, type SSRModule, type SSRRenderConfig, type SSRRenderOptions, type SSRRenderResult, SSR_PLACEHOLDERS, type ServerConfig, type ServerInstance, type StartServerOptions, autoAdapter, cloudflareAdapter, createSSRApp, createSSRRender, createServer, detectRuntime, finesoftFrontViteConfig, injectSSRContent, netlifyAdapter, nodeAdapter, parseAcceptLanguage, resolveAdapter, resolveRoot, serializeServerData, ssrRender, startServer, staticAdapter, vercelAdapter };
474
+ export { type Adapter, type AdapterContext, BasePage, type FinesoftFrontViteOptions, Framework, FrameworkConfig, type InjectSSROptions, PrefetchedIntent, type RuntimeInfo, type SSRAppOptions, type SSRModule, type SSRRenderConfig, type SSRRenderOptions, type SSRRenderResult, SSR_PLACEHOLDERS, type ServerConfig, type ServerInstance, type StartServerOptions, autoAdapter, cloudflareAdapter, createSSRApp, createSSRRender, createServer, detectRuntime, finesoftFrontViteConfig, injectCSRShell, injectSSRContent, netlifyAdapter, nodeAdapter, parseAcceptLanguage, resolveAdapter, resolveRoot, serializeServerData, ssrRender, startServer, staticAdapter, vercelAdapter };