{"_id":"tutils","_rev":"54-1bcbbbaa7d7aa9c3cd2b003335b4fe06","name":"tutils","description":"200+ well-tested helper functions & classes for Node.js, including globbing, file watcher, zip, socket and so on | 200+ 个 NodeJS 工具库，顶 140+ 个 NPM 依赖，比如通配符、文件监听、网络库、Zip 压缩等","dist-tags":{"latest":"2.4.0"},"versions":{"0.0.1":{"name":"tutils","version":"0.0.1","description":"Teal Utility for NodeJs","repository":{"type":"git","url":"git+ssh://git@github.com/Teal/TealUI.git"},"keywords":["utils","language extension"],"author":{"name":"xuld","email":"xuld@vip.qq.com"},"bugs":{"url":"https://github.com/Teal/TealUI/issues"},"homepage":"https://github.com/Teal/TealUI#readme","scripts":{},"maintainers":[{"name":"xuld","email":"xuld@vip.qq.com"}],"directories":{},"_id":"tutils@0.0.1","_shasum":"987276248437bbdb51d24b42733ac3073a00a584","_from":".","_npmVersion":"3.3.9","_nodeVersion":"4.2.1","_npmUser":{"name":"xuld","email":"xuld@vip.qq.com"},"dist":{"shasum":"987276248437bbdb51d24b42733ac3073a00a584","tarball":"https://registry.npmjs.org/tutils/-/tutils-0.0.1.tgz","integrity":"sha512-Z17Xg4/oscFfsTW/T24DEz/kIBbvf6Fcoe4QiOGa5y58nrAeHMzgqOzuM/S88hKgAybHDqdlNiA3pPYjA7XJsQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFW1WWcotjUixerFcC3A8yj8LsJ3JvEVu8VgVEKC1XVNAiEAzhnUsWch6RZI2w8SkLnuy4mDMfSn2huGstqPG5YD6dc="}]},"_npmOperationalInternal":{"host":"packages-6-west.internal.npmjs.com","tmp":"tmp/tutils-0.0.1.tgz_1456144149071_0.554125776514411"}},"0.0.2":{"name":"tutils","version":"0.0.2","description":"Teal Utility for NodeJs","repository":{"type":"git","url":"git+ssh://git@github.com/Teal/TealUI.git"},"keywords":["utils","language extension"],"author":{"name":"xuld","email":"xuld@vip.qq.com"},"bugs":{"url":"https://github.com/Teal/TealUI/issues"},"homepage":"https://github.com/Teal/TealUI#readme","scripts":{},"maintainers":[{"name":"xuld","email":"xuld@vip.qq.com"}],"directories":{},"_id":"tutils@0.0.2","_shasum":"6b312cb8be4608654b1ecb0e9c6a59ad76dbadf1","_from":".","_npmVersion":"3.3.9","_nodeVersion":"4.2.1","_npmUser":{"name":"xuld","email":"xuld@vip.qq.com"},"dist":{"shasum":"6b312cb8be4608654b1ecb0e9c6a59ad76dbadf1","tarball":"https://registry.npmjs.org/tutils/-/tutils-0.0.2.tgz","integrity":"sha512-jCPfjCXMIOa/dYAPgBwroRUwBgl1o4HvSWts1HOLrl8GQMsm9hD45IWnzSjjjwk2NsyWebtp3u1D8uqz1FxZmg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIANJQzZGCKVB8AzJsGMMO+TW6lt8r4SNY7bwNGnPXwBtAiEA1789px2a753MImK/8g/3lGy1p/EF/yMvlB2BHpRfADc="}]},"_npmOperationalInternal":{"host":"packages-6-west.internal.npmjs.com","tmp":"tmp/tutils-0.0.2.tgz_1456151460375_0.88701017270796"}},"0.1.0":{"name":"tutils","version":"0.1.0","description":"Teal Utility for NodeJs","repository":{"type":"git","url":"git+ssh://git@github.com/Teal/TealUI.git"},"keywords":["utils","language extension"],"author":{"name":"xuld","email":"xuld@vip.qq.com"},"bugs":{"url":"https://github.com/Teal/TealUI/issues"},"homepage":"https://github.com/Teal/TealUI#readme","scripts":{},"maintainers":[{"name":"xuld","email":"xuld@vip.qq.com"}],"directories":{},"gitHead":"7434140b7dd31f10c0cdaa95fa4debb611a56fa5","_id":"tutils@0.1.0","_shasum":"2ec11d0da4aca4af3febab32a87498633cbfa6bc","_from":".","_npmVersion":"3.8.1","_nodeVersion":"5.7.1","_npmUser":{"name":"xuld","email":"xuld@vip.qq.com"},"dist":{"shasum":"2ec11d0da4aca4af3febab32a87498633cbfa6bc","tarball":"https://registry.npmjs.org/tutils/-/tutils-0.1.0.tgz","integrity":"sha512-PxnR/sry01Z2rYLmaakehZLF1Job7pDDeXvvI72NG8GvP+EYXA7XF8Rclu4vDwU4DOFFirQsLk/xKQKFF1Ya6w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDbzSpVpBaLvSj2LMUKnxwH4sRvj/C5Sv0GmTwjiTyBpAiBVVYJL1nBKnq36/Y/NvQapAU+Iev3Kr59MIXh8LXejzw=="}]},"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/tutils-0.1.0.tgz_1458725557318_0.3024391927756369"}},"0.1.1":{"name":"tutils","version":"0.1.1","description":"Teal Utility for NodeJs","repository":{"type":"git","url":"git+ssh://git@github.com/Teal/TealUI.git"},"keywords":["utils","language extension"],"author":{"name":"xuld","email":"xuld@vip.qq.com"},"bugs":{"url":"https://github.com/Teal/TealUI/issues"},"homepage":"https://github.com/Teal/TealUI#readme","scripts":{},"maintainers":[{"name":"xuld","email":"xuld@vip.qq.com"}],"directories":{},"gitHead":"6a56b9603fa3df5f1ac6d0ce65f40083c241de77","_id":"tutils@0.1.1","_shasum":"f03a61fcfc53ae3c1f7ade81e90aef0a83e3e34c","_from":".","_npmVersion":"3.8.1","_nodeVersion":"5.7.1","_npmUser":{"name":"xuld","email":"xuld@vip.qq.com"},"dist":{"shasum":"f03a61fcfc53ae3c1f7ade81e90aef0a83e3e34c","tarball":"https://registry.npmjs.org/tutils/-/tutils-0.1.1.tgz","integrity":"sha512-hL7YmH6eld4u0bzwMZMYdIahHdl59kzphthJnmB9DfojnY6w7FahivKM0t9J3yxkpio1G1ZXWhQDOGTVSNrccw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEq/BoIkwxXmpP6nX2T7XBwlHYoYVHkrAyrSOoY87Vh+AiBfyYR037eP5eOfdlUCiAWqNFjd0DOLuglaeQ3YcTtBig=="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/tutils-0.1.1.tgz_1460711085150_0.8694409055169672"}},"0.1.2":{"name":"tutils","version":"0.1.2","description":"Teal Utility for NodeJs","repository":{"type":"git","url":"git://github.com/tpack/tutils.git"},"keywords":["utils","language extension"],"author":{"name":"xuld","email":"xuld@vip.qq.com"},"bugs":{"url":"https://github.com/Teal/TealUI/issues"},"homepage":"https://github.com/Teal/TealUI#readme","scripts":{},"maintainers":[{"name":"xuld","email":"xuld@vip.qq.com"}],"directories":{},"gitHead":"94105db2471420543cb046dd51f21d57da455f8b","_id":"tutils@0.1.2","_shasum":"f3a21f2fb4ad6b343f84b7cc7b861a314c4a9243","_from":".","_npmVersion":"3.8.1","_nodeVersion":"5.7.1","_npmUser":{"name":"xuld","email":"xuld@vip.qq.com"},"dist":{"shasum":"f3a21f2fb4ad6b343f84b7cc7b861a314c4a9243","tarball":"https://registry.npmjs.org/tutils/-/tutils-0.1.2.tgz","integrity":"sha512-UYa3ONjtPkyu3X6tGePuJ6EB9y9uGSTF2zys8dHRPcpSiMrkrXKHI9p2kZa4LAPZityXUNzBF7+fscG/dFbSpQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDXlRo/vroy7qI2EoTlbrSHQV3+zEDB6hv4Aap0xfXDbgIhAN6USdoDW9uXZmYF/wgTBHLQldAX5CzZREud0ZH7wfJK"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/tutils-0.1.2.tgz_1461730157449_0.43127501499839127"}},"0.1.3":{"name":"tutils","version":"0.1.3","description":"Teal Utility for NodeJs","repository":{"type":"git","url":"git://github.com/tpack/tutils.git"},"keywords":["utils","language extension"],"author":{"name":"xuld","email":"xuld@vip.qq.com"},"bugs":{"url":"https://github.com/Teal/TealUI/issues"},"homepage":"https://github.com/Teal/TealUI#readme","scripts":{},"maintainers":[{"name":"xuld","email":"xuld@vip.qq.com"}],"directories":{},"gitHead":"b5cef5a0a3f231578aa2bc66a89ef2ae6bc261e7","_id":"tutils@0.1.3","_shasum":"0c9ca84ca1c8edab248b9b0d7cdfd1670ed0a1af","_from":".","_npmVersion":"3.8.1","_nodeVersion":"6.0.0","_npmUser":{"name":"xuld","email":"xuld@vip.qq.com"},"dist":{"shasum":"0c9ca84ca1c8edab248b9b0d7cdfd1670ed0a1af","tarball":"https://registry.npmjs.org/tutils/-/tutils-0.1.3.tgz","integrity":"sha512-lRWU/45XniwlFzAL1S/xEaxzflqzmnoFPKfDfO+24kpZVw6ANjS7kd9D5CwdfTLY+Q1V22xTOw5N86wYMaNF+A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC+ZxygJe43Ui0YeioX5yv1S89py0v59dAMMKRU0oaAHwIgX8N8neIPpYTWa23wzL6oUyq986N1Zj0F2+ek0B2LMXw="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/tutils-0.1.3.tgz_1461922269364_0.871847384609282"}},"0.1.4":{"name":"tutils","version":"0.1.4","description":"Teal utilities for NodeJs.","repository":{"type":"git","url":"git://github.com/Teal/tutils.git"},"keywords":["utils","language extension"],"author":{"name":"xuld","email":"xuld@vip.qq.com"},"bugs":{"url":"https://github.com/Teal/tutils/issues"},"homepage":"https://github.com/Teal/tutils#readme","scripts":{},"maintainers":[{"name":"xuld","email":"xuld@vip.qq.com"}],"directories":{},"gitHead":"d998d0aaf3df70d563ac62030ac14d35ff121d95","_id":"tutils@0.1.4","_shasum":"20a89f8352cc2b44f1e39f41775717a3e27c4a05","_from":".","_npmVersion":"3.8.1","_nodeVersion":"0.12.7","_npmUser":{"name":"xuld","email":"xuld@vip.qq.com"},"dist":{"shasum":"20a89f8352cc2b44f1e39f41775717a3e27c4a05","tarball":"https://registry.npmjs.org/tutils/-/tutils-0.1.4.tgz","integrity":"sha512-KM3kin/MTvYStgk5ZTZWAEIy1DdHGt0xeNL8OFsY1Cj9ycRwXTvOnvT4wdpN5dcSmQGZ1V2JcGY5TMX+Jgjs0w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDldb90yp3uXN74p0o+xI6DpirQs1tGyEaMo65LQNmW1gIhAMZHfvH3HOwqBOpeHwqiikf0viBHvYxBOVHKgdXmURsv"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/tutils-0.1.4.tgz_1463563210282_0.754134819842875"}},"0.1.5":{"name":"tutils","version":"0.1.5","description":"Teal utilities for NodeJs.","repository":{"type":"git","url":"git://github.com/Teal/tutils.git"},"keywords":["utils","language extension"],"author":{"name":"xuld","email":"xuld@vip.qq.com"},"bugs":{"url":"https://github.com/Teal/tutils/issues"},"homepage":"https://github.com/Teal/tutils#readme","scripts":{},"maintainers":[{"name":"teal","email":"xuld@vip.qq.com"},{"name":"xuld","email":"xuld@vip.qq.com"}],"directories":{},"gitHead":"47aa82dd33626ae4794fcb9168be8a886621aade","_id":"tutils@0.1.5","_shasum":"4dd4943e768157473ca93bab92a023577574fa3f","_from":".","_npmVersion":"3.8.1","_nodeVersion":"6.0.0","_npmUser":{"name":"teal","email":"xuld@vip.qq.com"},"dist":{"shasum":"4dd4943e768157473ca93bab92a023577574fa3f","tarball":"https://registry.npmjs.org/tutils/-/tutils-0.1.5.tgz","integrity":"sha512-YEAEdE/XuVi4gFLdRUpvAPZWirelRaVooWgnqtLqstYFEPvbL//0fpTszoXncp1LCmgmlqv+KuAtMBrNOQZFDA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIESGNXICha1QyGImX5wEQPBF/qwZMGgt83eX9XG48ABrAiEAgyHnZc0+/QwUumtPAus1qMnnWOJsTU9GSl3Co3+HhV0="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/tutils-0.1.5.tgz_1464155332936_0.13102180627174675"}},"1.0.0":{"name":"tutils","version":"1.0.0","repository":{"type":"git","url":"git+https://github.com/tpack/tpack.git"},"description":"TUtils 提供了大量 Node.js 开发必备的工具组件，比如命令行、网络库、文件操作等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12","npm":">=6"},"bugs":{"url":"https://github.com/tpack/tpack/issues"},"homepage":"https://github.com/tpack/tpack#readme","_id":"tutils@1.0.0","_npmVersion":"6.5.0","_nodeVersion":"11.11.0","_npmUser":{"name":"teal","email":"xuld@vip.qq.com"},"dist":{"integrity":"sha512-z7Oqr9bAJmHRLrNCaSS0L5zXLi1d+Adq+rZvV8+WtlfAi0bxUBw5hSF/UpwdlzwGZMuffo1dPeLbBt/LrE8+4A==","shasum":"5d8d1115f861ba5a37a605bd0d4f9d3f22df2daf","tarball":"https://registry.npmjs.org/tutils/-/tutils-1.0.0.tgz","fileCount":65,"unpackedSize":519105,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdCfVECRA9TVsSAnZWagAAnBQP/3/nsQP8L0YVRXq1D2yC\nXINbb0peAF7zsDDdf0ybPP9GbsEtE5zhOdGyN7SQvkDlCkgdN+/nWEuLhLZb\n4G9P2h/omR+zc9nHuRHuWe9c1MJj8NJ3h2u2ggpMlxccKAaDfQesLCCQmPLy\ne6YR06zrxxUu+VIuunkopJC1NgaUuwr7h/zYfNdBXnjSaPc6cYXquv50nrbJ\nRC9v44w3SMF3kNgdrzbLajyYGzx34DTc5GLxip6X+ur4Qi+tdGl4NLcunLQ4\n1Ca8R2559MmEw/qiA2eomXPRysugzqrR4ifkt6h4V/n8RBmZKqUyLxGwoi1b\nuNVdcSO+6s0o9feY8l+rqGi8lbtIdZn4il/i33zo5xBSQ7PFCPFVRqBVzDq3\nV5PNmxpsn0ZXbri1i13RAyOzamKi5V3XoVPYk1dPmrVP4fokhoZom7m6BCly\nH5US//i3fRIkU0xEJrTZ73CNf+40bvUEs9OpNn5+OrppSsn5UvWoSizCuXyS\nbk73cN71wdDr4EiNLl7jYxzDlkVkdgd52ElJegwNkCEBcndQviSUF0H22t6D\nA38uzRGya5lDQZq/AoZXoEjwBNg/APqX9wJ9r9kyApwdIt4KWra6Tzb8sMh5\nuVmy+pW4LpWk+SJyi3lEU90BXgDUfzJbZGGejVwR07b5oTg7zA4+2eGINH2R\n9ej5\r\n=xieL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFYRHaQQ22wuQ5EwolfdGVXLRW/nDeb1hhFFX9oQjRJmAiEA3KqHnnjlWdBdcwqwoNCVmfgiWs/zBpb9mDxS8FgS870="}]},"maintainers":[{"name":"teal","email":"xuld@vip.qq.com"},{"name":"xuld","email":"xuld@vip.qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_1.0.0_1560933699690_0.7157920857489113"},"_hasShrinkwrap":false},"1.0.1":{"name":"tutils","version":"1.0.1","repository":{"type":"git","url":"git+https://github.com/tpack/tpack.git"},"description":"TUtils 提供了大量 Node.js 开发必备的工具组件，比如命令行、网络库、文件操作等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12","npm":">=6"},"bugs":{"url":"https://github.com/tpack/tpack/issues"},"homepage":"https://github.com/tpack/tpack#readme","_id":"tutils@1.0.1","_npmVersion":"6.5.0","_nodeVersion":"11.11.0","_npmUser":{"name":"teal","email":"xuld@vip.qq.com"},"dist":{"integrity":"sha512-mH2QQjZIT+xjaE0DpXtIUPzehvoVj6CRUE7GzeNAOD1S3S9oyXZVNn00LEeBe8spIVPSvjwIhCBbVagQOU0k8Q==","shasum":"5b4e0e715d67a7549d82d34a8ddc1720c49bcb77","tarball":"https://registry.npmjs.org/tutils/-/tutils-1.0.1.tgz","fileCount":66,"unpackedSize":520955,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdCzmNCRA9TVsSAnZWagAAt+MP/2++hs33QwRyw/DgMiEc\nTf1puN8Av0n/bh48wZ+2cUh/tNuJO+9V3zytXvLCVD4N9zc6xCnicVAzxQcF\n6t8p0OSmLw5LlnY1SxEoIo8sgfTVeVeh6nO7Do5X7/sv07e2J6pbobyfpCzA\nHvo4Nn3qLAZeGm3Vyppkx+HOhgUFlD39UgKncFNFJw19E5wjvU4t7dBW3XKD\n3+/Gru+u1nHl5Z1pssNiQNzLV3k6o8m6RJGmcIpTtA2owuNvZKdq5vA67bBz\nkJ8NVFOJGLmMdl8rsDm7UOi0JEjvCMr25Ka12T0w/rCl8rKpHyCJso81Hg6J\nSnA4lo61JZIgPr2U8Kyu7qJoY1VfWJ+FTwhXIYyg89+eEEnv60dFRsKZgo9Y\nhRxdlW2HGB1XDFGLMWbg0eWnz0Q6uhA5uLBPBNZnirj+tzBYXGR/B2gG0hv5\nGo8kTQw6fCQVGGVJ8Im1++5CdjZGvWxo/oaStsCIqyPnNtxJPo7YdJtpkVEP\nI2OwAeYQiZZLJpqap4iZ6bYBbKTILHReaL7k7rQc0PU2icXK46EEob1QSX4Q\nNQ11jHrgpGXsw0wxvEDNPOQBIE2EktF5Cq5V1LRQCONpJ2PPRmnR3VAajLJw\nO1M76ibUX793YClmUQVQWYHQv0o55rT1T1hlDRwXrP4HAJ940N9p8fiYnRfH\nWVut\r\n=YxER\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDXe6mHvQSyI/u6zK991PfRK3hmt4IacVd0edy3ht6ifQIhALjkq8zWCmx6gJ7/c5NIzeidJQ99NdWBGeEGxSr0j3Iq"}]},"maintainers":[{"name":"teal","email":"xuld@vip.qq.com"},{"name":"xuld","email":"xuld@vip.qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_1.0.1_1561016716428_0.8685061531127909"},"_hasShrinkwrap":false},"1.0.2":{"name":"tutils","version":"1.0.2","repository":{"type":"git","url":"git+https://github.com/tpack/tpack.git"},"description":"TUtils 提供了大量 Node.js 开发必备的工具组件，比如命令行、网络库、文件操作等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12","npm":">=6"},"bugs":{"url":"https://github.com/tpack/tpack/issues"},"homepage":"https://github.com/tpack/tpack#readme","_id":"tutils@1.0.2","_npmVersion":"6.5.0","_nodeVersion":"11.11.0","_npmUser":{"name":"xuld","email":"xuld@vip.qq.com"},"dist":{"integrity":"sha512-2VPYlolXhTigfk+WhuKjhfsNDIPZCZu1xjIp0s3TyllfBvIzV7gRbvwCFfA5tV6Tw180YhOi1Au0gHzJEmKqXw==","shasum":"b9ce9f15f0e0b8f20accaa54834447b253ff19b0","tarball":"https://registry.npmjs.org/tutils/-/tutils-1.0.2.tgz","fileCount":66,"unpackedSize":520680,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdEKY4CRA9TVsSAnZWagAAR10P/jZSL1bHmKGQ7Q129ofV\nczPQHokBJxYrMgPACH0ivGaRaTeaptaNHM0py7mdBPdV3OAuQ/YBGFp8Wp4F\n1sjc6KmeSrEbB3CCLtAXMuo3KIDHeO1yOcfrkfP6Z6aaoMYYfZ8RZuQZE9vC\nh6s+szkSb9Wd4TZcGEwRNh3oljjWz2TK/UzJTf2N3f3T+lpNYrzQCT2cmIQp\nDiibaLz5SSXQItb5KC1Llr3RQEDkoh4ZxvrQSIgkqCEJYxqSqeEBeGV4HAO0\nuecySRXeOgx62e2mPDfsJtZz3yZ+gpZkcOO1wox6+6ULC0zqO4XjkJG5ypCx\nJz8KHPOn1mAY9FfJMij/5/x7FVaA8euEw0UZO4cDTXuO1YMmwFrDss8tMHay\nIPNMbPciLZgN/yEBbQngSoO3SnvZA1Dgu5PhwBdgFFIPf8TYikxA0Zz1HeDe\nRA2Hd2V2xLQRb8oUdg7IOA2iQuaIEmuxAAGoPzGJaMFvIwjhgkLTkiHDv99r\npB+lrhh3UOVMPB3vg/8ds7fBoFboL3E0TlgIxdFFhQc4xsrEVsR4qBiz3p7R\nM1/wL03PEWG2kSIoVB7edph9oeZBfQjBhCXm5fGz/NssEB+b1zC+DOK0LR0G\nDkfIsVxvzZpDdc1TwLErQIhLxJaBBGgUkGwgRfyJMeuNJmPnMxZ++QASrjS3\n96/O\r\n=eQtL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBDSJwd9HJqnPU56NC5ChGZcdb+UoDbzRBWMHa8Rk97UAiEAqa0ZSQzgQzLskqOoKyS+6DGchmNY1ikkpRomVWwtSUw="}]},"maintainers":[{"name":"teal","email":"xuld@vip.qq.com"},{"name":"xuld","email":"xuld@vip.qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_1.0.2_1561372215478_0.7921860232227782"},"_hasShrinkwrap":false},"1.0.3":{"name":"tutils","version":"1.0.3","repository":{"type":"git","url":"git+https://github.com/tpack/tpack.git"},"description":"TUtils 提供了大量 Node.js 开发必备的工具组件，比如命令行、网络库、文件操作等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12","npm":">=6"},"bugs":{"url":"https://github.com/tpack/tpack/issues"},"homepage":"https://github.com/tpack/tpack#readme","_id":"tutils@1.0.3","_npmVersion":"6.5.0","_nodeVersion":"11.11.0","_npmUser":{"name":"xuld","email":"xuld@vip.qq.com"},"dist":{"integrity":"sha512-KcwhaWofZXXc3EephXAe9bM2TrzRuy2mx8ur2NrAjK7Kj0eXUFicSdHIlri69cs0+W7AMACBKuSes02QJgwbIQ==","shasum":"3632ef512f8b5b58750188b97ad11488fcb41c96","tarball":"https://registry.npmjs.org/tutils/-/tutils-1.0.3.tgz","fileCount":68,"unpackedSize":571280,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdEt4TCRA9TVsSAnZWagAAZQEP/1ZaaZIEZXgESe084jIH\nuUxZmlmPmrghXAQsQafDz8e87f3taxxIH9HvX3sI2swi2OxL+Q2mtpHqsvFC\n+3YY9m+qLtol9Cl+gDXYs9+VCiaNQl+8EBgAn7A1xJWSrwDrmGDGsiKXVC1z\nyuayWFf/71GbMknmSBArqPOfP2HzOfxcqgkajclXjNGuZuIPpAL86fvNPICP\nhRyW4RvrA3qWMxzAQ/vliFPiowhHn1VPjC0n3c+i60LyDNO9chyh77ZlgpLG\nhiEKIZ/9llMZRMIWAdymgWEbXj9j+zcd9NQlqUwICm0dm7Jbrv1mL4haGtfE\na42Ydca8vAPNJz63p1zcxeE27sfkNptIwWAWVKkGlGJ332A6dSLFX65gt6mc\nfACLvH0Yr/UuNaIH1096yO2bQUkiKk1zeaV1UhSZrjvtthm2MMtfgo2PxYz+\n0tn1Wt146sYdZasQFYWm54Paehx0qFFp6nPl5NeeDCBqVjpDDL7tnIiMMI5J\nL1WmP4VzMV5xav6PZRGynBAeMF6zgec6Iawlsthl1o4ZCaztKIyjiF9rK0nH\nqENevZ1bKib+Jwp1wnQ8Jgevw1Mt4+YKg50v1SYOtEV7aMRK0qURsN706jEX\n1rIhVp4stUmDYhW/7JmvCMQ0a2iAobp8QcmUM9+J3f3xF3UN44JRduTSLo1N\nWYE8\r\n=TzWn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHN11fZjXir2YRNjdK8Z32Czks3UU/1pyBwS+wFm/IJ4AiEAmC0qJcZTXcucLd2DcJq+q41fyr7Uj27uaV4hJ/3XUQc="}]},"maintainers":[{"name":"teal","email":"xuld@vip.qq.com"},{"name":"xuld","email":"xuld@vip.qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_1.0.3_1561517586741_0.5317009426469881"},"_hasShrinkwrap":false},"1.1.0":{"name":"tutils","version":"1.1.0","repository":{"type":"git","url":"git+https://github.com/tpack/tpack.git"},"description":"TUtils 提供了大量 Node.js 开发必备的工具组件，比如命令行、网络库、文件操作等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12","npm":">=6"},"bugs":{"url":"https://github.com/tpack/tpack/issues"},"homepage":"https://github.com/tpack/tpack#readme","_id":"tutils@1.1.0","_npmVersion":"6.5.0","_nodeVersion":"11.11.0","_npmUser":{"name":"xuld","email":"xuld@vip.qq.com"},"dist":{"integrity":"sha512-idoXoskM1BYboU6R1ilCqib3BM918lBcE3BcjWiYrcFzJoZTZazWuhIqWOlMXSrIVlF9HMJ5c1lSjCL9qQ4rsA==","shasum":"3df0d1485084dbbbd5cb83b3b73f9f3f7a6ae75e","tarball":"https://registry.npmjs.org/tutils/-/tutils-1.1.0.tgz","fileCount":68,"unpackedSize":572961,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdEv4lCRA9TVsSAnZWagAAbEoQAKK4//dCfPB362BkvDEw\nxeajkWScBghnOkyjlif5ZUn4Bb6jboMAFQJVQWLd7ZFcMeFXsFwa0D3akCYs\n57K+a5tFc7wvz/dtAPqPk0gwf8CBbJsVQ9hoPe4LDS0XYaFLgb84B+V1Bogi\nnBZ4PvGobHEvxybfeWCDFJre6eYX8I3UUWzeEyUNV+WwN3ghJbPTmt911QTq\nzXEO5ZWXmLLH5N37hd8SXzX8BViIqJpmN6BBmtGSjlgwd3Lg5kb8agZHeZqZ\na2CvuLt9is0cPwKFhymceLAWPWYh0LHtEiAhgywno+5IaKBOngN+Q4PrLIDP\nWFini2Wv1IQK8hv5biEBGIVhkTqCgpF4VHtS//6X7Ow2vf6fWmis9Kvg4/io\nGdJld4Wa81ZywuuHwb7TIkxd0pTjecTCXUC+3RJLgkwhV3K0AnJZd9nlXTdi\n4FpO4IS6ja6VnymSfKFxpj0gCn9BcYuVaw2zoU3Qo8o/BC/ziOySHdqfPWya\nhls/X0F+O5TDFvLuTI1cU2OG0Pp5mtAWnuBLgOgcuYcWM9Cu2oYhwvsFx6jb\nGCs6RSq7q7Bt/pJSVzGNBX+rr482llhwOeCXXEBRD5yr6Bt9t/zD/cdckDpB\naX7ubpMcX9iO0/NiXgA2Vu0BcjzkzsSL2I+lksB5nyjo1zE4A7VzKKHknN66\nA6pU\r\n=UJbQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD6Ms6CsLa0j6oXU919z+VXwYcOP5+AN65cPl7jxtNXOAIhAMPBNHnQM9k/6Flhf5x14ytab9f/x+qFNc4IJc0VnV4+"}]},"maintainers":[{"name":"teal","email":"xuld@vip.qq.com"},{"name":"xuld","email":"xuld@vip.qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_1.1.0_1561525797181_0.029135948645618193"},"_hasShrinkwrap":false},"1.2.1":{"name":"tutils","version":"1.2.1","repository":{"type":"git","url":"git+https://github.com/tpack/tpack.git"},"description":"TUtils 提供了大量 Node.js 开发必备的工具组件，比如命令行、网络库、文件操作等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12","npm":">=6"},"bugs":{"url":"https://github.com/tpack/tpack/issues"},"homepage":"https://github.com/tpack/tpack#readme","_id":"tutils@1.2.1","_npmVersion":"6.5.0","_nodeVersion":"11.11.0","_npmUser":{"name":"xuld","email":"xuld@vip.qq.com"},"dist":{"integrity":"sha512-EIjal0VgKsuUZDSSCqu/dpXDUxf7E/ZPQRd1RnevV4xznHU52YJ6g7Tg/nBgcqQ+O5mRWqsKrgpxyASWztmhCg==","shasum":"05f202cc696428dbfdef58eaf5bdf8c8433999e8","tarball":"https://registry.npmjs.org/tutils/-/tutils-1.2.1.tgz","fileCount":68,"unpackedSize":584319,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdIwS3CRA9TVsSAnZWagAA9sgP/RdbvjQ7LwEIswUUOumB\nlTLAGKF/IGcwr3S2ugPeLjkiTn8ar8C/Gx5hhltGQYmpFAx3dmm0y2TnLDR1\nL00dtDha0fqmjZxNIMLmF5PIwEqs3AS/KF+Nn9LjNbRobGpKZqWKVhkUj242\n8uy3U8HTKWkOHWRIttPp4j4+Vbh5WSyPkp6ofuVDWuk9/vf5A9Me7ql5YuSk\nJc2gLC//YPBp3PIkC7ImyoFOpC9qFaA4NaQiy+I0++2U+zFkimHudI6Opfke\nTCBQ9apTlYo8OVP9FjRUnDM5K43+FcZ4+X4d0EO1UByJFy1zFjqjMhcj45qP\n7TqaqxvPDyOD0JutxOoZAGY+9GMls8q+3nSnvWeeggV7y80X38wyQEByxmsl\nCJutlImDf0t7J15iJwkB8p7fIAUntWcyitCRv812dTpWF9/+BIzNbLeUHdjI\niK095ueFSNDDUEVYeYtx59Pc7cfWetb0FCGnmbN2/vcB0S6pb1L4jPPgtOmR\nly6kxPj+BdlyE4Y7E9XM5ln8VPNn4sNp8XAfYWXSAFZfGQ2JvcjZua1MmcjG\nIKfE2n6SNKaaxWj56nMCFH0tEBArBD3CA16ZnRUDCoK1iEHKKPqrqEH2MBH8\nVAvZdT+0dYDmEJgeeloQ+ipz0kRCKo0oAFkUeXreiKJTrcVEgMYXLa9l106d\nN2wV\r\n=nLZR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDDPjoB6pSBkJoUaf/WD18VlOAQHgPjm2iqbIFF3BK21AIhAIkR7SBJRU2Sj9cBbQ0dNYzUJQopDB5nNSkG92TKgfk7"}]},"maintainers":[{"email":"xuld@vip.qq.com","name":"xuld"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_1.2.1_1562576054721_0.7899692133851606"},"_hasShrinkwrap":false},"1.3.0":{"name":"tutils","version":"1.3.0","repository":{"type":"git","url":"git+https://github.com/tpack/tpack.git"},"description":"TUtils 提供了大量 Node.js 开发必备的工具组件，比如命令行、网络库、文件操作等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12","npm":">=6"},"bugs":{"url":"https://github.com/tpack/tpack/issues"},"homepage":"https://github.com/tpack/tpack#readme","_id":"tutils@1.3.0","_npmVersion":"6.5.0","_nodeVersion":"11.11.0","_npmUser":{"name":"xuld","email":"xuld@vip.qq.com"},"dist":{"integrity":"sha512-ACvW060t9Pv3a4zTvN/h04ZGcNAIAptfD68F0GAg+OCaFnzvhuKa2x4XLnEndHkvaiEyN7wAO9XYvVyiifF/nw==","shasum":"3ac5d5266364b5df1cee605ef8a24f45bf331c30","tarball":"https://registry.npmjs.org/tutils/-/tutils-1.3.0.tgz","fileCount":68,"unpackedSize":582737,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJYiFCRA9TVsSAnZWagAAWvQP/0pyclN+S/WbnrJOAF8Y\n20A007dr7aFK4CrZwBIVLw2wSSpDrEFJmBigk6mc+IJ7tnp23uoTQNkXIsOg\njaKGBxNBjljJBkB5hhsUJNKdH4a8yD/FAKPc9KsvPU20MQnXBH7EhnHOSUIk\nAHy/U9YUWPAROZz91Wvv7lUe5dqHNG2rIB+baMh3eQoMQN+vdxCqnnV3r3mP\nDO6VN9qaoDsx2JVXCaAjEHpcdddp3vRYmenyohD+Z38A2YJucuasT3JhvA6m\nE6rzH+V9uSY95gIAjEqdCihpl54ZP4wUooPAm4CIue5cI8yTqxI5R2fOSDAL\nQRmtwdvny7X2WY2apD58ichbqlFugPvUmIXXK7Wz9gRJQd8zGWL/nOex1Py2\nK+9rxzoi/Vs06FlWj6TjDudPW23S6EOyeh56Zn4U+c0k/sMBuv6tVttxmFD8\nemf1RkWjfadoEkKC0Re+T2yYcG5LnHVwZssxFFV1ugTYo6QKDjnxy/IUM1hc\noDuqkDo5pinitNp1GlvsyVXYUpOfHJqFWmIOM9I3OVWuFEsechiDR5Zlv6fd\ncfGXRlX4uL58AeTE+yXsWxv68U8Hk4xBG6gGEJ+49UBMTggBxu+SkUcmSGtL\nvNxWV9CbhfjE9dXhKnSmsGlkhu13rHsYvUXQTDR3Zu/8waqUiNOHEUspjFXU\n3vTt\r\n=ZcNI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBP9s2YMaXYlLa6genmg8vCiRRkVOWAm9+V8r7YgsBhhAiBILke+JcODfiLVZbMgy29Y5CZO33YklTVZ9QqhzWUgyQ=="}]},"maintainers":[{"email":"xuld@vip.qq.com","name":"xuld"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_1.3.0_1562740868699_0.3729767298757205"},"_hasShrinkwrap":false},"1.4.0":{"name":"tutils","version":"1.4.0","repository":{"type":"git","url":"git+https://github.com/tpack/tpack.git"},"description":"TUtils 提供了大量 Node.js 开发必备的工具组件，比如命令行、网络库、文件操作等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12","npm":">=6"},"bugs":{"url":"https://github.com/tpack/tpack/issues"},"homepage":"https://github.com/tpack/tpack#readme","_id":"tutils@1.4.0","_npmVersion":"6.5.0","_nodeVersion":"11.11.0","_npmUser":{"name":"xuld","email":"xuld@vip.qq.com"},"dist":{"integrity":"sha512-H25y8zDficaQrv1U5xqLSD7r8pomOVgqM6bS39bBVGJM/HlG1cqdh9IsJ6rZeHVsvBW6nB62lB+BMaV3iXtHrw==","shasum":"000eb69e68d5e3306bd8ec4245415cf79865c02a","tarball":"https://registry.npmjs.org/tutils/-/tutils-1.4.0.tgz","fileCount":68,"unpackedSize":581726,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdKF3+CRA9TVsSAnZWagAAGYQP/R5qK0b/z9fWuPeWXMdf\nya1AEpm1rprAYDpYJpEtWF9lVHGi389YFx9dKcBIJAKr4Ke4a18i73XLqUWf\np8IAavK/N1tyHpOlO3J73vbbg//jK2G679RWhf7P6PLYMdTqn41hrutB9QIm\nn40JWKXYvMkCckzaKDM3xMcA9lCoelrHnAvJpdqmDvLAhkujIOSDrmc/Rr8X\nn7QqIVq83pnlwCl4I60rYBFWE8ONq8gNkuN8r3RxgKIQDdlXpOAlB6lnwuEp\n7cmKmO+5Q07HEQmdOuNCotvZRGo2sMQfUgOG69QcvwQ1rcfYyBEHfg5oXrvf\nfJbcR3uTWuxrkAew5IcDhnfYCjd/ecaBOIO+M3qDplbhnNgQVu1t2Sku1RVc\nxAcBunM0TnDh7YbZPoix93YmErV7nQ+o5VAA3vt3RWjUN1eSCBJRGGS85/BY\nNtOTPkrCGb8b6+Sj7hLEnFfp7mS5/TLpQbCBNeLe2w47sE6fZG1FoJR/p9+P\n0mozLNOSqZ4oLV9vRhuRh7sL69fLAlRWhSOZtzPbMgonYMKxU1OP3ntfPcfy\nap50O6QNlwsZH8Cy7wVYJlJJC6hujhgPYk2YvKIKQ157mgWalyM7yE5NNyf+\ncXHqmiV/MLnDPJKxqsLzQUfO62vES8e9lkDGq6LMbMUeK9dPvxnfzcPJcm24\n4byC\r\n=Dzn7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFM/mxqPJb6uNENkM9m8PnwKRiKk80eiTD6VbaxYjfJPAiBfRGkTwHmJwgmEu2I+wFlfX47Clyp6t5Z+i6xAAOduOA=="}]},"maintainers":[{"email":"xuld@vip.qq.com","name":"xuld"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_1.4.0_1562926589157_0.3861847968053638"},"_hasShrinkwrap":false},"1.6.0":{"name":"tutils","version":"1.6.0","repository":{"type":"git","url":"git+https://github.com/tpack/tpack.git"},"description":"TUtils 提供了大量 Node.js 开发必备的工具组件，比如命令行、网络库、文件操作等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"bugs":{"url":"https://github.com/tpack/tpack/issues"},"homepage":"https://github.com/tpack/tpack#readme","_id":"tutils@1.6.0","_npmVersion":"6.5.0","_nodeVersion":"12.7.0","_npmUser":{"name":"xuld","email":"xuld@vip.qq.com"},"dist":{"integrity":"sha512-x5K1v7gNq2Wl5yeGln8PFf2HAfRaH4EYFMpv0cTBvnR34G/kpTmrZw2gTMUE1wjPByiJBP4/xp40r0n3ypfOUg==","shasum":"bd65abff91ce4cfea4342d523fb89e8d1768fe6b","tarball":"https://registry.npmjs.org/tutils/-/tutils-1.6.0.tgz","fileCount":68,"unpackedSize":590178,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdVQ5aCRA9TVsSAnZWagAAoUoP/0A+UIjvnJR7Flp3yvAi\n5PsSdcIAhHJr+0uTADDMRZq22IdAw3injHPykKxZN3OBWEDhpLQT1MlgBMUI\njd0/uxS64Gz1JirNisNnkMRowW/qDVTWKBFMHflkVZsAARgKQHAU4MgKsUpK\nCzSMYAotcXU6XbB/fofDZpzt0dodiOWxH8V1HeixRyrhr2ghOS9BkL1f64/w\nm6GnNBjwNtGsuwWOhYIhkScZ7TMVoHW3U2Ne86O4prUm5fwX38P3/fIfefWg\ng10rwCtUiRrAFyvYzj898n/BQqr3QClswKBXKwg563VLR4yIPS8LSOvX1DOj\nn4v8L6goYGd+2gEX34YcmuVzai1t+WNolMraCkFFAf9+b47Mb1avTjiBc+I6\nNgg/FjOs/uylrm+pNMKwI3GPHXuCHSD0D+SogSa4Xe2q0LC5W5JSAhXw0QyY\nymSUj0rrjkovsGTQHtq8juvq9wR9FSS2SgbZKnG9G1iC2qDXQLshDaEX3KFM\nWKY2Npc6QhLySX9G6/UeQlb81xRC5TZVYLXmnBtWjid9vkhEgc/BFAr4DPBN\n1VIhe0e1QRReb7AFUWARpPJNOKW9p98dKFto/NLFjmHbJVkBL0H1GOIg0BOj\nYvMSTx6eGSVGNbdvv6f3VROCly7fC9sBXdbR9FpMfo4jsfLtMtXfEGpNpl9w\nZDrW\r\n=WPBW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICYgR8HRl0WjD43F95MD+YVPFQVod8qfDAYg1B1PjaryAiEAqriooOYX6pty5GHL/zR6Lhl18it+vYmmPFtnaUXaqwU="}]},"maintainers":[{"email":"xuld@vip.qq.com","name":"xuld"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_1.6.0_1565855321405_0.6615211043315707"},"_hasShrinkwrap":false},"1.6.1":{"name":"tutils","version":"1.6.1","repository":{"type":"git","url":"git+https://github.com/tpack/tpack.git"},"description":"TUtils 提供了大量 Node.js 开发必备的工具组件，比如命令行、网络库、文件操作等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"bugs":{"url":"https://github.com/tpack/tpack/issues"},"homepage":"https://github.com/tpack/tpack#readme","_id":"tutils@1.6.1","_npmVersion":"6.5.0","_nodeVersion":"12.7.0","_npmUser":{"name":"xuld","email":"xuld@vip.qq.com"},"dist":{"integrity":"sha512-P6b00vJoaMj6ybua+30h4+xlW7uCT+S81zHBwfVCBGuOJM89lAPKjahDr8++iLJ4F8tgcV0KnjJLxomShtwIIA==","shasum":"6f06765703aabf4a90537739f7a9f37fc8df2d84","tarball":"https://registry.npmjs.org/tutils/-/tutils-1.6.1.tgz","fileCount":68,"unpackedSize":590228,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdcK0ZCRA9TVsSAnZWagAAJ60P/0Nr2Z8UJNWIN+f1+Jvc\nm4r30+eBvBaMwOOGXShhWvlCNkY5DFSOHVpg3A+RnZxmZk1rZT/brJPpLtdN\n6m3dTnO64D7HhbCxFPDyFTQENrvzcTi0jHgnn42CrUi35JjXynxa2zIlro7t\nkmb3bSRg6s3xNSgFBY78tKH2cDPNakamI6jyCx4ip9MYK8Sbq4PGvXoSTeI4\ni2rarvvKhqOwgGduxMxseK0idAHRao8/ZbbxW28o86zQaynQYxqx5AJNCqWg\nQurHzyjX3QV/zyiSh1mfM6gjew3Np0zETa54UwIwLu5nxe86s9wF57UbP8Ct\nasOy/8x3ZMr2ZFBrhiEEMHuVj5arFrAdbJGwPQ5xJHyQdGzD2mhjmaJB9yQH\n6FGWaGvIs4L8vruIBPAegkWBbGRqPwE6DUzRhoRpiadbuiDi5pafm58HCqoF\n+mRkiBu7i6wbw89OaiNL85OOqbcRf7OhzwA0mChS66esEFk0T+AJE6DRZgu/\nHN0bQaaK8AaQFrtwmVXlhDrzUGke9s6jdvJKxLFdMFctK711ZBNtmu0EFOfF\niouQEvcLEOX2SSj7Pm+dYfYOfRrD6JydjP9A7PPT9MyfhqmxbBYCsg0+qpBB\nbRFKj0mgxhTzzmV8IsjLPetPp+zBBI33bh/Bu1/gPZoQpOeR35PFH8Y8rmIc\nhbUg\r\n=IzXQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIARDroM9j0S43UktUg4BBWMhdXAS63OzeQ3wxnN+YjdlAiAwfgnSSwNX6Dyaa6k2sE9kkaJU1Ff6SKxXnEc5EcGG+A=="}]},"maintainers":[{"email":"xuld@vip.qq.com","name":"xuld"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_1.6.1_1567665433196_0.7799949978810672"},"_hasShrinkwrap":false},"1.6.3":{"name":"tutils","version":"1.6.3","repository":{"type":"git","url":"git+https://github.com/tpack/tpack.git"},"description":"TUtils 提供了大量 Node.js 开发必备的工具组件，比如命令行、网络库、文件操作等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"bugs":{"url":"https://github.com/tpack/tpack/issues"},"homepage":"https://github.com/tpack/tpack#readme","_id":"tutils@1.6.3","_npmVersion":"6.5.0","_nodeVersion":"12.7.0","_npmUser":{"name":"xuld","email":"xuld@vip.qq.com"},"dist":{"integrity":"sha512-5JjAP7vLkuGddvKjsvVtaU5A/UpnrHrlpAxLo+RQapuVMLoIWDAJpeTnJtXXr0eaRzXQx4dEZFZy7QbZXSp6Ig==","shasum":"4833b4ebd72895d3ab2331022790f5c33fe82a24","tarball":"https://registry.npmjs.org/tutils/-/tutils-1.6.3.tgz","fileCount":68,"unpackedSize":590243,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdf06fCRA9TVsSAnZWagAAqSoP/Ai3CJXLES9yh1kXPB/d\nN2d6gaKJ0Ze7OKg8FSZK5VApUIN/7b3FtcYzOwRbmga1QMwSXHwCR8vGx++i\nQaQG39JBy/hvhdijqYnFCW9rYhK+kNufvmG3uJCYu52DSw0qVVV1jnMlmRY9\nay1fmjK5pTPyf701LSION5msfMITAJBMabhytK/7o6OPsJWQ7HXHMD+GFFFB\n6VKhtXe3SOk6rJ+tKaTVfZrCxGgbmEQdLPIIY6Lrd1mNcSHBMaEGp9QWBLZZ\nE58Ro3DOTM/SqELQRVoXK2Nps+ZaMGGJbr3HYo8DRPthz1EeA7x12SSJbmPP\nDnRt2VRB/SJmV4CJoBf1Fbw9UZ2/cjoVxGt98LJINVewFgr7IW7RpKeCQtc8\n2LZEIC8coQtDTgJSz/fUaKWaSe6Obg4I0TD1xFlrSnhpAkGUTiC+I8sMvGTn\n5NE10iDzpbVC63loOzqPF6DTE6O+OLJzZgcs4ycY9VNeo+xIz5hmwvKs+m4q\nM+mMXVcK8xg6YI5KegbIDp9yCt5hM4eTu1PSan8Nrxvzxa9a6JWS/8TQLEuv\nZi9yfmPCQd/jPhD8DkLcpJ4xYCOwkrACIkPmbRvWvm9VfLGHQhQRACg4zgoP\nPhbKWxTs2qWIyKSjFG1uPTdSdAl8aY8X+QfChqNyMWgeHnYE+nkuPuJjcTbb\ntjkk\r\n=nszB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID8x/N2eb9eEOYZD262+EARy8bvifzLaAg5+F/ZXCu6hAiAdTwr2MFGoFxFXE9S8/DKI0N9Jfs+i1wmj+Z6bRxJTFA=="}]},"maintainers":[{"email":"xuld@vip.qq.com","name":"xuld"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_1.6.3_1568624286508_0.6599847648940107"},"_hasShrinkwrap":false},"1.6.4":{"name":"tutils","version":"1.6.4","repository":{"type":"git","url":"git+https://github.com/tpack/tpack.git"},"description":"TUtils 提供了大量 Node.js 开发必备的工具组件，比如命令行、网络库、文件操作等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"bugs":{"url":"https://github.com/tpack/tpack/issues"},"homepage":"https://github.com/tpack/tpack#readme","_id":"tutils@1.6.4","_npmVersion":"6.5.0","_nodeVersion":"12.7.0","_npmUser":{"name":"xuld","email":"xuld@vip.qq.com"},"dist":{"integrity":"sha512-5s6k4SUhVTqyaEICd2YH94l21wCcOpUSKDePg/8DKO4lf9//SIWQ0CcKiBZjxIFPplUp+Haup9OzpFdSmbcKsw==","shasum":"168809164abf7e77fdbecd9456d477b9950092dd","tarball":"https://registry.npmjs.org/tutils/-/tutils-1.6.4.tgz","fileCount":70,"unpackedSize":628654,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdgEmSCRA9TVsSAnZWagAAGiAQAI9TgpSh2oBS0wBkBKyf\n/H4/bGLkfDOyc1xMZnGK00pCYKf7yw3NqOTaZCinVZ9FyCyt6QFr9np9Dp4f\nPW3Q6IUhKmtg8flYe7cobC3LQql6dXHkljH3vs1rwoBxAvCsFqqBSwFLng8v\nHpJA/KBmUR4JgB8b6oGXyBtr5vi6f5HmPihdEA8mpYTKErYOcv4SkDnlK9Hc\n9wz1PeQHg+9/G/BhQN4AUGHwrpCZdrnV6ClwT1BKLwJc1ZtrNyJhvRFDHVrN\n9wMEGxZIFMO1En8LLtYTW8PPotFylDNCA/AaCqTwNyMicJE6UdLBN1lTdM9j\nP+tQ9/rXW9KSZ21E+Gw9aKdJW0PqWK7smXHKJN2ijrEcHK7rCGbIvfQKjEJO\n0AwQl/VrhTe87j04qrEwyeOY0t2LH4RdJIa/P1np4db9L6YOxvhWMr2IgOH2\nEQlLrxWUSHdPQ9Jr3kZj4cXOkw2lKiEzXG3TfHfHaiCISycQEVTrKVZAe1m1\nCnZgzbvqaQNL20OPMlDWFhAAXzLuVe9vlFeudoBFQFMEkUoJc4XkhD3V/MKc\n+XMFTB4izSJ9p+oWZXe10BMChvRZCsIqvVN8kYpyqw7lwVaI8WEbuSPXADFA\nAJJZc345CGhtY4PF9KnDfFx+7tAVj4z8OZfb8B4n54kwUDiTJ/u5OtQpDRAI\nwFmC\r\n=UfA9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDRCbv/ETHmh5PG/2kczkVFSKPN43Rn9+uBV3qlXavobgIhAIWhgCuwPXcT92YbI9rABi+l/jqMKyucEc6tNfHltRaO"}]},"maintainers":[{"email":"xuld@vip.qq.com","name":"xuld"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_1.6.4_1568688529892_0.6418135341385671"},"_hasShrinkwrap":false},"1.7.0":{"name":"tutils","version":"1.7.0","repository":{"type":"git","url":"git+https://github.com/tpack/tpack.git"},"description":"TUtils 提供了大量 Node.js 开发必备的工具组件，比如命令行、网络库、文件操作等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"bugs":{"url":"https://github.com/tpack/tpack/issues"},"homepage":"https://github.com/tpack/tpack#readme","_id":"tutils@1.7.0","_npmVersion":"6.5.0","_nodeVersion":"12.7.0","_npmUser":{"name":"xuld","email":"xuld@vip.qq.com"},"dist":{"integrity":"sha512-CAtXYe15juAY20CMpaq9iBhClA/Jnul91GNCyuSaudqmQdFeP4ziUil6VdegVJP2hczgINUe97WTNyANrce0oQ==","shasum":"c75308c155132be01083a874ae6b5ad588685212","tarball":"https://registry.npmjs.org/tutils/-/tutils-1.7.0.tgz","fileCount":70,"unpackedSize":630110,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdt+JlCRA9TVsSAnZWagAAceUP/3t55TnFOC7bmw0W3zM5\nzMHONKXbT6l1oW0vSk1k/3iQUlkJZN7vRF2/fcth8FkrYb1xv9dutRef4tdd\nFlQz28cTdd2MQevkx07BjomV09oWWtpwR2q27bN7q4ySZi7Wot/vCanP3Kwk\nrYB/2nvLnBEpVt9lSDHc8mJm20FthifgficdRnm69qC1tY3A19tniPXBcxOD\n+svLs2NLKyg7uuGVCvUmKtD+E8LodnQ9D6k61ry9LQIpslKcRt/xeW1RIg/t\nTnuhLY9s/Uc0u4/wslBGn/hpgyST7YdNnXBfv5OrGBXG04jXFUICWSqX9bwF\nMVL/YR1n+5Zx6IhVFL73NYC1HEVEUJYb0/7jZvTFw9XMzvoOvR9XT47JS82O\nnsxgwrJWMx5NdB4qvfH+Zhlcj11UF4EW+43FCGgYb9CIAWXQfL4uzhkXWiYd\ndvF+WODmsGAQGHEJmZpn6uVi0nziMK7agrgZvG1vdXHLYLXYo80JrMPmlq0m\ndNJANbPVbCvGepCFQV7txVLCkTnGmcZZwG0qtwYw3UDCQyjBjHAbYDRu2Mp3\n0NNgwWGBVCoby5qYprlm1EIxwBjW0wmX/nGMjbl6Xya4Cwk9g/K5UyfBWyVq\nbAK6oFcJXqL0kOe3MsUL0HRTjCWLDmKNJN/ljUPEV67GVo4a8huKPINsOe9c\nZY2m\r\n=GcfE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDYqnTr8xZ97fp6GK9lRkKsrwWvFFg9kRlFZyupYeN4uwIgEOYVqaEwZMZecvTAAAJEWmisFP7Q6SVzkmCWTx/R5mI="}]},"maintainers":[{"email":"xuld@vip.qq.com","name":"xuld"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_1.7.0_1572332132919_0.7726695326358193"},"_hasShrinkwrap":false},"1.8.0":{"name":"tutils","version":"1.8.0","repository":{"type":"git","url":"git+https://github.com/tpack/tpack.git"},"description":"TUtils 提供了大量 Node.js 开发必备的工具组件，比如命令行、网络库、文件操作等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"bugs":{"url":"https://github.com/tpack/tpack/issues"},"homepage":"https://github.com/tpack/tpack#readme","_id":"tutils@1.8.0","_npmVersion":"6.5.0","_nodeVersion":"12.7.0","_npmUser":{"name":"xuld","email":"xuld@vip.qq.com"},"dist":{"integrity":"sha512-OujKHTv2P30ojCgxxY2vzeL6suyk6UXo6y9djVZg4bxbdZZhb9mzz51Ol4Y0CO+A3jjgymV6eqstMNoBk75LGQ==","shasum":"66462df94805c022bb8b3a965fe90551834dac35","tarball":"https://registry.npmjs.org/tutils/-/tutils-1.8.0.tgz","fileCount":70,"unpackedSize":630319,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJduP59CRA9TVsSAnZWagAAXMkP/2dFoerC/TjvgLl2YVVC\nW2MSpoi2IqVSM6ves/jbUy+K2Z1A53L8+OI/UdsJPzMGiYyAlSxITY3T+A1L\nDjxw8eMKL4y60fUU0iPHmR9hXyZdMX/R3IbQlFpeenfKDQaasME4MisFKDvJ\nONDNgAEEd5ONi41hMH9+LLzfpnLzmYfzxmVhOh6KzMIVcH/cP9/oCwjf3jpS\n0EOS4RKYrdbiBsHSm39A+rxBif9FJOKi9pko1n9emhHbjMADwzJjQ5q4kREs\nJk+1BWegCw6k053TgRLNfSabVv8n7/h5Sr+UmECML2w9LHAzgYRtxE9qc8vZ\n024ha3SNdQRyIYCyUJ3AAsUka4LqiWqurTOfSjykEk+yWTH92h+LbtqRE3Dw\nyKes6Z64UhOqB7RJlOGaxb4PzAVzMgFivQuqLSeUHzwITxmmlX+h42VrCSUR\nLGslTJ1ToX10dTJmqcQI22fgowUhOBZtylarkms9vDbJA7OLL0zLlg2a/pjZ\nsxfoQXWdJdhxJ8iQ2iSMr1Y4sdPSZM39M6v91TmffFsMIuxzRvGCAEOKwq0w\nf9AQvniwaV8XuGhyl2olmSlLSvXvyaODq6/6gahqd0aqmvZfww4MreUXPxmG\n9VenDNotRBQASL3ksLV+TI00iixH4PYuEp0Vt/AhUaurWTjW4KEieubQ8kQy\nOTI8\r\n=qEuT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEHESyUN0V93aq71U0AfZ0q56SVCUb2NkRdK5Ba0EsrzAiA+iW5JA8AwEjBoT6XyBejIc/nxino/8qo0UVBl4yAQOw=="}]},"maintainers":[{"email":"xuld@vip.qq.com","name":"xuld"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_1.8.0_1572404861105_0.37076123723464716"},"_hasShrinkwrap":false},"1.8.1":{"name":"tutils","version":"1.8.1","repository":{"type":"git","url":"git+https://github.com/tpack/tpack.git"},"description":"TUtils 提供了大量 Node.js 开发必备的工具组件，比如命令行、网络库、文件操作等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"bugs":{"url":"https://github.com/tpack/tpack/issues"},"homepage":"https://github.com/tpack/tpack#readme","_id":"tutils@1.8.1","_npmVersion":"6.5.0","_nodeVersion":"12.7.0","_npmUser":{"name":"xuld","email":"xuld@vip.qq.com"},"dist":{"integrity":"sha512-cqT4XyxEw0tF36vFS7PSvvcHzfdZtDhxBfpk/HTWnYwZGsCT/UG1j9alUpI//1uuRYkHiRhJd2ZSN+fzZfgXug==","shasum":"2decaaa631acde971f2fb76ceeb54b19572bd1f9","tarball":"https://registry.npmjs.org/tutils/-/tutils-1.8.1.tgz","fileCount":70,"unpackedSize":630423,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJduQecCRA9TVsSAnZWagAAGFsP/iVsBpjvCxZtzF3ekTX6\nSWQKiaWGqnBs0ko+TbwRGk3W39UzqHbkzM3T3IAsM545xjRbq3m/xhR9MAnh\n9xz85DzudbCouGQsAOqmIoEr6zLP83u8KzPmDI6lNZKAOkkU/6S5pdkjziUV\n27/XF52LAmiXaKXnGOJEptBrtXH8O19Gi/Yz4mpbNJlVcrmHTRoYjZFYkZWu\nxzTmId0qDFq5JDYjAfLbjgwEduchZ6+UUSEU87OprL1J6LzZoq4I6gqz5Egf\nuOi7LxS6fihhwxym9d3aryDUTdAo63yzX16Jwmcl/S3E+gKjt64alOWC87vC\nNby+nPDrYYjNAnmem2XyIF8+aOpF3InulBeyygGw6BnZo/JFyv/eTDPr3Fvi\nuua4rikEdE18DGG6WHGurApl9vvM+ZCgTP2tKc6XYRiLsEQwRYNJEou85Jse\n6UuloUmxER7D3zMi01UzYW0KLwqHHqUnDQ1OL4YhNGTfJvxLY2pDKPxyC2HG\nIpr7qmc2ArDX/e8cbSnXcfF7dgOxGK1nkUq6WF6mi60hkx2YcA2/bBeFQabP\nHiiWDKwI34Cgu4q5WOM4Q/1eLSl015mNb++qpyuKW72oDe2JaMi08py94Q8z\nOPV6iuFyDLhG/sZWP/opbIAnWE2Ed6/Pweip+hrTMGGshKb+uoi8OPwLrjV6\n6nRr\r\n=2Veh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjueyw8Vbx16jFXrjx9e9h8a6lK5TeE2qk4LANMCA0fQIhALRGCkbNqXhjgKdR6icWKtO1lovTvQzkSm5lwOCtpbbc"}]},"maintainers":[{"email":"xuld@vip.qq.com","name":"xuld"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_1.8.1_1572407195781_0.03176510873646454"},"_hasShrinkwrap":false},"1.8.2":{"name":"tutils","version":"1.8.2","repository":{"type":"git","url":"git+https://github.com/tpack/tpack.git"},"description":"TUtils 提供了大量 Node.js 开发必备的工具组件，比如命令行、网络库、文件操作等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"bugs":{"url":"https://github.com/tpack/tpack/issues"},"homepage":"https://github.com/tpack/tpack#readme","_id":"tutils@1.8.2","_nodeVersion":"12.3.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-FN8E3/zICRNAPTwJlRRxVq0wEHYcyekh3Nqc/UzBVNP78LWls9rxzPjchI2WChjONLCKBnelz/FqL4DODwVvQg==","shasum":"8a6d93bbabb462b6970c986daa6e8cf259885353","tarball":"https://registry.npmjs.org/tutils/-/tutils-1.8.2.tgz","fileCount":72,"unpackedSize":638835,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5P+eCRA9TVsSAnZWagAAxSQQAIwhlQRTpkpmP9Af3lsv\nlPDnzFi9C5IW76IeVqpcvrRFvYHA/9ypj6E7QhMTVZ8mbKT0fgtS8TswXs8u\nxmGk9Z0bCBbDIpDUAw2gGNmGgFMm9Y0rbDAjXr8CFObpaRDGEVryCoSCPczh\nVF2qa7NgZt1DOBGc/3TGj3iKeMC9rAlL8+2PCPk1uzASBc8lwA0coueJ/YC1\nbTL4YIIrAZd9pZvAcsCqYkCF+UTKr3NqDGPeML0q4oyvwhd4d3GFI31yO5Wk\nHcNPDLrRHh7mUyqeD6zm2aLouYNKqkZsYV5j2iEbMgExfO9BmB/DY2Do9EdK\n3Lug0LyJQitdZRu9at7iq8oyyHizvDBAx48j+w0J3D6b5I0EdOmBnf3S8IjN\nR6zZMXJwbsgDo/ZPmnvO7zTPQaI2vvjx5IdC1e0GkEzmFGWhmTdmBo2ZRejg\nw0ulBJKHpuMh+hP1HZl9R1DDDzZtOFL4kn4rWZF1X57Z8RZuvi/+4diDtlFO\nsA/yq3LPKixe8f2g3shJzUyJpIk9QtRC1fGKryI+vid5lQmNWAYHEP1tpngA\nblEdwJ/iCFmpBjO65k4wrP3QuyB+lkpqIfbXqTjRc1tUSPY7wmddeeGsjum5\ndLGe42JHHLPV/Hh7WwThgfjqBculLejxlE/yOBlnjgxkf/orpOjnQAr5FCdJ\niZp7\r\n=qU/J\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFnM9pd/rSbLgofP0nG8UUqxLNE5tI0EMGfYqmCVWDuIAiEArzmIorzSiHzgL/+pCal9jYCJDg70G6fKgrZUjwk+53g="}]},"maintainers":[{"email":"xuld@vip.qq.com","name":"xuld"}],"_npmUser":{"name":"xuld","email":"xuld@vip.qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_1.8.2_1575288733656_0.2730539184334293"},"_hasShrinkwrap":false},"1.8.3":{"name":"tutils","version":"1.8.3","repository":{"type":"git","url":"git+https://github.com/tpack/tpack.git"},"description":"TUtils 提供了大量 Node.js 开发必备的工具组件，比如命令行、网络库、文件操作等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"bugs":{"url":"https://github.com/tpack/tpack/issues"},"homepage":"https://github.com/tpack/tpack#readme","_id":"tutils@1.8.3","_nodeVersion":"12.3.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-pAYKGy8U32S7CaQ9Q2F715CPfi5X/nuah3dQLAiqEoJbEJumShnUE/Fxs/3994psWaOWZ5+m2PvjbkExoVdfrA==","shasum":"1856710c9276fb1d58d62651e69fb3524a2b4e85","tarball":"https://registry.npmjs.org/tutils/-/tutils-1.8.3.tgz","fileCount":72,"unpackedSize":638836,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5Q2WCRA9TVsSAnZWagAAVv0P/RUPmHARq24ptLVdSGtm\nG2yvY9XlRD4THPZ5PhuaraechWXFDoROgbHzzp+Rhfb9S7UWAyu29MnWkGxp\ni8jdu4GjzvqSMGCeWmRcuUGdiSW8rPccEGWbiB/MHy/N7eakX9VTHKdf4a25\nxqTj7lty2pLlILFgRIhE27Jw9TIxp4KMkh3LTHwabeKqNM5YhgKZnVdsFrw0\nGtXyxYm2bR5xr+OYI40d9zJalgM0fsBInosMnkW4oj4gLRlkzJY15PLnU88I\nZ2lse6+QWZ+jLdtIgENtiFwAq5GjqQVJ0itam0AJGAe5aRH6DZNaHDT6616Z\nid9Cx9HqVZUen5XYe9w4UpkFO2/HnwSXMBT65ecaFlNrVzhUgDwTH+/cWYFm\nEKGA9tA7JiLnPLxmzb8LrsPAYBNwCMpo09ZHov8sw58RVLtMmDcjld4LKCQ7\n6y7UecQ5wbM3P7T5esG9VxJzjeDMDOkYFvm/zjP8ZOYjet9qiWFsMQdOkSJF\nve5JVwgm1ksMznRJ/pe4hkFLknW97X6LnflIW9w+P97YAiQoXafU3wsefMNa\nV/yu4E8bxaoGa651ICyAQmKrBxE4zPpbHs6m1utFnTh1D40NiPNRygunYORC\n3PBY/YyZMO+WyNzNgX16udZGn6LmAd3TQCgrzv23ekKYXA9cCXz3kkTeYEa4\n5OgF\r\n=6Snv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA92hPkBVCQUBQMjwY0FBVsP+HhukzugYiZrZGIedNO6AiEA5BB5fWAaPyVmqzfUQmbp4+vJ9NR2QimUFq6wqUiiTD8="}]},"maintainers":[{"email":"xuld@vip.qq.com","name":"xuld"}],"_npmUser":{"name":"xuld","email":"xuld@vip.qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_1.8.3_1575292310205_0.057512834074156194"},"_hasShrinkwrap":false},"1.8.4":{"name":"tutils","version":"1.8.4","repository":{"type":"git","url":"git+https://github.com/tpack/tpack.git"},"description":"TUtils 提供了大量 Node.js 开发必备的工具组件，比如命令行、网络库、文件操作等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"bugs":{"url":"https://github.com/tpack/tpack/issues"},"homepage":"https://github.com/tpack/tpack#readme","_id":"tutils@1.8.4","_nodeVersion":"12.3.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-QipRwpDHNLESOT+iD4bpYhV1IFBOJfxmmKVVMSENNQvSzYIwh+wx69kHFANdXbgpuYhv1Cs7bKBuOnWS3+zQmQ==","shasum":"22e7047e9154ab40bc0542a0d65fd5706ede00ae","tarball":"https://registry.npmjs.org/tutils/-/tutils-1.8.4.tgz","fileCount":72,"unpackedSize":640531,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6h9oCRA9TVsSAnZWagAAZZ0QAJohpGjkAgFsVBhhgRNe\nBTKUMi65eZBn3Y7zu795nOZT0iCi5CfGH0XB96q5zhnE4RNhVTMx+SbSgnNY\nReIVq9Wn2+/WiwhG1biY6GoYGAR4e0BDtiI7sCRTK/Z4fI2psmyW5srPQgrj\nvJbt+gEEYiuNcxk5OMgfI37JZIKZ28XTqTFg8LFQ//WHY+gSX56DhYZOaO9a\nRzN7NiF1LLXz+jmh/uJ0kWtqGOtQpt6zzyIYMDktruRFM4stAx9mNryJisXe\nx7PBHcyck/zUkX+cHYhizIni7QUHQfxmD4NEqlurmiykAw6Myg1YKVeo+kBT\nwBRfvN4xKQWY/peiGlNLv3enPeqc+m5KUO/pJgc3K1hcw+uCT0UiUtI3deMQ\nheyQeg8itcppx0DyvWP0izJl/lJdHZpNLawEPXCwGh5JA62yxKtUZjkbQegc\nHmCWke2IZykUisRY7TyRrpJlHSycFLiQx0zo/B9z2kCsfrofHIvefmcXKXWd\nTaAg08qFC5hQZ2mBEWxRSrZzv4eBzOKd8X2IIAr9/bfT6GSw13QaAVBKg53W\nC58x6DLSg5mlQfgM25Yyk9B7vFY7khC2FJKylCaBKirZE1TeB7lUJKBMV6zp\nI4wquO6rNw7aWBp7dtmJLueqzHSRayybfY9aqMMatDpp8ZgV6gGE5bYpMeVY\nbMf3\r\n=3KjX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCHz/tvG8WzbuwiE+oocSyBr3UOaYoBMq6sTy+FUE7XQQIhAN/p2zE0lpcc986rcVDqURqKl2xwH1KHm6qQCeoVE1QH"}]},"maintainers":[{"email":"xuld@vip.qq.com","name":"xuld"}],"_npmUser":{"name":"xuld","email":"xuld@vip.qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_1.8.4_1575624551820_0.45184811497546984"},"_hasShrinkwrap":false},"1.8.6":{"name":"tutils","version":"1.8.6","repository":{"type":"git","url":"git+https://github.com/tpack/tpack.git"},"description":"TUtils 提供了大量 Node.js 开发必备的工具组件，比如命令行、网络库、文件操作等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"bugs":{"url":"https://github.com/tpack/tpack/issues"},"homepage":"https://github.com/tpack/tpack#readme","_id":"tutils@1.8.6","_nodeVersion":"12.3.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-hQZJrXJbvrSrzE+kTL86rrjRivSdCrZqSmG5GbdglV9WA9o8LoKI0DGCH+9BPye6Dk6Y+pjpp/IGpR+ggDm/NA==","shasum":"172037352abd773e974661522b4a9fb51062a7f3","tarball":"https://registry.npmjs.org/tutils/-/tutils-1.8.6.tgz","fileCount":72,"unpackedSize":640940,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6kGECRA9TVsSAnZWagAA7rAQAJ86oJ/QRwaTx6xNCOZN\nqUV53+HFwQpgk5av8e8P8lOhh5ex0pa0GhGmm6pMrSq2mNPGpFTFJWvWw1ud\nOWiGkTf2UizxN0y0Rz/whlxtopNQqmG3I/pVVE8g0jgm00Jv5ALWas0G590x\nLH4vaFpEhznFzzz+y8I4U5wFDI0jjaHO3I+ClhSh6L7i7nnpdh1vW6m39cXc\n0RhP2EZX8A7EvhMH3HBVVCUUqkc8f5tu2Q/KzfGo6TARrMvwxSdDx/kgLeCS\nuHudqTQgNThnL4heWytVrq6pA5j7+pDNYCtwol2QR+BUBQVT2DOreAYmKytf\nZJPBJOInBCJN6vIG/yJElIEqt2mbQz0iPcIR43vAxuiB37R1vkuONhedwvYq\nyBDbc2olaKsJNmIZg3vl/Fg4TFNUXAjN90dMPZ34dViHVLjcHs9JXxNcZLDA\n+vCOOFIw6Yz+HBvbOu6GENsJou7lQHXzSdNXbUq7JKsSt5/K6yfJjfr7TQS2\nc3vJp3gQB1jolWjwxaq+8gugC7qaqEDxz9u5FCFHYVIrVusrBPXLrlNZpw/o\nCNsRUpxai3dQTXRO+j0LjBwAbF4jjnD7CBfDyyTe7fazHaPYxD48OToLUpjs\n+dzXVEUzT8mbKNLLGtz/lJtYG7SaJQ9iLDVcYyiXxlgfLFed0r8n/P5FGUMJ\noa2l\r\n=gGta\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCZLh0KqobFjYZoa5HqV70nsdF7n1rkFl8OS3bJb6q+6gIhANkwuXm33FZIR/VM1E/LdvkQqFP8/Fn+SxkSCuiqwXA1"}]},"maintainers":[{"email":"xuld@vip.qq.com","name":"xuld"}],"_npmUser":{"name":"xuld","email":"xuld@vip.qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_1.8.6_1575633283820_0.5826469211316974"},"_hasShrinkwrap":false},"1.8.7":{"name":"tutils","version":"1.8.7","repository":{"type":"git","url":"git+https://github.com/tpack/tpack.git"},"description":"TUtils 提供了大量 Node.js 开发必备的工具组件，比如命令行、网络库、文件操作等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"bugs":{"url":"https://github.com/tpack/tpack/issues"},"homepage":"https://github.com/tpack/tpack#readme","_id":"tutils@1.8.7","_nodeVersion":"12.3.1","_npmVersion":"6.13.2","dist":{"integrity":"sha512-tBLEqZ2iILMaEGZPiYz+ptMZkTFbTcORgiFquyAqvieMylUa5bZPIVBs1ZZYzjFwv6jo41EDLxQQuLNBdF57GQ==","shasum":"f6b23cf5e83cb3e1ae671e2c375b5c6b45b9377f","tarball":"https://registry.npmjs.org/tutils/-/tutils-1.8.7.tgz","fileCount":72,"unpackedSize":641492,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6m4aCRA9TVsSAnZWagAAv+0P/0oipf9ZX96ZshSZJjug\n+HaF4BjP3zrsetYjGjRVHJRIad9nsh/ukVBREjjBSs17clqQvU+8lkNs1UjQ\nLbH/k+2ClTaNoa7rhZqfpQ7rCpG+vudcBkLLT3dnPc8nuXhv3K4Bqm+ZbMGJ\nv2GwF11rlPnuEu/afQMZXB8aqI6bTGoLA21irewl2dhCnYQTSlcLYkU9j+aY\n2uVWjCIOMHzrl38qjgwJC/MC7ccD8q5JHBnuI00ObGxm3I6ZucVMgcGGRdEr\n0hfdXgq6BT0QnLVGles0p1ywUzn4Am7R7Ie4OnICuF6SJC7AgaP9mkPykfri\npODAC/QI7U97kPDO/JYva3aqPdq2YLULctkUb5Ibb7M7+G7cuRmD5kao4as1\nubHxpkSW8hbfwSFdiGsj5XvJO22yOIlC29ayeDPh/CETmGsmo6fBr8Zqq2CP\nw5ScTR4hsiK+h9KlwuEcF0tkhu0Fw5tmDTZmvfmWZKupdocdMmHkcwCrSmyX\ncWu8U3+eB8RUq2VYyctA8j2Bpj+KU8jBqLZ+VIOTTWwnrY/dIYozLV4xK6og\nYZwfS943w/icAuimYaod/4PdA6Zsa4Pubq1h678Vlbfs43Nex+whoqEjxK4f\nX4bCeHhydtS4bI5KxB+HUy64cYXnlaLB0J6+N38m4eANRmfCORi4iKW/Xdh1\nLOXE\r\n=7B0f\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDC9qwAF+sPeXeIFXiOxS3lCOwuAPaEtuGiZ4t/gad2pAiEA32PLiSuMI12gxkXSNHmms2n6BjEhYF4M4rCrgj99tkc="}]},"maintainers":[{"email":"xuld@vip.qq.com","name":"xuld"}],"_npmUser":{"name":"xuld","email":"xuld@vip.qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_1.8.7_1575644698348_0.13811859346924926"},"_hasShrinkwrap":false},"2.0.0":{"name":"tutils","version":"2.0.0","repository":{"type":"git","url":"git+https://github.com/Teal/TUtils.git"},"description":"TUtils 提供了 200+ 个 Node.js 上常用的工具函数库，比如通配符、文件监听、网络库等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"bugs":{"url":"https://github.com/Teal/TUtils/issues"},"homepage":"https://github.com/Teal/TUtils#readme","_id":"tutils@2.0.0","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-ghIfan+9q/gh3qxqF7uVe/ZGa/8A+kguPGfSUlO2EimHSUHKH8wZ76K3i15nd9m3CaoMNOdxGBgbLUsigcPwYw==","shasum":"7f863da7d614197369942471ba6817f068fcbbe1","tarball":"https://registry.npmjs.org/tutils/-/tutils-2.0.0.tgz","fileCount":71,"unpackedSize":617060,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfcVpSCRA9TVsSAnZWagAAst8P/A1nDs+e7Aqwc5BZCqyQ\nsdDjbrypFf6ld5TYKKDQ0RCZnMSxRROBqgzL8IraQMBbyHZWZjYjrcnSRTiC\nMoG4L2zl57ZcB7TZYfvDX5DBmF0MtihZR/hB89MAipnL+RP+5Mjssav+8OnG\nchQ2eGeiPYukfDkwBoqvY2JulJ4mfsOn24jK3+TCQEWm1HMg5+6n03EVJHST\naGByaeprjHrPZghv0m8E2tDCxleX7rYSLwBfxxTUqjHlJQhrwC87JCyv0/UQ\nU+iG/0hmJc2HIZBBZHn8kR28QSHzfJiVJqfO5mD5kXl53fGWer8ApByh+LJA\ntDfiXm8ZKHymrr6iWcwV5N4m2s+tSNLxaT4kxPK4E4yc8/MUf2Sz814XCpfP\n9qKde2p0z2tyUc5NEScE7KKv4ErY4brsJkmLjxr9NKG3zyBQidbO7TDBkzFj\nm3xMuPwVGV5umZKxmywjeJpJx0reEesS+siy+7agQkS5KDY4+YE2Ved1YXD2\n9MKwXSSEzcJ0I2jX1rZEBmud+E4ifOaVFif5ZfBP6/A17EeWheM+LbRSVzYo\nTyce6lfhZrg5IKWdg70JQ2z387yiE7OxxWuoQUIZqPEs0bP7R5aJLHdBCHau\nOJ4u0O4iFm6aqcBhT+0BlPJcYpfMYOTfoHRONSvbg6xpYJqI/ByRjoXY0029\nfQ3v\r\n=5Md/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICgqgJx6yYJvKwTAbxo0aOvPcWJyyfynuTK6ofLKTSLWAiEA49I9JeyzI7dq81NckOW5693elkTDBccU2sL9JwELJfI="}]},"maintainers":[{"name":"xuld","email":"xuld@vip.qq.com"},{"name":"teal","email":"teal@xuld.net"}],"_npmUser":{"name":"xuld","email":"xuld@vip.qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_2.0.0_1601264210387_0.24353882637809088"},"_hasShrinkwrap":false},"2.0.1":{"name":"tutils","version":"2.0.1","repository":{"type":"git","url":"git+https://github.com/Teal/TUtils.git"},"description":"TUtils 提供了 200+ 个 Node.js 上常用的工具函数库，比如通配符、文件监听、网络库等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"bugs":{"url":"https://github.com/Teal/TUtils/issues"},"homepage":"https://github.com/Teal/TUtils#readme","_id":"tutils@2.0.1","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-9IaULwL7Vq+OL+2l4ssOqKLhj7v9z6KopzMwVh/fdbEEM1R0qNtwnlhjVNPkEGgPcIWvTukDetRu/wqMgnTDTw==","shasum":"637419e92a361b95379f4187c9d482e5d6e3970a","tarball":"https://registry.npmjs.org/tutils/-/tutils-2.0.1.tgz","fileCount":73,"unpackedSize":622433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdIyuCRA9TVsSAnZWagAAhWsP/0iXfc/roVQts62n6YpX\n6xSYmImjR3BLBrRZ5U0YGXBWbMpKhANuoB+eM3VGVq5+6t3t6TgIdwqVbwhF\ncdcA3PX/2LQ6Wrg3TrEjrgIRxwism8mEwMVlbhp7+pmKBDie2UB+qiHL07vt\nEL/VvicKcQspl/UR7p6VCpt+rruN8dOZjScQiFSuXpi9iBxvm3YuTpEc58MX\nJ7xSmBHZGQY3IW43asWLv2/7llKIeKMIIHo+lyFKxwIyhfYIRncjvTrLoQyE\nIH0rz4jSAYrRzHJmtdKuRcPjmgJziOQoONo/ykfN2/e7cwPU1/0abNFx2n58\nFzlCmEVii/d5LBcIZ8C0OgJdBDT1YjxAaTjH+gh0OaZ0Nc3u+3Ui6LPWFz7T\nOToeA6wSwwP+KUnEGM0cnOPLd40NkfYPRn26FFsMjHzw+TfOPvnlqjTNI5lO\nmycemWHsdtQE8iZMMLi8/H159Zia6Qqw0Xnfwvr0w+pd6h9NjZH6it4n1mD+\n9fUeFFWGyPCDNV5QzRIoAK/VuyaOT/rAWEl5y2h7KTPjPKSQJCRdq+XS7kTL\n8XLrZx8xfBY6Sl2cAdLTwPQlBfBZ03u2dUNKzuAo5svRNDpvxYSeMT0rEjKB\nlbKOcN2DOvmVOQYyMkMYBwQ6f3Rez1tdP1LDNFG2DD0CSsBkrI3s6dltbknh\n11ei\r\n=CvL5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGgwlmUWVlhDCLQMa8YuwqWHEGLoL1PIBCwwRSC/KcBDAiAGZTtOeEWU7H0DQ8JKEaQZyniC34AzGmCQffiWJzj22w=="}]},"maintainers":[{"name":"xuld","email":"xuld@vip.qq.com"},{"name":"teal","email":"teal@xuld.net"}],"_npmUser":{"name":"teal","email":"teal@xuld.net"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_2.0.1_1601473710256_0.642222884592933"},"_hasShrinkwrap":false},"2.1.0":{"name":"tutils","version":"2.1.0","repository":{"type":"git","url":"git+https://github.com/Teal/TUtils.git"},"description":"TUtils 提供了 200+ 个 Node.js 上常用的工具函数库，比如通配符、文件监听、网络库等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"bugs":{"url":"https://github.com/Teal/TUtils/issues"},"homepage":"https://github.com/Teal/TUtils#readme","_id":"tutils@2.1.0","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-zjQekI1ghVAb4kLw5hTbJEx1ZhWm+iOCpTGTWv8U56zMPgbJdtuU0pVwnTqrgj5I7aPS7qU2es/uhddFyMc/lw==","shasum":"ef7b4e87513aeb6aa8e11c30a5f77643ed8ad9cd","tarball":"https://registry.npmjs.org/tutils/-/tutils-2.1.0.tgz","fileCount":75,"unpackedSize":625593,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfgTVACRA9TVsSAnZWagAAvV8P/2UOfM3qsG+FK4EDJdB6\nAm641ho9DBExd0cT315/S6laApA37lRNRGC4IU96885y2GMmUjob2yIIDPyt\n1iAEAzztbz3HvgjKVIFv5wBdSHDvo4W1CQQzWXYAE2hcicAGl6I/cleobo/M\nLw6TjlL6W7IsNjcWyP6Un1w+k8H0VV7x43RKXln05t3AF8OWLsilDws1WUVo\nXi/j/2hvs4Uz98QMRQCusThMqkacJMPD8PTLk/I3Fe8McsuZYL9Z4CbyVBZN\nOePMTEqaOnpJ7gA/781dP9sy08Yq95KLkrp5RdBNslbcHrYNDpmOqWLi/poS\nOPu/PuOrwDZwFxQVsxzHMYaZ0tC/fRIUtlHPXgMy9qPazFgUJE1q7Ede4Q2Q\n5dPsHGfUGnpfhM9mbLodcO13xVHJS3cgfKBv4RYIDnnH68f6POc7xgc6/FlZ\nv0LDjeJgVdEzbZGecVZm2g4zyavSJo+r0Gwnv3VjKwEb8IlJajmjrc+lxznZ\ngTYVbsOXbtXmfB6GY1yatYZGd/0RwTSwlOkch37gFw6pR6//5U+jbAlC0prC\nid0ydVjCuX2/HEP9HvnVXr9KPMKYI8NIrmPtz1I9FtHIJvryP69dUJDvd49B\n4LzWZOJhazSvrYwnL/CwOG0yfc9lCuBxT/OHGheVnZTxh98YK5laIUDLy2xI\noAdR\r\n=/otT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAOZetaIPdrnHiuRO9DnnncD56AefnJZkQ+reqVWTiKoAiEA2PE58C0kuSd/a2CtxpEwVZPwn4WvfSCUr7wt1Rpwh6Y="}]},"maintainers":[{"name":"xuld","email":"xuld@vip.qq.com"},{"name":"teal","email":"teal@xuld.net"}],"_npmUser":{"name":"teal","email":"teal@xuld.net"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_2.1.0_1602303295858_0.47996736524044104"},"_hasShrinkwrap":false},"2.1.2":{"name":"tutils","version":"2.1.2","repository":{"type":"git","url":"git+https://github.com/Teal/TUtils.git"},"description":"TUtils 提供了 200+ 个 Node.js 上常用的工具函数库，比如通配符、文件监听、网络库等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"bugs":{"url":"https://github.com/Teal/TUtils/issues"},"homepage":"https://github.com/Teal/TUtils#readme","_id":"tutils@2.1.2","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-CCnURvYl/RMTMtL2/D5J5MX1wKIQuOvZX2aRVm41LywlgvKfTGTaiRiIGicjC9JDbevqluuZvBH+GV0n9jRXqw==","shasum":"c50da3718d3d65faa3d9f46c2ab5e3f5991a86d2","tarball":"https://registry.npmjs.org/tutils/-/tutils-2.1.2.tgz","fileCount":76,"unpackedSize":680411,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfgmwUCRA9TVsSAnZWagAAd0QP/3yBISzpc+AWJNFZ9S0h\nrjTY+EvEsdsKPSJZ1Fc//qFQ6C0gHMXHXIjg2WWbdR4LuKthRh3nXyGuJULm\nhg8LBrXvnF/mVbOtJLZL9z7jEXAAuB91twJlrIp2DcUesRxqVkNrLuqBbw7g\nkvLYgKCLuAZC3nClrcPhzE5owzwvYx4pfqdtzKc+nIZuDRLeEnGlzC9wpbil\nbzgMWTUesCevCiygeJA7W5/ASvfQwDN83ug3yUVfb+hOIPFNiUaW8r7pmzna\nxzVHvdSzdeVfud0nwW9hlWT6Tm/7Mm22VjfLhvPVg0xPoUxRaIbvPxhM+5LD\n0/2Yeb27A9isOwtxS8wwFxDzN9Wba7ULihILNMSQcjEtrqERp3XD0TadOb1L\npgpwqwHuMldipSQqVaw+z1+nvWOfBfg6cKTgtrzHECw/xTb2wZ/AEtigSTC+\nzR8eQ0WYFMyfPOl8F77xAMAcCw1esDNsLpVmJy1zlf6NrX4scDwNDLkaaF5Z\n2XITSI+L9u015+fzzUWvU5YY5AKVWUNJODpKaeSp1Abp51yvqg0+WD0eAKtQ\nODOb4AcCm7rWeHW8/cIdTmkesswwRkTLovONy5iywzzDcmBF0klpjuDSnJWl\n8q0Zjj2L+ZpeXVsSYK9seppPI3C26/8hQoki2oP13S5UL6oFa7+7LSks4yk/\njYi0\r\n=8Msl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD5GNPeYvRQaexg6kPB4BLzX0sTDaCWSXlsqGFkbqvS+AIgGc6U49rJSVJ2pi8dqSdt04RCrE9ma5z4lpj1cWOotD8="}]},"maintainers":[{"name":"xuld","email":"xuld@vip.qq.com"},{"name":"teal","email":"teal@xuld.net"}],"_npmUser":{"name":"teal","email":"teal@xuld.net"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_2.1.2_1602382866496_0.10746923340319792"},"_hasShrinkwrap":false},"2.1.3":{"name":"tutils","version":"2.1.3","repository":{"type":"git","url":"git+https://github.com/Teal/TUtils.git"},"description":"200+ well-tested helper functions & classes for Node.js, including globbing, file watcher, socket and so on | TUtils 提供了 200+ 个 Node.js 上常用的工具函数库，比如通配符、文件监听、网络库等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"bugs":{"url":"https://github.com/Teal/TUtils/issues"},"homepage":"https://github.com/Teal/TUtils#readme","_id":"tutils@2.1.3","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-ubnmwBeHdIk7ryyyb9fu0fGkQQeXEbgEcY4PJO8talui5zqWaq2KXK9W1nZsq5ESF9CQDKFoGGyjvY4Mk2tD0A==","shasum":"38a9d9bfd61ae226fa3f46e8972cb50f4f77f060","tarball":"https://registry.npmjs.org/tutils/-/tutils-2.1.3.tgz","fileCount":76,"unpackedSize":683404,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfsIuBCRA9TVsSAnZWagAAkrQQAIA22GYnyZ6fJVM/Ifwo\nfUU7a98L0aBCnEW2gherCqb6izZj5jvfZqjZOSwa1kdbP6JX+MEMY+dma1UI\nrHIgwLwMP8Yf6/8UMzmsmUKdJD4xXLx1Vy7HEWbMkTAlY80YsfwqNXOjHlzt\nyKLA93mE4IvSEbnRn1M7YZoPPjixb3Y8kZwG0ojhh7y8GsehjNhpIq1FaEl/\nvmOgBq7ox+sDyo01WzK4n22NJ56PI2LTL/gzI2UFbXYcUA4SperNTLADXfLz\nFKKM2eRTLcVhauLYMzgLyo0fv/fyp4kgYtydNcBxcP66rXQPO8M/H7V3sfJp\nGuQJPCt8O28r6+Jfzr+hiI4vhcPnFmuaNJZiunebZfB+49xd5QZTZBY1rwmX\nd7OX9/Rbpe3s1PAuqCtEOtkt67MwJCBjs+p27RyGgMPoblIFGtXf1/y+YJWe\nAhEUCxajBQkdiQrbgmtwS1reOzZyr/1mqMWRgEYYujyV+PnJ8yM1CzPtgmH3\nS0AlstPRd9HUFAyPIWcY36wMA2zifmTej8NT8SaTcg4ExkiurPclYUCjvCKG\niYQ6EeCwS6K78z66lRQuMf7eDNu2NqiR4ZXzn+chhCQi8BFlwaiBiEy+SwEs\nGFuqm8Ucb97GZJacm6r332msDApOFeVsmsovq4wTwW7K+euAm6yDIU1jJ/ki\nE9HP\r\n=ouWT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG5tBk3fTJXFvoPQkj3K67MRPLsCQJlxQiKQIkPrn4YuAiAhWddi4TFfkDjfSULjpCqfvhmz36XEL8SKnpXtJVIaqQ=="}]},"_npmUser":{"name":"teal","email":"teal@xuld.net"},"directories":{},"maintainers":[{"name":"xuld","email":"xuld@vip.qq.com"},{"name":"teal","email":"teal@xuld.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_2.1.3_1605405568714_0.8097582401069396"},"_hasShrinkwrap":false},"2.1.4":{"name":"tutils","version":"2.1.4","repository":{"type":"git","url":"git+https://github.com/Teal/TUtils.git"},"description":"200+ well-tested helper functions & classes for Node.js, including globbing, file watcher, socket and so on | TUtils 提供了 200+ 个 Node.js 上常用的工具函数库，比如通配符、文件监听、网络库等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"bugs":{"url":"https://github.com/Teal/TUtils/issues"},"homepage":"https://github.com/Teal/TUtils#readme","_id":"tutils@2.1.4","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-hk+rHYZDVHgZ8tDSwhnXTIm6vlfFbFFbxVP27wrZLMFp59nAAZquiay81tK345Z/9qVeeakrLtwZ8yaXxHZaJA==","shasum":"685b631e5358cecad6cfdd8064d7ba794fa232f9","tarball":"https://registry.npmjs.org/tutils/-/tutils-2.1.4.tgz","fileCount":76,"unpackedSize":683476,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf5Eg4CRA9TVsSAnZWagAAQNUQAI0hGXngsWaoJp8GTlyX\nP9saTNxTlEA2thmz8zUX3KdTaplKyMZO/lBJqODpfen1TEbW3So/vDTksNlu\nZHgXITsVhTKtENd7z8iYThJZhteZ8EDhcEuKAJPXPBp8Nf4ZSlP3h5vGlMAn\nvSe+yeISGj2fQt0jBPJl0/kOqUTLztPTMGQ7LzMUOG3t7854AxFcwVr+PWou\nlDOvh44H0CgmJa7GkaymWWCxRCpunDKkLGCNqH4qhiA9KuapnN/NDIpbaJkz\nmEw9PW+8DQa41Yd5fsIXV4wkW9J90SkJIgQpCNZFoUk6yDbQ0kUfa4IIWRTx\nyqi8BKn6wFIPEtQU85StUn5JBFNRBGol/Cbnkq7r8PJ6H0KE4RLzP4sG2s/J\nf/i0pXjXKx60/fQ5+EE3w4ixZr1G5YgiefDFpYZ1qekDdeD4SqYZPPuMMZFd\nIxIfgSaQs1NvfYTlEcQr4qD39MFZ00slij+fpMOw0mk2hbe4ORa+A+HoODlL\nTfj0XAsh0m5JAKJZHznRGlmKXWYGl2+KZ6Xup3++6/5nrkxj9KVJfY30VmcR\nDRUqOi/F7ylhJbB5rJI4cggzS1l6VOGBiQw3a/EB7PdWjPm3lk1oxor0S3GM\nokKbP3Vj4K/U3dZIs8W1Iwr2G0u+NB1R0FppRsPC9E+WCmUsuVLXIeZRkVlK\nHlL2\r\n=KAfC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBRD8Cqejpw5uHZwHLeudXWX8m5wIB0d5V4o+tgFWJpRAiBFtJwqw4MfMOV0HE67Hfb5Uult/pQU9j/7JpRfUBt/DQ=="}]},"_npmUser":{"name":"teal","email":"teal@xuld.net"},"directories":{},"maintainers":[{"name":"xuld","email":"xuld@vip.qq.com"},{"name":"teal","email":"teal@xuld.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_2.1.4_1608796216327_0.0026297078287802478"},"_hasShrinkwrap":false},"2.1.5":{"name":"tutils","version":"2.1.5","repository":{"type":"git","url":"git+https://github.com/Teal/TUtils.git"},"description":"200+ well-tested helper functions & classes for Node.js, including globbing, file watcher, socket and so on | TUtils 提供了 200+ 个 Node.js 上常用的工具函数库，比如通配符、文件监听、网络库等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"types":"./index.d.ts","gitHead":"8bcb78a323dcf467698d1fd4c3a4cdd046367142","bugs":{"url":"https://github.com/Teal/TUtils/issues"},"homepage":"https://github.com/Teal/TUtils#readme","_id":"tutils@2.1.5","_nodeVersion":"16.13.1","_npmVersion":"8.3.0","dist":{"integrity":"sha512-bz+q2p+M1y63wh39kAUj+/c7XjqxR6L7HXUi4qGl+03ng11Kbz8uk51N/V7pUCtBqwlpP2eWIa1PwbHt5J/17Q==","shasum":"d1977bdc4789136f8b21f9037e71f84797533528","tarball":"https://registry.npmjs.org/tutils/-/tutils-2.1.5.tgz","fileCount":76,"unpackedSize":687597,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiINRqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr9CA//cf+OGACFk9nc2Yc74UfJfv0Tn5L1GWx5QYUrnzsP8VMSctQr\r\nC5VtMXJnTCOOexr8W7RJDHmEcAlQcC8GI+GubCazFS+X5fXK8XIxyN+lddLP\r\nSHQ4MTeCjPx0kvRh0+Y/CLf0bjSG23KjpcDt26Onnrksl806Al8sRmIFvpyN\r\njL3AOy6oiRoBPOrieMGzlCcsbnI+QP5+c/wNyaXvo/AT8fhRcCsrRSEo1CMD\r\nYJh5hPcwMuurVvhMqvzSmymYTyKIGakq6F5SeoOrcVlwzhVfUS9QyVnsnnmg\r\n1yjJk9IWyTay5sWYsne+koSyOLyGzkp1Tt3eTQa4kYrAbTI/HnQHzkyaTHV0\r\nD8NuHRhqrKYNRPRvI6w/XMS7Vb0qXmehWBzQHlOx2YXNgF6XhMRvvrwzuEk5\r\nScHhJ4ysQW02R+ey0fdrGKTuaAuN2+fGuEU/IAUaRp/YXDL72CFaekVG7Li1\r\nyr5CbTqBHWRaKFNDX5srdiOyyIA0KyancptLlSwEAO4kacnUsiNuXKeyX0qn\r\nGP/kMmepbzhhdORm3uT/IX+JizDzWRSk+BurBLWfIwgoI6rIGroeszVKw2s0\r\nGtg8MokCN9vkMnuvxPQ8oouAoCoaRJD+qggi4lXxdnsrxutsqsQ4AF9NOC/s\r\nDGEs4rr7prKzPbdBhBkX3fK6JEIlXQTQoEg=\r\n=JILa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCbdwivPyeoUXQuFxu/pL6sFhaR8+8PuLBhGTo2cInrJwIhAOgNJE/biRok49phI/XxY87RqJhTNcTlNJSbNq3YH7Xo"}]},"_npmUser":{"name":"teal","email":"teal@xuld.net"},"directories":{},"maintainers":[{"name":"xuld","email":"xuld@vip.qq.com"},{"name":"teal","email":"teal@xuld.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_2.1.5_1646318698104_0.5931140075798442"},"_hasShrinkwrap":false},"2.1.6":{"name":"tutils","version":"2.1.6","repository":{"type":"git","url":"git+https://github.com/Teal/TUtils.git"},"description":"200+ well-tested helper functions & classes for Node.js, including globbing, file watcher, zip, socket and so on | TUtils 提供了 200+ 个 Node.js 上常用的工具函数库，比如通配符、文件监听、压缩、网络库等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"types":"./index.d.ts","gitHead":"b42133ec7ec28da91b829f193695b4362502a5f1","bugs":{"url":"https://github.com/Teal/TUtils/issues"},"homepage":"https://github.com/Teal/TUtils#readme","_id":"tutils@2.1.6","_nodeVersion":"16.13.1","_npmVersion":"8.3.0","dist":{"integrity":"sha512-LbcARfCgGJWzNnD1oo1CSazGQN644WbIOlSJmpqWdzGeGPYWtCD4UEzYM8WT6Akj9sq/7XTg/lmXxU3DR+WAlQ==","shasum":"d07f9a9df84d6312f5a66657dd779fd22c7187f4","tarball":"https://registry.npmjs.org/tutils/-/tutils-2.1.6.tgz","fileCount":78,"unpackedSize":731027,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiP/m0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpgFA//VwO0pUUhHLLjNAUtPsfWjMcG3cfdKzbPnFRpxYpFufuePlOm\r\nL0nW6boADQg7vjP55rmHsyo9xlv4nscc2JCo5tgiM0EbdErytFACRgUb7Dki\r\nTtmtsW2RSXN54ttl+rjidoMg2La6HHswSMZnz3NXIllMOxMrFulHJPLU4axH\r\nUcPOH7XXAv1GsuEGpJ2DB9xTDrQ0dnZrXC82fqhKc4jjZkmKwZ3jR/rQcmd9\r\n2ENPEY02fSKzocR39klhGIKietJyWcCrB8cca0iQcKxS4QvLR37nT1Yg6CAF\r\nogJR9I/m5a+8nJMrdB8ITqxSg7wbuh4w+7t3PTcPaNHuV1FStl08Nfr5rs3g\r\n+FQFs/YkRF9pte+HGkFvTEImQuppVUQt5wxRKCEILiYG43o1emcO39wkBftT\r\n1j/C33t3xYtZAVi0/B3hFzmm6oQjSSH173nICeWBjn4H0CYmQoA6aHFHCIjc\r\n566vOzHYerB3eO3s8LtsL5DEyfJmfsMDcBOE/W0xL3pe1Ou+LZnU40XAZlCg\r\n20cEmy+2Q8nlZMIuq8ELwTWqUUTBYd6AV1zvn8ItOhPGMEBIqNwXiH2KfZ3P\r\nJ0RafzoaeADNnco7wBy/bR/+J+GrvbPoIxXwKEy5cJpvHK9svyuz9KPQ602z\r\nL2z7kFqcpM6D6uXQBsjsHuMmGJ1QNKoPGWE=\r\n=70+H\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+UTE7QeQlwsSKxn6b9DQOEpLyK945hMWolTUhiZrqWwIhAMreRKTTI5OWIF/dR6syAWlrSTctPLiLSKVtCW4UzosK"}]},"_npmUser":{"name":"teal","email":"teal@xuld.net"},"directories":{},"maintainers":[{"name":"xuld","email":"xuld@vip.qq.com"},{"name":"teal","email":"teal@xuld.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_2.1.6_1648359860549_0.441100873211858"},"_hasShrinkwrap":false},"2.2.1":{"name":"tutils","version":"2.2.1","repository":{"type":"git","url":"git+https://github.com/Teal/TUtils.git"},"description":"200+ well-tested helper functions & classes for Node.js, including globbing, file watcher, zip, socket and so on | TUtils 提供了 200+ 个 Node.js 上常用的工具函数库，比如通配符、文件监听、压缩、网络库等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"types":"./index.d.ts","gitHead":"6afa99354bd7d6192fccb368aacb0ad1e704f679","bugs":{"url":"https://github.com/Teal/TUtils/issues"},"homepage":"https://github.com/Teal/TUtils#readme","_id":"tutils@2.2.1","_nodeVersion":"16.11.0","_npmVersion":"8.0.0","dist":{"integrity":"sha512-2kM2xFMS0LSA2gR/fmGdIdvl7BEcBEO6vcmLs9LzHskEE4dVIvlENM5Kppdr3bv6l4OSb5B0yiNHIe0CMuCrnw==","shasum":"25eb482735144163f2cb4161a83ccbfa9e697d46","tarball":"https://registry.npmjs.org/tutils/-/tutils-2.2.1.tgz","fileCount":78,"unpackedSize":741795,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCBAdRX337sFRsqQriz+8AhhVC2NbgwU5ovAkfhd/KL0QIgYwR5RQq7wr7Q9j13KC9Bu5W8B3iGFdoiRhHywi7TbBY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJingzJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoe0xAAkMZ8c5YsNWtKYEXdaVarpQO/6mFuwBrj38HFIRvvKazpI6zt\r\n9DUgBcjNLA+cIA9GG87Iw4orr8pLiu1jpdhDMCigXteRqdEsljr/HATz+w6x\r\nhH8DqLcaqzZ1A22/r04ATpHbn6GBC2L4M1HsHSbwcv1RObhH3y7CCH9lcYKE\r\n+PtuZ7AdIpWev7vrcgiVNhdQEmczT2ViR5lGQYwPFYpjHIVht9Ymn9nCWMil\r\ntu1/JW++wRf89/U5XhmsnHC891k6B9Dk+FFx9L3qwKOLf2M4jrNbbPpmTjeR\r\nkyjz7oZIQf3dvS0CvYQKrPwqmcOZoOyvdqhSrstjVOwbaalZjZx6NU7dLwQV\r\n4uQFLTBl7YOJk4loJu2gHEgP0+0gDEdatCoIGzIzn+K3io18SOAHUXtEgeXh\r\n3Q0/whVXkimBdJ2wxFxOblEYnBBsJewU7peTsK7WQAG5jmVVCZIMGrfo4ecb\r\nvTthlhf7VM9MrpnHEsGJMGvvw56U+fG2R3OXfGkckkavBNfILajFZrQXUrDB\r\nE8OqKtqjk87ZHAxW4NPck27fwkI8zuhp4u6FbxJsLHJ/kqdfrGUrwm4+IYrc\r\nz8HjC/XT+MY8GRZfJl57ZNTq0U8eT/oeQlv9CxoYnFlL2PuD953Bq/XemNyJ\r\nKazdrG5i7w+d7RvAESwLU8J44Nmfrn6Bgdk=\r\n=vXxU\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"teal","email":"teal@xuld.net"},"directories":{},"maintainers":[{"name":"xuld","email":"xuld@vip.qq.com"},{"name":"teal","email":"teal@xuld.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_2.2.1_1654525129490_0.0028740064888133077"},"_hasShrinkwrap":false},"2.2.2":{"name":"tutils","version":"2.2.2","repository":{"type":"git","url":"git+https://github.com/Teal/TUtils.git"},"description":"200+ well-tested helper functions & classes for Node.js, including globbing, file watcher, zip, socket and so on | TUtils 提供了 200+ 个 Node.js 上常用的工具函数库，比如通配符、文件监听、压缩、网络库等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"types":"./index.d.ts","gitHead":"f1d24c12c4722b30a2e7a50f994e7fe84139d722","bugs":{"url":"https://github.com/Teal/TUtils/issues"},"homepage":"https://github.com/Teal/TUtils#readme","_id":"tutils@2.2.2","_nodeVersion":"16.11.0","_npmVersion":"8.0.0","dist":{"integrity":"sha512-ZDISLZr3ywyHgoy7Sda6yC40HUxCoMGAF5t0tr7utX61ZynSDuqnAUFt6ah3rcRX/69DPKIImQjBy44Dhj1oNA==","shasum":"0e0a02b0f370ecc924cee90882ce5297b87ad41e","tarball":"https://registry.npmjs.org/tutils/-/tutils-2.2.2.tgz","fileCount":78,"unpackedSize":744007,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGxFBZKmnumK0/WSWOl9cOaI7gUrT50lz/qX1Ed/RTMBAiBXRk3Cg9VvAh+1KJLZTv5/stQB830Bt0P/TKQp58mXuA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJinpCHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrxgg/9FiwWTqU7L0A9hAjNTAPKs7z+bzkUkUjGAZobq2b8jVdm/aqw\r\n9nocJQJYJQEEXF7/OQuGMphHcVC9NWrGfqOjWOyYUHSrtKKXAbp7wZn5ylNd\r\n52hVRrEwUPwdK+YUMBudvAk46/e1fb0jtUy3afUotzjrrQtkt/E3C9000/N8\r\nuMxGdixnlmRZ0ZjAzz2bUKxg6lfYJZrzj0emHIfY+71q5bFuN7CRzia3B+QS\r\nBQY8W+xViEY8fjxOzB7Sx2IjEAAwaSp8DwslGApc9HBA8mVdFn1FauK07K+c\r\nYnPH7srxjXHKteTPoWRQ4B4at+LY22SXPAcPQYVM3HXZ0gGDu/Lgn2tJd6dq\r\nJSZ7f6FyMZiE4QQsznGmEHFJ5CxSk3ar2Jwj6Rr8rHE0OSJhOPAYEnvumv7r\r\nePh0216a2gCbPgwe3T+yXY7RvVm2mnNhx9suzcDZSTYlzcnrznFNqdYTdm4Y\r\nKAujPPoTEqrSlPk9xOyF3Jbpw19UuvFwOT+AtWZPx8PoX1Z93X+wVjTBaGoa\r\nULctk61r93iZpcp9w1ZQwI1N6NWhQKDE9O31Gyurx2OBoEEF3d57zAWNcJAY\r\n+2EDTlIXRiGFvbSmuweYw2+kPT48MQQLUAgUh/BxFxfUwTTof/QNKqIgcs89\r\nOd7ZJmVPV1Vq3KyZozfT3VoNPlq86im0L1g=\r\n=cchS\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"teal","email":"teal@xuld.net"},"directories":{},"maintainers":[{"name":"xuld","email":"xuld@vip.qq.com"},{"name":"teal","email":"teal@xuld.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_2.2.2_1654558855099_0.47549989626472344"},"_hasShrinkwrap":false},"2.2.3":{"name":"tutils","version":"2.2.3","repository":{"type":"git","url":"git+https://github.com/Teal/TUtils.git"},"description":"200+ well-tested helper functions & classes for Node.js, including globbing, file watcher, zip, socket and so on | TUtils 提供了 200+ 个 Node.js 上常用的工具函数库，比如通配符、文件监听、压缩、网络库等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"types":"./index.d.ts","gitHead":"8cc5ba111e791aa070291d78f214e73a0a57b99f","bugs":{"url":"https://github.com/Teal/TUtils/issues"},"homepage":"https://github.com/Teal/TUtils#readme","_id":"tutils@2.2.3","_nodeVersion":"16.11.0","_npmVersion":"8.0.0","dist":{"integrity":"sha512-lLfayS9qAVqlyduFiFOXezFcLkv7Gq/XXZZ5piHlbaofezjEYRaAi2yicnL53kTZ+CieSONuexi1km3AGrIu9Q==","shasum":"287dbf9605eb3ea57dd70f2c3540adfa54e2ac91","tarball":"https://registry.npmjs.org/tutils/-/tutils-2.2.3.tgz","fileCount":78,"unpackedSize":744537,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIERDo9MQK1fBp0SsWKhIQE7HTaUyqxm5noadCFmVrq1NAiEArApswxJyrYSs7MXXXmOYHwEpni1YYzA0rjaAOPJmIRo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiodvWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp2rhAAgNIQqaZbdcGv0Y8W7cWAmCvajY1EjBxwOC1X0Jm0P2YkYi1Z\r\nE53umEVCKinmzquvCm+CKeHf2xcAHDbkRYDgnxlgPWTEqMsyZEHr6AtYo1oj\r\n5VsYhDjIkdnCOedfIwsvy2bp0WIOA0N5S4dtLuax5FbCa2HalWc99Bo2hDSn\r\nwu0dY7LnaI+N9rSNRa4rE0tXR5B+soXMnYtFsd/lWCYlqHyXVSIg+0/Xm2g1\r\nVQC7QebNxEnvNus0QIMcn1Sm/cE9fvW75WKW576XGrbj9JsGx/sSvGafV4Xi\r\n1qOdcVCFGAlM1duP8XEpBv0lbQtl6ZNQ4v+WkXx1EtxRnan7Z2O6ZgfquA4G\r\nfzHa1siJ+LTLP0/jOI5THhlPKAEDitJ1s7O50Xel4APgJnd9tw/hFaX0dsf3\r\nKHjVO3c5a+vFrSlMGR2wB5nxL2nfoUuvuG3JbeJHAi/VfQz1phLMXSgTtQ4p\r\nCcfJpbPtti8cfW0WP10dm3W1rLXkmzqK7H3b0KglyX5hOVpjArS5Kp22oawV\r\n7cqrCGPl6j7w1LQrRihc3pLsLrZxwgfBsuQux00AEAgnjSlMxYEezzN0biH4\r\nrGE4iZSduMdq9tTL1Wu0YsCbToGQuCjCc24sO9SA/R6NjBUg64tRa8i8JxRV\r\nmUhXlpij82yBYN01mhW6iyF2PanskceItZ0=\r\n=Y3KP\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"teal","email":"teal@xuld.net"},"directories":{},"maintainers":[{"name":"xuld","email":"xuld@vip.qq.com"},{"name":"teal","email":"teal@xuld.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_2.2.3_1654774741912_0.8233422335454936"},"_hasShrinkwrap":false},"2.3.0":{"name":"tutils","version":"2.3.0","repository":{"type":"git","url":"git+https://github.com/Teal/TUtils.git"},"description":"200+ well-tested helper functions & classes for Node.js, including globbing, file watcher, zip, socket and so on | TUtils 提供了 200+ 个 Node.js 上常用的工具函数库，比如通配符、文件监听、压缩、网络库等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"types":"./index.d.ts","gitHead":"65d337a88b6c7a88fd49cc33dd32d263b0573b2b","bugs":{"url":"https://github.com/Teal/TUtils/issues"},"homepage":"https://github.com/Teal/TUtils#readme","_id":"tutils@2.3.0","_nodeVersion":"16.11.0","_npmVersion":"8.0.0","dist":{"integrity":"sha512-pitEO99tMV0J0HX2pF4/uiQ1O2Wv5xirEh6ryGz/zIs48EzybF3nvs/WJ1BE7OIQf5njr9r+9RqmIgy3aWBxWw==","shasum":"3ef05087d14a58ff9ea6c998f0cae8fdd6dfdd4e","tarball":"https://registry.npmjs.org/tutils/-/tutils-2.3.0.tgz","fileCount":78,"unpackedSize":746081,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBYP9fQxlP9pVph+oH+7thpGcd0e1jEs+FmESeni970AAiEA8mtIxGw7v7PgLqnIHVPD/dp7dKpvTtWtJX1J6rKL+NA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJirt+zACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpBSA//R9r4z6RvnWHJJarbPfvJkkuUY8vevpvUAfVqQSgZyQA1NDR7\r\no0pqKCdZmCKm7Q2k6ah+A/r49cYUrLdlkmhQvoCwp4wZmsfHQNzc3x2/B71J\r\nypZXqeUig6oZpMyPkGAFrKtW0zo4m2Onh63TmJE7dbdlhZ4QSnVVVZivKQqy\r\ntXnW99OVNIDbkWtYTQx70hbYizUn0iFnh3ukqmsxctEKkcBIGnbi4KeFP+Tc\r\nVz7tki82K6S7BBUB8OYJLqUiCebJTc5g1DpAdNFDO0BX9x6eMecsTOxELU+U\r\nprQ8tELCinffD6+4zsayvQxYbtje/zvEvSSLabe95+jbdyw92DmPTyJhsOHl\r\nGxd6TqSHCbDL12Vl34zeA3O2X1yCCwv8aCGAX4sQBxbZfsqiSAy7HosqZaGl\r\nKffcRQdaWj19AqKnZu8vnFcb0rEJ3g5P6hJQIkJGwxCoPgtxLr1x++jBAqIx\r\nzwGIMUMH30d4iVzNYDzedn5jt7HzUyvqWIeSEsWJ8BiRv04PtgOd6vtwh4OM\r\n9Q/OlN0nYRuiSGyNaPPINDsR1ExtVrji6Sryj27kjOZvF7NyHYDdHM6/cOsU\r\nT2je77emrT9bCL3XxKIR+9GnKKrGifj4VDOZsjms37fE8hr/94YdObJYjsV+\r\na4F5pBQBYIAge/MaRgT9B/GUkkY7h22ZSuw=\r\n=GOTO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"teal","email":"teal@xuld.net"},"directories":{},"maintainers":[{"name":"xuld","email":"xuld@vip.qq.com"},{"name":"teal","email":"teal@xuld.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_2.3.0_1655627699579_0.14537389768742504"},"_hasShrinkwrap":false},"2.3.1":{"name":"tutils","version":"2.3.1","repository":{"type":"git","url":"git+https://github.com/Teal/TUtils.git"},"description":"200+ well-tested helper functions & classes for Node.js, including globbing, file watcher, zip, socket and so on | TUtils 提供了 200+ 个 Node.js 上常用的工具函数库，比如通配符、文件监听、压缩、网络库等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"types":"./index.d.ts","gitHead":"bd51d2a1af265e71decf3647b74a2e37f265cc3b","bugs":{"url":"https://github.com/Teal/TUtils/issues"},"homepage":"https://github.com/Teal/TUtils#readme","_id":"tutils@2.3.1","_nodeVersion":"16.11.0","_npmVersion":"8.0.0","dist":{"integrity":"sha512-CrjFVgvTWi/Il540R0sJ1ScaBlVcjlyjFfNL2MRKQj/Pe6n/GEIVRxApwlUvi2IXgsya2SeH+wsL68Q36j4ACQ==","shasum":"4f6abe4e8b791f3606c6d279df3265703395484e","tarball":"https://registry.npmjs.org/tutils/-/tutils-2.3.1.tgz","fileCount":78,"unpackedSize":750511,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVXRvngmDt6YCq/n4cOdEV3zHEHY/C8rzO9EcXGcPBfwIhAPZS1A3XuKo62KCVGMtO/UUJ7L2zLSLJzX7OT/FiPUTK"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiry1iACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoGcRAAl7oQJ+uCNP7U3mJJCUfsFv+WKbqFC49T8+4FAtVHViN805u4\r\nn46bEGmSNfglQr+fj8j83th6j28/evEv243V7zFvHA4ryvyTGNwO9tSrrfoW\r\n5SeltblZ6YBPGmeMHcMgRLYtnyEmDR/+uA8wUbImmQXYyEwVJZDTodhOrEM+\r\npnSDRpyGXKmxmiZ2+CbKOpDtcJEByjQSwwJGw0yx877Y9hFOFFBxHXuD/FDu\r\nWpASWj47LedQZwoQ+uZB/YC0ahb5GEtaVgwOz+swg4IHPhI0qRqYXriy+HBO\r\nnFoBdk0TZx7xbSqDeuoZb70x+6jku00Ui6+LAXsk4gOBNWE1+Ic/u3mgn3gl\r\noTnDdGilThyhXopKaSGpkx0CxGRi42uCV2dyvCx4xybIEmBSGXgl47n7vHbo\r\nZvlcKIU2WekPZUGPQbaw+WeBePnMRpSGEpxJ54ykM7xsa+zYkVWXV+pvAaxp\r\nle2Ai8yJq63qEE61Z+2hqiJEV7aZ+rvgDI1RwItWhvxPxwY46NDSb4GNc75d\r\nSlni4dvKxRlJJAR/HhHWrxhRrlwzQ/BK5kVU2k77KmGpD8a5z9iMsWt0CP2o\r\nwAk6b40OPCIS8bHlKXtMsxUeK6I4ufNOUQ2lCjWlKwp+0NlQdst+bwnQEP+K\r\nL/ye21aPWDW0UJEh/3DtJx0rGI6yWXB/9tg=\r\n=1fn+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"teal","email":"teal@xuld.net"},"directories":{},"maintainers":[{"name":"xuld","email":"xuld@vip.qq.com"},{"name":"teal","email":"teal@xuld.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_2.3.1_1655647586451_0.6273878312328072"},"_hasShrinkwrap":false},"2.3.2":{"name":"tutils","version":"2.3.2","repository":{"type":"git","url":"git+https://github.com/Teal/TUtils.git"},"description":"200+ well-tested helper functions & classes for Node.js, including globbing, file watcher, zip, socket and so on | 200+ 个常用 NodeJS 工具库，顶 **140+** 个 NPM 依赖，比如通配符、文件监听、网络库、Zip 压缩等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"types":"./index.d.ts","gitHead":"67809f24ae350c471945509ae957361379cb72b4","bugs":{"url":"https://github.com/Teal/TUtils/issues"},"homepage":"https://github.com/Teal/TUtils#readme","_id":"tutils@2.3.2","_nodeVersion":"16.11.0","_npmVersion":"8.0.0","dist":{"integrity":"sha512-Yrg8Gox2jckBm0bNKfbzzFJ24UJEri97oQMyy4YUiea8JyLRSpsAcVC0empFttMwXmoL2JdryoTyLw03lZ4TRg==","shasum":"703c5b4d04968cb432ebccd98bc8a7e1d3c0fe86","tarball":"https://registry.npmjs.org/tutils/-/tutils-2.3.2.tgz","fileCount":78,"unpackedSize":750665,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDFkgC6G4TQQiRZkq/M6APEQX4jhWB5IEGCodLiYlOSwgIhANQO2P9A5myJdjkpZVa6qZ4m7BJTVMp7w4yh+M/wioXX"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiuE+nACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpO8Q/9EhrMK4/GYdUIT+afkMa2oHs46t+GYRJsJ5DTpHs35iujt6ue\r\n6QUrAZOfglrk2C6/yyxnuO5JkGyTTSqgNVtSYD2yjqeD4YHnSmh4CMRKjuI5\r\nk+fkjye5QLDgv5Fm5CItLxpDAmzgyE5YeG7L2KXuiSLyqvVZqwpGTdYU3ppK\r\nL/dQpUakvH7eXBZuj5+bSTNtutnXIbnGhMMGEqS/rI1T4uLzI2a7TZ6kW4Y3\r\nIHLf92v4dLR1eUgu1yKWEhH2b9oxR0t97bZ8CkPNxRsjrqUpv2f9r5n2XagT\r\nrU43HG2RFhnPhgyaEhfWCQ/DlmSM68Td1vGb+65oCgXdx4inj3MvYSSUwLxN\r\nglYGKEnuZlIlcvja2fw7u9Udpn/2JPwJ8s1fKN6aos18sVQII57851U8E9Wc\r\n0Ei0PwoYsR4HYZ9tVD1iaqFK7nQRT35nBNpum6A9pD3+DEIOhDBLrLfbf6Xo\r\ngBivaVdssdkotXgQ1ajK9sFhrGgHYBhD0q5S1pSAcVn9VejJBKF1Aahsgazm\r\nkooc4IpWci6qWU7IUAHbaIchjwhLh2K+lgHGpfAAXOZlJHmi+GdqyCHT/KQQ\r\nsXcmlhGkb8zNRsG40KetPH3ubkrrVYAiXosO0ZGXV7HkaypQvF7SXwY47Nmh\r\nSNS9LvsvlRZ58D5/dd1T9Wn6XSLmCUtZkNE=\r\n=ingI\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"teal","email":"teal@xuld.net"},"directories":{},"maintainers":[{"name":"xuld","email":"xuld@vip.qq.com"},{"name":"teal","email":"teal@xuld.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_2.3.2_1656246183507_0.6212996818168988"},"_hasShrinkwrap":false},"2.3.4":{"name":"tutils","version":"2.3.4","repository":{"type":"git","url":"git+https://github.com/Teal/TUtils.git"},"description":"200+ well-tested helper functions & classes for Node.js, including globbing, file watcher, zip, socket and so on | 200+ 个 NodeJS 工具库，顶 140+ 个 NPM 依赖，比如通配符、文件监听、网络库、Zip 压缩等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"types":"./index.d.ts","gitHead":"c06670cd9379817a6aaaa1a147237388b7ddafaa","bugs":{"url":"https://github.com/Teal/TUtils/issues"},"homepage":"https://github.com/Teal/TUtils#readme","_id":"tutils@2.3.4","_nodeVersion":"16.11.0","_npmVersion":"8.0.0","dist":{"integrity":"sha512-TbDODT/GloD9oFI2kNzBaWCG+9ii9pGOtPElnh1dnWbD2KaNZam3q6EU1lg/sE8QSpX/PVAgF0Aqf2ivviY7WA==","shasum":"05e3c227eac56edee3423c35697bc7ddb44d9288","tarball":"https://registry.npmjs.org/tutils/-/tutils-2.3.4.tgz","fileCount":78,"unpackedSize":759181,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICUjjCM3MgF8mv/SQ2e/sI/Rc9DLPSwLmx/Qj5QxVKeNAiEA0FU4wOzmfqHUj4BUo59qoFK+4WQHInyZLGpb/AjCW78="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivGA9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqcFQ/+OysZ4wyO0GHmnFbZtKWT9NKP5PGdWAEp0IPRBE8LiIp8eC/u\r\nZRhpeAW6r4cCcGavPh1LVRcJNhrZzyfSImuAV9kZamD/dBg5/IlPESPqEO+L\r\n2wQBxsTYH74lafpK1s1RCRFbAOxTR664rXFHe9757VzR3zfTE0xhc75+GPc3\r\nn5Yto6ZumYCjNXoABnyesK2hm8+e/DHGku4SufwoCo2cdT8JvRraAleLdF60\r\nOG/AFXwQdpCUaHSPnxz8NIDo0AiCcbjJz/PSq+fCYjRaHjvtFJRn27rrcjLM\r\nlLM5eWvWxZ5MaBxdpoBuiStPzqPFWJeenULs4EZIL2i2DvF17jqXN77iXVWs\r\noy7p9ux3lqxVI9hpUlD0I1RGYSrg6rtfBe8FDAco+OfGPG9xR4I7BN/I3zP7\r\nSgWDa22PqzBjMFeqAXYSFghdHhH61w4t8Jzm+pW9GksYgN5uMv5uZbmTkeCC\r\nluJNSMeYq7lttbizPOjRA+6aCkXmz8/3BusCzT/0e4k4n++IICLbktwiSaNF\r\nuMcV8SoY22Cbr9SjjDB5zIdi+XGkSdFXPa/D+PP+teXWZlLuAX2AvtylDrHS\r\nEnOw+vMftLnXsVtjJP3Hb911KBKppUKj8GozMuLpNVTReKTC7Zb62cFtunb3\r\nZnjiFXlTtXTbx2NQi8Zh2KUyE78u11e7nrU=\r\n=o/HW\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"teal","email":"teal@xuld.net"},"directories":{},"maintainers":[{"name":"xuld","email":"xuld@vip.qq.com"},{"name":"teal","email":"teal@xuld.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_2.3.4_1656512573597_0.5777312004543753"},"_hasShrinkwrap":false},"2.3.6":{"name":"tutils","version":"2.3.6","repository":{"type":"git","url":"git+https://github.com/Teal/TUtils.git"},"description":"200+ well-tested helper functions & classes for Node.js, including globbing, file watcher, zip, socket and so on | 200+ 个 NodeJS 工具库，顶 140+ 个 NPM 依赖，比如通配符、文件监听、网络库、Zip 压缩等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"types":"./index.d.ts","gitHead":"cf48bde7dc8864685c87dbde973688ecc8b03a4c","bugs":{"url":"https://github.com/Teal/TUtils/issues"},"homepage":"https://github.com/Teal/TUtils#readme","_id":"tutils@2.3.6","_nodeVersion":"18.4.0","_npmVersion":"8.12.1","dist":{"integrity":"sha512-fwzpp+O60Cf+vywh35pw2BSRT8N6NaL5R+TzEqhBILJ9bIgRVq/lHIfO0QxmsGivHiKXRRWXi33ZpTsk6aHxoQ==","shasum":"b83eb7e236afbd382c0001dab4daf0db30477d18","tarball":"https://registry.npmjs.org/tutils/-/tutils-2.3.6.tgz","fileCount":78,"unpackedSize":759695,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC8Yi5h3ubDYwnoyHPMcFFs31e/eN1v0E9V3v+oNMzzxQIgKP3DJHpA8Q32e4z9jV17tBK0FdtK1GFdQT/eXedeBMU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi49zkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrfCw//fOxoNGvvCnHqpraEi824oIZLPRLNBgPYDuo2PI/k8RAIz3dp\r\n5a62RjxE1c9aS/SGxp/8zjc40bNn5aljL5s/e5rPMziYzOI+auzzI+d2nRDZ\r\n0u5IJ5UqDwO+xn11J16h4MHG4iOS9fEYlIbUL54CQsHH00WLdYZwQuqGrAYW\r\nhY7LIUCw0m37Za9N6hj5QCyfkAAMHPI5INmujQ67UWCaTKhIVs5rBSp8CQ8L\r\nxXuD/bMMt/hN/wh/4DZ3tjLS4fV5yCuI6fSNjvPOUSgGGzu4d64Iqqr9okRX\r\nYNHmHp/+NXdsd7A6Tj9M5dKoOxtU45/ViB3L98yGUZIJdbAQQXEo26pwvGRt\r\nEk5iRM9zKCotLXqRgMEiZorwXp/yQ5ps6U9fwqSHFIZRFnro7X+EONDJilZL\r\n+9vKEsi/9SQAUjVhJoZOxBFOQjUFaAlPOXetWjS7YQX8PeTc5kuaT9XQa3oX\r\n8PCrstNwfdwms9CCiFgiR1qzPZTd9quIRbRcwnzLOeoHbShKO+QQo0ejeDdq\r\nmaLOsGOxfXASNCfqUYRlDyhZwBmcAxNdavCBP/lmb7iFRB5r0TFDKCFzV5vB\r\nE5FVIHUTFY/Z8dKvfNPtvgQvxxggHg5hP40GHuCMf2BDLtanpB8HtASn27+E\r\niR+bwkAQLUddwoT1w+sGYSac9rYegYzOIGk=\r\n=3zJQ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"teal","email":"teal@xuld.net"},"directories":{},"maintainers":[{"name":"xuld","email":"xuld@vip.qq.com"},{"name":"teal","email":"teal@xuld.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_2.3.6_1659100387843_0.11201099279896543"},"_hasShrinkwrap":false},"2.4.0":{"name":"tutils","version":"2.4.0","repository":{"type":"git","url":"git+https://github.com/Teal/TUtils.git"},"description":"200+ well-tested helper functions & classes for Node.js, including globbing, file watcher, zip, socket and so on | 200+ 个 NodeJS 工具库，顶 140+ 个 NPM 依赖，比如通配符、文件监听、网络库、Zip 压缩等","license":"SEE LICENSE IN LICENSE","author":{"name":"xuld","email":"xuld@vip.qq.com"},"engines":{"node":">=10.12"},"types":"./index.d.ts","gitHead":"39767e06acd818791bf202cc50d9b06940edaf11","bugs":{"url":"https://github.com/Teal/TUtils/issues"},"homepage":"https://github.com/Teal/TUtils#readme","_id":"tutils@2.4.0","_nodeVersion":"17.6.0","_npmVersion":"8.5.1","dist":{"integrity":"sha512-Sgg8ligJG2kUvQBlKRo1HoBXGv2FIoksf14ucijiTxzfZpUX+oTg8j4/G9vyhM/+s26+uJcETXd8ngqdiShN+A==","shasum":"bf23ff73cec35b1ad5ec42ca942037a770b99adc","tarball":"https://registry.npmjs.org/tutils/-/tutils-2.4.0.tgz","fileCount":78,"unpackedSize":762550,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHng3VJUMnq1idtM4h/wkK2zjg0lhLkaWoSYQPJYiyMVAiEAtYf7OdZ9neA4UP2xZIAw4TD33CYrExwp/Gyki1Vfpns="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjFwm7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoJJw//aBK87CP6oOBI+XQuSXIikh3KsTi+NAWjUAh8w3lgfyxK1Po8\r\nWorUfq7m2uwIPPtdEy3vCUuU4bISrTBXKPbIe+tc7eziQH9fm+ABfk0AnOFl\r\nrQuMYweGvz/GxYJPtE0PGe5AKDXMn4hmM2zfMvaP5GvG9axZ0r6S4exmhtY6\r\nwW/pwu2sKiah3r0NJV6GnLrV8PpVAoXBTSPiHJIaxLDI3J/bN6N58mkhDn4M\r\nmJdILB23yOcA2+0oWa4f/xvBrjsCJlbbkTLbpEKy478QsOONiYrd0qsFx4px\r\nRnP3Yc5HaHlCpWzDWGsoaenP88zeEw1uOtHVt/NG+kV1BQrV/yk14gy69DPE\r\nS2ul+/33LGZ7tZUQe1dWRNDJkFAPMlAg4CXO4W03zxfjzVnrHNgkdlysEDUM\r\nOBneJQ3xslBi68R87o/KphZMMDVbDeckRb3SbDWrHOtNetUUan0Nzz0tjB6w\r\nYDF3gmiYfwcQgazOywC9r7eaLbaq+NGwkjTjz3ygNEg6XZ6HJ3jAdCQE/XYq\r\nRNT8ct9rsv6neI165rtJzbvx1L7MCn/yIj+xpPr25XlUEHjK9D893iMCGzvS\r\nCSQvmJWFlbPmpEPJmX7+j7sCf2fNGIyfqYhBF6hyqjEabsSJCvxeSE4JoX16\r\nWhQ9NIvZmMSzs9aDLSsuHaM9vOUARvW8p+Y=\r\n=YOSb\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"teal","email":"teal@xuld.net"},"directories":{},"maintainers":[{"name":"xuld","email":"xuld@vip.qq.com"},{"name":"teal","email":"teal@xuld.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tutils_2.4.0_1662454203348_0.6758795436518139"},"_hasShrinkwrap":false}},"readme":"# TUtils\r\n[![NPM version][npm-image]][npm-url]\r\n[![Downloads][downloads-image]][npm-url]\r\n[![Build Status][travis-image]][travis-url]\r\n[![Coveralls Status][coveralls-image]][coveralls-url]\r\n\r\n**200+** 个 NodeJS 工具库，顶 **140+** 个 NPM 依赖，比如通配符、文件监听、网络库、Zip 压缩等。\r\n\r\n如果你有依赖强迫症，这一个库就能帮你省不少依赖，而且风格统一 + 全中文注释 + 稳定高性能。\r\n\r\n## 特性\r\n1. 【强大】**30+** 个独立模块，可单独引用；\r\n2. 【轻量】无外部依赖，所有源码含注释不超过 **400K**；\r\n3. 【稳定】大量的单元测试(覆盖率 **80%+**)和生产实践，测试用例和社区同步；\r\n4. 【性能】鉴于功能专一，几乎所有模块在性能上稳超 NPM 社区模块；\r\n5. 【文档】完美全中文文档，VSCode/WebStorm/VS 等可智能提示。\r\n\r\n## 为什么要重做轮子\r\n1. **追求纯净**：不要为了一个简单功能，依赖几十个包；只支持 Node 最新稳定版(LTS)，无历史包袱；\r\n2. **追求简洁**：一个需求对应一种最短实现，而不是提供各种用法让用户按习惯选择；\r\n3. **追求性能**：每个模块只专注自身功能，不做多余的操作，减少硬盘读写和内存消耗；\r\n4. **追求统一**：统一的命名和设计，可以做到举一反三，过目不忘，而不用每次都要翻文档；\r\n5. **追求方便**：一次安装，即可直接使用所有功能；\r\n6. 很多 NPM 包对中日韩文支持不好。\r\n\r\nTUtils 总体上提供了“一站式”的使用方式，为你省去在 NPM 上查找、对比模块的烦恼。\r\n\r\n## 安装\r\n```bash\r\nnpm install tutils --save\r\n```\r\n\r\n> 注意：TUtils 基于 ES2018 编写，仅支持 Node v10.12 或更高版本。\r\n\r\n一行代码引用所有模块：\r\n```js\r\nconst tutils = require(\"tutils\")\r\n```\r\n\r\n或者，单独引入任一模块：\r\n```js\r\nconst fsSync = require(\"tutils/fileSystemSync\")\r\nconst fs = require(\"tutils/fileSystem\")\r\nconst mfs = require(\"tutils/memoryFileSystem\")\r\nconst watcher = require(\"tutils/fileSystemWatcher\")\r\nconst matcher = require(\"tutils/matcher\")\r\nconst path = require(\"tutils/path\")\r\nconst zipFile = require(\"tutils/zipFile\")\r\n\r\nconst request = require(\"tutils/request\")\r\nconst server = require(\"tutils/httpServer\")\r\nconst ws = require(\"tutils/webSocket\")\r\nconst net = require(\"tutils/net\")\r\nconst url = require(\"tutils/url\")\r\n\r\nconst ps = require(\"tutils/process\")\r\nconst vm = require(\"tutils/vm\")\r\nconst worker = require(\"tutils/workerPool\")\r\n\r\nconst ansi = require(\"tutils/ansi\")\r\nconst commandLine = require(\"tutils/commandLine\")\r\nconst logger = require(\"tutils/logger\")\r\n\r\nconst base64 = require(\"tutils/base64\")\r\nconst crypto = require(\"tutils/crypto\")\r\nconst html = require(\"tutils/html\")\r\nconst js = require(\"tutils/js\")\r\nconst json = require(\"tutils/json\")\r\nconst css = require(\"tutils/css\")\r\n\r\nconst lineColumn = require(\"tutils/lineColumn\")\r\nconst sourceMap = require(\"tutils/sourceMap\")\r\nconst textWriter = require(\"tutils/textWriter\")\r\nconst textDocument = require(\"tutils/textDocument\")\r\n\r\nconst asyncQueue = require(\"tutils/asyncQueue\")\r\nconst deferred = require(\"tutils/deferred\")\r\nconst eventEmitter = require(\"tutils/eventEmitter\")\r\n\r\nconst require = require(\"tutils/require\")\r\nconst resolver = require(\"tutils/resolver\")\r\nconst jsx = require(\"tutils/jsx\")\r\nconst tpl = require(\"tutils/tpl\")\r\nconst misc = require(\"tutils/misc\")\r\n```\r\n\r\n## API 文档\r\n[点击查看生成的 API 文档](https://tpack.github.io/tutils/globals.html)\r\n\r\n## 模块列表\r\n\r\n### 目录\r\n- 文件操作\r\n\t- [fileSystemSync](#filesystemsync)：文件操作（同步）\r\n\t- [fileSystem](#filesystem)：文件操作（异步）\r\n\t- [memoryFileSystem](#memoryfilesystem)：文件操作（内存模拟）\r\n\t- [fileSystemWatcher](#filesystemwatcher)：监听\r\n\t- [matcher](#matcher)：通配符\r\n\t- [path](#path)：路径计算\r\n\t- [zipFile](#zipFile)：Zip 压缩/解压(v2.1.6 新增)\r\n- 网络\r\n\t- [request](#request)：发送 HTTP/HTTPS 请求\r\n\t- [httpServer](#httpserver)：HTTP 服务器封装\r\n\t- [webSocket](#websocket)：WebSocket 服务端和客户端\r\n\t- [net](#net)：底层网络相关的工具函数\r\n\t- [url](#url)：地址计算\r\n- 进程\r\n\t- [process](#process)：进程操作\r\n\t- [vm](#vm)：JS 沙盒\r\n\t- [workerPool](#workerpool)：线程池\r\n- 命令行\r\n\t- [ansi](#ansi)：命令行颜色、格式\r\n\t- [commandLine](#commandline)：命令行操作\r\n\t- [logger](#logger)：日志记录器\r\n- 编码、解析\r\n\t- [base64](#base64)：Base64 和 DataURI 编码\r\n\t- [crypto](#crypto)：MD5 和 SHA-1 加密\r\n\t- [html](#html)：HTML 编码和解码\r\n\t- [js](#js)：JS 编码和解码\r\n\t- [json](#json)：JSON 编码和解码\r\n\t- [css](#css)：CSS 编码和解码\r\n- 生成代码\r\n\t- [lineColumn](#linecolumn)：行列号和索引换算\r\n\t- [sourceMap](#sourcemap)：读写源映射（Source Map）\r\n\t- [textWriter](#textwriter)：字符串拼接和生成源映射（Source Map）\r\n\t- [textDocument](#textdocument)：字符串编辑和生成源映射（Source Map）\r\n- 异步\r\n\t- [asyncQueue](#asyncqueue)：串行执行多个异步任务\r\n\t- [deferred](#deferred)：同时等待多个异步任务\r\n\t- [eventEmitter](#eventemitter)：支持异步的事件触发器\r\n- 其它\r\n\t- [require](#require)：Node require 定制\r\n\t- [resolver](#resolver)：模块解析器\r\n\t- [jsx](#jsx)：服务端 JSX 渲染\r\n\t- [tpl](#tpl)：模板引擎\r\n\t- [misc](#misc)：其它语言级别的工具函数，比如格式化日期\r\n\r\n### 文件操作\r\n\r\n#### fileSystemSync\r\n提供创建、移动、复制、搜索文件和文件夹相关的工具函数，所有函数均可放心地直接调用。\r\n\r\n```js\r\nconst fs = require(\"tutils/fileSystemSync\")\r\n\r\n// 判断存在\r\nfs.existsFile(\"dir/foo.txt\") // 判断文件是否存在\r\nfs.existsDir(\"dir\") // 判断文件夹是否存在\r\nfs.getStat(\"dir/foo\") // 读取路径信息，比如是否是文件夹，大小、最后修改时间\r\n\r\n// 读取文件\r\nfs.readFile(\"dir/foo.jpg\") // 读取二进制文件，返回 Buffer\r\nfs.readText(\"dir/foo.txt\") // 读取文本文件，返回字符串\r\nfs.readText(\"dir/foo.txt\", false) // 读取文本文件，如果文件不存在返回 null，而不是报错\r\n\r\n// 写入文件\r\nfs.writeFile(\"dir/foo.txt\", \"Hello world\") // 覆盖已有文件，如果文件不存在则自动创建\r\nfs.writeFile(\"dir/foo.txt\", \"Hello world\", false) // 不覆盖已有文件\r\nfs.appendFile(\"dir/foo.txt\", \"Hello world\") // 追加到文件末尾\r\n\r\n// 复制和移动文件\r\nfs.copyFile(\"dir/foo.txt\", \"dir/copied.txt\") // 比先读取再写入快\r\nfs.moveFile(\"dir/foo.txt\", \"dir/moved.txt\") // 比先复制再删除快\r\n\r\n// 删除文件\r\nfs.deleteFile(\"dir/foo.txt\") // 如果文件不存在则忽略\r\n\r\n// 遍历文件夹\r\nfs.glob(\"*.txt\") // 搜索当前文件夹下所有 .txt 文件\r\nfs.glob([\"*.{js,jsx}\", \"!node_modules\"], \"dir\") // 搜索 dir 文件夹下所有 .js/.jsx 文件，并忽略 node_modules\r\nfs.readDir(\"dir\") // 读取文件夹下的文件列表（仅一级）\r\nfs.walk(\"dir\", { // 更底层地遍历\r\n\tfile(path) {\r\n\t\tconsole.log(\"发现文件：\", path)\r\n\t},\r\n\tdir(path) {\r\n\t\tconsole.log(\"发现文件夹：\", path)\r\n\t}\r\n})\r\n\r\n// 创建文件夹\r\nfs.createDir(\"dir\") // 文件夹已存在则忽略\r\nfs.createTempDir() // 在系统临时目录创建空文件夹\r\nfs.ensureDirExists(\"dir/foo.txt\") // 确保所在文件夹存在\r\n\r\n// 复制和移动文件夹\r\nfs.copyDir(\"dir\", \"copied\") // 比先读取再写入快\r\nfs.moveDir(\"dir\", \"moved\") // 比先复制再删除快\r\n\r\n// 删除文件夹\r\nfs.deleteDir(\"dir\") // 自动删除内部所有子文件和文件夹\r\nfs.cleanDir(\"dir\") // 清空文件夹，比先删除再创建快\r\nfs.deleteParentDirIfEmpty(\"dir/foo.txt\") // 删除空文件夹\r\n```\r\n\r\n> ##### 为什么不使用 Node.js 自带的 `fs` 模块？\r\n> 自带的 `fs` 模块更接近操作系统底层，在有些细节上并不合需求，比如创建文件时，无法自动创建所在文件夹；读取文本文件时不跳过 BOM 字符；遍历、复制文件夹时不支持递归；如果你对操作系统不熟，很可能踩坑。\r\n\r\n#### fileSystem\r\n类似 `fileSystemSync`，提供创建、移动、复制、搜索文件和文件夹相关的工具函数，但是异步的（更快），所有函数均需要使用 `await` 语法等待结果。\r\n\r\n```js\r\nconst { fs } = require(\"tutils/fileSystem\")\r\n\r\n// 用法同 fileSystemSync，唯一区别是需要加 await\r\nawait fs.writeFile(\"foo.txt\", \"Hello world\")\r\n```\r\n\r\n| npm 包名            | TUtils 对应的函数/类                            |\r\n| ------------------- | ----------------------------------------------- |\r\n| `graceful-fs`       | `FileSystem`                                    |\r\n| `fs-extra`          | `FileSystem`                                    |\r\n| `graceful-fs-extra` | `FileSystem`                                    |\r\n| `mkdirp`            | `FileSystem.createDir`                          |\r\n| `make-dir`          | `FileSystem.createDir`                          |\r\n| `cp-file`           | `FileSystem.copFile`                            |\r\n| `cpy`               | `FileSystem.copFile`                            |\r\n| `ncp`               | `FileSystem.copyDir`                            |\r\n| `copy-files-tree`   | `FileSystem.copyDir`                            |\r\n| `clean-dir`         | `FileSystem.cleanDir`                           |\r\n| `delete`            | `FileSystem.deleteDir`                          |\r\n| `del`               | `FileSystem.deleteDir`                          |\r\n| `rimraf`            | `FileSystem.deleteDir`, `FileSystem.deleteFile` |\r\n| `node-glob`         | `FileSystem.glob`                               |\r\n| `fast-glob`         | `FileSystem.glob`                               |\r\n| `globby`            | `FileSystem.glob`                               |\r\n| `glob-all`          | `FileSystem.glob`                               |\r\n| `walker`            | `FileSystem.walk`                               |\r\n| `walkdir`           | `FileSystem.walk`                               |\r\n| `move-file`         | `FileSystem.moveFile`                           |\r\n| `path-exists`       | `FileSystem.existsFile`, `FileSystem.existsDir` |\r\n\r\n#### memoryFileSystem\r\n内存文件系统提供了和 `FileSystem` 完全相同的接口，但它会将数据保存到内存，避免多次硬盘读写。\r\n\r\n使用 `MemoryFileSystem` 可以在不改变程序逻辑的情况下，实现类似 `git --dry-run` 或 `npm publish --dry-run` 的功能。\r\n\r\n```js\r\nconst { MemoryFileSystem } = require(\"tutils/memoryFileSystem\")\r\nconst fs = new MemoryFileSystem()\r\n\r\n// 之后用法同 fileSystem\r\nawait fs.writeFile(\"foo.txt\", \"Hello world\")\r\n```\r\n\r\n| npm 包名    | TUtils 对应的函数/类 |\r\n| ----------- | -------------------- |\r\n| `memory-fs` | `MemoryFileSystem`   |\r\n| `mem-fs`    | `MemoryFileSystem`   |\r\n| `memfs`     | `MemoryFileSystem`   |\r\n\r\n#### fileSystemWatcher\r\n监听文件的新增、修改和删除。\r\n\r\n- 支持 Windows/OSX/Linux\r\n- 可同时监听多个目标，且监听列表可动态增删\r\n- 支持非轮询的监听方式（性能高、占用内存小）\r\n- 支持忽略特定路径（以提高性能）\r\n- 支持暂停和恢复\r\n- 纯 JS 实现，不会安装失败\r\n\r\n```js\r\nconst { FileSystemWatcher } = require(\"tutils/fileSystemWatcher\")\r\n\r\nconst watcher = new FileSystemWatcher({\r\n\tignore: [\".DS_Store\", \"Desktop.ini\", \"Thumbs.db\", \"ehthumbs.db\", \"*~\", \"*.tmp\", \".git\", \".vs\", \"node_modules\"]\r\n})\r\nwatcher.on(\"change\", path => { console.log(\"修改：\", path) })\r\nwatcher.on(\"delete\", path => { console.log(\"删除：\", path) })\r\nwatcher.on(\"create\", path => { console.log(\"创建：\", path) })\r\nwatcher.on(\"createDir\", path => { console.log(\"创建文件夹：\", path) })\r\nwatcher.on(\"deleteDir\", path => { console.log(\"删除文件夹：\", path) })\r\nwatcher.add(process.cwd(), () => { console.log(\"开始监听...\") })\r\n\r\n// 可以继续监听第二个文件夹，根文件夹必须已存在\r\nwatcher.add(\"dir\", () => { console.log(\"添加监听...\") })\r\n```\r\n\r\n> ##### 为什么不使用 Node.js 自带的 `fs.watch`？\r\n> 自带的 `fs` 拥有诸多限制，比如可能误报、不稳定。\r\n> `FileSystemWatcher` 内部依然使用了自带的 `fs.watch`，但做了很多判断使得结果更符合作者预期。\r\n\r\n| npm 包名    | TUtils 对应的函数/类 |\r\n| ----------- | -------------------- |\r\n| `chokidar`  | `FileSystemWatcher`  |\r\n| `gaze`      | `FileSystemWatcher`  |\r\n| `sane`      | `FileSystemWatcher`  |\r\n| `watchpack` | `FileSystemWatcher`  |\r\n\r\n#### matcher\r\n判断路径是否符合规则，支持通配符、正则和自定义函数。\r\n\r\n通配符语法同 `.gitignore` 文件，支持以下功能：\r\n- `?`: 匹配固定一个字符，但 `/` 和文件名开头的 `.` 除外\r\n- `*`: 匹配任意个字符，但 `/` 和文件名开头的 `.` 除外\r\n- `**`: 匹配任意个字符，但文件名开头的 `.` 除外\r\n- `[abc]`: 匹配方括号中的任一个字符\r\n- `[a-z]`: 匹配 a 到 z 的任一个字符\r\n- `[!abc]`: 匹配方括号中的任一个字符以外的字符\r\n- `{abc,xyz}`: 匹配大括号中的任一种模式\r\n- `\\`: 表示转义字符，如 `\\[` 表示 `[` 按普通字符处理\r\n- `!xyz`：如果通配符以 `!` 开头，表示排除匹配的项，注意如果排除了父文件夹，出于性能考虑，无法重新包含其中的子文件\r\n\r\n```js\r\nconst matcher = require(\"tutils/matcher\")\r\n\r\n// 判断是否匹配\r\nmatcher.match(\"/path.js\", \"/*.js\") // true\r\nmatcher.match(\"/path.js\", [/\\.js/, \"!node_modules\"]) // true\r\n```\r\n\r\n| npm 包名      | TUtils 对应的函数/类 |\r\n| ------------- | -------------------- |\r\n| `glob`        | `Matcher`            |\r\n| `node-glob`   | `Matcher`            |\r\n| `matcher `    | `Matcher`, `match`   |\r\n| `minimatch`   | `match`              |\r\n| `micromatch`  | `match`              |\r\n| `anymatch`    | `match`              |\r\n| `glob-base`   | `Matcher.base`       |\r\n| `glob-parent` | `Matcher.base`       |\r\n| `is-glob`     | `isGlob`             |\r\n\r\n#### path\r\n对文件路径的操作，扩充 Node.js 自带 `path` 模块的功能。\r\n\r\n> 注意本模块只处理路径字符串，并不会真的访问硬盘。\r\n\r\n```js\r\nconst path = require(\"tutils/path\")\r\n\r\n// 路径格式化\r\npath.resolvePath(\"foo/goo/hoo\", \"../relative\") // 转绝对路径\r\npath.relativePath(\"foo/goo/hoo\", \"../relative\") // 转相对路径\r\npath.joinPath(\"foo/goo/hoo\", \"../relative\") // 合并路径\r\npath.normalizePath(\"foo/goo/hoo/../relative\") // 规范化路径\r\npath.isAbsolutePath(\"foo/goo/hoo\") // 是否是绝对路径\r\n\r\n// 读写文件夹\r\npath.getDir(\"/root/foo.txt\") // \"/root\"\r\npath.setDir(\"/root/foo.txt\", \"goo\") // \"goo/foo.txt\"\r\npath.getRoot(\"/root/goo/foo.txt\") // \"/root\"\r\npath.setRoot(\"/root/goo/foo.txt\", \"/user\") // \"/user/goo/foo.txt\"\r\n\r\n// 读写文件名\r\npath.getName(\"/root/foo.txt\") // \"foo.txt\"\r\npath.setName(\"/root/foo.txt\", \"goo.jpg\") // \"/root/goo.jpg\"\r\npath.prependName(\"foo/goo.txt\", \"fix_\") // \"foo/fix_goo.txt\"\r\npath.appendName(\"foo/goo.src.txt\", \"_fix\") // \"foo/goo_fix.src.txt\"\r\npath.appendIndex(\"foo/goo.src.txt\") // \"foo/goo_2.src.txt\"\r\n\r\n// 读写扩展名\r\npath.getExt(\"/root/foo.txt\")\r\npath.setExt(\"/root/foo.txt\", \".jpg\") // \"/root/foo.jpg\"\r\n\r\n// 路径判断\r\npath.pathEquals(\"/root\", \"/root\") // 判断路径是否相同，在 Windows 忽略大小写\r\npath.containsPath(\"/root\", \"/root/foo\") // 判断路径父子包含关系\r\npath.deepestPath(\"/root\", \"/root/foo\") // 获取最深路径\r\npath.commonDir(\"/root/foo\", \"/root/foo/goo\") // 获取公共文件夹\r\n```\r\n\r\n| npm 包名           | TUtils 对应的函数/类 |\r\n| ------------------ | -------------------- |\r\n| `rename-extension` | `setExt`             |\r\n| `changefilesname`  | `setName`            |\r\n| `is-relative`      | `isAbsolutePath`     |\r\n| `is-absolute`      | `isAbsolutePath`     |\r\n| `normalize-path`   | `normalizePath`      |\r\n| `path-is-inside`   | `containsPath`       |\r\n| `contains-path`    | `containsPath`       |\r\n\r\n#### zipFile(v2.1.6 新增)\r\n快速压缩、解压 Zip 文件。支持局部解压及更新部分文件。\r\n\r\n```js\r\nconst zipFile = require(\"tutils/zipFile\")\r\n\r\n// 快速压缩、解压\r\nzipFile.compressFolder(\"dir\") // 快速压缩 dir 文件夹中的内容为 dir.zip\r\nzipFile.extractZip(\"dir.zip\") // 快速将 dir.zip 解压到 dir 文件夹\r\n\r\n// 更复杂操作\r\nconst file = zipFile.ZipFile.fromBuffer(buffer)\r\nfile.addFile(\"t.txt\") // 添加文件\r\nconst result = file.compress() // 重新压缩\r\n```\r\n\r\n| npm 包名      | TUtils 对应的函数/类 |\r\n| ------------- | -------------------- |\r\n| `unzip`       | `extractZip`         |\r\n| `adm-zip`     | `ZipFile`            |\r\n| `extract-zip` | `extractZip`         |\r\n\r\n### 网络\r\n\r\n#### request\r\n在 Node.js 提供类似发送 Ajax 请求的功能。\r\n```js\r\nconst request = require(\"tutils/request\")\r\n\r\n// 最简单的请求\r\nconsole.log((await request.request(\"https://www.baidu.com\")).text)\r\n\r\n// POST 一个 json 接口，并保存 Cookie\r\nconst cookieJar = new request.CookieJar()\r\nconst response = await request.request(\"/api/post\", {\r\n\tmethod: \"POST\",\r\n\tdataType: \"json\",\r\n\tdata: {\r\n\t\tfoo: 1\r\n\t},\r\n\theaders: {\r\n\t\t\"X-Request-With\": \"XMLHTTPRequest\"\r\n\t},\r\n\tcookieJar: cookieJar\r\n})\r\nconsole.log(response.json)\r\n```\r\n\r\n| npm 包名          | TUtils 对应的函数/类 |\r\n| ----------------- | -------------------- |\r\n| `request`         | `request`            |\r\n| `got`             | `request`            |\r\n| `axios`           | `request`            |\r\n| `wreck`           | `request`            |\r\n| `cookiejar`       | `CookieJar`          |\r\n| `touch-cookiejar` | `CookieJar`          |\r\n\r\n#### httpServer\r\n创建一个 HTTP 服务器，提供 Cookie、文件上传、Session 会话等扩展功能。\r\n\r\n```js\r\nconst httpServer = require(\"tutils/httpServer\")\r\n\r\nconst server = new httpServer.HTTPServer({}, (req, res) => {\r\n\tres.end(req.href)\r\n})\r\nserver.listen(8080)\r\n```\r\n\r\n| npm 包名          | TUtils 对应的函数/类  |\r\n| ----------------- | --------------------- |\r\n| `express`         | `HTTPServer`          |\r\n| `koa`             | `HTTPServer`          |\r\n| `http-server`     | `HTTPServer`          |\r\n| `body-parser`     | `HTTPRequest.body`    |\r\n| `cookie-parser`   | `HTTPRequest.cookies` |\r\n| `cookie-sessions` | `HTTPServer.sessions` |\r\n| `multipart`       | `HTTPRequest.files`   |\r\n\r\n#### webSocket\r\n创建一个 WebSocket 服务器，同浏览器端原生 WebSocket 通信。\r\n\r\n```js\r\nconst webSocket = require(\"tutils/webSocket\")\r\n\r\nconst server = new webSocket.WebSocketServer(\"ws://localhost:8080\")\r\nserver.start()\r\nserver.on(\"connection\", ws => {\r\n\tws.send(\"hello\")\r\n})\r\n\r\nconst client = new webSocket.WebSocket(\"ws://localhost:8080\")\r\nclient.on(\"message\", data => {\r\n\tconsole.log(data)\r\n\tclient.send(\"hello\")\r\n})\r\n```\r\n\r\n| npm 包名           | TUtils 对应的函数/类 |\r\n| ------------------ | -------------------- |\r\n| `ws`               | `WebSocket`          |\r\n| `websocket-driver` | `WebSocket`          |\r\n\r\n#### net\r\n提供网络相关的工具函数。\r\n\r\n```js\r\nconst net = require(\"tutils/net\")\r\n\r\nconsole.log(net.remoteIP()) // 打印本机 IP\r\n```\r\n\r\n| npm 包名    | TUtils 对应的函数/类 |\r\n| ----------- | -------------------- |\r\n| `public-ip` | `remoteIP`           |\r\n\r\n#### url\r\n对网络地址的操作，扩充 Node.js 自带 `url` 模块的功能。\r\n\r\n```js\r\nconst url = require(\"tutils/url\")\r\n\r\n// 地址格式化\r\nurl.resolveURL(\"http://example.com\", \"foo\") // 转绝对地址\r\nurl.relativeURL(\"http://example.com\", \"http://example.com/foo\") // 转相对地址\r\nurl.normalizeURL(\"http://example.com/foo/../relative\") // 规范化地址\r\nurl.setBaseURL(\"foo\", \"base\") // 设置基路径\r\n\r\n// 地址判断\r\nurl.isAbsoluteURL(\"http://example.com/foo\") // 是否是绝对地址\r\nurl.isExternalURL(\"http://example.com/foo\") // 是否是其它站点的地址\r\n\r\n// 查找并替换地址\r\nurl.replaceURL(\"请点击 http://example.com 继续\", url => `<a href=\"${url}\">${url}</a>`) // \"请点击 <a href=\"http://example.com\">http://example.com</a> 继续\"\r\n```\r\n\r\n| npm 包名           | TUtils 对应的函数/类 |\r\n| ------------------ | -------------------- |\r\n| `resolve-pathname` | `resolveURL`         |\r\n| `relative-url`     | `relativeURL`        |\r\n| `normalize-url`    | `normalizeURL`       |\r\n| `is-relative-url`  | `isAbsoluteURL`      |\r\n| `get-urls`         | `replaceURL`         |\r\n| `linkify-it`       | `replaceURL`         |\r\n\r\n### 进程\r\n\r\n#### process\r\n启动子进程、设置当前进程退出回调。\r\n\r\n```js\r\nconst process = require(\"tutils/process\")\r\n\r\n// 执行命令\r\nprocess.exec(\"echo hi\")\r\n\r\n// 打开浏览器\r\nprocess.open(\"http://tealui.com\")\r\n\r\n// 设置进程退出后的回调，可通过 process.offExit 解绑\r\nprocess.onExit(() => {\r\n\tconsole.log(\"退出了\")\r\n})\r\n```\r\n\r\n| npm 包名      | TUtils 对应的函数/类 |\r\n| ------------- | -------------------- |\r\n| `cross-spawn` | `exec`               |\r\n| `execa`       | `exec`               |\r\n| `open`        | `open`               |\r\n| `signal-exit` | `onExit`, `offExit`  |\r\n\r\n#### vm\r\n在沙盒中执行指定的 JavaScript 代码。类似 `eval`，但不能访问当前范围的变量。\r\n\r\n> 注意本函数不提供安全隔离，不能用于执行不信任的代码\r\n\r\n```js\r\nconst vm = require(\"tutils/vm\")\r\nvm.runInVM(`var x = 1`)\r\n```\r\n\r\n#### workerPool\r\n线程池，可以利用多核 CPU 同时执行多个复杂计算。\r\n\r\n```js\r\nconst { WorkerPool } = require(\"tutils/workerPool\")\r\n\r\nconst pool = new WorkerPool(data => data[0] + data[1]) // 这个函数将在子线程执行，函数无法使用闭包\r\nawait pool.exec([1, 2]) // 3\r\n```\r\n\r\n| npm 包名              | TUtils 对应的函数/类 |\r\n| --------------------- | -------------------- |\r\n| `worker-threads-pool` | `WorkerPool`         |\r\n\r\n### 命令行\r\n\r\n#### ansi\r\n提供命令行输出内容的格式化功能。\r\n\r\n```js\r\nconst ansi = require(\"tutils/ansi\")\r\n\r\n// 颜色\r\nconsole.log(ansi.color(\"红色\", ansi.ANSIColor.red))\r\nconsole.log(ansi.backgroundColor(\"红色\", ansi.ANSIColor.red))\r\nconsole.log(ansi.removeANSICodes(\"...\")) // 删除颜色\r\n\r\n// 格式化（支持中文）\r\nconsole.log(ansi.truncateString(\"很长的内容\", \"...\")) // 超出命令行宽度则截断\r\nconsole.log(ansi.wrapString(\"很长的内容\")) // 超出命令行宽度则换行\r\nconsole.log(ansi.formatList([\"a\", \"ab\"])) // 显示一个列表\r\nconsole.log(ansi.formatTree([{indent: 0, label: \"x\"}, {indent: 1, label: \"x1\"}])) // 显示一个树\r\nconsole.log(ansi.formatTable([[\"a\", \"ab\"], [\"a2\", \"ab2\"]])) // 显示一个表格\r\nconsole.log(ansi.formatCodeFrame(\"var a = 1\\nvar b = 2\", 1, 8) // 显示一段代码，带行号\r\nconsole.log(ansi.ansiToHTML(\"\")) // 转 HTML，保留颜色和其它格式\r\n```\r\n\r\n| npm 包名               | TUtils 对应的函数/类               |\r\n| ---------------------- | ---------------------------------- |\r\n| `ansi-color`           | `color`                            |\r\n| `ansi-colors`          | `color`                            |\r\n| `chalk`                | `bold`, `color`, `backgroundColor` |\r\n| `kleur`                | `bold`, `color`, `backgroundColor` |\r\n| `ansi-style-codes`     | `ANSIColor`                        |\r\n| `ansi-regex`           | `ansiCodeRegExp`                   |\r\n| `strip-ansi`           | `removeANSICodes`                  |\r\n| `strip-color`          | `removeANSICodes`                  |\r\n| `ansi-stripper`        | `removeANSICodes`                  |\r\n| `cli-truncate`         | `truncateString`                   |\r\n| `ansi-color-table`     | `formatTable`                      |\r\n| `chunk-text`           | `wrapString`                       |\r\n| `wrap-ansi`            | `wrapString`                       |\r\n| `cli-columns`          | `formatList`                       |\r\n| `console-log-tree`     | `formatTree`                       |\r\n| `ansi-color-table`     | `formatTable`                      |\r\n| `columnify`            | `formatTable`                      |\r\n| `formatter-codeframe`  | `formatCodeFrame`                  |\r\n| `ansicolor`            | `ansiToHTML`                       |\r\n| `ansi-to-html`         | `ansiToHTML`                       |\r\n| `ansi-html`            | `ansiToHTML`                       |\r\n| `stream-ansi2html`     | `ansiToHTML`                       |\r\n| `string-width`         | `getStringWidth`                   |\r\n| `monospace-char-width` | `getCharWidth`                     |\r\n\r\n#### commandLine\r\n提供命令行操作。\r\n\r\n```js\r\nconst commandLine = require(\"tutils/commandLine\")\r\n\r\n// 光标\r\ncommandLine.hideCursor() // 隐藏光标，使用 commandLine.showCursor() 还原\r\n\r\n// 清空命令行\r\ncommandLine.clear()\r\n\r\n// 解析命令行参数\r\ncommandLine.parseCommandLineArguments()\r\n\r\n// 格式化帮助命令\r\ncommandLine.formatCommandLineOptions({\r\n\t\"--x\": {\r\n\t\t\"alias\": \"-x\",\r\n\t\t\"description\": \"说明\"\r\n\t}\r\n})\r\n\r\n// 读取命令行输入\r\nconst name = await commandLine.input(\"请输入名字：\")\r\nconsole.log(name)\r\n\r\nconst choice = await commandLine.select([\"打开\", \"关闭\"], \"请选择一个：\")\r\nconsole.log(choice)\r\n```\r\n\r\n| npm 包名               | TUtils 对应的函数/类                                    |\r\n| ---------------------- | ------------------------------------------------------- |\r\n| `show-terminal-cursor` | `showCursor`                                            |\r\n| `hide-terminal-cursor` | `hideCursor`                                            |\r\n| `cli-cursor`           | `showCursor`, `hideCursor`                              |\r\n| `restore-cursor`       | `showCursor`                                            |\r\n| `meow`                 | `parseCommandLineArguments`, `formatCommandLineOptions` |\r\n| `yargs`                | `parseCommandLineArguments`, `formatCommandLineOptions` |\r\n| `clear-cli`            | `clear`                                                 |\r\n| `node-console-input`   | `input`                                                 |\r\n\r\n### `logger`\r\n```js\r\nconst { Logger } = require(\"tutils/logger\")\r\nconst logger = new Logger()\r\n\r\n// 打印\r\nlogger.fatal(\"Hello world\")\r\nlogger.error(\"Hello world\")\r\nlogger.warning(\"Hello world\")\r\nlogger.info(\"Hello world\")\r\nlogger.success(\"Hello world\")\r\nlogger.log(\"Hello world\")\r\nlogger.debug(\"Hello world\")\r\nlogger.trace(\"Hello world\")\r\n\r\n// 进度条\r\nlogger.showProgress(\"载入中\") // 使用 logger.hideProgress() 隐藏\r\n\r\nconst taskId = loggger.begin(\"读取文件\")\r\n// ...执行读取文件操作...\r\nlogger.end(taskId)\r\n```\r\n\r\n| npm 包名    | TUtils 对应的函数/类 |\r\n| ----------- | -------------------- |\r\n| `logger`    | `Logger`             |\r\n| `fancy-log` | `Logger`             |\r\n\r\n### 编码、解析\r\n\r\n#### base64\r\n快速实现 Base64 编码，中文会先编码。\r\n\r\n```js\r\nconst base64 = require(\"tutils/base64\")\r\n\r\nbase64.encodeBase64(\"\")\r\nbase64.decodeBase64(\"\")\r\n\r\nbase64.encodeDataURI(\"\") // 生成 base64 的 data: 地址\r\nbase64.decodeDataURI(\"data: image/png;base64, ...\") // 读取 base64 的 data: 地址\r\n```\r\n\r\n| npm 包名     | TUtils 对应的函数/类             |\r\n| ------------ | -------------------------------- |\r\n| `js-base64`  | `encodeBase64`, `decodeBase64`   |\r\n| `data-urlse` | `encodeDataURI`, `decodeDataURI` |\r\n\r\n#### crypto\r\n快速实现加密算法。\r\n\r\n```js\r\nconst crypto = require(\"tutils/crypto\")\r\n\r\ncrypto.md5(\"x\") // 计算 MD5 值\r\ncrypto.sha1(\"x\") // 计算 SHA-1 值\r\n```\r\n\r\n| npm 包名 | TUtils 对应的函数/类 |\r\n| -------- | -------------------- |\r\n| `md5`    | `md5`                |\r\n| `sha1`   | `sha1`               |\r\n\r\n#### html\r\n```js\r\nconst html = require(\"tutils/html\")\r\n```\r\n\r\n| npm 包名               | TUtils 对应的函数/类       |\r\n| ---------------------- | -------------------------- |\r\n| `ent`                  | `encodeHTML`, `decodeHTML` |\r\n| `entities`             | `encodeHTML`, `decodeHTML` |\r\n| `he`                   | `encodeHTML`, `decodeHTML` |\r\n| `html-entities`        | `encodeHTML`               |\r\n| `decode-html`          | `decodeHTML`               |\r\n| `html-decoder`         | `decodeHTML`               |\r\n| `html-entity-decoder`  | `decodeHTML`               |\r\n| `html-encoder-decoder` | `encodeHTML`, `decodeHTML` |\r\n| `html-parser`          | `parseHTML`                |\r\n\r\n#### js\r\n```js\r\nconst js = require(\"tutils/js\")\r\n```\r\n\r\n| npm 包名           | TUtils 对应的函数/类 |\r\n| ------------------ | -------------------- |\r\n| `js-string-escape` | `encodeJS`           |\r\n\r\n#### json\r\n```js\r\nconst json = require(\"tutils/json\")\r\n\r\n// 读取 JSON\r\njson.readJSON(\"path.json\") // 支持注释和末尾多余的逗号\r\njson.normalizeJSON(\"{a:1,}\") // 删除 JSON 字符串中的注释和末尾多余的逗号\r\n\r\n// 写入 JSON\r\njson.writeJSON(\"path.json\", {}) // 安全写入 JSON 数据\r\n```\r\n\r\n| npm 包名              | TUtils 对应的函数/类 |\r\n| --------------------- | -------------------- |\r\n| `strip-json-comments` | `normalizeJSON`      |\r\n| `load-json-file`      | `readJSON`           |\r\n| `write-json-file`     | `writeJSON`          |\r\n\r\n#### css\r\n```js\r\nconst css = require(\"tutils/css\")\r\n```\r\n\r\n| npm 包名 | TUtils 对应的函数/类 |\r\n| -------- | -------------------- |\r\n| `cssesc` | `encodeCSS`          |\r\n\r\n### 生成代码\r\n\r\n#### lineColumn\r\n计算行列号\r\n\r\n```js\r\nconst lineColumn = require(\"tutils/lineColumn\")\r\n\r\nlineColumn.indexToLineColumn(\"\", 0)\r\n```\r\n\r\n| npm 包名            | TUtils 对应的函数/类                     |\r\n| ------------------- | ---------------------------------------- |\r\n| `find-line-column`  | `indexToLineColumn`, `lineColumnToIndex` |\r\n| `lines-and-columns` | `LineMap`                                |\r\n\r\n#### sourceMap\r\n读写 Source Map。\r\n\r\n```js\r\nconst sourceMap = require(\"tutils/sourceMap\")\r\n\r\n// 修改源映射\r\nconst map = new sourceMap.SourceMapBuilder({ /* 已存在的 map*/ })\r\nmap.addMapping(1, 2)\r\nconst output = map.toJSON() // 生成的新 map\r\n```\r\n\r\n| npm 包名             | TUtils 对应的函数/类              |\r\n| -------------------- | --------------------------------- |\r\n| `source-map`         | `SourceMapBuilder`                |\r\n| `convert-source-map` | `SourceMapBuilder`                |\r\n| `merge-source-map`   | `SourceMapBuilder.applySourceMap` |\r\n\r\n#### textWriter\r\n同时生成代码及 Source Map。\r\n\r\n```js\r\nconst { TextWriter, SourceMapTextWriter } = require(\"tutils/textWriter\")\r\n\r\nconst writer = new SourceMapTextWriter()\r\nwriter.write(\"hello\")\r\n\r\nconsole.log(writer.toString())\r\nconsole.log(writer.sourceMap)\r\n```\r\n\r\n| npm 包名                | TUtils 对应的函数/类  |\r\n| ----------------------- | --------------------- |\r\n| `string-builder`        | `TextWriter`          |\r\n| `source-list-map`       | `SourceMapTextWriter` |\r\n| `fast-sourcemap-concat` | `SourceMapTextWriter` |\r\n\r\n#### textDocument\r\n动态修改、拼接字符串并生成 Source Map。\r\n\r\n```js\r\nconst { TextDocument, replace, insert } = require(\"tutils/textDocument\")\r\n\r\nconst data = replace({\r\n\tcontent: \"var a = 1\",\r\n\tpath: \"source.js\"\r\n}, /\\bvar\\b/g, \"let\")\r\nconsole.log(data.content)\r\nconsole.log(data.sourceMap)\r\n```\r\n\r\n| npm 包名       | TUtils 对应的函数/类 |\r\n| -------------- | -------------------- |\r\n| `magic-string` | `TextDocument`       |\r\n\r\n### 异步\r\n\r\n#### asyncQueue\r\n串联执行异步任务。\r\n\r\n```js\r\nconst { AsyncQueue } = require(\"tutils/asyncQueue\")\r\n\r\nconst asyncQueue = new AsyncQueue()\r\nawait asyncQueue.then(async () => { /* 异步操作 1 */ })\r\nawait asyncQueue.then(async () => { /* 异步操作 2 */ })\r\nawait asyncQueue.then(async () => { /* 异步操作 3 */ })\r\n```\r\n\r\n| npm 包名          | TUtils 对应的函数/类 |\r\n| ----------------- | -------------------- |\r\n| `asyncqueue`      | `AsyncQueue`         |\r\n| `node-asyncqueue` | `AsyncQueue`         |\r\n\r\n#### deferred\r\n类似 `Promise`，但可以更灵活地阻塞和回复。\r\n\r\n```js\r\nconst { Deferred } = require(\"tutils/deferred\")\r\n\r\nconst deferred = new Deferred()\r\ndeferred.reject() // 开始执行异步操作\r\nsetTimeout(() => {\r\n\tdeferred.resolve() // 异步操作结束\r\n}, 2000)\r\n\r\nawait deferred\r\n```\r\n\r\n| npm 包名   | TUtils 对应的函数/类 |\r\n| ---------- | -------------------- |\r\n| `deferred` | `Deferred`           |\r\n\r\n#### eventEmitter\r\n同原生的 `events` 模块，但支持异步事件。\r\n```js\r\nconst { EventEmitter } = require(\"tutils/eventEmitter\")\r\n\r\nconst events = new EventEmitter()\r\nevents.on(\"error\", data => console.log(data))  // 绑定 error 事件\r\nawait events.emit(\"error\", \"hello\")            // 触发 error 事件，输出 hello\r\n```\r\n\r\n| npm 包名   | TUtils 对应的函数/类 |\r\n| ---------- | -------------------- |\r\n| `events`   | `EventEmitter`       |\r\n| `tappable` | `EventEmitter`       |\r\n\r\n### 其它\r\n\r\n#### require\r\n允许直接载入 ES 模块代码；允许载入全局安装的模块。\r\n\r\n```js\r\nconst { registerESMLoader, addGlobalPath } = require(\"tutils/require\")\r\n\r\nregisterESMLoader()\r\nrequire(\"./esm.js\")\r\n\r\naddGlobalPath(\"dir\") // require 时会从 dir 搜索模块\r\n```\r\n\r\n| npm 包名         | TUtils 对应的函数/类 |\r\n| ---------------- | -------------------- |\r\n| `esm`            | `registerESMLoader`  |\r\n| `require-global` | `addGlobalPath`      |\r\n\r\n#### `resolver` 模块\r\n类似 `require.resolve`，但可提供更多的配置选择。\r\n\r\n```js\r\nconst { Resolver } = require(\"tutils/resolver\")\r\n\r\nconst resolver = new Resolver()\r\nconst result = await resolver.resolve(\"tutils\", process.cwd())\r\n```\r\n\r\n| npm 包名           | TPack-Utils 对应的函数/类 |\r\n| ------------------ | ------------------------- |\r\n| `enhanced-resolve` | `Resolver`                |\r\n\r\n#### jsx\r\n```jsx\r\nconst {jsx, Fragment} = require(\"tutils/jsx\")\r\n\r\n/** @jsx jsx */\r\n/** @jsxFrag Fragment */\r\nvar div = <button id=\"my\" disabled>Hello World</button>\r\nconsole.log(div)\r\n```\r\n\r\n#### tpl\r\n```js\r\nconst tpl = require(\"tutils/tpl\")\r\n\r\ntpl.compileTPL(`{$.data + 2}`)({data: 1}) // \"3\"\r\n```\r\n\r\n| npm 包名 | TUtils 对应的函数/类 |\r\n| -------- | -------------------- |\r\n| `ejs`    | `compileTPL`         |\r\n\r\n#### misc\r\n```js\r\nconst misc = require(\"tutils/misc\")\r\n\r\nmisc.stripBOM(\"...\") // 删除字符串开头的 UTF-8 BOM 字符\r\nmisc.randomString() // 生成指定长度的随机字符串\r\nmisc.insertSorted() // 插入排序\r\nmisc.formatDate(new Date(\"2016/01/01 00:00:00\")) // 格式化指定的日期对象\r\nmisc.formatRelativeDate(new Date(\"2016/01/01 00:00:00\")) // 格式化时间为类似“几分钟前”的格式\r\nmisc.formatHRTime(process.hrtime()) // 格式化时间间隔\r\nmisc.formatSize(1024) // 格式化字节大小，1KB\r\n```\r\n\r\n| npm 包名               | TUtils 对应的函数/类 |\r\n| ---------------------- | -------------------- |\r\n| `strip-bom`            | `stripBOM`           |\r\n| `sorted-array-type`    | `insertSorted`       |\r\n| `escape-string-regexp` | `escapeRegExp`       |\r\n| `format-date`          | `formatDate`         |\r\n| `dateformat`           | `formatDate`         |\r\n| `Moment.js`            | `formatDate`         |\r\n| `node-dateformate`     | `formatDate`         |\r\n| `pretty-hrtime`        | `formatHRTime`       |\r\n| `pretty-time`          | `formatHRTime`       |\r\n| `pretty-bytes`         | `formatSize`         |\r\n| `pretty-size`          | `formatSize`         |\r\n\r\n[npm-url]: https://www.npmjs.com/package/tutils\r\n[npm-image]: https://img.shields.io/npm/v/tutils.svg\r\n[downloads-image]: https://img.shields.io/npm/dm/tutils.svg\r\n[downloads-url]: http://badge.fury.io/js/tutils\r\n[travis-url]: https://travis-ci.org/Teal/TUtils\r\n[travis-image]: https://img.shields.io/travis/Teal/TUtils.svg\r\n[coveralls-url]: https://coveralls.io/github/Teal/TUtils\r\n[coveralls-image]: https://img.shields.io/coveralls/Teal/TUtils/master.svg","maintainers":[{"name":"xuld","email":"xuld@vip.qq.com"},{"name":"teal","email":"teal@xuld.net"}],"time":{"modified":"2022-09-06T08:50:03.654Z","created":"2016-02-22T12:29:13.050Z","0.0.1":"2016-02-22T12:29:13.050Z","0.0.2":"2016-02-22T14:31:03.689Z","0.1.0":"2016-03-23T09:32:37.866Z","0.1.1":"2016-04-15T09:04:48.724Z","0.1.2":"2016-04-27T04:09:17.884Z","0.1.3":"2016-04-29T09:31:09.787Z","0.1.4":"2016-05-18T09:20:11.068Z","0.1.5":"2016-05-25T05:48:55.386Z","1.0.0":"2019-06-19T08:41:39.793Z","1.0.1":"2019-06-20T07:45:16.580Z","1.0.2":"2019-06-24T10:30:15.621Z","1.0.3":"2019-06-26T02:53:06.912Z","1.1.0":"2019-06-26T05:09:57.305Z","1.2.0":"2019-07-08T03:34:25.616Z","1.2.1":"2019-07-08T08:54:14.873Z","1.3.0":"2019-07-10T06:41:08.852Z","1.4.0":"2019-07-12T10:16:29.320Z","1.6.0":"2019-08-15T07:48:41.540Z","1.6.1":"2019-09-05T06:37:13.329Z","1.6.3":"2019-09-16T08:58:06.650Z","1.6.4":"2019-09-17T02:48:50.003Z","1.7.0":"2019-10-29T06:55:33.065Z","1.8.0":"2019-10-30T03:07:41.217Z","1.8.1":"2019-10-30T03:46:35.920Z","1.8.2":"2019-12-02T12:12:13.811Z","1.8.3":"2019-12-02T13:11:50.371Z","1.8.4":"2019-12-06T09:29:11.952Z","1.8.6":"2019-12-06T11:54:43.950Z","1.8.7":"2019-12-06T15:04:58.600Z","2.0.0":"2020-09-28T03:36:50.528Z","2.0.1":"2020-09-30T13:48:30.451Z","2.1.0":"2020-10-10T04:14:56.158Z","2.1.2":"2020-10-11T02:21:06.679Z","2.1.3":"2020-11-15T01:59:28.864Z","2.1.4":"2020-12-24T07:50:16.467Z","2.1.5":"2022-03-03T14:44:58.348Z","2.1.6":"2022-03-27T05:44:20.897Z","2.2.1":"2022-06-06T14:18:49.752Z","2.2.2":"2022-06-06T23:40:55.292Z","2.2.3":"2022-06-09T11:39:02.143Z","2.3.0":"2022-06-19T08:34:59.779Z","2.3.1":"2022-06-19T14:06:26.732Z","2.3.2":"2022-06-26T12:23:03.781Z","2.3.4":"2022-06-29T14:22:53.875Z","2.3.6":"2022-07-29T13:13:08.121Z","2.4.0":"2022-09-06T08:50:03.580Z"},"homepage":"https://github.com/Teal/TUtils#readme","repository":{"type":"git","url":"git+https://github.com/Teal/TUtils.git"},"author":{"name":"xuld","email":"xuld@vip.qq.com"},"bugs":{"url":"https://github.com/Teal/TUtils/issues"},"readmeFilename":"README.md","users":{},"license":"SEE LICENSE IN LICENSE"}