@poe-platform/safe-bash 0.1.817 → 0.1.818
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/dist/image-ast/index.js +2 -2
- package/dist/mp4-ast/index.d.ts +2 -1
- package/dist/mp4-ast/mp4-metadata-source.d.ts +10 -0
- package/dist/mp4-ast/mp4-packets-source.d.ts +8 -1
- package/dist/mp4-ast/types.d.ts +21 -3
- package/dist/pdf-ast/ast.d.ts +2 -0
- package/dist/pdf-ast/content/evaluator.d.ts +7 -0
- package/dist/pdf-ast/content/retained-evaluator.d.ts +2 -2
- package/dist/pdf-ast/content/retained-page.d.ts +2 -2
- package/dist/pdf-ast/extract/html-text-stream.d.ts +14 -0
- package/dist/pdf-ast/extract/logical-text-stream.d.ts +14 -0
- package/dist/pdf-ast/extract/raw-text-index.d.ts +18 -4
- package/dist/pdf-ast/extract/retained-color.d.ts +6 -6
- package/dist/pdf-ast/extract/retained-decoded-image.d.ts +2 -2
- package/dist/pdf-ast/extract/stored-text-glyphs.d.ts +8 -0
- package/dist/pdf-ast/fonts/retained.d.ts +2 -2
- package/dist/pdf-ast/image.d.ts +2 -0
- package/dist/pdf-ast/image.js +19 -0
- package/dist/pdf-ast/index.d.ts +3 -0
- package/dist/pdf-ast/index.js +264 -66852
- package/dist/pdf-ast/render/postscript.d.ts +6 -0
- package/dist/pdf-ast/render/raster.d.ts +21 -1
- package/dist/pdf-ast/retained-document.d.ts +16 -95
- package/dist/pdf-ast/retained-reader.d.ts +109 -0
- package/dist/safe-bash/command-chunks/biff-AYJZR2YV-JPESBEOO.js +5741 -0
- package/dist/safe-bash/command-chunks/{chunk-SL4LD25A.js → chunk-232N24HE.js} +9 -9
- package/dist/safe-bash/command-chunks/{chunk-ALD53QFL.js → chunk-2C4QMQQD.js} +42 -12
- package/dist/safe-bash/command-chunks/{chunk-3PM46VWH.js → chunk-2FEMMALH.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-QDV2NIFR.js → chunk-2TMTGVJR.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-ARE267HR.js → chunk-2WTDP3TP.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-FSG6UC2N.js → chunk-2XR7B6DY.js} +420 -167
- package/dist/safe-bash/command-chunks/{chunk-EY3UE26F.js → chunk-2YC6MWQB.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-UPWLHHZ2.js → chunk-37KBCKDF.js} +13 -13
- package/dist/safe-bash/command-chunks/{chunk-DOVWHVHI.js → chunk-3B6554G6.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-FB2WPI3M.js → chunk-3ZGO24WG.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-GR4ONCQ5.js → chunk-424NYO35.js} +7 -7
- package/dist/safe-bash/command-chunks/{chunk-MQE77MEQ.js → chunk-45GTHPL5.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-AF2IO57Q.js → chunk-4OHTYYNU.js} +8 -136
- package/dist/safe-bash/command-chunks/{chunk-ICJH6A73.js → chunk-4PMMJ45F.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-57PK2QFX.js → chunk-4SFX6YGC.js} +6 -6
- package/dist/safe-bash/command-chunks/{chunk-G3LUT475.js → chunk-4WHTTCKY.js} +6 -6
- package/dist/safe-bash/command-chunks/{chunk-UYZ6EFZE.js → chunk-4Z7PBIMP.js} +6 -6
- package/dist/safe-bash/command-chunks/{chunk-A4P37F3P.js → chunk-57SKL76U.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-J6FNSVHT.js → chunk-5GP4A3TD.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-OFONWWEZ.js → chunk-5IHJWBDR.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-A2L3U7DW.js → chunk-5OS4Q3AX.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-FUYZUETI.js → chunk-5PMLTSQ5.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-TXU7MMHN.js → chunk-5RDS6CNQ.js} +13 -13
- package/dist/safe-bash/command-chunks/{chunk-FR63MJSO.js → chunk-5UGQGB5Y.js} +7 -7
- package/dist/safe-bash/command-chunks/{chunk-UKAGRRLZ.js → chunk-5VY5O37W.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-5WS6DXYE.js +68444 -0
- package/dist/safe-bash/command-chunks/{chunk-2ALHVXEM.js → chunk-6EK76ERE.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-4772DJKS.js → chunk-6GCK2KSL.js} +61 -26
- package/dist/safe-bash/command-chunks/{chunk-T5OQ53XS.js → chunk-6IID5HTY.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-EZDWPTYB.js → chunk-6LOAJOWK.js} +13 -13
- package/dist/safe-bash/command-chunks/{chunk-WMBELKPP.js → chunk-6PE2L522.js} +6 -6
- package/dist/safe-bash/command-chunks/{chunk-ZAYTFXUX.js → chunk-73KY3MZ3.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-BOVDUJ3A.js → chunk-77WBFVZQ.js} +7 -7
- package/dist/safe-bash/command-chunks/{chunk-3DWFXESW.js → chunk-7GJJDM2F.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-WIW3KDBS.js → chunk-7NFICYRU.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-35DU6I2M.js → chunk-7ZEGARPB.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-A5SPMSKD.js → chunk-A32PUWYE.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-KYIGYYEY.js → chunk-A32ZROH5.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-IOXMGD2H.js → chunk-ADVQZLLE.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-CGJ7GMHO.js → chunk-AEZU6NZE.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-KDDXLHN7.js → chunk-ATHU53C2.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-R7LF4XQV.js → chunk-B6T2526I.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-PPN53PX3.js → chunk-BB7HBO56.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-ZM7HMBAJ.js → chunk-BDGNKRY4.js} +7 -7
- package/dist/safe-bash/command-chunks/{chunk-VMZIAFVJ.js → chunk-BFRSYJUC.js} +8 -8
- package/dist/safe-bash/command-chunks/{chunk-X42MJT2J.js → chunk-BJL7AGA5.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-VZTVR3JI.js → chunk-C2QUG7IP.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-IVKAFEPO.js → chunk-C34RLMAC.js} +9 -9
- package/dist/safe-bash/command-chunks/{chunk-5O45KGW5.js → chunk-C5VUJOUQ.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-LQDANF2B.js → chunk-CCNOZKAK.js} +8 -8
- package/dist/safe-bash/command-chunks/{chunk-FEBTT5NH.js → chunk-CEHICGP6.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-SICTBSLW.js → chunk-CODJMTSA.js} +6 -6
- package/dist/safe-bash/command-chunks/{chunk-LJ3UYESS.js → chunk-CP5EO5TT.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-45DKGZYO.js → chunk-CSS5KXQC.js} +329 -152
- package/dist/safe-bash/command-chunks/{chunk-6RLWPB44.js → chunk-CZSLXQU2.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-3ZWFE4CK.js → chunk-D2ZT2UUT.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-WH624PKJ.js → chunk-D5XSGHXN.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-NDALIHKK.js → chunk-D7UFAIBS.js} +18 -18
- package/dist/safe-bash/command-chunks/{chunk-ISFGPCED.js → chunk-DCKAY6HV.js} +6 -6
- package/dist/safe-bash/command-chunks/{chunk-LNAZ3E4Q.js → chunk-DGCJVZW6.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-LFSWLJPR.js → chunk-DJB5RB6U.js} +288 -32
- package/dist/safe-bash/command-chunks/{chunk-FGHSE3RZ.js → chunk-DZ4ELL34.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-LQX7RAF7.js → chunk-EBKKYRQJ.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-QNETPOMH.js → chunk-EDBNI7WE.js} +14 -14
- package/dist/safe-bash/command-chunks/{chunk-5GDF5FAS.js → chunk-EEJ3YXVO.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-RTHYAGKI.js → chunk-ETN25WCR.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-ET6LMDEX.js → chunk-EV3DPRWE.js} +9 -9
- package/dist/safe-bash/command-chunks/{chunk-3MUFXGA2.js → chunk-F2JUB7JI.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-345YBIHP.js → chunk-F42WV2YO.js} +19 -19
- package/dist/safe-bash/command-chunks/{chunk-FTZFCMVI.js → chunk-FAVWWMFW.js} +12 -12
- package/dist/safe-bash/command-chunks/{chunk-XBWD6SI3.js → chunk-FDRE535F.js} +16 -16
- package/dist/safe-bash/command-chunks/{chunk-WMV5224N.js → chunk-FILE5PBI.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-XPQUUFQD.js → chunk-FPOM47UA.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-QMBMZSJF.js → chunk-FQ2WRT4Q.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-H56BSMFQ.js → chunk-FVAFISPY.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-2QZUAZTH.js → chunk-GIQUIF6E.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-2TWXRJPB.js → chunk-GNORF6RY.js} +13 -13
- package/dist/safe-bash/command-chunks/{chunk-ABL2DPJI.js → chunk-GPLN6JV2.js} +12 -12
- package/dist/safe-bash/command-chunks/{chunk-DZOKH5BL.js → chunk-GQ7BD75U.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-N4HWOLGZ.js → chunk-GY2C555A.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-N32AP43V.js → chunk-GZNX5SS4.js} +7 -7
- package/dist/safe-bash/command-chunks/{chunk-YPG55QTP.js → chunk-HCJWEB6P.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-4ABR3KGK.js → chunk-HNY7LZ5P.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-P462JTNT.js → chunk-HOBXZX23.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-5KZMR6AJ.js → chunk-HW3IOXT6.js} +6 -6
- package/dist/safe-bash/command-chunks/{chunk-3VGQTLO6.js → chunk-HX7QQNWS.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-TXWDR2P4.js → chunk-IBT3OWXB.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-OHEZQ4QA.js → chunk-IFBLXBBM.js} +9 -9
- package/dist/safe-bash/command-chunks/{chunk-HOJ7WDTS.js → chunk-IJZUUXLL.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-BZRWZ6GO.js → chunk-IKU7ZBF3.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-CKIXC7AO.js → chunk-IPKYPADE.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-IWVANZWH.js → chunk-JLPBGKVC.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-6M3JTPKE.js → chunk-JNRX5EFF.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-5YL453ZF.js → chunk-JSX5CFZY.js} +36 -36
- package/dist/safe-bash/command-chunks/{chunk-V6JPIZUW.js → chunk-JT656DKZ.js} +7 -7
- package/dist/safe-bash/command-chunks/{chunk-DM5WURQL.js → chunk-JY2T3KV2.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-IZ3SD5S2.js → chunk-K2NV6H7E.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-62RG3GHF.js → chunk-K6E56LND.js} +6 -6
- package/dist/safe-bash/command-chunks/{chunk-FLSXHLJG.js → chunk-KADQKXZE.js} +9 -9
- package/dist/safe-bash/command-chunks/{chunk-URQSUMMJ.js → chunk-KFFV7HBL.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-ONQP4FNV.js → chunk-KZICRCQ7.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-N35IJXBK.js → chunk-L6X4EEN6.js} +9 -9
- package/dist/safe-bash/command-chunks/{chunk-SHLT5R64.js → chunk-LF7YJ5VQ.js} +9 -9
- package/dist/safe-bash/command-chunks/{chunk-GMBUOYTN.js → chunk-LNHTLWIL.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-A6OTPNNI.js → chunk-LPKMNCC5.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-MUTARE5I.js → chunk-LSKA4IR4.js} +6 -6
- package/dist/safe-bash/command-chunks/{chunk-N3ZH4YYH.js → chunk-LTWX23FS.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-JA36YOZI.js → chunk-LUJUYUOG.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-4X2MPZXW.js → chunk-M42GCI5F.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-AYQPJQJR.js → chunk-M5BFAMXD.js} +6 -6
- package/dist/safe-bash/command-chunks/{chunk-OFDJJRAD.js → chunk-M7DZ7COK.js} +9 -9
- package/dist/safe-bash/command-chunks/{chunk-E64ZI2YB.js → chunk-MMSKDYK6.js} +224 -115
- package/dist/safe-bash/command-chunks/{chunk-NKK76B4V.js → chunk-MN7EEK6Y.js} +8 -8
- package/dist/safe-bash/command-chunks/{chunk-OBIXFO25.js → chunk-MOJQT6RW.js} +8 -8
- package/dist/safe-bash/command-chunks/{chunk-HOKPYTHQ.js → chunk-MPRUGL4W.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-CORUUCS2.js → chunk-MRBX4KEP.js} +3 -3
- package/dist/safe-bash/command-chunks/chunk-MTWFSBNG.js +137 -0
- package/dist/safe-bash/command-chunks/{chunk-RRAQII52.js → chunk-MURNTGDL.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-KDBU5Q2N.js → chunk-MWVELMXZ.js} +6 -6
- package/dist/safe-bash/command-chunks/{chunk-PRO7JOIH.js → chunk-N3MAYM6Y.js} +8 -8
- package/dist/safe-bash/command-chunks/{chunk-E22EAYJN.js → chunk-NFWLZDMY.js} +177 -34
- package/dist/safe-bash/command-chunks/{chunk-GAROGIVU.js → chunk-NP2QXF2X.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-SNA2LVBX.js → chunk-NPVOYY2A.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-ENMJHB2C.js → chunk-NTXRKJPZ.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-3K5CVXUV.js → chunk-NZF56C25.js} +10 -10
- package/dist/safe-bash/command-chunks/{chunk-5MNQTHED.js → chunk-OA4MEWTN.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-SWIF6BBY.js → chunk-OL75SBZL.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-LT2YCGC5.js → chunk-OVQSILY3.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-WDVPHDBH.js → chunk-P57V45F2.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-OWCBX5M2.js → chunk-PAY4ULWY.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-CHZE6FNT.js → chunk-PFUZPAXQ.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-NLCUQD7Y.js → chunk-PX6E5MHY.js} +9 -9
- package/dist/safe-bash/command-chunks/{chunk-POGVOCOB.js → chunk-QCN7MRRU.js} +8 -8
- package/dist/safe-bash/command-chunks/{chunk-ZZERSKAR.js → chunk-QLE6JUR7.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-LZY46GYY.js → chunk-QMWBKR4C.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-BIJW6QWB.js → chunk-QNLX3CZH.js} +13 -13
- package/dist/safe-bash/command-chunks/{chunk-MDFNUNK5.js → chunk-QWX5IERU.js} +6 -6
- package/dist/safe-bash/command-chunks/{chunk-WOL3LBXE.js → chunk-R2N3E267.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-ZNCPIZCN.js → chunk-R6X63VAO.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-FGARVKAX.js → chunk-RNIFPFGC.js} +13 -11
- package/dist/safe-bash/command-chunks/{chunk-OIHQXURE.js → chunk-ROE6KD4C.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-BKK4MS3V.js → chunk-RR6XG2I6.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-ZHHALBM7.js → chunk-RYOHOS2I.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-U42WHQRH.js → chunk-TTTNFKT6.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-EWC56JNI.js → chunk-TTVJJZOM.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-TY7JXEWI.js → chunk-UBX5I5HY.js} +11 -11
- package/dist/safe-bash/command-chunks/{chunk-QOKFSYD5.js → chunk-UE34SQET.js} +9 -9
- package/dist/safe-bash/command-chunks/{chunk-DXOXUKQB.js → chunk-UH4CQIU3.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-VNNNVT4C.js → chunk-UZZ2WJQV.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-QNX5LZBK.js → chunk-V6NZVM7C.js} +7 -7
- package/dist/safe-bash/command-chunks/{chunk-KLAC2MIZ.js → chunk-VEZULAIA.js} +6 -6
- package/dist/safe-bash/command-chunks/{chunk-OCV5ZU35.js → chunk-VSTAHYCV.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-UFLMOU3B.js → chunk-VUJCVXD4.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-5V7WIQ2D.js → chunk-VW67MA53.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-2IMIKROX.js → chunk-WI5NEHPD.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-SBXS4S6Y.js → chunk-WJSU2UVG.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-VVWHFNHD.js → chunk-WPEIOUJN.js} +415 -25
- package/dist/safe-bash/command-chunks/{chunk-YKODRSGT.js → chunk-WRCYZJNO.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-TID5TSQW.js → chunk-WRJV7OVO.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-T4SEQU66.js → chunk-X4TWJNW7.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-CKA7ZROU.js → chunk-X6KFCAWZ.js} +7 -7
- package/dist/safe-bash/command-chunks/{chunk-ROQ3VNVX.js → chunk-X6KO7D6R.js} +8 -8
- package/dist/safe-bash/command-chunks/{chunk-S5ER73EA.js → chunk-XB5ZZHFD.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-FHQOFEQK.js → chunk-XLFOLLUZ.js} +8 -8
- package/dist/safe-bash/command-chunks/{chunk-UJYXSLM6.js → chunk-XLPEPCQC.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-UT5X6QRU.js → chunk-XQFEP43Y.js} +5 -5
- package/dist/safe-bash/command-chunks/chunk-Y7XL6CWB.js +771 -0
- package/dist/safe-bash/command-chunks/{chunk-RVWIEXR7.js → chunk-YKEMSPJZ.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-ERWIJYCS.js → chunk-YN3OEJAZ.js} +7 -7
- package/dist/safe-bash/command-chunks/{chunk-6YF2QADH.js → chunk-YOYK2I4N.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-26JE5JEB.js → chunk-YS5ZKMRJ.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-LMLBQSAM.js → chunk-YW7WU7W2.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-YXR4JE4U.js → chunk-Z33YS3DW.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-T2FRXSQT.js → chunk-ZBXUAM34.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-VVV45NLY.js → chunk-ZJUU5IAS.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-7OCTMVYJ.js → chunk-ZNABMTV3.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-6JGICYHP.js → chunk-ZSF2T5D4.js} +1 -1
- package/dist/safe-bash/command-chunks/{command-engine-2QXVRRH3.js → command-engine-PFYHL7GS.js} +10 -4
- package/dist/safe-bash/command-chunks/{engine-T4GP6QOK-ECFKMR5V.js → engine-5AVSKFBI-D7Q5VPUN.js} +1 -1
- package/dist/safe-bash/command-chunks/model-store-IIWQHSEZ.js +54 -0
- package/dist/safe-bash-command-awk/awk-inspection.js +2 -2
- package/dist/safe-bash-command-awk/awk.js +5 -5
- package/dist/safe-bash-command-awk/index.js +5 -5
- package/dist/safe-bash-command-cp/index.js +4 -4
- package/dist/safe-bash-command-diff/diff.js +2 -2
- package/dist/safe-bash-command-diff/index.js +2 -2
- package/dist/safe-bash-command-ffmpeg/index.js +1 -1
- package/dist/safe-bash-command-ffprobe/index.js +2 -2
- package/dist/safe-bash-command-ffprobe/media.js +2 -2
- package/dist/safe-bash-command-node/commands/node/browser.js +6 -6
- package/dist/safe-bash-command-node/commands/node/default-runtime.js +6 -6
- package/dist/safe-bash-command-node/commands/node/filesystem.js +2 -2
- package/dist/safe-bash-command-node/commands/node/safejs.js +6 -6
- package/dist/safe-bash-command-node/commands/node/timers.js +2 -2
- package/dist/safe-bash-command-patch/index.js +3 -3
- package/dist/safe-bash-command-patch/patch-formats.js +2 -2
- package/dist/safe-bash-command-patch/patch.js +3 -3
- package/dist/safe-bash-command-patch/unified.js +1 -1
- package/dist/safe-bash-command-pdftoppm/index.js +89 -124
- package/dist/safe-bash-command-pdftotext/index.d.ts +1 -1
- package/dist/safe-bash-command-pdftotext/index.js +538 -379
- package/dist/safe-bash-command-playwright-cli/index.js +19 -19
- package/dist/safe-bash-command-playwright-cli/playwright/abilities.js +6 -6
- package/dist/safe-bash-command-playwright-cli/playwright/adapter.js +3 -3
- package/dist/safe-bash-command-playwright-cli/playwright/controller.js +13 -13
- package/dist/safe-bash-command-playwright-cli/playwright/index.js +19 -19
- package/dist/safe-bash-command-playwright-cli/playwright/native-storage-replacement.js +2 -2
- package/dist/safe-bash-command-playwright-cli/playwright/open-options.js +2 -2
- package/dist/safe-bash-command-playwright-cli/playwright/profile.js +5 -5
- package/dist/safe-bash-command-playwright-cli/playwright/standard-capabilities.js +4 -4
- package/dist/safe-bash-command-playwright-cli/playwright/storage-capabilities.js +3 -3
- package/dist/safe-bash-command-pptx/engine.js +1 -1
- package/dist/safe-bash-command-python/executor.js +10 -10
- package/dist/safe-bash-command-python/index.js +10 -10
- package/dist/safe-bash-command-python/jspi.js +2 -2
- package/dist/safe-bash-command-safejs/index.js +2 -2
- package/dist/safe-bash-command-safejs/runtime.js +2 -2
- package/dist/safe-bash-command-ssconvert/index.js +13 -13
- package/dist/safe-bash-command-unzip/index.js +4 -4
- package/dist/safe-bash-docx-engine/ancillary-resources.js +10 -10
- package/dist/safe-bash-docx-engine/batch-operations.js +67 -67
- package/dist/safe-bash-docx-engine/batch-result-schema.js +79 -79
- package/dist/safe-bash-docx-engine/batch.js +78 -78
- package/dist/safe-bash-docx-engine/bookmarks.js +18 -18
- package/dist/safe-bash-docx-engine/charts.js +11 -11
- package/dist/safe-bash-docx-engine/command-option-rules.js +6 -6
- package/dist/safe-bash-docx-engine/command-properties.js +3 -3
- package/dist/safe-bash-docx-engine/comments.js +26 -26
- package/dist/safe-bash-docx-engine/control-bindings.js +21 -21
- package/dist/safe-bash-docx-engine/control-repeat.js +21 -21
- package/dist/safe-bash-docx-engine/controls.js +19 -19
- package/dist/safe-bash-docx-engine/create.js +11 -11
- package/dist/safe-bash-docx-engine/diagrams.js +11 -11
- package/dist/safe-bash-docx-engine/diff.js +13 -13
- package/dist/safe-bash-docx-engine/document-properties.js +16 -16
- package/dist/safe-bash-docx-engine/equations.js +17 -17
- package/dist/safe-bash-docx-engine/extract.js +14 -14
- package/dist/safe-bash-docx-engine/fields.js +23 -23
- package/dist/safe-bash-docx-engine/font-inventory.js +18 -18
- package/dist/safe-bash-docx-engine/font-resources.js +6 -6
- package/dist/safe-bash-docx-engine/image-batch-operations.js +14 -14
- package/dist/safe-bash-docx-engine/image-insertion.js +21 -21
- package/dist/safe-bash-docx-engine/image-layout.js +19 -19
- package/dist/safe-bash-docx-engine/image-replacement.js +22 -22
- package/dist/safe-bash-docx-engine/images.js +19 -19
- package/dist/safe-bash-docx-engine/index.js +111 -111
- package/dist/safe-bash-docx-engine/inspection.js +20 -20
- package/dist/safe-bash-docx-engine/invocation.js +9 -9
- package/dist/safe-bash-docx-engine/io.js +9 -9
- package/dist/safe-bash-docx-engine/links.js +21 -21
- package/dist/safe-bash-docx-engine/lists.js +20 -20
- package/dist/safe-bash-docx-engine/locations.js +15 -15
- package/dist/safe-bash-docx-engine/notes.js +22 -22
- package/dist/safe-bash-docx-engine/objects.js +19 -19
- package/dist/safe-bash-docx-engine/operation-json-schema.js +3 -3
- package/dist/safe-bash-docx-engine/operation-schema.js +2 -2
- package/dist/safe-bash-docx-engine/pack.js +14 -14
- package/dist/safe-bash-docx-engine/package-view-batch-operations.js +22 -22
- package/dist/safe-bash-docx-engine/pandoc-adapter.js +29 -29
- package/dist/safe-bash-docx-engine/paragraph-edit.js +25 -25
- package/dist/safe-bash-docx-engine/part-provider.js +3 -3
- package/dist/safe-bash-docx-engine/property-values.js +3 -3
- package/dist/safe-bash-docx-engine/publication.js +9 -9
- package/dist/safe-bash-docx-engine/removal.js +21 -21
- package/dist/safe-bash-docx-engine/revision-decisions.js +22 -22
- package/dist/safe-bash-docx-engine/revision-edit.js +20 -20
- package/dist/safe-bash-docx-engine/revisions.js +18 -18
- package/dist/safe-bash-docx-engine/run-format.js +20 -20
- package/dist/safe-bash-docx-engine/sanitize.js +34 -34
- package/dist/safe-bash-docx-engine/sections.js +19 -19
- package/dist/safe-bash-docx-engine/settings.js +11 -11
- package/dist/safe-bash-docx-engine/shape-edit.js +21 -21
- package/dist/safe-bash-docx-engine/signatures.js +15 -15
- package/dist/safe-bash-docx-engine/stories.js +22 -22
- package/dist/safe-bash-docx-engine/structure-model-batch-operations.js +38 -38
- package/dist/safe-bash-docx-engine/style-model-batch-operations.js +27 -27
- package/dist/safe-bash-docx-engine/style-model-result-schema.js +44 -44
- package/dist/safe-bash-docx-engine/styles.js +18 -18
- package/dist/safe-bash-docx-engine/table-edit.js +27 -27
- package/dist/safe-bash-docx-engine/table-read.js +16 -16
- package/dist/safe-bash-docx-engine/template.js +22 -22
- package/dist/safe-bash-docx-engine/text-replace.js +20 -20
- package/dist/safe-bash-docx-engine/text-resource-read.js +16 -16
- package/dist/safe-bash-docx-engine/text.js +16 -16
- package/dist/safe-bash-docx-engine/validation.js +7 -7
- package/dist/safe-bash-docx-engine/xml-parts.js +22 -22
- package/dist/safe-bash-network-engine/index.js +4 -4
- package/dist/safe-bash-network-engine/transfer.js +12 -12
- package/dist/safe-bash-presentation-engine/accessibility.js +15 -15
- package/dist/safe-bash-presentation-engine/animation-editing.js +5 -5
- package/dist/safe-bash-presentation-engine/animations.js +5 -5
- package/dist/safe-bash-presentation-engine/backgrounds.js +6 -6
- package/dist/safe-bash-presentation-engine/chart-editing.js +18 -18
- package/dist/safe-bash-presentation-engine/chart-object-operations.js +12 -12
- package/dist/safe-bash-presentation-engine/charts.js +15 -15
- package/dist/safe-bash-presentation-engine/command-placeholder.js +39 -38
- package/dist/safe-bash-presentation-engine/comments.js +6 -6
- package/dist/safe-bash-presentation-engine/connector-operations.js +16 -16
- package/dist/safe-bash-presentation-engine/connectors.js +13 -13
- package/dist/safe-bash-presentation-engine/diff.js +21 -20
- package/dist/safe-bash-presentation-engine/drawing-format.js +7 -7
- package/dist/safe-bash-presentation-engine/drawing-operations.js +15 -15
- package/dist/safe-bash-presentation-engine/drawing-schema.js +8 -8
- package/dist/safe-bash-presentation-engine/equations.js +6 -6
- package/dist/safe-bash-presentation-engine/fields.js +6 -6
- package/dist/safe-bash-presentation-engine/image-extraction.js +7 -7
- package/dist/safe-bash-presentation-engine/image-formatting.js +16 -16
- package/dist/safe-bash-presentation-engine/image-insertion.js +6 -6
- package/dist/safe-bash-presentation-engine/image-replacement.js +7 -7
- package/dist/safe-bash-presentation-engine/images.js +6 -6
- package/dist/safe-bash-presentation-engine/index.js +96 -95
- package/dist/safe-bash-presentation-engine/layouts.js +5 -5
- package/dist/safe-bash-presentation-engine/links.js +5 -5
- package/dist/safe-bash-presentation-engine/masters.js +4 -4
- package/dist/safe-bash-presentation-engine/media-editing.js +10 -10
- package/dist/safe-bash-presentation-engine/media-extraction.js +6 -6
- package/dist/safe-bash-presentation-engine/media.js +5 -5
- package/dist/safe-bash-presentation-engine/memberships.d.ts +1 -0
- package/dist/safe-bash-presentation-engine/memberships.js +12 -6
- package/dist/safe-bash-presentation-engine/notes.js +6 -6
- package/dist/safe-bash-presentation-engine/ole-insertion.js +6 -6
- package/dist/safe-bash-presentation-engine/opaque-objects.js +2 -2
- package/dist/safe-bash-presentation-engine/package-tools.js +6 -6
- package/dist/safe-bash-presentation-engine/presentation-model.js +38 -37
- package/dist/safe-bash-presentation-engine/presentation-settings.d.ts +1 -0
- package/dist/safe-bash-presentation-engine/presentation-settings.js +12 -5
- package/dist/safe-bash-presentation-engine/properties.js +7 -6
- package/dist/safe-bash-presentation-engine/retained-inspection.js +3 -3
- package/dist/safe-bash-presentation-engine/retained-memberships.d.ts +25 -0
- package/dist/safe-bash-presentation-engine/retained-presentation-settings.d.ts +25 -0
- package/dist/safe-bash-presentation-engine/retained-text.d.ts +24 -4
- package/dist/safe-bash-presentation-engine/retained-text.js +17 -15
- package/dist/safe-bash-presentation-engine/sanitize.js +8 -7
- package/dist/safe-bash-presentation-engine/selectors.js +2 -2
- package/dist/safe-bash-presentation-engine/shape-groups.js +15 -15
- package/dist/safe-bash-presentation-engine/shape-operations.js +14 -14
- package/dist/safe-bash-presentation-engine/shape-path-operations.js +16 -16
- package/dist/safe-bash-presentation-engine/shape-paths.js +5 -5
- package/dist/safe-bash-presentation-engine/shape-selection.js +15 -15
- package/dist/safe-bash-presentation-engine/shape-transforms.js +5 -5
- package/dist/safe-bash-presentation-engine/shapes.js +11 -11
- package/dist/safe-bash-presentation-engine/slide-copy.js +7 -5
- package/dist/safe-bash-presentation-engine/slide-import.js +6 -6
- package/dist/safe-bash-presentation-engine/slide-merge-split.js +8 -8
- package/dist/safe-bash-presentation-engine/slide-model.js +24 -24
- package/dist/safe-bash-presentation-engine/slide-removal.js +7 -7
- package/dist/safe-bash-presentation-engine/slide-transfer-budget.js +2 -2
- package/dist/safe-bash-presentation-engine/slides.js +5 -5
- package/dist/safe-bash-presentation-engine/table-operations.js +17 -17
- package/dist/safe-bash-presentation-engine/table-spans.js +16 -16
- package/dist/safe-bash-presentation-engine/tables.js +15 -15
- package/dist/safe-bash-presentation-engine/tags.js +6 -6
- package/dist/safe-bash-presentation-engine/template-bindings.js +16 -16
- package/dist/safe-bash-presentation-engine/template-repeat.js +24 -22
- package/dist/safe-bash-presentation-engine/text-fitting.js +11 -11
- package/dist/safe-bash-presentation-engine/text-frames.js +11 -11
- package/dist/safe-bash-presentation-engine/text-paragraphs.js +11 -11
- package/dist/safe-bash-presentation-engine/text-reading.js +3 -3
- package/dist/safe-bash-presentation-engine/text-replacement.js +6 -6
- package/dist/safe-bash-presentation-engine/text-runs.js +8 -8
- package/dist/safe-bash-presentation-engine/themes.js +5 -5
- package/dist/safe-bash-presentation-engine/transitions.js +5 -5
- package/dist/safe-bash-presentation-engine/validation.js +2 -2
- package/dist/safe-bash-presentation-engine/xml-parts.js +5 -5
- package/dist/safe-bash-xml-engine/document.js +2 -2
- package/dist/safe-bash-xml-engine/index.js +2 -2
- package/dist/safe-bash-xml-engine/recovery.d.ts +6 -2
- package/dist/safe-bash-xml-engine/stored-document.d.ts +2 -1
- package/dist/safe-bash-xml-engine/stored-document.js +1 -1
- package/dist/safe-bash-xml-engine/{stored-namespaces.d.ts → stored-map.d.ts} +6 -6
- package/dist/safe-bash-zip-engine/index.js +3 -3
- package/dist/safe-bash-zip-engine/zip/repair.js +3 -3
- package/dist/safe-bash-zip-engine/zip/sfx.js +3 -3
- package/dist/safe-bash-zip-engine/zip-format.js +3 -3
- package/dist/spreadsheet-engine/formatting/cell-text.js +1 -1
- package/dist/spreadsheet-engine/{rendering/print → formatting}/general-number.js +3 -3
- package/dist/spreadsheet-engine/formulas/functions/python-printf.js +9 -7
- package/dist/spreadsheet-engine/solver/program.js +3 -2
- package/dist/spreadsheet-engine/solver/run.js +8 -2
- package/dist/spreadsheet-engine/solver/sensitivity.d.ts +4 -2
- package/dist/spreadsheet-engine/solver/sensitivity.js +80 -42
- package/dist/spreadsheet-format-xls/biff-properties-merge.d.ts +2 -1
- package/dist/spreadsheet-format-xls/biff-properties-merge.js +35 -29
- package/dist/spreadsheet-format-xls/biff-properties-write.js +16 -7
- package/dist/spreadsheet-format-xls/biff-property-names.d.ts +3 -0
- package/dist/spreadsheet-format-xls/biff-property-names.js +44 -1
- package/dist/spreadsheet-format-xls/biff-property-observations.d.ts +33 -0
- package/dist/spreadsheet-format-xls/biff-property-observations.js +160 -0
- package/package.json +6 -4
- package/third-party/pdf-ast/THIRD_PARTY_NOTICES.md +15 -0
- package/third-party/pdf-ast/licenses/PYTHON-PSF.txt +254 -0
- package/third-party/pdf-ast/licenses/V8-BSD.txt +61 -0
- package/dist/safe-bash/command-chunks/biff-KLS4T7FP-UO3CXFFF.js +0 -5581
- package/dist/safe-bash/command-chunks/chunk-6EZWG56T.js +0 -455
- package/dist/safe-bash/command-chunks/model-store-I7YAWL5V.js +0 -54
- package/dist/safe-bash/command-chunks/{chunk-SRXARACJ.js → chunk-3TP4SSPS.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-NCNHJRIY.js → chunk-3W3HLPCX.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-P4OWVKMD.js → chunk-BQXKO3X7.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-OCOJMKDP.js → chunk-CVMHDJ7J.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-AV6N7DDA.js → chunk-DDYPQAXN.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-FEKECRJP.js → chunk-EBTKM7KX.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-WVD5WZXD.js → chunk-FPNUGKCX.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-6W4RMBFH.js → chunk-N6VNHC3B.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-M3OXQXCU.js → chunk-NBRXQUK7.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-LECGQSQW.js → chunk-SF56V6QK.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-2ANW3FXH.js → chunk-U33GIOUY.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-5QXRIZSS.js → chunk-V3NKL42J.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-OEKLEUUW.js → chunk-YZE7BKHC.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-WXW665TV.js → chunk-ZSHXZ3XG.js} +6 -6
- package/dist/safe-bash/command-chunks/{dif-BXKPQOCO-4KB3RC6G.js → dif-BXKPQOCO-FVJYYGYB.js} +4 -4
- package/dist/safe-bash/command-chunks/{pln-DFS7VLVS-OVOBS4QX.js → pln-DFS7VLVS-JATX6FS7.js} +3 -3
- package/dist/safe-bash/command-chunks/{psion-YBI6JEQI-GY4S6ZLC.js → psion-YBI6JEQI-6OMC2PGC.js} +3 -3
- package/dist/safe-bash/command-chunks/{sylk-25D7TL2Y-RU6ANKGT.js → sylk-25D7TL2Y-NJKBZZTF.js} +4 -4
- /package/dist/spreadsheet-engine/{rendering/print → formatting}/general-number.d.ts +0 -0
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { BiffPropertyNames } from './biff-property-names.js';
|
|
2
|
+
import { BiffOriginalProperties } from './biff-property-observations.js';
|
|
1
3
|
import { BiffMutablePropertyValues } from './biff-property-values.js';
|
|
2
4
|
import { createBiffPropertyNameEncoder } from "./biff-property-name.js";
|
|
3
5
|
import { readBiffPropertyText } from "./biff-property-text.js";
|
|
@@ -8,10 +10,9 @@ import { Binary, invalidBiff } from "./biff-binary.js";
|
|
|
8
10
|
import { biffPropertyFields, biffPropertyFormats, readBiffProperties } from "./biff-properties.js";
|
|
9
11
|
import { propertyRange, readPropertySectionRanges, withPropertyValueRanges } from "./biff-property-range.js";
|
|
10
12
|
/** Rebuild offsets around original opaque spans. Never transcode their codepage. */
|
|
11
|
-
export async function mergeBiffProperties(book, streams, handled, context, charge, allocate, staged) {
|
|
13
|
+
export async function mergeBiffProperties(book, streams, handled, context, charge, allocate, staged, preserved) {
|
|
12
14
|
const canonical = (name) => ["\u0005SummaryInformation", "\u0005DocumentSummaryInformation"].find(target => target.toUpperCase() === name.toUpperCase());
|
|
13
15
|
const snapshots = new Map(), duplicates = new Set();
|
|
14
|
-
const preserved = new Set();
|
|
15
16
|
let nodes = 0, textBytes = 0;
|
|
16
17
|
const admit = (amount) => {
|
|
17
18
|
charge(amount);
|
|
@@ -85,7 +86,7 @@ export async function mergeBiffProperties(book, streams, handled, context, charg
|
|
|
85
86
|
for (const name of duplicates)
|
|
86
87
|
snapshots.delete(name);
|
|
87
88
|
if (!snapshots.size)
|
|
88
|
-
return
|
|
89
|
+
return;
|
|
89
90
|
const parse = async (input) => {
|
|
90
91
|
const file = propertyRange(input, context), sections = [];
|
|
91
92
|
for await (const section of readPropertySectionRanges(file, admit, charge, context)) {
|
|
@@ -117,12 +118,22 @@ export async function mergeBiffProperties(book, streams, handled, context, charg
|
|
|
117
118
|
}
|
|
118
119
|
return new Binary(bytes);
|
|
119
120
|
};
|
|
120
|
-
const
|
|
121
|
-
|
|
121
|
+
const same = (a, b) => {
|
|
122
|
+
if (!Array.isArray(a) || !Array.isArray(b))
|
|
123
|
+
return Object.is(a, b);
|
|
124
|
+
charge(a.length + b.length);
|
|
125
|
+
return a.length === b.length && a.every((value, i) => Object.is(value, b[i]));
|
|
126
|
+
};
|
|
127
|
+
const original = new BiffOriginalProperties(context, charge), pending = new Map();
|
|
128
|
+
temporarySources.push(original);
|
|
122
129
|
const readContext = { ...context, limits: { ...context.limits, inputBytes: context.limits.outputBytes } };
|
|
123
130
|
// Reuse scalar decoding, but do not create another retained hexadecimal copy.
|
|
124
|
-
await readBiffProperties(new Map([...snapshots].map(([name, value]) => [name, value.bytes])), readContext, accountText, charge, undefined,
|
|
125
|
-
|
|
131
|
+
await readBiffProperties(new Map([...snapshots].map(([name, value]) => [name, value.bytes])), readContext, accountText, charge, undefined, async (property) => {
|
|
132
|
+
admit(1);
|
|
133
|
+
const { stream, section, id, key } = property;
|
|
134
|
+
await original.add({ stream, section, id, key, unchanged: same(property.value, book.properties?.[key]) });
|
|
135
|
+
}, false);
|
|
136
|
+
await readBiffProperties(streams, readContext, accountText, charge, undefined, property => { admit(1); const { stream, section, id, key } = property; pending.set(key, { stream, section, id, key }); }, false);
|
|
126
137
|
const chunks = async function* (source) {
|
|
127
138
|
for (let at = 0; at < source.size;) {
|
|
128
139
|
const bytes = await source.read(at, source.size - at);
|
|
@@ -232,48 +243,43 @@ export async function mergeBiffProperties(book, streams, handled, context, charg
|
|
|
232
243
|
view.setUint16(8 + i * 2, value.charCodeAt(i), true);
|
|
233
244
|
return propertyRange(bytes, context);
|
|
234
245
|
};
|
|
235
|
-
const same = (a, b) => {
|
|
236
|
-
if (!Array.isArray(a) || !Array.isArray(b))
|
|
237
|
-
return Object.is(a, b);
|
|
238
|
-
charge(a.length + b.length);
|
|
239
|
-
return a.length === b.length && a.every((value, i) => Object.is(value, b[i]));
|
|
240
|
-
};
|
|
241
246
|
for (const [name, snapshot] of snapshots) {
|
|
242
|
-
const seen = new
|
|
243
|
-
|
|
247
|
+
const seen = new BiffPropertyNames(context, charge);
|
|
248
|
+
temporarySources.push(seen);
|
|
249
|
+
async function* modeled() {
|
|
244
250
|
if (snapshot.modeled) {
|
|
245
251
|
yield* snapshot.modeled;
|
|
246
252
|
return;
|
|
247
253
|
}
|
|
248
254
|
// SummaryInformation is read first. A legacy document-only snapshot lacks
|
|
249
255
|
// that earlier stream's ownership decisions: infer only unchanged values.
|
|
250
|
-
for (const property of original.values()) {
|
|
256
|
+
for await (const property of original.values()) {
|
|
251
257
|
charge(1);
|
|
252
258
|
if (property.stream !== name)
|
|
253
259
|
continue;
|
|
254
260
|
if (name === "\u0005SummaryInformation" || snapshots.has("\u0005SummaryInformation") ||
|
|
255
|
-
Object.hasOwn(book.properties ?? {}, property.key) &&
|
|
261
|
+
Object.hasOwn(book.properties ?? {}, property.key) && property.unchanged) {
|
|
256
262
|
admit(1);
|
|
257
263
|
yield [property.section, property.id, property.key];
|
|
258
264
|
}
|
|
259
265
|
}
|
|
260
266
|
}
|
|
261
|
-
for (const entry of modeled()) {
|
|
267
|
+
for await (const entry of modeled()) {
|
|
262
268
|
admit(1);
|
|
263
269
|
if (!Array.isArray(entry) || entry.length !== 3 || typeof entry[0] !== "number" || typeof entry[1] !== "number" || typeof entry[2] !== "string")
|
|
264
270
|
invalidBiff("invalid retained property identity");
|
|
265
271
|
const [offset, id, key] = entry;
|
|
266
|
-
const property = original.get(
|
|
267
|
-
if (!property || property.key !== key || seen.has(key))
|
|
272
|
+
const property = await original.get(name, offset, id);
|
|
273
|
+
if (!property || property.key !== key || await seen.has(key))
|
|
268
274
|
invalidBiff("invalid retained property identity");
|
|
269
|
-
seen.add(key);
|
|
275
|
+
await seen.add(key);
|
|
270
276
|
charge(old.get(name).length);
|
|
271
277
|
const section = old.get(name).find(section => section.offset === offset);
|
|
272
|
-
const
|
|
278
|
+
const replacement = pending.get(key);
|
|
273
279
|
if (!Object.hasOwn(book.properties ?? {}, key))
|
|
274
280
|
await remove(section, id);
|
|
275
|
-
else if (
|
|
276
|
-
preserved
|
|
281
|
+
else if (property.unchanged) {
|
|
282
|
+
await preserved?.add(key);
|
|
277
283
|
if (replacement)
|
|
278
284
|
await take(replacement);
|
|
279
285
|
}
|
|
@@ -451,13 +457,14 @@ export async function mergeBiffProperties(book, streams, handled, context, charg
|
|
|
451
457
|
if (snapshot)
|
|
452
458
|
handled.add(snapshot.record);
|
|
453
459
|
}
|
|
454
|
-
const exposed = new
|
|
455
|
-
|
|
460
|
+
const exposed = new BiffPropertyNames(context, charge);
|
|
461
|
+
temporarySources.push(exposed);
|
|
462
|
+
await readBiffProperties(staged?.sources ?? streams, readContext, accountText, charge, undefined, async (property) => {
|
|
456
463
|
admit(1);
|
|
457
464
|
if (!Object.hasOwn(book.properties ?? {}, property.key))
|
|
458
|
-
exposed.add(property.key);
|
|
465
|
+
await exposed.add(property.key);
|
|
459
466
|
}, false);
|
|
460
|
-
for (const key of exposed)
|
|
467
|
+
for await (const key of exposed.values())
|
|
461
468
|
await warn(key, "opaque property exposes a field absent from the model");
|
|
462
469
|
}
|
|
463
470
|
catch (error) {
|
|
@@ -470,5 +477,4 @@ export async function mergeBiffProperties(book, streams, handled, context, charg
|
|
|
470
477
|
throw error;
|
|
471
478
|
}
|
|
472
479
|
await closeTemporary();
|
|
473
|
-
return preserved;
|
|
474
480
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BiffPropertyNames } from "./biff-property-names.js";
|
|
1
2
|
import { propertyChunks, stagePropertyBytes } from "./biff-property-bytes.js";
|
|
2
3
|
import { SsconvertError } from "../spreadsheet-engine/contracts.js";
|
|
3
4
|
import { biffPropertyFields, biffPropertyFormats, isBiffKeywordSpace } from "./biff-properties.js";
|
|
@@ -6,7 +7,7 @@ const fieldByName = new Map([...biffPropertyFields].flatMap(([guid, fields]) =>
|
|
|
6
7
|
const maximumFileTime = 0xffffffffffffffffn;
|
|
7
8
|
/** Only discard a generic loss report when every XML field has been handled.
|
|
8
9
|
* Keep the original record on the caller's workbook, including unknown content. */
|
|
9
|
-
function handledPropertyRecord(record,
|
|
10
|
+
function handledPropertyRecord(record, properties, charge) {
|
|
10
11
|
if (record.disposition !== "retained" || record.source !== "Gnumeric_XmlIO:sax" || record.kind !== "document-meta")
|
|
11
12
|
return false;
|
|
12
13
|
const office = "urn:oasis:names:tc:opendocument:xmlns:office:1.0", meta = "urn:oasis:names:tc:opendocument:xmlns:meta:1.0";
|
|
@@ -85,7 +86,7 @@ function handledPropertyRecord(record, keys, charge) {
|
|
|
85
86
|
return false;
|
|
86
87
|
}
|
|
87
88
|
const keyword = field.namespace === meta && field.name === "keyword";
|
|
88
|
-
if (key === undefined || !
|
|
89
|
+
if (key === undefined || !Object.prototype.propertyIsEnumerable.call(properties ?? {}, key) || seen.has(key) && !(keyword && seen.get(key)))
|
|
89
90
|
return false;
|
|
90
91
|
seen.set(key, keyword);
|
|
91
92
|
}
|
|
@@ -141,7 +142,6 @@ function durationTicks(text) {
|
|
|
141
142
|
}
|
|
142
143
|
export async function writeBiffProperties(book, context, staged = false) {
|
|
143
144
|
const planned = new Map(), sections = new Map();
|
|
144
|
-
const handledKeys = new Set();
|
|
145
145
|
const unsupportedKeys = [];
|
|
146
146
|
let work = 0, textBytes = 0, nodes = 0, payloadBytes = 0;
|
|
147
147
|
const charge = (amount) => {
|
|
@@ -275,7 +275,6 @@ export async function writeBiffProperties(book, context, staged = false) {
|
|
|
275
275
|
if (++nodes > (context.limits.workbookNodes ?? context.limits.outputBytes))
|
|
276
276
|
throw new SsconvertError("resource-limit", "ssconvert BIFF property node limit exceeded");
|
|
277
277
|
const field = fieldByName.get(key);
|
|
278
|
-
handledKeys.add(key);
|
|
279
278
|
let source = book.properties[key];
|
|
280
279
|
if (key === "dc:keywords" && Array.isArray(source)) {
|
|
281
280
|
charge(source.length);
|
|
@@ -318,7 +317,7 @@ export async function writeBiffProperties(book, context, staged = false) {
|
|
|
318
317
|
const handledMetadata = new Set();
|
|
319
318
|
for (const record of book.unsupportedRecords ?? []) {
|
|
320
319
|
charge(1);
|
|
321
|
-
if (handledPropertyRecord(record,
|
|
320
|
+
if (handledPropertyRecord(record, book.properties, charge))
|
|
322
321
|
handledMetadata.add(record);
|
|
323
322
|
}
|
|
324
323
|
if (names.length) {
|
|
@@ -399,6 +398,7 @@ export async function writeBiffProperties(book, context, staged = false) {
|
|
|
399
398
|
const snapshots = (book.unsupportedRecords ?? []).some(record => record.source === "biff" && record.kind === "ole-properties" && record.disposition === "retained");
|
|
400
399
|
const streams = new Map(), inputs = [];
|
|
401
400
|
const sources = new Map();
|
|
401
|
+
let preserved;
|
|
402
402
|
const close = async () => {
|
|
403
403
|
const errors = [];
|
|
404
404
|
for (const source of [...sources.values(), ...inputs])
|
|
@@ -408,6 +408,12 @@ export async function writeBiffProperties(book, context, staged = false) {
|
|
|
408
408
|
catch (error) {
|
|
409
409
|
errors.push(error);
|
|
410
410
|
}
|
|
411
|
+
try {
|
|
412
|
+
await preserved?.close();
|
|
413
|
+
}
|
|
414
|
+
catch (error) {
|
|
415
|
+
errors.push(error);
|
|
416
|
+
}
|
|
411
417
|
if (errors.length === 1)
|
|
412
418
|
throw errors[0];
|
|
413
419
|
if (errors.length)
|
|
@@ -431,10 +437,13 @@ export async function writeBiffProperties(book, context, staged = false) {
|
|
|
431
437
|
streams.set(name, bytes);
|
|
432
438
|
}
|
|
433
439
|
}
|
|
434
|
-
|
|
440
|
+
if (snapshots && unsupportedKeys.length)
|
|
441
|
+
preserved = new BiffPropertyNames(context, charge);
|
|
442
|
+
await mergeBiffProperties(book, streams, handledMetadata, context, charge, allocate, staged ? { sources, reserve } : undefined, preserved);
|
|
435
443
|
for (const key of unsupportedKeys)
|
|
436
|
-
if (!preserved
|
|
444
|
+
if (!await preserved?.has(key))
|
|
437
445
|
await context.diagnostic?.({ code: "biff-loss-warning", severity: "warning", message: `Unsupported Excel BIFF document property: ${key}` });
|
|
446
|
+
await preserved?.close();
|
|
438
447
|
if (!staged)
|
|
439
448
|
return { streams, handledMetadata, async close() { } };
|
|
440
449
|
for (const [name, value] of snapshots ? streams : planned)
|
|
@@ -8,6 +8,8 @@ export declare class BiffPropertyNames {
|
|
|
8
8
|
private readonly index;
|
|
9
9
|
private readonly fallback;
|
|
10
10
|
private initialized;
|
|
11
|
+
private first;
|
|
12
|
+
private last;
|
|
11
13
|
private pending;
|
|
12
14
|
private closed;
|
|
13
15
|
private closing;
|
|
@@ -20,5 +22,6 @@ export declare class BiffPropertyNames {
|
|
|
20
22
|
private contains;
|
|
21
23
|
has(name: string): Promise<boolean>;
|
|
22
24
|
add(name: string): Promise<void>;
|
|
25
|
+
values(): AsyncIterable<string>;
|
|
23
26
|
close(): Promise<void>;
|
|
24
27
|
}
|
|
@@ -10,6 +10,8 @@ export class BiffPropertyNames {
|
|
|
10
10
|
index;
|
|
11
11
|
fallback;
|
|
12
12
|
initialized = false;
|
|
13
|
+
first = 0;
|
|
14
|
+
last = 0;
|
|
13
15
|
pending = Promise.resolve();
|
|
14
16
|
closed = false;
|
|
15
17
|
closing;
|
|
@@ -145,7 +147,7 @@ export class BiffPropertyNames {
|
|
|
145
147
|
finally {
|
|
146
148
|
buffer.fill(0);
|
|
147
149
|
}
|
|
148
|
-
const record = new Uint8Array(
|
|
150
|
+
const record = new Uint8Array(32), descriptor = new DataView(record.buffer);
|
|
149
151
|
descriptor.setFloat64(0, Number(head ?? 0n), true);
|
|
150
152
|
descriptor.setFloat64(8, name.length, true);
|
|
151
153
|
descriptor.setFloat64(16, start, true);
|
|
@@ -158,6 +160,47 @@ export class BiffPropertyNames {
|
|
|
158
160
|
}
|
|
159
161
|
await this.index.set(key, BigInt(position));
|
|
160
162
|
this.check();
|
|
163
|
+
if (this.last) {
|
|
164
|
+
const link = new Uint8Array(8);
|
|
165
|
+
new DataView(link.buffer).setFloat64(0, position, true);
|
|
166
|
+
try {
|
|
167
|
+
await this.io(() => this.storage.write(this.last + 24, link));
|
|
168
|
+
}
|
|
169
|
+
finally {
|
|
170
|
+
link.fill(0);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
else
|
|
174
|
+
this.first = position;
|
|
175
|
+
this.last = position;
|
|
176
|
+
}
|
|
177
|
+
async *values() {
|
|
178
|
+
this.check();
|
|
179
|
+
if (this.fallback) {
|
|
180
|
+
for (const name of this.fallback) {
|
|
181
|
+
this.check();
|
|
182
|
+
yield name;
|
|
183
|
+
}
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
let position = this.first;
|
|
187
|
+
while (position) {
|
|
188
|
+
const record = new DataView((await this.read(position, 32)).buffer);
|
|
189
|
+
const length = record.getFloat64(8, true), start = record.getFloat64(16, true);
|
|
190
|
+
position = record.getFloat64(24, true);
|
|
191
|
+
this.charge(length + 1);
|
|
192
|
+
let name = '';
|
|
193
|
+
for (let at = 0; at < length;) {
|
|
194
|
+
const count = Math.min(8192, length - at), bytes = await this.read(start + at * 2, count * 2);
|
|
195
|
+
const view = new DataView(bytes.buffer), units = new Uint16Array(count);
|
|
196
|
+
for (let i = 0; i < count; i++)
|
|
197
|
+
units[i] = view.getUint16(i * 2, true);
|
|
198
|
+
name += String.fromCharCode(...units);
|
|
199
|
+
at += count;
|
|
200
|
+
}
|
|
201
|
+
yield name;
|
|
202
|
+
}
|
|
203
|
+
this.check();
|
|
161
204
|
}
|
|
162
205
|
close() {
|
|
163
206
|
this.closed = true;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type CapabilityContext } from "../spreadsheet-engine/contracts.js";
|
|
2
|
+
export interface BiffOriginalProperty {
|
|
3
|
+
stream: string;
|
|
4
|
+
section: number;
|
|
5
|
+
id: number;
|
|
6
|
+
key: string;
|
|
7
|
+
unchanged: boolean;
|
|
8
|
+
}
|
|
9
|
+
/** Original identities are immutable and arrive once, in import order. Keep only
|
|
10
|
+
* the comparison result, never decoded property values, in caller-backed records. */
|
|
11
|
+
export declare class BiffOriginalProperties {
|
|
12
|
+
private readonly context;
|
|
13
|
+
private readonly charge;
|
|
14
|
+
private readonly storage;
|
|
15
|
+
private readonly indexes;
|
|
16
|
+
private readonly fallback;
|
|
17
|
+
private first;
|
|
18
|
+
private last;
|
|
19
|
+
private pending;
|
|
20
|
+
private closed;
|
|
21
|
+
private closing;
|
|
22
|
+
constructor(context: CapabilityContext, charge: (amount: number) => void);
|
|
23
|
+
private check;
|
|
24
|
+
private allocate;
|
|
25
|
+
private io;
|
|
26
|
+
private read;
|
|
27
|
+
private write;
|
|
28
|
+
add(property: BiffOriginalProperty): Promise<void>;
|
|
29
|
+
private decode;
|
|
30
|
+
get(stream: string, section: number, id: number): Promise<BiffOriginalProperty | undefined>;
|
|
31
|
+
values(): AsyncIterable<BiffOriginalProperty>;
|
|
32
|
+
close(): Promise<void>;
|
|
33
|
+
}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { IntegerTable } from "@poe-platform/safe-fs/storage";
|
|
2
|
+
import { SsconvertError } from "../spreadsheet-engine/contracts.js";
|
|
3
|
+
const streams = ['\u0005SummaryInformation', '\u0005DocumentSummaryInformation'];
|
|
4
|
+
/** Original identities are immutable and arrive once, in import order. Keep only
|
|
5
|
+
* the comparison result, never decoded property values, in caller-backed records. */
|
|
6
|
+
export class BiffOriginalProperties {
|
|
7
|
+
context;
|
|
8
|
+
charge;
|
|
9
|
+
storage;
|
|
10
|
+
indexes;
|
|
11
|
+
fallback;
|
|
12
|
+
first = 0;
|
|
13
|
+
last = 0;
|
|
14
|
+
pending = Promise.resolve();
|
|
15
|
+
closed = false;
|
|
16
|
+
closing;
|
|
17
|
+
constructor(context, charge) {
|
|
18
|
+
this.context = context;
|
|
19
|
+
this.charge = charge;
|
|
20
|
+
this.storage = context.createWorkingStorage?.();
|
|
21
|
+
if (this.storage) {
|
|
22
|
+
const backing = { allocate: (length) => this.allocate(length),
|
|
23
|
+
read: (at, length) => this.read(at, length), write: (at, bytes) => this.write(at, bytes) };
|
|
24
|
+
this.indexes = streams.map(() => new IntegerTable(backing, 64));
|
|
25
|
+
}
|
|
26
|
+
else
|
|
27
|
+
this.fallback = new Map();
|
|
28
|
+
context.own(() => this.close());
|
|
29
|
+
}
|
|
30
|
+
check() {
|
|
31
|
+
this.context.signal.throwIfAborted();
|
|
32
|
+
if (this.closed)
|
|
33
|
+
throw new SsconvertError('invalid-request', 'BIFF original properties are closed');
|
|
34
|
+
}
|
|
35
|
+
allocate(length) { this.check(); const position = this.storage.allocate(length); this.check(); return position; }
|
|
36
|
+
io(action) {
|
|
37
|
+
const result = this.pending.then(async () => { this.check(); const value = await action(); this.check(); return value; });
|
|
38
|
+
this.pending = result.then(() => undefined, () => undefined);
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
read(at, length) {
|
|
42
|
+
return this.io(async () => {
|
|
43
|
+
const bytes = await this.storage.read(at, length);
|
|
44
|
+
if (bytes.length !== length)
|
|
45
|
+
throw new SsconvertError('io', 'Truncated BIFF original property index');
|
|
46
|
+
return new Uint8Array(bytes);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
async write(at, bytes) {
|
|
50
|
+
const owned = new Uint8Array(bytes);
|
|
51
|
+
try {
|
|
52
|
+
await this.io(() => this.storage.write(at, owned));
|
|
53
|
+
}
|
|
54
|
+
finally {
|
|
55
|
+
owned.fill(0);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async add(property) {
|
|
59
|
+
this.check();
|
|
60
|
+
this.charge(1 + property.key.length);
|
|
61
|
+
const stream = streams.indexOf(property.stream);
|
|
62
|
+
if (stream < 0 || !Number.isInteger(property.section) || property.section < 0 || property.section > 0xffffffff ||
|
|
63
|
+
!Number.isInteger(property.id) || property.id < 0 || property.id > 0xffffffff)
|
|
64
|
+
throw new SsconvertError('invalid-request', 'Invalid BIFF original property identity');
|
|
65
|
+
if (this.fallback) {
|
|
66
|
+
const key = `${property.stream}:${property.section}:${property.id}`;
|
|
67
|
+
if (this.fallback.has(key))
|
|
68
|
+
throw new SsconvertError('invalid-request', 'Duplicate BIFF original property identity');
|
|
69
|
+
this.fallback.set(key, { ...property });
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (!this.first)
|
|
73
|
+
this.allocate(8);
|
|
74
|
+
const key = BigInt(property.section) << 32n | BigInt(property.id), index = this.indexes[stream];
|
|
75
|
+
if (await index.get(key) !== undefined)
|
|
76
|
+
throw new SsconvertError('invalid-request', 'Duplicate BIFF original property identity');
|
|
77
|
+
this.check();
|
|
78
|
+
const start = this.allocate(property.key.length * 2), buffer = new Uint8Array(Math.min(16384, property.key.length * 2)), view = new DataView(buffer.buffer);
|
|
79
|
+
try {
|
|
80
|
+
for (let at = 0; at < property.key.length;) {
|
|
81
|
+
const count = Math.min(buffer.length / 2, property.key.length - at);
|
|
82
|
+
for (let i = 0; i < count; i++)
|
|
83
|
+
view.setUint16(i * 2, property.key.charCodeAt(at + i), true);
|
|
84
|
+
await this.write(start + at * 2, buffer.subarray(0, count * 2));
|
|
85
|
+
at += count;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
finally {
|
|
89
|
+
buffer.fill(0);
|
|
90
|
+
}
|
|
91
|
+
const bytes = new Uint8Array(32), record = new DataView(bytes.buffer);
|
|
92
|
+
record.setUint32(8, property.section, true);
|
|
93
|
+
record.setUint32(12, property.id, true);
|
|
94
|
+
record.setFloat64(16, start, true);
|
|
95
|
+
record.setUint32(24, property.key.length, true);
|
|
96
|
+
record.setUint8(28, stream);
|
|
97
|
+
record.setUint8(29, property.unchanged ? 1 : 0);
|
|
98
|
+
const position = this.allocate(bytes.length);
|
|
99
|
+
await this.write(position, bytes);
|
|
100
|
+
if (this.last) {
|
|
101
|
+
record.setFloat64(0, position, true);
|
|
102
|
+
await this.write(this.last, bytes.subarray(0, 8));
|
|
103
|
+
}
|
|
104
|
+
else
|
|
105
|
+
this.first = position;
|
|
106
|
+
this.last = position;
|
|
107
|
+
await index.set(key, BigInt(position));
|
|
108
|
+
this.check();
|
|
109
|
+
}
|
|
110
|
+
async decode(record) {
|
|
111
|
+
const length = record.getUint32(24, true), start = record.getFloat64(16, true);
|
|
112
|
+
this.charge(length + 1);
|
|
113
|
+
let key = '';
|
|
114
|
+
for (let at = 0; at < length;) {
|
|
115
|
+
const count = Math.min(8192, length - at), bytes = await this.read(start + at * 2, count * 2), view = new DataView(bytes.buffer);
|
|
116
|
+
const units = new Uint16Array(count);
|
|
117
|
+
for (let i = 0; i < count; i++)
|
|
118
|
+
units[i] = view.getUint16(i * 2, true);
|
|
119
|
+
key += String.fromCharCode(...units);
|
|
120
|
+
at += count;
|
|
121
|
+
}
|
|
122
|
+
return { stream: streams[record.getUint8(28)], section: record.getUint32(8, true), id: record.getUint32(12, true), key, unchanged: record.getUint8(29) !== 0 };
|
|
123
|
+
}
|
|
124
|
+
async get(stream, section, id) {
|
|
125
|
+
this.check();
|
|
126
|
+
this.charge(1);
|
|
127
|
+
if (!Number.isInteger(section) || section < 0 || section > 0xffffffff || !Number.isInteger(id) || id < 0 || id > 0xffffffff)
|
|
128
|
+
return undefined;
|
|
129
|
+
if (this.fallback)
|
|
130
|
+
return this.fallback.get(`${stream}:${section}:${id}`);
|
|
131
|
+
const index = this.indexes[streams.indexOf(stream)];
|
|
132
|
+
if (!index)
|
|
133
|
+
return undefined;
|
|
134
|
+
const position = await index.get(BigInt(section) << 32n | BigInt(id));
|
|
135
|
+
this.check();
|
|
136
|
+
return position === undefined ? undefined : this.decode(new DataView((await this.read(Number(position), 32)).buffer));
|
|
137
|
+
}
|
|
138
|
+
async *values() {
|
|
139
|
+
this.check();
|
|
140
|
+
if (this.fallback) {
|
|
141
|
+
for (const property of this.fallback.values()) {
|
|
142
|
+
this.check();
|
|
143
|
+
yield property;
|
|
144
|
+
}
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
let position = this.first;
|
|
148
|
+
while (position) {
|
|
149
|
+
const record = new DataView((await this.read(position, 32)).buffer);
|
|
150
|
+
position = record.getFloat64(0, true);
|
|
151
|
+
yield await this.decode(record);
|
|
152
|
+
}
|
|
153
|
+
this.check();
|
|
154
|
+
}
|
|
155
|
+
close() {
|
|
156
|
+
this.closed = true;
|
|
157
|
+
this.fallback?.clear();
|
|
158
|
+
return this.closing ??= this.pending.then(async () => { await this.storage?.close(); });
|
|
159
|
+
}
|
|
160
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@poe-platform/safe-bash",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.818",
|
|
4
4
|
"description": "Extensible virtual shell with pluggable filesystems and streaming commands",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -1407,14 +1407,14 @@
|
|
|
1407
1407
|
"access": "public"
|
|
1408
1408
|
},
|
|
1409
1409
|
"dependencies": {
|
|
1410
|
-
"@poe-platform/safe-fs": "0.1.
|
|
1410
|
+
"@poe-platform/safe-fs": "0.1.818",
|
|
1411
1411
|
"pdf-lib": "1.17.1",
|
|
1412
1412
|
"@types/node": "^25.2.2",
|
|
1413
1413
|
"@formatjs/intl-numberformat": "9.4.0",
|
|
1414
1414
|
"@petamoriken/float16": "^3.9.3",
|
|
1415
1415
|
"@noble/hashes": "2.4.0",
|
|
1416
|
-
"@noble/ciphers": "2.4.0",
|
|
1417
1416
|
"pako": "3.0.1",
|
|
1417
|
+
"@noble/ciphers": "2.4.0",
|
|
1418
1418
|
"@kayahr/text-encoding": "^2.2.0",
|
|
1419
1419
|
"@sqlite.org/sqlite-wasm": "3.50.4-build1",
|
|
1420
1420
|
"parse5": "7.3.0",
|
|
@@ -1556,6 +1556,7 @@
|
|
|
1556
1556
|
"./dist/office-package/zip-source.js",
|
|
1557
1557
|
"./dist/office-package/zip-write-storage.js",
|
|
1558
1558
|
"./dist/office-package/zip.js",
|
|
1559
|
+
"./dist/pdf-ast/image.js",
|
|
1559
1560
|
"./dist/pdf-ast/index.js",
|
|
1560
1561
|
"./dist/pdf-ast/vendor/pdfjs-fonts.mjs",
|
|
1561
1562
|
"./dist/safe-bash-base-encoding-engine/base.js",
|
|
@@ -2600,6 +2601,7 @@
|
|
|
2600
2601
|
"./dist/spreadsheet-engine/engine.js",
|
|
2601
2602
|
"./dist/spreadsheet-engine/formatting.js",
|
|
2602
2603
|
"./dist/spreadsheet-engine/formatting/cell-text.js",
|
|
2604
|
+
"./dist/spreadsheet-engine/formatting/general-number.js",
|
|
2603
2605
|
"./dist/spreadsheet-engine/formatting/locale.js",
|
|
2604
2606
|
"./dist/spreadsheet-engine/formatting/number-format.js",
|
|
2605
2607
|
"./dist/spreadsheet-engine/formatting/numeric.js",
|
|
@@ -2742,7 +2744,6 @@
|
|
|
2742
2744
|
"./dist/spreadsheet-engine/rendering/print/font-normalization.js",
|
|
2743
2745
|
"./dist/spreadsheet-engine/rendering/print/font-shaping.js",
|
|
2744
2746
|
"./dist/spreadsheet-engine/rendering/print/formula-text.js",
|
|
2745
|
-
"./dist/spreadsheet-engine/rendering/print/general-number.js",
|
|
2746
2747
|
"./dist/spreadsheet-engine/rendering/print/harfbuzz/data.js",
|
|
2747
2748
|
"./dist/spreadsheet-engine/rendering/print/header-footer.js",
|
|
2748
2749
|
"./dist/spreadsheet-engine/rendering/print/hyphen-scripts.js",
|
|
@@ -2844,6 +2845,7 @@
|
|
|
2844
2845
|
"./dist/spreadsheet-format-xls/biff-property-index.js",
|
|
2845
2846
|
"./dist/spreadsheet-format-xls/biff-property-name.js",
|
|
2846
2847
|
"./dist/spreadsheet-format-xls/biff-property-names.js",
|
|
2848
|
+
"./dist/spreadsheet-format-xls/biff-property-observations.js",
|
|
2847
2849
|
"./dist/spreadsheet-format-xls/biff-property-range.js",
|
|
2848
2850
|
"./dist/spreadsheet-format-xls/biff-property-text.js",
|
|
2849
2851
|
"./dist/spreadsheet-format-xls/biff-property-transcode.js",
|
|
@@ -601,3 +601,18 @@ uses the converted structure directly. Type1 parsing admits lexer token growth,
|
|
|
601
601
|
decryption buffers, CID glyph/offset tables, fallback glyph copies, and every
|
|
602
602
|
recursive charstring conversion before allocation. Skipped comments do not
|
|
603
603
|
reserve token-sized buffers.
|
|
604
|
+
|
|
605
|
+
# Python / V8 stable sorting
|
|
606
|
+
|
|
607
|
+
`src/extract/text-sort.ts` adapts the TimSort implementation in V8
|
|
608
|
+
14.6.202.34 (`third_party/v8/builtins/array-sort.tq`), derived from Python.
|
|
609
|
+
Copyright (c) 2001–2018 Python Software Foundation; all rights reserved.
|
|
610
|
+
V8 contributions are copyright the V8 project authors. See
|
|
611
|
+
`licenses/PYTHON-PSF.txt` and `licenses/V8-BSD.txt` for the respective terms.
|
|
612
|
+
|
|
613
|
+
The adaptation replaces resident work and temporary arrays with resumable
|
|
614
|
+
record-read, record-write and comparison requests. Scalar run state and the
|
|
615
|
+
comparison decisions are retained; allocation, I/O and cancellation belong to
|
|
616
|
+
the driver.
|
|
617
|
+
|
|
618
|
+
Source: https://github.com/v8/v8/blob/14.6.202.34/third_party/v8/builtins/array-sort.tq
|