{"_id":"@heroku/js-blanket","_rev":"95-2d3e6e34fd968e090e5983e67beb3b62","name":"@heroku/js-blanket","dist-tags":{"latest":"1.1.1"},"versions":{"0.0.0":{"name":"@heroku/js-blanket","version":"0.0.0","keywords":["pii","scrubbing","security","data-sanitization","error-monitoring","logging"],"author":{"name":"Heroku"},"license":"Apache-2.0","_id":"@heroku/js-blanket@0.0.0","maintainers":[{"name":"sconklin","email":"sconklin@salesforce.com"},{"name":"srishtigautam","email":"srishti.gautam@salesforce.com"},{"name":"aklimaite","email":"aklimaite@salesforce.com"},{"name":"jsullivandigs","email":"jsullivan@heroku.com"},{"name":"julianduque-sfdc","email":"jduque@salesforce.com"},{"name":"cwallsf","email":"cwall@salesforce.com"},{"name":"ijanak","email":"ijanak@salesforce.com"},{"name":"jeffrey.estrada","email":"jeffrey.estrada@salesforce.com"},{"name":"dlira-sf","email":"dlira@salesforce.com"},{"name":"ntonollier","email":"ntonollier@salesforce.com"},{"name":"daebumlee","email":"daebum.lee@salesforce.com"},{"name":"tetsuya_","email":"tkaneko@salesforce.com"},{"name":"mttr","email":"msawa@salesforce.com"},{"name":"eleary","email":"eleary@salesforce.com"},{"name":"salesforce-releases","email":"alm-cli@salesforce.com"},{"name":"dboston528","email":"dboston@salesforce.com"},{"name":"anujpandey001","email":"anuj.pandey@salesforce.com"},{"name":"sripad.kulkarni","email":"sripad.kulkarni@salesforce.com"},{"name":"rafaydin","email":"rafay.din@salesforce.com"},{"name":"kbaird-sf","email":"kbaird@salesforce.com"},{"name":"cbaxtersf","email":"cbaxter@salesforce.com"},{"name":"ryoneyama","email":"ryoneyama@salesforce.com"},{"name":"adirasanam","email":"adirasanam@salesforce.com"},{"name":"mengxiao.zhao","email":"mengxiao.zhao@salesforce.com"},{"name":"nrisaro","email":"srisaro@salesforce.com"},{"name":"cmarcojos","email":"cmarcojos@salesforce.com"},{"name":"adirksmeier","email":"adirksmeier@salesforce.com"},{"name":"mgates-salesforce","email":"micah.gates@salesforce.com"},{"name":"ademusoyo","email":"aawosikaolumo@salesforce.com"},{"name":"elzoona","email":"fpolillo@salesforce.com"},{"name":"jondaniel-sfdc","email":"jon.daniel@salesforce.com"},{"name":"dhagberg-sf","email":"dhagberg@salesforce.com"},{"name":"bencdenton","email":"bdenton@salesforce.com"},{"name":"lsangalang2023","email":"lsangalang@salesforce.com"},{"name":"marcelsfdc","email":"marcelsantos@salesforce.com"},{"name":"ccasey","email":"ccasey@salesforce.com"},{"name":"joeybrown90sf","email":"brown.joseph@salesforce.com"},{"name":"suppada","email":"suppada@salesforce.com"},{"name":"diana.doherty.sfdc","email":"diana.doherty@salesforce.com"},{"name":"hritch","email":"hritch@salesforce.com"},{"name":"ryanbrainard","email":"rbrainard@salesforce.com"},{"name":"rsoerensen","email":"rsoerensen@salesforce.com"},{"name":"jasoncummings-heroku","email":"j.cummings@salesforce.com"},{"name":"brock-salesforce","email":"bspratlen@salesforce.com"},{"name":"tkoh-sfdc","email":"tkohrumel@salesforce.com"},{"name":"gnetter","email":"gnetter@salesforce.com"},{"name":"coreypurcell_salesforce","email":"cpurcell@salesforce.com"},{"name":"swapnilghose","email":"swapnil.ghose@salesforce.com"},{"name":"stessema-sfc","email":"stessema@salesforce.com"},{"name":"jmonreal","email":"jmonrealbailey@salesforce.com"},{"name":"brittany.jones","email":"brittany.jones@salesforce.com"},{"name":"rstiltonsf","email":"rstilton@salesforce.com"},{"name":"nilamuthu","email":"nmuthu@salesforce.com"},{"name":"sghaffar","email":"sghaffar@salesforce.com"},{"name":"cdwort-sfdc","email":"aunger@salesforce.com"},{"name":"agatpareek","email":"apareek@salesforce.com"},{"name":"aaronromeosfdc","email":"aaron.romeo@salesforce.com"},{"name":"kpremkumar","email":"kpremkumar@salesforce.com"},{"name":"rchanda","email":"rchanda@salesforce.com"},{"name":"7ftz","email":"zwhitfield@salesforce.com"},{"name":"xx-sfdc-npm","email":"xiaolin.xu@salesforce.com"},{"name":"cv88","email":"chip.vaughn@salesforce.com"},{"name":"ekozilforce","email":"ekozil@salesforce.com"},{"name":"umarsfdc","email":"umar.farooq@salesforce.com"},{"name":"beanieboi","email":"bfritsch@salesforce.com"},{"name":"ndavidson-sf","email":"ndavidson@salesforce.com"},{"name":"mingzhi-liu1258","email":"mingzhi.liu@salesforce.com"},{"name":"angelcampbell","email":"angel.campbell@salesforce.com"},{"name":"mandeepsf","email":"mandeep.bal@salesforce.com"},{"name":"yann_ck","email":"yschutz@salesforce.com"},{"name":"dasofiei","email":"dasofiei@salesforce.com"},{"name":"rajashri-gurusamy","email":"rgurusamy@salesforce.com"},{"name":"sudarshanhiray","email":"sudarshandilip.hiray@salesforce.com"},{"name":"alex_heroku","email":"aarnell@salesforce.com"},{"name":"sbosio_sf","email":"sbosio@salesforce.com"},{"name":"sarahoh2468","email":"sarahoh@salesforce.com"},{"name":"justinwilaby-sf","email":"jwilaby@salesforce.com"},{"name":"cmcclung-npm-salesforce.com","email":"cmcclung@salesforce.com"},{"name":"tlowrimore","email":"tlowrimore@salesforce.com"},{"name":"ptemporini","email":"ptemporini@heroku.com"},{"name":"tcareysmith-sfdc","email":"tcareysmith@salesforce.com"},{"name":"robinson.m","email":"robinson.m@salesforce.com"},{"name":"dkabanov1","email":"dkabanov@salesforce.com"},{"name":"cgfuh","email":"cfurrer@salesforce.com"},{"name":"rdagg-hero","email":"rdagg@salesforce.com"},{"name":"k80bowman","email":"katy.bowman@salesforce.com"},{"name":"sheax0r","email":"michael.shea@salesforce.com"},{"name":"dpark.heroku","email":"dongmin.park@salesforce.com"},{"name":"afraidknot","email":"gary.clark@salesforce.com"},{"name":"daniel.bright","email":"daniel.bright@salesforce.com"},{"name":"jdowning","email":"justin@downing.us"},{"name":"abhinavkoul","email":"abhinav.koul@salesforce.com"},{"name":"joshwlewis-sfdc","email":"josh.lewis@salesforce.com"},{"name":"viniljain","email":"viniljain@salesforce.com"},{"name":"eblack","email":"eblack@salesforce.com"},{"name":"k.plenty","email":"k.plenty@salesforce.com"},{"name":"apadala","email":"apadala@salesforce.com"},{"name":"jhili!16","email":"mbarik@salesforce.com"},{"name":"lsorstokke","email":"lsorstokke@salesforce.com"},{"name":"rcross","email":"ryan.cross@salesforce.com"},{"name":"kdreyeroren","email":"kdreyeroren@salesforce.com"},{"name":"dhammer25","email":"daniel.hammer@salesforce.com"},{"name":"tenharmsel_sf","email":"ctenharmsel@salesforce.com"},{"name":"dougmcinnes-sfdc","email":"dmcinnes@salesforce.com"},{"name":"hillzbot2000","email":"hillary.sanders@salesforce.com"},{"name":"chap-heroku","email":"cambrose@salesforce.com"},{"name":"michellejhlim","email":"michellelim@salesforce.com"},{"name":"mbuschheroku","email":"mbusch@heroku.com"},{"name":"reidmix","email":"reid@heroku.com"},{"name":"beckychen","email":"becky.chen@salesforce.com"},{"name":"smrutisamanta","email":"smruti.samanta@salesforce.com"},{"name":"apoorvasriv","email":"apoorva.srivastava@salesforce.com"},{"name":"sfalan","email":"alan.scott@salesforce.com"},{"name":"p.shreya","email":"p.shreya@salesforce.com"},{"name":"sai_harshitha_neela","email":"saiharshitha.neela@salesforce.com"},{"name":"nlanatta","email":"nlanatta@salesforce.com"},{"name":"dreichenberg","email":"dreichenberg@salesforce.com"},{"name":"vlazuka","email":"vlazuka@salesforce.com"},{"name":"mars","email":"mars.hall@salesforce.com"},{"name":"heroku-front-end","email":"heroku-front-end+npm-releases@salesforce.com"},{"name":"richatiwari","email":"richa.tiwari@salesforce.com"},{"name":"wchrisjohnson","email":"johnson.chris@salesforce.com"},{"name":"the7oka","email":"maly@salesforce.com"},{"name":"simonebonettisfita","email":"sbonetti@salesforce.com"},{"name":"lucaszhou","email":"lucaszhou@salesforce.com"},{"name":"psalim","email":"psalim@salesforce.com"},{"name":"taylor.jones","email":"taylor.jones@salesforce.com"},{"name":"angelayoung","email":"angela.young@salesforce.com"},{"name":"mble-sfdc-2","email":"matthew.blewitt@salesforce.com"},{"name":"ktsforce","email":"ktowne@salesforce.com"},{"name":"kerry-bennett","email":"kerry.bennett@salesforce.com"},{"name":"gkommineni","email":"gkommineni@salesforce.com"},{"name":"smuku","email":"smuku@salesforce.com"},{"name":"ykatz","email":"ykatz@salesforce.com"},{"name":"dgallegossfdc","email":"dgallegos@salesforce.com"},{"name":"dzuelke-sfdc","email":"dzuelke@salesforce.com"},{"name":"rishabh.wason","email":"rishabh.wason@salesforce.com"},{"name":"sarassassin","email":"scope@salesforce.com"},{"name":"araja","email":"a.raja@heroku.com"},{"name":"v.anand","email":"v.anand@salesforce.com"},{"name":"lmckenzie","email":"lmckenzie@salesforce.com"},{"name":"jordaneekey","email":"jordanee@heroku.com"},{"name":"daigo-heroku","email":"daigo@heroku.com"},{"name":"mimen","email":"mimen@salesforce.com"},{"name":"jwadsworthsf","email":"jwadsworth@heroku.com"},{"name":"pfuente","email":"pfuente@heroku.com"},{"name":"montes_heroku","email":"cmontes@salesforce.com"},{"name":"bleong","email":"bleong@salesforce.com"},{"name":"paguilar","email":"paguilar@heroku.com"},{"name":"joanneyeung","email":"joanne.yeung@salesforce.com"},{"name":"zli-sf","email":"z.li@salesforce.com"},{"name":"marcusblankenship","email":"mblankenship@salesforce.com"},{"name":"sruthich","email":"sruthi.chennoju@salesforce.com"},{"name":"mgomes-heroku","email":"mgomes@salesforce.com"},{"name":"jesse.brown-sf","email":"jesse.brown@salesforce.com"},{"name":"tij005","email":"tianchongjiang@salesforce.com"},{"name":"tholschuh-salesforce","email":"tholschuh@salesforce.com"},{"name":"kumardinesh2","email":"kumardinesh2@salesforce.com"},{"name":"tholmes-sfdc","email":"thomas.holmes@salesforce.com"},{"name":"annajohnson-sf","email":"anna.johnson@salesforce.com"},{"name":"vjohne","email":"vjohne@salesforce.com"},{"name":"slizco","email":"elizabeth.cox@salesforce.com"},{"name":"anna-cross","email":"akhachaturova@salesforce.com"},{"name":"cromwellryan-sf","email":"rcromwell@salesforce.com"},{"name":"hyunwooklee","email":"hyunwook.lee@salesforce.com"},{"name":"matthew.rossi","email":"matthew.rossi@salesforce.com"},{"name":"tm-sf","email":"tmelios@salesforce.com"},{"name":"dhawley","email":"dhawley@salesforce.com"},{"name":"nkoziuk","email":"nkoziuk@salesforce.com"},{"name":"herokucody","email":"cdemartin@salesforce.com"},{"name":"dodom-sfdc","email":"dodom@salesforce.com"},{"name":"csinghaus-sfdc","email":"csinghaus@salesforce.com"},{"name":"jw-sfdc","email":"joseph.wegner@salesforce.com"},{"name":"jlopezdan","email":"jorge.lopez@salesforce.com"},{"name":"gsinghsfdc","email":"gurvindersingh@salesforce.com"},{"name":"nrenke","email":"nrenke@salesforce.com"},{"name":"salesforcegene","email":"gene.connolly@salesforce.com"},{"name":"tanushree.gupta","email":"tanushree.gupta@salesforce.com"},{"name":"bsonntag-salesforce","email":"bsonntag@salesforce.com"},{"name":"chetankd10","email":"sharmachetan@salesforce.com"},{"name":"nicole.klusman","email":"nicole.klusman@salesforce.com"},{"name":"lcalermo","email":"dcalermo@salesforce.com"},{"name":"heroku-johnny","email":"jwinn@salesforce.com"},{"name":"chandlerprallsf","email":"cprall@salesforce.com"},{"name":"ecbulman","email":"ebulman@salesforce.com"},{"name":"emilyhuang-heroku","email":"emilyhuang@salesforce.com"},{"name":"michael.malave","email":"michael.malave@salesforce.com"},{"name":"tdhayananda","email":"tdhayananda@salesforce.com"},{"name":"erika.wallace","email":"erika.wallace@salesforce.com"},{"name":"valluri056","email":"v.valluri@salesforce.com"},{"name":"hk-ankitkumar","email":"ankitkumar3@salesforce.com"},{"name":"karuna123","email":"kgarigipati@salesforce.com"},{"name":"mjoherson-sf","email":"mjohnerson@salesforce.com"},{"name":"christopher.jose","email":"christopher.jose@salesforce.com"},{"name":"skediyal-sf","email":"skediyal@salesforce.com"}],"homepage":"https://github.com/heroku/js-blanket#readme","bugs":{"url":"https://github.com/heroku/js-blanket/issues"},"dist":{"shasum":"8414df9f75ca8a9e95cf92e997db07462a1ca593","tarball":"https://registry.npmjs.org/@heroku/js-blanket/-/js-blanket-0.0.0.tgz","fileCount":33,"integrity":"sha512-kRIaQHl+o47lRc5j4B1E1hG40AnsayUG2Ey++40msE5qAUnvDFHIm12JRVswghalttbbQ3ziGI+mlkzDXIS22Q==","signatures":[{"sig":"MEYCIQCq+7cSFlGdy28m0ngkWdHkpRAmzPJVWjNMTH45diUETQIhAIvolnTNqi423vt4qrfHQ9wzfOjFuxL0ySa7af7fIdsc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":126973},"main":"./dist/cjs/index.js","type":"module","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"edbaf1c294cad4b450c4193d510f2e739a8f4914","scripts":{"ci":"pnpm run lint && pnpm run type-check && pnpm test","lint":"eslint \"src/**/*.{js,ts}\"","test":"c8 mocha --require ./scripts/test-setup.mjs --forbid-only \"dist/esm/**/*.test.js\"","build":"pnpm run build:cjs && pnpm run build:esm","check":"pnpm run format && pnpm run type-check && pnpm test","format":"pnpm run prettier && pnpm run lint:fix","prepare":"husky","pretest":"pnpm run build:cjs && pnpm run build:esm && pnpm run type-check","lint:fix":"eslint \"src/**/*.{js,ts}\" --fix","prettier":"prettier . --write","build:cjs":"rm -rf dist/cjs && tsc -p tsconfig.cjs.json && mkdir -p dist/cjs && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"rm -rf dist/esm && tsc -p tsconfig.esm.json","type-check":"tsc --noEmit -p tsconfig.json","lint-staged":"npx lint-staged"},"_npmUser":{"name":"michael.malave","email":"michael.malave@salesforce.com"},"repository":{"url":"git+https://github.com/heroku/js-blanket.git","type":"git"},"_npmVersion":"11.6.2","description":"Framework-agnostic sensitive data scrubbing library for error monitoring and logging","directories":{"doc":"docs"},"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.8.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.21.0","devDependencies":{"c8":"^10.1.3","chai":"^6.2.0","husky":"^9.1.7","mocha":"^11.7.5","eslint":"^9.39.1","prettier":"^3.6.2","@eslint/js":"^9.39.1","typescript":"^5.9.3","@types/chai":"^5.2.3","@types/node":"^24.10.0","lint-staged":"^16.2.6","@types/mocha":"^10.0.10","@typescript-eslint/parser":"^8.46.3","@typescript-eslint/eslint-plugin":"^8.46.3"},"_npmOperationalInternal":{"tmp":"tmp/js-blanket_0.0.0_1763081735204_0.9633170015780843","host":"s3://npm-registry-packages-npm-production"}},"0.0.1":{"name":"@heroku/js-blanket","version":"0.0.1","keywords":["pii","scrubbing","security","data-sanitization","error-monitoring","logging"],"author":{"name":"Heroku"},"license":"Apache-2.0","_id":"@heroku/js-blanket@0.0.1","maintainers":[{"name":"sconklin","email":"sconklin@salesforce.com"},{"name":"srishtigautam","email":"srishti.gautam@salesforce.com"},{"name":"aklimaite","email":"aklimaite@salesforce.com"},{"name":"jsullivandigs","email":"jsullivan@heroku.com"},{"name":"julianduque-sfdc","email":"jduque@salesforce.com"},{"name":"cwallsf","email":"cwall@salesforce.com"},{"name":"ijanak","email":"ijanak@salesforce.com"},{"name":"jeffrey.estrada","email":"jeffrey.estrada@salesforce.com"},{"name":"dlira-sf","email":"dlira@salesforce.com"},{"name":"ntonollier","email":"ntonollier@salesforce.com"},{"name":"daebumlee","email":"daebum.lee@salesforce.com"},{"name":"tetsuya_","email":"tkaneko@salesforce.com"},{"name":"mttr","email":"msawa@salesforce.com"},{"name":"eleary","email":"eleary@salesforce.com"},{"name":"salesforce-releases","email":"alm-cli@salesforce.com"},{"name":"dboston528","email":"dboston@salesforce.com"},{"name":"anujpandey001","email":"anuj.pandey@salesforce.com"},{"name":"sripad.kulkarni","email":"sripad.kulkarni@salesforce.com"},{"name":"rafaydin","email":"rafay.din@salesforce.com"},{"name":"kbaird-sf","email":"kbaird@salesforce.com"},{"name":"cbaxtersf","email":"cbaxter@salesforce.com"},{"name":"ryoneyama","email":"ryoneyama@salesforce.com"},{"name":"adirasanam","email":"adirasanam@salesforce.com"},{"name":"mengxiao.zhao","email":"mengxiao.zhao@salesforce.com"},{"name":"nrisaro","email":"srisaro@salesforce.com"},{"name":"cmarcojos","email":"cmarcojos@salesforce.com"},{"name":"adirksmeier","email":"adirksmeier@salesforce.com"},{"name":"mgates-salesforce","email":"micah.gates@salesforce.com"},{"name":"ademusoyo","email":"aawosikaolumo@salesforce.com"},{"name":"elzoona","email":"fpolillo@salesforce.com"},{"name":"jondaniel-sfdc","email":"jon.daniel@salesforce.com"},{"name":"dhagberg-sf","email":"dhagberg@salesforce.com"},{"name":"bencdenton","email":"bdenton@salesforce.com"},{"name":"lsangalang2023","email":"lsangalang@salesforce.com"},{"name":"marcelsfdc","email":"marcelsantos@salesforce.com"},{"name":"ccasey","email":"ccasey@salesforce.com"},{"name":"joeybrown90sf","email":"brown.joseph@salesforce.com"},{"name":"suppada","email":"suppada@salesforce.com"},{"name":"diana.doherty.sfdc","email":"diana.doherty@salesforce.com"},{"name":"hritch","email":"hritch@salesforce.com"},{"name":"ryanbrainard","email":"rbrainard@salesforce.com"},{"name":"rsoerensen","email":"rsoerensen@salesforce.com"},{"name":"jasoncummings-heroku","email":"j.cummings@salesforce.com"},{"name":"brock-salesforce","email":"bspratlen@salesforce.com"},{"name":"tkoh-sfdc","email":"tkohrumel@salesforce.com"},{"name":"gnetter","email":"gnetter@salesforce.com"},{"name":"coreypurcell_salesforce","email":"cpurcell@salesforce.com"},{"name":"swapnilghose","email":"swapnil.ghose@salesforce.com"},{"name":"stessema-sfc","email":"stessema@salesforce.com"},{"name":"jmonreal","email":"jmonrealbailey@salesforce.com"},{"name":"brittany.jones","email":"brittany.jones@salesforce.com"},{"name":"rstiltonsf","email":"rstilton@salesforce.com"},{"name":"nilamuthu","email":"nmuthu@salesforce.com"},{"name":"sghaffar","email":"sghaffar@salesforce.com"},{"name":"cdwort-sfdc","email":"aunger@salesforce.com"},{"name":"agatpareek","email":"apareek@salesforce.com"},{"name":"aaronromeosfdc","email":"aaron.romeo@salesforce.com"},{"name":"kpremkumar","email":"kpremkumar@salesforce.com"},{"name":"rchanda","email":"rchanda@salesforce.com"},{"name":"7ftz","email":"zwhitfield@salesforce.com"},{"name":"xx-sfdc-npm","email":"xiaolin.xu@salesforce.com"},{"name":"cv88","email":"chip.vaughn@salesforce.com"},{"name":"ekozilforce","email":"ekozil@salesforce.com"},{"name":"umarsfdc","email":"umar.farooq@salesforce.com"},{"name":"beanieboi","email":"bfritsch@salesforce.com"},{"name":"ndavidson-sf","email":"ndavidson@salesforce.com"},{"name":"mingzhi-liu1258","email":"mingzhi.liu@salesforce.com"},{"name":"angelcampbell","email":"angel.campbell@salesforce.com"},{"name":"mandeepsf","email":"mandeep.bal@salesforce.com"},{"name":"yann_ck","email":"yschutz@salesforce.com"},{"name":"dasofiei","email":"dasofiei@salesforce.com"},{"name":"rajashri-gurusamy","email":"rgurusamy@salesforce.com"},{"name":"sudarshanhiray","email":"sudarshandilip.hiray@salesforce.com"},{"name":"alex_heroku","email":"aarnell@salesforce.com"},{"name":"sbosio_sf","email":"sbosio@salesforce.com"},{"name":"sarahoh2468","email":"sarahoh@salesforce.com"},{"name":"justinwilaby-sf","email":"jwilaby@salesforce.com"},{"name":"cmcclung-npm-salesforce.com","email":"cmcclung@salesforce.com"},{"name":"tlowrimore","email":"tlowrimore@salesforce.com"},{"name":"ptemporini","email":"ptemporini@heroku.com"},{"name":"tcareysmith-sfdc","email":"tcareysmith@salesforce.com"},{"name":"robinson.m","email":"robinson.m@salesforce.com"},{"name":"dkabanov1","email":"dkabanov@salesforce.com"},{"name":"cgfuh","email":"cfurrer@salesforce.com"},{"name":"rdagg-hero","email":"rdagg@salesforce.com"},{"name":"k80bowman","email":"katy.bowman@salesforce.com"},{"name":"sheax0r","email":"michael.shea@salesforce.com"},{"name":"dpark.heroku","email":"dongmin.park@salesforce.com"},{"name":"afraidknot","email":"gary.clark@salesforce.com"},{"name":"daniel.bright","email":"daniel.bright@salesforce.com"},{"name":"jdowning","email":"justin@downing.us"},{"name":"abhinavkoul","email":"abhinav.koul@salesforce.com"},{"name":"joshwlewis-sfdc","email":"josh.lewis@salesforce.com"},{"name":"viniljain","email":"viniljain@salesforce.com"},{"name":"eblack","email":"eblack@salesforce.com"},{"name":"k.plenty","email":"k.plenty@salesforce.com"},{"name":"apadala","email":"apadala@salesforce.com"},{"name":"jhili!16","email":"mbarik@salesforce.com"},{"name":"lsorstokke","email":"lsorstokke@salesforce.com"},{"name":"rcross","email":"ryan.cross@salesforce.com"},{"name":"kdreyeroren","email":"kdreyeroren@salesforce.com"},{"name":"dhammer25","email":"daniel.hammer@salesforce.com"},{"name":"tenharmsel_sf","email":"ctenharmsel@salesforce.com"},{"name":"dougmcinnes-sfdc","email":"dmcinnes@salesforce.com"},{"name":"hillzbot2000","email":"hillary.sanders@salesforce.com"},{"name":"chap-heroku","email":"cambrose@salesforce.com"},{"name":"michellejhlim","email":"michellelim@salesforce.com"},{"name":"mbuschheroku","email":"mbusch@heroku.com"},{"name":"reidmix","email":"reid@heroku.com"},{"name":"beckychen","email":"becky.chen@salesforce.com"},{"name":"smrutisamanta","email":"smruti.samanta@salesforce.com"},{"name":"apoorvasriv","email":"apoorva.srivastava@salesforce.com"},{"name":"sfalan","email":"alan.scott@salesforce.com"},{"name":"p.shreya","email":"p.shreya@salesforce.com"},{"name":"sai_harshitha_neela","email":"saiharshitha.neela@salesforce.com"},{"name":"nlanatta","email":"nlanatta@salesforce.com"},{"name":"dreichenberg","email":"dreichenberg@salesforce.com"},{"name":"vlazuka","email":"vlazuka@salesforce.com"},{"name":"mars","email":"mars.hall@salesforce.com"},{"name":"heroku-front-end","email":"heroku-front-end+npm-releases@salesforce.com"},{"name":"richatiwari","email":"richa.tiwari@salesforce.com"},{"name":"wchrisjohnson","email":"johnson.chris@salesforce.com"},{"name":"the7oka","email":"maly@salesforce.com"},{"name":"simonebonettisfita","email":"sbonetti@salesforce.com"},{"name":"lucaszhou","email":"lucaszhou@salesforce.com"},{"name":"psalim","email":"psalim@salesforce.com"},{"name":"taylor.jones","email":"taylor.jones@salesforce.com"},{"name":"angelayoung","email":"angela.young@salesforce.com"},{"name":"mble-sfdc-2","email":"matthew.blewitt@salesforce.com"},{"name":"ktsforce","email":"ktowne@salesforce.com"},{"name":"kerry-bennett","email":"kerry.bennett@salesforce.com"},{"name":"gkommineni","email":"gkommineni@salesforce.com"},{"name":"smuku","email":"smuku@salesforce.com"},{"name":"ykatz","email":"ykatz@salesforce.com"},{"name":"dgallegossfdc","email":"dgallegos@salesforce.com"},{"name":"dzuelke-sfdc","email":"dzuelke@salesforce.com"},{"name":"rishabh.wason","email":"rishabh.wason@salesforce.com"},{"name":"sarassassin","email":"scope@salesforce.com"},{"name":"araja","email":"a.raja@heroku.com"},{"name":"v.anand","email":"v.anand@salesforce.com"},{"name":"lmckenzie","email":"lmckenzie@salesforce.com"},{"name":"jordaneekey","email":"jordanee@heroku.com"},{"name":"daigo-heroku","email":"daigo@heroku.com"},{"name":"mimen","email":"mimen@salesforce.com"},{"name":"jwadsworthsf","email":"jwadsworth@heroku.com"},{"name":"pfuente","email":"pfuente@heroku.com"},{"name":"montes_heroku","email":"cmontes@salesforce.com"},{"name":"bleong","email":"bleong@salesforce.com"},{"name":"paguilar","email":"paguilar@heroku.com"},{"name":"joanneyeung","email":"joanne.yeung@salesforce.com"},{"name":"zli-sf","email":"z.li@salesforce.com"},{"name":"marcusblankenship","email":"mblankenship@salesforce.com"},{"name":"sruthich","email":"sruthi.chennoju@salesforce.com"},{"name":"mgomes-heroku","email":"mgomes@salesforce.com"},{"name":"jesse.brown-sf","email":"jesse.brown@salesforce.com"},{"name":"tij005","email":"tianchongjiang@salesforce.com"},{"name":"tholschuh-salesforce","email":"tholschuh@salesforce.com"},{"name":"kumardinesh2","email":"kumardinesh2@salesforce.com"},{"name":"tholmes-sfdc","email":"thomas.holmes@salesforce.com"},{"name":"annajohnson-sf","email":"anna.johnson@salesforce.com"},{"name":"palakjeetkaur12","email":"palakjeet.kaur@salesforce.com"},{"name":"vjohne","email":"vjohne@salesforce.com"},{"name":"slizco","email":"elizabeth.cox@salesforce.com"},{"name":"anna-cross","email":"akhachaturova@salesforce.com"},{"name":"cromwellryan-sf","email":"rcromwell@salesforce.com"},{"name":"hyunwooklee","email":"hyunwook.lee@salesforce.com"},{"name":"matthew.rossi","email":"matthew.rossi@salesforce.com"},{"name":"tm-sf","email":"tmelios@salesforce.com"},{"name":"dhawley","email":"dhawley@salesforce.com"},{"name":"nkoziuk","email":"nkoziuk@salesforce.com"},{"name":"herokucody","email":"cdemartin@salesforce.com"},{"name":"dodom-sfdc","email":"dodom@salesforce.com"},{"name":"csinghaus-sfdc","email":"csinghaus@salesforce.com"},{"name":"jw-sfdc","email":"joseph.wegner@salesforce.com"},{"name":"jlopezdan","email":"jorge.lopez@salesforce.com"},{"name":"gsinghsfdc","email":"gurvindersingh@salesforce.com"},{"name":"nrenke","email":"nrenke@salesforce.com"},{"name":"salesforcegene","email":"gene.connolly@salesforce.com"},{"name":"tanushree.gupta","email":"tanushree.gupta@salesforce.com"},{"name":"bsonntag-salesforce","email":"bsonntag@salesforce.com"},{"name":"chetankd10","email":"sharmachetan@salesforce.com"},{"name":"nicole.klusman","email":"nicole.klusman@salesforce.com"},{"name":"lcalermo","email":"dcalermo@salesforce.com"},{"name":"heroku-johnny","email":"jwinn@salesforce.com"},{"name":"chandlerprallsf","email":"cprall@salesforce.com"},{"name":"ecbulman","email":"ebulman@salesforce.com"},{"name":"emilyhuang-heroku","email":"emilyhuang@salesforce.com"},{"name":"michael.malave","email":"michael.malave@salesforce.com"},{"name":"tdhayananda","email":"tdhayananda@salesforce.com"},{"name":"erika.wallace","email":"erika.wallace@salesforce.com"},{"name":"valluri056","email":"v.valluri@salesforce.com"},{"name":"hk-ankitkumar","email":"ankitkumar3@salesforce.com"},{"name":"karuna123","email":"kgarigipati@salesforce.com"},{"name":"mjoherson-sf","email":"mjohnerson@salesforce.com"},{"name":"christopher.jose","email":"christopher.jose@salesforce.com"},{"name":"skediyal-sf","email":"skediyal@salesforce.com"}],"homepage":"https://github.com/heroku/js-blanket#readme","bugs":{"url":"https://github.com/heroku/js-blanket/issues"},"dist":{"shasum":"43b2f3cb92c79cc8fe3df831576722cc27988284","tarball":"https://registry.npmjs.org/@heroku/js-blanket/-/js-blanket-0.0.1.tgz","fileCount":57,"integrity":"sha512-v5oo4gzSW9ozPrQodAi7jPpWf8ypuATrqvnKHHkNWgjlPiCgGoFxre0NWgJ0hymGuvWSATFw+n+y9VMsMNYOcA==","signatures":[{"sig":"MEQCIDUBws/paFaHkXJLIDfsgEd0r2DJ/oYUzVSLzDXWwuzDAiBHj+Os2ph9E6+O4p3etVH3h5osimHZqA7yAmXj6rEthg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":405676},"main":"./dist/cjs/index.js","type":"module","_from":"file:heroku-js-blanket-0.0.1.tgz","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"ci":"pnpm run lint && pnpm run type-check && pnpm test","lint":"eslint \"src/**/*.{js,ts}\"","test":"c8 mocha --require ./scripts/test-setup.mjs --forbid-only \"dist/esm/**/*.test.js\"","build":"pnpm run build:cjs && pnpm run build:esm","check":"pnpm run format && pnpm run type-check && pnpm test","format":"pnpm run prettier && pnpm run lint:fix","pretest":"pnpm run build:cjs && pnpm run build:esm && pnpm run type-check","lint:fix":"eslint \"src/**/*.{js,ts}\" --fix","prettier":"prettier . --write","build:cjs":"rm -rf dist/cjs && tsc -p tsconfig.cjs.json && mkdir -p dist/cjs && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"rm -rf dist/esm && tsc -p tsconfig.esm.json","type-check":"tsc --noEmit -p tsconfig.json","lint-staged":"npx lint-staged"},"_npmUser":{"name":"k80bowman","email":"katy.bowman@salesforce.com"},"_resolved":"/private/var/folders/cb/6y8db2gd2sx4g73dhr_zhtdr0000gn/T/df3caac5c2489e5262bca5c9942bf214/heroku-js-blanket-0.0.1.tgz","_integrity":"sha512-v5oo4gzSW9ozPrQodAi7jPpWf8ypuATrqvnKHHkNWgjlPiCgGoFxre0NWgJ0hymGuvWSATFw+n+y9VMsMNYOcA==","repository":{"url":"git+https://github.com/heroku/js-blanket.git","type":"git"},"_npmVersion":"10.9.4","description":"Framework-agnostic sensitive data scrubbing library for error monitoring and logging","directories":{},"_nodeVersion":"22.21.0","dependencies":{"tslib":"^2.8.1"},"publishConfig":{"access":"restricted","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","chai":"^6.2.0","husky":"^9.1.7","mocha":"^11.7.5","eslint":"^9.39.1","prettier":"^3.6.2","@eslint/js":"^9.39.1","typescript":"^5.9.3","@types/chai":"^5.2.3","@types/node":"^24.10.0","lint-staged":"^16.2.6","@types/mocha":"^10.0.10","@typescript-eslint/parser":"^8.46.3","@typescript-eslint/eslint-plugin":"^8.46.3"},"_npmOperationalInternal":{"tmp":"tmp/js-blanket_0.0.1_1763494026192_0.712675215137937","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@heroku/js-blanket","version":"1.0.0","keywords":["pii","scrubbing","security","data-sanitization","error-monitoring","logging"],"author":{"name":"Heroku"},"license":"Apache-2.0","_id":"@heroku/js-blanket@1.0.0","maintainers":[{"name":"sconklin","email":"sconklin@salesforce.com"},{"name":"srishtigautam","email":"srishti.gautam@salesforce.com"},{"name":"aklimaite","email":"aklimaite@salesforce.com"},{"name":"jsullivandigs","email":"jsullivan@heroku.com"},{"name":"julianduque-sfdc","email":"jduque@salesforce.com"},{"name":"cwallsf","email":"cwall@salesforce.com"},{"name":"ijanak","email":"ijanak@salesforce.com"},{"name":"jeffrey.estrada","email":"jeffrey.estrada@salesforce.com"},{"name":"dlira-sf","email":"dlira@salesforce.com"},{"name":"ntonollier","email":"ntonollier@salesforce.com"},{"name":"daebumlee","email":"daebum.lee@salesforce.com"},{"name":"tetsuya_","email":"tkaneko@salesforce.com"},{"name":"mttr","email":"msawa@salesforce.com"},{"name":"eleary","email":"eleary@salesforce.com"},{"name":"salesforce-releases","email":"alm-cli@salesforce.com"},{"name":"dboston528","email":"dboston@salesforce.com"},{"name":"anujpandey001","email":"anuj.pandey@salesforce.com"},{"name":"sripad.kulkarni","email":"sripad.kulkarni@salesforce.com"},{"name":"rafaydin","email":"rafay.din@salesforce.com"},{"name":"kbaird-sf","email":"kbaird@salesforce.com"},{"name":"cbaxtersf","email":"cbaxter@salesforce.com"},{"name":"ryoneyama","email":"ryoneyama@salesforce.com"},{"name":"adirasanam","email":"adirasanam@salesforce.com"},{"name":"mengxiao.zhao","email":"mengxiao.zhao@salesforce.com"},{"name":"nrisaro","email":"srisaro@salesforce.com"},{"name":"cmarcojos","email":"cmarcojos@salesforce.com"},{"name":"adirksmeier","email":"adirksmeier@salesforce.com"},{"name":"mgates-salesforce","email":"micah.gates@salesforce.com"},{"name":"ademusoyo","email":"aawosikaolumo@salesforce.com"},{"name":"elzoona","email":"fpolillo@salesforce.com"},{"name":"jondaniel-sfdc","email":"jon.daniel@salesforce.com"},{"name":"dhagberg-sf","email":"dhagberg@salesforce.com"},{"name":"bencdenton","email":"bdenton@salesforce.com"},{"name":"lsangalang2023","email":"lsangalang@salesforce.com"},{"name":"marcelsfdc","email":"marcelsantos@salesforce.com"},{"name":"ccasey","email":"ccasey@salesforce.com"},{"name":"joeybrown90sf","email":"brown.joseph@salesforce.com"},{"name":"suppada","email":"suppada@salesforce.com"},{"name":"diana.doherty.sfdc","email":"diana.doherty@salesforce.com"},{"name":"hritch","email":"hritch@salesforce.com"},{"name":"ryanbrainard","email":"rbrainard@salesforce.com"},{"name":"rsoerensen","email":"rsoerensen@salesforce.com"},{"name":"jasoncummings-heroku","email":"j.cummings@salesforce.com"},{"name":"brock-salesforce","email":"bspratlen@salesforce.com"},{"name":"tkoh-sfdc","email":"tkohrumel@salesforce.com"},{"name":"gnetter","email":"gnetter@salesforce.com"},{"name":"coreypurcell_salesforce","email":"cpurcell@salesforce.com"},{"name":"swapnilghose","email":"swapnil.ghose@salesforce.com"},{"name":"stessema-sfc","email":"stessema@salesforce.com"},{"name":"jmonreal","email":"jmonrealbailey@salesforce.com"},{"name":"brittany.jones","email":"brittany.jones@salesforce.com"},{"name":"rstiltonsf","email":"rstilton@salesforce.com"},{"name":"nilamuthu","email":"nmuthu@salesforce.com"},{"name":"sghaffar","email":"sghaffar@salesforce.com"},{"name":"cdwort-sfdc","email":"aunger@salesforce.com"},{"name":"agatpareek","email":"apareek@salesforce.com"},{"name":"aaronromeosfdc","email":"aaron.romeo@salesforce.com"},{"name":"kpremkumar","email":"kpremkumar@salesforce.com"},{"name":"rchanda","email":"rchanda@salesforce.com"},{"name":"7ftz","email":"zwhitfield@salesforce.com"},{"name":"xx-sfdc-npm","email":"xiaolin.xu@salesforce.com"},{"name":"cv88","email":"chip.vaughn@salesforce.com"},{"name":"ekozilforce","email":"ekozil@salesforce.com"},{"name":"umarsfdc","email":"umar.farooq@salesforce.com"},{"name":"beanieboi","email":"bfritsch@salesforce.com"},{"name":"ndavidson-sf","email":"ndavidson@salesforce.com"},{"name":"mingzhi-liu1258","email":"mingzhi.liu@salesforce.com"},{"name":"angelcampbell","email":"angel.campbell@salesforce.com"},{"name":"mandeepsf","email":"mandeep.bal@salesforce.com"},{"name":"yann_ck","email":"yschutz@salesforce.com"},{"name":"dasofiei","email":"dasofiei@salesforce.com"},{"name":"rajashri-gurusamy","email":"rgurusamy@salesforce.com"},{"name":"sudarshanhiray","email":"sudarshandilip.hiray@salesforce.com"},{"name":"alex_heroku","email":"aarnell@salesforce.com"},{"name":"sbosio_sf","email":"sbosio@salesforce.com"},{"name":"sarahoh2468","email":"sarahoh@salesforce.com"},{"name":"justinwilaby-sf","email":"jwilaby@salesforce.com"},{"name":"cmcclung-npm-salesforce.com","email":"cmcclung@salesforce.com"},{"name":"tlowrimore","email":"tlowrimore@salesforce.com"},{"name":"ptemporini","email":"ptemporini@heroku.com"},{"name":"tcareysmith-sfdc","email":"tcareysmith@salesforce.com"},{"name":"robinson.m","email":"robinson.m@salesforce.com"},{"name":"dkabanov1","email":"dkabanov@salesforce.com"},{"name":"cgfuh","email":"cfurrer@salesforce.com"},{"name":"rdagg-hero","email":"rdagg@salesforce.com"},{"name":"k80bowman","email":"katy.bowman@salesforce.com"},{"name":"sheax0r","email":"michael.shea@salesforce.com"},{"name":"dpark.heroku","email":"dongmin.park@salesforce.com"},{"name":"afraidknot","email":"gary.clark@salesforce.com"},{"name":"daniel.bright","email":"daniel.bright@salesforce.com"},{"name":"jdowning","email":"justin@downing.us"},{"name":"abhinavkoul","email":"abhinav.koul@salesforce.com"},{"name":"joshwlewis-sfdc","email":"josh.lewis@salesforce.com"},{"name":"viniljain","email":"viniljain@salesforce.com"},{"name":"eblack","email":"eblack@salesforce.com"},{"name":"k.plenty","email":"k.plenty@salesforce.com"},{"name":"apadala","email":"apadala@salesforce.com"},{"name":"jhili!16","email":"mbarik@salesforce.com"},{"name":"lsorstokke","email":"lsorstokke@salesforce.com"},{"name":"rcross","email":"ryan.cross@salesforce.com"},{"name":"kdreyeroren","email":"kdreyeroren@salesforce.com"},{"name":"dhammer25","email":"daniel.hammer@salesforce.com"},{"name":"tenharmsel_sf","email":"ctenharmsel@salesforce.com"},{"name":"dougmcinnes-sfdc","email":"dmcinnes@salesforce.com"},{"name":"hillzbot2000","email":"hillary.sanders@salesforce.com"},{"name":"chap-heroku","email":"cambrose@salesforce.com"},{"name":"michellejhlim","email":"michellelim@salesforce.com"},{"name":"mbuschheroku","email":"mbusch@heroku.com"},{"name":"reidmix","email":"reid@heroku.com"},{"name":"beckychen","email":"becky.chen@salesforce.com"},{"name":"smrutisamanta","email":"smruti.samanta@salesforce.com"},{"name":"apoorvasriv","email":"apoorva.srivastava@salesforce.com"},{"name":"sfalan","email":"alan.scott@salesforce.com"},{"name":"p.shreya","email":"p.shreya@salesforce.com"},{"name":"sai_harshitha_neela","email":"saiharshitha.neela@salesforce.com"},{"name":"nlanatta","email":"nlanatta@salesforce.com"},{"name":"dreichenberg","email":"dreichenberg@salesforce.com"},{"name":"vlazuka","email":"vlazuka@salesforce.com"},{"name":"mars","email":"mars.hall@salesforce.com"},{"name":"heroku-front-end","email":"heroku-front-end+npm-releases@salesforce.com"},{"name":"richatiwari","email":"richa.tiwari@salesforce.com"},{"name":"wchrisjohnson","email":"johnson.chris@salesforce.com"},{"name":"the7oka","email":"maly@salesforce.com"},{"name":"simonebonettisfita","email":"sbonetti@salesforce.com"},{"name":"lucaszhou","email":"lucaszhou@salesforce.com"},{"name":"psalim","email":"psalim@salesforce.com"},{"name":"taylor.jones","email":"taylor.jones@salesforce.com"},{"name":"angelayoung","email":"angela.young@salesforce.com"},{"name":"mble-sfdc-2","email":"matthew.blewitt@salesforce.com"},{"name":"ktsforce","email":"ktowne@salesforce.com"},{"name":"kerry-bennett","email":"kerry.bennett@salesforce.com"},{"name":"gkommineni","email":"gkommineni@salesforce.com"},{"name":"smuku","email":"smuku@salesforce.com"},{"name":"ykatz","email":"ykatz@salesforce.com"},{"name":"dgallegossfdc","email":"dgallegos@salesforce.com"},{"name":"dzuelke-sfdc","email":"dzuelke@salesforce.com"},{"name":"rishabh.wason","email":"rishabh.wason@salesforce.com"},{"name":"sarassassin","email":"scope@salesforce.com"},{"name":"araja","email":"a.raja@heroku.com"},{"name":"v.anand","email":"v.anand@salesforce.com"},{"name":"lmckenzie","email":"lmckenzie@salesforce.com"},{"name":"jordaneekey","email":"jordanee@heroku.com"},{"name":"daigo-heroku","email":"daigo@heroku.com"},{"name":"mimen","email":"mimen@salesforce.com"},{"name":"jwadsworthsf","email":"jwadsworth@heroku.com"},{"name":"pfuente","email":"pfuente@heroku.com"},{"name":"montes_heroku","email":"cmontes@salesforce.com"},{"name":"bleong","email":"bleong@salesforce.com"},{"name":"paguilar","email":"paguilar@heroku.com"},{"name":"joanneyeung","email":"joanne.yeung@salesforce.com"},{"name":"zli-sf","email":"z.li@salesforce.com"},{"name":"marcusblankenship","email":"mblankenship@salesforce.com"},{"name":"sruthich","email":"sruthi.chennoju@salesforce.com"},{"name":"mgomes-heroku","email":"mgomes@salesforce.com"},{"name":"jesse.brown-sf","email":"jesse.brown@salesforce.com"},{"name":"tij005","email":"tianchongjiang@salesforce.com"},{"name":"tholschuh-salesforce","email":"tholschuh@salesforce.com"},{"name":"kumardinesh2","email":"kumardinesh2@salesforce.com"},{"name":"tholmes-sfdc","email":"thomas.holmes@salesforce.com"},{"name":"annajohnson-sf","email":"anna.johnson@salesforce.com"},{"name":"palakjeetkaur12","email":"palakjeet.kaur@salesforce.com"},{"name":"vjohne","email":"vjohne@salesforce.com"},{"name":"slizco","email":"elizabeth.cox@salesforce.com"},{"name":"anna-cross","email":"akhachaturova@salesforce.com"},{"name":"cromwellryan-sf","email":"rcromwell@salesforce.com"},{"name":"hyunwooklee","email":"hyunwook.lee@salesforce.com"},{"name":"matthew.rossi","email":"matthew.rossi@salesforce.com"},{"name":"tm-sf","email":"tmelios@salesforce.com"},{"name":"dhawley","email":"dhawley@salesforce.com"},{"name":"nkoziuk","email":"nkoziuk@salesforce.com"},{"name":"herokucody","email":"cdemartin@salesforce.com"},{"name":"dodom-sfdc","email":"dodom@salesforce.com"},{"name":"csinghaus-sfdc","email":"csinghaus@salesforce.com"},{"name":"jw-sfdc","email":"joseph.wegner@salesforce.com"},{"name":"jlopezdan","email":"jorge.lopez@salesforce.com"},{"name":"gsinghsfdc","email":"gurvindersingh@salesforce.com"},{"name":"nrenke","email":"nrenke@salesforce.com"},{"name":"salesforcegene","email":"gene.connolly@salesforce.com"},{"name":"tanushree.gupta","email":"tanushree.gupta@salesforce.com"},{"name":"bsonntag-salesforce","email":"bsonntag@salesforce.com"},{"name":"chetankd10","email":"sharmachetan@salesforce.com"},{"name":"nicole.klusman","email":"nicole.klusman@salesforce.com"},{"name":"lcalermo","email":"dcalermo@salesforce.com"},{"name":"heroku-johnny","email":"jwinn@salesforce.com"},{"name":"chandlerprallsf","email":"cprall@salesforce.com"},{"name":"ecbulman","email":"ebulman@salesforce.com"},{"name":"emilyhuang-heroku","email":"emilyhuang@salesforce.com"},{"name":"michael.malave","email":"michael.malave@salesforce.com"},{"name":"tdhayananda","email":"tdhayananda@salesforce.com"},{"name":"erika.wallace","email":"erika.wallace@salesforce.com"},{"name":"valluri056","email":"v.valluri@salesforce.com"},{"name":"hk-ankitkumar","email":"ankitkumar3@salesforce.com"},{"name":"karuna123","email":"kgarigipati@salesforce.com"},{"name":"mjoherson-sf","email":"mjohnerson@salesforce.com"},{"name":"christopher.jose","email":"christopher.jose@salesforce.com"},{"name":"skediyal-sf","email":"skediyal@salesforce.com"}],"homepage":"https://github.com/heroku/js-blanket#readme","bugs":{"url":"https://github.com/heroku/js-blanket/issues"},"dist":{"shasum":"28de4060110d409e861ebf32eccfe9aafeadeb97","tarball":"https://registry.npmjs.org/@heroku/js-blanket/-/js-blanket-1.0.0.tgz","fileCount":56,"integrity":"sha512-75fV7zmehSgHuXXfTqRZdbJn2wADi1U6Ext/A4WFcRrsiUeHnD0peCMZQixfyCrvMPA/06+QoUnJlnHIBMkJFg==","signatures":[{"sig":"MEUCIQCdygfWeXQEmJpdwoWmH7IgUxF/4Hwj3VR869WKGgvC1wIgYKilW8pBEhUzF755xaUnn71japO1jhPh97ApmWOqEG0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":365409},"main":"./dist/cjs/index.js","type":"module","_from":"file:heroku-js-blanket-1.0.0.tgz","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"ci":"pnpm run lint && pnpm run type-check && pnpm test","lint":"eslint \"src/**/*.{js,ts}\"","test":"c8 mocha --require ./scripts/test-setup.mjs --forbid-only \"dist/esm/**/*.test.js\"","build":"pnpm run build:cjs && pnpm run build:esm","check":"pnpm run format && pnpm run type-check && pnpm test","format":"pnpm run prettier && pnpm run lint:fix","pretest":"pnpm run build:cjs && pnpm run build:esm && pnpm run type-check","lint:fix":"eslint \"src/**/*.{js,ts}\" --fix","prettier":"prettier . --write","build:cjs":"rm -rf dist/cjs && tsc -p tsconfig.cjs.json && mkdir -p dist/cjs && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"rm -rf dist/esm && tsc -p tsconfig.esm.json","type-check":"tsc --noEmit -p tsconfig.json","lint-staged":"npx lint-staged"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a8d0cc84-5df0-471c-b1df-eb4a47602e84"}},"_resolved":"/tmp/ce96f0ded0952938ebfcdf9f2665c9ab/heroku-js-blanket-1.0.0.tgz","_integrity":"sha512-75fV7zmehSgHuXXfTqRZdbJn2wADi1U6Ext/A4WFcRrsiUeHnD0peCMZQixfyCrvMPA/06+QoUnJlnHIBMkJFg==","repository":{"url":"git+https://github.com/heroku/js-blanket.git","type":"git"},"_npmVersion":"11.6.3","description":"Framework-agnostic sensitive data scrubbing library for error monitoring and logging","directories":{},"_nodeVersion":"20.19.5","dependencies":{"tslib":"^2.8.1"},"publishConfig":{"access":"restricted","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","chai":"^6.2.0","husky":"^9.1.7","mocha":"^11.7.5","eslint":"^9.39.1","prettier":"^3.6.2","@eslint/js":"^9.39.1","typescript":"^5.9.3","@types/chai":"^5.2.3","@types/node":"^24.10.0","lint-staged":"^16.2.6","@types/mocha":"^10.0.10","@typescript-eslint/parser":"^8.46.3","@typescript-eslint/eslint-plugin":"^8.46.3"},"_npmOperationalInternal":{"tmp":"tmp/js-blanket_1.0.0_1763593496401_0.6406576089855229","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@heroku/js-blanket","version":"1.0.1","keywords":["pii","scrubbing","security","data-sanitization","error-monitoring","logging"],"author":{"name":"Heroku"},"license":"Apache-2.0","_id":"@heroku/js-blanket@1.0.1","maintainers":[{"name":"salesforce-releases","email":"alm-cli@salesforce.com"},{"name":"heroku-front-end","email":"heroku-front-end+npm-releases@salesforce.com"},{"name":"k80bowman","email":"katy.bowman@salesforce.com"},{"name":"sbosio_sf","email":"sbosio@salesforce.com"},{"name":"eblack","email":"eblack@salesforce.com"},{"name":"tlowrimore","email":"tlowrimore@salesforce.com"},{"name":"sfjonnpm","email":"jdodson@salesforce.com"},{"name":"heroku-johnny","email":"jwinn@salesforce.com"},{"name":"erika.wallace","email":"erika.wallace@salesforce.com"},{"name":"nrenke","email":"nrenke@salesforce.com"},{"name":"michael.malave","email":"michael.malave@salesforce.com"}],"homepage":"https://github.com/heroku/js-blanket#readme","bugs":{"url":"https://github.com/heroku/js-blanket/issues"},"dist":{"shasum":"3bcb5cfa98bf40e9e5f073a98c8b4c9e03d841fe","tarball":"https://registry.npmjs.org/@heroku/js-blanket/-/js-blanket-1.0.1.tgz","fileCount":56,"integrity":"sha512-e0QQK+6m/Mm4kbNE94JTP4MOBjorDYQgwz9RERQWMo7q4UKRQHiBqBlUdzl2k6mkc7nU/b4dECnHP712Nxw4OQ==","signatures":[{"sig":"MEYCIQCQiQ17ums7BYQfR5I0CZ+qZByEfyLX1DzceTuQktg0YQIhAPiL9RZ4T9b2QruaR0JlXuthvVM3Hyp80kM11eKCWpYo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@heroku%2fjs-blanket@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":385672},"main":"./dist/cjs/index.js","type":"module","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"fe7b04fb8eb9b2dde6e7f8562a7f6b8a6d9ce6dc","scripts":{"ci":"pnpm run lint && pnpm run type-check && pnpm test","lint":"eslint \"src/**/*.{js,ts}\"","test":"c8 mocha --require ./scripts/test-setup.mjs --forbid-only \"dist/esm/**/*.test.js\"","build":"pnpm run build:cjs && pnpm run build:esm","check":"pnpm run format && pnpm run type-check && pnpm test","format":"pnpm run prettier && pnpm run lint:fix","prepare":"husky && pnpm run build","pretest":"pnpm run build:cjs && pnpm run build:esm && pnpm run type-check","lint:fix":"eslint \"src/**/*.{js,ts}\" --fix","prettier":"prettier . --write","build:cjs":"rm -rf dist/cjs && tsc -p tsconfig.cjs.json && mkdir -p dist/cjs && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"rm -rf dist/esm && tsc -p tsconfig.esm.json","type-check":"tsc --noEmit -p tsconfig.json","lint-staged":"npx lint-staged"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a8d0cc84-5df0-471c-b1df-eb4a47602e84"}},"repository":{"url":"git+https://github.com/heroku/js-blanket.git","type":"git"},"_npmVersion":"11.17.0","description":"Framework-agnostic sensitive data scrubbing library for error monitoring and logging","directories":{},"_nodeVersion":"20.20.2","dependencies":{"tslib":"^2.8.1"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.26.0","devDependencies":{"c8":"^10.1.3","chai":"^6.2.2","glob":"^10.5.0","husky":"^9.1.7","mocha":"^11.7.6","eslint":"^9.39.4","prettier":"^3.8.4","@eslint/js":"^9.39.4","typescript":"^5.9.3","@types/chai":"^5.2.3","@types/node":"^25.9.3","lint-staged":"^16.4.0","@types/mocha":"^10.0.10","@typescript-eslint/parser":"^8.61.1","@typescript-eslint/eslint-plugin":"^8.61.1"},"_npmOperationalInternal":{"tmp":"tmp/js-blanket_1.0.1_1781713375697_0.7499007638054915","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@heroku/js-blanket","version":"1.1.0","keywords":["pii","scrubbing","security","data-sanitization","error-monitoring","logging"],"author":{"name":"Heroku"},"license":"Apache-2.0","_id":"@heroku/js-blanket@1.1.0","maintainers":[{"name":"salesforce-releases","email":"alm-cli@salesforce.com"},{"name":"heroku-front-end","email":"heroku-front-end+npm-releases@salesforce.com"},{"name":"pritamnaik","email":"pritam.naik@salesforce.com"},{"name":"akitanaka","email":"hideaki.tanaka@salesforce.com"},{"name":"ytakamura","email":"ytakamura@salesforce.com"},{"name":"jkim-sfdc","email":"jaecheol.kim@salesforce.com"},{"name":"sbosio_sf","email":"sbosio@salesforce.com"},{"name":"eblack","email":"eblack@salesforce.com"},{"name":"tlowrimore","email":"tlowrimore@salesforce.com"},{"name":"sfjonnpm","email":"jdodson@salesforce.com"},{"name":"heroku-johnny","email":"jwinn@salesforce.com"},{"name":"erika.wallace","email":"erika.wallace@salesforce.com"},{"name":"nrenke","email":"nrenke@salesforce.com"},{"name":"michael.malave","email":"michael.malave@salesforce.com"}],"homepage":"https://github.com/heroku/js-blanket#readme","bugs":{"url":"https://github.com/heroku/js-blanket/issues"},"dist":{"shasum":"32cb6ad7789613e1d53a92a692eaf6bfa3f80606","tarball":"https://registry.npmjs.org/@heroku/js-blanket/-/js-blanket-1.1.0.tgz","fileCount":56,"integrity":"sha512-l9E4FPI6GntLCil40bgKwJnReD+tWCv8GeM8gJZ5aqBwAd+4vkOsK/eEf3qWjQOXpt/rOmm3eLbIk4P/oMwzlg==","signatures":[{"sig":"MEUCICvCya+Wy8mszTMAj2ygz4cb/tgEb9pRB9+F0HV7CpkFAiEAqeQvzwcc5qttXSfjVoV6URftHkoqfTSdBXqifeUIfIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@heroku%2fjs-blanket@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":385742},"main":"./dist/cjs/index.js","type":"module","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"96249593f2b178bdafc89823d12ca19fe306541b","scripts":{"ci":"pnpm run lint && pnpm run type-check && pnpm test","lint":"eslint \"src/**/*.{js,ts}\"","test":"c8 mocha --require ./scripts/test-setup.mjs --forbid-only \"dist/esm/**/*.test.js\"","build":"pnpm run build:cjs && pnpm run build:esm","check":"pnpm run format && pnpm run type-check && pnpm test","format":"pnpm run prettier && pnpm run lint:fix","prepare":"husky && pnpm run build","pretest":"pnpm run build:cjs && pnpm run build:esm && pnpm run type-check","lint:fix":"eslint \"src/**/*.{js,ts}\" --fix","prettier":"prettier . --write","build:cjs":"rm -rf dist/cjs && tsc -p tsconfig.cjs.json && mkdir -p dist/cjs && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"rm -rf dist/esm && tsc -p tsconfig.esm.json","type-check":"tsc --noEmit -p tsconfig.json","lint-staged":"npx lint-staged"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a8d0cc84-5df0-471c-b1df-eb4a47602e84"}},"repository":{"url":"git+https://github.com/heroku/js-blanket.git","type":"git"},"_npmVersion":"11.19.0","description":"Framework-agnostic sensitive data scrubbing library for error monitoring and logging","directories":{},"_nodeVersion":"22.23.2","dependencies":{"tslib":"^2.8.1"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.34.5","devDependencies":{"c8":"^11.0.0","chai":"^6.2.2","glob":"^10.5.0","husky":"^9.1.7","mocha":"^11.7.6","eslint":"^9.39.4","prettier":"^3.8.4","@eslint/js":"^9.39.4","typescript":"^5.9.3","@types/chai":"^5.2.3","@types/node":"^25.9.3","lint-staged":"^16.4.0","@types/mocha":"^10.0.10","@typescript-eslint/parser":"^8.61.1","@typescript-eslint/eslint-plugin":"^8.61.1"},"_npmOperationalInternal":{"tmp":"tmp/js-blanket_1.1.0_1787343299564_0.19072174930797603","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@heroku/js-blanket","version":"1.1.1","keywords":["pii","scrubbing","security","data-sanitization","error-monitoring","logging"],"author":{"name":"Heroku"},"license":"Apache-2.0","_id":"@heroku/js-blanket@1.1.1","maintainers":[{"name":"salesforce-releases","email":"alm-cli@salesforce.com"},{"name":"heroku-front-end","email":"heroku-front-end+npm-releases@salesforce.com"},{"name":"pritamnaik","email":"pritam.naik@salesforce.com"},{"name":"akitanaka","email":"hideaki.tanaka@salesforce.com"},{"name":"ytakamura","email":"ytakamura@salesforce.com"},{"name":"rukubay","email":"rukubay@salesforce.com"},{"name":"abhishek_kacher","email":"akacher@salesforce.com"},{"name":"valeriecodes","email":"vwoolard@salesforce.com"},{"name":"hone-sf","email":"terence.lee@salesforce.com"},{"name":"mohilsrivastava","email":"mohilmihi.srivastava@salesforce.com"},{"name":"jkim-sfdc","email":"jaecheol.kim@salesforce.com"},{"name":"sbosio_sf","email":"sbosio@salesforce.com"},{"name":"eblack","email":"eblack@salesforce.com"},{"name":"tlowrimore","email":"tlowrimore@salesforce.com"},{"name":"sfjonnpm","email":"jdodson@salesforce.com"},{"name":"heroku-johnny","email":"jwinn@salesforce.com"},{"name":"erika.wallace","email":"erika.wallace@salesforce.com"},{"name":"nrenke","email":"nrenke@salesforce.com"},{"name":"michael.malave","email":"michael.malave@salesforce.com"}],"homepage":"https://github.com/heroku/js-blanket#readme","bugs":{"url":"https://github.com/heroku/js-blanket/issues"},"dist":{"shasum":"4626d4ef366f64d6b226d505c18896e91dfb24e5","tarball":"https://registry.npmjs.org/@heroku/js-blanket/-/js-blanket-1.1.1.tgz","fileCount":56,"integrity":"sha512-1pmRbZnr/pBvLwStF6QqzbFQ+Ne8vWL4JYky76Yc5K/uYaJW2kmskaI7Ojl/TASDAabjmu7atY/H0t+dNUkRAA==","signatures":[{"sig":"MEYCIQC/RivXvcHGFoxhitu+rZEQ3XnpNGlY6i1FH0s95hRx1QIhANUoXV6MQ/KqMbvPuuD4lAjNyR2C38Ol0zOxAVJLD9sN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAcUhuMHuHOO4rXEp48+obnFaWx4XqFGRfHYVV+Q0B/kAiEA8eQFVj3Whs5eCvTSMJ2bblXyQ5tad3xaCBAjg6nWXts=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@heroku%2fjs-blanket@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":386138},"main":"./dist/cjs/index.js","type":"module","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"30c347930127c7a3a7b1fb5799d555a8abf69580","scripts":{"ci":"pnpm run lint && pnpm run type-check && pnpm test","lint":"eslint \"src/**/*.{js,ts}\"","test":"c8 mocha --require ./scripts/test-setup.mjs --forbid-only \"dist/esm/**/*.test.js\"","build":"pnpm run build:cjs && pnpm run build:esm","check":"pnpm run format && pnpm run type-check && pnpm test","format":"pnpm run prettier && pnpm run lint:fix","prepare":"husky && pnpm run build","pretest":"pnpm run build:cjs && pnpm run build:esm && pnpm run type-check","lint:fix":"eslint \"src/**/*.{js,ts}\" --fix","prettier":"prettier . --write","build:cjs":"rm -rf dist/cjs && tsc -p tsconfig.cjs.json && mkdir -p dist/cjs && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json","build:esm":"rm -rf dist/esm && tsc -p tsconfig.esm.json","type-check":"tsc --noEmit -p tsconfig.json","lint-staged":"npx lint-staged"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a8d0cc84-5df0-471c-b1df-eb4a47602e84"}},"repository":{"url":"git+https://github.com/heroku/js-blanket.git","type":"git"},"_npmVersion":"11.19.1","description":"Framework-agnostic sensitive data scrubbing library for error monitoring and logging","directories":{},"_nodeVersion":"22.23.2","dependencies":{"tslib":"^2.8.1"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.34.5","devDependencies":{"c8":"^12.0.0","chai":"^6.2.2","glob":"^13.0.6","husky":"^9.1.7","mocha":"^11.8.0","eslint":"^10.10.0","prettier":"^3.8.4","@eslint/js":"^9.39.4","typescript":"^5.9.3","@types/chai":"^5.2.3","@types/node":"^26.2.0","lint-staged":"^17.5.1","@types/mocha":"^10.0.10","@typescript-eslint/parser":"^8.61.1","@typescript-eslint/eslint-plugin":"^8.61.1"},"_npmOperationalInternal":{"tmp":"tmp/js-blanket_1.1.1_1790100448359_0.5040586803812859","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-11-14T00:55:35.107Z","modified":"2026-09-24T17:07:24.341Z","0.0.0":"2025-11-14T00:55:35.396Z","0.0.1":"2025-11-18T19:27:06.396Z","1.0.0":"2025-11-19T23:04:56.587Z","1.0.1":"2026-06-17T16:22:55.840Z","1.1.0":"2026-08-21T20:14:59.706Z","1.1.1":"2026-09-22T18:07:28.440Z"},"bugs":{"url":"https://github.com/heroku/js-blanket/issues"},"author":{"name":"Heroku"},"license":"Apache-2.0","homepage":"https://github.com/heroku/js-blanket#readme","keywords":["pii","scrubbing","security","data-sanitization","error-monitoring","logging"],"repository":{"url":"git+https://github.com/heroku/js-blanket.git","type":"git"},"description":"Framework-agnostic sensitive data scrubbing library for error monitoring and logging","maintainers":[{"email":"alm-cli@salesforce.com","name":"salesforce-releases"},{"email":"heroku-front-end+npm-releases@salesforce.com","name":"heroku-front-end"},{"email":"pritam.naik@salesforce.com","name":"pritamnaik"},{"email":"hideaki.tanaka@salesforce.com","name":"akitanaka"},{"email":"ytakamura@salesforce.com","name":"ytakamura"},{"email":"rukubay@salesforce.com","name":"rukubay"},{"email":"akacher@salesforce.com","name":"abhishek_kacher"},{"email":"vwoolard@salesforce.com","name":"valeriecodes"},{"email":"terence.lee@salesforce.com","name":"hone-sf"},{"email":"mohilmihi.srivastava@salesforce.com","name":"mohilsrivastava"},{"email":"emorley@salesforce.com","name":"edmorley"},{"email":"jaecheol.kim@salesforce.com","name":"jkim-sfdc"},{"email":"sbosio@salesforce.com","name":"sbosio_sf"},{"email":"eblack@salesforce.com","name":"eblack"},{"email":"tlowrimore@salesforce.com","name":"tlowrimore"},{"email":"jdodson@salesforce.com","name":"sfjonnpm"},{"email":"jwinn@salesforce.com","name":"heroku-johnny"},{"email":"erika.wallace@salesforce.com","name":"erika.wallace"},{"email":"nrenke@salesforce.com","name":"nrenke"},{"email":"michael.malave@salesforce.com","name":"michael.malave"}],"readme":"# Heroku JS Blanket\n\nA framework-agnostic sensitive data scrubbing library for logging, exception\nhandling, and monitoring services for NodeJS and JavaScript projects. If you\nneed to remove PII from structured data, JS Blanket has you covered.\n\nThis project provides a core scrubbing engine with preset field lists for common\nPII patterns, making it easy to integrate with any logging or error monitoring\nservice.\n\n## Features\n\n- **Deep Object Traversal**: Handles nested objects, arrays, and circular\n  references safely\n- **Multiple Scrubbing Modes**: Field-based, path-based, and pattern-based\n  scrubbing\n- **Immutable Operations**: Never modifies input data - always returns new\n  objects\n- **Preset Field Lists**: Battle-tested PII patterns (HEROKU_FIELDS,\n  GDPR_FIELDS, PCI_FIELDS)\n\n## Quick Start\n\n### Installation\n\n```bash\n# npm\nnpm install @heroku/js-blanket\n\n# pnpm\npnpm add @heroku/js-blanket\n\n# yarn\nyarn add @heroku/js-blanket\n```\n\n### Usage Examples\n\nFramework-specific examples\n[here](https://github.com/heroku/js-blanket/tree/main/docs/examples).\n\n## Core Scrubber API\n\nThe `Scrubber` class provides flexible PII scrubbing with three modes:\n\n### Field-Based Scrubbing\n\nScrubs values based on field names (exact match or regex):\n\n```typescript\nimport { Scrubber } from '@heroku/js-blanket';\n\nconst scrubber = new Scrubber({\n  fields: ['password', 'apiToken', /.*_token$/i],\n  replacement: '[REDACTED]',\n});\n\nconst data = {\n  user: 'john',\n  password: 'secret123',\n  oauth_token: 'abc-def-ghi',\n};\n\nconst result = scrubber.scrub(data);\n// Result: { user: 'john', password: '[REDACTED]', oauth_token: '[REDACTED]' }\n```\n\n### Path-Based Scrubbing\n\nScrubs values at specific paths using dot notation:\n\n```typescript\nconst scrubber = new Scrubber({\n  paths: ['user.email', 'user.profile.ssn'],\n});\n\nconst data = {\n  user: {\n    name: 'John',\n    email: 'john@example.com',\n    profile: { ssn: '123-45-6789' },\n  },\n};\n\nconst result = scrubber.scrub(data);\n// Result: { user: { name: 'John', email: '[SCRUBBED]', profile: { ssn: '[SCRUBBED]' } } }\n```\n\n### Pattern-Based Scrubbing\n\nScrubs content matching regex patterns:\n\n```typescript\nconst scrubber = new Scrubber({\n  patterns: [\n    /\\b[\\w._%+-]+@[\\w.-]+\\.[a-zA-Z]{2,}\\b/g, // Email addresses\n    /\\b\\d{3}-\\d{2}-\\d{4}\\b/g, // SSN patterns\n    /\\b\\d{13,19}\\b/g, // Credit card numbers\n  ],\n});\n\nconst data = {\n  message: 'Contact john@example.com or call 123-45-6789',\n};\n\nconst result = scrubber.scrub(data);\n// Result: { message: 'Contact [SCRUBBED] or call [SCRUBBED]' }\n```\n\n## Preset Field Lists\n\nUse battle-tested preset field lists for common PII patterns:\n\n```typescript\nimport { HEROKU_FIELDS, GDPR_FIELDS, PCI_FIELDS } from '@heroku/js-blanket';\n\n// Heroku-specific sensitive fields\nconst scrubber = new Scrubber({\n  fields: HEROKU_FIELDS, // heroku_oauth_token, sudo_oauth_token, www-sso-session, etc.\n});\n\n// GDPR compliance fields\nconst gdprScrubber = new Scrubber({\n  fields: GDPR_FIELDS, // email, ip_address, phone_number, ssn, date_of_birth, etc.\n});\n\n// PCI compliance fields\nconst pciScrubber = new Scrubber({\n  fields: PCI_FIELDS, // credit_card, cvv, card_number, expiration_date, etc.\n});\n\n// Combine multiple presets\nconst scrubber = new Scrubber({\n  fields: [...HEROKU_FIELDS, ...GDPR_FIELDS, ...PCI_FIELDS],\n});\n```\n\n## Code Quality and Testing\n\nThis project uses pnpm for package management and includes comprehensive code\nquality tools to maintain high standards.\n\n### Available Scripts\n\nA list of useful scripts when developing against the codebase:\n\n```bash\n# All code quality checks and tests\npnpm check\n\n# Run the full test suite with coverage reporting\npnpm test\n\n# Check code quality with ESLint\npnpm lint\n\n# Automatically fix linting issues and format code with Prettier\npnpm format\n\n# Run TypeScript type checking\npnpm type-check\n\n# Run the continuous integration checks (linting, type checking, and tests)\npnpm ci\n```\n\n## Development Workflow\n\nFor the best development experience:\n\n1. **Before starting work**: Ensure dependencies are installed with\n   `pnpm install`.\n2. **During development**: Run `pnpm type-check` periodically to catch type\n   errors early.\n3. **Before committing**: Run `pnpm check` to ensure all quality standards are\n   met.\n4. **Fix issues quickly**: Use `pnpm format` to auto-fix formatting and linting\n   issues.\n\n### Testing Requirements\n\nTests are located in `src/**/*.test.ts` and run against the compiled JavaScript\nin `dist/`. The test suite includes:\n\n- Unit tests for all public APIs\n- Type safety validation tests\n- Coverage reporting with c8 (HTML and text-summary)\n\nTests automatically run in silent mode (`LOG_LEVEL=silent`) to keep output\nclean.\n\n### Build Outputs\n\nThe library produces dual builds for maximum compatibility:\n\n- **CommonJS** (`dist/cjs/`): Use for Node.js and older bundlers\n- **ES Modules** (`dist/esm/`): Use for modern bundlers and tree-shaking support\n\nBoth outputs include TypeScript declaration files (`.d.ts`) for type\ninformation.\n\n## License\n\nApache-2.0. See `LICENSE` for details.\n\n## Contributing\n\nWe welcome issues and PRs. Please follow conventional commits, keep changes\nunder 200 lines per commit, and ensure tests and type checks pass. See\n`CONTRIBUTING.md` for details.\n\n## Documentation\n\nFor more detailed examples and use cases:\n\n- [Sentry Integration Examples](docs/examples/sentry-integration.md) - Using\n  js-blanket with Sentry's beforeSend hooks\n- [Logging Integration Examples](docs/examples/logging-integration.md) - Using\n  js-blanket with logging libraries\n- [Migration Guides](docs/MIGRATION.md)\n- [Project Status](docs/PROJECT-STATUS.md)\n","readmeFilename":"README.md"}