@laminapdf/sdk 0.0.0-stage → 0.2.0-alpha.3

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 (478) hide show
  1. package/README.md +243 -2
  2. package/dist/api.d.ts +26 -0
  3. package/dist/api.d.ts.map +1 -0
  4. package/dist/api.js +12 -0
  5. package/dist/api.js.map +1 -0
  6. package/dist/builder.d.ts +335 -0
  7. package/dist/builder.d.ts.map +1 -0
  8. package/dist/builder.js +574 -0
  9. package/dist/builder.js.map +1 -0
  10. package/dist/defined.d.ts +5 -0
  11. package/dist/defined.d.ts.map +1 -0
  12. package/dist/defined.js +7 -0
  13. package/dist/defined.js.map +1 -0
  14. package/dist/document.d.ts +267 -0
  15. package/dist/document.d.ts.map +1 -0
  16. package/dist/document.js +472 -0
  17. package/dist/document.js.map +1 -0
  18. package/dist/entry/node.d.ts +30 -0
  19. package/dist/entry/node.d.ts.map +1 -0
  20. package/dist/entry/node.js +37 -0
  21. package/dist/entry/node.js.map +1 -0
  22. package/dist/entry/workerd.d.ts +30 -0
  23. package/dist/entry/workerd.d.ts.map +1 -0
  24. package/dist/entry/workerd.js +37 -0
  25. package/dist/entry/workerd.js.map +1 -0
  26. package/dist/errors.d.ts +102 -0
  27. package/dist/errors.d.ts.map +1 -0
  28. package/dist/errors.js +131 -0
  29. package/dist/errors.js.map +1 -0
  30. package/dist/explain.d.ts +20 -0
  31. package/dist/explain.d.ts.map +1 -0
  32. package/dist/explain.js +14 -0
  33. package/dist/explain.js.map +1 -0
  34. package/dist/extract.d.ts +57 -0
  35. package/dist/extract.d.ts.map +1 -0
  36. package/dist/extract.js +5 -0
  37. package/dist/extract.js.map +1 -0
  38. package/dist/font.d.ts +73 -0
  39. package/dist/font.d.ts.map +1 -0
  40. package/dist/font.js +133 -0
  41. package/dist/font.js.map +1 -0
  42. package/dist/generated/builder-enums.d.ts +29 -0
  43. package/dist/generated/builder-enums.d.ts.map +1 -0
  44. package/dist/generated/builder-enums.js +80 -0
  45. package/dist/generated/builder-enums.js.map +1 -0
  46. package/dist/generated/codes.d.ts +109 -0
  47. package/dist/generated/codes.d.ts.map +1 -0
  48. package/dist/generated/codes.js +508 -0
  49. package/dist/generated/codes.js.map +1 -0
  50. package/dist/generated/explain.d.ts +6 -0
  51. package/dist/generated/explain.d.ts.map +1 -0
  52. package/dist/generated/explain.js +155 -0
  53. package/dist/generated/explain.js.map +1 -0
  54. package/dist/generated/extract.d.ts +235 -0
  55. package/dist/generated/extract.d.ts.map +1 -0
  56. package/dist/generated/extract.js +4 -0
  57. package/dist/generated/extract.js.map +1 -0
  58. package/dist/index.d.ts +30 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +37 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/init.d.ts +88 -0
  63. package/dist/init.d.ts.map +1 -0
  64. package/dist/init.js +139 -0
  65. package/dist/init.js.map +1 -0
  66. package/dist/internal/handle.d.ts +58 -0
  67. package/dist/internal/handle.d.ts.map +1 -0
  68. package/dist/internal/handle.js +113 -0
  69. package/dist/internal/handle.js.map +1 -0
  70. package/dist/internal/instance.d.ts +56 -0
  71. package/dist/internal/instance.d.ts.map +1 -0
  72. package/dist/internal/instance.js +125 -0
  73. package/dist/internal/instance.js.map +1 -0
  74. package/dist/loader/fetch.d.ts +3 -0
  75. package/dist/loader/fetch.d.ts.map +1 -0
  76. package/dist/loader/fetch.js +2 -0
  77. package/dist/loader/fetch.js.map +1 -0
  78. package/dist/loader/node.d.ts +3 -0
  79. package/dist/loader/node.d.ts.map +1 -0
  80. package/dist/loader/node.js +9 -0
  81. package/dist/loader/node.js.map +1 -0
  82. package/dist/loader/workerd.d.ts +3 -0
  83. package/dist/loader/workerd.d.ts.map +1 -0
  84. package/dist/loader/workerd.js +15 -0
  85. package/dist/loader/workerd.js.map +1 -0
  86. package/dist/matrix.d.ts +16 -0
  87. package/dist/matrix.d.ts.map +1 -0
  88. package/dist/matrix.js +36 -0
  89. package/dist/matrix.js.map +1 -0
  90. package/dist/path.d.ts +34 -0
  91. package/dist/path.d.ts.map +1 -0
  92. package/dist/path.js +49 -0
  93. package/dist/path.js.map +1 -0
  94. package/dist/source/http.d.ts +36 -0
  95. package/dist/source/http.d.ts.map +1 -0
  96. package/dist/source/http.js +211 -0
  97. package/dist/source/http.js.map +1 -0
  98. package/dist/source/range.d.ts +75 -0
  99. package/dist/source/range.d.ts.map +1 -0
  100. package/dist/source/range.js +100 -0
  101. package/dist/source/range.js.map +1 -0
  102. package/dist/text.d.ts +90 -0
  103. package/dist/text.d.ts.map +1 -0
  104. package/dist/text.js +127 -0
  105. package/dist/text.js.map +1 -0
  106. package/dist/transaction.d.ts +36 -0
  107. package/dist/transaction.d.ts.map +1 -0
  108. package/dist/transaction.js +47 -0
  109. package/dist/transaction.js.map +1 -0
  110. package/dist/types.d.ts +79 -0
  111. package/dist/types.d.ts.map +1 -0
  112. package/dist/types.js +2 -0
  113. package/dist/types.js.map +1 -0
  114. package/dist/version.d.ts +3 -0
  115. package/dist/version.d.ts.map +1 -0
  116. package/dist/version.js +6 -0
  117. package/dist/version.js.map +1 -0
  118. package/dist/worker/client.d.ts +88 -0
  119. package/dist/worker/client.d.ts.map +1 -0
  120. package/dist/worker/client.js +407 -0
  121. package/dist/worker/client.js.map +1 -0
  122. package/dist/worker/emitter.d.ts +12 -0
  123. package/dist/worker/emitter.d.ts.map +1 -0
  124. package/dist/worker/emitter.js +34 -0
  125. package/dist/worker/emitter.js.map +1 -0
  126. package/dist/worker/entry.d.ts +2 -0
  127. package/dist/worker/entry.d.ts.map +1 -0
  128. package/dist/worker/entry.js +4 -0
  129. package/dist/worker/entry.js.map +1 -0
  130. package/dist/worker/index.d.ts +7 -0
  131. package/dist/worker/index.d.ts.map +1 -0
  132. package/dist/worker/index.js +4 -0
  133. package/dist/worker/index.js.map +1 -0
  134. package/dist/worker/protocol.d.ts +82 -0
  135. package/dist/worker/protocol.d.ts.map +1 -0
  136. package/dist/worker/protocol.js +11 -0
  137. package/dist/worker/protocol.js.map +1 -0
  138. package/dist/worker/server.d.ts +51 -0
  139. package/dist/worker/server.d.ts.map +1 -0
  140. package/dist/worker/server.js +493 -0
  141. package/dist/worker/server.js.map +1 -0
  142. package/dist/worker/support.d.ts +43 -0
  143. package/dist/worker/support.d.ts.map +1 -0
  144. package/dist/worker/support.js +26 -0
  145. package/dist/worker/support.js.map +1 -0
  146. package/dist/worker/transfer.d.ts +3 -0
  147. package/dist/worker/transfer.d.ts.map +1 -0
  148. package/dist/worker/transfer.js +13 -0
  149. package/dist/worker/transfer.js.map +1 -0
  150. package/dist/worker/types.d.ts +50 -0
  151. package/dist/worker/types.d.ts.map +1 -0
  152. package/dist/worker/types.js +2 -0
  153. package/dist/worker/types.js.map +1 -0
  154. package/docs/AGENTS.md +14 -0
  155. package/docs/api/README.md +147 -0
  156. package/docs/api/classes/Builder.md +467 -0
  157. package/docs/api/classes/Document.md +742 -0
  158. package/docs/api/classes/Font.md +74 -0
  159. package/docs/api/classes/Image.md +140 -0
  160. package/docs/api/classes/LaminaPdfError.md +189 -0
  161. package/docs/api/classes/Page.md +178 -0
  162. package/docs/api/classes/PageRef.md +253 -0
  163. package/docs/api/classes/PageText.md +129 -0
  164. package/docs/api/classes/PageTextRun.md +167 -0
  165. package/docs/api/classes/PendingPath.md +97 -0
  166. package/docs/api/classes/SaveJob.md +205 -0
  167. package/docs/api/classes/Surface.md +326 -0
  168. package/docs/api/classes/Transaction.md +111 -0
  169. package/docs/api/functions/callbackSource.md +33 -0
  170. package/docs/api/functions/httpRangeSource.md +48 -0
  171. package/docs/api/functions/init.md +36 -0
  172. package/docs/api/functions/isExtractLoaded.md +21 -0
  173. package/docs/api/functions/isInitialized.md +19 -0
  174. package/docs/api/functions/isLaminaPdfError.md +41 -0
  175. package/docs/api/functions/isTextLoaded.md +19 -0
  176. package/docs/api/functions/loadExtract.md +28 -0
  177. package/docs/api/functions/loadText.md +28 -0
  178. package/docs/api/functions/onLeak.md +29 -0
  179. package/docs/api/functions/reset.md +22 -0
  180. package/docs/api/functions/wasmMemory.md +22 -0
  181. package/docs/api/interfaces/BuilderOptions.md +108 -0
  182. package/docs/api/interfaces/ByteRange.md +29 -0
  183. package/docs/api/interfaces/ChunkOptions.md +37 -0
  184. package/docs/api/interfaces/Diagnostic.md +67 -0
  185. package/docs/api/interfaces/ExtractOptions.md +92 -0
  186. package/docs/api/interfaces/ExtractResult.md +37 -0
  187. package/docs/api/interfaces/FontInfo.md +37 -0
  188. package/docs/api/interfaces/HttpRangeOptions.md +78 -0
  189. package/docs/api/interfaces/InitOptions.md +40 -0
  190. package/docs/api/interfaces/Leak.md +21 -0
  191. package/docs/api/interfaces/Location.md +53 -0
  192. package/docs/api/interfaces/OpLog.md +25 -0
  193. package/docs/api/interfaces/OpenOptions.md +37 -0
  194. package/docs/api/interfaces/PageTextOptions.md +21 -0
  195. package/docs/api/interfaces/PathBuilder.md +195 -0
  196. package/docs/api/interfaces/QuadPoint.md +25 -0
  197. package/docs/api/interfaces/RangeOptions.md +54 -0
  198. package/docs/api/interfaces/RangeSource.md +59 -0
  199. package/docs/api/interfaces/StrokeStyle.md +61 -0
  200. package/docs/api/interfaces/TagSpec.md +69 -0
  201. package/docs/api/interfaces/TextBoxOptions.md +93 -0
  202. package/docs/api/interfaces/TextGlyph.md +29 -0
  203. package/docs/api/interfaces/TextOptions.md +101 -0
  204. package/docs/api/interfaces/WasmMemory.md +37 -0
  205. package/docs/api/type-aliases/AfRelationship.md +15 -0
  206. package/docs/api/type-aliases/Align.md +15 -0
  207. package/docs/api/type-aliases/ArtifactKind.md +15 -0
  208. package/docs/api/type-aliases/AttachmentOptions.md +15 -0
  209. package/docs/api/type-aliases/BlendMode.md +15 -0
  210. package/docs/api/type-aliases/BoxRect.md +15 -0
  211. package/docs/api/type-aliases/BuildOptions.md +15 -0
  212. package/docs/api/type-aliases/Cell.md +71 -0
  213. package/docs/api/type-aliases/Chunk.md +79 -0
  214. package/docs/api/type-aliases/Color.md +16 -0
  215. package/docs/api/type-aliases/Coordinates.md +55 -0
  216. package/docs/api/type-aliases/Direction.md +15 -0
  217. package/docs/api/type-aliases/DocumentInfo.md +15 -0
  218. package/docs/api/type-aliases/DropReason.md +15 -0
  219. package/docs/api/type-aliases/Dropped.md +59 -0
  220. package/docs/api/type-aliases/Edited.md +15 -0
  221. package/docs/api/type-aliases/ErrorCode.md +15 -0
  222. package/docs/api/type-aliases/ErrorKind.md +15 -0
  223. package/docs/api/type-aliases/ExtractFormat.md +15 -0
  224. package/docs/api/type-aliases/ExtractedBlock.md +82 -0
  225. package/docs/api/type-aliases/ExtractedPage.md +65 -0
  226. package/docs/api/type-aliases/ExtractedSource.md +48 -0
  227. package/docs/api/type-aliases/Extraction.md +22 -0
  228. package/docs/api/type-aliases/FillRule.md +15 -0
  229. package/docs/api/type-aliases/Fit.md +15 -0
  230. package/docs/api/type-aliases/Flags.md +15 -0
  231. package/docs/api/type-aliases/Generator.md +41 -0
  232. package/docs/api/type-aliases/GlyphQuad.md +15 -0
  233. package/docs/api/type-aliases/InfoPatch.md +15 -0
  234. package/docs/api/type-aliases/LaminaPdfWarning.md +16 -0
  235. package/docs/api/type-aliases/LimitName.md +15 -0
  236. package/docs/api/type-aliases/Limits.md +15 -0
  237. package/docs/api/type-aliases/LineBox.md +15 -0
  238. package/docs/api/type-aliases/LineCap.md +15 -0
  239. package/docs/api/type-aliases/LineJoin.md +15 -0
  240. package/docs/api/type-aliases/LinkTarget.md +15 -0
  241. package/docs/api/type-aliases/Metadata.md +15 -0
  242. package/docs/api/type-aliases/Op.md +15 -0
  243. package/docs/api/type-aliases/OutlineEntry.md +15 -0
  244. package/docs/api/type-aliases/Overflow.md +15 -0
  245. package/docs/api/type-aliases/PageInfo.md +15 -0
  246. package/docs/api/type-aliases/PageLabel.md +15 -0
  247. package/docs/api/type-aliases/PageSizeName.md +15 -0
  248. package/docs/api/type-aliases/Point.md +15 -0
  249. package/docs/api/type-aliases/Profile.md +15 -0
  250. package/docs/api/type-aliases/Progress.md +15 -0
  251. package/docs/api/type-aliases/ReadingOrder.md +15 -0
  252. package/docs/api/type-aliases/Rect.md +15 -0
  253. package/docs/api/type-aliases/Region.md +31 -0
  254. package/docs/api/type-aliases/RenderMode.md +15 -0
  255. package/docs/api/type-aliases/Rotation.md +15 -0
  256. package/docs/api/type-aliases/SaveOptions.md +15 -0
  257. package/docs/api/type-aliases/SaveReport.md +15 -0
  258. package/docs/api/type-aliases/Span.md +63 -0
  259. package/docs/api/type-aliases/SplitOn.md +15 -0
  260. package/docs/api/type-aliases/Standard14.md +15 -0
  261. package/docs/api/type-aliases/StructRef.md +41 -0
  262. package/docs/api/type-aliases/StructSource.md +17 -0
  263. package/docs/api/type-aliases/TableDetector.md +15 -0
  264. package/docs/api/type-aliases/TableMode.md +15 -0
  265. package/docs/api/type-aliases/TableScope.md +15 -0
  266. package/docs/api/type-aliases/Tag.md +15 -0
  267. package/docs/api/type-aliases/TagName.md +15 -0
  268. package/docs/api/type-aliases/TextLayout.md +15 -0
  269. package/docs/api/type-aliases/TextRange.md +33 -0
  270. package/docs/api/type-aliases/TextRunInfo.md +15 -0
  271. package/docs/api/type-aliases/Transform.md +15 -0
  272. package/docs/api/type-aliases/UndoOutcome.md +15 -0
  273. package/docs/api/type-aliases/ViewerPreferences.md +15 -0
  274. package/docs/api/type-aliases/WarningCode.md +15 -0
  275. package/docs/api/type-aliases/WasmSource.md +16 -0
  276. package/docs/api/variables/Matrix.md +99 -0
  277. package/docs/api/variables/PAGE_SIZES.md +15 -0
  278. package/docs/api/variables/TAG_NAMES.md +15 -0
  279. package/docs/errors/README.md +156 -0
  280. package/docs/errors/aes-padding-invalid.md +34 -0
  281. package/docs/errors/already-initialized.md +34 -0
  282. package/docs/errors/binary-output-to-terminal.md +35 -0
  283. package/docs/errors/builder-finished.md +35 -0
  284. package/docs/errors/cancelled.md +35 -0
  285. package/docs/errors/cmap-invalid.md +42 -0
  286. package/docs/errors/collection-index.md +33 -0
  287. package/docs/errors/color-components.md +33 -0
  288. package/docs/errors/content-bad-operands.md +36 -0
  289. package/docs/errors/content-path-unpainted.md +36 -0
  290. package/docs/errors/content-resource-missing.md +37 -0
  291. package/docs/errors/content-syntax.md +36 -0
  292. package/docs/errors/content-unbalanced-bt.md +36 -0
  293. package/docs/errors/content-unbalanced-marked.md +36 -0
  294. package/docs/errors/content-unbalanced-q.md +36 -0
  295. package/docs/errors/content-unknown-operator.md +37 -0
  296. package/docs/errors/data-pending.md +34 -0
  297. package/docs/errors/decompress.md +34 -0
  298. package/docs/errors/device-color-without-output-intent.md +33 -0
  299. package/docs/errors/direct-page.md +34 -0
  300. package/docs/errors/disposed.md +34 -0
  301. package/docs/errors/document-changed.md +34 -0
  302. package/docs/errors/embedded-file-forbidden.md +35 -0
  303. package/docs/errors/embedded-file-without-mime-type.md +36 -0
  304. package/docs/errors/encoding-full.md +34 -0
  305. package/docs/errors/encrypted-base.md +33 -0
  306. package/docs/errors/extract-limit-blocks.md +35 -0
  307. package/docs/errors/extract-module-not-loaded.md +37 -0
  308. package/docs/errors/extract-reading-order-ambiguous.md +32 -0
  309. package/docs/errors/extract-struct-tree-ignored.md +32 -0
  310. package/docs/errors/extract-table-ambiguous.md +32 -0
  311. package/docs/errors/extract-table-limit.md +35 -0
  312. package/docs/errors/extract-untagged-content.md +32 -0
  313. package/docs/errors/fetch-failed.md +34 -0
  314. package/docs/errors/flate-truncated.md +34 -0
  315. package/docs/errors/font-invalid.md +36 -0
  316. package/docs/errors/font-mismatch.md +34 -0
  317. package/docs/errors/font-not-embeddable.md +34 -0
  318. package/docs/errors/font-not-embedded.md +35 -0
  319. package/docs/errors/font-not-shapable.md +33 -0
  320. package/docs/errors/glyph-out-of-range.md +34 -0
  321. package/docs/errors/glyph-without-unicode.md +35 -0
  322. package/docs/errors/heading-level-skipped.md +36 -0
  323. package/docs/errors/image-data-length.md +33 -0
  324. package/docs/errors/image-too-large.md +32 -0
  325. package/docs/errors/inline-image-unterminated.md +36 -0
  326. package/docs/errors/input-unreadable.md +37 -0
  327. package/docs/errors/instance-reset.md +34 -0
  328. package/docs/errors/invalid-argument.md +33 -0
  329. package/docs/errors/invalid-axis-value.md +32 -0
  330. package/docs/errors/invalid-box.md +34 -0
  331. package/docs/errors/invalid-color.md +32 -0
  332. package/docs/errors/invalid-command-line.md +44 -0
  333. package/docs/errors/invalid-date.md +34 -0
  334. package/docs/errors/invalid-entry.md +34 -0
  335. package/docs/errors/invalid-feature.md +32 -0
  336. package/docs/errors/invalid-font.md +32 -0
  337. package/docs/errors/invalid-geometry.md +32 -0
  338. package/docs/errors/invalid-icc-profile.md +32 -0
  339. package/docs/errors/invalid-image.md +33 -0
  340. package/docs/errors/invalid-op-log.md +33 -0
  341. package/docs/errors/invalid-page-label.md +34 -0
  342. package/docs/errors/invalid-page-labels.md +32 -0
  343. package/docs/errors/invalid-page-range.md +37 -0
  344. package/docs/errors/invalid-rotate.md +34 -0
  345. package/docs/errors/invalid-structure-nesting.md +38 -0
  346. package/docs/errors/invalid-structure.md +34 -0
  347. package/docs/errors/invalid-text-range.md +33 -0
  348. package/docs/errors/job-finished.md +34 -0
  349. package/docs/errors/limit-exceeded.md +38 -0
  350. package/docs/errors/link-without-contents.md +33 -0
  351. package/docs/errors/link-without-structure.md +37 -0
  352. package/docs/errors/missing-alt-text.md +33 -0
  353. package/docs/errors/missing-glyph.md +33 -0
  354. package/docs/errors/missing-header.md +37 -0
  355. package/docs/errors/missing-lang.md +32 -0
  356. package/docs/errors/missing-root.md +34 -0
  357. package/docs/errors/missing-title.md +32 -0
  358. package/docs/errors/name-tree-node-skipped.md +34 -0
  359. package/docs/errors/nested-transaction.md +34 -0
  360. package/docs/errors/no-pending-save.md +32 -0
  361. package/docs/errors/no-transaction.md +33 -0
  362. package/docs/errors/not-initialized.md +35 -0
  363. package/docs/errors/not-pdf.md +33 -0
  364. package/docs/errors/not-rebased.md +35 -0
  365. package/docs/errors/object-number-out-of-range.md +38 -0
  366. package/docs/errors/objstm-index-mismatch.md +36 -0
  367. package/docs/errors/out-of-memory.md +38 -0
  368. package/docs/errors/outline-cycle.md +34 -0
  369. package/docs/errors/outline-item-skipped.md +34 -0
  370. package/docs/errors/output-unwritable.md +37 -0
  371. package/docs/errors/overwrite-refused.md +36 -0
  372. package/docs/errors/page-count-mismatch.md +34 -0
  373. package/docs/errors/page-index-out-of-range.md +34 -0
  374. package/docs/errors/page-tree-node-skipped.md +35 -0
  375. package/docs/errors/password-required.md +36 -0
  376. package/docs/errors/path-outside-roots.md +32 -0
  377. package/docs/errors/perms-mismatch.md +34 -0
  378. package/docs/errors/profile-version-conflict.md +35 -0
  379. package/docs/errors/reference-cycle.md +35 -0
  380. package/docs/errors/render-backend-unavailable.md +32 -0
  381. package/docs/errors/render-failed.md +33 -0
  382. package/docs/errors/render-too-large.md +36 -0
  383. package/docs/errors/repaired-base.md +34 -0
  384. package/docs/errors/requires-rewrite.md +38 -0
  385. package/docs/errors/saved-not-rebased.md +34 -0
  386. package/docs/errors/sink-not-empty.md +33 -0
  387. package/docs/errors/sink.md +31 -0
  388. package/docs/errors/source-budget-exceeded.md +34 -0
  389. package/docs/errors/source-changed.md +33 -0
  390. package/docs/errors/source.md +30 -0
  391. package/docs/errors/stale-generation.md +34 -0
  392. package/docs/errors/stream-length-recovered.md +37 -0
  393. package/docs/errors/strict.md +34 -0
  394. package/docs/errors/subset-failed.md +31 -0
  395. package/docs/errors/syntax.md +34 -0
  396. package/docs/errors/text-module-not-loaded.md +36 -0
  397. package/docs/errors/text-overflow.md +34 -0
  398. package/docs/errors/tounicode-conflict.md +32 -0
  399. package/docs/errors/type.md +34 -0
  400. package/docs/errors/unexpected-eof.md +34 -0
  401. package/docs/errors/unknown-axis.md +33 -0
  402. package/docs/errors/unknown-code.md +36 -0
  403. package/docs/errors/unknown-destination.md +33 -0
  404. package/docs/errors/unknown-font.md +33 -0
  405. package/docs/errors/unknown-option.md +33 -0
  406. package/docs/errors/unknown-page.md +34 -0
  407. package/docs/errors/unmapped-glyph.md +36 -0
  408. package/docs/errors/unnumbered-heading-misused.md +34 -0
  409. package/docs/errors/unset-object.md +30 -0
  410. package/docs/errors/unsupported-filter.md +34 -0
  411. package/docs/errors/unsupported-image.md +33 -0
  412. package/docs/errors/unsupported-layout-option.md +33 -0
  413. package/docs/errors/unsupported-security-handler.md +34 -0
  414. package/docs/errors/unsupported-version.md +32 -0
  415. package/docs/errors/untagged-content.md +35 -0
  416. package/docs/errors/warnings-truncated.md +35 -0
  417. package/docs/errors/wasm-trap.md +37 -0
  418. package/docs/errors/whole-font-rebuilt.md +30 -0
  419. package/docs/errors/worker-crashed.md +33 -0
  420. package/docs/errors/worker-failed.md +32 -0
  421. package/docs/errors/worker-version-mismatch.md +34 -0
  422. package/docs/errors/would-invalidate-signatures.md +38 -0
  423. package/docs/errors/wrong-document.md +33 -0
  424. package/docs/errors/wrong-password.md +34 -0
  425. package/docs/errors/xobject-cycle.md +36 -0
  426. package/docs/errors/xref-repaired.md +36 -0
  427. package/docs/errors/xrefstm-ignored.md +34 -0
  428. package/docs/llms.txt +88 -0
  429. package/docs/pages/concepts/dependencies.md +44 -0
  430. package/docs/pages/concepts/errors-and-warnings.md +64 -0
  431. package/docs/pages/concepts/how-lamina-thinks.md +86 -0
  432. package/docs/pages/concepts/pages-and-coordinates.md +67 -0
  433. package/docs/pages/guides/accessible-pdfs.md +260 -0
  434. package/docs/pages/guides/archival-pdfs.md +429 -0
  435. package/docs/pages/guides/edit-a-pdf.md +137 -0
  436. package/docs/pages/guides/fonts-and-text.md +202 -0
  437. package/docs/pages/guides/images-and-vectors.md +219 -0
  438. package/docs/pages/guides/keep-the-page-responsive.md +81 -0
  439. package/docs/pages/guides/links-outlines-and-metadata.md +222 -0
  440. package/docs/pages/guides/password-protected-files.md +70 -0
  441. package/docs/pages/guides/save-a-pdf.md +144 -0
  442. package/docs/pages/guides/untrusted-files.md +80 -0
  443. package/docs/pages/index.md +33 -0
  444. package/docs/pages/install.md +75 -0
  445. package/docs/pages/quick-start/browser.md +67 -0
  446. package/docs/pages/quick-start/bun.md +60 -0
  447. package/docs/pages/quick-start/deno.md +58 -0
  448. package/docs/pages/quick-start/node.md +61 -0
  449. package/docs/pages/quick-start/rust.md +58 -0
  450. package/docs/pages/quick-start/workers.md +139 -0
  451. package/docs/pages/recipes/cloudflare-worker.md +115 -0
  452. package/docs/pages/recipes/extract-markdown.md +114 -0
  453. package/docs/pages/recipes/generate-then-edit.md +135 -0
  454. package/docs/pages/recipes/hello.md +94 -0
  455. package/docs/pages/recipes/images-and-vectors.md +209 -0
  456. package/docs/pages/recipes/invoice.md +226 -0
  457. package/docs/pages/recipes/links-and-outlines.md +215 -0
  458. package/docs/pages/recipes/multilingual.md +189 -0
  459. package/docs/pages/recipes/open-untrusted.md +65 -0
  460. package/docs/pages/recipes/pdf-a-archive.md +205 -0
  461. package/docs/pages/recipes/pdf-a3-invoice-with-xml.md +222 -0
  462. package/docs/pages/recipes/pdf-ua-report.md +237 -0
  463. package/docs/pages/recipes/report.md +125 -0
  464. package/docs/pages/recipes/web-worker-client.md +64 -0
  465. package/docs/pages/recipes.md +47 -0
  466. package/docs/pages/reference/changelog.md +86 -0
  467. package/docs/pages/reference/codes.md +14 -0
  468. package/docs/pages/reference/glossary.md +108 -0
  469. package/docs/pages/reference/rust.md +36 -0
  470. package/docs/pages/reference/stability.md +59 -0
  471. package/docs/pages/start/coding-agents.md +45 -0
  472. package/docs/pages/start/first-pdf.md +77 -0
  473. package/docs/pages/troubleshooting.md +74 -0
  474. package/docs/renames.json +86 -0
  475. package/docs/schemas/error.schema.json +305 -0
  476. package/docs/schemas/renames.schema.json +29 -0
  477. package/package.json +93 -3
  478. package/schemas/error.schema.json +305 -0
