@konfeature/ap-email-guessr 0.1.0 → 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.
Files changed (60) hide show
  1. package/package.json +9 -40
  2. package/src/i18n/translation.json +17 -0
  3. package/src/index.d.ts.map +1 -0
  4. package/src/index.js.map +1 -0
  5. package/src/lib/actions/find-email.d.ts.map +1 -0
  6. package/{dist/src → src}/lib/actions/find-email.js +35 -31
  7. package/src/lib/actions/find-email.js.map +1 -0
  8. package/src/lib/actions/generate-emails.d.ts.map +1 -0
  9. package/{dist/src → src}/lib/actions/generate-emails.js +13 -9
  10. package/src/lib/actions/generate-emails.js.map +1 -0
  11. package/src/lib/common/dns.d.ts.map +1 -0
  12. package/src/lib/common/dns.js +40 -0
  13. package/src/lib/common/dns.js.map +1 -0
  14. package/src/lib/common/find-email.d.ts.map +1 -0
  15. package/src/lib/common/find-email.js +82 -0
  16. package/src/lib/common/find-email.js.map +1 -0
  17. package/src/lib/common/find-person.d.ts.map +1 -0
  18. package/src/lib/common/find-person.js +98 -0
  19. package/src/lib/common/find-person.js.map +1 -0
  20. package/src/lib/common/http.d.ts.map +1 -0
  21. package/{dist/src → src}/lib/common/http.js +5 -7
  22. package/src/lib/common/http.js.map +1 -0
  23. package/src/lib/common/mx-fingerprint.d.ts.map +1 -0
  24. package/{dist/src → src}/lib/common/mx-fingerprint.js +4 -3
  25. package/src/lib/common/mx-fingerprint.js.map +1 -0
  26. package/src/lib/common/patterns.d.ts.map +1 -0
  27. package/{dist/src → src}/lib/common/patterns.js +6 -5
  28. package/src/lib/common/patterns.js.map +1 -0
  29. package/src/lib/common/providers/o365.d.ts.map +1 -0
  30. package/{dist/src → src}/lib/common/providers/o365.js +81 -73
  31. package/src/lib/common/providers/o365.js.map +1 -0
  32. package/src/lib/common/verifier.d.ts.map +1 -0
  33. package/src/lib/common/verifier.js.map +1 -0
  34. package/src/lib/common/verifiers/no2bounce-verifier.d.ts.map +1 -0
  35. package/src/lib/common/verifiers/no2bounce-verifier.js +135 -0
  36. package/src/lib/common/verifiers/no2bounce-verifier.js.map +1 -0
  37. package/src/lib/common/verifiers/o365-verifier.d.ts.map +1 -0
  38. package/src/lib/common/verifiers/o365-verifier.js +33 -0
  39. package/src/lib/common/verifiers/o365-verifier.js.map +1 -0
  40. package/README.md +0 -128
  41. package/dist/src/lib/common/dns.js +0 -37
  42. package/dist/src/lib/common/find-email.js +0 -78
  43. package/dist/src/lib/common/find-person.js +0 -102
  44. package/dist/src/lib/common/verifiers/no2bounce-verifier.js +0 -123
  45. package/dist/src/lib/common/verifiers/o365-verifier.js +0 -30
  46. /package/{dist/src → src}/index.d.ts +0 -0
  47. /package/{dist/src → src}/index.js +0 -0
  48. /package/{dist/src → src}/lib/actions/find-email.d.ts +0 -0
  49. /package/{dist/src → src}/lib/actions/generate-emails.d.ts +0 -0
  50. /package/{dist/src → src}/lib/common/dns.d.ts +0 -0
  51. /package/{dist/src → src}/lib/common/find-email.d.ts +0 -0
  52. /package/{dist/src → src}/lib/common/find-person.d.ts +0 -0
  53. /package/{dist/src → src}/lib/common/http.d.ts +0 -0
  54. /package/{dist/src → src}/lib/common/mx-fingerprint.d.ts +0 -0
  55. /package/{dist/src → src}/lib/common/patterns.d.ts +0 -0
  56. /package/{dist/src → src}/lib/common/providers/o365.d.ts +0 -0
  57. /package/{dist/src → src}/lib/common/verifier.d.ts +0 -0
  58. /package/{dist/src → src}/lib/common/verifier.js +0 -0
  59. /package/{dist/src → src}/lib/common/verifiers/no2bounce-verifier.d.ts +0 -0
  60. /package/{dist/src → src}/lib/common/verifiers/o365-verifier.d.ts +0 -0
