{"_id":"@absolutejs/enrich","_rev":"10-8c56f1cff165c7a311f37e5f46d306ca","name":"@absolutejs/enrich","dist-tags":{"latest":"0.1.4"},"versions":{"0.0.1":{"name":"@absolutejs/enrich","version":"0.0.1","author":"Alex Kahn","license":"BSL-1.1","_id":"@absolutejs/enrich@0.0.1","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"dist":{"shasum":"8ed73f58c666c3fd2ada2fe2ecb9553c35b419e5","tarball":"https://registry.npmjs.org/@absolutejs/enrich/-/enrich-0.0.1.tgz","fileCount":19,"integrity":"sha512-Y/s9CMCxuoFCtwLGajYdDDw+8mffW6157kyrSE2i1eur7HdYAKUbbJjUaL3u+v2dh+kfIZCMlS4+8WcRUG+BLQ==","signatures":[{"sig":"MEUCIDPOzYNWqTHom3GYICzdRvVdrDqWgCl1xJ6V+sNRLkh+AiEAnaIhTZbqjEIyo0NAOUNv0ugL4vnaoBT5jXzFY2XfxqA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38802},"main":"./dist/index.js","types":"./dist/index.d.ts","shasum":"8ed73f58c666c3fd2ada2fe2ecb9553c35b419e5","scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target=bun && tsc --emitDeclarationOnly --project tsconfig.json","release":"bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-Y/s9CMCxuoFCtwLGajYdDDw+8mffW6157kyrSE2i1eur7HdYAKUbbJjUaL3u+v2dh+kfIZCMlS4+8WcRUG+BLQ==","repository":{"url":"https://github.com/absolutejs/enrich.git","type":"git"},"_npmVersion":"10.8.3","description":"In-house B2B email verification + discovery — MX/SMTP/catch-all verification and decision-maker email finding, so you don't pay PDL/Apollo per lookup.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/enrich_0.0.1_1780701612329_0.03850635270207414","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@absolutejs/enrich","version":"0.0.2","author":"Alex Kahn","license":"BSL-1.1","_id":"@absolutejs/enrich@0.0.2","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"dist":{"shasum":"6870d49f87dd0e68eabd6e9daf296b7325a34795","tarball":"https://registry.npmjs.org/@absolutejs/enrich/-/enrich-0.0.2.tgz","fileCount":12,"integrity":"sha512-hp/AyBsyhh5COyXJoUjp/PHlQY/DGdXdVUR0imy6FCgZpikzYSmwfqg9iIaMkROQpzxne4JW+6d5IY2xQdH0fA==","signatures":[{"sig":"MEYCIQDrmm7g9HfPO7OWcs9wST2eMNlAv7AZ47ZDXfu3VXfvBwIhAORttJfedx9Oh/BN4xeIpn3+Dtsf8jHZmfKOji7lRPCE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30212},"main":"./dist/index.js","types":"./dist/index.d.ts","shasum":"6870d49f87dd0e68eabd6e9daf296b7325a34795","scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target=bun && tsc --emitDeclarationOnly --project tsconfig.json","release":"bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-hp/AyBsyhh5COyXJoUjp/PHlQY/DGdXdVUR0imy6FCgZpikzYSmwfqg9iIaMkROQpzxne4JW+6d5IY2xQdH0fA==","repository":{"url":"https://github.com/absolutejs/enrich.git","type":"git"},"_npmVersion":"10.8.3","description":"In-house B2B email verification + discovery — MX/SMTP/catch-all verification and decision-maker email finding, so you don't pay PDL/Apollo per lookup.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/enrich_0.0.2_1780704272002_0.04715851467413312","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@absolutejs/enrich","version":"0.0.3","author":"Alex Kahn","license":"BSL-1.1","_id":"@absolutejs/enrich@0.0.3","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"dist":{"shasum":"ed92ba3fa9a70d530179653130b710bcecfde17b","tarball":"https://registry.npmjs.org/@absolutejs/enrich/-/enrich-0.0.3.tgz","fileCount":12,"integrity":"sha512-ZsVbBeEJcvJzpALeqqlAN80QcmrSpZY/UMJDPER30hA/dIkHo7nfx0oXFmvre+BMRM/48nJwaAaRSYphFh0dVA==","signatures":[{"sig":"MEQCID8FFROKZJiyDgCaM/rirtNIx4AiQX55164QNILMa2buAiAhpS6qObLzkWw23/fe9bgkn2/kgeXSrt788Q8jkQ2gRQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25512},"main":"./dist/index.js","types":"./dist/index.d.ts","shasum":"ed92ba3fa9a70d530179653130b710bcecfde17b","scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target=bun && tsc --emitDeclarationOnly --project tsconfig.json","release":"bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-ZsVbBeEJcvJzpALeqqlAN80QcmrSpZY/UMJDPER30hA/dIkHo7nfx0oXFmvre+BMRM/48nJwaAaRSYphFh0dVA==","repository":{"url":"https://github.com/absolutejs/enrich.git","type":"git"},"_npmVersion":"10.8.3","description":"In-house B2B email verification + discovery — MX/SMTP/catch-all verification and decision-maker email finding, so you don't pay PDL/Apollo per lookup.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/enrich_0.0.3_1780704503602_0.5008662135560418","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@absolutejs/enrich","version":"0.0.4","author":"Alex Kahn","license":"BSL-1.1","_id":"@absolutejs/enrich@0.0.4","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"dist":{"shasum":"3545ef8978851faaaa9a0b412e7046bc93de7827","tarball":"https://registry.npmjs.org/@absolutejs/enrich/-/enrich-0.0.4.tgz","fileCount":12,"integrity":"sha512-K6YiL/7hDbKjou88z+OuoDv0Ur3gtfgVoEFsUKc5Vk5g6u4qHfmLkncewRuigoxAxAHBsMz5SrbcPzfjVi9kpw==","signatures":[{"sig":"MEUCIQDu0xkfcBuyea6ThQAytMU/E13+2uAxfFtPfncV2W7q+gIgUPKsjvJ1fJerz663e1u6loyDV47P/ae87dHISRLQlTA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26235},"main":"./dist/index.js","types":"./dist/index.d.ts","shasum":"3545ef8978851faaaa9a0b412e7046bc93de7827","scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target=bun && tsc --emitDeclarationOnly --project tsconfig.json","release":"bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-K6YiL/7hDbKjou88z+OuoDv0Ur3gtfgVoEFsUKc5Vk5g6u4qHfmLkncewRuigoxAxAHBsMz5SrbcPzfjVi9kpw==","repository":{"url":"https://github.com/absolutejs/enrich.git","type":"git"},"_npmVersion":"10.8.3","description":"In-house B2B email verification + discovery — MX/SMTP/catch-all verification and decision-maker email finding, so you don't pay PDL/Apollo per lookup.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/enrich_0.0.4_1780706478585_0.5752428198930486","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@absolutejs/enrich","version":"0.0.5","author":"Alex Kahn","license":"BSL-1.1","_id":"@absolutejs/enrich@0.0.5","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"dist":{"shasum":"19db0887a8a930c9b9895d1b97157cded7ae49a1","tarball":"https://registry.npmjs.org/@absolutejs/enrich/-/enrich-0.0.5.tgz","fileCount":13,"integrity":"sha512-D4/DB/RvddY3d76crfhJ24HHOePP7xjeb0ayOb8XxJK9vvXq337KtR1dnEMOO+rsSv76pJRqbB+XmfO3LkBbzw==","signatures":[{"sig":"MEUCIEenTt/23CMVrczBY+CtZmHte81VEC7RP88kfJ5Yvd/LAiEAsJq6+19MPH0d60fhYnoCtQPcKPnyjn8p5W2m/WOVJIw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30159},"main":"./dist/index.js","types":"./dist/index.d.ts","shasum":"19db0887a8a930c9b9895d1b97157cded7ae49a1","scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target=bun && tsc --emitDeclarationOnly --project tsconfig.json","release":"bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-D4/DB/RvddY3d76crfhJ24HHOePP7xjeb0ayOb8XxJK9vvXq337KtR1dnEMOO+rsSv76pJRqbB+XmfO3LkBbzw==","repository":{"url":"https://github.com/absolutejs/enrich.git","type":"git"},"_npmVersion":"10.8.3","description":"In-house B2B enrichment — MX/SMTP/catch-all email verification, decision-maker email finding, and keyless public-profile enrichment (avatars, logos, social handles), so you don't pay PDL/Apollo/Clearbit per lookup.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/enrich_0.0.5_1781171115264_0.9478110517463241","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@absolutejs/enrich","version":"0.1.0","author":"Alex Kahn","license":"BSL-1.1","_id":"@absolutejs/enrich@0.1.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"dist":{"shasum":"a59ff9a82e73e0fa80f8d7fababf4ba9743a6e36","tarball":"https://registry.npmjs.org/@absolutejs/enrich/-/enrich-0.1.0.tgz","fileCount":14,"integrity":"sha512-pzGryIoEhyzUw/BDoQjRBUwrhaE3S+9Yn3uxnLkP6uVduuOK1Zw3MMWC31SpGwxrV4xDMHYJ4LJmx5jUfFMzNg==","signatures":[{"sig":"MEUCIQCEzs6y+Cp8LJqpbW7rXpmy84NnrVzSu24Vt94G/mhfFwIgOFF56AweSYDGts+kOcOX1O9h+stOM1RqlaxaFH3Ahjk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36808},"main":"./dist/index.js","types":"./dist/index.d.ts","shasum":"a59ff9a82e73e0fa80f8d7fababf4ba9743a6e36","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./profile":{"types":"./dist/profile.d.ts","default":"./dist/profile.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target=bun && bun build src/profile.ts --outdir dist --target=browser && tsc --emitDeclarationOnly --project tsconfig.json","release":"bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-pzGryIoEhyzUw/BDoQjRBUwrhaE3S+9Yn3uxnLkP6uVduuOK1Zw3MMWC31SpGwxrV4xDMHYJ4LJmx5jUfFMzNg==","repository":{"url":"https://github.com/absolutejs/enrich.git","type":"git"},"_npmVersion":"10.8.3","description":"In-house B2B enrichment — MX/SMTP/catch-all email verification, decision-maker email finding, and keyless public-profile enrichment (avatars, logos, social handles), so you don't pay PDL/Apollo/Clearbit per lookup.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/enrich_0.1.0_1781171903641_0.2515418004721319","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@absolutejs/enrich","version":"0.1.1","author":"Alex Kahn","license":"BSL-1.1","_id":"@absolutejs/enrich@0.1.1","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"dist":{"shasum":"f15461b1739eec3c4b69caff29f9acc34bf68ab4","tarball":"https://registry.npmjs.org/@absolutejs/enrich/-/enrich-0.1.1.tgz","fileCount":14,"integrity":"sha512-txgurLu3SXXhmyXy7SFrO7z9Tk80HVq1p6poq03RNKBMcIBHy8/r5V8OoLv4T5hDG7KAeiWraMP9T1M0oN92kQ==","signatures":[{"sig":"MEUCIQC1pcGAMhcSbf8r/W4+2ckdFMQCHJZGWsic7zMCu2UX7QIgDHkIKaGEOaXXGsxeO8vj8JI5aKE7jsDGOT7cmlSc9Ok=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37487},"main":"./dist/index.js","types":"./dist/index.d.ts","shasum":"f15461b1739eec3c4b69caff29f9acc34bf68ab4","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./profile":{"types":"./dist/profile.d.ts","default":"./dist/profile.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --target=bun && bun build src/profile.ts --outdir dist --target=browser && tsc --emitDeclarationOnly --project tsconfig.json","release":"bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-txgurLu3SXXhmyXy7SFrO7z9Tk80HVq1p6poq03RNKBMcIBHy8/r5V8OoLv4T5hDG7KAeiWraMP9T1M0oN92kQ==","repository":{"url":"https://github.com/absolutejs/enrich.git","type":"git"},"_npmVersion":"10.8.3","description":"In-house B2B enrichment — MX/SMTP/catch-all email verification, decision-maker email finding, and keyless public-profile enrichment (avatars, logos, social handles), so you don't pay PDL/Apollo/Clearbit per lookup.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/enrich_0.1.1_1781174300650_0.40660947287083005","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@absolutejs/enrich","version":"0.1.2","author":"Alex Kahn","license":"BSL-1.1","_id":"@absolutejs/enrich@0.1.2","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/enrich","bugs":{"url":"https://github.com/absolutejs/enrich/issues"},"dist":{"shasum":"4dfcc2dd5984f139500f04130322b59ad7a6ddd2","tarball":"https://registry.npmjs.org/@absolutejs/enrich/-/enrich-0.1.2.tgz","fileCount":17,"integrity":"sha512-mVv2SyLF60JuYyFCMHDfr8b7nqZJkw3/HzR3ucsfRpGaja7SkRBt9MTZpYHUHO5qk3TYlWSgUmpxpoaTTbCM9w==","signatures":[{"sig":"MEQCIDddPwgNGA5z9FOlA7kcVrzXNwohJ855t3Y+akjB3vJUAiAfM3aje5ETkgNwTR/YaeX1LDqUCyBqBmrws+H6HLaI+A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":413230},"main":"./dist/index.js","types":"./dist/index.d.ts","shasum":"4dfcc2dd5984f139500f04130322b59ad7a6ddd2","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./profile":{"types":"./dist/profile.d.ts","default":"./dist/profile.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --root ./src --target=bun && bun build src/profile.ts --outdir dist --target=browser && tsc --emitDeclarationOnly --project tsconfig.json && absolute-manifest emit","release":"bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-mVv2SyLF60JuYyFCMHDfr8b7nqZJkw3/HzR3ucsfRpGaja7SkRBt9MTZpYHUHO5qk3TYlWSgUmpxpoaTTbCM9w==","absolutejs":{"manifestContract":1},"repository":{"url":"https://github.com/absolutejs/enrich.git","type":"git"},"_npmVersion":"10.8.3","description":"In-house B2B enrichment — MX/SMTP/catch-all email verification, decision-maker email finding, and keyless public-profile enrichment (avatars, logos, social handles), so you don't pay PDL/Apollo/Clearbit per lookup.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/enrich_0.1.2_1783964750211_0.21381681541952813","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@absolutejs/enrich","version":"0.1.3","author":"Alex Kahn","license":"BSL-1.1","_id":"@absolutejs/enrich@0.1.3","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/enrich","bugs":{"url":"https://github.com/absolutejs/enrich/issues"},"dist":{"shasum":"c10e12ee5e64b301ccab64abecfbae2777549a7e","tarball":"https://registry.npmjs.org/@absolutejs/enrich/-/enrich-0.1.3.tgz","fileCount":17,"integrity":"sha512-7N4K4wQs/lmw7ZimdEXEJT+smLtXgRG+y45JEOwUmcv9MZEGPj6JFMa00xcr6ylHLAQ3WQwWLBQYjcuGgilwRw==","signatures":[{"sig":"MEUCIHBj6+Wfj5M9zf54mWqmyzJ0JymVSEKZlv9I3oRSMDKoAiEAvlq7IdqRkvAq7E0nn8RatCs7Wrw6a+d8ENeexFCa56U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":417612},"main":"./dist/index.js","types":"./dist/index.d.ts","shasum":"c10e12ee5e64b301ccab64abecfbae2777549a7e","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./profile":{"types":"./dist/profile.d.ts","default":"./dist/profile.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --root ./src --target=bun && bun build src/profile.ts --outdir dist --target=browser && tsc --emitDeclarationOnly --project tsconfig.json && absolute-manifest emit","release":"bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-7N4K4wQs/lmw7ZimdEXEJT+smLtXgRG+y45JEOwUmcv9MZEGPj6JFMa00xcr6ylHLAQ3WQwWLBQYjcuGgilwRw==","absolutejs":{"manifestContract":2},"repository":{"url":"https://github.com/absolutejs/enrich.git","type":"git"},"_npmVersion":"10.8.3","description":"In-house B2B enrichment — MX/SMTP/catch-all email verification, decision-maker email finding, and keyless public-profile enrichment (avatars, logos, social handles), so you don't pay PDL/Apollo/Clearbit per lookup.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/enrich_0.1.3_1784846200329_0.914071449620601","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"author":"Alex Kahn","description":"In-house B2B enrichment — MX/SMTP/catch-all email verification, decision-maker email finding, and keyless public-profile enrichment (avatars, logos, social handles), so you don't pay PDL/Apollo/Clearbit per lookup.","devDependencies":{"@types/bun":"latest","typescript":"5.8.3"},"license":"BSL-1.1","publishConfig":{"access":"public"},"main":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./profile":{"types":"./dist/profile.d.ts","default":"./dist/profile.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"name":"@absolutejs/enrich","repository":{"type":"git","url":"https://github.com/absolutejs/enrich.git"},"homepage":"https://github.com/absolutejs/enrich","bugs":{"url":"https://github.com/absolutejs/enrich/issues"},"scripts":{"build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --root ./src --target=bun && bun build src/profile.ts --outdir dist --target=browser && tsc --emitDeclarationOnly --project tsconfig.json && absolute-manifest emit","release":"bun run build && bun publish","test":"bun test","typecheck":"tsc --noEmit"},"types":"./dist/index.d.ts","version":"0.1.4","absolutejs":{"manifestContract":2},"dependencies":{"@absolutejs/manifest":"^0.4.0","@sinclair/typebox":"^0.34.0"},"_id":"@absolutejs/enrich@0.1.4","_integrity":"sha512-hmLyuIaXb5ItmttU38kClbw+9yJkwn2NpdxtG8eeo2LRouXc9yGllyhMlea3/xkxs4OoBhCVpDpaNVNK9xJRxA==","_nodeVersion":"24.3.0","_npmVersion":"10.8.3","shasum":"ccb3ef24bade94ed3bbf8f2f5716423f6a9316d9","dist":{"integrity":"sha512-hmLyuIaXb5ItmttU38kClbw+9yJkwn2NpdxtG8eeo2LRouXc9yGllyhMlea3/xkxs4OoBhCVpDpaNVNK9xJRxA==","shasum":"ccb3ef24bade94ed3bbf8f2f5716423f6a9316d9","tarball":"https://registry.npmjs.org/@absolutejs/enrich/-/enrich-0.1.4.tgz","fileCount":18,"unpackedSize":418867,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCUns3opLfGuUJYQ2bbynWYNBA1V/iHm0YNgwclb8KazgIgRJFVPPFT02RGJoEgFIuGYSQ7fySBJ2YUyURD5XEHB+o="}]},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"directories":{},"maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/enrich_0.1.4_1785454359885_0.28871320532219236"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-05T23:20:12.164Z","modified":"2026-07-30T23:32:40.196Z","0.0.1":"2026-06-05T23:20:12.512Z","0.0.2":"2026-06-06T00:04:32.159Z","0.0.3":"2026-06-06T00:08:23.754Z","0.0.4":"2026-06-06T00:41:18.822Z","0.0.5":"2026-06-11T09:45:15.400Z","0.1.0":"2026-06-11T09:58:23.815Z","0.1.1":"2026-06-11T10:38:20.791Z","0.1.2":"2026-07-13T17:45:50.499Z","0.1.3":"2026-07-23T22:36:40.479Z","0.1.4":"2026-07-30T23:32:40.023Z"},"bugs":{"url":"https://github.com/absolutejs/enrich/issues"},"author":"Alex Kahn","license":"BSL-1.1","homepage":"https://github.com/absolutejs/enrich","repository":{"type":"git","url":"https://github.com/absolutejs/enrich.git"},"description":"In-house B2B enrichment — MX/SMTP/catch-all email verification, decision-maker email finding, and keyless public-profile enrichment (avatars, logos, social handles), so you don't pay PDL/Apollo/Clearbit per lookup.","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"readme":"# @absolutejs/enrich\n\nIn-house B2B email **verification** and **discovery** — the engine commercial\nenrichment APIs (PDL, Apollo, Hunter, Clearbit) charge per lookup. You bring the\ninputs (a name + a company domain); this resolves and verifies the email.\n\n> Licensed under **BSL 1.1** (converts to Apache 2.0 on 2030-06-06). Use it to\n> build your own products; you may not host it as a competing enrichment SaaS.\n> See `LICENSE`.\n\n## What it does\n\n- **`findEmail({ firstName, lastName | fullName, domain }, { verifier?, knownPattern? })`**\n  — generates the corporate patterns (`first.last`, `flast`, …), then:\n  1. a **`knownPattern`** (one you've already learned for this domain) is applied\n     directly — no probing,\n  2. with a **`verifier`** it confirms candidates best-first and returns the one\n     that's deliverable,\n  3. with neither it returns the top pattern at MX-only confidence.\n  The result's **`template`** (e.g. `\"first.last\"`) is the learnable unit — store\n  it per domain and pass it back as `knownPattern` to skip probing for everyone\n  else there.\n- **`verifyEmail(email)`** — the full local pipeline: syntax → disposable/free/role\n  → MX → (optional, opt-in) catch-all + SMTP probe → 0–100 confidence + status.\n\n```ts\nimport { findEmail } from \"@absolutejs/enrich\";\n\n// Discovery-only — no SMTP, no third-party call:\nawait findEmail({ fullName: \"Jane Doe\", domain: \"acme.com\" });\n// → { email: \"jane.doe@acme.com\", status: \"unknown\", confidence: 45, template: \"first.last\" }\n\n// With a verifier you bring (ZeroBounce / Hunter / your ESP):\nawait findEmail({ fullName: \"Jane Doe\", domain: \"acme.com\" }, { verifier });\n// → { email: \"jane.doe@acme.com\", status: \"deliverable\", confidence: 95, template: \"first.last\" }\n```\n\n## The verifier is pluggable — and that's the point\n\nThe \"confirm\" step is an interface, not a baked-in SMTP probe:\n\n```ts\ntype EmailVerifier = (email: string) => Promise<{ status; confidence; catchAll? }>;\n```\n\nBring a thin wrapper over a **specialist** (ZeroBounce, NeverBounce, Hunter's\nverifier, or your ESP's validation). Why not just probe SMTP ourselves? Because\n`RCPT TO` probing is mechanically a **directory-harvest attack** — mail servers\ndetect it and **blacklist the probing IP**, which then tanks *your own* sending\nreputation. The specialists run it from warmed, rotated IP pools built to absorb\nthat. Let them carry the risk for pennies a check; keep your domains clean.\n\n## Confidence scale\n\n| score | meaning |\n|------|---------|\n| 95 | SMTP-confirmed on a non-catch-all domain |\n| 60 | catch-all domain — the mailbox can't be individually confirmed |\n| 45 | MX exists, SMTP inconclusive (port 25 blocked, greylisted, or `skipSmtp`) |\n| 0  | invalid syntax / no MX / SMTP-rejected / disposable |\n\n## The built-in SMTP verifier (`smtpVerifier`) is opt-in — and carries warnings\n\nThe package ships `smtpVerifier()` so you *can* self-host the confirm step, but\nit's deliberately not the default:\n\n- It needs **outbound port 25**, which AWS/GCP/DigitalOcean **block by default**.\n- Even with egress, probing **risks blacklisting your IP** (see above) and the\n  biggest mail hosts (Gmail, Microsoft) **return ambiguous answers to defeat\n  harvesters** — so its accuracy is degraded where it matters most.\n\nOnly reach for it from a host/relay you've dedicated to verification and whose\nreputation you're willing to spend. For everyone else: `findEmail` discovers the\npattern (free, zero abuse signature), a specialist verifier confirms it, and you\n**store the confirmed `template` per domain** — over time that learned dataset,\nbuilt from real outcomes rather than probing, is the moat the paid providers\nactually have.\n\n## Public-profile enrichment (`@absolutejs/enrich/profile`)\n\nKeyless avatar/logo derivation from identifiers you already have — no per-lookup\nAPI. Browser-safe subpath (no `node:` imports), so the same module runs in your\nbackend and your frontend bundle:\n\n- **`personAvatarCandidates({ imageUrl?, email?, twitterUrl?, instagramUrl?, githubUrl? })`**\n  — every avatar URL derivable from the person's identifiers, best-first:\n  a photo you sourced yourself, then email (Gravatar et al. via\n  [unavatar.io](https://unavatar.io)), then X / Instagram / GitHub handles.\n  Use it to offer a *choice* of avatars.\n- **`personAvatarUrl(person)`** — the first (most trusted) candidate, or `null`.\n  unavatar URLs carry `fallback=false`, so they 404 when nothing is found and an\n  `<img onerror>` can drop to initials. Loading from the client keeps the\n  identifier off your server's egress.\n- **`validatedAvatarUrl(person, timeoutMs?)`** — server-side: the first candidate\n  that HEAD-validates as a real image, for when you persist the result.\n- **`validateImageUrl(url, timeoutMs?)`** — HEAD-check any image URL.\n- **`companyLogoUrl(website, sizePx?)`** — company logo via Google's keyless\n  favicon service (Clearbit's logo API is sunset; DuckDuckGo has gaps).\n- **`socialUrlsFromLinks(links)`** — sort a loose `{ url, platform? }[]` link\n  list (an LLM's \"notable links\", a scraped profile) into canonical per-platform\n  URL fields, matching the declared platform first and the URL host second.\n- **`socialHandle(url, hosts)`** — extract a clean handle from a profile URL.\n","readmeFilename":"README.md"}