@konfeature/ap-email-guessr 0.1.1 → 0.1.2

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.
Files changed (30) hide show
  1. package/package.json +25 -3
  2. package/src/lib/actions/find-email.js +31 -35
  3. package/src/lib/actions/find-email.js.map +1 -1
  4. package/src/lib/actions/generate-emails.js +9 -13
  5. package/src/lib/actions/generate-emails.js.map +1 -1
  6. package/src/lib/common/dns.js +23 -26
  7. package/src/lib/common/dns.js.map +1 -1
  8. package/src/lib/common/find-email.d.ts +4 -2
  9. package/src/lib/common/find-email.d.ts.map +1 -1
  10. package/src/lib/common/find-email.js +36 -36
  11. package/src/lib/common/find-email.js.map +1 -1
  12. package/src/lib/common/find-person.js +59 -55
  13. package/src/lib/common/find-person.js.map +1 -1
  14. package/src/lib/common/http.js +7 -5
  15. package/src/lib/common/http.js.map +1 -1
  16. package/src/lib/common/mx-fingerprint.js +3 -4
  17. package/src/lib/common/mx-fingerprint.js.map +1 -1
  18. package/src/lib/common/patterns.js +5 -6
  19. package/src/lib/common/patterns.js.map +1 -1
  20. package/src/lib/common/providers/o365.js +73 -81
  21. package/src/lib/common/providers/o365.js.map +1 -1
  22. package/src/lib/common/verifier.d.ts +2 -0
  23. package/src/lib/common/verifier.d.ts.map +1 -1
  24. package/src/lib/common/verifiers/no2bounce-verifier.d.ts +15 -6
  25. package/src/lib/common/verifiers/no2bounce-verifier.d.ts.map +1 -1
  26. package/src/lib/common/verifiers/no2bounce-verifier.js +232 -96
  27. package/src/lib/common/verifiers/no2bounce-verifier.js.map +1 -1
  28. package/src/lib/common/verifiers/o365-verifier.d.ts.map +1 -1
  29. package/src/lib/common/verifiers/o365-verifier.js +17 -18
  30. package/src/lib/common/verifiers/o365-verifier.js.map +1 -1
@@ -12,10 +12,9 @@ exports.normalizeNamePart = normalizeNamePart;
12
12
  exports.normalizeDomain = normalizeDomain;
13
13
  exports.generateEmailCandidates = generateEmailCandidates;