package/package.json CHANGED
@@ -1,42 +1,11 @@
1
1
  {
2
- "name": "@konfeature/ap-email-guessr",
3
- "version": "0.1.0",
4
- "description": "Activepieces piece that finds a person's email from their name and company domain — free Microsoft 365 account checks plus no2bounce verification, with early-stop to minimize credits.",
5
- "type": "commonjs",
6
- "main": "./dist/src/index.js",
7
- "types": "./dist/src/index.d.ts",
8
- "files": ["dist/src/**/*.js", "dist/src/**/*.d.ts", "README.md"],
9
- "license": "MIT",
10
- "author": "KONFeature",
11
- "repository": {
12
- "type": "git",
13
- "url": "git+https://github.com/KONFeature/ap-email-guessr.git"
14
- },
15
- "homepage": "https://github.com/KONFeature/ap-email-guessr#readme",
16
- "bugs": {
17
- "url": "https://github.com/KONFeature/ap-email-guessr/issues"
18
- },
19
- "keywords": [
20
- "activepieces",
21
- "activepieces-piece",
22
- "email",
23
- "email-finder",
24
- "email-verification",
25
- "no2bounce",
26
- "office365"
27
- ],
28
- "publishConfig": {
29
- "access": "public"
30
- },
31
- "scripts": {
32
- "build": "tsc -p tsconfig.json",
33
- "prepublishOnly": "npm run build"
34
- },
35
- "dependencies": {
36
- "@activepieces/pieces-framework": "0.30.0"
37
- },
38
- "devDependencies": {
39
- "@types/node": "^20.19.0",
40
- "typescript": "^5.7.3"
41
- }
2
+ "name": "@konfeature/ap-email-guessr",
3
+ "version": "0.1.1",
4
+ "type": "commonjs",
5
+ "main": "./src/index.js",
6
+ "types": "./src/index.d.ts",
7
+ "dependencies": {
8
+ "@activepieces/pieces-framework": "0.30.0",
9
+ "tslib": "2.6.2"
10
+ }
42
11
  }
