brewdoc 0.3.1__tar.gz → 0.3.2__tar.gz

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 (659) hide show
  1. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/distribution.json +2 -6
  2. brewdoc-0.3.2/.github/npm-diagnostic-public.pem +11 -0
  3. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/workflows/build_npm.py +126 -14
  4. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/workflows/ci.yml +6 -4
  5. brewdoc-0.3.2/.github/workflows/npm_diagnostic.cjs +50 -0
  6. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/workflows/release.yml +41 -20
  7. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/workflows/release_assets.py +83 -23
  8. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/workflows/release_guide.py +29 -217
  9. brewdoc-0.3.2/FORMATS.md +293 -0
  10. brewdoc-0.3.2/INSTALL.md +219 -0
  11. brewdoc-0.3.2/PKG-INFO +157 -0
  12. brewdoc-0.3.2/README.md +129 -0
  13. brewdoc-0.3.2/RELEASING.md +135 -0
  14. brewdoc-0.3.2/llms.txt +49 -0
  15. {brewdoc-0.3.1 → brewdoc-0.3.2}/npm/bin/brewdoc.cjs +4 -1
  16. {brewdoc-0.3.1 → brewdoc-0.3.2}/npm/test/launcher.test.cjs +107 -0
  17. {brewdoc-0.3.1 → brewdoc-0.3.2}/pyproject.toml +4 -2
  18. {brewdoc-0.3.1 → brewdoc-0.3.2}/src/brewdoc/__init__.py +1 -1
  19. {brewdoc-0.3.1 → brewdoc-0.3.2}/src/brewdoc/cli.py +2 -14
  20. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_npm_distribution.py +326 -6
  21. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_release_assets.py +287 -24
  22. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_release_guide.py +83 -27
  23. {brewdoc-0.3.1 → brewdoc-0.3.2}/uv.lock +1 -1
  24. brewdoc-0.3.1/FORMATS.md +0 -364
  25. brewdoc-0.3.1/PKG-INFO +0 -411
  26. brewdoc-0.3.1/README.md +0 -383
  27. brewdoc-0.3.1/RELEASING.md +0 -203
  28. brewdoc-0.3.1/llms.txt +0 -58
  29. {brewdoc-0.3.1 → brewdoc-0.3.2}/.gitattributes +0 -0
  30. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/dependabot.yml +0 -0
  31. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/README.md +0 -0
  32. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/openssl/3.5.9/README-copyright.txt +0 -0
  33. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/openssl/4.0.3/README-copyright.txt +0 -0
  34. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/provenance.json +0 -0
  35. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/pyinstaller-6.22.3/COPYING.txt +0 -0
  36. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/pyinstaller-6.22.3/bootloader/waflib/LICENSE +0 -0
  37. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/pyinstaller-6.22.3/bootloader/zlib/LICENSE +0 -0
  38. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/pyinstaller-6.22.3/doc/license.rst +0 -0
  39. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/pyinstaller-hooks-contrib-2026.8/LICENSE +0 -0
  40. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/python-build-standalone-20260929/LICENSE +0 -0
  41. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/python-build-standalone-20260929/LICENSE.bdb.txt +0 -0
  42. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/python-build-standalone-20260929/LICENSE.bzip2.txt +0 -0
  43. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/python-build-standalone-20260929/LICENSE.cpython.txt +0 -0
  44. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/python-build-standalone-20260929/LICENSE.expat.txt +0 -0
  45. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/python-build-standalone-20260929/LICENSE.libX11.txt +0 -0
  46. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/python-build-standalone-20260929/LICENSE.libXau.txt +0 -0
  47. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/python-build-standalone-20260929/LICENSE.libedit.txt +0 -0
  48. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/python-build-standalone-20260929/LICENSE.libffi.txt +0 -0
  49. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/python-build-standalone-20260929/LICENSE.liblzma.txt +0 -0
  50. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/python-build-standalone-20260929/LICENSE.libuuid.txt +0 -0
  51. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/python-build-standalone-20260929/LICENSE.libxcb.txt +0 -0
  52. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/python-build-standalone-20260929/LICENSE.mpdecimal.txt +0 -0
  53. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/python-build-standalone-20260929/LICENSE.ncurses.txt +0 -0
  54. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/python-build-standalone-20260929/LICENSE.openssl-1.1.txt +0 -0
  55. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/python-build-standalone-20260929/LICENSE.openssl-3.txt +0 -0
  56. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/python-build-standalone-20260929/LICENSE.sqlite.txt +0 -0
  57. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/python-build-standalone-20260929/LICENSE.tcl.txt +0 -0
  58. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/python-build-standalone-20260929/LICENSE.tix.txt +0 -0
  59. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/python-build-standalone-20260929/LICENSE.zlib.txt +0 -0
  60. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/python-calamine-0.8.2/LICENSE +0 -0
  61. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/python-calamine-0.8.2/source-identity/Cargo.lock +0 -0
  62. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/python-calamine-0.8.2/source-identity/Cargo.toml +0 -0
  63. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/quickjs-ng-0.17.0.1/LICENSE +0 -0
  64. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/cutils.h.txt +0 -0
  65. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/dtoa.c.txt +0 -0
  66. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/dtoa.h.txt +0 -0
  67. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/libregexp-opcode.h.txt +0 -0
  68. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/libregexp.c.txt +0 -0
  69. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/libregexp.h.txt +0 -0
  70. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/libunicode.c.txt +0 -0
  71. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/libunicode.h.txt +0 -0
  72. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/list.h.txt +0 -0
  73. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/quickjs-atom.h.txt +0 -0
  74. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/quickjs-opcode.h.txt +0 -0
  75. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/quickjs.c.txt +0 -0
  76. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/quickjs.h.txt +0 -0
  77. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-adler2-2.0.1/LICENSE-0BSD +0 -0
  78. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-adler2-2.0.1/LICENSE-APACHE +0 -0
  79. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-adler2-2.0.1/LICENSE-MIT +0 -0
  80. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-android_system_properties-0.1.5/LICENSE-APACHE +0 -0
  81. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-android_system_properties-0.1.5/LICENSE-MIT +0 -0
  82. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-atoi_simd-0.18.1/LICENSE-APACHE +0 -0
  83. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-atoi_simd-0.18.1/LICENSE-MIT +0 -0
  84. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-autocfg-1.5.1/LICENSE-APACHE +0 -0
  85. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-autocfg-1.5.1/LICENSE-MIT +0 -0
  86. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-bumpalo-3.20.3/LICENSE-APACHE +0 -0
  87. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-bumpalo-3.20.3/LICENSE-MIT +0 -0
  88. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-byteorder-1.5.0/COPYING +0 -0
  89. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-byteorder-1.5.0/LICENSE-MIT +0 -0
  90. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-calamine-0.36.0/LICENSE-MIT.md +0 -0
  91. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-cc-1.2.64/LICENSE-APACHE +0 -0
  92. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-cc-1.2.64/LICENSE-MIT +0 -0
  93. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-cfg-if-1.0.4/LICENSE-APACHE +0 -0
  94. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-cfg-if-1.0.4/LICENSE-MIT +0 -0
  95. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-chrono-0.4.45/LICENSE.txt +0 -0
  96. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-codepage-0.1.2/COPYRIGHT +0 -0
  97. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-codepage-0.1.2/LICENSE-APACHE +0 -0
  98. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-codepage-0.1.2/LICENSE-MIT +0 -0
  99. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-core-foundation-sys-0.8.7/LICENSE-APACHE +0 -0
  100. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-core-foundation-sys-0.8.7/LICENSE-MIT +0 -0
  101. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-crc32fast-1.5.0/LICENSE-APACHE +0 -0
  102. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-crc32fast-1.5.0/LICENSE-MIT +0 -0
  103. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-debug_unsafe-0.1.4/LICENSE-APACHE +0 -0
  104. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-debug_unsafe-0.1.4/LICENSE-MIT +0 -0
  105. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-encoding_rs-0.8.35/COPYRIGHT +0 -0
  106. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-encoding_rs-0.8.35/LICENSE-APACHE +0 -0
  107. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-encoding_rs-0.8.35/LICENSE-MIT +0 -0
  108. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-encoding_rs-0.8.35/LICENSE-WHATWG +0 -0
  109. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-equivalent-1.0.2/LICENSE-APACHE +0 -0
  110. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-equivalent-1.0.2/LICENSE-MIT +0 -0
  111. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-fast-float2-0.2.3/LICENSE-APACHE +0 -0
  112. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-fast-float2-0.2.3/LICENSE-MIT +0 -0
  113. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-find-msvc-tools-0.1.9/LICENSE-APACHE +0 -0
  114. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-find-msvc-tools-0.1.9/LICENSE-MIT +0 -0
  115. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-flate2-1.1.9/LICENSE-APACHE +0 -0
  116. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-flate2-1.1.9/LICENSE-MIT +0 -0
  117. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-futures-core-0.3.32/LICENSE-APACHE +0 -0
  118. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-futures-core-0.3.32/LICENSE-MIT +0 -0
  119. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-futures-task-0.3.32/LICENSE-APACHE +0 -0
  120. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-futures-task-0.3.32/LICENSE-MIT +0 -0
  121. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-futures-util-0.3.32/LICENSE-APACHE +0 -0
  122. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-futures-util-0.3.32/LICENSE-MIT +0 -0
  123. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-hashbrown-0.17.1/LICENSE-APACHE +0 -0
  124. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-hashbrown-0.17.1/LICENSE-MIT +0 -0
  125. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-heck-0.5.0/LICENSE-APACHE +0 -0
  126. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-heck-0.5.0/LICENSE-MIT +0 -0
  127. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-iana-time-zone-0.1.65/LICENSE-APACHE +0 -0
  128. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-iana-time-zone-0.1.65/LICENSE-MIT +0 -0
  129. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-iana-time-zone-haiku-0.1.2/LICENSE-APACHE +0 -0
  130. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-iana-time-zone-haiku-0.1.2/LICENSE-MIT +0 -0
  131. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-indexmap-2.14.0/LICENSE-APACHE +0 -0
  132. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-indexmap-2.14.0/LICENSE-MIT +0 -0
  133. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-js-sys-0.3.102/LICENSE-APACHE +0 -0
  134. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-js-sys-0.3.102/LICENSE-MIT +0 -0
  135. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-libc-0.2.186/LICENSE-APACHE +0 -0
  136. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-libc-0.2.186/LICENSE-MIT +0 -0
  137. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-log-0.4.32/LICENSE-APACHE +0 -0
  138. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-log-0.4.32/LICENSE-MIT +0 -0
  139. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-memchr-2.8.2/COPYING +0 -0
  140. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-memchr-2.8.2/LICENSE-MIT +0 -0
  141. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-miniz_oxide-0.8.9/LICENSE +0 -0
  142. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-miniz_oxide-0.8.9/LICENSE-APACHE.md +0 -0
  143. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-miniz_oxide-0.8.9/LICENSE-MIT.md +0 -0
  144. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-miniz_oxide-0.8.9/LICENSE-ZLIB.md +0 -0
  145. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-num-traits-0.2.19/LICENSE-APACHE +0 -0
  146. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-num-traits-0.2.19/LICENSE-MIT +0 -0
  147. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-once_cell-1.21.4/LICENSE-APACHE +0 -0
  148. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-once_cell-1.21.4/LICENSE-MIT +0 -0
  149. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-pin-project-lite-0.2.17/LICENSE-APACHE +0 -0
  150. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-pin-project-lite-0.2.17/LICENSE-MIT +0 -0
  151. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-portable-atomic-1.13.1/LICENSE-APACHE +0 -0
  152. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-portable-atomic-1.13.1/LICENSE-MIT +0 -0
  153. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-proc-macro2-1.0.106/LICENSE-APACHE +0 -0
  154. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-proc-macro2-1.0.106/LICENSE-MIT +0 -0
  155. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-pyo3-0.29.0/LICENSE-APACHE +0 -0
  156. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-pyo3-0.29.0/LICENSE-MIT +0 -0
  157. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-pyo3-0.29.0/pyo3-runtime/LICENSE-APACHE +0 -0
  158. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-pyo3-0.29.0/pyo3-runtime/LICENSE-MIT +0 -0
  159. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-pyo3-build-config-0.29.0/LICENSE-APACHE +0 -0
  160. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-pyo3-build-config-0.29.0/LICENSE-MIT +0 -0
  161. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-pyo3-ffi-0.29.0/LICENSE-APACHE +0 -0
  162. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-pyo3-ffi-0.29.0/LICENSE-MIT +0 -0
  163. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-pyo3-file-0.16.0/Cargo.toml +0 -0
  164. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-pyo3-file-0.16.0/README.md +0 -0
  165. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-pyo3-file-0.16.0/declared-license/Apache-2.0.txt +0 -0
  166. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-pyo3-macros-0.29.0/LICENSE-APACHE +0 -0
  167. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-pyo3-macros-0.29.0/LICENSE-MIT +0 -0
  168. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-pyo3-macros-backend-0.29.0/LICENSE-APACHE +0 -0
  169. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-pyo3-macros-backend-0.29.0/LICENSE-MIT +0 -0
  170. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-quick-xml-0.41.0/LICENSE-MIT.md +0 -0
  171. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-quote-1.0.45/LICENSE-APACHE +0 -0
  172. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-quote-1.0.45/LICENSE-MIT +0 -0
  173. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-rustversion-1.0.22/LICENSE-APACHE +0 -0
  174. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-rustversion-1.0.22/LICENSE-MIT +0 -0
  175. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-serde-1.0.228/LICENSE-APACHE +0 -0
  176. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-serde-1.0.228/LICENSE-MIT +0 -0
  177. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-serde_core-1.0.228/LICENSE-APACHE +0 -0
  178. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-serde_core-1.0.228/LICENSE-MIT +0 -0
  179. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-serde_derive-1.0.228/LICENSE-APACHE +0 -0
  180. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-serde_derive-1.0.228/LICENSE-MIT +0 -0
  181. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-shlex-2.0.1/LICENSE-APACHE +0 -0
  182. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-shlex-2.0.1/LICENSE-MIT +0 -0
  183. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-simd-adler32-0.3.9/LICENSE.md +0 -0
  184. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-slab-0.4.12/LICENSE +0 -0
  185. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-syn-2.0.118/LICENSE-APACHE +0 -0
  186. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-syn-2.0.118/LICENSE-MIT +0 -0
  187. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-target-lexicon-0.13.5/LICENSE +0 -0
  188. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-typed-path-0.12.3/LICENSE-APACHE +0 -0
  189. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-typed-path-0.12.3/LICENSE-MIT +0 -0
  190. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-unicode-ident-1.0.24/LICENSE-APACHE +0 -0
  191. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-unicode-ident-1.0.24/LICENSE-MIT +0 -0
  192. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-unicode-ident-1.0.24/LICENSE-UNICODE +0 -0
  193. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-wasm-bindgen-0.2.125/LICENSE-APACHE +0 -0
  194. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-wasm-bindgen-0.2.125/LICENSE-MIT +0 -0
  195. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-wasm-bindgen-macro-0.2.125/LICENSE-APACHE +0 -0
  196. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-wasm-bindgen-macro-0.2.125/LICENSE-MIT +0 -0
  197. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-wasm-bindgen-macro-support-0.2.125/LICENSE-APACHE +0 -0
  198. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-wasm-bindgen-macro-support-0.2.125/LICENSE-MIT +0 -0
  199. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-wasm-bindgen-shared-0.2.125/LICENSE-APACHE +0 -0
  200. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-wasm-bindgen-shared-0.2.125/LICENSE-MIT +0 -0
  201. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-windows-core-0.62.2/license-apache-2.0 +0 -0
  202. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-windows-core-0.62.2/license-mit +0 -0
  203. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-windows-implement-0.60.2/license-apache-2.0 +0 -0
  204. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-windows-implement-0.60.2/license-mit +0 -0
  205. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-windows-interface-0.59.3/license-apache-2.0 +0 -0
  206. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-windows-interface-0.59.3/license-mit +0 -0
  207. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-windows-link-0.2.1/license-apache-2.0 +0 -0
  208. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-windows-link-0.2.1/license-mit +0 -0
  209. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-windows-result-0.4.1/license-apache-2.0 +0 -0
  210. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-windows-result-0.4.1/license-mit +0 -0
  211. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-windows-strings-0.5.1/license-apache-2.0 +0 -0
  212. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-windows-strings-0.5.1/license-mit +0 -0
  213. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-zip-8.6.0/LICENSE +0 -0
  214. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-zlib-rs-0.6.3/LICENSE +0 -0
  215. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/rust-zopfli-0.8.3/COPYING +0 -0
  216. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/selectolax-0.4.13/LICENSE +0 -0
  217. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/selectolax-0.4.13/lexbor/LICENSE +0 -0
  218. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/standalone-licenses/selectolax-0.4.13/lexbor/NOTICE +0 -0
  219. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/workflows/build_standalone.py +0 -0
  220. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/workflows/recover_v020.py +0 -0
  221. {brewdoc-0.3.1 → brewdoc-0.3.2}/.github/workflows/verify_install.py +0 -0
  222. {brewdoc-0.3.1 → brewdoc-0.3.2}/.gitignore +0 -0
  223. {brewdoc-0.3.1 → brewdoc-0.3.2}/.python-version +0 -0
  224. {brewdoc-0.3.1 → brewdoc-0.3.2}/LICENSE +0 -0
  225. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/CATALOG.md +0 -0
  226. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/LICENSES/apache-httpd-LICENSE.txt +0 -0
  227. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/LICENSES/apache-httpd-NOTICE.txt +0 -0
  228. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/LICENSES/calamine-MIT.txt +0 -0
  229. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/METHODOLOGY.md +0 -0
  230. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/README.md +0 -0
  231. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/README.md +0 -0
  232. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/docx-libreoffice-negative-cell-margin-twips.json +0 -0
  233. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/docx-poi-deep-table-cell.json +0 -0
  234. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/docx-poi-table-alignment.json +0 -0
  235. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/docx-poi-three-col-head.json +0 -0
  236. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/docx-tika-testword-various.json +0 -0
  237. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/docx-tika-testword.json +0 -0
  238. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/epub-epubcheck-minimal.json +0 -0
  239. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/epub-standardebooks-herland.json +0 -0
  240. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/html-apache-httpd-allowmethods.json +0 -0
  241. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/html-mdn-document-structure.json +0 -0
  242. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/html-mdn-first-form-styled.json +0 -0
  243. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/html-mdn-items-sold-headers.json +0 -0
  244. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/html-mdn-planets-data.json +0 -0
  245. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/html-mdn-timetable-caption.json +0 -0
  246. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/ods-calamine-any-sheets.json +0 -0
  247. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/ods-calamine-date.json +0 -0
  248. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/ods-calamine-issues.json +0 -0
  249. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/ods-calamine-merged-cells.json +0 -0
  250. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/ods-calamine-special-cells.json +0 -0
  251. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/pdf-arxiv-2302.13971v1.json +0 -0
  252. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/pdf-arxiv-2305.18290v3.json +0 -0
  253. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/pdf-arxiv-2402.00838v4.json +0 -0
  254. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/pdf-eia-steo-table1.json +0 -0
  255. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/pdf-fbi-nics-background-checks-2015-11.json +0 -0
  256. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/pdf-federal-register-2020-17221.json +0 -0
  257. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/pdf-nist-sp800-145.json +0 -0
  258. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/pdf-us-patent-223898-scan.json +0 -0
  259. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/pdf-us-senate-expenditures.json +0 -0
  260. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/pptx-poi-table-test.json +0 -0
  261. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/pptx-poi-testppt.json +0 -0
  262. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/pptx-python-pptx-test.json +0 -0
  263. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/pptx-tika-testppt-various2.json +0 -0
  264. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/xls-calamine-any-sheets.json +0 -0
  265. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/xls-calamine-date.json +0 -0
  266. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/xls-calamine-merge-cells.json +0 -0
  267. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/xls-calamine-xls-formula.json +0 -0
  268. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/xls-census-st-est00int-01.json +0 -0
  269. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/xlsb-calamine-date.json +0 -0
  270. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/xlsb-calamine-issue127.json +0 -0
  271. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/xlsb-calamine-issues.json +0 -0
  272. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/xlsm-calamine-issue221.json +0 -0
  273. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/xlsm-calamine-issue3.json +0 -0
  274. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/xlsm-calamine-vba.json +0 -0
  275. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/xlsx-calamine-any-sheets.json +0 -0
  276. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/xlsx-calamine-date.json +0 -0
  277. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/xlsx-calamine-inventory-table.json +0 -0
  278. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/xlsx-calamine-merge-cells.json +0 -0
  279. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/xlsx-calamine-temperature-table.json +0 -0
  280. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/annotations/xlsx-census-nst-est2024-pop.json +0 -0
  281. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/capture_results.py +0 -0
  282. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/compare_latency.py +0 -0
  283. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/corpus.json +0 -0
  284. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/README.md +0 -0
  285. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/ods-calamine-any-sheets.json +0 -0
  286. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/ods-calamine-date.json +0 -0
  287. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/ods-calamine-issues.json +0 -0
  288. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/ods-calamine-merged-cells.json +0 -0
  289. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/ods-calamine-special-cells.json +0 -0
  290. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/pdf-arxiv-2302.13971v1.json +0 -0
  291. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/pdf-arxiv-2305.18290v3.json +0 -0
  292. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/pdf-arxiv-2402.00838v4.json +0 -0
  293. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/pdf-eia-steo-table1.json +0 -0
  294. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/pdf-fbi-nics-background-checks-2015-11.json +0 -0
  295. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/pdf-federal-register-2020-17221.json +0 -0
  296. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/pdf-nist-sp800-145.json +0 -0
  297. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/pdf-us-patent-223898-scan.json +0 -0
  298. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/pdf-us-senate-expenditures.json +0 -0
  299. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/xls-calamine-any-sheets.json +0 -0
  300. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/xls-calamine-date.json +0 -0
  301. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/xls-calamine-merge-cells.json +0 -0
  302. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/xls-calamine-xls-formula.json +0 -0
  303. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/xls-census-st-est00int-01.json +0 -0
  304. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/xlsb-calamine-date.json +0 -0
  305. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/xlsb-calamine-issue127.json +0 -0
  306. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/xlsb-calamine-issues.json +0 -0
  307. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/xlsm-calamine-issue221.json +0 -0
  308. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/xlsm-calamine-issue3.json +0 -0
  309. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/xlsm-calamine-vba.json +0 -0
  310. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/xlsx-calamine-any-sheets.json +0 -0
  311. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/xlsx-calamine-date.json +0 -0
  312. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/xlsx-calamine-inventory-table.json +0 -0
  313. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/xlsx-calamine-merge-cells.json +0 -0
  314. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/xlsx-calamine-temperature-table.json +0 -0
  315. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/annotations/xlsx-census-nst-est2024-pop.json +0 -0
  316. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/context.json +0 -0
  317. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/corpus-v1.json +0 -0
  318. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/corpus.json +0 -0
  319. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/markdown-integrity.json +0 -0
  320. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/ods-calamine-any-sheets/artifacts/document.md +0 -0
  321. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/ods-calamine-any-sheets/receipt.json +0 -0
  322. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/ods-calamine-any-sheets/result.json +0 -0
  323. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/ods-calamine-date/artifacts/document.md +0 -0
  324. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/ods-calamine-date/receipt.json +0 -0
  325. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/ods-calamine-date/result.json +0 -0
  326. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/ods-calamine-issues/artifacts/document.md +0 -0
  327. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/ods-calamine-issues/receipt.json +0 -0
  328. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/ods-calamine-issues/result.json +0 -0
  329. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/ods-calamine-merged-cells/artifacts/document.md +0 -0
  330. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/ods-calamine-merged-cells/receipt.json +0 -0
  331. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/ods-calamine-merged-cells/result.json +0 -0
  332. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/ods-calamine-special-cells/artifacts/document.md +0 -0
  333. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/ods-calamine-special-cells/receipt.json +0 -0
  334. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/ods-calamine-special-cells/result.json +0 -0
  335. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/pdf-arxiv-2302.13971v1/artifacts/document.md +0 -0
  336. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/pdf-arxiv-2302.13971v1/receipt.json +0 -0
  337. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/pdf-arxiv-2302.13971v1/result.json +0 -0
  338. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/pdf-arxiv-2305.18290v3/artifacts/document.md +0 -0
  339. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/pdf-arxiv-2305.18290v3/receipt.json +0 -0
  340. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/pdf-arxiv-2305.18290v3/result.json +0 -0
  341. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/pdf-arxiv-2402.00838v4/artifacts/document.md +0 -0
  342. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/pdf-arxiv-2402.00838v4/receipt.json +0 -0
  343. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/pdf-arxiv-2402.00838v4/result.json +0 -0
  344. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/pdf-eia-steo-table1/artifacts/document.md +0 -0
  345. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/pdf-eia-steo-table1/receipt.json +0 -0
  346. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/pdf-eia-steo-table1/result.json +0 -0
  347. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/pdf-fbi-nics-background-checks-2015-11/artifacts/document.md +0 -0
  348. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/pdf-fbi-nics-background-checks-2015-11/receipt.json +0 -0
  349. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/pdf-fbi-nics-background-checks-2015-11/result.json +0 -0
  350. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/pdf-federal-register-2020-17221/artifacts/document.md +0 -0
  351. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/pdf-federal-register-2020-17221/receipt.json +0 -0
  352. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/pdf-federal-register-2020-17221/result.json +0 -0
  353. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/pdf-nist-sp800-145/artifacts/document.md +0 -0
  354. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/pdf-nist-sp800-145/receipt.json +0 -0
  355. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/pdf-nist-sp800-145/result.json +0 -0
  356. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/pdf-us-patent-223898-scan/receipt.json +0 -0
  357. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/pdf-us-patent-223898-scan/result.json +0 -0
  358. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/pdf-us-senate-expenditures/artifacts/document.md +0 -0
  359. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/pdf-us-senate-expenditures/receipt.json +0 -0
  360. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/pdf-us-senate-expenditures/result.json +0 -0
  361. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xls-calamine-any-sheets/artifacts/document.md +0 -0
  362. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xls-calamine-any-sheets/receipt.json +0 -0
  363. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xls-calamine-any-sheets/result.json +0 -0
  364. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xls-calamine-date/artifacts/document.md +0 -0
  365. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xls-calamine-date/receipt.json +0 -0
  366. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xls-calamine-date/result.json +0 -0
  367. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xls-calamine-merge-cells/artifacts/document.md +0 -0
  368. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xls-calamine-merge-cells/receipt.json +0 -0
  369. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xls-calamine-merge-cells/result.json +0 -0
  370. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xls-calamine-xls-formula/artifacts/document.md +0 -0
  371. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xls-calamine-xls-formula/receipt.json +0 -0
  372. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xls-calamine-xls-formula/result.json +0 -0
  373. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xls-census-st-est00int-01/artifacts/document.md +0 -0
  374. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xls-census-st-est00int-01/receipt.json +0 -0
  375. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xls-census-st-est00int-01/result.json +0 -0
  376. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsb-calamine-date/artifacts/document.md +0 -0
  377. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsb-calamine-date/receipt.json +0 -0
  378. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsb-calamine-date/result.json +0 -0
  379. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsb-calamine-issue127/artifacts/document.md +0 -0
  380. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsb-calamine-issue127/receipt.json +0 -0
  381. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsb-calamine-issue127/result.json +0 -0
  382. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsb-calamine-issues/artifacts/document.md +0 -0
  383. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsb-calamine-issues/receipt.json +0 -0
  384. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsb-calamine-issues/result.json +0 -0
  385. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsm-calamine-issue221/artifacts/document.md +0 -0
  386. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsm-calamine-issue221/receipt.json +0 -0
  387. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsm-calamine-issue221/result.json +0 -0
  388. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsm-calamine-issue3/artifacts/document.md +0 -0
  389. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsm-calamine-issue3/receipt.json +0 -0
  390. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsm-calamine-issue3/result.json +0 -0
  391. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsm-calamine-vba/artifacts/document.md +0 -0
  392. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsm-calamine-vba/receipt.json +0 -0
  393. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsm-calamine-vba/result.json +0 -0
  394. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsx-calamine-any-sheets/artifacts/document.md +0 -0
  395. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsx-calamine-any-sheets/receipt.json +0 -0
  396. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsx-calamine-any-sheets/result.json +0 -0
  397. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsx-calamine-date/artifacts/document.md +0 -0
  398. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsx-calamine-date/receipt.json +0 -0
  399. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsx-calamine-date/result.json +0 -0
  400. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsx-calamine-inventory-table/artifacts/document.md +0 -0
  401. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsx-calamine-inventory-table/receipt.json +0 -0
  402. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsx-calamine-inventory-table/result.json +0 -0
  403. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsx-calamine-merge-cells/artifacts/document.md +0 -0
  404. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsx-calamine-merge-cells/receipt.json +0 -0
  405. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsx-calamine-merge-cells/result.json +0 -0
  406. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsx-calamine-temperature-table/artifacts/document.md +0 -0
  407. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsx-calamine-temperature-table/receipt.json +0 -0
  408. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsx-calamine-temperature-table/result.json +0 -0
  409. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsx-census-nst-est2024-pop/artifacts/document.md +0 -0
  410. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsx-census-nst-est2024-pop/receipt.json +0 -0
  411. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-1/xlsx-census-nst-est2024-pop/result.json +0 -0
  412. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/ods-calamine-any-sheets/artifacts/document.md +0 -0
  413. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/ods-calamine-any-sheets/receipt.json +0 -0
  414. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/ods-calamine-any-sheets/result.json +0 -0
  415. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/ods-calamine-date/artifacts/document.md +0 -0
  416. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/ods-calamine-date/receipt.json +0 -0
  417. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/ods-calamine-date/result.json +0 -0
  418. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/ods-calamine-issues/artifacts/document.md +0 -0
  419. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/ods-calamine-issues/receipt.json +0 -0
  420. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/ods-calamine-issues/result.json +0 -0
  421. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/ods-calamine-merged-cells/artifacts/document.md +0 -0
  422. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/ods-calamine-merged-cells/receipt.json +0 -0
  423. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/ods-calamine-merged-cells/result.json +0 -0
  424. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/ods-calamine-special-cells/artifacts/document.md +0 -0
  425. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/ods-calamine-special-cells/receipt.json +0 -0
  426. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/ods-calamine-special-cells/result.json +0 -0
  427. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/pdf-arxiv-2302.13971v1/artifacts/document.md +0 -0
  428. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/pdf-arxiv-2302.13971v1/receipt.json +0 -0
  429. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/pdf-arxiv-2302.13971v1/result.json +0 -0
  430. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/pdf-arxiv-2305.18290v3/artifacts/document.md +0 -0
  431. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/pdf-arxiv-2305.18290v3/receipt.json +0 -0
  432. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/pdf-arxiv-2305.18290v3/result.json +0 -0
  433. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/pdf-arxiv-2402.00838v4/artifacts/document.md +0 -0
  434. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/pdf-arxiv-2402.00838v4/receipt.json +0 -0
  435. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/pdf-arxiv-2402.00838v4/result.json +0 -0
  436. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/pdf-eia-steo-table1/artifacts/document.md +0 -0
  437. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/pdf-eia-steo-table1/receipt.json +0 -0
  438. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/pdf-eia-steo-table1/result.json +0 -0
  439. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/pdf-fbi-nics-background-checks-2015-11/artifacts/document.md +0 -0
  440. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/pdf-fbi-nics-background-checks-2015-11/receipt.json +0 -0
  441. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/pdf-fbi-nics-background-checks-2015-11/result.json +0 -0
  442. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/pdf-federal-register-2020-17221/artifacts/document.md +0 -0
  443. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/pdf-federal-register-2020-17221/receipt.json +0 -0
  444. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/pdf-federal-register-2020-17221/result.json +0 -0
  445. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/pdf-nist-sp800-145/artifacts/document.md +0 -0
  446. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/pdf-nist-sp800-145/receipt.json +0 -0
  447. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/pdf-nist-sp800-145/result.json +0 -0
  448. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/pdf-us-patent-223898-scan/receipt.json +0 -0
  449. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/pdf-us-patent-223898-scan/result.json +0 -0
  450. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/pdf-us-senate-expenditures/artifacts/document.md +0 -0
  451. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/pdf-us-senate-expenditures/receipt.json +0 -0
  452. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/pdf-us-senate-expenditures/result.json +0 -0
  453. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xls-calamine-any-sheets/artifacts/document.md +0 -0
  454. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xls-calamine-any-sheets/receipt.json +0 -0
  455. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xls-calamine-any-sheets/result.json +0 -0
  456. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xls-calamine-date/artifacts/document.md +0 -0
  457. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xls-calamine-date/receipt.json +0 -0
  458. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xls-calamine-date/result.json +0 -0
  459. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xls-calamine-merge-cells/artifacts/document.md +0 -0
  460. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xls-calamine-merge-cells/receipt.json +0 -0
  461. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xls-calamine-merge-cells/result.json +0 -0
  462. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xls-calamine-xls-formula/artifacts/document.md +0 -0
  463. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xls-calamine-xls-formula/receipt.json +0 -0
  464. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xls-calamine-xls-formula/result.json +0 -0
  465. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xls-census-st-est00int-01/artifacts/document.md +0 -0
  466. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xls-census-st-est00int-01/receipt.json +0 -0
  467. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xls-census-st-est00int-01/result.json +0 -0
  468. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsb-calamine-date/artifacts/document.md +0 -0
  469. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsb-calamine-date/receipt.json +0 -0
  470. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsb-calamine-date/result.json +0 -0
  471. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsb-calamine-issue127/artifacts/document.md +0 -0
  472. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsb-calamine-issue127/receipt.json +0 -0
  473. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsb-calamine-issue127/result.json +0 -0
  474. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsb-calamine-issues/artifacts/document.md +0 -0
  475. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsb-calamine-issues/receipt.json +0 -0
  476. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsb-calamine-issues/result.json +0 -0
  477. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsm-calamine-issue221/artifacts/document.md +0 -0
  478. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsm-calamine-issue221/receipt.json +0 -0
  479. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsm-calamine-issue221/result.json +0 -0
  480. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsm-calamine-issue3/artifacts/document.md +0 -0
  481. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsm-calamine-issue3/receipt.json +0 -0
  482. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsm-calamine-issue3/result.json +0 -0
  483. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsm-calamine-vba/artifacts/document.md +0 -0
  484. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsm-calamine-vba/receipt.json +0 -0
  485. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsm-calamine-vba/result.json +0 -0
  486. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsx-calamine-any-sheets/artifacts/document.md +0 -0
  487. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsx-calamine-any-sheets/receipt.json +0 -0
  488. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsx-calamine-any-sheets/result.json +0 -0
  489. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsx-calamine-date/artifacts/document.md +0 -0
  490. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsx-calamine-date/receipt.json +0 -0
  491. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsx-calamine-date/result.json +0 -0
  492. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsx-calamine-inventory-table/artifacts/document.md +0 -0
  493. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsx-calamine-inventory-table/receipt.json +0 -0
  494. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsx-calamine-inventory-table/result.json +0 -0
  495. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsx-calamine-merge-cells/artifacts/document.md +0 -0
  496. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsx-calamine-merge-cells/receipt.json +0 -0
  497. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsx-calamine-merge-cells/result.json +0 -0
  498. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsx-calamine-temperature-table/artifacts/document.md +0 -0
  499. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsx-calamine-temperature-table/receipt.json +0 -0
  500. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsx-calamine-temperature-table/result.json +0 -0
  501. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsx-census-nst-est2024-pop/artifacts/document.md +0 -0
  502. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsx-census-nst-est2024-pop/receipt.json +0 -0
  503. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/pass-2/xlsx-census-nst-est2024-pop/result.json +0 -0
  504. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/quality.json +0 -0
  505. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/results.json +0 -0
  506. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/ods-calamine-any-sheets.json +0 -0
  507. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/ods-calamine-date.json +0 -0
  508. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/ods-calamine-issues.json +0 -0
  509. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/ods-calamine-merged-cells.json +0 -0
  510. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/ods-calamine-special-cells.json +0 -0
  511. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/pdf-arxiv-2302.13971v1.json +0 -0
  512. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/pdf-arxiv-2305.18290v3.json +0 -0
  513. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/pdf-arxiv-2402.00838v4.json +0 -0
  514. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/pdf-eia-steo-table1.json +0 -0
  515. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/pdf-fbi-nics-background-checks-2015-11.json +0 -0
  516. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/pdf-federal-register-2020-17221.json +0 -0
  517. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/pdf-nist-sp800-145.json +0 -0
  518. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/pdf-us-patent-223898-scan.json +0 -0
  519. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/pdf-us-senate-expenditures.json +0 -0
  520. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/xls-calamine-any-sheets.json +0 -0
  521. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/xls-calamine-date.json +0 -0
  522. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/xls-calamine-merge-cells.json +0 -0
  523. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/xls-calamine-xls-formula.json +0 -0
  524. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/xls-census-st-est00int-01.json +0 -0
  525. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/xlsb-calamine-date.json +0 -0
  526. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/xlsb-calamine-issue127.json +0 -0
  527. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/xlsb-calamine-issues.json +0 -0
  528. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/xlsm-calamine-issue221.json +0 -0
  529. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/xlsm-calamine-issue3.json +0 -0
  530. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/xlsm-calamine-vba.json +0 -0
  531. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/xlsx-calamine-any-sheets.json +0 -0
  532. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/xlsx-calamine-date.json +0 -0
  533. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/xlsx-calamine-inventory-table.json +0 -0
  534. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/xlsx-calamine-merge-cells.json +0 -0
  535. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/xlsx-calamine-temperature-table.json +0 -0
  536. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/reviews/xlsx-census-nst-est2024-pop.json +0 -0
  537. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/selection.json +0 -0
  538. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/20260913-133006/validation.json +0 -0
  539. {brewdoc-0.3.1 → brewdoc-0.3.2}/benchmarks/results/README.md +0 -0
  540. {brewdoc-0.3.1 → brewdoc-0.3.2}/src/brewdoc/_standalone.py +0 -0
  541. {brewdoc-0.3.1 → brewdoc-0.3.2}/src/brewdoc/_urljs/__init__.py +0 -0
  542. {brewdoc-0.3.1 → brewdoc-0.3.2}/src/brewdoc/_urljs/glue.js +0 -0
  543. {brewdoc-0.3.1 → brewdoc-0.3.2}/src/brewdoc/_urljs/native.py +0 -0
  544. {brewdoc-0.3.1 → brewdoc-0.3.2}/src/brewdoc/_vendor/THIRD_PARTY_NOTICES.txt +0 -0
  545. {brewdoc-0.3.1 → brewdoc-0.3.2}/src/brewdoc/_vendor/linkedom-worker.js +0 -0
  546. {brewdoc-0.3.1 → brewdoc-0.3.2}/src/brewdoc/common.py +0 -0
  547. {brewdoc-0.3.1 → brewdoc-0.3.2}/src/brewdoc/docx.py +0 -0
  548. {brewdoc-0.3.1 → brewdoc-0.3.2}/src/brewdoc/epub.py +0 -0
  549. {brewdoc-0.3.1 → brewdoc-0.3.2}/src/brewdoc/htmljs.py +0 -0
  550. {brewdoc-0.3.1 → brewdoc-0.3.2}/src/brewdoc/htmltext.py +0 -0
  551. {brewdoc-0.3.1 → brewdoc-0.3.2}/src/brewdoc/htmlurl.py +0 -0
  552. {brewdoc-0.3.1 → brewdoc-0.3.2}/src/brewdoc/output.py +0 -0
  553. {brewdoc-0.3.1 → brewdoc-0.3.2}/src/brewdoc/pdf.py +0 -0
  554. {brewdoc-0.3.1 → brewdoc-0.3.2}/src/brewdoc/pptx.py +0 -0
  555. {brewdoc-0.3.1 → brewdoc-0.3.2}/src/brewdoc/selfcheck.py +0 -0
  556. {brewdoc-0.3.1 → brewdoc-0.3.2}/src/brewdoc/service.py +0 -0
  557. {brewdoc-0.3.1 → brewdoc-0.3.2}/src/brewdoc/sheets.py +0 -0
  558. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/SOURCES.md +0 -0
  559. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/csv/vega-global-temp.csv +0 -0
  560. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/csv/vega-iowa-electricity.csv +0 -0
  561. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/csv/vega-seattle-weather.csv +0 -0
  562. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/csv/vega-us-employment.csv +0 -0
  563. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/docx/libreoffice-negative-cell-margin-twips.docx +0 -0
  564. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/docx/poi-ThreeColHead.docx +0 -0
  565. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/docx/poi-deep-table-cell.docx +0 -0
  566. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/docx/poi-table-alignment.docx +0 -0
  567. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/docx/tika-testWORD.docx +0 -0
  568. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/docx/tika-testWORD_various.docx +0 -0
  569. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/eml/tika-testGroupWiseEml.eml +0 -0
  570. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/eml/tika-testRFC822_dkim.eml +0 -0
  571. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/eml/tika-testRFC822_multipart_attachments.eml +0 -0
  572. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/epub/epubcheck-minimal.epub +0 -0
  573. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/epub/standardebooks-herland.epub +0 -0
  574. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/html/apache-httpd-allowmethods.html +0 -0
  575. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/html/mdn-document-structure.html +0 -0
  576. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/html/mdn-first-form-styled.html +0 -0
  577. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/html/mdn-items-sold-headers.html +0 -0
  578. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/html/mdn-planets-data.html +0 -0
  579. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/html/mdn-timetable-caption.html +0 -0
  580. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/md/calamine-README.md +0 -0
  581. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/md/pdfplumber-README.md +0 -0
  582. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/odp/tika-testMasterFooter.odp +0 -0
  583. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/odp/tika-testODPMacro.odp +0 -0
  584. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/ods/calamine-any_sheets.ods +0 -0
  585. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/ods/calamine-date.ods +0 -0
  586. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/ods/calamine-issues.ods +0 -0
  587. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/ods/calamine-merged_cells.ods +0 -0
  588. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/ods/calamine-special_cells.ods +0 -0
  589. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/odt/tika-testODFwithOOo3.odt +0 -0
  590. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/odt/tika-testODTStyles2.odt +0 -0
  591. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/odt/tika-testOpenOffice2.odt +0 -0
  592. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/pdf/arxiv-2302.13971v1.pdf +0 -0
  593. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/pdf/arxiv-2305.18290v3.pdf +0 -0
  594. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/pdf/arxiv-2402.00838v4.pdf +0 -0
  595. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/pdf/eia-steo-table1.pdf +0 -0
  596. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/pdf/fbi-nics-background-checks-2015-11.pdf +0 -0
  597. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/pdf/federal-register-2020-17221.pdf +0 -0
  598. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/pdf/nist-sp800-145.pdf +0 -0
  599. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/pdf/us-patent-223898-scan.pdf +0 -0
  600. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/pdf/us-senate-expenditures.pdf +0 -0
  601. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/pptx/poi-table_test.pptx +0 -0
  602. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/pptx/poi-testPPT.pptx +0 -0
  603. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/pptx/python-pptx-test.pptx +0 -0
  604. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/pptx/tika-testPPT_various2.pptx +0 -0
  605. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/receipts.json +0 -0
  606. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/tsv/miller-abixy.tsv +0 -0
  607. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/tsv/vega-unemployment.tsv +0 -0
  608. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/txt/nasa-giss-global-temperature-index.txt +0 -0
  609. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/txt/noaa-ghcn-daily-readme.txt +0 -0
  610. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/xls/calamine-any_sheets.xls +0 -0
  611. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/xls/calamine-date.xls +0 -0
  612. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/xls/calamine-merge_cells.xls +0 -0
  613. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/xls/calamine-xls_formula.xls +0 -0
  614. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/xls/census-st-est00int-01.xls +0 -0
  615. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/xlsb/calamine-date.xlsb +0 -0
  616. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/xlsb/calamine-issue127.xlsb +0 -0
  617. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/xlsb/calamine-issues.xlsb +0 -0
  618. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/xlsm/calamine-issue221.xlsm +0 -0
  619. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/xlsm/calamine-issue3.xlsm +0 -0
  620. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/xlsm/calamine-vba.xlsm +0 -0
  621. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/xlsx/calamine-any_sheets.xlsx +0 -0
  622. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/xlsx/calamine-date.xlsx +0 -0
  623. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/xlsx/calamine-inventory-table.xlsx +0 -0
  624. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/xlsx/calamine-merge_cells.xlsx +0 -0
  625. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/xlsx/calamine-temperature-table.xlsx +0 -0
  626. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/fixtures/xlsx/census-NST-EST2024-POP.xlsx +0 -0
  627. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_benchmark_metadata.py +0 -0
  628. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_capture_results.py +0 -0
  629. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_compare_latency.py +0 -0
  630. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_contract.py +0 -0
  631. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_documents.py +0 -0
  632. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_epub.py +0 -0
  633. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_fixtures.py +0 -0
  634. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_html.py +0 -0
  635. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_html_js.py +0 -0
  636. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_html_js_a10.py +0 -0
  637. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_html_js_bootstrap.py +0 -0
  638. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_html_js_content.py +0 -0
  639. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_html_js_inner_text.py +0 -0
  640. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_html_js_promises.py +0 -0
  641. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_html_js_viewport.py +0 -0
  642. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_html_native.py +0 -0
  643. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_html_search_post.py +0 -0
  644. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_html_search_post_js.py +0 -0
  645. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_html_snapshot_guard.py +0 -0
  646. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_html_snapshot_ownership.py +0 -0
  647. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_html_timeout.py +0 -0
  648. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_html_timeout_guards.py +0 -0
  649. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_html_url.py +0 -0
  650. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_html_url_cli.py +0 -0
  651. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_install_smoke.py +0 -0
  652. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_install_verification.py +0 -0
  653. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_output.py +0 -0
  654. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_pdf_regressions.py +0 -0
  655. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_presentations.py +0 -0
  656. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_release_recovery.py +0 -0
  657. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_spreadsheets.py +0 -0
  658. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_standalone.py +0 -0
  659. {brewdoc-0.3.1 → brewdoc-0.3.2}/tests/test_standalone_build.py +0 -0
