@agilehub/vue-pdf-flipbook 1.3.3 → 1.3.5

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 CHANGED
@@ -308,7 +308,7 @@ onBeforeUnmount(stopPan)
308
308
 
309
309
  双页模式采用书本封面布局:第 1 页单独居中显示,向后翻动展开为第 2–3 页,之后依次为第 4–5 页、第 6–7 页。返回第 1 页(上一页、缩略图或 `goToPage(1)`)会合上封面。开合使用翻页引擎动画,纸张尺寸保持一致;封面不显示中缝阴影。偶数总页数的最后一页作为单独封底显示。单页模式与窄屏下仍逐页阅读。`visiblePages` 分组相应变为 `[1]`、`[2, 3]`、`[4, 5]`,`page` 在双页内页表示该组左页。
310
310
 
311
- 默认 Worker 以 data URL 内嵌在库中,与主线程 PDF.js 一起构建,不依赖业务项目的 `/assets` 路径或资源复制配置,支持 Vite 依赖预打包和子路径部署。代价是 JS 文件包含 Worker 内容。若业务 CSP 限制 data/blob 模块,可通过 `workerSrc` 指定同版本的外部 Worker 地址,并按业务 CSP 规则提供资源。当前依赖 `pdfjs-dist@6.2.108`,外部 Worker 也须使用 6.2.108;业务项目中已有的 5.x Worker 不能混用。
311
+ 默认 Worker 以 data URL 内嵌在库中,与主线程 PDF.js 一起构建,不依赖业务项目的 `/assets` 路径或资源复制配置,支持 Vite 依赖预打包和子路径部署。组件会检查浏览器对 PDF.js 所需 API 的支持情况,缺失时自动加载 PDF.js 的 `legacy` 构建及其配套 Worker;两套延迟模块都会进入发布包,但浏览器只加载选中的一套。若业务 CSP 限制 data/blob 模块,可通过 `workerSrc` 指定外部 Worker 地址,并按业务 CSP 规则提供资源。当前依赖 `pdfjs-dist@6.2.108`,外部 Worker 必须使用相同版本,并与当前选中的现代或 `legacy` 构建对应;业务项目中已有的 5.x Worker 不能混用。
312
312
 
313
313
  ### 自适应父容器
314
314
 
@@ -741,6 +741,7 @@ npm run test:package
741
741
  - 单页 Canvas 最多 200 万像素、单边最多 4096 像素。超大页面会自动降低渲染倍率;`PdfCanvasPage` 的 `renderScale` 必须是有限正数。
742
742
  - 当前翻页引擎依赖全量页节点,单份 PDF 最多支持 2000 页。超过上限时,在生成正文/缩略图节点前停止并发送 `error`,请拆分文档后阅读。这是容量保护,尚未实现正文虚拟化。
743
743
  - 单次分段请求(含响应体读取)、文档解析、页面绘制及跳页准备采用 30 秒超时。失败通过 `error` 报告;网络恢复后可调用 `reload()`,跳页准备超时也可重新跳转。
744
+ - 浏览器缺少 PDF.js 现代构建使用的 `Promise.withResolvers`、`Promise.try`、`URL.parse`、`Map.prototype.getOrInsertComputed` 等 API 时,自动使用 `legacy` 构建。PDF.js 官方目前将 `legacy` 浏览器支持范围列为 Chrome 125 及以上;更旧的内核仍建议升级浏览器。
744
745
  - 支持服务端导入和 SSR 初始占位渲染,PDF 内容在客户端挂载后加载。发布包新增 PDF.js 延迟模块,部署时应保留整个 `dist/`,不要只复制主 JS 文件。
745
746
  - 使用本地维护的 StPageFlip 2.0.7 生命周期修补版本,卸载/重载时取消动画帧、初始化及触摸延迟任务。第三方 MIT 声明随包发布在 `dist/LICENSE.page-flip`。
746
747
  - 这些预算限制单页和单文档资源,不是整个宿主应用的总内存保证;外部自定义插槽应自行控制同时挂载的阅读器和 Canvas 数量。
@@ -1,5 +1,6 @@
1
1
  import type { PDFDocumentProxy } from 'pdfjs-dist';
2
2
  import { createPdfRangeTransport } from '../pdfRangeTransport';
3
+ import { loadPdfRuntime } from '../loadPdfRuntime';
3
4
  import type { ResolvedFlipbookProps } from './types';
4
5
  interface DocumentEvents {
5
6
  onReset: () => void;
@@ -22,7 +23,7 @@ interface DocumentEvents {
22
23
  * @returns 只读文档状态及 load 方法。
23
24
  */
24
25
  export declare function usePdfDocument(props: ResolvedFlipbookProps, events: DocumentEvents, dependencies?: {
25
- runtime: () => Promise<typeof import("../pdfRuntime")>;
26
+ runtime: typeof loadPdfRuntime;
26
27
  range: typeof createPdfRangeTransport;
27
28
  }): {
28
29
  pdf: Readonly<import("vue").ShallowRef<import("pdfjs-dist/types/src/display/api").PDFDocumentProxy | undefined, import("pdfjs-dist/types/src/display/api").PDFDocumentProxy | undefined>>;
@@ -0,0 +1,6 @@
1
+ /** PDF.js 现代构建直接调用的浏览器 API;缺失时使用包含 polyfill 的兼容构建。 */
2
+ export declare function needsLegacyPdfRuntime(): boolean;
3
+ /** 兼容构建会补齐主线程 API;固定首次检测结果,避免重载时切换到未补齐的现代 Worker。 */
4
+ export declare function shouldUseLegacyPdfRuntime(): boolean;
5
+ /** 文档解析器和 Worker 从同一个构建导入,避免浏览器能力差异导致版本混用。 */
6
+ export declare function loadPdfRuntime(): Promise<typeof import("./pdfLegacyRuntime")>;