brewdoc-linux-x64-glibc 0.0.0-stage → 0.3.1

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 (576) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +382 -2
  3. package/binary/_internal/PIL/_avif.cpython-312-x86_64-linux-gnu.so +0 -0
  4. package/binary/_internal/PIL/_imaging.cpython-312-x86_64-linux-gnu.so +0 -0
  5. package/binary/_internal/PIL/_imagingcms.cpython-312-x86_64-linux-gnu.so +0 -0
  6. package/binary/_internal/PIL/_imagingft.cpython-312-x86_64-linux-gnu.so +0 -0
  7. package/binary/_internal/PIL/_imagingmath.cpython-312-x86_64-linux-gnu.so +0 -0
  8. package/binary/_internal/PIL/_imagingtk.cpython-312-x86_64-linux-gnu.so +0 -0
  9. package/binary/_internal/PIL/_webp.cpython-312-x86_64-linux-gnu.so +0 -0
  10. package/binary/_internal/_cffi_backend.cpython-312-x86_64-linux-gnu.so +0 -0
  11. package/binary/_internal/_quickjs.abi3.so +0 -0
  12. package/binary/_internal/base_library.zip +0 -0
  13. package/binary/_internal/brewdoc/_urljs/glue.js +858 -0
  14. package/binary/_internal/brewdoc/_vendor/THIRD_PARTY_NOTICES.txt +342 -0
  15. package/binary/_internal/brewdoc/_vendor/linkedom-worker.js +12650 -0
  16. package/binary/_internal/brewdoc-0.3.1.dist-info/INSTALLER +1 -0
  17. package/binary/_internal/brewdoc-0.3.1.dist-info/METADATA +411 -0
  18. package/binary/_internal/brewdoc-0.3.1.dist-info/RECORD +30 -0
  19. package/binary/_internal/brewdoc-0.3.1.dist-info/REQUESTED +0 -0
  20. package/binary/_internal/brewdoc-0.3.1.dist-info/WHEEL +4 -0
  21. package/binary/_internal/brewdoc-0.3.1.dist-info/direct_url.json +1 -0
  22. package/binary/_internal/brewdoc-0.3.1.dist-info/entry_points.txt +2 -0
  23. package/binary/_internal/brewdoc-0.3.1.dist-info/licenses/LICENSE +21 -0
  24. package/binary/_internal/brewdoc-0.3.1.dist-info/uv_cache.json +1 -0
  25. package/binary/_internal/cffi-2.1.1.dist-info/INSTALLER +1 -0
  26. package/binary/_internal/cffi-2.1.1.dist-info/METADATA +67 -0
  27. package/binary/_internal/cffi-2.1.1.dist-info/RECORD +34 -0
  28. package/binary/_internal/cffi-2.1.1.dist-info/REQUESTED +0 -0
  29. package/binary/_internal/cffi-2.1.1.dist-info/WHEEL +6 -0
  30. package/binary/_internal/cffi-2.1.1.dist-info/entry_points.txt +5 -0
  31. package/binary/_internal/cffi-2.1.1.dist-info/licenses/LICENSE +23 -0
  32. package/binary/_internal/cffi-2.1.1.dist-info/top_level.txt +2 -0
  33. package/binary/_internal/charset_normalizer/cd.cpython-312-x86_64-linux-gnu.so +0 -0
  34. package/binary/_internal/charset_normalizer/md.cpython-312-x86_64-linux-gnu.so +0 -0
  35. package/binary/_internal/charset_normalizer-3.5.2.dist-info/INSTALLER +1 -0
  36. package/binary/_internal/charset_normalizer-3.5.2.dist-info/METADATA +892 -0
  37. package/binary/_internal/charset_normalizer-3.5.2.dist-info/RECORD +24 -0
  38. package/binary/_internal/charset_normalizer-3.5.2.dist-info/REQUESTED +0 -0
  39. package/binary/_internal/charset_normalizer-3.5.2.dist-info/WHEEL +7 -0
  40. package/binary/_internal/charset_normalizer-3.5.2.dist-info/entry_points.txt +2 -0
  41. package/binary/_internal/charset_normalizer-3.5.2.dist-info/licenses/LICENSE +21 -0
  42. package/binary/_internal/charset_normalizer-3.5.2.dist-info/top_level.txt +1 -0
  43. package/binary/_internal/cryptography/hazmat/bindings/_rust.abi3.so +0 -0
  44. package/binary/_internal/cryptography-50.0.2.dist-info/INSTALLER +1 -0
  45. package/binary/_internal/cryptography-50.0.2.dist-info/METADATA +111 -0
  46. package/binary/_internal/cryptography-50.0.2.dist-info/RECORD +122 -0
  47. package/binary/_internal/cryptography-50.0.2.dist-info/REQUESTED +0 -0
  48. package/binary/_internal/cryptography-50.0.2.dist-info/WHEEL +5 -0
  49. package/binary/_internal/cryptography-50.0.2.dist-info/licenses/LICENSE +3 -0
  50. package/binary/_internal/cryptography-50.0.2.dist-info/licenses/LICENSE.APACHE +202 -0
  51. package/binary/_internal/cryptography-50.0.2.dist-info/licenses/LICENSE.BSD +27 -0
  52. package/binary/_internal/cryptography-50.0.2.dist-info/sboms/cryptography-rust.cyclonedx.json +1365 -0
  53. package/binary/_internal/cryptography-50.0.2.dist-info/sboms/sbom.json +43 -0
  54. package/binary/_internal/libXau-154567c4.so.6.0.0 +0 -0
  55. package/binary/_internal/libavif-8a7f9d56.so.16.4.2 +0 -0
  56. package/binary/_internal/libbrotlicommon-53534446.so.1.2.0 +0 -0
  57. package/binary/_internal/libbrotlidec-7e5462ba.so.1.2.0 +0 -0
  58. package/binary/_internal/libfreetype-9fc94c80.so.6.20.6 +0 -0
  59. package/binary/_internal/libgcc_s.so.1 +0 -0
  60. package/binary/_internal/libharfbuzz-172d1f63.so.0.61421.0 +0 -0
  61. package/binary/_internal/libjpeg-31e2ca52.so.62.4.0 +0 -0
  62. package/binary/_internal/liblcms2-dade1fbf.so.2.0.19 +0 -0
  63. package/binary/_internal/liblzma-2be87c3e.so.5.8.3 +0 -0
  64. package/binary/_internal/libopenjp2-b07f72ad.so.2.5.4 +0 -0
  65. package/binary/_internal/libpng16-abb096d5.so.16.58.0 +0 -0
  66. package/binary/_internal/libpython3.12.so.1.0 +0 -0
  67. package/binary/_internal/libsharpyuv-0066295b.so.0.1.2 +0 -0
  68. package/binary/_internal/libstdc++.so.6 +0 -0
  69. package/binary/_internal/libtiff-fc87e79d.so.6.2.0 +0 -0
  70. package/binary/_internal/libwebp-51b0b3f7.so.7.2.0 +0 -0
  71. package/binary/_internal/libwebpdemux-9fe2abcc.so.2.0.17 +0 -0
  72. package/binary/_internal/libwebpmux-8fb1c9f6.so.3.1.2 +0 -0
  73. package/binary/_internal/libxcb-ad31f5a3.so.1.1.0 +0 -0
  74. package/binary/_internal/libz.so.1 +0 -0
  75. package/binary/_internal/libzstd-44be1190.so.1.5.7 +0 -0
  76. package/binary/_internal/pdfminer/cmap/78-EUC-H.json.gz +0 -0
  77. package/binary/_internal/pdfminer/cmap/78-EUC-V.json.gz +0 -0
  78. package/binary/_internal/pdfminer/cmap/78-H.json.gz +0 -0
  79. package/binary/_internal/pdfminer/cmap/78-RKSJ-H.json.gz +0 -0
  80. package/binary/_internal/pdfminer/cmap/78-RKSJ-V.json.gz +0 -0
  81. package/binary/_internal/pdfminer/cmap/78-V.json.gz +0 -0
  82. package/binary/_internal/pdfminer/cmap/78ms-RKSJ-H.json.gz +0 -0
  83. package/binary/_internal/pdfminer/cmap/78ms-RKSJ-V.json.gz +0 -0
  84. package/binary/_internal/pdfminer/cmap/83pv-RKSJ-H.json.gz +0 -0
  85. package/binary/_internal/pdfminer/cmap/83pv-RKSJ-V.json.gz +0 -0
  86. package/binary/_internal/pdfminer/cmap/90ms-RKSJ-H.json.gz +0 -0
  87. package/binary/_internal/pdfminer/cmap/90ms-RKSJ-V.json.gz +0 -0
  88. package/binary/_internal/pdfminer/cmap/90msp-RKSJ-H.json.gz +0 -0
  89. package/binary/_internal/pdfminer/cmap/90msp-RKSJ-V.json.gz +0 -0
  90. package/binary/_internal/pdfminer/cmap/90pv-RKSJ-H.json.gz +0 -0
  91. package/binary/_internal/pdfminer/cmap/90pv-RKSJ-V.json.gz +0 -0
  92. package/binary/_internal/pdfminer/cmap/Add-H.json.gz +0 -0
  93. package/binary/_internal/pdfminer/cmap/Add-RKSJ-H.json.gz +0 -0
  94. package/binary/_internal/pdfminer/cmap/Add-RKSJ-V.json.gz +0 -0
  95. package/binary/_internal/pdfminer/cmap/Add-V.json.gz +0 -0
  96. package/binary/_internal/pdfminer/cmap/B5-H.json.gz +0 -0
  97. package/binary/_internal/pdfminer/cmap/B5-V.json.gz +0 -0
  98. package/binary/_internal/pdfminer/cmap/B5pc-H.json.gz +0 -0
  99. package/binary/_internal/pdfminer/cmap/B5pc-V.json.gz +0 -0
  100. package/binary/_internal/pdfminer/cmap/CNS-EUC-H.json.gz +0 -0
  101. package/binary/_internal/pdfminer/cmap/CNS-EUC-V.json.gz +0 -0
  102. package/binary/_internal/pdfminer/cmap/CNS1-H.json.gz +0 -0
  103. package/binary/_internal/pdfminer/cmap/CNS1-V.json.gz +0 -0
  104. package/binary/_internal/pdfminer/cmap/CNS2-H.json.gz +0 -0
  105. package/binary/_internal/pdfminer/cmap/CNS2-V.json.gz +0 -0
  106. package/binary/_internal/pdfminer/cmap/ETHK-B5-H.json.gz +0 -0
  107. package/binary/_internal/pdfminer/cmap/ETHK-B5-V.json.gz +0 -0
  108. package/binary/_internal/pdfminer/cmap/ETen-B5-H.json.gz +0 -0
  109. package/binary/_internal/pdfminer/cmap/ETen-B5-V.json.gz +0 -0
  110. package/binary/_internal/pdfminer/cmap/ETenms-B5-H.json.gz +0 -0
  111. package/binary/_internal/pdfminer/cmap/ETenms-B5-V.json.gz +0 -0
  112. package/binary/_internal/pdfminer/cmap/EUC-H.json.gz +0 -0
  113. package/binary/_internal/pdfminer/cmap/EUC-V.json.gz +0 -0
  114. package/binary/_internal/pdfminer/cmap/Ext-H.json.gz +0 -0
  115. package/binary/_internal/pdfminer/cmap/Ext-RKSJ-H.json.gz +0 -0
  116. package/binary/_internal/pdfminer/cmap/Ext-RKSJ-V.json.gz +0 -0
  117. package/binary/_internal/pdfminer/cmap/Ext-V.json.gz +0 -0
  118. package/binary/_internal/pdfminer/cmap/GB-EUC-H.json.gz +0 -0
  119. package/binary/_internal/pdfminer/cmap/GB-EUC-V.json.gz +0 -0
  120. package/binary/_internal/pdfminer/cmap/GB-H.json.gz +0 -0
  121. package/binary/_internal/pdfminer/cmap/GB-V.json.gz +0 -0
  122. package/binary/_internal/pdfminer/cmap/GBK-EUC-H.json.gz +0 -0
  123. package/binary/_internal/pdfminer/cmap/GBK-EUC-V.json.gz +0 -0
  124. package/binary/_internal/pdfminer/cmap/GBK2K-H.json.gz +0 -0
  125. package/binary/_internal/pdfminer/cmap/GBK2K-V.json.gz +0 -0
  126. package/binary/_internal/pdfminer/cmap/GBKp-EUC-H.json.gz +0 -0
  127. package/binary/_internal/pdfminer/cmap/GBKp-EUC-V.json.gz +0 -0
  128. package/binary/_internal/pdfminer/cmap/GBT-EUC-H.json.gz +0 -0
  129. package/binary/_internal/pdfminer/cmap/GBT-EUC-V.json.gz +0 -0
  130. package/binary/_internal/pdfminer/cmap/GBT-H.json.gz +0 -0
  131. package/binary/_internal/pdfminer/cmap/GBT-V.json.gz +0 -0
  132. package/binary/_internal/pdfminer/cmap/GBTpc-EUC-H.json.gz +0 -0
  133. package/binary/_internal/pdfminer/cmap/GBTpc-EUC-V.json.gz +0 -0
  134. package/binary/_internal/pdfminer/cmap/GBpc-EUC-H.json.gz +0 -0
  135. package/binary/_internal/pdfminer/cmap/GBpc-EUC-V.json.gz +0 -0
  136. package/binary/_internal/pdfminer/cmap/H.json.gz +0 -0
  137. package/binary/_internal/pdfminer/cmap/HKdla-B5-H.json.gz +0 -0
  138. package/binary/_internal/pdfminer/cmap/HKdla-B5-V.json.gz +0 -0
  139. package/binary/_internal/pdfminer/cmap/HKdlb-B5-H.json.gz +0 -0
  140. package/binary/_internal/pdfminer/cmap/HKdlb-B5-V.json.gz +0 -0
  141. package/binary/_internal/pdfminer/cmap/HKgccs-B5-H.json.gz +0 -0
  142. package/binary/_internal/pdfminer/cmap/HKgccs-B5-V.json.gz +0 -0
  143. package/binary/_internal/pdfminer/cmap/HKm314-B5-H.json.gz +0 -0
  144. package/binary/_internal/pdfminer/cmap/HKm314-B5-V.json.gz +0 -0
  145. package/binary/_internal/pdfminer/cmap/HKm471-B5-H.json.gz +0 -0
  146. package/binary/_internal/pdfminer/cmap/HKm471-B5-V.json.gz +0 -0
  147. package/binary/_internal/pdfminer/cmap/HKscs-B5-H.json.gz +0 -0
  148. package/binary/_internal/pdfminer/cmap/HKscs-B5-V.json.gz +0 -0
  149. package/binary/_internal/pdfminer/cmap/Hankaku-H.json.gz +0 -0
  150. package/binary/_internal/pdfminer/cmap/Hankaku-V.json.gz +0 -0
  151. package/binary/_internal/pdfminer/cmap/Hiragana-H.json.gz +0 -0
  152. package/binary/_internal/pdfminer/cmap/Hiragana-V.json.gz +0 -0
  153. package/binary/_internal/pdfminer/cmap/KSC-EUC-H.json.gz +0 -0
  154. package/binary/_internal/pdfminer/cmap/KSC-EUC-V.json.gz +0 -0
  155. package/binary/_internal/pdfminer/cmap/KSC-H.json.gz +0 -0
  156. package/binary/_internal/pdfminer/cmap/KSC-Johab-H.json.gz +0 -0
  157. package/binary/_internal/pdfminer/cmap/KSC-Johab-V.json.gz +0 -0
  158. package/binary/_internal/pdfminer/cmap/KSC-V.json.gz +0 -0
  159. package/binary/_internal/pdfminer/cmap/KSCms-UHC-H.json.gz +0 -0
  160. package/binary/_internal/pdfminer/cmap/KSCms-UHC-HW-H.json.gz +0 -0
  161. package/binary/_internal/pdfminer/cmap/KSCms-UHC-HW-V.json.gz +0 -0
  162. package/binary/_internal/pdfminer/cmap/KSCms-UHC-V.json.gz +0 -0
  163. package/binary/_internal/pdfminer/cmap/KSCpc-EUC-H.json.gz +0 -0
  164. package/binary/_internal/pdfminer/cmap/KSCpc-EUC-V.json.gz +0 -0
  165. package/binary/_internal/pdfminer/cmap/Katakana-H.json.gz +0 -0
  166. package/binary/_internal/pdfminer/cmap/Katakana-V.json.gz +0 -0
  167. package/binary/_internal/pdfminer/cmap/NWP-H.json.gz +0 -0
  168. package/binary/_internal/pdfminer/cmap/NWP-V.json.gz +0 -0
  169. package/binary/_internal/pdfminer/cmap/README.txt +79 -0
  170. package/binary/_internal/pdfminer/cmap/RKSJ-H.json.gz +0 -0
  171. package/binary/_internal/pdfminer/cmap/RKSJ-V.json.gz +0 -0
  172. package/binary/_internal/pdfminer/cmap/Roman-H.json.gz +0 -0
  173. package/binary/_internal/pdfminer/cmap/Roman-V.json.gz +0 -0
  174. package/binary/_internal/pdfminer/cmap/UniCNS-UCS2-H.json.gz +0 -0
  175. package/binary/_internal/pdfminer/cmap/UniCNS-UCS2-V.json.gz +0 -0
  176. package/binary/_internal/pdfminer/cmap/UniCNS-UTF16-H.json.gz +0 -0
  177. package/binary/_internal/pdfminer/cmap/UniCNS-UTF16-V.json.gz +0 -0
  178. package/binary/_internal/pdfminer/cmap/UniCNS-UTF32-H.json.gz +0 -0
  179. package/binary/_internal/pdfminer/cmap/UniCNS-UTF32-V.json.gz +0 -0
  180. package/binary/_internal/pdfminer/cmap/UniCNS-UTF8-H.json.gz +0 -0
  181. package/binary/_internal/pdfminer/cmap/UniCNS-UTF8-V.json.gz +0 -0
  182. package/binary/_internal/pdfminer/cmap/UniGB-UCS2-H.json.gz +0 -0
  183. package/binary/_internal/pdfminer/cmap/UniGB-UCS2-V.json.gz +0 -0
  184. package/binary/_internal/pdfminer/cmap/UniGB-UTF16-H.json.gz +0 -0
  185. package/binary/_internal/pdfminer/cmap/UniGB-UTF16-V.json.gz +0 -0
  186. package/binary/_internal/pdfminer/cmap/UniGB-UTF32-H.json.gz +0 -0
  187. package/binary/_internal/pdfminer/cmap/UniGB-UTF32-V.json.gz +0 -0
  188. package/binary/_internal/pdfminer/cmap/UniGB-UTF8-H.json.gz +0 -0
  189. package/binary/_internal/pdfminer/cmap/UniGB-UTF8-V.json.gz +0 -0
  190. package/binary/_internal/pdfminer/cmap/UniJIS-UCS2-H.json.gz +0 -0
  191. package/binary/_internal/pdfminer/cmap/UniJIS-UCS2-HW-H.json.gz +0 -0
  192. package/binary/_internal/pdfminer/cmap/UniJIS-UCS2-HW-V.json.gz +0 -0
  193. package/binary/_internal/pdfminer/cmap/UniJIS-UCS2-V.json.gz +0 -0
  194. package/binary/_internal/pdfminer/cmap/UniJIS-UTF16-H.json.gz +0 -0
  195. package/binary/_internal/pdfminer/cmap/UniJIS-UTF16-V.json.gz +0 -0
  196. package/binary/_internal/pdfminer/cmap/UniJIS-UTF32-H.json.gz +0 -0
  197. package/binary/_internal/pdfminer/cmap/UniJIS-UTF32-V.json.gz +0 -0
  198. package/binary/_internal/pdfminer/cmap/UniJIS-UTF8-H.json.gz +0 -0
  199. package/binary/_internal/pdfminer/cmap/UniJIS-UTF8-V.json.gz +0 -0
  200. package/binary/_internal/pdfminer/cmap/UniJIS2004-UTF16-H.json.gz +0 -0
  201. package/binary/_internal/pdfminer/cmap/UniJIS2004-UTF16-V.json.gz +0 -0
  202. package/binary/_internal/pdfminer/cmap/UniJIS2004-UTF32-H.json.gz +0 -0
  203. package/binary/_internal/pdfminer/cmap/UniJIS2004-UTF32-V.json.gz +0 -0
  204. package/binary/_internal/pdfminer/cmap/UniJIS2004-UTF8-H.json.gz +0 -0
  205. package/binary/_internal/pdfminer/cmap/UniJIS2004-UTF8-V.json.gz +0 -0
  206. package/binary/_internal/pdfminer/cmap/UniJISX0213-UTF32-H.json.gz +0 -0
  207. package/binary/_internal/pdfminer/cmap/UniJISX0213-UTF32-V.json.gz +0 -0
  208. package/binary/_internal/pdfminer/cmap/UniJISX02132004-UTF32-H.json.gz +0 -0
  209. package/binary/_internal/pdfminer/cmap/UniJISX02132004-UTF32-V.json.gz +0 -0
  210. package/binary/_internal/pdfminer/cmap/UniKS-UCS2-H.json.gz +0 -0
  211. package/binary/_internal/pdfminer/cmap/UniKS-UCS2-V.json.gz +0 -0
  212. package/binary/_internal/pdfminer/cmap/UniKS-UTF16-H.json.gz +0 -0
  213. package/binary/_internal/pdfminer/cmap/UniKS-UTF16-V.json.gz +0 -0
  214. package/binary/_internal/pdfminer/cmap/UniKS-UTF32-H.json.gz +0 -0
  215. package/binary/_internal/pdfminer/cmap/UniKS-UTF32-V.json.gz +0 -0
  216. package/binary/_internal/pdfminer/cmap/UniKS-UTF8-H.json.gz +0 -0
  217. package/binary/_internal/pdfminer/cmap/UniKS-UTF8-V.json.gz +0 -0
  218. package/binary/_internal/pdfminer/cmap/V.json.gz +0 -0
  219. package/binary/_internal/pdfminer/cmap/WP-Symbol-H.json.gz +0 -0
  220. package/binary/_internal/pdfminer/cmap/WP-Symbol-V.json.gz +0 -0
  221. package/binary/_internal/pdfminer/cmap/to-unicode-Adobe-CNS1.json.gz +0 -0
  222. package/binary/_internal/pdfminer/cmap/to-unicode-Adobe-GB1.json.gz +0 -0
  223. package/binary/_internal/pdfminer/cmap/to-unicode-Adobe-Japan1.json.gz +0 -0
  224. package/binary/_internal/pdfminer/cmap/to-unicode-Adobe-Korea1.json.gz +0 -0
  225. package/binary/_internal/pdfminer/py.typed +0 -0
  226. package/binary/_internal/pdfminer_six-20260107.dist-info/INSTALLER +1 -0
  227. package/binary/_internal/pdfminer_six-20260107.dist-info/METADATA +110 -0
  228. package/binary/_internal/pdfminer_six-20260107.dist-info/RECORD +191 -0
  229. package/binary/_internal/pdfminer_six-20260107.dist-info/REQUESTED +0 -0
  230. package/binary/_internal/pdfminer_six-20260107.dist-info/WHEEL +5 -0
  231. package/binary/_internal/pdfminer_six-20260107.dist-info/licenses/LICENSE +22 -0
  232. package/binary/_internal/pdfminer_six-20260107.dist-info/top_level.txt +1 -0
  233. package/binary/_internal/pdfplumber-0.11.10.dist-info/INSTALLER +1 -0
  234. package/binary/_internal/pdfplumber-0.11.10.dist-info/METADATA +617 -0
  235. package/binary/_internal/pdfplumber-0.11.10.dist-info/RECORD +30 -0
  236. package/binary/_internal/pdfplumber-0.11.10.dist-info/REQUESTED +0 -0
  237. package/binary/_internal/pdfplumber-0.11.10.dist-info/WHEEL +5 -0
  238. package/binary/_internal/pdfplumber-0.11.10.dist-info/entry_points.txt +2 -0
  239. package/binary/_internal/pdfplumber-0.11.10.dist-info/licenses/LICENSE.txt +21 -0
  240. package/binary/_internal/pdfplumber-0.11.10.dist-info/top_level.txt +1 -0
  241. package/binary/_internal/pillow-12.3.0.dist-info/INSTALLER +1 -0
  242. package/binary/_internal/pillow-12.3.0.dist-info/METADATA +180 -0
  243. package/binary/_internal/pillow-12.3.0.dist-info/RECORD +142 -0
  244. package/binary/_internal/pillow-12.3.0.dist-info/REQUESTED +0 -0
  245. package/binary/_internal/pillow-12.3.0.dist-info/WHEEL +6 -0
  246. package/binary/_internal/pillow-12.3.0.dist-info/licenses/LICENSE +1574 -0
  247. package/binary/_internal/pillow-12.3.0.dist-info/sboms/auditwheel.cdx.json +1 -0
  248. package/binary/_internal/pillow-12.3.0.dist-info/sboms/pillow-12.3.0.cdx.json +721 -0
  249. package/binary/_internal/pillow-12.3.0.dist-info/top_level.txt +1 -0
  250. package/binary/_internal/pillow-12.3.0.dist-info/zip-safe +1 -0
  251. package/binary/_internal/pillow.libs/libXau-154567c4.so.6.0.0 +0 -0
  252. package/binary/_internal/pillow.libs/libavif-8a7f9d56.so.16.4.2 +0 -0
  253. package/binary/_internal/pillow.libs/libbrotlicommon-53534446.so.1.2.0 +0 -0
  254. package/binary/_internal/pillow.libs/libbrotlidec-7e5462ba.so.1.2.0 +0 -0
  255. package/binary/_internal/pillow.libs/libfreetype-9fc94c80.so.6.20.6 +0 -0
  256. package/binary/_internal/pillow.libs/libharfbuzz-172d1f63.so.0.61421.0 +0 -0
  257. package/binary/_internal/pillow.libs/libjpeg-31e2ca52.so.62.4.0 +0 -0
  258. package/binary/_internal/pillow.libs/liblcms2-dade1fbf.so.2.0.19 +0 -0
  259. package/binary/_internal/pillow.libs/liblzma-2be87c3e.so.5.8.3 +0 -0
  260. package/binary/_internal/pillow.libs/libopenjp2-b07f72ad.so.2.5.4 +0 -0
  261. package/binary/_internal/pillow.libs/libpng16-abb096d5.so.16.58.0 +0 -0
  262. package/binary/_internal/pillow.libs/libsharpyuv-0066295b.so.0.1.2 +0 -0
  263. package/binary/_internal/pillow.libs/libtiff-fc87e79d.so.6.2.0 +0 -0
  264. package/binary/_internal/pillow.libs/libwebp-51b0b3f7.so.7.2.0 +0 -0
  265. package/binary/_internal/pillow.libs/libwebpdemux-9fe2abcc.so.2.0.17 +0 -0
  266. package/binary/_internal/pillow.libs/libwebpmux-8fb1c9f6.so.3.1.2 +0 -0
  267. package/binary/_internal/pillow.libs/libxcb-ad31f5a3.so.1.1.0 +0 -0
  268. package/binary/_internal/pillow.libs/libzstd-44be1190.so.1.5.7 +0 -0
  269. package/binary/_internal/pycparser-3.0.dist-info/INSTALLER +1 -0
  270. package/binary/_internal/pycparser-3.0.dist-info/METADATA +244 -0
  271. package/binary/_internal/pycparser-3.0.dist-info/RECORD +15 -0
  272. package/binary/_internal/pycparser-3.0.dist-info/REQUESTED +0 -0
  273. package/binary/_internal/pycparser-3.0.dist-info/WHEEL +5 -0
  274. package/binary/_internal/pycparser-3.0.dist-info/licenses/LICENSE +27 -0
  275. package/binary/_internal/pycparser-3.0.dist-info/top_level.txt +1 -0
  276. package/binary/_internal/pypdfium2/version.json +11 -0
  277. package/binary/_internal/pypdfium2-5.13.0.dist-info/INSTALLER +1 -0
  278. package/binary/_internal/pypdfium2-5.13.0.dist-info/METADATA +1139 -0
  279. package/binary/_internal/pypdfium2-5.13.0.dist-info/RECORD +75 -0
  280. package/binary/_internal/pypdfium2-5.13.0.dist-info/REQUESTED +0 -0
  281. package/binary/_internal/pypdfium2-5.13.0.dist-info/WHEEL +6 -0
  282. package/binary/_internal/pypdfium2-5.13.0.dist-info/entry_points.txt +2 -0
  283. package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/LICENSES/Apache-2.0.txt +202 -0
  284. package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/LICENSES/BSD-3-Clause.txt +26 -0
  285. package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/LICENSES/CC-BY-4.0.txt +317 -0
  286. package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/abseil.txt +203 -0
  287. package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/agg23.txt +14 -0
  288. package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/fast_float.txt +27 -0
  289. package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/freetype.txt +169 -0
  290. package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/icu.txt +568 -0
  291. package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/lcms.txt +27 -0
  292. package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libjpeg_turbo.ijg +260 -0
  293. package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libjpeg_turbo.md +135 -0
  294. package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libopenjpeg.txt +32 -0
  295. package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libpng.txt +134 -0
  296. package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libtiff.txt +21 -0
  297. package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/llvm-libc.txt +278 -0
  298. package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/pdfium-binaries.txt +9 -0
  299. package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/pdfium.txt +230 -0
  300. package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/simdutf.txt +18 -0
  301. package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/zlib.txt +29 -0
  302. package/binary/_internal/pypdfium2-5.13.0.dist-info/top_level.txt +4 -0
  303. package/binary/_internal/pypdfium2_raw/libpdfium.so +0 -0
  304. package/binary/_internal/pypdfium2_raw/version.json +10 -0
  305. package/binary/_internal/python_calamine/_python_calamine.cpython-312-x86_64-linux-gnu.so +0 -0
  306. package/binary/_internal/python_calamine-0.8.2.dist-info/INSTALLER +1 -0
  307. package/binary/_internal/python_calamine-0.8.2.dist-info/METADATA +94 -0
  308. package/binary/_internal/python_calamine-0.8.2.dist-info/RECORD +11 -0
  309. package/binary/_internal/python_calamine-0.8.2.dist-info/REQUESTED +0 -0
  310. package/binary/_internal/python_calamine-0.8.2.dist-info/WHEEL +5 -0
  311. package/binary/_internal/python_calamine-0.8.2.dist-info/licenses/LICENSE +21 -0
  312. package/binary/_internal/python_calamine-0.8.2.dist-info/sboms/python-calamine.cyclonedx.json +1615 -0
  313. package/binary/_internal/quickjs_ng-0.17.0.1.dist-info/INSTALLER +1 -0
  314. package/binary/_internal/quickjs_ng-0.17.0.1.dist-info/METADATA +161 -0
  315. package/binary/_internal/quickjs_ng-0.17.0.1.dist-info/RECORD +9 -0
  316. package/binary/_internal/quickjs_ng-0.17.0.1.dist-info/REQUESTED +0 -0
  317. package/binary/_internal/quickjs_ng-0.17.0.1.dist-info/WHEEL +7 -0
  318. package/binary/_internal/quickjs_ng-0.17.0.1.dist-info/licenses/LICENSE +21 -0
  319. package/binary/_internal/quickjs_ng-0.17.0.1.dist-info/top_level.txt +2 -0
  320. package/binary/_internal/selectolax/base.pxi +4 -0
  321. package/binary/_internal/selectolax/lexbor/attrs.pxi +123 -0
  322. package/binary/_internal/selectolax/lexbor/fragment_lookup.pxi +52 -0
  323. package/binary/_internal/selectolax/lexbor/node.pxi +1355 -0
  324. package/binary/_internal/selectolax/lexbor/node_remove.pxi +29 -0
  325. package/binary/_internal/selectolax/lexbor/selection.pxi +251 -0
  326. package/binary/_internal/selectolax/lexbor/util.pxi +114 -0
  327. package/binary/_internal/selectolax/lexbor.c +66981 -0
  328. package/binary/_internal/selectolax/lexbor.cpython-312-x86_64-linux-gnu.so +0 -0
  329. package/binary/_internal/selectolax/lexbor.pxd +682 -0
  330. package/binary/_internal/selectolax/lexbor.pyi +1534 -0
  331. package/binary/_internal/selectolax/lexbor.pyx +1046 -0
  332. package/binary/_internal/selectolax/modest/node.pxi +976 -0
  333. package/binary/_internal/selectolax/modest/selection.pxi +199 -0
  334. package/binary/_internal/selectolax/modest/util.pxi +20 -0
  335. package/binary/_internal/selectolax/py.typed +0 -0
  336. package/binary/_internal/selectolax/utils.pxi +117 -0
  337. package/binary/_internal/selectolax-0.4.13.dist-info/INSTALLER +1 -0
  338. package/binary/_internal/selectolax-0.4.13.dist-info/METADATA +222 -0
  339. package/binary/_internal/selectolax-0.4.13.dist-info/RECORD +30 -0
  340. package/binary/_internal/selectolax-0.4.13.dist-info/REQUESTED +0 -0
  341. package/binary/_internal/selectolax-0.4.13.dist-info/WHEEL +7 -0
  342. package/binary/_internal/selectolax-0.4.13.dist-info/licenses/LICENSE +10 -0
  343. package/binary/_internal/selectolax-0.4.13.dist-info/top_level.txt +1 -0
  344. package/binary/brewdoc +0 -0
  345. package/binary/licenses/installed/brewdoc/brewdoc/_vendor/THIRD_PARTY_NOTICES.txt +342 -0
  346. package/binary/licenses/installed/brewdoc/brewdoc-0.3.1.dist-info/licenses/LICENSE +21 -0
  347. package/binary/licenses/installed/cffi/cffi-2.1.1.dist-info/licenses/LICENSE +23 -0
  348. package/binary/licenses/installed/charset-normalizer/charset_normalizer-3.5.2.dist-info/licenses/LICENSE +21 -0
  349. package/binary/licenses/installed/cryptography/cryptography-50.0.2.dist-info/licenses/LICENSE +3 -0
  350. package/binary/licenses/installed/cryptography/cryptography-50.0.2.dist-info/licenses/LICENSE.APACHE +202 -0
  351. package/binary/licenses/installed/cryptography/cryptography-50.0.2.dist-info/licenses/LICENSE.BSD +27 -0
  352. package/binary/licenses/installed/interpreter/LICENSE.txt +279 -0
  353. package/binary/licenses/installed/native-runtime/GPL-3 +674 -0
  354. package/binary/licenses/installed/native-runtime/gcc-12-base-amd64-copyright +1512 -0
  355. package/binary/licenses/installed/pdfminer.six/pdfminer_six-20260107.dist-info/licenses/LICENSE +22 -0
  356. package/binary/licenses/installed/pdfplumber/pdfplumber-0.11.10.dist-info/licenses/LICENSE.txt +21 -0
  357. package/binary/licenses/installed/pillow/pillow-12.3.0.dist-info/licenses/LICENSE +1574 -0
  358. package/binary/licenses/installed/pycparser/pycparser-3.0.dist-info/licenses/LICENSE +27 -0
  359. package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/LICENSES/Apache-2.0.txt +202 -0
  360. package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/LICENSES/BSD-3-Clause.txt +26 -0
  361. package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/LICENSES/CC-BY-4.0.txt +317 -0
  362. package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/abseil.txt +203 -0
  363. package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/agg23.txt +14 -0
  364. package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/fast_float.txt +27 -0
  365. package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/freetype.txt +169 -0
  366. package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/icu.txt +568 -0
  367. package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/lcms.txt +27 -0
  368. package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libjpeg_turbo.ijg +260 -0
  369. package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libjpeg_turbo.md +135 -0
  370. package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libopenjpeg.txt +32 -0
  371. package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libpng.txt +134 -0
  372. package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libtiff.txt +21 -0
  373. package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/llvm-libc.txt +278 -0
  374. package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/pdfium-binaries.txt +9 -0
  375. package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/pdfium.txt +230 -0
  376. package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/simdutf.txt +18 -0
  377. package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/zlib.txt +29 -0
  378. package/binary/licenses/installed/python-calamine/python_calamine-0.8.2.dist-info/licenses/LICENSE +21 -0
  379. package/binary/licenses/installed/quickjs-ng/quickjs_ng-0.17.0.1.dist-info/licenses/LICENSE +21 -0
  380. package/binary/licenses/installed/runtime-hooks/pyi_rth_cryptography_openssl.py +20 -0
  381. package/binary/licenses/installed/runtime-hooks/pyi_rth_inspect.py +99 -0
  382. package/binary/licenses/installed/runtime-hooks/pyi_rth_multiprocessing.py +88 -0
  383. package/binary/licenses/installed/runtime-hooks/pyi_rth_pkgutil.py +64 -0
  384. package/binary/licenses/installed/selectolax/selectolax-0.4.13.dist-info/licenses/LICENSE +10 -0
  385. package/binary/licenses/installed-manifest.json +202 -0
  386. package/binary/licenses/supplemental/openssl/3.5.9/README-copyright.txt +9 -0
  387. package/binary/licenses/supplemental/openssl/4.0.3/README-copyright.txt +9 -0
  388. package/binary/licenses/supplemental/provenance.json +2347 -0
  389. package/binary/licenses/supplemental/pyinstaller-6.22.3/COPYING.txt +648 -0
  390. package/binary/licenses/supplemental/pyinstaller-6.22.3/bootloader/waflib/LICENSE +25 -0
  391. package/binary/licenses/supplemental/pyinstaller-6.22.3/bootloader/zlib/LICENSE +22 -0
  392. package/binary/licenses/supplemental/pyinstaller-6.22.3/doc/license.rst +24 -0
  393. package/binary/licenses/supplemental/pyinstaller-hooks-contrib-2026.8/LICENSE +521 -0
  394. package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE +373 -0
  395. package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.bdb.txt +126 -0
  396. package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.bzip2.txt +37 -0
  397. package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.cpython.txt +771 -0
  398. package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.expat.txt +21 -0
  399. package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.libX11.txt +942 -0
  400. package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.libXau.txt +21 -0
  401. package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.libedit.txt +29 -0
  402. package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.libffi.txt +21 -0
  403. package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.liblzma.txt +13 -0
  404. package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.libuuid.txt +27 -0
  405. package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.libxcb.txt +30 -0
  406. package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.mpdecimal.txt +24 -0
  407. package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.ncurses.txt +29 -0
  408. package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.openssl-1.1.txt +124 -0
  409. package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.openssl-3.txt +177 -0
  410. package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.sqlite.txt +23 -0
  411. package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.tcl.txt +40 -0
  412. package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.tix.txt +54 -0
  413. package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.zlib.txt +21 -0
  414. package/binary/licenses/supplemental/python-calamine-0.8.2/LICENSE +21 -0
  415. package/binary/licenses/supplemental/python-calamine-0.8.2/source-identity/Cargo.lock +620 -0
  416. package/binary/licenses/supplemental/python-calamine-0.8.2/source-identity/Cargo.toml +22 -0
  417. package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/LICENSE +21 -0
  418. package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/cutils.h.txt +24 -0
  419. package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/dtoa.c.txt +23 -0
  420. package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/dtoa.h.txt +23 -0
  421. package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/libregexp-opcode.h.txt +23 -0
  422. package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/libregexp.c.txt +23 -0
  423. package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/libregexp.h.txt +23 -0
  424. package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/libunicode.c.txt +23 -0
  425. package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/libunicode.h.txt +23 -0
  426. package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/list.h.txt +23 -0
  427. package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/quickjs-atom.h.txt +24 -0
  428. package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/quickjs-opcode.h.txt +24 -0
  429. package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/quickjs.c.txt +26 -0
  430. package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/quickjs.h.txt +26 -0
  431. package/binary/licenses/supplemental/rust-adler2-2.0.1/LICENSE-0BSD +12 -0
  432. package/binary/licenses/supplemental/rust-adler2-2.0.1/LICENSE-APACHE +201 -0
  433. package/binary/licenses/supplemental/rust-adler2-2.0.1/LICENSE-MIT +23 -0
  434. package/binary/licenses/supplemental/rust-android_system_properties-0.1.5/LICENSE-APACHE +13 -0
  435. package/binary/licenses/supplemental/rust-android_system_properties-0.1.5/LICENSE-MIT +20 -0
  436. package/binary/licenses/supplemental/rust-atoi_simd-0.18.1/LICENSE-APACHE +201 -0
  437. package/binary/licenses/supplemental/rust-atoi_simd-0.18.1/LICENSE-MIT +25 -0
  438. package/binary/licenses/supplemental/rust-autocfg-1.5.1/LICENSE-APACHE +201 -0
  439. package/binary/licenses/supplemental/rust-autocfg-1.5.1/LICENSE-MIT +25 -0
  440. package/binary/licenses/supplemental/rust-bumpalo-3.20.3/LICENSE-APACHE +201 -0
  441. package/binary/licenses/supplemental/rust-bumpalo-3.20.3/LICENSE-MIT +25 -0
  442. package/binary/licenses/supplemental/rust-byteorder-1.5.0/COPYING +3 -0
  443. package/binary/licenses/supplemental/rust-byteorder-1.5.0/LICENSE-MIT +21 -0
  444. package/binary/licenses/supplemental/rust-calamine-0.36.0/LICENSE-MIT.md +23 -0
  445. package/binary/licenses/supplemental/rust-cc-1.2.64/LICENSE-APACHE +201 -0
  446. package/binary/licenses/supplemental/rust-cc-1.2.64/LICENSE-MIT +25 -0
  447. package/binary/licenses/supplemental/rust-cfg-if-1.0.4/LICENSE-APACHE +201 -0
  448. package/binary/licenses/supplemental/rust-cfg-if-1.0.4/LICENSE-MIT +25 -0
  449. package/binary/licenses/supplemental/rust-chrono-0.4.45/LICENSE.txt +240 -0
  450. package/binary/licenses/supplemental/rust-codepage-0.1.2/COPYRIGHT +9 -0
  451. package/binary/licenses/supplemental/rust-codepage-0.1.2/LICENSE-APACHE +202 -0
  452. package/binary/licenses/supplemental/rust-codepage-0.1.2/LICENSE-MIT +25 -0
  453. package/binary/licenses/supplemental/rust-core-foundation-sys-0.8.7/LICENSE-APACHE +201 -0
  454. package/binary/licenses/supplemental/rust-core-foundation-sys-0.8.7/LICENSE-MIT +25 -0
  455. package/binary/licenses/supplemental/rust-crc32fast-1.5.0/LICENSE-APACHE +202 -0
  456. package/binary/licenses/supplemental/rust-crc32fast-1.5.0/LICENSE-MIT +21 -0
  457. package/binary/licenses/supplemental/rust-debug_unsafe-0.1.4/LICENSE-APACHE +201 -0
  458. package/binary/licenses/supplemental/rust-debug_unsafe-0.1.4/LICENSE-MIT +25 -0
  459. package/binary/licenses/supplemental/rust-encoding_rs-0.8.35/COPYRIGHT +17 -0
  460. package/binary/licenses/supplemental/rust-encoding_rs-0.8.35/LICENSE-APACHE +202 -0
  461. package/binary/licenses/supplemental/rust-encoding_rs-0.8.35/LICENSE-MIT +25 -0
  462. package/binary/licenses/supplemental/rust-encoding_rs-0.8.35/LICENSE-WHATWG +26 -0
  463. package/binary/licenses/supplemental/rust-equivalent-1.0.2/LICENSE-APACHE +201 -0
  464. package/binary/licenses/supplemental/rust-equivalent-1.0.2/LICENSE-MIT +25 -0
  465. package/binary/licenses/supplemental/rust-fast-float2-0.2.3/LICENSE-APACHE +201 -0
  466. package/binary/licenses/supplemental/rust-fast-float2-0.2.3/LICENSE-MIT +23 -0
  467. package/binary/licenses/supplemental/rust-find-msvc-tools-0.1.9/LICENSE-APACHE +201 -0
  468. package/binary/licenses/supplemental/rust-find-msvc-tools-0.1.9/LICENSE-MIT +25 -0
  469. package/binary/licenses/supplemental/rust-flate2-1.1.9/LICENSE-APACHE +201 -0
  470. package/binary/licenses/supplemental/rust-flate2-1.1.9/LICENSE-MIT +25 -0
  471. package/binary/licenses/supplemental/rust-futures-core-0.3.32/LICENSE-APACHE +202 -0
  472. package/binary/licenses/supplemental/rust-futures-core-0.3.32/LICENSE-MIT +26 -0
  473. package/binary/licenses/supplemental/rust-futures-task-0.3.32/LICENSE-APACHE +202 -0
  474. package/binary/licenses/supplemental/rust-futures-task-0.3.32/LICENSE-MIT +26 -0
  475. package/binary/licenses/supplemental/rust-futures-util-0.3.32/LICENSE-APACHE +202 -0
  476. package/binary/licenses/supplemental/rust-futures-util-0.3.32/LICENSE-MIT +26 -0
  477. package/binary/licenses/supplemental/rust-hashbrown-0.17.1/LICENSE-APACHE +201 -0
  478. package/binary/licenses/supplemental/rust-hashbrown-0.17.1/LICENSE-MIT +25 -0
  479. package/binary/licenses/supplemental/rust-heck-0.5.0/LICENSE-APACHE +201 -0
  480. package/binary/licenses/supplemental/rust-heck-0.5.0/LICENSE-MIT +25 -0
  481. package/binary/licenses/supplemental/rust-iana-time-zone-0.1.65/LICENSE-APACHE +201 -0
  482. package/binary/licenses/supplemental/rust-iana-time-zone-0.1.65/LICENSE-MIT +25 -0
  483. package/binary/licenses/supplemental/rust-iana-time-zone-haiku-0.1.2/LICENSE-APACHE +201 -0
  484. package/binary/licenses/supplemental/rust-iana-time-zone-haiku-0.1.2/LICENSE-MIT +25 -0
  485. package/binary/licenses/supplemental/rust-indexmap-2.14.0/LICENSE-APACHE +201 -0
  486. package/binary/licenses/supplemental/rust-indexmap-2.14.0/LICENSE-MIT +25 -0
  487. package/binary/licenses/supplemental/rust-js-sys-0.3.102/LICENSE-APACHE +201 -0
  488. package/binary/licenses/supplemental/rust-js-sys-0.3.102/LICENSE-MIT +25 -0
  489. package/binary/licenses/supplemental/rust-libc-0.2.186/LICENSE-APACHE +176 -0
  490. package/binary/licenses/supplemental/rust-libc-0.2.186/LICENSE-MIT +25 -0
  491. package/binary/licenses/supplemental/rust-log-0.4.32/LICENSE-APACHE +201 -0
  492. package/binary/licenses/supplemental/rust-log-0.4.32/LICENSE-MIT +25 -0
  493. package/binary/licenses/supplemental/rust-memchr-2.8.2/COPYING +3 -0
  494. package/binary/licenses/supplemental/rust-memchr-2.8.2/LICENSE-MIT +21 -0
  495. package/binary/licenses/supplemental/rust-miniz_oxide-0.8.9/LICENSE +25 -0
  496. package/binary/licenses/supplemental/rust-miniz_oxide-0.8.9/LICENSE-APACHE.md +177 -0
  497. package/binary/licenses/supplemental/rust-miniz_oxide-0.8.9/LICENSE-MIT.md +24 -0
  498. package/binary/licenses/supplemental/rust-miniz_oxide-0.8.9/LICENSE-ZLIB.md +14 -0
  499. package/binary/licenses/supplemental/rust-num-traits-0.2.19/LICENSE-APACHE +201 -0
  500. package/binary/licenses/supplemental/rust-num-traits-0.2.19/LICENSE-MIT +25 -0
  501. package/binary/licenses/supplemental/rust-once_cell-1.21.4/LICENSE-APACHE +201 -0
  502. package/binary/licenses/supplemental/rust-once_cell-1.21.4/LICENSE-MIT +23 -0
  503. package/binary/licenses/supplemental/rust-pin-project-lite-0.2.17/LICENSE-APACHE +177 -0
  504. package/binary/licenses/supplemental/rust-pin-project-lite-0.2.17/LICENSE-MIT +23 -0
  505. package/binary/licenses/supplemental/rust-portable-atomic-1.13.1/LICENSE-APACHE +177 -0
  506. package/binary/licenses/supplemental/rust-portable-atomic-1.13.1/LICENSE-MIT +23 -0
  507. package/binary/licenses/supplemental/rust-proc-macro2-1.0.106/LICENSE-APACHE +176 -0
  508. package/binary/licenses/supplemental/rust-proc-macro2-1.0.106/LICENSE-MIT +23 -0
  509. package/binary/licenses/supplemental/rust-pyo3-0.29.0/LICENSE-APACHE +178 -0
  510. package/binary/licenses/supplemental/rust-pyo3-0.29.0/LICENSE-MIT +25 -0
  511. package/binary/licenses/supplemental/rust-pyo3-0.29.0/pyo3-runtime/LICENSE-APACHE +178 -0
  512. package/binary/licenses/supplemental/rust-pyo3-0.29.0/pyo3-runtime/LICENSE-MIT +25 -0
  513. package/binary/licenses/supplemental/rust-pyo3-build-config-0.29.0/LICENSE-APACHE +178 -0
  514. package/binary/licenses/supplemental/rust-pyo3-build-config-0.29.0/LICENSE-MIT +25 -0
  515. package/binary/licenses/supplemental/rust-pyo3-ffi-0.29.0/LICENSE-APACHE +178 -0
  516. package/binary/licenses/supplemental/rust-pyo3-ffi-0.29.0/LICENSE-MIT +25 -0
  517. package/binary/licenses/supplemental/rust-pyo3-file-0.16.0/Cargo.toml +14 -0
  518. package/binary/licenses/supplemental/rust-pyo3-file-0.16.0/README.md +90 -0
  519. package/binary/licenses/supplemental/rust-pyo3-file-0.16.0/declared-license/Apache-2.0.txt +73 -0
  520. package/binary/licenses/supplemental/rust-pyo3-macros-0.29.0/LICENSE-APACHE +178 -0
  521. package/binary/licenses/supplemental/rust-pyo3-macros-0.29.0/LICENSE-MIT +25 -0
  522. package/binary/licenses/supplemental/rust-pyo3-macros-backend-0.29.0/LICENSE-APACHE +178 -0
  523. package/binary/licenses/supplemental/rust-pyo3-macros-backend-0.29.0/LICENSE-MIT +25 -0
  524. package/binary/licenses/supplemental/rust-quick-xml-0.41.0/LICENSE-MIT.md +23 -0
  525. package/binary/licenses/supplemental/rust-quote-1.0.45/LICENSE-APACHE +176 -0
  526. package/binary/licenses/supplemental/rust-quote-1.0.45/LICENSE-MIT +23 -0
  527. package/binary/licenses/supplemental/rust-rustversion-1.0.22/LICENSE-APACHE +176 -0
  528. package/binary/licenses/supplemental/rust-rustversion-1.0.22/LICENSE-MIT +23 -0
  529. package/binary/licenses/supplemental/rust-serde-1.0.228/LICENSE-APACHE +176 -0
  530. package/binary/licenses/supplemental/rust-serde-1.0.228/LICENSE-MIT +23 -0
  531. package/binary/licenses/supplemental/rust-serde_core-1.0.228/LICENSE-APACHE +176 -0
  532. package/binary/licenses/supplemental/rust-serde_core-1.0.228/LICENSE-MIT +23 -0
  533. package/binary/licenses/supplemental/rust-serde_derive-1.0.228/LICENSE-APACHE +176 -0
  534. package/binary/licenses/supplemental/rust-serde_derive-1.0.228/LICENSE-MIT +23 -0
  535. package/binary/licenses/supplemental/rust-shlex-2.0.1/LICENSE-APACHE +13 -0
  536. package/binary/licenses/supplemental/rust-shlex-2.0.1/LICENSE-MIT +21 -0
  537. package/binary/licenses/supplemental/rust-simd-adler32-0.3.9/LICENSE.md +21 -0
  538. package/binary/licenses/supplemental/rust-slab-0.4.12/LICENSE +25 -0
  539. package/binary/licenses/supplemental/rust-syn-2.0.118/LICENSE-APACHE +176 -0
  540. package/binary/licenses/supplemental/rust-syn-2.0.118/LICENSE-MIT +23 -0
  541. package/binary/licenses/supplemental/rust-target-lexicon-0.13.5/LICENSE +220 -0
  542. package/binary/licenses/supplemental/rust-typed-path-0.12.3/LICENSE-APACHE +176 -0
  543. package/binary/licenses/supplemental/rust-typed-path-0.12.3/LICENSE-MIT +23 -0
  544. package/binary/licenses/supplemental/rust-unicode-ident-1.0.24/LICENSE-APACHE +176 -0
  545. package/binary/licenses/supplemental/rust-unicode-ident-1.0.24/LICENSE-MIT +23 -0
  546. package/binary/licenses/supplemental/rust-unicode-ident-1.0.24/LICENSE-UNICODE +39 -0
  547. package/binary/licenses/supplemental/rust-wasm-bindgen-0.2.125/LICENSE-APACHE +201 -0
  548. package/binary/licenses/supplemental/rust-wasm-bindgen-0.2.125/LICENSE-MIT +25 -0
  549. package/binary/licenses/supplemental/rust-wasm-bindgen-macro-0.2.125/LICENSE-APACHE +201 -0
  550. package/binary/licenses/supplemental/rust-wasm-bindgen-macro-0.2.125/LICENSE-MIT +25 -0
  551. package/binary/licenses/supplemental/rust-wasm-bindgen-macro-support-0.2.125/LICENSE-APACHE +201 -0
  552. package/binary/licenses/supplemental/rust-wasm-bindgen-macro-support-0.2.125/LICENSE-MIT +25 -0
  553. package/binary/licenses/supplemental/rust-wasm-bindgen-shared-0.2.125/LICENSE-APACHE +201 -0
  554. package/binary/licenses/supplemental/rust-wasm-bindgen-shared-0.2.125/LICENSE-MIT +25 -0
  555. package/binary/licenses/supplemental/rust-windows-core-0.62.2/license-apache-2.0 +201 -0
  556. package/binary/licenses/supplemental/rust-windows-core-0.62.2/license-mit +21 -0
  557. package/binary/licenses/supplemental/rust-windows-implement-0.60.2/license-apache-2.0 +201 -0
  558. package/binary/licenses/supplemental/rust-windows-implement-0.60.2/license-mit +21 -0
  559. package/binary/licenses/supplemental/rust-windows-interface-0.59.3/license-apache-2.0 +201 -0
  560. package/binary/licenses/supplemental/rust-windows-interface-0.59.3/license-mit +21 -0
  561. package/binary/licenses/supplemental/rust-windows-link-0.2.1/license-apache-2.0 +201 -0
  562. package/binary/licenses/supplemental/rust-windows-link-0.2.1/license-mit +21 -0
  563. package/binary/licenses/supplemental/rust-windows-result-0.4.1/license-apache-2.0 +201 -0
  564. package/binary/licenses/supplemental/rust-windows-result-0.4.1/license-mit +21 -0
  565. package/binary/licenses/supplemental/rust-windows-strings-0.5.1/license-apache-2.0 +201 -0
  566. package/binary/licenses/supplemental/rust-windows-strings-0.5.1/license-mit +21 -0
  567. package/binary/licenses/supplemental/rust-zip-8.6.0/LICENSE +21 -0
  568. package/binary/licenses/supplemental/rust-zlib-rs-0.6.3/LICENSE +19 -0
  569. package/binary/licenses/supplemental/rust-zopfli-0.8.3/COPYING +201 -0
  570. package/binary/licenses/supplemental/selectolax-0.4.13/LICENSE +10 -0
  571. package/binary/licenses/supplemental/selectolax-0.4.13/lexbor/LICENSE +223 -0
  572. package/binary/licenses/supplemental/selectolax-0.4.13/lexbor/NOTICE +16 -0
  573. package/binary/version.json +6 -0
  574. package/native-manifest.json +4474 -0
  575. package/native-verification.json +338 -0
  576. package/package.json +27 -4
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Maksim Kochetkov
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,383 @@
1
- # Temporary Holding Version
1
+ # brewdoc
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ [![PyPI](https://img.shields.io/pypi/v/brewdoc)](https://pypi.org/project/brewdoc/)
4
+ [![CI](https://github.com/kochetkov-ma/brewdoc/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/kochetkov-ma/brewdoc/actions/workflows/ci.yml)
5
+ [![Release](https://img.shields.io/github/v/release/kochetkov-ma/brewdoc)](https://github.com/kochetkov-ma/brewdoc/releases/latest)
6
+ [![MIT](https://img.shields.io/github/license/kochetkov-ma/brewdoc)](LICENSE)
7
+
8
+ Document to Markdown for agent systems: PDF, Word, PPTX presentations, spreadsheets, EPUB and static
9
+ HTML in, one Markdown file plus a JSON receipt out. No models or OCR. Local conversion
10
+ is offline and deterministic (same file, same bytes). Explicit `--url` acquires a page.
11
+ The receipt says what was rendered,
12
+ what was dropped and what the route structurally cannot carry.
13
+
14
+ ## Install
15
+
16
+ Choose one method. [Latest release](https://github.com/kochetkov-ma/brewdoc/releases/latest)
17
+ contains its complete installation guide. Python releases 0.2.0 and 0.3.0 are public.
18
+ These commands select 0.3.1 and apply when that version is published; its
19
+ [release guide](https://github.com/kochetkov-ma/brewdoc/releases/tag/v0.3.1)
20
+ records accepted channels. Badges show published versions and main CI, not universal OS support.
21
+
22
+ | channel | command |
23
+ |---|---|
24
+ | pip | `python -m pip install "brewdoc==0.3.1"` in a dedicated virtual environment |
25
+ | uvx, temporary | `uvx --python 3.12 --from "brewdoc==0.3.1" brewdoc file.pdf --out file.md` |
26
+ | uv tool, installed | `uv tool install --python 3.12 "brewdoc==0.3.1"` |
27
+ | pipx, installed | `pipx install --python 3.12 "brewdoc==0.3.1"` |
28
+ | Container recipe (pip) | `RUN pip install brewdoc==0.3.1` |
29
+
30
+ pip needs an installed Python 3.12. Use explicit environment paths without activation.
31
+ Linux/macOS:
32
+
33
+ ```sh
34
+ python3.12 -m venv .venv
35
+ .venv/bin/python -m pip install "brewdoc==0.3.1"
36
+ .venv/bin/python -c "from importlib.metadata import version; print(version('brewdoc'))"
37
+ .venv/bin/brewdoc --self-check
38
+ .venv/bin/brewdoc file.pdf --out file.md
39
+ ```
40
+
41
+ Windows PowerShell:
42
+
43
+ ```powershell
44
+ py -3.12 -m venv .venv
45
+ .\.venv\Scripts\python.exe -m pip install "brewdoc==0.3.1"
46
+ .\.venv\Scripts\python.exe -c "from importlib.metadata import version; print(version('brewdoc'))"
47
+ .\.venv\Scripts\brewdoc.exe --self-check
48
+ .\.venv\Scripts\brewdoc.exe file.pdf --out file.md
49
+ ```
50
+
51
+ uv and pipx must already be installed. After installation, run `uv tool update-shell`
52
+ or `pipx ensurepath`, open a new terminal, then run `brewdoc --self-check` and
53
+ `brewdoc file.pdf --out file.md`. `uv tool list` or `pipx list` shows the managed version.
54
+ Check PATH selection with `command -v brewdoc` on Unix or `Get-Command brewdoc` in PowerShell.
55
+
56
+ For an exact published version X.Y.Z, update with the environment's Python and
57
+ `-m pip install --upgrade "brewdoc==X.Y.Z"`,
58
+ `uv tool install --force --python 3.12 "brewdoc==X.Y.Z"` or
59
+ `pipx install --force --python 3.12 "brewdoc==X.Y.Z"`. Replace X.Y.Z before running.
60
+ Remove with the same Python's `-m pip uninstall brewdoc`, `uv tool uninstall brewdoc`
61
+ or `pipx uninstall brewdoc`. pip leaves dependencies; remove the dedicated virtual
62
+ environment when no longer needed. uvx uses temporary cached environments, adds no
63
+ persistent PATH command and needs no tool uninstall. Choose another exact version to update.
64
+
65
+ ### Standalone and npm
66
+
67
+ The links and commands below work when the named release is published and its
68
+ native/public consumer checks pass. Check the
69
+ [release guide](https://github.com/kochetkov-ma/brewdoc/releases/tag/v0.3.1)
70
+ for that version's accepted channels and targets. Download badges select assets;
71
+ they do not establish runtime acceptance. The npm badge shows the registry version.
72
+ Existing 0.2.0/0.3.0 releases contain Python wheel/sdist archives only.
73
+
74
+ [![npm](https://img.shields.io/npm/v/brewdoc)](https://www.npmjs.com/package/brewdoc)
75
+ [![Linux x64 download](https://img.shields.io/badge/Linux_x64-download-blue)](https://github.com/kochetkov-ma/brewdoc/releases/download/v0.3.1/brewdoc-0.3.1-linux-x64.tar.gz)
76
+ [![Windows x64 download](https://img.shields.io/badge/Windows_x64-download-blue)](https://github.com/kochetkov-ma/brewdoc/releases/download/v0.3.1/brewdoc-0.3.1-windows-x64.zip)
77
+ [![macOS ARM64 download](https://img.shields.io/badge/macOS_ARM64-download-blue)](https://github.com/kochetkov-ma/brewdoc/releases/download/v0.3.1/brewdoc-0.3.1-macos-arm64.tar.gz)
78
+
79
+ | Native target | Version-specific download | Verification target | JavaScript |
80
+ |---|---|---|---|
81
+ | Linux x86_64, glibc | [Linux archive](https://github.com/kochetkov-ma/brewdoc/releases/download/v0.3.1/brewdoc-0.3.1-linux-x64.tar.gz) | Ubuntu 22.04, glibc 2.35 | Bundled; requires target acceptance |
82
+ | Windows x86_64 | [Windows archive](https://github.com/kochetkov-ma/brewdoc/releases/download/v0.3.1/brewdoc-0.3.1-windows-x64.zip) | Windows Server 2025 | Refused before requests |
83
+ | macOS ARM64 | [macOS archive](https://github.com/kochetkov-ma/brewdoc/releases/download/v0.3.1/brewdoc-0.3.1-macos-arm64.tar.gz) | macOS 15, Apple Silicon | Bundled; requires target acceptance |
84
+
85
+ Download [SHA256SUMS](https://github.com/kochetkov-ma/brewdoc/releases/download/v0.3.1/SHA256SUMS)
86
+ beside the archive. Compare its SHA-256 before extraction with `sha256sum ARCHIVE`
87
+ on Linux, `shasum -a 256 ARCHIVE` on macOS or `Get-FileHash ARCHIVE -Algorithm SHA256`
88
+ in PowerShell. Keep the complete brewdoc directory, including _internal and licenses.
89
+ Read brewdoc/version.json for version/source/target, then run
90
+ `./brewdoc/brewdoc --self-check` or `.\brewdoc\brewdoc.exe --self-check` and use that
91
+ executable with `file.pdf --out file.md`. Add its absolute directory to your shell
92
+ profile or Windows user PATH for persistent use. Update by verifying and extracting
93
+ a fresh complete release directory, self-checking it, then repointing PATH. Remove
94
+ the dedicated directory and PATH entry to uninstall. Full download/extraction commands
95
+ are in the generated guide attached to the published release.
96
+
97
+ Verification targets do not establish older OS support. Linux musl/ARM64 and macOS
98
+ Intel are outside this initial binary set. Windows is unsigned; macOS uses an ad hoc
99
+ build signature without Developer ID/notarization. Linux uses checksums without a
100
+ detached publisher signature. OS policy may prevent launch.
101
+
102
+ npm requires Node 24.21.0/npm 12.2.0 for the tested flow; Python is bundled on admitted
103
+ targets. Once this exact npm release is publicly verified:
104
+
105
+ ```sh
106
+ npm install --global brewdoc@0.3.1
107
+ npm list --global brewdoc --depth=0
108
+ brewdoc --self-check
109
+ brewdoc file.pdf --out file.md
110
+ ```
111
+
112
+ Temporary cached invocation:
113
+
114
+ ```sh
115
+ npx --yes --package brewdoc@0.3.1 brewdoc --self-check
116
+ npx --yes --package brewdoc@0.3.1 brewdoc file.pdf --out file.md
117
+ ```
118
+
119
+ Update with `npm install --global brewdoc@X.Y.Z` for an exact published version;
120
+ remove with `npm uninstall --global brewdoc`. npx installs no persistent global tool;
121
+ choose another exact version to update. Keep optional platform packages enabled.
122
+ Missing packages or unsupported platforms refuse. The launcher adds no runtime downloads.
123
+
124
+ Python package installations require Python >= 3.12. Base runtime dependencies: `pdfplumber` (pulls pypdfium2, Pillow,
125
+ cryptography) and `python-calamine`. HTML requires CPython 3.12-3.14 and the native Lexbor
126
+ parser from this exact conditional dependency:
127
+
128
+ ```text
129
+ selectolax==0.4.13; python_version < '3.15' and platform_python_implementation == 'CPython'
130
+ ```
131
+
132
+ Other runtimes retain the `.html` route and Python API but explicitly refuse HTML. On supported
133
+ CPython, a missing or broken parser is an environment failure and `--self-check` exits 1.
134
+ On an unsupported HTML runtime, self-check verifies HTML refusal and checks all other formats.
135
+
136
+ Version 0.3.0 includes URL acquisition and optional JavaScript capture.
137
+ Install the extra with `python -m pip install 'brewdoc[render-js]==0.3.1'`. It uses QuickJS-ng 0.17.0.1
138
+ and bundled LinkeDOM 0.18.13. From this source checkout, install the locked extra
139
+ with `uv sync --locked --extra render-js`. Run it with
140
+ `uv run --locked --extra render-js brewdoc --url URL --render-js`.
141
+ Python and standalone invocations need no Node or browser engine. npm/npx use Node
142
+ as a launcher; no invocation downloads runtime components.
143
+
144
+ ## Usage
145
+
146
+ ```
147
+ brewdoc file.pdf --out file.md
148
+ brewdoc slides.pptx --out slides.md
149
+ brewdoc book.epub --out book.md
150
+ brewdoc page.html --out page.md
151
+ brewdoc --url https://example.com/article --out article.md
152
+ brewdoc --url https://example.com/article --render-js --timeout 30 --out article.md
153
+ brewdoc file.xlsx # no --out: receipt line, then the Markdown, on stdout
154
+ brewdoc file.xlsx --sheet Calc --sheet Inputs
155
+ brewdoc file.xlsm --artifact formula/sheet/000002=formulas.json
156
+ brewdoc file.xlsm --artifact vba/project/000001=vbaProject.bin
157
+ brewdoc --self-check # renders synthetic fixtures twice, compares sha256, exit 0 when green
158
+ ```
159
+
160
+ `--sheet` is repeatable. Names are exact and case-sensitive. Output follows caller order while
161
+ keeping each sheet's full-workbook ordinal. `--artifact` is also repeatable. Use keys listed in the
162
+ Markdown artifact table. Both options are workbook-only. brewdoc validates every request and
163
+ output collision before writing.
164
+
165
+ URL mode accepts one public HTTP(S) HTML page with strict UTF-8 decoding. Initial
166
+ page acquisition uses GET, verified TLS and default ports only. Private destinations, URL credentials
167
+ and HTTPS downgrades are refused; proxy environment settings are ignored. Each redirect and
168
+ resource is validated. Acquisition allows at most five redirects and an 8 MiB
169
+ body limit. `--timeout SECONDS` sets one maximum waiting budget for loading and
170
+ optional JS, default 30 seconds. It accepts positive finite seconds within the
171
+ supported clock range and returns earlier when ready. Increase it for pages
172
+ that need longer loading or JS waiting.
173
+ Bounded cleanup and local conversion can add time after waiting ends.
174
+ No login, cookie profile or bot bypass is offered.
175
+ Local files and default static URL capture do not execute JavaScript.
176
+
177
+ `--render-js` explicitly executes the selected page's scripts locally in a separate
178
+ process with bounded APIs and resources. No filesystem or shell APIs are exposed,
179
+ and captures do not reuse browser state. This is not a general operating-system
180
+ security sandbox. It supports DOM mutations, bounded jobs/timers and guarded GET
181
+ requests. Async XHR also supports the public Algolia search endpoint used by
182
+ hn.algolia.com, with its original string body and no cookies or user credentials.
183
+ Other POST requests remain unsupported; search redirects are refused without replay.
184
+ Supported module loading uses the native engine. Temporary `localStorage`
185
+ starts empty for each capture; accessing it marks the result partial.
186
+ Each capture starts with a writable `innerWidth` of 1024 CSS pixels.
187
+ Width changes stay within that capture.
188
+ It does not provide browser layout, iframe execution,
189
+ workers, WebSockets, media or browser-wide compatibility. Native JS requires a
190
+ verified QuickJS public ABI on macOS ARM64 or 64-bit glibc Linux (x86_64/aarch64).
191
+ Windows, macOS Intel, musl Linux and 32-bit systems refuse JS. Missing components or unsupported
192
+ runtimes refuse before fetching.
193
+ See [URL acquisition limits](FORMATS.md#url-acquisition).
194
+
195
+ URL receipts use `brewdoc.receipt/2` with redacted acquisition provenance and the
196
+ frozen snapshot identity. Timing-only expiry preserves available valid content
197
+ with `acquisition.capture_status=partial` and a diagnostic.
198
+ The receipt distinguishes the current DOM from an explicitly marked fallback to
199
+ the already acquired original HTML, where JS completion is unknown. No HTML is
200
+ returned from an incomplete response. Hard network, security, heap, native fault,
201
+ tamper or resource failures exit 1 and preserve an existing output file.
202
+ Exit 0 confirms conversion, not script completion or article fidelity.
203
+ Live acquisition can change; conversion of the same frozen snapshot remains
204
+ deterministic. No 90% coverage or
205
+ global JavaScript compatibility is claimed.
206
+
207
+ Combining `--url` with a local path or `--self-check`, or using `--render-js` without
208
+ `--url`, exits 2 before acquisition. Invalid timeout values and an explicit
209
+ `--timeout` without `--url` also exit 2. URL requests with `--sheet` or `--artifact`
210
+ exit 1 with an HTML refusal receipt before HTTP.
211
+
212
+ Every successful document uses `brewdoc.markdown/2`. A quoted source title is followed by Metadata,
213
+ Artifacts, Known omissions, Contents, then anchored content units. PDF keys are `page/000001`,
214
+ workbook keys are `sheet/000001`, DOCX keys are `chapter/000001`, PPTX keys are `slide/000001`,
215
+ EPUB keys follow declared spine ordinals as `chapter/000001`, and HTML has one `chapter/000001`.
216
+ Metadata contains deterministic source identity, selection, content hashes, conversion tallies, and
217
+ artifact capabilities. It excludes paths, timestamps, permissions, host data, and unsupported author
218
+ metadata. EPUB adds source-declared publication titles, creators, languages and identifiers.
219
+
220
+ For a conversion request, one JSON receipt line goes to stdout first (wrapped here, `unit_keys` omitted):
221
+
222
+ ```json
223
+ {"artifacts": [], "broken_ligature_words": 0, "columns_split": 1,
224
+ "dropped": {"cid_survivors": 0, "control_chars": 0, "ligatures": 0, "nbsp": 0,
225
+ "non_ascii_replaced": 0, "page_numbers": 3, "pua_glyphs": 0,
226
+ "running_heads": 0, "soft_hyphens": 0},
227
+ "file_ok": true, "markdown_schema": "brewdoc.markdown/2",
228
+ "not_carried": ["images, figures and the text drawn inside them",
229
+ "a table that spans a page break",
230
+ "text rotated out of the horizontal reading order"],
231
+ "out": "file.md",
232
+ "reason": "pdf rendered: 7 pages, 1 tables, 26 text regions, 1 column splits",
233
+ "receipt_schema": "brewdoc.receipt/1",
234
+ "route": "pdf", "source": "nist-sp800-145.pdf", "tables": 1,
235
+ "text_regions": 26, "unit_kind": "page", "units": 7}
236
+ ```
237
+
238
+ | key | meaning |
239
+ |---|---|
240
+ | `file_ok`, `reason` | `false` when the file was refused (no text layer, unreadable, unsupported suffix); `reason` names why, or summarises what was rendered |
241
+ | `route` | which reader ran: `pdf`, `doc`, `presentation`, `sheet`, `epub` or `html` |
242
+ | `source` | the local filename, or the redacted requested URL in URL mode |
243
+ | `unit_kind`, `units` | the route's content unit and how many were rendered; one pair for every format. `page` for PDF, `chapter` for DOCX, EPUB and HTML, `slide` for PPTX, `sheet` for a workbook, and `none` on a suffix brewdoc does not read |
244
+ | `tables`, `text_regions`, `columns_split` | what else was rendered |
245
+ | `receipt_schema` | the receipt key contract; `brewdoc.receipt/1` replaced the per-format `pages` and `sheets` counters |
246
+ | `broken_ligature_words` | words with a ligature the font mapped to a stray code point, folded to ASCII, not repaired |
247
+ | `dropped` | sanitised items removed on purpose, counted by kind (running heads, page numbers, ...) |
248
+ | `not_carried` | what this route structurally cannot represent - read it before concluding a fact is absent |
249
+ | `out` | the Markdown path, or `null` when it went to stdout |
250
+ | `markdown_schema`, `unit_keys` | the contract and ordered full-source content keys; success only |
251
+ | `artifacts` | available keyed formula or opaque VBA outputs and requested output paths; success only |
252
+ | `selected_sheets` | the `--sheet` names in caller order; present only when sheets were selected |
253
+
254
+ Paths resolve against the current working directory; `--out` creates parent directories.
255
+ Exit code is non-zero on refusal; the receipt line is still printed.
256
+
257
+ ## Formats
258
+
259
+ | in | reader | notes |
260
+ |---|---|---|
261
+ | `.pdf` | pdfplumber | needs a text layer; route chosen per region, never per page |
262
+ | `.docx` | stdlib zip + XML | paragraphs and tables |
263
+ | `.pptx` | stdlib zip + XML | slides in declared order; text, tables, notes and picture metadata |
264
+ | `.epub` | stdlib zip + XML | EPUB 2/3 static XHTML in declared spine order; Unicode metadata and navigation |
265
+ | `.xlsx` `.xlsm` `.xls` `.xlsb` `.ods` | python-calamine | selected sheets keep full-source ordinals; numbers as stored (`85.0`), dates as ISO days |
266
+ | `.html` | selectolax Lexbor | full static body or fragment, complete tables and source-declared controls; CPython 3.12-3.14 |
267
+
268
+ `.xlsx` and `.xlsm` expose original OOXML formulas as one deterministic JSON artifact per
269
+ formula-bearing selected sheet. Markdown still contains cached values. `.xlsm` and `.xlsb` can expose
270
+ one complete related `vbaProject.bin` as opaque bytes. brewdoc does not execute macros, decompile VBA,
271
+ report source-module counts, evaluate formulas, or infer dependency graphs.
272
+
273
+ HTML reads local strict UTF-8, with an optional BOM. It preserves meaningful Unicode, navigation,
274
+ main content, sidebars and footers in recovered DOM order. It never fetches links or resources,
275
+ executes scripts, submits forms or infers interactive values. Links use a restricted scheme policy;
276
+ form actions remain inert metadata. Inline code outside tables becomes a literal fenced block;
277
+ surrounding emphasis and links remain balanced. Safe links in literal code and around code/images
278
+ retain destination records without changing the source literals. Table-cell code uses labelled
279
+ escaped text. Quotes and list items containing standalone child blocks use explicit nesting
280
+ boundaries in place of visual Markdown
281
+ containers. Plain list paragraphs retain their item marker and continuation indentation.
282
+ See [HTML scope and limits](FORMATS.md#static-html).
283
+
284
+ EPUB reads one package with static XHTML in EPUB 2 or 3. Each declared spine item becomes
285
+ a chapter, including empty and non-linear items, front matter and back matter. Publication
286
+ navigation retains source hierarchy and links to generated chapter and fragment anchors.
287
+ Declared metadata and meaningful Unicode are preserved. Images remain inert alt/title/target
288
+ records; no pixels or external resources are read. EPUB adds no parser dependency.
289
+ Malformed required content, unsafe archives, unavailable navigation targets, encrypted reading
290
+ text, declared fixed layout and unsupported required media without an XHTML fallback refuse
291
+ the whole book before output writes. Multiple rootfiles are outside this supported profile.
292
+ See [EPUB scope and limits](FORMATS.md#epub).
293
+
294
+ The public Python API exposes EPUB, HTML and presentation rendering and generic workbook artifact access:
295
+
296
+ ```python
297
+ import brewdoc
298
+
299
+ markdown, tally = brewdoc.render_epub("book.epub")
300
+ code, receipt, markdown = brewdoc.run("book.epub", out="book.md")
301
+ markdown, tally = brewdoc.render_html("page.html")
302
+ code, receipt, markdown = brewdoc.run("page.html", out="page.md")
303
+ markdown, tally = brewdoc.render_presentation("slides.pptx")
304
+ refs = brewdoc.list_book_artifacts("book.xlsm", sheets=("Calc",))
305
+ payload = brewdoc.read_book_artifact("book.xlsm", refs[0].key, sheets=("Calc",))
306
+ code, receipt, markdown = brewdoc.run(
307
+ "book.xlsm", out="book.md", sheets=("Calc",),
308
+ artifact_outputs={refs[0].key: "formulas.json"},
309
+ )
310
+ ```
311
+
312
+ `artifact_outputs` maps artifact keys to paths. The CLI builds it from repeated `--artifact KEY=PATH`.
313
+
314
+ CSV and TSV are intentionally unsupported and are not planned. LLMs can read their text tables
315
+ directly, so brewdoc does not convert them to Markdown.
316
+
317
+ Planned formats, excluded ones, deferred ones and the never-list: `FORMATS.md`.
318
+ A planned format is refused by name today. The adapter contract and the ordered checklist for
319
+ adding one are in [`docs/architecture.md`](docs/architecture.md).
320
+
321
+ PDF regions, in the order tried:
322
+
323
+ | region looks like | rendered as |
324
+ |---|---|
325
+ | ruled on all sides | Markdown table from the drawn ruling |
326
+ | ruling unfinished (cells never closed) | source baselines recovered as logical rows on the inferred structural grid |
327
+ | ruled across only (head and foot rules) | column grid from the rule segment ends |
328
+ | unruled, tabular band | layout-preserved text |
329
+ | unruled, captioned `Table N` | the band is bounded first (caption to next blank band), then read as a table |
330
+ | two-column prose | split at the gutter (relative density on the character x-histogram), left then right |
331
+ | plain prose | lines |
332
+
333
+ ## What it does not do
334
+
335
+ | gap | behaviour |
336
+ |---|---|
337
+ | OCR | a PDF with no text layer is refused by name, never rendered empty |
338
+ | PDF and DOCX images, figures, text drawn inside them | not carried; listed in `not_carried` |
339
+ | PPTX pictures | represented by deterministic name, size, alt text, caption, source and byte-count placeholders; pixels are never emitted |
340
+ | EPUB layout, scripts, media and graphics | CSS, pagination, font rendering, scripts, active media, image pixels and unsupported SVG/MathML semantics are omitted |
341
+ | PPTX charts, SmartArt, audio, video and embedded objects | not carried; listed in `not_carried` |
342
+ | a table spanning a page break | columns recovered, wrapped rows stay separate rows |
343
+ | text rotated out of horizontal reading order | not carried |
344
+ | sub/superscripts | folded back into their line (`NH4H2PO4`, not `NHHPO` over `4 2 4`) |
345
+ | broken font CMaps (ligatures mapped to wrong code points) | counted (`broken_ligature_words`), folded to ASCII, never guessed back |
346
+ | formula calculation | cached values in Markdown; passive source formulas only for `.xlsx` and `.xlsm` |
347
+ | readable VBA source | unavailable; `.xlsm` and `.xlsb` preserve a related project only as opaque bytes |
348
+
349
+ ## Determinism
350
+
351
+ No timestamps or unordered iteration. Two renders of one file have the same sha256;
352
+ `--self-check` pins it. PDF, DOCX, PPTX and workbook output remains ASCII. HTML and EPUB Markdown use
353
+ UTF-8 without BOM and LF newlines, with the same bytes in the API, file output and CLI stdout.
354
+ Receipt JSON keeps ASCII escaping.
355
+
356
+ ## Size and speed
357
+
358
+ These measurements cover the existing PDF/workbook baseline before the HTML parser addition.
359
+ They do not measure HTML or EPUB conversion or the new installed footprint.
360
+
361
+ | measure | value |
362
+ |---|---|
363
+ | installed footprint | ~45 MB (pdfplumber, pypdfium2, Pillow, cryptography, python-calamine) |
364
+ | import | 0.08 s |
365
+ | 130-page PDF | ~5.5 s |
366
+ | 14-sheet xlsx | ~0.9 s |
367
+
368
+ ## Benchmarks
369
+
370
+ Browse the [corpus catalog](benchmarks/CATALOG.md), follow the
371
+ [measurement method](benchmarks/METHODOLOGY.md), and inspect the
372
+ [full-run results](benchmarks/results/README.md). Completed runs include actual
373
+ outputs and known failures; capture completion does not mean content quality passed.
374
+
375
+ ## Releasing
376
+
377
+ Tag-triggered, see `RELEASING.md`.
378
+ Coding agents can start with the compact [llms.txt](llms.txt) guide. It does not imply
379
+ automatic discovery by any client.
380
+
381
+ ## License
382
+
383
+ MIT, see `LICENSE`.