{"_id":"@goatlab/node-backend","_rev":"67-bc6c69eb4328032696dad87bb993d978","name":"@goatlab/node-backend","dist-tags":{"latest":"1.6.3"},"versions":{"0.0.2":{"name":"@goatlab/node-backend","version":"0.0.2","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@0.0.2","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"39d9430d7550f3e6c6707e78d063b141d3a0cf8f","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-0.0.2.tgz","fileCount":10,"integrity":"sha512-jzpeIo2+nv0Nkwb2UT33yD61rvHekEPzRl99O8CVA3c7QHOfJBjzUg1iCs33IQ40Ro2OtCPp5Fvshy261JgBnw==","signatures":[{"sig":"MEQCIH6QF2C7Mw62JkwMdjVeBn/wobl+7LhnUatIGMgbfe8CAiAfHfoX/oqDpvl4VD78mhbOSKOngF+TGdhPR025/OgXqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50985},"main":"dist/index.js","_from":"file:goatlab-node-backend-0.0.2.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","actor":{"name":"cabrerabywaters","type":"user","email":"cabrerabywaters@gmail.com"},"email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/32fccb1e551e3abbf3d65b065f328319/goatlab-node-backend-0.0.2.tgz","_integrity":"sha512-jzpeIo2+nv0Nkwb2UT33yD61rvHekEPzRl99O8CVA3c7QHOfJBjzUg1iCs33IQ40Ro2OtCPp5Fvshy261JgBnw==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"@goatlab/js-utils":"0.8.36"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","dotenv-cli":"^5.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@goatlab/tsconfig":"0.0.11","jest-environment-node":"^27.5.1"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_0.0.2_1750350036913_0.6951094956051938","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@goatlab/node-backend","version":"0.0.3","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@0.0.3","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"b5f4cfc9c6a40fd7b8e1d1d8fb0b7b6cf71d9ac1","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-0.0.3.tgz","fileCount":16,"integrity":"sha512-MSP21Y7ojEvIvFrkAk92OYryL0MGRUc+uRQlV0NZpd0tRkBT4ttedKDIfY5+p8EyMP9VC//cMcLwlx9XItmGNw==","signatures":[{"sig":"MEUCIQCaHLRZZHPT/10glj0AnnvFeLQz7I+kFnFowqbxH1qXPwIgeKppDk78ZOR0diuwlcNC2uhol+X2OYsLKg8+vAfs4A8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":201073},"main":"dist/index.js","_from":"file:goatlab-node-backend-0.0.3.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","actor":{"name":"cabrerabywaters","type":"user","email":"cabrerabywaters@gmail.com"},"email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/b0b1a0f415414dfa4d84b0272b0829c1/goatlab-node-backend-0.0.3.tgz","_integrity":"sha512-MSP21Y7ojEvIvFrkAk92OYryL0MGRUc+uRQlV0NZpd0tRkBT4ttedKDIfY5+p8EyMP9VC//cMcLwlx9XItmGNw==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"keyv":"^4.5.4","keyv-lru":"^3.0.4","@keyv/redis":"^4.4.0","@goatlab/js-utils":"0.8.36"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","dotenv-cli":"^5.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@goatlab/tsconfig":"0.0.11","@testcontainers/redis":"^11.0.3","jest-environment-node":"^27.5.1"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_0.0.3_1750504103308_0.708558055356352","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@goatlab/node-backend","version":"0.0.4","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@0.0.4","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"26221944ac3e1b02001b310add3acaf105f1a2fb","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-0.0.4.tgz","fileCount":16,"integrity":"sha512-OJfsfHD4q1dmqBmygFZAqGxSnRSMLg4JSsmVuM5y8sxZ9mqzJhRCie67iubmq1VkIzKr5uOynhU5tM4XNg/xLw==","signatures":[{"sig":"MEUCIHXi/+8Z7dbhK63xtivJ2XSrrD/v3xJsblum9PqlxKw8AiEA1XWCYMI8NvtUnFfdGag1qxrQbu8KLVcOxkrqyghitvA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":201221},"main":"dist/index.js","_from":"file:goatlab-node-backend-0.0.4.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","actor":{"name":"cabrerabywaters","type":"user","email":"cabrerabywaters@gmail.com"},"email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/479f0612efe779c5b07650ac3ed2e5c0/goatlab-node-backend-0.0.4.tgz","_integrity":"sha512-OJfsfHD4q1dmqBmygFZAqGxSnRSMLg4JSsmVuM5y8sxZ9mqzJhRCie67iubmq1VkIzKr5uOynhU5tM4XNg/xLw==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"keyv":"^5.3.4","keyv-lru":"^3.0.4","@keyv/redis":"^4.4.0","@goatlab/js-utils":"0.8.36"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","dotenv-cli":"^5.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@goatlab/tsconfig":"0.0.11","@testcontainers/redis":"^11.0.3","jest-environment-node":"^27.5.1"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_0.0.4_1750504976736_0.9084330004560144","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@goatlab/node-backend","version":"0.0.5","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@0.0.5","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"40a12e9afe8f7c0e4c6d0ab7b74739a3c4d10a12","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-0.0.5.tgz","fileCount":16,"integrity":"sha512-oMtlGqNK6pNKjZ3hjOznZ7VHUJKffUsNbfHAwQX57f0pui3itCB2AbB5tfoVo8iTxgBuT3I+NJj2qyYq/fKYwg==","signatures":[{"sig":"MEQCICpJX8Q7HFdGDhAmd4A0BZHiJCjlKtlffW1fU+bO2UYjAiAKSy7uYXRPx4oSN0+Bj1y+Xmb5xKpmJrIpABCEo9FKVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":201530},"main":"dist/index.js","_from":"file:goatlab-node-backend-0.0.5.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","actor":{"name":"cabrerabywaters","type":"user","email":"cabrerabywaters@gmail.com"},"email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/47f47417ccf16cee447b2eb9996b0ec8/goatlab-node-backend-0.0.5.tgz","_integrity":"sha512-oMtlGqNK6pNKjZ3hjOznZ7VHUJKffUsNbfHAwQX57f0pui3itCB2AbB5tfoVo8iTxgBuT3I+NJj2qyYq/fKYwg==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"keyv":"^5.3.4","keyv-lru":"^3.0.4","@keyv/redis":"^4.4.0","@goatlab/js-utils":"0.8.36"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","dotenv-cli":"^5.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@goatlab/tsconfig":"0.0.11","@testcontainers/redis":"^11.0.3","jest-environment-node":"^27.5.1"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_0.0.5_1750505865489_0.4045042553964855","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@goatlab/node-backend","version":"0.0.6","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@0.0.6","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"3c03285e69bd2708121768cb0e29aa69bebd84be","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-0.0.6.tgz","fileCount":16,"integrity":"sha512-OxAOCWboVtmsxhhifs7FD5KAWBlhc/jZa8gz5q6xpv/yQTjxFFnRAfsbTNEIpGxemlEdMmUZ/WMUXSBX3PyEsA==","signatures":[{"sig":"MEYCIQDbb9FUUOVw2jzsw2aEs6zbVpU7yVIMxR8p1GrHFV7tKwIhAOPBuG+/U+P+6Febkp5QKW7USh1A+mkNrdD17l2eFshb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":201530},"main":"dist/index.js","_from":"file:goatlab-node-backend-0.0.6.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","actor":{"name":"cabrerabywaters","type":"user","email":"cabrerabywaters@gmail.com"},"email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/0dbbc32f4f57bbe0a1c7eedda0e4fbc3/goatlab-node-backend-0.0.6.tgz","_integrity":"sha512-OxAOCWboVtmsxhhifs7FD5KAWBlhc/jZa8gz5q6xpv/yQTjxFFnRAfsbTNEIpGxemlEdMmUZ/WMUXSBX3PyEsA==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"keyv":"^5.3.4","keyv-lru":"^3.0.4","@keyv/redis":"^4.4.0","@goatlab/js-utils":"0.8.36"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","dotenv-cli":"^5.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@goatlab/tsconfig":"0.0.11","@testcontainers/redis":"^11.0.3","jest-environment-node":"^27.5.1"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_0.0.6_1750507500956_0.5239170872350836","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@goatlab/node-backend","version":"0.0.7","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@0.0.7","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"216dbbd374d3d548c53463357c1c1b6aa62d6063","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-0.0.7.tgz","fileCount":16,"integrity":"sha512-UH/oCt24GRZTCTD4DYXlzTavH1E6M/qCraxFd8c2ZU44nUfcSwcoJqb4oJFh0MjNbznDuo039nTFcfQBmvKOwg==","signatures":[{"sig":"MEYCIQD7FS6NDLaaoPhVXH388ptkipw36gKGlWFDs5SCdDrhXwIhALSeCOgNEP4bWwG+Myo3Y8koEPxTNReUjYWwE506rly1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":204195},"main":"dist/index.js","_from":"file:goatlab-node-backend-0.0.7.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","actor":{"name":"cabrerabywaters","type":"user","email":"cabrerabywaters@gmail.com"},"email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/b91d330bdf075f7c9169746751bd6010/goatlab-node-backend-0.0.7.tgz","_integrity":"sha512-UH/oCt24GRZTCTD4DYXlzTavH1E6M/qCraxFd8c2ZU44nUfcSwcoJqb4oJFh0MjNbznDuo039nTFcfQBmvKOwg==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"keyv":"^5.3.4","keyv-lru":"^3.0.4","@keyv/redis":"^4.4.0","@goatlab/js-utils":"0.8.37"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","dotenv-cli":"^5.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@goatlab/tsconfig":"0.0.11","@testcontainers/redis":"^11.0.3","jest-environment-node":"^27.5.1"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_0.0.7_1750534281941_0.0802485464222995","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@goatlab/node-backend","version":"0.0.8","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@0.0.8","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"3dec9403adeb7232242397e89ca1c1e7c4bc510b","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-0.0.8.tgz","fileCount":16,"integrity":"sha512-39/8TQvAhBEHPhaS4TdF5LmrdGhKyr+4sBlvfpAYsGNzCILIdYvnX+AITi96kymGraOik21/pbeqFxJ02tk2IQ==","signatures":[{"sig":"MEUCIFbgHmx33im6rPozfXUvgvsCt2yfWMtAEFPFwBKdgcp2AiEAyerbp0h/IrQreDp0UsKmZBQ6cbZRT5E3RMb5lukF/nc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":223571},"main":"dist/index.js","_from":"file:goatlab-node-backend-0.0.8.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","actor":{"name":"cabrerabywaters","type":"user","email":"cabrerabywaters@gmail.com"},"email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/8e77dd1246209fd0ddd70d90c95b20b9/goatlab-node-backend-0.0.8.tgz","_integrity":"sha512-39/8TQvAhBEHPhaS4TdF5LmrdGhKyr+4sBlvfpAYsGNzCILIdYvnX+AITi96kymGraOik21/pbeqFxJ02tk2IQ==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"keyv":"^5.3.4","keyv-lru":"^3.0.4","@keyv/redis":"^4.4.0","@goatlab/js-utils":"0.8.37"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","dotenv-cli":"^5.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@goatlab/tsconfig":"0.0.11","@testcontainers/redis":"^11.0.3","jest-environment-node":"^27.5.1"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_0.0.8_1750538881479_0.8310095805357134","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@goatlab/node-backend","version":"0.0.9","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@0.0.9","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"f36bc304098e306379a6354a66a0d803784234d8","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-0.0.9.tgz","fileCount":16,"integrity":"sha512-8DTbcbMX82HMSHYCKLMVtclrleB7zLX9rmZXVv/WILyAhwJVxNvd2CI8KNzxyrsym+n+c5hKmjEx9GUjf+Uvog==","signatures":[{"sig":"MEQCIF6X2chF1ggn1GMOb2bTip3Hn4w9lsm+QI27pCqh27KyAiADI1yzsPANXgi267d0kiUks467LwJnCRkQFiUVwceG6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":156655},"main":"dist/index.js","_from":"file:goatlab-node-backend-0.0.9.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","actor":{"name":"cabrerabywaters","type":"user","email":"cabrerabywaters@gmail.com"},"email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/54f3425c01aa1a16dee2d950dd276c5b/goatlab-node-backend-0.0.9.tgz","_integrity":"sha512-8DTbcbMX82HMSHYCKLMVtclrleB7zLX9rmZXVv/WILyAhwJVxNvd2CI8KNzxyrsym+n+c5hKmjEx9GUjf+Uvog==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"keyv":"^4.5.4","keyv-lru":"^3.0.4","@keyv/redis":"^3.0.1","@goatlab/js-utils":"0.8.37"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","dotenv-cli":"^5.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@goatlab/tsconfig":"0.0.11","@testcontainers/redis":"^11.0.3","jest-environment-node":"^27.5.1"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_0.0.9_1750577325289_0.6156977938542934","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"@goatlab/node-backend","version":"0.0.10","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@0.0.10","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"f5dcbd0027e393c782065d55240ec4e6045cd3d6","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-0.0.10.tgz","fileCount":16,"integrity":"sha512-OIcR13oFyF4YiiwMvH2bOb+wKxJUfzjNKWWik3Az7OEacwtPPz5AxqI7+1NCFblu1PPC2yOWaxrgmRZetHP2CQ==","signatures":[{"sig":"MEUCIQCAA7ab3nfm8s6kB5tknvAWUnKwdpQ+JteihyVAgesSqgIgZwfOxx+0dRGSIk6G1VN8GrMdcpz8GakvXraL+xOv6Z4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":156625},"main":"dist/index.js","_from":"file:goatlab-node-backend-0.0.10.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","actor":{"name":"cabrerabywaters","type":"user","email":"cabrerabywaters@gmail.com"},"email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/cd6d68a2857399817cfa038bd527b04e/goatlab-node-backend-0.0.10.tgz","_integrity":"sha512-OIcR13oFyF4YiiwMvH2bOb+wKxJUfzjNKWWik3Az7OEacwtPPz5AxqI7+1NCFblu1PPC2yOWaxrgmRZetHP2CQ==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"keyv":"^4.5.4","keyv-lru":"^3.0.4","@keyv/redis":"^3.0.1","@goatlab/js-utils":"0.8.37"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","dotenv-cli":"^5.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@goatlab/tsconfig":"0.0.12","@testcontainers/redis":"^11.0.3","jest-environment-node":"^27.5.1"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_0.0.10_1750578367979_0.6402338920911592","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"@goatlab/node-backend","version":"0.0.11","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@0.0.11","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"d0c5ade97b000903097bdf96af55cdd094e0cac9","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-0.0.11.tgz","fileCount":16,"integrity":"sha512-fw7+tBWRZlJpkbgVhUfIBlEYGr91yKzdkqA03D/VTeYmzqXXdWPfSQW2lxHN4wKWTeoMCBy1pnF833PNf/wE6A==","signatures":[{"sig":"MEYCIQD5Nyvffgd9Bf+and0wk1q3PN19eZ/lRO+EneQj9sq/swIhAJcQa2c5FGS4/IR7b8YrGZ8HaDI/RpGjqCmcY/NxxNR1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":156593},"main":"dist/index.js","_from":"file:goatlab-node-backend-0.0.11.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","actor":{"name":"cabrerabywaters","type":"user","email":"cabrerabywaters@gmail.com"},"email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/f5177ce2337e73f475798cc81f724bdf/goatlab-node-backend-0.0.11.tgz","_integrity":"sha512-fw7+tBWRZlJpkbgVhUfIBlEYGr91yKzdkqA03D/VTeYmzqXXdWPfSQW2lxHN4wKWTeoMCBy1pnF833PNf/wE6A==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"keyv":"^4.5.4","keyv-lru":"^3.0.4","@keyv/redis":"^3.0.1","@goatlab/js-utils":"0.8.38"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","dotenv-cli":"^5.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@goatlab/tsconfig":"0.0.12","@testcontainers/redis":"^11.0.3","jest-environment-node":"^27.5.1"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_0.0.11_1750628221966_0.5316626891835676","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"@goatlab/node-backend","version":"0.0.12","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@0.0.12","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"23bc09a7b4e6239971f5c3b0764893e00b8a807b","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-0.0.12.tgz","fileCount":16,"integrity":"sha512-+n0Sxa960kpSMf/rR62F4sPnudxcFaRWmw5Dt8EleSwG0Z5AL+bB6bKpnOtiIqIye0MKozl8QgeabIsN5ZbCrg==","signatures":[{"sig":"MEUCIQCeNH2eY1cxURPX7/u5ghXcG1Fvmz77AG7N4hEnvhahrgIgT5HeFSlva7/cvKSm4PzQEXx7wBWaKFij0xO2rW0iC5I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160209},"main":"dist/index.js","_from":"file:goatlab-node-backend-0.0.12.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","actor":{"name":"cabrerabywaters","type":"user","email":"cabrerabywaters@gmail.com"},"email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/c37f1e54c100e81b207204c55f135fc5/goatlab-node-backend-0.0.12.tgz","_integrity":"sha512-+n0Sxa960kpSMf/rR62F4sPnudxcFaRWmw5Dt8EleSwG0Z5AL+bB6bKpnOtiIqIye0MKozl8QgeabIsN5ZbCrg==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"keyv":"^4.5.4","keyv-lru":"^3.0.4","@keyv/redis":"^3.0.1","@goatlab/js-utils":"0.8.39"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","dotenv-cli":"^5.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@goatlab/tsconfig":"0.0.12","@testcontainers/redis":"^11.0.3","jest-environment-node":"^27.5.1"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_0.0.12_1750709925738_0.31795986413054256","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"@goatlab/node-backend","version":"0.0.13","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@0.0.13","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"1146fad03035577118d56fa4c184778c51b42d8e","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-0.0.13.tgz","fileCount":16,"integrity":"sha512-dABNdDLT+UwoSU5mLWGDc65SfcObsFC9nixZfzmM1nD4XmGamP5Tg1Py9pyYoe7JxyFeyhE5pV5qL4B84XAjMw==","signatures":[{"sig":"MEUCIQCvoztJegYCg4zFdxxNSxmXfUwror3HI8AVr2TXRgEWfQIgOCF8C9EN/jtbJnNkGBQY1FrGJckDp8fmM+F5/8+pLwQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160201},"main":"dist/index.js","_from":"file:goatlab-node-backend-0.0.13.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","actor":{"name":"cabrerabywaters","type":"user","email":"cabrerabywaters@gmail.com"},"email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/6358037871b1d3a9f0409da5e7620960/goatlab-node-backend-0.0.13.tgz","_integrity":"sha512-dABNdDLT+UwoSU5mLWGDc65SfcObsFC9nixZfzmM1nD4XmGamP5Tg1Py9pyYoe7JxyFeyhE5pV5qL4B84XAjMw==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"keyv":"^4.5.4","keyv-lru":"^3.0.4","@keyv/redis":"^3.0.1","@goatlab/js-utils":"0.8.40"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","dotenv-cli":"^5.1.0","typescript":"^4.6.3","@types/jest":"^27.4.1","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@goatlab/tsconfig":"0.0.12","@testcontainers/redis":"^11.0.3","jest-environment-node":"^27.5.1"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_0.0.13_1750870553945_0.04932497785316525","host":"s3://npm-registry-packages-npm-production"}},"0.0.14":{"name":"@goatlab/node-backend","version":"0.0.14","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@0.0.14","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"b5aa5360c7960728b8ba3501685de223cf3c305d","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-0.0.14.tgz","fileCount":25,"integrity":"sha512-hWcYXedI6pmtNZM7eai5sFeHuQ9dV0gC4j9xdVFFx5QI/RPYgUz9BbGneILdKV0oTAiJg9p+OtV2bwl2yrAZag==","signatures":[{"sig":"MEUCIQDtKmq3iQWsHAftbWMIgMqeQo0VEkncn032Dy/OzT43cgIgWUfFzm68LZEZM/NUnm5yu6bUl0frhtcbyQKStuWoUa4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":175661},"main":"dist/index.js","_from":"file:goatlab-node-backend-0.0.14.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","actor":{"name":"cabrerabywaters","type":"user","email":"cabrerabywaters@gmail.com"},"email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/d666f9f13deb9597c39713b175a44d57/goatlab-node-backend-0.0.14.tgz","_integrity":"sha512-hWcYXedI6pmtNZM7eai5sFeHuQ9dV0gC4j9xdVFFx5QI/RPYgUz9BbGneILdKV0oTAiJg9p+OtV2bwl2yrAZag==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"keyv":"^4.5.4","tiny-lru":"^11.3.3","@keyv/redis":"^3.0.1","@goatlab/js-utils":"0.8.40"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/jest":"^27.4.1","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@goatlab/tsconfig":"0.0.12","@testcontainers/redis":"^11.0.3","jest-environment-node":"^27.5.1"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_0.0.14_1751236654335_0.9817305456701795","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"@goatlab/node-backend","version":"0.0.15","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@0.0.15","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"acf2ea8c9daae0fd0671a8de9a167a67f51d8368","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-0.0.15.tgz","fileCount":19,"integrity":"sha512-Spei+JW2GIebjD551bYNHRgC0NpGCYfflHWzgRZ+k1kh4Ns2X/gje5WezxA8Ab+rk2E72Vl07LUFGACgbZGd/w==","signatures":[{"sig":"MEYCIQDKwrEse/b8gvwyfWzZv0SnJtOcyPdOZtm5B/+topjVqAIhAKpzhcZmfkl4R1kigwcOuX7AY6ob0SeRuouesTX6TUd4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59683},"main":"dist/index.js","_from":"file:goatlab-node-backend-0.0.15.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/0ddf679fce2dee97ef12c003d772def6/goatlab-node-backend-0.0.15.tgz","_integrity":"sha512-Spei+JW2GIebjD551bYNHRgC0NpGCYfflHWzgRZ+k1kh4Ns2X/gje5WezxA8Ab+rk2E72Vl07LUFGACgbZGd/w==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"keyv":"^4.5.4","tiny-lru":"^11.3.3","@keyv/redis":"^3.0.1","@goatlab/js-utils":"0.8.41"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/jest":"^27.4.1","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@goatlab/tsconfig":"0.0.14","@testcontainers/redis":"^11.0.3","jest-environment-node":"^27.5.1"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_0.0.15_1753049014291_0.8261720758435003","host":"s3://npm-registry-packages-npm-production"}},"0.0.16":{"name":"@goatlab/node-backend","version":"0.0.16","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@0.0.16","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"2f305f3e24c886df5bf0130b733429db1d87bd28","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-0.0.16.tgz","fileCount":19,"integrity":"sha512-/XWOX55hY4fkDBcMlXp/b3NrIKTg10W430F6F36tEIKKzAWjRsGhBFgTt/V1fGzlEmrX6WtRTxD5jtZpQozKEA==","signatures":[{"sig":"MEQCIBTtGr/Lswe2a8heLc8jO+4BZNOun6va8kIGNLMHx8LxAiBgcHsS8KML5HFybih93mGIW+ZeQGKuAO80VJxE641imQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59683},"main":"dist/index.js","_from":"file:goatlab-node-backend-0.0.16.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/b7315a8ac9c7702085a5904111efa38c/goatlab-node-backend-0.0.16.tgz","_integrity":"sha512-/XWOX55hY4fkDBcMlXp/b3NrIKTg10W430F6F36tEIKKzAWjRsGhBFgTt/V1fGzlEmrX6WtRTxD5jtZpQozKEA==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"keyv":"^4.5.4","tiny-lru":"^11.3.3","@keyv/redis":"^3.0.1","@goatlab/js-utils":"0.8.42"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/jest":"^27.4.1","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@goatlab/tsconfig":"0.0.15","@testcontainers/redis":"^11.0.3","jest-environment-node":"^27.5.1"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_0.0.16_1753093857329_0.9196443100465899","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@goatlab/node-backend","version":"0.1.0","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@0.1.0","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"4243d123e24dcef21027c4e8bc97b0c7a7c384f2","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-0.1.0.tgz","fileCount":139,"integrity":"sha512-VutphRnF2g3bSmq0GqnQoVsokHtWgaxWoaop1KDCVSzKSzVFu7fPIrlWJgVAMgIfRcjQpgE9HENGC7FghbA2eA==","signatures":[{"sig":"MEQCIH2VI/ycASwcc1eW4Pf+SaUyN8LzXZ5r4I3wXn9CU8TpAiBgAtf+bbxDh476RHNZLcDYMSShXsy1a4YeWhBHdP5T1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":578958},"main":"dist/index.js","_from":"file:goatlab-node-backend-0.1.0.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/40b9cc187419070e737596a68510fc99/goatlab-node-backend-0.1.0.tgz","_integrity":"sha512-VutphRnF2g3bSmq0GqnQoVsokHtWgaxWoaop1KDCVSzKSzVFu7fPIrlWJgVAMgIfRcjQpgE9HENGC7FghbA2eA==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.0.0","undici":"^7.12.0","express":"^4.21.2","tiny-lru":"^11.3.3","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","@sentry/node":"^8.44.0","@trpc/server":"^11.0.0","passport-jwt":"^4.0.1","ua-parser-js":"^1.0.40","node-mocks-http":"^1.16.2","trpc-to-openapi":"^2.0.0","@goatlab/js-utils":"0.9.0","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.9.0","@sentry/profiling-node":"^8.44.0","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@types/express":"^5.0.0","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6","@typescript-eslint/parser":"^8.18.2","@typescript-eslint/eslint-plugin":"^8.18.2"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_0.1.0_1753563783299_0.7241852547173158","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@goatlab/node-backend","version":"0.1.1","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@0.1.1","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"316de29cf310e29fb42f59d75e787f20ca78e6f2","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-0.1.1.tgz","fileCount":139,"integrity":"sha512-b0stkb47xI52iKRK7NaZpMT7pGxFCY5YxsUmJND9k1jVgEYPLC0Rt2qni8HlS9hYVGLng7hDFKLMK4v9mDJBdQ==","signatures":[{"sig":"MEQCIAE4aNRqLgLq47jCGO7j1t9m6LsbbrDBUcGJZUfcZJGLAiBjm1aEkY+Jz/YV4iDbQZMm89/CrHVNtCOCeNKjDdl6lQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":585000},"main":"dist/index.js","_from":"file:goatlab-node-backend-0.1.1.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/cae5cb8a3a225a69c140b1ee7106174e/goatlab-node-backend-0.1.1.tgz","_integrity":"sha512-b0stkb47xI52iKRK7NaZpMT7pGxFCY5YxsUmJND9k1jVgEYPLC0Rt2qni8HlS9hYVGLng7hDFKLMK4v9mDJBdQ==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.0.0","undici":"^7.12.0","express":"^4.21.2","tiny-lru":"^11.3.3","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","@sentry/node":"^8.44.0","@trpc/server":"^11.0.0","passport-jwt":"^4.0.1","ua-parser-js":"^1.0.40","node-mocks-http":"^1.16.2","trpc-to-openapi":"^2.0.0","@goatlab/js-utils":"0.9.0","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.9.1","@sentry/profiling-node":"^8.44.0","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@types/express":"^5.0.0","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6","@typescript-eslint/parser":"^8.18.2","@typescript-eslint/eslint-plugin":"^8.18.2"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_0.1.1_1753608613972_0.8543261322278044","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@goatlab/node-backend","version":"0.2.0","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@0.2.0","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"ea3c7037d7b0c07257b1ba7942a02f3380175449","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-0.2.0.tgz","fileCount":139,"integrity":"sha512-VknL6mU1iO2gJgVRgXTSqpf9WhpAnjEe1HVQsTbYWD/GGvFABQ+guL0Tk25sLnggXUG8K7gyEwMsmTcbii3gHQ==","signatures":[{"sig":"MEYCIQCu8b8zbImiVfOt/8ACUtgH5nYeUK/vJf7HinoT/uei5gIhAP91WyMJK1d1GKSVu8k4GlbZT11UoEfZ8C7WlkJJxeCt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":599087},"main":"dist/index.js","_from":"file:goatlab-node-backend-0.2.0.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/0cf96d96ab7d5e415bb5fa099403cfd4/goatlab-node-backend-0.2.0.tgz","_integrity":"sha512-VknL6mU1iO2gJgVRgXTSqpf9WhpAnjEe1HVQsTbYWD/GGvFABQ+guL0Tk25sLnggXUG8K7gyEwMsmTcbii3gHQ==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.9.0","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.9.2","@sentry/profiling-node":"^9.42.0","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@types/express":"^5.0.0","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6","@typescript-eslint/parser":"^8.18.2","@typescript-eslint/eslint-plugin":"^8.18.2"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_0.2.0_1753642121651_0.6811209448898106","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@goatlab/node-backend","version":"0.2.1","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@0.2.1","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"67e8c45b293f44a0c2794ec93cc002cf15038a52","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-0.2.1.tgz","fileCount":142,"integrity":"sha512-bj7aF9kSAJo5ElsYT/ilmP/ildOQX2Dmc/Qrga0SGHc4dLjM3GaDQcR8q8C7GMOR6n7MEfu8ufOW2YRRcmp1tA==","signatures":[{"sig":"MEUCIDrjH4/MA4VK/TLVgMnsYcaIoSmD2MLX6jNNVznI18FDAiEAklXLsUsVeupxdLhCdXB21nR5ZcZ3MRUrMgfMMKH+b3o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":597418},"main":"dist/index.js","_from":"file:goatlab-node-backend-0.2.1.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/306422adee258ac5793a8611249ccb5a/goatlab-node-backend-0.2.1.tgz","_integrity":"sha512-bj7aF9kSAJo5ElsYT/ilmP/ildOQX2Dmc/Qrga0SGHc4dLjM3GaDQcR8q8C7GMOR6n7MEfu8ufOW2YRRcmp1tA==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.9.0","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.9.2","@sentry/profiling-node":"^9.42.0","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@types/express":"^5.0.0","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6","@typescript-eslint/parser":"^8.18.2","@typescript-eslint/eslint-plugin":"^8.18.2"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_0.2.1_1753703861412_0.30481779826078315","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@goatlab/node-backend","version":"0.2.2","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@0.2.2","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"a6d13b721355ec891c509d382dee52d5bfb5aa7c","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-0.2.2.tgz","fileCount":145,"integrity":"sha512-Jb+JBD/Ui88qhOxwIrrKWckFUUVxmTktg2yTLv2buSnAoQxQASZUGBCkwjM33u2Uyyji1zhJMEUmFjcN9jiLgA==","signatures":[{"sig":"MEQCHwj7pnFNoF2trAf9uSAYhTLmG+t16FApti4rSffhhj4CIQCRh1mEKWbzjn0aHzZbBRAyo/8DqDDqGYD112sachc1MA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":608011},"main":"dist/index.js","_from":"file:goatlab-node-backend-0.2.2.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/7722502c793bd9cace46e495fc490a07/goatlab-node-backend-0.2.2.tgz","_integrity":"sha512-Jb+JBD/Ui88qhOxwIrrKWckFUUVxmTktg2yTLv2buSnAoQxQASZUGBCkwjM33u2Uyyji1zhJMEUmFjcN9jiLgA==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.0","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.10.0","@sentry/profiling-node":"^9.42.0","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@types/express":"^5.0.0","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6","@typescript-eslint/parser":"^8.18.2","@typescript-eslint/eslint-plugin":"^8.18.2"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_0.2.2_1753716142062_0.18719989363062717","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@goatlab/node-backend","version":"0.2.3","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@0.2.3","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"47df9b91d350f3147b1939fa27e742dc2fedda78","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-0.2.3.tgz","fileCount":145,"integrity":"sha512-Fug/7l7fktwAZ9hCrX7+mRNnGz9lYVNdaJEEFiHtRWPGIOGaUNw1Hz2DVNreQfkqoP3XO00gsuuiV1uAlMEs3g==","signatures":[{"sig":"MEQCIAxMXqQJKPcqeEdzjZ+a1boBenw+HX7PauK5qsVlCO8+AiBxcZb8poi5KKJeyQgx/PrmmDl5suPjs4V1m5JPetvUVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":608034},"main":"dist/index.js","_from":"file:goatlab-node-backend-0.2.3.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/0ba8bf4cc700387fae6327dd5f9f8e43/goatlab-node-backend-0.2.3.tgz","_integrity":"sha512-Fug/7l7fktwAZ9hCrX7+mRNnGz9lYVNdaJEEFiHtRWPGIOGaUNw1Hz2DVNreQfkqoP3XO00gsuuiV1uAlMEs3g==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.0","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.10.0","@sentry/profiling-node":"^9.42.0","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@types/express":"^5.0.0","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6","@typescript-eslint/parser":"^8.18.2","@typescript-eslint/eslint-plugin":"^8.18.2"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_0.2.3_1753718132163_0.8841632012544536","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@goatlab/node-backend","version":"0.2.4","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@0.2.4","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"f763fd4a73ab22f3e10d0498bcfe65f7a7cf3247","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-0.2.4.tgz","fileCount":145,"integrity":"sha512-VuhaKEb1mR3GWoJEkyYLk0o5xlkfhd/76ycvTEHoij/swxgC/P1arSFrAaUz0vZg9EJSxPcUntveqM5PwOTHmQ==","signatures":[{"sig":"MEUCIQCHU3dzhKmm3SvE4Fi+kxNyM7+jpyurpwI0jC5XG9jzBwIgDzYSyAz9S9Z5WVCIR396yUUc84sub8Z4h4epB/PQvEs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":607886},"main":"dist/index.js","_from":"file:goatlab-node-backend-0.2.4.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/0375e2846778e1e53369b44eb6f8fd96/goatlab-node-backend-0.2.4.tgz","_integrity":"sha512-VuhaKEb1mR3GWoJEkyYLk0o5xlkfhd/76ycvTEHoij/swxgC/P1arSFrAaUz0vZg9EJSxPcUntveqM5PwOTHmQ==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.0","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.10.0","@sentry/profiling-node":"^9.42.0","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@types/express":"^5.0.0","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6","@typescript-eslint/parser":"^8.18.2","@typescript-eslint/eslint-plugin":"^8.18.2"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_0.2.4_1753721335582_0.8566986571407331","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@goatlab/node-backend","version":"0.2.5","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@0.2.5","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"8a6d46ea57c428990e32bb0b3bbe4a3f9f86e353","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-0.2.5.tgz","fileCount":145,"integrity":"sha512-HzxlxtJ0BzwrhggYe8g9psYXPK5Y+gXxRLyf3hqC25I7Sm7bdH1DUxmM2wGKtjssUJBvYeMENGygET4qpqeQ1w==","signatures":[{"sig":"MEUCIHYfblyJfKDNg1IbfbwBdauI9vAp/RH2+r+nhgX3niH+AiEAzJiLCe+jU6O1nSeFeCSjbfFcUpLZA33GNcOxJuk+BoQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":607945},"main":"dist/index.js","_from":"file:goatlab-node-backend-0.2.5.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/2e426396c82644bed1b4a084fcc9d6d9/goatlab-node-backend-0.2.5.tgz","_integrity":"sha512-HzxlxtJ0BzwrhggYe8g9psYXPK5Y+gXxRLyf3hqC25I7Sm7bdH1DUxmM2wGKtjssUJBvYeMENGygET4qpqeQ1w==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.0","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.10.0","@sentry/profiling-node":"^9.42.0","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@types/express":"^5.0.0","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6","@typescript-eslint/parser":"^8.18.2","@typescript-eslint/eslint-plugin":"^8.18.2"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_0.2.5_1753722178763_0.44139508150892026","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@goatlab/node-backend","version":"0.2.6","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@0.2.6","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"c29c94362a01bb89a035ba55c0c6af7f34466922","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-0.2.6.tgz","fileCount":151,"integrity":"sha512-ByFyl1PynS6PS8/eQ435MM2fdmgSuWhRFF3MCfyftcuUxwEjn6DuRiOWY6zGnp77rRlfDy8C0mQ1Vwhr7R4HjA==","signatures":[{"sig":"MEUCIA0gKOE0mtrN0/oJIhMAe6g4V5T7n6W9mGuQGAF21pz4AiEAhkKDnGu3uzccugJMp5ystT6hQdSTmYAJeqV6nQ2juUU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":637089},"main":"dist/index.js","_from":"file:goatlab-node-backend-0.2.6.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/275ede1a75c03db752656d0f3ddb2baa/goatlab-node-backend-0.2.6.tgz","_integrity":"sha512-ByFyl1PynS6PS8/eQ435MM2fdmgSuWhRFF3MCfyftcuUxwEjn6DuRiOWY6zGnp77rRlfDy8C0mQ1Vwhr7R4HjA==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.0","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.10.0","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6","@typescript-eslint/parser":"^8.18.2","@typescript-eslint/eslint-plugin":"^8.18.2"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_0.2.6_1753743211962_0.04412512325184892","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@goatlab/node-backend","version":"0.4.0","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@0.4.0","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"f50a0c7f68bbc5e3f085048b9b89eb1c998b4953","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-0.4.0.tgz","fileCount":166,"integrity":"sha512-ZzvCPTVsOjlzqx37D4cYSqxwGCJhyl5QRxB2Ad4p/acJkeAZy3wfwukKk9V2ac6uT1M3VclluZqg4asUmxR1Fw==","signatures":[{"sig":"MEUCIFmJ0y+cL2f0nysTBgbqcJl8h9eyugwRYxDOhTddd5qZAiEA6N8dxx/tEQH8/pQdRHcE7DbZyd7lTrY0VWvpgOF/dQo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":736373},"main":"dist/index.js","_from":"file:goatlab-node-backend-0.4.0.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/bcbe9b2105f0537173b6448714af4159/goatlab-node-backend-0.4.0.tgz","_integrity":"sha512-ZzvCPTVsOjlzqx37D4cYSqxwGCJhyl5QRxB2Ad4p/acJkeAZy3wfwukKk9V2ac6uT1M3VclluZqg4asUmxR1Fw==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.0","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.10.0","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6","@typescript-eslint/parser":"^8.18.2","@typescript-eslint/eslint-plugin":"^8.18.2"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_0.4.0_1753796920867_0.15612567788707765","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@goatlab/node-backend","version":"1.0.0","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.0.0","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"3476a9292fd883cc8278c35e3cba6047bbb5a81a","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.0.0.tgz","fileCount":166,"integrity":"sha512-+gtN3/i0rqfopk02QzQ0ldTiCZTjmGMzMEajyL8DPH76RzKi/luoCq0A/NR50RJtjYNuilWInRmI2//IZg//dg==","signatures":[{"sig":"MEQCIDAcUned3oa6HjbVvoyP68rTCw82QMzWXk3NzPJk5CEfAiBKoJDwzjd8RXEQpsu6khm2fuTmz7jppZIv/J3H0sq3VA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":734497},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.0.0.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/0142787215c19b9c1a4161f333624c43/goatlab-node-backend-1.0.0.tgz","_integrity":"sha512-+gtN3/i0rqfopk02QzQ0ldTiCZTjmGMzMEajyL8DPH76RzKi/luoCq0A/NR50RJtjYNuilWInRmI2//IZg//dg==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.0","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.10.0","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6","@typescript-eslint/parser":"^8.18.2","@typescript-eslint/eslint-plugin":"^8.18.2"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.0.0_1753801343018_0.16449656488773234","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@goatlab/node-backend","version":"1.0.1","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.0.1","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"6cd87d8a0f6a67d5aa99c731b1e613329c1f97cd","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.0.1.tgz","fileCount":166,"integrity":"sha512-xP6TyUZZBCq/mtchH6AsfQkfXnyc/aUVgG4Cu9FDqZd0Q1V879rIol5yFzucTlD3bL0nQIiMszdPVElhyVpoTQ==","signatures":[{"sig":"MEUCIG1qPpBSxB65gx/lYbUFJmnXxk5Fwt4Bx3Nu+kswIOlTAiEAyslz54H2SJHNCSkYxUvV+jMIUvMrfwqcR2sMi44AfXk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":735100},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.0.1.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/01ec08700c0fdc56eb0e2561ba33812b/goatlab-node-backend-1.0.1.tgz","_integrity":"sha512-xP6TyUZZBCq/mtchH6AsfQkfXnyc/aUVgG4Cu9FDqZd0Q1V879rIol5yFzucTlD3bL0nQIiMszdPVElhyVpoTQ==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.0","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.10.1","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6","@typescript-eslint/parser":"^8.18.2","@typescript-eslint/eslint-plugin":"^8.18.2"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.0.1_1753867040895_0.35610853470436354","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@goatlab/node-backend","version":"1.1.0","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.1.0","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"b277478d4e5a68630703746603d814f9030ef3bc","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.1.0.tgz","fileCount":169,"integrity":"sha512-qzKd4VDutTKs7TP7RTp4+A50dhzO1c1PTGLPLC6yq2n6paTafcTnaONpBzzIfSDE9daTZOnuzhHorgK6Xrn79Q==","signatures":[{"sig":"MEUCIQCElhVr17hHrrUAIZ2V+FLNp8hiOqGwLMgIayvY+cb3twIgN73WG7g810qZathpU8w8JjPWHEan/de/picY/dwu+mg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":758040},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.1.0.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"eslint src --fix","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/4c028a1adab24a89025e9212086af42e/goatlab-node-backend-1.1.0.tgz","_integrity":"sha512-qzKd4VDutTKs7TP7RTp4+A50dhzO1c1PTGLPLC6yq2n6paTafcTnaONpBzzIfSDE9daTZOnuzhHorgK6Xrn79Q==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.0","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.10.2","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","eslint":"^8.5.0","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","prettier":"^2.6.1","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6","@typescript-eslint/parser":"^8.18.2","@typescript-eslint/eslint-plugin":"^8.18.2"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.1.0_1753871522278_0.4531131878093382","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@goatlab/node-backend","version":"1.1.1","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.1.1","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"f22087e2a4a8ad0ffe38408a9a618670a85d19d8","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.1.1.tgz","fileCount":169,"integrity":"sha512-4KgnNmCiGooy3IJnINa8NJO2fAJzLVw+FS5eGzl+d+/Rk2WXM5ZKgdMENgCWcRluV42ZPaK+a5z0ZldnUB30sA==","signatures":[{"sig":"MEYCIQCg9m7Oi/Yi2uyVMcH3dTLBt8VTTwp+q5dcReNIHApNwAIhAMPi2nmz9VmzVqPH1kvcsMMJUWaSM7peVf1iE6Cd3I7R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":758026},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.1.1.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/007d29ac06461b732ee52721f87479e9/goatlab-node-backend-1.1.1.tgz","_integrity":"sha512-4KgnNmCiGooy3IJnINa8NJO2fAJzLVw+FS5eGzl+d+/Rk2WXM5ZKgdMENgCWcRluV42ZPaK+a5z0ZldnUB30sA==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.0","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.10.2","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.0","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.1.1_1753902877103_0.6912179692400386","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@goatlab/node-backend","version":"1.1.2","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.1.2","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"ded974bfb4db9683d332e9614c06090fd4625c40","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.1.2.tgz","fileCount":169,"integrity":"sha512-EziFpFBcs5Q1PvXaP/ZuYlohGoG3geBHI0B6Exv0gwj1IwGBH5O6HsL9lks+m4h+gKn2xwsgQE6Lg1n1zEFFRw==","signatures":[{"sig":"MEUCICZKRdmOXk+A1RoRs6958/566u09h47oQK2uLI2gp965AiEAu7uNHeyIWDt417L5nlChhFT5tNW4hDadDC3KV24jBYI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":758890},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.1.2.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/e695d1090a85fc7a2a82689a50e65f61/goatlab-node-backend-1.1.2.tgz","_integrity":"sha512-EziFpFBcs5Q1PvXaP/ZuYlohGoG3geBHI0B6Exv0gwj1IwGBH5O6HsL9lks+m4h+gKn2xwsgQE6Lg1n1zEFFRw==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.0","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.10.2","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.0","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.1.2_1753957876388_0.15052254089003325","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@goatlab/node-backend","version":"1.1.3","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.1.3","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"482a65b345c655302588729287194ad0366c6e27","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.1.3.tgz","fileCount":169,"integrity":"sha512-96JjOCW9NLeS8PJuHJavd00FEl+91x2ZOK/kYLaOj95j5Ejvzk0oMlSNxFVM+wvIO3wPrOudCxnC1eDPpevk4g==","signatures":[{"sig":"MEQCIB80N/KjRERGQgdGXCxEePcF1m/ihYuO/PARCWFjhJceAiAW8keRV1FPpWHvkjD9+U/ceQHFnQBb/wpAV/7sO10Zqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":762323},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.1.3.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/e64f993865f647a79d1fb31daab2438b/goatlab-node-backend-1.1.3.tgz","_integrity":"sha512-96JjOCW9NLeS8PJuHJavd00FEl+91x2ZOK/kYLaOj95j5Ejvzk0oMlSNxFVM+wvIO3wPrOudCxnC1eDPpevk4g==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.0","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.10.2","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.0","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.1.3_1754593231147_0.21942107259395183","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@goatlab/node-backend","version":"1.1.4","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.1.4","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"f135932b0b5d3354a97899e35485cd795e0ab402","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.1.4.tgz","fileCount":169,"integrity":"sha512-dSQSsBBQm8fT6F/EBuyE0mlbHoWVIKT5Vsms9iud5CJn/E/KYRimEB+Ps4ZndLYfUZWzIqNyNgcJk592AQakqQ==","signatures":[{"sig":"MEUCIQD1OQ3c5YD2pSF7eHQH3R6hX5d4VMWsNyBsqTmDvYjdJQIgC6I5sSGzBteR9QG4eIAX6IS4WKIICB1UWd6zmjSrl0g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":765279},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.1.4.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/bb5fc463ef688d75f6e7831071b0ec1a/goatlab-node-backend-1.1.4.tgz","_integrity":"sha512-dSQSsBBQm8fT6F/EBuyE0mlbHoWVIKT5Vsms9iud5CJn/E/KYRimEB+Ps4ZndLYfUZWzIqNyNgcJk592AQakqQ==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.0","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.10.2","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.0","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.1.4_1754752809022_0.7197660969139688","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@goatlab/node-backend","version":"1.1.5","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.1.5","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"0c9d828d50c4c70692f037f60c36239ab3140068","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.1.5.tgz","fileCount":169,"integrity":"sha512-9PqHxD+oS1JLc86VGTj3a02NzKK9Dks4+xYBjArdBuWJI0zo/m8uM8QdpU9+E0CkQRs2EN2lsonBxW0sFGwZwA==","signatures":[{"sig":"MEUCICcvMF5gTUEgAQdWHjsBQKRaZ2/8etDmh9nQEwoK2aP4AiEAukJBF03h6ZWAsBipO8G0NV9FmqmSCZwX4SmOAzl83eQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":765069},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.1.5.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/c276ff7b313d8d9ceb7e4cff0747064a/goatlab-node-backend-1.1.5.tgz","_integrity":"sha512-9PqHxD+oS1JLc86VGTj3a02NzKK9Dks4+xYBjArdBuWJI0zo/m8uM8QdpU9+E0CkQRs2EN2lsonBxW0sFGwZwA==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.0","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.10.2","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.0","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.1.5_1754755557894_0.1808605206683156","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"@goatlab/node-backend","version":"1.1.6","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.1.6","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"30a0ada8a0b4b82d2a6ca32731fc34b5d3575049","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.1.6.tgz","fileCount":169,"integrity":"sha512-PFqflUNQjycnufJvYw3YhkyMqxkt0XVxZHxRPsmqSXey+2H8XJGgCV/ApKrmdFaPkaQ68nSVUf4vrjPIQ1vlfA==","signatures":[{"sig":"MEYCIQDB9Tv9//YO1X0MBxqLUFqfIzrMrQ9IkSRVTZQ+OOWtIQIhAIUaYv5ehSKKx4JHJouA+4YJzLm9hJdKCQOHEZlN0gri","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":765069},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.1.6.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/331736b5b840a00e8b58712f83b6186e/goatlab-node-backend-1.1.6.tgz","_integrity":"sha512-PFqflUNQjycnufJvYw3YhkyMqxkt0XVxZHxRPsmqSXey+2H8XJGgCV/ApKrmdFaPkaQ68nSVUf4vrjPIQ1vlfA==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.1","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.10.3","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.0","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.1.6_1757244311186_0.445639213738815","host":"s3://npm-registry-packages-npm-production"}},"1.1.7":{"name":"@goatlab/node-backend","version":"1.1.7","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.1.7","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"c6e87f894f5e8915b30a43a389e7fd5db489e4cd","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.1.7.tgz","fileCount":169,"integrity":"sha512-fyqc3h78NKO9nfT1M4wenOsEI3eNaT16UHO1/eEtk8J1MmHoAw3ho288wSG3JHlvN8ReqM/Hh6gaQK8sNHzsBQ==","signatures":[{"sig":"MEUCIGF9q8zwbDNeKVG5ofhA7JPA19UuFyt+e8Qxa5x0xQ8EAiEAnr/eo7JtjqyTegZh0Km07T1jP/dnW64BeVyMrMVo1IU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":765083},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.1.7.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/76ccb84cf8c20766edee3084023ca0f6/goatlab-node-backend-1.1.7.tgz","_integrity":"sha512-fyqc3h78NKO9nfT1M4wenOsEI3eNaT16UHO1/eEtk8J1MmHoAw3ho288wSG3JHlvN8ReqM/Hh6gaQK8sNHzsBQ==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.2","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.10.4","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.0","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.1.7_1757246322943_0.3787693471780911","host":"s3://npm-registry-packages-npm-production"}},"1.1.8":{"name":"@goatlab/node-backend","version":"1.1.8","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.1.8","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"1311616d160c0578821a1a7386ff0444094084dc","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.1.8.tgz","fileCount":169,"integrity":"sha512-WqbyVdgSOZL7sBvZlOPiwgB9kLb2cT0KdNFlJS+kz2g1Miu3aNjgVIKCqM1medJ250PUAOPN1QuFOSPV1RM65A==","signatures":[{"sig":"MEYCIQCZ4bJmBEiAPxk+tRMlbaakeP2snZiipAyqoF9zbwjwhgIhAM35A4zAts0MzCilrWcqvEu0NPCF+Jz3jc0NNXD8yggk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":765773},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.1.8.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/6aa126742910bc5b57b8a684b6cd8636/goatlab-node-backend-1.1.8.tgz","_integrity":"sha512-WqbyVdgSOZL7sBvZlOPiwgB9kLb2cT0KdNFlJS+kz2g1Miu3aNjgVIKCqM1medJ250PUAOPN1QuFOSPV1RM65A==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.2","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.10.4","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.0","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.1.8_1763038101676_0.3681647622865021","host":"s3://npm-registry-packages-npm-production"}},"1.1.10":{"name":"@goatlab/node-backend","version":"1.1.10","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.1.10","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"4c11500be7d79c4b067a0ef15f52fd7cee0176ca","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.1.10.tgz","fileCount":172,"integrity":"sha512-In8cVHFubJQiqJPSKVAUNnbkDn6KrrKM6qhH+DOfrDT6ZfDsVxZ8AeCZcu5EjysQE18eEzFZ/FFHnmh5uyHvKA==","signatures":[{"sig":"MEYCIQCwvgl2ekFHpuOvcEjbj9crv6VDosW5qCiE+39CMQ5sugIhALz8GSg4wfkdIKpzdipsPdLhWAFOQZ0uPp811Z1gVRxB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":775445},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.1.10.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/370c29cacfc7610a9478daea5df72590/goatlab-node-backend-1.1.10.tgz","_integrity":"sha512-In8cVHFubJQiqJPSKVAUNnbkDn6KrrKM6qhH+DOfrDT6ZfDsVxZ8AeCZcu5EjysQE18eEzFZ/FFHnmh5uyHvKA==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.2","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.10.4","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.0","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.1.10_1763039890266_0.3286574576077377","host":"s3://npm-registry-packages-npm-production"}},"1.1.11":{"name":"@goatlab/node-backend","version":"1.1.11","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.1.11","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"3596c6d36ee8ec0f996cf567d5a3b992b649221f","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.1.11.tgz","fileCount":172,"integrity":"sha512-8eQQOyH6bYsgKCEYd3ur4IhzgAxXxRig4iSTjQJb8WKl1DGQlaqqbKrKimtctoG6Z+6Q807s6pJ+sclj3+FtiA==","signatures":[{"sig":"MEUCIFgR55VSLHXZ/XMkxyoce9gtvZRI6iwXg5O4vT2Em3p8AiEAuGIy1M5cELRBNwsYE1rFMyJbMsAITuQfBVel6hwCO6E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":780381},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.1.11.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/9fa08de419105a38b4b3748575054f3a/goatlab-node-backend-1.1.11.tgz","_integrity":"sha512-8eQQOyH6bYsgKCEYd3ur4IhzgAxXxRig4iSTjQJb8WKl1DGQlaqqbKrKimtctoG6Z+6Q807s6pJ+sclj3+FtiA==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.2","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.10.4","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.0","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.1.11_1767380334842_0.04086390206278678","host":"s3://npm-registry-packages-npm-production"}},"1.1.12":{"name":"@goatlab/node-backend","version":"1.1.12","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.1.12","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"968eb018aca1c243681647c7406ed75499db788a","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.1.12.tgz","fileCount":175,"integrity":"sha512-Oc6xSLwyqaNCNUrQkxBOxPSCFkm3Z4dkC+hHrkN2S24FvqUjG+JGeH5cjc99FPzVdApWndxzaiZGO2qB6cqM2Q==","signatures":[{"sig":"MEQCICgU8bVPHtgMayGl9bJYnSFmm7RWE4laHt4xA5yyKnthAiBOTZ8ZD6u0EP/M58BPtAhF09SJK7Yn98fZz4zT/6cTlw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":792888},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.1.12.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/57f0a0c44a21b0577b10491a80d4ae55/goatlab-node-backend-1.1.12.tgz","_integrity":"sha512-Oc6xSLwyqaNCNUrQkxBOxPSCFkm3Z4dkC+hHrkN2S24FvqUjG+JGeH5cjc99FPzVdApWndxzaiZGO2qB6cqM2Q==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.2","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.10.4","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.0","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.1.12_1767389446224_0.9498483266418765","host":"s3://npm-registry-packages-npm-production"}},"1.1.13":{"name":"@goatlab/node-backend","version":"1.1.13","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.1.13","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"33933eccb6a4b29c87cafbb23e365904946d0e08","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.1.13.tgz","fileCount":175,"integrity":"sha512-aqMizOCrwE8FbywO42cXC58mUQaZsJo7tlH/vIKUfueigyjFg5r2IGmAoFMnUEr03PfZ3/NGjypTycrLV2GKzw==","signatures":[{"sig":"MEQCIHHVIzeT6bAfc2bxGV9IBQQlXEHtaMTDHRlf5JfSc/fqAiBkZoWqZPPnaoz4RBl8WksLaPEgF5DdxC5lqYvXrzwpQw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":792888},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.1.13.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/92bfd7c2abf481e6a08f7647d89a38bb/goatlab-node-backend-1.1.13.tgz","_integrity":"sha512-aqMizOCrwE8FbywO42cXC58mUQaZsJo7tlH/vIKUfueigyjFg5r2IGmAoFMnUEr03PfZ3/NGjypTycrLV2GKzw==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.2","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.10.4","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.0","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.1.13_1767389500724_0.7749543749350507","host":"s3://npm-registry-packages-npm-production"}},"1.1.14":{"name":"@goatlab/node-backend","version":"1.1.14","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.1.14","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"f7094aa2beac97f4f396ab4ae7d54b6e4dc0ce2a","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.1.14.tgz","fileCount":175,"integrity":"sha512-hSCjnqZXsnmw9MopsDOkjdpbMzQDIlX9XinMhTi+kr1dm8cn8K4YuFXjA4SFwYlFjkAXnHcfzIdWOiikQLk3KA==","signatures":[{"sig":"MEUCIQDafm3+YmDVn8wNh/1vlugQO/Cv3Ulo6IbVo/fuis6jhgIgN1nN9ibc+053ADS8q07uxSXwE05JpOFTdxY0yQU7fDA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":795383},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.1.14.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/74341abab6aa98d53a4709b1391bfe58/goatlab-node-backend-1.1.14.tgz","_integrity":"sha512-hSCjnqZXsnmw9MopsDOkjdpbMzQDIlX9XinMhTi+kr1dm8cn8K4YuFXjA4SFwYlFjkAXnHcfzIdWOiikQLk3KA==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.2","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.10.4","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.0","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.1.14_1767616311414_0.44094542589591224","host":"s3://npm-registry-packages-npm-production"}},"1.1.15":{"name":"@goatlab/node-backend","version":"1.1.15","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.1.15","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"afc803eb04c55f78889c3e221970eb628cea4cb6","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.1.15.tgz","fileCount":175,"integrity":"sha512-oLI8ywaeKVLt1TAjp6zKOoq0VdxQfbyDz0vFy+gNJwd50NQ9Nyl5kgEFE4CRnQyTAhHlynOswVfsNN/EL/CziA==","signatures":[{"sig":"MEYCIQCu9DQ2rHm+XEXfE3iHdtbXdAKdOYdwprGY3fXo5KSipAIhAM1cNennf5n1qKtEIyu6c85fhY1f1DtMG3yC4XrP6eDg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":795383},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.1.15.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/af7ba0e8f670eba945a9e9ea6a6441d9/goatlab-node-backend-1.1.15.tgz","_integrity":"sha512-oLI8ywaeKVLt1TAjp6zKOoq0VdxQfbyDz0vFy+gNJwd50NQ9Nyl5kgEFE4CRnQyTAhHlynOswVfsNN/EL/CziA==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.2","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.10.4","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.0","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.1.15_1767616357635_0.6414638324226332","host":"s3://npm-registry-packages-npm-production"}},"1.1.16":{"name":"@goatlab/node-backend","version":"1.1.16","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.1.16","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"868765b9d22ea23f142aedd0a436425e1096819f","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.1.16.tgz","fileCount":174,"integrity":"sha512-yeGBE5cvAa8ilM4ctGApVPNfpBobTYDK//Pyk59xMLk9m4NlHxysrpHslYGN/CQ9mk0pGHWhjeG0/E0KahMajA==","signatures":[{"sig":"MEUCIQDArnjT7Pp9QxQN1ZHbXzQIn3sUr23FtmNMEv0WP+6c5AIgGZNk0C88YNjIlJDR8wIDJiBktUOge5Rw/3XoPoiKUUk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":796917},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"gitHead":"749e3cce87881d9f9b3730cf8887e90f5516934d","private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"deprecated":"broken workspace references","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"catalog:","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"workspace:*","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"workspace:*","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"catalog:","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"catalog:","ts-node":"catalog:","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"workspace:*","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"workspace:*","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.1.16_1767618706749_0.8154493790883592","host":"s3://npm-registry-packages-npm-production"}},"1.1.17":{"name":"@goatlab/node-backend","version":"1.1.17","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.1.17","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"fda033eae11f1ac3efa10c41b31ea33a0055d325","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.1.17.tgz","fileCount":175,"integrity":"sha512-zjiq/I553IHF3rPSz7nU1xLEnx2lhogp2f0OgVNc4uRrfAcpNWSgehCFxddujF74XYnk1E3QtJjEwPZ5vNIuwA==","signatures":[{"sig":"MEUCIHfxD2L90vK4oFCmzJ8nq7X7UzuidlsLs0qTr6p+B0oHAiEA5xNDNgylREvmkDi+AkjyACLPo+188sFeT/9JCy0mLQI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":797972},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.1.17.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/fec3bea260ecfe506e82e7da39de5ad7/goatlab-node-backend-1.1.17.tgz","_integrity":"sha512-zjiq/I553IHF3rPSz7nU1xLEnx2lhogp2f0OgVNc4uRrfAcpNWSgehCFxddujF74XYnk1E3QtJjEwPZ5vNIuwA==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.2","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.10.4","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.0","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.1.17_1767618820553_0.8808321553200797","host":"s3://npm-registry-packages-npm-production"}},"1.1.18":{"name":"@goatlab/node-backend","version":"1.1.18","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.1.18","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"98b2477b6050914bda1b851a5229ac021747aaea","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.1.18.tgz","fileCount":175,"integrity":"sha512-A7EF4QPfocQGPjl2Kos368eGO+KBqhtzDf/b1JUz2W/pZINmeCr6OHZ/bnKjWekV3B3pyJbPs3Ai7XTPiytWzA==","signatures":[{"sig":"MEQCIGuA93+8kyYWEsG/dH7IV8lPaSctkMD/dMNsbN9IC6/5AiBefLGxACYOCn3sxBRa82lc6JGObRGC2uWtgB0L/EHIWQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":800204},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.1.18.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/336b9b9616f9c7fd4b09e655c1842872/goatlab-node-backend-1.1.18.tgz","_integrity":"sha512-A7EF4QPfocQGPjl2Kos368eGO+KBqhtzDf/b1JUz2W/pZINmeCr6OHZ/bnKjWekV3B3pyJbPs3Ai7XTPiytWzA==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.2","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.10.4","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.0","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.1.18_1767620185958_0.4788986987409798","host":"s3://npm-registry-packages-npm-production"}},"1.1.19":{"name":"@goatlab/node-backend","version":"1.1.19","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.1.19","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"637aef12bd63632d2eaa47b32bcaff40acbf1f86","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.1.19.tgz","fileCount":175,"integrity":"sha512-YJrz7mK4VEyy8u6lGvtBYNuqJyL9Vif9B1A9hkpguMrto66+th3iU+uhPRPRuNuKb9q9XEMXZwx1z2kiJmPc1Q==","signatures":[{"sig":"MEUCIQC/6c08zBxaUfewspDZnQVqMpReDei3Dk8v/JvJabpddgIgZgE0ubCFJg/VQLNwa59jyOVE6J9Rw65nzdbKixfemss=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":800422},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.1.19.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/3eac992fc4823dd4c2746d2f9188c067/goatlab-node-backend-1.1.19.tgz","_integrity":"sha512-YJrz7mK4VEyy8u6lGvtBYNuqJyL9Vif9B1A9hkpguMrto66+th3iU+uhPRPRuNuKb9q9XEMXZwx1z2kiJmPc1Q==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.2","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.10.4","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.0","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.1.19_1767620997509_0.7000612606491594","host":"s3://npm-registry-packages-npm-production"}},"1.1.20":{"name":"@goatlab/node-backend","version":"1.1.20","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.1.20","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"684835ea8e233e590d800226e6e987d21a8cc258","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.1.20.tgz","fileCount":175,"integrity":"sha512-0+HCjrbNkEROLu308U3RWDIQ2BFwstyt6stBIQ64LEuZk1sU6XUNtUrcQjwY2y1mE7pU0lRr0rdGFstc3oaK/A==","signatures":[{"sig":"MEUCIQDCe8+n0ty6ogR6RU2h3Zb8kkkgwiHb5+sD1onBa3gDIgIgfn+Np9SWBfDWHoL8BrNMjzZJbeDNNgtM/3U5EEN/X7I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":800422},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.1.20.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/af8eca2f16b769a1e7183e5a1c91e664/goatlab-node-backend-1.1.20.tgz","_integrity":"sha512-0+HCjrbNkEROLu308U3RWDIQ2BFwstyt6stBIQ64LEuZk1sU6XUNtUrcQjwY2y1mE7pU0lRr0rdGFstc3oaK/A==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.2","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.11.0","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.0","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.1.20_1767621975871_0.8575812121016839","host":"s3://npm-registry-packages-npm-production"}},"1.1.21":{"name":"@goatlab/node-backend","version":"1.1.21","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.1.21","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"0cd7ad02cbfc51e43d1bcd85d8cda400562b1d65","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.1.21.tgz","fileCount":175,"integrity":"sha512-1xm0jspNXg7R35dLO7CrT2lDYkxH5ZzVJ9GsvX3ubLJGptF29BHn97KDRH6aHClr6TCGStX8pWw0aI2n4IQofg==","signatures":[{"sig":"MEUCIBqsgFOrUgshyjYX58M5H6/SsWs9gF/65d8gAId316rJAiEAjO9Pp3xoyKaBC3v7lM9GUEGKrlGajHmq8RKE3eHKWrE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":800746},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.1.21.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/990ffb60fff30717696cb62da96043d4/goatlab-node-backend-1.1.21.tgz","_integrity":"sha512-1xm0jspNXg7R35dLO7CrT2lDYkxH5ZzVJ9GsvX3ubLJGptF29BHn97KDRH6aHClr6TCGStX8pWw0aI2n4IQofg==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.3","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.11.1","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.1","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.1.21_1767623918968_0.2865137927271777","host":"s3://npm-registry-packages-npm-production"}},"1.1.22":{"name":"@goatlab/node-backend","version":"1.1.22","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.1.22","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"75887233bbe6bc80c515a394a5329a532c6499a5","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.1.22.tgz","fileCount":175,"integrity":"sha512-h24FjbfI+kj49vo4q8k2wQXpxIub9JkMVjCp0shcUKX2KS1OYzhHCIj4TXrJMC0VmJLPMz6L2x8R0qALZPMtuw==","signatures":[{"sig":"MEQCIGxYwl7/FJTdQqx+PnlyYWd8i2arWWcKrMKMWrqVzlDmAiBODSZ9/UfNF3fyYS/hNEloHTxhSL6vqK06BaOdWnW1kg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":800754},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.1.22.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/d6de13c1d2a41e67ae688c784929fbe2/goatlab-node-backend-1.1.22.tgz","_integrity":"sha512-h24FjbfI+kj49vo4q8k2wQXpxIub9JkMVjCp0shcUKX2KS1OYzhHCIj4TXrJMC0VmJLPMz6L2x8R0qALZPMtuw==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.3","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.11.1","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.1","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.1.22_1768869085400_0.916307963953978","host":"s3://npm-registry-packages-npm-production"}},"1.1.24":{"name":"@goatlab/node-backend","version":"1.1.24","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.1.24","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"74cdc9e4ef573cd1c519472df8e44c220d4f6417","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.1.24.tgz","fileCount":175,"integrity":"sha512-iNJKOEbrTcnYhCvdTJBq5oeKL0yd2ZPIXizd5Q20swc8fHcHGq7AFdtLtiFLNrFFAUM9UrLoNk9yUCmTSqhlrg==","signatures":[{"sig":"MEYCIQC6YImGyt6PUtQEfh4NvqKlY7yGK718hjcXKXk8GXTKogIhAL5N0HIWyD0m916/XrWqabVYlldwVyAzd01Nie8esbuA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":810915},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.1.24.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/dd42c75a48e9f6f03abe34e3f7f94afc/goatlab-node-backend-1.1.24.tgz","_integrity":"sha512-iNJKOEbrTcnYhCvdTJBq5oeKL0yd2ZPIXizd5Q20swc8fHcHGq7AFdtLtiFLNrFFAUM9UrLoNk9yUCmTSqhlrg==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.3","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.11.1","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.1","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.1.24_1769468608899_0.20389533893066436","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@goatlab/node-backend","version":"1.2.0","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.2.0","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"9dbfb07c8a63d0d46daab413c0273b1fbdd7844d","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.2.0.tgz","fileCount":175,"integrity":"sha512-I9rZ+M6oiX8YoEMaMYOtpyD0OJs3tFvbwn+RlrejdjO6vURv2IwokETM1oC8dC4OFgh7JA32fKOtcf7OBLZElA==","signatures":[{"sig":"MEQCIG5cMxKMA8n8+VbqM7j/Tu50QF64e4j2Zau8zkpcVNajAiABtcyquGaGFzm3AoS8cshuq0OZ7wfrJy5T1ZC1bVvocA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":768276},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.2.0.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/4b0ffce604689f9ed812d5b29c9645ba/goatlab-node-backend-1.2.0.tgz","_integrity":"sha512-I9rZ+M6oiX8YoEMaMYOtpyD0OJs3tFvbwn+RlrejdjO6vURv2IwokETM1oC8dC4OFgh7JA32fKOtcf7OBLZElA==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.3","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.11.1","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.1","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.2.0_1769469272976_0.7213910227298701","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@goatlab/node-backend","version":"1.2.1","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.2.1","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"dcc69be405885de18a9eb920f5dfc682b956e118","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.2.1.tgz","fileCount":175,"integrity":"sha512-Vqpcxo362cQZfjhNz9xqdP/oYO9dicwYmBCT2DYXkoTQ2VyQnuHKPm12OWHc7+fdEwzFA8QlzgKlcNHW9EhYQw==","signatures":[{"sig":"MEYCIQClFrjHQVDo+Dx3p0wogcgUegkK24ALLNeZL43XFy0BtQIhAOLsU4UQDCSil2AHyXC8qdGQx15Y28lZbLCCdgshiFjI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":769851},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.2.1.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/3861aaad79310b632a20174a96a76dd6/goatlab-node-backend-1.2.1.tgz","_integrity":"sha512-Vqpcxo362cQZfjhNz9xqdP/oYO9dicwYmBCT2DYXkoTQ2VyQnuHKPm12OWHc7+fdEwzFA8QlzgKlcNHW9EhYQw==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.3","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.11.1","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.1","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.2.1_1769469966726_0.5555937340112","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@goatlab/node-backend","version":"1.3.0","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.3.0","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"fde75163d7fbe4d01321abb35f0b0b6b8692f42f","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.3.0.tgz","fileCount":175,"integrity":"sha512-+LSgaI1QDjSoZdfNvlZXpmZCl2asPPNVYhxwthY4LKzj7T1UfgEM4AVZAnvd7PG0AeoPsga+H75lRD4izPxn5w==","signatures":[{"sig":"MEUCIQD8IM+ZEN28KbudBW6anA40kLYbtd2KzBY/l9AKLLgEOAIgcNa8t8PETDTbyiQxr7bzw4xy3faC8lOf4jpofX038tk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":780013},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.3.0.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/c7b30781a954d1d2ee4c42dc58e577ba/goatlab-node-backend-1.3.0.tgz","_integrity":"sha512-+LSgaI1QDjSoZdfNvlZXpmZCl2asPPNVYhxwthY4LKzj7T1UfgEM4AVZAnvd7PG0AeoPsga+H75lRD4izPxn5w==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.3","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.11.1","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.1","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.3.0_1771551369588_0.5926132558327364","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@goatlab/node-backend","version":"1.4.0","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.4.0","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"bb159ccde03ed3593106db9cb232d14a74c1949b","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.4.0.tgz","fileCount":175,"integrity":"sha512-ME3H3UJc0obnlClZEf0W/sFmt7IZxgjJkUup8WiQZAAUQS2YY4qgfcnRoVhhmjbpO4VZPiLcXpdNanrXIJSfJw==","signatures":[{"sig":"MEUCIBmiKKcTzQuI9kevQ9zGDo+J81TgaLU+wTn3OnvqWldXAiEAy5aB/y/s0oe9AdFjxIeeQn52/RV9SFkyKOe0gi0YvSs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":787178},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.4.0.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/401e613984162b5d6f6bce5b155d6d29/goatlab-node-backend-1.4.0.tgz","_integrity":"sha512-ME3H3UJc0obnlClZEf0W/sFmt7IZxgjJkUup8WiQZAAUQS2YY4qgfcnRoVhhmjbpO4VZPiLcXpdNanrXIJSfJw==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","ioredis":"^5.6.1","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.3","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.11.1","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.1","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.4.0_1773263442651_0.41088511817095585","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@goatlab/node-backend","version":"1.4.1","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.4.1","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"1e51daa4de1c52cd22551727f5bdc875135f2178","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.4.1.tgz","fileCount":175,"integrity":"sha512-mY17rzCEZ6XPgomflvMxapI8VMRV7hyH5zG3cDaTNscs/M677DL8AqVyULUSn4Q3lDq2RkoxhgToTkst9skuIQ==","signatures":[{"sig":"MEUCIGbj1vx+luZ1CNLLH7miRnfHKqH5NxzzP911NZbBkSifAiEA4ewRunwIYEyOkZDrZZN/Bz8i3gglqDPVqHy3Fy9oUoY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":788604},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.4.1.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/1582ebb6f5c3946314512dfb0d2e5cb8/goatlab-node-backend-1.4.1.tgz","_integrity":"sha512-mY17rzCEZ6XPgomflvMxapI8VMRV7hyH5zG3cDaTNscs/M677DL8AqVyULUSn4Q3lDq2RkoxhgToTkst9skuIQ==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","ioredis":"^5.6.1","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.3","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.11.1","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2","@google-cloud/logging-winston":"^6.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.1","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.4.1_1773442570347_0.7768693571883138","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@goatlab/node-backend","version":"1.5.0","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.5.0","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"5c4df63a45ac7e5854fc8aed9a64b4c46867faf6","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.5.0.tgz","fileCount":175,"integrity":"sha512-/43itfia468JCNxAKQx7c3OEOB9EGaP6maY+ljW6EynDmOoAbyRWqomoml4/U0r1UkM8onedBQ33X+xOe/5rgA==","signatures":[{"sig":"MEYCIQC0eqiJyLjB5CSuIQLKRg/UbmIc8dOFGiAmFveZsIKusQIhAPT0FWUrwSgRP+DGRVRNppoRiIOWxJP8XG0iVRfFyCQg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":758245},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.5.0.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/0bc3273f323b87d4965542d195e640b7/goatlab-node-backend-1.5.0.tgz","_integrity":"sha512-/43itfia468JCNxAKQx7c3OEOB9EGaP6maY+ljW6EynDmOoAbyRWqomoml4/U0r1UkM8onedBQ33X+xOe/5rgA==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","ioredis":"^5.6.1","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.3","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.11.1","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.1","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.5.0_1773953697093_0.3492706763445115","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@goatlab/node-backend","version":"1.5.1","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.5.1","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"9fa4384f64775f85454bd90b712f5b0a476e4fa6","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.5.1.tgz","fileCount":175,"integrity":"sha512-my9Q0wFL6sCbYKfC4kQLEPnO7W+q1sMo6aZ77QMLAbUX4eJBlFamWbsb2UL3Tfp5+XtU/pD1Iu3UBohZNEIWkQ==","signatures":[{"sig":"MEUCIQDp7ULebVruf3WMrepF03xPIlLnGvq5ih8AKDoCjQ1sbQIgcK9/7UwtoyCC1JuN3tgZrqS8R/Z4BBNV6NARwSMjjSc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":758863},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.5.1.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/9ac415ff683be5394b41e232fb1a77ad/goatlab-node-backend-1.5.1.tgz","_integrity":"sha512-my9Q0wFL6sCbYKfC4kQLEPnO7W+q1sMo6aZ77QMLAbUX4eJBlFamWbsb2UL3Tfp5+XtU/pD1Iu3UBohZNEIWkQ==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","ioredis":"^5.6.1","winston":"^3.19.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.3","winston-transport":"^4.9.0","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.11.1","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.1","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.5.1_1773954626180_0.28276140804319905","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"@goatlab/node-backend","version":"1.5.2","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.5.2","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"6d06f123a0683c52f47a146f058aca67a4018a5c","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.5.2.tgz","fileCount":175,"integrity":"sha512-PM2qWYis3ZC6GzBXrLlRAYi/iq33aY0gOWI1dAV0Xi7u3IDsBTqGSh/t8g94+U6FIQITeTL963LHRcCjAfN9AA==","signatures":[{"sig":"MEYCIQC0DC6t+UO010FRrkb0NrYl2mcU17q6oi+GvvusGd4i6QIhAKJbmEtvWhEhbMM8Uqr9Lf4rlUmAQC/chXOWU/ZJHg5j","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":759166},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.5.2.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/200158c03f83f607ec2c0f4af1b29c6b/goatlab-node-backend-1.5.2.tgz","_integrity":"sha512-PM2qWYis3ZC6GzBXrLlRAYi/iq33aY0gOWI1dAV0Xi7u3IDsBTqGSh/t8g94+U6FIQITeTL963LHRcCjAfN9AA==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","ioredis":"^5.6.1","winston":"^3.19.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.3","winston-transport":"^4.9.0","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.11.1","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.1","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.5.2_1773955258664_0.3801876925863166","host":"s3://npm-registry-packages-npm-production"}},"1.5.3":{"name":"@goatlab/node-backend","version":"1.5.3","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.5.3","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"65d03f9a330198050526d250730ca22a4c12298a","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.5.3.tgz","fileCount":175,"integrity":"sha512-b5xjCBftSgLjCPDfQt3qtfsrWjnMySXl1kuh+TygtOK2YIMTvf03okfwEx5XYGNL8eMTHzuLjMwyp4IdXZPCUQ==","signatures":[{"sig":"MEYCIQDZTu5YwhlIQzPMovKSagL7y+CivLQNBDVDRRU2If4QDQIhALC0QUt11gDRLilayRWKQK4RiWroI/A5s0/sp8vAIf/t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":761184},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.5.3.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/28e063abfd3208c4320f82eb3c083bc5/goatlab-node-backend-1.5.3.tgz","_integrity":"sha512-b5xjCBftSgLjCPDfQt3qtfsrWjnMySXl1kuh+TygtOK2YIMTvf03okfwEx5XYGNL8eMTHzuLjMwyp4IdXZPCUQ==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","ioredis":"^5.6.1","winston":"^3.19.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.3","winston-transport":"^4.9.0","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.11.1","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.1","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.5.3_1773959387174_0.27848600441559235","host":"s3://npm-registry-packages-npm-production"}},"1.5.4":{"name":"@goatlab/node-backend","version":"1.5.4","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.5.4","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"cd13bcdc97bbbd8afb8b4568981e581f550c3d6b","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.5.4.tgz","fileCount":175,"integrity":"sha512-9DF3wTb4BVBXmlEJbGHjSje7RZeYuPh+EkJLoOhUss4gidhwyQhYQBPNsLPztEL9Y5UGGwUl7aptuhRbA/Z7nQ==","signatures":[{"sig":"MEQCIBcNopO9eyFCmFLwjub8Bu6zvxuKf5V+de8XLOkWDlmZAiByelmNmBGsYd8CLf+dG9qKKgDB9VbC19ap9QRghZP+nw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":761190},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.5.4.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/1798e100b26b3709eb9bc8f651fee2cf/goatlab-node-backend-1.5.4.tgz","_integrity":"sha512-9DF3wTb4BVBXmlEJbGHjSje7RZeYuPh+EkJLoOhUss4gidhwyQhYQBPNsLPztEL9Y5UGGwUl7aptuhRbA/Z7nQ==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","ioredis":"^5.6.1","winston":"^3.19.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.3","winston-transport":"^4.9.0","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.11.1","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.1","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.5.4_1774298048949_0.9788145403287578","host":"s3://npm-registry-packages-npm-production"}},"1.5.5":{"name":"@goatlab/node-backend","version":"1.5.5","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.5.5","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"6cfe67f6c35d6e2fc9947d1be99295de029d04ff","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.5.5.tgz","fileCount":175,"integrity":"sha512-I04YCYNaQcTPAdbz0DAHvC9cYqh5iajJn04oBa+nxFwvySY+f3m+IZTvFmSMFLRDGENUusoBJfUll0LmRup3/g==","signatures":[{"sig":"MEUCIQD/eHMb2AnU1gNVW8lIn45duog+/boTH3RjQCNNlnUjPgIgAsmhqDLr35cfLmUpNn8iIe7L98W2Me/0V1dZ6+sXdw4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":762349},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.5.5.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/a06edee390d0d8a7a8565ac55f56349d/goatlab-node-backend-1.5.5.tgz","_integrity":"sha512-I04YCYNaQcTPAdbz0DAHvC9cYqh5iajJn04oBa+nxFwvySY+f3m+IZTvFmSMFLRDGENUusoBJfUll0LmRup3/g==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","ioredis":"^5.6.1","winston":"^3.19.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.3","winston-transport":"^4.9.0","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.11.1","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.1","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.5.5_1774352129424_0.5108113260065885","host":"s3://npm-registry-packages-npm-production"}},"1.5.6":{"name":"@goatlab/node-backend","version":"1.5.6","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.5.6","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"5835999959dff1695deeb908603cdfe235cff8e8","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.5.6.tgz","fileCount":175,"integrity":"sha512-jwwpwqc7A55elEUV9IjjzR9J4RfsVQlGzdGQPyspXii9wlyxwACRmRUVlFneLWpIo8h+B9Ki4RaL9Zi+4OdLiA==","signatures":[{"sig":"MEUCIAhYeGobZNtG4jDmCzticn6wWT8pihzvyvFoUgG2wIsrAiEAq6xLETvf3nKLDtOo11gV8TzsAw9TQRvSyadF7TFV2vE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":755450},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.5.6.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/a30226afdd56fe0d0d58315b62fa7cd7/goatlab-node-backend-1.5.6.tgz","_integrity":"sha512-jwwpwqc7A55elEUV9IjjzR9J4RfsVQlGzdGQPyspXii9wlyxwACRmRUVlFneLWpIo8h+B9Ki4RaL9Zi+4OdLiA==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","ioredis":"^5.6.1","winston":"^3.19.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.3","winston-transport":"^4.9.0","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.11.1","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.1","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.1.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.5.6_1774428644013_0.49890723652312063","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@goatlab/node-backend","version":"1.6.0","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.6.0","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"6e2b1d763668f55c3b33a2927c2c6115dd2e4753","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.6.0.tgz","fileCount":175,"integrity":"sha512-xCpYvaYbtrjikrC4fHKiGfQKOGcGaL7+3SFJWwVfveCm0opycPCaztUvyXOxhz52P+GjlOex8Jqf1ylvAwJi4A==","signatures":[{"sig":"MEUCIGS92iksipSijRCF51CtBGkduf1tMGfE8lfnkmOO8LCtAiEAtD80qNvuXweEW9bb3ymhBsbCNeNw0a3aA4QGx8SzoHc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":755450},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.6.0.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/e73f18f2607713a87f9a8212f17ae418/goatlab-node-backend-1.6.0.tgz","_integrity":"sha512-xCpYvaYbtrjikrC4fHKiGfQKOGcGaL7+3SFJWwVfveCm0opycPCaztUvyXOxhz52P+GjlOex8Jqf1ylvAwJi4A==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","ioredis":"^5.6.1","winston":"^3.19.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.3","winston-transport":"^4.9.0","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.11.2","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.1","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.2.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.6.0_1774467525630_0.09983698983081779","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"@goatlab/node-backend","version":"1.6.1","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.6.1","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"aa912f73c9c08b287c0f866a0a8bd433f074aa25","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.6.1.tgz","fileCount":175,"integrity":"sha512-K9gDa9ScvSKQCFVB3FmGy6F2lN9Ug3Bp5WKBxDFiT0Jsz6Fk9QyuYe+m8CX6sGmnd4n8h4dCIWxjnMx4T7LDNg==","signatures":[{"sig":"MEYCIQCm4c5QQ3GjUlHMOomde8b6MjJ0eOCxZ5kAYwYvQ1rIVQIhAIfO4oCLmRse/4aOP9AweiKxWveFbXoj38MXGPL39GtL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":755721},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.6.1.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/7f38f3235d295825b6187a0cae5cbdaf/goatlab-node-backend-1.6.1.tgz","_integrity":"sha512-K9gDa9ScvSKQCFVB3FmGy6F2lN9Ug3Bp5WKBxDFiT0Jsz6Fk9QyuYe+m8CX6sGmnd4n8h4dCIWxjnMx4T7LDNg==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","ioredis":"^5.6.1","winston":"^3.19.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.3","winston-transport":"^4.9.0","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.11.2","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.1","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.2.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.6.1_1777071994184_0.8134871006262963","host":"s3://npm-registry-packages-npm-production"}},"1.6.2":{"name":"@goatlab/node-backend","version":"1.6.2","keywords":["typescript","TS"],"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","_id":"@goatlab/node-backend@1.6.2","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"homepage":"https://docs.goatlab.io","dist":{"shasum":"27720dccf50e3895a79315453b62d3c1c740418b","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.6.2.tgz","fileCount":175,"integrity":"sha512-TcSuF92wtqe3sUgmDNvHzzg2x8B2H5ZxmetSpT08y3kNUBPAWKSbtbL++wySz7vUouqsUcwaAMx/qBjGXwgHGA==","signatures":[{"sig":"MEUCIGs88h9wAyNeFcT/ltNEZFlo+LNVTvgZZVQXP2/DwF6SAiEAq2qGrB3Sshx15Uu/LJq0XDJ/IpRJDKMV9f9bESeabFI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":756277},"main":"dist/index.js","_from":"file:goatlab-node-backend-1.6.2.tgz","types":"dist/index.d.ts","engines":{"node":">=14.16.0"},"private":false,"scripts":{"rc":"release-it --no-npm.publish --ci --preRelease=rc","dev":"tsc --watch","lint":"biome check --write .","pack":"npm-pack-zip","test":"vitest run","build":"tsc","serve":"tsc -w","format":"biome format --write .","predev":"rimraf dist","release":"release-it patch --no-npm.publish --ci","prebuild":"rimraf dist","prestart":"rimraf dist","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","release:major":"release-it major --no-npm.publish --ci ","release:minor":"release-it minor --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json","update:packages":"npm-check-updates -u && yarn"},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/2f0d698196013a15b689bb852a5cb2f5/goatlab-node-backend-1.6.2.tgz","_integrity":"sha512-TcSuF92wtqe3sUgmDNvHzzg2x8B2H5ZxmetSpT08y3kNUBPAWKSbtbL++wySz7vUouqsUcwaAMx/qBjGXwgHGA==","_npmVersion":"10.7.0","description":"Common tools to work with Node.js backend applications.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"ejs":"^3.1.10","zod":"^4.0.10","cors":"^2.8.5","keyv":"^4.5.4","mjml":"^4.15.3","kleur":"^4.1.5","helmet":"^8.1.0","undici":"^7.12.0","express":"^5.1.0","ioredis":"^5.6.1","winston":"^3.19.0","tiny-lru":"^11.3.4","public-ip":"^7.0.1","geoip-lite":"^1.4.10","@keyv/redis":"^3.0.1","compression":"^1.8.1","@sentry/node":"^9.42.0","@trpc/server":"^11.4.3","passport-jwt":"^4.0.1","ua-parser-js":"^2.0.4","response-time":"^2.3.4","connect-timeout":"^1.9.1","express-session":"^1.18.2","node-mocks-http":"^1.17.2","trpc-to-openapi":"^2.3.2","@goatlab/js-utils":"0.10.3","winston-transport":"^4.9.0","@types/compression":"^1.8.1","express-rate-limit":"^8.0.1","swagger-ui-express":"^5.0.1","@goatlab/node-utils":"0.11.2","@types/response-time":"^2.3.9","@sentry/profiling-node":"^9.42.0","@types/connect-timeout":"^1.9.0","@types/express-session":"^1.18.2","@types/express-rate-limit":"^6.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","turbo":"^1.1.10","vitest":"^3.1.1","ts-jest":"^29.2.6","ts-node":"^10.9.2","supertest":"^7.1.4","@types/ejs":"^3.1.5","dotenv-cli":"^5.1.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","pretty-quick":"^3.1.3","@biomejs/biome":"^2.1.3","@goatlab/biome":"0.1.1","@types/express":"^5.0.0","@types/supertest":"^6.0.3","@goatlab/tsconfig":"0.2.0","@types/geoip-lite":"^1.4.4","@types/passport-jwt":"^4.0.1","@types/ua-parser-js":"^0.7.39","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","jest-environment-node":"^27.5.1","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/node-backend_1.6.2_1777072277732_0.6063115693653998","host":"s3://npm-registry-packages-npm-production"}},"1.6.3":{"name":"@goatlab/node-backend","version":"1.6.3","description":"Common tools to work with Node.js backend applications.","homepage":"https://docs.goatlab.io","main":"dist/index.js","types":"dist/index.d.ts","author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","private":false,"publishConfig":{"access":"public"},"keywords":["typescript","TS"],"dependencies":{"winston":"^3.19.0","winston-transport":"^4.9.0","ioredis":"^5.6.1","@keyv/redis":"^3.0.1","@sentry/node":"^9.42.0","@sentry/profiling-node":"^9.42.0","@trpc/server":"^11.4.3","@types/compression":"^1.8.1","@types/connect-timeout":"^1.9.0","@types/express-rate-limit":"^6.0.2","@types/express-session":"^1.18.2","@types/response-time":"^2.3.9","compression":"^1.8.1","connect-timeout":"^1.9.1","cors":"^2.8.5","ejs":"^3.1.10","express":"^5.1.0","express-rate-limit":"^8.0.1","express-session":"^1.18.2","geoip-lite":"^1.4.10","helmet":"^8.1.0","keyv":"^4.5.4","kleur":"^4.1.5","mjml":"^4.15.3","node-mocks-http":"^1.17.2","passport-jwt":"^4.0.1","public-ip":"^7.0.1","response-time":"^2.3.4","swagger-ui-express":"^5.0.1","tiny-lru":"^11.3.4","trpc-to-openapi":"^2.3.2","ua-parser-js":"^2.0.4","undici":"^7.12.0","zod":"^4.0.10","@goatlab/js-utils":"0.10.3","@goatlab/node-utils":"0.11.2"},"devDependencies":{"@biomejs/biome":"^2.1.3","@testcontainers/redis":"^11.0.3","@testcontainers/vault":"^11.4.0","@types/cors":"^2.8.17","@types/ejs":"^3.1.5","@types/express":"^5.0.0","@types/geoip-lite":"^1.4.4","@types/jest":"^27.4.1","@types/mjml":"^4.7.4","@types/node":"^17.0.23","@types/passport-jwt":"^4.0.1","@types/supertest":"^6.0.3","@types/swagger-ui-dist":"^3.30.5","@types/swagger-ui-express":"^4.1.6","@types/ua-parser-js":"^0.7.39","dotenv-cli":"^5.1.0","jest":"^29.7.0","jest-environment-node":"^27.5.1","pretty-quick":"^3.1.3","supertest":"^7.1.4","ts-jest":"^29.2.6","ts-node":"^10.9.2","turbo":"^1.1.10","typescript":"^5.6.3","vitest":"^3.1.1","@goatlab/biome":"0.1.1","@goatlab/tsconfig":"0.2.0"},"engines":{"node":">=14.16.0"},"scripts":{"prebuild":"rimraf dist","prestart":"rimraf dist","predev":"rimraf dist","test":"vitest run","dev":"tsc --watch","lint":"biome check --write .","format":"biome format --write .","update:packages":"npm-check-updates -u && yarn","serve":"tsc -w","build":"tsc","pack":"npm-pack-zip","release":"release-it patch --no-npm.publish --ci","release:patch":"release-it patch --no-npm.publish --ci","release:minor":"release-it minor --no-npm.publish --ci","release:major":"release-it major --no-npm.publish --ci ","rc":"release-it --no-npm.publish --ci --preRelease=rc","rc:patch":"release-it patch --no-npm.publish --ci --preRelease=rc","rc:minor":"release-it minor --no-npm.publish --ci --preRelease=rc","rc:major":"release-it major --no-npm.publish --ci --preRelease=rc","changelog":"auto-changelog --template changelog-template.hbs -p -u --commit-limit false","changelog-debug":"auto-changelog --template changelog-template.hbs -p --template json --output changelog-data.json"},"_id":"@goatlab/node-backend@1.6.3","_integrity":"sha512-u+6kN5fCERwhEuWXUefVvWXdeuF5EhckNAqOFMNFds6FL0aX0LisCQMLBET9izhRYfX9skgCIj5Sf4wwbes6Iw==","_resolved":"/private/var/folders/cm/jj93b4_j7lxbwflhbj_2qjsw0000gn/T/2d78948319f913b03e5c387c6ba6fb0b/goatlab-node-backend-1.6.3.tgz","_from":"file:goatlab-node-backend-1.6.3.tgz","_nodeVersion":"22.12.0","_npmVersion":"10.7.0","dist":{"integrity":"sha512-u+6kN5fCERwhEuWXUefVvWXdeuF5EhckNAqOFMNFds6FL0aX0LisCQMLBET9izhRYfX9skgCIj5Sf4wwbes6Iw==","shasum":"2fb8e8c4ba1f1b6f4a5a86b9f407c266377021a4","tarball":"https://registry.npmjs.org/@goatlab/node-backend/-/node-backend-1.6.3.tgz","fileCount":175,"unpackedSize":756688,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEzEE6mWAECxDwxngaFmGRKjxLcOY6V6LBFaBHJzi8jjAiApbVZpAmBIVjG1SX+j25QJ0s8shv2FbXOeGqNAcSGzSQ=="}]},"_npmUser":{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},"directories":{},"maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/node-backend_1.6.3_1777323114298_0.8186962949864471"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-19T16:20:36.816Z","modified":"2026-04-27T20:51:54.605Z","0.0.2":"2025-06-19T16:20:37.108Z","0.0.3":"2025-06-21T11:08:23.537Z","0.0.4":"2025-06-21T11:22:56.942Z","0.0.5":"2025-06-21T11:37:45.695Z","0.0.6":"2025-06-21T12:05:01.141Z","0.0.7":"2025-06-21T19:31:22.100Z","0.0.8":"2025-06-21T20:48:01.694Z","0.0.9":"2025-06-22T07:28:45.485Z","0.0.10":"2025-06-22T07:46:08.187Z","0.0.11":"2025-06-22T21:37:02.151Z","0.0.12":"2025-06-23T20:18:45.957Z","0.0.13":"2025-06-25T16:55:54.127Z","0.0.14":"2025-06-29T22:37:34.548Z","0.0.15":"2025-07-20T22:03:34.475Z","0.0.16":"2025-07-21T10:30:57.536Z","0.1.0":"2025-07-26T21:03:03.567Z","0.1.1":"2025-07-27T09:30:14.252Z","0.2.0":"2025-07-27T18:48:41.890Z","0.2.1":"2025-07-28T11:57:41.636Z","0.2.2":"2025-07-28T15:22:22.338Z","0.2.3":"2025-07-28T15:55:32.397Z","0.2.4":"2025-07-28T16:48:55.832Z","0.2.5":"2025-07-28T17:02:59.025Z","0.2.6":"2025-07-28T22:53:32.222Z","0.4.0":"2025-07-29T13:48:41.065Z","1.0.0":"2025-07-29T15:02:23.213Z","1.0.1":"2025-07-30T09:17:21.156Z","1.1.0":"2025-07-30T10:32:02.578Z","1.1.1":"2025-07-30T19:14:37.324Z","1.1.2":"2025-07-31T10:31:16.694Z","1.1.3":"2025-08-07T19:00:31.429Z","1.1.4":"2025-08-09T15:20:09.256Z","1.1.5":"2025-08-09T16:05:58.127Z","1.1.6":"2025-09-07T11:25:11.545Z","1.1.7":"2025-09-07T11:58:43.216Z","1.1.8":"2025-11-13T12:48:21.928Z","1.1.10":"2025-11-13T13:18:10.520Z","1.1.11":"2026-01-02T18:58:55.036Z","1.1.12":"2026-01-02T21:30:46.407Z","1.1.13":"2026-01-02T21:31:40.928Z","1.1.14":"2026-01-05T12:31:51.638Z","1.1.15":"2026-01-05T12:32:37.804Z","1.1.16":"2026-01-05T13:11:46.983Z","1.1.17":"2026-01-05T13:13:40.732Z","1.1.18":"2026-01-05T13:36:26.212Z","1.1.19":"2026-01-05T13:49:57.718Z","1.1.20":"2026-01-05T14:06:16.065Z","1.1.21":"2026-01-05T14:38:39.145Z","1.1.22":"2026-01-20T00:31:25.716Z","1.1.24":"2026-01-26T23:03:29.103Z","1.2.0":"2026-01-26T23:14:33.177Z","1.2.1":"2026-01-26T23:26:06.932Z","1.3.0":"2026-02-20T01:36:09.845Z","1.4.0":"2026-03-11T21:10:42.879Z","1.4.1":"2026-03-13T22:56:10.560Z","1.5.0":"2026-03-19T20:54:57.350Z","1.5.1":"2026-03-19T21:10:26.394Z","1.5.2":"2026-03-19T21:20:58.840Z","1.5.3":"2026-03-19T22:29:47.358Z","1.5.4":"2026-03-23T20:34:09.122Z","1.5.5":"2026-03-24T11:35:29.576Z","1.5.6":"2026-03-25T08:50:44.171Z","1.6.0":"2026-03-25T19:38:45.798Z","1.6.1":"2026-04-24T23:06:34.456Z","1.6.2":"2026-04-24T23:11:17.878Z","1.6.3":"2026-04-27T20:51:54.436Z"},"author":{"name":"ignacio.cabrera@goatlab.io"},"license":"MIT","homepage":"https://docs.goatlab.io","keywords":["typescript","TS"],"description":"Common tools to work with Node.js backend applications.","maintainers":[{"name":"cabrerabywaters","email":"cabrerabywaters@gmail.com"},{"name":"robertzibert","email":"robret93@gmail.com"},{"name":"tomcastro","email":"tcastrog10@gmail.com"}],"readme":"# @goatlab/node-backend\n\nCommon tools for Node.js backend applications, including caching, secret management, Express/tRPC integration, and testing utilities.\n\n## Installation\n\n```bash\nnpm install @goatlab/node-backend\n# or\nyarn add @goatlab/node-backend\n# or\npnpm add @goatlab/node-backend\n```\n\n## Basic Usage\n\n```typescript\nimport { Cache } from '@goatlab/node-backend'\n\n// Use Redis cache\nconst redisCache = new Cache({\n  connection: 'redis://localhost:6379',\n  opts: { namespace: 'my-app' }\n})\n\n// Use in-memory LRU cache\nconst memoryCache = new Cache({\n  connection: undefined,\n  opts: { namespace: 'my-app' }\n})\n\n// Cache with LRU memory layer for improved performance\nconst hybridCache = new Cache({\n  connection: 'redis://localhost:6379',\n  opts: { \n    namespace: 'my-app',\n    usesLRUMemory: true // Adds LRU memory caching layer\n  }\n})\n\n// Basic operations\nawait cache.set('key', { data: 'value' }, 60000) // TTL in milliseconds\nconst value = await cache.get('key')\nawait cache.delete('key')\n\n// Advanced operations\nconst result = await cache.remember('expensive-op', 300000, async () => {\n  // This function only runs if key doesn't exist\n  return await expensiveOperation()\n})\n```\n\n## Key Features\n\n- **Dual Storage**: Supports Redis for distributed caching or in-memory LRU for single instances\n- **Multi-tenancy**: Built-in tenant isolation with namespace support\n- **Memory Layer**: Optional LRU memory caching on top of Redis for improved performance\n- **Cache Helpers**: Laravel-inspired helper methods like `remember()`, `rememberForever()`, and `pull()`\n- **Namespace Operations**: Delete or retrieve values by key prefix with `deleteWhereStartsWith()` and `getValueWhereKeyStartsWith()`\n- **Type Safety**: Full TypeScript support with generic types\n- **Automatic Validation**: Skips caching of null, undefined, empty strings, empty arrays, and empty objects\n\n## Secret Management\n\nThe `SecretService` provides secure secret management with support for multiple backends and preloading:\n\n```typescript\nimport { SecretService } from '@goatlab/node-backend'\n\n// File-based encrypted secrets with TTL caching\nconst fileSecrets = new SecretService({\n  provider: 'FILE',\n  location: '/path/to/secrets.json',\n  encryptionKey: process.env.ENCRYPTION_KEY,\n  cacheTTL: 300000 // 5 minutes (optional, default: 5 minutes)\n})\n\n// HashiCorp Vault integration\nconst vaultSecrets = new SecretService({\n  provider: 'VAULT',\n  location: 'my-app/secrets',\n  encryptionKey: process.env.ENCRYPTION_KEY\n})\n\n// Environment variables\nconst envSecrets = new SecretService({\n  provider: 'ENV',\n  location: 'APP', // Loads APP_* env vars\n  encryptionKey: process.env.ENCRYPTION_KEY // Now supports encryption for all providers\n})\n\n// Preload secrets for synchronous access (new!)\nawait fileSecrets.preload()\nconst apiKey = fileSecrets.getSecretSync('API_KEY') // Synchronous!\nconst config = fileSecrets.getSecretJsonSync('CONFIG') // Synchronous!\n\n// Async operations still available\nconst apiKeyAsync = await fileSecrets.getSecret('API_KEY')\nconst configAsync = await fileSecrets.getSecretJson('CONFIG')\n\n// Store secrets (FILE and VAULT providers)\nawait fileSecrets.storeSecrets({ API_KEY: 'secret-value' })\n\n// Manual cache cleanup\nSecretService.cleanupExpiredCache()\n\n// Dispose when done (stops file watching)\nfileSecrets.dispose()\n```\n\n### Secret Provider Features\n\n- **FILE**: Encrypted local file storage using AES encryption with file watching\n- **VAULT**: HashiCorp Vault integration with automatic token management  \n- **ENV**: Runtime environment variable access with encryption support\n- **Preloading**: Load secrets once async, access synchronously afterward\n- **Per-Tenant Encryption**: Each tenant can have its own encryption key\n- **Automatic Invalidation**: File changes trigger automatic reload (FILE provider)\n- **TTL Caching**: Configurable time-to-live caching with automatic expiration\n- **Type Safety**: Generic type support for JSON secrets\n\n### Preloading Pattern with Container\n\n```typescript\nconst container = new Container(factories, async (preload, meta) => {\n  // Create and preload secret service\n  const secretService = preload.secrets(meta.tenantId, {\n    provider: 'FILE',\n    location: meta.secretsLocation,\n    encryptionKey: meta.encryptionKey\n  })\n  \n  await secretService.preload() // Load once async\n  \n  // Use sync methods for instant access\n  const dbUrl = secretService.getSecretSync('DATABASE_URL')\n  const apiKey = secretService.getSecretSync('API_KEY')\n  \n  // Create other services with preloaded secrets\n  const database = preload.database(meta.tenantId, { url: dbUrl })\n  const api = preload.api(meta.tenantId, { apiKey })\n  \n  return { secrets: secretService, database, api }\n})\n```\n\n## Express + tRPC Integration\n\nHelper for creating Express applications with tRPC integration:\n\n```typescript\nimport { getExpressTrpcApp } from '@goatlab/node-backend'\nimport { initTRPC } from '@trpc/server'\n\nconst t = initTRPC.create()\nconst appRouter = t.router({\n  hello: t.procedure.query(() => 'Hello World!')\n})\n\n// Minimal configuration - just trpcRouter is required\nconst { app, server, waitForShutdown } = getExpressTrpcApp({ \n  trpcRouter: appRouter \n})\n\n// Keep the process alive until shutdown\nawait waitForShutdown()\n\n// With custom configuration\nconst { app, server, waitForShutdown } = getExpressTrpcApp({\n  trpcRouter: appRouter,\n  port: 8080,\n  environment: 'prod',\n  appName: 'My API',\n  \n  // Feature flags\n  features: {\n    openApiDocs: true,\n    sentry: true,\n    trustProxy: true\n  },\n  \n  // Security customization\n  security: {\n    cors: {\n      allowedOrigins: ['https://myapp.com'],\n      maxAge: 7200\n    },\n    rateLimit: {\n      api: { max: 1000 }\n    }\n  },\n  \n  // Optional extensions\n  expressResources: [customRouter],\n  customHandlers: [middleware1, middleware2],\n  sentryService\n})\n```\n\n### Configuration (New!)\n\nThe `getExpressTrpcApp` function now uses a fully typed configuration object instead of process.env variables:\n\n- **Minimal config**: Only `trpcRouter` is required\n- **Deep merging**: Customize specific settings without losing defaults\n- **Type safety**: Full TypeScript support for all configuration options\n- **Environment-aware**: Automatically adjusts defaults based on environment\n- **Graceful shutdown**: Use `waitForShutdown()` to keep the process alive until the server closes\n\n### Performance Features (New!)\n\n- **Optimized Compression**: Automatically skips compression for small responses (<1KB), SSE, WebSocket upgrades, and pre-compressed content\n- **Memory Monitoring**: Built-in middleware tracks heap usage and triggers garbage collection when needed\n- **Smart Rate Limiting**: Different limits for auth endpoints, API endpoints, and general routes\n\n## Container - Dependency Injection\n\nMulti-tenant dependency injection container with performance optimizations:\n\n```typescript\nimport { Container } from '@goatlab/node-backend'\n\n// Define your service factories\nconst factories = {\n  database: DatabaseService,\n  api: ApiService,\n  cache: CacheService\n}\n\n// Create container with initializer\nconst container = new Container(factories, async (preload, tenantMeta) => {\n  const db = preload.database(tenantMeta.id, tenantMeta.dbConfig)\n  const cache = preload.cache(tenantMeta.id)\n  \n  return {\n    database: db,\n    api: preload.api(tenantMeta.id, db),\n    cache\n  }\n})\n\n// Bootstrap for a tenant\nawait container.bootstrap(tenantMeta, async () => {\n  const { database, api } = container.context\n  // Use services...\n})\n\n// Batch operations (new!)\nconst results = await container.bootstrapBatch([\n  { metadata: tenant1, fn: processTenant1 },\n  { metadata: tenant2, fn: processTenant2 }\n], {\n  concurrency: 10,\n  continueOnError: true,\n  onProgress: (completed, total) => console.log(`${completed}/${total}`)\n})\n\n// Batch cache invalidation (new!)\nawait container.invalidateTenantBatch(['tenant1', 'tenant2', 'tenant3'])\n```\n\n### Container Features\n\n- **Multi-tenancy**: Isolated service instances per tenant\n- **Batch Operations**: Process multiple tenants in parallel with concurrency control\n- **Performance Metrics**: Built-in performance tracking and statistics\n- **Cache Management**: Efficient caching with batch invalidation support\n- **Type Safety**: Full TypeScript support with inference\n\n## Translation Service\n\nHigh-performance translation service with template caching:\n\n```typescript\nimport { translationService } from '@goatlab/node-backend'\n\n// Translations are automatically loaded and cached\nconst greeting = translationService.translate('welcome', { language: 'es' })\n\n// With template parameters\nconst message = translationService.translate('user.greeting', \n  { language: 'en' }, \n  { name: 'John' }\n)\n\n// Performance optimized with:\n// - Compiled template caching\n// - Locale preloading at startup\n// - In-memory locale storage\n```\n\n## Testing Utilities\n\nComprehensive testing setup with testcontainers support:\n\n- **Vitest Configuration**: Pre-configured vitest setup without globals\n- **Testcontainers**: Redis and Vault containers for integration testing\n- **Real Service Testing**: Test utilities that avoid mocking in favor of real services","readmeFilename":"README.md"}