{"_id":"@open-xchange/fastify-sdk","_rev":"29-704fda83c0a19895a8b7d110ea42d842","name":"@open-xchange/fastify-sdk","dist-tags":{"latest":"0.11.1"},"versions":{"0.1.0":{"name":"@open-xchange/fastify-sdk","version":"0.1.0","author":{"name":"Open-Xchange"},"license":"AGPL-3.0-or-later","_id":"@open-xchange/fastify-sdk@0.1.0","maintainers":[{"name":"moritz.bach","email":"moritz.bach@open-xchange.com"},{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"anne.matthes","email":"anne.matthes@open-xchange.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"tran-dong.tran","email":"tran-dong.tran@open-xchange.com"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"ox-kaci","email":"kawa.acikgoez@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"dist":{"shasum":"8bb7b5933d6d3ef2b48a838dc720a07af16232ec","tarball":"https://registry.npmjs.org/@open-xchange/fastify-sdk/-/fastify-sdk-0.1.0.tgz","fileCount":25,"integrity":"sha512-wcfNITLPs6l0GZpRM5RmqLWkuUgPuzzu1mJr8ylHnPTHOmFWvBSyAoSq5MjiLtRGmpHs0+lBRH1bkYHxd6t8Sg==","signatures":[{"sig":"MEYCIQDUpGPPfcvPfsaW4hYL3DH2DtXPkZ6zvprdycdsbSq6fAIhAOMbYRZMKM63xJ6VeCAwGiZRSDhPY8QHEDMX9mB5g4B0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49933},"pnpm":{"onlyBuiltDependencies":["unrs-resolver"]},"type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./lint":"./lib/lint/index.js","./mysql":"./lib/database/mysql.js","./redis":"./lib/redis/index.js","./config":"./lib/config/index.js","./testing":"./lib/testing/index.js","./postgres":"./lib/database/postgres.js","./migrations":"./lib/database/migrations.js"},"gitHead":"3c67cc666581f71d8f67fb49811c66ffefb63ba1","private":false,"scripts":{"lint":"eslint . --cache --fix","test":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"davidbauer","email":"david.bauer@open-xchange.com"},"_npmVersion":"11.8.0","description":"Shared foundation package for OX App Suite Node.js services","directories":{},"_nodeVersion":"25.6.0","dependencies":{"joi":"^18.0.2","jose":"^6.1.3","pino":"^10.3.1","fastify":"^5.7.4","js-yaml":"^4.1.1","chokidar":"^5.0.0","ajv-errors":"^3.0.0","http-errors":"^2.0.1","pino-pretty":"^13.1.3","prom-client":"^15.1.3","@fastify/jwt":"^10.0.0","@fastify/cors":"^11.2.0","fastify-plugin":"^5.1.0","@fastify/helmet":"^13.0.2","@fastify/static":"^9.0.0","fastify-metrics":"^12.1.0","@fastify/swagger":"^9.7.0","@fastify/autoload":"^6.3.1","@fastify/sensible":"^6.0.4","@fastify/swagger-ui":"^5.2.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.27.0","devDependencies":{"pg":"^8.18.0","umzug":"^3.8.2","eslint":"^9.39.2","mysql2":"^3.16.3","vitest":"^4.0.18","ioredis":"^5.9.2","@open-xchange/lint":"^0.2.1","@vitest/coverage-v8":"^4.0.18"},"peerDependencies":{"pg":"^8.16.0","umzug":"^3.8.2","mysql2":"^3.16.0","ioredis":"^5.9.0"},"peerDependenciesMeta":{"pg":{"optional":true},"umzug":{"optional":true},"mysql2":{"optional":true},"ioredis":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fastify-sdk_0.1.0_1770831360447_0.15694348328009533","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@open-xchange/fastify-sdk","version":"0.2.0","author":{"name":"Open-Xchange"},"license":"AGPL-3.0-or-later","_id":"@open-xchange/fastify-sdk@0.2.0","maintainers":[{"name":"moritz.bach","email":"moritz.bach@open-xchange.com"},{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"anne.matthes","email":"anne.matthes@open-xchange.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"tran-dong.tran","email":"tran-dong.tran@open-xchange.com"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"ox-kaci","email":"kawa.acikgoez@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"dist":{"shasum":"e796c324fdea1e2086d2046dc6ca6ad7b54d82b2","tarball":"https://registry.npmjs.org/@open-xchange/fastify-sdk/-/fastify-sdk-0.2.0.tgz","fileCount":24,"integrity":"sha512-8Pj7tjJAErsr1zFQFLy63Ljri07LHMGtoiGGhC2o6tZOs+rkdJbkBcyfvlTdxkUPIzAKa8wz0ysaoGfMU/xITQ==","signatures":[{"sig":"MEUCIDiGqdUeKQcwmjnb2u3EfjOnFAZh1Ex2Sz8WpjNYyKpHAiEA5dpU6EsS5fMH1S4q2tDq9YNlvirfW3Z+A96hZI5XNi8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51125},"type":"module","_from":"file:open-xchange-fastify-sdk-0.2.0.tgz","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./redis":"./lib/redis/index.js","./config":"./lib/config/index.js","./mariadb":"./lib/database/mariadb.js","./testing":"./lib/testing/index.js","./postgres":"./lib/database/postgres.js","./migrations":"./lib/database/migrations.js"},"private":false,"scripts":{"lint":"eslint . --cache --fix","test":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"davidbauer","email":"david.bauer@open-xchange.com"},"_resolved":"/tmp/06055663db2c94515dbfe5c3fc817007/open-xchange-fastify-sdk-0.2.0.tgz","_integrity":"sha512-8Pj7tjJAErsr1zFQFLy63Ljri07LHMGtoiGGhC2o6tZOs+rkdJbkBcyfvlTdxkUPIzAKa8wz0ysaoGfMU/xITQ==","_npmVersion":"11.10.0","description":"Shared foundation package for OX App Suite Node.js services","directories":{},"_nodeVersion":"25.6.1","dependencies":{"joi":"^18.0.2","jose":"^6.1.3","pino":"^10.3.1","fastify":"^5.7.4","js-yaml":"^4.1.1","chokidar":"^5.0.0","ajv-errors":"^3.0.0","http-errors":"^2.0.1","pino-pretty":"^13.1.3","prom-client":"^15.1.3","@fastify/jwt":"^10.0.0","@fastify/cors":"^11.2.0","fastify-plugin":"^5.1.0","@fastify/helmet":"^13.0.2","@fastify/static":"^9.0.0","fastify-metrics":"^12.1.0","@fastify/swagger":"^9.7.0","@fastify/autoload":"^6.3.1","@fastify/sensible":"^6.0.4","@fastify/swagger-ui":"^5.2.5"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.18.0","umzug":"^3.8.2","eslint":"^9.39.2","vitest":"^4.0.18","ioredis":"^5.9.2","mariadb":"^3.4.1","@open-xchange/lint":"^0.2.1","@vitest/coverage-v8":"^4.0.18"},"peerDependencies":{"pg":"^8.16.0","umzug":"^3.8.2","ioredis":"^5.9.0","mariadb":"^3.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"umzug":{"optional":true},"ioredis":{"optional":true},"mariadb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fastify-sdk_0.2.0_1771501039623_0.21092090891410398","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@open-xchange/fastify-sdk","version":"0.2.1","author":{"name":"Open-Xchange"},"license":"AGPL-3.0-or-later","_id":"@open-xchange/fastify-sdk@0.2.1","maintainers":[{"name":"moritz.bach","email":"moritz.bach@open-xchange.com"},{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"anne.matthes","email":"anne.matthes@open-xchange.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"tran-dong.tran","email":"tran-dong.tran@open-xchange.com"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"ox-kaci","email":"kawa.acikgoez@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"dist":{"shasum":"cf41ae35cbde0a44e190c37915af911e97806667","tarball":"https://registry.npmjs.org/@open-xchange/fastify-sdk/-/fastify-sdk-0.2.1.tgz","fileCount":24,"integrity":"sha512-Z09ZCJtXLRbtIxmCtiGTQsBAf6J9S576jHRHXZ+S2MnmsvxJhT6IGkBrX7pdnBXwbL57zalK5KRLvzKP18EkkA==","signatures":[{"sig":"MEUCIGqMgMPpvR47ObVTfaY4ltLHxKUjj/R//ieqEZP8cbn3AiEA13Ubppjsesvas/JxbilPbM0gRm7jSqQUw/vqQAb96DE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51130},"type":"module","_from":"file:open-xchange-fastify-sdk-0.2.1.tgz","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./redis":"./lib/redis/index.js","./config":"./lib/config/index.js","./mariadb":"./lib/database/mariadb.js","./testing":"./lib/testing/index.js","./postgres":"./lib/database/postgres.js","./migrations":"./lib/database/migrations.js"},"private":false,"scripts":{"lint":"eslint . --cache --fix","test":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"davidbauer","email":"david.bauer@open-xchange.com"},"_resolved":"/tmp/d29f513394c845f1a9e25621b072ab01/open-xchange-fastify-sdk-0.2.1.tgz","_integrity":"sha512-Z09ZCJtXLRbtIxmCtiGTQsBAf6J9S576jHRHXZ+S2MnmsvxJhT6IGkBrX7pdnBXwbL57zalK5KRLvzKP18EkkA==","_npmVersion":"11.10.0","description":"Shared foundation package for OX App Suite Node.js services","directories":{},"_nodeVersion":"25.6.1","dependencies":{"joi":"^18.0.2","jose":"^6.1.3","pino":"^10.3.1","fastify":"^5.7.4","js-yaml":"^4.1.1","chokidar":"^5.0.0","ajv-errors":"^3.0.0","http-errors":"^2.0.1","pino-pretty":"^13.1.3","prom-client":"^15.1.3","@fastify/jwt":"^10.0.0","@fastify/cors":"^11.2.0","fastify-plugin":"^5.1.0","@fastify/helmet":"^13.0.2","@fastify/static":"^9.0.0","fastify-metrics":"^12.1.0","@fastify/swagger":"^9.7.0","@fastify/autoload":"^6.3.1","@fastify/sensible":"^6.0.4","@fastify/swagger-ui":"^5.2.5"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.18.0","umzug":"^3.8.2","eslint":"^9.39.2","vitest":"^4.0.18","ioredis":"^5.9.2","mariadb":"^3.4.1","@open-xchange/lint":"^0.2.1","@vitest/coverage-v8":"^4.0.18"},"peerDependencies":{"pg":"^8.16.0","umzug":"^3.8.2","ioredis":"^5.9.0","mariadb":"^3.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"umzug":{"optional":true},"ioredis":{"optional":true},"mariadb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fastify-sdk_0.2.1_1771509431601_0.18205117871722232","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@open-xchange/fastify-sdk","version":"0.2.2","author":{"name":"Open-Xchange"},"license":"AGPL-3.0-or-later","_id":"@open-xchange/fastify-sdk@0.2.2","maintainers":[{"name":"moritz.bach","email":"moritz.bach@open-xchange.com"},{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"anne.matthes","email":"anne.matthes@open-xchange.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"tran-dong.tran","email":"tran-dong.tran@open-xchange.com"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"ox-kaci","email":"kawa.acikgoez@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"dist":{"shasum":"f54039a65ffa6e560d6c8e2d3dcc200e21112d90","tarball":"https://registry.npmjs.org/@open-xchange/fastify-sdk/-/fastify-sdk-0.2.2.tgz","fileCount":24,"integrity":"sha512-s5CDZ7RYT27HlTEheQ9ZR08YIAO1yFDShxJPmjo8hN+6uVt++Zzdlcz4wkXDwMss4x3moRdK8DVYbk4Al3FgEg==","signatures":[{"sig":"MEYCIQDi7Fh2ku4De7IWVpsqJs3LEz5735tQ8MMrKF8rnd1tJgIhAMx0LJL+cqGuDkFTjf+60WqurkmSU76qhs6tEUttKiKa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51154},"type":"module","_from":"file:open-xchange-fastify-sdk-0.2.2.tgz","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./redis":"./lib/redis/index.js","./config":"./lib/config/index.js","./mariadb":"./lib/database/mariadb.js","./testing":"./lib/testing/index.js","./postgres":"./lib/database/postgres.js","./migrations":"./lib/database/migrations.js"},"private":false,"scripts":{"lint":"eslint . --cache --fix","test":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"davidbauer","email":"david.bauer@open-xchange.com"},"_resolved":"/tmp/fd9aac8e7eb0ce66fa2d8668d44c38f6/open-xchange-fastify-sdk-0.2.2.tgz","_integrity":"sha512-s5CDZ7RYT27HlTEheQ9ZR08YIAO1yFDShxJPmjo8hN+6uVt++Zzdlcz4wkXDwMss4x3moRdK8DVYbk4Al3FgEg==","_npmVersion":"11.10.0","description":"Shared foundation package for OX App Suite Node.js services","directories":{},"_nodeVersion":"25.6.1","dependencies":{"joi":"^18.0.2","jose":"^6.1.3","pino":"^10.3.1","fastify":"^5.7.4","js-yaml":"^4.1.1","chokidar":"^5.0.0","ajv-errors":"^3.0.0","http-errors":"^2.0.1","pino-pretty":"^13.1.3","prom-client":"^15.1.3","@fastify/jwt":"^10.0.0","@fastify/cors":"^11.2.0","fastify-plugin":"^5.1.0","@fastify/helmet":"^13.0.2","@fastify/static":"^9.0.0","fastify-metrics":"^12.1.0","@fastify/swagger":"^9.7.0","@fastify/autoload":"^6.3.1","@fastify/sensible":"^6.0.4","@fastify/swagger-ui":"^5.2.5"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.18.0","umzug":"^3.8.2","eslint":"^9.39.2","vitest":"^4.0.18","ioredis":"^5.9.2","mariadb":"^3.4.1","@open-xchange/lint":"^0.2.1","@vitest/coverage-v8":"^4.0.18"},"peerDependencies":{"pg":"^8.16.0","umzug":"^3.8.2","ioredis":"^5.9.0","mariadb":"^3.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"umzug":{"optional":true},"ioredis":{"optional":true},"mariadb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fastify-sdk_0.2.2_1771514212821_0.892412781830791","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@open-xchange/fastify-sdk","version":"0.2.3","author":{"name":"Open-Xchange"},"license":"AGPL-3.0-or-later","_id":"@open-xchange/fastify-sdk@0.2.3","maintainers":[{"name":"moritz.bach","email":"moritz.bach@open-xchange.com"},{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"anne.matthes","email":"anne.matthes@open-xchange.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"tran-dong.tran","email":"tran-dong.tran@open-xchange.com"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"ox-kaci","email":"kawa.acikgoez@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"dist":{"shasum":"71fb978e7878bb4a0c5a56b9cec044223a54fe0b","tarball":"https://registry.npmjs.org/@open-xchange/fastify-sdk/-/fastify-sdk-0.2.3.tgz","fileCount":24,"integrity":"sha512-ctL2khhqRbhq/PTfzqPWhgGfcM02AxpM/DnSBvexNVzfXH3AyhRGczlBW/PfXn7jy2YrgxzsmjSiKlJFQKGBiw==","signatures":[{"sig":"MEQCIDDOX7DfnX5gw9k3cbGzalI6nYho61lrsIUTo+T8EQphAiBzFVHTi7VHfnAnB4zNZ6Lq09H2r0sF+Dv6ml4Iz6EW1A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52126},"pnpm":{"onlyBuiltDependencies":["unrs-resolver"]},"type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./redis":"./lib/redis/index.js","./config":"./lib/config/index.js","./mariadb":"./lib/database/mariadb.js","./testing":"./lib/testing/index.js","./postgres":"./lib/database/postgres.js","./migrations":"./lib/database/migrations.js"},"gitHead":"15d54576da023e289d6fcdb00354c1b35e5fe116","private":false,"scripts":{"lint":"eslint . --cache --fix","test":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"davidbauer","email":"david.bauer@open-xchange.com"},"_npmVersion":"11.10.0","description":"Shared foundation package for OX App Suite Node.js services","directories":{},"_nodeVersion":"25.6.1","dependencies":{"joi":"^18.0.2","jose":"^6.1.3","pino":"^10.3.1","fastify":"^5.7.4","js-yaml":"^4.1.1","chokidar":"^5.0.0","ajv-errors":"^3.0.0","http-errors":"^2.0.1","pino-pretty":"^13.1.3","prom-client":"^15.1.3","@fastify/jwt":"^10.0.0","@fastify/cors":"^11.2.0","fastify-plugin":"^5.1.0","@fastify/helmet":"^13.0.2","@fastify/static":"^9.0.0","fastify-metrics":"^12.1.0","@fastify/swagger":"^9.7.0","@fastify/autoload":"^6.3.1","@fastify/sensible":"^6.0.4","@fastify/swagger-ui":"^5.2.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.27.0","devDependencies":{"pg":"^8.18.0","umzug":"^3.8.2","eslint":"^9.39.2","vitest":"^4.0.18","ioredis":"^5.9.2","mariadb":"^3.4.1","@open-xchange/lint":"^0.2.1","@vitest/coverage-v8":"^4.0.18"},"peerDependencies":{"pg":"^8.16.0","umzug":"^3.8.2","ioredis":"^5.9.0","mariadb":"^3.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"umzug":{"optional":true},"ioredis":{"optional":true},"mariadb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fastify-sdk_0.2.3_1771518404993_0.07914198874290057","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@open-xchange/fastify-sdk","version":"0.2.4","author":{"name":"Open-Xchange"},"license":"AGPL-3.0-or-later","_id":"@open-xchange/fastify-sdk@0.2.4","maintainers":[{"name":"moritz.bach","email":"moritz.bach@open-xchange.com"},{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"anne.matthes","email":"anne.matthes@open-xchange.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"tran-dong.tran","email":"tran-dong.tran@open-xchange.com"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"ox-kaci","email":"kawa.acikgoez@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"dist":{"shasum":"3c3e98f1df6b82a8e7c807d605710b7f7f5bb506","tarball":"https://registry.npmjs.org/@open-xchange/fastify-sdk/-/fastify-sdk-0.2.4.tgz","fileCount":24,"integrity":"sha512-LXvQvbuljzMXt9rAkmg3rv2L//piN61d0gsPZ4z/LP2cZJh4WFxBS4m4dfhDZvOqB9G3/ZKkhJR9J9QvAH5gMw==","signatures":[{"sig":"MEUCIQDEMQhAkji7lAZpx+cscJZF8/eDt4XFTC6+H0+Krt86awIgTQRHCpDUhwrsPuvwj+AzRF+di0RX3xNOh0VbftxWhLY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52159},"pnpm":{"onlyBuiltDependencies":["unrs-resolver"]},"type":"module","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./redis":"./lib/redis/index.js","./config":"./lib/config/index.js","./mariadb":"./lib/database/mariadb.js","./testing":"./lib/testing/index.js","./postgres":"./lib/database/postgres.js","./migrations":"./lib/database/migrations.js"},"gitHead":"68f972b873a05e77d0e29c2aef8ebfb6a6a17b1f","private":false,"scripts":{"lint":"eslint . --cache --fix","test":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"davidbauer","email":"david.bauer@open-xchange.com"},"_npmVersion":"11.10.0","description":"Shared foundation package for OX App Suite Node.js services","directories":{},"_nodeVersion":"25.6.1","dependencies":{"joi":"^18.0.2","jose":"^6.1.3","pino":"^10.3.1","fastify":"^5.7.4","js-yaml":"^4.1.1","chokidar":"^5.0.0","ajv-errors":"^3.0.0","http-errors":"^2.0.1","pino-pretty":"^13.1.3","prom-client":"^15.1.3","@fastify/jwt":"^10.0.0","@fastify/cors":"^11.2.0","fastify-plugin":"^5.1.0","@fastify/helmet":"^13.0.2","@fastify/static":"^9.0.0","fastify-metrics":"^12.1.0","@fastify/swagger":"^9.7.0","@fastify/autoload":"^6.3.1","@fastify/sensible":"^6.0.4","@fastify/swagger-ui":"^5.2.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.27.0","devDependencies":{"pg":"^8.18.0","umzug":"^3.8.2","eslint":"^9.39.2","vitest":"^4.0.18","ioredis":"^5.9.2","mariadb":"^3.4.1","@open-xchange/lint":"^0.2.1","@vitest/coverage-v8":"^4.0.18"},"peerDependencies":{"pg":"^8.16.0","umzug":"^3.8.2","ioredis":"^5.9.0","mariadb":"^3.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"umzug":{"optional":true},"ioredis":{"optional":true},"mariadb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fastify-sdk_0.2.4_1771518911626_0.46301791596905306","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@open-xchange/fastify-sdk","version":"0.2.5","author":{"name":"Open-Xchange"},"license":"AGPL-3.0-or-later","_id":"@open-xchange/fastify-sdk@0.2.5","maintainers":[{"name":"moritz.bach","email":"moritz.bach@open-xchange.com"},{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"anne.matthes","email":"anne.matthes@open-xchange.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"tran-dong.tran","email":"tran-dong.tran@open-xchange.com"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"ox-kaci","email":"kawa.acikgoez@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"dist":{"shasum":"db7c1fd6b9ad0b0fb6bbad6f3bf1bcfa602863bb","tarball":"https://registry.npmjs.org/@open-xchange/fastify-sdk/-/fastify-sdk-0.2.5.tgz","fileCount":24,"integrity":"sha512-03kvNmfaJzBaqau3qQfvVJSoYnOCDANB1OEVMAKfgAmzcn/P+z+7LQWvk6QUsHJXIGx0dYEzU9Z6u3MFlOG7SQ==","signatures":[{"sig":"MEQCIHDVp9S0U1LCQeCxubHZ2fooh/jEPjzTIko3YMf6h7paAiBbTmSuTxdaxGNzweH4HvL5l66j2T5abWXq0rHSiFnzlg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52046},"type":"module","_from":"file:open-xchange-fastify-sdk-0.2.5.tgz","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./redis":"./lib/redis/index.js","./config":"./lib/config/index.js","./mariadb":"./lib/database/mariadb.js","./testing":"./lib/testing/index.js","./postgres":"./lib/database/postgres.js","./migrations":"./lib/database/migrations.js"},"private":false,"scripts":{"lint":"eslint . --cache --fix","test":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"davidbauer","email":"david.bauer@open-xchange.com"},"_resolved":"/tmp/d7c302a7ac418d5a27fa3345e9ec582c/open-xchange-fastify-sdk-0.2.5.tgz","_integrity":"sha512-03kvNmfaJzBaqau3qQfvVJSoYnOCDANB1OEVMAKfgAmzcn/P+z+7LQWvk6QUsHJXIGx0dYEzU9Z6u3MFlOG7SQ==","_npmVersion":"11.10.0","description":"Shared foundation package for OX App Suite Node.js services","directories":{},"_nodeVersion":"25.6.1","dependencies":{"joi":"^18.0.2","jose":"^6.1.3","pino":"^10.3.1","fastify":"^5.7.4","js-yaml":"^4.1.1","chokidar":"^5.0.0","ajv-errors":"^3.0.0","http-errors":"^2.0.1","pino-pretty":"^13.1.3","prom-client":"^15.1.3","@fastify/jwt":"^10.0.0","@fastify/cors":"^11.2.0","fastify-plugin":"^5.1.0","@fastify/helmet":"^13.0.2","@fastify/static":"^9.0.0","fastify-metrics":"^12.1.0","@fastify/swagger":"^9.7.0","@fastify/autoload":"^6.3.1","@fastify/sensible":"^6.0.4","@fastify/swagger-ui":"^5.2.5"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.18.0","umzug":"^3.8.2","eslint":"^9.39.2","vitest":"^4.0.18","ioredis":"^5.9.2","mariadb":"^3.4.1","@open-xchange/lint":"^0.2.1","@vitest/coverage-v8":"^4.0.18"},"peerDependencies":{"pg":"^8.16.0","umzug":"^3.8.2","ioredis":"^5.9.0","mariadb":"^3.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"umzug":{"optional":true},"ioredis":{"optional":true},"mariadb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fastify-sdk_0.2.5_1771522891096_0.006553498086969034","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@open-xchange/fastify-sdk","version":"0.3.0","author":{"name":"Open-Xchange"},"license":"AGPL-3.0-or-later","_id":"@open-xchange/fastify-sdk@0.3.0","maintainers":[{"name":"moritz.bach","email":"moritz.bach@open-xchange.com"},{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"anne.matthes","email":"anne.matthes@open-xchange.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"tran-dong.tran","email":"tran-dong.tran@open-xchange.com"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"ox-kaci","email":"kawa.acikgoez@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"dist":{"shasum":"843b39bce2e911a7471751d44d8d108561d6f433","tarball":"https://registry.npmjs.org/@open-xchange/fastify-sdk/-/fastify-sdk-0.3.0.tgz","fileCount":24,"integrity":"sha512-IXtA3Wv21PrDiIf/dI6F6Ox4SG+7nDSCV20H++fwebXHNtXJNNXiN5bhFANbFeoSW6ZULLjWWT1dRpUD+mMLQg==","signatures":[{"sig":"MEYCIQCLEmuD/uCX7evD0sDWEfdNQMCHghJqS8YZRk//6L+BNwIhAM30Q/FegmDpmyfcdGmkUFeFTQ62eUqSbuOeWWDtKQr3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53348},"type":"module","_from":"file:open-xchange-fastify-sdk-0.3.0.tgz","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./redis":"./lib/redis/index.js","./config":"./lib/config/index.js","./mariadb":"./lib/database/mariadb.js","./testing":"./lib/testing/index.js","./postgres":"./lib/database/postgres.js","./migrations":"./lib/database/migrations.js"},"private":false,"scripts":{"lint":"eslint . --cache --fix","test":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"davidbauer","email":"david.bauer@open-xchange.com"},"_resolved":"/tmp/e51932463b264e1214cbd11144e50ab8/open-xchange-fastify-sdk-0.3.0.tgz","_integrity":"sha512-IXtA3Wv21PrDiIf/dI6F6Ox4SG+7nDSCV20H++fwebXHNtXJNNXiN5bhFANbFeoSW6ZULLjWWT1dRpUD+mMLQg==","_npmVersion":"11.10.0","description":"Shared foundation package for OX App Suite Node.js services","directories":{},"_nodeVersion":"25.6.1","dependencies":{"joi":"^18.0.2","jose":"^6.1.3","pino":"^10.3.1","fastify":"^5.7.4","js-yaml":"^4.1.1","chokidar":"^5.0.0","ajv-errors":"^3.0.0","http-errors":"^2.0.1","pino-pretty":"^13.1.3","prom-client":"^15.1.3","@fastify/jwt":"^10.0.0","@fastify/cors":"^11.2.0","fastify-plugin":"^5.1.0","@fastify/helmet":"^13.0.2","@fastify/static":"^9.0.0","fastify-metrics":"^12.1.0","@fastify/swagger":"^9.7.0","@fastify/autoload":"^6.3.1","@fastify/sensible":"^6.0.4","@fastify/swagger-ui":"^5.2.5"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.18.0","umzug":"^3.8.2","eslint":"^9.39.2","vitest":"^4.0.18","ioredis":"^5.9.2","mariadb":"^3.4.1","@open-xchange/lint":"^0.2.1","@vitest/coverage-v8":"^4.0.18"},"peerDependencies":{"pg":"^8.16.0","umzug":"^3.8.2","ioredis":"^5.9.0","mariadb":"^3.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"umzug":{"optional":true},"ioredis":{"optional":true},"mariadb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fastify-sdk_0.3.0_1771546139598_0.6870029865859557","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@open-xchange/fastify-sdk","version":"0.4.0","author":{"name":"Open-Xchange"},"license":"AGPL-3.0-or-later","_id":"@open-xchange/fastify-sdk@0.4.0","maintainers":[{"name":"moritz.bach","email":"moritz.bach@open-xchange.com"},{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"anne.matthes","email":"anne.matthes@open-xchange.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"tran-dong.tran","email":"tran-dong.tran@open-xchange.com"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"ox-kaci","email":"kawa.acikgoez@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"dist":{"shasum":"1ef935d7d1dc1e2920df2ad7e8c884088aa9e9ff","tarball":"https://registry.npmjs.org/@open-xchange/fastify-sdk/-/fastify-sdk-0.4.0.tgz","fileCount":24,"integrity":"sha512-nSSIW5Mqft7JyJz92RU7rIcYLdzTB/zLGyON8+y1EnMAHUxF0Ns4McCCjRBQ1FSSuMxz3hPXTLE5jIkLkl1U/w==","signatures":[{"sig":"MEUCIQDBo5KXzbg9yVNhLVebymxuehkAX9+lDOXOYXNBynnlKQIgTr2HT0guhypN8ccIRAPQTIfVv55zpbPuM/WyqjHkccc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55705},"type":"module","_from":"file:open-xchange-fastify-sdk-0.4.0.tgz","engines":{"node":">=20"},"exports":{".":"./lib/index.js","./redis":"./lib/redis/index.js","./config":"./lib/config/index.js","./mariadb":"./lib/database/mariadb.js","./testing":"./lib/testing/index.js","./postgres":"./lib/database/postgres.js","./migrations":"./lib/database/migrations.js"},"private":false,"scripts":{"lint":"eslint . --cache --fix","test":"vitest run","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"davidbauer","email":"david.bauer@open-xchange.com"},"_resolved":"/tmp/9e734fcd48ae9d078c64b149874b65e0/open-xchange-fastify-sdk-0.4.0.tgz","_integrity":"sha512-nSSIW5Mqft7JyJz92RU7rIcYLdzTB/zLGyON8+y1EnMAHUxF0Ns4McCCjRBQ1FSSuMxz3hPXTLE5jIkLkl1U/w==","_npmVersion":"11.10.0","description":"Shared foundation package for OX App Suite Node.js services","directories":{},"_nodeVersion":"25.6.1","dependencies":{"joi":"^18.0.2","jose":"^6.1.3","pino":"^10.3.1","fastify":"^5.7.4","js-yaml":"^4.1.1","chokidar":"^5.0.0","ajv-errors":"^3.0.0","http-errors":"^2.0.1","pino-pretty":"^13.1.3","prom-client":"^15.1.3","@fastify/jwt":"^10.0.0","@fastify/cors":"^11.2.0","fastify-plugin":"^5.1.0","@fastify/helmet":"^13.0.2","@fastify/static":"^9.0.0","fastify-metrics":"^12.1.0","@fastify/swagger":"^9.7.0","@fastify/autoload":"^6.3.1","@fastify/sensible":"^6.0.4","@fastify/swagger-ui":"^5.2.5"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.18.0","umzug":"^3.8.2","eslint":"^9.39.2","vitest":"^4.0.18","ioredis":"^5.9.2","mariadb":"^3.4.1","@open-xchange/lint":"^0.2.1","@vitest/coverage-v8":"^4.0.18"},"peerDependencies":{"pg":"^8.16.0","umzug":"^3.8.2","ioredis":"^5.9.0","mariadb":"^3.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"umzug":{"optional":true},"ioredis":{"optional":true},"mariadb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fastify-sdk_0.4.0_1771575403735_0.9443743030632197","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@open-xchange/fastify-sdk","version":"0.4.1","author":{"name":"Open-Xchange"},"license":"AGPL-3.0-or-later","_id":"@open-xchange/fastify-sdk@0.4.1","maintainers":[{"name":"moritz.bach","email":"moritz.bach@open-xchange.com"},{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"anne.matthes","email":"anne.matthes@open-xchange.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"tran-dong.tran","email":"tran-dong.tran@open-xchange.com"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"ox-kaci","email":"kawa.acikgoez@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"dist":{"shasum":"5fdba06f915729a387be7f0cb458d5b0f0d8d909","tarball":"https://registry.npmjs.org/@open-xchange/fastify-sdk/-/fastify-sdk-0.4.1.tgz","fileCount":25,"integrity":"sha512-1ja8O4nM5EPX2LsDoK4si6j4jRDr/wxu2Pndx1padBqk7lnpl+mGgsM6QR1Vi8Y8SqGRaeJTY3nBuzZYfqY6Cw==","signatures":[{"sig":"MEUCIQCsq8+JhcB5gK1ZblCm8Goeyd4L7MhusSvPLfpGneIWMAIgceVemPdkUZrr207gwGe4D7LD4pLVWg5x/8zrAottjdw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":109836},"type":"module","_from":"file:open-xchange-fastify-sdk-0.4.1.tgz","exports":{".":"./lib/index.js","./redis":"./lib/redis/index.js","./config":"./lib/config/index.js","./mariadb":"./lib/database/mariadb.js","./testing":"./lib/testing/index.js","./postgres":"./lib/database/postgres.js","./migrations":"./lib/database/migrations.js"},"private":false,"scripts":{"lint":"eslint . --cache --fix","test":"vitest run --coverage"},"_npmUser":{"name":"davidbauer","email":"david.bauer@open-xchange.com"},"_resolved":"/tmp/2780c4121b8202c93aab957807c79c8a/open-xchange-fastify-sdk-0.4.1.tgz","_integrity":"sha512-1ja8O4nM5EPX2LsDoK4si6j4jRDr/wxu2Pndx1padBqk7lnpl+mGgsM6QR1Vi8Y8SqGRaeJTY3nBuzZYfqY6Cw==","_npmVersion":"11.11.0","description":"Shared foundation package for OX App Suite Node.js services","directories":{},"_nodeVersion":"25.7.0","dependencies":{"joi":"^18.0.2","jose":"^6.2.1","pino":"^10.3.1","fastify":"^5.8.2","js-yaml":"^4.1.1","chokidar":"^5.0.0","ajv-errors":"^3.0.0","http-errors":"^2.0.1","pino-pretty":"^13.1.3","prom-client":"^15.1.3","@fastify/jwt":"^10.0.0","@fastify/cors":"^11.2.0","fastify-plugin":"^5.1.0","@fastify/helmet":"^13.0.2","@fastify/static":"^9.0.0","fastify-metrics":"^12.1.0","@fastify/swagger":"^9.7.0","@fastify/autoload":"^6.3.1","@fastify/sensible":"^6.0.4","@fastify/swagger-ui":"^5.2.5"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.20.0","umzug":"^3.8.2","eslint":"^9.39.4","vitest":"^4.0.18","ioredis":"^5.10.0","mariadb":"^3.5.2","@open-xchange/lint":"^0.2.1","@vitest/coverage-v8":"^4.0.18"},"peerDependencies":{"pg":"^8.16.0","umzug":"^3.8.2","ioredis":"^5.9.0","mariadb":"^3.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"umzug":{"optional":true},"ioredis":{"optional":true},"mariadb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fastify-sdk_0.4.1_1773232328578_0.8788359150302294","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@open-xchange/fastify-sdk","version":"0.5.0","author":{"name":"Open-Xchange"},"license":"AGPL-3.0-or-later","_id":"@open-xchange/fastify-sdk@0.5.0","maintainers":[{"name":"moritz.bach","email":"moritz.bach@open-xchange.com"},{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"anne.matthes","email":"anne.matthes@open-xchange.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"tran-dong.tran","email":"tran-dong.tran@open-xchange.com"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"ox-kaci","email":"kawa.acikgoez@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"dist":{"shasum":"c2d9e66cc0cdef01e7eab5d2a8b7b873c5e25562","tarball":"https://registry.npmjs.org/@open-xchange/fastify-sdk/-/fastify-sdk-0.5.0.tgz","fileCount":25,"integrity":"sha512-6ompxAAFIFXwdfYDaG+QIT9pbugPRkzj5f9Mbxy0bHRBKr3sQHJFLDnWcGQdtq2h4lFT4iXrzD4sMhdKoRXabg==","signatures":[{"sig":"MEUCID3OWYQ5emesf+oXhb1XKZAmZEzd2rUisnjcEgtyvmLNAiEA+q7ofpFM3jEGrR8djKxmneP/gUMvbZ9hm/Dk90S5mlE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118855},"type":"module","_from":"file:open-xchange-fastify-sdk-0.5.0.tgz","exports":{".":"./lib/index.js","./redis":"./lib/redis/index.js","./config":"./lib/config/index.js","./mariadb":"./lib/database/mariadb.js","./testing":"./lib/testing/index.js","./postgres":"./lib/database/postgres.js","./migrations":"./lib/database/migrations.js"},"private":false,"scripts":{"lint":"eslint . --cache --fix","test":"vitest run --coverage"},"_npmUser":{"name":"davidbauer","email":"david.bauer@open-xchange.com"},"_resolved":"/tmp/4a32db489654240a9f9f33e219454cd2/open-xchange-fastify-sdk-0.5.0.tgz","_integrity":"sha512-6ompxAAFIFXwdfYDaG+QIT9pbugPRkzj5f9Mbxy0bHRBKr3sQHJFLDnWcGQdtq2h4lFT4iXrzD4sMhdKoRXabg==","_npmVersion":"11.11.0","description":"Shared foundation package for OX App Suite Node.js services","directories":{},"_nodeVersion":"25.7.0","dependencies":{"joi":"^18.0.2","jose":"^6.2.1","pino":"^10.3.1","fastify":"^5.8.2","js-yaml":"^4.1.1","chokidar":"^5.0.0","ajv-errors":"^3.0.0","http-errors":"^2.0.1","pino-pretty":"^13.1.3","prom-client":"^15.1.3","@fastify/jwt":"^10.0.0","@fastify/cors":"^11.2.0","fastify-plugin":"^5.1.0","@fastify/helmet":"^13.0.2","@fastify/static":"^9.0.0","fastify-metrics":"^12.1.0","@fastify/swagger":"^9.7.0","@fastify/autoload":"^6.3.1","@fastify/sensible":"^6.0.4","@fastify/swagger-ui":"^5.2.5"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.20.0","umzug":"^3.8.2","eslint":"^9.39.4","vitest":"^4.1.0","ioredis":"^5.10.0","mariadb":"^3.5.2","@open-xchange/lint":"^0.2.1","@vitest/coverage-v8":"^4.1.0"},"peerDependencies":{"pg":"^8.16.0","umzug":"^3.8.2","ioredis":"^5.9.0","mariadb":"^3.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"umzug":{"optional":true},"ioredis":{"optional":true},"mariadb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fastify-sdk_0.5.0_1773503605577_0.5009465366142256","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@open-xchange/fastify-sdk","version":"0.5.1","author":{"name":"Open-Xchange"},"license":"AGPL-3.0-or-later","_id":"@open-xchange/fastify-sdk@0.5.1","maintainers":[{"name":"moritz.bach","email":"moritz.bach@open-xchange.com"},{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"anne.matthes","email":"anne.matthes@open-xchange.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"tran-dong.tran","email":"tran-dong.tran@open-xchange.com"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"ox-kaci","email":"kawa.acikgoez@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"dist":{"shasum":"2b850c593be55a5ac52e4efc50264cc9459ecdea","tarball":"https://registry.npmjs.org/@open-xchange/fastify-sdk/-/fastify-sdk-0.5.1.tgz","fileCount":25,"integrity":"sha512-NfebI3Qjgkbp0zfz539o/d5Q6cBWmSvdYWkVCi/gITliEEujwZ7ULHKlOuSRFBtOYkhnGctG+FBJ9bO2BBX12A==","signatures":[{"sig":"MEQCID4bK6pSTPB18eUviWKNOrTSBosnMtLhqVGwQ5kZgU6JAiBCe5jqBONwr5IyxgJkA23T04sav0695nEvURfoDcadJA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118904},"type":"module","_from":"file:open-xchange-fastify-sdk-0.5.1.tgz","exports":{".":"./lib/index.js","./redis":"./lib/redis/index.js","./config":"./lib/config/index.js","./mariadb":"./lib/database/mariadb.js","./testing":"./lib/testing/index.js","./postgres":"./lib/database/postgres.js","./migrations":"./lib/database/migrations.js"},"private":false,"scripts":{"lint":"eslint . --cache --fix","test":"vitest run --coverage"},"_npmUser":{"name":"davidbauer","email":"david.bauer@open-xchange.com"},"_resolved":"/tmp/fb8c84bddb5066072043f58416f64c33/open-xchange-fastify-sdk-0.5.1.tgz","_integrity":"sha512-NfebI3Qjgkbp0zfz539o/d5Q6cBWmSvdYWkVCi/gITliEEujwZ7ULHKlOuSRFBtOYkhnGctG+FBJ9bO2BBX12A==","_npmVersion":"11.11.1","description":"Shared foundation package for OX App Suite Node.js services","directories":{},"_nodeVersion":"25.8.1","dependencies":{"joi":"^18.0.2","jose":"^6.2.1","pino":"^10.3.1","fastify":"^5.8.2","js-yaml":"^4.1.1","chokidar":"^5.0.0","ajv-errors":"^3.0.0","http-errors":"^2.0.1","pino-pretty":"^13.1.3","prom-client":"^15.1.3","@fastify/jwt":"^10.0.0","@fastify/cors":"^11.2.0","fastify-plugin":"^5.1.0","@fastify/helmet":"^13.0.2","@fastify/static":"^9.0.0","fastify-metrics":"^12.1.0","@fastify/swagger":"^9.7.0","@fastify/autoload":"^6.3.1","@fastify/sensible":"^6.0.4","@fastify/swagger-ui":"^5.2.5"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.20.0","umzug":"^3.8.2","eslint":"^9.39.4","vitest":"^4.1.0","ioredis":"^5.10.0","mariadb":"^3.5.2","@open-xchange/lint":"^0.2.1","@vitest/coverage-v8":"^4.1.0"},"peerDependencies":{"pg":"^8.16.0","umzug":"^3.8.2","ioredis":"^5.9.0","mariadb":"^3.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"umzug":{"optional":true},"ioredis":{"optional":true},"mariadb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fastify-sdk_0.5.1_1773848094925_0.005415612378620649","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@open-xchange/fastify-sdk","version":"0.5.2","author":{"name":"Open-Xchange"},"license":"AGPL-3.0-or-later","_id":"@open-xchange/fastify-sdk@0.5.2","maintainers":[{"name":"moritz.bach","email":"moritz.bach@open-xchange.com"},{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"anne.matthes","email":"anne.matthes@open-xchange.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"tran-dong.tran","email":"tran-dong.tran@open-xchange.com"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"ox-kaci","email":"kawa.acikgoez@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"dist":{"shasum":"0a1f9df01e08311939268d9c918eb7285d77d45a","tarball":"https://registry.npmjs.org/@open-xchange/fastify-sdk/-/fastify-sdk-0.5.2.tgz","fileCount":25,"integrity":"sha512-oYWyBQVIJh4b4H67XRA23BMT3oK+dGaKYFME9WvNmDXbeRNSJ0tEUnpy0u18Sc6HtF9kD4K4CTmPm4GY7NfhgA==","signatures":[{"sig":"MEYCIQCos63oeBxI2dKOrUc4u/ydcUFyDBxn9TZjjPFraIiEVAIhAMQNs6FkKpe6CjnW2hHmRfLMjjGg/fJ4FxTROSEtsraO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":119241},"type":"module","_from":"file:open-xchange-fastify-sdk-0.5.2.tgz","exports":{".":"./lib/index.js","./redis":"./lib/redis/index.js","./config":"./lib/config/index.js","./mariadb":"./lib/database/mariadb.js","./testing":"./lib/testing/index.js","./postgres":"./lib/database/postgres.js","./migrations":"./lib/database/migrations.js"},"private":false,"scripts":{"lint":"eslint . --cache --fix","test":"vitest run --coverage"},"_npmUser":{"name":"johnyb","email":"julian@svg4all.de"},"_resolved":"/private/var/folders/h8/fn3y1zd91w1748yymxkzt8g80000gn/T/8b333eb49d00a351aa09e0a558ada9ef/open-xchange-fastify-sdk-0.5.2.tgz","_integrity":"sha512-oYWyBQVIJh4b4H67XRA23BMT3oK+dGaKYFME9WvNmDXbeRNSJ0tEUnpy0u18Sc6HtF9kD4K4CTmPm4GY7NfhgA==","_npmVersion":"11.11.0","description":"Shared foundation package for OX App Suite Node.js services","directories":{},"_nodeVersion":"25.8.1","dependencies":{"joi":"^18.0.2","jose":"^6.2.1","pino":"^10.3.1","fastify":"^5.8.2","js-yaml":"^4.1.1","chokidar":"^5.0.0","ajv-errors":"^3.0.0","http-errors":"^2.0.1","pino-pretty":"^13.1.3","prom-client":"^15.1.3","@fastify/jwt":"^10.0.0","@fastify/cors":"^11.2.0","fastify-plugin":"^5.1.0","@fastify/helmet":"^13.0.2","@fastify/static":"^9.0.0","fastify-metrics":"^12.1.0","@fastify/swagger":"^9.7.0","@fastify/autoload":"^6.3.1","@fastify/sensible":"^6.0.4","@fastify/swagger-ui":"^5.2.5"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.20.0","umzug":"^3.8.2","eslint":"^9.39.4","vitest":"^4.1.0","ioredis":"^5.10.0","mariadb":"^3.5.2","@open-xchange/lint":"^0.2.1","@vitest/coverage-v8":"^4.1.0"},"peerDependencies":{"pg":"^8.16.0","umzug":"^3.8.2","ioredis":"^5.9.0","mariadb":"^3.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"umzug":{"optional":true},"ioredis":{"optional":true},"mariadb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fastify-sdk_0.5.2_1774485635638_0.448110324878884","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@open-xchange/fastify-sdk","version":"0.6.0","author":{"name":"Open-Xchange"},"license":"AGPL-3.0-or-later","_id":"@open-xchange/fastify-sdk@0.6.0","maintainers":[{"name":"moritz.bach","email":"moritz.bach@open-xchange.com"},{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"anne.matthes","email":"anne.matthes@open-xchange.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"tran-dong.tran","email":"tran-dong.tran@open-xchange.com"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"ox-kaci","email":"kawa.acikgoez@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"dist":{"shasum":"3999a9e03a95451f7faf8172bdfdefa2b790c689","tarball":"https://registry.npmjs.org/@open-xchange/fastify-sdk/-/fastify-sdk-0.6.0.tgz","fileCount":25,"integrity":"sha512-ReugFldEY1gtjnH996qF6zbDlY7QOyi1TR0Jn/1P/M2F62mku4QlUD9ZjJU7CsAtD4CuEBpxa80jE5fZFi2lwg==","signatures":[{"sig":"MEUCIQC/Y7IPsPApmIgNUxLYTLSKwWPhGZ5ZSGTACvKm/javlwIgZwqKDeW8ZpudQS6c19AjDkhcrFbckG53leIvCN1zCf0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120378},"type":"module","_from":"file:open-xchange-fastify-sdk-0.6.0.tgz","exports":{".":"./lib/index.js","./redis":"./lib/redis/index.js","./config":"./lib/config/index.js","./mariadb":"./lib/database/mariadb.js","./testing":"./lib/testing/index.js","./postgres":"./lib/database/postgres.js","./migrations":"./lib/database/migrations.js"},"private":false,"scripts":{"lint":"eslint . --cache --fix","test":"vitest run --coverage"},"_npmUser":{"name":"davidbauer","email":"david.bauer@open-xchange.com"},"_resolved":"/private/var/folders/91/q5wlr9_d00g4hhv00qz6qssh0000gn/T/f37ba558370511b1edd79814f7c82f0b/open-xchange-fastify-sdk-0.6.0.tgz","_integrity":"sha512-ReugFldEY1gtjnH996qF6zbDlY7QOyi1TR0Jn/1P/M2F62mku4QlUD9ZjJU7CsAtD4CuEBpxa80jE5fZFi2lwg==","_npmVersion":"11.11.1","description":"Shared foundation package for OX App Suite Node.js services","directories":{},"_nodeVersion":"25.8.2","dependencies":{"joi":"^18.1.2","jose":"^6.2.2","pino":"^10.3.1","fastify":"^5.8.4","js-yaml":"^4.1.1","chokidar":"^5.0.0","ajv-errors":"^3.0.0","http-errors":"^2.0.1","pino-pretty":"^13.1.3","prom-client":"^15.1.3","@fastify/cors":"^11.2.0","fastify-plugin":"^5.1.0","@fastify/helmet":"^13.0.2","@fastify/static":"^9.1.0","fastify-metrics":"^13.2.0","@fastify/swagger":"^9.7.0","@fastify/autoload":"^6.3.1","@fastify/sensible":"^6.0.4","@fastify/swagger-ui":"^5.2.5"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.20.0","umzug":"^3.8.2","eslint":"^9.39.4","vitest":"^4.1.3","ioredis":"^5.10.1","mariadb":"^3.5.2","@open-xchange/lint":"^0.3.0","@vitest/coverage-v8":"^4.1.3"},"peerDependencies":{"pg":"^8.16.0","umzug":"^3.8.2","ioredis":"^5.9.0","mariadb":"^3.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"umzug":{"optional":true},"ioredis":{"optional":true},"mariadb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fastify-sdk_0.6.0_1775562680307_0.5968435514372445","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@open-xchange/fastify-sdk","version":"0.6.1","author":{"name":"Open-Xchange"},"license":"AGPL-3.0-or-later","_id":"@open-xchange/fastify-sdk@0.6.1","maintainers":[{"name":"moritz.bach","email":"moritz.bach@open-xchange.com"},{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"anne.matthes","email":"anne.matthes@open-xchange.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"tran-dong.tran","email":"tran-dong.tran@open-xchange.com"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"ox-kaci","email":"kawa.acikgoez@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"dist":{"shasum":"684b0315838de49f41489e961f3c9e61bfbbe09a","tarball":"https://registry.npmjs.org/@open-xchange/fastify-sdk/-/fastify-sdk-0.6.1.tgz","fileCount":25,"integrity":"sha512-C7nJMbeKfBhhAxqa7zJmw0RSSU4WCxXJ2rqVrz555RlSHeh1NU0rL/BzQO497XmDuYN8Md0+A7mFDN0CjMwu9w==","signatures":[{"sig":"MEYCIQDT1Mwl5AHeGLJxgLxuoqi5nx/YMdl1kiltMiAXoaLhFgIhAPzX3hQV78XBh2OKT5HWm3uk5jFlbvsLLaUKypn88l5B","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120379},"type":"module","_from":"file:open-xchange-fastify-sdk-0.6.1.tgz","exports":{".":"./lib/index.js","./redis":"./lib/redis/index.js","./config":"./lib/config/index.js","./mariadb":"./lib/database/mariadb.js","./testing":"./lib/testing/index.js","./postgres":"./lib/database/postgres.js","./migrations":"./lib/database/migrations.js"},"private":false,"scripts":{"lint":"eslint . --cache --fix","test":"vitest run --coverage"},"_npmUser":{"name":"davidbauer","email":"david.bauer@open-xchange.com"},"_resolved":"/private/var/folders/91/q5wlr9_d00g4hhv00qz6qssh0000gn/T/09f91e1811056987daf82d38d91b76f6/open-xchange-fastify-sdk-0.6.1.tgz","_integrity":"sha512-C7nJMbeKfBhhAxqa7zJmw0RSSU4WCxXJ2rqVrz555RlSHeh1NU0rL/BzQO497XmDuYN8Md0+A7mFDN0CjMwu9w==","_npmVersion":"11.12.1","description":"Shared foundation package for OX App Suite Node.js services","directories":{},"_nodeVersion":"25.9.0","dependencies":{"joi":"^18.1.2","jose":"^6.2.2","pino":"^10.3.1","fastify":"^5.8.4","js-yaml":"^4.1.1","chokidar":"^5.0.0","ajv-errors":"^3.0.0","http-errors":"^2.0.1","pino-pretty":"^13.1.3","prom-client":"^15.1.3","@fastify/cors":"^11.2.0","fastify-plugin":"^5.1.0","@fastify/helmet":"^13.0.2","@fastify/static":"^9.1.0","fastify-metrics":"^13.2.0","@fastify/swagger":"^9.7.0","@fastify/autoload":"^6.3.1","@fastify/sensible":"^6.0.4","@fastify/swagger-ui":"^5.2.5"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.20.0","umzug":"^3.8.2","eslint":"^9.39.4","vitest":"^4.1.4","ioredis":"^5.10.1","mariadb":"^3.5.2","@open-xchange/lint":"^0.3.0","@vitest/coverage-v8":"^4.1.4"},"peerDependencies":{"pg":"^8.16.0","umzug":"^3.8.2","ioredis":"^5.9.0","mariadb":"^3.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"umzug":{"optional":true},"ioredis":{"optional":true},"mariadb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fastify-sdk_0.6.1_1775828095303_0.06578254832073949","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@open-xchange/fastify-sdk","version":"0.6.2","author":{"name":"Open-Xchange"},"license":"AGPL-3.0-or-later","_id":"@open-xchange/fastify-sdk@0.6.2","maintainers":[{"name":"moritz.bach","email":"moritz.bach@open-xchange.com"},{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"anne.matthes","email":"anne.matthes@open-xchange.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"tran-dong.tran","email":"tran-dong.tran@open-xchange.com"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"ox-kaci","email":"kawa.acikgoez@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"dist":{"shasum":"46f8556339afc30c19e8435b73c7805c9be9308d","tarball":"https://registry.npmjs.org/@open-xchange/fastify-sdk/-/fastify-sdk-0.6.2.tgz","fileCount":25,"integrity":"sha512-iEdvw1XObFl6cKBBX5eZuHMiE56YcFzH+xIBckgAX6vpu/vcBRF9r5jOearEvVe+xMFAkoLBHreQMNmPRYgRDA==","signatures":[{"sig":"MEUCIQDLmNMMJAl3di1gPKoPy2qloHCn4qY1wPzCeae1WjKtzgIgBWNPzMJ/TbRbTRTuCnhlXUWCXiGy20pNtGdmaNXrPks=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120661},"type":"module","_from":"file:open-xchange-fastify-sdk-0.6.2.tgz","exports":{".":"./lib/index.js","./redis":"./lib/redis/index.js","./config":"./lib/config/index.js","./mariadb":"./lib/database/mariadb.js","./testing":"./lib/testing/index.js","./postgres":"./lib/database/postgres.js","./migrations":"./lib/database/migrations.js"},"private":false,"scripts":{"lint":"eslint . --cache --fix","test":"vitest run --coverage"},"_npmUser":{"name":"davidbauer","email":"david.bauer@open-xchange.com"},"_resolved":"/private/var/folders/91/q5wlr9_d00g4hhv00qz6qssh0000gn/T/b87c6494221255c43ba715b015e29a87/open-xchange-fastify-sdk-0.6.2.tgz","_integrity":"sha512-iEdvw1XObFl6cKBBX5eZuHMiE56YcFzH+xIBckgAX6vpu/vcBRF9r5jOearEvVe+xMFAkoLBHreQMNmPRYgRDA==","_npmVersion":"11.12.1","description":"Shared foundation package for OX App Suite Node.js services","directories":{},"_nodeVersion":"25.9.0","dependencies":{"joi":"^18.1.2","jose":"^6.2.2","pino":"^10.3.1","fastify":"^5.8.4","js-yaml":"^4.1.1","chokidar":"^5.0.0","ajv-errors":"^3.0.0","http-errors":"^2.0.1","pino-pretty":"^13.1.3","prom-client":"^15.1.3","@fastify/cors":"^11.2.0","fastify-plugin":"^5.1.0","@fastify/helmet":"^13.0.2","@fastify/static":"^9.1.0","fastify-metrics":"^13.2.0","@fastify/swagger":"^9.7.0","@fastify/autoload":"^6.3.1","@fastify/sensible":"^6.0.4","@fastify/swagger-ui":"^5.2.5"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.20.0","umzug":"^3.8.2","eslint":"^9.39.4","vitest":"^4.1.4","ioredis":"^5.10.1","mariadb":"^3.5.2","@open-xchange/lint":"^0.3.0","@vitest/coverage-v8":"^4.1.4"},"peerDependencies":{"pg":"^8.16.0","umzug":"^3.8.2","ioredis":"^5.9.0","mariadb":"^3.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"umzug":{"optional":true},"ioredis":{"optional":true},"mariadb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fastify-sdk_0.6.2_1775837399966_0.8005213591354099","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@open-xchange/fastify-sdk","version":"0.7.0","author":{"name":"Open-Xchange"},"license":"AGPL-3.0-or-later","_id":"@open-xchange/fastify-sdk@0.7.0","maintainers":[{"name":"moritz.bach","email":"moritz.bach@open-xchange.com"},{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"anne.matthes","email":"anne.matthes@open-xchange.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"tran-dong.tran","email":"tran-dong.tran@open-xchange.com"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"ox-kaci","email":"kawa.acikgoez@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"dist":{"shasum":"5a7996ff30be2ef5ae498752c5040fee2f3d68af","tarball":"https://registry.npmjs.org/@open-xchange/fastify-sdk/-/fastify-sdk-0.7.0.tgz","fileCount":26,"integrity":"sha512-EDicOWPUDW0Qy+qRIuOW9gz/eTMn2h48X0AwXpn9mTywxEGajTV77ukghO+0y/ydkkJ+G3w1WPmF4nisRq2xFg==","signatures":[{"sig":"MEUCIGTLbMe10wevX7YbyGClZsFluG+YWB4cLajF/ZromGkmAiEA35GcWVp8/w6JDAwbmtuO1XX7BCAHteYDwkX4FbA7WAY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":124996},"type":"module","_from":"file:open-xchange-fastify-sdk-0.7.0.tgz","exports":{".":"./lib/index.js","./redis":"./lib/redis/index.js","./config":"./lib/config/index.js","./mariadb":"./lib/database/mariadb.js","./testing":"./lib/testing/index.js","./postgres":"./lib/database/postgres.js","./migrations":"./lib/database/migrations.js"},"private":false,"scripts":{"lint":"eslint . --cache --fix","test":"vitest run --coverage"},"_npmUser":{"name":"davidbauer","email":"david.bauer@open-xchange.com"},"_resolved":"/private/var/folders/1k/8xzjkpsd55d6mhd412mzjvzm0000gp/T/d86f0b668f882146511b1db894678680/open-xchange-fastify-sdk-0.7.0.tgz","_integrity":"sha512-EDicOWPUDW0Qy+qRIuOW9gz/eTMn2h48X0AwXpn9mTywxEGajTV77ukghO+0y/ydkkJ+G3w1WPmF4nisRq2xFg==","_npmVersion":"11.11.0","description":"Shared foundation package for OX App Suite Node.js services","directories":{},"_nodeVersion":"25.8.1","dependencies":{"joi":"^18.1.2","jose":"^6.2.2","pino":"^10.3.1","fastify":"^5.8.4","js-yaml":"^4.1.1","chokidar":"^5.0.0","ajv-errors":"^3.0.0","http-errors":"^2.0.1","pino-pretty":"^13.1.3","prom-client":"^15.1.3","@fastify/cors":"^11.2.0","fastify-plugin":"^5.1.0","@fastify/helmet":"^13.0.2","@fastify/static":"^9.1.0","fastify-metrics":"^13.2.0","@fastify/swagger":"^9.7.0","close-with-grace":"^2.5.0","@fastify/autoload":"^6.3.1","@fastify/sensible":"^6.0.4","@fastify/swagger-ui":"^5.2.5"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.20.0","umzug":"^3.8.2","eslint":"^9.39.4","vitest":"^4.1.4","ioredis":"^5.10.1","mariadb":"^3.5.2","@open-xchange/lint":"^0.3.0","@vitest/coverage-v8":"^4.1.4"},"peerDependencies":{"pg":"^8.16.0","umzug":"^3.8.2","ioredis":"^5.9.0","mariadb":"^3.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"umzug":{"optional":true},"ioredis":{"optional":true},"mariadb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fastify-sdk_0.7.0_1776092098964_0.5382893252153587","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@open-xchange/fastify-sdk","version":"0.8.0","author":{"name":"Open-Xchange"},"license":"AGPL-3.0-or-later","_id":"@open-xchange/fastify-sdk@0.8.0","maintainers":[{"name":"moritz.bach","email":"moritz.bach@open-xchange.com"},{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"anne.matthes","email":"anne.matthes@open-xchange.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"tran-dong.tran","email":"tran-dong.tran@open-xchange.com"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"ox-kaci","email":"kawa.acikgoez@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"dist":{"shasum":"81109e84e19c35ebf8fc4394bb6722ded6374604","tarball":"https://registry.npmjs.org/@open-xchange/fastify-sdk/-/fastify-sdk-0.8.0.tgz","fileCount":48,"integrity":"sha512-gccVhuq23ASh/vLAPB0UC0IlOlMtcCl44ooD8+e79GSWWiOMNBd+fU7ab9/rlVO8dqAAmHHt+ZWt1bmHucgcXg==","signatures":[{"sig":"MEQCIHvIgpmOFKg/4QSgwY/E8gfsr1TKe+ACB/Lk/kAJiUyyAiAx8xzKuZX4445YFPmyVoP0JkG51kU49vj15lQxk4DUgQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":148946},"type":"module","_from":"file:open-xchange-fastify-sdk-0.8.0.tgz","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","default":"./lib/index.js"},"./redis":{"types":"./types/redis/index.d.ts","default":"./lib/redis/index.js"},"./config":{"types":"./types/config/index.d.ts","default":"./lib/config/index.js"},"./mariadb":{"types":"./types/database/mariadb.d.ts","default":"./lib/database/mariadb.js"},"./testing":{"types":"./types/testing/index.d.ts","default":"./lib/testing/index.js"},"./postgres":{"types":"./types/database/postgres.d.ts","default":"./lib/database/postgres.js"},"./migrations":{"types":"./types/database/migrations.d.ts","default":"./lib/database/migrations.js"}},"private":false,"scripts":{"lint":"eslint . --cache --fix","test":"vitest run --coverage","build:types":"tsc -p tsconfig.build.json"},"_npmUser":{"name":"davidbauer","email":"david.bauer@open-xchange.com"},"_resolved":"/private/var/folders/91/q5wlr9_d00g4hhv00qz6qssh0000gn/T/17ec02d2c1a57f4e7de53802f66e2cb0/open-xchange-fastify-sdk-0.8.0.tgz","_integrity":"sha512-gccVhuq23ASh/vLAPB0UC0IlOlMtcCl44ooD8+e79GSWWiOMNBd+fU7ab9/rlVO8dqAAmHHt+ZWt1bmHucgcXg==","_npmVersion":"11.12.1","description":"Shared foundation package for OX App Suite Node.js services","directories":{},"_nodeVersion":"25.9.0","dependencies":{"joi":"^18.1.2","jose":"^6.2.2","pino":"^10.3.1","fastify":"^5.8.5","js-yaml":"^4.1.1","chokidar":"^5.0.0","ajv-errors":"^3.0.0","http-errors":"^2.0.1","pino-pretty":"^13.1.3","prom-client":"^15.1.3","@fastify/cors":"^11.2.0","fastify-plugin":"^5.1.0","@fastify/helmet":"^13.0.2","@fastify/static":"^9.1.3","fastify-metrics":"^13.2.0","@fastify/swagger":"^9.7.0","close-with-grace":"^2.5.0","@fastify/autoload":"^6.3.1","@fastify/sensible":"^6.0.4","@fastify/swagger-ui":"^5.2.6"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.20.0","umzug":"^3.8.2","eslint":"^9.39.4","vitest":"^4.1.5","ioredis":"^5.10.1","mariadb":"^3.5.2","typescript":"^6.0.3","@open-xchange/lint":"^0.3.0","@vitest/coverage-v8":"^4.1.5"},"peerDependencies":{"pg":"^8.16.0","umzug":"^3.8.2","ioredis":"^5.9.0","mariadb":"^3.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"umzug":{"optional":true},"ioredis":{"optional":true},"mariadb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fastify-sdk_0.8.0_1776935922224_0.25335807025762325","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@open-xchange/fastify-sdk","version":"0.8.1","author":{"name":"Open-Xchange"},"license":"AGPL-3.0-or-later","_id":"@open-xchange/fastify-sdk@0.8.1","maintainers":[{"name":"moritz.bach","email":"moritz.bach@open-xchange.com"},{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"anne.matthes","email":"anne.matthes@open-xchange.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"tran-dong.tran","email":"tran-dong.tran@open-xchange.com"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"ox-kaci","email":"kawa.acikgoez@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"dist":{"shasum":"8a31b0a6787d88685459687f4707668b6d4f222e","tarball":"https://registry.npmjs.org/@open-xchange/fastify-sdk/-/fastify-sdk-0.8.1.tgz","fileCount":48,"integrity":"sha512-olPoLGaIzZ4iiZ6YoHjqzPtmK1bx6TDUGADtPIDLAvgQBqYGXVvodMovKCPBlqlZbUevYL7+2d9YtXOZiXPcqw==","signatures":[{"sig":"MEUCIERKKJN9BoqCjzWBmuLgmmM9UC3RFqcF96f6Oy1b/J08AiEAwd2sGiHSVJwtv8V+pgBl+unnx+UjrVtm7IlY18MnN+s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":150942},"type":"module","_from":"file:open-xchange-fastify-sdk-0.8.1.tgz","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","default":"./lib/index.js"},"./redis":{"types":"./types/redis/index.d.ts","default":"./lib/redis/index.js"},"./config":{"types":"./types/config/index.d.ts","default":"./lib/config/index.js"},"./mariadb":{"types":"./types/database/mariadb.d.ts","default":"./lib/database/mariadb.js"},"./testing":{"types":"./types/testing/index.d.ts","default":"./lib/testing/index.js"},"./postgres":{"types":"./types/database/postgres.d.ts","default":"./lib/database/postgres.js"},"./migrations":{"types":"./types/database/migrations.d.ts","default":"./lib/database/migrations.js"}},"private":false,"scripts":{"lint":"eslint . --cache --fix","test":"vitest run --coverage","build:types":"tsc -p tsconfig.build.json"},"_npmUser":{"name":"davidbauer","email":"david.bauer@open-xchange.com"},"_resolved":"/private/var/folders/91/q5wlr9_d00g4hhv00qz6qssh0000gn/T/25706bd26e7a28449eaf9d554bd97f5d/open-xchange-fastify-sdk-0.8.1.tgz","_integrity":"sha512-olPoLGaIzZ4iiZ6YoHjqzPtmK1bx6TDUGADtPIDLAvgQBqYGXVvodMovKCPBlqlZbUevYL7+2d9YtXOZiXPcqw==","_npmVersion":"11.12.1","description":"Shared foundation package for OX App Suite Node.js services","directories":{},"_nodeVersion":"25.9.0","dependencies":{"joi":"^18.1.2","jose":"^6.2.2","pino":"^10.3.1","fastify":"^5.8.5","js-yaml":"^4.1.1","chokidar":"^5.0.0","ajv-errors":"^3.0.0","http-errors":"^2.0.1","pino-pretty":"^13.1.3","prom-client":"^15.1.3","@fastify/cors":"^11.2.0","fastify-plugin":"^5.1.0","@fastify/helmet":"^13.0.2","@fastify/static":"^9.1.3","fastify-metrics":"^13.2.0","@fastify/swagger":"^9.7.0","close-with-grace":"^2.5.0","@fastify/autoload":"^6.3.1","@fastify/sensible":"^6.0.4","@fastify/swagger-ui":"^5.2.6"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.20.0","umzug":"^3.8.2","eslint":"^9.39.4","vitest":"^4.1.5","ioredis":"^5.10.1","mariadb":"^3.5.2","typescript":"^6.0.3","@open-xchange/lint":"^0.3.0","@vitest/coverage-v8":"^4.1.5"},"peerDependencies":{"pg":"^8.16.0","umzug":"^3.8.2","ioredis":"^5.9.0","mariadb":"^3.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"umzug":{"optional":true},"ioredis":{"optional":true},"mariadb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fastify-sdk_0.8.1_1776936693599_0.12631721759526515","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@open-xchange/fastify-sdk","version":"0.8.2","author":{"name":"Open-Xchange"},"license":"AGPL-3.0-or-later","_id":"@open-xchange/fastify-sdk@0.8.2","maintainers":[{"name":"moritz.bach","email":"moritz.bach@open-xchange.com"},{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"anne.matthes","email":"anne.matthes@open-xchange.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"tran-dong.tran","email":"tran-dong.tran@open-xchange.com"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"ox-kaci","email":"kawa.acikgoez@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"dist":{"shasum":"ebb512ff7d6d893445fdee5144135d760039c284","tarball":"https://registry.npmjs.org/@open-xchange/fastify-sdk/-/fastify-sdk-0.8.2.tgz","fileCount":48,"integrity":"sha512-rEr+E2XoWS30VwZeFZTw/pyeqWS+CPaYmOtZpm0PgOZJpoONnCecLeH1SQp4hl6ugMxphEr9y9tDxK3oP9dWTg==","signatures":[{"sig":"MEUCIFbAvcG7Ogc2UogeN5pBz2VRFOFQ7ZEJvrSm/6VLgAI2AiEA5+/TV1JV0LF0Ry3eMIrO0R7SazOqvi0maL6q8/dyqNo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":153217},"type":"module","_from":"file:open-xchange-fastify-sdk-0.8.2.tgz","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","default":"./lib/index.js"},"./redis":{"types":"./types/redis/index.d.ts","default":"./lib/redis/index.js"},"./config":{"types":"./types/config/index.d.ts","default":"./lib/config/index.js"},"./mariadb":{"types":"./types/database/mariadb.d.ts","default":"./lib/database/mariadb.js"},"./testing":{"types":"./types/testing/index.d.ts","default":"./lib/testing/index.js"},"./postgres":{"types":"./types/database/postgres.d.ts","default":"./lib/database/postgres.js"},"./migrations":{"types":"./types/database/migrations.d.ts","default":"./lib/database/migrations.js"}},"private":false,"scripts":{"lint":"eslint . --cache --fix","test":"vitest run --coverage","build:types":"tsc -p tsconfig.build.json"},"_npmUser":{"name":"davidbauer","email":"david.bauer@open-xchange.com"},"_resolved":"/private/var/folders/91/q5wlr9_d00g4hhv00qz6qssh0000gn/T/6cf62f0f0c3602e5742f0ae09d113ac0/open-xchange-fastify-sdk-0.8.2.tgz","_integrity":"sha512-rEr+E2XoWS30VwZeFZTw/pyeqWS+CPaYmOtZpm0PgOZJpoONnCecLeH1SQp4hl6ugMxphEr9y9tDxK3oP9dWTg==","_npmVersion":"11.12.1","description":"Shared foundation package for OX App Suite Node.js services","directories":{},"_nodeVersion":"25.9.0","dependencies":{"joi":"^18.1.2","jose":"^6.2.2","pino":"^10.3.1","fastify":"^5.8.5","js-yaml":"^4.1.1","chokidar":"^5.0.0","ajv-errors":"^3.0.0","http-errors":"^2.0.1","pino-pretty":"^13.1.3","prom-client":"^15.1.3","@fastify/cors":"^11.2.0","fastify-plugin":"^5.1.0","@fastify/cookie":"^11.0.2","@fastify/helmet":"^13.0.2","@fastify/static":"^9.1.3","fastify-metrics":"^13.2.0","@fastify/swagger":"^9.7.0","close-with-grace":"^2.5.0","@fastify/autoload":"^6.3.1","@fastify/formbody":"^8.0.2","@fastify/sensible":"^6.0.4","@fastify/swagger-ui":"^5.2.6"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.20.0","umzug":"^3.8.2","eslint":"^9.39.4","vitest":"^4.1.5","ioredis":"^5.10.1","mariadb":"^3.5.2","typescript":"^6.0.3","@open-xchange/lint":"^0.3.0","@vitest/coverage-v8":"^4.1.5"},"peerDependencies":{"pg":"^8.16.0","umzug":"^3.8.2","ioredis":"^5.9.0","mariadb":"^3.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"umzug":{"optional":true},"ioredis":{"optional":true},"mariadb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fastify-sdk_0.8.2_1776946753429_0.9399764070670076","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"@open-xchange/fastify-sdk","version":"0.8.3","author":{"name":"Open-Xchange"},"license":"AGPL-3.0-or-later","_id":"@open-xchange/fastify-sdk@0.8.3","maintainers":[{"name":"moritz.bach","email":"moritz.bach@open-xchange.com"},{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"anne.matthes","email":"anne.matthes@open-xchange.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"tran-dong.tran","email":"tran-dong.tran@open-xchange.com"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"ox-kaci","email":"kawa.acikgoez@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"dist":{"shasum":"9a10e046e3b8b5b330e03bc6e13f0cfa15f51a47","tarball":"https://registry.npmjs.org/@open-xchange/fastify-sdk/-/fastify-sdk-0.8.3.tgz","fileCount":48,"integrity":"sha512-aC6pETOvJEBM6HZCZB/+5QUCoazuDAHVHCOetOBtt9ZNRa75M2wUp0xZwttWwQc0r3bZnWHJtsrGgGYthtNP/g==","signatures":[{"sig":"MEYCIQDXL8mCH50yGZpvO2p0dSyKQ7aPR3c+MFzlw+uFa7EIoQIhAJnN3GJE9YpQv9Y9+GoZlPZcuYx+xb3GJRDHlc99Sayh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154307},"type":"module","_from":"file:open-xchange-fastify-sdk-0.8.3.tgz","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","default":"./lib/index.js"},"./redis":{"types":"./types/redis/index.d.ts","default":"./lib/redis/index.js"},"./config":{"types":"./types/config/index.d.ts","default":"./lib/config/index.js"},"./mariadb":{"types":"./types/database/mariadb.d.ts","default":"./lib/database/mariadb.js"},"./testing":{"types":"./types/testing/index.d.ts","default":"./lib/testing/index.js"},"./postgres":{"types":"./types/database/postgres.d.ts","default":"./lib/database/postgres.js"},"./migrations":{"types":"./types/database/migrations.d.ts","default":"./lib/database/migrations.js"}},"private":false,"scripts":{"lint":"eslint . --cache --fix","test":"vitest run --coverage","build:types":"tsc -p tsconfig.build.json"},"_npmUser":{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},"_resolved":"/private/var/folders/8r/nx58msgs59zfvh6h14lns8h40000gp/T/62016e229d400159a5c56f89af5aa697/open-xchange-fastify-sdk-0.8.3.tgz","_integrity":"sha512-aC6pETOvJEBM6HZCZB/+5QUCoazuDAHVHCOetOBtt9ZNRa75M2wUp0xZwttWwQc0r3bZnWHJtsrGgGYthtNP/g==","_npmVersion":"11.12.1","description":"Shared foundation package for OX App Suite Node.js services","directories":{},"_nodeVersion":"25.9.0","dependencies":{"joi":"^18.1.2","jose":"^6.2.2","pino":"^10.3.1","fastify":"^5.8.5","js-yaml":"^4.1.1","chokidar":"^5.0.0","ajv-errors":"^3.0.0","http-errors":"^2.0.1","pino-pretty":"^13.1.3","prom-client":"^15.1.3","@fastify/cors":"^11.2.0","fastify-plugin":"^5.1.0","@fastify/cookie":"^11.0.2","@fastify/helmet":"^13.0.2","@fastify/static":"^9.1.3","fastify-metrics":"^13.2.0","@fastify/swagger":"^9.7.0","close-with-grace":"^2.5.0","@fastify/autoload":"^6.3.1","@fastify/formbody":"^8.0.2","@fastify/sensible":"^6.0.4","@fastify/swagger-ui":"^5.2.6"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.20.0","umzug":"^3.8.2","eslint":"^9.39.4","vitest":"^4.1.5","ioredis":"^5.10.1","mariadb":"^3.5.2","typescript":"^6.0.3","@open-xchange/lint":"^0.3.0","@vitest/coverage-v8":"^4.1.5"},"peerDependencies":{"pg":"^8.16.0","umzug":"^3.8.2","ioredis":"^5.9.0","mariadb":"^3.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"umzug":{"optional":true},"ioredis":{"optional":true},"mariadb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fastify-sdk_0.8.3_1777467920398_0.7385140449726109","host":"s3://npm-registry-packages-npm-production"}},"0.8.4":{"name":"@open-xchange/fastify-sdk","version":"0.8.4","author":"Open-Xchange","license":"AGPL-3.0-or-later","_id":"@open-xchange/fastify-sdk@0.8.4","maintainers":[{"name":"moritz.bach","email":"moritz.bach@open-xchange.com"},{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"anne.matthes","email":"anne.matthes@open-xchange.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"tran-dong.tran","email":"tran-dong.tran@open-xchange.com"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"ox-kaci","email":"kawa.acikgoez@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"dist":{"shasum":"dac0c0df90f6d2a0e26b121a5067fe7d4cf3f030","tarball":"https://registry.npmjs.org/@open-xchange/fastify-sdk/-/fastify-sdk-0.8.4.tgz","fileCount":48,"integrity":"sha512-jmyxGLON1OHMG1DlSabOdWlp9Ik1cs4SfzKUMKWHu+txz+8s7FxVG7OcLBH23ZmSFmjvA6AB9MW5tGV0K8jsjQ==","signatures":[{"sig":"MEYCIQDJDJI+h7CIGfrtvOjARBFm+epmwnx2Qa+GyzRqFzE+rgIhAIcnEDuN15vvSXKGSxbeijmDmEnsJK4je5dqSmGrw6vn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154307},"type":"module","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","default":"./lib/index.js"},"./redis":{"types":"./types/redis/index.d.ts","default":"./lib/redis/index.js"},"./config":{"types":"./types/config/index.d.ts","default":"./lib/config/index.js"},"./mariadb":{"types":"./types/database/mariadb.d.ts","default":"./lib/database/mariadb.js"},"./testing":{"types":"./types/testing/index.d.ts","default":"./lib/testing/index.js"},"./postgres":{"types":"./types/database/postgres.d.ts","default":"./lib/database/postgres.js"},"./migrations":{"types":"./types/database/migrations.d.ts","default":"./lib/database/migrations.js"}},"private":false,"scripts":{"lint":"eslint . --cache --fix","test":"vitest run --coverage","build:types":"tsc -p tsconfig.build.json"},"_npmUser":{"name":"davidbauer","email":"david.bauer@open-xchange.com"},"description":"Shared foundation package for OX App Suite Node.js services","directories":{},"_nodeVersion":"26.0.0","dependencies":{"joi":"^18.2.1","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","js-yaml":"^4.1.1","chokidar":"^5.0.0","ajv-errors":"^3.0.0","http-errors":"^2.0.1","pino-pretty":"^13.1.3","prom-client":"^15.1.3","@fastify/cors":"^11.2.0","fastify-plugin":"^5.1.0","@fastify/cookie":"^11.0.2","@fastify/helmet":"^13.0.2","@fastify/static":"^9.1.3","fastify-metrics":"^13.2.0","@fastify/swagger":"^9.7.0","close-with-grace":"^2.5.0","@fastify/autoload":"^6.3.1","@fastify/formbody":"^8.0.2","@fastify/sensible":"^6.0.4","@fastify/swagger-ui":"^5.2.6"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.20.0","umzug":"^3.8.3","eslint":"^9.39.4","vitest":"^4.1.5","ioredis":"^5.10.1","mariadb":"^3.5.2","typescript":"^6.0.3","@open-xchange/lint":"^0.3.0","@vitest/coverage-v8":"^4.1.5"},"peerDependencies":{"pg":"^8.16.0","umzug":"^3.8.2","ioredis":"^5.9.0","mariadb":"^3.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"umzug":{"optional":true},"ioredis":{"optional":true},"mariadb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fastify-sdk_0.8.4_1778526424747_0.3067790856131316","host":"s3://npm-registry-packages-npm-production"}},"0.8.5":{"name":"@open-xchange/fastify-sdk","version":"0.8.5","author":"Open-Xchange","license":"AGPL-3.0-or-later","_id":"@open-xchange/fastify-sdk@0.8.5","maintainers":[{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"dist":{"shasum":"0438c4c4f13b48fbd7bc47aced8325b361a9f1e5","tarball":"https://registry.npmjs.org/@open-xchange/fastify-sdk/-/fastify-sdk-0.8.5.tgz","fileCount":48,"integrity":"sha512-ePvHJbReyS8DLCaLCSNaAnN3aIUMWDwptScduDx3jvao1ALjYRNV5H6ElEvgGKyFD52UF07XJxi+TKJk5wBsJA==","signatures":[{"sig":"MEYCIQDXlluZfpdGrWC/mqts7GgG3xZOJrQTFWCnGc9/X2UaEAIhANQMsKkhE7L2vT8INbCwQVhumFBwXLYn8xDb3iveMfrw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154307},"type":"module","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","default":"./lib/index.js"},"./redis":{"types":"./types/redis/index.d.ts","default":"./lib/redis/index.js"},"./config":{"types":"./types/config/index.d.ts","default":"./lib/config/index.js"},"./mariadb":{"types":"./types/database/mariadb.d.ts","default":"./lib/database/mariadb.js"},"./testing":{"types":"./types/testing/index.d.ts","default":"./lib/testing/index.js"},"./postgres":{"types":"./types/database/postgres.d.ts","default":"./lib/database/postgres.js"},"./migrations":{"types":"./types/database/migrations.d.ts","default":"./lib/database/migrations.js"}},"private":false,"scripts":{"lint":"eslint . --cache --fix","test":"vitest run --coverage","build:types":"tsc -p tsconfig.build.json"},"_npmUser":{"name":"davidbauer","email":"david.bauer@open-xchange.com"},"description":"Shared foundation package for OX App Suite Node.js services","directories":{},"_nodeVersion":"26.3.0","dependencies":{"joi":"^18.2.1","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","js-yaml":"^4.2.0","chokidar":"^5.0.0","ajv-errors":"^3.0.0","http-errors":"^2.0.1","pino-pretty":"^13.1.3","prom-client":"^15.1.3","@fastify/cors":"^11.2.0","fastify-plugin":"^6.0.0","@fastify/cookie":"^11.0.2","@fastify/helmet":"^13.0.2","@fastify/static":"^9.1.3","fastify-metrics":"^13.2.0","@fastify/swagger":"^9.7.0","close-with-grace":"^2.5.0","@fastify/autoload":"^6.3.1","@fastify/formbody":"^8.0.2","@fastify/sensible":"^6.0.4","@fastify/swagger-ui":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.21.0","umzug":"^3.8.3","eslint":"^9.39.4","vitest":"^4.1.8","ioredis":"^5.11.1","mariadb":"^3.5.3","typescript":"^6.0.3","@open-xchange/lint":"^0.3.0","@vitest/coverage-v8":"^4.1.8"},"peerDependencies":{"pg":"^8.16.0","umzug":"^3.8.2","ioredis":"^5.9.0","mariadb":"^3.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"umzug":{"optional":true},"ioredis":{"optional":true},"mariadb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fastify-sdk_0.8.5_1781255609969_0.5270602708463001","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@open-xchange/fastify-sdk","version":"0.9.0","author":"Open-Xchange","license":"AGPL-3.0-or-later","_id":"@open-xchange/fastify-sdk@0.9.0","maintainers":[{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"dist":{"shasum":"8bc7ee0f0726b88c70981da15408b0cd70227d83","tarball":"https://registry.npmjs.org/@open-xchange/fastify-sdk/-/fastify-sdk-0.9.0.tgz","fileCount":52,"integrity":"sha512-/7U1fSLv7FRQMZL2ZY/tR7K913isMQuRinxTNZchszyHqIHQZZeK4kfecXLKGoSi1FKihD4HSkPBOCqXdDEiWw==","signatures":[{"sig":"MEUCICRwpAgXHFNaVZs6v3o+Ct6HXiRE4/GGHi4NrnNrkwuFAiEA/20Z/FcTvF8L8nXwu30nrId9yecqNkrC/Iyg24h0tA4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":192557},"type":"module","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","default":"./lib/index.js"},"./redis":{"types":"./types/redis/index.d.ts","default":"./lib/redis/index.js"},"./config":{"types":"./types/config/index.d.ts","default":"./lib/config/index.js"},"./mariadb":{"types":"./types/database/mariadb.d.ts","default":"./lib/database/mariadb.js"},"./testing":{"types":"./types/testing/index.d.ts","default":"./lib/testing/index.js"},"./postgres":{"types":"./types/database/postgres.d.ts","default":"./lib/database/postgres.js"},"./migrations":{"types":"./types/database/migrations.d.ts","default":"./lib/database/migrations.js"}},"private":false,"scripts":{"lint":"eslint . --cache --fix","test":"vitest run --coverage","build:types":"tsc -p tsconfig.build.json"},"_npmUser":{"name":"davidbauer","email":"david.bauer@open-xchange.com"},"description":"Shared foundation package for OX App Suite Node.js services","directories":{},"_nodeVersion":"26.0.0","dependencies":{"joi":"^18.2.3","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","js-yaml":"^5.1.0","chokidar":"^5.0.0","ajv-errors":"^3.0.0","http-errors":"^2.0.1","pino-pretty":"^13.1.3","prom-client":"^15.1.3","@fastify/cors":"^11.2.0","fastify-plugin":"^6.0.0","@fastify/cookie":"^11.0.2","@fastify/helmet":"^13.0.2","@fastify/static":"^9.1.3","fastify-metrics":"^13.2.1","@fastify/swagger":"^9.7.0","close-with-grace":"^2.5.0","@fastify/autoload":"^6.3.1","@fastify/formbody":"^8.0.2","@fastify/sensible":"^6.0.4","@fastify/swagger-ui":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.22.0","umzug":"^3.8.3","eslint":"^9.39.4","vitest":"^4.1.9","ioredis":"^5.11.1","mariadb":"^3.5.3","typescript":"^6.0.3","@open-xchange/lint":"^0.3.0","@vitest/coverage-v8":"^4.1.9","@kubernetes/client-node":"^1.4.0"},"peerDependencies":{"pg":"^8.16.0","umzug":"^3.8.2","ioredis":"^5.9.0","mariadb":"^3.0.0","@kubernetes/client-node":"^1.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"umzug":{"optional":true},"ioredis":{"optional":true},"mariadb":{"optional":true},"@kubernetes/client-node":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fastify-sdk_0.9.0_1782388549955_0.5825327559667175","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@open-xchange/fastify-sdk","version":"0.10.0","author":"Open-Xchange","license":"AGPL-3.0-or-later","_id":"@open-xchange/fastify-sdk@0.10.0","maintainers":[{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"dist":{"shasum":"3efcd29832a8d9d708ab4e53dc07915b813ef689","tarball":"https://registry.npmjs.org/@open-xchange/fastify-sdk/-/fastify-sdk-0.10.0.tgz","fileCount":52,"integrity":"sha512-TDqgSbpCfE4tPJ3jM/1S7ORBGmuPoU9FxWsQB0p0Y0AYleod8ROrnX+Soy8C1+fhksv11dMrJv4rLEbRX/+GqQ==","signatures":[{"sig":"MEYCIQC7TGtsjSCRMT1nob4IijxI9hhVBAF/R5GQbFXkbaAnxQIhAOHHOSRzuqjeyhct7fMNce9/fRm6vB9oLXz+QIfgE/5g","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":214981},"type":"module","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","default":"./lib/index.js"},"./redis":{"types":"./types/redis/index.d.ts","default":"./lib/redis/index.js"},"./config":{"types":"./types/config/index.d.ts","default":"./lib/config/index.js"},"./mariadb":{"types":"./types/database/mariadb.d.ts","default":"./lib/database/mariadb.js"},"./testing":{"types":"./types/testing/index.d.ts","default":"./lib/testing/index.js"},"./postgres":{"types":"./types/database/postgres.d.ts","default":"./lib/database/postgres.js"},"./migrations":{"types":"./types/database/migrations.d.ts","default":"./lib/database/migrations.js"}},"private":false,"scripts":{"lint":"eslint . --cache --fix","test":"vitest run --coverage","build:types":"tsc -p tsconfig.build.json"},"_npmUser":{"name":"johnyb","email":"julian@svg4all.de"},"description":"Shared foundation package for OX App Suite Node.js services","directories":{},"_nodeVersion":"26.5.0","dependencies":{"joi":"^18.2.3","jose":"^6.2.3","pino":"^10.3.1","fastify":"^5.8.5","js-yaml":"^5.2.2","chokidar":"^5.0.0","ajv-errors":"^3.0.0","http-errors":"^2.0.1","pino-pretty":"^13.1.3","prom-client":"^15.1.3","@fastify/cors":"^11.2.0","fastify-plugin":"^6.0.0","@fastify/cookie":"^11.0.2","@fastify/helmet":"^13.0.2","@fastify/static":"^10.0.0","fastify-metrics":"^13.2.1","@fastify/swagger":"^9.7.0","close-with-grace":"^2.5.0","@fastify/autoload":"^6.3.1","@fastify/formbody":"^8.0.2","@fastify/sensible":"^6.0.4","@fastify/swagger-ui":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.22.0","umzug":"^3.8.3","eslint":"^9.39.4","vitest":"^4.1.10","ioredis":"^5.11.1","mariadb":"^3.5.3","typescript":"^7.0.0","@open-xchange/lint":"^0.3.0","@vitest/coverage-v8":"^4.1.10","@kubernetes/client-node":"^1.4.0"},"peerDependencies":{"pg":"^8.16.0","umzug":"^3.8.2","ioredis":"^5.9.0","mariadb":"^3.0.0","@kubernetes/client-node":"^1.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"umzug":{"optional":true},"ioredis":{"optional":true},"mariadb":{"optional":true},"@kubernetes/client-node":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fastify-sdk_0.10.0_1785153998944_0.3359566627958199","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@open-xchange/fastify-sdk","version":"0.11.0","author":"Open-Xchange","license":"AGPL-3.0-or-later","_id":"@open-xchange/fastify-sdk@0.11.0","maintainers":[{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"dist":{"shasum":"66f1581de31aad73291888811f69839c94613e8a","tarball":"https://registry.npmjs.org/@open-xchange/fastify-sdk/-/fastify-sdk-0.11.0.tgz","fileCount":4,"integrity":"sha512-jl61nUFR6eUXm7GeGkBbbT6M/HkUylfbsZ2M7zEaQdZYpYxip2uWM5dechp83Lsz75yNomjHMRhMxgA7+3YxXg==","signatures":[{"sig":"MEUCIQDtPdXCHgWv+1WXOsvtl2/ZXjVxtp5wxENjOTqA5VqXigIgQR8rOUNNPrwRdSdgJQjp+lahHrOF5taU2Ek0WxqCm1Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFNb0lllPIy/zlXoKoQkDpckmNxhDVqz2Sai79iPK+kLAiEA0PWXcyRJBTVlYd8jve+HkJuNqs/QyCK+esLyewGIjAk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32789},"type":"module","types":"./types/index.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./types/index.d.ts","default":"./lib/index.js"},"./redis":{"types":"./types/redis/index.d.ts","default":"./lib/redis/index.js"},"./config":{"types":"./types/config/index.d.ts","default":"./lib/config/index.js"},"./mariadb":{"types":"./types/database/mariadb.d.ts","default":"./lib/database/mariadb.js"},"./testing":{"types":"./types/testing/index.d.ts","default":"./lib/testing/index.js"},"./postgres":{"types":"./types/database/postgres.d.ts","default":"./lib/database/postgres.js"},"./migrations":{"types":"./types/database/migrations.d.ts","default":"./lib/database/migrations.js"}},"private":false,"scripts":{"lint":"eslint . --cache --fix","test":"vitest run --coverage","build:types":"tsc -p tsconfig.build.json"},"_npmUser":{"name":"GitLab CI/CD","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"gitlab","oidcConfigId":"oidc:94da74e5-c3e3-4e68-a4d5-f4f0a2a91158"}},"deprecated":"Published without lib/; use 0.11.1","description":"Shared foundation package for OX App Suite Node.js services","directories":{},"dependencies":{"joi":"^18.2.9","jose":"^6.2.12","pino":"^10.3.1","fastify":"^5.12.5","js-yaml":"^5.4.2","chokidar":"^5.0.0","ajv-errors":"^3.0.0","http-errors":"^2.0.1","pino-pretty":"^13.1.3","@fastify/cors":"^11.3.0","fastify-plugin":"^6.0.0","@fastify/cookie":"^11.1.2","@fastify/helmet":"^13.1.1","@fastify/static":"^10.1.4","fastify-metrics":"^14.1.0","@fastify/swagger":"^9.9.0","close-with-grace":"^2.5.0","@fastify/autoload":"^6.5.0","@fastify/formbody":"^9.0.0","@fastify/sensible":"^6.0.5","@fastify/swagger-ui":"^6.1.1","@prometheus-io/client":"^0.16.1"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.23.0","umzug":"^3.8.3","eslint":"^9.39.5","vitest":"^5.0.2","ioredis":"^6.0.0","mariadb":"^3.5.4","typescript":"^7.0.2","@open-xchange/lint":"^0.3.1","@vitest/coverage-v8":"^5.0.2","@kubernetes/client-node":"^2.0.0"},"peerDependencies":{"pg":"^8.16.0","umzug":"^3.8.2","ioredis":"^5.9.0 || ^6.0.0","mariadb":"^3.0.0","@kubernetes/client-node":"^1.0.0 || ^2.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"umzug":{"optional":true},"ioredis":{"optional":true},"mariadb":{"optional":true},"@kubernetes/client-node":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/fastify-sdk_0.11.0_1790345680069_0.9694736251712099","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"_id":"@open-xchange/fastify-sdk@0.11.1","dist":{"shasum":"7db7ddabf066d817ecd0c82af48e4801252dcf62","tarball":"https://registry.npmjs.org/@open-xchange/fastify-sdk/-/fastify-sdk-0.11.1.tgz","fileCount":53,"integrity":"sha512-O/MMCeM7LmhwWO89+UsOfN/QxFlTMoCtXd0UtkNy9bGlrF+ehnzl0abvvkfVTQMtl2Mj+LoFiLhJCOqAneB9xw==","signatures":[{"sig":"MEUCIQCWQt2UI1UKJPXUMWzrd3A6iARUJScphZI6BcvOGo7U+QIgYw8eTtFn1CZ2kknzHweiwBuqokkfptXGllpe1l1VFXc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD7CgfY3UFION7hcPezFrvEH6/KOO5dEpnM0U04tFPN8wIgCI0O4RQELseM7p98wOw2ub3vvpJDhoPcCV2TT3f4e8Q="}],"unpackedSize":216321},"name":"@open-xchange/fastify-sdk","type":"module","types":"./types/index.d.ts","author":"Open-Xchange","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./types/index.d.ts","default":"./lib/index.js"},"./redis":{"types":"./types/redis/index.d.ts","default":"./lib/redis/index.js"},"./config":{"types":"./types/config/index.d.ts","default":"./lib/config/index.js"},"./mariadb":{"types":"./types/database/mariadb.d.ts","default":"./lib/database/mariadb.js"},"./testing":{"types":"./types/testing/index.d.ts","default":"./lib/testing/index.js"},"./postgres":{"types":"./types/database/postgres.d.ts","default":"./lib/database/postgres.js"},"./migrations":{"types":"./types/database/migrations.d.ts","default":"./lib/database/migrations.js"}},"license":"AGPL-3.0-or-later","private":false,"scripts":{"lint":"eslint . --cache --fix","test":"vitest run --coverage","build:types":"tsc -p tsconfig.build.json"},"version":"0.11.1","_npmUser":{"name":"GitLab CI/CD","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"gitlab","oidcConfigId":"oidc:94da74e5-c3e3-4e68-a4d5-f4f0a2a91158"}},"description":"Shared foundation package for OX App Suite Node.js services","directories":{},"maintainers":[{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"dependencies":{"joi":"^18.2.9","jose":"^6.2.12","pino":"^10.3.1","fastify":"^5.12.5","js-yaml":"^5.4.2","chokidar":"^5.0.0","ajv-errors":"^3.0.0","http-errors":"^2.0.1","pino-pretty":"^13.1.3","@fastify/cors":"^11.3.0","fastify-plugin":"^6.0.0","@fastify/cookie":"^11.1.2","@fastify/helmet":"^13.1.1","@fastify/static":"^10.1.4","fastify-metrics":"^14.1.0","@fastify/swagger":"^9.9.0","close-with-grace":"^2.5.0","@fastify/autoload":"^6.5.0","@fastify/formbody":"^9.0.0","@fastify/sensible":"^6.0.5","@fastify/swagger-ui":"^6.1.1","@prometheus-io/client":"^0.16.1"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.23.0","umzug":"^3.8.3","eslint":"^9.39.5","vitest":"^5.0.2","ioredis":"^6.0.0","mariadb":"^3.5.4","typescript":"^7.0.2","@open-xchange/lint":"^0.3.1","@vitest/coverage-v8":"^5.0.2","@kubernetes/client-node":"^2.0.0"},"peerDependencies":{"pg":"^8.16.0","umzug":"^3.8.2","ioredis":"^5.9.0 || ^6.0.0","mariadb":"^3.0.0","@kubernetes/client-node":"^1.0.0 || ^2.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"umzug":{"optional":true},"ioredis":{"optional":true},"mariadb":{"optional":true},"@kubernetes/client-node":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fastify-sdk_0.11.1_1790346308048_0.603365594932975"}}},"time":{"created":"2026-02-11T17:36:00.333Z","modified":"2026-09-25T14:25:08.357Z","0.1.0":"2026-02-11T17:36:00.603Z","0.2.0":"2026-02-19T11:37:19.778Z","0.2.1":"2026-02-19T13:57:11.777Z","0.2.2":"2026-02-19T15:16:53.020Z","0.2.3":"2026-02-19T16:26:45.130Z","0.2.4":"2026-02-19T16:35:11.780Z","0.2.5":"2026-02-19T17:41:31.294Z","0.3.0":"2026-02-20T00:08:59.751Z","0.4.0":"2026-02-20T08:16:43.900Z","0.4.1":"2026-03-11T12:32:08.735Z","0.5.0":"2026-03-14T15:53:25.709Z","0.5.1":"2026-03-18T15:34:55.078Z","0.5.2":"2026-03-26T00:40:35.841Z","0.6.0":"2026-04-07T11:51:20.474Z","0.6.1":"2026-04-10T13:34:55.445Z","0.6.2":"2026-04-10T16:10:00.086Z","0.7.0":"2026-04-13T14:54:59.090Z","0.8.0":"2026-04-23T09:18:42.371Z","0.8.1":"2026-04-23T09:31:33.742Z","0.8.2":"2026-04-23T12:19:13.587Z","0.8.3":"2026-04-29T13:05:20.550Z","0.8.4":"2026-05-11T19:07:04.940Z","0.8.5":"2026-06-12T09:13:30.106Z","0.9.0":"2026-06-25T11:55:50.093Z","0.10.0":"2026-07-27T12:06:39.099Z","0.11.0":"2026-09-25T14:14:40.148Z","0.11.1":"2026-09-25T14:25:08.142Z"},"author":"Open-Xchange","license":"AGPL-3.0-or-later","description":"Shared foundation package for OX App Suite Node.js services","maintainers":[{"name":"johnyb","email":"julian@svg4all.de"},{"name":"davidbauer","email":"david.bauer@open-xchange.com"},{"name":"solygen","email":"frank@solygen.de"},{"name":"daniel.rentz","email":"daniel.rentz@gmx.de"},{"name":"alexquast","email":"alexander.quast@open-xchange.com"},{"name":"d.haus","email":"haus.06@gmx.de"},{"name":"maik.schaefer","email":"maik.schaefer1091@gmail.com"},{"name":"andree","email":"mail@andr.ee"},{"name":"bjoern.koester","email":"bjoern.koester@open-xchange.com"},{"name":"mbiggeleben","email":"biggeleben@gmail.com"}],"readme":"# @open-xchange/fastify-sdk\n\n[![coverage](https://gitlab.com/openxchange/appsuite/web-foundation/fastify-sdk/badges/main/coverage.svg)](https://gitlab.com/openxchange/appsuite/web-foundation/fastify-sdk/-/graphs/main/charts)\n\nShared foundation package for OX App Suite Node.js services. Extracts common infrastructure — Fastify setup, logging, health checks, plugins, database pools, config loading — so consuming projects consist almost entirely of business logic.\n\n## Install\n\n```bash\npnpm add @open-xchange/fastify-sdk\n```\n\n## Quick start\n\n```js\nimport { createApp } from '@open-xchange/fastify-sdk'\n\nconst app = await createApp({\n  dirname: import.meta.dirname,\n  plugins: {\n    jwt: true,\n    swagger: { enabled: process.env.EXPOSE_API_DOCS === 'true' }\n  }\n})\n\nawait app.start()\n```\n\nThat single call replaces ~500 lines of boilerplate (logger, CORS, Helmet, metrics, JWT, Swagger, autoload). `app.start()` reads `PORT` (default 8080) and `BIND_ADDR` from env vars, and flips the K8s `/ready` probe to 200.\n\n## TypeScript\n\nThe source is JSDoc-typed and the package ships generated `.d.ts` declarations next to every entry point (`./types/**`). Consumer tsconfigs resolve them automatically as long as `moduleResolution` is `\"bundler\"` or `\"nodenext\"` (needed to honour package `exports` conditions — the classic `\"node\"` resolver skips them). Pure JavaScript consumers get editor IntelliSense for free.\n\n## Exports\n\n| Import path | What it provides |\n|---|---|\n| `@open-xchange/fastify-sdk` | `createApp`, `createMetricsServer`, `createLogger`, `logger`, `pinoConfig`, `loadEnv`, `requireEnv`, `jwtAuthHook`, `sessionAuthHook`, `extractAppSuiteSession`, `fetchAppSuiteUser`, `discoverAppSuiteApi`, `isKubernetesAvailable`, `metricsPlugin`, health check helpers, re-exports of `fastify`, `fp`, `pino`, `promClient`, `createError`, `jose` |\n| `@open-xchange/fastify-sdk/mariadb` | `createMariaDBPool`, `createMariaDBPoolFromEnv`, `getMariaDBPools`, `mariadbReadyCheck`, `createUUID` |\n| `@open-xchange/fastify-sdk/postgres` | `createPostgresPool`, `createPostgresPoolFromEnv` |\n| `@open-xchange/fastify-sdk/migrations` | `createMigrationRunner`, `executeMigrations`, `runMigrations`, `runMigrationsCLI`, `checkPendingMigrations`, `ensureMigrationsTable`, `normalizeMigrationsConfig`, `MigrationsNotReadyError` |\n| `@open-xchange/fastify-sdk/config` | `createConfigRegistry`, `readConfigurationFile`, `validateAndUpdateConfiguration`, `fileExists`, `getConfigPath`, Joi helpers (`defaultTrue`, `defaultFalse`, `customString`, `optionalCustomString`, `customURL`), `Joi` |\n| `@open-xchange/fastify-sdk/redis` | `createRedisClient`, `createRedisClientFromEnv`, `redisReadyCheck` |\n| `@open-xchange/fastify-sdk/testing` | `createTestApp`, `generateTokenForJwks`, `getJwks` |\n\n## API reference\n\n### `createApp(options)`\n\nCreates a configured Fastify instance with standard OX defaults.\n\n**Options:**\n\n```js\n{\n  dirname: import.meta.dirname,        // For resolving plugins/routes dirs\n  pluginsDir: 'plugins',               // Relative to dirname (auto-loaded)\n  routesDir: 'routes',                 // Relative to dirname (auto-loaded)\n  routes: { prefix, ...autoloadOpts }, // Extra @fastify/autoload options for routes\n  fastify: {},                         // Merged into Fastify constructor options\n  plugins: {\n    cors: true | { origin, methods },  // Default: true\n    helmet: true | { options },        // Default: true\n    logging: true,                     // Default: true (request/response hooks)\n    metrics: true,                     // Default: true (fastify-metrics collectors, no endpoint)\n    jwt: true | false | { key },       // Default: true (OIDC via OIDC_ISSUER env, or noop 401 if unset)\n    sessionAuth: false | true | { appSuiteApi, discover, apiPath, userAgent, timeout, scope }, // Default: false (App Suite session forwarding; pair with jwt: false). appSuiteApi falls back to APP_SUITE_API env, then in-cluster K8s discovery\n    swagger: true | false | { enabled, openapi }, // Default: true (but only registers when EXPOSE_API_DOCS=true)\n    static: false | true | { root, preCompressed, ... }, // Default: false\n    cookie: false | true | { secret, parseOptions }, // Default: false (@fastify/cookie)\n    formbody: false | true | { bodyLimit }, // Default: false (@fastify/formbody, URL-encoded form bodies)\n  },\n  metricsServer: true,                 // Default: true (separate Fastify on port 9090, or METRICS_PORT env var)\n  database: { mariadb: true },          // Auto-manages pool readiness, health checks, shutdown\n  config: {                            // YAML config file watching\n    filename: 'config.yaml',\n    schema,                            // Joi schema for validation\n    optional: true,\n    callback: (data) => { ... }\n  },\n  onReady: async () => {},             // Called in Fastify onReady hook\n  onClose: async () => {},             // Called in Fastify onClose hook\n  processHandlers: true,               // Default: true (close-with-grace: signals, uncaughtException, unhandledRejection)\n  shutdownDelay: 5000,                 // Default: 5000 (ms to wait before closing connections after signal)\n  closeGraceDelay: 10000,              // Default: 10000 (ms hard timeout — force exit if shutdown hangs)\n  migrationRetries: 30,                // Default: 30 (poll attempts for the migration job to finish before giving up)\n  migrationRetryDelay: 10000,          // Default: 10000 (ms between migration-readiness attempts)\n}\n```\n\n**Defaults applied:**\n- `requestIdLogLabel: 'requestId'`\n- `disableRequestLogging: true`\n- `connectionTimeout: 30000`\n- `genReqId: () => randomUUID()`\n\n### `createLogger(options)`\n\nReturns a Pino logger with the standard OX configuration:\n- Custom level mapping (trace→8, debug→7, info→6, warn→4, error→3, fatal→0)\n- Redaction of `headers.authorization`, `headers.cookie`, `headers.host`, `key`, `password`, `salt`, `hash`\n- Epoch millisecond timestamps\n- No base (omits pid/hostname)\n\nPass custom options to override defaults (e.g. `createLogger({ level: 'debug' })`).\n\n### `loadEnv()`\n\nLoads environment variables from `.env` first (higher precedence), then `.env.defaults` fills in any gaps, using Node's built-in `process.loadEnvFile()` (it does not overwrite already-set vars). No external dependency needed.\n\n### `requireEnv(keys)`\n\nValidates that the given environment variables are set and non-empty. Prints a clear error message and exits the process if any are missing. Call after `loadEnv()` and before `createApp()`.\n\n```js\nimport { loadEnv, requireEnv } from '@open-xchange/fastify-sdk'\n\nloadEnv()\n\nrequireEnv(['PORT', 'ORIGINS', 'REDIS_HOSTS'])\n\nif (process.env.SQL_ENABLED === 'true') {\n  requireEnv(['SQL_HOST', 'SQL_USER', 'SQL_PASS', 'SQL_DB'])\n}\n```\n\n### Health check helpers\n\n```js\nimport { registerReadinessCheck, registerHealthCheck, mariadbHealthCheck } from '@open-xchange/fastify-sdk'\n\nregisterReadinessCheck(async () => { await mariadbHealthCheck(pool) })\nregisterHealthCheck(async () => { await mariadbHealthCheck(pool) })\n```\n\nRegistered checks are run by the metrics server (`GET /ready` and `GET /live` on port 9090). See [Metrics server](#metrics-server-default-enabled) below.\n\n### MariaDB\n\n```js\nimport { createMariaDBPool, createMariaDBPoolFromEnv, mariadbReadyCheck, createUUID } from '@open-xchange/fastify-sdk/mariadb'\n\n// From explicit options\nconst pool = createMariaDBPool({ host: 'localhost', database: 'mydb', user: 'root', password: '' })\n\n// From env vars (SQL_HOST, SQL_PORT, SQL_DB, SQL_USER, SQL_PASS, SQL_CONNECTIONS)\n// Optional TLS via SQL_SSL=true, SQL_SSL_CA (PEM contents),\n// SQL_SSL_REJECT_UNAUTHORIZED=false (disable cert verification)\nconst pool = createMariaDBPoolFromEnv()\n\n// Multi-database from env (DB_<NAME>_HOST, DB_<NAME>_PORT, etc.)\n// Optional TLS via DB_<NAME>_SSL=true, DB_<NAME>_SSL_CA, DB_<NAME>_SSL_REJECT_UNAUTHORIZED=false\nconst pools = createMariaDBPoolFromEnv({ names: 'users,analytics' })\n\n// Retry-based readiness check\nawait mariadbReadyCheck(pool, { retries: 12, delay: 10_000, logger })\n\n// MariaDB UUID generation\nconst uuid = await createUUID(pool)\n```\n\n### PostgreSQL\n\n```js\nimport { createPostgresPool, createPostgresPoolFromEnv } from '@open-xchange/fastify-sdk/postgres'\n\n// From env vars (DATABASE_HOST, DATABASE_PORT, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD)\n// Supports SSL via DATABASE_SSL, DATABASE_SSL_CA_PATH, etc.\nconst pool = createPostgresPoolFromEnv()\n```\n\n### Migrations (Umzug + MariaDB)\n\n**K8s migration job** — use `runMigrations()` as the entry point for a Kubernetes migration job. Connects to all configured pools, waits for readiness, runs pending migrations, then exits:\n\n```js\n// server/migrate.js (called by K8s job)\nimport { runMigrations } from '@open-xchange/fastify-sdk/migrations'\n\nawait runMigrations()\n```\n\n**CLI tool** — use `runMigrationsCLI()` for interactive migration management (up, down, pending, executed, create):\n\n```js\n// server/migrations/migrate.js\nimport { runMigrationsCLI } from '@open-xchange/fastify-sdk/migrations'\n\nawait runMigrationsCLI({ dirname: join(dirname(fileURLToPath(import.meta.url)), '..') })\n```\n\n```bash\nnode server/migrations/migrate.js --db bimi up\nnode server/migrations/migrate.js --db bimi pending\nnode server/migrations/migrate.js --db bimi create --name add-indexes\n```\n\nBoth functions use convention-based config by default: pool name `\"x\"` maps to glob `migrations/x/*.mjs` and table `migrations_x`.\n\n**Startup migration guard (graceful).** When `createApp` is given `database.migrations`, it performs a read-only check (no DDL) that the schema is up to date before the app starts — execution is the migration job's responsibility. On a deploy the migration job typically races the app pod, so the app does **not** crash if migrations aren't applied yet: it polls (`migrationRetries` × `migrationRetryDelay`, default 30 × 10s = 5 min) with calm `warn` logs while the job catches up. If they're still not applied when the window elapses, it logs **one** clean line (no stack trace) and exits, so Kubernetes restarts the pod — which self-heals once the job completes.\n\n> This relies on the app exiting itself: liveness is served on `/live` and stays green during startup, so the kubelet will **not** kill a pod that is merely unready. If you instead want the app to wait indefinitely, set `migrationRetries: Infinity` **and** configure a `startupProbe` on `/ready` so Kubernetes owns the deadline. With no startupProbe, infinite retries hang the pod silently.\n\n**Low-level API** — for custom setups, use `createMigrationRunner` and `executeMigrations` directly:\n\n```js\nimport { createMigrationRunner, executeMigrations } from '@open-xchange/fastify-sdk/migrations'\n\nconst runner = createMigrationRunner({\n  pool,\n  migrationsGlob: 'src/migrations/*.mjs',\n  tableName: 'migrations',\n  logger\n})\n\nawait executeMigrations(runner)\n```\n\n### Config (YAML + Joi + hot-reload)\n\n```js\nimport { createConfigRegistry, Joi, defaultTrue } from '@open-xchange/fastify-sdk/config'\n\nconst { registerConfigurationFile, getCurrent } = createConfigRegistry({ logger })\n\nconst schema = Joi.object({\n  features: Joi.object({ chat: defaultTrue }).default()\n})\n\nawait registerConfigurationFile('config.yaml', { schema, watch: true }, (data) => {\n  Object.assign(config, data)\n})\n\nconst current = getCurrent('config.yaml')\n```\n\n### Redis\n\n```js\nimport { createRedisClient, redisReadyCheck } from '@open-xchange/fastify-sdk/redis'\n\n// Reads REDIS_HOSTS, REDIS_MODE (standalone|sentinel|cluster), REDIS_PASSWORD, etc.\nconst client = createRedisClient()\nawait redisReadyCheck(client)\n```\n\n### Testing\n\n```js\nimport { createTestApp, generateTokenForJwks, getJwks } from '@open-xchange/fastify-sdk/testing'\n\n// Creates Fastify with CORS/Helmet/Metrics/Logging disabled, metrics server off\nconst app = await createTestApp({\n  dirname: import.meta.dirname,\n  routesDir: '../src/routes',\n  plugins: { jwt: true }\n})\n\nconst token = await generateTokenForJwks({ userId: '1' }, 'kid', 'issuer.com')\nconst jwks = await getJwks('kid')\n```\n\n### Lint\n\nUse `@open-xchange/lint` directly as a devDependency:\n\n```js\n// eslint.config.js\nimport config from '@open-xchange/lint'\n\nexport default [\n  ...config\n]\n```\n\n### Logging\n\nThe SDK configures Pino with syslog-level mapping, redaction, and epoch timestamps. When running in a TTY (e.g. local development), logs are automatically pretty-printed with colors — no `pino-pretty` pipe needed.\n\nOverride TTY detection with `LOG_PRETTY`:\n- `LOG_PRETTY=true` — force pretty printing (useful in CI or non-TTY environments)\n- `LOG_PRETTY=false` — force JSON output\n\n### Re-exports\n\nThese are re-exported so consuming projects don't need to install them separately:\n\n```js\nimport { fastify, fp, pino, promClient, createError, jose } from '@open-xchange/fastify-sdk'\n```\n\n## Plugins\n\nAll plugins are registered automatically by `createApp()`. See the [plugin reference](docs/development/plugins.md) for detailed behavioral documentation including lifecycle tables, shutdown sequences, JWT modes, and code examples.\n\n| Plugin | Default | Summary |\n|---|---|---|\n| CORS | enabled | Reads `ORIGINS` env var (comma-separated) |\n| Helmet | enabled | Standard security headers |\n| Logging | enabled | Request/response hooks (trace + debug level) |\n| Metrics server | enabled | Separate server on port 9090: `/live`, `/ready`, `/metrics` |\n| Metrics plugin | enabled | `fastify-metrics` collectors (no endpoint on main app) |\n| Sensible | always | `@fastify/sensible` convenience utilities |\n| JWT | enabled | JWKS verification via `jose`, OIDC discovery, custom key resolver |\n| Session auth | disabled | App Suite session forwarding (same-domain); resolves identity via the MW `/user/me`. MW URL from `APP_SUITE_API` or in-cluster K8s discovery. Pair with `jwt: false` |\n| Static files | disabled | `@fastify/static` with pre-compressed support |\n| Swagger | enabled | Gated by `EXPOSE_API_DOCS=true`, serves `/api-docs` |\n\nThe SDK runs Fastify standalone with two ports: **9090** (metrics/health, starts in `createApp()`) and **8080** (app routes, starts in `app.start()`). See [Running standalone](docs/development/plugins.md#running-standalone) for the full lifecycle explanation.\n\n## LLM integration reference\n\nAn LLM-optimized reference ships with the package at `llm-reference.md`. Point your LLM coding assistant at it, e.g. in a `CLAUDE.md`:\n\n```\n@node_modules/@open-xchange/fastify-sdk/llm-reference.md\n```\n\n## Development\n\nSee [`docs/development/`](docs/development/index.md) for contributor documentation, project structure, and conventions.\n\n## License\n\nAGPL-3.0-or-later\n","readmeFilename":""}