@@ -40,7 +40,6 @@
40
40
  "name": "brewdoc",
41
41
  "packages": {
42
42
  "linux-x64": "brewdoc-linux-x64-glibc",
43
- "windows-x64": "brewdoc-win32-x64",
44
43
  "macos-arm64": "brewdoc-darwin-arm64"
45
44
  },
46
45
  "node": "24.21.0",
@@ -52,11 +51,8 @@
52
51
  "linux": "Archive SHA-256 checksums; no detached publisher signature"
53
52
  },
54
53
  "release_features": [
55
- "Portable one-folder bundles for Linux x64, Windows x64 and macOS ARM64 with bundled Python and dependencies",
56
- "npm and npx launch the same admitted native engine through platform packages",
57
- "Offline EPUB 2/3 conversion in declared spine order with Unicode metadata and navigation",
58
- "Explicit URL acquisition and optional isolated JavaScript capture on admitted platforms",
59
- "PDF, DOCX, PPTX, workbook and static HTML conversion with deterministic receipts"
54
+ "Dedicated installation guide and concise CLI/API documentation",
55
+ "npm/npx packaging for Linux x64/glibc and macOS ARM64; Windows via GitHub native or Python"
60
56
  ],
61
57
  "releases": {
62
58
  "0.2.0": {
@@ -0,0 +1,11 @@
1
+ -----BEGIN PUBLIC KEY-----
2
+ MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAy74Md75tburqWJtMECMs
3
+ /5OqcyxQNq1rKJtz17HdfE6GJCj/eczuv4HXpf5muq0+hRnjBNxVZ90yiYr7mRdM
4
+ WF+R594Pv5/lR19bH5+PtEka/skYK3LcsVHO2lrQHG3tWAWiddp+k0H5umwkQ7tN
5
+ CoXM9A088t/uZ8EpbRf6GpDKe4tnFLBMU2cPYTnD1x9yXOesXov89TYRUEP7aqhb
6
+ qfWZpxdLXBy8I3K3d5hIlrbuJQ5Mn36K9BtmXHMj3gjJW6tlDJR0Zd2GN13yvwZC
7
+ 9YQ7aDB3oiMP6RdCF3HO8zILP5MnvhIrALHUvjrNLBbGTVnmzXsYyAjoOaW9GOng
8
+ KsYmdr/ypjHHmt8iEndNAKXw0XMq+I+EQ8yAxqKe1mMvjAya1Aaq/np0fOiYwm+l
9
+ UwpybGajeOuF5OhKoMJY97WwSzxOt8MORjjYHRXmgYbWNDQwoBexu1pA+OV54Ygt
10
+ 5/z+YXjQT/eMh8NCJljUwdABYJKUFI0LTo1wInZFjV7vAgMBAAE=
11
+ -----END PUBLIC KEY-----
@@ -31,11 +31,18 @@ ROOT = Path(__file__).resolve().parents[2]
31
31
  REGISTRY = "https://registry.npmjs.org"
32
32
  NODE_VERSION = "24.21.0"
33
33
  NPM_VERSION = "12.2.0"
34
- PACKAGES = {"linux-x64": "brewdoc-linux-x64-glibc", "windows-x64": "brewdoc-win32-x64",
35
- "macos-arm64": "brewdoc-darwin-arm64"}
34
+ PACKAGES = {"linux-x64": "brewdoc-linux-x64-glibc", "macos-arm64": "brewdoc-darwin-arm64"}
36
35
  TARGETS = {"linux-x64": {"os": "linux", "cpu": "x64", "libc": "glibc", "executable": "binary/brewdoc"},
37
- "windows-x64": {"os": "win32", "cpu": "x64", "executable": "binary/brewdoc.exe"},
38
36
  "macos-arm64": {"os": "darwin", "cpu": "arm64", "executable": "binary/brewdoc"}}
37
+ PUBLISH_CAUSES = {"E400": "bad-request", "E401": "authentication-rejected", "E403": "registry-forbidden",
38
+ "E404": "registry-not-found", "E409": "version-conflict", "E429": "rate-limit",
39
+ "E413": "payload-too-large", "E422": "registry-unprocessable",
40
+ "EOTP": "one-time-password-required", "ENEEDAUTH": "authentication-required",
41
+ "EPUBLISHCONFLICT": "version-conflict", "EUSAGE": "usage-error",
42
+ "ECONNRESET": "transport-error", "ETIMEDOUT": "transport-error",
43
+ "ENOTFOUND": "transport-error", "EAI_AGAIN": "transport-error",
44
+ "E500": "registry-unavailable", "E502": "registry-unavailable",
45
+ "E503": "registry-unavailable", "E504": "registry-unavailable"}
39
46
 
40
47
 
41
48
  def digest(payload: bytes) -> str:
@@ -94,8 +101,10 @@ def release_version() -> str:
94
101
 
95
102
  def package_metadata(version: str, target: str | None = None) -> dict:
96
103
  """Generate exact dependency and platform metadata without lifecycle scripts."""
104
+ if target is not None and target not in PACKAGES:
105
+ raise ValueError(f"Unsupported npm target: {target}")
97
106
  metadata = {"name": PACKAGES[target] if target else "brewdoc", "version": version,
98
- "description": "Convert documents to deterministic Markdown with Brewdoc.",
107
+ "description": "Fast, deterministic document-to-Markdown conversion for agent systems. Easy to install. No model weights, OCR or external services.",
99
108
  "license": "MIT", "repository": {"type": "git", "url": "git+https://github.com/kochetkov-ma/brewdoc.git"},
100
109
  "homepage": "https://github.com/kochetkov-ma/brewdoc#readme",
101
110
  "publishConfig": {"access": "public", "registry": REGISTRY}}
@@ -230,13 +239,115 @@ def npm_command(arguments: list[str], npx: bool = False) -> list[str]:
230
239
  return [str(executable), str(npm), *arguments]
231
240
 
232
241
 
242
+ def publish_error(payload: bytes) -> dict | None:
243
+ """Admit one bounded npm error object without exposing its contents."""
244
+ if len(payload) > 64 * 1024:
245
+ return None
246
+
247
+ def unique_object(pairs):
248
+ """Reject conflicting JSON keys before classification."""
249
+ if len({name for name, _ in pairs}) != len(pairs):
250
+ raise ValueError("Duplicate npm error field")
251
+ return dict(pairs)
252
+
253
+ try:
254
+ value = json.loads(payload.decode("utf-8"), object_pairs_hook=unique_object)
255
+ except (ValueError, UnicodeError, RecursionError):
256
+ return None
257
+ error = value.get("error") if isinstance(value, dict) else None
258
+ if (not isinstance(error, dict) or not isinstance(error.get("code"), str)
259
+ or any(not isinstance(error.get(field, ""), str) for field in ("summary", "detail"))):
260
+ return None
261
+ return error
262
+
263
+
264
+ def publish_failure(payload: bytes) -> tuple[str, str]:
265
+ """Return finite diagnostics without exposing authenticated npm output."""
266
+ unknown = ("UNKNOWN", "unclassified")
267
+ error = publish_error(payload)
268
+ if error is None:
269
+ return unknown
270
+ code = error["code"] if error["code"] in PUBLISH_CAUSES else "UNKNOWN"
271
+ cause = PUBLISH_CAUSES.get(code, "unclassified")
272
+ fields = ("summary",) if code == "E403" else ("summary", "detail")
273
+ message = " ".join(error.get(field, "") for field in fields).lower()
274
+ matches = {label for label, phrases in (
275
+ ("provenance-error", ("provenance generation", "generate provenance", "invalid provenance", "provenance statement")),
276
+ ("one-time-password-required", ("one-time password", "two-factor authentication")),
277
+ ("version-conflict", ("cannot publish over", "previously published versions")),
278
+ ) if any(phrase in message for phrase in phrases)}
279
+ if code == "E403":
280
+ matches.update(label for label, phrases in (
281
+ ("package-name-refused", ("package name too similar", "package name is reserved")),
282
+ ("email-verification-required", ("verify your email", "email address must be verified")),
283
+ ("publish-permission-refused", ("do not have permission to publish", "not authorized to publish",
284
+ "you may not perform that action with these credentials")),
285
+ ("security-policy-refused", ("blocked by security policy", "blocked by a security policy")),
286
+ ("ip-restriction-mentioned", ("not allowed from your ip address", "ip address is not allowed")),
287
+ ) if any(phrase in message for phrase in phrases))
288
+ if len(matches) > 1:
289
+ return unknown
290
+ return code, next(iter(matches)) if matches else cause
291
+
292
+
293
+ def store_publication_diagnostic(payload: bytes, record: dict | None, environment: dict) -> None:
294
+ """Keep a bounded error summary only as context-bound public-key ciphertext."""
295
+ output = environment.get("BREWDOC_NPM_DIAGNOSTIC_DIR")
296
+ if not output or not isinstance(record, dict):
297
+ return
298
+ try:
299
+ error = publish_error(payload)
300
+ metadata = record["metadata"]
301
+ package = metadata["name"]
302
+ if (error is None or package not in {*PACKAGES.values(), "brewdoc"}
303
+ or not error.get("summary") or len(error["summary"].encode("utf-8")) > 4096):
304
+ return
305
+ run_id, attempt = environment.get("GITHUB_RUN_ID", ""), environment.get("GITHUB_RUN_ATTEMPT", "")
306
+ if (not isinstance(run_id, str) or not run_id.isdecimal() or int(run_id) <= 0
307
+ or not isinstance(attempt, str) or not attempt.isdecimal() or int(attempt) <= 0):
308
+ return
309
+ code, cause = publish_failure(payload)
310
+ context = {"schema": 1, "package": package, "version": metadata["version"],
311
+ "tarball_sha256": record["sha256"], "source_sha": record["source_sha"],
312
+ "controller_sha": environment.get("GITHUB_SHA", ""), "run_id": int(run_id),
313
+ "run_attempt": int(attempt), "code": code, "cause": cause, "summary": error["summary"]}
314
+ plaintext = json.dumps(context, ensure_ascii=False).encode("utf-8")
315
+ node = shutil.which("node")
316
+ if not node or len(plaintext) > 8192:
317
+ return
318
+ clean = {key: environment[key] for key in ("PATH", "SystemRoot", "SYSTEMROOT") if key in environment}
319
+ result = subprocess.run([node, str(ROOT / ".github/workflows/npm_diagnostic.cjs")],
320
+ input=plaintext, capture_output=True, timeout=10, env=clean)
321
+ if result.returncode or len(result.stdout) > 16 * 1024:
322
+ return
323
+ envelope = json.loads(result.stdout)
324
+ fields = {"schema", "algorithm", "key_sha256", "encrypted_key", "iv", "tag", "ciphertext"}
325
+ if (not isinstance(envelope, dict) or set(envelope) != fields or type(envelope["schema"]) is not int
326
+ or envelope["schema"] != 1 or envelope["algorithm"] != "RSA-OAEP-SHA256+A256GCM"
327
+ or envelope["key_sha256"] != digest((ROOT / ".github/npm-diagnostic-public.pem").read_bytes())):
328
+ return
329
+ lengths = {"encrypted_key": 384, "iv": 12, "tag": 16, "ciphertext": len(plaintext)}
330
+ if any(len(base64.b64decode(envelope[name], validate=True)) != size for name, size in lengths.items()):
331
+ return
332
+ directory = Path(output)
333
+ if directory.is_symlink():
334
+ return
335
+ directory.mkdir(parents=True, exist_ok=True)
336
+ with (directory / f"{package}.json").open("x", encoding="utf-8") as stream:
337
+ stream.write(json.dumps(envelope, sort_keys=True) + "\n")
338
+ except (OSError, ValueError, TypeError, KeyError, UnicodeError, RecursionError, subprocess.SubprocessError):
339
+ return
340
+
341
+
233
342
  def run_npm(arguments: list[str], cwd: Path, environment: dict, timeout: int = 180,
234
- npx: bool = False) -> subprocess.CompletedProcess:
343
+ npx: bool = False, publication: dict | None = None) -> subprocess.CompletedProcess:
235
344
  """Bound npm tool calls and keep failure output separate from receipt stdout."""
236
345
  result = subprocess.run(npm_command(arguments, npx), cwd=cwd, env=environment, capture_output=True, timeout=timeout)
237
346
  if result.returncode:
238
347
  if arguments[0] == "publish":
239
- raise RuntimeError(f"npm publish failed ({result.returncode}); authenticated output was suppressed")
348
+ code, cause = publish_failure(result.stdout)
349
+ store_publication_diagnostic(result.stdout, publication, environment)
350
+ raise RuntimeError(f"npm publish failed ({result.returncode}); code={code}; cause={cause}; authenticated output was suppressed")
240
351
  raise RuntimeError(f"npm command failed ({result.returncode}): {arguments[0]}\n"
241
352
  + (result.stdout + result.stderr).decode("utf-8", errors="replace"))
242
353
  return result
@@ -365,8 +476,8 @@ def aggregate(input_dir: Path, output: Path) -> None:
365
476
  """Admit the complete platform set before creating the main CLI package."""
366
477
  paths = sorted(input_dir.rglob("platform-record.json"))
367
478
  records = {read_json(path)["target"]: (path, read_json(path)) for path in paths}
368
- if len(paths) != 3 or set(records) != set(PACKAGES):
369
- raise ValueError("npm aggregation requires exactly three platform records")
479
+ if len(paths) != 2 or set(records) != set(PACKAGES):
480
+ raise ValueError("npm aggregation requires exactly two platform records")
370
481
  version = release_version()
371
482
  identities = {(record["version"], record["source_sha"]) for _, record in records.values()}
372
483
  if len(identities) != 1 or next(iter(identities))[0] != version:
@@ -398,7 +509,7 @@ def aggregate(input_dir: Path, output: Path) -> None:
398
509
 
399
510
 
400
511
  def verify_release(input_dir: Path) -> dict:
401
- """Admit exactly four npm package archives with one version and source identity."""
512
+ """Admit exactly three npm package archives with one version and source identity."""
402
513
  manifest = read_json(input_dir / "npm-manifest.json")
403
514
  version = manifest["version"]
404
515
  expected_names = [*PACKAGES.values(), "brewdoc"]
@@ -453,8 +564,8 @@ def publish(input_dir: Path) -> None:
453
564
  existing = [public_record(record) for record in manifest["packages"]]
454
565
  for record, admitted in zip(manifest["packages"], existing, strict=True):
455
566
  if not admitted:
456
- run_npm(["publish", str((input_dir / record["filename"]).resolve()), "--ignore-scripts", "--access", "public", "--provenance"],
457
- input_dir, os.environ.copy())
567
+ run_npm(["publish", str((input_dir / record["filename"]).resolve()), "--ignore-scripts", "--access", "public", "--provenance", "--json"],
568
+ input_dir, os.environ.copy(), publication=record)
458
569
  if not public_record(record):
459
570
  raise ValueError("Published npm version is absent from the registry")
460
571
 
@@ -472,7 +583,7 @@ def check_public(input_dir: Path, output: Path | None = None) -> None:
472
583
 
473
584
 
474
585
  def local_registry(input_dir: Path, manifest: dict) -> ThreadingHTTPServer:
475
- """Serve only the four admitted packages for real offline npm resolution."""
586
+ """Serve only the three admitted packages for real offline npm resolution."""
476
587
  records = {record["metadata"]["name"]: record for record in manifest["packages"]}
477
588
 
478
589
  class Handler(BaseHTTPRequestHandler):
@@ -741,14 +852,15 @@ def cancellation_probe(launcher: Path, work: Path, environment: dict, javascript
741
852
  def probe(input_dir: Path, target: str, mode: str, output: Path, smoke: bool = False,
742
853
  public_evidence: Path | None = None) -> None:
743
854
  """Prove npm global/local and actual npx consumers outside the checkout."""
855
+ if target not in PACKAGES:
856
+ raise ValueError(f"Unsupported npm target: {target}")
744
857
  manifest = verify_release(input_dir)
745
858
  scope = "smoke" if smoke else "full"
746
859
  if verification_scope(manifest) != scope:
747
860
  raise ValueError("npm consumer verification scope differs")
748
861
  selected = next(record for record in manifest["packages"] if record.get("target") == target)
749
862
  system, machine = platform.system(), platform.machine().lower()
750
- expected = {"linux-x64": ("Linux", "x86_64"), "windows-x64": ("Windows", "amd64"),
751
- "macos-arm64": ("Darwin", "arm64")}
863
+ expected = {"linux-x64": ("Linux", "x86_64"), "macos-arm64": ("Darwin", "arm64")}
752
864
  if (system, machine) != expected[target]:
753
865
  raise ValueError("npm consumer must run on its matching native target")
754
866
  if mode == "public":
@@ -75,14 +75,17 @@ jobs:
75
75
  - name: Verify native CLI and accepted outputs outside the checkout
76
76
  run: uv run --no-project --python 3.12.14 python .github/workflows/build_standalone.py verify --checkout "${{ github.workspace }}" --bundle "${{ runner.temp }}/ci-dist" --output "${{ runner.temp }}/ci-native-${{ matrix.target }}" --target "${{ matrix.target }}" --smoke
77
77
  - uses: actions/setup-node@v7.1.0
78
+ if: matrix.target != 'windows-x64'
78
79
  with:
79
80
  node-version: "24.21.0"
80
81
  package-manager-cache: false
81
82
  - uses: actions/cache@v6.1.0
83
+ if: matrix.target != 'windows-x64'
82
84
  with:
83
85
  path: ${{ runner.temp }}/npm-downloads/_cacache
84
86
  key: ${{ runner.os }}-${{ runner.arch }}-node24.21.0-npm12.2.0-${{ hashFiles('uv.lock', 'npm/**', '.github/workflows/build_npm.py') }}
85
87
  - name: Install pinned npm beside the selected Node runtime
88
+ if: matrix.target != 'windows-x64'
86
89
  shell: bash
87
90
  run: |
88
91
  BREWDOC_NPM_PREFIX=$(node -p 'const path = require("node:path"); path.resolve(path.dirname(process.execPath), process.platform === "win32" ? "." : "..")')
@@ -90,6 +93,7 @@ jobs:
90
93
  env:
91
94
  NPM_CONFIG_CACHE: ${{ runner.temp }}/npm-downloads
92
95
  - name: Pack the verified platform before native file attributes leave this runner
96
+ if: matrix.target != 'windows-x64'
93
97
  run: uv run --no-project --python 3.12.14 python .github/workflows/build_npm.py pack --native-dir "${{ runner.temp }}/ci-native-${{ matrix.target }}" --output "${{ runner.temp }}/ci-npm-${{ matrix.target }}"
94
98
  - name: Preserve native bundle and runtime evidence
95
99
  if: always()
@@ -105,7 +109,7 @@ jobs:
105
109
  if-no-files-found: warn
106
110
  retention-days: 7
107
111
  - name: Preserve sealed npm platform tarball and admission record
108
- if: always()
112
+ if: always() && matrix.target != 'windows-x64'
109
113
  uses: actions/upload-artifact@v7.0.2
110
114
  with:
111
115
  overwrite: true
@@ -168,7 +172,7 @@ jobs:
168
172
  digest-mismatch: error
169
173
  - name: Assemble the main package only after every native platform passes
170
174
  run: uv run --no-project --python 3.12.14 python .github/workflows/build_npm.py aggregate --input "${{ runner.temp }}/ci-npm-targets" --output "${{ runner.temp }}/ci-npm-release"
171
- - name: Admit the complete four-package npm set
175
+ - name: Admit the complete three-package npm set
172
176
  run: uv run --no-project --python 3.12.14 python .github/workflows/build_npm.py verify --input "${{ runner.temp }}/ci-npm-release"
173
177
  - uses: actions/upload-artifact@v7.0.2
174
178
  with:
@@ -195,8 +199,6 @@ jobs:
195
199
  os: ubuntu-22.04
196
200
  - target: macos-arm64
197
201
  os: macos-15
198
- - target: windows-x64
199
- os: windows-2025
200
202
  steps:
201
203
  - uses: actions/checkout@v7.0.1
202
204
  with:
@@ -0,0 +1,50 @@
1
+ 'use strict';
2
+
3
+ const { createCipheriv, createHash, publicEncrypt, randomBytes, constants } = require('node:crypto');
4
+ const { readFileSync } = require('node:fs');
5
+ const { join } = require('node:path');
6
+
7
+ /** Encrypt one bounded publication summary without producing plaintext output. */
8
+ function encrypt(payload) {
9
+ if (payload.length > 8192) throw new Error('Invalid diagnostic');
10
+ const value = JSON.parse(new TextDecoder('utf-8', { fatal: true }).decode(payload));
11
+ const fields = ['schema', 'package', 'version', 'tarball_sha256', 'source_sha', 'controller_sha',
12
+ 'run_id', 'run_attempt', 'code', 'cause', 'summary'];
13
+ if (!value || Array.isArray(value) || Object.keys(value).length !== fields.length
14
+ || fields.some(field => !Object.hasOwn(value, field)) || value.schema !== 1
15
+ || !['brewdoc-linux-x64-glibc', 'brewdoc-darwin-arm64', 'brewdoc'].includes(value.package)
16
+ || typeof value.version !== 'string' || !/^\d+\.\d+\.\d+$/.test(value.version)
17
+ || typeof value.tarball_sha256 !== 'string' || !/^[a-f0-9]{64}$/.test(value.tarball_sha256)
18
+ || ['source_sha', 'controller_sha'].some(field => typeof value[field] !== 'string' || !/^[a-f0-9]{40}$/.test(value[field]))
19
+ || ['run_id', 'run_attempt'].some(field => !Number.isSafeInteger(value[field]) || value[field] <= 0)
20
+ || ['code', 'cause'].some(field => typeof value[field] !== 'string' || value[field].length > 64)
21
+ || typeof value.summary !== 'string' || !value.summary || Buffer.byteLength(value.summary) > 4096) {
22
+ throw new Error('Invalid diagnostic');
23
+ }
24
+ const publicKey = readFileSync(join(__dirname, '..', 'npm-diagnostic-public.pem'));
25
+ const key = randomBytes(32);
26
+ const iv = randomBytes(12);
27
+ const cipher = createCipheriv('aes-256-gcm', key, iv, { authTagLength: 16 });
28
+ cipher.setAAD(Buffer.from('brewdoc-npm-diagnostic-v1'));
29
+ const ciphertext = Buffer.concat([cipher.update(payload), cipher.final()]);
30
+ return { schema: 1, algorithm: 'RSA-OAEP-SHA256+A256GCM',
31
+ key_sha256: createHash('sha256').update(publicKey).digest('hex'),
32
+ encrypted_key: publicEncrypt({ key: publicKey, padding: constants.RSA_PKCS1_OAEP_PADDING,
33
+ oaepHash: 'sha256' }, key).toString('base64'),
34
+ iv: iv.toString('base64'), tag: cipher.getAuthTag().toString('base64'), ciphertext: ciphertext.toString('base64') };
35
+ }
36
+
37
+ /** Bound stdin before encrypting with the fixed tracked public key. */
38
+ async function main() {
39
+ const chunks = [];
40
+ let bytes = 0;
41
+ for await (const chunk of process.stdin) {
42
+ bytes += chunk.length;
43
+ if (bytes > 8192) throw new Error('Invalid diagnostic');
44
+ chunks.push(chunk);
45
+ }
46
+ process.stdout.write(JSON.stringify(encrypt(Buffer.concat(chunks))) + '\n');
47
+ }
48
+
49
+ module.exports = { encrypt };
50
+ if (require.main === module) main().catch(() => { process.exitCode = 1; });
@@ -38,6 +38,7 @@ jobs:
38
38
  GH_TOKEN: ${{ github.token }}
39
39
  BREWDOC_RELEASE_TAG: ${{ github.ref_name }}
40
40
  BREWDOC_SOURCE_SHA: ${{ github.sha }}
41
+ BREWDOC_PACKAGE_CHECKOUT: ${{ github.workspace }}
41
42
  steps:
42
43
  - uses: actions/checkout@v7.0.1
43
44
  with:
@@ -48,12 +49,12 @@ jobs:
48
49
  python-version: "3.12.14"
49
50
  cache-suffix: ${{ runner.os }}-${{ runner.arch }}-uv0.12.21-py3.12.14-${{ hashFiles('uv.lock') }}
50
51
  - name: Admit and download one exact-source successful main CI producer
51
- run: uv run --no-project --python 3.12.14 python .github/workflows/release_assets.py reuse-ci --checkout "${{ github.workspace }}" --tag "$BREWDOC_RELEASE_TAG" --source-sha "$BREWDOC_SOURCE_SHA" --output "${{ runner.temp }}/producer"
52
+ run: uv run --no-project --python 3.12.14 python .github/workflows/release_assets.py reuse-ci --checkout "$BREWDOC_PACKAGE_CHECKOUT" --tag "$BREWDOC_RELEASE_TAG" --source-sha "$BREWDOC_SOURCE_SHA" --output "${{ runner.temp }}/producer"
52
53
  - name: Generate staged instructions from unchanged admitted bytes
53
- run: uv run --no-project --python 3.12.14 python .github/workflows/release_guide.py render --checkout "${{ github.workspace }}" --phase staged --native-manifest "${{ runner.temp }}/producer/ci-native-assets/binaries.json" --npm-manifest "${{ runner.temp }}/producer/ci-npm-release/npm-manifest.json" --output "${{ runner.temp }}/staged-body.md"
54
+ run: uv run --no-project --python 3.12.14 python .github/workflows/release_guide.py render --checkout "$BREWDOC_PACKAGE_CHECKOUT" --phase staged --native-manifest "${{ runner.temp }}/producer/ci-native-assets/binaries.json" --npm-manifest "${{ runner.temp }}/producer/ci-npm-release/npm-manifest.json" --output "${{ runner.temp }}/staged-body.md"
54
55
  - name: Seal the release inventory and producer provenance
55
56
  id: identity
56
- run: uv run --no-project --python 3.12.14 python .github/workflows/release_assets.py prepare --checkout "${{ github.workspace }}" --bundle "${{ runner.temp }}/producer/ci-dist" --native "${{ runner.temp }}/producer/ci-native-assets" --npm "${{ runner.temp }}/producer/ci-npm-release" --producer "${{ runner.temp }}/producer/producer.json" --body "${{ runner.temp }}/staged-body.md" --output "${{ runner.temp }}/release-assets" --github-output "$GITHUB_OUTPUT"
57
+ run: uv run --no-project --python 3.12.14 python .github/workflows/release_assets.py prepare --checkout "$BREWDOC_PACKAGE_CHECKOUT" --bundle "${{ runner.temp }}/producer/ci-dist" --native "${{ runner.temp }}/producer/ci-native-assets" --npm "${{ runner.temp }}/producer/ci-npm-release" --producer "${{ runner.temp }}/producer/producer.json" --body "${{ runner.temp }}/staged-body.md" --output "${{ runner.temp }}/release-assets" --github-output "$GITHUB_OUTPUT"
57
58
  - uses: actions/upload-artifact@v7.0.2
58
59
  with:
59
60
  name: dist
@@ -92,8 +93,8 @@ jobs:
92
93
  - uses: pypa/gh-action-pypi-publish@v1.14.2
93
94
 
94
95
  npm-publish:
95
- if: github.event_name == 'push'
96
- needs: publish
96
+ if: "!cancelled() && github.event_name == 'push' && needs.distribution-admit.result == 'success' && needs.pypi-consumer.result == 'success'"
97
+ needs: [distribution-admit, pypi-consumer]
97
98
  runs-on: ubuntu-22.04
98
99
  timeout-minutes: 15
99
100
  permissions:
@@ -130,10 +131,21 @@ jobs:
130
131
  path: ${{ runner.temp }}/release-npm
131
132
  digest-mismatch: error
132
133
  - name: Publish matching platform packages before the main package
134
+ id: npm_publish
133
135
  env:
134
136
  NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
137
+ BREWDOC_NPM_DIAGNOSTIC_DIR: ${{ runner.temp }}/npm-diagnostics
135
138
  run: uv run --no-project --python 3.12.14 python .github/workflows/build_npm.py publish --input "${{ runner.temp }}/release-npm"
136
- - name: Verify all four public npm package bytes and integrity values
139
+ - name: Preserve encrypted publication diagnostics after a failed publish
140
+ if: failure() && steps.npm_publish.outcome == 'failure'
141
+ uses: actions/upload-artifact@v7.0.2
142
+ with:
143
+ name: npm-publish-diagnostic
144
+ overwrite: true
145
+ path: ${{ runner.temp }}/npm-diagnostics/*.json
146
+ if-no-files-found: warn
147
+ retention-days: 1
148
+ - name: Verify all three public npm package bytes and integrity values
137
149
  run: uv run --no-project --python 3.12.14 python .github/workflows/build_npm.py check-public --input "${{ runner.temp }}/release-npm" --output "${{ runner.temp }}/npm-public-registry.json"
138
150
  - uses: actions/upload-artifact@v7.0.2
139
151
  with:
@@ -142,8 +154,8 @@ jobs:
142
154
  if-no-files-found: error
143
155
 
144
156
  github-release:
145
- if: github.event_name == 'push'
146
- needs: npm-publish
157
+ if: "!cancelled() && github.event_name == 'push' && needs.distribution-admit.result == 'success' && needs.npm-publish.result == 'success' && needs.pypi-consumer.result == 'success'"
158
+ needs: [npm-publish, distribution-admit, pypi-consumer]
147
159
  runs-on: ubuntu-26.04
148
160
  permissions:
149
161
  contents: write
@@ -164,15 +176,15 @@ jobs:
164
176
  - name: Complete and admit the draft before making it public
165
177
  env:
166
178
  GH_TOKEN: ${{ github.token }}
167
- BREWDOC_RELEASE_TAG: ${{ github.ref_name }}
168
- BREWDOC_SOURCE_SHA: ${{ github.sha }}
179
+ BREWDOC_RELEASE_TAG: ${{ needs.distribution-admit.outputs.tag }}
180
+ BREWDOC_SOURCE_SHA: ${{ needs.distribution-admit.outputs.source_sha }}
169
181
  run: |
170
182
  uv run --no-project --python 3.12.14 python .github/workflows/release_assets.py stage --input "${{ runner.temp }}/release-assets" --tag "$BREWDOC_RELEASE_TAG" --source-sha "$BREWDOC_SOURCE_SHA"
171
183
  uv run --no-project --python 3.12.14 python .github/workflows/release_assets.py publish --input "${{ runner.temp }}/release-assets" --tag "$BREWDOC_RELEASE_TAG" --source-sha "$BREWDOC_SOURCE_SHA"
172
184
  uv run --no-project --python 3.12.14 python .github/workflows/release_assets.py verify-public --input "${{ runner.temp }}/release-assets" --tag "$BREWDOC_RELEASE_TAG" --source-sha "$BREWDOC_SOURCE_SHA"
173
185
 
174
186
  pypi-consumer:
175
- if: github.event_name == 'push'
187
+ if: "!cancelled() && github.event_name == 'push' && needs.distribution-admit.result == 'success' && needs.publish.result == 'success'"
176
188
  needs: [publish, distribution-admit]
177
189
  runs-on: ubuntu-22.04
178
190
  timeout-minutes: 15
@@ -200,7 +212,7 @@ jobs:
200
212
  done
201
213
 
202
214
  public-consumer:
203
- if: github.event_name == 'push'
215
+ if: "!cancelled() && github.event_name == 'push' && needs.github-release.result == 'success' && needs.pypi-consumer.result == 'success' && needs.distribution-admit.result == 'success'"
204
216
  needs: [github-release, pypi-consumer, distribution-admit]
205
217
  runs-on: ${{ matrix.os }}
206
218
  timeout-minutes: 20
@@ -223,8 +235,9 @@ jobs:
223
235
  archive: zip
224
236
  env:
225
237
  GH_TOKEN: ${{ github.token }}
226
- BREWDOC_RELEASE_TAG: ${{ github.ref_name }}
227
- BREWDOC_SOURCE_SHA: ${{ github.sha }}
238
+ BREWDOC_RELEASE_TAG: ${{ needs.distribution-admit.outputs.tag }}
239
+ BREWDOC_SOURCE_SHA: ${{ needs.distribution-admit.outputs.source_sha }}
240
+ BREWDOC_PACKAGE_CHECKOUT: ${{ github.workspace }}
228
241
  BREWDOC_ARCHIVE: brewdoc-${{ needs.distribution-admit.outputs.version }}-${{ matrix.target }}.${{ matrix.archive }}
229
242
  steps:
230
243
  - uses: actions/checkout@v7.0.1
@@ -236,14 +249,17 @@ jobs:
236
249
  python-version: "3.12.14"
237
250
  cache-suffix: ${{ runner.os }}-${{ runner.arch }}-uv0.12.21-py3.12.14-${{ hashFiles('uv.lock') }}
238
251
  - uses: actions/setup-node@v7.1.0
252
+ if: matrix.target != 'windows-x64'
239
253
  with:
240
254
  node-version: "24.21.0"
241
255
  package-manager-cache: false
242
256
  - uses: actions/cache@v6.1.0
257
+ if: matrix.target != 'windows-x64'
243
258
  with:
244
259
  path: ${{ runner.temp }}/npm-downloads/_cacache
245
260
  key: ${{ runner.os }}-${{ runner.arch }}-node24.21.0-npm12.2.0-${{ hashFiles('uv.lock', 'npm/**', '.github/workflows/build_npm.py') }}
246
261
  - name: Install pinned npm beside the selected Node runtime
262
+ if: matrix.target != 'windows-x64'
247
263
  shell: bash
248
264
  run: |
249
265
  BREWDOC_NPM_PREFIX=$(node -p 'const path = require("node:path"); path.resolve(path.dirname(process.execPath), process.platform === "win32" ? "." : "..")')
@@ -261,6 +277,7 @@ jobs:
261
277
  path: ${{ runner.temp }}/release-assets
262
278
  digest-mismatch: error
263
279
  - uses: actions/download-artifact@v8.0.2
280
+ if: matrix.target != 'windows-x64'
264
281
  with:
265
282
  name: release-npm
266
283
  path: ${{ runner.temp }}/release-npm
@@ -277,14 +294,16 @@ jobs:
277
294
  run: |
278
295
  mkdir -p "${{ runner.temp }}/public-downloads/${{ matrix.target }}"
279
296
  uv run --no-project --python 3.12.14 python .github/workflows/release_assets.py download-target --input "${{ runner.temp }}/release-assets" --tag "$BREWDOC_RELEASE_TAG" --source-sha "$BREWDOC_SOURCE_SHA" --target "${{ matrix.target }}" --output "${{ runner.temp }}/public-downloads/${{ matrix.target }}/$BREWDOC_ARCHIVE"
280
- uv run --no-project --python 3.12.14 python .github/workflows/build_standalone.py verify --checkout "${{ github.workspace }}" --bundle "${{ runner.temp }}/release-package" --output "${{ runner.temp }}/public-evidence/${{ matrix.target }}" --target "${{ matrix.target }}" --archive "${{ runner.temp }}/public-downloads/${{ matrix.target }}/$BREWDOC_ARCHIVE" --smoke
297
+ uv run --no-project --python 3.12.14 python .github/workflows/build_standalone.py verify --checkout "$BREWDOC_PACKAGE_CHECKOUT" --bundle "${{ runner.temp }}/release-package" --output "${{ runner.temp }}/public-evidence/${{ matrix.target }}" --target "${{ matrix.target }}" --archive "${{ runner.temp }}/public-downloads/${{ matrix.target }}/$BREWDOC_ARCHIVE" --smoke
281
298
  cp "${{ runner.temp }}/public-downloads/${{ matrix.target }}/$BREWDOC_ARCHIVE.download.json" "${{ runner.temp }}/public-evidence/${{ matrix.target }}/"
282
299
  - uses: actions/download-artifact@v8.0.2
300
+ if: matrix.target != 'windows-x64'
283
301
  with:
284
302
  name: npm-public-registry
285
303
  path: ${{ runner.temp }}
286
304
  digest-mismatch: error
287
305
  - name: Verify normal public npm installation and npx execution
306
+ if: matrix.target != 'windows-x64'
288
307
  run: uv run --no-project --python 3.12.14 python .github/workflows/build_npm.py probe --input "${{ runner.temp }}/release-npm" --target "${{ matrix.target }}" --mode public --smoke --public-evidence "${{ runner.temp }}/npm-public-registry.json" --output "${{ runner.temp }}/public-evidence/${{ matrix.target }}/npm-public.json"
289
308
  - name: Preserve public download and consumer evidence
290
309
  if: always()
@@ -298,7 +317,7 @@ jobs:
298
317
  if-no-files-found: warn
299
318
 
300
319
  release-complete:
301
- if: github.event_name == 'push'
320
+ if: "!cancelled() && github.event_name == 'push' && needs.public-consumer.result == 'success' && needs.pypi-consumer.result == 'success' && needs.distribution-admit.result == 'success'"
302
321
  needs: [public-consumer, pypi-consumer, distribution-admit]
303
322
  runs-on: ubuntu-22.04
304
323
  timeout-minutes: 15
@@ -306,8 +325,9 @@ jobs:
306
325
  contents: write
307
326
  env:
308
327
  GH_TOKEN: ${{ github.token }}
309
- BREWDOC_RELEASE_TAG: ${{ github.ref_name }}
310
- BREWDOC_SOURCE_SHA: ${{ github.sha }}
328
+ BREWDOC_RELEASE_TAG: ${{ needs.distribution-admit.outputs.tag }}
329
+ BREWDOC_SOURCE_SHA: ${{ needs.distribution-admit.outputs.source_sha }}
330
+ BREWDOC_PACKAGE_CHECKOUT: ${{ github.workspace }}
311
331
  steps:
312
332
  - uses: actions/checkout@v7.0.1
313
333
  with:
@@ -345,8 +365,9 @@ jobs:
345
365
  - name: Admit public channels before generating final installation instructions
346
366
  run: |
347
367
  uv run --no-project --python 3.12.14 python .github/workflows/release_assets.py admit-public --input "${{ runner.temp }}/release-assets" --tag "$BREWDOC_RELEASE_TAG" --source-sha "$BREWDOC_SOURCE_SHA" --evidence "${{ runner.temp }}/public-evidence" --output "${{ runner.temp }}/public-acceptance.json"
348
- uv run --no-project --python 3.12.14 python .github/workflows/release_guide.py render --checkout "${{ github.workspace }}" --phase public --native-manifest "${{ runner.temp }}/release-assets/binaries.json" --npm-manifest "${{ runner.temp }}/release-assets/npm-manifest.json" --availability "${{ runner.temp }}/public-acceptance.json" --output "${{ runner.temp }}/public-body.md"
349
- uv run --no-project --python 3.12.14 python .github/workflows/release_assets.py finalize --input "${{ runner.temp }}/release-assets" --tag "$BREWDOC_RELEASE_TAG" --source-sha "$BREWDOC_SOURCE_SHA" --evidence "${{ runner.temp }}/public-evidence" --body "${{ runner.temp }}/public-body.md"
368
+ uv run --no-project --python 3.12.14 python .github/workflows/release_guide.py render --checkout "$BREWDOC_PACKAGE_CHECKOUT" --phase public --native-manifest "${{ runner.temp }}/release-assets/binaries.json" --npm-manifest "${{ runner.temp }}/release-assets/npm-manifest.json" --availability "${{ runner.temp }}/public-acceptance.json" --output "${{ runner.temp }}/public-body.md"
369
+ - name: Finalize normal tag-release instructions after public admission
370
+ run: uv run --no-project --python 3.12.14 python .github/workflows/release_assets.py finalize --input "${{ runner.temp }}/release-assets" --tag "$BREWDOC_RELEASE_TAG" --source-sha "$BREWDOC_SOURCE_SHA" --evidence "${{ runner.temp }}/public-evidence" --body "${{ runner.temp }}/public-body.md"
350
371
  - uses: actions/upload-artifact@v7.0.2
351
372
  with:
352
373
  name: release-public-acceptance