@docmentis/udoc-viewer 0.5.3 → 0.5.4

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 (211) hide show
  1. package/dist/package.json +56 -0
  2. package/dist/src/UDocClient.d.ts +383 -0
  3. package/dist/src/UDocClient.d.ts.map +1 -0
  4. package/dist/src/UDocClient.js +428 -0
  5. package/dist/src/UDocClient.js.map +1 -0
  6. package/dist/src/UDocViewer.d.ts +275 -0
  7. package/dist/src/UDocViewer.d.ts.map +1 -0
  8. package/dist/src/UDocViewer.js +796 -0
  9. package/dist/src/UDocViewer.js.map +1 -0
  10. package/dist/src/fonts.d.ts +29 -0
  11. package/dist/src/fonts.d.ts.map +1 -0
  12. package/dist/src/fonts.js +30 -0
  13. package/dist/src/fonts.js.map +1 -0
  14. package/dist/src/index.d.ts +9 -0
  15. package/dist/src/index.d.ts.map +1 -0
  16. package/dist/src/index.js +8 -0
  17. package/dist/src/index.js.map +1 -0
  18. package/dist/src/performance/PerformanceCounter.d.ts +132 -0
  19. package/dist/src/performance/PerformanceCounter.d.ts.map +1 -0
  20. package/dist/src/performance/PerformanceCounter.js +129 -0
  21. package/dist/src/performance/PerformanceCounter.js.map +1 -0
  22. package/dist/src/performance/index.d.ts +2 -0
  23. package/dist/src/performance/index.d.ts.map +1 -0
  24. package/dist/src/performance/index.js +2 -0
  25. package/dist/src/performance/index.js.map +1 -0
  26. package/dist/src/ui/framework/component.d.ts +68 -0
  27. package/dist/src/ui/framework/component.d.ts.map +1 -0
  28. package/dist/src/ui/framework/component.js +87 -0
  29. package/dist/src/ui/framework/component.js.map +1 -0
  30. package/dist/src/ui/framework/dom.d.ts +19 -0
  31. package/dist/src/ui/framework/dom.d.ts.map +1 -0
  32. package/dist/src/ui/framework/dom.js +29 -0
  33. package/dist/src/ui/framework/dom.js.map +1 -0
  34. package/dist/src/ui/framework/events.d.ts +18 -0
  35. package/dist/src/ui/framework/events.d.ts.map +1 -0
  36. package/dist/src/ui/framework/events.js +23 -0
  37. package/dist/src/ui/framework/events.js.map +1 -0
  38. package/dist/src/ui/framework/index.d.ts +15 -0
  39. package/dist/src/ui/framework/index.d.ts.map +1 -0
  40. package/dist/src/ui/framework/index.js +15 -0
  41. package/dist/src/ui/framework/index.js.map +1 -0
  42. package/dist/src/ui/framework/selectors.d.ts +51 -0
  43. package/dist/src/ui/framework/selectors.d.ts.map +1 -0
  44. package/dist/src/ui/framework/selectors.js +30 -0
  45. package/dist/src/ui/framework/selectors.js.map +1 -0
  46. package/dist/src/ui/framework/store.d.ts +37 -0
  47. package/dist/src/ui/framework/store.d.ts.map +1 -0
  48. package/dist/src/ui/framework/store.js +54 -0
  49. package/dist/src/ui/framework/store.js.map +1 -0
  50. package/dist/src/ui/viewer/actions.d.ts +132 -0
  51. package/dist/src/ui/viewer/actions.d.ts.map +1 -0
  52. package/dist/src/ui/viewer/actions.js +2 -0
  53. package/dist/src/ui/viewer/actions.js.map +1 -0
  54. package/dist/src/ui/viewer/annotation/LinkRenderer.d.ts +9 -0
  55. package/dist/src/ui/viewer/annotation/LinkRenderer.d.ts.map +1 -0
  56. package/dist/src/ui/viewer/annotation/LinkRenderer.js +17 -0
  57. package/dist/src/ui/viewer/annotation/LinkRenderer.js.map +1 -0
  58. package/dist/src/ui/viewer/annotation/MarkupRenderer.d.ts +21 -0
  59. package/dist/src/ui/viewer/annotation/MarkupRenderer.d.ts.map +1 -0
  60. package/dist/src/ui/viewer/annotation/MarkupRenderer.js +138 -0
  61. package/dist/src/ui/viewer/annotation/MarkupRenderer.js.map +1 -0
  62. package/dist/src/ui/viewer/annotation/ShapeRenderer.d.ts +33 -0
  63. package/dist/src/ui/viewer/annotation/ShapeRenderer.d.ts.map +1 -0
  64. package/dist/src/ui/viewer/annotation/ShapeRenderer.js +378 -0
  65. package/dist/src/ui/viewer/annotation/ShapeRenderer.js.map +1 -0
  66. package/dist/src/ui/viewer/annotation/TextRenderer.d.ts +23 -0
  67. package/dist/src/ui/viewer/annotation/TextRenderer.d.ts.map +1 -0
  68. package/dist/src/ui/viewer/annotation/TextRenderer.js +196 -0
  69. package/dist/src/ui/viewer/annotation/TextRenderer.js.map +1 -0
  70. package/dist/src/ui/viewer/annotation/index.d.ts +8 -0
  71. package/dist/src/ui/viewer/annotation/index.d.ts.map +1 -0
  72. package/dist/src/ui/viewer/annotation/index.js +8 -0
  73. package/dist/src/ui/viewer/annotation/index.js.map +1 -0
  74. package/dist/src/ui/viewer/annotation/render.d.ts +24 -0
  75. package/dist/src/ui/viewer/annotation/render.d.ts.map +1 -0
  76. package/dist/src/ui/viewer/annotation/render.js +184 -0
  77. package/dist/src/ui/viewer/annotation/render.js.map +1 -0
  78. package/dist/src/ui/viewer/annotation/types.d.ts +239 -0
  79. package/dist/src/ui/viewer/annotation/types.d.ts.map +1 -0
  80. package/dist/src/ui/viewer/annotation/types.js +7 -0
  81. package/dist/src/ui/viewer/annotation/types.js.map +1 -0
  82. package/dist/src/ui/viewer/annotation/utils.d.ts +37 -0
  83. package/dist/src/ui/viewer/annotation/utils.d.ts.map +1 -0
  84. package/dist/src/ui/viewer/annotation/utils.js +82 -0
  85. package/dist/src/ui/viewer/annotation/utils.js.map +1 -0
  86. package/dist/src/ui/viewer/components/AnnotationPanel.d.ts +19 -0
  87. package/dist/src/ui/viewer/components/AnnotationPanel.d.ts.map +1 -0
  88. package/dist/src/ui/viewer/components/AnnotationPanel.js +284 -0
  89. package/dist/src/ui/viewer/components/AnnotationPanel.js.map +1 -0
  90. package/dist/src/ui/viewer/components/FloatingToolbar.d.ts +9 -0
  91. package/dist/src/ui/viewer/components/FloatingToolbar.d.ts.map +1 -0
  92. package/dist/src/ui/viewer/components/FloatingToolbar.js +305 -0
  93. package/dist/src/ui/viewer/components/FloatingToolbar.js.map +1 -0
  94. package/dist/src/ui/viewer/components/LeftPanel.d.ts +10 -0
  95. package/dist/src/ui/viewer/components/LeftPanel.d.ts.map +1 -0
  96. package/dist/src/ui/viewer/components/LeftPanel.js +165 -0
  97. package/dist/src/ui/viewer/components/LeftPanel.js.map +1 -0
  98. package/dist/src/ui/viewer/components/LoadingOverlay.d.ts +12 -0
  99. package/dist/src/ui/viewer/components/LoadingOverlay.d.ts.map +1 -0
  100. package/dist/src/ui/viewer/components/LoadingOverlay.js +88 -0
  101. package/dist/src/ui/viewer/components/LoadingOverlay.js.map +1 -0
  102. package/dist/src/ui/viewer/components/OutlinePanel.d.ts +10 -0
  103. package/dist/src/ui/viewer/components/OutlinePanel.d.ts.map +1 -0
  104. package/dist/src/ui/viewer/components/OutlinePanel.js +169 -0
  105. package/dist/src/ui/viewer/components/OutlinePanel.js.map +1 -0
  106. package/dist/src/ui/viewer/components/PasswordDialog.d.ts +15 -0
  107. package/dist/src/ui/viewer/components/PasswordDialog.d.ts.map +1 -0
  108. package/dist/src/ui/viewer/components/PasswordDialog.js +143 -0
  109. package/dist/src/ui/viewer/components/PasswordDialog.js.map +1 -0
  110. package/dist/src/ui/viewer/components/RightPanel.d.ts +9 -0
  111. package/dist/src/ui/viewer/components/RightPanel.d.ts.map +1 -0
  112. package/dist/src/ui/viewer/components/RightPanel.js +102 -0
  113. package/dist/src/ui/viewer/components/RightPanel.js.map +1 -0
  114. package/dist/src/ui/viewer/components/Spread.d.ts +43 -0
  115. package/dist/src/ui/viewer/components/Spread.d.ts.map +1 -0
  116. package/dist/src/ui/viewer/components/Spread.js +345 -0
  117. package/dist/src/ui/viewer/components/Spread.js.map +1 -0
  118. package/dist/src/ui/viewer/components/ThumbnailPanel.d.ts +11 -0
  119. package/dist/src/ui/viewer/components/ThumbnailPanel.d.ts.map +1 -0
  120. package/dist/src/ui/viewer/components/ThumbnailPanel.js +240 -0
  121. package/dist/src/ui/viewer/components/ThumbnailPanel.js.map +1 -0
  122. package/dist/src/ui/viewer/components/Toolbar.d.ts +9 -0
  123. package/dist/src/ui/viewer/components/Toolbar.d.ts.map +1 -0
  124. package/dist/src/ui/viewer/components/Toolbar.js +93 -0
  125. package/dist/src/ui/viewer/components/Toolbar.js.map +1 -0
  126. package/dist/src/ui/viewer/components/ViewModeMenu.d.ts +9 -0
  127. package/dist/src/ui/viewer/components/ViewModeMenu.d.ts.map +1 -0
  128. package/dist/src/ui/viewer/components/ViewModeMenu.js +169 -0
  129. package/dist/src/ui/viewer/components/ViewModeMenu.js.map +1 -0
  130. package/dist/src/ui/viewer/components/Viewport.d.ts +10 -0
  131. package/dist/src/ui/viewer/components/Viewport.d.ts.map +1 -0
  132. package/dist/src/ui/viewer/components/Viewport.js +1076 -0
  133. package/dist/src/ui/viewer/components/Viewport.js.map +1 -0
  134. package/dist/src/ui/viewer/effects.d.ts +8 -0
  135. package/dist/src/ui/viewer/effects.d.ts.map +1 -0
  136. package/dist/src/ui/viewer/effects.js +207 -0
  137. package/dist/src/ui/viewer/effects.js.map +1 -0
  138. package/dist/src/ui/viewer/icons.d.ts +32 -0
  139. package/dist/src/ui/viewer/icons.d.ts.map +1 -0
  140. package/dist/src/ui/viewer/icons.js +44 -0
  141. package/dist/src/ui/viewer/icons.js.map +1 -0
  142. package/dist/src/ui/viewer/index.d.ts +6 -0
  143. package/dist/src/ui/viewer/index.d.ts.map +1 -0
  144. package/dist/src/ui/viewer/index.js +6 -0
  145. package/dist/src/ui/viewer/index.js.map +1 -0
  146. package/dist/src/ui/viewer/layout/index.d.ts +3 -0
  147. package/dist/src/ui/viewer/layout/index.d.ts.map +1 -0
  148. package/dist/src/ui/viewer/layout/index.js +3 -0
  149. package/dist/src/ui/viewer/layout/index.js.map +1 -0
  150. package/dist/src/ui/viewer/layout/pixelAlign.d.ts +7 -0
  151. package/dist/src/ui/viewer/layout/pixelAlign.d.ts.map +1 -0
  152. package/dist/src/ui/viewer/layout/pixelAlign.js +22 -0
  153. package/dist/src/ui/viewer/layout/pixelAlign.js.map +1 -0
  154. package/dist/src/ui/viewer/layout/spreadLayout.d.ts +93 -0
  155. package/dist/src/ui/viewer/layout/spreadLayout.d.ts.map +1 -0
  156. package/dist/src/ui/viewer/layout/spreadLayout.js +315 -0
  157. package/dist/src/ui/viewer/layout/spreadLayout.js.map +1 -0
  158. package/dist/src/ui/viewer/navigation.d.ts +80 -0
  159. package/dist/src/ui/viewer/navigation.d.ts.map +1 -0
  160. package/dist/src/ui/viewer/navigation.js +59 -0
  161. package/dist/src/ui/viewer/navigation.js.map +1 -0
  162. package/dist/src/ui/viewer/reducer.d.ts +4 -0
  163. package/dist/src/ui/viewer/reducer.d.ts.map +1 -0
  164. package/dist/src/ui/viewer/reducer.js +317 -0
  165. package/dist/src/ui/viewer/reducer.js.map +1 -0
  166. package/dist/src/ui/viewer/shell.d.ts +34 -0
  167. package/dist/src/ui/viewer/shell.d.ts.map +1 -0
  168. package/dist/src/ui/viewer/shell.js +93 -0
  169. package/dist/src/ui/viewer/shell.js.map +1 -0
  170. package/dist/src/ui/viewer/state.d.ts +105 -0
  171. package/dist/src/ui/viewer/state.d.ts.map +1 -0
  172. package/dist/src/ui/viewer/state.js +65 -0
  173. package/dist/src/ui/viewer/state.js.map +1 -0
  174. package/dist/src/ui/viewer/styles-inline.d.ts +2 -0
  175. package/dist/src/ui/viewer/styles-inline.d.ts.map +1 -0
  176. package/dist/src/ui/viewer/styles-inline.js +1584 -0
  177. package/dist/src/ui/viewer/styles-inline.js.map +1 -0
  178. package/dist/src/ui/viewer/text/index.d.ts +7 -0
  179. package/dist/src/ui/viewer/text/index.d.ts.map +1 -0
  180. package/dist/src/ui/viewer/text/index.js +3 -0
  181. package/dist/src/ui/viewer/text/index.js.map +1 -0
  182. package/dist/src/ui/viewer/text/render.d.ts +19 -0
  183. package/dist/src/ui/viewer/text/render.d.ts.map +1 -0
  184. package/dist/src/ui/viewer/text/render.js +228 -0
  185. package/dist/src/ui/viewer/text/render.js.map +1 -0
  186. package/dist/src/ui/viewer/text/selection.d.ts +12 -0
  187. package/dist/src/ui/viewer/text/selection.d.ts.map +1 -0
  188. package/dist/src/ui/viewer/text/selection.js +70 -0
  189. package/dist/src/ui/viewer/text/selection.js.map +1 -0
  190. package/dist/src/ui/viewer/text/types.d.ts +37 -0
  191. package/dist/src/ui/viewer/text/types.d.ts.map +1 -0
  192. package/dist/src/ui/viewer/text/types.js +7 -0
  193. package/dist/src/ui/viewer/text/types.js.map +1 -0
  194. package/dist/src/wasm/LICENSE +104 -0
  195. package/dist/src/wasm/udoc.d.ts +480 -0
  196. package/dist/src/wasm/udoc.js +1738 -0
  197. package/dist/src/wasm/udoc_bg.wasm +0 -0
  198. package/dist/src/wasm/udoc_bg.wasm.d.ts +45 -0
  199. package/dist/src/worker/WorkerClient.d.ts +335 -0
  200. package/dist/src/worker/WorkerClient.d.ts.map +1 -0
  201. package/dist/src/worker/WorkerClient.js +903 -0
  202. package/dist/src/worker/WorkerClient.js.map +1 -0
  203. package/dist/src/worker/index.d.ts +4 -0
  204. package/dist/src/worker/index.d.ts.map +1 -0
  205. package/dist/src/worker/index.js +2 -0
  206. package/dist/src/worker/index.js.map +1 -0
  207. package/dist/src/worker/worker.d.ts +437 -0
  208. package/dist/src/worker/worker.d.ts.map +1 -0
  209. package/dist/src/worker/worker.js +237 -0
  210. package/dist/src/worker/worker.js.map +1 -0
  211. package/package.json +1 -1
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "@docmentis/udoc-viewer",
3
+ "version": "0.5.4",
4
+ "type": "module",
5
+ "license": "MIT",
6
+ "description": "Free, open-source, universal document viewer for the web. Render PDF, PPTX, and images with high fidelity — no server required.",
7
+ "homepage": "https://docmentis.com/viewer/guide",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/docmentis/docmentis-udoc-viewer.git",
11
+ "directory": "packages/udoc-viewer"
12
+ },
13
+ "bugs": {
14
+ "url": "https://github.com/docmentis/docmentis-udoc-viewer/issues"
15
+ },
16
+ "keywords": [
17
+ "pdf",
18
+ "pptx",
19
+ "powerpoint",
20
+ "viewer",
21
+ "document",
22
+ "document-viewer",
23
+ "pdf-viewer",
24
+ "wasm",
25
+ "webassembly",
26
+ "image-viewer",
27
+ "client-side"
28
+ ],
29
+ "main": "dist/src/index.js",
30
+ "types": "dist/src/index.d.ts",
31
+ "exports": {
32
+ ".": {
33
+ "types": "./dist/src/index.d.ts",
34
+ "import": "./dist/src/index.js"
35
+ },
36
+ "./worker": {
37
+ "types": "./dist/src/worker.d.ts",
38
+ "import": "./dist/src/worker.js"
39
+ }
40
+ },
41
+ "files": [
42
+ "dist"
43
+ ],
44
+ "sideEffects": false,
45
+ "engines": {
46
+ "node": ">=18"
47
+ },
48
+ "scripts": {
49
+ "build": "node scripts/build-styles.js && tsc && rm -rf dist/src/wasm && cp -r src/wasm dist/src/wasm",
50
+ "clean": "rm -rf dist",
51
+ "dev": "tsc --watch"
52
+ },
53
+ "devDependencies": {
54
+ "typescript": "^5.7.2"
55
+ }
56
+ }
@@ -0,0 +1,383 @@
1
+ /**
2
+ * UDocClient - SDK entry point for document viewing.
3
+ *
4
+ * Manages the WASM engine and provides document operations.
5
+ */
6
+ import { WorkerClient } from "./worker/index.js";
7
+ import type { Composition, ComposePick, ExtractedFont, ExtractedImage, SplitByOutlineResult } from "./worker/index.js";
8
+ import { UDocViewer } from "./UDocViewer.js";
9
+ import type { ScrollMode, LayoutMode, ZoomMode, PanelTab } from "./ui/viewer/state.js";
10
+ import type { PerformanceLogCallback } from "./performance/index.js";
11
+ /**
12
+ * License information for the client.
13
+ */
14
+ export interface LicenseInfo {
15
+ /**
16
+ * Whether the license is valid.
17
+ */
18
+ valid: boolean;
19
+ /**
20
+ * License tier: "free" (no license) or "licensed" (valid license).
21
+ */
22
+ tier: "free" | "licensed";
23
+ /**
24
+ * Enabled feature flags.
25
+ */
26
+ features: string[];
27
+ /**
28
+ * Numeric limits (e.g., max_file_size_mb).
29
+ */
30
+ limits: Record<string, number>;
31
+ /**
32
+ * Organization name from the license.
33
+ */
34
+ organization?: string;
35
+ /**
36
+ * When the license expires (if applicable).
37
+ */
38
+ expiresAt?: Date;
39
+ /**
40
+ * Error message if license validation failed.
41
+ */
42
+ error?: string;
43
+ }
44
+ /**
45
+ * Options for creating a UDocClient.
46
+ */
47
+ export interface ClientOptions {
48
+ /**
49
+ * License key for commercial use.
50
+ * Client runs in trial mode if not provided.
51
+ */
52
+ license?: string;
53
+ /**
54
+ * Base URL for loading worker and WASM files.
55
+ *
56
+ * By default, files are loaded relative to the package location.
57
+ *
58
+ * Expected files at baseUrl:
59
+ * - `{baseUrl}/worker.js`
60
+ * - `{baseUrl}/udoc_bg.wasm`
61
+ */
62
+ baseUrl?: string;
63
+ /**
64
+ * Locale for UI strings and date formatting.
65
+ * @default 'en'
66
+ */
67
+ locale?: string;
68
+ }
69
+ /**
70
+ * Options for creating a viewer.
71
+ */
72
+ export interface ViewerOptions {
73
+ /**
74
+ * Container element or CSS selector.
75
+ * If not provided, viewer runs in headless mode (no UI).
76
+ */
77
+ container?: string | HTMLElement;
78
+ /**
79
+ * Scroll mode for page navigation.
80
+ * @default ScrollMode.Continuous
81
+ */
82
+ scrollMode?: ScrollMode;
83
+ /**
84
+ * Page layout mode.
85
+ * @default LayoutMode.SinglePage
86
+ */
87
+ layoutMode?: LayoutMode;
88
+ /**
89
+ * Zoom mode for automatic scaling.
90
+ * @default ZoomMode.FitSpreadWidth
91
+ */
92
+ zoomMode?: ZoomMode;
93
+ /**
94
+ * Initial zoom level (when zoomMode is Custom).
95
+ * @default 1
96
+ */
97
+ zoom?: number;
98
+ /**
99
+ * Custom zoom steps for zoom in/out.
100
+ * @default DEFAULT_ZOOM_STEPS
101
+ */
102
+ zoomSteps?: readonly number[];
103
+ /**
104
+ * Spacing between pages in pixels.
105
+ * @default 10
106
+ */
107
+ pageSpacing?: number;
108
+ /**
109
+ * Spacing between spreads in pixels.
110
+ * @default 20
111
+ */
112
+ spreadSpacing?: number;
113
+ /**
114
+ * Initially active panel, or null for no panel.
115
+ * @default null
116
+ */
117
+ activePanel?: PanelTab | null;
118
+ /**
119
+ * Target display DPI for rendering.
120
+ * PDF points are 72 DPI; this setting determines the CSS pixel ratio.
121
+ * Most displays use 96 DPI (CSS standard).
122
+ * @default 96
123
+ */
124
+ dpi?: number;
125
+ /**
126
+ * Enable performance tracking for debugging and analytics.
127
+ * When enabled, records timing for all major operations.
128
+ * @default false
129
+ */
130
+ enablePerformanceCounter?: boolean;
131
+ /**
132
+ * Callback for performance log entries.
133
+ * Called for each operation start/end when enablePerformanceCounter is true.
134
+ */
135
+ onPerformanceLog?: PerformanceLogCallback;
136
+ /**
137
+ * Enable Google Fonts for automatic font fetching.
138
+ * When true, fonts not embedded in the document are fetched from Google Fonts
139
+ * on-demand during rendering.
140
+ * @default true
141
+ */
142
+ googleFonts?: boolean;
143
+ }
144
+ /**
145
+ * A document source can be:
146
+ * - URL string
147
+ * - File object
148
+ * - Raw bytes
149
+ * - An existing viewer (uses its loaded document)
150
+ */
151
+ export type DocumentSource = string | File | Uint8Array | UDocViewer;
152
+ /**
153
+ * A pick specifies which pages to take from which document.
154
+ */
155
+ export interface Pick {
156
+ /**
157
+ * Document source (viewer, URL, File, or bytes).
158
+ */
159
+ doc: DocumentSource;
160
+ /**
161
+ * Page range to pick. Can be:
162
+ * - A string like "0-2,4" (0-based page indices)
163
+ * - A single page index
164
+ * - An array of page indices
165
+ */
166
+ pages: string | number | number[];
167
+ /**
168
+ * Optional rotation to apply to the picked pages.
169
+ * Value in degrees: 0, 90, 180, or 270.
170
+ */
171
+ rotation?: 0 | 90 | 180 | 270;
172
+ }
173
+ /**
174
+ * Re-export low-level types for advanced usage.
175
+ */
176
+ export type { Composition, ComposePick, ExtractedFont, ExtractedImage, SplitByOutlineResult };
177
+ /**
178
+ * SDK entry point for document viewing.
179
+ *
180
+ * Manages the WASM engine, creates viewers, and provides document operations.
181
+ */
182
+ export declare class UDocClient {
183
+ /**
184
+ * SDK version string.
185
+ */
186
+ static readonly version: string;
187
+ private workerClient;
188
+ private options;
189
+ private viewers;
190
+ private destroyed;
191
+ private licenseInfo;
192
+ private constructor();
193
+ /**
194
+ * Create and initialize a client instance.
195
+ * Loads the WASM engine.
196
+ */
197
+ static create(options?: ClientOptions): Promise<UDocClient>;
198
+ /**
199
+ * Get current license information.
200
+ */
201
+ get license(): LicenseInfo;
202
+ /**
203
+ * Check if a feature is available with the current license.
204
+ * @param feature - Feature name (e.g., "merge")
205
+ */
206
+ hasFeature(feature: string): boolean;
207
+ /**
208
+ * Create a viewer instance.
209
+ *
210
+ * - With container: Full UI mode
211
+ * - Without container: Headless mode (same API, no UI)
212
+ */
213
+ createViewer(options?: ViewerOptions): Promise<UDocViewer>;
214
+ /**
215
+ * Compose new documents by cherry-picking pages from source documents.
216
+ *
217
+ * This is a powerful method that allows creating new documents by selecting
218
+ * specific pages from multiple source documents in any order. Pages can
219
+ * optionally be rotated during composition.
220
+ *
221
+ * @param compositions - Array of compositions. Each composition creates one output document.
222
+ * Each composition is an array of picks specifying which pages from which documents.
223
+ * @returns Array of viewers containing the composed documents
224
+ *
225
+ * @example
226
+ * ```ts
227
+ * // Create a document with pages 1-3 from viewer A and page 5 from viewer B
228
+ * const [newDoc] = await client.compose([
229
+ * [
230
+ * { doc: viewerA, pages: "1-3" },
231
+ * { doc: viewerB, pages: "5" }
232
+ * ]
233
+ * ]);
234
+ *
235
+ * // Create multiple documents at once
236
+ * const [doc1, doc2] = await client.compose([
237
+ * [{ doc: viewerA, pages: "1" }], // doc1: page 1 from A
238
+ * [{ doc: viewerA, pages: "2" }, { doc: viewerB, pages: "1" }] // doc2: page 2 from A + page 1 from B
239
+ * ]);
240
+ *
241
+ * // Rotate pages during composition
242
+ * const [rotated] = await client.compose([
243
+ * [
244
+ * { doc: viewerA, pages: "1", rotation: 90 }, // rotate page 1 by 90 degrees
245
+ * { doc: viewerA, pages: "2", rotation: 180 } // rotate page 2 by 180 degrees
246
+ * ]
247
+ * ]);
248
+ * ```
249
+ */
250
+ compose(compositions: Pick[][]): Promise<UDocViewer[]>;
251
+ /**
252
+ * Split a document by its outline (bookmarks) structure.
253
+ *
254
+ * Creates multiple documents, one for each outline section at the specified level.
255
+ * The original document remains unchanged.
256
+ *
257
+ * @param source - Document source (viewer, URL, File, or bytes)
258
+ * @param options - Split options
259
+ * @param options.maxLevel - Maximum outline level to consider (1 = top level only, default: 1)
260
+ * @param options.splitMidPage - When true, filters page content when sections share a page (default: false)
261
+ * @returns Object with viewers array and sections metadata
262
+ *
263
+ * @example
264
+ * ```ts
265
+ * // Split a document by top-level bookmarks
266
+ * const result = await client.splitByOutline(viewer);
267
+ * console.log(`Split into ${result.viewers.length} documents`);
268
+ * result.sections.forEach((section, i) => {
269
+ * console.log(`Document ${i}: ${section.title}`);
270
+ * });
271
+ *
272
+ * // Split with mid-page content filtering
273
+ * const result = await client.splitByOutline(viewer, { maxLevel: 2, splitMidPage: true });
274
+ * ```
275
+ */
276
+ splitByOutline(source: DocumentSource, options?: {
277
+ maxLevel?: number;
278
+ splitMidPage?: boolean;
279
+ }): Promise<{
280
+ viewers: UDocViewer[];
281
+ sections: {
282
+ title: string;
283
+ index: number;
284
+ }[];
285
+ }>;
286
+ /**
287
+ * Extract all embedded images from a document.
288
+ *
289
+ * @param source - Document source (viewer, URL, File, or bytes)
290
+ * @param options - Extract options
291
+ * @param options.convertRawToPng - When true, converts raw pixel data to PNG format (default: false)
292
+ * @returns Array of extracted images with metadata and data
293
+ *
294
+ * @example
295
+ * ```ts
296
+ * const images = await client.extractImages(viewer);
297
+ * for (const image of images) {
298
+ * console.log(`${image.name}: ${image.format} (${image.width}x${image.height})`);
299
+ * // image.data contains the raw image bytes
300
+ * }
301
+ *
302
+ * // Convert raw images to PNG for easier viewing
303
+ * const pngImages = await client.extractImages(viewer, { convertRawToPng: true });
304
+ * ```
305
+ */
306
+ extractImages(source: DocumentSource, options?: {
307
+ convertRawToPng?: boolean;
308
+ }): Promise<ExtractedImage[]>;
309
+ /**
310
+ * Extract all embedded fonts from a document.
311
+ *
312
+ * @param source - Document source (viewer, URL, File, or bytes)
313
+ * @returns Array of extracted fonts with metadata and data
314
+ *
315
+ * @example
316
+ * ```ts
317
+ * const fonts = await client.extractFonts(viewer);
318
+ * for (const font of fonts) {
319
+ * console.log(`${font.name}: ${font.fontType} (.${font.extension})`);
320
+ * // font.data contains the raw font bytes
321
+ * }
322
+ * ```
323
+ */
324
+ extractFonts(source: DocumentSource): Promise<ExtractedFont[]>;
325
+ /**
326
+ * Compress a document.
327
+ *
328
+ * Saves the document with full compression options enabled:
329
+ * - Compress stream data using FlateDecode
330
+ * - Pack objects into compressed object streams (PDF 1.5+)
331
+ * - Use compressed xref streams (PDF 1.5+)
332
+ * - Remove unreferenced objects
333
+ *
334
+ * @param source - Document source (viewer, URL, File, or bytes)
335
+ * @returns Compressed PDF data as Uint8Array
336
+ *
337
+ * @example
338
+ * ```ts
339
+ * const compressedBytes = await client.compress(viewer);
340
+ * // Save to file or download
341
+ * const blob = new Blob([compressedBytes], { type: 'application/pdf' });
342
+ * ```
343
+ */
344
+ compress(source: DocumentSource): Promise<Uint8Array>;
345
+ /**
346
+ * Decompress a document.
347
+ *
348
+ * Removes all filter encodings from streams, resulting in raw,
349
+ * uncompressed stream data. Useful for debugging or inspection.
350
+ *
351
+ * @param source - Document source (viewer, URL, File, or bytes)
352
+ * @returns Decompressed PDF data as Uint8Array
353
+ *
354
+ * @example
355
+ * ```ts
356
+ * const decompressedBytes = await client.decompress(viewer);
357
+ * // Save to file for inspection
358
+ * const blob = new Blob([decompressedBytes], { type: 'application/pdf' });
359
+ * ```
360
+ */
361
+ decompress(source: DocumentSource): Promise<Uint8Array>;
362
+ /**
363
+ * Load a document source and return its ID.
364
+ * Note: This is only used for PDF operations (compose, split, etc.)
365
+ */
366
+ private loadSource;
367
+ /**
368
+ * Normalize page specification to a string format.
369
+ */
370
+ private normalizePages;
371
+ /**
372
+ * Destroy the client and release all resources.
373
+ * All viewers created by this client become invalid.
374
+ */
375
+ destroy(): void;
376
+ /**
377
+ * Get the underlying worker client (for internal use).
378
+ * @internal
379
+ */
380
+ getWorkerClient(): WorkerClient;
381
+ private ensureNotDestroyed;
382
+ }
383
+ //# sourceMappingURL=UDocClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UDocClient.d.ts","sourceRoot":"","sources":["../../src/UDocClient.ts"],"names":[],"mappings":"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"}