brewdoc-linux-x64-glibc 0.0.0-stage → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +382 -2
- package/binary/_internal/PIL/_avif.cpython-312-x86_64-linux-gnu.so +0 -0
- package/binary/_internal/PIL/_imaging.cpython-312-x86_64-linux-gnu.so +0 -0
- package/binary/_internal/PIL/_imagingcms.cpython-312-x86_64-linux-gnu.so +0 -0
- package/binary/_internal/PIL/_imagingft.cpython-312-x86_64-linux-gnu.so +0 -0
- package/binary/_internal/PIL/_imagingmath.cpython-312-x86_64-linux-gnu.so +0 -0
- package/binary/_internal/PIL/_imagingtk.cpython-312-x86_64-linux-gnu.so +0 -0
- package/binary/_internal/PIL/_webp.cpython-312-x86_64-linux-gnu.so +0 -0
- package/binary/_internal/_cffi_backend.cpython-312-x86_64-linux-gnu.so +0 -0
- package/binary/_internal/_quickjs.abi3.so +0 -0
- package/binary/_internal/base_library.zip +0 -0
- package/binary/_internal/brewdoc/_urljs/glue.js +858 -0
- package/binary/_internal/brewdoc/_vendor/THIRD_PARTY_NOTICES.txt +342 -0
- package/binary/_internal/brewdoc/_vendor/linkedom-worker.js +12650 -0
- package/binary/_internal/brewdoc-0.3.1.dist-info/INSTALLER +1 -0
- package/binary/_internal/brewdoc-0.3.1.dist-info/METADATA +411 -0
- package/binary/_internal/brewdoc-0.3.1.dist-info/RECORD +30 -0
- package/binary/_internal/brewdoc-0.3.1.dist-info/REQUESTED +0 -0
- package/binary/_internal/brewdoc-0.3.1.dist-info/WHEEL +4 -0
- package/binary/_internal/brewdoc-0.3.1.dist-info/direct_url.json +1 -0
- package/binary/_internal/brewdoc-0.3.1.dist-info/entry_points.txt +2 -0
- package/binary/_internal/brewdoc-0.3.1.dist-info/licenses/LICENSE +21 -0
- package/binary/_internal/brewdoc-0.3.1.dist-info/uv_cache.json +1 -0
- package/binary/_internal/cffi-2.1.1.dist-info/INSTALLER +1 -0
- package/binary/_internal/cffi-2.1.1.dist-info/METADATA +67 -0
- package/binary/_internal/cffi-2.1.1.dist-info/RECORD +34 -0
- package/binary/_internal/cffi-2.1.1.dist-info/REQUESTED +0 -0
- package/binary/_internal/cffi-2.1.1.dist-info/WHEEL +6 -0
- package/binary/_internal/cffi-2.1.1.dist-info/entry_points.txt +5 -0
- package/binary/_internal/cffi-2.1.1.dist-info/licenses/LICENSE +23 -0
- package/binary/_internal/cffi-2.1.1.dist-info/top_level.txt +2 -0
- package/binary/_internal/charset_normalizer/cd.cpython-312-x86_64-linux-gnu.so +0 -0
- package/binary/_internal/charset_normalizer/md.cpython-312-x86_64-linux-gnu.so +0 -0
- package/binary/_internal/charset_normalizer-3.5.2.dist-info/INSTALLER +1 -0
- package/binary/_internal/charset_normalizer-3.5.2.dist-info/METADATA +892 -0
- package/binary/_internal/charset_normalizer-3.5.2.dist-info/RECORD +24 -0
- package/binary/_internal/charset_normalizer-3.5.2.dist-info/REQUESTED +0 -0
- package/binary/_internal/charset_normalizer-3.5.2.dist-info/WHEEL +7 -0
- package/binary/_internal/charset_normalizer-3.5.2.dist-info/entry_points.txt +2 -0
- package/binary/_internal/charset_normalizer-3.5.2.dist-info/licenses/LICENSE +21 -0
- package/binary/_internal/charset_normalizer-3.5.2.dist-info/top_level.txt +1 -0
- package/binary/_internal/cryptography/hazmat/bindings/_rust.abi3.so +0 -0
- package/binary/_internal/cryptography-50.0.2.dist-info/INSTALLER +1 -0
- package/binary/_internal/cryptography-50.0.2.dist-info/METADATA +111 -0
- package/binary/_internal/cryptography-50.0.2.dist-info/RECORD +122 -0
- package/binary/_internal/cryptography-50.0.2.dist-info/REQUESTED +0 -0
- package/binary/_internal/cryptography-50.0.2.dist-info/WHEEL +5 -0
- package/binary/_internal/cryptography-50.0.2.dist-info/licenses/LICENSE +3 -0
- package/binary/_internal/cryptography-50.0.2.dist-info/licenses/LICENSE.APACHE +202 -0
- package/binary/_internal/cryptography-50.0.2.dist-info/licenses/LICENSE.BSD +27 -0
- package/binary/_internal/cryptography-50.0.2.dist-info/sboms/cryptography-rust.cyclonedx.json +1365 -0
- package/binary/_internal/cryptography-50.0.2.dist-info/sboms/sbom.json +43 -0
- package/binary/_internal/libXau-154567c4.so.6.0.0 +0 -0
- package/binary/_internal/libavif-8a7f9d56.so.16.4.2 +0 -0
- package/binary/_internal/libbrotlicommon-53534446.so.1.2.0 +0 -0
- package/binary/_internal/libbrotlidec-7e5462ba.so.1.2.0 +0 -0
- package/binary/_internal/libfreetype-9fc94c80.so.6.20.6 +0 -0
- package/binary/_internal/libgcc_s.so.1 +0 -0
- package/binary/_internal/libharfbuzz-172d1f63.so.0.61421.0 +0 -0
- package/binary/_internal/libjpeg-31e2ca52.so.62.4.0 +0 -0
- package/binary/_internal/liblcms2-dade1fbf.so.2.0.19 +0 -0
- package/binary/_internal/liblzma-2be87c3e.so.5.8.3 +0 -0
- package/binary/_internal/libopenjp2-b07f72ad.so.2.5.4 +0 -0
- package/binary/_internal/libpng16-abb096d5.so.16.58.0 +0 -0
- package/binary/_internal/libpython3.12.so.1.0 +0 -0
- package/binary/_internal/libsharpyuv-0066295b.so.0.1.2 +0 -0
- package/binary/_internal/libstdc++.so.6 +0 -0
- package/binary/_internal/libtiff-fc87e79d.so.6.2.0 +0 -0
- package/binary/_internal/libwebp-51b0b3f7.so.7.2.0 +0 -0
- package/binary/_internal/libwebpdemux-9fe2abcc.so.2.0.17 +0 -0
- package/binary/_internal/libwebpmux-8fb1c9f6.so.3.1.2 +0 -0
- package/binary/_internal/libxcb-ad31f5a3.so.1.1.0 +0 -0
- package/binary/_internal/libz.so.1 +0 -0
- package/binary/_internal/libzstd-44be1190.so.1.5.7 +0 -0
- package/binary/_internal/pdfminer/cmap/78-EUC-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/78-EUC-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/78-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/78-RKSJ-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/78-RKSJ-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/78-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/78ms-RKSJ-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/78ms-RKSJ-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/83pv-RKSJ-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/83pv-RKSJ-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/90ms-RKSJ-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/90ms-RKSJ-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/90msp-RKSJ-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/90msp-RKSJ-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/90pv-RKSJ-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/90pv-RKSJ-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Add-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Add-RKSJ-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Add-RKSJ-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Add-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/B5-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/B5-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/B5pc-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/B5pc-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/CNS-EUC-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/CNS-EUC-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/CNS1-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/CNS1-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/CNS2-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/CNS2-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/ETHK-B5-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/ETHK-B5-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/ETen-B5-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/ETen-B5-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/ETenms-B5-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/ETenms-B5-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/EUC-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/EUC-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Ext-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Ext-RKSJ-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Ext-RKSJ-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Ext-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GB-EUC-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GB-EUC-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GB-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GB-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBK-EUC-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBK-EUC-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBK2K-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBK2K-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBKp-EUC-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBKp-EUC-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBT-EUC-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBT-EUC-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBT-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBT-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBTpc-EUC-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBTpc-EUC-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBpc-EUC-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/GBpc-EUC-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/HKdla-B5-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/HKdla-B5-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/HKdlb-B5-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/HKdlb-B5-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/HKgccs-B5-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/HKgccs-B5-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/HKm314-B5-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/HKm314-B5-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/HKm471-B5-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/HKm471-B5-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/HKscs-B5-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/HKscs-B5-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Hankaku-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Hankaku-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Hiragana-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Hiragana-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/KSC-EUC-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/KSC-EUC-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/KSC-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/KSC-Johab-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/KSC-Johab-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/KSC-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/KSCms-UHC-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/KSCms-UHC-HW-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/KSCms-UHC-HW-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/KSCms-UHC-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/KSCpc-EUC-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/KSCpc-EUC-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Katakana-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Katakana-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/NWP-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/NWP-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/README.txt +79 -0
- package/binary/_internal/pdfminer/cmap/RKSJ-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/RKSJ-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Roman-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/Roman-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniCNS-UCS2-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniCNS-UCS2-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniCNS-UTF16-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniCNS-UTF16-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniCNS-UTF32-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniCNS-UTF32-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniCNS-UTF8-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniCNS-UTF8-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniGB-UCS2-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniGB-UCS2-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniGB-UTF16-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniGB-UTF16-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniGB-UTF32-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniGB-UTF32-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniGB-UTF8-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniGB-UTF8-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS-UCS2-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS-UCS2-HW-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS-UCS2-HW-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS-UCS2-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS-UTF16-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS-UTF16-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS-UTF32-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS-UTF32-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS-UTF8-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS-UTF8-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS2004-UTF16-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS2004-UTF16-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS2004-UTF32-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS2004-UTF32-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS2004-UTF8-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJIS2004-UTF8-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJISX0213-UTF32-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJISX0213-UTF32-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJISX02132004-UTF32-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniJISX02132004-UTF32-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniKS-UCS2-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniKS-UCS2-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniKS-UTF16-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniKS-UTF16-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniKS-UTF32-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniKS-UTF32-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniKS-UTF8-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/UniKS-UTF8-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/WP-Symbol-H.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/WP-Symbol-V.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/to-unicode-Adobe-CNS1.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/to-unicode-Adobe-GB1.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/to-unicode-Adobe-Japan1.json.gz +0 -0
- package/binary/_internal/pdfminer/cmap/to-unicode-Adobe-Korea1.json.gz +0 -0
- package/binary/_internal/pdfminer/py.typed +0 -0
- package/binary/_internal/pdfminer_six-20260107.dist-info/INSTALLER +1 -0
- package/binary/_internal/pdfminer_six-20260107.dist-info/METADATA +110 -0
- package/binary/_internal/pdfminer_six-20260107.dist-info/RECORD +191 -0
- package/binary/_internal/pdfminer_six-20260107.dist-info/REQUESTED +0 -0
- package/binary/_internal/pdfminer_six-20260107.dist-info/WHEEL +5 -0
- package/binary/_internal/pdfminer_six-20260107.dist-info/licenses/LICENSE +22 -0
- package/binary/_internal/pdfminer_six-20260107.dist-info/top_level.txt +1 -0
- package/binary/_internal/pdfplumber-0.11.10.dist-info/INSTALLER +1 -0
- package/binary/_internal/pdfplumber-0.11.10.dist-info/METADATA +617 -0
- package/binary/_internal/pdfplumber-0.11.10.dist-info/RECORD +30 -0
- package/binary/_internal/pdfplumber-0.11.10.dist-info/REQUESTED +0 -0
- package/binary/_internal/pdfplumber-0.11.10.dist-info/WHEEL +5 -0
- package/binary/_internal/pdfplumber-0.11.10.dist-info/entry_points.txt +2 -0
- package/binary/_internal/pdfplumber-0.11.10.dist-info/licenses/LICENSE.txt +21 -0
- package/binary/_internal/pdfplumber-0.11.10.dist-info/top_level.txt +1 -0
- package/binary/_internal/pillow-12.3.0.dist-info/INSTALLER +1 -0
- package/binary/_internal/pillow-12.3.0.dist-info/METADATA +180 -0
- package/binary/_internal/pillow-12.3.0.dist-info/RECORD +142 -0
- package/binary/_internal/pillow-12.3.0.dist-info/REQUESTED +0 -0
- package/binary/_internal/pillow-12.3.0.dist-info/WHEEL +6 -0
- package/binary/_internal/pillow-12.3.0.dist-info/licenses/LICENSE +1574 -0
- package/binary/_internal/pillow-12.3.0.dist-info/sboms/auditwheel.cdx.json +1 -0
- package/binary/_internal/pillow-12.3.0.dist-info/sboms/pillow-12.3.0.cdx.json +721 -0
- package/binary/_internal/pillow-12.3.0.dist-info/top_level.txt +1 -0
- package/binary/_internal/pillow-12.3.0.dist-info/zip-safe +1 -0
- package/binary/_internal/pillow.libs/libXau-154567c4.so.6.0.0 +0 -0
- package/binary/_internal/pillow.libs/libavif-8a7f9d56.so.16.4.2 +0 -0
- package/binary/_internal/pillow.libs/libbrotlicommon-53534446.so.1.2.0 +0 -0
- package/binary/_internal/pillow.libs/libbrotlidec-7e5462ba.so.1.2.0 +0 -0
- package/binary/_internal/pillow.libs/libfreetype-9fc94c80.so.6.20.6 +0 -0
- package/binary/_internal/pillow.libs/libharfbuzz-172d1f63.so.0.61421.0 +0 -0
- package/binary/_internal/pillow.libs/libjpeg-31e2ca52.so.62.4.0 +0 -0
- package/binary/_internal/pillow.libs/liblcms2-dade1fbf.so.2.0.19 +0 -0
- package/binary/_internal/pillow.libs/liblzma-2be87c3e.so.5.8.3 +0 -0
- package/binary/_internal/pillow.libs/libopenjp2-b07f72ad.so.2.5.4 +0 -0
- package/binary/_internal/pillow.libs/libpng16-abb096d5.so.16.58.0 +0 -0
- package/binary/_internal/pillow.libs/libsharpyuv-0066295b.so.0.1.2 +0 -0
- package/binary/_internal/pillow.libs/libtiff-fc87e79d.so.6.2.0 +0 -0
- package/binary/_internal/pillow.libs/libwebp-51b0b3f7.so.7.2.0 +0 -0
- package/binary/_internal/pillow.libs/libwebpdemux-9fe2abcc.so.2.0.17 +0 -0
- package/binary/_internal/pillow.libs/libwebpmux-8fb1c9f6.so.3.1.2 +0 -0
- package/binary/_internal/pillow.libs/libxcb-ad31f5a3.so.1.1.0 +0 -0
- package/binary/_internal/pillow.libs/libzstd-44be1190.so.1.5.7 +0 -0
- package/binary/_internal/pycparser-3.0.dist-info/INSTALLER +1 -0
- package/binary/_internal/pycparser-3.0.dist-info/METADATA +244 -0
- package/binary/_internal/pycparser-3.0.dist-info/RECORD +15 -0
- package/binary/_internal/pycparser-3.0.dist-info/REQUESTED +0 -0
- package/binary/_internal/pycparser-3.0.dist-info/WHEEL +5 -0
- package/binary/_internal/pycparser-3.0.dist-info/licenses/LICENSE +27 -0
- package/binary/_internal/pycparser-3.0.dist-info/top_level.txt +1 -0
- package/binary/_internal/pypdfium2/version.json +11 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/INSTALLER +1 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/METADATA +1139 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/RECORD +75 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/REQUESTED +0 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/WHEEL +6 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/entry_points.txt +2 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/LICENSES/Apache-2.0.txt +202 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/LICENSES/BSD-3-Clause.txt +26 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/LICENSES/CC-BY-4.0.txt +317 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/abseil.txt +203 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/agg23.txt +14 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/fast_float.txt +27 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/freetype.txt +169 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/icu.txt +568 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/lcms.txt +27 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libjpeg_turbo.ijg +260 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libjpeg_turbo.md +135 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libopenjpeg.txt +32 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libpng.txt +134 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libtiff.txt +21 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/llvm-libc.txt +278 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/pdfium-binaries.txt +9 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/pdfium.txt +230 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/simdutf.txt +18 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/zlib.txt +29 -0
- package/binary/_internal/pypdfium2-5.13.0.dist-info/top_level.txt +4 -0
- package/binary/_internal/pypdfium2_raw/libpdfium.so +0 -0
- package/binary/_internal/pypdfium2_raw/version.json +10 -0
- package/binary/_internal/python_calamine/_python_calamine.cpython-312-x86_64-linux-gnu.so +0 -0
- package/binary/_internal/python_calamine-0.8.2.dist-info/INSTALLER +1 -0
- package/binary/_internal/python_calamine-0.8.2.dist-info/METADATA +94 -0
- package/binary/_internal/python_calamine-0.8.2.dist-info/RECORD +11 -0
- package/binary/_internal/python_calamine-0.8.2.dist-info/REQUESTED +0 -0
- package/binary/_internal/python_calamine-0.8.2.dist-info/WHEEL +5 -0
- package/binary/_internal/python_calamine-0.8.2.dist-info/licenses/LICENSE +21 -0
- package/binary/_internal/python_calamine-0.8.2.dist-info/sboms/python-calamine.cyclonedx.json +1615 -0
- package/binary/_internal/quickjs_ng-0.17.0.1.dist-info/INSTALLER +1 -0
- package/binary/_internal/quickjs_ng-0.17.0.1.dist-info/METADATA +161 -0
- package/binary/_internal/quickjs_ng-0.17.0.1.dist-info/RECORD +9 -0
- package/binary/_internal/quickjs_ng-0.17.0.1.dist-info/REQUESTED +0 -0
- package/binary/_internal/quickjs_ng-0.17.0.1.dist-info/WHEEL +7 -0
- package/binary/_internal/quickjs_ng-0.17.0.1.dist-info/licenses/LICENSE +21 -0
- package/binary/_internal/quickjs_ng-0.17.0.1.dist-info/top_level.txt +2 -0
- package/binary/_internal/selectolax/base.pxi +4 -0
- package/binary/_internal/selectolax/lexbor/attrs.pxi +123 -0
- package/binary/_internal/selectolax/lexbor/fragment_lookup.pxi +52 -0
- package/binary/_internal/selectolax/lexbor/node.pxi +1355 -0
- package/binary/_internal/selectolax/lexbor/node_remove.pxi +29 -0
- package/binary/_internal/selectolax/lexbor/selection.pxi +251 -0
- package/binary/_internal/selectolax/lexbor/util.pxi +114 -0
- package/binary/_internal/selectolax/lexbor.c +66981 -0
- package/binary/_internal/selectolax/lexbor.cpython-312-x86_64-linux-gnu.so +0 -0
- package/binary/_internal/selectolax/lexbor.pxd +682 -0
- package/binary/_internal/selectolax/lexbor.pyi +1534 -0
- package/binary/_internal/selectolax/lexbor.pyx +1046 -0
- package/binary/_internal/selectolax/modest/node.pxi +976 -0
- package/binary/_internal/selectolax/modest/selection.pxi +199 -0
- package/binary/_internal/selectolax/modest/util.pxi +20 -0
- package/binary/_internal/selectolax/py.typed +0 -0
- package/binary/_internal/selectolax/utils.pxi +117 -0
- package/binary/_internal/selectolax-0.4.13.dist-info/INSTALLER +1 -0
- package/binary/_internal/selectolax-0.4.13.dist-info/METADATA +222 -0
- package/binary/_internal/selectolax-0.4.13.dist-info/RECORD +30 -0
- package/binary/_internal/selectolax-0.4.13.dist-info/REQUESTED +0 -0
- package/binary/_internal/selectolax-0.4.13.dist-info/WHEEL +7 -0
- package/binary/_internal/selectolax-0.4.13.dist-info/licenses/LICENSE +10 -0
- package/binary/_internal/selectolax-0.4.13.dist-info/top_level.txt +1 -0
- package/binary/brewdoc +0 -0
- package/binary/licenses/installed/brewdoc/brewdoc/_vendor/THIRD_PARTY_NOTICES.txt +342 -0
- package/binary/licenses/installed/brewdoc/brewdoc-0.3.1.dist-info/licenses/LICENSE +21 -0
- package/binary/licenses/installed/cffi/cffi-2.1.1.dist-info/licenses/LICENSE +23 -0
- package/binary/licenses/installed/charset-normalizer/charset_normalizer-3.5.2.dist-info/licenses/LICENSE +21 -0
- package/binary/licenses/installed/cryptography/cryptography-50.0.2.dist-info/licenses/LICENSE +3 -0
- package/binary/licenses/installed/cryptography/cryptography-50.0.2.dist-info/licenses/LICENSE.APACHE +202 -0
- package/binary/licenses/installed/cryptography/cryptography-50.0.2.dist-info/licenses/LICENSE.BSD +27 -0
- package/binary/licenses/installed/interpreter/LICENSE.txt +279 -0
- package/binary/licenses/installed/native-runtime/GPL-3 +674 -0
- package/binary/licenses/installed/native-runtime/gcc-12-base-amd64-copyright +1512 -0
- package/binary/licenses/installed/pdfminer.six/pdfminer_six-20260107.dist-info/licenses/LICENSE +22 -0
- package/binary/licenses/installed/pdfplumber/pdfplumber-0.11.10.dist-info/licenses/LICENSE.txt +21 -0
- package/binary/licenses/installed/pillow/pillow-12.3.0.dist-info/licenses/LICENSE +1574 -0
- package/binary/licenses/installed/pycparser/pycparser-3.0.dist-info/licenses/LICENSE +27 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/LICENSES/Apache-2.0.txt +202 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/LICENSES/BSD-3-Clause.txt +26 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/LICENSES/CC-BY-4.0.txt +317 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/abseil.txt +203 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/agg23.txt +14 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/fast_float.txt +27 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/freetype.txt +169 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/icu.txt +568 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/lcms.txt +27 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libjpeg_turbo.ijg +260 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libjpeg_turbo.md +135 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libopenjpeg.txt +32 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libpng.txt +134 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/libtiff.txt +21 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/llvm-libc.txt +278 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/pdfium-binaries.txt +9 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/pdfium.txt +230 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/simdutf.txt +18 -0
- package/binary/licenses/installed/pypdfium2/pypdfium2-5.13.0.dist-info/licenses/data/linux_x64/BUILD_LICENSES/zlib.txt +29 -0
- package/binary/licenses/installed/python-calamine/python_calamine-0.8.2.dist-info/licenses/LICENSE +21 -0
- package/binary/licenses/installed/quickjs-ng/quickjs_ng-0.17.0.1.dist-info/licenses/LICENSE +21 -0
- package/binary/licenses/installed/runtime-hooks/pyi_rth_cryptography_openssl.py +20 -0
- package/binary/licenses/installed/runtime-hooks/pyi_rth_inspect.py +99 -0
- package/binary/licenses/installed/runtime-hooks/pyi_rth_multiprocessing.py +88 -0
- package/binary/licenses/installed/runtime-hooks/pyi_rth_pkgutil.py +64 -0
- package/binary/licenses/installed/selectolax/selectolax-0.4.13.dist-info/licenses/LICENSE +10 -0
- package/binary/licenses/installed-manifest.json +202 -0
- package/binary/licenses/supplemental/openssl/3.5.9/README-copyright.txt +9 -0
- package/binary/licenses/supplemental/openssl/4.0.3/README-copyright.txt +9 -0
- package/binary/licenses/supplemental/provenance.json +2347 -0
- package/binary/licenses/supplemental/pyinstaller-6.22.3/COPYING.txt +648 -0
- package/binary/licenses/supplemental/pyinstaller-6.22.3/bootloader/waflib/LICENSE +25 -0
- package/binary/licenses/supplemental/pyinstaller-6.22.3/bootloader/zlib/LICENSE +22 -0
- package/binary/licenses/supplemental/pyinstaller-6.22.3/doc/license.rst +24 -0
- package/binary/licenses/supplemental/pyinstaller-hooks-contrib-2026.8/LICENSE +521 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE +373 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.bdb.txt +126 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.bzip2.txt +37 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.cpython.txt +771 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.expat.txt +21 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.libX11.txt +942 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.libXau.txt +21 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.libedit.txt +29 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.libffi.txt +21 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.liblzma.txt +13 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.libuuid.txt +27 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.libxcb.txt +30 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.mpdecimal.txt +24 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.ncurses.txt +29 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.openssl-1.1.txt +124 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.openssl-3.txt +177 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.sqlite.txt +23 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.tcl.txt +40 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.tix.txt +54 -0
- package/binary/licenses/supplemental/python-build-standalone-20260929/LICENSE.zlib.txt +21 -0
- package/binary/licenses/supplemental/python-calamine-0.8.2/LICENSE +21 -0
- package/binary/licenses/supplemental/python-calamine-0.8.2/source-identity/Cargo.lock +620 -0
- package/binary/licenses/supplemental/python-calamine-0.8.2/source-identity/Cargo.toml +22 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/LICENSE +21 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/cutils.h.txt +24 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/dtoa.c.txt +23 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/dtoa.h.txt +23 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/libregexp-opcode.h.txt +23 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/libregexp.c.txt +23 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/libregexp.h.txt +23 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/libunicode.c.txt +23 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/libunicode.h.txt +23 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/list.h.txt +23 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/quickjs-atom.h.txt +24 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/quickjs-opcode.h.txt +24 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/quickjs.c.txt +26 -0
- package/binary/licenses/supplemental/quickjs-ng-0.17.0.1/engine-headers/upstream-quickjs/quickjs.h.txt +26 -0
- package/binary/licenses/supplemental/rust-adler2-2.0.1/LICENSE-0BSD +12 -0
- package/binary/licenses/supplemental/rust-adler2-2.0.1/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-adler2-2.0.1/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-android_system_properties-0.1.5/LICENSE-APACHE +13 -0
- package/binary/licenses/supplemental/rust-android_system_properties-0.1.5/LICENSE-MIT +20 -0
- package/binary/licenses/supplemental/rust-atoi_simd-0.18.1/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-atoi_simd-0.18.1/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-autocfg-1.5.1/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-autocfg-1.5.1/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-bumpalo-3.20.3/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-bumpalo-3.20.3/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-byteorder-1.5.0/COPYING +3 -0
- package/binary/licenses/supplemental/rust-byteorder-1.5.0/LICENSE-MIT +21 -0
- package/binary/licenses/supplemental/rust-calamine-0.36.0/LICENSE-MIT.md +23 -0
- package/binary/licenses/supplemental/rust-cc-1.2.64/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-cc-1.2.64/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-cfg-if-1.0.4/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-cfg-if-1.0.4/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-chrono-0.4.45/LICENSE.txt +240 -0
- package/binary/licenses/supplemental/rust-codepage-0.1.2/COPYRIGHT +9 -0
- package/binary/licenses/supplemental/rust-codepage-0.1.2/LICENSE-APACHE +202 -0
- package/binary/licenses/supplemental/rust-codepage-0.1.2/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-core-foundation-sys-0.8.7/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-core-foundation-sys-0.8.7/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-crc32fast-1.5.0/LICENSE-APACHE +202 -0
- package/binary/licenses/supplemental/rust-crc32fast-1.5.0/LICENSE-MIT +21 -0
- package/binary/licenses/supplemental/rust-debug_unsafe-0.1.4/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-debug_unsafe-0.1.4/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-encoding_rs-0.8.35/COPYRIGHT +17 -0
- package/binary/licenses/supplemental/rust-encoding_rs-0.8.35/LICENSE-APACHE +202 -0
- package/binary/licenses/supplemental/rust-encoding_rs-0.8.35/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-encoding_rs-0.8.35/LICENSE-WHATWG +26 -0
- package/binary/licenses/supplemental/rust-equivalent-1.0.2/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-equivalent-1.0.2/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-fast-float2-0.2.3/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-fast-float2-0.2.3/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-find-msvc-tools-0.1.9/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-find-msvc-tools-0.1.9/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-flate2-1.1.9/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-flate2-1.1.9/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-futures-core-0.3.32/LICENSE-APACHE +202 -0
- package/binary/licenses/supplemental/rust-futures-core-0.3.32/LICENSE-MIT +26 -0
- package/binary/licenses/supplemental/rust-futures-task-0.3.32/LICENSE-APACHE +202 -0
- package/binary/licenses/supplemental/rust-futures-task-0.3.32/LICENSE-MIT +26 -0
- package/binary/licenses/supplemental/rust-futures-util-0.3.32/LICENSE-APACHE +202 -0
- package/binary/licenses/supplemental/rust-futures-util-0.3.32/LICENSE-MIT +26 -0
- package/binary/licenses/supplemental/rust-hashbrown-0.17.1/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-hashbrown-0.17.1/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-heck-0.5.0/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-heck-0.5.0/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-iana-time-zone-0.1.65/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-iana-time-zone-0.1.65/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-iana-time-zone-haiku-0.1.2/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-iana-time-zone-haiku-0.1.2/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-indexmap-2.14.0/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-indexmap-2.14.0/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-js-sys-0.3.102/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-js-sys-0.3.102/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-libc-0.2.186/LICENSE-APACHE +176 -0
- package/binary/licenses/supplemental/rust-libc-0.2.186/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-log-0.4.32/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-log-0.4.32/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-memchr-2.8.2/COPYING +3 -0
- package/binary/licenses/supplemental/rust-memchr-2.8.2/LICENSE-MIT +21 -0
- package/binary/licenses/supplemental/rust-miniz_oxide-0.8.9/LICENSE +25 -0
- package/binary/licenses/supplemental/rust-miniz_oxide-0.8.9/LICENSE-APACHE.md +177 -0
- package/binary/licenses/supplemental/rust-miniz_oxide-0.8.9/LICENSE-MIT.md +24 -0
- package/binary/licenses/supplemental/rust-miniz_oxide-0.8.9/LICENSE-ZLIB.md +14 -0
- package/binary/licenses/supplemental/rust-num-traits-0.2.19/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-num-traits-0.2.19/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-once_cell-1.21.4/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-once_cell-1.21.4/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-pin-project-lite-0.2.17/LICENSE-APACHE +177 -0
- package/binary/licenses/supplemental/rust-pin-project-lite-0.2.17/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-portable-atomic-1.13.1/LICENSE-APACHE +177 -0
- package/binary/licenses/supplemental/rust-portable-atomic-1.13.1/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-proc-macro2-1.0.106/LICENSE-APACHE +176 -0
- package/binary/licenses/supplemental/rust-proc-macro2-1.0.106/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-pyo3-0.29.0/LICENSE-APACHE +178 -0
- package/binary/licenses/supplemental/rust-pyo3-0.29.0/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-pyo3-0.29.0/pyo3-runtime/LICENSE-APACHE +178 -0
- package/binary/licenses/supplemental/rust-pyo3-0.29.0/pyo3-runtime/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-pyo3-build-config-0.29.0/LICENSE-APACHE +178 -0
- package/binary/licenses/supplemental/rust-pyo3-build-config-0.29.0/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-pyo3-ffi-0.29.0/LICENSE-APACHE +178 -0
- package/binary/licenses/supplemental/rust-pyo3-ffi-0.29.0/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-pyo3-file-0.16.0/Cargo.toml +14 -0
- package/binary/licenses/supplemental/rust-pyo3-file-0.16.0/README.md +90 -0
- package/binary/licenses/supplemental/rust-pyo3-file-0.16.0/declared-license/Apache-2.0.txt +73 -0
- package/binary/licenses/supplemental/rust-pyo3-macros-0.29.0/LICENSE-APACHE +178 -0
- package/binary/licenses/supplemental/rust-pyo3-macros-0.29.0/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-pyo3-macros-backend-0.29.0/LICENSE-APACHE +178 -0
- package/binary/licenses/supplemental/rust-pyo3-macros-backend-0.29.0/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-quick-xml-0.41.0/LICENSE-MIT.md +23 -0
- package/binary/licenses/supplemental/rust-quote-1.0.45/LICENSE-APACHE +176 -0
- package/binary/licenses/supplemental/rust-quote-1.0.45/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-rustversion-1.0.22/LICENSE-APACHE +176 -0
- package/binary/licenses/supplemental/rust-rustversion-1.0.22/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-serde-1.0.228/LICENSE-APACHE +176 -0
- package/binary/licenses/supplemental/rust-serde-1.0.228/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-serde_core-1.0.228/LICENSE-APACHE +176 -0
- package/binary/licenses/supplemental/rust-serde_core-1.0.228/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-serde_derive-1.0.228/LICENSE-APACHE +176 -0
- package/binary/licenses/supplemental/rust-serde_derive-1.0.228/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-shlex-2.0.1/LICENSE-APACHE +13 -0
- package/binary/licenses/supplemental/rust-shlex-2.0.1/LICENSE-MIT +21 -0
- package/binary/licenses/supplemental/rust-simd-adler32-0.3.9/LICENSE.md +21 -0
- package/binary/licenses/supplemental/rust-slab-0.4.12/LICENSE +25 -0
- package/binary/licenses/supplemental/rust-syn-2.0.118/LICENSE-APACHE +176 -0
- package/binary/licenses/supplemental/rust-syn-2.0.118/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-target-lexicon-0.13.5/LICENSE +220 -0
- package/binary/licenses/supplemental/rust-typed-path-0.12.3/LICENSE-APACHE +176 -0
- package/binary/licenses/supplemental/rust-typed-path-0.12.3/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-unicode-ident-1.0.24/LICENSE-APACHE +176 -0
- package/binary/licenses/supplemental/rust-unicode-ident-1.0.24/LICENSE-MIT +23 -0
- package/binary/licenses/supplemental/rust-unicode-ident-1.0.24/LICENSE-UNICODE +39 -0
- package/binary/licenses/supplemental/rust-wasm-bindgen-0.2.125/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-wasm-bindgen-0.2.125/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-wasm-bindgen-macro-0.2.125/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-wasm-bindgen-macro-0.2.125/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-wasm-bindgen-macro-support-0.2.125/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-wasm-bindgen-macro-support-0.2.125/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-wasm-bindgen-shared-0.2.125/LICENSE-APACHE +201 -0
- package/binary/licenses/supplemental/rust-wasm-bindgen-shared-0.2.125/LICENSE-MIT +25 -0
- package/binary/licenses/supplemental/rust-windows-core-0.62.2/license-apache-2.0 +201 -0
- package/binary/licenses/supplemental/rust-windows-core-0.62.2/license-mit +21 -0
- package/binary/licenses/supplemental/rust-windows-implement-0.60.2/license-apache-2.0 +201 -0
- package/binary/licenses/supplemental/rust-windows-implement-0.60.2/license-mit +21 -0
- package/binary/licenses/supplemental/rust-windows-interface-0.59.3/license-apache-2.0 +201 -0
- package/binary/licenses/supplemental/rust-windows-interface-0.59.3/license-mit +21 -0
- package/binary/licenses/supplemental/rust-windows-link-0.2.1/license-apache-2.0 +201 -0
- package/binary/licenses/supplemental/rust-windows-link-0.2.1/license-mit +21 -0
- package/binary/licenses/supplemental/rust-windows-result-0.4.1/license-apache-2.0 +201 -0
- package/binary/licenses/supplemental/rust-windows-result-0.4.1/license-mit +21 -0
- package/binary/licenses/supplemental/rust-windows-strings-0.5.1/license-apache-2.0 +201 -0
- package/binary/licenses/supplemental/rust-windows-strings-0.5.1/license-mit +21 -0
- package/binary/licenses/supplemental/rust-zip-8.6.0/LICENSE +21 -0
- package/binary/licenses/supplemental/rust-zlib-rs-0.6.3/LICENSE +19 -0
- package/binary/licenses/supplemental/rust-zopfli-0.8.3/COPYING +201 -0
- package/binary/licenses/supplemental/selectolax-0.4.13/LICENSE +10 -0
- package/binary/licenses/supplemental/selectolax-0.4.13/lexbor/LICENSE +223 -0
- package/binary/licenses/supplemental/selectolax-0.4.13/lexbor/NOTICE +16 -0
- package/binary/version.json +6 -0
- package/native-manifest.json +4474 -0
- package/native-verification.json +338 -0
- package/package.json +27 -4
|
@@ -0,0 +1,858 @@
|
|
|
1
|
+
(function () {
|
|
2
|
+
const hostGlobal = globalThis;
|
|
3
|
+
let nextId = 1;
|
|
4
|
+
let clock = 0;
|
|
5
|
+
let baseURL = '';
|
|
6
|
+
const requests = [];
|
|
7
|
+
const pending = new Map();
|
|
8
|
+
const timers = new Map();
|
|
9
|
+
const errors = [];
|
|
10
|
+
const parse = JSON.parse.bind(JSON);
|
|
11
|
+
const stringify = JSON.stringify.bind(JSON);
|
|
12
|
+
const NativePromise = Promise;
|
|
13
|
+
const NativeTypeError = TypeError;
|
|
14
|
+
const promiseResolve = Promise.resolve.bind(Promise);
|
|
15
|
+
const promiseReject = NativePromise.reject.bind(NativePromise);
|
|
16
|
+
const promiseThen = Function.call.bind(NativePromise.prototype.then);
|
|
17
|
+
const promiseCatch = Function.call.bind(NativePromise.prototype.catch);
|
|
18
|
+
const promiseFinally = Function.call.bind(NativePromise.prototype.finally);
|
|
19
|
+
const encodeURL = encodeURIComponent;
|
|
20
|
+
const hasOwn = Function.call.bind(Object.prototype.hasOwnProperty);
|
|
21
|
+
const primitive = Symbol.toPrimitive;
|
|
22
|
+
const create = Object.create.bind(Object);
|
|
23
|
+
const setPrototype = Object.setPrototypeOf.bind(Object);
|
|
24
|
+
const entries = Object.entries.bind(Object);
|
|
25
|
+
const isArray = Array.isArray.bind(Array);
|
|
26
|
+
const asObject = Object;
|
|
27
|
+
const asString = String;
|
|
28
|
+
const asNumber = Number;
|
|
29
|
+
const finiteNumber = Number.isFinite.bind(Number);
|
|
30
|
+
const truncate = Math.trunc.bind(Math);
|
|
31
|
+
const ownKeys = Reflect.ownKeys.bind(Reflect);
|
|
32
|
+
const ownDescriptor = Object.getOwnPropertyDescriptor.bind(Object);
|
|
33
|
+
const prototypeOf = Object.getPrototypeOf.bind(Object);
|
|
34
|
+
const rawKeys = [NEXT, END, START, VALUE, MIME, primitive, PREV, PRIVATE, CLASS_LIST,
|
|
35
|
+
DATASET, STYLE, SHEET, CHANGED, UPGRADE, Symbol.replace, 'nodeType', 'ownerDocument',
|
|
36
|
+
'localName', 'name', 'publicId', 'systemId', 'toString', 'valueOf', 'childNodes',
|
|
37
|
+
'firstChild', 'nextSibling', 'cloneNode', 'textContent', 'data', 'attributes',
|
|
38
|
+
'ownerSVGElement', 'createElement', 'createElementNS', 'ignoreCase', 'voidElements',
|
|
39
|
+
'ownerElement', 'length', 'push', 'join', 'test', 'exec', 'flags', 'source',
|
|
40
|
+
'lastIndex', 'call', 'prototype', 'set', 'Map', 'global', 'multiline', 'dotAll',
|
|
41
|
+
'unicode', 'unicodeSets', 'sticky', 'hasIndices'];
|
|
42
|
+
const setValue = Reflect.set.bind(Reflect);
|
|
43
|
+
const defineProperty = Object.defineProperty.bind(Object);
|
|
44
|
+
const charCodeAt = Function.call.bind(String.prototype.charCodeAt);
|
|
45
|
+
const applyFunction = Reflect.apply.bind(Reflect);
|
|
46
|
+
const construct = Reflect.construct.bind(Reflect);
|
|
47
|
+
const defineValue = Reflect.defineProperty.bind(Reflect);
|
|
48
|
+
const deleteValue = Reflect.deleteProperty.bind(Reflect);
|
|
49
|
+
const changePrototype = Reflect.setPrototypeOf.bind(Reflect);
|
|
50
|
+
const preventExtensions = Reflect.preventExtensions.bind(Reflect);
|
|
51
|
+
const descriptors = Object.getOwnPropertyDescriptors.bind(Object);
|
|
52
|
+
const legacyGetter = Object.prototype.__lookupGetter__;
|
|
53
|
+
const legacySetter = Object.prototype.__lookupSetter__;
|
|
54
|
+
const defineGetter = Object.prototype.__defineGetter__;
|
|
55
|
+
const defineSetter = Object.prototype.__defineSetter__;
|
|
56
|
+
Object.assign = function (target, source, ...sources) {
|
|
57
|
+
if (target === null || target === undefined) throw new NativeTypeError('assign target is null');
|
|
58
|
+
const result = asObject(target);
|
|
59
|
+
for (const current of [source, ...sources]) {
|
|
60
|
+
if (current === null || current === undefined) continue;
|
|
61
|
+
const from = asObject(current);
|
|
62
|
+
for (const key of ownKeys(from)) {
|
|
63
|
+
if (ownDescriptor(from, key)?.enumerable && !setValue(result, key, from[key]))
|
|
64
|
+
throw new NativeTypeError('assign target write failed');
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return result;
|
|
68
|
+
};
|
|
69
|
+
const controlJSON = value => {
|
|
70
|
+
const copy = item => {
|
|
71
|
+
if (!item || typeof item !== 'object') return item;
|
|
72
|
+
const cloned = isArray(item) ? [] : create(null);
|
|
73
|
+
for (const [key, child] of entries(item)) cloned[key] = copy(child);
|
|
74
|
+
if (isArray(cloned)) setPrototype(cloned, null);
|
|
75
|
+
return cloned;
|
|
76
|
+
};
|
|
77
|
+
return stringify(copy(value));
|
|
78
|
+
};
|
|
79
|
+
let pageDocument;
|
|
80
|
+
let rawCursor;
|
|
81
|
+
let rawDependencies;
|
|
82
|
+
let pageWindow;
|
|
83
|
+
let snapshot;
|
|
84
|
+
let queryAll;
|
|
85
|
+
let queryOne;
|
|
86
|
+
let pageEvent;
|
|
87
|
+
let dispatchLoad;
|
|
88
|
+
let currentScript;
|
|
89
|
+
let writeBuffer = '';
|
|
90
|
+
let pendingModules = 0;
|
|
91
|
+
let violation = false;
|
|
92
|
+
let inlineStyleUsed = false;
|
|
93
|
+
let parseState = 'idle';
|
|
94
|
+
let parsedView;
|
|
95
|
+
let initialParser;
|
|
96
|
+
let originalWrite;
|
|
97
|
+
let originalEnd;
|
|
98
|
+
let originalResume;
|
|
99
|
+
let originalPause;
|
|
100
|
+
let tokenizerDescriptor;
|
|
101
|
+
let tokenizerHook = false;
|
|
102
|
+
let checkpoint = 16384;
|
|
103
|
+
let pagePromiseUnknown = false;
|
|
104
|
+
let pagePromise;
|
|
105
|
+
let currentPromise;
|
|
106
|
+
let promiseGetter;
|
|
107
|
+
let promiseSetter;
|
|
108
|
+
const seenScripts = new WeakSet();
|
|
109
|
+
const scriptNodes = [];
|
|
110
|
+
const error = (name, message) => Object.assign(new Error(message), { name });
|
|
111
|
+
|
|
112
|
+
function markPromiseUnknown() {
|
|
113
|
+
if (!pagePromiseUnknown) {
|
|
114
|
+
pagePromiseUnknown = true;
|
|
115
|
+
errors.push({ category: 'promise_completion_unobservable' });
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
function captureSnapshotDependencies() {
|
|
120
|
+
const record = (owner, key) => {
|
|
121
|
+
let descriptor;
|
|
122
|
+
for (let target = owner; target && !descriptor; target = prototypeOf(target))
|
|
123
|
+
descriptor = ownDescriptor(target, key);
|
|
124
|
+
const flags = descriptor ? (descriptor.configurable ? 1 : 0) |
|
|
125
|
+
(descriptor.writable ? 2 : 0) | (descriptor.enumerable ? 4 : 0) |
|
|
126
|
+
(hasOwn(descriptor, 'get') ? 16 : 0) : -1;
|
|
127
|
+
return [owner, key, flags, descriptor?.value, descriptor?.get, descriptor?.set];
|
|
128
|
+
};
|
|
129
|
+
const chain = constructor => {
|
|
130
|
+
const result = [];
|
|
131
|
+
for (let owner = constructor; owner; owner = prototypeOf(owner)) {
|
|
132
|
+
const instance = owner.prototype;
|
|
133
|
+
result.push([owner, prototypeOf(owner), record(owner, 'prototype'),
|
|
134
|
+
instance && typeof instance === 'object' ? prototypeOf(instance) : undefined]);
|
|
135
|
+
}
|
|
136
|
+
return result;
|
|
137
|
+
};
|
|
138
|
+
const serializerRecords = [Node$1, Attr$1, Text$1, Comment$2, CDATASection$1,
|
|
139
|
+
ParentNode, DocumentFragment$1, DocumentType$1, Element$1, HTMLTemplateElement,
|
|
140
|
+
TextElement, Document$1].map(constructor => record(constructor.prototype, 'toString'));
|
|
141
|
+
const domRecords = [record(ParentNode.prototype, 'childNodes'),
|
|
142
|
+
record(ParentNode.prototype, 'firstChild'), record(Element$1.prototype, 'cloneNode'),
|
|
143
|
+
record(Element$1.prototype, 'textContent'), record(CharacterData$1.prototype, 'textContent'),
|
|
144
|
+
record(CharacterData$1.prototype, 'data'), record(Attr$1.prototype, 'cloneNode'),
|
|
145
|
+
record(pageDocument, 'createElement'), record(pageDocument, 'createElementNS'),
|
|
146
|
+
record(HTMLStyleElement.prototype, 'textContent')];
|
|
147
|
+
const stableRecords = [record(String.prototype, 'replace'), record(Function.prototype, 'call'),
|
|
148
|
+
record(NodeList.prototype, 'push'), record(NodeList.prototype, 'join')];
|
|
149
|
+
const regexpRecords = ['test', 'exec', 'flags', 'source', 'global', 'ignoreCase',
|
|
150
|
+
'multiline', 'dotAll', 'unicode', 'unicodeSets', 'sticky', 'hasIndices', Symbol.replace]
|
|
151
|
+
.map(key => record(RegExp.prototype, key));
|
|
152
|
+
const cloneRecords = [record(WeakMap.prototype, 'set'), record(hostGlobal, 'Map')];
|
|
153
|
+
const constructors = [...htmlClasses].map(([name, constructor]) =>
|
|
154
|
+
[name, constructor.prototype, chain(constructor)]);
|
|
155
|
+
constructors.push(['@attr', Attr$1.prototype, chain(Attr$1)],
|
|
156
|
+
['@svg', SVGElement$1.prototype, chain(SVGElement$1)],
|
|
157
|
+
['@nodelist', NodeList.prototype, chain(NodeList)]);
|
|
158
|
+
const mime = pageDocument[MIME];
|
|
159
|
+
rawDependencies = [serializerRecords, domRecords, stableRecords, regexpRecords,
|
|
160
|
+
cloneRecords, constructors, mime, NodeList.prototype, ca, QUOTE, mime.voidElements,
|
|
161
|
+
wm, record(Object.prototype, 'valueOf'),
|
|
162
|
+
[record(mime, 'ignoreCase'), record(mime, 'voidElements')]];
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
function propertyKey(value) {
|
|
166
|
+
if (typeof value === 'string' || typeof value === 'symbol') return value;
|
|
167
|
+
const probe = create(null);
|
|
168
|
+
defineProperty(probe, value, { value: 0 });
|
|
169
|
+
return ownKeys(probe)[0];
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
function objectTarget(value, boxed = false) {
|
|
173
|
+
if (value === null || value === undefined ||
|
|
174
|
+
(!boxed && typeof value !== 'object' && typeof value !== 'function'))
|
|
175
|
+
throw new NativeTypeError('reflection target is not an object');
|
|
176
|
+
return boxed ? asObject(value) : value;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
function inspectAccessor(descriptor) {
|
|
180
|
+
if (descriptor && (descriptor.get === promiseGetter || descriptor.get === promiseSetter ||
|
|
181
|
+
descriptor.set === promiseGetter || descriptor.set === promiseSetter))
|
|
182
|
+
markPromiseUnknown();
|
|
183
|
+
return descriptor;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
function installPromises() {
|
|
187
|
+
pagePromise = function Promise(executor) {
|
|
188
|
+
if (!new.target) throw new NativeTypeError('Promise requires new');
|
|
189
|
+
return construct(NativePromise, [executor], new.target);
|
|
190
|
+
};
|
|
191
|
+
const target = create(NativePromise.prototype);
|
|
192
|
+
for (const name of ownKeys(NativePromise.prototype)) {
|
|
193
|
+
const descriptor = ownDescriptor(NativePromise.prototype, name);
|
|
194
|
+
if (name === 'constructor') descriptor.value = pagePromise;
|
|
195
|
+
defineProperty(target, name, descriptor);
|
|
196
|
+
}
|
|
197
|
+
const prototype = new Proxy(target, {
|
|
198
|
+
set(object, name, value, receiver) { markPromiseUnknown(); return setValue(object, name, value, receiver); },
|
|
199
|
+
defineProperty(object, name, descriptor) { markPromiseUnknown(); return defineValue(object, name, descriptor); },
|
|
200
|
+
deleteProperty(object, name) { markPromiseUnknown(); return deleteValue(object, name); },
|
|
201
|
+
setPrototypeOf(object, parent) { markPromiseUnknown(); return changePrototype(object, parent); },
|
|
202
|
+
preventExtensions(object) { markPromiseUnknown(); return preventExtensions(object); }
|
|
203
|
+
});
|
|
204
|
+
defineProperty(pagePromise, 'prototype', { value: prototype });
|
|
205
|
+
setPrototype(pagePromise, NativePromise);
|
|
206
|
+
currentPromise = pagePromise;
|
|
207
|
+
promiseGetter = () => currentPromise;
|
|
208
|
+
promiseSetter = value => {
|
|
209
|
+
if (value !== currentPromise) markPromiseUnknown();
|
|
210
|
+
currentPromise = value;
|
|
211
|
+
};
|
|
212
|
+
defineProperty(globalThis, 'Promise', { configurable: true, enumerable: false,
|
|
213
|
+
get: promiseGetter, set: promiseSetter });
|
|
214
|
+
|
|
215
|
+
const readDescriptor = (target, key, boxed) => {
|
|
216
|
+
const object = objectTarget(target, boxed);
|
|
217
|
+
const name = propertyKey(key);
|
|
218
|
+
if (name === 'Promise') markPromiseUnknown();
|
|
219
|
+
return inspectAccessor(ownDescriptor(object, name));
|
|
220
|
+
};
|
|
221
|
+
const defineDescriptor = (target, key, descriptor, reflective) => {
|
|
222
|
+
const object = objectTarget(target);
|
|
223
|
+
const name = propertyKey(key);
|
|
224
|
+
if (name === 'Promise') markPromiseUnknown();
|
|
225
|
+
return reflective ? defineValue(object, name, descriptor) : defineProperty(object, name, descriptor);
|
|
226
|
+
};
|
|
227
|
+
const lookup = (target, key, method) => {
|
|
228
|
+
const object = objectTarget(target, true);
|
|
229
|
+
const name = propertyKey(key);
|
|
230
|
+
if (name === 'Promise') markPromiseUnknown();
|
|
231
|
+
const capability = applyFunction(method, object, [name]);
|
|
232
|
+
if (capability === promiseGetter || capability === promiseSetter) markPromiseUnknown();
|
|
233
|
+
return capability;
|
|
234
|
+
};
|
|
235
|
+
const defineLegacy = (target, key, callback, method) => {
|
|
236
|
+
const object = objectTarget(target, true);
|
|
237
|
+
if (typeof callback !== 'function') throw new NativeTypeError('accessor is not callable');
|
|
238
|
+
const name = propertyKey(key);
|
|
239
|
+
if (name === 'Promise') markPromiseUnknown();
|
|
240
|
+
return applyFunction(method, object, [name, callback]);
|
|
241
|
+
};
|
|
242
|
+
const guards = [
|
|
243
|
+
[Object, 'getOwnPropertyDescriptor', function (target, key) { return readDescriptor(target, key, true); }],
|
|
244
|
+
[Reflect, 'getOwnPropertyDescriptor', function (target, key) { return readDescriptor(target, key, false); }],
|
|
245
|
+
[Object, 'getOwnPropertyDescriptors', function (target) {
|
|
246
|
+
const result = descriptors(objectTarget(target, true));
|
|
247
|
+
for (const name of ownKeys(result)) {
|
|
248
|
+
if (name === 'Promise') markPromiseUnknown();
|
|
249
|
+
inspectAccessor(result[name]);
|
|
250
|
+
}
|
|
251
|
+
return result;
|
|
252
|
+
}],
|
|
253
|
+
[Object, 'defineProperty', function (target, key, descriptor) { return defineDescriptor(target, key, descriptor, false); }],
|
|
254
|
+
[Reflect, 'defineProperty', function (target, key, descriptor) { return defineDescriptor(target, key, descriptor, true); }],
|
|
255
|
+
[Object.prototype, '__lookupGetter__', function (key) { 'use strict'; return lookup(this, key, legacyGetter); }],
|
|
256
|
+
[Object.prototype, '__lookupSetter__', function (key) { 'use strict'; return lookup(this, key, legacySetter); }],
|
|
257
|
+
[Object.prototype, '__defineGetter__', function (key, callback) { 'use strict'; return defineLegacy(this, key, callback, defineGetter); }],
|
|
258
|
+
[Object.prototype, '__defineSetter__', function (key, callback) { 'use strict'; return defineLegacy(this, key, callback, defineSetter); }]
|
|
259
|
+
];
|
|
260
|
+
for (const [object, name, value] of guards)
|
|
261
|
+
defineProperty(object, name, { ...ownDescriptor(object, name), value, writable: false, configurable: false });
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
function releaseParser() {
|
|
265
|
+
if (tokenizerHook) {
|
|
266
|
+
if (tokenizerDescriptor)
|
|
267
|
+
defineProperty(initialParser.tokenizer, 'shouldContinue', tokenizerDescriptor);
|
|
268
|
+
else delete initialParser.tokenizer.shouldContinue;
|
|
269
|
+
}
|
|
270
|
+
tokenizerHook = false;
|
|
271
|
+
initialParser = originalWrite = originalEnd = originalResume = originalPause = tokenizerDescriptor = undefined;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
function failParsing(reason) {
|
|
275
|
+
parseState = 'failed';
|
|
276
|
+
parsedView = undefined;
|
|
277
|
+
releaseParser();
|
|
278
|
+
throw reason;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
globalThis.__smallParseStart = source => {
|
|
282
|
+
if (parseState !== 'idle') failParsing(new Error('initial parser already started'));
|
|
283
|
+
parseState = 'failed';
|
|
284
|
+
const prototype = Parser$1.prototype;
|
|
285
|
+
const writeDescriptor = ownDescriptor(prototype, 'write');
|
|
286
|
+
const endDescriptor = ownDescriptor(prototype, 'end');
|
|
287
|
+
originalWrite = writeDescriptor.value;
|
|
288
|
+
originalEnd = endDescriptor.value;
|
|
289
|
+
originalResume = prototype.resume;
|
|
290
|
+
originalPause = prototype.pause;
|
|
291
|
+
let input;
|
|
292
|
+
let writeChanged = false;
|
|
293
|
+
let endChanged = false;
|
|
294
|
+
try {
|
|
295
|
+
try {
|
|
296
|
+
defineProperty(prototype, 'write', { ...writeDescriptor, value: function (markup) {
|
|
297
|
+
if (initialParser) throw new Error('initial parser duplicate write');
|
|
298
|
+
initialParser = this;
|
|
299
|
+
input = markup;
|
|
300
|
+
} });
|
|
301
|
+
writeChanged = true;
|
|
302
|
+
defineProperty(prototype, 'end', { ...endDescriptor, value: function () {
|
|
303
|
+
if (this !== initialParser) throw new Error('initial parser mismatch');
|
|
304
|
+
} });
|
|
305
|
+
endChanged = true;
|
|
306
|
+
parsedView = parseHTML(source);
|
|
307
|
+
} finally {
|
|
308
|
+
try {
|
|
309
|
+
if (endChanged) defineProperty(prototype, 'end', endDescriptor);
|
|
310
|
+
} finally {
|
|
311
|
+
if (writeChanged) defineProperty(prototype, 'write', writeDescriptor);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
if (initialParser) {
|
|
315
|
+
const tokenizer = initialParser.tokenizer;
|
|
316
|
+
const shouldContinue = tokenizer.shouldContinue.bind(tokenizer);
|
|
317
|
+
tokenizerDescriptor = ownDescriptor(tokenizer, 'shouldContinue');
|
|
318
|
+
defineProperty(tokenizer, 'shouldContinue', { configurable: true, value() {
|
|
319
|
+
if (!shouldContinue()) return false;
|
|
320
|
+
if (tokenizer.index >= checkpoint) {
|
|
321
|
+
originalPause.call(initialParser);
|
|
322
|
+
return false;
|
|
323
|
+
}
|
|
324
|
+
return true;
|
|
325
|
+
} });
|
|
326
|
+
tokenizerHook = true;
|
|
327
|
+
originalWrite.call(initialParser, input);
|
|
328
|
+
}
|
|
329
|
+
parseState = initialParser && !initialParser.tokenizer.running ? 'paused' : 'drained';
|
|
330
|
+
return parseState === 'paused' ? 1 : 0;
|
|
331
|
+
} catch (reason) { failParsing(reason); }
|
|
332
|
+
};
|
|
333
|
+
globalThis.__smallParseResume = () => {
|
|
334
|
+
if (parseState !== 'paused') failParsing(new Error('initial parser has no paused work'));
|
|
335
|
+
parseState = 'failed';
|
|
336
|
+
checkpoint = initialParser.tokenizer.index + 16384;
|
|
337
|
+
try {
|
|
338
|
+
originalResume.call(initialParser);
|
|
339
|
+
parseState = initialParser.tokenizer.running ? 'drained' : 'paused';
|
|
340
|
+
return parseState === 'paused' ? 1 : 0;
|
|
341
|
+
} catch (reason) { failParsing(reason); }
|
|
342
|
+
};
|
|
343
|
+
globalThis.__smallParseEnd = () => {
|
|
344
|
+
if (parseState !== 'drained') failParsing(new Error('initial parser is not drained'));
|
|
345
|
+
parseState = 'failed';
|
|
346
|
+
try {
|
|
347
|
+
if (initialParser) originalEnd.call(initialParser);
|
|
348
|
+
releaseParser();
|
|
349
|
+
parseState = 'ready';
|
|
350
|
+
return 1;
|
|
351
|
+
} catch (reason) { failParsing(reason); }
|
|
352
|
+
};
|
|
353
|
+
|
|
354
|
+
function utf8Bytes(text) {
|
|
355
|
+
let bytes = 0;
|
|
356
|
+
for (let index = 0; index < text.length; index++) {
|
|
357
|
+
const code = charCodeAt(text, index);
|
|
358
|
+
if (code < 128) bytes++;
|
|
359
|
+
else if (code < 2048) bytes += 2;
|
|
360
|
+
else if (code >= 0xd800 && code <= 0xdbff && index + 1 < text.length &&
|
|
361
|
+
charCodeAt(text, index + 1) >= 0xdc00 && charCodeAt(text, index + 1) <= 0xdfff) {
|
|
362
|
+
bytes += 4;
|
|
363
|
+
index++;
|
|
364
|
+
} else bytes += 3;
|
|
365
|
+
}
|
|
366
|
+
return bytes;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
function installStorage() {
|
|
370
|
+
const stored = new Map();
|
|
371
|
+
const reserved = new Set(['getItem', 'setItem', 'removeItem', 'clear', 'key', 'length']);
|
|
372
|
+
let bytes = 0;
|
|
373
|
+
let used = false;
|
|
374
|
+
const touch = () => {
|
|
375
|
+
if (!used) { used = true; errors.push({ category: 'ephemeral_storage_only' }); }
|
|
376
|
+
};
|
|
377
|
+
const dataKey = value => {
|
|
378
|
+
if (typeof value === 'symbol') throw new TypeError('storage symbol key unsupported');
|
|
379
|
+
const key = asString(value);
|
|
380
|
+
if (reserved.has(key)) throw new TypeError('storage API name is reserved');
|
|
381
|
+
return key;
|
|
382
|
+
};
|
|
383
|
+
const setItem = (name, value) => {
|
|
384
|
+
touch();
|
|
385
|
+
const key = dataKey(name);
|
|
386
|
+
const text = asString(value);
|
|
387
|
+
const existing = stored.has(key);
|
|
388
|
+
const proposed = bytes + utf8Bytes(text) - (existing ? utf8Bytes(stored.get(key)) : 0) +
|
|
389
|
+
(existing ? 0 : utf8Bytes(key));
|
|
390
|
+
if ((!existing && stored.size >= 200) || proposed > 65536) {
|
|
391
|
+
violation = true;
|
|
392
|
+
throw new RangeError('storage quota exceeded');
|
|
393
|
+
}
|
|
394
|
+
stored.set(key, text);
|
|
395
|
+
bytes = proposed;
|
|
396
|
+
};
|
|
397
|
+
const removeItem = name => {
|
|
398
|
+
touch();
|
|
399
|
+
const key = dataKey(name);
|
|
400
|
+
if (stored.has(key)) {
|
|
401
|
+
bytes -= utf8Bytes(key) + utf8Bytes(stored.get(key));
|
|
402
|
+
stored.delete(key);
|
|
403
|
+
}
|
|
404
|
+
};
|
|
405
|
+
const target = create(null);
|
|
406
|
+
const methods = {
|
|
407
|
+
getItem(name) { touch(); return stored.get(dataKey(name)) ?? null; },
|
|
408
|
+
setItem, removeItem,
|
|
409
|
+
clear() { touch(); stored.clear(); bytes = 0; },
|
|
410
|
+
key(index) {
|
|
411
|
+
touch();
|
|
412
|
+
const value = asNumber(index);
|
|
413
|
+
const position = finiteNumber(value) ? truncate(value) : 0;
|
|
414
|
+
return [...stored.keys()][position] ?? null;
|
|
415
|
+
}
|
|
416
|
+
};
|
|
417
|
+
for (const [name, method] of entries(methods))
|
|
418
|
+
defineProperty(target, name, { value: method, configurable: true });
|
|
419
|
+
defineProperty(target, 'length', { configurable: true, get() { touch(); return stored.size; } });
|
|
420
|
+
const unsupported = () => { touch(); throw new TypeError('storage mutation unsupported'); };
|
|
421
|
+
const storage = new Proxy(target, {
|
|
422
|
+
get(object, name) {
|
|
423
|
+
touch();
|
|
424
|
+
if (typeof name === 'symbol') throw new TypeError('storage symbol key unsupported');
|
|
425
|
+
return reserved.has(name) ? object[name] : stored.get(name);
|
|
426
|
+
},
|
|
427
|
+
set(object, name, value) { setItem(name, value); return true; },
|
|
428
|
+
deleteProperty(object, name) { removeItem(name); return true; },
|
|
429
|
+
has(object, name) { touch(); return reserved.has(name) || stored.has(dataKey(name)); },
|
|
430
|
+
ownKeys() { touch(); return [...stored.keys()]; },
|
|
431
|
+
getOwnPropertyDescriptor(object, name) {
|
|
432
|
+
touch();
|
|
433
|
+
if (typeof name === 'symbol') throw new TypeError('storage symbol key unsupported');
|
|
434
|
+
if (reserved.has(name)) return ownDescriptor(object, name);
|
|
435
|
+
return stored.has(name) ? { value: stored.get(name), configurable: true, enumerable: true, writable: true } : undefined;
|
|
436
|
+
},
|
|
437
|
+
defineProperty: unsupported, setPrototypeOf: unsupported, preventExtensions: unsupported
|
|
438
|
+
});
|
|
439
|
+
defineProperty(globalThis, 'localStorage', { configurable: true, get() { touch(); return storage; } });
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
function anchorURL(value) {
|
|
443
|
+
const raw = String(value);
|
|
444
|
+
if (raw.length > 8192 || encodeURL(raw).replace(/%[0-9a-f]{2}/gi, '_').length > 8192 ||
|
|
445
|
+
/[\u0000-\u0020\u007f\\]/.test(raw) || /%(?![0-9a-f]{2})/i.test(raw))
|
|
446
|
+
throw new TypeError('anchor URL form unsupported');
|
|
447
|
+
const absolute = text => {
|
|
448
|
+
const match = /^(https?):\/\/(\[[0-9a-f:.]+\]|[a-z0-9.-]+)(?::([0-9]{1,5}))?(\/[^?#]*)?(\?[^#]*)?(#.*)?$/i.exec(text);
|
|
449
|
+
if (!match || Number(match[3] || 0) > 65535) throw new TypeError('anchor URL authority unsupported');
|
|
450
|
+
const protocol = match[1].toLowerCase() + ':';
|
|
451
|
+
const hostname = match[2].toLowerCase();
|
|
452
|
+
const port = match[3] && !((protocol === 'https:' && Number(match[3]) === 443) ||
|
|
453
|
+
(protocol === 'http:' && Number(match[3]) === 80)) ? String(Number(match[3])) : '';
|
|
454
|
+
return { protocol, hostname, port, host: hostname + (port ? ':' + port : ''),
|
|
455
|
+
pathname: match[4] || '/', search: match[5] || '', hash: match[6] || '' };
|
|
456
|
+
};
|
|
457
|
+
let parsed;
|
|
458
|
+
if (/^https?:\/\//i.test(raw)) parsed = absolute(raw);
|
|
459
|
+
else {
|
|
460
|
+
const base = absolute(pageDocument.baseURI);
|
|
461
|
+
if (raw.startsWith('//')) parsed = absolute(base.protocol + raw);
|
|
462
|
+
else {
|
|
463
|
+
if (/^[a-z][a-z0-9+.-]*:/i.test(raw)) throw new TypeError('anchor URL scheme unsupported');
|
|
464
|
+
const relative = /^([^?#]*)(\?[^#]*)?(#.*)?$/.exec(raw);
|
|
465
|
+
const pathname = relative[1] ? (relative[1].startsWith('/') ? relative[1] :
|
|
466
|
+
base.pathname.slice(0, base.pathname.lastIndexOf('/') + 1) + relative[1]) : base.pathname;
|
|
467
|
+
parsed = { ...base, pathname, search: relative[2] || (relative[1] ? '' : base.search), hash: relative[3] || '' };
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
if (/(?:^|\/)(?:%2e|\.%2e|%2e\.|%2e%2e)(?:\/|$)/i.test(parsed.pathname))
|
|
471
|
+
throw new TypeError('encoded anchor path segments unsupported');
|
|
472
|
+
const parts = [];
|
|
473
|
+
for (const part of parsed.pathname.split('/')) {
|
|
474
|
+
if (part === '..') { if (parts.length > 1) parts.pop(); }
|
|
475
|
+
else if (part !== '.') parts.push(part);
|
|
476
|
+
}
|
|
477
|
+
if (/\/(?:\.|\.\.)$/.test(parsed.pathname)) parts.push('');
|
|
478
|
+
parsed.pathname = parts.join('/') || '/';
|
|
479
|
+
parsed.href = parsed.protocol + '//' + parsed.host + parsed.pathname + parsed.search + parsed.hash;
|
|
480
|
+
return parsed;
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
class Headers {
|
|
484
|
+
constructor(source = {}) {
|
|
485
|
+
this.values = new Map(Object.entries(source).map(([key, value]) => [key.toLowerCase(), String(value)]));
|
|
486
|
+
}
|
|
487
|
+
get(name) { return this.values.get(String(name).toLowerCase()) ?? null; }
|
|
488
|
+
set(name, value) { this.values.set(String(name).toLowerCase(), String(value)); }
|
|
489
|
+
entries() { return this.values.entries(); }
|
|
490
|
+
[Symbol.iterator]() { return this.entries(); }
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
class Response {
|
|
494
|
+
constructor(record) {
|
|
495
|
+
this.status = record.status;
|
|
496
|
+
this.ok = this.status >= 200 && this.status < 300;
|
|
497
|
+
this.url = record.url;
|
|
498
|
+
this.redirected = record.redirected;
|
|
499
|
+
this.headers = new Headers(record.headers);
|
|
500
|
+
this.bodyUsed = false;
|
|
501
|
+
this.payload = record.body;
|
|
502
|
+
}
|
|
503
|
+
text() {
|
|
504
|
+
if (this.bodyUsed) return promiseReject(new TypeError('body already consumed'));
|
|
505
|
+
this.bodyUsed = true;
|
|
506
|
+
return promiseResolve(this.payload);
|
|
507
|
+
}
|
|
508
|
+
json() { return promiseThen(this.text(), text => parse(text)); }
|
|
509
|
+
clone() {
|
|
510
|
+
if (this.bodyUsed) throw new TypeError('body already consumed');
|
|
511
|
+
return new Response({ status: this.status, url: this.url, headers: Object.fromEntries(this.headers),
|
|
512
|
+
body: this.payload, redirected: this.redirected });
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
function searchBodyAllowed(body) {
|
|
517
|
+
for (let index = 0; index < body.length; index++) {
|
|
518
|
+
const code = charCodeAt(body, index);
|
|
519
|
+
if (code >= 0xd800 && code <= 0xdbff) {
|
|
520
|
+
const next = charCodeAt(body, ++index);
|
|
521
|
+
if (!(next >= 0xdc00 && next <= 0xdfff)) return false;
|
|
522
|
+
} else if (code >= 0xdc00 && code <= 0xdfff) return false;
|
|
523
|
+
}
|
|
524
|
+
if (utf8Bytes(body) > 16384) { violation = true; throw new RangeError('search body byte bound'); }
|
|
525
|
+
let value;
|
|
526
|
+
try { value = parse(body); } catch { return true; }
|
|
527
|
+
const pending = [[value, 0]];
|
|
528
|
+
let count = 0;
|
|
529
|
+
while (pending.length) {
|
|
530
|
+
const [item, depth] = pending.pop();
|
|
531
|
+
if (depth > 4) { violation = true; throw new RangeError('search body depth bound'); }
|
|
532
|
+
if (isArray(item)) {
|
|
533
|
+
count += item.length;
|
|
534
|
+
if (count > 256) { violation = true; throw new RangeError('search array entry bound'); }
|
|
535
|
+
for (const child of item) pending.push([child, depth + 1]);
|
|
536
|
+
} else if (item !== null && typeof item === 'object') {
|
|
537
|
+
for (const [, child] of entries(item)) pending.push([child, depth + 1]);
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
return true;
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
function fetch(input, options = {}, xhr = null) {
|
|
544
|
+
const id = nextId++;
|
|
545
|
+
return new NativePromise((resolve, reject) => {
|
|
546
|
+
if (options.signal?.aborted) { reject(error('AbortError', 'request aborted')); return; }
|
|
547
|
+
const request = { id, url: String(input), method: String(options.method || 'GET').toUpperCase(),
|
|
548
|
+
headers: Object.fromEntries(new Headers(options.headers)), mode: options.mode || 'cors',
|
|
549
|
+
credentials: options.credentials || 'same-origin', redirect: options.redirect || 'follow' };
|
|
550
|
+
request.body_present = options.body !== undefined && options.body !== null;
|
|
551
|
+
if (request.method === 'POST') {
|
|
552
|
+
if (xhr === null || !request.body_present || typeof options.body !== 'string' || !searchBodyAllowed(options.body)) {
|
|
553
|
+
errors.push({ category: 'request_options_unsupported' });
|
|
554
|
+
reject(error('TypeError', 'request_options_unsupported')); return;
|
|
555
|
+
}
|
|
556
|
+
request.body = options.body;
|
|
557
|
+
request.xhr = true;
|
|
558
|
+
request.with_credentials = xhr.with_credentials;
|
|
559
|
+
request.headers_conflict = xhr.headers_conflict;
|
|
560
|
+
}
|
|
561
|
+
pending.set(id, { resolve, reject, aborted: false });
|
|
562
|
+
options.signal?.addEventListener('abort', () => {
|
|
563
|
+
const state = pending.get(id);
|
|
564
|
+
if (state) { state.aborted = true; state.reject(error('AbortError', 'request aborted')); pending.delete(id); }
|
|
565
|
+
}, { once: true });
|
|
566
|
+
requests.push(request);
|
|
567
|
+
});
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
function setTimer(callback, delay = 0, repeat = false, args = []) {
|
|
571
|
+
if (typeof callback !== 'function') throw new TypeError('string timers unsupported');
|
|
572
|
+
if (timers.size >= 200) { violation = true; throw new RangeError('timer count exceeded'); }
|
|
573
|
+
const id = nextId++;
|
|
574
|
+
const milliseconds = Math.max(0, Math.min(2147483647, Number(delay) || 0));
|
|
575
|
+
timers.set(id, { callback, args, delay: milliseconds, due: clock + milliseconds, repeat });
|
|
576
|
+
return id;
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
globalThis.__smallBoot = (url, locationJSON) => {
|
|
580
|
+
if (parseState !== 'ready') failParsing(new Error('initial parser view is not ready'));
|
|
581
|
+
const view = parsedView;
|
|
582
|
+
parsedView = undefined;
|
|
583
|
+
baseURL = url;
|
|
584
|
+
installStorage();
|
|
585
|
+
globalThis.window = view;
|
|
586
|
+
globalThis.document = view.document;
|
|
587
|
+
pageDocument = view.document;
|
|
588
|
+
pageWindow = view;
|
|
589
|
+
const htmlConstructor = view.HTMLElement;
|
|
590
|
+
const htmlInstance = Function.call.bind(Function.prototype[Symbol.hasInstance]);
|
|
591
|
+
const innerText = ownDescriptor(Element$1.prototype, 'innerText');
|
|
592
|
+
const createFragment = Function.call.bind(pageDocument.createDocumentFragment);
|
|
593
|
+
const createText = Function.call.bind(pageDocument.createTextNode);
|
|
594
|
+
const createElement = Function.call.bind(pageDocument.createElement);
|
|
595
|
+
const appendChild = Function.call.bind(ParentNode.prototype.appendChild);
|
|
596
|
+
const replaceChildren = Function.call.bind(ParentNode.prototype.replaceChildren);
|
|
597
|
+
const sliceText = Function.call.bind(String.prototype.slice);
|
|
598
|
+
defineProperty(htmlConstructor.prototype, 'innerText', {
|
|
599
|
+
configurable: true, enumerable: innerText.enumerable, get: innerText.get,
|
|
600
|
+
set(value) {
|
|
601
|
+
if (!htmlInstance(htmlConstructor, this)) throw new NativeTypeError('innerText requires an HTML element');
|
|
602
|
+
if (typeof value === 'symbol') throw new NativeTypeError('innerText symbol unsupported');
|
|
603
|
+
const text = value === null ? '' : asString(value);
|
|
604
|
+
const document = this.ownerDocument;
|
|
605
|
+
const fragment = createFragment(document);
|
|
606
|
+
let start = 0;
|
|
607
|
+
for (let index = 0; index < text.length; index++) {
|
|
608
|
+
const code = charCodeAt(text, index);
|
|
609
|
+
if (code !== 10 && code !== 13) continue;
|
|
610
|
+
if (index > start) appendChild(fragment, createText(document, sliceText(text, start, index)));
|
|
611
|
+
appendChild(fragment, createElement(document, 'br'));
|
|
612
|
+
if (code === 13 && charCodeAt(text, index + 1) === 10) index++;
|
|
613
|
+
start = index + 1;
|
|
614
|
+
}
|
|
615
|
+
if (start < text.length) appendChild(fragment, createText(document, sliceText(text, start)));
|
|
616
|
+
replaceChildren(this, fragment);
|
|
617
|
+
}
|
|
618
|
+
});
|
|
619
|
+
const descendants = Function.call.bind(ParentNode.prototype.querySelectorAll);
|
|
620
|
+
const documentDescendants = Function.call.bind(view.Document.prototype.querySelectorAll);
|
|
621
|
+
const namedElements = Function.call.bind(ParentNode.prototype.getElementsByTagName);
|
|
622
|
+
ParentNode.prototype.getElementsByTagName = function (name) {
|
|
623
|
+
if (name !== '*') return namedElements(this, name);
|
|
624
|
+
return this.nodeType === 9 ? documentDescendants(this, '*') : descendants(this, '*');
|
|
625
|
+
};
|
|
626
|
+
const protectedRoot = Object.prototype;
|
|
627
|
+
const originalToString = protectedRoot.toString;
|
|
628
|
+
const defineOwn = Object.defineProperty.bind(Object);
|
|
629
|
+
defineOwn(protectedRoot, 'toString', {
|
|
630
|
+
configurable: true, enumerable: false,
|
|
631
|
+
get() { return originalToString; },
|
|
632
|
+
set(value) {
|
|
633
|
+
if (this === protectedRoot) throw new TypeError('protected root mutation');
|
|
634
|
+
defineOwn(this, 'toString', { value, configurable: true, writable: true, enumerable: true });
|
|
635
|
+
}
|
|
636
|
+
});
|
|
637
|
+
snapshot = pageDocument.toString.bind(pageDocument);
|
|
638
|
+
queryAll = pageDocument.querySelectorAll.bind(pageDocument);
|
|
639
|
+
queryOne = pageDocument.querySelector.bind(pageDocument);
|
|
640
|
+
pageEvent = view.Event;
|
|
641
|
+
dispatchLoad = view.dispatchEvent.bind(view);
|
|
642
|
+
for (const key of ['HTMLElement', 'customElements', 'Event', 'CustomEvent', 'EventTarget', 'Node'])
|
|
643
|
+
globalThis[key] = view[key];
|
|
644
|
+
Object.defineProperty(document, 'readyState', { value: 'loading', writable: true });
|
|
645
|
+
Object.defineProperty(document, 'baseURI', { value: url, writable: true });
|
|
646
|
+
globalThis.location = parse(locationJSON);
|
|
647
|
+
Object.defineProperty(globalThis, 'history', { value: Object.freeze({ length: 1, state: null }) });
|
|
648
|
+
const anchorPrototype = view.HTMLAnchorElement.prototype;
|
|
649
|
+
const href = Object.getOwnPropertyDescriptor(anchorPrototype, 'href');
|
|
650
|
+
const readHref = element => stringAttribute.get(element, 'href').trim();
|
|
651
|
+
Object.defineProperty(anchorPrototype, 'href', {
|
|
652
|
+
configurable: true, get() { const raw = readHref(this); return raw ? anchorURL(raw).href : ''; }, set: href.set
|
|
653
|
+
});
|
|
654
|
+
for (const component of ['protocol', 'host', 'hostname', 'port', 'pathname', 'search', 'hash'])
|
|
655
|
+
Object.defineProperty(anchorPrototype, component, { configurable: true, get() { return anchorURL(readHref(this))[component]; } });
|
|
656
|
+
globalThis.getComputedStyle = element => {
|
|
657
|
+
if (!element || element.nodeType !== 1) throw new TypeError('inline style requires an element');
|
|
658
|
+
if (!inlineStyleUsed) { inlineStyleUsed = true; errors.push({ category: 'inline_style_only' }); }
|
|
659
|
+
const read = element.style.getPropertyValue.bind(element.style);
|
|
660
|
+
return new Proxy(Object.freeze({ getPropertyValue: name => read(String(name)) || '' }), {
|
|
661
|
+
get(target, name) {
|
|
662
|
+
if (name === 'getPropertyValue') return target.getPropertyValue;
|
|
663
|
+
if (typeof name !== 'string') return undefined;
|
|
664
|
+
return read(name === 'cssFloat' ? 'float' : name.replace(/[A-Z]/g, letter => '-' + letter.toLowerCase())) || '';
|
|
665
|
+
}, set() { return false; }
|
|
666
|
+
});
|
|
667
|
+
};
|
|
668
|
+
globalThis.navigator = { userAgent: 'brewdoc QuickJS-ng', language: 'en-US', cookieEnabled: false };
|
|
669
|
+
globalThis.innerWidth = 1024;
|
|
670
|
+
pageDocument.write = (...parts) => {
|
|
671
|
+
if (!currentScript) throw new Error('document.write outside initial classic script unsupported');
|
|
672
|
+
writeBuffer += parts.join('');
|
|
673
|
+
if (writeBuffer.length > 8 * 1048576) { violation = true; throw new RangeError('document.write byte bound'); }
|
|
674
|
+
};
|
|
675
|
+
globalThis.fetch = (input, options) => fetch(input, options);
|
|
676
|
+
globalThis.Headers = Headers;
|
|
677
|
+
globalThis.Response = Response;
|
|
678
|
+
globalThis.queueMicrotask = callback => promiseThen(promiseResolve(), callback);
|
|
679
|
+
globalThis.setTimeout = (callback, delay, ...args) => setTimer(callback, delay, false, args);
|
|
680
|
+
globalThis.setInterval = (callback, delay, ...args) => setTimer(callback, delay, true, args);
|
|
681
|
+
globalThis.clearTimeout = id => timers.delete(id);
|
|
682
|
+
globalThis.clearInterval = globalThis.clearTimeout;
|
|
683
|
+
globalThis.AbortController = class {
|
|
684
|
+
constructor() { this.signal = new EventTarget(); this.signal.aborted = false; }
|
|
685
|
+
abort() { this.signal.aborted = true; this.signal.dispatchEvent(new Event('abort')); }
|
|
686
|
+
};
|
|
687
|
+
globalThis.XMLHttpRequest = class extends EventTarget {
|
|
688
|
+
#headersConflict = false;
|
|
689
|
+
constructor() {
|
|
690
|
+
super(); this.readyState = 0; this.status = 0; this.responseType = ''; this.headers = {};
|
|
691
|
+
this.responseText = ''; this.response = ''; this.responseURL = ''; this.timeout = 0;
|
|
692
|
+
this.withCredentials = false;
|
|
693
|
+
}
|
|
694
|
+
emit(type) {
|
|
695
|
+
const event = new pageEvent(type);
|
|
696
|
+
try {
|
|
697
|
+
this.dispatchEvent(event);
|
|
698
|
+
if (typeof this['on' + type] === 'function') this['on' + type](event);
|
|
699
|
+
} catch (reason) { errors.push(String(reason)); }
|
|
700
|
+
}
|
|
701
|
+
change(state) { this.readyState = state; this.emit('readystatechange'); }
|
|
702
|
+
open(method, url, asynchronous = true) {
|
|
703
|
+
if (!asynchronous) throw new TypeError('synchronous XHR unsupported');
|
|
704
|
+
this.method = method; this.url = url; this.change(1);
|
|
705
|
+
}
|
|
706
|
+
setRequestHeader(name, value) {
|
|
707
|
+
if (this.readyState !== 1) throw new Error('XHR not opened');
|
|
708
|
+
if (entries(this.headers).some(([key]) => key.toLowerCase() === String(name).toLowerCase()))
|
|
709
|
+
this.#headersConflict = true;
|
|
710
|
+
this.headers[name] = value;
|
|
711
|
+
}
|
|
712
|
+
getResponseHeader(name) { return this.responseHeaders?.get(name) ?? null; }
|
|
713
|
+
getAllResponseHeaders() {
|
|
714
|
+
return this.responseHeaders ? [...this.responseHeaders.entries()].map(([name, value]) => name + ': ' + value + '\r\n').join('') : '';
|
|
715
|
+
}
|
|
716
|
+
send(body = null) {
|
|
717
|
+
if (this.readyState !== 1) throw new TypeError('XHR not opened');
|
|
718
|
+
const post = String(this.method).toUpperCase() === 'POST';
|
|
719
|
+
const credentials = this.withCredentials;
|
|
720
|
+
if (post && (typeof body !== 'string' || credentials !== false)) {
|
|
721
|
+
errors.push({ category: 'request_options_unsupported' });
|
|
722
|
+
throw new TypeError('request_options_unsupported');
|
|
723
|
+
}
|
|
724
|
+
if (!post && body !== null) throw new TypeError('only opened bodyless XHR supported');
|
|
725
|
+
if (post && entries(this.headers).some(([, value]) => typeof value !== 'string')) {
|
|
726
|
+
errors.push({ category: 'request_headers_unsupported' });
|
|
727
|
+
throw new TypeError('request_headers_unsupported');
|
|
728
|
+
}
|
|
729
|
+
if (!['', 'text', 'json'].includes(this.responseType)) throw new TypeError('XHR responseType unsupported');
|
|
730
|
+
this.controller = new AbortController();
|
|
731
|
+
const timeout = this.timeout > 0 ? setTimeout(() => { this.timedOut = true; this.abort(); }, this.timeout) : null;
|
|
732
|
+
const responseText = promiseThen(
|
|
733
|
+
fetch(this.url, { method: this.method, headers: this.headers, signal: this.controller.signal,
|
|
734
|
+
...(post ? { body } : {}) }, post ? { with_credentials: credentials,
|
|
735
|
+
headers_conflict: this.#headersConflict } : null), response => {
|
|
736
|
+
this.status = response.status; this.responseURL = response.url;
|
|
737
|
+
this.responseHeaders = response.headers; this.change(2);
|
|
738
|
+
return response.text();
|
|
739
|
+
});
|
|
740
|
+
const loaded = promiseThen(responseText, text => {
|
|
741
|
+
this.change(3); this.responseText = text;
|
|
742
|
+
this.response = this.responseType === 'json' ? parse(text) : text;
|
|
743
|
+
this.change(4); this.emit('load'); this.emit('loadend');
|
|
744
|
+
});
|
|
745
|
+
promiseFinally(promiseCatch(loaded, reason => {
|
|
746
|
+
this.status = 0; this.change(4);
|
|
747
|
+
this.emit(this.timedOut ? 'timeout' : reason.name === 'AbortError' ? 'abort' : 'error');
|
|
748
|
+
this.emit('loadend');
|
|
749
|
+
}), () => clearTimeout(timeout));
|
|
750
|
+
}
|
|
751
|
+
abort() { this.controller?.abort(); }
|
|
752
|
+
};
|
|
753
|
+
installPromises();
|
|
754
|
+
for (const prototype of [Object.prototype, Array.prototype, Map.prototype,
|
|
755
|
+
Set.prototype, WeakSet.prototype, NativePromise.prototype, Function.prototype])
|
|
756
|
+
Object.freeze(prototype);
|
|
757
|
+
for (const constructor of [Object, Array, Map, Set, WeakSet, NativePromise, Promise, Function, JSON])
|
|
758
|
+
Object.freeze(constructor);
|
|
759
|
+
for (const name of ['Node', 'Element', 'Document', 'HTMLElement', 'HTMLScriptElement', 'HTMLAnchorElement',
|
|
760
|
+
'Text', 'Comment', 'DocumentType']) {
|
|
761
|
+
let prototype = view[name]?.prototype;
|
|
762
|
+
while (prototype && prototype !== Object.prototype) {
|
|
763
|
+
Object.freeze(prototype);
|
|
764
|
+
prototype = Object.getPrototypeOf(prototype);
|
|
765
|
+
}
|
|
766
|
+
}
|
|
767
|
+
captureSnapshotDependencies();
|
|
768
|
+
parseState = 'bound';
|
|
769
|
+
};
|
|
770
|
+
|
|
771
|
+
globalThis.__smallBase = () => queryOne('base[href]')?.getAttribute('href') || '';
|
|
772
|
+
globalThis.__smallPolicy = () => {
|
|
773
|
+
for (const node of queryAll('meta[http-equiv]'))
|
|
774
|
+
if (node.getAttribute('http-equiv').toLowerCase() === 'content-security-policy') return 1;
|
|
775
|
+
return 0;
|
|
776
|
+
};
|
|
777
|
+
globalThis.__smallSetBase = url => { pageDocument.baseURI = url; };
|
|
778
|
+
globalThis.__smallPending = () => pending.size;
|
|
779
|
+
globalThis.__smallViolation = () => violation ? 1 : 0;
|
|
780
|
+
globalThis.__smallScripts = () => {
|
|
781
|
+
const found = [];
|
|
782
|
+
for (const node of queryAll('script')) {
|
|
783
|
+
if (seenScripts.has(node)) continue;
|
|
784
|
+
seenScripts.add(node);
|
|
785
|
+
const index = scriptNodes.push(node) - 1;
|
|
786
|
+
found.push({index, type: node.type || '', src: node.getAttribute('src'),
|
|
787
|
+
text: node.textContent, async: node.hasAttribute('async'), defer: node.hasAttribute('defer')});
|
|
788
|
+
}
|
|
789
|
+
return controlJSON(found);
|
|
790
|
+
};
|
|
791
|
+
globalThis.__smallScriptDone = (index, success) => {
|
|
792
|
+
const node = scriptNodes[index];
|
|
793
|
+
if (node) {
|
|
794
|
+
try { node.dispatchEvent(new pageEvent(success ? 'load' : 'error')); }
|
|
795
|
+
catch (reason) { errors.push(String(reason)); }
|
|
796
|
+
}
|
|
797
|
+
};
|
|
798
|
+
globalThis.__smallRequests = () => {
|
|
799
|
+
const active = requests.splice(0).filter(request => !pending.get(request.id)?.aborted);
|
|
800
|
+
return controlJSON(active);
|
|
801
|
+
};
|
|
802
|
+
globalThis.__smallComplete = serialized => {
|
|
803
|
+
const record = parse(serialized);
|
|
804
|
+
const state = pending.get(record.id);
|
|
805
|
+
pending.delete(record.id);
|
|
806
|
+
if (!state || state.aborted) return;
|
|
807
|
+
if (record.error) state.reject(error(record.name || 'TypeError', record.error));
|
|
808
|
+
else state.resolve(new Response(record));
|
|
809
|
+
};
|
|
810
|
+
globalThis.__smallTimers = () => controlJSON([...timers].map(([id, timer]) => ({ id, due: timer.due })));
|
|
811
|
+
globalThis.__smallRunTimer = (id, now) => {
|
|
812
|
+
clock = now;
|
|
813
|
+
const timer = timers.get(id);
|
|
814
|
+
if (!timer) return;
|
|
815
|
+
if (timer.repeat) timer.due = now + Math.max(1, timer.delay);
|
|
816
|
+
else timers.delete(id);
|
|
817
|
+
try { timer.callback(...timer.args); } catch (reason) { errors.push(String(reason)); }
|
|
818
|
+
};
|
|
819
|
+
globalThis.__smallClock = now => { clock = now; };
|
|
820
|
+
globalThis.__smallErrors = () => {
|
|
821
|
+
const descriptor = ownDescriptor(hostGlobal, 'Promise');
|
|
822
|
+
if (!descriptor || descriptor.get !== promiseGetter || descriptor.set !== promiseSetter ||
|
|
823
|
+
descriptor.configurable !== true || descriptor.enumerable !== false || currentPromise !== pagePromise)
|
|
824
|
+
markPromiseUnknown();
|
|
825
|
+
return controlJSON(errors);
|
|
826
|
+
};
|
|
827
|
+
globalThis.__smallRawRoot = () => { rawCursor = pageDocument; return rawCursor; };
|
|
828
|
+
globalThis.__smallRawCurrent = () => rawCursor;
|
|
829
|
+
globalThis.__smallRawAdvance = next => { rawCursor = next; };
|
|
830
|
+
globalThis.__smallRawKey = index => rawKeys[index];
|
|
831
|
+
globalThis.__smallRawDependency = index => rawDependencies[index];
|
|
832
|
+
globalThis.__smallSnapshot = () => {
|
|
833
|
+
if (parseState !== 'bound') failParsing(new Error('initial parser view is not bound'));
|
|
834
|
+
return snapshot();
|
|
835
|
+
};
|
|
836
|
+
globalThis.__smallStartScript = index => { currentScript = scriptNodes[index]; };
|
|
837
|
+
globalThis.__smallEndScript = () => {
|
|
838
|
+
if (writeBuffer) currentScript.insertAdjacentHTML('afterend', writeBuffer);
|
|
839
|
+
writeBuffer = ''; currentScript = null;
|
|
840
|
+
};
|
|
841
|
+
globalThis.__smallAbortScript = () => { writeBuffer = ''; currentScript = null; };
|
|
842
|
+
globalThis.__smallTrackModule = value => {
|
|
843
|
+
pendingModules++;
|
|
844
|
+
promiseThen(promiseResolve(value), () => { pendingModules--; }, reason => {
|
|
845
|
+
pendingModules--; errors.push(String(reason));
|
|
846
|
+
});
|
|
847
|
+
};
|
|
848
|
+
globalThis.__smallModules = () => pendingModules;
|
|
849
|
+
globalThis.__smallReady = () => {
|
|
850
|
+
pageDocument.readyState = 'interactive';
|
|
851
|
+
try { pageDocument.dispatchEvent(new pageEvent('DOMContentLoaded')); }
|
|
852
|
+
catch (reason) { errors.push(String(reason)); }
|
|
853
|
+
};
|
|
854
|
+
globalThis.__smallLoaded = () => {
|
|
855
|
+
pageDocument.readyState = 'complete';
|
|
856
|
+
try { dispatchLoad(new pageEvent('load')); } catch (reason) { errors.push(String(reason)); }
|
|
857
|
+
};
|
|
858
|
+
})();
|