{"_id":"@20syldev/api","_rev":"88-cd9d4c0710af6c6b76ea01ac22efb6b6","name":"@20syldev/api","dist-tags":{"latest":"6.0.0"},"versions":{"2.6.0":{"name":"@20syldev/api","version":"2.6.0","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@2.6.0","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.pro","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"9eb4edb53229bd2d35e2f2b8f55dd55ca91bad2e","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-2.6.0.tgz","fileCount":7,"integrity":"sha512-5u1b0FfOk8PKbjQQ31ACbVbL3L/QnWlcwPXB2orZSAzxl0HErJdkaq5gTxsfbrMIfIOWty43oX3EKFmPA82wYQ==","signatures":[{"sig":"MEQCIGFEsQYQvVcuf7LPuYjOddPb5fhzJ8OYUJd01JZRZG67AiBcF6CTI/U3GLZ2K6KDLCCS7UrAcOvAK1x2xSC4rhjWAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":300876},"main":"app.js","gitHead":"5e422defd6ce2642be6a9459a585fb9faf022293","scripts":{"build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"9.2.0","description":"Personnal API","directories":{},"_nodeVersion":"18.19.1","dependencies":{"cors":"2.8.5","uuid":"^11.0.5","canvas":"^3.1.0","dotenv":"^16.4.7","mathjs":"^14.2.0","qrcode":"^1.5.4","random":"^5.1.1","express":"^4.21.2","prettier":"^3.4.2","node-fetch":"^2.7.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/api_2.6.0_1739358823349_0.8286109738388134","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"@20syldev/api","version":"2.7.0","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@2.7.0","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.pro","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"01f6127a384a595eb12b4d2e31b9d4416045cd67","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-2.7.0.tgz","fileCount":8,"integrity":"sha512-7SUF9c7fznkLugrF1RZIsMUqaMHBsWK6reFTX/Czq4PoEv7OaiYzf+dP3myum1lq0KSeVUsaA2Mw9TGwarwc9Q==","signatures":[{"sig":"MEUCIQCbXKdiXmYBfrUVFWEeqUq/Gfrry8Rs8ceTyPmY8sFdSAIgHgqLxiIWaFAw50Qj3txOylabOA+O0xwlP6R0xK1/3WM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":301435},"main":"app.js","gitHead":"2a91fa77cad1c5903b2b0ee610483ad358367bcd","scripts":{"build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"10.8.2","description":"Personnal API","directories":{},"_nodeVersion":"20.18.2","dependencies":{"cors":"2.8.5","uuid":"^11.0.5","canvas":"^3.1.0","dotenv":"^16.4.7","mathjs":"^14.2.0","qrcode":"^1.5.4","random":"^5.1.1","express":"^4.21.2","prettier":"^3.4.2","node-fetch":"^2.7.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/api_2.7.0_1739360829762_0.7244372946279609","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"@20syldev/api","version":"2.8.0","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@2.8.0","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.pro","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"e3f2ee9f1b078028c7f81a63f632dbe238096556","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-2.8.0.tgz","fileCount":8,"integrity":"sha512-1OM81B4JyUrJQ25cC3dLKdCsFt+9lM0O8FPX0c1/miNTQMjm4dJOr2+UbdzLAndWPXTxVHN9x5CwyIU5/hGxcQ==","signatures":[{"sig":"MEUCIGGmiXl5zQyOEvHXpNXJeLpFpdjwFr8pYS509l//C5nbAiEAu73tHmhBH+oYlxQIUm83Y15QRD8VYbZNkm2/Imskops=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":302746},"main":"app.js","gitHead":"8587742eb9988d9afcaf8fd893b0ceb87411f37d","scripts":{"build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"10.8.2","description":"Personnal API","directories":{},"_nodeVersion":"20.18.2","dependencies":{"cors":"2.8.5","uuid":"^11.0.5","canvas":"^3.1.0","dotenv":"^16.4.7","mathjs":"^14.2.0","qrcode":"^1.5.4","random":"^5.1.1","express":"^4.21.2","prettier":"^3.4.2","node-fetch":"^2.7.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/api_2.8.0_1739396073966_0.09272140016947117","host":"s3://npm-registry-packages-npm-production"}},"2.9.0":{"name":"@20syldev/api","version":"2.9.0","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@2.9.0","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.pro","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"11308b86383d89ab861d00c77cd3a644ed342fb5","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-2.9.0.tgz","fileCount":8,"integrity":"sha512-1yWR361jW9a/G5NFWtdtY9NlxQhOwQr0w0D3qmZMZ/sv6geOcWYKoe/7bCoEa9A1jD5pJUPlgambNLBELm5KAg==","signatures":[{"sig":"MEUCIQCXMK7vcWHbmuTzHnh2VBKQq4pA1fKeIs1NdiF8u85baAIgUWXtUJwC57fKmqV6xgCfWmjvAuPYYP9WkBZazjEzD6I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":303908},"main":"app.js","type":"module","gitHead":"877854971b2edc53e44c60820cf9e9c0371bc754","scripts":{"build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"10.8.2","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.pro","directories":{},"_nodeVersion":"20.18.2","dependencies":{"cors":"latest","uuid":"latest","canvas":"latest","dotenv":"latest","mathjs":"latest","qrcode":"latest","random":"latest","express":"latest","prettier":"latest","node-fetch":"latest"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/api_2.9.0_1739541782795_0.9016000718729982","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@20syldev/api","version":"3.0.0","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.0.0","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.pro","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"a54db4d777e0cc0d9e81e80fe4f1a49071c719d7","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.0.0.tgz","fileCount":8,"integrity":"sha512-ODu21NQ3GsA0RIAA/3GPovo+rkNWbAA8GNuI0IzR/gx3bEGy+5W6cdRMKkxiT3oA52nm3ql6tgquQzawqdwrTw==","signatures":[{"sig":"MEUCIQD9Vw0QVsLqGlM5B5mhQT9tUgPdvXTa//QhAn5MrDmALQIgVRRKtULqAizmXJYFJW0K3Hhrx0XUOeI4SRGAL6Q+IOM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":311432},"main":"app.js","type":"module","gitHead":"9f78a98f0e91de876297d4a1a68689d7f7c4ea3f","scripts":{"build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"10.8.2","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.pro","directories":{},"_nodeVersion":"20.18.2","dependencies":{"cors":"latest","uuid":"latest","canvas":"latest","dotenv":"latest","mathjs":"latest","qrcode":"latest","random":"latest","express":"latest","prettier":"latest","node-fetch":"latest"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/api_3.0.0_1740185897355_0.3957270735384386","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"@20syldev/api","version":"3.2.0","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.2.0","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.pro","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"9888f0b8929769bebf4ce6746f77f4f426410ff7","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.2.0.tgz","fileCount":8,"integrity":"sha512-C/03O2qSDnDBXjDKzug95dmt+gfRkZE2vP0l/VBD/O2FUV4EASPT8UMN8GuoDT/kmEvWUOZaETDq6lqYQFf8IQ==","signatures":[{"sig":"MEYCIQCHt4w+8rajf1umA3nW9Pwg3zjLdiKvczfnA9wGtI9KYAIhAOvNqqZn7vnX5wrFhRDxyl/WIYsoABXSc2Cb/abpUmUI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":314314},"main":"app.js","type":"module","gitHead":"f6c5a5e9de25d75a50f63f053e19331bd40f93ce","scripts":{"dev":"nodemon app.js","lint":"prettier --write .","build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"10.8.2","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.pro","directories":{},"_nodeVersion":"20.18.3","dependencies":{"cors":"latest","uuid":"latest","canvas":"latest","dotenv":"latest","mathjs":"latest","qrcode":"latest","random":"latest","express":"latest","ical.js":"latest","prettier":"latest","node-fetch":"latest"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/api_3.2.0_1740869390509_0.3508957175648477","host":"s3://npm-registry-packages-npm-production"}},"3.2.1":{"name":"@20syldev/api","version":"3.2.1","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.2.1","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.pro","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"00817c1a880af4d564f1e070742373123f98be24","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.2.1.tgz","fileCount":8,"integrity":"sha512-8mzarL9PvE/1dSVRaiRrDImqXwCxsSo/ojhy1Z4UYveO7HDJSU97rnbobvVKL9FAIhyY1o4fodn7vU5K1c4AFA==","signatures":[{"sig":"MEUCIQCrKFtO9OQ5OYk2nPLac6JcPABX0gePlHPVNkV8o9GfgwIgUtUnh9wsAOz12vZtATwcv3/H7ZuhZxq0v2Hl8+cXO3A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":315672},"main":"app.js","type":"module","gitHead":"aaf6c175e80199cdfd103b62cc0ffcf0430520aa","scripts":{"dev":"nodemon app.js","lint":"prettier --write .","build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"10.9.0","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.pro","directories":{},"_nodeVersion":"22.12.0","dependencies":{"cors":"latest","uuid":"latest","canvas":"latest","dotenv":"latest","mathjs":"latest","qrcode":"latest","random":"latest","express":"latest","ical.js":"latest","prettier":"latest","node-fetch":"latest"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/api_3.2.1_1740879356879_0.5272795071999894","host":"s3://npm-registry-packages-npm-production"}},"3.2.2":{"name":"@20syldev/api","version":"3.2.2","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.2.2","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.pro","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"23fd7c81c491793fda487e4769479890237feed1","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.2.2.tgz","fileCount":8,"integrity":"sha512-hUGd0WwjP0gx8pTPLrsa5U2sa8by/2qhxJs1UHzy8KbFEIkOPRgeKdAXFOu4dIys93Rw+Kpu5rKgziWix7d5IQ==","signatures":[{"sig":"MEUCIGR1bwUnmwPJSwZ+YxW2K1G2x1MQ+274jvKhj9WvVtdHAiEAqDsuwwcbSQ2CsYnzTSWSCHy3jgsQ21ZI7ESykBuHZqY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":314313},"main":"app.js","type":"module","gitHead":"fcfae80d06338a9e47bf6166c0fa35f12f6acc24","scripts":{"dev":"nodemon app.js","lint":"prettier --write .","build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"9.2.0","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.pro","directories":{},"_nodeVersion":"18.19.1","dependencies":{"cors":"latest","uuid":"latest","canvas":"latest","dotenv":"latest","mathjs":"latest","qrcode":"latest","random":"latest","express":"latest","ical.js":"latest","prettier":"latest","node-fetch":"latest"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/api_3.2.2_1740997709559_0.041052785709573936","host":"s3://npm-registry-packages-npm-production"}},"3.2.3":{"name":"@20syldev/api","version":"3.2.3","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.2.3","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.pro","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"06e0aef05bb7ea7270af0b19db97a1e18453e77e","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.2.3.tgz","fileCount":8,"integrity":"sha512-xGTwYR9hYVGenFdJoXLTwIdcS8xlsjovpyftAmVUfoMtB9jFrx3L+rhocrRON7itPOgSbXH9T4YkbguVEIrpCQ==","signatures":[{"sig":"MEUCIQCwtD7LHUQo7uLRzKBQJDz/GRKv+Lotr8frca3cNCKXcwIgWGPJs9vpJq2CVXe8vnnZ8nUX6uydx3+wtqIN4L69Z3E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":315709},"main":"app.js","type":"module","gitHead":"ffb27fb07a5abab1d26b0f21ce363d016618c432","scripts":{"dev":"nodemon app.js","lint":"prettier --write .","build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"10.9.0","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.pro","directories":{},"_nodeVersion":"22.12.0","dependencies":{"cors":"latest","uuid":"latest","canvas":"latest","dotenv":"latest","mathjs":"latest","qrcode":"latest","random":"latest","express":"latest","ical.js":"latest","prettier":"latest","node-fetch":"latest"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/api_3.2.3_1741372544077_0.6283202079423069","host":"s3://npm-registry-packages-npm-production"}},"3.2.4":{"name":"@20syldev/api","version":"3.2.4","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.2.4","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.pro","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"efa1401403dc9f5b74031dc62b5e04561937e9b5","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.2.4.tgz","fileCount":8,"integrity":"sha512-FmMSO6Hg6Uvf8WD6nqhOOBacB0Hczebu1/uvwc1pkdsps4p11JlDRmQicSitLZGHQBfQLLUhTjaHiiJ3K823Bg==","signatures":[{"sig":"MEYCIQCRvhKUIQOkg1JR91Hw7HsSgvgVn+9rCAm4JltOivHn0gIhAMGXzZLiXMRRkaeqsAkAIA8+AcsfXeD4vcorbtf/5ZQj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":314355},"main":"app.js","type":"module","gitHead":"ffb27fb07a5abab1d26b0f21ce363d016618c432","scripts":{"dev":"nodemon app.js","lint":"prettier --write .","build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"9.2.0","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.pro","directories":{},"_nodeVersion":"18.19.1","dependencies":{"cors":"latest","uuid":"latest","canvas":"latest","dotenv":"latest","mathjs":"latest","qrcode":"latest","random":"latest","express":"latest","ical.js":"latest","prettier":"latest","node-fetch":"latest"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/api_3.2.4_1741593209216_0.27016332134257515","host":"s3://npm-registry-packages-npm-production"}},"3.2.5":{"name":"@20syldev/api","version":"3.2.5","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.2.5","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.pro","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"6b21f4441d818bbe3e1ad954d70fa1e8709f3bbe","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.2.5.tgz","fileCount":8,"integrity":"sha512-+8jzmAARGCxtwVAPWKtp25910M3Tk1DdtRrfU1oqoDfFa1Hih4A7g7fhlik+xad4gOf4ScLn7JUloXMnmpD61g==","signatures":[{"sig":"MEUCIQDU1qBq5+yL7r+mUX4AqJtgKvzBQNMxVkf9PQygpD2RJgIgVk9ptdFD557Myza1kkczx8wq6zoCweM0V2frf9pjpdc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":314450},"main":"app.js","type":"module","gitHead":"ffb27fb07a5abab1d26b0f21ce363d016618c432","scripts":{"dev":"nodemon app.js","lint":"prettier --write .","build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"9.2.0","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.pro","directories":{},"_nodeVersion":"18.19.1","dependencies":{"cors":"latest","uuid":"latest","canvas":"latest","dotenv":"latest","mathjs":"latest","qrcode":"latest","random":"latest","express":"latest","ical.js":"latest","prettier":"latest","node-fetch":"latest"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/api_3.2.5_1741593509653_0.10443593172387255","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"@20syldev/api","version":"3.3.0","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.3.0","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.pro","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"ffd636f0246fa80a8b6adc4983910ce5d4f57cf0","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.3.0.tgz","fileCount":8,"integrity":"sha512-uApsTu6xON65fp/LSVv5ttWtxHdxsS/yMOdj/DwJoZ9uyZCZbapSy/MmKq1zgILgg2X1pmrLP6BXgrVOARI5ww==","signatures":[{"sig":"MEUCIQDQKhCkGv2psKaj4udztXuZm0oNH/L5ACgisbgruWMoUAIgHNGnmnja6WgwbeStBtCVUI9N5siVPnXYrGwhw8eO5Ks=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":317377},"main":"app.js","type":"module","gitHead":"e76df72688bf48aec5e8df8817fbb0be95a48131","scripts":{"dev":"nodemon app.js","lint":"prettier --write .","build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.2.0","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.pro","directories":{},"_nodeVersion":"22.12.0","dependencies":{"cors":"latest","uuid":"latest","canvas":"latest","dotenv":"latest","mathjs":"latest","qrcode":"latest","random":"latest","express":"latest","ical.js":"latest","prettier":"latest","node-fetch":"latest"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/api_3.3.0_1742503008992_0.42550118654358426","host":"s3://npm-registry-packages-npm-production"}},"3.3.1":{"name":"@20syldev/api","version":"3.3.1","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.3.1","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.pro","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"42d25e3f9d1547eb1e0163da8f752dfea627a223","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.3.1.tgz","fileCount":8,"integrity":"sha512-fv572MwZQCKjWrHePaxe/1r4C09GjXcu1tUgsWqDH5WibA3yMmGPl9jtdX/5PmAd+oCp0X02mWpXVfAhF7ZOOQ==","signatures":[{"sig":"MEQCIBfGVqGrUApsUbPTsQys8cBbigiqvgSsNT6Qksj8REYgAiBXGoLwRSCIjvp4hlMMdElJmdMxvJ5DSchw1pk7iTJG1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":317548},"main":"app.js","type":"module","gitHead":"2552c5c7a1a1f04ae7af41e593d62169c5f70d5b","scripts":{"dev":"nodemon app.js","lint":"prettier --write .","build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.2.0","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.pro","directories":{},"_nodeVersion":"22.12.0","dependencies":{"cors":"latest","uuid":"latest","canvas":"latest","dotenv":"latest","mathjs":"latest","qrcode":"latest","random":"latest","express":"latest","ical.js":"latest","prettier":"latest","node-fetch":"latest"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/api_3.3.1_1742602105991_0.1636824250830735","host":"s3://npm-registry-packages-npm-production"}},"3.3.2":{"name":"@20syldev/api","version":"3.3.2","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.3.2","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.pro","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"eabea602b7b1119e28e5c0e3daa935fbf0f0ce1b","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.3.2.tgz","fileCount":8,"integrity":"sha512-29qAi0zE4l6F6Y9arMSKEuM1hsLUHw6/c/dDu613AUND5f6PZs/D0+GWBpSVCzytVKDrVdsGvQPU2hH9KtXnSw==","signatures":[{"sig":"MEYCIQCC9PCLe9N2IZLEl6EqSDGYtRzOiuET/e6dbd8RLxkWbQIhANqKOgtPNd6yNWMh3b2UUZgpIQSJOIsCgR/Un1ajlfHp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":317558},"main":"app.js","type":"module","gitHead":"59c52d0984d2bbc75622a171645524c1a36cfcc6","scripts":{"dev":"nodemon app.js","lint":"prettier --write .","build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.2.0","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.pro","directories":{},"_nodeVersion":"22.12.0","dependencies":{"cors":"latest","uuid":"latest","canvas":"latest","dotenv":"latest","mathjs":"latest","qrcode":"latest","random":"latest","express":"latest","ical.js":"latest","prettier":"latest","node-fetch":"latest"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/api_3.3.2_1742660696820_0.14071935953717118","host":"s3://npm-registry-packages-npm-production"}},"3.3.3":{"name":"@20syldev/api","version":"3.3.3","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.3.3","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.pro","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"fde55341d07c61903f985246e8ab96b4b58c5bc7","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.3.3.tgz","fileCount":8,"integrity":"sha512-BCIe+mEIBRAv57MwRpj4WqL2zsAZ6DhwkxLYGi6YdF4JAhWI5sipBQKAEUKdQEQ9ndj8Eap3UA1iPmjV8Xri9Q==","signatures":[{"sig":"MEQCIAvOI9m/H40ob8sAGdGB6GaGedS/AxINXArKJ1TOGzSwAiAJZTxoSDmTa2BR2H2ySKzjWhswqO+fCXetYraAspC8iA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":317998},"main":"app.js","type":"module","gitHead":"59c52d0984d2bbc75622a171645524c1a36cfcc6","scripts":{"dev":"nodemon app.js","lint":"prettier --write .","build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.2.0","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.pro","directories":{},"_nodeVersion":"22.12.0","dependencies":{"cors":"latest","uuid":"latest","canvas":"latest","dotenv":"latest","mathjs":"latest","qrcode":"latest","random":"latest","express":"latest","ical.js":"latest","prettier":"latest","node-fetch":"latest"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/api_3.3.3_1742762679284_0.9340874364117455","host":"s3://npm-registry-packages-npm-production"}},"3.3.4":{"name":"@20syldev/api","version":"3.3.4","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.3.4","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.pro","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"d2f5e32e9b8dc2791cd4e7822334d8acfe5682f8","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.3.4.tgz","fileCount":8,"integrity":"sha512-bj1Jf0iKbn7gECL/nxMVL5Gf530zWRkrCoJQbjDoV/9kyNQD+9b6cM1//9fj33CSGOED+azYFvnSUF1M66x01w==","signatures":[{"sig":"MEUCIEnT6bRXkxFdfCTUdpnkLVB8CkhdUPP/7JFx7+mwJ44YAiEA4WoEiVjjF4JtRV75WevaaQ3vrx8zMYy4babS6imv52c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":316670},"main":"app.js","type":"module","gitHead":"55a2fcd81e025d029126e55d7a4326b2cd133329","scripts":{"dev":"nodemon app.js","lint":"prettier --write .","build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"9.2.0","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.pro","directories":{},"_nodeVersion":"18.19.1","dependencies":{"cors":"latest","uuid":"latest","canvas":"latest","dotenv":"latest","mathjs":"latest","qrcode":"latest","random":"latest","express":"latest","ical.js":"latest","prettier":"latest","node-fetch":"latest"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/api_3.3.4_1743176301997_0.7882054762150219","host":"s3://npm-registry-packages-npm-production"}},"3.3.5":{"name":"@20syldev/api","version":"3.3.5","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.3.5","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.pro","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"ddecdfd016b8e37edb9ddfc1a5709340065110d6","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.3.5.tgz","fileCount":8,"integrity":"sha512-9FHcy+17V1y2BrYNhDbYE2dn0qRzGq35Y2aeH+rOCCTvmVGXToTjqcTG5c9YX94nh/+BxlZOPaWN1vXt/Z/ddA==","signatures":[{"sig":"MEUCIHJJmajOeeI/gww7NkiAJjyY+FHBO6wWEuaDCPw3C0uSAiEAh3hKSd9gg3ftDJy5sVOvCpxWLKnuJKb1edIBikVCx6E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":318228},"main":"app.js","type":"module","gitHead":"ef0a79345e63fa5dff04b83de398a6c6a11b54ef","scripts":{"dev":"nodemon app.js","lint":"prettier --write .","build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.2.0","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.pro","directories":{},"_nodeVersion":"22.12.0","dependencies":{"cors":"latest","uuid":"latest","canvas":"latest","dotenv":"latest","mathjs":"latest","qrcode":"latest","random":"latest","express":"latest","ical.js":"latest","prettier":"latest","node-fetch":"latest"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/api_3.3.5_1743346539785_0.6530833503098621","host":"s3://npm-registry-packages-npm-production"}},"3.3.6":{"name":"@20syldev/api","version":"3.3.6","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.3.6","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.pro","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"75f7d7077f813b77ed23295052fb097c8ab87b78","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.3.6.tgz","fileCount":8,"integrity":"sha512-7A6Ri86wnYdytqCR2Xl6Z7PsGMfV44t1RZVaaDJIE9eI7iur/uZwMDP6wBP6ehSckd+tPgWN0xnUhml9U6Ldzg==","signatures":[{"sig":"MEUCIQCgovjOk1jRBdelk9lS/xI23oZr9OF7Xrv7SUMf0274FwIgXq2wS3eW8+A+oPsHA+15yckhXSuqvWCigS5eII3uMEQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":316829},"main":"app.js","type":"module","gitHead":"ef0a79345e63fa5dff04b83de398a6c6a11b54ef","scripts":{"dev":"nodemon app.js","lint":"prettier --write .","build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"9.2.0","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.pro","directories":{},"_nodeVersion":"18.19.1","dependencies":{"cors":"latest","uuid":"latest","canvas":"latest","dotenv":"latest","mathjs":"latest","qrcode":"latest","random":"latest","express":"latest","ical.js":"latest","prettier":"latest","node-fetch":"latest"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/api_3.3.6_1743588709737_0.08609134904030347","host":"s3://npm-registry-packages-npm-production"}},"3.3.7":{"name":"@20syldev/api","version":"3.3.7","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.3.7","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.pro","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"34f85654e937cdb0b9e3fca5796dbd5fc36b8d5b","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.3.7.tgz","fileCount":8,"integrity":"sha512-ErhqowI3DHFYdyByZ8uIEaS9IKBs03mLRhxmTSMaEnkw5t19/OnDlfcvvWoHuOI43+5JEYCQQaHvV+ocbYNgZQ==","signatures":[{"sig":"MEUCIEkSHVa9ckG4Fo4T5NrdaAcGoOKrzRm6CZsS+kPCIgNxAiEA2HtnzIDrbWs1Xjni2OuDJ2w3oUZvsgt0rBOobIfrkR0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":318271},"main":"app.js","type":"module","gitHead":"b3c556cf5e8d8daf53e0904a5f0b0ebe2ffee6e0","scripts":{"dev":"nodemon app.js","lint":"prettier --write .","build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.2.0","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.pro","directories":{},"_nodeVersion":"22.12.0","dependencies":{"cors":"latest","uuid":"latest","canvas":"latest","dotenv":"latest","mathjs":"latest","qrcode":"latest","random":"latest","express":"latest","ical.js":"latest","prettier":"latest","node-fetch":"latest"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/api_3.3.7_1743712919593_0.9313580417692333","host":"s3://npm-registry-packages-npm-production"}},"3.3.8":{"name":"@20syldev/api","version":"3.3.8","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.3.8","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.pro","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"f316db1b5412aada9238f79a3e68bd4a439a3c09","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.3.8.tgz","fileCount":8,"integrity":"sha512-aOFWxYwnzKmDVsKmkBxv1qcI/ICd02dOeWEDyvyrbkGMxvXFdGbT2N1kzeaXjPM4hSrmdh1+a1jZqnfqdRQ7SA==","signatures":[{"sig":"MEQCIGNO7rgPPpe/gw8Gex4iXX+QQnkR9PYqX3t74cI/qwXUAiBCCCSL1BazEJvaI2F/kWxqplbsM1tNCCHUQv/QYTJ+SA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":317000},"main":"app.js","type":"module","gitHead":"9038058dfd0a9ccfb5a3ae679b0ba8c9bc1235d1","scripts":{"dev":"nodemon app.js","lint":"prettier --write .","build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"9.2.0","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.pro","directories":{},"_nodeVersion":"18.19.1","dependencies":{"cors":"latest","uuid":"latest","canvas":"latest","dotenv":"latest","mathjs":"latest","qrcode":"latest","random":"latest","express":"latest","ical.js":"latest","node-fetch":"latest"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"latest","prettier":"latest","npm-check-updates":"latest"},"_npmOperationalInternal":{"tmp":"tmp/api_3.3.8_1747054949036_0.41979157074458273","host":"s3://npm-registry-packages-npm-production"}},"3.3.9":{"name":"@20syldev/api","version":"3.3.9","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.3.9","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.pro","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"3683d337662194f8b39415e4fb91da66badde0c8","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.3.9.tgz","fileCount":8,"integrity":"sha512-I/JPX0ZeNNy4etZWB2pH9QO6Y3TBq2U8B2dAkIRZxNgHVtk+Gmr+SpKuJZ2ovPrskd+TS/oYGCmBOGP52qdW8w==","signatures":[{"sig":"MEUCIF2l0dVSFkhVCBih8iara1+9kdLZu/ozIp85AvlRomDgAiEAtjcrABk+ALcikg70O6dxcF5n1UMXmJVGzzHKRbgCVKg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":317012},"main":"app.js","type":"module","gitHead":"a1143e375eab383caf516eeea466c75a39a1cf29","scripts":{"dev":"nodemon app.js","lint":"prettier --write .","build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"9.2.0","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.pro","directories":{},"_nodeVersion":"18.19.1","dependencies":{"cors":"latest","uuid":"latest","canvas":"latest","dotenv":"latest","mathjs":"latest","qrcode":"latest","random":"latest","express":"latest","ical.js":"latest","node-fetch":"latest"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"latest","prettier":"latest","npm-check-updates":"latest"},"_npmOperationalInternal":{"tmp":"tmp/api_3.3.9_1748423644521_0.24089213207558213","host":"s3://npm-registry-packages-npm-production"}},"3.4.0":{"name":"@20syldev/api","version":"3.4.0","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.4.0","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.pro","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"e08c3278bcdf23b6de56099f46d093a91eed97c1","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.4.0.tgz","fileCount":25,"integrity":"sha512-UP2jBG0/r1SRngpVk6RHgZv60o6UoIP4f+zqrXh9zuMykYgZbnWVngVH+UZ6qG9ipRgsl6SS7rH94dVUETUOpw==","signatures":[{"sig":"MEYCIQCo11jgs6Kq13pK/XMeZHC3VF5gXC3kyjV1l4rF962HzAIhAJIL9mL9XZVqt3l9F5rzRt8I+gg+6SFiz6ILMVzuUCgW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":341323},"main":"app.js","type":"module","exports":{"./v1":"./modules/v1.js","./v2":"./modules/v2.js","./v3":"./modules/v3.js"},"gitHead":"5417d9ac3b3fc30318c7725e606d3dbb5323928d","scripts":{"dev":"nodemon app.js","lint":"prettier --write .","build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","actor":{"name":"20syldev","type":"user","email":"git@sylvain.pro"},"email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.2.0","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.pro","directories":{},"_nodeVersion":"22.12.0","dependencies":{"cors":"latest","uuid":"latest","canvas":"latest","dotenv":"latest","qrcode":"latest","random":"latest","express":"latest","ical.js":"latest","node-fetch":"latest"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"latest","prettier":"latest","npm-check-updates":"latest"},"_npmOperationalInternal":{"tmp":"tmp/api_3.4.0_1751818677858_0.14701272137050214","host":"s3://npm-registry-packages-npm-production"}},"3.4.1":{"name":"@20syldev/api","version":"3.4.1","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.4.1","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.pro","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"5b24dcb9e8b23e1f2ce96433317b1eb99ab59eb0","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.4.1.tgz","fileCount":25,"integrity":"sha512-N4znRBGZDfuVHYl4ZTUjJS88cwO11GFaOqxXfqUovgIdAhPPXpIMSigPeFXppIWlkuH9r+vSM0Ssr/EZqhSwIA==","signatures":[{"sig":"MEQCIEwOO+pz1R68yCyIDI1zWJ5EKnWBHT3v39tNiNkmAhtxAiBBZUmE0wwf0qvGF/B5GG+b8KCmWtKk/sjNyYamPt/Ezg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":339050},"main":"app.js","type":"module","exports":{"./v1":"./modules/v1.js","./v2":"./modules/v2.js","./v3":"./modules/v3.js"},"gitHead":"c3f8f92c0d7e2d8813c2be540c0ab78dcd808f6c","scripts":{"dev":"nodemon app.js","lint":"prettier --write .","build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"9.2.0","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.pro","directories":{},"_nodeVersion":"18.19.1","dependencies":{"cors":"latest","uuid":"latest","canvas":"latest","dotenv":"latest","qrcode":"latest","random":"latest","express":"latest","ical.js":"latest","node-fetch":"latest"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"latest","prettier":"latest","npm-check-updates":"latest"},"_npmOperationalInternal":{"tmp":"tmp/api_3.4.1_1755265972446_0.2057530358157884","host":"s3://npm-registry-packages-npm-production"}},"3.4.2":{"name":"@20syldev/api","version":"3.4.2","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.4.2","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.pro","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"bff5eef720ba77978f46fc211d8e49f76248cbb3","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.4.2.tgz","fileCount":25,"integrity":"sha512-Trdz0esuy98RVJaFMefAiKqeCMR3LTTuxrHAQqROCd/errWNNPeJAHUm8WFGZ7EBcTdNtzvOwIP+HRzZpvVpoQ==","signatures":[{"sig":"MEUCIFw7A++ginj2U5Jp+Na5ZYFvIOT1RCq7vUwUTBj79dNHAiEAxUmpDpsjb+lzyxuGlZBYgGuGZRTNSvHiysTXPp7Z7Gk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":339138},"main":"app.js","type":"module","exports":{"./v1":"./modules/v1.js","./v2":"./modules/v2.js","./v3":"./modules/v3.js"},"gitHead":"47d2d7ea1c60d3f3e150c89fb157500180d8ae62","scripts":{"dev":"nodemon app.js","lint":"prettier --write .","build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"9.2.0","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.pro","directories":{},"_nodeVersion":"18.19.1","dependencies":{"cors":"latest","uuid":"latest","canvas":"latest","dotenv":"latest","qrcode":"latest","random":"latest","express":"latest","ical.js":"latest","node-fetch":"latest"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"latest","prettier":"latest","npm-check-updates":"latest"},"_npmOperationalInternal":{"tmp":"tmp/api_3.4.2_1756797637627_0.6137999897188178","host":"s3://npm-registry-packages-npm-production"}},"3.4.3":{"name":"@20syldev/api","version":"3.4.3","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.4.3","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.pro","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"f1829a99d89f5be60c1f993f0ef7ca8679ba2d35","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.4.3.tgz","fileCount":25,"integrity":"sha512-SUfhhyqWEgXmjJMJIoALo8A0aFoN/g2T1kFDbf2L7yFCzuOTtZBj4W/hVPyiIxQWFi6Yli9RZ2KTrAb3Via59A==","signatures":[{"sig":"MEYCIQDEX3Bh1iDMkKDQKK/cTvWuqQ2igiPWD6IwAl6nsuptggIhAMZfCaQ2vpCmiyjYW4b/e7Ts0tkxi/xEGqQLx7BF7E9y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":339228},"main":"app.js","type":"module","exports":{"./v1":"./modules/v1.js","./v2":"./modules/v2.js","./v3":"./modules/v3.js"},"gitHead":"b1175bec6bc752759d62832ffe20d68484ae430f","scripts":{"dev":"nodemon app.js","lint":"prettier --write .","build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"9.2.0","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.pro","directories":{},"_nodeVersion":"18.19.1","dependencies":{"cors":"latest","uuid":"latest","canvas":"latest","dotenv":"latest","qrcode":"latest","random":"latest","express":"latest","ical.js":"latest","node-fetch":"latest"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"latest","prettier":"latest","npm-check-updates":"latest"},"_npmOperationalInternal":{"tmp":"tmp/api_3.4.3_1758622791104_0.07827356332611934","host":"s3://npm-registry-packages-npm-production"}},"3.4.4":{"name":"@20syldev/api","version":"3.4.4","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.4.4","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.pro","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"b53cd6fa67ea67b98e09b77065e6844a14694cae","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.4.4.tgz","fileCount":25,"integrity":"sha512-7QYHz+1VVlvw+/UhsxACV3pEp8WuZ0Gq+dN3v1JJRUyKf2H2h5DKQB9p28ybC6BlDBuGQvYcyGOPtk94VWRt6Q==","signatures":[{"sig":"MEUCIAV+HrOb6Kp6xPL8/JTMIR/+/CUqH6PylyWIMqX0LkL0AiEA9eh52sEKgwrfVLc4n89YcSZLb2heLQiXLezie3KmoBU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":339511},"main":"app.js","type":"module","exports":{"./v1":"./modules/v1.js","./v2":"./modules/v2.js","./v3":"./modules/v3.js"},"gitHead":"764c34089c44a0e1aeb437c0d42062b653e12c5c","scripts":{"dev":"nodemon app.js","lint":"prettier --write .","build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"9.2.0","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.pro","directories":{},"_nodeVersion":"18.19.1","dependencies":{"cors":"latest","uuid":"latest","canvas":"latest","dotenv":"latest","qrcode":"latest","random":"latest","express":"latest","ical.js":"latest","node-fetch":"latest"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"latest","prettier":"latest","npm-check-updates":"latest"},"_npmOperationalInternal":{"tmp":"tmp/api_3.4.4_1758662439493_0.42264956258978437","host":"s3://npm-registry-packages-npm-production"}},"3.4.5":{"name":"@20syldev/api","version":"3.4.5","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.4.5","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.pro","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"4418ea03a80be65844b5fe983099d5123c30198a","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.4.5.tgz","fileCount":25,"integrity":"sha512-eAWtdSDtMA9+Xu+9yAZHvJXfmO6FQrUs4t1Klc4jUFeTEbH2H5ff8UMOC1Gfxp2ZHnBoeUK0D7Sc88pyy9mWOA==","signatures":[{"sig":"MEUCIC4fmiGuqp4bXh2t24/Prs1Tz130GVhrJfIozvJ/mbjQAiEA7EMok/HXpI/DuZcnNHx7d1A16+SVZqwYZ0QRAN1NZRw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":344168},"main":"app.js","type":"module","exports":{"./v1":"./modules/v1.js","./v2":"./modules/v2.js","./v3":"./modules/v3.js"},"gitHead":"c5ab73a208e622ae9a3e2977e2a9449a8da783a4","scripts":{"dev":"nodemon app.js","lint":"prettier --write .","build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.5.2","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.pro","directories":{},"_nodeVersion":"22.12.0","dependencies":{"cors":"latest","uuid":"latest","canvas":"latest","dotenv":"latest","qrcode":"latest","random":"latest","express":"latest","ical.js":"latest","node-fetch":"latest"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"latest","prettier":"latest","npm-check-updates":"latest"},"_npmOperationalInternal":{"tmp":"tmp/api_3.4.5_1759345987480_0.9229754478697012","host":"s3://npm-registry-packages-npm-production"}},"3.4.6":{"name":"@20syldev/api","version":"3.4.6","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.4.6","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.sh","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"14247d9cb9f2f33849e7d676537936102d5b67b0","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.4.6.tgz","fileCount":25,"integrity":"sha512-svZbuVmo3qbX8VSfcNPksl0XvMhqQz/uLLoVrUwXlUmWM7bQ66QyPRg9U2WK+8I0XC5qXtiSF64I5t4HXbNo9w==","signatures":[{"sig":"MEQCICMo16l6qnGe0QOCW11VdEaNTsDIDGY/CzMD+HCexY6iAiA0j6g/UfThyPmdHKyJUyR2LkikTEOriOKYLSZ+zNRuQA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":342201},"main":"app.js","type":"module","exports":{"./v1":"./modules/v1.js","./v2":"./modules/v2.js","./v3":"./modules/v3.js"},"gitHead":"99c385b161749376e10feb3601e53e63a13182a0","scripts":{"dev":"nodemon app.js","lint":"prettier --write .","build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"10.9.4","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.sh","directories":{},"_nodeVersion":"22.22.0","dependencies":{"cors":"latest","uuid":"latest","canvas":"latest","dotenv":"latest","qrcode":"latest","random":"latest","express":"latest","ical.js":"latest","node-fetch":"latest"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"latest","prettier":"latest","npm-check-updates":"latest"},"_npmOperationalInternal":{"tmp":"tmp/api_3.4.6_1772922884707_0.5301343160050038","host":"s3://npm-registry-packages-npm-production"}},"3.4.7":{"name":"@20syldev/api","version":"3.4.7","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.4.7","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.sh","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"1c161d7261a33d79ecba4a6a260d1150663ed0fc","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.4.7.tgz","fileCount":24,"integrity":"sha512-sR0VYdPtujr5j4Bdrz78Ci78mZN0Bs1dCHgQtWy6rg2TgvY9/Mw/RLAW6eyLnGvkOB3CFpK/wc05PaptZy2Wpw==","signatures":[{"sig":"MEUCIDpOhNHDPVhZBwiYFi9rb1xW3y0SBmFY152nXVeKJee0AiEAnOujGw9IuOjigf2vEAfSGTv7gqKvKTm4oGqA4BaGmdU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":341698},"main":"app.js","type":"module","exports":{"./v1":"./modules/v1.js","./v2":"./modules/v2.js","./v3":"./modules/v3.js"},"gitHead":"86183a45e3748599b2cd9838112448d2bf9b5dc0","scripts":{"dev":"nodemon app.js","lint":"prettier --write .","build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"10.9.4","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.sh","directories":{},"_nodeVersion":"22.22.0","dependencies":{"cors":"latest","uuid":"latest","canvas":"latest","dotenv":"latest","qrcode":"latest","random":"latest","express":"latest","ical.js":"latest","node-fetch":"latest"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"latest","prettier":"latest","npm-check-updates":"latest"},"_npmOperationalInternal":{"tmp":"tmp/api_3.4.7_1774029148983_0.4005621794680283","host":"s3://npm-registry-packages-npm-production"}},"3.4.8":{"name":"@20syldev/api","version":"3.4.8","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.4.8","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.sh","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"300adafd6bddc8c68d66161313a8be2505629b7f","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.4.8.tgz","fileCount":24,"integrity":"sha512-+YTHNO3YRR/6rlqGCMG7fJKVMC/q05J+8nPJ35V8s98PsaRzoedihB+ViFI0KsNIitO6BUOly2nI90QYBkSl7w==","signatures":[{"sig":"MEYCIQCX6uUz5ss9OT7nvJMM+bN3po73Bp2GsHgPs0LFTkj/WQIhAL3EFxPOWvIgZXi+clL7taHA7hhjldI7rKh5C+NETg0a","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":341741},"main":"app.js","type":"module","exports":{"./v1":"./modules/v1.js","./v2":"./modules/v2.js","./v3":"./modules/v3.js"},"gitHead":"bb14cfda16f226d579e00921896da9a611dcbb46","scripts":{"dev":"nodemon app.js","lint":"prettier --write .","build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"10.9.4","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.sh","directories":{},"_nodeVersion":"22.22.0","dependencies":{"cors":"^2.8.5","uuid":"^11.1.0","canvas":"^3.1.0","dotenv":"^16.4.7","qrcode":"^1.5.4","random":"^5.3.0","express":"^5.1.0","ical.js":"^2.1.0","node-fetch":"^3.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.10","prettier":"^3.5.3","npm-check-updates":"^18.0.1"},"_npmOperationalInternal":{"tmp":"tmp/api_3.4.8_1774181622949_0.8855553951768513","host":"s3://npm-registry-packages-npm-production"}},"3.4.9":{"name":"@20syldev/api","version":"3.4.9","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.4.9","maintainers":[{"name":"20syldev","email":"git@sylvain.pro"}],"homepage":"https://api.sylvain.sh","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"0a2a8a412d85672be615c9d07fcea621b99fab56","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.4.9.tgz","fileCount":24,"integrity":"sha512-JsOLylGiKdLMMT2wqjPqU7iWLfMo1q0jY1GAWJa0jau1NELk5RymXxaYb/4wOQ/6NGeZTSsrl3Mkjz5xJEf+rw==","signatures":[{"sig":"MEYCIQDFD1xBggPsPbl3YQwBaG7awzCqXj+JLidEckr/RXLAvAIhAOF1+2YJrzGVhWOCmhOimxYTh2G/7g12CymFmYqxr9VG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":341775},"main":"app.js","type":"module","exports":{"./v1":"./modules/v1.js","./v2":"./modules/v2.js","./v3":"./modules/v3.js"},"gitHead":"9f7d79c47a4d6ce7d7ebc741390f18943d7cd14a","scripts":{"dev":"nodemon app.js","lint":"prettier --write .","build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.pro"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"10.9.4","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.sh","directories":{},"_nodeVersion":"22.22.0","dependencies":{"cors":"^2.8.5","uuid":"^11.1.0","canvas":"^3.1.0","dotenv":"^16.4.7","qrcode":"^1.5.4","random":"^5.3.0","express":"^5.1.0","ical.js":"^2.1.0","node-fetch":"^3.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.10","prettier":"^3.5.3","npm-check-updates":"^18.0.1"},"_npmOperationalInternal":{"tmp":"tmp/api_3.4.9_1774738028271_0.788732722860509","host":"s3://npm-registry-packages-npm-production"}},"3.5.0":{"name":"@20syldev/api","version":"3.5.0","keywords":["api","express","utility","math"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@3.5.0","maintainers":[{"name":"20syldev","email":"git@sylvain.sh"}],"homepage":"https://api.sylvain.sh","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"ba9ba432720f14f4e02a8d0959e20dbc4b8051cf","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-3.5.0.tgz","fileCount":24,"integrity":"sha512-AXJysjJHGT4+9NrmDdOh9zEQb9WNKI8uw3yey9fF2UV1KZ0GvM6QqsoCPM607EJWcJdfrB1f80/j9OzYZTA4Fg==","signatures":[{"sig":"MEUCIH+6246Z6aIfmbbxXwkPoR2WtWijMcrK4nsevIaYR2U2AiEA+OVlEmJVhfjhslIGb3KnCnN4dwyhHCh1Paj0AeFC6uc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":341775},"main":"app.js","type":"module","exports":{"./v1":"./modules/v1.js","./v2":"./modules/v2.js","./v3":"./modules/v3.js"},"gitHead":"0e4b3f7de5871227f0489f1fcc93d55edb5ab567","scripts":{"dev":"nodemon app.js","lint":"prettier --write .","build":"npm install && node app.js","start":"node app.js","upgrade:build":"npm upgrade && npm install && node app.js","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.sh"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"10.9.4","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.sh","directories":{},"_nodeVersion":"22.22.0","dependencies":{"cors":"^2.8.5","uuid":"^11.1.0","canvas":"^3.1.0","dotenv":"^16.4.7","qrcode":"^1.5.4","random":"^5.3.0","express":"^5.1.0","ical.js":"^2.1.0","node-fetch":"^3.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.10","prettier":"^3.5.3","npm-check-updates":"^18.0.1"},"_npmOperationalInternal":{"tmp":"tmp/api_3.5.0_1774802752770_0.24640780198491785","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@20syldev/api","version":"4.0.0","keywords":["api","express","utility","math","typescript"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@4.0.0","maintainers":[{"name":"20syldev","email":"git@sylvain.sh"}],"homepage":"https://api.sylvain.sh","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"e25160146aa8b7f0fffcb4b066e97db75c131460","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-4.0.0.tgz","fileCount":182,"integrity":"sha512-LBIc9hXUIzjt5n9mVV+sz6E5Z7NvV14GhElvLVzAHkoNU7C0qeTIKeoYXSeXDalibCgGRT9T6Pd1/swKlxX/XA==","signatures":[{"sig":"MEUCIQCv/rgcxYbyRdx52jNLOIqla00IUFgy4VArplRPNcK7WAIgGZKDmDJFZ6Z6sh5vLvrN1ucNMftqeM3UyW03UPlqCiA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":730791},"main":"dist/app.js","type":"module","engines":{"node":">=22.0.0"},"exports":{"./v1":"./dist/modules/v1.js","./v2":"./dist/modules/v2.js","./v3":"./dist/modules/v3.js","./v4":"./dist/modules/v4.js"},"gitHead":"f804c0336ef98156792581f7cdc35ae0aa88cfa8","scripts":{"dev":"tsx watch src/app.ts","build":"tsc","check":"tsc --noEmit && eslint src/","start":"node dist/app.js","format":"prettier --write src/ && eslint --fix src/","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.sh"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.12.1","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.sh","directories":{},"_nodeVersion":"22.22.0","dependencies":{"cors":"^2.8.5","uuid":"^11.1.0","canvas":"^3.1.0","dotenv":"^16.4.7","qrcode":"^1.5.4","random":"^5.3.0","express":"^5.1.0","ical.js":"^2.1.0","@20syldev/logger.ts":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^9.24.0","prettier":"^3.5.3","@eslint/js":"^9.24.0","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","@types/uuid":"^10.0.0","@types/qrcode":"^1.5.6","@types/express":"^5.0.0","npm-check-updates":"^18.0.1","typescript-eslint":"^8.29.0","eslint-config-prettier":"^10.1.1"},"_npmOperationalInternal":{"tmp":"tmp/api_4.0.0_1775818105027_0.08094039022787625","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"@20syldev/api","version":"4.1.0","keywords":["api","express","utility","math","typescript"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@4.1.0","maintainers":[{"name":"20syldev","email":"git@sylvain.sh"}],"homepage":"https://api.sylvain.sh","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"4b5bb88ce4f1b88d78b6d7edaeb9df506c8ebb2f","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-4.1.0.tgz","fileCount":215,"integrity":"sha512-PnEm7nuhyy7vBhmedjKA5loAfmwUXCQbqQHmmERrVyNsPCqL59ZtBij4eYiFleVjkJRFdGNucxNRwfZ6HgnmiQ==","signatures":[{"sig":"MEUCIH8qJIkH3eE72suNptAcIgGWDwyzi6ZqVWA4tplsF6CFAiEAxYWPFbpQQiUq+CxUSBKDv/VaKVBAWX6PYXGR+eui5BU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":823993},"main":"dist/app.js","type":"module","engines":{"node":">=22.0.0"},"exports":{"./v1":"./dist/modules/v1.js","./v2":"./dist/modules/v2.js","./v3":"./dist/modules/v3.js","./v4":"./dist/modules/v4.js"},"gitHead":"b5c1559db7adf7d5d1e2ceb906b7478341862ad2","scripts":{"dev":"tsx watch src/app.ts","test":"NODE_ENV=test node --import tsx --test --test-force-exit tests/unit/*.test.ts tests/integration/*.test.ts","build":"tsc","check":"tsc --noEmit -p tsconfig.test.json && eslint src/ tests/","start":"node dist/app.js","format":"prettier --write src/ tests/ && eslint --fix src/ tests/","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.sh"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.12.1","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.sh","directories":{},"_nodeVersion":"22.22.0","dependencies":{"cors":"^2.8.5","uuid":"^11.1.0","canvas":"^3.1.0","dotenv":"^16.4.7","qrcode":"^1.5.4","random":"^5.3.0","express":"^5.1.0","ical.js":"^2.1.0","@20syldev/logger.ts":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^9.24.0","prettier":"^3.5.3","@eslint/js":"^9.24.0","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^22.19.17","@types/uuid":"^10.0.0","@types/qrcode":"^1.5.6","@types/express":"^5.0.0","npm-check-updates":"^18.0.1","typescript-eslint":"^8.29.0","eslint-config-prettier":"^10.1.1"},"_npmOperationalInternal":{"tmp":"tmp/api_4.1.0_1775818204662_0.7744096228043293","host":"s3://npm-registry-packages-npm-production"}},"4.2.0":{"name":"@20syldev/api","version":"4.2.0","keywords":["api","express","utility","math","typescript"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@4.2.0","maintainers":[{"name":"20syldev","email":"git@sylvain.sh"}],"homepage":"https://api.sylvain.sh","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"58330f2432f800b832f63f07e2a28818a9ca1e48","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-4.2.0.tgz","fileCount":206,"integrity":"sha512-MNwMb68wp2rskqBY3uEqkRric5yLQBePTzBMbPzBTzOihTUfjliiyB1aSX9Tge0ZPDlpe5wmhHHsvQkEMz0V+Q==","signatures":[{"sig":"MEUCIHkFIN4hzF1QfbZhvyxliFod7CGh+ZtjTr3kkX0LHlyXAiEAhBC4K6sTOfGJmu8tQKPpsKX1+laiRRBYwqMQsfJ/ZmQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":802390},"main":"dist/app.js","type":"module","engines":{"node":">=22.0.0"},"exports":{"./v1":"./dist/modules/v1.js","./v2":"./dist/modules/v2.js","./v3":"./dist/modules/v3.js","./v4":"./dist/modules/v4.js"},"gitHead":"b3a72a3ec7baed0e4de8ad88b19dcceb3e578812","scripts":{"dev":"tsx watch src/app.ts","test":"NODE_ENV=test node --import tsx --test --test-force-exit tests/unit/*.test.ts tests/integration/*.test.ts","build":"tsc","check":"tsc --noEmit -p tsconfig.test.json && eslint src/ tests/","start":"node dist/app.js","format":"prettier --write src/ tests/ && eslint --fix src/ tests/","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.sh"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.12.1","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.sh","directories":{},"_nodeVersion":"22.22.0","dependencies":{"cors":"^2.8.5","uuid":"^11.1.0","canvas":"^3.1.0","dotenv":"^16.4.7","qrcode":"^1.5.4","random":"^5.3.0","express":"^5.1.0","ical.js":"^2.1.0","@20syldev/logger.ts":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^9.24.0","prettier":"^3.5.3","@eslint/js":"^9.24.0","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^22.19.17","@types/uuid":"^10.0.0","@types/qrcode":"^1.5.6","@types/express":"^5.0.0","npm-check-updates":"^18.0.1","typescript-eslint":"^8.29.0","eslint-config-prettier":"^10.1.1"},"_npmOperationalInternal":{"tmp":"tmp/api_4.2.0_1775827065394_0.15075279588607726","host":"s3://npm-registry-packages-npm-production"}},"4.3.0":{"name":"@20syldev/api","version":"4.3.0","keywords":["api","express","utility","math","typescript"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@4.3.0","maintainers":[{"name":"20syldev","email":"git@sylvain.sh"}],"homepage":"https://api.sylvain.sh","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"7c86f467dfabd29feba82556a64ab076e163a116","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-4.3.0.tgz","fileCount":218,"integrity":"sha512-l4cD1uC5Ur+534N3okVHamYdkW01DQak/+fzxlqsawAn9r0L/+q+MbAlDtLEO2qRMuHH7radBfJIdr78ZUyH+g==","signatures":[{"sig":"MEUCIQDkhNCor89YrSXqED3opRyM+VGnHyJWCenNH5vaoQQw9QIgRWClXhSDd1dx3Vk5fKNJfAw+AcQnh8/m1T4wTrq8gmQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":854397},"main":"dist/app.js","type":"module","engines":{"node":">=22.0.0"},"exports":{"./v1":"./dist/modules/v1.js","./v2":"./dist/modules/v2.js","./v3":"./dist/modules/v3.js","./v4":"./dist/modules/v4.js"},"gitHead":"2e19b7bc79fe7d2473af5f2ed4a15eecd9bbeb39","scripts":{"dev":"tsx watch src/app.ts","test":"NODE_ENV=test node --import tsx --test --test-force-exit tests/unit/*.test.ts tests/integration/*.test.ts","build":"tsc","check":"tsc --noEmit -p tsconfig.test.json && eslint src/ tests/","start":"node dist/app.js","format":"prettier --write src/ tests/ && eslint --fix src/ tests/","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.sh"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.12.1","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.sh","directories":{},"_nodeVersion":"22.22.0","dependencies":{"cors":"^2.8.5","uuid":"^11.1.0","canvas":"^3.1.0","dotenv":"^16.4.7","qrcode":"^1.5.4","random":"^5.3.0","express":"^5.1.0","ical.js":"^2.1.0","@20syldev/logger.ts":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^9.24.0","prettier":"^3.5.3","@eslint/js":"^9.24.0","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^22.19.17","@types/uuid":"^10.0.0","@types/qrcode":"^1.5.6","@types/express":"^5.0.0","npm-check-updates":"^18.0.1","typescript-eslint":"^8.29.0","eslint-config-prettier":"^10.1.1"},"_npmOperationalInternal":{"tmp":"tmp/api_4.3.0_1776080867948_0.34130156501631914","host":"s3://npm-registry-packages-npm-production"}},"4.4.0":{"name":"@20syldev/api","version":"4.4.0","keywords":["api","express","utility","math","typescript"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@4.4.0","maintainers":[{"name":"20syldev","email":"git@sylvain.sh"}],"homepage":"https://api.sylvain.sh","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"479f08f39828467878030b6fbeda461525e20ec3","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-4.4.0.tgz","fileCount":225,"integrity":"sha512-HANPNRKVoOAxc77dinSzi1FSb4yFnd3azVbkvE8b/4cKJ31ZPaxSbdLwltA8ySxrqxNuN8nz2iQ4/o2Fzgrv5w==","signatures":[{"sig":"MEQCIB/qLzY1OJU4Eb7/Hgw58Cd5kzoD0xWEm7ZdbG5YSC1yAiBRXZP3nRpv3Eo2RpQzfHupoEQIPVOU3i084d0UbS3MgQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":913801},"main":"dist/app.js","type":"module","engines":{"node":">=22.0.0"},"exports":{"./v1":"./dist/modules/v1.js","./v2":"./dist/modules/v2.js","./v3":"./dist/modules/v3.js","./v4":"./dist/modules/v4.js"},"gitHead":"38ecf03e93a520559a508de5f71b4362170e71f7","scripts":{"dev":"tsx watch src/app.ts","test":"NODE_ENV=test node --import tsx --test --test-force-exit tests/unit/*.test.ts tests/integration/*.test.ts","build":"tsc","check":"tsc --noEmit -p tsconfig.test.json && eslint src/ tests/","start":"node dist/app.js","format":"prettier --write src/ tests/ && eslint --fix src/ tests/","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.sh"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.12.1","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.sh","directories":{},"_nodeVersion":"22.22.0","dependencies":{"cors":"^2.8.5","uuid":"^11.1.0","canvas":"^3.1.0","dotenv":"^16.4.7","qrcode":"^1.5.4","random":"^5.3.0","express":"^5.1.0","ical.js":"^2.1.0","@20syldev/logger.ts":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^9.24.0","prettier":"^3.5.3","@eslint/js":"^9.24.0","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^22.19.17","@types/uuid":"^10.0.0","@types/qrcode":"^1.5.6","@types/express":"^5.0.0","npm-check-updates":"^18.0.1","typescript-eslint":"^8.29.0","eslint-config-prettier":"^10.1.1"},"_npmOperationalInternal":{"tmp":"tmp/api_4.4.0_1776159532759_0.7560369178994075","host":"s3://npm-registry-packages-npm-production"}},"4.5.0":{"name":"@20syldev/api","version":"4.5.0","keywords":["api","express","utility","math","typescript"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@4.5.0","maintainers":[{"name":"20syldev","email":"git@sylvain.sh"}],"homepage":"https://api.sylvain.sh","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"c078f2a6fdfe37bbc0db92edd6ef7922d67752e6","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-4.5.0.tgz","fileCount":228,"integrity":"sha512-c+A1/Jv/1u13Yihq081Mq+F1q8H2A+5Vy74+1/1DhWjAp3AkmSwUkFrNkVElbxnMvzU3rQxy9xvmWr8tMRqnlQ==","signatures":[{"sig":"MEQCIBrZ5uwxcEzRJK0SdHEAL77liH9/8llGFDMtc0wQPGioAiBzV6xicRtmAGo/W9IENBempWfYDA+puM2E2DqCVmCRWw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":931811},"main":"dist/app.js","type":"module","engines":{"node":">=22.0.0"},"exports":{"./v1":"./dist/modules/v1.js","./v2":"./dist/modules/v2.js","./v3":"./dist/modules/v3.js","./v4":"./dist/modules/v4.js"},"gitHead":"9a73337cf232c87bc7d9a1671c2254784f12d59c","scripts":{"dev":"tsx watch src/app.ts","test":"NODE_ENV=test node --import tsx --test --test-force-exit tests/unit/*.test.ts tests/integration/*.test.ts","build":"tsc","check":"tsc --noEmit -p tsconfig.test.json && eslint src/ tests/","start":"node dist/app.js","format":"prettier --write src/ tests/ && eslint --fix src/ tests/","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.sh"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.12.1","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.sh","directories":{},"_nodeVersion":"22.22.0","dependencies":{"cors":"^2.8.5","uuid":"^11.1.0","canvas":"^3.1.0","dotenv":"^16.4.7","qrcode":"^1.5.4","random":"^5.3.0","express":"^5.1.0","ical.js":"^2.1.0","@20syldev/logger.ts":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^9.24.0","prettier":"^3.5.3","@eslint/js":"^9.24.0","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^22.19.17","@types/uuid":"^10.0.0","@types/qrcode":"^1.5.6","@types/express":"^5.0.0","npm-check-updates":"^18.0.1","typescript-eslint":"^8.29.0","eslint-config-prettier":"^10.1.1"},"_npmOperationalInternal":{"tmp":"tmp/api_4.5.0_1776459529375_0.22583924013814372","host":"s3://npm-registry-packages-npm-production"}},"4.6.0":{"name":"@20syldev/api","version":"4.6.0","keywords":["api","express","utility","math","typescript"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@4.6.0","maintainers":[{"name":"20syldev","email":"git@sylvain.sh"}],"homepage":"https://api.sylvain.sh","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"9f1276e7b49cfa70bf7fa823a93a0feeefe94b56","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-4.6.0.tgz","fileCount":232,"integrity":"sha512-stvdEGXtijqXQZ0RiWQzyv2C/xN0pjcJX7CIBO7gpzzL4tNJ2cAoNsTevaxASVOjYHqYYkOVkEIHxAyumX1Ipw==","signatures":[{"sig":"MEUCIH/c6H5P0zkuqZsPZns+x7KhmVjaxNKZQf6JPipAm5znAiEA+Cd3GClW3llPGtqFZ93IpSbfbJQ59HKKYZzBOeGJXNI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":969779},"main":"dist/app.js","type":"module","engines":{"node":">=22.0.0"},"exports":{"./v1":"./dist/modules/v1.js","./v2":"./dist/modules/v2.js","./v3":"./dist/modules/v3.js","./v4":"./dist/modules/v4.js"},"gitHead":"d7b5d957c2419f055118e5a6512d27b9dabb491e","scripts":{"dev":"tsx watch src/app.ts","test":"NODE_ENV=test node --import tsx --test --test-force-exit tests/unit/*.test.ts tests/integration/*.test.ts","build":"tsc","check":"tsc --noEmit -p tsconfig.test.json && eslint src/ tests/","start":"node dist/app.js","format":"prettier --write src/ tests/ && eslint --fix src/ tests/","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.sh"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.12.1","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.sh","directories":{},"_nodeVersion":"22.22.0","dependencies":{"cors":"^2.8.5","uuid":"^14.0.0","canvas":"^3.1.0","dotenv":"^16.4.7","qrcode":"^1.5.4","random":"^5.3.0","express":"^5.1.0","ical.js":"^2.1.0","@20syldev/logger.ts":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^9.24.0","prettier":"^3.5.3","@eslint/js":"^9.24.0","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^22.19.17","@types/uuid":"^10.0.0","@types/qrcode":"^1.5.6","@types/express":"^5.0.0","npm-check-updates":"^18.0.1","typescript-eslint":"^8.29.0","eslint-config-prettier":"^10.1.1","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/api_4.6.0_1778444117320_0.7221979660566125","host":"s3://npm-registry-packages-npm-production"}},"4.7.0":{"name":"@20syldev/api","version":"4.7.0","keywords":["api","express","utility","math","typescript"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@4.7.0","maintainers":[{"name":"20syldev","email":"git@sylvain.sh"}],"homepage":"https://api.sylvain.sh","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"2e823761c9906d6b04543f4ccd41f0d9df1d20a0","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-4.7.0.tgz","fileCount":236,"integrity":"sha512-bgVq9HvVDiCbyW1r7duSC+yW/G2ZJQD+pVCkpWPlJKcq5yEE+vCgLMHICMvP0zFTjQbEG3XR5pp2CYs++/VTYQ==","signatures":[{"sig":"MEYCIQDkBWHiTySpjoSgNpxcdFpJ2Piw+f9iqodLkO7n4E+4zAIhAJCkl2QXCw7sMmLt4pKccx1sq1Ev0b18cFiZ6QEq2Wvd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":998017},"main":"dist/app.js","type":"module","engines":{"node":">=22.0.0"},"exports":{"./v1":"./dist/modules/v1.js","./v2":"./dist/modules/v2.js","./v3":"./dist/modules/v3.js","./v4":"./dist/modules/v4.js"},"gitHead":"81614cd95b2973e20b142386cc6454feb1bc1afa","scripts":{"dev":"tsx watch src/app.ts","test":"NODE_ENV=test node --import tsx --test --test-force-exit tests/unit/*.test.ts tests/integration/*.test.ts","build":"tsc","check":"tsc --noEmit -p tsconfig.test.json && eslint src/ tests/","start":"node dist/app.js","format":"prettier --write src/ tests/ && eslint --fix src/ tests/","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.sh"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.12.1","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.sh","directories":{},"_nodeVersion":"22.22.0","dependencies":{"cors":"^2.8.5","uuid":"^14.0.0","canvas":"^3.1.0","dotenv":"^16.4.7","qrcode":"^1.5.4","random":"^5.3.0","express":"^5.1.0","ical.js":"^2.1.0","@20syldev/logger.ts":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^9.24.0","prettier":"^3.5.3","@eslint/js":"^9.24.0","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^22.19.17","@types/uuid":"^10.0.0","@types/qrcode":"^1.5.6","@types/express":"^5.0.0","npm-check-updates":"^18.0.1","typescript-eslint":"^8.29.0","eslint-config-prettier":"^10.1.1","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/api_4.7.0_1778483996858_0.004351897974950836","host":"s3://npm-registry-packages-npm-production"}},"4.8.0":{"name":"@20syldev/api","version":"4.8.0","keywords":["api","express","utility","math","typescript"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@4.8.0","maintainers":[{"name":"20syldev","email":"git@sylvain.sh"}],"homepage":"https://api.sylvain.sh","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"e78c6a4513f1ad99370313ec0a8452fdb4bc4229","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-4.8.0.tgz","fileCount":258,"integrity":"sha512-KO0CsPgULcbC64015knWuqaJwePHz31sYw8AW9BoUD9FUGvGn0+e3+9P2HkzPqwFxvsIrnyCDs7h2DnG9zLmWg==","signatures":[{"sig":"MEYCIQCmqUlLcVnpLWyULeqsg9gXJZG7nmVssilhDR2X4oTZlwIhAM9c6y3AGzuouSSC3rxemJtiE06hjZvrq5P08hr3jeVq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1186359},"main":"dist/app.js","type":"module","engines":{"node":">=22.0.0"},"exports":{"./v1":"./dist/modules/v1.js","./v2":"./dist/modules/v2.js","./v3":"./dist/modules/v3.js","./v4":"./dist/modules/v4.js"},"gitHead":"22daa150d84e33a593eeae1d448765bf881b9eae","scripts":{"dev":"tsx watch src/app.ts","test":"NODE_ENV=test node --import tsx --test --test-force-exit tests/unit/*.test.ts tests/integration/*.test.ts","build":"tsc","check":"tsc --noEmit -p tsconfig.test.json && eslint src/ tests/","start":"node dist/app.js","format":"prettier --write src/ tests/ && eslint --fix src/ tests/","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.sh"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.12.1","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.sh","directories":{},"_nodeVersion":"22.22.0","dependencies":{"cors":"^2.8.5","uuid":"^14.0.0","canvas":"^3.1.0","dotenv":"^16.4.7","qrcode":"^1.5.4","random":"^5.3.0","express":"^5.1.0","ical.js":"^2.1.0","@20syldev/logger.ts":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^9.24.0","prettier":"^3.5.3","@eslint/js":"^9.24.0","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^22.19.17","@types/uuid":"^10.0.0","@types/qrcode":"^1.5.6","@types/express":"^5.0.0","npm-check-updates":"^18.0.1","typescript-eslint":"^8.29.0","eslint-config-prettier":"^10.1.1","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/api_4.8.0_1778533963967_0.10297856792041471","host":"s3://npm-registry-packages-npm-production"}},"4.9.0":{"name":"@20syldev/api","version":"4.9.0","keywords":["api","express","utility","math","typescript"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@4.9.0","maintainers":[{"name":"20syldev","email":"git@sylvain.sh"}],"homepage":"https://api.sylvain.sh","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"2ad406f2ac5743900bbc915c12a94f35bafc8374","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-4.9.0.tgz","fileCount":151,"integrity":"sha512-vbwzayiFjJD2IlR7vRw7cE+WaeQyL5D0gnfaN5c/ooqLs6Y56gNyoP8iMMBHWMKC/s/U82o9S26iOSXNdrpFFA==","signatures":[{"sig":"MEQCIGyTEFZ8sKUmHhBQzf4zirRbcejh9rfangMQZKeE6MUQAiBW/INrPGT0ecznyPu6X1qJmX4JfQ29wNlCgqbp5Fpq5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":571802},"main":"dist/app.js","type":"module","engines":{"node":">=22.0.0"},"exports":{"./v1":"./dist/modules/v1.js","./v2":"./dist/modules/v2.js","./v3":"./dist/modules/v3.js","./v4":"./dist/modules/v4.js"},"gitHead":"fe28d0637b084284f00fa23645cf2f60b5ecacc8","scripts":{"dev":"tsx watch src/app.ts","test":"NODE_ENV=test node --import tsx --test --test-force-exit tests/unit/*.test.ts tests/integration/*.test.ts","build":"tsc","check":"tsc --noEmit -p tsconfig.test.json && eslint src/ tests/","start":"node dist/app.js","format":"prettier --write src/ tests/ && eslint --fix src/ tests/","prepare":"tsc","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.sh"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.12.1","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.sh","directories":{},"_nodeVersion":"22.22.0","dependencies":{"cors":"^2.8.5","uuid":"^14.0.0","canvas":"^3.1.0","dotenv":"^16.4.7","qrcode":"^1.5.4","random":"^5.3.0","express":"^5.1.0","ical.js":"^2.1.0","@20syldev/logger.ts":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^9.24.0","prettier":"^3.5.3","@eslint/js":"^9.24.0","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^22.19.17","@types/uuid":"^10.0.0","@types/qrcode":"^1.5.6","@types/express":"^5.0.0","npm-check-updates":"^18.0.1","typescript-eslint":"^8.29.0","eslint-config-prettier":"^10.1.1","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/api_4.9.0_1778534150824_0.22892280280021549","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"@20syldev/api","version":"5.0.0","keywords":["api","express","utility","math","typescript"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@5.0.0","maintainers":[{"name":"20syldev","email":"git@sylvain.sh"}],"homepage":"https://api.sylvain.sh","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"5ac3f0ce1cb75a690000df5c2bb05e12f346636e","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-5.0.0.tgz","fileCount":160,"integrity":"sha512-z/lxYjuCT5ULssRcS6B2NpM3T8Ns+5LK++Nx4/1LxmI9oMk8xboOzZa95uEB9aXNRVCBjYFbM9eoj/uzVrlB8A==","signatures":[{"sig":"MEQCIAH/cIEjFb2Xoq1yd6kHPyH6wsMvV89iUR/epwwjizL8AiAw5ZROZo++f3GA0i8hgBWQiTQk8Nh5hav713Pa+4LLTA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":663735},"main":"dist/app.js","type":"module","engines":{"node":">=22.0.0"},"exports":{"./v1":"./dist/modules/v1.js","./v2":"./dist/modules/v2.js","./v3":"./dist/modules/v3.js","./v4":"./dist/modules/v4.js","./v5":"./dist/modules/v5.js"},"gitHead":"2296dd33fc415692ba97186fc0d3be764d40a98c","scripts":{"dev":"tsx watch src/app.ts","test":"NODE_ENV=test node --import tsx --test --test-force-exit tests/unit/*.test.ts tests/integration/*.test.ts","build":"tsc","check":"tsc --noEmit -p tsconfig.test.json && eslint src/ tests/","start":"node dist/app.js","format":"prettier --write src/ tests/ && eslint --fix src/ tests/","prepare":"tsc","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.sh"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.15.0","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.sh","directories":{},"_nodeVersion":"22.22.0","dependencies":{"cors":"^2.8.5","uuid":"^14.0.0","canvas":"^3.1.0","dotenv":"^16.4.7","qrcode":"^1.5.4","random":"^5.3.0","express":"^5.1.0","ical.js":"^2.1.0","@20syldev/logger.ts":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^9.24.0","prettier":"^3.5.3","@eslint/js":"^9.24.0","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^22.19.17","@types/uuid":"^10.0.0","@types/qrcode":"^1.5.6","@types/express":"^5.0.0","npm-check-updates":"^18.0.1","typescript-eslint":"^8.29.0","eslint-config-prettier":"^10.1.1","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/api_5.0.0_1779703670203_0.147332685127189","host":"s3://npm-registry-packages-npm-production"}},"5.1.0":{"name":"@20syldev/api","version":"5.1.0","keywords":["api","express","utility","math","typescript"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@5.1.0","maintainers":[{"name":"20syldev","email":"git@sylvain.sh"}],"homepage":"https://api.sylvain.sh","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"d2f70a66b1527e8d43daecbf39c82dee2c150b97","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-5.1.0.tgz","fileCount":163,"integrity":"sha512-vPDoycevOomVLLiDChmc1m6VkqPumdyHEJJHCvM+fJmzxlLvalD6BG2p8hKKSQ7p/f0BiBwS0SiKxZ3H20AwGg==","signatures":[{"sig":"MEYCIQCh9rHVOaDRR+4j+HDPfgxw4GvTdmSUpZ9B5igUnwgmVAIhANU8Rdpn0mDZQbcjmz1MmoJ2smbuL1o3YVtElWnYmKyC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":681454},"main":"dist/app.js","type":"module","engines":{"node":">=22.0.0"},"exports":{"./v1":"./dist/modules/v1.js","./v2":"./dist/modules/v2.js","./v3":"./dist/modules/v3.js","./v4":"./dist/modules/v4.js","./v5":"./dist/modules/v5.js"},"gitHead":"14c3457fae96c4932b0a25294afade4faa92c61a","scripts":{"dev":"tsx watch src/app.ts","test":"NODE_ENV=test node --import tsx --test --test-force-exit tests/unit/*.test.ts tests/integration/*.test.ts","build":"tsc","check":"tsc --noEmit -p tsconfig.test.json && eslint src/ tests/","start":"node dist/app.js","format":"prettier --write src/ tests/ && eslint --fix src/ tests/","prepare":"tsc","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.sh"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.15.0","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.sh","directories":{},"_nodeVersion":"22.22.0","dependencies":{"cors":"^2.8.5","uuid":"^14.0.0","canvas":"^3.1.0","dotenv":"^16.4.7","qrcode":"^1.5.4","random":"^5.3.0","express":"^5.1.0","ical.js":"^2.1.0","@20syldev/logger.ts":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^9.24.0","prettier":"^3.5.3","@eslint/js":"^9.24.0","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^22.19.17","@types/uuid":"^10.0.0","@types/qrcode":"^1.5.6","@types/express":"^5.0.0","npm-check-updates":"^18.0.1","typescript-eslint":"^8.29.0","eslint-config-prettier":"^10.1.1","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/api_5.1.0_1779805070430_0.7336556568176777","host":"s3://npm-registry-packages-npm-production"}},"5.2.0":{"name":"@20syldev/api","version":"5.2.0","keywords":["api","express","utility","math","typescript"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@5.2.0","maintainers":[{"name":"20syldev","email":"git@sylvain.sh"}],"homepage":"https://api.sylvain.sh","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"7bc00735da92f980b8d67672fcb3c6b6fd99cd82","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-5.2.0.tgz","fileCount":165,"integrity":"sha512-2aFYFiLh5Nj0gaYg+csUkWiuMGCkEzE5PwyWznabo051+Z9j28MgCFMlBXI5qKwrzAcRXGTh7lFiq9trCl12/w==","signatures":[{"sig":"MEUCIGcvURoBOAv9PpfBwe4NauJLwzXIXqMQAt9XgkEkBXQAAiEAw+/exry/VAf05nPb6Dm8GS7a6USt/SNbMQGs7v4vwAs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":686794},"main":"dist/app.js","type":"module","engines":{"node":">=22.0.0"},"exports":{"./v1":"./dist/modules/v1.js","./v2":"./dist/modules/v2.js","./v3":"./dist/modules/v3.js","./v4":"./dist/modules/v4.js","./v5":"./dist/modules/v5.js"},"gitHead":"283108fb402e48527c764e96ff21ef4c575b15c2","scripts":{"dev":"tsx watch src/app.ts","test":"NODE_ENV=test node --import tsx --test --test-force-exit tests/unit/*.test.ts tests/integration/*.test.ts","build":"tsc","check":"tsc --noEmit -p tsconfig.test.json && eslint src/ tests/","start":"node dist/app.js","format":"prettier --write src/ tests/ && eslint --fix src/ tests/","prepare":"tsc","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.sh"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.15.0","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.sh","directories":{},"_nodeVersion":"22.22.0","dependencies":{"cors":"^2.8.5","uuid":"^14.0.0","canvas":"^3.1.0","dotenv":"^16.4.7","qrcode":"^1.5.4","random":"^5.3.0","express":"^5.1.0","ical.js":"^2.1.0","@20syldev/logger.ts":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^9.24.0","prettier":"^3.5.3","@eslint/js":"^9.24.0","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^22.19.17","@types/uuid":"^10.0.0","@types/qrcode":"^1.5.6","@types/express":"^5.0.0","npm-check-updates":"^18.0.1","typescript-eslint":"^8.29.0","eslint-config-prettier":"^10.1.1","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/api_5.2.0_1779909047235_0.5174989747967884","host":"s3://npm-registry-packages-npm-production"}},"5.3.0":{"name":"@20syldev/api","version":"5.3.0","keywords":["api","express","utility","math","typescript"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@5.3.0","maintainers":[{"name":"20syldev","email":"git@sylvain.sh"}],"homepage":"https://api.sylvain.sh","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"cf701833b86b1d530b08846ccaeddb3472acaaa7","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-5.3.0.tgz","fileCount":169,"integrity":"sha512-Ekl/UguQV+WNLt2QuvRpyLInCBaa1FA6PraqQ5mbkREKQZJfx9ce4kqrVqWmESXj0vw1fPX6hI8DE70CdTQ5MA==","signatures":[{"sig":"MEUCIQCT7kt9FndEjQqiVmOqF34iCjq6HZDAzCXJTfuDjs4UeAIgF7VDP0BbZRjtGFOxh1UI4eeHWzECNTSJx8Wj4rnGvz4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":697201},"main":"dist/app.js","type":"module","engines":{"node":">=22.0.0"},"exports":{"./v1":"./dist/modules/v1.js","./v2":"./dist/modules/v2.js","./v3":"./dist/modules/v3.js","./v4":"./dist/modules/v4.js","./v5":"./dist/modules/v5.js"},"gitHead":"7b5a89ad292ca149934dce36da4ae89d914099f0","scripts":{"dev":"tsx watch src/app.ts","test":"NODE_ENV=test node --import tsx --test --test-force-exit tests/unit/*.test.ts tests/integration/*.test.ts","build":"tsc","check":"tsc --noEmit -p tsconfig.test.json && eslint src/ tests/","start":"node dist/app.js","format":"prettier --write src/ tests/ && eslint --fix src/ tests/","prepare":"tsc","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.sh"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.15.0","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.sh","directories":{},"_nodeVersion":"22.22.0","dependencies":{"cors":"^2.8.5","uuid":"^14.0.0","canvas":"^3.1.0","dotenv":"^16.4.7","qrcode":"^1.5.4","random":"^5.3.0","express":"^5.1.0","ical.js":"^2.1.0","@20syldev/logger.ts":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^9.24.0","prettier":"^3.5.3","@eslint/js":"^9.24.0","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^22.19.17","@types/uuid":"^10.0.0","@types/qrcode":"^1.5.6","@types/express":"^5.0.0","npm-check-updates":"^18.0.1","typescript-eslint":"^8.29.0","eslint-config-prettier":"^10.1.1","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/api_5.3.0_1780390835799_0.4870743845916843","host":"s3://npm-registry-packages-npm-production"}},"5.5.0":{"name":"@20syldev/api","version":"5.5.0","keywords":["api","express","utility","math","typescript"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@5.5.0","maintainers":[{"name":"20syldev","email":"git@sylvain.sh"}],"homepage":"https://api.sylvain.sh","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"49932f862738df5cd4e0024e57ce53bd702a26de","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-5.5.0.tgz","fileCount":187,"integrity":"sha512-Auu7ZdXd7Jt3xWh7ni1rUbrU3q5j4tyPw4wxeEHgBBn74rxvdiaCeWz1UiSgQQYrfYOX5HCSq9vPfVK/DIgyEw==","signatures":[{"sig":"MEQCIB5O3QvIsOiiVKJFZ+xREW4QIzOAA5nvUQIIOet+YlULAiANP7jC/H57kYX9jKkWkqM6t2XYniU6Eohbph/RvwykSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":774937},"main":"dist/app.js","type":"module","engines":{"node":">=22.0.0"},"exports":{"./v1":"./dist/modules/v1.js","./v2":"./dist/modules/v2.js","./v3":"./dist/modules/v3.js","./v4":"./dist/modules/v4.js","./v5":"./dist/modules/v5.js"},"gitHead":"ea7443a04f3ae6438fe165c593d3d402ef9da47d","scripts":{"dev":"tsx watch src/app.ts","test":"NODE_ENV=test node --import tsx --test --test-force-exit tests/unit/*.test.ts tests/integration/*.test.ts","build":"tsc","check":"tsc --noEmit -p tsconfig.test.json && eslint src/ tests/","start":"node dist/app.js","format":"prettier --write src/ tests/ && eslint --fix src/ tests/","prepare":"tsc","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.sh"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.18.0","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.sh","directories":{},"_nodeVersion":"22.22.0","dependencies":{"cors":"^2.8.5","uuid":"^14.0.0","canvas":"^3.1.0","dotenv":"^16.4.7","qrcode":"^1.5.4","random":"^5.3.0","express":"^5.1.0","ical.js":"^2.1.0","@20syldev/logger.ts":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^9.24.0","prettier":"^3.5.3","@eslint/js":"^9.24.0","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^22.19.17","@types/uuid":"^10.0.0","@types/qrcode":"^1.5.6","@types/express":"^5.0.0","npm-check-updates":"^18.0.1","typescript-eslint":"^8.29.0","eslint-config-prettier":"^10.1.1","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/api_5.5.0_1785395085560_0.9973327827711151","host":"s3://npm-registry-packages-npm-production"}},"5.4.0-pre":{"name":"@20syldev/api","version":"5.4.0-pre","keywords":["api","express","utility","math","typescript"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@5.4.0-pre","maintainers":[{"name":"20syldev","email":"git@sylvain.sh"}],"homepage":"https://api.sylvain.sh","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"76c303e5997075020fa34f1de2deae94442e81ed","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-5.4.0-pre.tgz","fileCount":175,"integrity":"sha512-r69h+DeJrQbfaRVIIgO7hjRhaObVPimqb6EnnSPLwFqcJT657HQ3thW4eToMiMv4Bv8Vyne9EO5AbTpemOfKtg==","signatures":[{"sig":"MEYCIQDRQvRhAoML5f/VVwrQbhCYRMy3mxr2+SmO2K6HU55YPQIhAMqPCYzISzNN5403a9Bn0eSB0ueW6qsVMCMdVqSk5DDX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":766634},"main":"dist/app.js","type":"module","engines":{"node":">=22.0.0"},"exports":{"./v1":"./dist/modules/v1.js","./v2":"./dist/modules/v2.js","./v3":"./dist/modules/v3.js","./v4":"./dist/modules/v4.js","./v5":"./dist/modules/v5.js"},"gitHead":"9eb235a593eb75449f0a088762256d46cee88152","scripts":{"dev":"tsx watch src/app.ts","test":"NODE_ENV=test node --import tsx --test --test-force-exit tests/unit/*.test.ts tests/integration/*.test.ts","build":"tsc","check":"tsc --noEmit -p tsconfig.test.json && eslint src/ tests/","start":"node dist/app.js","format":"prettier --write src/ tests/ && eslint --fix src/ tests/","prepare":"tsc","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.sh"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.18.0","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.sh","directories":{},"_nodeVersion":"22.22.0","dependencies":{"cors":"^2.8.5","uuid":"^14.0.0","canvas":"^3.1.0","dotenv":"^16.4.7","qrcode":"^1.5.4","random":"^5.3.0","express":"^5.1.0","ical.js":"^2.1.0","@20syldev/logger.ts":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.0","eslint":"^9.24.0","prettier":"^3.5.3","@eslint/js":"^9.24.0","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^22.19.17","@types/uuid":"^10.0.0","@types/qrcode":"^1.5.6","@types/express":"^5.0.0","npm-check-updates":"^18.0.1","typescript-eslint":"^8.29.0","eslint-config-prettier":"^10.1.1","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/api_5.4.0-pre_1785395676199_0.34249993005764323","host":"s3://npm-registry-packages-npm-production"}},"5.6.0":{"name":"@20syldev/api","version":"5.6.0","keywords":["api","express","utility","math","typescript"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@5.6.0","maintainers":[{"name":"20syldev","email":"git@sylvain.sh"}],"homepage":"https://api.sylvain.sh","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"bf8bafc3e9da0fd6f2ab9c3ffaa5dd0b5a1324d3","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-5.6.0.tgz","fileCount":179,"integrity":"sha512-sLnsvuSh2vug7u3IWAJMmC7GPHGjAGyKokinx72uNjkoldzaIMw6zlWFThiQrFiWeKdkTqKe/9rUBikZhDgtkg==","signatures":[{"sig":"MEYCIQCuqlmXquyatsn2XnC6An07/rMPkrevRiTuqhkBUwo4BAIhAILSxb2Qy7kd0s492j4WB+cXino+l6MZw1pJDE9T31d7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":772830},"main":"dist/app.js","type":"module","engines":{"node":">=22.0.0"},"exports":{"./v1":"./dist/modules/v1.js","./v2":"./dist/modules/v2.js","./v3":"./dist/modules/v3.js","./v4":"./dist/modules/v4.js","./v5":"./dist/modules/v5.js"},"gitHead":"37db5f279d9612d53d1eee4bb8cd366abcfe22ae","scripts":{"dev":"tsx watch src/app.ts","test":"NODE_ENV=test node --import tsx --test --test-force-exit tests/unit/*.test.ts tests/integration/*.test.ts","build":"tsc","check":"tsc --noEmit -p tsconfig.test.json && eslint src/ tests/","start":"node dist/app.js","format":"prettier --write src/ tests/ && eslint --fix src/ tests/","prepare":"tsc","upgrade:major":"npx npm-check-updates -u && npm install","upgrade:minor":"npm upgrade"},"_npmUser":{"name":"20syldev","email":"git@sylvain.sh"},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.18.0","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.sh","directories":{},"_nodeVersion":"22.22.0","dependencies":{"cors":"^2.8.5","uuid":"^14.0.0","canvas":"^3.1.0","dotenv":"^16.4.7","qrcode":"^1.5.4","random":"^5.3.0","express":"^5.1.0","ical.js":"^2.1.0","@20syldev/logger.ts":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^9.24.0","prettier":"^3.5.3","@eslint/js":"^9.24.0","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/node":"^22.19.17","@types/uuid":"^10.0.0","@types/qrcode":"^1.5.6","@types/express":"^5.0.0","npm-check-updates":"^18.0.1","typescript-eslint":"^8.29.0","eslint-config-prettier":"^10.1.1","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/api_5.6.0_1787001816996_0.7651771334809829","host":"s3://npm-registry-packages-npm-production"}},"5.7.0":{"name":"@20syldev/api","version":"5.7.0","keywords":["api","express","utility","math","typescript"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@5.7.0","maintainers":[{"name":"20syldev","email":"git@sylvain.sh"}],"homepage":"https://api.sylvain.sh","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"8eac0222960c0f8932d3484859d7de2534112e8b","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-5.7.0.tgz","fileCount":270,"integrity":"sha512-PBojMgjLjWE/9WA4XAs2QDtS1CWo7sccSk7wJCI5Kl0Ac+v7cK2NDVWP3UfmITgtCuoSftRYUFeokjC8NVL6zw==","signatures":[{"sig":"MEUCIQD7rSc5BgzUN7t3GwiI0oGgWVzSXF3yhO9q14FlLEKdCAIgZ4oVqq2lWNJQ6NutvvAuaBC2yZ/sHHCBuLmiN4RTKXE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@20syldev%2fapi@5.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1108176},"main":"./dist/modules/v5.js","type":"module","types":"./dist/modules/v5.d.ts","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/modules/v5.d.ts","default":"./dist/modules/v5.js"},"./v1":{"types":"./dist/modules/v3.d.ts","default":"./dist/modules/v3.js"},"./v2":{"types":"./dist/modules/v3.d.ts","default":"./dist/modules/v3.js"},"./v3":{"types":"./dist/modules/v3.d.ts","default":"./dist/modules/v3.js"},"./v4":{"types":"./dist/modules/v4.d.ts","default":"./dist/modules/v4.js"},"./v5":{"types":"./dist/modules/v5.d.ts","default":"./dist/modules/v5.js"},"./server":{"types":"./dist/app.d.ts","default":"./dist/app.js"},"./package.json":"./package.json"},"gitHead":"4a0ae24e06feaa758c3ff78f210c66fb3960c318","scripts":{"dev":"tsx watch src/app.ts","test":"NODE_ENV=test DOCS_URL=https://docs.example.test node --import tsx --test tests/unit/*.test.ts tests/integration/*.test.ts","build":"tsc","check":"tsc --noEmit -p tsconfig.test.json && eslint src/ tests/ && prettier --check .","start":"node dist/app.js","format":"prettier --write . && eslint --fix src/ tests/","prepare":"tsc"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","approver":{"name":"20syldev","email":"git@sylvain.sh"},"trustedPublisher":{"id":"github","oidcConfigId":"oidc:5ae31e9c-ae17-45d3-bf97-a560ee78f1e5"}},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.19.1","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.sh","directories":{},"_nodeVersion":"22.23.2","dependencies":{"cors":"^2.8.5","uuid":"^14.0.0","canvas":"^3.1.0","dotenv":"^16.4.7","qrcode":"^1.5.4","random":"^5.3.0","express":"^5.1.0","ical.js":"^2.1.0","@types/node":"^22.19.17","@types/express":"^5.0.0","@20syldev/logger.ts":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^9.24.0","prettier":"^3.5.3","@eslint/js":"^9.24.0","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/uuid":"^10.0.0","@types/qrcode":"^1.5.6","typescript-eslint":"^8.29.0","eslint-config-prettier":"^10.1.1","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/api_5.7.0_1788783197501_0.2131909529766982","host":"s3://npm-registry-packages-npm-production"}},"5.8.0":{"name":"@20syldev/api","version":"5.8.0","keywords":["api","express","utility","math","typescript"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@5.8.0","maintainers":[{"name":"20syldev","email":"git@sylvain.sh"}],"homepage":"https://api.sylvain.sh","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"6e43345659f7a2a2e6f0444bd4c31ff9f508ff85","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-5.8.0.tgz","fileCount":285,"integrity":"sha512-viKnA99GG6wjZnWdfIfzKGa2LmfxKXbl0LAvbZ0J5zaixtmDdJeM6uEgYgHWz63WXoqcHIA0yYhetSqWUm1EdA==","signatures":[{"sig":"MEQCIFWsANqcywAeDgxWpN7jLJyH6jTHy0k59yn/USVWgiEQAiBjWZMbJ6sjySg78yqfaK6GSGQz5aRUJAIL1p5pqT/KAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@20syldev%2fapi@5.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1149634},"main":"./dist/modules/v5.js","type":"module","types":"./dist/modules/v5.d.ts","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/modules/v5.d.ts","default":"./dist/modules/v5.js"},"./v1":{"types":"./dist/modules/v3.d.ts","default":"./dist/modules/v3.js"},"./v2":{"types":"./dist/modules/v3.d.ts","default":"./dist/modules/v3.js"},"./v3":{"types":"./dist/modules/v3.d.ts","default":"./dist/modules/v3.js"},"./v4":{"types":"./dist/modules/v4.d.ts","default":"./dist/modules/v4.js"},"./v5":{"types":"./dist/modules/v5.d.ts","default":"./dist/modules/v5.js"},"./server":{"types":"./dist/app.d.ts","default":"./dist/app.js"},"./package.json":"./package.json"},"gitHead":"99482d5e1be5539e9858fa1bb87de2afbd92fd09","scripts":{"dev":"tsx watch src/app.ts","test":"NODE_ENV=test DOCS_URL=https://docs.example.test node --import tsx --test tests/unit/*.test.ts tests/integration/*.test.ts","build":"tsc","check":"tsc --noEmit -p tsconfig.test.json && eslint src/ tests/ && prettier --check .","start":"node dist/app.js","format":"prettier --write . && eslint --fix src/ tests/","prepare":"tsc"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","approver":{"name":"20syldev","email":"git@sylvain.sh"},"trustedPublisher":{"id":"github","oidcConfigId":"oidc:5ae31e9c-ae17-45d3-bf97-a560ee78f1e5"}},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.19.1","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.sh","directories":{},"_nodeVersion":"22.23.2","dependencies":{"cors":"^2.8.5","uuid":"^14.0.0","canvas":"^3.1.0","dotenv":"^16.4.7","qrcode":"^1.5.4","random":"^5.3.0","express":"^5.1.0","ical.js":"^2.1.0","@types/node":"^22.19.17","@types/express":"^5.0.0","@20syldev/logger.ts":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^9.24.0","prettier":"^3.5.3","@eslint/js":"^9.24.0","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/uuid":"^10.0.0","@types/qrcode":"^1.5.6","typescript-eslint":"^8.29.0","eslint-config-prettier":"^10.1.1","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/api_5.8.0_1788801806340_0.4125926113438445","host":"s3://npm-registry-packages-npm-production"}},"5.9.0":{"name":"@20syldev/api","version":"5.9.0","keywords":["api","express","utility","math","typescript"],"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","_id":"@20syldev/api@5.9.0","maintainers":[{"name":"20syldev","email":"git@sylvain.sh"}],"homepage":"https://api.sylvain.sh","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"251452129a6615ca1520a37e32447a5776301ce6","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-5.9.0.tgz","fileCount":294,"integrity":"sha512-mximkzNGZIKqEz6AbugM0/L/h9Jl2o5gKL7t2ZsMYcfksXQFJSDzp+C/46xGf0MJEGfp//yBo6DcXAphchv9Ow==","signatures":[{"sig":"MEUCIAGJ8Rjzx040OFDauPgSiUfI2Pck8iCAuUF3PrbXzNw7AiEAtTMCb77ouLjGDnBfa5qjej6XgETzrtadzcDIhsfNt6Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@20syldev%2fapi@5.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1187708},"main":"./dist/modules/v5.js","type":"module","types":"./dist/modules/v5.d.ts","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/modules/v5.d.ts","default":"./dist/modules/v5.js"},"./v1":{"types":"./dist/modules/v3.d.ts","default":"./dist/modules/v3.js"},"./v2":{"types":"./dist/modules/v3.d.ts","default":"./dist/modules/v3.js"},"./v3":{"types":"./dist/modules/v3.d.ts","default":"./dist/modules/v3.js"},"./v4":{"types":"./dist/modules/v4.d.ts","default":"./dist/modules/v4.js"},"./v5":{"types":"./dist/modules/v5.d.ts","default":"./dist/modules/v5.js"},"./server":{"types":"./dist/app.d.ts","default":"./dist/app.js"},"./package.json":"./package.json"},"gitHead":"f282aa67b6f3910e6bdead27a3ad8f19a43e125a","scripts":{"dev":"tsx watch src/app.ts","test":"NODE_ENV=test DOCS_URL=https://docs.example.test node --import tsx --test tests/unit/*.test.ts tests/integration/*.test.ts","build":"tsc","check":"tsc --noEmit -p tsconfig.test.json && eslint src/ tests/ && prettier --check .","start":"node dist/app.js","format":"prettier --write . && eslint --fix src/ tests/","prepare":"tsc"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","approver":{"name":"20syldev","email":"git@sylvain.sh"},"trustedPublisher":{"id":"github","oidcConfigId":"oidc:5ae31e9c-ae17-45d3-bf97-a560ee78f1e5"}},"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.19.1","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.sh","directories":{},"_nodeVersion":"22.23.2","dependencies":{"cors":"^2.8.5","uuid":"^14.0.0","canvas":"^3.1.0","dotenv":"^16.4.7","qrcode":"^1.5.4","random":"^5.3.0","express":"^5.1.0","ical.js":"^2.1.0","@types/node":"^22.19.17","@types/express":"^5.0.0","@20syldev/logger.ts":"^1.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","eslint":"^9.24.0","prettier":"^3.5.3","@eslint/js":"^9.24.0","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/uuid":"^10.0.0","@types/qrcode":"^1.5.6","typescript-eslint":"^8.29.0","eslint-config-prettier":"^10.1.1","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"tmp":"tmp/api_5.9.0_1788875064329_0.3938870283984388","host":"s3://npm-registry-packages-npm-production"}},"6.0.0":{"_id":"@20syldev/api@6.0.0","bugs":{"url":"https://github.com/20syldev/api/issues"},"dist":{"shasum":"bc722ee530bbad8fb5b2b226960c12958f05f64c","tarball":"https://registry.npmjs.org/@20syldev/api/-/api-6.0.0.tgz","integrity":"sha512-hZMNfSi9OinaaNWLtelY6YmGXwJwIrTMGCuAqGJQqyrpRfe1c7bDWcdCdyzJ4KIo+kbrgBr+pyUoqQEnvSODZw==","fileCount":246,"unpackedSize":1089825,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@20syldev%2fapi@6.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDDMeUZUM1KtnTBxpDiYgXZoWaCQxeNGY36Kn93j4kp1gIgOkNjXdyGGkZwCJcjicpmlHB8UKHKjBlCqTXTC1b2DZs="}]},"main":"./dist/modules/v6.js","name":"@20syldev/api","type":"module","types":"./dist/modules/v6.d.ts","author":{"name":"Sylvain L."},"engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/modules/v6.d.ts","default":"./dist/modules/v6.js"},"./v4":{"types":"./dist/modules/v4.d.ts","default":"./dist/modules/v4.js"},"./v5":{"types":"./dist/modules/v5.d.ts","default":"./dist/modules/v5.js"},"./v6":{"types":"./dist/modules/v6.d.ts","default":"./dist/modules/v6.js"},"./server":{"types":"./dist/app.d.ts","default":"./dist/app.js"},"./package.json":"./package.json"},"gitHead":"889b40c9638b2fe7566d097c14d99102947492e4","license":"BSD 3-Clause","scripts":{"dev":"tsx watch src/app.ts","test":"NODE_ENV=test DOCS_URL=https://docs.example.test node --import tsx --test tests/unit/*.test.ts tests/integration/*.test.ts","build":"npm run clean && tsc","check":"tsc --noEmit -p tsconfig.test.json && eslint src/ tests/ && prettier --check .","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","start":"node dist/app.js","format":"prettier --write . && eslint --fix src/ tests/","prepare":"npm run clean && tsc"},"version":"6.0.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5ae31e9c-ae17-45d3-bf97-a560ee78f1e5"},"approver":{"name":"20syldev","email":"git@sylvain.sh"}},"homepage":"https://api.sylvain.sh","keywords":["api","express","utility","math","typescript"],"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"_npmVersion":"11.19.1","description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.sh","directories":{},"maintainers":[{"name":"20syldev","email":"git@sylvain.sh"}],"_nodeVersion":"22.23.2","dependencies":{"cors":"^2.8.5","uuid":"^14.0.0","canvas":"^3.1.0","dotenv":"^16.4.7","qrcode":"^1.5.4","random":"^5.3.0","express":"^5.1.0","ical.js":"^2.1.0","@types/node":"^22.19.17","@types/express":"^5.0.0","@20syldev/logger.ts":"^1.0.2"},"publishConfig":{"access":"public"},"devDependencies":{"tsx":"^4.19.0","eslint":"^9.24.0","prettier":"^3.5.3","@eslint/js":"^9.24.0","typescript":"^5.7.0","@types/cors":"^2.8.17","@types/uuid":"^10.0.0","@types/qrcode":"^1.5.6","typescript-eslint":"^8.29.0","eslint-config-prettier":"^10.1.1","eslint-plugin-simple-import-sort":"^13.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/api_6.0.0_1789073188065_0.939815977078772"},"_hasShrinkwrap":false}},"time":{"created":"2025-02-12T11:13:43.262Z","modified":"2026-09-10T20:46:28.503Z","2.4.0":"2025-01-23T10:42:11.354Z","0.1.0":"2025-01-23T10:55:01.253Z","0.2.0":"2025-01-23T10:55:05.225Z","0.3.0":"2025-01-23T10:55:08.605Z","0.4.0":"2025-01-23T10:55:11.757Z","0.5.0":"2025-01-23T10:55:15.497Z","0.6.0":"2025-01-23T10:55:19.029Z","0.7.0":"2025-01-23T10:55:22.079Z","0.8.0":"2025-01-23T10:55:25.323Z","0.9.0":"2025-01-23T10:55:28.428Z","1.0.0":"2025-01-23T10:55:31.293Z","1.1.0":"2025-01-23T10:55:34.563Z","1.2.0":"2025-01-23T10:55:37.818Z","1.3.0":"2025-01-23T10:55:40.849Z","1.4.0":"2025-01-23T10:55:45.060Z","1.5.0":"2025-01-23T10:55:48.060Z","1.6.0":"2025-01-23T10:55:51.279Z","1.7.0":"2025-01-23T10:55:54.218Z","1.8.0":"2025-01-23T10:55:57.490Z","1.9.0":"2025-01-23T10:56:01.026Z","2.0.0":"2025-01-23T10:56:04.277Z","2.0.0-a":"2025-01-23T10:56:07.647Z","2.0.1":"2025-01-23T10:56:11.002Z","2.1.0":"2025-01-23T10:56:14.674Z","2.2.0":"2025-01-23T10:56:17.823Z","2.3.0":"2025-01-23T10:56:21.451Z","2.5.0":"2025-01-27T22:24:24.056Z","2.6.0":"2025-02-12T11:13:43.601Z","2.7.0":"2025-02-12T11:47:10.096Z","2.8.0":"2025-02-12T21:34:34.235Z","2.9.0":"2025-02-14T14:03:03.018Z","3.0.0":"2025-02-22T00:58:17.525Z","3.2.0":"2025-03-01T22:49:50.734Z","3.2.1":"2025-03-02T01:35:57.074Z","3.2.2":"2025-03-03T10:28:29.813Z","3.2.3":"2025-03-07T18:35:44.264Z","3.2.4":"2025-03-10T07:53:29.647Z","3.2.5":"2025-03-10T07:58:29.866Z","3.3.0":"2025-03-20T20:36:49.264Z","3.3.1":"2025-03-22T00:08:26.648Z","3.3.2":"2025-03-22T16:24:57.056Z","3.3.3":"2025-03-23T20:44:39.580Z","3.3.4":"2025-03-28T15:38:22.216Z","3.3.5":"2025-03-30T14:55:40.041Z","3.3.6":"2025-04-02T10:11:49.993Z","3.3.7":"2025-04-03T20:41:59.889Z","3.3.8":"2025-05-12T13:02:29.385Z","3.3.9":"2025-05-28T09:14:04.727Z","3.4.0":"2025-07-06T16:17:58.075Z","3.4.1":"2025-08-15T13:52:52.680Z","3.4.2":"2025-09-02T07:20:37.852Z","3.4.3":"2025-09-23T10:19:51.333Z","3.4.4":"2025-09-23T21:20:39.690Z","3.4.5":"2025-10-01T19:13:07.701Z","3.4.6":"2026-03-07T22:34:44.904Z","3.4.7":"2026-03-20T17:52:29.197Z","3.4.8":"2026-03-22T12:13:43.098Z","3.4.9":"2026-03-28T22:47:08.456Z","3.5.0":"2026-03-29T16:45:52.950Z","4.0.0":"2026-04-10T10:48:25.427Z","4.1.0":"2026-04-10T10:50:04.842Z","4.2.0":"2026-04-10T13:17:45.548Z","4.3.0":"2026-04-13T11:47:48.113Z","4.4.0":"2026-04-14T09:38:52.976Z","4.5.0":"2026-04-17T20:58:49.590Z","4.6.0":"2026-05-10T20:15:17.479Z","4.7.0":"2026-05-11T07:19:57.049Z","4.8.0":"2026-05-11T21:12:44.186Z","4.9.0":"2026-05-11T21:15:50.973Z","5.0.0":"2026-05-25T10:07:50.352Z","5.1.0":"2026-05-26T14:17:50.652Z","5.2.0":"2026-05-27T19:10:47.434Z","5.3.0":"2026-06-02T09:00:36.011Z","5.4.0":"2026-07-25T15:17:40.693Z","5.5.0":"2026-07-30T07:04:45.717Z","5.4.0-pre":"2026-07-30T07:14:36.342Z","5.6.0":"2026-08-17T21:23:37.164Z","5.7.0":"2026-09-07T12:13:17.611Z","5.8.0":"2026-09-07T17:23:26.468Z","5.9.0":"2026-09-08T13:44:24.435Z","6.0.0":"2026-09-10T20:46:28.203Z"},"bugs":{"url":"https://github.com/20syldev/api/issues"},"author":{"name":"Sylvain L."},"license":"BSD 3-Clause","homepage":"https://api.sylvain.sh","keywords":["api","express","utility","math","typescript"],"repository":{"url":"git+https://github.com/20syldev/api.git","type":"git"},"description":"Node.js API with multiple features. Check the documentation at https://docs.sylvain.sh","maintainers":[{"name":"20syldev","email":"git@sylvain.sh"}],"readme":"# @20syldev/api\n\n## About\n\n`@20syldev/api` bundles 40+ self-contained utilities: encryption, matrix math, SVG charts, CSV, JWT, TOTP, barcodes, fake data generation, text processing, validation and more. Install it and import — no configuration, no setup step, types included.\n\nIt works two ways:\n\n- **As a library** — import any module directly into your code.\n- **As a server** — a single import boots an Express app that exposes every module over HTTP.\n\nThe HTTP surface is versioned from `v4` to `v6`, and every version stays mounted side by side, so a new release never changes the behaviour of the one you already target. The full endpoint reference lives on [docs.sylvain.sh](https://docs.sylvain.sh).\n\n## Requirements\n\n**Node.js >= 22.12.0.** The package ships as ESM, but that does not lock out CommonJS: Node has been able to `require()` an ESM module since 22.12, which is why that is the floor. The library entry works from both module systems.\n\n```js\nimport { evaluate } from '@20syldev/api'; // ESM\nconst { evaluate } = require('@20syldev/api'); // CommonJS\n```\n\nThe server entry loads its plugins asynchronously, so it must be imported rather than required:\n\n```js\nawait import('@20syldev/api/server'); // from CommonJS\n```\n\n## Installation\n\n```console\n$ npm install @20syldev/api\n```\n\n## Quick start\n\nThe root import always resolves to the latest version. Use a subpath (`/v4` to `/v6`) to pin a specific one.\n\n```js\n// Latest version, equivalent to '@20syldev/api/v6'\nimport { color, evaluate, username } from '@20syldev/api';\n\n// Or a specific version\nimport { color as colorV4 } from '@20syldev/api/v4';\n\n// Evaluate a math expression\nconst expr = evaluate('sin(pi / 2) + sqrt(4)', 5);\nconsole.log(expr.result); // 3\nconsole.log(expr.expression); // 'sin(pi / 2) + sqrt(4)'\n\n// Generate a random color, converted to every common notation\nconst c = color();\nconsole.log(c.hex, c.rgb, c.hsl, c.hsv, c.hwb, c.cmyk);\n\n// Generate a random username\nconst user = username();\nconsole.log(user.username);\n```\n\n## What's inside\n\n| Domain             | Exports                                                                               |\n| ------------------ | ------------------------------------------------------------------------------------- |\n| **Crypto**         | `asymmetric` `symmetric` `hash` `jwt` `otp` `token` `password` `captcha`              |\n| **Math & data**    | **`matrix`** **`algorithms`** `evaluate` `statistics` `convert` `csv`                 |\n| **Text**           | **`text`** **`encode`** **`validate`** `caseConvert` `levenshtein` `regex` `parseUrl` |\n| **Graphics**       | **`chart`** `barcode` `qrcode` `avatar` `placeholder` `color` `palette`               |\n| **Fake data**      | `personal` `address` `credit` `username` `dice` `domain` `agent`                      |\n| **Network & time** | `ip` `geo` `time` `cron` `hyperplanning`                                              |\n| **Stateful**       | `chat` `tic_tac_toe`                                                                  |\n\nThe six names in **bold** are namespaces — they group related functions, called as `namespace.method()`:\n\n| Namespace        | Functions                                                                                                                |\n| ---------------- | ------------------------------------------------------------------------------------------------------------------------ |\n| **`algorithms`** | `factorial` `fibonacci` `gcd` `isprime` `primefactors` `primelist` `roman` `anagram` `palindrome` `reverse` `bubblesort` |\n| **`chart`**      | `bar` `line` `pie` `donut`                                                                                               |\n| **`encode`**     | `base64encode` `base64decode` `urlencode` `urldecode` `binary` `unbinary` `morse` `unmorse` `caesar` `rot13`             |\n| **`matrix`**     | `add` `subtract` `multiply` `scalar` `transpose` `determinant` `inverse` `identity`                                      |\n| **`text`**       | `lorem` `slug` `stats` `number`                                                                                          |\n| **`validate`**   | `email` `iban` `luhn`                                                                                                    |\n\nEverything else is a plain function, called directly.\n\nTwo names differ from their HTTP endpoint, because `case` is a reserved word and `url` is a global identifier:\n\n| Endpoint | Import        |\n| -------- | ------------- |\n| `/case`  | `caseConvert` |\n| `/url`   | `parseUrl`    |\n\n> _`personal` generates **fake** profiles (names, emails, jobs, addresses) for seeding and testing — it holds no real data._\n\n## Examples\n\n```js\nimport {\n    asymmetric,\n    caseConvert,\n    chart,\n    csv,\n    evaluate,\n    jwt,\n    matrix,\n    otp,\n    parseUrl,\n    symmetric,\n    validate,\n} from '@20syldev/api/v5';\n\n// RSA key generation, encryption and decryption\nconst { publicKey, privateKey } = asymmetric('keygen', {});\nconst { result: encrypted } = asymmetric('encrypt', { text: 'secret message', publicKey });\nconst { result: decrypted } = asymmetric('decrypt', { text: encrypted, privateKey });\nconsole.log(decrypted); // 'secret message'\n\n// AES-256-GCM symmetric encryption, key derived with scrypt\nconst { result: blob } = symmetric('encrypt', 'secret message', 'a-strong-key');\nconst { result: plain } = symmetric('decrypt', blob, 'a-strong-key');\nconsole.log(plain); // 'secret message'\n\n// TOTP secret, code generation and verification\nconst { secret, uri } = otp('secret', { label: 'alice', issuer: 'MyApp' });\nconst { code } = otp('generate', { secret });\nconst { valid } = otp('verify', { secret, code });\nconsole.log(valid); // true\n\n// Decode a JWT without verifying its signature (inspection only)\nconst { header, payload } = jwt('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.qfhpVR4l');\nconsole.log(header.alg, payload.sub); // 'HS256' '1234567890'\n\n// Evaluate a math expression, with a precision\nconst { result } = evaluate('log2(8) * (3 + pi)', 4);\nconsole.log(result); // 18.4248\n\n// Matrix product\nconst { result: product } = matrix.multiply(\n    [\n        [1, 2],\n        [3, 4],\n    ],\n    [\n        [5, 6],\n        [7, 8],\n    ],\n);\nconsole.log(product); // [[19, 22], [43, 50]]\n\n// Render an SVG chart in memory\nconst { body: svg } = chart.bar(\n    { labels: ['Jan', 'Feb', 'Mar'], datasets: [{ label: 'Sales', values: [120, 85, 200] }] },\n    { width: 600, height: 300 },\n);\n// body holds a ready-to-serve SVG string\n\n// Parse CSV into rows, or format rows back into CSV\nconst { rows } = csv('parse', { csv: 'name,age\\nAlice,30\\nBob,25' });\nconsole.log(rows); // [{ name: 'Alice', age: '30' }, { name: 'Bob', age: '25' }]\n\n// Convert between case styles\nconsole.log(caseConvert('hello world', 'pascal').result); // 'HelloWorld'\n\n// Split a URL into its components\nconst parsed = parseUrl('https://example.com/a/b?tag=x&tag=y#top');\nconsole.log(parsed.host, parsed.port, parsed.params, parsed.fragment);\n\n// Validate an email, an IBAN or a card number\nconsole.log(validate.email('alice@example.com').valid); // true\n```\n\n## Running the server\n\nFrom the installed package, one import mounts every version:\n\n```js\nimport '@20syldev/api/server';\n```\n\nFrom a clone of the repository:\n\n```console\n$ npm run build && npm start\n```\n\n```console\n> @20syldev/api@6.0.0 build\n> tsc\n\n> @20syldev/api@6.0.0 start\n> node dist/app.js\n\nAPI is running on\n    - http://127.0.0.1:3000\n    - http://localhost:3000\n```\n\nFor development with automatic reloading:\n\n```console\n$ npm run dev\n```\n\nEndpoints follow the `/:version/:endpoint` pattern — `GET /v5/color`, `GET /v5/evaluate?expr=2%2B2`, `POST /v5/matrix`. `GET /` lists the available versions, and `GET /:version` lists that version's endpoints with their parameters.\n\n### Configuration\n\nEvery setting is optional and read from the environment; a `.env` file at the project root is loaded automatically. The server runs with none of them set.\n\n| Variable           | Default | Purpose                                                                                                                                                |\n| ------------------ | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| `PORT`             | `3000`  | Port the server listens on                                                                                                                             |\n| `DOCS_URL`         | —       | Documentation base URL reported by `/`, `/:version` and `/:version/infos`                                                                              |\n| `REPO_URL`         | —       | Source repository reported by `/:version/infos`                                                                                                        |\n| `INSTANCE_CREATED` | —       | Launch date reported by `/:version/infos`                                                                                                              |\n| `LOGS_TOKEN`       | —       | Value required in the `X-Logs-Token` header to read `/logs`; the route answers 404 while unset                                                         |\n| `CHALLENGE_SECRET` | random  | Key signing the captcha and proof-of-work tokens; a random one is generated at startup while unset                                                     |\n| `TRUSTED_PROXIES`  | one hop | CIDR blocks separated by spaces or commas, or the `loopback` / `linklocal` / `uniquelocal` shorthands, for deployments behind a CDN or platform router |\n| `GLOBAL_LIMIT`     | `50000` | Requests per hour accepted across the whole instance                                                                                                   |\n| `DEFAULT_LIMIT`    | `2000`  | Per-client requests per hour                                                                                                                           |\n| `DEFAULT_BURST`    | `50`    | Per-client requests per 10-second window                                                                                                               |\n\nThe three metadata variables are omitted from responses when unset, so an instance never advertises somebody else's documentation or repository.\n\nHigher quotas can be granted per client: `ADVANCED_`, `PRO_` and `BUSINESS_` variants of `_LIMIT` and `_BURST` define the tiers, and the matching `*_TOKEN_LIST` variables hold the space-separated bearer tokens that map to them. A client's tier and quota are reported by `GET /auth`.\n\n> _Rate-limit counters live in process memory, so each instance of a multi-instance deployment counts separately._\n\n> _Captcha and proof-of-work tokens are signed with `CHALLENGE_SECRET`. While it is unset each process invents its own key, so tokens stop verifying after a restart and are rejected by sibling instances — set it explicitly for any deployment running more than one process, with a full-entropy value such as `openssl rand -hex 32`._\n\n## Versioning\n\n| Version | What it changes                                                                                                                                                          |\n| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| `v4`    | The first fully typed version, and the one that introduced the PATCH and DELETE routes                                                                                   |\n| `v5`    | Adds `base`, `case`, `csv`, `diff`, `evaluate`, `pow`, `read`, `semver`, `url`, `uuid`, asymmetric and symmetric crypto, charts, JWT, matrices and OTP                   |\n| `v6`    | The captcha answers with a signed token by default, `levenshtein` moves to POST, chat and tic-tac-toe carry their identifiers in the body, `hyperplanning` is deprecated |\n\nEvery version is fully typed. The package root always tracks the latest one.\n\n> _`v1`, `v2` and `v3` were removed in `6.0.0`, along with the untyped JavaScript they shared. Install `@20syldev/api@5.9.0` if you still need them._\n\n> _`hyperplanning` is deprecated: it still works on every version, but `v6` no longer lists it among its endpoints, and it will be removed entirely in `7.0.0`._\n\n## Scripts\n\n| Command          | Description                                             |\n| ---------------- | ------------------------------------------------------- |\n| `npm run dev`    | Development server with automatic reloading (tsx watch) |\n| `npm run build`  | Compile TypeScript to `dist/`                           |\n| `npm start`      | Start the production server (`node dist/app.js`)        |\n| `npm test`       | Run unit and integration tests                          |\n| `npm run format` | Format with Prettier and auto-fix with ESLint           |\n| `npm run check`  | TypeScript and ESLint verification                      |\n\n## Hosted instance\n\nA public instance runs at [api.sylvain.sh](https://api.sylvain.sh), with the complete endpoint reference, request examples and usage guides on [docs.sylvain.sh](https://docs.sylvain.sh).\n\n## License\n\nBSD 3-Clause. See [LICENSE](LICENSE).\n","readmeFilename":"README.md"}