{"_id":"@agiledigital/pino-redact-pii","_rev":"7-c4dd3a0b5b312af407ab46be93c06010","name":"@agiledigital/pino-redact-pii","dist-tags":{"latest":"3.1.0"},"versions":{"1.0.1":{"name":"@agiledigital/pino-redact-pii","version":"1.0.1","author":{"name":"Agile Digital"},"license":"MIT","_id":"@agiledigital/pino-redact-pii@1.0.1","maintainers":[{"name":"sammurphy","email":"sam@sammurphy.dev"},{"name":"rorystokes","email":"contact@rorystok.es"},{"name":"haolinj","email":"haolinj@gmail.com"},{"name":"danielnixon","email":"dan.nixon@gmail.com"},{"name":"dspasojevic","email":"daniel.spasojevic@gmail.com"},{"name":"dbalmain","email":"dbalmain@gmail.com"}],"homepage":"https://github.com/agiledigital-labs/pino-redact-pii","bugs":{"url":"https://github.com/agiledigital-labs/pino-redact-pii/issues"},"dist":{"shasum":"58a4103a4d77a635dcb82906c885eaedd16e0a19","tarball":"https://registry.npmjs.org/@agiledigital/pino-redact-pii/-/pino-redact-pii-1.0.1.tgz","fileCount":15,"integrity":"sha512-ubA04mc7op3C5jvWiOqmdDb0Mz7pI8/qCbRANwnIuIqLOaUWZ4VmQnOYjiM7KJpMwLqBmG2hHXS+EmyArX+q5w==","signatures":[{"sig":"MEUCIDeoGKBKDkXzKMcU5U2PI/e+PCkTpPfn4zUdJmGZswHmAiEAh7dt9PGqZWQ/Y++4ZbrINelwfSC1mdFnqfPlVMM0Y7c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":45501},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/*.test.ts"],"transform":{"^.+\\.tsx?$":["ts-jest",{"diagnostics":{"exclude":["!**/*.(spec|test).ts"]}}]},"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":100,"branches":100,"functions":100,"statements":100}}},"main":"dist","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"ed49cb676b004cd43ca5f180dd78fc15d1e2123c","private":false,"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator","@semantic-release/npm",["@semantic-release/git",{"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]],"branches":["main"]},"scripts":{"lint":"eslint src --ext .ts,.tsx --report-unused-disable-directives","test":"jest","build":"tsc","commit":"git-cz","format":"prettier --write 'src/**/*.{ts,tsx}'","prepare":"husky install","release":"semantic-release","mutation-test":"stryker run","type-coverage":"type-coverage"},"_npmUser":{"name":"dspasojevic","email":"daniel.spasojevic@gmail.com"},"repository":{"url":"git+https://github.com/agiledigital-labs/pino-redact-pii.git","type":"git"},"_npmVersion":"10.2.3","description":"Pino + redact-pii","directories":{},"_nodeVersion":"18.19.0","dependencies":{"redact-pii":"^3.4.0"},"typeCoverage":{"detail":true,"strict":true,"atLeast":100,"ignoreCatch":false},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","pino":"^8.17.2","husky":"8.0.3","eslint":"^8.56.0","ts-jest":"29.1.1","prettier":"3.1.1","commitizen":"^4.3.0","fast-check":"3.15.0","typescript":"^5.3.3","@types/jest":"29.5.11","type-coverage":"2.27.1","semantic-release":"^20.1.1","eslint-plugin-jest":"^27.6.1","@semantic-release/git":"^10.0.1","@stryker-mutator/core":"8.0.0","better-typescript-lib":"^2.6.0","eslint-plugin-sonarjs":"^0.23.0","eslint-config-prettier":"9.1.0","eslint-config-typed-fp":"^5.4.0","eslint-plugin-prettier":"^5.1.2","eslint-plugin-functional":"^6.0.0","@typescript-eslint/parser":"^6.17.0","cz-conventional-changelog":"^3.3.0","@agiledigital/eslint-config":"^4.1.0","@stryker-mutator/jest-runner":"8.0.0","eslint-plugin-total-functions":"^7.1.0","@typescript-eslint/eslint-plugin":"^6.17.0","@stryker-mutator/typescript-checker":"8.0.0"},"peerDependencies":{"pino":"^8.17.2"},"peerDependenciesMeta":{"pino":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pino-redact-pii_1.0.1_1704432131774_0.5575546205616104","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@agiledigital/pino-redact-pii","version":"1.0.2","author":{"name":"Agile Digital"},"license":"MIT","_id":"@agiledigital/pino-redact-pii@1.0.2","maintainers":[{"name":"sammurphy","email":"sam@sammurphy.dev"},{"name":"rorystokes","email":"contact@rorystok.es"},{"name":"haolinj","email":"haolinj@gmail.com"},{"name":"danielnixon","email":"dan.nixon@gmail.com"},{"name":"dspasojevic","email":"daniel.spasojevic@gmail.com"},{"name":"dbalmain","email":"dbalmain@gmail.com"}],"homepage":"https://github.com/agiledigital-labs/pino-redact-pii","bugs":{"url":"https://github.com/agiledigital-labs/pino-redact-pii/issues"},"dist":{"shasum":"986971d4aace330d5d88838594714a8487febc97","tarball":"https://registry.npmjs.org/@agiledigital/pino-redact-pii/-/pino-redact-pii-1.0.2.tgz","fileCount":15,"integrity":"sha512-W4Wt97+StZ34qt3Y60EVRWSIMZaxOUwcJkPJNFHSTPQ2kDtVl/9BE7caTfWg2RSq9IyQ/5w0psIBqrtAoBlW9g==","signatures":[{"sig":"MEUCIDd8c6SF0dwXhY0RnaKcllLtum/I0vCIbNg7TtskoOx8AiEA96/ojllGzJJI9I22wXJi7HhQeZDShKHso6S+q26ODOk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":45504},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/*.test.ts"],"transform":{"^.+\\.tsx?$":["ts-jest",{"diagnostics":{"exclude":["!**/*.(spec|test).ts"]}}]},"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":100,"branches":100,"functions":100,"statements":100}}},"main":"dist","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"11a395305e8c8e63b5b3b0168b065715471335d7","private":false,"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator","@semantic-release/npm",["@semantic-release/git",{"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]],"branches":["main"]},"scripts":{"lint":"eslint src --ext .ts,.tsx --report-unused-disable-directives","test":"jest","build":"tsc","commit":"git-cz","format":"prettier --write 'src/**/*.{ts,tsx}'","prepare":"husky install","release":"semantic-release","mutation-test":"stryker run","type-coverage":"type-coverage"},"_npmUser":{"name":"dspasojevic","email":"daniel.spasojevic@gmail.com"},"repository":{"url":"git+https://github.com/agiledigital-labs/pino-redact-pii.git","type":"git"},"_npmVersion":"10.2.3","description":"Pino + redact-pii","directories":{},"_nodeVersion":"18.19.0","dependencies":{"redact-pii":"^3.4.0"},"typeCoverage":{"detail":true,"strict":true,"atLeast":100,"ignoreCatch":false},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","pino":"^8.17.2","husky":"8.0.3","eslint":"^8.56.0","ts-jest":"29.1.1","prettier":"3.1.1","commitizen":"^4.3.0","fast-check":"3.15.0","typescript":"^5.3.3","@types/jest":"29.5.11","type-coverage":"2.27.1","semantic-release":"^20.1.1","eslint-plugin-jest":"^27.6.1","@semantic-release/git":"^10.0.1","@stryker-mutator/core":"8.0.0","better-typescript-lib":"^2.6.0","eslint-plugin-sonarjs":"^0.23.0","eslint-config-prettier":"9.1.0","eslint-config-typed-fp":"^5.4.0","eslint-plugin-prettier":"^5.1.2","eslint-plugin-functional":"^6.0.0","@typescript-eslint/parser":"^6.17.0","cz-conventional-changelog":"^3.3.0","@agiledigital/eslint-config":"^4.1.0","@stryker-mutator/jest-runner":"8.0.0","eslint-plugin-total-functions":"^7.1.0","@typescript-eslint/eslint-plugin":"^6.17.0","@stryker-mutator/typescript-checker":"8.0.0"},"peerDependencies":{"pino":"^8.17.2"},"peerDependenciesMeta":{"pino":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pino-redact-pii_1.0.2_1704432563013_0.3279199487217823","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@agiledigital/pino-redact-pii","version":"1.0.3","author":{"name":"Agile Digital"},"license":"MIT","_id":"@agiledigital/pino-redact-pii@1.0.3","maintainers":[{"name":"sammurphy","email":"sam@sammurphy.dev"},{"name":"rorystokes","email":"contact@rorystok.es"},{"name":"haolinj","email":"haolinj@gmail.com"},{"name":"danielnixon","email":"dan.nixon@gmail.com"},{"name":"dspasojevic","email":"daniel.spasojevic@gmail.com"},{"name":"dbalmain","email":"dbalmain@gmail.com"}],"homepage":"https://github.com/agiledigital-labs/pino-redact-pii","bugs":{"url":"https://github.com/agiledigital-labs/pino-redact-pii/issues"},"dist":{"shasum":"77ea477722d8134f441386e87757de51e769d7b7","tarball":"https://registry.npmjs.org/@agiledigital/pino-redact-pii/-/pino-redact-pii-1.0.3.tgz","fileCount":15,"integrity":"sha512-fI7zlzF/0NId5AbsosBn3D1npxVGT1gRJggCzc2xKz3qmMXIxO85JXLEXsmbf7LCY79J/QKFGZd3ygmp7ysN+g==","signatures":[{"sig":"MEUCIBzk+pj2PlEI7oTCcrSk9FAO1170R8SzSYUGxB9d5J3rAiEAq6+eR/gf/FuSCFpOOod5L7FDPxAgxJvF1UaoV/02Oc8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":45574},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/*.test.ts"],"transform":{"^.+\\.tsx?$":["ts-jest",{"diagnostics":{"exclude":["!**/*.(spec|test).ts"]}}]},"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":100,"branches":100,"functions":100,"statements":100}}},"main":"dist","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"382d2aa10dfc9dd2aaa599b3815949efa2555709","private":false,"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator","@semantic-release/npm",["@semantic-release/git",{"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]],"branches":["main"]},"scripts":{"lint":"eslint src --ext .ts,.tsx --report-unused-disable-directives","test":"jest","build":"tsc","commit":"git-cz","format":"prettier --write 'src/**/*.{ts,tsx}'","prepare":"husky install","release":"semantic-release","mutation-test":"stryker run","type-coverage":"type-coverage"},"_npmUser":{"name":"dspasojevic","email":"daniel.spasojevic@gmail.com"},"repository":{"url":"git+https://github.com/agiledigital-labs/pino-redact-pii.git","type":"git"},"_npmVersion":"10.2.3","description":"Pino + redact-pii","directories":{},"_nodeVersion":"18.19.0","dependencies":{"redact-pii":"^3.4.0"},"typeCoverage":{"detail":true,"strict":true,"atLeast":100,"ignoreCatch":false},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","pino":"^8.17.2","husky":"8.0.3","eslint":"^8.56.0","ts-jest":"29.1.1","prettier":"3.1.1","commitizen":"^4.3.0","fast-check":"3.15.0","typescript":"^5.3.3","@types/jest":"29.5.11","type-coverage":"2.27.1","semantic-release":"^20.1.1","eslint-plugin-jest":"^27.6.1","@semantic-release/git":"^10.0.1","@stryker-mutator/core":"8.0.0","better-typescript-lib":"^2.6.0","eslint-plugin-sonarjs":"^0.23.0","eslint-config-prettier":"9.1.0","eslint-config-typed-fp":"^5.4.0","eslint-plugin-prettier":"^5.1.2","eslint-plugin-functional":"^6.0.0","@typescript-eslint/parser":"^6.17.0","cz-conventional-changelog":"^3.3.0","@agiledigital/eslint-config":"^4.1.0","@stryker-mutator/jest-runner":"8.0.0","eslint-plugin-total-functions":"^7.1.0","@typescript-eslint/eslint-plugin":"^6.17.0","@stryker-mutator/typescript-checker":"8.0.0"},"peerDependencies":{"pino":"^8.17.2"},"peerDependenciesMeta":{"pino":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pino-redact-pii_1.0.3_1704433186630_0.7883009474253475","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"@agiledigital/pino-redact-pii","version":"1.0.4","author":{"name":"Agile Digital"},"license":"MIT","_id":"@agiledigital/pino-redact-pii@1.0.4","maintainers":[{"name":"sammurphy","email":"sam@sammurphy.dev"},{"name":"rorystokes","email":"contact@rorystok.es"},{"name":"haolinj","email":"haolinj@gmail.com"},{"name":"danielnixon","email":"dan.nixon@gmail.com"},{"name":"dspasojevic","email":"daniel.spasojevic@gmail.com"},{"name":"dbalmain","email":"dbalmain@gmail.com"}],"homepage":"https://github.com/agiledigital-labs/pino-redact-pii","bugs":{"url":"https://github.com/agiledigital-labs/pino-redact-pii/issues"},"dist":{"shasum":"e595709fefff9f9c672bac8b3b7913703d2b9f82","tarball":"https://registry.npmjs.org/@agiledigital/pino-redact-pii/-/pino-redact-pii-1.0.4.tgz","fileCount":21,"integrity":"sha512-wpTVjPf2UVdCZiE7IvKRiWUQ+ocSymFQmnbz7IbIsZacxfSNsGYf+CPRRL6OaNT+bpg+X7JuEzBG0JyC8qVVIw==","signatures":[{"sig":"MEUCIEBLUKEO9FgQJb+W7A/RSMy9pvBdKNvOlxfoxv7NM+OnAiEAnJAWCEGYdLRdbxMKDGC+ifMEHyiGiF3fslpcANf8pys=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":58790},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/*.test.ts"],"transform":{"^.+\\.tsx?$":["ts-jest",{"diagnostics":{"exclude":["!**/*.(spec|test).ts"]}}]},"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":100,"branches":100,"functions":100,"statements":100}}},"main":"dist","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"0865a56129bcf42d70c70eedc7f9f53cebd81f10","private":false,"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator","@semantic-release/npm",["@semantic-release/git",{"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]],"branches":["main"]},"scripts":{"lint":"eslint src --ext .ts,.tsx --report-unused-disable-directives","test":"jest","build":"tsc","commit":"git-cz","format":"prettier --write 'src/**/*.{ts,tsx}'","prepare":"husky install","release":"semantic-release","mutation-test":"stryker run","type-coverage":"type-coverage"},"_npmUser":{"name":"dspasojevic","email":"daniel.spasojevic@gmail.com"},"repository":{"url":"git+https://github.com/agiledigital-labs/pino-redact-pii.git","type":"git"},"_npmVersion":"10.2.3","description":"Pino + redact-pii","directories":{},"_nodeVersion":"18.19.0","dependencies":{"redact-pii":"^3.4.0"},"typeCoverage":{"detail":true,"strict":true,"atLeast":100,"ignoreCatch":false},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","pino":"^8.17.2","husky":"8.0.3","eslint":"^8.56.0","ts-jest":"29.1.1","prettier":"3.2.4","commitizen":"^4.3.0","fast-check":"3.15.0","typescript":"^5.3.3","@types/jest":"29.5.11","type-coverage":"2.27.1","semantic-release":"^20.1.1","eslint-plugin-jest":"^27.6.1","@semantic-release/git":"^10.0.1","@stryker-mutator/core":"8.0.0","better-typescript-lib":"^2.6.0","eslint-plugin-sonarjs":"^0.23.0","eslint-config-prettier":"9.1.0","eslint-config-typed-fp":"^5.4.0","eslint-plugin-prettier":"^5.1.2","eslint-plugin-functional":"^6.0.0","@typescript-eslint/parser":"^6.17.0","cz-conventional-changelog":"^3.3.0","@agiledigital/eslint-config":"^4.1.0","@stryker-mutator/jest-runner":"8.0.0","eslint-plugin-total-functions":"^7.1.0","@typescript-eslint/eslint-plugin":"^6.17.0","@stryker-mutator/typescript-checker":"8.0.0"},"peerDependencies":{"pino":"^8.17.2"},"peerDependenciesMeta":{"pino":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pino-redact-pii_1.0.4_1705885307586_0.26771547528059436","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@agiledigital/pino-redact-pii","version":"2.0.0","author":{"name":"Agile Digital"},"license":"MIT","_id":"@agiledigital/pino-redact-pii@2.0.0","maintainers":[{"name":"sammurphy","email":"sam@sammurphy.dev"},{"name":"rorystokes","email":"contact@rorystok.es"},{"name":"haolinj","email":"haolinj@gmail.com"},{"name":"danielnixon","email":"dan.nixon@gmail.com"},{"name":"dspasojevic","email":"daniel.spasojevic@gmail.com"},{"name":"dbalmain","email":"dbalmain@gmail.com"}],"homepage":"https://github.com/agiledigital-labs/pino-redact-pii","bugs":{"url":"https://github.com/agiledigital-labs/pino-redact-pii/issues"},"dist":{"shasum":"345a1d9f5e906de1a236d673fa337fca9cec5c94","tarball":"https://registry.npmjs.org/@agiledigital/pino-redact-pii/-/pino-redact-pii-2.0.0.tgz","fileCount":21,"integrity":"sha512-lVPtUKtqel9XFrajOzYZhDDhC3vjaEdW880GvUaoWNcmC/dbirblqBCdOG8oo4W77HPh0vo2xZN3BhXKZjvSgg==","signatures":[{"sig":"MEQCIHMjSyWVMxrxtt59Ez7/U40JTIlE0pKIUUsuIg4YcP+8AiBvNAfPkEfgTbn4ACs/h9rEVHYgJdZy0DpIu/rUPc92tA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":66889},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/*.test.ts"],"transform":{"^.+\\.tsx?$":["ts-jest",{"diagnostics":{"exclude":["!**/*.(spec|test).ts"]}}]},"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":100,"branches":100,"functions":100,"statements":100}}},"main":"dist","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"60f015e4a3978dcfa2d5429fff7ca361853befaa","private":false,"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator","@semantic-release/npm",["@semantic-release/git",{"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]],"branches":["main"]},"scripts":{"lint":"eslint src --ext .ts,.tsx --report-unused-disable-directives","test":"jest","build":"tsc","commit":"git-cz","format":"prettier --write 'src/**/*.{ts,tsx}'","prepare":"husky install","release":"semantic-release","mutation-test":"stryker run","type-coverage":"type-coverage"},"_npmUser":{"name":"dspasojevic","email":"daniel.spasojevic@gmail.com"},"repository":{"url":"git+https://github.com/agiledigital-labs/pino-redact-pii.git","type":"git"},"_npmVersion":"10.2.3","description":"Pino + redact-pii","directories":{},"_nodeVersion":"18.19.0","dependencies":{"redact-pii":"^3.4.0"},"typeCoverage":{"detail":true,"strict":true,"atLeast":100,"ignoreCatch":false},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","pino":"^8.18.0","husky":"8.0.3","eslint":"^8.56.0","ts-jest":"29.1.2","prettier":"3.2.5","commitizen":"^4.3.0","fast-check":"3.15.1","typescript":"^5.3.3","@types/jest":"29.5.12","type-coverage":"2.27.1","semantic-release":"^20.1.1","eslint-plugin-jest":"^27.6.1","@semantic-release/git":"^10.0.1","@stryker-mutator/core":"8.2.3","eslint-plugin-sonarjs":"^0.23.0","eslint-config-prettier":"9.1.0","eslint-config-typed-fp":"^5.4.0","eslint-plugin-prettier":"^5.1.2","eslint-plugin-functional":"^6.0.0","@typescript-eslint/parser":"^6.17.0","cz-conventional-changelog":"^3.3.0","@agiledigital/eslint-config":"^4.1.0","@stryker-mutator/jest-runner":"8.2.3","eslint-plugin-total-functions":"^7.1.0","@typescript-eslint/eslint-plugin":"^6.17.0","@stryker-mutator/typescript-checker":"8.2.3"},"peerDependencies":{"pino":"^8.17.2"},"peerDependenciesMeta":{"pino":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pino-redact-pii_2.0.0_1707455219087_0.1656063317762455","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"@agiledigital/pino-redact-pii","version":"3.0.0","author":{"name":"Agile Digital"},"license":"MIT","_id":"@agiledigital/pino-redact-pii@3.0.0","maintainers":[{"name":"sammurphy","email":"sam@sammurphy.dev"},{"name":"rorystokes","email":"contact@rorystok.es"},{"name":"haolinj","email":"haolinj@gmail.com"},{"name":"danielnixon","email":"dan.nixon@gmail.com"},{"name":"dspasojevic","email":"daniel.spasojevic@gmail.com"},{"name":"dbalmain","email":"dbalmain@gmail.com"}],"homepage":"https://github.com/agiledigital-labs/pino-redact-pii","bugs":{"url":"https://github.com/agiledigital-labs/pino-redact-pii/issues"},"dist":{"shasum":"e7edb4451df5af01942d1fb442b41f187a800099","tarball":"https://registry.npmjs.org/@agiledigital/pino-redact-pii/-/pino-redact-pii-3.0.0.tgz","fileCount":21,"integrity":"sha512-QU6fp75l3tJGoUJEEhrNTVDYZAl6H2hGwDnAwMtnrveg1gcKVStZ+qcXnc9q0HjRGP+SbauzzTm0wr7rtuVYVg==","signatures":[{"sig":"MEYCIQCMKSo/8kZBo9EAm9FOZ2S3JfOVm6yTacMU7fjxsdZYsAIhAILl1dR/r0rWP6SUjpWb8ipnp9gNXd6S3kLkiilrweYj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":80260},"jest":{"roots":["<rootDir>/src"],"preset":"ts-jest","testMatch":["**/*.test.ts"],"transform":{"^.+\\.tsx?$":["ts-jest",{"diagnostics":{"exclude":["!**/*.(spec|test).ts"]}}]},"collectCoverage":true,"testEnvironment":"node","coverageThreshold":{"global":{"lines":100,"branches":100,"functions":100,"statements":100}}},"main":"dist","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"84efe8e1931fbb95f66d903c727695923bb21103","private":false,"release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator","@semantic-release/npm",["@semantic-release/git",{"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]],"branches":["main"]},"scripts":{"lint":"eslint src --ext .ts,.tsx --report-unused-disable-directives","test":"jest","build":"tsc","commit":"git-cz","format":"prettier --write 'src/**/*.{ts,tsx}'","prepare":"husky install","release":"semantic-release","mutation-test":"stryker run","type-coverage":"type-coverage"},"_npmUser":{"name":"dspasojevic","email":"daniel.spasojevic@gmail.com"},"repository":{"url":"git+https://github.com/agiledigital-labs/pino-redact-pii.git","type":"git"},"_npmVersion":"10.2.3","description":"Pino + redact-pii","directories":{},"_nodeVersion":"18.19.0","dependencies":{"redact-pii":"^3.4.0"},"typeCoverage":{"detail":true,"strict":true,"atLeast":100,"ignoreCatch":false},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","pino":"^8.18.0","husky":"8.0.3","eslint":"^8.56.0","ts-jest":"29.1.2","prettier":"3.2.5","commitizen":"^4.3.0","fast-check":"3.15.1","typescript":"^5.3.3","@types/jest":"29.5.12","type-coverage":"2.27.1","semantic-release":"^20.1.1","eslint-plugin-jest":"^27.6.1","@semantic-release/git":"^10.0.1","@stryker-mutator/core":"8.2.3","eslint-plugin-sonarjs":"^0.23.0","eslint-config-prettier":"9.1.0","eslint-config-typed-fp":"^5.4.0","eslint-plugin-prettier":"^5.1.2","eslint-plugin-functional":"^6.0.0","@typescript-eslint/parser":"^6.17.0","cz-conventional-changelog":"^3.3.0","@agiledigital/eslint-config":"^4.1.0","@stryker-mutator/jest-runner":"8.2.3","eslint-plugin-total-functions":"^7.1.0","@typescript-eslint/eslint-plugin":"^6.17.0","@stryker-mutator/typescript-checker":"8.2.3"},"peerDependencies":{"pino":"^8.17.2"},"peerDependenciesMeta":{"pino":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pino-redact-pii_3.0.0_1708423225084_0.2508740696656182","host":"s3://npm-registry-packages"}},"3.1.0":{"name":"@agiledigital/pino-redact-pii","version":"3.1.0","description":"Pino + redact-pii","main":"dist","scripts":{"build":"tsc","lint":"eslint src --ext .ts,.tsx --report-unused-disable-directives","type-coverage":"type-coverage","format":"prettier --write 'src/**/*.{ts,tsx}'","test":"jest","mutation-test":"stryker run","prepare":"husky install","release":"semantic-release","commit":"git-cz"},"release":{"branches":["main"],"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator","@semantic-release/npm",["@semantic-release/git",{"message":"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"}]]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"repository":{"type":"git","url":"git+https://github.com/agiledigital-labs/pino-redact-pii.git"},"author":{"name":"Agile Digital"},"private":false,"publishConfig":{"access":"public"},"license":"MIT","bugs":{"url":"https://github.com/agiledigital-labs/pino-redact-pii/issues"},"homepage":"https://github.com/agiledigital-labs/pino-redact-pii","devDependencies":{"@agiledigital/eslint-config":"^4.1.0","@semantic-release/git":"^10.0.1","@stryker-mutator/core":"8.7.1","@stryker-mutator/jest-runner":"8.7.1","@stryker-mutator/typescript-checker":"8.7.1","@types/jest":"29.5.14","@typescript-eslint/eslint-plugin":"^6.17.0","@typescript-eslint/parser":"^6.17.0","commitizen":"^4.3.0","cz-conventional-changelog":"^3.3.0","eslint":"^8.56.0","eslint-config-prettier":"9.1.0","eslint-config-typed-fp":"^5.4.0","eslint-plugin-functional":"^6.0.0","eslint-plugin-jest":"^27.6.1","eslint-plugin-prettier":"^5.1.2","eslint-plugin-sonarjs":"^0.23.0","eslint-plugin-total-functions":"^7.1.0","fast-check":"3.23.2","husky":"8.0.3","jest":"29.7.0","pino":"^8.18.0","prettier":"3.5.3","semantic-release":"^20.1.1","ts-jest":"29.4.0","type-coverage":"2.29.7","typescript":"^5.3.3"},"typeCoverage":{"atLeast":100,"ignoreCatch":false,"strict":true,"detail":true},"jest":{"preset":"ts-jest","testEnvironment":"node","collectCoverage":true,"coverageThreshold":{"global":{"branches":100,"functions":100,"lines":100,"statements":100}},"roots":["<rootDir>/src"],"testMatch":["**/*.test.ts"],"transform":{"^.+\\.tsx?$":["ts-jest",{"diagnostics":{"exclude":["!**/*.(spec|test).ts"]}}]}},"dependencies":{"redact-pii":"^3.4.0"},"peerDependencies":{"pino":"^8.17.2"},"peerDependenciesMeta":{"pino":{"optional":true}},"gitHead":"9dacb5ef47326f9b30317aa71e6322772302f898","_id":"@agiledigital/pino-redact-pii@3.1.0","_nodeVersion":"20.19.5","_npmVersion":"11.6.0","dist":{"integrity":"sha512-DL2RElFptCK5axdNKAAVr+3A7u3XJksSm5/+XHaLtGbc66l7lj8hVieA6jgMNsTybqQAy6YD5kTmuOMiZFeWOQ==","shasum":"5b1b9397ac65cf1848058369d98a020046490238","tarball":"https://registry.npmjs.org/@agiledigital/pino-redact-pii/-/pino-redact-pii-3.1.0.tgz","fileCount":77,"unpackedSize":128001,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCX6ymhJEWbvI/zUvnVGNGuwEBgJKgoock3iAmmx3RRxQIgRoTbSXmWZGC5dX/ipH34pdJskqVGRvZx2d05C4Fb1sQ="}]},"_npmUser":{"name":"dspasojevic","email":"daniel.spasojevic@gmail.com"},"directories":{},"maintainers":[{"name":"rorystokes","email":"contact@rorystok.es"},{"name":"haolinj","email":"haolinj@gmail.com"},{"name":"danielnixon","email":"dan.nixon@gmail.com"},{"name":"dspasojevic","email":"daniel.spasojevic@gmail.com"},{"name":"dbalmain","email":"dbalmain@gmail.com"},{"name":"sammurphy","email":"sam@sammurphy.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pino-redact-pii_3.1.0_1757927151040_0.9451631053247613"},"_hasShrinkwrap":false}},"time":{"created":"2024-01-05T05:22:11.687Z","modified":"2025-09-15T09:05:51.518Z","1.0.1":"2024-01-05T05:22:11.953Z","1.0.2":"2024-01-05T05:29:23.152Z","1.0.3":"2024-01-05T05:39:46.818Z","1.0.4":"2024-01-22T01:01:47.751Z","2.0.0":"2024-02-09T05:06:59.227Z","3.0.0":"2024-02-20T10:00:25.267Z","3.1.0":"2025-09-15T09:05:51.238Z"},"bugs":{"url":"https://github.com/agiledigital-labs/pino-redact-pii/issues"},"author":{"name":"Agile Digital"},"license":"MIT","homepage":"https://github.com/agiledigital-labs/pino-redact-pii","repository":{"type":"git","url":"git+https://github.com/agiledigital-labs/pino-redact-pii.git"},"description":"Pino + redact-pii","maintainers":[{"name":"rorystokes","email":"contact@rorystok.es"},{"name":"haolinj","email":"haolinj@gmail.com"},{"name":"danielnixon","email":"dan.nixon@gmail.com"},{"name":"dspasojevic","email":"daniel.spasojevic@gmail.com"},{"name":"dbalmain","email":"dbalmain@gmail.com"},{"name":"sammurphy","email":"sam@sammurphy.dev"}],"readme":"# Pino + redact-pii\n\nA collection of redaction solutions focused on [Pino](https://github.com/pinojs/pino) and [redact-pii](https://github.com/solvvy/redact-pii).\n\n[![CI Status](https://github.com/agiledigital-labs/pino-redact-pii/actions/workflows/node.js.yml/badge.svg)](https://github.com/agiledigital-labs/pino-redact-pii/actions/workflows/node.js.yml)\n[![npm (scoped)](https://img.shields.io/npm/v/%40agiledigital/pino-redact-pii)](https://www.npmjs.com/package/@agiledigital/pino-redact-pii)\n\n## Usage\n\n```sh\nnpm add @agiledigital/pino-redact-pii\n```\n\nThis package contains an opinionated configuration of redact-pii, including regexes from https://github.com/nickdeis/eslint-plugin-no-secrets. To use it:\n\n```ts\nimport { SyncRedactor } from \"redact-pii\";\nimport { defaultSyncRedactorOpts } from \"@agiledigital/pino-redact-pii\";\n\nconst redactor = new SyncRedactor(defaultSyncRedactorOpts);\nconst textToRedact = \"\";\nconst result = redactor.redact(textToRedact);\n```\n\nOn top of that, this package contains a higher-level redactor that can be applied recursively to nested object/array structures. This redactor can also filter unsafe object properties entirely (e.g. `x-api-key`). To use it:\n\n```ts\nimport { applyRedactor, defaultRedactor } from \"@agiledigital/pino-redact-pii\";\n\nconst redactor = defaultRedactor(<optional config>);\nconst objectToRedact = {...};\nconst result = applyRedactor(textToRedact, redactor);\n```\n\nIt also contain a wrapper around `redact-pii` that makes it convenient to plug the above redactor into Pino.\n\nTo use it:\n\n```ts\nimport { pino } from \"pino\";\nimport { pinoPiiRedactor } from \"@agiledigital/pino-redact-pii\";\n\n// This uses the default redactor. You can specify your own as an argument to `pinoPiiRedactor`.\nconst redactor = pinoPiiRedactor();\n\nconst logger = pino({\n  formatters: {\n    log: redactor,\n  },\n});\n```\n\nThis package also contains a `safeStringify` function that provides a few benefits over `JSON.stringify`. You can use it without Pino.\n\n1. It supports circular structures (whereas `JSON.stringify` would throw). It replaces them with `\"[circular]\"`, similar to Node's [`util.inspect`](https://nodejs.org/api/util.html#utilinspectobject-options) (but with no Node dependency).\n2. It doesn't throw - it returns a success/failure [discriminated union](https://www.typescriptlang.org/docs/handbook/unions-and-intersections.html#discriminating-unions).\n3. It returns a failure if the result of stringification is not a string (e.g. if it is undefined)\n4. It will return a failure if you try to stringify an object that contains a BigInt (as per `JSON.stringify`). The workarounds are the same as for `JSON.stringify`. See https://github.com/GoogleChromeLabs/jsbi/issues/30\n5. It permits stringification only of record values that are less likely to contain \"hidden\"\n   sensitive data buried deeply in e.g. nested object structures, either when initially logged\n   or as the type being logged grows as a codebase evolves.\n\n```ts\nimport { defaultRedactor, safeStringify } from \"@agiledigital/pino-redact-pii\";\n\nconst obj = { text: \"I might contain PII\" };\n\n// No redaction\nconst result = safeStringify(obj);\nif (result.success) {\n  const str = result.value;\n}\n\n// With redaction\nconst reactor = defaultRedactor();\nconst result2 = safeStringify(obj, reactor);\n```\n\nThe underlying redactor from the `redact-pii` package can take a few seconds to start up. This happens when the first redaction is performed.\n\nYou can preemptively initialise the redactor and get this startup out of the way by redacting a dummy string and throwing away the result.\n\n```ts\n// Using the underlying SyncRedactor directly.\nimport { SyncRedactor } from \"redact-pii\";\nnew SyncRedactor(defaultSyncRedactorOpts).redact(\"\");\n\n// Or using our own default redactor (which wraps SyncRedactor).\nimport { defaultRedactor } from \"@agiledigital/pino-redact-pii\";\ndefaultRedactor().redact(\"\");\n```\n\nFinally, this package contains a `SensitiveString` class that can be used when your app must handle a sensitive value (e.g. an API key) that shouldn't ever be accidentally included in log output, serialised to string or included in the result of `JSON.stringify(...)`. To use it:\n\n```ts\nconst ss = new SensitiveString(\"a secret value\");\n// '{\"a\":\"[redacted]\"}'\nJSON.stringify({ a: ss });\n// \"[redacted]\"\nss.toString();\n\n// Explicitly retrieve the underlying secret\nmakeApiCall(ss.unsafeSensitiveString);\n```\n\n## Releases\n\nReleases are automated using\n[semantic-release](https://semantic-release.gitbook.io/semantic-release/). To\nmake a release, merge a PR with commits that follow the configured [Commit\nmessage\nformat](https://semantic-release.gitbook.io/semantic-release/#commit-message-format).\n\n## Contributor getting started\n\n1. Make sure you have [NVM](https://github.com/nvm-sh/nvm#install--update-script) installed.\n2. Create a new repo using this template (big green \"use this template\" button).\n3. Clone that repo.\n4. Then run the following:\n\n```sh\n# make sure the right version of node is being used\n# tip: it might be worth automating this (https://github.com/nvm-sh/nvm#bash)\nnvm use\n# install dependencies\nnpm install\n# compile\nnpm run build\n# run the compiled code\nnode dist/index.js\n```\n\n## IDE Notes\n\nIf you are using VSCode, it should automatically recommend you some important plugins for this package (e.g. eslint)\nIf not, check the .vscode/extensions.json because they will greatly improve your workflow.\n","readmeFilename":"README.md"}