{"_id":"nestjs-param-store","_rev":"4-1a466df5317977412c676ee64f856d95","name":"nestjs-param-store","dist-tags":{"latest":"1.3.1"},"versions":{"1.0.0":{"name":"nestjs-param-store","version":"1.0.0","description":"Configure your NestJS application with AWS Parameter Store","author":{"name":"Alberto Menendez Romero","email":"albertomr86@gmail.com"},"keywords":["nestjs","nest.js","parameter store","parameter-store","ssm","config","configuration","aws","amazon web services"],"license":"MIT","main":"dist/index.js","engines":{"node":">= 16"},"repository":{"type":"git","url":"git+https://github.com/albertomr86/nestjs-param-store.git"},"bugs":{"url":"https://github.com/albertomr86/nestjs-param-store/issues"},"homepage":"https://github.com/albertomr86/nestjs-param-store/issues#readme","scripts":{"test":"jest --verbose -i --detectOpenHandles","lint":"eslint \"{lib,__tests__}/**/*.ts\" --fix","prebuild":"rimraf dist","build":"tsc -p tsconfig.json","format":"prettier --write \"lib/**/*.ts\" \"test/**/*.ts\""},"devDependencies":{"@nestjs/cli":"^9.0.0","@nestjs/common":"^9.0.5","@nestjs/core":"^9.0.5","@nestjs/platform-express":"^9.0.5","@nestjs/schematics":"^9.0.0","@nestjs/testing":"^9.0.0","@types/express":"^4.17.13","@types/jest":"28.1.4","@types/node":"^16.0.0","@types/supertest":"^2.0.11","@typescript-eslint/eslint-plugin":"^4.30.0","@typescript-eslint/parser":"^4.30.0","eslint":"^7.32.0","eslint-config-prettier":"^8.3.0","eslint-plugin-import":"^2.24.2","eslint-plugin-prettier":"^4.0.0","jest":"28.1.2","prettier":"^2.3.2","reflect-metadata":"^0.1.13","rimraf":"^3.0.2","rxjs":"^7.2.0","source-map-support":"^0.5.20","supertest":"^6.1.3","ts-jest":"28.0.5","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"4.0.0","tslint":"^6.0.0","typescript":"^4.3.5"},"peerDependencies":{"@aws-sdk/client-ssm":"^3.163.0","@nestjs/common":"^8.0.0 || ^9.0.0"},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":"lib","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node"},"types":"./dist/index.d.ts","gitHead":"a573e2fa6d8d7729000115579a9c5f5ff99571d0","_id":"nestjs-param-store@1.0.0","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-ZJuIxzdOW5XZH0Fe3gvhMBYzNpfKjDrSFc7LPF6Qn6Qw5qGe4Hppf6WHRO3dqKE8JrCllXJX4bUPxVq8eTAkUg==","shasum":"4e85881c77f79ebaf73bfdd1e7ef69226761c9ff","tarball":"https://registry.npmjs.org/nestjs-param-store/-/nestjs-param-store-1.0.0.tgz","fileCount":33,"unpackedSize":24476,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFVAvUusjR9cW62oSNjJwMANeO37Wkol2/W5gWLzAJc0AiAWgVg98Rr5NENqvHbbWPATCW1MD68YH2cMQCgnBjqT5g=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjFDW+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmou1xAAh2k1oF52bInk8vYydN816VVpM0APVTDd0FdXOFsZV6d2NYpw\r\ngBSvzctK8paPUM73s/FbbUSzCqJXYXs6LcePIrizQoF1FB0WLkCzRshTdXoJ\r\n2StxbDD6SVWdGhjQfeRuFpgbYSECqV+uwrulwyljNNqwwwzLoSazJysPCGhQ\r\n1FyIIwEEZc7OMidcBNsfiq4/aeP6xz0a6daW1gUErZVjyTsHHlhtmFbt545/\r\niqhslWvIn6/1nlN3o9mkdSoSZl1nPnXxDLErBRiZNAphNISJQK1nZFTmDL3s\r\nVlGuIxyPCLVMIzNsKlomZREiu8qmm9uygzQxVm0YsFna1PBYLImXeiIulrAq\r\n0ZfnrPRsaMGKS3rWoCPV8ee1Bk5U9Jf1AtRWiGdLmiz8dpnGYO0ij8T9GYSB\r\nGkyzxDdTCb0cnAsKG1GiXH4YEJU9tVztirMIbh27w462hZDm/Z20swE1YJcQ\r\nm+y46qubmZOENbAP56BN9yDTmIKUwVDeDkAOvqspPvoBpoAWHvCYABsVkfce\r\nLl4nFV5pO2soIvtcu1urDerGp/RNJ/jz4ah/r247Tz9/kFA9NfcTbBfHfBTM\r\nnKyhgINxxNaFqXeA6Rlf70ANLl44mNdexWxKU/0DzIuSWFNH89J5LczNusUb\r\nB1bSk+9OuMEbYEcXcnkcFwocosM67NZEbUU=\r\n=xXYJ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"albertomr86","email":"albertomr86@gmail.com"},"directories":{},"maintainers":[{"name":"albertomr86","email":"albertomr86@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-param-store_1.0.0_1662268862455_0.5211528698962227"},"_hasShrinkwrap":false},"1.1.0":{"name":"nestjs-param-store","version":"1.1.0","description":"Configure your NestJS application with AWS Parameter Store","author":{"name":"Alberto Menendez Romero","email":"albertomr86@gmail.com"},"keywords":["nestjs","nest.js","parameter store","parameter-store","ssm","config","configuration","aws","amazon web services"],"license":"MIT","main":"dist/index.js","engines":{"node":">= 16"},"repository":{"type":"git","url":"git+https://github.com/albertomr86/nestjs-param-store.git"},"bugs":{"url":"https://github.com/albertomr86/nestjs-param-store/issues"},"homepage":"https://github.com/albertomr86/nestjs-param-store/issues#readme","scripts":{"test":"jest --verbose -i --detectOpenHandles","lint":"eslint \"{lib,__tests__}/**/*.ts\" --fix","prebuild":"rimraf dist","build":"tsc -p tsconfig.json","format":"prettier --write \"lib/**/*.ts\" \"test/**/*.ts\""},"devDependencies":{"@nestjs/cli":"^9.0.0","@nestjs/common":"^9.0.5","@nestjs/core":"^9.0.5","@nestjs/platform-express":"^9.0.5","@nestjs/schematics":"^9.0.0","@nestjs/testing":"^9.0.0","@types/express":"^4.17.13","@types/jest":"28.1.4","@types/node":"^16.0.0","@types/supertest":"^2.0.11","@typescript-eslint/eslint-plugin":"^4.30.0","@typescript-eslint/parser":"^4.30.0","eslint":"^7.32.0","eslint-config-prettier":"^8.3.0","eslint-plugin-import":"^2.24.2","eslint-plugin-prettier":"^4.0.0","jest":"28.1.2","prettier":"^2.3.2","reflect-metadata":"^0.1.13","rimraf":"^3.0.2","rxjs":"^7.2.0","source-map-support":"^0.5.20","supertest":"^6.1.3","ts-jest":"28.0.5","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"4.0.0","tslint":"^6.0.0","typescript":"^4.3.5"},"peerDependencies":{"@aws-sdk/client-ssm":"^3.163.0","@nestjs/common":"^8.0.0 || ^9.0.0"},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":"lib","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node"},"types":"./dist/index.d.ts","gitHead":"0a0a4d643cd0fe7301033b9145e69ad0fb6ea534","_id":"nestjs-param-store@1.1.0","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-2hNTXCP8QfrZVMxQr7ml0aV8tw9hHqXlvXTxh3VXkERvrM73YDrJqUtlgXaH2UWFaPKuxUElXKhvcywE43muLw==","shasum":"5906a9d43d8d369a08fc66c7ba6f332b5e3bca9b","tarball":"https://registry.npmjs.org/nestjs-param-store/-/nestjs-param-store-1.1.0.tgz","fileCount":33,"unpackedSize":24758,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDSo7Y0T2/LdGpsAJLzPg+dJaBocCtLTecGN67fmD2kdAIhAIb/+kB7CQ7BMcttzeh06z/QDC8cXH9kno9uOGdYa3hA"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjukLWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpmMg/+LFDyzb2rOIIPPPjqXEv2FjJH5bTNbLLF+h9SiaAB+CkzLFt+\r\ny26UgaMchTFpSDArPzLSCP6iptO2AeNH3cLEhBIciegaEhCNyMVmfRyLk4Zw\r\nV/I8yPyv6JKhSFDFpAw6kc98RGauYZjZD/g3nrLKXxSWcWP6fBcUV5FD1Gaa\r\n1RynEckCGqfGWeJdLOGzWr4evETpd1P6dyLAYAqPu101+t5nIXDZNPt3j6GO\r\nyoik6ffOENUKrkk9ebEhJQbf5CKMAhJYcGexuAOJJWQeAbETq9+X/ErwcdxE\r\nY/BKr/n5yVTXsyonRFdbQdv4WHlBsCFQF/uJ6xu2WK2bCSZsvlE0ysxjX4ve\r\n0jPVhD5/B1WLLsB4bqub2N4vS9bWgRVIIu3Dkm9n6UAAdfg9Z4pocDX5tGdF\r\n6CooANl7ByaCMHog+OD/b2AwJa5//Dv38VhdBKBFxLo3xsAJ8YrpPx2x46gj\r\nXEYMVYjjBXpXh37l5OdOBsl1PtMH7YsZImZPsgqZxCr6NwLvaDlK+m7BQiOH\r\nyrGuE/klXaAd+Mo8/s+ACNm2tkssPumoJB4sS1tXWf1cAgR7kxrUuQH+UXfa\r\neHlEVrAhqR0lvQeEWkWRnuf/E0dQGOQecu4RbrCSCjIVGFz48/xwaasA98O5\r\nSCVgIB+LCu7S24uMctSfCRUhq7t/f366QVk=\r\n=1tEe\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"albertomr86","email":"albertomr86@gmail.com"},"directories":{},"maintainers":[{"name":"albertomr86","email":"albertomr86@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-param-store_1.1.0_1673151190771_0.4201353424698888"},"_hasShrinkwrap":false},"1.2.0":{"name":"nestjs-param-store","version":"1.2.0","description":"Configure your NestJS application with AWS Parameter Store","author":{"name":"Alberto Menendez Romero","email":"albertomr86@gmail.com"},"keywords":["nestjs","nest.js","parameter store","parameter-store","ssm","config","configuration","aws","amazon web services"],"license":"MIT","main":"dist/index.js","engines":{"node":">= 16"},"repository":{"type":"git","url":"git+https://github.com/albertomr86/nestjs-param-store.git"},"bugs":{"url":"https://github.com/albertomr86/nestjs-param-store/issues"},"homepage":"https://github.com/albertomr86/nestjs-param-store/issues#readme","scripts":{"test":"jest --verbose -i --detectOpenHandles","lint":"eslint \"{lib,__tests__}/**/*.ts\" --fix","prebuild":"rimraf dist","build":"tsc -p tsconfig.json","format":"prettier --write \"lib/**/*.ts\" \"test/**/*.ts\""},"devDependencies":{"@nestjs/cli":"^9.0.0","@nestjs/common":"^9.0.5","@nestjs/core":"^9.0.5","@nestjs/platform-express":"^9.0.5","@nestjs/schematics":"^9.0.0","@nestjs/testing":"^9.0.0","@types/express":"^4.17.13","@types/jest":"28.1.4","@types/node":"^16.0.0","@types/supertest":"^2.0.11","@typescript-eslint/eslint-plugin":"^4.30.0","@typescript-eslint/parser":"^4.30.0","eslint":"^7.32.0","eslint-config-prettier":"^8.3.0","eslint-plugin-import":"^2.24.2","eslint-plugin-prettier":"^4.0.0","jest":"28.1.2","prettier":"^2.3.2","reflect-metadata":"^0.1.13","rimraf":"^3.0.2","rxjs":"^7.2.0","source-map-support":"^0.5.20","supertest":"^6.1.3","ts-jest":"28.0.5","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"4.0.0","tslint":"^6.0.0","typescript":"^4.3.5"},"peerDependencies":{"@aws-sdk/client-ssm":"^3.163.0","@nestjs/common":"^8.0.0 || ^9.0.0"},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":"lib","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node"},"types":"./dist/index.d.ts","gitHead":"0755b9804be1829c7c7275dd9f214b54ad167797","_id":"nestjs-param-store@1.2.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-vAStJel5TV/Lc51EP5ltKJguVcJLPHv0P2VRK2lG95HRuvQe8TtMKYSVz27Fv7N+QJNN1vpTyb4QNXK6CxoW2w==","shasum":"91e8d1f9a0f8669b79540c95144439736a21c4fb","tarball":"https://registry.npmjs.org/nestjs-param-store/-/nestjs-param-store-1.2.0.tgz","fileCount":33,"unpackedSize":26685,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCA6HP0DHZan//cNsQqFNUYAefQfyf7FYJ6Un/mcbiMxAIhAMWbUP2BX+0S4Ys3fJe0URLhCUiDkc9blSynr6JZA2nv"}]},"_npmUser":{"name":"albertomr86","email":"albertomr86@gmail.com"},"directories":{},"maintainers":[{"name":"albertomr86","email":"albertomr86@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-param-store_1.2.0_1695444132695_0.6570104406837154"},"_hasShrinkwrap":false},"1.3.0":{"name":"nestjs-param-store","version":"1.3.0","description":"Configure your NestJS application with AWS Parameter Store","author":{"name":"Alberto Menendez Romero","email":"albertomr86@gmail.com"},"keywords":["nestjs","nest.js","parameter store","parameter-store","ssm","config","configuration","aws","amazon web services"],"license":"MIT","main":"dist/index.js","engines":{"node":">= 16"},"repository":{"type":"git","url":"git+https://github.com/albertomr86/nestjs-param-store.git"},"bugs":{"url":"https://github.com/albertomr86/nestjs-param-store/issues"},"homepage":"https://github.com/albertomr86/nestjs-param-store/issues#readme","scripts":{"lint":"eslint \"lib/**/*.ts\"","prebuild":"rimraf dist","build":"tsc -p tsconfig.json","format":"prettier --write \"lib/**/*.ts\"","test":"jest --verbose -i --detectOpenHandles --coverage"},"devDependencies":{"@nestjs/cli":"^9.5.0","@nestjs/common":"^9.4.3","@nestjs/core":"^9.4.3","@nestjs/platform-express":"^9.4.3","@nestjs/schematics":"^9.2.0","@nestjs/testing":"^9.4.3","@types/express":"^4.17.18","@types/jest":"28.1.4","@types/node":"^16.18.54","@types/supertest":"^2.0.12","@typescript-eslint/eslint-plugin":"^4.33.0","@typescript-eslint/parser":"^4.33.0","aws-sdk-client-mock":"^3.0.0","aws-sdk-client-mock-jest":"^3.0.0","eslint":"^7.32.0","eslint-config-prettier":"^8.10.0","eslint-plugin-import":"^2.28.1","eslint-plugin-prettier":"^4.2.1","jest":"28.1.2","prettier":"^2.8.8","reflect-metadata":"^0.1.13","rimraf":"^5.0.1","rxjs":"^7.8.1","source-map-support":"^0.5.21","supertest":"^6.3.3","ts-jest":"28.0.5","ts-loader":"^9.4.4","ts-node":"^10.9.1","tsconfig-paths":"4.2.0","tslint":"^6.1.3","typescript":"^4.3.5"},"peerDependencies":{"@aws-sdk/client-ssm":"^3.418.0","@nestjs/common":"^8.0.0 || ^9.0.0"},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":"lib","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node"},"types":"./dist/index.d.ts","gitHead":"d050e9c5a00c67ca3954b601ae17669b5ed717db","_id":"nestjs-param-store@1.3.0","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-GBOuZU2sUcpk76I9XahpYn2cd5h4NuJPMGU1e1CkmbJbzgql+H3ZkeE0HG639fk+aX1wtCV3rxVqI91P0f6vRA==","shasum":"51db54bdf4dd8cb27ca5b3f426a1f50b7c32f999","tarball":"https://registry.npmjs.org/nestjs-param-store/-/nestjs-param-store-1.3.0.tgz","fileCount":33,"unpackedSize":27166,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDtdGcQX3+ftDqdHfLO1eqctzkNE+GoeSr1n5LZ5OwB+AIgVueRS2/3hK1FZov/jk/ccJl86vCTWEjLPwZ/H0nsIyk="}]},"_npmUser":{"name":"albertomr86","email":"albertomr86@gmail.com"},"directories":{},"maintainers":[{"name":"albertomr86","email":"albertomr86@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-param-store_1.3.0_1695543373478_0.6193939044520196"},"_hasShrinkwrap":false},"1.3.1":{"name":"nestjs-param-store","version":"1.3.1","description":"Configure your NestJS application with AWS Parameter Store","author":{"name":"Alberto Menendez Romero","email":"albertomr86@gmail.com"},"keywords":["nestjs","nest.js","parameter store","parameter-store","ssm","config","configuration","aws","amazon web services"],"license":"MIT","main":"dist/index.js","engines":{"node":">= 16"},"repository":{"type":"git","url":"git+https://github.com/albertomr86/nestjs-param-store.git"},"bugs":{"url":"https://github.com/albertomr86/nestjs-param-store/issues"},"homepage":"https://github.com/albertomr86/nestjs-param-store/issues#readme","scripts":{"lint":"eslint \"lib/**/*.ts\"","prebuild":"rimraf dist","build":"tsc -p tsconfig.json","format":"prettier --write \"lib/**/*.ts\"","test":"jest --verbose -i --detectOpenHandles --coverage"},"devDependencies":{"@nestjs/cli":"^10.0.0","@nestjs/common":"^10.0.0","@nestjs/core":"^10.0.0","@nestjs/platform-express":"^10.0.0","@nestjs/schematics":"^10.0.0","@nestjs/testing":"^10.0.0","@types/express":"^4.17.18","@types/jest":"28.1.4","@types/node":"^16.18.54","@types/supertest":"^2.0.12","@typescript-eslint/eslint-plugin":"^4.33.0","@typescript-eslint/parser":"^4.33.0","aws-sdk-client-mock":"^3.0.0","aws-sdk-client-mock-jest":"^3.0.0","eslint":"^7.32.0","eslint-config-prettier":"^8.10.0","eslint-plugin-import":"^2.28.1","eslint-plugin-prettier":"^4.2.1","jest":"28.1.2","prettier":"^2.8.8","reflect-metadata":"^0.1.13","rimraf":"^5.0.1","rxjs":"^7.8.1","source-map-support":"^0.5.21","supertest":"^6.3.3","ts-jest":"28.0.5","ts-loader":"^9.4.4","ts-node":"^10.9.1","tsconfig-paths":"4.2.0","tslint":"^6.1.3","typescript":"^4.3.5"},"peerDependencies":{"@aws-sdk/client-ssm":"^3.418.0","@nestjs/common":"^8.0.0 || ^9.0.0 || ^10.0.0"},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":"lib","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node"},"types":"./dist/index.d.ts","gitHead":"2aa0d8e8655f6adab77ce6b881016310fe18cb80","_id":"nestjs-param-store@1.3.1","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-YSRHs8XgryW23Xb+Bx4cOFxuCDPEheW3Kq4NtbLQHYpOZqX90lBp6AszmOW9EOztj74akT7dyA93lJ32Gj164A==","shasum":"3e4a0ba0ec66730534347967760a14aba46e0284","tarball":"https://registry.npmjs.org/nestjs-param-store/-/nestjs-param-store-1.3.1.tgz","fileCount":33,"unpackedSize":27190,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDfJ2XE4EEM0f5ntxbf+95An8i3qMz8xTmd3EMKoJazRgIgVjWcPeVm88eOvP4kT4jHS6hmYRuoHUksOJ0Cr7yCrzU="}]},"_npmUser":{"name":"albertomr86","email":"albertomr86@gmail.com"},"directories":{},"maintainers":[{"name":"albertomr86","email":"albertomr86@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-param-store_1.3.1_1706672809467_0.6171389023162939"},"_hasShrinkwrap":false}},"time":{"created":"2022-09-04T05:21:02.454Z","1.0.0":"2022-09-04T05:21:02.662Z","modified":"2024-01-31T03:46:49.785Z","1.1.0":"2023-01-08T04:13:10.924Z","1.2.0":"2023-09-23T04:42:12.908Z","1.3.0":"2023-09-24T08:16:13.656Z","1.3.1":"2024-01-31T03:46:49.634Z"},"maintainers":[{"name":"albertomr86","email":"albertomr86@gmail.com"}],"description":"Configure your NestJS application with AWS Parameter Store","homepage":"https://github.com/albertomr86/nestjs-param-store/issues#readme","keywords":["nestjs","nest.js","parameter store","parameter-store","ssm","config","configuration","aws","amazon web services"],"repository":{"type":"git","url":"git+https://github.com/albertomr86/nestjs-param-store.git"},"author":{"name":"Alberto Menendez Romero","email":"albertomr86@gmail.com"},"bugs":{"url":"https://github.com/albertomr86/nestjs-param-store/issues"},"license":"MIT","readme":"# NestJS Config AWS Parameter Store\n\n[![NPM](https://img.shields.io/npm/v/nestjs-param-store.svg)](https://www.npmjs.com/package/nestjs-param-store)\n![Package License](https://img.shields.io/github/license/albertomr86/nestjs-param-store)\n![Build Status](https://github.com/albertomr86/nestjs-param-store/workflows/ci/badge.svg)\n[![codecov](https://codecov.io/gh/albertomr86/nestjs-param-store/graph/badge.svg?token=WT83BVBOZE)](https://codecov.io/gh/albertomr86/nestjs-param-store)\n\nThis package allows you to configure your NestJS application by loading the configuration from [AWS SSM Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html).\n\n## Installation\n\n```bash\nnpm install nestjs-param-store @aws-sdk/client-ssm\n```\n\n## Configuration\n\n### Static configuration\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { PSConfigModule } from 'nestjs-param-store';\n\n@Module({\n  imports: [\n    PSConfigModule.register({\n      ssmParamStorePath: '/production/services/my-service',\n      ssmDecryptParams: true,\n      ssmRecursive: false,\n      ssmClientOptions: {\n        region: 'us-east-1',\n      },\n    }),\n  ],\n})\nexport class AppModule {}\n```\n\nBy calling `PSConfigModule.register`, you configure the module to load all the parameters under the path `ssmParamStorePath`.\n\n### Async configuration\n\nThe following example shows how to retrieve the configuration before registering the module.\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { ConfigModule, ConfigService } from '@nestjs/config';\nimport { PSConfigModule } from 'nestjs-param-store';\n\n@Module({\n  imports: [\n    PSConfigModule.registerAsync({\n      imports: [ConfigModule],\n      useFactory: async (config: ConfigService<EnvironmentVariables>) => ({\n        ssmParamStorePath: config.get<string>('APP_CONFIG_PATH'),\n        ssmDecryptParams: true,\n        ssmRecursive: false,\n        ssmClientOptions: {\n          region: config.get<string>('AWS_REGION'),\n        },\n      }),\n      inject: [ConfigService],\n    }),\n  ],\n})\nexport class AppModule {}\n```\n\n## Options\n\n| Option            \t| Required \t| Default     \t| Description                                                       \t|\n|-------------------\t|----------\t|-------------\t|-------------------------------------------------------------------\t|\n| ssmParamStorePath \t| Yes      \t|             \t| The hierarchy for the parameter                                   \t|\n| ssmDecryptParams  \t| No       \t| `false`     \t| Retrieve all parameters in a hierarchy with their value decrypted \t|\n| ssmRecursive      \t| No       \t| `false`     \t| Retrieve all parameters within a hierarchy                        \t|\n| ssmClientOptions  \t| No       \t| `undefined` \t| Options to pass to the underlying SSM client                      \t|\n\n## Services\n\nThis module exposes the following services.\n\n### ConfigService\n\nThe `PSConfigService` service allows you to access the configuration loaded from Parameter Store. Use its own class name as the injection token.\n\nLet's assume the following parameters were previously registered:\n\n- `/production/services/my-service/pagination-limit`: '25'\n- `/production/services/my-service/post-table`: 'ProductionPostTable'\n\nConfigure the module with `ssmParamStorePath` pointing to `/production/services/my-service` to access all the parameters register for the service in production.\n\nThen, access the configuration as follows:\n\n```typescript\nimport { Injectable } from '@nestjs/common';\nimport { PSConfigService } from 'nestjs-param-store';\nimport { DynamoDBClient, QueryCommand, GetItemCommand } from '@aws-sdk/client-dynamodb';\n\n@Injectable()\nexport class PostRepository {\n  // Some common initialization.\n  public constructor(\n    private readonly dynamodbClient: DynamoDBClient,\n    private readonly psConfigService: PSConfigService,\n  ) {}\n\n  public getPostsByUser(userId: string) {\n    // Here: Note how to retrieve the configuration.\n    const table = await this.psConfigService.get<string>('post-table');\n    const limit = await this.psConfigService.get<number>('pagination-limit');\n\n    const queryCommand = new QueryCommand({\n      TableName: table, // <- use\n      KeyConditionExpression: 'PK = :pk',\n      ExpressionAttributeValues: {\n        ':pk': { S: `USER#${userId}` },\n      },\n      Limit: limit,  // <- use\n    });\n\n    const { Items = [] } = await this.dynamodbClient.send(queryCommand);\n    // .... snip ....\n  }\n}\n```\n\nThe `PSConfigService` service exposes the following methods:\n\n- `get(name, defaultValue)`: To retrieve a string configuration.\n- `getBool(name, defaultValue)`: To retrieve a boolean configuration. The following values as considered truly: `true`, `True`, `1`, `y`, `yes`, and `Yes`.\n- `getNumber(name, defaultValue)`: To retrieve a numeric configuration.\n\n### How does the PSConfigService service resolve the configurations?\n\nWhen calling `get`, `getBool`, or `getNumber`, the service will look up a parameter whose name ends with the name specified. This means that the match is partial.\n\nGiven the following parameter:\n\n- `/production/services/my-service/pagination-limit`: '25'\n\nIt can be retrieved using one of these alternatives:\n\n- `get('pagination-limit')`\n- `get('my-service/pagination-limit')`\n- `get('services/my-service/pagination-limit')`\n- `get('production/services/my-service/pagination-limit')`\n\n### Raw Parameters\n\nYou can access the raw parameters loaded from the Parameter Store.\n\n```typescript\nimport { Inject, Injectable } from '@nestjs/common';\nimport { PS_CONFIG_PARAMETERS, PSConfigParameters } from 'nestjs-param-store';\n\n@Injectable()\nexport class SophisticatedService {\n  public constructor(\n    @Inject(PS_CONFIG_PARAMETERS) parameters: PSConfigParameters,\n  ) {\n    console.log(parameters);\n  }\n}\n```\n\nExample of output:\n\n```json\n[\n  {\n      \"Name\": \"/production/services/my-service/pagination-limit\",\n      \"Type\": \"String\",\n      \"Value\": \"25\",\n      \"Version\": 1,\n      \"LastModifiedDate\": \"2022-09-03T02:55:00.389000-04:00\",\n      \"ARN\": \"arn:aws:ssm:us-east-1:000000000000:parameter/production/services/my-service/pagination-limit\",\n      \"DataType\": \"text\"\n  },\n  {\n      \"Name\": \"/production/services/my-service/post-table\",\n      \"Type\": \"String\",\n      \"Value\": \"ProductionPostTable\",\n      \"Version\": 1,\n      \"LastModifiedDate\": \"2022-09-03T03:15:15.032000-04:00\",\n      \"ARN\": \"arn:aws:ssm:us-east-1:000000000000:parameter/production/services/my-service/post-table\",\n      \"DataType\": \"text\"\n  }\n]\n```\n\n## Troubleshooting\n\n### Empty list of parameters returned\n\nThis happens when `recursive` is `false` and the specified path does not resolve the final level in the hierarchy.\n\n[Reference: GetParametersByPath](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParametersByPath.html#API_GetParametersByPath_RequestSyntax)\n\n```typescript\nimport { Module } from '@nestjs/common';\nimport { PSConfigModule } from 'nestjs-param-store';\n\n@Module({\n  imports: [\n    PSConfigModule.register({\n      ssmParamStorePath: '/production',\n      ssmRecursive: true,   // <-- specify recursively\n    }),\n  ],\n})\nexport class AppModule {}\n```\n","readmeFilename":"README.md"}