14
14
  function stripDiacritics(input) {
15
- var _a;
16
15
  let result = "";
17
16
  for (const char of input.normalize("NFKD")) {
18
- const code = (_a = char.codePointAt(0)) !== null && _a !== void 0 ? _a : 0;
17
+ const code = char.codePointAt(0) ?? 0;
19
18
  // Drop combining diacritical marks (U+0300–U+036F).
20
19
  if (code >= 0x0300 && code <= 0x036f) {
21
20
  continue;
@@ -26,13 +25,13 @@ function stripDiacritics(input) {
26
25
  }
27
26
  /** Lowercase, strip accents and keep only [a-z0-9]. */
28
27
  function normalizeNamePart(value) {
29
- return stripDiacritics(value !== null && value !== void 0 ? value : "")
28
+ return stripDiacritics(value ?? "")
30
29
  .toLowerCase()
31
30
  .replace(/[^a-z0-9]/g, "");
32
31
  }
33
32
  /** Strip protocol, path, leading "@" and lowercase a domain input. */
34
33
  function normalizeDomain(value) {
35
- return (value !== null && value !== void 0 ? value : "")
34
+ return (value ?? "")
36
35
  .trim()
37
36
  .toLowerCase()
38
37
  .replace(/^https?:\/\//, "")
@@ -75,7 +74,6 @@ const PATTERNS = [
75
74
  * Returns an empty array when the domain or both name parts are missing.
76
75
  */
77
76
  function generateEmailCandidates(params) {
78
- var _a;
79
77
  const first = normalizeNamePart(params.firstName);
80
78
  const last = normalizeNamePart(params.lastName);
81
79
  const domain = normalizeDomain(params.domain);
@@ -98,7 +96,8 @@ function generateEmailCandidates(params) {
98
96
  seen.add(local);
99
97
  locals.push(local);
100
98
  }
101
- const limit = (_a = params.maxVariants) !== null && _a !== void 0 ? _a : (params.patternSet === "common" ? COMMON_LIMIT : locals.length);
99
+ const limit = params.maxVariants ??
100
+ (params.patternSet === "common" ? COMMON_LIMIT : locals.length);
102
101
  return locals
103
102
  .slice(0, Math.max(0, limit))
104
103
  .map((local) => `${local}@${domain}`);
@@ -1 +1 @@
1
- {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../../../src/lib/common/patterns.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAgBH,8CAIC;AAGD,0CAQC;AA4DD,0DAkCC;AA3HD,SAAS,eAAe,CAAC,KAAa;;IAClC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC;QACtC,oDAAoD;QACpD,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YACnC,SAAS;QACb,CAAC;QACD,MAAM,IAAI,IAAI,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,uDAAuD;AACvD,SAAgB,iBAAiB,CAAC,KAAa;IAC3C,OAAO,eAAe,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAC;SAC9B,WAAW,EAAE;SACb,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AACnC,CAAC;AAED,sEAAsE;AACtE,SAAgB,eAAe,CAAC,KAAa;IACzC,OAAO,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAC;SACf,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;SAC3B,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;SACjB,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;SACpB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AAqBD,MAAM,gBAAgB,GAAG,mCAAmC,CAAC;AAE7D,kFAAkF;AAClF,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,GAAW,EAAE,CAAS,EAAU,EAAE,CACvD,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAEnC,4EAA4E;AAC5E,4EAA4E;AAC5E,+EAA+E;AAC/E,gDAAgD;AAChD,MAAM,QAAQ,GAAiC;IAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,aAAa;IAChD,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,YAAY;IAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,2BAA2B;IAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,aAAa;IAC/C,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,aAAa;IAChD,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,YAAY;IAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,aAAa;IAChD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,2BAA2B;IAC1C,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,aAAa;IAChD,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY;IAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW;IACxC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,aAAa;IAC/C,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,aAAa;IAChD,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,aAAa;IAChD,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,YAAY;IAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,YAAY;IAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY;IAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY;IAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW;IACxC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY;CAChD,CAAC;AAEF;;;GAGG;AACH,SAAgB,uBAAuB,CAAC,MAA4B;;IAChE,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE9C,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAc;QACrB,KAAK;QACL,IAAI;QACJ,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACnB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;KACrB,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7D,SAAS;QACb,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,KAAK,GACP,MAAA,MAAM,CAAC,WAAW,mCAClB,CAAC,MAAM,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEpE,OAAO,MAAM;SACR,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;SAC5B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../../../src/lib/common/patterns.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,6 @@ exports.isMicrosoftConsumerDomain = isMicrosoftConsumerDomain;
25
25
  exports.interpretIfExists = interpretIfExists;
26
26
  exports.getUserRealm = getUserRealm;
27
27
  exports.checkO365Account = checkO365Account;
28
- const tslib_1 = require("tslib");
29
28
  const http_1 = require("../http");
30
29
  exports.O365_UNCHECKED = {
31
30
  checked: false,
@@ -77,60 +76,55 @@ function interpretIfExists(code) {
77
76
  return null;
78
77
  }
79
78
  /** Classify a domain's Microsoft namespace. Returns null on any failure. */
80
- function getUserRealm(domain, timeoutMs) {
81
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
82
- const login = encodeURIComponent(`probe@${domain}`);
83
- try {
84
- const res = yield (0, http_1.httpRequest)({
85
- url: `https://login.microsoftonline.com/getuserrealm.srf?login=${login}&json=1`,
86
- method: "GET",
87
- timeoutMs,
88
- });
89
- if (res.status !== 200) {
90
- return null;
91
- }
92
- const data = JSON.parse(res.body);
93
- const ns = data.NameSpaceType;
94
- if (ns === "Managed" || ns === "Federated" || ns === "Unknown") {
95
- return ns;
96
- }
79
+ async function getUserRealm(domain, timeoutMs) {
80
+ const login = encodeURIComponent(`probe@${domain}`);
81
+ try {
82
+ const res = await (0, http_1.httpRequest)({
83
+ url: `https://login.microsoftonline.com/getuserrealm.srf?login=${login}&json=1`,
84
+ method: "GET",
85
+ timeoutMs,
86
+ });
87
+ if (res.status !== 200) {
97
88
  return null;
98
89
  }
99
- catch (_a) {
100
- return null;
90
+ const data = JSON.parse(res.body);
91
+ const ns = data.NameSpaceType;
92
+ if (ns === "Managed" || ns === "Federated" || ns === "Unknown") {
93
+ return ns;
101
94
  }
102
- });
95
+ return null;
96
+ }
97
+ catch {
98
+ return null;
99
+ }
103
100
  }
104
101
  /** Query GetCredentialType for a single address. Returns null code on failure. */
105
- function probeCredentialType(email, timeoutMs) {
106
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
107
- var _a;
108
- try {
109
- const res = yield (0, http_1.httpRequest)({
110
- url: "https://login.microsoftonline.com/common/GetCredentialType?mkt=en-US",
111
- method: "POST",
112
- headers: { "Content-Type": "application/json; charset=UTF-8" },
113
- body: JSON.stringify({
114
- Username: email,
115
- isOtherIdpSupported: true,
116
- }),
117
- timeoutMs,
118
- });
119
- if (res.status !== 200) {
120
- return { ifExistsResult: null, throttled: false };
121
- }
122
- const data = JSON.parse(res.body);
123
- return {
124
- ifExistsResult: typeof data.IfExistsResult === "number"
125
- ? data.IfExistsResult
126
- : null,
127
- throttled: ((_a = data.ThrottleStatus) !== null && _a !== void 0 ? _a : 0) !== 0,
128
- };
129
- }
130
- catch (_b) {
102
+ async function probeCredentialType(email, timeoutMs) {
103
+ try {
104
+ const res = await (0, http_1.httpRequest)({
105
+ url: "https://login.microsoftonline.com/common/GetCredentialType?mkt=en-US",
106
+ method: "POST",
107
+ headers: { "Content-Type": "application/json; charset=UTF-8" },
108
+ body: JSON.stringify({
109
+ Username: email,
110
+ isOtherIdpSupported: true,
111
+ }),
112
+ timeoutMs,
113
+ });
114
+ if (res.status !== 200) {
131
115
  return { ifExistsResult: null, throttled: false };
132
116
  }
133
- });
117
+ const data = JSON.parse(res.body);
118
+ return {
119
+ ifExistsResult: typeof data.IfExistsResult === "number"
120
+ ? data.IfExistsResult
121
+ : null,
122
+ throttled: (data.ThrottleStatus ?? 0) !== 0,
123
+ };
124
+ }
125
+ catch {
126
+ return { ifExistsResult: null, throttled: false };
127
+ }
134
128
  }
135
129
  /**
136
130
  * Run the account-existence check for one email, given a pre-resolved namespace
@@ -138,42 +132,40 @@ function probeCredentialType(email, timeoutMs) {
138
132
  * be Microsoft-backed (Managed namespace, Microsoft MX, or a consumer domain);
139
133
  * otherwise GetCredentialType returns noise for unrelated domains.
140
134
  */
141
- function checkO365Account(email, namespace, applicable, timeoutMs) {
142
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
143
- if (!applicable) {
144
- return Object.assign(Object.assign({}, exports.O365_UNCHECKED), { namespace, reason: "not_microsoft_domain" });
145
- }
146
- const probe = yield probeCredentialType(email, timeoutMs);
147
- if (probe.throttled) {
148
- return {
149
- checked: false,
150
- exists: null,
151
- namespace,
152
- ifExistsResult: probe.ifExistsResult,
153
- reason: "throttled",
154
- };
155
- }
156
- if (probe.ifExistsResult === null) {
157
- return {
158
- checked: false,
159
- exists: null,
160
- namespace,
161
- ifExistsResult: null,
162
- reason: "no_result",
163
- };
164
- }
165
- const exists = interpretIfExists(probe.ifExistsResult);
135
+ async function checkO365Account(email, namespace, applicable, timeoutMs) {
136
+ if (!applicable) {
137
+ return { ...exports.O365_UNCHECKED, namespace, reason: "not_microsoft_domain" };
138
+ }
139
+ const probe = await probeCredentialType(email, timeoutMs);
140
+ if (probe.throttled) {
166
141
  return {
167
- checked: exists !== null,
168
- exists,
142
+ checked: false,
143
+ exists: null,
169
144
  namespace,
170
145
  ifExistsResult: probe.ifExistsResult,
171
- reason: exists === true
172
- ? "account_exists"
173
- : exists === false
174
- ? "account_not_found"
175
- : "inconclusive",
146
+ reason: "throttled",
147
+ };
148
+ }
149
+ if (probe.ifExistsResult === null) {
150
+ return {
151
+ checked: false,
152
+ exists: null,
153
+ namespace,
154
+ ifExistsResult: null,
155
+ reason: "no_result",
176
156
  };
177
- });
157
+ }
158
+ const exists = interpretIfExists(probe.ifExistsResult);
159
+ return {
160
+ checked: exists !== null,
161
+ exists,
162
+ namespace,
163
+ ifExistsResult: probe.ifExistsResult,
164
+ reason: exists === true
165
+ ? "account_exists"
166
+ : exists === false
167
+ ? "account_not_found"
168
+ : "inconclusive",
169
+ };
178
170
  }
179
171
  //# sourceMappingURL=o365.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"o365.js","sourceRoot":"","sources":["../../../../../src/lib/common/providers/o365.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"o365.js","sourceRoot":"","sources":["../../../../../src/lib/common/providers/o365.ts"],"names":[],"mappings":"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"}
@@ -18,5 +18,7 @@ export interface VerifyOutcome {
18
18
  export interface Verifier {
19
19
  readonly name: string;
20
20
  verify(email: string): Promise<VerifyOutcome>;
21
+ /** Optional bulk path: returns one outcome per input email, in input order. */
22
+ verifyBatch?(emails: string[]): Promise<VerifyOutcome[]>;
21
23
  }
22
24
  //# sourceMappingURL=verifier.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"verifier.d.ts","sourceRoot":"","sources":["../../../../src/lib/common/verifier.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAE1E,MAAM,WAAW,aAAa;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,aAAa,CAAC;IACvB,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACjD"}
1
+ {"version":3,"file":"verifier.d.ts","sourceRoot":"","sources":["../../../../src/lib/common/verifier.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAE1E,MAAM,WAAW,aAAa;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,aAAa,CAAC;IACvB,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9C,+EAA+E;IAC/E,WAAW,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;CAC5D"}
@@ -1,11 +1,14 @@
1
1
  /**
2
- * Verifier adapter for the no2bounce API (wire format confirmed against the
3
- * live API).
2
+ * Verifier adapter for the no2bounce API (wire format confirmed against the live
3
+ * API; the published docs were out of date).
4
4
  *
5
- * Async flow: POST a 1-email batch to get a `trackingId` (under `data`), then
6
- * GET-poll `?trackingId=` until the *top-level* `overallStatus` is "Completed".
7
- * For a single email the top-level count fields are that email's verdict.
8
- * Billing is 1 credit per email (`creditDebited`), with no refund on undeliverable.
5
+ * Async flow: POST an `emailList` to get a `trackingId` (under `data`), then
6
+ * GET-poll `?trackingId=`. A single address completes with top-level aggregate
7
+ * counts that are that address's verdict. A multi-address batch completes with
8
+ * those same counts (now sums, which can't identify individual addresses) plus
9
+ * `result.downloadFile` — a signed CSV whose rows
10
+ * (`email,finalScore,finalScoreValue,catchall`) carry the per-address verdicts.
11
+ * Billing is 1 credit per email with no refund, charged on submit.
9
12
  */
10
13
  import type { Verifier, VerifyVerdict } from "../verifier";
11
14
  export interface No2BounceOptions {
@@ -28,7 +31,13 @@ export interface DecodedResult {
28
31
  verdict: VerifyVerdict;
29
32
  catchAll: boolean;
30
33
  }
34
+ interface ReportRow {
35
+ value: string;
36
+ catchall: boolean;
37
+ }
31
38
  export declare function decodeSingle(r: PollResult): DecodedResult;
39
+ export declare function decodeReportRow(row: ReportRow): DecodedResult;
40
+ export declare function parseReport(csv: string): Map<string, ReportRow>;
32
41
  export declare function createNo2BounceVerifier(options: No2BounceOptions): Verifier;
33
42
  export {};
34
43
  //# sourceMappingURL=no2bounce-verifier.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"no2bounce-verifier.d.ts","sourceRoot":"","sources":["../../../../../src/lib/common/verifiers/no2bounce-verifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAiB,aAAa,EAAE,MAAM,aAAa,CAAC;AAI1E,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAMD,UAAU,UAAU;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAKD,wBAAgB,YAAY,CAAC,CAAC,EAAE,UAAU,GAAG,aAAa,CAiBzD;AAaD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,gBAAgB,GAAG,QAAQ,CAiF3E"}
1
+ {"version":3,"file":"no2bounce-verifier.d.ts","sourceRoot":"","sources":["../../../../../src/lib/common/verifiers/no2bounce-verifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAiB,aAAa,EAAE,MAAM,aAAa,CAAC;AAK1E,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAMD,UAAU,UAAU;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAMD,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,SAAS;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACrB;AAKD,wBAAgB,YAAY,CAAC,CAAC,EAAE,UAAU,GAAG,aAAa,CAiBzD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,SAAS,GAAG,aAAa,CAY7D;AAgCD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAyB/D;AAKD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,gBAAgB,GAAG,QAAQ,CA0K3E"}