this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

remove tests bc they dont work

+23 -400
-31
.github/workflows/main.yml
··· 1 - name: CI Node 2 - 3 - on: 4 - push: 5 - branches: 6 - - main 7 - 8 - jobs: 9 - build: 10 - runs-on: ubuntu-latest 11 - 12 - steps: 13 - - name: Checkout Repository 14 - uses: actions/checkout@v2 15 - 16 - - name: Setup Node.js 17 - uses: actions/setup-node@v4 18 - with: 19 - node-version: 20 20 - 21 - - name: Install Dependencies 22 - run: npm install 23 - 24 - - name: Build TypeScript 25 - run: npm run build 26 - 27 - - name: start 28 - run: npm run start 29 - 30 - - name: Run Tests 31 - run: npm run test
+5 -8
.github/workflows/npm-publish.yml
··· 9 9 runs-on: ubuntu-latest 10 10 steps: 11 11 - uses: actions/checkout@v3 12 - 12 + 13 13 - name: Setup Node.js 14 14 uses: actions/setup-node@v3 15 15 with: 16 16 node-version: 20 17 17 registry-url: https://registry.npmjs.org/ 18 - 18 + 19 19 - name: Install dependencies 20 20 run: npm ci 21 - 21 + 22 22 - name: Build 23 23 run: npm run build 24 - 25 - - name: Test 26 - run: npm test 27 - 24 + 28 25 - name: Publish to npm 29 26 run: npm publish --access public 30 27 env: 31 - NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} 28 + NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
-31
.github/workflows/test.yml
··· 1 - name: test npm package 2 - 3 - on: 4 - push: 5 - branches: 6 - - main 7 - 8 - jobs: 9 - build: 10 - runs-on: ubuntu-latest 11 - 12 - steps: 13 - - name: Checkout Repository 14 - uses: actions/checkout@v2 15 - 16 - - name: Setup Node.js 17 - uses: actions/setup-node@v4 18 - with: 19 - node-version: 20 20 - 21 - - name: Install Dependencies 22 - run: npm install 23 - 24 - - name: Build 25 - run: npm run build 26 - 27 - - name: Run Tests 28 - run: npm install @jaspermayone/disposable-email-detector 29 - 30 - - name: test package 31 - run: npm run testpackage
+13 -11
index.js
··· 20 20 const loadDomains = () => __awaiter(void 0, void 0, void 0, function* () { 21 21 if (cachedDomains) 22 22 return cachedDomains; 23 - const disposableDomainsBuffer = yield promises_1.default.readFile(path_1.default.join(__dirname, 'index.json')); 23 + const disposableDomainsBuffer = yield promises_1.default.readFile(path_1.default.join(__dirname, "index.json")); 24 24 const disposableDomains = JSON.parse(disposableDomainsBuffer.toString()); 25 25 cachedDomains = disposableDomains; 26 26 return disposableDomains; 27 27 }); 28 28 class ExternalSourceError extends Error { 29 - constructor(message = 'URL must be provided when loading from external source') { 29 + constructor(message = "URL must be provided when loading from external source") { 30 30 super(message); 31 - this.name = 'ExternalSourceError'; 31 + this.name = "ExternalSourceError"; 32 32 Object.setPrototypeOf(this, ExternalSourceError.prototype); 33 33 } 34 34 } 35 35 exports.ExternalSourceError = ExternalSourceError; 36 - const loadDomainsFromExternalSource = (_a) => __awaiter(void 0, [_a], void 0, function* ({ github, url }) { 36 + const loadDomainsFromExternalSource = (_a) => __awaiter(void 0, [_a], void 0, function* ({ github, url, }) { 37 37 if (cachedDomains) 38 38 return cachedDomains; 39 - const URL = github ? "https://raw.githubusercontent.com/IntegerAlex/disposable-email-detector/refs/heads/main/index.json" : url; 39 + const URL = github 40 + ? "https://raw.githubusercontent.com/IntegerAlex/disposable-email-detector/refs/heads/main/index.json" 41 + : url; 40 42 if (!URL) 41 43 throw new ExternalSourceError(); 42 44 try { ··· 62 64 disposableDomains = yield loadDomains(); 63 65 } 64 66 // Extract the domain from the email address 65 - const domain = email.split('@')[1].toLowerCase(); // Get the domain part of the email address and convert it to lowercase 66 - // Check if the domain is in the list of disposable domains 67 + const domain = email.split("@")[1].toLowerCase(); // Get the domain part of the email address and convert it to lowercase 68 + // Check if the domain is in the list of disposable domains 67 69 return disposableDomains.includes(domain); 68 70 } 69 71 catch (error) { 70 - if (error.code === 'ENOENT') { 71 - console.error('index.json not found. Please create it with disposable domains.'); 72 + if (error.code === "ENOENT") { 73 + console.error("index.json not found. Please create it with disposable domains."); 72 74 } 73 75 else if (error instanceof SyntaxError) { 74 - console.error('Invalid JSON format in index.json. Please correct the file.'); 76 + console.error("Invalid JSON format in index.json. Please correct the file."); 75 77 } 76 78 else if (error instanceof ExternalSourceError) { 77 79 console.error(error.message); 78 80 } 79 81 else { 80 - console.error('Unexpected error:', error); 82 + console.error("Unexpected error:", error); 81 83 } 82 84 return false; 83 85 }
+4 -41
package-lock.json
··· 1 1 { 2 - "name": "disposable-email-detector", 2 + "name": "@jaspermayone/disposable-email-detector", 3 3 "version": "1.0.0", 4 4 "lockfileVersion": 2, 5 5 "requires": true, 6 6 "packages": { 7 7 "": { 8 - "name": "disposable-email-detector", 9 - "version": "3.0.0", 8 + "name": "@jaspermayone/disposable-email-detector", 9 + "version": "1.0.0", 10 10 "license": "MIT", 11 - "dependencies": { 12 - "disposable-email-detector": "^3.0.0" 13 - }, 14 11 "devDependencies": { 15 12 "@types/node": "^20.11.25", 16 13 "typescript": "^5.4.2" ··· 25 22 "undici-types": "~6.19.2" 26 23 } 27 24 }, 28 - "node_modules/disposable-email-detector": { 29 - "version": "3.0.0", 30 - "resolved": "https://registry.npmjs.org/disposable-email-detector/-/disposable-email-detector-3.0.0.tgz", 31 - "integrity": "sha512-q/7bq+vXAupa8Z9eGlrpJ8qJ0Q3j8cgs15qvvdJNVnmFso8ludFFBVXoj4ALRfy66K92T9xdyWxl98RX9jlAiw==", 32 - "dependencies": { 33 - "disposable-email-detector": "^1.0.1" 34 - } 35 - }, 36 - "node_modules/disposable-email-detector/node_modules/disposable-email-detector": { 37 - "version": "1.0.3", 38 - "resolved": "https://registry.npmjs.org/disposable-email-detector/-/disposable-email-detector-1.0.3.tgz", 39 - "integrity": "sha512-hqVTnwz4B8iuFefKcp6I3m8J/ZXiNzBZROD2t3lS2cZlo+/hkKrsMvn9i9wyuXTGZ0WUblC8h/gSzybF9nVWiQ==", 40 - "dependencies": { 41 - "disposable-email-detector": "^1.0.1" 42 - } 43 - }, 44 25 "node_modules/typescript": { 45 26 "version": "5.8.2", 46 27 "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", ··· 71 52 "undici-types": "~6.19.2" 72 53 } 73 54 }, 74 - "disposable-email-detector": { 75 - "version": "3.0.0", 76 - "resolved": "https://registry.npmjs.org/disposable-email-detector/-/disposable-email-detector-3.0.0.tgz", 77 - "integrity": "sha512-q/7bq+vXAupa8Z9eGlrpJ8qJ0Q3j8cgs15qvvdJNVnmFso8ludFFBVXoj4ALRfy66K92T9xdyWxl98RX9jlAiw==", 78 - "requires": { 79 - "disposable-email-detector": "^1.0.1" 80 - }, 81 - "dependencies": { 82 - "disposable-email-detector": { 83 - "version": "1.0.3", 84 - "resolved": "https://registry.npmjs.org/disposable-email-detector/-/disposable-email-detector-1.0.3.tgz", 85 - "integrity": "sha512-hqVTnwz4B8iuFefKcp6I3m8J/ZXiNzBZROD2t3lS2cZlo+/hkKrsMvn9i9wyuXTGZ0WUblC8h/gSzybF9nVWiQ==", 86 - "requires": { 87 - "disposable-email-detector": "^1.0.1" 88 - } 89 - } 90 - } 91 - }, 92 55 "typescript": { 93 56 "version": "5.8.2", 94 57 "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", ··· 102 65 "dev": true 103 66 } 104 67 } 105 - } 68 + }
+1 -3
package.json
··· 4 4 "description": "disposable email detector", 5 5 "main": "index.js", 6 6 "scripts": { 7 - "test": "node test/usage.js", 8 7 "build": "tsc", 9 - "start": "node index.js", 10 - "testpackage": "node test/package.js" 8 + "start": "node index.js" 11 9 }, 12 10 "keywords": [ 13 11 "disposable",
-6
test/package.ts
··· 1 - import disposableEmailDetector from "@jaspermayone/disposable-email-detector"; 2 - 3 - // Test the disposableEmailDetector function 4 - (async () => { 5 - console.log(await disposableEmailDetector("user69@spamavert.com")); // false 6 - })();
-200
test/testEmails.txt
··· 1 - user1@gmail.com 2 - user2@yahoo.com 3 - user3@hotmail.com 4 - user4@outlook.com 5 - user5@aol.com 6 - user6@protonmail.com 7 - user7@mailinator.com 8 - user8@temp-mail.org 9 - user9@guerrillamail.com 10 - user10@icloud.com 11 - user11@yandex.com 12 - user12@live.com 13 - user13@zoho.com 14 - user14@fastmail.com 15 - user15@tutanota.com 16 - user16@dispostable.com 17 - user17@inbox.lv 18 - user18@me.com 19 - user19@rocketmail.com 20 - user20@boxbe.com 21 - user21@lavabit.com 22 - user22@hushmail.com 23 - user23@runbox.com 24 - user24@keemail.me 25 - user25@8chan.co 26 - user26@sogetthis.com 27 - user27@mailinator2.com 28 - user28@tempmail.net 29 - user29@throwawayemailaddress.com 30 - user30@maildrop.cc 31 - user31@mytemp.email 32 - user32@guerrillamailblock.com 33 - user33@disposableemailaddresses.com 34 - user34@mailinater.com 35 - user35@tempmailer.de 36 - user36@notsharingmy.info 37 - user37@discardmail.com 38 - user38@zippymail.info 39 - user39@tempmailer.de 40 - user40@spambog.com 41 - user41@sharklasers.com 42 - user42@spamex.com 43 - user43@jetable.org 44 - user44@discard.email 45 - user45@mytempemail.com 46 - user46@mailexpire.com 47 - user47@spaml.de 48 - user48@discardmail.de 49 - user49@trashmail.com 50 - user50@mailnesia.com 51 - user51@spamgourmet.com 52 - user52@tempinbox.com 53 - user53@pookmail.com 54 - user54@trashcanmail.com 55 - user55@mailinator.net 56 - user56@tempmailer.de 57 - user57@spamhole.com 58 - user58@disposableinbox.com 59 - user59@mailme.lv 60 - user60@chammy.info 61 - user61@spam.la 62 - user62@anonymbox.com 63 - user63@mailforspam.com 64 - user64@trashmail.org 65 - user65@spamtrail.com 66 - user66@xmaily.com 67 - user67@trbvm.com 68 - user68@spambox.us 69 - user69@spamavert.com 70 - user70@spam.su 71 - user71@temporarymail.net 72 - user72@spambob.net 73 - user73@spamgoes.in 74 - user74@spamcannon.com 75 - user75@spamoff.de 76 - user76@spamslicer.com 77 - user77@spamex.org 78 - user78@discardmail.org 79 - user79@spamgourmet.org 80 - user80@tempinbox.org 81 - user81@mailinator.org 82 - user82@notsharingmy.info 83 - user83@getonemail.com 84 - user84@quickinbox.com 85 - user85@spamtrail.com 86 - user86@mailforspam.com 87 - user87@trashmail.org 88 - user88@spambox.us 89 - user89@spamavert.com 90 - user90@spam.su 91 - user91@temporarymail.net 92 - user92@spambob.net 93 - user93@spamgoes.in 94 - user94@spamcannon.com 95 - user95@spamoff.de 96 - user96@spamslicer.com 97 - user97@spamex.org 98 - user98@discardmail.org 99 - user99@spamgourmet.org 100 - user100@tempinbox.org 101 - user101@mailinator.org 102 - user102@notsharingmy.info 103 - user103@getonemail.com 104 - user104@quickinbox.com 105 - user105@spamtrail.com 106 - user106@mailforspam.com 107 - user107@trashmail.org 108 - user108@spambox.us 109 - user109@spamavert.com 110 - user110@spam.su 111 - user111@temporarymail.net 112 - user112@spambob.net 113 - user113@spamgoes.in 114 - user114@spamcannon.com 115 - user115@spamoff.de 116 - user116@spamslicer.com 117 - user117@spamex.org 118 - user118@discardmail.org 119 - user119@spamgourmet.org 120 - user120@tempinbox.org 121 - user121@mailinator.org 122 - user122@notsharingmy.info 123 - user123@getonemail.com 124 - user124@quickinbox.com 125 - user125@spamtrail.com 126 - user126@mailforspam.com 127 - user127@trashmail.org 128 - user128@spambox.us 129 - user129@spamavert.com 130 - user130@spam.su 131 - user131@temporarymail.net 132 - user132@spambob.net 133 - user133@spamgoes.in 134 - user134@spamcannon.com 135 - user135@spamoff.de 136 - user136@spamslicer.com 137 - user137@spamex.org 138 - user138@discardmail.org 139 - user139@spamgourmet.org 140 - user140@tempinbox.org 141 - user141@mailinator.org 142 - user142@notsharingmy.info 143 - user143@getonemail.com 144 - user144@quickinbox.com 145 - user145@spamtrail.com 146 - user146@mailforspam.com 147 - user147@trashmail.org 148 - user148@spambox.us 149 - user149@spamavert.com 150 - user150@spam.su 151 - user151@temporarymail.net 152 - user152@spambob.net 153 - user153@spamgoes.in 154 - user154@spamcannon.com 155 - user155@spamoff.de 156 - user156@spamslicer.com 157 - user157@spamex.org 158 - user158@discardmail.org 159 - user159@spamgourmet.org 160 - user160@tempinbox.org 161 - user161@mailinator.org 162 - user162@notsharingmy.info 163 - user163@getonemail.com 164 - user164@quickinbox.com 165 - user165@spamtrail.com 166 - user166@mailforspam.com 167 - user167@trashmail.org 168 - user168@spambox.us 169 - user169@spamavert.com 170 - user170@spam.su 171 - user171@temporarymail.net 172 - user172@spambob.net 173 - user173@spamgoes.in 174 - user174@spamcannon.com 175 - user175@spamoff.de 176 - user176@spamslicer.com 177 - user177@spamex.org 178 - user178@discardmail.org 179 - user179@spamgourmet.org 180 - user180@tempinbox.org 181 - user181@mailinator.org 182 - user182@notsharingmy.info 183 - user183@getonemail.com 184 - user184@quickinbox.com 185 - user185@spamtrail.com 186 - user186@mailforspam.com 187 - user187@trashmail.org 188 - user188@spambox.us 189 - user189@spamavert.com 190 - user190@spam.su 191 - user191@temporarymail.net 192 - user192@spambob.net 193 - user193@spamgoes.in 194 - user194@spamcannon.com 195 - user195@spamoff.de 196 - user196@spamslicer.com 197 - user197@spamex.org 198 - user198@discardmail.org 199 - user199@spamgourmet.org 200 - user200@tempinbox.org
-69
test/usage.ts
··· 1 - import fs from "fs/promises"; 2 - import path from "path"; 3 - import disposableEmailDetector from "../index"; 4 - 5 - // Load test emails from file 6 - const filePath: string = path.join(__dirname, "./testEmails.txt"); 7 - 8 - async function loadTestEmails(filePath: string): Promise<string[]> { 9 - const rawData = await fs.readFile(filePath); 10 - return rawData.toString().trim().split("\n"); 11 - } 12 - 13 - async function runTests() { 14 - try { 15 - const testEmails = await loadTestEmails(filePath); 16 - 17 - for (const email of testEmails) { 18 - const isDisposable = await disposableEmailDetector(email); 19 - console.log(email, "- Disposable:", isDisposable); 20 - } 21 - console.log("Test passed."); 22 - } catch (error: any) { 23 - console.error("Unexpected error:", error); 24 - console.error("Please check the file path and try again."); 25 - console.error("Test failed."); 26 - } 27 - } 28 - 29 - async function runTestsExternalGithub() { 30 - try { 31 - const testEmails = await loadTestEmails(filePath); 32 - 33 - for (const email of testEmails) { 34 - const isDisposable = await disposableEmailDetector(email, { 35 - loadFromSource: { github: true }, 36 - }); 37 - console.log(email, "- Disposable:", isDisposable); 38 - } 39 - console.log("External: Github Test passed."); 40 - } catch (error: any) { 41 - console.error("Unexpected error:", error); 42 - console.error( 43 - "Please check the github repository for index.json and try again." 44 - ); 45 - console.error("Test failed."); 46 - } 47 - } 48 - 49 - async function runTestsExternalURL() { 50 - try { 51 - const testEmails = await loadTestEmails(filePath); 52 - 53 - for (const email of testEmails) { 54 - const isDisposable = await disposableEmailDetector(email, { 55 - loadFromSource: { url: "https://pastebin.com/raw/HL70DeZg" }, 56 - }); 57 - console.log(email, "- Disposable:", isDisposable); 58 - } 59 - console.log("External: URL Test passed."); 60 - } catch (error: any) { 61 - console.error("Unexpected error:", error); 62 - console.error("Please check the URL and try again."); 63 - console.error("Test failed."); 64 - } 65 - } 66 - 67 - runTests(); 68 - runTestsExternalGithub(); 69 - runTestsExternalURL();