@@ -0,0 +1,17 @@
1
+ {
2
+ "Generate likely email addresses from a name and domain, then find the real one — free Microsoft 365 checks plus no2bounce verification, with early-stop to minimize credits.": "Generate likely email addresses from a name and domain, then find the real one — free Microsoft 365 checks plus no2bounce verification, with early-stop to minimize credits.",
3
+ "no2bounce API Token": "no2bounce API Token",
4
+ "API token from no2bounce, used to verify non-Microsoft domains. Optional: Microsoft-backed domains are verified for free via the O365 account check.": "API token from no2bounce, used to verify non-Microsoft domains. Optional: Microsoft-backed domains are verified for free via the O365 account check.",
5
+ "Find Email": "Find Email",
6
+ "Find a person's email from their name and company domain. Generates likely addresses (ordered by real-world frequency), then verifies them top-down — stopping at the first hit or on a catch-all domain — routing Microsoft domains through the free O365 check and everything else through no2bounce.": "Find a person's email from their name and company domain. Generates likely addresses (ordered by real-world frequency), then verifies them top-down — stopping at the first hit or on a catch-all domain — routing Microsoft domains through the free O365 check and everything else through no2bounce.",
7
+ "Generate Email List": "Generate Email List",
8
+ "Build a list of likely email addresses from a first name, last name and domain, ordered by real-world corporate naming frequency (most likely first).": "Build a list of likely email addresses from a first name, last name and domain, ordered by real-world corporate naming frequency (most likely first).",
9
+ "First Name": "First Name",
10
+ "Last Name": "Last Name",
11
+ "Domain": "Domain",
12
+ "Pattern Set": "Pattern Set",
13
+ "Max Verifications (credit cap)": "Max Verifications (credit cap)",
14
+ "Use O365 Check": "Use O365 Check",
15
+ "Timeout (seconds)": "Timeout (seconds)",
16
+ "Max Variants": "Max Variants"
17
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,oHAgBtB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,qEAAwE;AACxE,yDAA2D;AAC3D,mEAA+D;AAElD,QAAA,WAAW,GAAG,IAAA,8BAAW,EAAC;IACnC,WAAW,EAAE,cAAc;IAC3B,WAAW,EACP,8KAA8K;IAClL,IAAI,EAAE,4BAAS,CAAC,UAAU,CAAC;QACvB,WAAW,EAAE,qBAAqB;QAClC,WAAW,EACP,sJAAsJ;QAC1J,QAAQ,EAAE,KAAK;KAClB,CAAC;IACF,uBAAuB,EAAE,QAAQ;IACjC,OAAO,EACH,0EAA0E;IAC9E,OAAO,EAAE,CAAC,MAAM,CAAC;IACjB,OAAO,EAAE,CAAC,gCAAc,EAAE,4BAAe,CAAC;IAC1C,QAAQ,EAAE,EAAE;CACf,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-email.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/find-email.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,eAAe;;;;;;;;EA6F1B,CAAC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.findEmailAction = void 0;
4
+ const tslib_1 = require("tslib");
4
5
  const pieces_framework_1 = require("@activepieces/pieces-framework");
5
6
  const find_person_1 = require("../common/find-person");
6
7
  exports.findEmailAction = (0, pieces_framework_1.createAction)({
@@ -53,38 +54,41 @@ exports.findEmailAction = (0, pieces_framework_1.createAction)({
53
54
  defaultValue: 15,
54
55
  }),
55
56
  },
56
- async run(context) {
57
- const { firstName, lastName, domain, patternSet, maxChecks, useO365 } = context.propsValue;
58
- const timeoutSeconds = context.propsValue.timeout ?? 15;
59
- const timeoutMs = Math.min(Math.max(Number(timeoutSeconds) || 15, 1), 120) * 1000;
60
- const token = context.auth || undefined;
61
- const result = await (0, find_person_1.findPersonEmail)(firstName, lastName, domain, {
62
- patternSet: patternSet ?? "common",
63
- maxChecks: maxChecks != null ? Math.max(1, Number(maxChecks)) : undefined,
64
- stopOnFirstHit: true,
65
- timeoutMs,
66
- useO365: useO365 ?? true,
67
- no2bounceToken: token,
57
+ run(context) {
58
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
59
+ var _a, _b;
60
+ const { firstName, lastName, domain, patternSet, maxChecks, useO365 } = context.propsValue;
61
+ const timeoutSeconds = (_a = context.propsValue.timeout) !== null && _a !== void 0 ? _a : 15;
62
+ const timeoutMs = Math.min(Math.max(Number(timeoutSeconds) || 15, 1), 120) * 1000;
63
+ const token = context.auth || undefined;
64
+ const result = yield (0, find_person_1.findPersonEmail)(firstName, lastName, domain, {
65
+ patternSet: (_b = patternSet) !== null && _b !== void 0 ? _b : "common",
66
+ maxChecks: maxChecks != null ? Math.max(1, Number(maxChecks)) : undefined,
67
+ stopOnFirstHit: true,
68
+ timeoutMs,
69
+ useO365: useO365 !== null && useO365 !== void 0 ? useO365 : true,
70
+ no2bounceToken: token,
71
+ });
72
+ return {
73
+ found: result.found,
74
+ email: result.email,
75
+ status: result.verdict,
76
+ confidence: result.confidence,
77
+ catchAll: result.catchAll,
78
+ domain: result.domain,
79
+ mxProvider: result.mxProvider,
80
+ verifier: result.verifierUsed,
81
+ reason: result.reason,
82
+ creditsUsed: result.creditsUsed,
83
+ candidatesChecked: result.candidatesChecked,
84
+ candidatesConsidered: result.candidatesConsidered,
85
+ attempts: result.attempts.map((attempt) => ({
86
+ email: attempt.email,
87
+ verdict: attempt.verdict,
88
+ reason: attempt.reason,
89
+ })),
90
+ };
68
91
  });
69
- return {
70
- found: result.found,
71
- email: result.email,
72
- status: result.verdict,
73
- confidence: result.confidence,
74
- catchAll: result.catchAll,
75
- domain: result.domain,
76
- mxProvider: result.mxProvider,
77
- verifier: result.verifierUsed,
78
- reason: result.reason,
79
- creditsUsed: result.creditsUsed,
80
- candidatesChecked: result.candidatesChecked,
81
- candidatesConsidered: result.candidatesConsidered,
82
- attempts: result.attempts.map((attempt) => ({
83
- email: attempt.email,
84
- verdict: attempt.verdict,
85
- reason: attempt.reason,
86
- })),
87
- };
88
92
  },
89
93
  });
90
94
  //# sourceMappingURL=find-email.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-email.js","sourceRoot":"","sources":["../../../../src/lib/actions/find-email.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-emails.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/generate-emails.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc;;;;;;EAsDzB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateEmails = void 0;
4
+ const tslib_1 = require("tslib");
4
5
  const pieces_framework_1 = require("@activepieces/pieces-framework");
5
6
  const patterns_1 = require("../common/patterns");
6
7
  exports.generateEmails = (0, pieces_framework_1.createAction)({
@@ -41,16 +42,19 @@ exports.generateEmails = (0, pieces_framework_1.createAction)({
41
42
  required: false,
42
43
  }),
43
44
  },
44
- async run(context) {
45
- const { firstName, lastName, domain, patternSet, maxVariants } = context.propsValue;
46
- const emails = (0, patterns_1.generateEmailCandidates)({
47
- firstName,
48
- lastName,
49
- domain,
50
- patternSet: patternSet ?? "all",
51
- maxVariants: maxVariants != null ? Number(maxVariants) : undefined,
45
+ run(context) {
46
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
47
+ var _a;
48
+ const { firstName, lastName, domain, patternSet, maxVariants } = context.propsValue;
49
+ const emails = (0, patterns_1.generateEmailCandidates)({
50
+ firstName,
51
+ lastName,
52
+ domain,
53
+ patternSet: (_a = patternSet) !== null && _a !== void 0 ? _a : "all",
54
+ maxVariants: maxVariants != null ? Number(maxVariants) : undefined,
55
+ });
56
+ return { emails, count: emails.length };
52
57
  });
53
- return { emails, count: emails.length };
54
58
  },
55
59
  });
56
60
  //# sourceMappingURL=generate-emails.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-emails.js","sourceRoot":"","sources":["../../../../src/lib/actions/generate-emails.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,iDAA8E;AAEjE,QAAA,cAAc,GAAG,IAAA,+BAAY,EAAC;IACvC,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,qBAAqB;IAClC,WAAW,EACP,uJAAuJ;IAC3J,KAAK,EAAE;QACH,SAAS,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC1B,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE,gDAAgD;YAC7D,QAAQ,EAAE,IAAI;SACjB,CAAC;QACF,QAAQ,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACzB,WAAW,EAAE,WAAW;YACxB,WAAW,EAAE,+CAA+C;YAC5D,QAAQ,EAAE,IAAI;SACjB,CAAC;QACF,MAAM,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACvB,WAAW,EAAE,QAAQ;YACrB,WAAW,EAAE,mCAAmC;YAChD,QAAQ,EAAE,IAAI;SACjB,CAAC;QACF,UAAU,EAAE,2BAAQ,CAAC,cAAc,CAAC;YAChC,WAAW,EAAE,aAAa;YAC1B,WAAW,EACP,wHAAwH;YAC5H,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE;gBACL,OAAO,EAAE;oBACL,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,KAAK,EAAE;oBAC7C,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,QAAQ,EAAE;iBAClD;aACJ;SACJ,CAAC;QACF,WAAW,EAAE,2BAAQ,CAAC,MAAM,CAAC;YACzB,WAAW,EAAE,cAAc;YAC3B,WAAW,EACP,iFAAiF;YACrF,QAAQ,EAAE,KAAK;SAClB,CAAC;KACL;IACK,GAAG,CAAC,OAAO;;;YACb,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAC1D,OAAO,CAAC,UAAU,CAAC;YACvB,MAAM,MAAM,GAAG,IAAA,kCAAuB,EAAC;gBACnC,SAAS;gBACT,QAAQ;gBACR,MAAM;gBACN,UAAU,EAAE,MAAC,UAAqC,mCAAI,KAAK;gBAC3D,WAAW,EACP,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;aAC5D,CAAC,CAAC;YACH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QAC5C,CAAC;KAAA;CACJ,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dns.d.ts","sourceRoot":"","sources":["../../../../src/lib/common/dns.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,WAAW;IACxB,2EAA2E;IAC3E,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,+DAA+D;IAC/D,MAAM,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA0BtE"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ /**
3
+ * Domain mail-routing resolution (DNS only, Node built-ins).
4
+ *
5
+ * Used by the verifier router to fingerprint the provider and detect domains
6
+ * that cannot receive mail (no MX, or an explicit RFC 7505 null MX).
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.resolveMail = resolveMail;
10
+ const tslib_1 = require("tslib");
11
+ const node_dns_1 = require("node:dns");
12
+ function resolveMail(domain) {
13
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
14
+ try {
15
+ const records = yield node_dns_1.promises.resolveMx(domain);
16
+ const real = records.filter((record) => record.exchange && record.exchange !== ".");
17
+ // Records exist but every exchange is empty/"." → explicit null MX.
18
+ if (records.length > 0 && real.length === 0) {
19
+ return { hosts: [], nullMx: true };
20
+ }
21
+ if (real.length > 0) {
22
+ const hosts = real
23
+ .sort((a, b) => a.priority - b.priority)
24
+ .map((record) => record.exchange);
25
+ return { hosts, nullMx: false };
26
+ }
27
+ }
28
+ catch (_a) {
29
+ // No MX records; fall back to the implicit-MX (A/AAAA) lookup below.
30
+ }
31
+ try {
32
+ yield node_dns_1.promises.lookup(domain);
33
+ return { hosts: [domain], nullMx: false };
34
+ }
35
+ catch (_b) {
36
+ return { hosts: [], nullMx: false };
37
+ }
38
+ });
39
+ }
40
+ //# sourceMappingURL=dns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dns.js","sourceRoot":"","sources":["../../../../src/lib/common/dns.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAWH,kCA0BC;;AAnCD,uCAA2C;AAS3C,SAAsB,WAAW,CAAC,MAAc;;QAC5C,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,mBAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CACvB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,GAAG,CACzD,CAAC;YACF,oEAAoE;YACpE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1C,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YACvC,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClB,MAAM,KAAK,GAAG,IAAI;qBACb,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;qBACvC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACtC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;YACpC,CAAC;QACL,CAAC;QAAC,WAAM,CAAC;YACL,qEAAqE;QACzE,CAAC;QAED,IAAI,CAAC;YACD,MAAM,mBAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzB,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC9C,CAAC;QAAC,WAAM,CAAC;YACL,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QACxC,CAAC;IACL,CAAC;CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-email.d.ts","sourceRoot":"","sources":["../../../../src/lib/common/find-email.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEzE,MAAM,WAAW,gBAAgB;IAC7B,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC7B;AAgCD,wBAAsB,SAAS,CAC3B,UAAU,EAAE,MAAM,EAAE,EACpB,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,gBAAqB,GAC/B,OAAO,CAAC,eAAe,CAAC,CAmE1B"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ /**
3
+ * Credit-minimizing email search (layers 1 + 2).
4
+ *
5
+ * Candidates arrive pre-ordered by likelihood and are verified top-down in
6
+ * rounds of `batchSize` (1 = strictly sequential). Each completed round is read
7
+ * back in candidate order, so the verdict is identical to checking one at a time:
8
+ * - stop at the first `valid` hit (layer 2: early-stop), and
9
+ * - stop immediately on a `catch_all` verdict, since a catch-all domain the
10
+ * verifier can't score further can't disambiguate individual mailboxes —
11
+ * continuing would just burn credits for no extra signal (layer 1).
12
+ *
13
+ * no2bounce bills per email with no refund, so a round is paid for the moment it
14
+ * is submitted: `creditsUsed` counts every email in the rounds we started, even
15
+ * when an early candidate in the final round is the hit. A larger `batchSize` is
16
+ * thus faster (fewer submit/poll cycles) but coarser on credits. `maxChecks` is a
17
+ * hard ceiling; a `valid` hit on an accept-all domain is reported with reduced
18
+ * confidence and `catchAll: true`.
19
+ */
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.findEmail = findEmail;
22
+ const tslib_1 = require("tslib");
23
+ const CONFIDENCE = {
24
+ valid: 0.9,
25
+ catch_all: 0.5,
26
+ invalid: 0.05,
27
+ unknown: 0.5,
28
+ };
29
+ function result(found, email, verdict, catchAll, attempts, creditsUsed) {
30
+ // An accept-all "hit" is probabilistic, so trust it less than a clean one.
31
+ const confidence = verdict === "valid" && catchAll ? 0.6 : CONFIDENCE[verdict];
32
+ return {
33
+ found,
34
+ email,
35
+ verdict,
36
+ confidence,
37
+ catchAll,
38
+ candidatesChecked: attempts.length,
39
+ creditsUsed,
40
+ attempts,
41
+ };
42
+ }
43
+ function findEmail(candidates_1, verifier_1) {
44
+ return tslib_1.__awaiter(this, arguments, void 0, function* (candidates, verifier, options = {}) {
45
+ var _a, _b, _c, _d, _e;
46
+ const stopOnFirstHit = (_a = options.stopOnFirstHit) !== null && _a !== void 0 ? _a : true;
47
+ const batchSize = Math.max(1, (_b = options.batchSize) !== null && _b !== void 0 ? _b : 1);
48
+ const limit = Math.min((_c = options.maxChecks) !== null && _c !== void 0 ? _c : candidates.length, candidates.length);
49
+ const attempts = [];
50
+ let creditsUsed = 0;
51
+ let firstValid = null;
52
+ for (let start = 0; start < limit; start += batchSize) {
53
+ const round = candidates.slice(start, Math.min(start + batchSize, limit));
54
+ const outcomes = yield Promise.all(round.map((email) => verifier.verify(email)));
55
+ // The whole round is billed on submit (no2bounce charges per email with
56
+ // no refund), so count every result before deciding the verdict.
57
+ for (const outcome of outcomes) {
58
+ attempts.push(outcome);
59
+ creditsUsed += outcome.creditsUsed;
60
+ }
61
+ for (const outcome of outcomes) {
62
+ if (outcome.verdict === "catch_all") {
63
+ return result(false, null, "catch_all", true, attempts, creditsUsed);
64
+ }
65
+ if (outcome.verdict === "valid") {
66
+ if (!firstValid) {
67
+ firstValid = outcome;
68
+ }
69
+ if (stopOnFirstHit) {
70
+ return result(true, outcome.email, "valid", (_d = outcome.catchAll) !== null && _d !== void 0 ? _d : false, attempts, creditsUsed);
71
+ }
72
+ }
73
+ }
74
+ }
75
+ if (firstValid) {
76
+ return result(true, firstValid.email, "valid", (_e = firstValid.catchAll) !== null && _e !== void 0 ? _e : false, attempts, creditsUsed);
77
+ }
78
+ const sawUnknown = attempts.some((a) => a.verdict === "unknown");
79
+ return result(false, null, sawUnknown ? "unknown" : "invalid", attempts.some((a) => a.catchAll === true), attempts, creditsUsed);
80
+ });
81
+ }
82
+ //# sourceMappingURL=find-email.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-email.js","sourceRoot":"","sources":["../../../../src/lib/common/find-email.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-person.d.ts","sourceRoot":"","sources":["../../../../src/lib/common/find-person.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAO/D,OAAO,EAAE,KAAK,UAAU,EAA4C,MAAM,YAAY,CAAC;AAOvF,MAAM,WAAW,iBAAiB;IAC9B,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;CAChC;AA2BD,wBAAsB,eAAe,CACjC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,iBAAiB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CA6E3B"}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ /**
3
+ * Per-person email finder: generate ordered candidates, pick the right verifier
4
+ * for the domain, then run the credit-minimizing early-stop search.
5
+ *
6
+ * Routing: use the free O365 account check when mail genuinely routes through
7
+ * Microsoft (Microsoft/consumer MX, or a "Managed" realm on a domain that is not
8
+ * a known non-Microsoft mailbox host). Everything else goes to no2bounce. The
9
+ * "Managed realm but Google/Zoho MX" exclusion is the louyetu.fr false-negative
10
+ * fix: a leftover Azure AD tenant must not be trusted as Microsoft mail.
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.findPersonEmail = findPersonEmail;
14
+ const tslib_1 = require("tslib");
15
+ const dns_1 = require("./dns");
16
+ const find_email_1 = require("./find-email");
17
+ const mx_fingerprint_1 = require("./mx-fingerprint");
18
+ const o365_1 = require("./providers/o365");
19
+ const patterns_1 = require("./patterns");
20
+ const no2bounce_verifier_1 = require("./verifiers/no2bounce-verifier");
21
+ const o365_verifier_1 = require("./verifiers/o365-verifier");
22
+ const NO2BOUNCE_BATCH_SIZE = 5;
23
+ function earlyExit(candidatesConsidered, domain, mxProvider, verdict, confidence, reason) {
24
+ return {
25
+ found: false,
26
+ email: null,
27
+ verdict,
28
+ confidence,
29
+ catchAll: false,
30
+ candidatesChecked: 0,
31
+ creditsUsed: 0,
32
+ attempts: [],
33
+ reason,
34
+ domain,
35
+ mxProvider,
36
+ verifierUsed: "none",
37
+ candidatesConsidered,
38
+ };
39
+ }
40
+ function findPersonEmail(firstName, lastName, domain, options) {
41
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
42
+ const candidates = (0, patterns_1.generateEmailCandidates)({
43
+ firstName,
44
+ lastName,
45
+ domain,
46
+ patternSet: options.patternSet,
47
+ maxVariants: options.maxVariants,
48
+ });
49
+ const cleanDomain = (0, patterns_1.normalizeDomain)(domain);
50
+ if (candidates.length === 0) {
51
+ return earlyExit(0, cleanDomain, "none", "invalid", 0.03, "no_candidates");
52
+ }
53
+ const routing = yield (0, dns_1.resolveMail)(cleanDomain);
54
+ const provider = (0, mx_fingerprint_1.fingerprintMx)(routing.hosts);
55
+ if (routing.nullMx) {
56
+ return earlyExit(candidates.length, cleanDomain, provider.id, "invalid", 0.02, "null_mx");
57
+ }
58
+ if (routing.hosts.length === 0) {
59
+ return earlyExit(candidates.length, cleanDomain, provider.id, "invalid", 0.03, "no_mx_record");
60
+ }
61
+ const consumer = (0, o365_1.isMicrosoftConsumerDomain)(cleanDomain);
62
+ let namespace = null;
63
+ let microsoftBacked = consumer || provider.microsoftBacked;
64
+ // Only spend a realm lookup on ambiguous MX (not obviously Microsoft, not a
65
+ // known foreign mailbox host) — that's where O365-behind-a-gateway hides.
66
+ if (options.useO365 &&
67
+ !microsoftBacked &&
68
+ !(0, mx_fingerprint_1.hostsNonMicrosoftMailboxes)(provider)) {
69
+ namespace = yield (0, o365_1.getUserRealm)(cleanDomain, options.timeoutMs);
70
+ if (namespace === "Managed") {
71
+ microsoftBacked = true;
72
+ }
73
+ }
74
+ let verifier;
75
+ let verifierUsed;
76
+ if (options.useO365 && microsoftBacked) {
77
+ verifier = (0, o365_verifier_1.createO365Verifier)(namespace !== null && namespace !== void 0 ? namespace : "Managed", true, options.timeoutMs);
78
+ verifierUsed = "o365";
79
+ }
80
+ else if (options.no2bounceToken) {
81
+ verifier = (0, no2bounce_verifier_1.createNo2BounceVerifier)({
82
+ apitoken: options.no2bounceToken,
83
+ timeoutMs: options.timeoutMs,
84
+ });
85
+ verifierUsed = "no2bounce";
86
+ }
87
+ else {
88
+ return earlyExit(candidates.length, cleanDomain, provider.id, "unknown", 0.5, "no2bounce_token_required");
89
+ }
90
+ const result = yield (0, find_email_1.findEmail)(candidates, verifier, {
91
+ maxChecks: options.maxChecks,
92
+ stopOnFirstHit: options.stopOnFirstHit,
93
+ batchSize: verifierUsed === "no2bounce" ? NO2BOUNCE_BATCH_SIZE : 1,
94
+ });
95
+ return Object.assign(Object.assign({}, result), { reason: `${verifierUsed}_${result.verdict}`, domain: cleanDomain, mxProvider: provider.id, verifierUsed, candidatesConsidered: candidates.length });
96
+ });
97
+ }
98
+ //# sourceMappingURL=find-person.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-person.js","sourceRoot":"","sources":["../../../../src/lib/common/find-person.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../../src/lib/common/http.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACrB;AAKD;;;;GAIG;AACH,wBAAgB,WAAW,CACvB,OAAO,EAAE,kBAAkB,GAC5B,OAAO,CAAC,YAAY,CAAC,CA0DvB"}
@@ -15,7 +15,8 @@ const DEFAULT_USER_AGENT = "Mozilla/5.0 (compatible; ap-email-guessr/0.2; +https
15
15
  * timeout so callers can map those to a neutral signal.
