{"_id":"glede-server-bun","_rev":"29-61f453fcbb52effcb52ef55d21f621c2","name":"glede-server-bun","dist-tags":{"latest":"1.0.26"},"versions":{"1.0.0":{"name":"glede-server-bun","version":"1.0.0","keywords":["fastify","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.0","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/PLos/glede-server-bun","bugs":{"url":"https://gitee.com/PLos/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"abb2fb2254b690b5beb8606203a0ca9d526d6938","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.0.tgz","fileCount":8,"integrity":"sha512-R0A/dnp/SCeXuEDxxYPE5M6JzF7w6qJn04vXL9GGo7aJ+9Y97Zy+iel3PMfIvh8kdgsbuhgFGdBwXxUei7R+qw==","signatures":[{"sig":"MEYCIQDXDf7y8esGdB9+LnihsXnrmox+48HpEYqzE0Ln5KyLKwIhAPymDjOkbQjjD9F1GzxgvoobPYjji0jwKqoxUX2VcDOk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":176253},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.2.7"},"gitHead":"d280d17bbb1c82ff608f019eeb143d8dc5e76a0f","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --sourcemap --target=bun"},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"20.12.2","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.2.8","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.0_1743722110597_0.8363084913973111","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"glede-server-bun","version":"1.0.1","keywords":["fastify","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.1","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/PLos/glede-server-bun","bugs":{"url":"https://gitee.com/PLos/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"e0496ca96a6edc2ab008dbd560d8adbfed561d57","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.1.tgz","fileCount":8,"integrity":"sha512-rCsYsl7z5GP5H7btmBFQXIPHtrVHa0gehRl16soR2xX6wJU526YBV8d7/VmHgvc2VmBayaeEG+aqhuHItbgudg==","signatures":[{"sig":"MEQCIBpeCRjizG74UmfODnTIITdc4JaReragl3rtH9AxhRN5AiALCqnQwvnoDyPYCoUqYfYu5Lf7MhcBPpCDGxJtEcP2NQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":184297},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.2.7"},"gitHead":"fea73009974c0c664fa7b8c0756698bc5a954535","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --sourcemap --target=bun"},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"20.12.2","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.2.8","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.1_1743745898719_0.8807453333425017","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"glede-server-bun","version":"1.0.2","keywords":["fastify","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.2","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/PLos/glede-server-bun","bugs":{"url":"https://gitee.com/PLos/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"2c30b505974847555bb57e96aaae11d0fe850a19","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.2.tgz","fileCount":8,"integrity":"sha512-cIer/QvCspJkAcuQxiboXH3De5KO0t19+rzNQEhb1qoxIci5G2gEvrta8XVp9WayGUvUUk7CMizCPaE4PVf+jA==","signatures":[{"sig":"MEYCIQC6RLC/f7csX+i4qcJHTZ2o8FeqomPwJp0vSXbKIjxRBgIhAJ1MDMTAZSHtaFNSSBTOBgPWy5v+iw2x1fEYuEfPsjTI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":183758},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.2.7"},"gitHead":"7a7e1f6301523da3ffd203205d1f9dbbedb3ab93","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --sourcemap --target=bun"},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"20.12.2","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.2.8","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.2_1743749166797_0.05769732663453664","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"glede-server-bun","version":"1.0.3","keywords":["fastify","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.3","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/PLos/glede-server-bun","bugs":{"url":"https://gitee.com/PLos/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"b795d8c6c23a3bdec6d7d8ff9945830f2e08bd1b","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.3.tgz","fileCount":8,"integrity":"sha512-gPgRiWZl3I0Rknj8ScDlSmJw1dlQCWllQWOdOToHx5W5IdwbcRNYmm9W6o0yNNpnuTZnQEKHcrOcAdo1Q2Qy+g==","signatures":[{"sig":"MEYCIQC86tJZHhah7crRqi/DE9l3N1uCajtjk1B/E9CaEcJmoQIhAL4BrFlZnUQItMpVjyMyTS+vcTGrA96AsF13QLJbO0h3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":183758},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.2.7"},"gitHead":"1bfb5dd6e1bc4940264d7ac16035bb8b9b627942","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --sourcemap --target=bun"},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"20.12.2","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.2.8","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.3_1743751250590_0.48128216991274364","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"glede-server-bun","version":"1.0.4","keywords":["fastify","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.4","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/PLos/glede-server-bun","bugs":{"url":"https://gitee.com/PLos/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"a88958d3c57ec223e7e7e57202f4517ad3278fd9","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.4.tgz","fileCount":8,"integrity":"sha512-RFt5JqIYZUzx+D6j+2i/sibmdhBjwnzxKZPLokgkDKtTebCcjVF9Hac+LGv3cSJxvJk4j5DFPR8NfQhAnslZxQ==","signatures":[{"sig":"MEQCIEhOmjQdWn1+DpuaHmTKk7TihOz71Bnx+AgAqyxrF4lFAiBpDiP/PfX7egjcSRrOWkiLSrU91OkGQMwVqQ6A8+5Xig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":183936},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.2.7"},"gitHead":"01dd2b766294612c56f4cea6fca99c721ddfab52","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --sourcemap --target=bun"},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"20.12.2","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.2.8","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.4_1743752199331_0.316254979619778","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"glede-server-bun","version":"1.0.5","keywords":["fastify","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.5","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/PLos/glede-server-bun","bugs":{"url":"https://gitee.com/PLos/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"faad482e8af1776c0d98fb98ad609beb230d5eea","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.5.tgz","fileCount":8,"integrity":"sha512-Ch3EQq5Xhm0qVa0IFciQPUnli7ZIlfTTPsEAWTD4m3gatlW8v+aO7HIIIFR1ItwC7zWaQCe6cQDGsPV5/pfMqg==","signatures":[{"sig":"MEYCIQDvtdc9FdClhit0dwde6ElCoevi+kWFP67jZPI2ZSdUIAIhALJdDpBmP2mV0eCr+4e3zAGgS2w9aSbQFcOSib8qwV5K","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":183985},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.2.7"},"gitHead":"f4a4b3ae372afa4d1325307ff731bb530b1260ca","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --sourcemap --target=bun"},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"20.12.2","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.2.8","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.5_1743753029688_0.1748731572970006","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"glede-server-bun","version":"1.0.6","keywords":["fastify","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.6","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/PLos/glede-server-bun","bugs":{"url":"https://gitee.com/PLos/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"61d82f06467283fee84e7fdd680d87edcae1b003","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.6.tgz","fileCount":8,"integrity":"sha512-+g18JBI2NynSMBBIrDswXok0IMnXAiOPRjtBTPkFZHfoqv77Lf4K1swSoVj3cLentjwFGsraHXpXlLefVphqYA==","signatures":[{"sig":"MEUCIQDahOaNnYB7wcNuNZD4BkaXpmN1W7t6T8vsh4nTJTy/LQIgOPyPt0B4WoLmfHTHfpGP9IYWaxQMNOzYYe8r/I/BQoU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":184038},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.2.7"},"gitHead":"f4a4b3ae372afa4d1325307ff731bb530b1260ca","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --sourcemap --target=bun"},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"20.12.2","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.2.8","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.6_1743753205711_0.9170356651248113","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"glede-server-bun","version":"1.0.7","keywords":["fastify","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.7","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/PLos/glede-server-bun","bugs":{"url":"https://gitee.com/PLos/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"c6ee9372553749e8cf8ba61952ddbebb3a8aad6b","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.7.tgz","fileCount":8,"integrity":"sha512-hKyu8HOCqf7ZL7BoNtyEMJocerW0kE5IgbYQf1VIOUZXKBQ1jXF+T03ayJ4Qk11MIUFQij3QGqOFINq428jrrA==","signatures":[{"sig":"MEQCIGcVR300lDYzL9m4aWNTUgg81/vGHIOO7baE1Oltej/mAiARZFUaEhuEf2aTgXtGw6iR45x/8/NkBuxZU+DTIIW1Wg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":185403},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.2.7"},"gitHead":"f5ef4463064512494500beea65e099d37e7e4338","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --sourcemap --target=bun"},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"20.12.2","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.2.8","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.7_1743789652080_0.09712991002004556","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"glede-server-bun","version":"1.0.8","keywords":["fastify","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.8","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/PLos/glede-server-bun","bugs":{"url":"https://gitee.com/PLos/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"d201fa2be69a7fabbb574c2c218dc82bbf7270c8","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.8.tgz","fileCount":8,"integrity":"sha512-i0YRk10oLWozw0T/+pTC3dOrjXZb97OduYlzPG/PZqrDKeNIxkWlOQTAxo2yLmVtM9mSoSS40qR+rnwo2A2o4Q==","signatures":[{"sig":"MEQCIHPSxE3jWlKqrwXuWoHy7QoikKAmwx7my2iI6tQ+nUz3AiBimTxlpwAM5iTbPiBDhstSzSi1aItBJqvyKFJ3dl+VXw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":185751},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.2.7"},"gitHead":"198040368a40e5b0b6d9a50f09876414a48e5f0b","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --sourcemap --target=bun"},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"20.12.2","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.2.8","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.8_1743826225906_0.18950868689853628","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"glede-server-bun","version":"1.0.9","keywords":["fastify","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.9","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/PLos/glede-server-bun","bugs":{"url":"https://gitee.com/PLos/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"773448439f7488c0f1a5d92edba9c71a57b8bdc2","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.9.tgz","fileCount":8,"integrity":"sha512-0lZvn3aRYGj1ldzzzzL98CnFoBXjVfa4pq6puYOP/MEJoAzlkM9TEdGlLwJvvEpCUetuLL6EF2/Szc30OBSFjg==","signatures":[{"sig":"MEQCIBjz1DnQgxxLakMVb/aWTiKCw+Z6cdZX4goW10onqiVlAiBwXQr/spH9vhhxDi6JJNLbETLMeqkKPh+YkybBoB1cug==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":185747},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.2.7"},"gitHead":"89d63a5e3674b5c417833dd1eaba3f9754c841c6","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --sourcemap --target=bun"},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"20.12.2","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.2.8","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.9_1743832860769_0.7724356205881768","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"glede-server-bun","version":"1.0.10","keywords":["fastify","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.10","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/PLos/glede-server-bun","bugs":{"url":"https://gitee.com/PLos/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"ed620b552dfb3de2d5a068c804a6c552ebf3c317","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.10.tgz","fileCount":8,"integrity":"sha512-yvlsh2bVt6EiFMfmHM49F6VEfWhRwORHMz1rectW1fPBkla/uq50AA4Dvjq8lPUhKAsqPBmwwhFJ4ZsOB/VdSg==","signatures":[{"sig":"MEQCIELjmWKgyHUqKWwHwqeWT4HCORzOkfjekEN36rCcEXfbAiAu1qJ/W1pUUGDxRvjJAsjeToxKcfGc6bV2rh14WpQj0Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186114},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.2.7"},"gitHead":"9928117ea469a6998fdfbcca609f91d36e1d2929","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --sourcemap --target=bun"},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"20.12.2","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.2.8","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.10_1743834836983_0.663644274770623","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"glede-server-bun","version":"1.0.11","keywords":["fastify","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.11","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/PLos/glede-server-bun","bugs":{"url":"https://gitee.com/PLos/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"3cfe7aaff52a953b32bd98c9ec2abc31ca2f3666","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.11.tgz","fileCount":8,"integrity":"sha512-R+KRqBbIMoQEBgeBZ1jg8l3Mmr6I2t54g0JuZXTfn4MPwWC9nsSO1+Outzuc08gtKQw41c6eti0z3qYa6wFpnA==","signatures":[{"sig":"MEUCIQCbp+8LnZaTHMaHhNQ3xEqkF0KbsGFHn8bMBWGjsPEbqgIgD2HIBkBAGfTIB7eKnk1NyeU5wamE937YlVhVpMyoqr0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186114},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.2.7"},"gitHead":"f484a28d45682c5545279d9a98b5a16dfe4ae22e","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --sourcemap --target=bun"},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"20.12.2","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.2.8","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.11_1743916264651_0.749847692861356","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"glede-server-bun","version":"1.0.12","keywords":["fastify","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.12","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/PLos/glede-server-bun","bugs":{"url":"https://gitee.com/PLos/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"be83d6ce41327af1b52622797e34a5096368d883","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.12.tgz","fileCount":8,"integrity":"sha512-BYHez03nCpj1jJ0Xt9XHAxzkRoKWjDcWrFU+RqxonHcEMI6FOy3IZAw84DoTl/ELcrLNoEuL7ZnreY0r0wPOZg==","signatures":[{"sig":"MEQCICmOPoFWyKXjMr5Hs8NBJ/AOOahZ+1X/a/S0a/GuqXl3AiAkPs2hfP6W4IDEORHjkkznv/CWiF8n7xtp9QOGwqrwnQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186661},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.2.7"},"gitHead":"f484a28d45682c5545279d9a98b5a16dfe4ae22e","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --sourcemap --target=bun"},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"20.12.2","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.2.9","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.12_1744532290062_0.6144445408615","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"glede-server-bun","version":"1.0.13","keywords":["fastify","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.13","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/PLos/glede-server-bun","bugs":{"url":"https://gitee.com/PLos/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"5170ae00aa9c19903a3958490c99f0b9e30b0dd1","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.13.tgz","fileCount":8,"integrity":"sha512-RqIg5OoqMXcjdLZXzMtDus40hcdynPi3gXyJo95acoiR8CJiw3ivIsU7TubtoBgCUUGCjG2OW79W0habZQfNfA==","signatures":[{"sig":"MEUCIDBsUwXp4Wy4UERlJOGzkgfgrUMeYvVHU5Zm6mR+n776AiEAx0L8lmMX2pv/h1tgIrRSe3TadpHzwFAPBM/CRb/yCLg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186669},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.2.7"},"gitHead":"f9df03a01c8a3ab1ca2763c7dd792232f8df5c70","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --sourcemap --target=bun"},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"20.12.2","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.2.9","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.13_1744549972081_0.12855253558374047","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"glede-server-bun","version":"1.0.14","keywords":["fastify","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.14","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/PLos/glede-server-bun","bugs":{"url":"https://gitee.com/PLos/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"ffb2ce2f2f5e62860450ba70331b6d6c4f6151d8","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.14.tgz","fileCount":8,"integrity":"sha512-vKJBldrDNGZgzOdKKEvdZ2EjvcNwtSGKZcuY/JGuoM2oABnS2WXENpcejM3R8om83sDTy63zmnjy+Z0Dwkni5Q==","signatures":[{"sig":"MEYCIQD5ZtZeCgzlggYQXZVAzh0vR7jLUdUeGtsGBy1fYSK4IwIhAIw4t59p4gy7q6iEVqthQcDCUk4EoZ6DrhWaeVEHM9Dt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186938},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.2.7"},"gitHead":"bdc303a7801435dda68d48cbee4f8f2a05061e62","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --sourcemap --target=bun"},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"20.12.2","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.2.9","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.14_1744892402234_0.9619411764614891","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"glede-server-bun","version":"1.0.15","keywords":["fastify","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.15","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/PLos/glede-server-bun","bugs":{"url":"https://gitee.com/PLos/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"c87a8ce068574ec1fa7a3d7049d4ae1b321f1eab","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.15.tgz","fileCount":8,"integrity":"sha512-UAcMGzLJm+DBC4B9RCiXtrcF386kj2FtJOsYOhf1rqzxxpO0e9bMruwI0s8F/x5shu7YXBIJN7xpRNipT/CYzQ==","signatures":[{"sig":"MEYCIQCgOlTlYpoyXRbsSQnTbj6gkWe77hcFDJXm/i2+y3DqyQIhAOBUJISBeQ+rRfyJHGsi03jljT3URcEmtPOjOWpKzSg2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":189794},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.2.7"},"gitHead":"ebb0ee8c5c8843f4f032dd2e0128fe5b0777b818","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --sourcemap --target=bun"},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"20.12.2","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.2.9","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["types/export.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.15_1745055311893_0.5269388720127315","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"glede-server-bun","version":"1.0.16","keywords":["fastify","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.16","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/PLos/glede-server-bun","bugs":{"url":"https://gitee.com/PLos/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"b0fe25c290e1e15e2fb6019d61f0108f95009256","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.16.tgz","fileCount":8,"integrity":"sha512-D0qHWYN5xvOXfW86AFp0ZewuzIRoShYThrpi0JMMaWlprRu/bhm8cbUI13LngPEwhFtVK0qXz5HOfr5IPJ8YxQ==","signatures":[{"sig":"MEYCIQDQDlfkLJ011CCCXvA05PN2QWxsA1kjmq+qQ0PeXgPZQwIhAJfuZcOb2cg7ZM1s5o2lDFQ0lN8Wvq34ph43GozLnseU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":196618},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.2.7"},"gitHead":"4389030bb278c626bc74f098eab8611f0f3da420","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --sourcemap --target=bun"},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"20.12.2","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.2.9","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["types/export.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.16_1745161642353_0.5438941550216556","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"glede-server-bun","version":"1.0.17","keywords":["bun","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.17","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/PLos/glede-server-bun","bugs":{"url":"https://gitee.com/PLos/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"8b9f54a72bf7493ae4a61d932262b2e20173b507","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.17.tgz","fileCount":8,"integrity":"sha512-B5tr7Bj9LumqVlUBaifpQ6YoAnuYtn4oD4BGPh4EfIxKyhz/gtUAoC3xAHXz9NrUahx+WHgcKP9xFc+ovWecjQ==","signatures":[{"sig":"MEUCID0K1QnjlQ9+dDN4Vax83/ZTQMged+QtPtfORPCx3y2dAiEA4qN+EdZVypqwM/7mjX4Kmvh1SKzcMr3xgrSWrO6p1EY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":196676},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.2.7"},"gitHead":"f133baea46fda6147c0de36c6c829245e4a73605","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --sourcemap --target=bun"},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"20.12.2","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.2.9","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["types/export.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.17_1745164051151_0.27413317443230256","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"glede-server-bun","version":"1.0.18","keywords":["bun","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.18","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/PLos/glede-server-bun","bugs":{"url":"https://gitee.com/PLos/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"2433d03242e029ca5b24274ba1e1ff861a9159c0","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.18.tgz","fileCount":8,"integrity":"sha512-ervGj0EuoQ2FKZJPJ43Xj2lLEGzwprpc0ZcSEiFNXTafXK5eqoGlhGOI2V2BKxdqrmyOPCPh7pCfUoCqAvFK4w==","signatures":[{"sig":"MEUCIG1kRK3qqVnCenpm0EnZkdNb7Yuzr8Zq5TgNcj9r4qqfAiEA0OLtmWLfbUMoryYcsDPMt6cIw3sA8rOk8Y+HvLy7CFU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206749},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.2.7"},"gitHead":"9a82dcaaabebee1b065dec505555765f932d3616","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --sourcemap --target=bun"},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"20.12.2","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.2.9","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["types/export.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.18_1745322686992_0.6231795631177812","host":"s3://npm-registry-packages-npm-production"}},"1.0.18-doc.1":{"name":"glede-server-bun","version":"1.0.18-doc.1","keywords":["bun","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.18-doc.1","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/PLos/glede-server-bun","bugs":{"url":"https://gitee.com/PLos/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"63fd2c32746ce0630c250f810cb2e043e728027e","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.18-doc.1.tgz","fileCount":8,"integrity":"sha512-ihqtB5CtF8V7Y1wllZxff9oHuzsyp5tYrcqtCaeMGMpiNyPvcuFehGmbKAZJxYAJeuGCd3vMLCnnU3g9GpZznQ==","signatures":[{"sig":"MEUCIHMyxyNEYXi7oD+odSxxirQPIdd6ggaqv1o5fZxeUypTAiEA6UY4WUfLolrZODpeLpAB3MUKYk2YDTCTUpcrrujzdvE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206777},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.2.7"},"gitHead":"15f4279afcdb6c150cdb3486ee11340d7a98b251","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --sourcemap --target=bun"},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"20.12.2","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.2.9","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["types/export.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.18-doc.1_1745386002542_0.6733347094630429","host":"s3://npm-registry-packages-npm-production"}},"1.0.18-doc.2":{"name":"glede-server-bun","version":"1.0.18-doc.2","keywords":["bun","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.18-doc.2","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/PLos/glede-server-bun","bugs":{"url":"https://gitee.com/PLos/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"fb49487ef6e903608faa47f1a1e53769fe9d18d4","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.18-doc.2.tgz","fileCount":8,"integrity":"sha512-S72If5nf1mEa1f6NCT1AegXNzqoD7dIKlIlBR8lbw7/s6Y6cT2SllkJVGYqiNI93BcNbuOqYMBB3B8NrgWhryw==","signatures":[{"sig":"MEUCIHIWlwOSsmVprkdtq7+vlLQZyW7JDLicE7Gdwgz9XxuSAiEAiOX6+MIcVihdi0JPRyyOJNX9o/65s4mvVyNxnb+Oouw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206780},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.2.7"},"gitHead":"26de503e2976d98d568815b61899fbad27a727be","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --sourcemap --target=bun"},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"20.12.2","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.2.9","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["types/export.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.18-doc.2_1745387177052_0.07186953022292708","host":"s3://npm-registry-packages-npm-production"}},"1.0.19":{"name":"glede-server-bun","version":"1.0.19","keywords":["bun","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.19","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/PLos/glede-server-bun","bugs":{"url":"https://gitee.com/PLos/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"e0460dfe09eabf618fe015b2c10c5aacbd6cfb26","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.19.tgz","fileCount":8,"integrity":"sha512-VHLbtG7ixdG5ioz0OxT0hQ/FJY799EZFrXLIuum/8IfRJe/xjehBdRpmyyh4Au+prJHgihB8u58CmBi/pjeBRg==","signatures":[{"sig":"MEQCIFX/cBFQc29TtCP1teEgF/+pTryXINk4E3ePgRtL8RFmAiBEJR3HbpTJw8z7UdSFWVjGkQDqmyYXoMlzbTfyeDVoxg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206222},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.2.7"},"gitHead":"1d984119f458a70e91b759d63c63e998b25284eb","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --sourcemap --target=bun"},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"20.12.2","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.2.9","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["types/export.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.19_1745673952673_0.9793500228468512","host":"s3://npm-registry-packages-npm-production"}},"1.0.20":{"name":"glede-server-bun","version":"1.0.20","keywords":["bun","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.20","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/philuo/glede-server-bun","bugs":{"url":"https://gitee.com/philuo/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"d30589636b61aa20b24c7fddf5a88cbb4cbd4e64","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.20.tgz","fileCount":8,"integrity":"sha512-StOJRkjF7+7xqhgZn1N+rswJZNdqBNe0PuiqgGMFrM1II2GMiggMccduhWJjv61eVnDxxhfQJy4wya1oYi0AWw==","signatures":[{"sig":"MEYCIQDevxEDgvFh2ih0abWYt6+IbF4ow6nbeQarR+1IOcuCoAIhAPJqlFs3gmFhrGRiy3CtrtU9rsW0GOZMaBqZiyW2zGdJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206388},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.2.7"},"gitHead":"afd89e05ac76b601c6b4d13ca9257661332d8aa2","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --sourcemap --target=bun"},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"20.12.2","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.2.9","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["types/export.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.20_1745684190708_0.1749932693215095","host":"s3://npm-registry-packages-npm-production"}},"1.0.21":{"name":"glede-server-bun","version":"1.0.21","keywords":["bun","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.21","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/philuo/glede-server-bun","bugs":{"url":"https://gitee.com/philuo/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"3664ee8e19a29f622254b133990d3a1af6de50f0","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.21.tgz","fileCount":7,"integrity":"sha512-7vdIhqkR5JibEiDMNw3z3cdLIaxfwuxGFaeK2ZrbHumRmnL3x6gojjZke88kt3QJdsH1TwzBxSDr0N0V+0WRWg==","signatures":[{"sig":"MEUCIQDSKtoaRF/srrT/QKNLGaa+ymA1ytVrEQBzAQbl2xdS1gIgLu9xPwjqR6VduIUu+yA+TPX6c4tQVuF5nMg0rw9UKi8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102968},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.2.7"},"gitHead":"98c322dd5e6b78cc91fd4728e536bb36728cf4e6","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --target=bun"},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"20.12.2","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.2.9","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["types/export.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.21_1745684415117_0.6059065678667062","host":"s3://npm-registry-packages-npm-production"}},"1.0.22":{"name":"glede-server-bun","version":"1.0.22","keywords":["bun","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.22","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/philuo/glede-server-bun","bugs":{"url":"https://gitee.com/philuo/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"9b03671924e994d8dcc493258224f13df08b294d","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.22.tgz","fileCount":7,"integrity":"sha512-4a6piGq4QgZWP7nfWF/WnR3U+lXx0YC3QHYx7319xvJQ2iyHLsHOzy+GeMA1AIDoUCRJBn7xFmdP813a6pOJXA==","signatures":[{"sig":"MEYCIQCbUHsp5XVwokKKs9PLQjjlW6zlHHsoWfxdmCJdv5m86QIhAP8CmDbrH9Y5vuZZra7FdqbwJl45rgK+U5ScZ/4o3NQH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103340},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.2.7"},"gitHead":"8fd3ffb24b08d1811fb335b0a5d9301d3e6089b1","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --target=bun"},"_npmUser":{"name":"fc1061393710","actor":{"name":"fc1061393710","type":"user","email":"1061393710@qq.com"},"email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.2.9","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["types/export.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.22_1751521917194_0.08569985196726138","host":"s3://npm-registry-packages-npm-production"}},"1.0.23":{"name":"glede-server-bun","version":"1.0.23","keywords":["bun","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.23","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/philuo/glede-server-bun","bugs":{"url":"https://gitee.com/philuo/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"b506e5818e96fc7bc871e7c5c709a06a055f729f","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.23.tgz","fileCount":7,"integrity":"sha512-4LaMSXuTOP7ut6XCwHKgLRFJDRtpFSxGWN8kzIFlsW+8qS1OC0Cyp2P2PT17PoFz//rRcdbIK5gxCzPvtbtd8Q==","signatures":[{"sig":"MEUCIErAYzD63WMRs2WvaqoXz5NVK2BUJYzGeKcwn7CWoaOyAiEAt/48FkAcQt1d4vxO46Vcp4F5oPabN3MhvKD70jqZGzs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":139279},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.3.6"},"gitHead":"e5dafaa22a713812a42b5668bea0cd193634cdf3","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --target=bun"},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"24.4.0","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.3.6","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","@fastify/busboy":"^3.2.0","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["types/export.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.23_1769423665540_0.11635264215110386","host":"s3://npm-registry-packages-npm-production"}},"1.0.24":{"name":"glede-server-bun","version":"1.0.24","keywords":["bun","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.24","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/philuo/glede-server-bun","bugs":{"url":"https://gitee.com/philuo/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"08a82472a249ba5d6b5f24b5286c6c5617a68204","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.24.tgz","fileCount":7,"integrity":"sha512-qLXLWrXg7AJ3rWdgBYcPyvrL9y3Eofq9/glX7MutxYqEZdtY7j9sg1+VxnPoeD4jUn/THYk+57RHMEt8IwSJGw==","signatures":[{"sig":"MEUCIQCTfjg8hutxyh5rm6HIsqJ/RNg7eDbKB8eVGZb1GvsR9wIgFaZSGDrWCv68tqrdvGMsJ2y2tHnUkM8bzD2KBWDEhsQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":139290},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.3.6"},"gitHead":"f7e44064195c4e278d95035706f610977868796f","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --target=bun"},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"24.4.0","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.3.6","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","@fastify/busboy":"^3.2.0","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["types/export.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.24_1769426044439_0.1357041939565362","host":"s3://npm-registry-packages-npm-production"}},"1.0.25":{"name":"glede-server-bun","version":"1.0.25","keywords":["bun","glede","glede-server","glede-server-bun"],"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","_id":"glede-server-bun@1.0.25","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"homepage":"https://gitee.com/philuo/glede-server-bun","bugs":{"url":"https://gitee.com/philuo/glede-server-bun","email":"developer@philuo.com"},"dist":{"shasum":"c2bd43d71d9180b2cacdb67b8ccc062a9af02b59","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.25.tgz","fileCount":8,"integrity":"sha512-PJqCPIwaVEgya38HZ8oqJIXEkKdnibV86IowP8YGQ+n3OZsCqefNCZRLx6O0ao59+BUVnO9XDW7Tc0VadsHjkg==","signatures":[{"sig":"MEUCIQDI0E4dUmYpt/kKKvYosPxBW8vGtKAFMDz05wY6CrxCcQIgM1Tc/TCI4MxSx7ixjmi41+mbhm4P5jdisWAnixGLZoI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":196558},"main":"dist/index.js","types":"types/export.d.ts","engines":{"bun":"^1.3.6"},"gitHead":"f7e44064195c4e278d95035706f610977868796f","scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --target=bun"},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"_npmVersion":"10.9.2","description":"Web业务服务器","directories":{},"_nodeVersion":"24.4.0","dependencies":{"ajv":"^8.17.1","ioredis":"^5.6.0","mongoose":"^8.13.1","@types/bun":"^1.3.6","nodemailer":"^6.10.0","@yuo/node-cron":"^1.0.2","@fastify/busboy":"^3.2.0","fast-querystring":"^1.1.2"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["types/export.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/glede-server-bun_1.0.25_1769656757250_0.10610578707264051","host":"s3://npm-registry-packages-npm-production"}},"1.0.26":{"name":"glede-server-bun","version":"1.0.26","license":"MIT","description":"Web业务服务器","author":{"name":"Perfumere","email":"1061393710@qq.com"},"main":"dist/index.js","types":"types/export.d.ts","typesVersions":{"*":{"*":["types/export.d.ts"]}},"homepage":"https://gitee.com/philuo/glede-server-bun","bugs":{"url":"https://gitee.com/philuo/glede-server-bun","email":"developer@philuo.com"},"keywords":["bun","glede","glede-server","glede-server-bun"],"scripts":{"build":"bun build index.ts --outdir ./dist --external @yuo/node-cron --external ajv --external fast-querystring --external ioredis --external mongoose --external nodemailer --minify --target=bun"},"publishConfig":{"access":"public"},"dependencies":{"@fastify/busboy":"^3.2.0","@types/bun":"^1.3.7","@yuo/node-cron":"^1.0.2","ajv":"^8.17.1","fast-json-stringify":"^6.2.0","fast-querystring":"^1.1.2","ioredis":"^5.6.0","mongoose":"^8.13.1","nodemailer":"^6.10.0"},"engines":{"bun":"^1.3.7"},"_id":"glede-server-bun@1.0.26","gitHead":"57596e69df06a25cf676f72df9f577cd9b2f48ac","_nodeVersion":"24.4.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-hm/IxzZVk8Elhb0ZDfnC/sbS1gQLT3Mnmb2NnBoJ8XBkWA9//bzhm+B/wM94+6I6GClsAd6nO4XUnW5eP7hxJw==","shasum":"5eab358a7682df00102b0b0349f4ab960910c882","tarball":"https://registry.npmjs.org/glede-server-bun/-/glede-server-bun-1.0.26.tgz","fileCount":8,"unpackedSize":276397,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGAiF5STlMKA+mgumA6vr+cLpSPtHafiZn6MhRqt2HAzAiArn75gXoDz7iKMkHL4y00unO0Qc/6Gf8YIE2GY8dvYaA=="}]},"_npmUser":{"name":"fc1061393710","email":"1061393710@qq.com"},"directories":{},"maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/glede-server-bun_1.0.26_1769668218999_0.17198008558635625"},"_hasShrinkwrap":false}},"time":{"created":"2025-04-03T23:15:10.483Z","modified":"2026-01-29T06:30:19.339Z","1.0.0":"2025-04-03T23:15:10.820Z","1.0.1":"2025-04-04T05:51:38.989Z","1.0.2":"2025-04-04T06:46:07.023Z","1.0.3":"2025-04-04T07:20:50.795Z","1.0.4":"2025-04-04T07:36:39.556Z","1.0.5":"2025-04-04T07:50:29.871Z","1.0.6":"2025-04-04T07:53:25.921Z","1.0.7":"2025-04-04T18:00:52.274Z","1.0.8":"2025-04-05T04:10:26.133Z","1.0.9":"2025-04-05T06:01:00.997Z","1.0.10":"2025-04-05T06:33:57.199Z","1.0.11":"2025-04-06T05:11:04.887Z","1.0.12":"2025-04-13T08:18:10.256Z","1.0.13":"2025-04-13T13:12:52.285Z","1.0.14":"2025-04-17T12:20:02.427Z","1.0.15":"2025-04-19T09:35:12.121Z","1.0.16":"2025-04-20T15:07:22.589Z","1.0.17":"2025-04-20T15:47:31.373Z","1.0.18":"2025-04-22T11:51:27.207Z","1.0.18-doc.1":"2025-04-23T05:26:42.755Z","1.0.18-doc.2":"2025-04-23T05:46:17.285Z","1.0.19":"2025-04-26T13:25:52.868Z","1.0.20":"2025-04-26T16:16:30.932Z","1.0.21":"2025-04-26T16:20:15.304Z","1.0.22":"2025-07-03T05:51:57.397Z","1.0.23":"2026-01-26T10:34:25.685Z","1.0.24":"2026-01-26T11:14:04.591Z","1.0.25":"2026-01-29T03:19:17.393Z","1.0.26":"2026-01-29T06:30:19.231Z"},"bugs":{"url":"https://gitee.com/philuo/glede-server-bun","email":"developer@philuo.com"},"author":{"name":"Perfumere","email":"1061393710@qq.com"},"license":"MIT","homepage":"https://gitee.com/philuo/glede-server-bun","keywords":["bun","glede","glede-server","glede-server-bun"],"description":"Web业务服务器","maintainers":[{"name":"fc1061393710","email":"1061393710@qq.com"}],"readme":"<p align=\"center\">\n  <a href=\"https://gitee.com/philuo/glede-server-bun\"><img src=\"https://mall.yinzuo.cn/fsfUrl/group1/M00/A6/67/CgCFGGgEqESAANdiAAT9PqWILds797.png\" alt=\"Logo\" height=500></a>\n</p>\n\n## 基于配置启动\n\n- base on [bun@^1.2.7](https://bun.sh)\n- types at [GledeServerOpts](./types/index.d.ts)\n- routers tree at `$workspace/logs/routers.txt`\n- server size: [ungzip(28kb) / gzip(10.5kb)](./dist/index.js)\n\n## 初始化项目\n\n```bash\n# 前提是你必须安装了 bun\nbun --version\n\n# 初始化项目(MacOS/Linux)\nbunx glede-init\n\n# 初始化项目(Windows)\nbun x glede-init\n# 或者\nnpx glede-init\n\n# 如果你想使用最新的脚手架\nbunx glede-init@latest\n# 或者\nnpx glede-init@latest\n\n# 进入你的项目目录\ncd <your-project>\n```\n\n支持 JSON 配置和 TS 配置, 推荐使用 TS 配置。 **推荐！**[TS 配置案例: app-config.ts](./tests/configs/app-config.ts)\n\n## Benchmark\n\n⚡️ `HTTP: 6~8x faster than` [Express@5.1.0](https://github.com/expressjs/express)\n\n⚡️ `Websocket/SSE: 3~5x faster than` [Nodejs@23.6.0](https://nodejs.org/zh-cn)\n\n`MacOS; Intel-i5 2.9GHz; Memory-DDR4(2666Mhz) 32 GB`\n\n![压测数据](https://mall.yinzuo.cn/fsfUrl/group1/M00/C5/ED/CgCFGmgB8zqADjuaAADPaQau44c428.png)\n\n```ts\n// app.ts\nimport { Server } from \"glede-server-bun\";\n\nServer({ conf: \"configs/app-config.ts\" }, (err, address) => {\n  if (err) {\n    console.log(err);\n  }\n  else {\n    console.log(`GledeServer is running at ${address}`);\n  }\n});\n```\n\n## 模版目录结构\n\n- 在您的项目目录下执行 `npm install glede-server` 后参考本项目的`tests`目录创建即可\n- 注意引包时使用 `import {...} from 'glede-server-bun';`\n- 注意引用类型使用 `import type {...} from 'glede-server-bun';`\n\n```\n├── app.ts                      // 服务器启动入口\n├── configs                     // 服务器配置\n│   ├── app-config.ts           // 服务器配置文件 支持ts和json格式, 可配置多个用于区分运行时环境\n│   ├── app.json\n│   └── lua                     // lua脚本目录\n│       ├── index.ts            // lua脚本导出口\n│       └── statList.lua        // 自定义redis lua脚本\n├── tsconfig.json               // ts编译配置\n├── types                       // ts类型描述\n│   ├── server.d.ts             // 默认: /// <reference types=\"glede-server/types\" />\n│   └── redis-lua.ts            // 拓展redis指令类型描述\n├── controllers                 // DAO, 数据操作对象\n│   └── cat.ts\n├── demos                       // 基础使用方式\n├── crons                       // 定时事务\n│   └── test.ts\n├── logs                        // 日志目录\n│   ├── apis.json               // 配置开启swagger, 在运行时执行生成覆盖接口文档\n│   ├── error.log               // 服务运行异常日志\n│   └── routers.txt             // 最新的路由信息, 服务器的路由树\n└── routers                     // 接口目录\n    ├── api                     // /api开头, 一般用于业务接口\n    ├── common                  // /开头, 一般用于通用接口\n    └── openapi                 // /openapi开头, 一般用于开放接口对接三方\n```\n\n## 路由类\n\n```ts\nimport { GledeRouter, Get, Post } from \"glede-server-bun\";\n\nexport class Router extends GledeRouter {\n  // 注意方法不要使用箭头函数\n  // 1. 依赖原型处理逻辑; 2. 注入依赖工具方便处理请求\n\n  getAllUser(req: GledeBunRequest, data: GledeReqData) {\n    // doSomething.\n\n    if (noPass) {\n      return {\n        // 1 客户端参数校验未通过, 业务无需关心\n        // >= 2 自定义\n        code: 2,\n        data: null,\n        msg: \"描述错误原因\",\n      };\n    }\n\n    // 以下情景等价于返回 {code:0, data: null}\n    // 1. 无return语句\n    // 2. return null\n    // 3. return;\n    // 4. return undefined\n\n    return {\n      code: 0, // 0 处理成功\n      data: {\n        // ...\n      },\n    };\n  }\n}\n```\n\n## [通用方法](./types/index.d.ts)\n\n- [GledeBunRequest](./types/global.ts)\n\n- [GledeUtil](./types/export.d.ts)\n\n- [GledeStaticUtil](./types/export.d.ts)\n\n- [Schema](./types/export.d.ts)\n\n- [Model](./types/export.d.ts)\n\n- [ObjectId](./types/export.d.ts)\n\n## 路由注册\n\n### 注册不带前缀的路由\n\n非 index 文件或目录会保持大小写被记录到路由中，例如示例中`./api/user/index.ts`中`user`会被注册到 /api/user/$subpath。一下示例中 index 是不会注册到路由中的，若注册`/index`则需装饰器完成需求：@Get('/index')。\n\n`routers/open?api|common/index/index.ts`\n\n`routers/open?api|common/index.ts`\n\n### 严格注册模式\n\n- 除 '/' 路由外，是否携带 / 需注册不同的 `RouterHandler`\n\n`@Get('')` 和 `@Get('/')`监听的是不同的路由,\n\n`localhost:3020/user`和`localhost:3020/user/` 是不同的路由\n\n```ts\n// 目录: routers/api/post\nimport { Poster } from \"../controllers\";\n\nexport default class extends GSD.GledeRouter {\n  @GSD.NeedAuth(\"user\")\n  @GSD.Get(\"/del/:id\", { schema: schema.delPost })\n  async delPost(req: GledeBunRequest, data: GledeReqData) {\n    const { token, payload } = req.token;\n    console.log(payload.role, payload.uid, payload.exp);\n\n    // 指定身份 root 0 | super 1 | admin 2 可下架用户文章\n    if (payload.role < ROLE_USER) {\n      Poster.deleteOne({ postId: data.params.id });\n    } else {\n      Poster.deleteOne({ postId: data.params.id }); // 非管理员, 只能删除自己的文章\n    }\n  }\n}\n```\n\n## 最佳实践\n\n- 为了您能便捷使用 GledeServer 的装饰器, `装饰器`和`GledeRouter`被挂在了全局变量`GSD`上。\n- 日志打印、数据库模型、高复用代码块儿等挂载到`global`上或`统一导出`在 GledeServer 初始化前或其他合适时机执行一次。具体操作参考`tests/app.ts & tests/components/service`\n\n```ts\n// ./routers/api/xx\nexport class Router extends GSD.GledeRouter {\n  @GSD.Get(\"/test\")\n  test(req: GledeBunRequest, data: GledeReqData) {\n    // do sth\n  }\n}\n```\n\n## 装饰器介绍\n\n### 方法装饰器\n\n> 将 Handler 装载至路由\n\n- `@Get(url: string, { schema?: GledeGetSchema, version?: string })`\n- `@Post(url: string, { schema?: GledePostSchema, version?: string })`\n- `@WS(url: string, { schema?: GledePostSchema, version?: string })`\n\n```ts\n// 支持协商压缩，不再需要手动处理数据传输层面的压缩\n// 支持心跳机制，不再需要应用层处理心跳，心跳包不再带有数据载体所以开发者工具看不到meesage帧\n// @GSD.WS中的第二个参数配置项均为可选参数，可根据需要自行配置\n// @GSD.WS配合@NeedAuth装饰器使用，可实现鉴权功能, 小程序端支持使用请求头传递Authorization: 'Bearer <token>', 浏览器端用url?token=<token>，后续可支持cookie处理，建议使用url传递token\nexport class WSRouter extends GSD.GledeRouter {\n  @GSD.NeedAuth(\"user\")\n  @GSD.WS(\"/ws\", {\n    schema: schema.wsSchema, // ajv对?search校验/自动转类型, 不用业务再手动处理性能优越 & 安全可靠\n    upgrade(req) {\n      /** 协议升级 */\n      return {\n        headers: {\n          /** 自定义HTTP响应头 */\n        },\n        data: {\n          /** 自定义传递给websocket实例的数据 */\n        },\n      };\n    },\n    // drain() {/** 处理背压 */},\n    open(ws) {\n      ws.id = ws.data.query.sessionId;\n    },\n    close(ws) {\n      /** 处理链接关闭 */\n    },\n    ping(ws) {\n      /** 接收客户端ping帧 */\n    },\n    pong(ws) {\n      /** 接收客户端pong帧 */\n    },\n  })\n  handler(ws: ServerWebSocket, message: string | Buffer) {\n    // 接收消息\n    const data = client.ClientDirective.decode(message);\n    // 处理消息\n    agent[data.option](ws, data);\n  }\n}\n```\n\n### SSE装饰器\n\n- `@SSE({ mode: 'direct', upgrade: (req, server) => { headers: Headers; } })`\n\n> 设置该装饰器后, `GledeReqData` 中会注入 controller实例, 通过它发送消息, 并自动关闭连接。若发生异常建议手动调用 `controller.close()` 关闭链接更加优雅。它仍然可以和其它装饰器一起工作。\n\n- mode默认为direct模式对应 controller.write, web对应controller.enqueue\n- 通过传入upgrade来允许/阻止请求升级，允许请求升级时还设置自定义响应头\n\n```ts\nexport class SSERouter extends GSD.GledeRouter {\n  @CORS() @SSE()\n  @GSD.NeedAuth(\"user\")\n  @POST('/chat/sse', { schema: schema.chatSSE  })\n  chatSSE(req: GledeBunRequest, data: GledeReqData) {\n    const { controller } = data;\n\n    controller.write(`data: 你的数据\\n\\n`);\n    // doSomething(controller); // 把键盘⌨️给你，你来写！\n    await asyncFunction(controlelr); // 请注意必须在方法退出前或contoller关闭前等待编排处理结束, 一旦路由处理执行结束会中断与客户端的连接\n    controller.close(); // 完事儿后, 断开SSE链接, 它会保证数据传输完成后再断开连接你不用担心。\n  }\n}\n```\n\n### 文件上传装饰器\n\n- `@Multer(opts?: MulterOpts, getOpts: MulterGetOpts)`\n\n> 处理 `multipart/form-data` 文件上传，基于 `@fastify/busboy` 实现流式处理，支持大文件上传（100MB-2GB），内存效率极高。\n\n**特性：**\n- **大小限制**：支持文件大小、字段数量、部分数量等多维度限制\n- **文件过滤**：通过 `fileFilter` 函数过滤文件类型\n- **流式处理**：使用 `pipeline()` 自动处理背压，避免内存爆炸\n- **自动清理**：超过限制时自动删除已上传的文件\n\n```ts\nexport class UploadRouter extends GSD.GledeRouter {\n  // 单文件上传 - 限制10MB\n  @GSD.Multer(\n    { limits: { fileSize: 10 * 1024 * 1024 } }, // 10MB限制\n    { single: 'file' }  // 单个文件字段\n  )\n  @GSD.Post('/upload/single')\n  uploadSingle(req: GledeBunRequest, data: GledeReqData) {\n    // data.file 包含上传的文件信息\n    return {\n      code: 0,\n      data: {\n        filename: data.file.filename,\n        size: data.file.size,\n        path: data.file.path,\n      }\n    };\n  }\n\n  // 多文件上传 - 最多5个文件\n  @GSD.Multer(\n    {\n      dest: 'tmp',\n      limits: { fileSize: 50 * 1024 * 1024 },  // 50MB限制\n      fileFilter: (req, file, callback) => {\n        // 只允许图片\n        const allowed = ['image/jpeg', 'image/png', 'image/gif'];\n        if (allowed.includes(file.mimetype)) {\n          callback(null, true);\n        } else {\n          callback(new Error('只允许上传图片'), false);\n        }\n      }\n    },\n    { array: 'files', maxCount: 5 }\n  )\n  @GSD.Post('/upload/multiple')\n  uploadMultiple(req: GledeBunRequest, data: GledeReqData) {\n    // data.files 是文件数组\n    return {\n      code: 0,\n      data: data.files.map(f => ({\n        filename: f.filename,\n        size: f.size,\n      }))\n    };\n  }\n}\n```\n\n**配置选项：**\n\n```ts\ninterface MulterOpts {\n  dest?: string;               // 保存目录，默认 'tmp'\n  limits?: {\n    fileSize?: number;         // 单文件最大大小（字节）\n    fieldNameSize?: number;    // 字段名最大大小（字节），默认100\n    fieldSize?: number;        // 非文件字段最大值（字节），默认1MB\n    fields?: number;           // 最多非文件字段数\n    files?: number;            // 最多文件字段数\n    parts?: number;            // 最多总部分数（字段+文件）\n    headerSize?: number;       // 头部最大大小（字节），默认81920\n  };\n  fileFilter?: (req: any, file: any, callback: (err: Error | null, acceptFile: boolean) => void) => void;\n  preservePath?: boolean;      // 是否保留文件路径，默认false\n}\n\ntype MulterGetOpts =\n  | { single: string }                    // 单个文件字段\n  | { array: string; maxCount?: number } // 文件数组字段\n  | Array<{ name: string; maxCount?: number }>; // 多个文件字段\n```\n\n### 跨域装饰器\n\n> 设置需要跨域的域名、方法、是否允许携带 cookie。🔔提示：使用跨域后并发降低15%～30%; 开发环境、低并发要求的接口可以使用跨域, \n\n- `@Cors(origin: string | string[], method: string, credential?: boolean)`\n\n### 鉴权装饰器\n\n> 身份鉴权(noauth | user | admin | super | root), 是否允许 Handler 处理\n> Default: noauth\n\n- `@NeedAuth(role: string)`\n\n### 验签装饰器\n\n> 签名验证, 是否允许 Handler 处理\n\n- `@NeedSign()`\n\n```ts\n/**\n * 1. 客户端 摘要过程\n */\n\n// 通过登陆等鉴权接口拿到 'MTcwMjE0MTE0Mzg5M183ODk4.BGZh4oyyHMWAWkiVSJptV5yNb7w'\n\n// 切割取第二部分缓存\nconst signKey = \"BGZh4oyyHMWAWkiVSJptV5yNb7w\";\n\n// 切割取第一部分, 需要随请求报文发送到服务端\nconst content = \"MTcwMjE0MTE0Mzg5M183ODk4\";\n\n// 要发送的报文体\nconst payload = JSON.stringify({ name: \"Kitty\" });\n\n// 同服务端约定的本项目的key\nconst baseKey = \"007\";\n\n// 请求方法 uppercase\nconst method = \"POST\" as \"POST\" | \"GET\";\n\n// /开头的url上的query\nconst query = \"/?test=001\";\n\n// 一个空格分割method 和 query\nconst head = method + \" \" + query;\n\nfunction stringify(content) {\n  if (method === \"GET\") {\n    return \"\";\n  }\n  if (method === \"POST\") {\n    return typeof content === \"string\" ? content : JSON.stringify(content);\n  }\n\n  return \"\";\n}\n\nfunction getSign(head, payload) {\n  return content + \".\" + sha1(signKey + baseKey + head + stringify(payload));\n}\n\nfunction sendRequest() {\n  return fetch(\"http://localhost:3020/?test=001\", {\n    method: \"POST\",\n    headers: {\n      signature: getSign(head, payload),\n    },\n    body: stringify(payload),\n  }).then((res) => res.json());\n}\n\nsendRequest().then((res) => {\n  console.log(res);\n});\n```\n\n## 数据库操作\n\n### sql 工具\n\n- [sql 工具使用文档](https://bun.sh/docs/api/sql)\n\n```ts\nimport { GledeStaticUtil } from \"glede-server-bun\";\n\nconst sql = GledeStaticUtil.getPgInstance();\nconst data = await sql`SELECT * FROM \"Job\" LIMIT 10`;\n\n// 建议挂载到全局变量上, 方便使用。\nglobal.sql = sql;\n\n// 开启事务\nawait sql.begin(async (tx) => {\n  // All queries in this function run in a transaction\n  await tx`INSERT INTO users (name) VALUES (${\"Alice\"})`;\n  await tx`UPDATE accounts SET balance = balance - 100 WHERE user_id = 1`;\n\n  // Transaction automatically commits if no errors are thrown\n  // Rolls back if any error occurs\n});\n\nawait sql.begin(async (tx) => {\n  return [\n    tx`INSERT INTO users (name) VALUES (${\"Alice\"})`,\n    tx`UPDATE accounts SET balance = balance - 100 WHERE user_id = 1`,\n  ];\n});\n\nawait sql.begin(async (tx) => {\n  await tx`INSERT INTO users (name) VALUES (${\"Alice\"})`;\n\n  await tx.savepoint(async (sp) => {\n    // This part can be rolled back separately\n    await sp`UPDATE users SET status = 'active'`;\n    if (someCondition) {\n      throw new Error(\"Rollback to savepoint\");\n    }\n  });\n\n  // Continue with transaction even if savepoint rolled back\n  await tx`INSERT INTO audit_log (action) VALUES ('user_created')`;\n});\n```\n\n[mongoose 操作文档](https://mongoosejs.com/docs/api/model.html)\n\n### 定义数据模型\n\n> 📢 参考 DEMO: ./tests/controllers/cat.ts <br>\n> cat 对应了数据库中的集合名称 cats, 起名字要使用单数！否则需要指定集合名字\n\n```ts\nimport { Model } from \"@/index\";\n\n// 模型数据结构\nconst CatSchema = {};\n\n// 模型自定义\nconst CatOpts = {\n  // 指定集合名, 此时集合链接到了cat, 默认是cats\n  collection: \"cat\",\n\n  // 添加便捷方法, 注意不要使用箭头函数！\n  // 可以这样使用：Cat.findByName('^cool').then(res => {});\n  statics: {\n    findByName(name: string) {\n      return this.find({ name: new RegExp(name, \"i\") });\n    },\n  },\n};\n\nexport default Model(\"cat\", CatSchema, CatOpts);\n```\n\n### 操作数据模型\n\n```ts\nimport Cat from \"@/tests/controllers/cat\";\n\n// 1. 在Cat表中插入一条数据, 后面Demo默认包裹在try-catch中\ntry {\n  await Cat.create({\n    // 插入数据格式必须是CatSchema中定义, 否则字段会被忽略\n  });\n} catch (err) {\n  /* Handle Error */\n}\n\n// 2. 在Cat表中查找一条数据, 随便找一只名叫 cool_xx 且小于2岁的🐱\n// 非常不推荐正则, 除非搜索过滤等场景。一般在任何语言中的实现都是最慢最耗性能的模式匹配。\n// 不过有的语言实现了正则的缓存, 可能在某些场景下会快。尽量不用吧！\nCat.findOne({\n  name: new RegExp(\"^cool_\", \"i\"),\n  age: { $lt: 2 },\n});\n\n// 3. 在Cat表中找到一条匹配的数据，删除\nCat.deleteOne({});\n\n// 4. 在Cat表中找到所有可以匹配删除的数据\nCat.deleteMany({});\n\n// 5. 在Cat表中找到数据并更新, upsert默认为false, 设置为true不存在就插入\n// 注意原子操作, filter, { $set: { name: '小小明' } }, options\nCat.updateOne({ name: \"明\" }, { $set: { name: \"小明\" } }, { upsert: true });\nCat.updateOne({ name: \"小明\" }, {}, { upsert: true });\n\n// 所有男生, 分数 +1\nCat.updateMany({ sex: \"male\" }, { $inc: { score: 1 } });\n\n// 6. 多种操作, 一次通信。性能upup!\n// [https://mongoosejs.com/docs/api/model.html#model_Model.bulkWrite]\nCat.bulkWrite([\n  {\n    insertOne: {\n      document: {\n        name: \"Eddard Stark\",\n        title: \"Warden of the North\",\n      },\n    },\n  },\n  {\n    updateOne: {\n      filter: { name: \"Eddard Stark\" },\n      update: { title: \"Hand of the King\" },\n    },\n  },\n  {\n    deleteOne: {\n      filter: { name: \"Eddard Stark\" },\n    },\n  },\n]).then(({ insertedCount, modifiedCount, deletedCount }) => {\n  // 1 1 1\n  console.log(insertedCount, modifiedCount, deletedCount);\n});\n```\n\n## 默认记录错误日志\n\n- 默认记录日志, 需要创建对应的目录路径\n- 根目录创建文件: logs/error.log\n\n## 请求需通过 Schema 校验\n\n- 手动创建 Schema\n- [Schema 校验采用 Ajv6](https://www.npmjs.com/package/ajv)\n\n```ts\n// 新建或修改路由文件\n// mkdir routers/${api | openapi}/${router | routerDir/index.ts}\n// api|openapi目录下存放路由可以是ts文件或目录, 文件内和目录内的Schema定义可相互引用\n// 示例 /routers/api/user/index.ts\nimport { getAllUsersSchema, getAllUsersSchemaV2 } from './schema';\n\nexport Router extends GledeRouter {\n  // version是接口的版本用于线上并行, 可选：默认 '', 如果出现版本区分可填写 v1, v2, ...\n  // schema是参数的拦截校验, 必选：1. 客户端字段安全拦截 2. 增加序列化的性能10%~15% 3. 生成接口文档协同开发\n  // match: /api/v1/:id\n  @Get('/:id', { version: 'v1', schema: getAllUsersSchema }) @Cors()\n  getAllUsers(req: GledeBunRequest, data: GledeReqData): GledeResData {\n    return {\n      code: 0,\n      data: {\n          // ...\n      }\n    };\n  }\n\n  @NeedAuth('super') @Cors('https://philuo.com', 'GET,POST')\n  @Get('/:id', { version: 'v2', schema: getAllUsersSchemaV2 })\n  @Post('/:id', { schema })\n  getAllUsersV2(req: GledeBunRequest, data: GledeReqData): GledeResData {\n    return {\n      code: 0,\n      data: {\n          // ...\n      }\n    };\n  }\n}\n```\n\n## 集成功能\n\n### 自定义日志输出\n\n```ts\n// @/utils/log.ts\nimport { GledeStaticUtil } from \"glede-server-bun\";\nimport { join } from \"path\";\n\nexport const logger = new GledeStaticUtil.Logger({\n  // 输出位置, 默认[1]输出到日志文件; [0]输出到控制台, [0, 1]输出到控制台和文件\n  target: [1],\n  // 日志输出的目录, 默认存储在运行node的路径下的logs路径下\n  // !import 注意服务运行中不可以删除 dir目录\n  dir: join(__dirname, \"logs\"),\n  // 日志文件名 默认 glede-server.log 如果开启轮转会自动补充后缀\n  // !import 注意服务运行中不可以删除 filename文件, 其他轮转生成的文件可以移动或删除\n  filename: \"glede-server.log\",\n  // 日志轮转, 到期生成新的日志文件格式如下 20231210-1411-03-glede-server.log\n  interval: \"30d\",\n  // 日志大小, 超限生成新的日志文件格式如下 20231210-1411-03-glede-server.log\n  size: \"10M\",\n  // 控制单个文件大小, 注意开启压缩再使用 超过限制后旧文件会被压缩\n  // maxSize: '10M',\n  // 是否开启压缩, 默认关闭 不允许设置false, 关闭不设置该属性即可\n  // compress: true\n  // 最多保留的最近的日志文件和压缩包数量, 默认全部保留不设置即可\n  // maxFiles: 30\n});\n\nlogger.error(\"123\"); // level === 0\nlogger.warn(\"123\"); // level === 1\nlogger.info(\"123\"); // level === 2\nlogger.log(\"123\", 2); // 仅输出到控制台, 不干扰日志文件(level可选默认2 INFO级别)\n```\n\n### Token 签发与验证\n\n- 实现分发（sign, unsign）\n\n- 实现校验（verify）\n\n```\nif not 过期 -> if not 快过期 -> if match 身份 -> if not 是否篡改 -> if not blklist -> ok\nelse fail -> else -> else fail -> else fail -> else fail\n             if ok then blklist and return data with new token\n             if not ok then fail\n```\n\n### 数据库驱动\n\n- `mongoose`\n\n- `ioredis`\n\n- `sqlite`\n\n- `postgres`\n\n- `mysql`\n\n### 区域检测\n\n[@yuo/ip2region](https://github.com/philuo/ip2region)\n\n### SMTP 邮件发送\n\n[nodemailer](https://www.npmjs.com/package/nodemailer)\n\n### 黑名单\n\n- `ip blklist`\n\n`判黑条件：超管手动添加 / 时间段频率 / 单日访问次数`\n\n- `token blklist`\n\n`判黑条件：超管手动添加 / 即将过期且验证通过的Token`\n\n### 定时任务\n\n[@yuo/node-cron](https://github.com/philuo/node-cron)\n\n### TODO\n\n- 补充用例，给出友好的报错提示。目前一些异常捕获后没有提示，可能会造成疑惑🤔。\n- 接Apifox, 自动更新接口文档避免手动维护。\n- 丰富装饰器/通用工具。\n- 黑名单持久化\n  - 触发条件: 程序判定新增IP黑名单\n  - 通知方式: 邮件/机器人通知警告\n","readmeFilename":"README.md"}