{"_id":"simple-zstd","_rev":"14-079e52a580b5f13de6e3810e1eb1c76e","name":"simple-zstd","dist-tags":{"next":"2.0.0-0","latest":"2.1.0"},"versions":{"1.0.0":{"name":"simple-zstd","version":"1.0.0","keywords":["zstd","zstandard","compress","compression","decompress","decompression","stream","pipe","pkg"],"author":{"name":"Tyler Stiene","email":"tystiene@gmail.com"},"license":"MIT","_id":"simple-zstd@1.0.0","maintainers":[{"name":"stieneee","email":"tystiene@gmail.com"}],"homepage":"https://github.com/Stieneee/simple-zstd#readme","bugs":{"url":"https://github.com/Stieneee/simple-zstd/issues"},"dist":{"shasum":"3d3014f990a1d9f6a0c6f5c0dcb0814c797b4661","tarball":"https://registry.npmjs.org/simple-zstd/-/simple-zstd-1.0.0.tgz","fileCount":9,"integrity":"sha512-e3z6Z7t4+Ltk+Fi3nhcAKZnZnoT6ZH/+W6w72ZsoFla7tsxK5x80Pcrmpu7YwKRD4B3yyxGqw9k5D8ygRQlNvw==","signatures":[{"sig":"MEUCICEHCSgaOl+lcMxYB9TmI4rFL6VXjIRNS9wwED+R9OsrAiEAm5Mds0LpS4x9f9VvMV4bLWp36FMCVcVepUutIej5/0I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28375,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdB7NeCRA9TVsSAnZWagAAMj8P/jOqUqsg+j5T1ce6C5IC\nLlfmspY2PG5ciTrGqn/FrYX4+L/KQiFcndnVPH32RH2PtlciHl+YEWigDiLy\nzNM2UDGzpgUfD+centyLpTqFHP+/BXaDI1XthYIC4rUW63Ou266tbgSQESLb\nuJcqvafUrT8yG98gpNdzJ35W8tziMemzKyEBYdac7EL1FsdZNFwXUtEvKZRC\nSlYPuce4ZLq0MnVNEsM/zmqi1E5UcAg+E6iWu55FS9cFsPWlAItVn+o/E1eJ\nz361x76KTpCTUZfSiSPLOUBoHIblhethhN0B6q5Hsp9stmCUh4fMSgi6iKyG\nmJzZuQPyypJu4QvSYmdw+aUbVtA2dihkBdlKshed7BIrekVECxZZX2hSCCE7\ncFjA8aE3BknKoVdOFq8T88k6YV+Vv0NK07xdlSUvjFHuJL56SlVV1gK2byNp\npg4aNyLbdQd+lazVXab/mOMRr99+nvTI/pg/UzAM88cPwFLEW0RnVpw8mu0e\n/XjBUbmmssVn5LBpAjS9jzaRn8ukTRcgkahWmgyfTHNYj5AXwrB1FQuUArz6\nxn48cWHLH0JLJCNmMUcf4ZHiJR4NbgWKdWt1n8RGsmgWeFAwMib4eFKc5mRe\nXjmVULCnTeMbCoCNRFea8n8s8uH/cCmm53mAOsf72dPAD+VgFLU4ax8ZSzXz\nGveS\r\n=PgZs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"d2692e75ed165b4c9d70b8cf2510c46e7e9c288f","scripts":{"test":"node test/test.js"},"_npmUser":{"name":"stieneee","email":"tystiene@gmail.com"},"repository":{"url":"git+https://github.com/Stieneee/simple-zstd.git","type":"git"},"_npmVersion":"6.9.0","description":"Node.js interface to the system installed zstd.","directories":{},"_nodeVersion":"10.16.0","dependencies":{"duplex-child-process":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^5.16.0","release-it":"^12.3.0","eslint-plugin-import":"^2.17.3","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/simple-zstd_1.0.0_1560785757683_0.9288117004170358","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"simple-zstd","version":"1.0.1","keywords":["zstd","zstandard","compress","compression","decompress","decompression","stream","pipe","pkg"],"author":{"name":"Tyler Stiene","email":"tystiene@gmail.com"},"license":"MIT","_id":"simple-zstd@1.0.1","maintainers":[{"name":"stieneee","email":"tystiene@gmail.com"}],"homepage":"https://github.com/Stieneee/simple-zstd#readme","bugs":{"url":"https://github.com/Stieneee/simple-zstd/issues"},"dist":{"shasum":"ec63f040c641dfbe52db465cc993abb6b341d2a2","tarball":"https://registry.npmjs.org/simple-zstd/-/simple-zstd-1.0.1.tgz","fileCount":9,"integrity":"sha512-AE3aNXhrsjbIn6OBo4CT9YmMVnQS+bv0Hcg4uGsMTs991BiC5KSS7ut7EcapTDktuqLzxtDmysouEhZLgXRyZw==","signatures":[{"sig":"MEYCIQDb042pL11BOTBif2a7oyszMoR4i0ibNYFcLthEnSaypAIhAILWYdBDqgcoWqnCFoXUf0lnik9/56HzuumQ++uwlfV9","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28379,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdFEK5CRA9TVsSAnZWagAAMvsP/10xxOEHQVs6Pb2n9+UK\nMqprn41tlGnuRRftc0Jv2tk3oxmLV7nfzgrJtyqWSyqtgClSnEVGXXMo6bRv\nWx2EJ3vS486oltMrIy24wZhV0LTi2nAIqHyCndWDD3QAAd59AYyXAGB5JA9d\n78b6a6dFcz9JjgJ9DCSslCc2JmjdJbGB3s5glX/6KxFkuOM7JxT5scPnpG7z\nANojEYUVzSoSauPwRZV12cy922fj92VW4d1N2sCBN/Bn8U5h80e/BKbzzAId\nee+1TDgPbszIRoOxyH6SI5kkfAVeQSS9Ly+OI4TpyHEQVYJ30wq/WtRhqNVF\nFt7o8FOSeinqkq2mEEByGbPSVOs4WPRI6qzJP4jTQAkjp1czVmURDXexQyi+\nET9gmtoraPgjEEhm7s7PRlsgugE4h02Jy5bGg7p9mqdTH8e/+PnZ+NeI4IWd\nqkrUd7OuX7hE3jMHQj9+DqCFyy7ggD4aTEZOXOYzZJbHcoNZli3GnCCnMeWj\nN78mFGTtYsFFkN4frPzOJNr8KQH8xM2S1vAQ6ZZDRvd36iZfURYZJfCqql/Y\nCnQ7aU0A7G8YP4KkcdsBBZRPaxrLzNKGsxbtoN8Auzz1hgAcHofVrmTKfv6k\nVMO1aECwCZufKXDu9drqnxQlFsCs303dIS9LzbuWiNlhobQezQyJ8rNwcNDi\nF3eC\r\n=dT9c\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"08a739f6b49f8588d299e136acd8c8c0fd037ab5","scripts":{"test":"node test/test.js"},"_npmUser":{"name":"stieneee","email":"tystiene@gmail.com"},"repository":{"url":"git+https://github.com/Stieneee/simple-zstd.git","type":"git"},"_npmVersion":"6.9.0","description":"Node.js interface to the system installed zstd.","directories":{},"_nodeVersion":"10.16.0","dependencies":{"duplex-child-process":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^5.16.0","release-it":"^12.3.0","eslint-plugin-import":"^2.17.3","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/simple-zstd_1.0.1_1561608888718_0.6334333400159691","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"simple-zstd","version":"1.1.0","keywords":["zstd","zstandard","compress","compression","decompress","decompression","stream","pipe","pkg","gzip-maybe","maybe","decompress-maybe"],"author":{"name":"Tyler Stiene","email":"tystiene@gmail.com"},"license":"MIT","_id":"simple-zstd@1.1.0","maintainers":[{"name":"stieneee","email":"tystiene@gmail.com"}],"homepage":"https://github.com/Stieneee/simple-zstd#readme","bugs":{"url":"https://github.com/Stieneee/simple-zstd/issues"},"dist":{"shasum":"e34d925ba68a7e751e98fd69908501121b84f925","tarball":"https://registry.npmjs.org/simple-zstd/-/simple-zstd-1.1.0.tgz","fileCount":6,"integrity":"sha512-SKDwfWliGe8YxJSyuQpVAUQmpR11S6cGIvuzf0K4ce1T8pW+fJ6S+q/z7OMHURKUSPY8SzXzFZ5olmx3nR4r7w==","signatures":[{"sig":"MEUCIQD1dg7tq5w7uU0SUR41A9IrwOESGlsZOG4AtK5mN7+2JwIgA5c23zk9e/zQl6eRYzkm0F10+9O4kli78aB7xi1sshY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5606,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdTDe2CRA9TVsSAnZWagAAztoP/0ZO2XGqQ2ZVjXjbo2PN\nkobXiR984kB7feuza1ojeVSa7fTz+58bs5Cmcj7ZFbVdzep92zYauadw0tIZ\nhujeXlyE4vYZIVfuruKderBOIA4a1QPuIXwN4KwlyHsIhiwC1SzXzV7bOVle\nP6wo+LqG7jau7GvYgzGNxpdNo7ukc49hCXazixuydw6i4bgSV3PVlVVlz7Ni\nDuNV4OL24sMp0TV8DSRy6LC6+nk3wQXshiyY+j5TW04pSuuDl5QQaM5r8Acc\nQ/Z7zgiyego5iPVDtX+JVxGww8eI9gBzU2GoEXrZYO9MPxAAAhJ7ns/PPpyr\nlqu130fDK99N+S+ntbbKfgXL9l9a+6h3jW/ssO5E+yMuCzOfcm12Gu3wc09H\nlJJP8fuQQzOywfw+CDS+0Kcq8trr87XtG4ktFIsimXhkFlxy7I06XxbsL9LT\nyxhjjGkvjW2JhajHD1TmLpnVHs0exG5wUXJbc5vBGt49MsYww3DxGLr5G4Hg\nExqeXPlAhsI5+h0tq8XgFrbu4PaeRtJem/wAs0mRkrIUvEpu1bJBKrubUpEv\ngKnjLUTc7bDkCDbOpJf7NLmw+FPA+rbIWdCJ0yajZQdFUtJvU7IDyNkcp082\n5q/tGarciH9k8bQfSU4RErF1eWVeZIWJsS4CN06U1PocxxixWmSNkjRiDNWl\no5py\r\n=A4zu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"70d39bb09fe37ccf4d16c21bdf5257ea448ba95f","scripts":{"test":"node test/test.js"},"_npmUser":{"name":"stieneee","email":"tystiene@gmail.com"},"repository":{"url":"git+https://github.com/Stieneee/simple-zstd.git","type":"git"},"_npmVersion":"6.10.2","description":"Node.js interface to the system installed zstd.","directories":{},"_nodeVersion":"10.16.1","dependencies":{"is-zst":"^1.0.0","through2":"^3.0.1","peek-stream":"^1.1.3","duplex-child-process":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^6.1.0","release-it":"^12.3.5","eslint-plugin-import":"^2.18.2","eslint-config-airbnb-base":"^13.2.0"},"_npmOperationalInternal":{"tmp":"tmp/simple-zstd_1.1.0_1565276085787_0.16564647456834947","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"simple-zstd","version":"1.1.1","keywords":["zstd","zstandard","compress","compression","decompress","decompression","stream","pipe","pkg","gzip-maybe","maybe","decompress-maybe"],"author":{"name":"Tyler Stiene","email":"tystiene@gmail.com"},"license":"MIT","_id":"simple-zstd@1.1.1","maintainers":[{"name":"stieneee","email":"tystiene@gmail.com"}],"homepage":"https://github.com/Stieneee/simple-zstd#readme","bugs":{"url":"https://github.com/Stieneee/simple-zstd/issues"},"dist":{"shasum":"d9c95de35a89d6429b2636bae2b7751f7433e1f4","tarball":"https://registry.npmjs.org/simple-zstd/-/simple-zstd-1.1.1.tgz","fileCount":6,"integrity":"sha512-p4m6Zj8bJrQGlB5NHX+tQCoS8IkYK1yZarSotsjadKL4ZwS3mp2tV0q6yCJWaSPkPVABK+viGD18CZAyE9GuFg==","signatures":[{"sig":"MEUCIQC4Sd53O4MB08TKyRsV4COO4QBPHzRlDSnCB++yboYQ/AIgR6ShJJ0ynt710GuBr6xmkT1TTloSamAOcVwsO73jfoU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5707,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdiTj/CRA9TVsSAnZWagAAI40P/RBW02uDnzcfFHcn2oNC\nd8zVYAPs9PFRYIwlfhJQXGn/sqBVk4HGj51saKC4HaZqJrhTSZkmELinjw7U\nkuUwCXb2QhJ6u/vWBuemOxL6ewapxmfsDsoLx+rzPw54y958BeQnVfaWjCP/\nhOdWhw+bmSmpKwUuGw3OpoLcliSUgppXEy/nvrlXNoCxDD/z0GCoQw/+05Yj\nRcD3faeFx6apCS6bDYSD/PYeEV1HJ88hXTT1/+aMcam0praAHdUp69+GJEqW\nBvRITqYljc3OKqci1wfgxow94nGChZw8k3w7v9Z3u/gm9uAYf45+7px+XjyP\nALo/rp6KbpDZEzBplcBKKCt2YjHk/GszwhfF3zMExbTCreRgNzJOr+sYON7r\n0HgE0l9c2+UgRYPwavU3Xtatm83xRVoTe+c2kWvWlrO5L3TDcG2j/VI46MI6\nv6HHbok1181ugcWMJQBBRA0kQekvsThyksDF4Y4V4vyVCqkznvxI7U5Qu5Kw\nE9F3MW6jPoRyYMsehkqaGkMxhp7ysi85KTkv8WuFlNjJZnYGLS+57yvG/dym\nZN5rajGw7GxXfuzGwYbXLckbBbL1JVoeZLEgNqkpeUoayr9b0NBbV8aV3AAv\nydl073ctRL2oXtKBrwPV5xBITMAVhjnQKo2V2jLXEt6iZ6DgWwU5iSY+6ZcT\nBjqn\r\n=/wXs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"c113a4528ff38f6ea3a8264b32244448a80f05d0","scripts":{"test":"node test/test.js"},"_npmUser":{"name":"stieneee","email":"tystiene@gmail.com"},"repository":{"url":"git+https://github.com/Stieneee/simple-zstd.git","type":"git"},"_npmVersion":"6.9.0","description":"Node.js interface to the system installed zstd.","directories":{},"_nodeVersion":"10.16.3","dependencies":{"is-zst":"^1.0.0","through2":"^3.0.1","peek-stream":"^1.1.3","duplex-child-process":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^6.4.0","release-it":"^12.4.1","eslint-plugin-import":"^2.18.2","eslint-config-airbnb-base":"^14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/simple-zstd_1.1.1_1569274111390_0.886591167533574","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"simple-zstd","version":"1.1.2","keywords":["zstd","zstandard","compress","compression","decompress","decompression","stream","pipe","pkg","gzip-maybe","maybe","decompress-maybe"],"author":{"url":"https://tylerstiene.ca","name":"Tyler Stiene","email":"tystiene@gmail.com"},"license":"MIT","_id":"simple-zstd@1.1.2","maintainers":[{"name":"stieneee","email":"tystiene@gmail.com"}],"contributors":[{"url":"https://github.com/jbarkovic","name":"Joshua Barkovic","email":"joshbarkovic@gmail.com"}],"homepage":"https://github.com/Stieneee/simple-zstd#readme","bugs":{"url":"https://github.com/Stieneee/simple-zstd/issues"},"dist":{"shasum":"23a5e2d6349b7017163d7701046bb7182b321796","tarball":"https://registry.npmjs.org/simple-zstd/-/simple-zstd-1.1.2.tgz","fileCount":6,"integrity":"sha512-e1RxUnM59psm40KjR+f+GUFqP80TIDzSju0jMJmFy2IGZgCGHNMSEAODJvVjA/Hl9rQOUU+DjNG3FbxK+nvcGw==","signatures":[{"sig":"MEUCIBS5Z7UkFuh2XElAd/dsrY2Vkamw5gkVUyl41kdc7gxHAiEA0HxjOaTt4lKs3MCos0PFpfyTQYcmqDSrYreuPgwammU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7262,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJetcRNCRA9TVsSAnZWagAALmsP/izbgHjH0Xl/g7M0yUyp\nzHYbzQ3zALgpnf8kOjRhR6ShcODrT4ulska9h97JX9vK7qp8W+PtAQvZpwG/\nOPwM1K5dTNvYvDazOu7V9ScNNwRUpKWCIg/ZzGP9iIiQHSE0ha7gOyESgNPA\nsxmDVsUBTCPr6evUpOqvXMoG6D6dgD6DuH5GhQ8Q1zka8JFmlDZiUn7H4Kp8\nt8yqepoPDOFtuhBU/4WXf2SBVw0s2DSlSsbDVB+Ihqg4ErBokP3LBFJBG7jV\n0G+YoMC6AlZQVjD0oPwiOLLaCLowTsgJpq9c9ZdUUC6AOaez5361OPiKDGB4\nY1Gl+Ym1vmpjgvFz/MGvm/DTVtCTYdnL75yryxhljm4ougfY8E/IAY9zMCCL\nRDHkYYyER29Ycx6+h8J+pBJ4MFVM8NobGpNBmp2XuRIY01Bo8DZxtwk/Zrq7\nFeS9Gas6qVYFy3sV/UJkxevogsCVjg9NSZ7W8ZFp2krZAPbi62yYEbQkuYXl\nZtaW4VPU2YgTH3rsK2qDSR32WsLbkAWvCPOtizNUEgbvEtMgP6OUOVkiKkyB\noG2AnUDgj3UgKkE9OIM00tPxtVIJ4YR9q/GWQ+ilUE3m81VM3wusKrJv13Xc\nfyUDsqAW9wD33TaeCE8aInyLTNj4v8jH4bUl/rDOvSCYuERMvMufMeAQIqDB\nScLr\r\n=6flg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"26c5b4728352a99792cfa1c79ad6f84f2d820fce","scripts":{"test":"mocha"},"_npmUser":{"name":"stieneee","email":"tystiene@gmail.com"},"repository":{"url":"git+https://github.com/Stieneee/simple-zstd.git","type":"git"},"_npmVersion":"6.14.5","description":"Node.js interface to the system installed zstd.","directories":{},"_nodeVersion":"10.20.1","dependencies":{"is-zst":"^1.0.0","through2":"^3.0.1","peek-stream":"^1.1.3","process-streams":"^1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","brake":"^1.0.1","mocha":"^7.1.2","eslint":"^6.8.0","chai-fs":"^2.0.0","release-it":"^12.4.1","eslint-plugin-import":"^2.20.2","eslint-config-airbnb-base":"^14.1.0"},"_npmOperationalInternal":{"tmp":"tmp/simple-zstd_1.1.2_1588970573212_0.28546912318947837","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"simple-zstd","version":"1.3.0","keywords":["zstd","zstandard","compress","compression","decompress","decompression","stream","pipe","pkg","gzip-maybe","maybe","decompress-maybe"],"author":{"url":"https://tylerstiene.ca","name":"Tyler Stiene","email":"tystiene@gmail.com"},"license":"MIT","_id":"simple-zstd@1.3.0","maintainers":[{"name":"stieneee","email":"tystiene@gmail.com"}],"contributors":[{"url":"https://github.com/jbarkovic","name":"Joshua Barkovic","email":"joshbarkovic@gmail.com"}],"homepage":"https://github.com/Stieneee/simple-zstd#readme","bugs":{"url":"https://github.com/Stieneee/simple-zstd/issues"},"dist":{"shasum":"213ad2f70e2d839bb00c67e6756c7f950107cfe5","tarball":"https://registry.npmjs.org/simple-zstd/-/simple-zstd-1.3.0.tgz","fileCount":6,"integrity":"sha512-v1P9zzvXSUwlBUf7oZImXBFWsCWKVFmZnugTSGpZ5u3jCoXma2DvpdcQtWhht0FVPYFM19mni/osxgcKaPvYwA==","signatures":[{"sig":"MEUCIQCXxXB0rj2DHTx2xxJFNBrVSdz+LEO43+bqup/ZxcZ1FgIgayHtczRiGxN8sY4eVPchV5TdG7bDBeflpJpjfoprwgs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7282,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZAAMCRA9TVsSAnZWagAA9HQP/1/+3UfyKi3VXeXcPget\nnRHRNLQ35d+L09wEvHHjolFuT/QDOhxQBSu1wgbIVXuQs3SzNSAn9BVF4a0w\nPfnCNAX2Y6JIwDf8k9N9s6/dz60GSvj1Y6PFhWFUmrsvfOjCcLlWLnqk74qP\nTkAMvGJYwEdPV7gaUGImqFtm6YpwzS74JHqElVUQ8suCRO5KWYsP0oUesspH\noYbterujPjLyDTI+UeSayFaI47F64M4GXzxSGthpeo4mU42D6cStea7Vw0Vm\nTv7nJYT6fButB3B9Hpgkv5tvet1lqznphjjA/wM1jvLLeJTbiMiJ23hj9csq\nC3RFZ8WV2nsA6IbjJnFLeopTQd8VkXb0/x6z2JUFjiNhoGophKoUToYPFNT5\ngSzleRmXwl00GluN9Lc8GdgE4Zw9vFi1m7wPvAwP9remDvpNE5LDtJPhElvw\nleN4WEmEFQLmseHQKPjpJvWbHPIu3KOJXtQdfm+dG4o5YoIcigf8EV+dNm/i\nmT0VE4xNWQTWWPoReOk10xKsrzSzMh70vbqdjtrw3mfKUcng/kEbdyKNtnbO\nhqGVASsGH7Z6Du4LNjGGAsDZ1B3ms+z0ghpPKqaSBdDYW0qYFLxBM+daLjew\n/1QVTW0AcE8HUoalzeGEcqPsRz5tOx4BCQ8NO0RngOGZ4HDorL8H5d9iej9f\nW5a2\r\n=m4wD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"00dc7ab4ba5dd9bf596949c795d82c42e82d0cc0","scripts":{"test":"mocha"},"_npmUser":{"name":"stieneee","email":"tystiene@gmail.com"},"repository":{"url":"git+https://github.com/Stieneee/simple-zstd.git","type":"git"},"_npmVersion":"6.14.11","description":"Node.js interface to the system installed zstd.","directories":{},"_nodeVersion":"14.16.0","dependencies":{"is-zst":"^1.0.0","through2":"^4.0.2","peek-stream":"^1.1.3","process-streams":"^1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.4","brake":"^1.0.1","mocha":"^8.3.2","eslint":"^7.23.0","chai-fs":"^2.0.0","release-it":"^14.5.0","eslint-plugin-import":"^2.22.1","eslint-config-airbnb-base":"^14.2.1"},"_npmOperationalInternal":{"tmp":"tmp/simple-zstd_1.3.0_1617166347908_0.3154247484045496","host":"s3://npm-registry-packages"}},"1.3.1":{"name":"simple-zstd","version":"1.3.1","keywords":["zstd","zstandard","compress","compression","decompress","decompression","stream","pipe","pkg","gzip-maybe","maybe","decompress-maybe"],"author":{"url":"https://tylerstiene.ca","name":"Tyler Stiene","email":"tystiene@gmail.com"},"license":"MIT","_id":"simple-zstd@1.3.1","maintainers":[{"name":"stieneee","email":"tystiene@gmail.com"}],"contributors":[{"url":"https://github.com/jbarkovic","name":"Joshua Barkovic","email":"joshbarkovic@gmail.com"}],"homepage":"https://github.com/Stieneee/simple-zstd#readme","bugs":{"url":"https://github.com/Stieneee/simple-zstd/issues"},"dist":{"shasum":"1142e23261c3bd2d52ecda85a05cbb8660403b3e","tarball":"https://registry.npmjs.org/simple-zstd/-/simple-zstd-1.3.1.tgz","fileCount":6,"integrity":"sha512-/YMNx0bhHEDrqq9SKNqd11WfZlSTDUkzUDKyGGXZQF5nUVEDwq+qQ5Ho4cK62ggBskN4qwdjX+UY4pwVXGcGKw==","signatures":[{"sig":"MEUCIQDU6gRbxlXAV/JkXKGhwQzzMmyILC2HH3qhdfWLPwrZHQIgaD3uQz7zUzRCQXxXsamcGaTjpoE125VcVJt3w8w6wDI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7283,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5hsgCRA9TVsSAnZWagAAVJgP/2M4K4lxWFXBV1247tDf\neGn3fo1H5bbpHV9ihI9JQf//n6HiZN9e4C9XApmlVTLE0jNi0mqMaU60pAtz\n6Fg1ESl6L3Q32wbZwnSvoBDlay19B+Zjcak640tGeyklKB00UtwA6DDqKrD9\n7p66zsmbqT9Jve+x6M2VCCgS5BAZVyTVrwPl+4dsUV8mh1S0WnIcknkndSlC\nf1nZwpOVqZyrgyL7H4WTGgOQwqiAAbCvSD0VqVuQgPF5MEZNcwe9JS38POAJ\nU14rdq+N9U1jS2kQDjAr34zJUH73hwXi2xV7CvTaK8ygSezZ+TZlg1UZqew+\nCzs7hbMnS/WvhkkiWyPXX9f2gb49Dbo3s9nJgpVvVv3EGsFrNgN27SdEWVf3\nZ1qeKCknKrlW9PD2TAGKpOUyCvQO1/NWwy+qjy/9jdrZ+7wuXs0AXAmNR2VB\nlSFsGaEwEeckjMoGKL3osg0BA6uY6pXTHSKbKp8hQ6i0uasVXSKq9eiHvw2y\nB6mObhCyytrUY9uu8JiwJeW8bWWfH6YM+UmVb5dTlSRIgWwy80ww223uIOa2\nxmPfrB+aZ+JwRmHssvk82qmiL7Shi+N6WTPZuXhj84i+8nOFwJTIYNQNo881\nNw5ElhUrDZMhb/pJsURf95qbFYBX/E03UYfuHRWcWJMZD5aPzBmHBM4RSRcR\nRH7l\r\n=OgXK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"05ad9474078dfe1969250400ca6488dedcdc50e2","scripts":{"test":"mocha"},"_npmUser":{"name":"stieneee","email":"tystiene@gmail.com"},"repository":{"url":"git+https://github.com/Stieneee/simple-zstd.git","type":"git"},"_npmVersion":"7.5.4","description":"Node.js interface to the system installed zstd.","directories":{},"_nodeVersion":"14.17.1","dependencies":{"is-zst":"^1.0.0","through2":"^4.0.2","peek-stream":"^1.1.3","process-streams":"^1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.4","brake":"^1.0.1","mocha":"^9.0.2","eslint":"^7.30.0","chai-fs":"^2.0.0","release-it":"^14.10.0","eslint-plugin-import":"^2.23.4","eslint-config-airbnb-base":"^14.2.1"},"_npmOperationalInternal":{"tmp":"tmp/simple-zstd_1.3.1_1625692960216_0.47235465681989397","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"simple-zstd","version":"1.4.0","keywords":["zstd","zstandard","compress","compression","decompress","decompression","stream","pipe","pkg","gzip-maybe","maybe","decompress-maybe"],"author":{"url":"https://tylerstiene.ca","name":"Tyler Stiene","email":"tystiene@gmail.com"},"license":"MIT","_id":"simple-zstd@1.4.0","maintainers":[{"name":"stieneee","email":"tystiene@gmail.com"}],"contributors":[{"url":"https://github.com/jbarkovic","name":"Joshua Barkovic","email":"joshbarkovic@gmail.com"}],"homepage":"https://github.com/Stieneee/simple-zstd#readme","bugs":{"url":"https://github.com/Stieneee/simple-zstd/issues"},"dist":{"shasum":"b8fba1b1b41aa43183263f4c960a9c63899d4cb6","tarball":"https://registry.npmjs.org/simple-zstd/-/simple-zstd-1.4.0.tgz","fileCount":6,"integrity":"sha512-9zBNnu7MkwRiZm7voFUX7ehCcLO2d1FmJ2RWEVsN8Exw2tVYK9k/0/8WjPUmSmtoHOyoFTkHHaOLuPSwkgFmrA==","signatures":[{"sig":"MEYCIQDUhvuAdnfDCq3dBrSxUa9dAIj1+q9vjZNM8AsIspNpVQIhAMlrVj3mVQilf69wd197eLbmrsVE3RG4SO6a31RWl49e","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8002,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhMqAhCRA9TVsSAnZWagAA1O0QAIWmm1uRa4sHYPnUUYkF\nMLtFTKSniAPHa3eE+MZUMMcWlPLbwb9EBADcN7K0YSn0UMxeL3YvVkR7Z+Fv\nrfX6kJlStOgtL8t2I8yuSKdxh4QKK1nLAks0A71cfAjz8T0IyooKfmhXsPwQ\nE49qXZSQOwb28kgKzTmf8hbQzTTLVP0DWDO6eDJAL+kJv24g64sV+z+b9YG5\nVKua7VYEut8Fw1EC1BbsqwTDJOy+Iw3rm/Qq0hmsPCStNbN1RF6dhdZ53Zwp\nEz80mYIVGWjT4NwsX185GwYgHBUYbMZ5COImwJFUnsgzgOONHUZTTjwupE2s\nIX9KvjSKQ9nMzd2kkvGsF0sfFqrb6LHjD3R1N4Mv9cHU17a3xYqpRffKOAOj\nNnXwz1DYAsxqwnFXHii2qZL7e7kk4T35YNqYipJMiesK7RWdhCMtZBLL6i5e\nKLMyKphuTPJpQ7VDYxg7wgYvIB1mMXiWLNs9u+R4zTvSHOjVxsl+vwxi2ae8\nCtpSGJE1t4dZdmZ0SCgzsB4sQMcHV2dT2XLFcOWC4mrgq5W6gMfZSfc/X/rP\nc2x1qp6esgR+joVMMC5knHJkC5LL7PJKNmLqwPXb13kZTwnRW+cDL2zDclC6\npvOrf0OPMUEnxPd/cBUuVlhewTB8k9Fjgs5NcFPoLIKQylAp4YDw4RPg0H4O\n9yjt\r\n=i8Vm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"50e7be300241a9233223d0a23f03a6d358b5946b","scripts":{"test":"mocha"},"_npmUser":{"name":"stieneee","email":"tystiene@gmail.com"},"repository":{"url":"git+https://github.com/Stieneee/simple-zstd.git","type":"git"},"_npmVersion":"7.20.1","description":"Node.js interface to the system installed zstd.","directories":{},"_nodeVersion":"14.17.5","dependencies":{"is-zst":"^1.0.0","through2":"^4.0.2","peek-stream":"^1.1.3","process-streams":"^1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.4","brake":"^1.0.1","mocha":"^9.1.0","eslint":"^7.32.0","chai-fs":"^2.0.0","release-it":"^14.11.5","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.24.2","eslint-config-airbnb-base":"^14.2.1"},"_npmOperationalInternal":{"tmp":"tmp/simple-zstd_1.4.0_1630707745512_0.2926988145605509","host":"s3://npm-registry-packages"}},"2.0.0-0":{"name":"simple-zstd","version":"2.0.0-0","keywords":["zstd","zstandard","compress","compression","decompress","decompression","stream","pipe","pkg","gzip-maybe","maybe","decompress-maybe"],"author":{"url":"https://tylerstiene.ca","name":"Tyler Stiene","email":"tystiene@gmail.com"},"license":"MIT","_id":"simple-zstd@2.0.0-0","maintainers":[{"name":"stieneee","email":"tystiene@gmail.com"}],"contributors":[{"url":"https://github.com/jbarkovic","name":"Joshua Barkovic","email":"joshbarkovic@gmail.com"}],"homepage":"https://github.com/Stieneee/simple-zstd#readme","bugs":{"url":"https://github.com/Stieneee/simple-zstd/issues"},"dist":{"shasum":"947f3f339c8e3a6cda26fa13a5062f2c2366bf18","tarball":"https://registry.npmjs.org/simple-zstd/-/simple-zstd-2.0.0-0.tgz","fileCount":24,"integrity":"sha512-kJRf6zyOlZD+e3hd/8XDFdHZmLj9z1+y6RdyI8jnN+3ViD+EPHsQrTdu+h+6d+CYdhdpfVRhxXCOK3t08V9/Dw==","signatures":[{"sig":"MEUCIQCgq2pKcPpc5tdgjf/ycpl/YX6pXpekBQuYBhMKU0oTAwIgX1mSi+Zq6kCI3nLIrnly0PO5RrI1MgtHTXSfZ0ux4yY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":142795,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi7/91ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqCIw//V/QYd76i6cXYmoS45GlCgVXR2An31vXxKhK1NK7aEAeCnmlw\r\nsR6QX9UiUot9RAHeyg1uTtzIeZQLRoNlY/vGyeq31NBipve/PFjrGHiEA8d/\r\nxS81sK6SUCJEhHRL39ARlDc4a3bHo67nUjT27UxHXcnznLfBEgiFtW3EQscA\r\nGZw/ovXKVRXT1FRlWW/vtv291DG6JTrLtcg1kkT9oBR5qM3wcCri+9RfWPWv\r\nsELweO/vQfvnv920vgdgmnl4+D1TCPo7qeYJHnP2G1IObFmp8DIrrnuKXK70\r\njmJSuUEzyACQL359mph74ecNyjGniCesj44nowdQYiPxIqT/rGaN08qAkyLj\r\nghmu+OEmTOEYJKt2JL+xeBgYl+VqG0PGy6z64hR3fdn2id6EB+rlyGvKf812\r\no83irlk7WnKWQhMJ3sGl7IsDj5A5FHx7G18NWUY1u9L0llrKKbJ9quK/Y+sX\r\n/7SNPMfoseW2XSeHhOIr/r35DWvxvW5JJXwaHI7f5LupmINQpH84341wyt8Y\r\nxMkC5YtIBUEVVHhroX2j3jfczMQ0GkrBr6qQicu16WDVKpO7rCieX523GmSX\r\n3I+qnzh1uBMmxJ15sYuIYZgZwcFF/C/VU2jmBrXrE6UnQPQEgjQ2KUuZpeq4\r\nRo2+AbPtx61sCCueS/qSEFZE7jNRdunUlYw=\r\n=P4gM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"e00bc65cc30342ecc80b47ba052b0790b3fcbe6e","scripts":{"test":"mocha","test-ci":"mocha --exit","coverage":"nyc --reporter=html --reporter=text npm run test","test-debug":"DEBUG=SimpleZSTD,SimpleZSTDQueue mocha"},"_npmUser":{"name":"stieneee","email":"tystiene@gmail.com"},"repository":{"url":"git+https://github.com/Stieneee/simple-zstd.git","type":"git"},"_npmVersion":"8.1.4","description":"Node.js interface to the system installed zstd.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"nyc":"^15.1.0","tmp":"^0.2.1","debug":"^4.3.4","is-zst":"^1.0.0","through2":"^4.0.2","peek-stream":"^1.1.3","tmp-promise":"^3.0.3","process-streams":"^1.0.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.3.6","brake":"^1.0.1","mocha":"^10.0.0","eslint":"^8.19.0","chai-fs":"^2.0.0","release-it":"^15.1.1","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.26.0","mocker-data-generator":"^2.12.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/simple-zstd_2.0.0-0_1659895668866_0.8270103050090722","host":"s3://npm-registry-packages"}},"1.4.1":{"name":"simple-zstd","version":"1.4.1","keywords":["zstd","zstandard","compress","compression","decompress","decompression","stream","pipe","pkg","gzip-maybe","maybe","decompress-maybe"],"author":{"url":"https://tylerstiene.ca","name":"Tyler Stiene","email":"tystiene@gmail.com"},"license":"MIT","_id":"simple-zstd@1.4.1","maintainers":[{"name":"stieneee","email":"tystiene@gmail.com"}],"contributors":[{"url":"https://github.com/jbarkovic","name":"Joshua Barkovic","email":"joshbarkovic@gmail.com"}],"homepage":"https://github.com/Stieneee/simple-zstd#readme","bugs":{"url":"https://github.com/Stieneee/simple-zstd/issues"},"dist":{"shasum":"afe22475f928a5e7b4fcd5ab374280b04b201ec5","tarball":"https://registry.npmjs.org/simple-zstd/-/simple-zstd-1.4.1.tgz","fileCount":22,"integrity":"sha512-C1ahZ3JEzHT1He7QKvdMnrxvcX8gy2AlpJuMvulijNEY2P4scxAMcD5R0yTntIFoT1iAubVSNE/Bpg+UKSqYWQ==","signatures":[{"sig":"MEUCIQDBZtzojkVLZhCsEoe0kXL1sk1Rc19sJ2UWH5AGfJInOgIgUkLI/CIM2yiAAgyqqLq9YtB/oPwU+bvYFZixIARjGzE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":127100,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjT2ApACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpaVg//Wt0pZ4S8r0juYvLgH5IRynQ2EzbV6T+Hy5kv7OnbYGESyAkV\r\nTwa/Ae3ie6f8YDq+UzZ8ECJUlTw8ij6ZBxNlLbIp27ToxWwRz5ybgjj1ONar\r\n/SPpqUqRrW8iekp7hSWXqgHHdOPTXcYpsen4aFEnuFRP3Zdr+lhmLryJL4l5\r\noFuwdN4oqjOPP0ueTmpKGj92WQlG0RoFDJP8Jd6mI5kgC2Ky8Lc0N0FoUxNP\r\n/EmnaME0Wnlj+6dW5EI8seKDbmGFuehTJMgHQF8h1oAKPmLnJwCYUmRcKcAa\r\n2RW5qgDVvcBxwdCaBjduWSKjMjh9yxIuMLK/AdxbPCSE05P1b6PtGjhf4aFO\r\nB1e4w78DmtJUwbOrltpq6fDVfWzKgkSiJ7KUjBFmz4O5/YyM6b2Z22mS2FeM\r\nf9ryAbImfRvGRc2zL1ekiWdjhDfEOl7GU56SFuSSuApXZEEFHZMuMN1JfRrZ\r\niS080eRsSNCNDm3CoN1d9Gir4dugY3hI+RvMgNMgFRbLUqV65ymxaTYYWuta\r\nmjZQPfoMUtdDiv0as5ohVreOfbQvcGFmP4oQiCI0tVq04YBDixHJ9YZnFvhN\r\nnBWe8CjTChyZ+FfDCDctlKgDEN4m0k89Z8UPecmicLaKhy7m/LXvsOEYdTvk\r\nt+7OeQNirMP2B33o2AXcdeV0tzze6qUU124=\r\n=gSzx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"616b282483dad20376b8476c94bd76bfbfe5749e","scripts":{"test":"mocha"},"_npmUser":{"name":"stieneee","email":"tystiene@gmail.com"},"repository":{"url":"git+https://github.com/Stieneee/simple-zstd.git","type":"git"},"_npmVersion":"8.10.0","description":"Node.js interface to the system installed zstd.","directories":{},"_nodeVersion":"18.9.1","dependencies":{"is-zst":"^1.0.0","through2":"^4.0.2","peek-stream":"^1.1.3","process-streams":"^1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.6","brake":"^1.0.1","mocha":"^10.1.0","eslint":"^8.25.0","chai-fs":"^2.0.0","release-it":"^15.5.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.26.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/simple-zstd_1.4.1_1666146345560_0.44296302303449697","host":"s3://npm-registry-packages"}},"1.4.2":{"name":"simple-zstd","version":"1.4.2","keywords":["zstd","zstandard","compress","compression","decompress","decompression","stream","pipe","pkg","gzip-maybe","maybe","decompress-maybe"],"author":{"url":"https://tylerstiene.ca","name":"Tyler Stiene","email":"tystiene@gmail.com"},"license":"MIT","_id":"simple-zstd@1.4.2","maintainers":[{"name":"stieneee","email":"tystiene@gmail.com"}],"contributors":[{"url":"https://github.com/jbarkovic","name":"Joshua Barkovic","email":"joshbarkovic@gmail.com"}],"homepage":"https://github.com/Stieneee/simple-zstd#readme","bugs":{"url":"https://github.com/Stieneee/simple-zstd/issues"},"dist":{"shasum":"4f5b7b05dfd2930b03092eb0c0cd13a44bad4b34","tarball":"https://registry.npmjs.org/simple-zstd/-/simple-zstd-1.4.2.tgz","fileCount":22,"integrity":"sha512-kGYEvT33M5XfyQvvW4wxl3eKcWbdbCc1V7OZzuElnaXft0qbVzoIIXHXiCm3JCUki+MZKKmvjl8p2VGLJc5Y/A==","signatures":[{"sig":"MEYCIQCJ9q8h7GP9vc1LqJAXt1avb0izna2wY0yO+Fs0mfnYHwIhAPLZD6YP+XFdSZZVbaktcnVBDzQxZGakgBWRHsg6eJHa","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":127100,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjT2DyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqpXA//WEheByXVoqR222+mcCZl+G7mMIN/NWkUmkyUgxc7GL7Od/p5\r\n8bGW19UgecKtY5uknuj8G9xRXBvwent8dldusE8flZ+HKQ++7gsUbL7eoFqd\r\n9RzlNRJICb2hyNn75u15pbrk+J+VXQMIg5Tm/aEVeZuXWd0GzGnMN5WGL6Mf\r\nSKw448P+ETbQCgM3tCD5aRpF5jRy+yTkyO92s5sXCIaKh+IAzkX3o/1F0/vm\r\np/UdTUwsyERPBVedLpv1kpJFnSw7YzLf6PUZiN7u8C9gemdSSVoYmTUNC2aw\r\nz+9O/sVp+v6B4MgWpwl6AaB3jwt0LIRNp+ct+4vXxU+AhS+QRWjo0M69+TnT\r\nZv9Pq6oX4U+Z3kbibXTuo/TJFdovoMi2vQAYw47bIVdX6xjsmU3InWOmjHD3\r\n1xf1cWvdWMpH9lJuUTbJXQYbCm64dRQyNcF75IwYGnRe5fXVGe1Syp0mXof1\r\nn7vmwVUVPYENOIjz9jvue8XMQnx7yiipd2DeJdXE3vGO80+Gx/BM1ncozo8V\r\nGP1YgBJUZe25qlsFHNtCbjGxbnXOJFlPot+rUaAOwJoFLXPIbiG1IuTsGH2N\r\nKU/JuGy0/bm7o+07d5l9aOx9XoImtT/pjPdR62QgXl6j3fQnKPNOvSeqmX1V\r\nCetloAviYADfpZEdGbvpTZJUQOoOEfCnQ28=\r\n=Iaq/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"ed685d045b10e0d7d6090265c32ae4f98a3bf487","scripts":{"test":"mocha"},"_npmUser":{"name":"stieneee","email":"tystiene@gmail.com"},"repository":{"url":"git+https://github.com/Stieneee/simple-zstd.git","type":"git"},"_npmVersion":"8.10.0","description":"Node.js interface to the system installed zstd.","directories":{},"_nodeVersion":"18.9.1","dependencies":{"is-zst":"^1.0.0","through2":"^4.0.2","peek-stream":"^1.1.3","process-streams":"^1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.6","brake":"^1.0.1","mocha":"^10.1.0","eslint":"^8.25.0","chai-fs":"^2.0.0","release-it":"^15.5.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.26.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/simple-zstd_1.4.2_1666146546512_0.25861045325439","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"simple-zstd","version":"2.0.0","keywords":["zstd","zstandard","compress","compression","decompress","decompression","stream","pipe","pkg","gzip-maybe","maybe","decompress-maybe"],"author":{"url":"https://tylerstiene.ca","name":"Tyler Stiene","email":"tystiene@gmail.com"},"license":"MIT","_id":"simple-zstd@2.0.0","maintainers":[{"name":"stieneee","email":"tystiene@gmail.com"}],"contributors":[{"url":"https://github.com/jbarkovic","name":"Joshua Barkovic","email":"joshbarkovic@gmail.com"}],"homepage":"https://github.com/Stieneee/simple-zstd#readme","bugs":{"url":"https://github.com/Stieneee/simple-zstd/issues"},"dist":{"shasum":"155b34e0322ec436527945109d961de96db784c8","tarball":"https://registry.npmjs.org/simple-zstd/-/simple-zstd-2.0.0.tgz","fileCount":30,"integrity":"sha512-kFf+30as+c40jlLjzC2CGSA3hvO6SD3dBCQtD4ItAhZPnviIxmBiYvCa+Ry2jAVRAYBUWMLNhJQe1rG23Arhhw==","signatures":[{"sig":"MEUCIQC6w1MtPBrCFEczD3SZ+9jHtGLIN89+HfbOX646niO0ogIgVWc/CjwBknZwYbiybpXZfHZVU7pee5nCE2Wcajik69s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/simple-zstd@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":152598},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"8724a5a5344d249841d5481514633b6b50d5ac75","scripts":{"lint":"eslint . --ext .ts","test":"timeout --signal=TERM --kill-after=5s 120s node --test --require ts-node/register test/test.ts || true","build":"tsc","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","test-ci":"timeout --signal=TERM --kill-after=5s 120s node --test --require ts-node/register test/test.ts && exit 0 || exit 1","coverage":"timeout --signal=TERM --kill-after=5s 120s node --test --experimental-test-coverage --require ts-node/register test/test.ts || true","prepublish":"tsc","test-debug":"DEBUG=SimpleZSTD,SimpleZSTDQueue timeout --signal=TERM --kill-after=5s 120s node --test --require ts-node/register test/test.ts || true","format:check":"prettier --check \"src/**/*.ts\" \"test/**/*.ts\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:53c625db-fd91-4c36-9250-1d564b09b0b3"}},"repository":{"url":"git+https://github.com/Stieneee/simple-zstd.git","type":"git"},"_npmVersion":"11.6.1","description":"Node.js interface to the system installed zstd.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"tmp":"^0.2.1","debug":"^4.3.4","is-zst":"^1.0.0","tmp-promise":"^3.0.3"},"_hasShrinkwrap":false,"packageManager":"npm@11.6.2","devDependencies":{"eslint":"^9.39.1","globals":"^16.5.0","ts-node":"^10.9.1","prettier":"^3.6.2","release-it":"^19.0.6","typescript":"^5.9.3","@types/node":"^24.10.0","@types/debug":"^4.1.12","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.46.3","@typescript-eslint/eslint-plugin":"^8.46.3","@release-it/conventional-changelog":"^10.0.1"},"_npmOperationalInternal":{"tmp":"tmp/simple-zstd_2.0.0_1762920488425_0.41232581587996386","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"simple-zstd","version":"2.1.0","description":"Node.js interface to the system installed zstd.","main":"dist/src/index.js","types":"dist/src/index.d.ts","engines":{"node":">=22.0.0"},"scripts":{"build":"tsc","prepublish":"tsc","lint":"eslint .","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","format:check":"prettier --check \"src/**/*.ts\" \"test/**/*.ts\"","test":"node --test --require ts-node/register test/**/*.test.ts || true","test-debug":"DEBUG=SimpleZSTD,SimpleZSTDQueue timeout -t 120s -- node --test --require ts-node/register test/**/*.test.ts || true","test-ci":"node --test --require ts-node/register test/**/*.test.ts && exit 0 || exit 1","coverage":"node --test --experimental-test-coverage --require ts-node/register test/**/*.test.ts || true"},"repository":{"type":"git","url":"git+https://github.com/Stieneee/simple-zstd.git"},"keywords":["zstd","zstandard","compress","compression","decompress","decompression","stream","pipe","pkg","gzip-maybe","maybe","decompress-maybe"],"author":{"name":"Tyler Stiene","email":"tystiene@gmail.com","url":"https://tylerstiene.ca"},"contributors":[{"name":"Joshua Barkovic","email":"joshbarkovic@gmail.com","url":"https://github.com/jbarkovic"}],"license":"MIT","bugs":{"url":"https://github.com/Stieneee/simple-zstd/issues"},"homepage":"https://github.com/Stieneee/simple-zstd#readme","devDependencies":{"@eslint/js":"^10.0.1","@release-it/conventional-changelog":"^10.0.1","@types/debug":"^4.1.12","@types/node":"^25.5.0","@typescript-eslint/eslint-plugin":"^8.57.0","@typescript-eslint/parser":"^8.57.0","eslint":"^10.0.3","eslint-config-prettier":"^10.1.8","globals":"^17.4.0","prettier":"^3.8.1","release-it":"^19.0.6","ts-node":"^10.9.1","typescript":"^5.9.3"},"dependencies":{"debug":"^4.3.4","is-zst":"^1.0.0","tmp-promise":"^3.0.3"},"packageManager":"npm@11.6.2","gitHead":"0bf7d327e269f7a1affff4e72f1ebc0d717bbce2","_id":"simple-zstd@2.1.0","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-pYzmKWl167db0EHoczlsSpmyjvZ7OinXciHicDEtlHjSKZlo1hPz6tXSyOfS84QIrbWPYT0XW9tx24YtGdQ6cA==","shasum":"3a771374144c50fe357c4782630419a757b1e2b5","tarball":"https://registry.npmjs.org/simple-zstd/-/simple-zstd-2.1.0.tgz","fileCount":36,"unpackedSize":135413,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/simple-zstd@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDjUJKmuZ+HovR7APgp6Q0kSg3j/IuLzWWsLpVy1Vci3wIhAL/mgWYcmIXnfhwRHd/KMOdilcNjbNoX3o1O9t6xn/Gb"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:53c625db-fd91-4c36-9250-1d564b09b0b3"}},"directories":{},"maintainers":[{"name":"stieneee","email":"tystiene@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/simple-zstd_2.1.0_1773461956733_0.5975862634958224"},"_hasShrinkwrap":false}},"time":{"created":"2019-06-17T15:35:57.683Z","modified":"2026-03-14T04:19:17.174Z","1.0.0":"2019-06-17T15:35:57.771Z","1.0.1":"2019-06-27T04:14:48.881Z","1.1.0":"2019-08-08T14:54:45.902Z","1.1.1":"2019-09-23T21:28:31.522Z","1.1.2":"2020-05-08T20:42:53.399Z","1.3.0":"2021-03-31T04:52:28.124Z","1.3.1":"2021-07-07T21:22:40.396Z","1.4.0":"2021-09-03T22:22:25.620Z","2.0.0-0":"2022-08-07T18:07:49.065Z","1.4.1":"2022-10-19T02:25:45.702Z","1.4.2":"2022-10-19T02:29:06.699Z","2.0.0":"2025-11-12T04:08:08.622Z","2.1.0":"2026-03-14T04:19:16.882Z"},"bugs":{"url":"https://github.com/Stieneee/simple-zstd/issues"},"author":{"name":"Tyler Stiene","email":"tystiene@gmail.com","url":"https://tylerstiene.ca"},"license":"MIT","homepage":"https://github.com/Stieneee/simple-zstd#readme","keywords":["zstd","zstandard","compress","compression","decompress","decompression","stream","pipe","pkg","gzip-maybe","maybe","decompress-maybe"],"repository":{"type":"git","url":"git+https://github.com/Stieneee/simple-zstd.git"},"description":"Node.js interface to the system installed zstd.","contributors":[{"name":"Joshua Barkovic","email":"joshbarkovic@gmail.com","url":"https://github.com/jbarkovic"}],"maintainers":[{"name":"stieneee","email":"tystiene@gmail.com"}],"readme":"# simple-zstd\n\n[![Build Status](https://travis-ci.org/Stieneee/simple-zstd.svg?branch=master)](https://travis-ci.org/Stieneee/simple-zstd)\n[![License](https://badgen.net/badge/license/MIT/blue)](https://choosealicense.com/licenses/mit/)\n\nNode.js interface to system-installed Zstandard (zstd) with TypeScript support.\n\n## Overview\n\nsimple-zstd is a lightweight wrapper around the system-installed zstd binary, inspired by simple-git's approach of wrapping system binaries rather than building against native libraries. This provides a more stable and portable solution at the cost of requiring zstd to be installed on the system.\n\n### Features\n\n- **TypeScript Support**: Full TypeScript definitions and modern ES modules\n- **Multiple Interfaces**: Static functions, buffer methods, and class-based API with process pooling\n- **Promise-Based**: All operations return promises for modern async/await patterns\n- **Stream & Buffer**: Support for both streaming and buffer-based compression/decompression\n- **Smart Decompression**: Automatic detection and passthrough of non-compressed data\n- **Dictionary Support**: Create and use compression dictionaries via Buffer or file path\n- **Process Pooling**: Pre-spawn child processes for latency-sensitive applications\n- **Node.js 18+**: Built on modern Node.js features\n\n## Requirements\n\n- **Node.js**: >= 18.0.0\n- **zstd**: Must be installed and available on system PATH\n\n## Installation\n\n### Install zstd\n\n**Ubuntu/Debian:**\n\n```bash\nsudo apt install zstd\n```\n\n**macOS:**\n\n```bash\nbrew install zstd\n```\n\n**Windows:**\n\n```bash\nchoco install zstd\n# or download from: https://github.com/facebook/zstd/releases\n```\n\n### Install simple-zstd\n\n```bash\nnpm install simple-zstd\n```\n\n## API Reference\n\n### Types\n\n```typescript\nimport { Duplex } from \"node:stream\";\nimport { SpawnOptions } from \"node:child_process\";\nimport { DuplexOptions } from \"node:stream\";\n\ninterface ZSTDOpts {\n  dictionary?: Buffer | { path: string }; // Compression dictionary\n  zstdOptions?: string[]; // CLI args to pass to zstd (e.g., ['--ultra'])\n  spawnOptions?: SpawnOptions; // Node.js child_process spawn options\n  streamOptions?: DuplexOptions; // Node.js stream options\n}\n\ninterface PoolOpts {\n  compressQueueSize?: number; // Number of pre-spawned compression processes\n  decompressQueueSize?: number; // Number of pre-spawned decompression processes\n  compressQueue?: {\n    compLevel?: number;\n    dictionary?: Buffer | { path: string };\n    zstdOptions?: string[];\n    spawnOptions?: SpawnOptions;\n    streamOptions?: DuplexOptions;\n  };\n  decompressQueue?: {\n    dictionary?: Buffer | { path: string };\n    zstdOptions?: string[];\n    spawnOptions?: SpawnOptions;\n    streamOptions?: DuplexOptions;\n  };\n}\n\ninterface CreateDictionaryOpts {\n  trainingFiles: Array<string | Buffer>; // Training corpus as file paths and/or in-memory Buffers\n  maxDictSize?: number; // Optional max dictionary size in bytes\n  zstdOptions?: string[]; // Additional zstd options for dictionary training\n  spawnOptions?: SpawnOptions; // Node.js child_process spawn options\n}\n```\n\n### Static Functions\n\n```typescript\n// Compression\ncompress(compLevel: number, opts?: ZSTDOpts): Promise<Duplex>\ncompressBuffer(buffer: Buffer, compLevel: number, opts?: ZSTDOpts): Promise<Buffer>\ncreateDictionary(opts: CreateDictionaryOpts): Promise<Buffer>\n\n// Decompression (with automatic passthrough for non-compressed data)\ndecompress(opts?: ZSTDOpts): Promise<Duplex>\ndecompressBuffer(buffer: Buffer, opts?: ZSTDOpts): Promise<Buffer>\n```\n\n### Class: SimpleZSTD\n\nThe `SimpleZSTD` class provides process pooling for better performance when performing many compression/decompression operations.\n\n```typescript\nclass SimpleZSTD {\n  // Static factory method (recommended)\n  static create(poolOptions?: PoolOpts): Promise<SimpleZSTD>;\n\n  // Instance methods\n  compress(compLevel?: number): Promise<Duplex>;\n  compressBuffer(buffer: Buffer, compLevel?: number): Promise<Buffer>;\n  decompress(): Promise<Duplex>;\n  decompressBuffer(buffer: Buffer): Promise<Buffer>;\n  destroy(): void;\n\n  // Statistics\n  get queueStats(): {\n    compress: { hits: number; misses: number };\n    decompress: { hits: number; misses: number };\n  };\n}\n```\n\n**Note:** Use the static `create()` method instead of the constructor. The constructor is private to ensure proper async initialization.\n\n## Usage\n\n### Example 1: Stream Interface (TypeScript)\n\n```typescript\nimport fs from \"node:fs\";\nimport { pipeline } from \"node:stream/promises\";\nimport { compress, decompress } from \"simple-zstd\";\n\nasync function copyFile() {\n  const c = await compress(3); // Compression level 3\n  const d = await decompress();\n\n  await pipeline(\n    fs.createReadStream(\"example.txt\"),\n    c,\n    d,\n    fs.createWriteStream(\"example_copy.txt\")\n  );\n\n  console.log(\"File compressed and decompressed!\");\n}\n\ncopyFile().catch(console.error);\n```\n\n### Example 2: Buffer Interface (TypeScript)\n\n```typescript\nimport { compressBuffer, decompressBuffer } from \"simple-zstd\";\n\nasync function processBuffer() {\n  const buffer = Buffer.from(\"this is a test\");\n\n  // Compress with level 3\n  const compressed = await compressBuffer(buffer, 3);\n  console.log(\n    `Original: ${buffer.length} bytes, Compressed: ${compressed.length} bytes`\n  );\n\n  // Decompress\n  const decompressed = await decompressBuffer(compressed);\n  console.log(decompressed.toString()); // \"this is a test\"\n}\n\nprocessBuffer().catch(console.error);\n```\n\n### Example 3: CommonJS Usage\n\n```javascript\nconst fs = require(\"fs\");\nconst { pipeline } = require(\"node:stream/promises\");\nconst { compress, decompress } = require(\"simple-zstd\");\n\nasync function copyFile() {\n  const c = await compress(3);\n  const d = await decompress();\n\n  await pipeline(\n    fs.createReadStream(\"example.txt\"),\n    c,\n    d,\n    fs.createWriteStream(\"example_copy.txt\")\n  );\n\n  console.log(\"File compressed and decompressed!\");\n}\n\ncopyFile().catch(console.error);\n```\n\n### Example 4: Class Interface with Process Pooling\n\nThe `SimpleZSTD` class pre-spawns zstd processes for lower latency. This is ideal for high-throughput scenarios.\n\n```typescript\nimport fs from \"node:fs\";\nimport { pipeline } from \"node:stream/promises\";\nimport { SimpleZSTD } from \"simple-zstd\";\n\nasync function processMultipleFiles() {\n  // Create instance with process pools using static factory method\n  const zstd = await SimpleZSTD.create({\n    compressQueueSize: 2, // Pre-spawn 2 compression processes\n    decompressQueueSize: 2, // Pre-spawn 2 decompression processes\n    compressQueue: {\n      compLevel: 3, // Default compression level for pool\n    },\n  });\n\n  try {\n    // Process first file with pool default (level 3)\n    const c1 = await zstd.compress();\n    const d1 = await zstd.decompress();\n\n    await pipeline(\n      fs.createReadStream(\"file1.txt\"),\n      c1,\n      d1,\n      fs.createWriteStream(\"file1_copy.txt\")\n    );\n\n    console.log(\"File 1 processed!\");\n\n    // Process second file with custom compression level (bypasses pool)\n    const c2 = await zstd.compress(19); // Override with level 19\n    const d2 = await zstd.decompress();\n\n    await pipeline(\n      fs.createReadStream(\"file2.txt\"),\n      c2,\n      d2,\n      fs.createWriteStream(\"file2_copy.txt\")\n    );\n\n    console.log(\"File 2 processed!\");\n\n    // Check pool statistics\n    console.log(\"Pool stats:\", zstd.queueStats);\n    // Example output: { compress: { hits: 1, misses: 1 }, decompress: { hits: 2, misses: 0 } }\n    // Note: compress shows 1 miss because we used custom level for file2\n  } finally {\n    // Clean up all child processes\n    zstd.destroy();\n  }\n}\n\nprocessMultipleFiles().catch(console.error);\n```\n\n### Example 5: Using Compression Dictionaries\n\n```typescript\nimport fs from \"node:fs\";\nimport { compressBuffer, decompressBuffer, SimpleZSTD } from \"simple-zstd\";\n\n// Static functions with dictionaries\nasync function useDictionaryStatic() {\n  const dictionary = fs.readFileSync(\"my-dictionary.zstd\");\n  const data = Buffer.from(\"Sample text to compress\");\n\n  // Compress with dictionary\n  const compressed = await compressBuffer(data, 3, { dictionary });\n\n  // Decompress with same dictionary\n  const decompressed = await decompressBuffer(compressed, { dictionary });\n\n  console.log(decompressed.toString()); // \"Sample text to compress\"\n}\n\n// Class with dictionaries (supports Buffer or file path)\nasync function useDictionaryClass() {\n  const dictionary = fs.readFileSync(\"my-dictionary.zstd\");\n\n  const zstd = await SimpleZSTD.create({\n    compressQueue: {\n      compLevel: 3,\n      dictionary, // Can be Buffer or { path: '/path/to/dict' }\n    },\n    decompressQueue: {\n      dictionary, // Same dictionary for decompression\n    },\n  });\n\n  try {\n    const data = Buffer.from(\"Sample text to compress\");\n    const compressed = await zstd.compressBuffer(data);\n    const decompressed = await zstd.decompressBuffer(compressed);\n    console.log(decompressed.toString()); // \"Sample text to compress\"\n  } finally {\n    zstd.destroy();\n  }\n}\n\nuseDictionaryStatic().catch(console.error);\n```\n\n**Dictionary Caching:** When using dictionary Buffers with static functions, simple-zstd automatically caches the temporary dictionary files using SHA-256 hashing. This means:\n- ✅ Multiple calls with the **same dictionary Buffer** reuse the same temp file\n- ✅ No performance penalty for repeated operations with dictionaries\n- ✅ Automatic cleanup when the dictionary is no longer in use\n- ✅ **Fixes exponential slowdown** when compressing thousands of items with dictionaries\n\n```typescript\nconst dict = fs.readFileSync('my-dict.zstd');\n\n// These 1000 operations will only create ONE temp file total\nfor (let i = 0; i < 1000; i++) {\n  await compressBuffer(data[i], 3, { dictionary: dict });\n}\n// Temp file is automatically cleaned up when no longer referenced\n```\n\n### Example 6: Creating a Dictionary from Training Files\n\n```typescript\nimport path from \"node:path\";\nimport { createDictionary, compressBuffer, decompressBuffer } from \"simple-zstd\";\n\nasync function trainAndUseDictionary() {\n  const trainingFiles = [\n    path.join(\"sample\", \"training-files\", \"user-0.json\"),\n    path.join(\"sample\", \"training-files\", \"user-1.json\"),\n    path.join(\"sample\", \"training-files\", \"user-2.json\"),\n    Buffer.from('{\"event\":\"user-signup\",\"country\":\"Canada\"}'),\n  ];\n\n  const dictionary = await createDictionary({\n    trainingFiles,\n    maxDictSize: 112640,\n  });\n\n  const payload = Buffer.from('{\"event\":\"user-login\",\"country\":\"Canada\"}');\n  const compressed = await compressBuffer(payload, 3, { dictionary });\n  const decompressed = await decompressBuffer(compressed, { dictionary });\n\n  console.log(decompressed.toString()); // {\"event\":\"user-login\",\"country\":\"Canada\"}\n}\n\ntrainAndUseDictionary().catch(console.error);\n```\n\n### Example 7: Smart Decompression (Auto-detect)\n\nThe decompression functions automatically detect if data is zstd-compressed and pass through uncompressed data unchanged.\n\n```typescript\nimport { decompressBuffer } from \"simple-zstd\";\n\nasync function smartDecompress() {\n  const plainText = Buffer.from(\"not compressed\");\n  const result = await decompressBuffer(plainText);\n\n  // Non-compressed data passes through unchanged\n  console.log(result.toString()); // \"not compressed\"\n}\n\nsmartDecompress().catch(console.error);\n```\n\n## Advanced Options\n\n### Custom zstd Options\n\nPass any command-line option to the zstd process via `zstdOptions`:\n\n```typescript\nimport { compress } from \"simple-zstd\";\n\n// Use ultra compression (level 22)\nconst stream = await compress(22, {\n  zstdOptions: [\"--ultra\"],\n});\n\n// Multiple options\nconst stream2 = await compress(19, {\n  zstdOptions: [\"--ultra\", \"--long\"],\n});\n```\n\n### Spawn Options\n\nControl the child process spawn behavior:\n\n```typescript\nimport { compress } from \"simple-zstd\";\n\nconst stream = await compress(3, {\n  spawnOptions: {\n    cwd: \"/custom/working/directory\",\n    env: { ...process.env, CUSTOM_VAR: \"value\" },\n  },\n});\n```\n\n### Stream Options\n\nCustomize the Duplex stream behavior:\n\n```typescript\nimport { compress } from \"simple-zstd\";\n\nconst stream = await compress(3, {\n  streamOptions: {\n    highWaterMark: 64 * 1024, // 64KB buffer\n  },\n});\n```\n\n### Stream Events\n\nAll compression and decompression streams emit the following events:\n\n```typescript\nimport { compress } from \"simple-zstd\";\n\nconst stream = await compress(3);\n\n// Standard Duplex stream events\nstream.on(\"data\", (chunk: Buffer) => {\n  console.log(\"Received chunk:\", chunk.length, \"bytes\");\n});\n\nstream.on(\"end\", () => {\n  console.log(\"Stream finished\");\n});\n\nstream.on(\"error\", (err: Error) => {\n  console.error(\"Stream error:\", err);\n});\n\n// zstd-specific events\nstream.on(\"stderr\", (message: string) => {\n  // zstd process stderr output\n  console.warn(\"zstd stderr:\", message);\n});\n\nstream.on(\"exit\", (code: number, signal: NodeJS.Signals | null) => {\n  // zstd process exit event\n  console.log(\"zstd process exited with code:\", code);\n});\n```\n\n**Event Reference:**\n\n- `data` - Emitted when compressed/decompressed data is available\n- `end` - Emitted when the stream has finished processing\n- `error` - Emitted on stream errors or if zstd exits with non-zero code\n- `stderr` - Emitted when the zstd process writes to stderr (warnings, debug info)\n- `exit` - Emitted when the underlying zstd process exits\n\n## Debugging\n\nEnable debug output using the `DEBUG` environment variable:\n\n```bash\n# Debug simple-zstd operations\nDEBUG=SimpleZSTD node app.js\n\n# Debug process queue\nDEBUG=SimpleZSTDQueue node app.js\n\n# Debug both\nDEBUG=SimpleZSTD,SimpleZSTDQueue node app.js\n```\n\n## Migrating to v2\n\nVersion 2.0 is a complete rewrite with TypeScript support and a modernized API. Here's what you need to know:\n\n### Breaking Changes\n\n#### 1. Node.js Version Requirement\n\n**v1:** No explicit requirement\n**v2:** Requires Node.js >= 18.0.0\n\n```bash\n# Check your Node version\nnode --version  # Should be v18.0.0 or higher\n```\n\n#### 2. Function Names Changed\n\n| v1 Function             | v2 Function                                  |\n| ----------------------- | -------------------------------------------- |\n| `ZSTDCompress(level)`   | `compress(level, opts?)`                     |\n| `ZSTDDecompress()`      | `decompress(opts?)`                          |\n| `ZSTDDecompressMaybe()` | `decompress(opts?)` _(built-in auto-detect)_ |\n\n**v1 Code:**\n\n```javascript\nconst { ZSTDCompress, ZSTDDecompress } = require(\"simple-zstd\");\n\nconst compressStream = ZSTDCompress(3);\nconst decompressStream = ZSTDDecompress();\n```\n\n**v2 Code:**\n\n```javascript\nconst { compress, decompress } = require(\"simple-zstd\");\n\nconst compressStream = await compress(3);\nconst decompressStream = await decompress();\n```\n\n#### 3. All Functions Now Return Promises\n\n**v1:** Functions returned streams synchronously\n**v2:** Functions return `Promise<Duplex>` and must be awaited\n\n**v1 Code:**\n\n```javascript\nfs.createReadStream(\"file.txt\")\n  .pipe(ZSTDCompress(3))\n  .pipe(ZSTDDecompress())\n  .pipe(fs.createWriteStream(\"output.txt\"));\n```\n\n**v2 Code:**\n\n```javascript\nconst c = await compress(3);\nconst d = await decompress();\n\nawait pipeline(\n  fs.createReadStream(\"file.txt\"),\n  c,\n  d,\n  fs.createWriteStream(\"output.txt\")\n);\n```\n\n#### 4. \"Maybe\" Functionality Now Built-in\n\n**v1:** Had separate `ZSTDDecompressMaybe()` function\n**v2:** All decompression functions auto-detect and pass through non-compressed data\n\n**v1 Code:**\n\n```javascript\nconst { ZSTDDecompressMaybe } = require(\"simple-zstd\");\n\nstream.pipe(ZSTDDecompressMaybe()).pipe(output);\n```\n\n**v2 Code:**\n\n```javascript\nconst { decompress } = require(\"simple-zstd\");\n\nconst d = await decompress(); // Automatically detects compressed data\npipeline(stream, d, output);\n```\n\n#### 5. Options Structure Changed\n\n**v1:** Limited options as separate parameters\n**v2:** Unified options object with TypeScript types\n\n**v1 Code:**\n\n```javascript\n// v1 had limited customization\nZSTDCompress(3, streamOptions);\n```\n\n**v2 Code:**\n\n```javascript\nawait compress(3, {\n  dictionary: Buffer.from(\"...\"),\n  zstdOptions: [\"--ultra\"],\n  spawnOptions: { cwd: \"/tmp\" },\n  streamOptions: { highWaterMark: 64 * 1024 },\n});\n```\n\n### New Features in v2\n\n#### TypeScript Support\n\n```typescript\nimport { compress, decompress, SimpleZSTD } from \"simple-zstd\";\nimport type { ZSTDOpts, PoolOpts } from \"simple-zstd\";\n```\n\n#### Buffer Interface\n\nNew convenience methods for working with buffers directly:\n\n```typescript\nimport { compressBuffer, decompressBuffer } from \"simple-zstd\";\n\nconst compressed = await compressBuffer(Buffer.from(\"data\"), 3);\nconst decompressed = await decompressBuffer(compressed);\n```\n\n#### Process Pooling with SimpleZSTD Class\n\nPre-spawn processes for better performance with async factory method:\n\n```typescript\nimport { SimpleZSTD } from \"simple-zstd\";\n\nconst zstd = await SimpleZSTD.create({\n  compressQueueSize: 2,\n  decompressQueueSize: 2,\n  compressQueue: {\n    compLevel: 3,\n    dictionary: Buffer.from(\"...\"), // Optional\n  },\n});\n\n// Use pooled processes\nconst stream = await zstd.compress();\n\n// Or override compression level for specific operations\nconst stream2 = await zstd.compress(19);\n\n// Clean up when done\nzstd.destroy();\n```\n\n#### Dictionary Support\n\nFull support for compression dictionaries:\n\n```typescript\nconst dictionary = fs.readFileSync(\"dict.zstd\");\n\nawait compress(3, { dictionary });\nawait compressBuffer(data, 3, { dictionary });\n```\n\n### Migration Examples\n\n#### Simple Stream Compression\n\n**v1:**\n\n```javascript\nconst { ZSTDCompress, ZSTDDecompress } = require(\"simple-zstd\");\n\nfs.createReadStream(\"input.txt\")\n  .pipe(ZSTDCompress(3))\n  .pipe(fs.createWriteStream(\"output.zst\"));\n```\n\n**v2:**\n\n```javascript\nconst { compress } = require(\"simple-zstd\");\nconst { pipeline } = require(\"node:stream/promises\");\n\nconst c = await compress(3);\nawait pipeline(\n  fs.createReadStream(\"input.txt\"),\n  c,\n  fs.createWriteStream(\"output.zst\")\n);\n```\n\n#### Error Handling\n\n**v1:**\n\n```javascript\nZSTDCompress(3).on(\"error\", (err) => console.error(err));\n```\n\n**v2:**\n\n```javascript\ntry {\n  const c = await compress(3);\n  c.on(\"error\", (err) => console.error(err));\n} catch (err) {\n  console.error(\"Failed to create stream:\", err);\n}\n```\n\n#### With Custom Options\n\n**v1:**\n\n```javascript\n// Limited options in v1\nconst stream = ZSTDCompress(3, { highWaterMark: 64 * 1024 });\n```\n\n**v2:**\n\n```javascript\nconst stream = await compress(3, {\n  streamOptions: { highWaterMark: 64 * 1024 },\n  zstdOptions: [\"--ultra\"],\n});\n```\n\n### Upgrade Checklist\n\n- [ ] Update Node.js to >= 18.0.0\n- [ ] Replace `ZSTDCompress` with `compress`\n- [ ] Replace `ZSTDDecompress` with `decompress`\n- [ ] Replace `ZSTDDecompressMaybe` with `decompress` (same function)\n- [ ] Add `await` to all compression/decompression calls\n- [ ] Update imports to use new function names\n- [ ] Consider using buffer methods (`compressBuffer`/`decompressBuffer`) for simpler use cases\n- [ ] Consider using `SimpleZSTD` class for high-throughput scenarios\n- [ ] Update error handling for async/await pattern\n- [ ] Update tests to handle promises\n\n## Performance Benchmarks\n\nThis package has been benchmarked against other zstd packages.\nAt this time is appears to be the fastest package for processing large files.\n\n[Benchmark Tests](https://github.com/Stieneee/node-compression-test)\n\n## Performance Considerations\n\nThis package spawns a child process for each compression or decompression operation. While this provides excellent performance for large files, child process creation overhead can become a bottleneck when processing many small files rapidly.\n\n**Solution:** Use the `SimpleZSTD` class with process pooling for high-throughput scenarios:\n\n```typescript\nconst zstd = await SimpleZSTD.create({\n  compressQueueSize: 4, // Pre-spawn 4 compression processes\n  decompressQueueSize: 4, // Pre-spawn 4 decompression processes\n});\n\n// Reuse pooled processes for multiple operations\nfor (const file of files) {\n  const stream = await zstd.compress();\n  // ... process file ...\n}\n\nzstd.destroy(); // Clean up when done\n```\n\nProcess pooling significantly reduces latency by reusing existing child processes instead of spawning new ones for each operation.\n\n## Contributing\n\nPull requests are welcome.\n\n## License\n\nMIT License\n\nCopyright (c) 2025 Tyler Stiene\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","readmeFilename":"README.md"}