@emailverifier/sdk 0.1.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/LICENSE +21 -0
- package/README.md +88 -0
- package/THIRD_PARTY_NOTICES.md +28 -0
- package/dist/cjs/cli.js +69 -0
- package/dist/cjs/client.js +76 -0
- package/dist/cjs/data/disposable-domains.generated.js +22028 -0
- package/dist/cjs/data/domains.js +256 -0
- package/dist/cjs/index.js +6 -0
- package/dist/cjs/offline.js +175 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/role-addresses.js +292 -0
- package/dist/esm/cli.js +67 -0
- package/dist/esm/client.js +71 -0
- package/dist/esm/data/disposable-domains.generated.js +22025 -0
- package/dist/esm/data/domains.js +253 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/offline.js +162 -0
- package/dist/esm/role-addresses.js +289 -0
- package/dist/types/cli.d.ts +3 -0
- package/dist/types/cli.d.ts.map +1 -0
- package/dist/types/client.d.ts +41 -0
- package/dist/types/client.d.ts.map +1 -0
- package/dist/types/data/disposable-domains.generated.d.ts +3 -0
- package/dist/types/data/disposable-domains.generated.d.ts.map +1 -0
- package/dist/types/data/domains.d.ts +8 -0
- package/dist/types/data/domains.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/offline.d.ts +25 -0
- package/dist/types/offline.d.ts.map +1 -0
- package/dist/types/role-addresses.d.ts +2 -0
- package/dist/types/role-addresses.d.ts.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export type VerificationSignal = 'invalid_syntax' | 'invalid_domain' | 'no_mail_server' | 'disposable_address' | 'free_provider' | 'role_address' | 'mailbox_accepts_mail' | 'mailbox_rejected' | 'catch_all_domain' | 'possible_typo' | 'verification_inconclusive';
|
|
2
|
+
export type VerificationResult = {
|
|
3
|
+
email: string;
|
|
4
|
+
status: 'deliverable' | 'risky' | 'undeliverable' | 'unknown';
|
|
5
|
+
action: 'block' | 'allow' | 'review';
|
|
6
|
+
flagged: boolean;
|
|
7
|
+
signals: VerificationSignal[];
|
|
8
|
+
suggestion: string | null;
|
|
9
|
+
};
|
|
10
|
+
export type DomainResult = {
|
|
11
|
+
domain: string;
|
|
12
|
+
classification: 'disposable' | 'free_provider' | 'unknown';
|
|
13
|
+
risk: 'high' | 'medium' | 'unknown';
|
|
14
|
+
mail_routing: 'available' | 'unavailable' | 'unknown';
|
|
15
|
+
};
|
|
16
|
+
export type UsageResult = {
|
|
17
|
+
project: string;
|
|
18
|
+
credits_used: number;
|
|
19
|
+
credits_remaining: number;
|
|
20
|
+
last_used_at: string | null;
|
|
21
|
+
};
|
|
22
|
+
export type EmailVerifierOptions = {
|
|
23
|
+
apiKey: string;
|
|
24
|
+
baseUrl?: string;
|
|
25
|
+
};
|
|
26
|
+
export type RequestOptions = {
|
|
27
|
+
signal?: AbortSignal;
|
|
28
|
+
};
|
|
29
|
+
export declare class EmailVerifierError extends Error {
|
|
30
|
+
readonly status: number;
|
|
31
|
+
readonly response: unknown;
|
|
32
|
+
constructor(message: string, status: number, response: unknown);
|
|
33
|
+
}
|
|
34
|
+
export declare class EmailVerifier {
|
|
35
|
+
#private;
|
|
36
|
+
constructor(options: EmailVerifierOptions);
|
|
37
|
+
verify(email: string, options?: RequestOptions): Promise<VerificationResult>;
|
|
38
|
+
checkDomain(domain: string, options?: RequestOptions): Promise<DomainResult>;
|
|
39
|
+
getUsage(options?: RequestOptions): Promise<UsageResult>;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAC1B,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,oBAAoB,GACpB,eAAe,GACf,cAAc,GACd,sBAAsB,GACtB,kBAAkB,GAClB,kBAAkB,GAClB,eAAe,GACf,2BAA2B,CAAA;AAE/B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,aAAa,GAAG,OAAO,GAAG,eAAe,GAAG,SAAS,CAAA;IAC7D,MAAM,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAA;IACpC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,kBAAkB,EAAE,CAAA;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,YAAY,GAAG,eAAe,GAAG,SAAS,CAAA;IAC1D,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAA;IACnC,YAAY,EAAE,WAAW,GAAG,aAAa,GAAG,SAAS,CAAA;CACtD,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,CAAA;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;gBAEd,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;CAM/D;AAED,qBAAa,aAAa;;gBAIZ,OAAO,EAAE,oBAAoB;IAYzC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAQ5E,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAO5E,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;CAqCzD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disposable-domains.generated.d.ts","sourceRoot":"","sources":["../../../src/data/disposable-domains.generated.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,uBAAuB,6BAA6B,CAAA;AACjE,eAAO,MAAM,4BAA4B,UAqgrBgC,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { disposableDataUpdatedAt } from './disposable-domains.generated.js';
|
|
2
|
+
export { disposableDataUpdatedAt };
|
|
3
|
+
export declare const customDisposableDomainList: string[];
|
|
4
|
+
export declare const freeEmailDomainList: string[];
|
|
5
|
+
export declare const freeEmailDomains: Set<string>;
|
|
6
|
+
export declare const disposableDomainList: string[];
|
|
7
|
+
export declare const disposableDomains: Set<string>;
|
|
8
|
+
//# sourceMappingURL=domains.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domains.d.ts","sourceRoot":"","sources":["../../../src/data/domains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAgC,MAAM,mCAAmC,CAAA;AAEzG,OAAO,EAAE,uBAAuB,EAAE,CAAA;AAElC,eAAO,MAAM,0BAA0B,UAuFtC,CAAA;AAED,eAAO,MAAM,mBAAmB,UA4J/B,CAAA;AAED,eAAO,MAAM,gBAAgB,aAA+B,CAAA;AAC5D,eAAO,MAAM,oBAAoB,UAGyB,CAAA;AAC1D,eAAO,MAAM,iBAAiB,aAAgC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,kBAAkB,EACnB,MAAM,aAAa,CAAA;AAEpB,YAAY,EACV,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export type OfflineEmailAnalysis = {
|
|
2
|
+
email: string;
|
|
3
|
+
normalizedEmail: string | null;
|
|
4
|
+
domain: string | null;
|
|
5
|
+
suggestion: string | null;
|
|
6
|
+
checks: {
|
|
7
|
+
syntax: boolean;
|
|
8
|
+
emailLength: boolean;
|
|
9
|
+
localPartLength: boolean;
|
|
10
|
+
domainFormat: boolean;
|
|
11
|
+
disposable: boolean;
|
|
12
|
+
freeProvider: boolean;
|
|
13
|
+
roleBased: boolean;
|
|
14
|
+
};
|
|
15
|
+
reasons: string[];
|
|
16
|
+
};
|
|
17
|
+
export declare const maxEmailLength = 254;
|
|
18
|
+
export declare function getDisposableDomainMatch(domain: string): string | null;
|
|
19
|
+
export declare function getFreeEmailDomainMatch(domain: string): string | null;
|
|
20
|
+
export declare function isDisposableDomain(domain: string): boolean;
|
|
21
|
+
export declare function isFreeEmailProvider(domain: string): boolean;
|
|
22
|
+
export declare function isRoleAddress(email: string): boolean;
|
|
23
|
+
export declare function analyzeEmail(input: unknown): OfflineEmailAnalysis;
|
|
24
|
+
export { customDisposableDomainList, disposableDataUpdatedAt, disposableDomainList, freeEmailDomainList } from './data/domains.js';
|
|
25
|
+
//# sourceMappingURL=offline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"offline.d.ts","sourceRoot":"","sources":["../../src/offline.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,MAAM,EAAE;QACN,MAAM,EAAE,OAAO,CAAA;QACf,WAAW,EAAE,OAAO,CAAA;QACpB,eAAe,EAAE,OAAO,CAAA;QACxB,YAAY,EAAE,OAAO,CAAA;QACrB,UAAU,EAAE,OAAO,CAAA;QACnB,YAAY,EAAE,OAAO,CAAA;QACrB,SAAS,EAAE,OAAO,CAAA;KACnB,CAAA;IACD,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAKD,eAAO,MAAM,cAAc,MAAM,CAAA;AA+EjC,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWtE;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGrE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAMpD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,CAoDjE;AAED,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,mBAAmB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role-addresses.d.ts","sourceRoot":"","sources":["../../src/role-addresses.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,aAgSzB,CAAA"}
|
package/package.json
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@emailverifier/sdk",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "Email verifier SDK with free offline checks, the emailverifier.dev API client, and a CLI.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"email",
|
|
7
|
+
"email-verifier",
|
|
8
|
+
"email-verification",
|
|
9
|
+
"email-verification-api",
|
|
10
|
+
"disposable-email",
|
|
11
|
+
"email-validation",
|
|
12
|
+
"typescript",
|
|
13
|
+
"cli"
|
|
14
|
+
],
|
|
15
|
+
"homepage": "https://emailverifier.dev",
|
|
16
|
+
"repository": {
|
|
17
|
+
"type": "git",
|
|
18
|
+
"url": "git+https://github.com/usamaejaz/emailverifier.git"
|
|
19
|
+
},
|
|
20
|
+
"bugs": {
|
|
21
|
+
"url": "https://github.com/usamaejaz/emailverifier/issues"
|
|
22
|
+
},
|
|
23
|
+
"license": "MIT",
|
|
24
|
+
"author": "Usama Ejaz",
|
|
25
|
+
"type": "module",
|
|
26
|
+
"sideEffects": false,
|
|
27
|
+
"files": [
|
|
28
|
+
"dist",
|
|
29
|
+
"README.md",
|
|
30
|
+
"LICENSE",
|
|
31
|
+
"THIRD_PARTY_NOTICES.md"
|
|
32
|
+
],
|
|
33
|
+
"main": "./dist/cjs/index.js",
|
|
34
|
+
"module": "./dist/esm/index.js",
|
|
35
|
+
"types": "./dist/types/index.d.ts",
|
|
36
|
+
"exports": {
|
|
37
|
+
".": {
|
|
38
|
+
"types": "./dist/types/index.d.ts",
|
|
39
|
+
"import": "./dist/esm/index.js",
|
|
40
|
+
"require": "./dist/cjs/index.js"
|
|
41
|
+
},
|
|
42
|
+
"./offline": {
|
|
43
|
+
"types": "./dist/types/offline.d.ts",
|
|
44
|
+
"import": "./dist/esm/offline.js",
|
|
45
|
+
"require": "./dist/cjs/offline.js"
|
|
46
|
+
},
|
|
47
|
+
"./package.json": "./package.json"
|
|
48
|
+
},
|
|
49
|
+
"bin": {
|
|
50
|
+
"emailverifier": "dist/esm/cli.js"
|
|
51
|
+
},
|
|
52
|
+
"engines": {
|
|
53
|
+
"node": ">=20"
|
|
54
|
+
},
|
|
55
|
+
"scripts": {
|
|
56
|
+
"build": "node scripts/build.mjs",
|
|
57
|
+
"check": "npm run typecheck && npm test && npm pack --dry-run --cache ./.npm-cache",
|
|
58
|
+
"test": "npm run build && node --test",
|
|
59
|
+
"typecheck": "node node_modules/typescript/bin/tsc -p tsconfig.json --noEmit",
|
|
60
|
+
"update:data": "node scripts/update-disposable-domains.mjs"
|
|
61
|
+
},
|
|
62
|
+
"devDependencies": {
|
|
63
|
+
"@types/node": "^22.10.10",
|
|
64
|
+
"typescript": "^5.7.3"
|
|
65
|
+
}
|
|
66
|
+
}
|