16
16
  */
17
17
  function httpRequest(options) {
18
- const method = options.method ?? "GET";
18
+ var _a;
19
+ const method = (_a = options.method) !== null && _a !== void 0 ? _a : "GET";
19
20
  const url = new URL(options.url);
20
21
  return new Promise((resolve, reject) => {
21
22
  const req = (0, node_https_1.request)({
@@ -24,13 +25,10 @@ function httpRequest(options) {
24
25
  port: url.port || 443,
25
26
  path: `${url.pathname}${url.search}`,
26
27
  method,
27
- headers: {
28
- "User-Agent": DEFAULT_USER_AGENT,
29
- Accept: "*/*",
30
- ...options.headers,
31
- },
28
+ headers: Object.assign({ "User-Agent": DEFAULT_USER_AGENT, Accept: "*/*" }, options.headers),
32
29
  }, (res) => {
33
- const status = res.statusCode ?? 0;
30
+ var _a;
31
+ const status = (_a = res.statusCode) !== null && _a !== void 0 ? _a : 0;
34
32
  // HEAD has no body; drain and resolve immediately.
35
33
  if (method === "HEAD") {
36
34
  res.resume();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../../src/lib/common/http.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAyBH,kCA4DC;AAnFD,2CAAqD;AAerD,MAAM,kBAAkB,GACpB,8EAA8E,CAAC;AAEnF;;;;GAIG;AACH,SAAgB,WAAW,CACvB,OAA2B;;IAE3B,MAAM,MAAM,GAAG,MAAA,OAAO,CAAC,MAAM,mCAAI,KAAK,CAAC;IACvC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEjC,OAAO,IAAI,OAAO,CAAe,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACjD,MAAM,GAAG,GAAG,IAAA,oBAAY,EACpB;YACI,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,GAAG;YACrB,IAAI,EAAE,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE;YACpC,MAAM;YACN,OAAO,kBACH,YAAY,EAAE,kBAAkB,EAChC,MAAM,EAAE,KAAK,IACV,OAAO,CAAC,OAAO,CACrB;SACJ,EACD,CAAC,GAAG,EAAE,EAAE;;YACJ,MAAM,MAAM,GAAG,MAAA,GAAG,CAAC,UAAU,mCAAI,CAAC,CAAC;YAEnC,mDAAmD;YACnD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACpB,GAAG,CAAC,MAAM,EAAE,CAAC;gBACb,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;gBACnD,OAAO;YACX,CAAC;YAED,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,gEAAgE;YAChE,8DAA8D;YAC9D,MAAM,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC;YAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC7B,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;gBACtB,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACJ,GAAG,CAAC,OAAO,EAAE,CAAC;gBAClB,CAAC;YACL,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CACf,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CACpE,CAAC;YACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC,CACJ,CAAC;QAEF,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE;YACnC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAExB,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAClD,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,GAAG,CAAC,GAAG,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mx-fingerprint.d.ts","sourceRoot":"","sources":["../../../../src/lib/common/mx-fingerprint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,MAAM,YAAY,GAClB,QAAQ,GACR,WAAW,GACX,MAAM,GACN,OAAO,GACP,QAAQ,GACR,UAAU,GACV,YAAY,GACZ,UAAU,GACV,WAAW,GACX,gBAAgB,GAChB,OAAO,GACP,MAAM,CAAC;AAEb,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,YAAY,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,SAAS,EAAE,OAAO,CAAC;IACnB,+EAA+E;IAC/E,eAAe,EAAE,OAAO,CAAC;IACzB,wEAAwE;IACxE,YAAY,EAAE,OAAO,CAAC;CACzB;AAiFD,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,CAuB3D;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAQxE"}
@@ -81,6 +81,7 @@ const OTHER = {
81
81
  };
82
82
  /** Classify a domain's mail provider from its ordered MX hostnames. */
83
83
  function fingerprintMx(mxHosts) {
84
+ var _a, _b, _c;
84
85
  if (mxHosts.length === 0) {
85
86
  return NONE;
86
87
  }
@@ -91,9 +92,9 @@ function fingerprintMx(mxHosts) {
91
92
  return {
92
93
  id: rule.id,
93
94
  name: rule.name,
94
- isGateway: rule.isGateway ?? false,
95
- microsoftBacked: rule.microsoftBacked ?? false,
96
- googleBacked: rule.googleBacked ?? false,
95
+ isGateway: (_a = rule.isGateway) !== null && _a !== void 0 ? _a : false,
96
+ microsoftBacked: (_b = rule.microsoftBacked) !== null && _b !== void 0 ? _b : false,
97
+ googleBacked: (_c = rule.googleBacked) !== null && _c !== void 0 ? _c : false,
97
98
  };
98
99
  }
99
100
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mx-fingerprint.js","sourceRoot":"","sources":["../../../../src/lib/common/mx-fingerprint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../../../src/lib/common/patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAeH,uDAAuD;AACvD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIvD;AAED,sEAAsE;AACtE,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQrD;AAED,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE1C,MAAM,WAAW,oBAAoB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AA4CD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,EAAE,CAkC9E"}
@@ -12,9 +12,10 @@ exports.normalizeNamePart = normalizeNamePart;
12
12
  exports.normalizeDomain = normalizeDomain;
13
13
  exports.generateEmailCandidates = generateEmailCandidates;
14
14
  function stripDiacritics(input) {
15
+ var _a;
15
16
  let result = "";
16
17
  for (const char of input.normalize("NFKD")) {
17
- const code = char.codePointAt(0) ?? 0;
18
+ const code = (_a = char.codePointAt(0)) !== null && _a !== void 0 ? _a : 0;
18
19
  // Drop combining diacritical marks (U+0300–U+036F).
19
20
  if (code >= 0x0300 && code <= 0x036f) {
20
21
  continue;
@@ -25,13 +26,13 @@ function stripDiacritics(input) {
25
26
  }
26
27
  /** Lowercase, strip accents and keep only [a-z0-9]. */
27
28
  function normalizeNamePart(value) {
28
- return stripDiacritics(value ?? "")
29
+ return stripDiacritics(value !== null && value !== void 0 ? value : "")
29
30
  .toLowerCase()
30
31
  .replace(/[^a-z0-9]/g, "");
31
32
  }
32
33
  /** Strip protocol, path, leading "@" and lowercase a domain input. */
33
34
  function normalizeDomain(value) {
34
- return (value ?? "")
35
+ return (value !== null && value !== void 0 ? value : "")
35
36
  .trim()
36
37
  .toLowerCase()
37
38
  .replace(/^https?:\/\//, "")
@@ -74,6 +75,7 @@ const PATTERNS = [
74
75
  * Returns an empty array when the domain or both name parts are missing.
75
76
  */
76
77
  function generateEmailCandidates(params) {
78
+ var _a;
77
79
  const first = normalizeNamePart(params.firstName);
78
80
  const last = normalizeNamePart(params.lastName);
79
81
  const domain = normalizeDomain(params.domain);
@@ -96,8 +98,7 @@ function generateEmailCandidates(params) {
96
98
  seen.add(local);
97
99
  locals.push(local);
98
100
  }
99
- const limit = params.maxVariants ??
100
- (params.patternSet === "common" ? COMMON_LIMIT : locals.length);
101
+ const limit = (_a = params.maxVariants) !== null && _a !== void 0 ? _a : (params.patternSet === "common" ? COMMON_LIMIT : locals.length);
101
102
  return locals
102
103
  .slice(0, Math.max(0, limit))
103
104
  .map((local) => `${local}@${domain}`);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../../../src/lib/common/patterns.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"o365.d.ts","sourceRoot":"","sources":["../../../../../src/lib/common/providers/o365.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC;AAEvE,MAAM,WAAW,UAAU;IACvB,mEAAmE;IACnE,OAAO,EAAE,OAAO,CAAC;IACjB,0EAA0E;IAC1E,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,aAAa,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,cAAc,EAAE,UAM5B,CAAC;AAyBF,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,CAQrE;AAED,4EAA4E;AAC5E,wBAAsB,YAAY,CAC9B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,aAAa,CAAC,CAoBxB;AA0CD;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAClC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,OAAO,EACnB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,UAAU,CAAC,CAwCrB"}