@@ -0,0 +1,407 @@
1
+ // The page side of `@laminapdf/sdk/worker`: `connect()` starts the worker (the literal
2
+ // `new Worker(new URL(…, import.meta.url))` lets Vite and webpack bundle it), checks the
3
+ // handshake, and returns a WorkerClient whose documents and pages are remote handles: proxies
4
+ // whose methods post typed calls. Calls get monotonically increasing IDs; an aborted call is
5
+ // rejected at once (`cancelled`, with the signal's reason as `cause`) and a `cancel` is posted;
6
+ // a late answer is dropped (the worker frees a document it opened when that cancel arrives).
7
+ // Errors come back as ADR 0026 objects and are rebuilt as LaminaPdfError.
8
+ // A worker `error` or `messageerror`, or a trap the worker reports, rejects every pending call
9
+ // with `worker-crashed` and emits `crashed`; `restart()` starts a new worker. No heartbeat.
10
+ import { defined } from "../defined.js";
11
+ import { LaminaPdfError, packageError } from "../errors.js";
12
+ import { PageText } from "../text.js";
13
+ import { Emitter } from "./emitter.js";
14
+ import { HANDSHAKE, isHandleRef, isPageTextData, } from "./protocol.js";
15
+ import { DOCUMENT_METHODS, PAGE_METHODS } from "./support.js";
16
+ import { whole } from "./transfer.js";
17
+ /** `Symbol.asyncDispose` where the runtime has it, else the registered symbol (no globals touched). */
18
+ const ASYNC_DISPOSE = Symbol.asyncDispose ?? Symbol.for("Symbol.asyncDispose");
19
+ /** `source` as sent to the worker: URLs made absolute against the page. */
20
+ function sendable(source) {
21
+ if (source instanceof URL)
22
+ return source.href;
23
+ if (typeof source === "string") {
24
+ const base = globalThis.location?.href;
25
+ return base === undefined ? source : new URL(source, base).href;
26
+ }
27
+ return source;
28
+ }
29
+ function sendableInit(init) {
30
+ if (typeof init === "string" ||
31
+ init instanceof URL ||
32
+ init instanceof ArrayBuffer ||
33
+ ArrayBuffer.isView(init) ||
34
+ init instanceof WebAssembly.Module) {
35
+ return sendable(init);
36
+ }
37
+ return Object.fromEntries(Object.entries(defined(init)).map(([k, v]) => [k, typeof v === "boolean" ? v : sendable(v)]));
38
+ }
39
+ /** Closes the ImageBitmaps in `value` and its direct members. */
40
+ function closeBitmaps(value) {
41
+ const close = (v) => {
42
+ if (typeof ImageBitmap !== "undefined" && v instanceof ImageBitmap)
43
+ v.close();
44
+ };
45
+ close(value);
46
+ if (typeof value === "object" && value !== null)
47
+ for (const v of Object.values(value))
48
+ close(v);
49
+ }
50
+ function defaultWorker() {
51
+ return new Worker(new URL("./entry.js", import.meta.url), { type: "module", name: "lamina" });
52
+ }
53
+ function rebuild(error) {
54
+ return new LaminaPdfError(error);
55
+ }
56
+ function crashed(message, reason) {
57
+ return packageError("worker-crashed", message, { data: { reason } });
58
+ }
59
+ /** Starts the worker and waits for its handshake. */
60
+ export async function connect(options = {}) {
61
+ const client = new WorkerClient(options);
62
+ await client.start(options.signal);
63
+ return client;
64
+ }
65
+ /** A connection to one Lamina PDF worker. */
66
+ export class WorkerClient {
67
+ #factory;
68
+ #init;
69
+ #pending = new Map();
70
+ #emitter = new Emitter();
71
+ #onDiscard;
72
+ /** The worker once its handshake succeeded; undefined while starting, stopped or crashed. */
73
+ #worker;
74
+ /** The handshake in progress (calls made meanwhile wait for it), and how `#stop` ends it. */
75
+ #starting;
76
+ #cancelStart;
77
+ /**
78
+ * Bumped for each worker: a handle remembers the generation it was made in, so a handle of a
79
+ * worker that's gone is `disposed` instead of reaching the new worker's objects.
80
+ */
81
+ #generation = 0;
82
+ #nextId = 1;
83
+ /** @internal Use {@link connect}. */
84
+ constructor(options) {
85
+ const { worker } = options;
86
+ if (typeof worker === "function") {
87
+ this.#factory = worker;
88
+ }
89
+ else {
90
+ // A given Worker serves the first start; restart() then needs a factory.
91
+ let given = worker;
92
+ this.#factory = () => {
93
+ if (given !== undefined) {
94
+ const w = given;
95
+ given = undefined;
96
+ return w;
97
+ }
98
+ if (worker !== undefined) {
99
+ throw crashed("restart() needs a worker factory: pass `worker: () => new Worker(…)`", "terminated");
100
+ }
101
+ return defaultWorker();
102
+ };
103
+ }
104
+ this.#init = options.init;
105
+ this.#onDiscard = options.onDiscard ?? closeBitmaps;
106
+ }
107
+ /** @internal Starts a worker and checks its handshake. */
108
+ start(signal) {
109
+ const starting = this.#handshake(signal).finally(() => {
110
+ if (this.#starting === starting)
111
+ this.#starting = undefined;
112
+ });
113
+ this.#starting = starting;
114
+ return starting;
115
+ }
116
+ async #handshake(signal) {
117
+ if (signal?.aborted)
118
+ throw packageError("cancelled", "connecting was cancelled", { cause: signal.reason });
119
+ const generation = ++this.#generation;
120
+ const worker = this.#factory();
121
+ let onAbort;
122
+ try {
123
+ const welcome = await new Promise((resolve, reject) => {
124
+ onAbort = () => reject(packageError("cancelled", "connecting was cancelled", { cause: signal?.reason }));
125
+ signal?.addEventListener("abort", onAbort, { once: true });
126
+ this.#cancelStart = reject;
127
+ worker.onmessage = (event) => {
128
+ if (event.data.kind === "welcome")
129
+ resolve(event.data);
130
+ };
131
+ worker.onerror = (event) => {
132
+ event.preventDefault();
133
+ reject(crashed("the worker failed to start", "error"));
134
+ };
135
+ worker.onmessageerror = () => reject(crashed("the worker's answer couldn't be read", "messageerror"));
136
+ const hello = {
137
+ kind: "hello",
138
+ client: HANDSHAKE,
139
+ ...(this.#init === undefined ? {} : { init: sendableInit(this.#init) }),
140
+ };
141
+ try {
142
+ worker.postMessage(hello);
143
+ }
144
+ catch (e) {
145
+ reject(packageError("invalid-argument", "connect()'s `init` can't be sent to the worker", { cause: e }));
146
+ }
147
+ });
148
+ if (welcome.worker.protocol !== HANDSHAKE.protocol || welcome.worker.version !== HANDSHAKE.version) {
149
+ throw packageError("worker-version-mismatch", "the worker is from another @laminapdf/sdk build", {
150
+ data: { expected: HANDSHAKE, actual: welcome.worker },
151
+ });
152
+ }
153
+ if (welcome.error !== undefined)
154
+ throw rebuild(welcome.error);
155
+ }
156
+ catch (e) {
157
+ worker.terminate();
158
+ throw e;
159
+ }
160
+ finally {
161
+ this.#cancelStart = undefined;
162
+ if (onAbort !== undefined)
163
+ signal?.removeEventListener("abort", onAbort);
164
+ }
165
+ if (generation !== this.#generation) {
166
+ // terminate() or another start() came first: this worker is not wanted any more.
167
+ worker.terminate();
168
+ throw crashed("the worker was stopped while it started", "terminated");
169
+ }
170
+ worker.onmessage = (event) => this.#receive(event.data);
171
+ worker.onerror = (event) => {
172
+ event.preventDefault();
173
+ this.#crash("error");
174
+ };
175
+ worker.onmessageerror = () => this.#crash("messageerror");
176
+ this.#worker = worker;
177
+ }
178
+ #receive(message) {
179
+ switch (message.kind) {
180
+ case "result": {
181
+ const pending = this.#pending.get(message.id);
182
+ // A late answer to a call already rejected (aborted or crashed) is dropped.
183
+ if (pending === undefined) {
184
+ if (message.ok)
185
+ this.#onDiscard(message.result);
186
+ return;
187
+ }
188
+ this.#pending.delete(message.id);
189
+ if (message.ok)
190
+ pending.resolve(message.result);
191
+ else
192
+ pending.reject(rebuild(message.error));
193
+ return;
194
+ }
195
+ case "event":
196
+ this.#emitter.emit("event", { name: message.name, data: message.data });
197
+ return;
198
+ case "progress":
199
+ this.#pending.get(message.id)?.onProgress?.(message.progress);
200
+ return;
201
+ case "crashed":
202
+ this.#crash(message.reason);
203
+ return;
204
+ case "welcome":
205
+ return;
206
+ }
207
+ }
208
+ /** Ends the current worker and rejects its pending calls; `notify` fires the `crashed` listeners. */
209
+ #stop(reason, notify) {
210
+ const worker = this.#worker;
211
+ this.#worker = undefined;
212
+ // Handles of this worker, and a start in progress, are now stale.
213
+ this.#generation++;
214
+ worker?.terminate();
215
+ // A worker still in its handshake (a stalled `init()`) is ended too.
216
+ this.#cancelStart?.(crashed("the worker was stopped while it started", reason));
217
+ const pending = [...this.#pending.values()];
218
+ this.#pending.clear();
219
+ for (const p of pending)
220
+ p.reject(crashed("the worker stopped", reason));
221
+ if (notify)
222
+ this.#emitter.emit("crashed", reason);
223
+ }
224
+ #crash(reason) {
225
+ if (this.#worker === undefined)
226
+ return;
227
+ this.#stop(reason, true);
228
+ }
229
+ on(event, listener) {
230
+ if (event === "crashed")
231
+ return this.#emitter.on("crashed", listener);
232
+ if (event === "event") {
233
+ const l = listener;
234
+ return this.#emitter.on("event", ({ name, data }) => l(name, data));
235
+ }
236
+ throw new TypeError(`unknown event ${String(event)}`);
237
+ }
238
+ /**
239
+ * Calls an extension method in the worker (for packages that extend it with `serve(…)`, such
240
+ * as `@laminapdf/viewer`). Same cancellation, transfers and errors as every other call.
241
+ */
242
+ request(method, params, options = {}) {
243
+ return this.call(0, method, params, options);
244
+ }
245
+ /** Ends the worker; pending calls reject with `worker-crashed` (no `crashed` event). */
246
+ terminate() {
247
+ this.#stop("terminated", false);
248
+ }
249
+ /** Starts a new worker (after a crash, or to reset); handles of the old one are `disposed`. */
250
+ async restart(signal) {
251
+ this.terminate();
252
+ await this.start(signal);
253
+ }
254
+ /** @internal The current worker generation (handles record it). */
255
+ get generation() {
256
+ return this.#generation;
257
+ }
258
+ /**
259
+ * @internal Posts a call and waits for its answer. `generation`, for a handle, is the one it
260
+ * was made in. Calls made while a worker starts wait for its handshake.
261
+ */
262
+ async call(handle, method, params, options = {}, generation) {
263
+ if (this.#worker === undefined && this.#starting !== undefined) {
264
+ // The start's own error reaches its caller; here, the call just finds no worker. The
265
+ // call's signal still rejects it meanwhile.
266
+ await waitWithSignal(this.#starting.catch(() => { }), options.signal);
267
+ }
268
+ const worker = this.#worker;
269
+ if (worker === undefined) {
270
+ throw crashed("the worker isn't running: call restart()", "terminated");
271
+ }
272
+ if (generation !== undefined && generation !== this.#generation) {
273
+ throw packageError("disposed", "the handle belongs to a worker that has stopped");
274
+ }
275
+ const { signal, onProgress, transfer } = options;
276
+ if (signal?.aborted) {
277
+ throw packageError("cancelled", "the call was cancelled", { cause: signal.reason });
278
+ }
279
+ const id = this.#nextId++;
280
+ return new Promise((resolve, reject) => {
281
+ const onAbort = () => {
282
+ if (!this.#pending.delete(id))
283
+ return;
284
+ worker.postMessage({ kind: "cancel", id });
285
+ reject(packageError("cancelled", "the call was cancelled", { cause: signal?.reason }));
286
+ };
287
+ const settle = (f) => (value) => {
288
+ signal?.removeEventListener("abort", onAbort);
289
+ f(value);
290
+ };
291
+ signal?.addEventListener("abort", onAbort, { once: true });
292
+ this.#pending.set(id, { resolve: settle(resolve), reject: settle(reject), onProgress });
293
+ const { priority, key } = options;
294
+ const request = {
295
+ kind: "call",
296
+ id,
297
+ handle,
298
+ method,
299
+ params,
300
+ ...(priority === undefined ? {} : { priority }),
301
+ ...(key === undefined ? {} : { key }),
302
+ };
303
+ // Only a buffer the parameter covers whole moves; a subarray or a shared buffer is copied.
304
+ const buffers = transfer === true ? params.flatMap(whole) : [];
305
+ try {
306
+ worker.postMessage(request, buffers);
307
+ }
308
+ catch (e) {
309
+ // A parameter that can't be cloned or transferred: nothing reached the worker.
310
+ this.#pending
311
+ .get(id)
312
+ ?.reject(packageError("invalid-argument", `a parameter of ${method} can't be sent to the worker`, { cause: e }));
313
+ this.#pending.delete(id);
314
+ }
315
+ });
316
+ }
317
+ /**
318
+ * Opens `bytes` in the worker. They are copied unless `transfer: true` (then the caller's
319
+ * buffer is detached). Opening is one synchronous call there: `signal` drops it if it hasn't
320
+ * started, but can't stop it midway (`terminate()` is the hard stop). An open aborted midway
321
+ * still rejects with `cancelled`, and the worker frees the document it opened.
322
+ */
323
+ async open(bytes, options = {}) {
324
+ const { signal, onProgress, transfer, ...open } = options;
325
+ const ref = await this.call(0, "open", [bytes, open], defined({ signal, onProgress, transfer }));
326
+ return this.#remoteDocument(ref);
327
+ }
328
+ /** Opens a remote file by HTTP range requests: the worker fetches what each call needs. */
329
+ async openUrl(url, options = {}) {
330
+ const { signal, onProgress, transfer: _, ...open } = options;
331
+ const ref = await this.call(0, "openUrl", [url, open], defined({ signal, onProgress }));
332
+ return this.#remoteDocument(ref);
333
+ }
334
+ /** Loads the text module in the worker (`loadText()`). */
335
+ async loadText(options) {
336
+ await this.call(0, "loadText", [], options);
337
+ }
338
+ /** Loads the extract module in the worker (`loadExtract()`), for `page.text()`. */
339
+ async loadExtract(options) {
340
+ await this.call(0, "loadExtract", [], options);
341
+ }
342
+ #remoteDocument(ref) {
343
+ // A stop rejects every pending call, so an answer comes from the current worker.
344
+ const generation = this.#generation;
345
+ let closed = false;
346
+ // Idempotent, like Document.free(): a second close, or one after the worker stopped, is a no-op.
347
+ const close = async () => {
348
+ if (closed)
349
+ return;
350
+ closed = true;
351
+ if (generation !== this.#generation || this.#worker === undefined)
352
+ return;
353
+ await this.call(ref.$handle, "close", [], {}, generation);
354
+ };
355
+ const incoming = (value) => {
356
+ if (isHandleRef(value))
357
+ return remote(this, value.$handle, generation, PAGE_METHODS, undefined, incoming);
358
+ if (isPageTextData(value))
359
+ return new PageText(value.$pageText);
360
+ return value;
361
+ };
362
+ return remote(this, ref.$handle, generation, DOCUMENT_METHODS, close, incoming);
363
+ }
364
+ }
365
+ /** Waits for `p`, or rejects with `cancelled` when `signal` aborts first. */
366
+ async function waitWithSignal(p, signal) {
367
+ if (signal === undefined) {
368
+ await p;
369
+ return;
370
+ }
371
+ let onAbort;
372
+ const aborted = new Promise((_, reject) => {
373
+ onAbort = () => reject(packageError("cancelled", "the call was cancelled", { cause: signal.reason }));
374
+ if (signal.aborted)
375
+ onAbort();
376
+ else
377
+ signal.addEventListener("abort", onAbort, { once: true });
378
+ });
379
+ try {
380
+ await Promise.race([p, aborted]);
381
+ }
382
+ finally {
383
+ if (onAbort !== undefined)
384
+ signal.removeEventListener("abort", onAbort);
385
+ }
386
+ }
387
+ /** A proxy whose members (by `arity`) post calls on `handle` of worker `generation`. */
388
+ function remote(client, handle, generation, arity, close, incoming) {
389
+ return new Proxy(Object.create(null), {
390
+ get(_, key) {
391
+ if (key === ASYNC_DISPOSE || (close !== undefined && key === "close"))
392
+ return close;
393
+ if (typeof key !== "string" || !Object.hasOwn(arity, key))
394
+ return undefined;
395
+ const n = arity[key] ?? 0;
396
+ return async (...args) => {
397
+ const options = (args.length > n ? args[n] : undefined);
398
+ return incoming(await client.call(handle, key, args.slice(0, n), options, generation));
399
+ };
400
+ },
401
+ has(_, key) {
402
+ return (key === ASYNC_DISPOSE ||
403
+ (typeof key === "string" && (Object.hasOwn(arity, key) || (close !== undefined && key === "close"))));
404
+ },
405
+ });
406
+ }
407
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/worker/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Listeners by event, for the events in `E` (event name → the data a listener gets). A listener
3
+ * that throws is reported asynchronously and doesn't stop the others.
4
+ */
5
+ export declare class Emitter<E extends object> {
6
+ #private;
7
+ /** Listens for `event`; returns a function that stops listening. */
8
+ on<K extends keyof E>(event: K, listener: (data: E[K]) => void): () => void;
9
+ /** Calls every listener of `event` with `data`. */
10
+ emit<K extends keyof E>(event: K, data: E[K]): void;
11
+ }
12
+ //# sourceMappingURL=emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../src/worker/emitter.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,qBAAa,OAAO,CAAC,CAAC,SAAS,MAAM;;IAGnC,oEAAoE;IACpE,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAS1E;IAED,mDAAmD;IACnD,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAUlD;CACF"}
@@ -0,0 +1,34 @@
1
+ // The typed event emitter the worker client uses, exported from `@laminapdf/sdk/worker` for the
2
+ // packages that wrap the client (the viewer's ViewerClient).
3
+ /**
4
+ * Listeners by event, for the events in `E` (event name → the data a listener gets). A listener
5
+ * that throws is reported asynchronously and doesn't stop the others.
6
+ */
7
+ export class Emitter {
8
+ #listeners = new Map();
9
+ /** Listens for `event`; returns a function that stops listening. */
10
+ on(event, listener) {
11
+ let set = this.#listeners.get(event);
12
+ if (set === undefined) {
13
+ set = new Set();
14
+ this.#listeners.set(event, set);
15
+ }
16
+ const l = listener;
17
+ set.add(l);
18
+ return () => set.delete(l);
19
+ }
20
+ /** Calls every listener of `event` with `data`. */
21
+ emit(event, data) {
22
+ for (const listener of this.#listeners.get(event) ?? []) {
23
+ try {
24
+ listener(data);
25
+ }
26
+ catch (e) {
27
+ queueMicrotask(() => {
28
+ throw e;
29
+ });
30
+ }
31
+ }
32
+ }
33
+ }
34
+ //# sourceMappingURL=emitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/worker/emitter.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,6DAA6D;AAE7D;;;GAGG;AACH,MAAM,OAAO,OAAO;IACT,UAAU,GAAG,IAAI,GAAG,EAAuC,CAAC;IAErE,oEAAoE;IACpE,EAAE,CAAoB,KAAQ,EAAE,QAA8B;QAC5D,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,CAAC,GAAG,QAAiC,CAAC;QAC5C,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACX,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED,mDAAmD;IACnD,IAAI,CAAoB,KAAQ,EAAE,IAAU;QAC1C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACxD,IAAI,CAAC;gBACF,QAA8B,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,cAAc,CAAC,GAAG,EAAE;oBAClB,MAAM,CAAC,CAAC;gBACV,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=entry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../src/worker/entry.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ // `dist/worker/entry.js`, the worker `connect()` starts: the protocol with no extension.
2
+ import { serve } from "./server.js";
3
+ serve();
4
+ //# sourceMappingURL=entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/worker/entry.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,KAAK,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ export type { ConnectOptions, RemoteHttpOptions, WorkerInitOptions, WorkerWasmSource } from "./client.js";
2
+ export { connect, WorkerClient } from "./client.js";
3
+ export { Emitter } from "./emitter.js";
4
+ export { PROTOCOL_VERSION } from "./protocol.js";
5
+ export type { ExcludedDocumentMembers, ExcludedPageMembers } from "./support.js";
6
+ export type { CallOptions, RemoteDocument, RemoteMember, RemotePage, RemoteResult, RequestOptions } from "./types.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1G,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACjF,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { connect, WorkerClient } from "./client.js";
2
+ export { Emitter } from "./emitter.js";
3
+ export { PROTOCOL_VERSION } from "./protocol.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,82 @@
1
+ import type { Diagnostic } from "../errors.js";
2
+ import type { ErrorCode } from "../generated/codes.js";
3
+ /** Bumped whenever a message's shape changes (2: priorities, coalescing keys, extension events). */
4
+ export declare const PROTOCOL_VERSION = 2;
5
+ /** What both ends compare on connect. */
6
+ export interface Handshake {
7
+ readonly protocol: number;
8
+ readonly version: string;
9
+ }
10
+ export declare const HANDSHAKE: Handshake;
11
+ /** The page's first message: the client's handshake and how to `init()`. */
12
+ export interface Hello {
13
+ readonly kind: "hello";
14
+ readonly client: Handshake;
15
+ readonly init?: unknown;
16
+ }
17
+ /** The worker's answer to `hello`: its own handshake, and whether `init()` worked. */
18
+ interface Welcome {
19
+ readonly kind: "welcome";
20
+ readonly worker: Handshake;
21
+ readonly error?: Diagnostic<ErrorCode>;
22
+ }
23
+ /** A call: `method` on the handle `handle` (0 is the client itself). */
24
+ export interface Request {
25
+ readonly kind: "call";
26
+ readonly id: number;
27
+ readonly handle: number;
28
+ readonly method: string;
29
+ readonly params: readonly unknown[];
30
+ /** Higher runs first (default 0); FIFO within one priority. */
31
+ readonly priority?: number;
32
+ /** Calls with the same key are coalesced: they run once, and each caller gets its own answer. */
33
+ readonly key?: string;
34
+ }
35
+ /** Stops call `id`: dropped if it hasn't started, cancelled at its next step if it is stepped. */
36
+ export interface Cancel {
37
+ readonly kind: "cancel";
38
+ readonly id: number;
39
+ }
40
+ type Response = {
41
+ readonly kind: "result";
42
+ readonly id: number;
43
+ readonly ok: true;
44
+ readonly result: unknown;
45
+ } | {
46
+ readonly kind: "result";
47
+ readonly id: number;
48
+ readonly ok: false;
49
+ readonly error: Diagnostic<ErrorCode>;
50
+ };
51
+ /** Fire-and-forget news from the worker. */
52
+ type Event = {
53
+ readonly kind: "progress";
54
+ readonly id: number;
55
+ readonly progress: unknown;
56
+ } | {
57
+ readonly kind: "crashed";
58
+ readonly reason: string;
59
+ }
60
+ /** An extension's own news (`emit()` in the worker, `on("event")` on the page). */
61
+ | {
62
+ readonly kind: "event";
63
+ readonly name: string;
64
+ readonly data: unknown;
65
+ };
66
+ export type ToWorker = Hello | Request | Cancel;
67
+ export type FromWorker = Welcome | Response | Event;
68
+ /** A handle the worker made, as the page sees it: its number and what it is. */
69
+ export interface HandleRef {
70
+ readonly $handle: number;
71
+ readonly type: "document" | "page";
72
+ /** Values known when the handle was made (a page's `id` and `index`). */
73
+ readonly fields?: Readonly<Record<string, unknown>>;
74
+ }
75
+ export declare function isHandleRef(value: unknown): value is HandleRef;
76
+ /** A `PageText` as data: the raw arrays the page rebuilds it from. */
77
+ export interface PageTextData {
78
+ readonly $pageText: unknown;
79
+ }
80
+ export declare function isPageTextData(value: unknown): value is PageTextData;
81
+ export {};
82
+ //# sourceMappingURL=protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/worker/protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { VERSION } from "../version.js";
2
+ /** Bumped whenever a message's shape changes (2: priorities, coalescing keys, extension events). */
3
+ export const PROTOCOL_VERSION = 2;
4
+ export const HANDSHAKE = Object.freeze({ protocol: PROTOCOL_VERSION, version: VERSION });
5
+ export function isHandleRef(value) {
6
+ return typeof value === "object" && value !== null && typeof value.$handle === "number";
7
+ }
8
+ export function isPageTextData(value) {
9
+ return typeof value === "object" && value !== null && "$pageText" in value;
10
+ }
11
+ //# sourceMappingURL=protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/worker/protocol.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,oGAAoG;AACpG,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAQlC,MAAM,CAAC,MAAM,SAAS,GAAc,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAyDpG,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAQ,KAA+B,CAAC,OAAO,KAAK,QAAQ,CAAC;AACrH,CAAC;AAOD,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,WAAW,IAAI,KAAK,CAAC;AAC7E,CAAC"}