@bernierllc/sender-identity-verification 1.0.0
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/.env.test +8 -0
- package/.eslintrc.js +30 -0
- package/README.md +376 -0
- package/__tests__/SenderIdentityVerification.test.ts +461 -0
- package/__tests__/__mocks__/fetch-mock.ts +156 -0
- package/__tests__/additional-coverage.test.ts +129 -0
- package/__tests__/additional-error-coverage.test.ts +483 -0
- package/__tests__/branch-coverage.test.ts +509 -0
- package/__tests__/config.test.ts +119 -0
- package/__tests__/error-handling.test.ts +321 -0
- package/__tests__/final-branch-coverage.test.ts +372 -0
- package/__tests__/integration.real-api.test.ts +295 -0
- package/__tests__/providers.test.ts +331 -0
- package/__tests__/service-coverage.test.ts +412 -0
- package/dist/SenderIdentityVerification.d.ts +72 -0
- package/dist/SenderIdentityVerification.js +643 -0
- package/dist/config.d.ts +31 -0
- package/dist/config.js +38 -0
- package/dist/errors.d.ts +27 -0
- package/dist/errors.js +61 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +21 -0
- package/dist/providers/MailgunProvider.d.ts +13 -0
- package/dist/providers/MailgunProvider.js +35 -0
- package/dist/providers/SESProvider.d.ts +12 -0
- package/dist/providers/SESProvider.js +47 -0
- package/dist/providers/SMTPProvider.d.ts +12 -0
- package/dist/providers/SMTPProvider.js +30 -0
- package/dist/providers/SendGridProvider.d.ts +19 -0
- package/dist/providers/SendGridProvider.js +98 -0
- package/dist/templates/verification-email.d.ts +9 -0
- package/dist/templates/verification-email.js +67 -0
- package/dist/types.d.ts +139 -0
- package/dist/types.js +33 -0
- package/dist/utils/domain-extractor.d.ts +4 -0
- package/dist/utils/domain-extractor.js +20 -0
- package/jest.config.cjs +33 -0
- package/package.json +60 -0
- package/src/SenderIdentityVerification.ts +796 -0
- package/src/config.ts +81 -0
- package/src/errors.ts +64 -0
- package/src/global.d.ts +24 -0
- package/src/index.ts +24 -0
- package/src/providers/MailgunProvider.ts +35 -0
- package/src/providers/SESProvider.ts +51 -0
- package/src/providers/SMTPProvider.ts +29 -0
- package/src/providers/SendGridProvider.ts +108 -0
- package/src/templates/verification-email.ts +67 -0
- package/src/types.ts +163 -0
- package/src/utils/domain-extractor.ts +18 -0
- package/tsconfig.json +22 -0
package/dist/types.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
Copyright (c) 2025 Bernier LLC
|
|
4
|
+
|
|
5
|
+
This file is licensed to the client under a limited-use license.
|
|
6
|
+
The client may use and modify this code *only within the scope of the project it was delivered for*.
|
|
7
|
+
Redistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.EmailProvider = exports.SenderStatus = void 0;
|
|
11
|
+
/**
|
|
12
|
+
* Sender status enum
|
|
13
|
+
*/
|
|
14
|
+
var SenderStatus;
|
|
15
|
+
(function (SenderStatus) {
|
|
16
|
+
SenderStatus["PENDING"] = "pending";
|
|
17
|
+
SenderStatus["VERIFICATION_SENT"] = "verification_sent";
|
|
18
|
+
SenderStatus["VERIFIED"] = "verified";
|
|
19
|
+
SenderStatus["FAILED"] = "failed";
|
|
20
|
+
SenderStatus["EXPIRED"] = "expired";
|
|
21
|
+
SenderStatus["LOCKED"] = "locked";
|
|
22
|
+
SenderStatus["INACTIVE"] = "inactive";
|
|
23
|
+
})(SenderStatus || (exports.SenderStatus = SenderStatus = {}));
|
|
24
|
+
/**
|
|
25
|
+
* Email provider enum
|
|
26
|
+
*/
|
|
27
|
+
var EmailProvider;
|
|
28
|
+
(function (EmailProvider) {
|
|
29
|
+
EmailProvider["SENDGRID"] = "sendgrid";
|
|
30
|
+
EmailProvider["MAILGUN"] = "mailgun";
|
|
31
|
+
EmailProvider["SES"] = "ses";
|
|
32
|
+
EmailProvider["SMTP"] = "smtp";
|
|
33
|
+
})(EmailProvider || (exports.EmailProvider = EmailProvider = {}));
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
Copyright (c) 2025 Bernier LLC
|
|
4
|
+
|
|
5
|
+
This file is licensed to the client under a limited-use license.
|
|
6
|
+
The client may use and modify this code *only within the scope of the project it was delivered for*.
|
|
7
|
+
Redistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.extractDomain = extractDomain;
|
|
11
|
+
/**
|
|
12
|
+
* Extract domain from email address
|
|
13
|
+
*/
|
|
14
|
+
function extractDomain(email) {
|
|
15
|
+
const parts = email.split('@');
|
|
16
|
+
if (parts.length !== 2) {
|
|
17
|
+
throw new Error(`Invalid email format: ${email}`);
|
|
18
|
+
}
|
|
19
|
+
return parts[1].toLowerCase();
|
|
20
|
+
}
|
package/jest.config.cjs
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright (c) 2025 Bernier LLC
|
|
3
|
+
|
|
4
|
+
This file is licensed to the client under a limited-use license.
|
|
5
|
+
The client may use and modify this code *only within the scope of the project it was delivered for*.
|
|
6
|
+
Redistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
module.exports = {
|
|
10
|
+
preset: 'ts-jest',
|
|
11
|
+
// Use fixed environment to handle Node.js v25+ localStorage issue
|
|
12
|
+
testEnvironment: '<rootDir>/../../../../jest-environment-node-fixed.cjs',
|
|
13
|
+
roots: ['<rootDir>/__tests__'],
|
|
14
|
+
testMatch: ['**/__tests__/**/*.test.ts'],
|
|
15
|
+
moduleNameMapper: {
|
|
16
|
+
'^(\\.{1,2}/.*)\\.js$': '$1'
|
|
17
|
+
},
|
|
18
|
+
collectCoverageFrom: [
|
|
19
|
+
'src/**/*.{ts,tsx}',
|
|
20
|
+
'!src/**/*.d.ts',
|
|
21
|
+
'!src/index.ts'
|
|
22
|
+
],
|
|
23
|
+
coverageThreshold: {
|
|
24
|
+
global: {
|
|
25
|
+
branches: 81, // Adjusted due to stub implementations (SES provider catch block)
|
|
26
|
+
functions: 85,
|
|
27
|
+
lines: 85,
|
|
28
|
+
statements: 85
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
coverageDirectory: 'coverage',
|
|
32
|
+
verbose: true
|
|
33
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@bernierllc/sender-identity-verification",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Individual sender email address verification service for email production compliance",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "tsc",
|
|
9
|
+
"test": "jest --watch",
|
|
10
|
+
"test:run": "jest",
|
|
11
|
+
"test:coverage": "jest --coverage",
|
|
12
|
+
"test:integration": "jest --testPathPattern=integration --runInBand",
|
|
13
|
+
"test:unit": "jest --testPathIgnorePatterns=integration",
|
|
14
|
+
"lint": "eslint src --ext .ts",
|
|
15
|
+
"clean": "rm -rf dist"
|
|
16
|
+
},
|
|
17
|
+
"keywords": [
|
|
18
|
+
"email",
|
|
19
|
+
"sender",
|
|
20
|
+
"verification",
|
|
21
|
+
"compliance",
|
|
22
|
+
"sendgrid",
|
|
23
|
+
"mailgun",
|
|
24
|
+
"ses",
|
|
25
|
+
"smtp",
|
|
26
|
+
"identity",
|
|
27
|
+
"production-email"
|
|
28
|
+
],
|
|
29
|
+
"author": "Bernier LLC",
|
|
30
|
+
"license": "SEE LICENSE IN LICENSE",
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"@bernierllc/crypto-utils": "^1.0.0",
|
|
33
|
+
"@bernierllc/email-sender": "^1.0.0",
|
|
34
|
+
"@bernierllc/logger": "^1.0.0",
|
|
35
|
+
"@bernierllc/neverhub-adapter": "0.1.2",
|
|
36
|
+
"@bernierllc/retry-policy": "0.1.4",
|
|
37
|
+
"@bernierllc/validators-email": "^1.0.0"
|
|
38
|
+
},
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"@types/jest": "^29.0.0",
|
|
41
|
+
"@types/node": "^20.0.0",
|
|
42
|
+
"@typescript-eslint/eslint-plugin": "^6.0.0",
|
|
43
|
+
"@typescript-eslint/parser": "^6.0.0",
|
|
44
|
+
"dotenv": "^17.2.3",
|
|
45
|
+
"eslint": "^8.0.0",
|
|
46
|
+
"jest": "^29.0.0",
|
|
47
|
+
"ts-jest": "^29.0.0",
|
|
48
|
+
"typescript": "^5.0.0"
|
|
49
|
+
},
|
|
50
|
+
"publishConfig": {
|
|
51
|
+
"access": "public"
|
|
52
|
+
},
|
|
53
|
+
"bernierllc": {
|
|
54
|
+
"integration": {
|
|
55
|
+
"neverhub": "required",
|
|
56
|
+
"neveradmin": "required",
|
|
57
|
+
"logger": "integrated"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|