@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,36 @@
1
+ import type { DocumentInfo, Op } from "./types.js";
2
+ /** The rotations `/Rotate` allows. */
3
+ export type Rotation = 0 | 90 | 180 | 270;
4
+ /** An Info patch: a string sets the entry, `null` removes it, a missing key leaves it alone. */
5
+ export type InfoPatch = {
6
+ readonly [K in keyof DocumentInfo]?: string | null;
7
+ };
8
+ /** Collects the ops of one {@link Document.transact} call. */
9
+ export declare class Transaction {
10
+ #private;
11
+ /** The ops collected so far. */
12
+ get ops(): readonly Op[];
13
+ /** @internal Ends the transaction: the handle takes no more ops. */
14
+ close(): void;
15
+ /**
16
+ * Adds `op` to the transaction.
17
+ *
18
+ * @throws {@link LaminaPdfError} `no-transaction` after `transact` returned.
19
+ */
20
+ apply(op: Op): this;
21
+ /**
22
+ * Patches the Info dictionary (`setInfo`).
23
+ *
24
+ * @param patch - the entries to set (a string) or remove (`null`).
25
+ * @param at - the modification date to write (`D:20261030120000Z`); omitted, none is written.
26
+ */
27
+ setInfo(patch: InfoPatch, at?: string): this;
28
+ /**
29
+ * Sets a page's `/Rotate` (`rotatePage`).
30
+ *
31
+ * @param page - the page's ID (`doc.page(0).id`).
32
+ * @param rotate - 0, 90, 180 or 270 degrees.
33
+ */
34
+ rotatePage(page: string, rotate: Rotation): this;
35
+ }
36
+ //# sourceMappingURL=transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAEnD,sCAAsC;AACtC,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC;AAE1C,gGAAgG;AAChG,MAAM,MAAM,SAAS,GAAG;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;CAAE,CAAC;AAE/E,8DAA8D;AAC9D,qBAAa,WAAW;;IAItB,gCAAgC;IAChC,IAAI,GAAG,IAAI,SAAS,EAAE,EAAE,CAEvB;IAED,oEAAoE;IACpE,KAAK,IAAI,IAAI,CAEZ;IAED;;;;OAIG;IACH,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAMlB;IAED;;;;;OAKG;IACH,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAE3C;IAED;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI,CAE/C;CACF"}
@@ -0,0 +1,47 @@
1
+ // The handle `Document.transact` passes to its callback (ADR 0006 §2): a closure can't cross the
2
+ // WASM boundary, so the handle collects ops and the document applies them as one transaction.
3
+ import { packageError } from "./errors.js";
4
+ /** Collects the ops of one {@link Document.transact} call. */
5
+ export class Transaction {
6
+ #ops = [];
7
+ #open = true;
8
+ /** The ops collected so far. */
9
+ get ops() {
10
+ return this.#ops;
11
+ }
12
+ /** @internal Ends the transaction: the handle takes no more ops. */
13
+ close() {
14
+ this.#open = false;
15
+ }
16
+ /**
17
+ * Adds `op` to the transaction.
18
+ *
19
+ * @throws {@link LaminaPdfError} `no-transaction` after `transact` returned.
20
+ */
21
+ apply(op) {
22
+ if (!this.#open) {
23
+ throw packageError("no-transaction", "the transaction has ended");
24
+ }
25
+ this.#ops.push(op);
26
+ return this;
27
+ }
28
+ /**
29
+ * Patches the Info dictionary (`setInfo`).
30
+ *
31
+ * @param patch - the entries to set (a string) or remove (`null`).
32
+ * @param at - the modification date to write (`D:20261030120000Z`); omitted, none is written.
33
+ */
34
+ setInfo(patch, at) {
35
+ return this.apply({ op: "setInfo", args: at === undefined ? { patch } : { patch, at } });
36
+ }
37
+ /**
38
+ * Sets a page's `/Rotate` (`rotatePage`).
39
+ *
40
+ * @param page - the page's ID (`doc.page(0).id`).
41
+ * @param rotate - 0, 90, 180 or 270 degrees.
42
+ */
43
+ rotatePage(page, rotate) {
44
+ return this.apply({ op: "rotatePage", args: { page, rotate } });
45
+ }
46
+ }
47
+ //# sourceMappingURL=transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,8FAA8F;AAC9F,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAS3C,8DAA8D;AAC9D,MAAM,OAAO,WAAW;IACb,IAAI,GAAS,EAAE,CAAC;IACzB,KAAK,GAAG,IAAI,CAAC;IAEb,gCAAgC;IAChC,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,oEAAoE;IACpE,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,EAAM;QACV,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,YAAY,CAAC,gBAAgB,EAAE,2BAA2B,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,KAAgB,EAAE,EAAW;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAQ,CAAC,CAAC;IACjG,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,IAAY,EAAE,MAAgB;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAQ,CAAC,CAAC;IACxE,CAAC;CACF"}
@@ -0,0 +1,79 @@
1
+ import type { AfRelationshipInit, AlignInit, AttachmentInit, BuildOptionsInit, DirectionInit, DocumentInfoJs, EditedJs, FitInit, LimitsInit, LineBoxJs, LinkTargetInit, MetadataInit, Op as OpJs, OutlineEntryInit, OverflowInit, PageInfoJs, PageLabelInit, ProfileInit, ProgressJs, RectJs, RenderModeInit, SaveOptionsInit, SaveReportJs, TextLayoutJs, TextRunJs, UndoOutcomeJs, ViewerPreferencesInit } from "@laminapdf/wasm/text";
2
+ /** An edit (ADR 0006 §6: `{ op: "setInfo" | "rotatePage", args }`), as in `fixtures/ops/v1`. */
3
+ export type Op = OpJs;
4
+ /** An op log: `{ v: 1, ops }`. */
5
+ export interface OpLog {
6
+ readonly v: 1;
7
+ readonly ops: readonly Op[];
8
+ }
9
+ /** `Limits` (ADR 0003 §3); each one left out keeps its default. */
10
+ export type Limits = LimitsInit;
11
+ /** Options for {@link Document.open}. */
12
+ export interface OpenOptions {
13
+ /** The user or owner password of an encrypted document (normalised to NFKC, ADR 0016 §7). */
14
+ readonly password?: string;
15
+ /** Refuse files that need repair (`strict`). */
16
+ readonly strict?: boolean;
17
+ /** Resource limits. */
18
+ readonly limits?: Limits;
19
+ }
20
+ /** Options for saving. */
21
+ export type SaveOptions = SaveOptionsInit;
22
+ /** What a save wrote. */
23
+ export type SaveReport = SaveReportJs;
24
+ /** A page's facts: index, ID, displayed size in points, rotation, label. */
25
+ export type PageInfo = PageInfoJs;
26
+ /** The Info dictionary's text entries (document text). */
27
+ export type DocumentInfo = DocumentInfoJs;
28
+ /** The pages an edit touched. */
29
+ export type Edited = EditedJs;
30
+ /** How an undo or redo went. */
31
+ export type UndoOutcome = UndoOutcomeJs;
32
+ /** A save job's progress. */
33
+ export type Progress = ProgressJs;
34
+ /** Options for a new document: version, fixed file ID (32 hex digits), producer, creation date. */
35
+ export type BuildOptions = BuildOptionsInit;
36
+ /** A conformance profile: `PDF/UA-1` (accessible), `PDF/A-2b`, `PDF/A-2u` or `PDF/A-3b` (archival). */
37
+ export type Profile = ProfileInit;
38
+ /** How an attached file relates to the document (`/AFRelationship`). */
39
+ export type AfRelationship = AfRelationshipInit;
40
+ /** An attached file's relationship, description and modification date. */
41
+ export type AttachmentOptions = AttachmentInit;
42
+ /** Where a link or outline item goes. */
43
+ export type LinkTarget = LinkTargetInit;
44
+ /** How a destination shows its page. */
45
+ export type Fit = FitInit;
46
+ /** An outline (bookmarks) item with its children. */
47
+ export type OutlineEntry = OutlineEntryInit;
48
+ /** A page-label range, by its first page. */
49
+ export type PageLabel = PageLabelInit;
50
+ /** The document's metadata (Info and XMP). */
51
+ export type Metadata = MetadataInit;
52
+ /** How viewers present the document. */
53
+ export type ViewerPreferences = ViewerPreferencesInit;
54
+ /** A rectangle returned by the builder (page space). */
55
+ export type BoxRect = RectJs;
56
+ /** What a text run measures. */
57
+ export type TextRunInfo = TextRunJs;
58
+ /** How a text box laid its text out. */
59
+ export type TextLayout = TextLayoutJs;
60
+ /** A line of a text box. */
61
+ export type LineBox = LineBoxJs;
62
+ /** Text alignment in a text box. */
63
+ export type Align = AlignInit;
64
+ /** Paragraph direction. */
65
+ export type Direction = DirectionInit;
66
+ /** What happens to text that doesn't fit a text box. */
67
+ export type Overflow = OverflowInit;
68
+ /** Text rendering mode. */
69
+ export type RenderMode = RenderModeInit;
70
+ /**
71
+ * A colour: `[gray]`, `[r, g, b]` or `[c, m, y, k]` with components from 0 to 1, or `"#rrggbb"`
72
+ * / `"#rgb"` (DeviceRGB).
73
+ */
74
+ export type Color = string | readonly [number] | readonly [number, number, number] | readonly [number, number, number, number];
75
+ /** A point in page space (points from the top-left of the displayed page, y down; ADR 0027). */
76
+ export type Point = readonly [x: number, y: number];
77
+ /** A rectangle in page space: left, top, width, height. */
78
+ export type Rect = readonly [x: number, y: number, width: number, height: number];
79
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ /** `@laminapdf/sdk`'s version. */
2
+ export declare const VERSION = "0.2.0-alpha.3";
3
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAIA,kCAAkC;AAClC,eAAO,MAAM,OAAO,kBAAkB,CAAC"}
@@ -0,0 +1,6 @@
1
+ // The package version the worker handshake compares: the client and the worker it starts
2
+ // must be one build. `cargo xtask version sync` writes it from package.json (ADR 0017), and
3
+ // test/version.test.ts checks the two agree.
4
+ /** `@laminapdf/sdk`'s version. */
5
+ export const VERSION = "0.2.0-alpha.3";
6
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,4FAA4F;AAC5F,6CAA6C;AAE7C,kCAAkC;AAClC,MAAM,CAAC,MAAM,OAAO,GAAG,eAAe,CAAC"}
@@ -0,0 +1,88 @@
1
+ import type { HttpRangeOptions } from "../source/http.js";
2
+ import type { RangeOptions } from "../source/range.js";
3
+ import type { OpenOptions } from "../types.js";
4
+ import type { CallOptions, RemoteDocument, RequestOptions } from "./types.js";
5
+ /**
6
+ * `openUrl`'s options besides `OpenOptions`: `httpRangeSource`'s without a custom `fetch` (a
7
+ * function can't reach the worker), and `openRange`'s (`budget`, `readahead`, `maxRounds`).
8
+ * `signal` is the call's (`CallOptions`), and cancels the fetches in flight too.
9
+ */
10
+ export type RemoteHttpOptions = Omit<HttpRangeOptions, "fetch" | "signal"> & Omit<RangeOptions, "signal">;
11
+ /**
12
+ * Where the worker loads a WebAssembly module from: what can be sent to a worker. A string or
13
+ * `URL` is resolved against the page (not the worker file) before it is sent. A `Response`
14
+ * can't cross: pass its bytes, or a `WebAssembly.Module`.
15
+ */
16
+ export type WorkerWasmSource = string | URL | ArrayBuffer | ArrayBufferView | WebAssembly.Module;
17
+ /** `init()`'s options, with sources the worker can receive. */
18
+ export interface WorkerInitOptions {
19
+ readonly module?: WorkerWasmSource;
20
+ readonly text?: boolean | WorkerWasmSource;
21
+ readonly extract?: boolean | WorkerWasmSource;
22
+ }
23
+ /** `connect()`'s options: the worker to start, a signal to stop connecting, the WebAssembly to load, and what to do with late answers. */
24
+ export interface ConnectOptions {
25
+ /**
26
+ * The worker to use, or a function that makes one (needed for `restart()`). Omitted, the
27
+ * package's own worker file. Pass one for a CSP that forbids the bundled URL, or to serve the
28
+ * worker yourself (from the same `@laminapdf/sdk` build: the handshake checks).
29
+ */
30
+ readonly worker?: Worker | (() => Worker);
31
+ /** Aborts connecting. */
32
+ readonly signal?: AbortSignal;
33
+ /** What the worker passes to `init()`: where the WebAssembly comes from, and options. */
34
+ readonly init?: WorkerWasmSource | WorkerInitOptions;
35
+ /**
36
+ * Called with each answer that arrives for a call already rejected (aborted, or after a crash
37
+ * or terminate), which nobody will read. The default closes the ImageBitmaps in it (at the top
38
+ * level or one level down), so a cancelled render's bitmap is freed, never painted.
39
+ */
40
+ readonly onDiscard?: (value: unknown) => void;
41
+ }
42
+ type EventListener = (name: string, data: unknown) => void;
43
+ type CrashListener = (reason: string) => void;
44
+ /** Starts the worker and waits for its handshake. */
45
+ export declare function connect(options?: ConnectOptions): Promise<WorkerClient>;
46
+ /** A connection to one Lamina PDF worker. */
47
+ export declare class WorkerClient {
48
+ #private;
49
+ /** @internal Use {@link connect}. */
50
+ constructor(options: ConnectOptions);
51
+ /** @internal Starts a worker and checks its handshake. */
52
+ start(signal?: AbortSignal): Promise<void>;
53
+ /** Listens for the worker crashing (`reason`: `error`, `messageerror` or `trap`; not `terminate()`). */
54
+ on(event: "crashed", listener: CrashListener): () => void;
55
+ /** Listens for an extension's events (`emit()` in the worker). */
56
+ on(event: "event", listener: EventListener): () => void;
57
+ /**
58
+ * Calls an extension method in the worker (for packages that extend it with `serve(…)`, such
59
+ * as `@laminapdf/viewer`). Same cancellation, transfers and errors as every other call.
60
+ */
61
+ request(method: string, params: readonly unknown[], options?: RequestOptions): Promise<unknown>;
62
+ /** Ends the worker; pending calls reject with `worker-crashed` (no `crashed` event). */
63
+ terminate(): void;
64
+ /** Starts a new worker (after a crash, or to reset); handles of the old one are `disposed`. */
65
+ restart(signal?: AbortSignal): Promise<void>;
66
+ /** @internal The current worker generation (handles record it). */
67
+ get generation(): number;
68
+ /**
69
+ * @internal Posts a call and waits for its answer. `generation`, for a handle, is the one it
70
+ * was made in. Calls made while a worker starts wait for its handshake.
71
+ */
72
+ call(handle: number, method: string, params: readonly unknown[], options?: CallOptions, generation?: number): Promise<unknown>;
73
+ /**
74
+ * Opens `bytes` in the worker. They are copied unless `transfer: true` (then the caller's
75
+ * buffer is detached). Opening is one synchronous call there: `signal` drops it if it hasn't
76
+ * started, but can't stop it midway (`terminate()` is the hard stop). An open aborted midway
77
+ * still rejects with `cancelled`, and the worker frees the document it opened.
78
+ */
79
+ open(bytes: Uint8Array | ArrayBuffer, options?: OpenOptions & CallOptions): Promise<RemoteDocument>;
80
+ /** Opens a remote file by HTTP range requests: the worker fetches what each call needs. */
81
+ openUrl(url: string, options?: OpenOptions & RemoteHttpOptions & CallOptions): Promise<RemoteDocument>;
82
+ /** Loads the text module in the worker (`loadText()`). */
83
+ loadText(options?: CallOptions): Promise<void>;
84
+ /** Loads the extract module in the worker (`loadExtract()`), for `page.text()`. */
85
+ loadExtract(options?: CallOptions): Promise<void>;
86
+ }
87
+ export {};
88
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/worker/client.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,aAAa,CAAC;AAczD,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAK9E;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,EAAE,OAAO,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AAE1G;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,GAAG,GAAG,WAAW,GAAG,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC;AAEjG,+DAA+D;AAC/D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAC;IAC3C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAC;CAC/C;AA2BD,0IAA0I;AAC1I,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAC1C,yBAAyB;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,yFAAyF;IACzF,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,iBAAiB,CAAC;IACrD;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/C;AAWD,KAAK,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;AAQ3D,KAAK,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;AAc9C,qDAAqD;AACrD,wBAAsB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,CAIjF;AAED,6CAA6C;AAC7C,qBAAa,YAAY;;IAkBvB,qCAAqC;IACrC,YAAY,OAAO,EAAE,cAAc,EAqBlC;IAED,0DAA0D;IAC1D,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAMzC;IA0GD,wGAAwG;IACxG,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,IAAI,CAAC;IAC1D,kEAAkE;IAClE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,IAAI,CAAC;IAUxD;;;OAGG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,OAAO,EAAE,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,CAElG;IAED,wFAAwF;IACxF,SAAS,IAAI,IAAI,CAEhB;IAED,+FAA+F;IACzF,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjD;IAED,mEAAmE;IACnE,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED;;;OAGG;IACG,IAAI,CACR,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,OAAO,EAAE,EAC1B,OAAO,GAAE,WAAgB,EACzB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CA2DlB;IAED;;;;;OAKG;IACG,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,EAAE,OAAO,GAAE,WAAW,GAAG,WAAgB,GAAG,OAAO,CAAC,cAAc,CAAC,CAI5G;IAED,2FAA2F;IACrF,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,WAAW,GAAG,iBAAiB,GAAG,WAAgB,GAAG,OAAO,CAAC,cAAc,CAAC,CAI/G;IAED,0DAA0D;IACpD,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnD;IAED,mFAAmF;IAC7E,WAAW,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtD;CAoBF"}