@visulima/disposable-email-domains 1.0.0-alpha.9 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,304 @@
1
+ ## @visulima/disposable-email-domains [1.0.1](https://github.com/visulima/visulima/compare/%40visulima%2Fdisposable-email-domains%401.0.0...%40visulima%2Fdisposable-email-domains%401.0.1) (2026-07-15)
2
+
3
+ ## @visulima/disposable-email-domains 1.0.0 (2026-07-03)
4
+
5
+ ### ⚠ BREAKING CHANGES
6
+
7
+ * change min node version to 22.13
8
+
9
+ ### Features
10
+
11
+ * **disposable-email-domains:** add castle disposable list ([82fb44f](https://github.com/visulima/visulima/commit/82fb44f9ebc8c6b7031135a2e9c7c66714776ede))
12
+ * **disposable-email-domains:** add edge support, allowlist, bare-domain api to disposable check ([a3d1d95](https://github.com/visulima/visulima/commit/a3d1d9551cf857d0c11d245e7126cde73a302fd7))
13
+ * **web:** auto-generate packages page from workspace metadata ([623e520](https://github.com/visulima/visulima/commit/623e5207693a7fe720f5f2f179593a3654c880e3))
14
+
15
+ ### Bug Fixes
16
+
17
+ * add new package image, fixed readme rendering on npm, fixed building of packages ([b790ba2](https://github.com/visulima/visulima/commit/b790ba253ea07fef83528fd822a678facf021b5f))
18
+ * **disposable-email-domains:** 1 bug fix ([184bf0b](https://github.com/visulima/visulima/commit/184bf0b96713ec7f8f90e37bacf7ca69e9711f33))
19
+ * **disposable-email-domains:** add missing .js extensions to ESM imports ([c9a14d5](https://github.com/visulima/visulima/commit/c9a14d557f88201c95e9894212b47723b699d6f2))
20
+ * **disposable-email-domains:** emit `export =` for /domains types ([b80fd58](https://github.com/visulima/visulima/commit/b80fd587995e376f9cb6d872e387b5fc2d96e6d1))
21
+ * **disposable-email-domains:** filter undefined rows in contributing sources table ([75597ec](https://github.com/visulima/visulima/commit/75597ec3bc4197e5dc1d019b793af1412cc8e93b))
22
+ * **disposable-email-domains:** resolve eslint and formatting issues ([f419276](https://github.com/visulima/visulima/commit/f419276bc4f6bdc01fa35dfb035c438e343be7e2))
23
+ * **disposable-email-domains:** resolve eslint errors ([294850a](https://github.com/visulima/visulima/commit/294850a337b35e0e60d499a20a92b890c2fa762f))
24
+ * **disposable-email-domains:** update package files ([be60835](https://github.com/visulima/visulima/commit/be60835dc91c269bc7d189f9e049ef87270a2eff))
25
+ * **disposable-email-domains:** update packem to 2.0.0-alpha.54 ([3ac3346](https://github.com/visulima/visulima/commit/3ac3346a0f70b6856323e83d488770a49fbb00b2))
26
+ * **disposable-email-domains:** update README ([af4f517](https://github.com/visulima/visulima/commit/af4f51762a6ea74e7f9c6c368d112ba325516e45))
27
+ * **disposable-email-domains:** use workspace:* for internal [@visulima](https://github.com/visulima) deps ([790a46e](https://github.com/visulima/visulima/commit/790a46e7319953e5e2b7f65441055a6751706416))
28
+ * **email:** resolve eslint issues and format code ([8fd689c](https://github.com/visulima/visulima/commit/8fd689c12e9c21f7222597bbf99a6fe431b5f0d4))
29
+ * **jsdoc-open-api:** combine name and description for path-based YAML parsing ([68e7d23](https://github.com/visulima/visulima/commit/68e7d2395ab97de3221892afe03da27688df7569))
30
+ * Remove JSR configuration generation script and generated jsr.json files ([#616](https://github.com/visulima/visulima/issues/616)) ([533744b](https://github.com/visulima/visulima/commit/533744b103b74896941db5b727173e617a27a63b))
31
+ * **storage-client:** percent-encode user fields in defaultFingerprint ([7c78a0f](https://github.com/visulima/visulima/commit/7c78a0f9512e2a673b941d80839e9f1e86b7b5d0))
32
+ * update email list ([a4e175e](https://github.com/visulima/visulima/commit/a4e175efcbc6e2e56362844c704d0c558885c9d1))
33
+ * update Node.js engine version requirement to >=22.13 in multiple package.json files for improved compatibility ([b828e9a](https://github.com/visulima/visulima/commit/b828e9aeaebfc798eecddccd90e6ec7560c6d36a))
34
+ * update package OG images across multiple packages ([f08e4dd](https://github.com/visulima/visulima/commit/f08e4dd2b105ccb29c8412020a9c2be36d6c1e9e))
35
+ * update package.json description and keywords ([#578](https://github.com/visulima/visulima/issues/578)) ([154709c](https://github.com/visulima/visulima/commit/154709c05e71d1ffd3e360b27e12febd817912f0))
36
+ * update README with new performance metrics and last updated timestamp ([01709e2](https://github.com/visulima/visulima/commit/01709e206df46d7cfd68c7721e3692d20838f37b))
37
+ * updated domain list ([f97866b](https://github.com/visulima/visulima/commit/f97866b9649f6ccae86accf4ab1c56e73817c882))
38
+ * **web:** improve build setup with incremental stats caching and prod install ([fe33e75](https://github.com/visulima/visulima/commit/fe33e75827586779b4b3a0c6d57b39f889ee6207))
39
+
40
+ ### Documentation
41
+
42
+ * **boxen,command-line-args,tabular,is-ansi-color-supported,disposable-email-domains:** add comprehensive Fumadocs documentation ([95e0578](https://github.com/visulima/visulima/commit/95e057833978dfeeb9f2768269e36862572539db))
43
+ * **disposable-email-domains:** refresh benchmark timings in README ([5ea04f7](https://github.com/visulima/visulima/commit/5ea04f75479bffe2bceee8d0e9f72285734dcbbf))
44
+ * **disposable-email-domains:** update contributing sources table and timestamp ([2919ed0](https://github.com/visulima/visulima/commit/2919ed07a478695e452441a845f7de36a5d87280))
45
+ * **disposable-email-domains:** update domain counts and performance stats ([0e5021b](https://github.com/visulima/visulima/commit/0e5021b561e5b7592ae3ca7a6a9af94ecc6816f0))
46
+ * **disposable-email-domains:** update domain statistics ([0ce9ced](https://github.com/visulima/visulima/commit/0ce9ced5c7b4af9ca0a2d508a13b74e353633ea9))
47
+ * prettier-format agent instructions ([71b6414](https://github.com/visulima/visulima/commit/71b6414528780ac82c4e0bb25b5f4f11faba5549))
48
+ * regenerate package tables ([287ded9](https://github.com/visulima/visulima/commit/287ded982f6d4bcbc3401020732302ebde170933))
49
+
50
+ ### Styles
51
+
52
+ * cs fixes ([2a960bb](https://github.com/visulima/visulima/commit/2a960bb1772c9dc70080e2d75d3a0d827034e294))
53
+
54
+ ### Miscellaneous Chores
55
+
56
+ * add fallow code-intelligence across all packages ([a3b4821](https://github.com/visulima/visulima/commit/a3b48215002e86fed20f2973038b5d4a0aa1ce04))
57
+ * apply linting and formatting fixes across packages ([5d150a5](https://github.com/visulima/visulima/commit/5d150a578f9ce861c791843c683deeb849b774a9))
58
+ * bump engines.node to ^22.14.0 || >=24.10.0 ([c3d0931](https://github.com/visulima/visulima/commit/c3d0931d1504e4f21ebf50ea680cfa7ce4ba15ce))
59
+ * **ci-stability:** green CI across vis, native, lint, tests, attw ([#651](https://github.com/visulima/visulima/issues/651)) ([d4eb684](https://github.com/visulima/visulima/commit/d4eb684b5f75c818c9251048c605a0ed54a268e3))
60
+ * **disposable-email-domains:** add tsconfig.eslint.json for type-aware linting ([a9b6093](https://github.com/visulima/visulima/commit/a9b60936b123bef3362e8ea3b51b4960fbd03a19))
61
+ * **disposable-email-domains:** apply auto-fix formatting ([544041c](https://github.com/visulima/visulima/commit/544041cb47668bf64f8bfefdf7ae9160deb3908f))
62
+ * **disposable-email-domains:** apply formatter sweep to readme ([c563348](https://github.com/visulima/visulima/commit/c563348f7ab526be8b8cc87a036d16dc4c50224d))
63
+ * **disposable-email-domains:** apply formatting ([2670c08](https://github.com/visulima/visulima/commit/2670c0843d05d2b0d667690cf0cc2508dacdff83))
64
+ * **disposable-email-domains:** apply pending changes ([18080ea](https://github.com/visulima/visulima/commit/18080ea18ca93b3a455543a84fd1baa618009473))
65
+ * **disposable-email-domains:** apply prettier formatting ([dca941a](https://github.com/visulima/visulima/commit/dca941aebee89c3d721f79d6ca80760b633ea3f1))
66
+ * **disposable-email-domains:** apply prettier formatting ([967a2c7](https://github.com/visulima/visulima/commit/967a2c75ff25df2840c8257072dc31e7757babcf))
67
+ * **disposable-email-domains:** drop time from last-updated stamp ([1257695](https://github.com/visulima/visulima/commit/1257695408d1527f551ce6aa1ad0cff22e162447))
68
+ * **disposable-email-domains:** enforce curly braces and apply lint fixes ([76010b3](https://github.com/visulima/visulima/commit/76010b362d980fa9e324f592cda5d6314197bc67))
69
+ * **disposable-email-domains:** housekeeping cleanup ([795d338](https://github.com/visulima/visulima/commit/795d338c7572f9ba93661bf7e8cfc0cf2f8dd9e7))
70
+ * **disposable-email-domains:** migrate .prettierrc.cjs to prettier.config.js ([c98c927](https://github.com/visulima/visulima/commit/c98c927b87b7de95cd2c0f282003afd1fcc2130a))
71
+ * **disposable-email-domains:** migrate deps to pnpm catalogs ([df9093b](https://github.com/visulima/visulima/commit/df9093b6c1b2af6a0ac8f113cbbf740cb2b1cea1))
72
+ * **disposable-email-domains:** update dependencies ([76c89aa](https://github.com/visulima/visulima/commit/76c89aa5864af118a4f956ea18b77266f40d72b1))
73
+ * **disposable-email-domains:** update dependencies ([0780035](https://github.com/visulima/visulima/commit/0780035155ddd6cf875da166880b2e10734f63e4))
74
+ * **disposable-email-domains:** update domain stats in README ([8ed76c3](https://github.com/visulima/visulima/commit/8ed76c3108d0bdafb21c9ff538122c95e0145b2d))
75
+ * **disposable-email-domains:** update README with latest domain stats ([be1c5b4](https://github.com/visulima/visulima/commit/be1c5b44544fe384162885fdfcb8d3d0d9d8fa95))
76
+ * **disposable-email-domains:** update README with latest domain stats ([68754ac](https://github.com/visulima/visulima/commit/68754ac486089b715a6b786f937fceff49db3e31))
77
+ * **disposable-email-domains:** upgrade packem to 2.0.0-alpha.76 ([99d9f42](https://github.com/visulima/visulima/commit/99d9f42397b4fc1c647d86eadaa2387c97ca1086))
78
+ * **email:** remove empty dependency objects from package.json ([0737b35](https://github.com/visulima/visulima/commit/0737b353aabceefe962dab9971ee0c09e9f055fe))
79
+ * **email:** update dependencies ([0250461](https://github.com/visulima/visulima/commit/02504619e8e7ec6ef8e05f323674705656cde7de))
80
+ * fixed project.json names and schema path ([964722f](https://github.com/visulima/visulima/commit/964722f691db205c7edb9aa6db29e849a647500b))
81
+ * moved all packages into groups ([0615e9d](https://github.com/visulima/visulima/commit/0615e9d14a8a886e11da529ce150cf31ca973c10))
82
+ * re-sort workspace package.json files via vis sort-package-json ([f625696](https://github.com/visulima/visulima/commit/f625696cfac974325774b3243e1a83c3d23acbd7))
83
+ * refresh generated license bundles and disposable-domain stats ([a389f38](https://github.com/visulima/visulima/commit/a389f38484788aafa8ba9b698e2dd5805a982d98))
84
+ * **release:** @visulima/disposable-email-domains@1.0.0-alpha.10 [skip ci]\n\n## @visulima/disposable-email-domains [1.0.0-alpha.10](https://github.com/visulima/visulima/compare/@visulima/disposable-email-domains@1.0.0-alpha.9...@visulima/disposable-email-domains@1.0.0-alpha.10) (2026-03-26) ([163d754](https://github.com/visulima/visulima/commit/163d754afee80a68277b30558fb89e6cb7229f6a))
85
+ * **release:** @visulima/disposable-email-domains@1.0.0-alpha.11 [skip ci]\n\n## @visulima/disposable-email-domains [1.0.0-alpha.11](https://github.com/visulima/visulima/compare/@visulima/disposable-email-domains@1.0.0-alpha.10...@visulima/disposable-email-domains@1.0.0-alpha.11) (2026-03-26) ([fa334cf](https://github.com/visulima/visulima/commit/fa334cfe1dd04173456a4c1b8786bbf137ac90cc))
86
+ * **release:** @visulima/disposable-email-domains@1.0.0-alpha.12 [skip ci]\n\n## @visulima/disposable-email-domains [1.0.0-alpha.12](https://github.com/visulima/visulima/compare/@visulima/disposable-email-domains@1.0.0-alpha.11...@visulima/disposable-email-domains@1.0.0-alpha.12) (2026-04-08) ([c811f34](https://github.com/visulima/visulima/commit/c811f34baaa18ed2bf75e86537a425ebbeb2fbfc))
87
+ * **release:** @visulima/disposable-email-domains@1.0.0-alpha.13 [skip ci]\n\n## @visulima/disposable-email-domains [1.0.0-alpha.13](https://github.com/visulima/visulima/compare/@visulima/disposable-email-domains@1.0.0-alpha.12...@visulima/disposable-email-domains@1.0.0-alpha.13) (2026-04-22) ([3b55e0c](https://github.com/visulima/visulima/commit/3b55e0cb39c63eaa517081e2ee055b4870df146c))
88
+ * **release:** @visulima/disposable-email-domains@1.0.0-alpha.14 [skip ci]\n\n## @visulima/disposable-email-domains [1.0.0-alpha.14](https://github.com/visulima/visulima/compare/@visulima/disposable-email-domains@1.0.0-alpha.13...@visulima/disposable-email-domains@1.0.0-alpha.14) (2026-05-14) ([e2ed690](https://github.com/visulima/visulima/commit/e2ed6906aef0696afcbe14c5ecea94bac90f27a9))
89
+ * **release:** @visulima/disposable-email-domains@1.0.0-alpha.15 [skip ci]\n\n## @visulima/disposable-email-domains [1.0.0-alpha.15](https://github.com/visulima/visulima/compare/@visulima/disposable-email-domains@1.0.0-alpha.14...@visulima/disposable-email-domains@1.0.0-alpha.15) (2026-05-27) ([79d7457](https://github.com/visulima/visulima/commit/79d74574e3be268f568d4e3ec68f7f33f0eb0b53))
90
+ * **release:** @visulima/disposable-email-domains@1.0.0-alpha.16 [skip ci]\n\n## @visulima/disposable-email-domains [1.0.0-alpha.16](https://github.com/visulima/visulima/compare/@visulima/disposable-email-domains@1.0.0-alpha.15...@visulima/disposable-email-domains@1.0.0-alpha.16) (2026-06-04) ([086ddb2](https://github.com/visulima/visulima/commit/086ddb204b714b30a9b54b18c5759b2f0f5c237f))
91
+ * **release:** @visulima/disposable-email-domains@1.0.0-alpha.17 [skip ci]\n\n## @visulima/disposable-email-domains [1.0.0-alpha.17](https://github.com/visulima/visulima/compare/@visulima/disposable-email-domains@1.0.0-alpha.16...@visulima/disposable-email-domains@1.0.0-alpha.17) (2026-06-13) ([f8b30df](https://github.com/visulima/visulima/commit/f8b30dfd76a95d005ae6378d301c7dc535eb2005))
92
+ * **release:** @visulima/disposable-email-domains@1.0.0-alpha.18 [skip ci]\n\n## @visulima/disposable-email-domains [1.0.0-alpha.18](https://github.com/visulima/visulima/compare/@visulima/disposable-email-domains@1.0.0-alpha.17...@visulima/disposable-email-domains@1.0.0-alpha.18) (2026-06-30) ([9991e23](https://github.com/visulima/visulima/commit/9991e235720dbbf3e555472c50fc052067249372))
93
+ * **release:** @visulima/disposable-email-domains@1.0.0-alpha.2 [skip ci]\n\n## @visulima/disposable-email-domains [1.0.0-alpha.2](https://github.com/visulima/visulima/compare/@visulima/disposable-email-domains@1.0.0-alpha.1...@visulima/disposable-email-domains@1.0.0-alpha.2) (2025-12-07) ([1360430](https://github.com/visulima/visulima/commit/1360430deb72261b7afb14df52d74dc0bc9a8c96))
94
+ * **release:** @visulima/disposable-email-domains@1.0.0-alpha.3 [skip ci]\n\n## @visulima/disposable-email-domains [1.0.0-alpha.3](https://github.com/visulima/visulima/compare/@visulima/disposable-email-domains@1.0.0-alpha.2...@visulima/disposable-email-domains@1.0.0-alpha.3) (2025-12-08) ([aadd1c1](https://github.com/visulima/visulima/commit/aadd1c1e086ff1a4d4266bf1d5f6c064397edf14))
95
+ * **release:** @visulima/disposable-email-domains@1.0.0-alpha.4 [skip ci]\n\n## @visulima/disposable-email-domains [1.0.0-alpha.4](https://github.com/visulima/visulima/compare/@visulima/disposable-email-domains@1.0.0-alpha.3...@visulima/disposable-email-domains@1.0.0-alpha.4) (2025-12-10) ([4a64602](https://github.com/visulima/visulima/commit/4a64602937b630767ce70aeaaba5b6ec14cbc250))
96
+ * **release:** @visulima/disposable-email-domains@1.0.0-alpha.5 [skip ci]\n\n## @visulima/disposable-email-domains [1.0.0-alpha.5](https://github.com/visulima/visulima/compare/@visulima/disposable-email-domains@1.0.0-alpha.4...@visulima/disposable-email-domains@1.0.0-alpha.5) (2025-12-11) ([e7fabca](https://github.com/visulima/visulima/commit/e7fabcaf3c524a609b8f0ef1bb5540a9935e86a4))
97
+ * **release:** @visulima/disposable-email-domains@1.0.0-alpha.6 [skip ci]\n\n## @visulima/disposable-email-domains [1.0.0-alpha.6](https://github.com/visulima/visulima/compare/@visulima/disposable-email-domains@1.0.0-alpha.5...@visulima/disposable-email-domains@1.0.0-alpha.6) (2025-12-13) ([c15f192](https://github.com/visulima/visulima/commit/c15f192380fc0aa362e073a8b9806f6f03b8afd8))
98
+ * **release:** @visulima/disposable-email-domains@1.0.0-alpha.7 [skip ci]\n\n## @visulima/disposable-email-domains [1.0.0-alpha.7](https://github.com/visulima/visulima/compare/@visulima/disposable-email-domains@1.0.0-alpha.6...@visulima/disposable-email-domains@1.0.0-alpha.7) (2025-12-27) ([fa551bb](https://github.com/visulima/visulima/commit/fa551bbcfe6d7c9a2dfcc658d5573d46431bdf23))
99
+ * **release:** @visulima/disposable-email-domains@1.0.0-alpha.8 [skip ci]\n\n## @visulima/disposable-email-domains [1.0.0-alpha.8](https://github.com/visulima/visulima/compare/@visulima/disposable-email-domains@1.0.0-alpha.7...@visulima/disposable-email-domains@1.0.0-alpha.8) (2026-01-17) ([6136502](https://github.com/visulima/visulima/commit/6136502bc6c6adfe2ab09cd95877cb9aa0c75e8c))
100
+ * **release:** @visulima/disposable-email-domains@1.0.0-alpha.9 [skip ci]\n\n## @visulima/disposable-email-domains [1.0.0-alpha.9](https://github.com/visulima/visulima/compare/@visulima/disposable-email-domains@1.0.0-alpha.8...@visulima/disposable-email-domains@1.0.0-alpha.9) (2026-03-06) ([b93607f](https://github.com/visulima/visulima/commit/b93607fe18013bedf6b7c3696daf5ddfd7dc6540))
101
+ * **repo:** apply eslint --fix and prettier --fix across packages ([#650](https://github.com/visulima/visulima/issues/650)) ([2e26a84](https://github.com/visulima/visulima/commit/2e26a84774f218f21345e9a8ecd68236b6542743)), closes [#620](https://github.com/visulima/visulima/issues/620)
102
+ * **repo:** sort package.json keys across all packages ([e1fd9ab](https://github.com/visulima/visulima/commit/e1fd9ab467ef96a98c777da1572ff6a50fcf7e71))
103
+ * sorted package.json ([b47c545](https://github.com/visulima/visulima/commit/b47c545591600fdab17d5cd3a3fbc68b61e199da))
104
+ * update @anolilab/semantic-release-pnpm and @anolilab/semantic-release-preset to versions 3.2.2 and 12.1.2 across multiple package.json files for improved compatibility ([3921626](https://github.com/visulima/visulima/commit/3921626141fe5da398749bf0ba675f1596f18afb))
105
+ * update dependencies across multiple packages to improve compatibility and performance, including upgrading `@anolilab/semantic-release-pnpm` and `@anolilab/semantic-release-preset` to versions 3.2.0 and 12.1.0 respectively, and updating `react`, `react-dom`, and `next` versions to 19.2.1 and 16.0.7 in various package.json files ([aee8fcd](https://github.com/visulima/visulima/commit/aee8fcd796ae9b8d055903260e7150996ea9f53d))
106
+ * update lock file maintenance ([d83e716](https://github.com/visulima/visulima/commit/d83e71697b75d24704185b66bb521a934d2db02d))
107
+ * update lockfile and disposable-email-domains README ([acf9849](https://github.com/visulima/visulima/commit/acf984987ca5037586337e571d2fe0415178d6f0))
108
+ * visulima website ([#591](https://github.com/visulima/visulima/issues/591)) ([59ab2e2](https://github.com/visulima/visulima/commit/59ab2e2befb03e51cd2088956f83d9b87de6d033))
109
+ * year update ([47f4105](https://github.com/visulima/visulima/commit/47f410596ce7190cfea36a073db32e0cec50bbcd))
110
+
111
+ ### Tests
112
+
113
+ * **disposable-email-domains:** cover wildcard matching and lazy domains.json loader ([c626a16](https://github.com/visulima/visulima/commit/c626a16d464a581ca27c1ba86612bc407bf83703))
114
+ * **repo:** add dist runtime + types integration tests ([32ee300](https://github.com/visulima/visulima/commit/32ee300b7184117a0ddf9f9d390f75f8932d5ed9))
115
+
116
+ ### Build System
117
+
118
+ * **deps:** update disposable-email-domains dependencies ([77c2d3b](https://github.com/visulima/visulima/commit/77c2d3b862ab792a574c95de25effaf58d739c72))
119
+
120
+ ### Continuous Integration
121
+
122
+ * **fallow:** make fallow:health advisory (--report-only) ([d57148e](https://github.com/visulima/visulima/commit/d57148ea0e3556b4c24d8d336b9fa14987f5dc7d))
123
+ * **lint:** raise eslint job timeout and cache slow per-package eslint runs ([#717](https://github.com/visulima/visulima/issues/717)) ([c93878d](https://github.com/visulima/visulima/commit/c93878dbfa1888cc834704448ae6eefd3098597e)), closes [#713](https://github.com/visulima/visulima/issues/713)
124
+
125
+
126
+ ### Dependencies
127
+
128
+ * **@visulima/tabular:** upgraded to 4.0.0
129
+
130
+ ## @visulima/disposable-email-domains [1.0.0-alpha.18](https://github.com/visulima/visulima/compare/@visulima/disposable-email-domains@1.0.0-alpha.17...@visulima/disposable-email-domains@1.0.0-alpha.18) (2026-06-30)
131
+
132
+ ### Bug Fixes
133
+
134
+ * **disposable-email-domains:** emit `export =` for /domains types ([b80fd58](https://github.com/visulima/visulima/commit/b80fd587995e376f9cb6d872e387b5fc2d96e6d1))
135
+
136
+ ### Styles
137
+
138
+ * cs fixes ([2a960bb](https://github.com/visulima/visulima/commit/2a960bb1772c9dc70080e2d75d3a0d827034e294))
139
+
140
+ ### Miscellaneous Chores
141
+
142
+ * add fallow code-intelligence across all packages ([a3b4821](https://github.com/visulima/visulima/commit/a3b48215002e86fed20f2973038b5d4a0aa1ce04))
143
+
144
+ ### Continuous Integration
145
+
146
+ * **fallow:** make fallow:health advisory (--report-only) ([d57148e](https://github.com/visulima/visulima/commit/d57148ea0e3556b4c24d8d336b9fa14987f5dc7d))
147
+ * **lint:** raise eslint job timeout and cache slow per-package eslint runs ([#717](https://github.com/visulima/visulima/issues/717)) ([c93878d](https://github.com/visulima/visulima/commit/c93878dbfa1888cc834704448ae6eefd3098597e)), closes [#713](https://github.com/visulima/visulima/issues/713)
148
+
149
+ ## @visulima/disposable-email-domains [1.0.0-alpha.17](https://github.com/visulima/visulima/compare/@visulima/disposable-email-domains@1.0.0-alpha.16...@visulima/disposable-email-domains@1.0.0-alpha.17) (2026-06-13)
150
+
151
+ ### Features
152
+
153
+ * **disposable-email-domains:** add edge support, allowlist, bare-domain api to disposable check ([a3d1d95](https://github.com/visulima/visulima/commit/a3d1d9551cf857d0c11d245e7126cde73a302fd7))
154
+
155
+ ### Documentation
156
+
157
+ * **disposable-email-domains:** refresh benchmark timings in README ([5ea04f7](https://github.com/visulima/visulima/commit/5ea04f75479bffe2bceee8d0e9f72285734dcbbf))
158
+ * regenerate package tables ([287ded9](https://github.com/visulima/visulima/commit/287ded982f6d4bcbc3401020732302ebde170933))
159
+
160
+ ### Build System
161
+
162
+ * **deps:** update disposable-email-domains dependencies ([77c2d3b](https://github.com/visulima/visulima/commit/77c2d3b862ab792a574c95de25effaf58d739c72))
163
+
164
+
165
+ ### Dependencies
166
+
167
+ * **@visulima/tabular:** upgraded to 4.0.0-alpha.14
168
+
169
+ ## @visulima/disposable-email-domains [1.0.0-alpha.16](https://github.com/visulima/visulima/compare/@visulima/disposable-email-domains@1.0.0-alpha.15...@visulima/disposable-email-domains@1.0.0-alpha.16) (2026-06-04)
170
+
171
+ ### Bug Fixes
172
+
173
+ * **disposable-email-domains:** 1 bug fix ([184bf0b](https://github.com/visulima/visulima/commit/184bf0b96713ec7f8f90e37bacf7ca69e9711f33))
174
+
175
+ ### Tests
176
+
177
+ * **disposable-email-domains:** cover wildcard matching and lazy domains.json loader ([c626a16](https://github.com/visulima/visulima/commit/c626a16d464a581ca27c1ba86612bc407bf83703))
178
+
179
+
180
+ ### Dependencies
181
+
182
+ * **@visulima/tabular:** upgraded to 4.0.0-alpha.13
183
+
184
+ ## @visulima/disposable-email-domains [1.0.0-alpha.15](https://github.com/visulima/visulima/compare/@visulima/disposable-email-domains@1.0.0-alpha.14...@visulima/disposable-email-domains@1.0.0-alpha.15) (2026-05-27)
185
+
186
+ ### Bug Fixes
187
+
188
+ * **storage-client:** percent-encode user fields in defaultFingerprint ([7c78a0f](https://github.com/visulima/visulima/commit/7c78a0f9512e2a673b941d80839e9f1e86b7b5d0))
189
+
190
+ ### Documentation
191
+
192
+ * prettier-format agent instructions ([71b6414](https://github.com/visulima/visulima/commit/71b6414528780ac82c4e0bb25b5f4f11faba5549))
193
+
194
+ ### Miscellaneous Chores
195
+
196
+ * **ci-stability:** green CI across vis, native, lint, tests, attw ([#651](https://github.com/visulima/visulima/issues/651)) ([d4eb684](https://github.com/visulima/visulima/commit/d4eb684b5f75c818c9251048c605a0ed54a268e3))
197
+ * refresh generated license bundles and disposable-domain stats ([a389f38](https://github.com/visulima/visulima/commit/a389f38484788aafa8ba9b698e2dd5805a982d98))
198
+ * **repo:** apply eslint --fix and prettier --fix across packages ([#650](https://github.com/visulima/visulima/issues/650)) ([2e26a84](https://github.com/visulima/visulima/commit/2e26a84774f218f21345e9a8ecd68236b6542743)), closes [#620](https://github.com/visulima/visulima/issues/620)
199
+ * **repo:** sort package.json keys across all packages ([e1fd9ab](https://github.com/visulima/visulima/commit/e1fd9ab467ef96a98c777da1572ff6a50fcf7e71))
200
+ * sorted package.json ([b47c545](https://github.com/visulima/visulima/commit/b47c545591600fdab17d5cd3a3fbc68b61e199da))
201
+
202
+ ### Tests
203
+
204
+ * **repo:** add dist runtime + types integration tests ([32ee300](https://github.com/visulima/visulima/commit/32ee300b7184117a0ddf9f9d390f75f8932d5ed9))
205
+
206
+
207
+ ### Dependencies
208
+
209
+ * **@visulima/tabular:** upgraded to 4.0.0-alpha.12
210
+
211
+ ## @visulima/disposable-email-domains [1.0.0-alpha.14](https://github.com/visulima/visulima/compare/@visulima/disposable-email-domains@1.0.0-alpha.13...@visulima/disposable-email-domains@1.0.0-alpha.14) (2026-05-14)
212
+
213
+ ### Features
214
+
215
+ * **disposable-email-domains:** add castle disposable list ([82fb44f](https://github.com/visulima/visulima/commit/82fb44f9ebc8c6b7031135a2e9c7c66714776ede))
216
+
217
+ ### Miscellaneous Chores
218
+
219
+ * **disposable-email-domains:** apply formatter sweep to readme ([c563348](https://github.com/visulima/visulima/commit/c563348f7ab526be8b8cc87a036d16dc4c50224d))
220
+ * **disposable-email-domains:** drop time from last-updated stamp ([1257695](https://github.com/visulima/visulima/commit/1257695408d1527f551ce6aa1ad0cff22e162447))
221
+ * **disposable-email-domains:** housekeeping cleanup ([795d338](https://github.com/visulima/visulima/commit/795d338c7572f9ba93661bf7e8cfc0cf2f8dd9e7))
222
+ * **disposable-email-domains:** upgrade packem to 2.0.0-alpha.76 ([99d9f42](https://github.com/visulima/visulima/commit/99d9f42397b4fc1c647d86eadaa2387c97ca1086))
223
+ * re-sort workspace package.json files via vis sort-package-json ([f625696](https://github.com/visulima/visulima/commit/f625696cfac974325774b3243e1a83c3d23acbd7))
224
+
225
+ ## @visulima/disposable-email-domains [1.0.0-alpha.13](https://github.com/visulima/visulima/compare/@visulima/disposable-email-domains@1.0.0-alpha.12...@visulima/disposable-email-domains@1.0.0-alpha.13) (2026-04-22)
226
+
227
+ ### Bug Fixes
228
+
229
+ * **disposable-email-domains:** resolve eslint and formatting issues ([f419276](https://github.com/visulima/visulima/commit/f419276bc4f6bdc01fa35dfb035c438e343be7e2))
230
+ * **disposable-email-domains:** update README ([af4f517](https://github.com/visulima/visulima/commit/af4f51762a6ea74e7f9c6c368d112ba325516e45))
231
+ * **email:** resolve eslint issues and format code ([8fd689c](https://github.com/visulima/visulima/commit/8fd689c12e9c21f7222597bbf99a6fe431b5f0d4))
232
+ * Remove JSR configuration generation script and generated jsr.json files ([#616](https://github.com/visulima/visulima/issues/616)) ([533744b](https://github.com/visulima/visulima/commit/533744b103b74896941db5b727173e617a27a63b))
233
+
234
+ ### Miscellaneous Chores
235
+
236
+ * bump engines.node to ^22.14.0 || >=24.10.0 ([c3d0931](https://github.com/visulima/visulima/commit/c3d0931d1504e4f21ebf50ea680cfa7ce4ba15ce))
237
+ * **disposable-email-domains:** apply pending changes ([18080ea](https://github.com/visulima/visulima/commit/18080ea18ca93b3a455543a84fd1baa618009473))
238
+ * **disposable-email-domains:** enforce curly braces and apply lint fixes ([76010b3](https://github.com/visulima/visulima/commit/76010b362d980fa9e324f592cda5d6314197bc67))
239
+
240
+ ## @visulima/disposable-email-domains [1.0.0-alpha.12](https://github.com/visulima/visulima/compare/@visulima/disposable-email-domains@1.0.0-alpha.11...@visulima/disposable-email-domains@1.0.0-alpha.12) (2026-04-08)
241
+
242
+ ### Bug Fixes
243
+
244
+ * **disposable-email-domains:** add missing .js extensions to ESM imports ([c9a14d5](https://github.com/visulima/visulima/commit/c9a14d557f88201c95e9894212b47723b699d6f2))
245
+ * **disposable-email-domains:** resolve eslint errors ([294850a](https://github.com/visulima/visulima/commit/294850a337b35e0e60d499a20a92b890c2fa762f))
246
+
247
+ ### Documentation
248
+
249
+ * **disposable-email-domains:** update contributing sources table and timestamp ([2919ed0](https://github.com/visulima/visulima/commit/2919ed07a478695e452441a845f7de36a5d87280))
250
+ * **disposable-email-domains:** update domain counts and performance stats ([0e5021b](https://github.com/visulima/visulima/commit/0e5021b561e5b7592ae3ca7a6a9af94ecc6816f0))
251
+
252
+ ### Miscellaneous Chores
253
+
254
+ * apply linting and formatting fixes across packages ([5d150a5](https://github.com/visulima/visulima/commit/5d150a578f9ce861c791843c683deeb849b774a9))
255
+ * **disposable-email-domains:** add tsconfig.eslint.json for type-aware linting ([a9b6093](https://github.com/visulima/visulima/commit/a9b60936b123bef3362e8ea3b51b4960fbd03a19))
256
+ * **disposable-email-domains:** apply auto-fix formatting ([544041c](https://github.com/visulima/visulima/commit/544041cb47668bf64f8bfefdf7ae9160deb3908f))
257
+ * **disposable-email-domains:** apply formatting ([2670c08](https://github.com/visulima/visulima/commit/2670c0843d05d2b0d667690cf0cc2508dacdff83))
258
+ * **disposable-email-domains:** apply prettier formatting ([dca941a](https://github.com/visulima/visulima/commit/dca941aebee89c3d721f79d6ca80760b633ea3f1))
259
+ * **disposable-email-domains:** apply prettier formatting ([967a2c7](https://github.com/visulima/visulima/commit/967a2c75ff25df2840c8257072dc31e7757babcf))
260
+ * **disposable-email-domains:** migrate .prettierrc.cjs to prettier.config.js ([c98c927](https://github.com/visulima/visulima/commit/c98c927b87b7de95cd2c0f282003afd1fcc2130a))
261
+ * **disposable-email-domains:** update README with latest domain stats ([be1c5b4](https://github.com/visulima/visulima/commit/be1c5b44544fe384162885fdfcb8d3d0d9d8fa95))
262
+ * **disposable-email-domains:** update README with latest domain stats ([68754ac](https://github.com/visulima/visulima/commit/68754ac486089b715a6b786f937fceff49db3e31))
263
+ * **email:** remove empty dependency objects from package.json ([0737b35](https://github.com/visulima/visulima/commit/0737b353aabceefe962dab9971ee0c09e9f055fe))
264
+ * update lockfile and disposable-email-domains README ([acf9849](https://github.com/visulima/visulima/commit/acf984987ca5037586337e571d2fe0415178d6f0))
265
+
266
+
267
+ ### Dependencies
268
+
269
+ * **@visulima/tabular:** upgraded to 4.0.0-alpha.9
270
+
271
+ ## @visulima/disposable-email-domains [1.0.0-alpha.11](https://github.com/visulima/visulima/compare/@visulima/disposable-email-domains@1.0.0-alpha.10...@visulima/disposable-email-domains@1.0.0-alpha.11) (2026-03-26)
272
+
273
+ ### Features
274
+
275
+ * **web:** auto-generate packages page from workspace metadata ([623e520](https://github.com/visulima/visulima/commit/623e5207693a7fe720f5f2f179593a3654c880e3))
276
+
277
+
278
+ ### Dependencies
279
+
280
+ * **@visulima/tabular:** upgraded to 4.0.0-alpha.8
281
+
282
+ ## @visulima/disposable-email-domains [1.0.0-alpha.10](https://github.com/visulima/visulima/compare/@visulima/disposable-email-domains@1.0.0-alpha.9...@visulima/disposable-email-domains@1.0.0-alpha.10) (2026-03-26)
283
+
284
+ ### Bug Fixes
285
+
286
+ * **disposable-email-domains:** filter undefined rows in contributing sources table ([75597ec](https://github.com/visulima/visulima/commit/75597ec3bc4197e5dc1d019b793af1412cc8e93b))
287
+ * **disposable-email-domains:** use workspace:* for internal [@visulima](https://github.com/visulima) deps ([790a46e](https://github.com/visulima/visulima/commit/790a46e7319953e5e2b7f65441055a6751706416))
288
+ * updated domain list ([f97866b](https://github.com/visulima/visulima/commit/f97866b9649f6ccae86accf4ab1c56e73817c882))
289
+ * **web:** improve build setup with incremental stats caching and prod install ([fe33e75](https://github.com/visulima/visulima/commit/fe33e75827586779b4b3a0c6d57b39f889ee6207))
290
+
291
+ ### Miscellaneous Chores
292
+
293
+ * **disposable-email-domains:** migrate deps to pnpm catalogs ([df9093b](https://github.com/visulima/visulima/commit/df9093b6c1b2af6a0ac8f113cbbf740cb2b1cea1))
294
+ * **disposable-email-domains:** update dependencies ([76c89aa](https://github.com/visulima/visulima/commit/76c89aa5864af118a4f956ea18b77266f40d72b1))
295
+ * visulima website ([#591](https://github.com/visulima/visulima/issues/591)) ([59ab2e2](https://github.com/visulima/visulima/commit/59ab2e2befb03e51cd2088956f83d9b87de6d033))
296
+
297
+
298
+ ### Dependencies
299
+
300
+ * **@visulima/tabular:** upgraded to 4.0.0-alpha.7
301
+
1
302
  ## @visulima/disposable-email-domains [1.0.0-alpha.9](https://github.com/visulima/visulima/compare/@visulima/disposable-email-domains@1.0.0-alpha.8...@visulima/disposable-email-domains@1.0.0-alpha.9) (2026-03-06)
2
303
 
3
304
  ### Bug Fixes
package/README.md CHANGED
@@ -54,26 +54,26 @@ pnpm add @visulima/disposable-email-domains
54
54
 
55
55
  | Repository | Domains | Success | Performance |
56
56
  |------------|---------|---------|-------------|
57
- | kslr/disposable-email-domains | 116,755 | ✅ | 0.92s (1.7 MB) |
58
- | FGRibreau/mailchecker | 55,911 | ✅ | 0.42s (838.9 KB) |
59
- | wesbos/burner-email-providers | 27,284 | ✅ | 0.32s (388.1 KB) |
60
- | groundcat/disposable-email-domain-list | 27,120 | ✅ | 0.23s (401.7 KB) |
61
- | disposable/disposable-email-domains | 26,455 | ✅ | 0.46s (369.8 KB) |
62
- | sublime-security/static-files | 10,523 | ✅ | 0.15s (144.0 KB) |
63
- | 7c/fakefilter | 9,344 | ✅ | 0.15s (131.8 KB) |
64
- | disposable-email-domains/disposable-email-domains | 5,197 | ✅ | 0.25s (65.9 KB) |
65
- | willwhite/freemail | 4,462 | ✅ | 0.25s (61.8 KB) |
66
- | eser/sanitizer-svc | 3,855 | ✅ | 0.11s (48.9 KB) |
67
- | unkn0w/disposable-email-domain-list | 3,617 | ✅ | 0.06s (45.8 KB) |
68
- | MattKetmo/EmailChecker | 2,515 | ✅ | 0.08s (32.4 KB) |
69
- | GeroldSetz/emailondeck.com-domains | 1,121 | ✅ | 0.08s (15.4 KB) |
70
- | jespernissen/disposable-maildomain-list | 1,011 | ✅ | 0.06s (13.0 KB) |
71
- | TheDahoom/disposable-email | 18 | ✅ | 0.07s (234 B) |
57
+ | disposable/disposable-email-domains | 74,536 | ✅ | 0.44s (1.1 MB) |
58
+ | FGRibreau/mailchecker | 56,360 | ✅ | 0.31s (846.7 KB) |
59
+ | wesbos/burner-email-providers | 27,279 | ✅ | 0.20s (388.1 KB) |
60
+ | groundcat/disposable-email-domain-list | 12,376 | ✅ | 0.09s (176.1 KB) |
61
+ | sublime-security/static-files | 10,522 | ✅ | 0.08s (144.0 KB) |
62
+ | 7c/fakefilter | 10,222 | ✅ | 0.37s (141.6 KB) |
63
+ | disposable-email-domains/disposable-email-domains | 7,999 | ✅ | 0.20s (111.0 KB) |
64
+ | willwhite/freemail | 4,462 | ✅ | 0.06s (61.8 KB) |
65
+ | eser/sanitizer-svc | 3,855 | ✅ | 0.24s (48.9 KB) |
66
+ | unkn0w/disposable-email-domain-list | 3,618 | ✅ | 0.37s (45.8 KB) |
67
+ | MattKetmo/EmailChecker | 2,515 | ✅ | 0.41s (32.4 KB) |
68
+ | GeroldSetz/emailondeck.com-domains | 1,121 | ✅ | 0.22s (15.4 KB) |
69
+ | castle/disposable-email-domains | 1,000 | ✅ | 0.01s (14.0 KB) |
70
+ | jespernissen/disposable-maildomain-list | 993 | ✅ | 0.10s (12.8 KB) |
71
+ | TheDahoom/disposable-email | 18 | ✅ | 0.22s (234 B) |
72
72
 
73
73
  <!-- END_PLACEHOLDER_CONTRIBUTING -->
74
74
  <!-- START_PLACEHOLDER_LAST_UPDATED -->
75
75
 
76
- _Last updated: 2026-03-06T14:42:30.131Z_
76
+ _Last updated: 2026-07-15_
77
77
 
78
78
  <!-- END_PLACEHOLDER_LAST_UPDATED -->
79
79
 
@@ -98,86 +98,172 @@ results.forEach((isDisposable, email) => {
98
98
  });
99
99
  ```
100
100
 
101
- ### Whitelist Protection
101
+ ### Provider whitelist (baked into the list)
102
102
 
103
- This package automatically whitelists common email providers (like Gmail, Yahoo, Outlook, etc.) from the [email-providers](https://github.com/derhuerst/email-providers) package. This ensures that legitimate email providers are never incorrectly flagged as disposable, even if they appear in the disposable domains list.
103
+ Common email providers (Gmail, Yahoo, Outlook, etc.) from the [email-providers](https://github.com/derhuerst/email-providers) package are filtered **at list-generation time** — they are removed from the published `domains.json` before it ships, so they can never be flagged as disposable. This is _not_ a runtime allowlist: there is no provider-whitelist parameter at call time. If you need a runtime escape hatch for a specific domain, use the `allowDomains` option below.
104
104
 
105
105
  ```typescript
106
106
  import { isDisposableEmail } from "@visulima/disposable-email-domains";
107
107
 
108
- // Common email providers are automatically whitelisted
109
- isDisposableEmail("user@gmail.com"); // false - whitelisted
110
- isDisposableEmail("user@yahoo.com"); // false - whitelisted
111
- isDisposableEmail("user@outlook.com"); // false - whitelisted
108
+ // Common providers are absent from the list, so they are never flagged
109
+ isDisposableEmail("user@gmail.com"); // false
110
+ isDisposableEmail("user@yahoo.com"); // false
111
+ isDisposableEmail("user@outlook.com"); // false
112
112
 
113
113
  // Disposable emails are still detected
114
114
  isDisposableEmail("user@mailinator.com"); // true - disposable
115
115
  ```
116
116
 
117
- ### Custom Domains
117
+ ### Custom domains
118
118
 
119
- You can provide custom disposable domains to check against:
119
+ You can provide custom disposable domains to check on top of the built-in list. Custom domains use the same wildcard/subdomain semantics as the built-in list (a custom `custom-disposable.com` also matches `sub.custom-disposable.com`):
120
120
 
121
121
  ```typescript
122
122
  import { isDisposableEmail, areDisposableEmails } from "@visulima/disposable-email-domains";
123
123
 
124
124
  const customDomains = new Set(["custom-disposable.com", "temp-mail.org"]);
125
125
 
126
- // Check with custom domains
126
+ // Legacy form: pass a Set directly
127
127
  if (isDisposableEmail("user@custom-disposable.com", customDomains)) {
128
128
  console.log("Custom disposable email detected!");
129
129
  }
130
130
 
131
+ // Options-object form (equivalent)
132
+ isDisposableEmail("user@custom-disposable.com", { customDomains });
133
+
131
134
  // Batch check with custom domains
132
- const emails = ["user@custom-disposable.com", "user@example.com"];
133
- const results = areDisposableEmails(emails, customDomains);
135
+ const results = areDisposableEmails(["user@custom-disposable.com", "user@example.com"], customDomains);
136
+ ```
134
137
 
135
- results.forEach((isDisposable, email) => {
136
- console.log(`${email}: ${isDisposable ? "disposable" : "valid"}`);
137
- });
138
+ ### Runtime allowlist (`allowDomains`)
139
+
140
+ If a legitimate customer domain wrongly ends up in the list, allowlist it at runtime without forking. The allowlist is checked **before** the disposable list and wins over both the built-in list and `customDomains`. It also honours subdomain matching:
141
+
142
+ ```typescript
143
+ import { isDisposableEmail } from "@visulima/disposable-email-domains";
144
+
145
+ const allowDomains = new Set(["legit-customer.com"]);
146
+
147
+ isDisposableEmail("user@legit-customer.com", { allowDomains }); // false, even if it's in the list
148
+ isDisposableEmail("user@mail.legit-customer.com", { allowDomains }); // false (subdomain)
149
+ ```
150
+
151
+ ### Bare-domain checks
152
+
153
+ If you already have a domain (e.g. from an MX lookup or a parsed signup form), use `isDisposableDomain` / `extractDomain` directly instead of fabricating an `x@domain` address:
154
+
155
+ ```typescript
156
+ import { isDisposableDomain, extractDomain } from "@visulima/disposable-email-domains";
157
+
158
+ isDisposableDomain("mailinator.com"); // true
159
+ extractDomain("User@Example.COM"); // "example.com"
160
+ ```
161
+
162
+ ### Edge / browser / bundled runtimes
163
+
164
+ By default the package reads `dist/domains.json` from disk via `node:fs`. That does not work in Cloudflare Workers, Next.js middleware/edge, Deno, or bundles that relocate `index.js` away from the data file. For those environments, import the list statically and inject it once at startup with `setDomains`:
165
+
166
+ ```typescript
167
+ import { setDomains, isDisposableEmail } from "@visulima/disposable-email-domains";
168
+ import domains from "@visulima/disposable-email-domains/domains" with { type: "json" };
169
+
170
+ setDomains(domains);
171
+
172
+ isDisposableEmail("user@mailinator.com"); // true — no filesystem access
173
+ ```
174
+
175
+ On Node you can also call `await preload()` once at startup to move the synchronous read+parse of the multi-megabyte list off the request hot path, and `isListLoaded()` to detect the degraded fail-open state (e.g. a missing/corrupt data file):
176
+
177
+ ```typescript
178
+ import { preload, isListLoaded } from "@visulima/disposable-email-domains";
179
+
180
+ await preload();
181
+
182
+ if (!isListLoaded()) {
183
+ // The built-in list failed to load — disposable detection is disabled.
184
+ }
185
+ ```
186
+
187
+ ### Raw domain list (`./domains`)
188
+
189
+ The raw, sorted array of disposable domains is exported from the `./domains` subpath. In Node ESM you must use a JSON import attribute:
190
+
191
+ ```typescript
192
+ import domains from "@visulima/disposable-email-domains/domains" with { type: "json" };
193
+
194
+ console.log(domains.length); // number of disposable domains
138
195
  ```
139
196
 
140
197
  ## API Reference
141
198
 
142
199
  ### Functions
143
200
 
144
- #### `isDisposableEmail(email, customDomains?)`
201
+ All check functions accept either a `Set<string>` of additional disposable domains (legacy) or an options object:
202
+
203
+ ```typescript
204
+ interface DisposableEmailOptions {
205
+ /** Domains that should never be treated as disposable (wins over everything, supports subdomains). */
206
+ allowDomains?: Set<string>;
207
+ /** Extra disposable domains to check on top of the built-in list (supports subdomains). */
208
+ customDomains?: Set<string>;
209
+ }
210
+ ```
145
211
 
146
- Checks if an email address is from a disposable email service. Common email providers (Gmail, Yahoo, Outlook, etc.) are automatically whitelisted and will never be flagged as disposable.
212
+ #### `isDisposableEmail(email, options?)`
213
+
214
+ Checks if an email address is from a disposable email service.
147
215
 
148
216
  - **Parameters:**
149
217
  - `email` (string): The email address to check
150
- - `customDomains?` (Set<string>): Optional set of additional disposable domains to check
151
- - **Returns:** `boolean` - True if the email is from a disposable domain
218
+ - `options?` (`Set<string>` | `DisposableEmailOptions`): A set of additional disposable domains, or an options object
219
+ - **Returns:** `boolean` — True if the email is from a disposable domain
152
220
  - **Features:**
153
221
  - Case-insensitive matching
154
- - Supports wildcard matching (e.g., `subdomain.33mail.com` matches `33mail.com`)
155
- - Automatically whitelists common email providers
222
+ - Wildcard/subdomain matching (e.g., `subdomain.33mail.com` matches `33mail.com`) for built-in, custom, and allowlisted domains
156
223
 
157
- #### `areDisposableEmails(emails, customDomains?)`
224
+ #### `areDisposableEmails(emails, options?)`
158
225
 
159
226
  Checks multiple email addresses at once. Returns a Map for efficient lookups.
160
227
 
161
228
  - **Parameters:**
162
229
  - `emails` (string[]): Array of email addresses to check
163
- - `customDomains?` (Set<string>): Optional set of additional disposable domains to check
164
- - **Returns:** `Map<string, boolean>` - Map of email to boolean indicating if it's disposable
165
- - **Features:**
166
- - Batch processing for better performance
167
- - Same whitelist protection as `isDisposableEmail`
230
+ - `options?` (`Set<string>` | `DisposableEmailOptions`): A set of additional disposable domains, or an options object
231
+ - **Returns:** `Map<string, boolean>` — Map of email to boolean indicating if it's disposable
232
+
233
+ #### `isDisposableDomain(domain, options?)`
234
+
235
+ Like `isDisposableEmail` but accepts a bare domain rather than a full email address.
236
+
237
+ #### `extractDomain(email)`
238
+
239
+ Returns the normalized (lowercased, trimmed) domain of an email address, or `undefined` if the address is invalid.
240
+
241
+ #### `setDomains(domains)`
242
+
243
+ Injects the disposable-domain list explicitly, bypassing the Node filesystem loader. Use in edge/browser/bundled runtimes (see [Edge / browser / bundled runtimes](#edge--browser--bundled-runtimes)).
244
+
245
+ #### `preload()`
246
+
247
+ Eagerly loads the built-in list (Node) so the first check does not stall the event loop. Returns a `Promise<void>`.
248
+
249
+ #### `isListLoaded()`
250
+
251
+ Returns `true` once the built-in list is loaded; `false` if it has not been accessed yet or failed to load (missing/corrupt data file). Useful to detect the degraded fail-open state.
168
252
 
169
253
  ### How It Works
170
254
 
171
255
  1. **Domain List**: The package maintains a regularly updated list of disposable email domains from multiple trusted sources (see Contributing Sources above).
172
256
 
173
- 2. **Whitelist Protection**: Common email providers from the [email-providers](https://github.com/derhuerst/email-providers) package are automatically whitelisted. This ensures legitimate providers like Gmail, Yahoo, and Outlook are never incorrectly flagged as disposable.
257
+ 2. **Provider whitelist**: Common email providers from the [email-providers](https://github.com/derhuerst/email-providers) package are filtered out **when the list is generated**, so they are simply absent from the published list. There is no runtime provider-whitelist mechanism; use `allowDomains` for per-call exceptions.
174
258
 
175
259
  3. **Wildcard Matching**: The package supports wildcard matching by checking parent domains. For example, `subdomain.33mail.com` will match `33mail.com` if it's in the disposable list.
176
260
 
177
- 4. **Custom Domains**: You can provide additional disposable domains to check against, useful for domain-specific blocklists.
261
+ 4. **Custom & allow domains**: You can supply additional disposable domains (`customDomains`) or a runtime allowlist (`allowDomains`), both with subdomain matching.
178
262
 
179
263
  ## Related
180
264
 
265
+ - [@visulima/email](https://github.com/visulima/visulima/tree/main/packages/email/email) — multi-provider email library that re-exports this check at `@visulima/email/validation/disposable-email-domains`.
266
+
181
267
  ## Supported Node.js Versions
182
268
 
183
269
  Libraries in this ecosystem make the best effort to track [Node.js’ release schedule](https://github.com/nodejs/release#release-schedule).
@@ -0,0 +1,2 @@
1
+ declare const domains: string[];
2
+ export = domains;