tempmail-sdk 1.1.2 → 1.1.4
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/README.md +43 -38
- package/demo/poll-emails.ts +290 -28
- package/dist/config.d.ts +16 -0
- package/dist/config.js +4 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.js +33 -16
- package/dist/providers/awamail.js +4 -3
- package/dist/providers/chatgpt-org-uk.d.ts +1 -1
- package/dist/providers/chatgpt-org-uk.js +188 -20
- package/dist/providers/dropmail.js +135 -3
- package/dist/providers/guerrillamail.js +4 -3
- package/dist/providers/linshi-email.d.ts +1 -1
- package/dist/providers/linshi-email.js +19 -7
- package/dist/providers/linshi-token.d.ts +25 -0
- package/dist/providers/linshi-token.js +69 -0
- package/dist/providers/mail-tm.js +43 -25
- package/dist/providers/maildrop.js +3 -2
- package/dist/providers/smail-pw.d.ts +9 -0
- package/dist/providers/smail-pw.js +356 -0
- package/dist/providers/temp-mail-io.js +5 -4
- package/dist/providers/tempmail-lol.js +4 -3
- package/dist/providers/tempmail.js +4 -3
- package/dist/retry.d.ts +2 -10
- package/dist/retry.js +41 -10
- package/dist/types.d.ts +6 -1
- package/dist/types.js +1 -1
- package/package.json +1 -1
- package/src/config.ts +16 -0
- package/src/index.ts +31 -14
- package/src/providers/awamail.ts +3 -2
- package/src/providers/chatgpt-org-uk.ts +213 -22
- package/src/providers/dropmail.ts +162 -2
- package/src/providers/guerrillamail.ts +3 -2
- package/src/providers/linshi-email.ts +24 -7
- package/src/providers/linshi-token.ts +86 -0
- package/src/providers/mail-tm.ts +43 -24
- package/src/providers/maildrop.ts +2 -1
- package/src/providers/smail-pw.ts +382 -0
- package/src/providers/temp-mail-io.ts +4 -3
- package/src/providers/tempmail-lol.ts +3 -2
- package/src/providers/tempmail.ts +3 -2
- package/src/retry.ts +42 -9
- package/src/types.ts +6 -1
- package/test/example.ts +183 -4
- package/dist/providers/tempmail-la.d.ts +0 -15
- package/dist/providers/tempmail-la.js +0 -89
- package/src/providers/tempmail-la.ts +0 -99
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare function deriveLinshiApiPathKey(visitorId: string): string;
|
|
2
|
+
export interface SyntheticBrowserProfile {
|
|
3
|
+
userAgent: string;
|
|
4
|
+
platform: string;
|
|
5
|
+
language: string;
|
|
6
|
+
languages: string;
|
|
7
|
+
hardwareConcurrency: number;
|
|
8
|
+
deviceMemory: number;
|
|
9
|
+
timezone: string;
|
|
10
|
+
colorDepth: number;
|
|
11
|
+
pixelRatio: number;
|
|
12
|
+
screen: {
|
|
13
|
+
width: number;
|
|
14
|
+
height: number;
|
|
15
|
+
availWidth: number;
|
|
16
|
+
availHeight: number;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export declare function randomBrowserLikeProfile(): SyntheticBrowserProfile;
|
|
20
|
+
export declare function syntheticVisitorIdFromProfile(profile: SyntheticBrowserProfile, salt?: Buffer): string;
|
|
21
|
+
export declare function randomSyntheticLinshiKey(): {
|
|
22
|
+
profile: SyntheticBrowserProfile;
|
|
23
|
+
visitorId: string;
|
|
24
|
+
apiPathKey: string;
|
|
25
|
+
};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deriveLinshiApiPathKey = deriveLinshiApiPathKey;
|
|
4
|
+
exports.randomBrowserLikeProfile = randomBrowserLikeProfile;
|
|
5
|
+
exports.syntheticVisitorIdFromProfile = syntheticVisitorIdFromProfile;
|
|
6
|
+
exports.randomSyntheticLinshiKey = randomSyntheticLinshiKey;
|
|
7
|
+
const crypto_1 = require("crypto");
|
|
8
|
+
function deriveLinshiApiPathKey(visitorId) {
|
|
9
|
+
if (visitorId.length < 4) {
|
|
10
|
+
throw new Error('visitorId 过短,无法套用 u()');
|
|
11
|
+
}
|
|
12
|
+
let e = visitorId.substring(0, visitorId.length - 2);
|
|
13
|
+
let t = 0;
|
|
14
|
+
for (let i = 0; i < e.length; i++) {
|
|
15
|
+
t += e.charCodeAt(i) % 5;
|
|
16
|
+
}
|
|
17
|
+
if (t < 10) {
|
|
18
|
+
t = 10;
|
|
19
|
+
}
|
|
20
|
+
if (t >= 100) {
|
|
21
|
+
t = 99;
|
|
22
|
+
}
|
|
23
|
+
const ts = t.toString();
|
|
24
|
+
e = e.slice(0, 3) + ts[0] + e.slice(3);
|
|
25
|
+
e = e.slice(0, 12) + ts[1] + e.slice(12);
|
|
26
|
+
return e;
|
|
27
|
+
}
|
|
28
|
+
const UA_POOL = [
|
|
29
|
+
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
|
|
30
|
+
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0',
|
|
31
|
+
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
|
|
32
|
+
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
|
|
33
|
+
'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:122.0) Gecko/20100101 Firefox/122.0',
|
|
34
|
+
];
|
|
35
|
+
function pick(arr) {
|
|
36
|
+
return arr[(0, crypto_1.randomInt)(arr.length)];
|
|
37
|
+
}
|
|
38
|
+
function randomBrowserLikeProfile() {
|
|
39
|
+
const w = pick([1920, 2560, 1680, 1536, 1366]) + (0, crypto_1.randomInt)(0, 80);
|
|
40
|
+
const h = pick([1080, 1440, 1050, 864, 768]) + (0, crypto_1.randomInt)(0, 40);
|
|
41
|
+
return {
|
|
42
|
+
userAgent: pick(UA_POOL),
|
|
43
|
+
platform: pick(['Win32', 'MacIntel', 'Linux x86_64']),
|
|
44
|
+
language: pick(['zh-CN', 'en-US', 'en-GB', 'ja-JP']),
|
|
45
|
+
languages: pick(['zh-CN,zh,en', 'en-US,en', 'ja-JP,ja,en']),
|
|
46
|
+
hardwareConcurrency: (0, crypto_1.randomInt)(4, 33),
|
|
47
|
+
deviceMemory: pick([4, 8, 16]),
|
|
48
|
+
timezone: pick(['Asia/Shanghai', 'America/New_York', 'Europe/London', 'UTC']),
|
|
49
|
+
colorDepth: pick([24, 30]),
|
|
50
|
+
pixelRatio: pick([1, 1.25, 1.5, 2]),
|
|
51
|
+
screen: {
|
|
52
|
+
width: w,
|
|
53
|
+
height: h,
|
|
54
|
+
availWidth: w,
|
|
55
|
+
availHeight: h - (0, crypto_1.randomInt)(24, 120),
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function syntheticVisitorIdFromProfile(profile, salt = (0, crypto_1.randomBytes)(16)) {
|
|
60
|
+
const payload = JSON.stringify(profile, Object.keys(profile).sort());
|
|
61
|
+
return (0, crypto_1.createHash)('sha256').update(payload).update(salt).digest('hex').slice(0, 32);
|
|
62
|
+
}
|
|
63
|
+
function randomSyntheticLinshiKey() {
|
|
64
|
+
const profile = randomBrowserLikeProfile();
|
|
65
|
+
const visitorId = syntheticVisitorIdFromProfile(profile);
|
|
66
|
+
const apiPathKey = deriveLinshiApiPathKey(visitorId);
|
|
67
|
+
return { profile, visitorId, apiPathKey };
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluc2hpLXRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpZGVycy9saW5zaGktdG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSx3REFtQkM7QUEwQkQsNERBb0JDO0FBRUQsc0VBTUM7QUFFRCw0REFTQztBQXJGRCxtQ0FBNEQ7QUFDNUQsU0FBZ0Isc0JBQXNCLENBQUMsU0FBaUI7SUFDdEQsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNyRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDVixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2xDLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7UUFDWCxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ1QsQ0FBQztJQUNELElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2IsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNULENBQUM7SUFDRCxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDeEIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lB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NkJBQTZCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekQsTUFBTSxVQUFVLEdBQUcsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLENBQUM7QUFDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUhhc2gsIHJhbmRvbUJ5dGVzLCByYW5kb21JbnQgfSBmcm9tICdjcnlwdG8nO1xuZXhwb3J0IGZ1bmN0aW9uIGRlcml2ZUxpbnNoaUFwaVBhdGhLZXkodmlzaXRvcklkOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAodmlzaXRvcklkLmxlbmd0aCA8IDQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3Zpc2l0b3JJZCDov4fnn63vvIzml6Dms5XlpZfnlKggdSgpJyk7XG4gIH1cbiAgbGV0IGUgPSB2aXNpdG9ySWQuc3Vic3RyaW5nKDAsIHZpc2l0b3JJZC5sZW5ndGggLSAyKTtcbiAgbGV0IHQgPSAwO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGUubGVuZ3RoOyBpKyspIHtcbiAgICB0ICs9IGUuY2hhckNvZGVBdChpKSAlIDU7XG4gIH1cbiAgaWYgKHQgPCAxMCkge1xuICAgIHQgPSAxMDtcbiAgfVxuICBpZiAodCA+PSAxMDApIHtcbiAgICB0ID0gOTk7XG4gIH1cbiAgY29uc3QgdHMgPSB0LnRvU3RyaW5nKCk7XG4gIGUgPSBlLnNsaWNlKDAsIDMpICsgdHNbMF0gKyBlLnNsaWNlKDMpO1xuICBlID0gZS5zbGljZSgwLCAxMikgKyB0c1sxXSArIGUuc2xpY2UoMTIpO1xuICByZXR1cm4gZTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU3ludGhldGljQnJvd3NlclByb2ZpbGUge1xuICB1c2VyQWdlbnQ6IHN0cmluZztcbiAgcGxhdGZvcm06IHN0cmluZztcbiAgbGFuZ3VhZ2U6IHN0cmluZztcbiAgbGFuZ3VhZ2VzOiBzdHJpbmc7XG4gIGhhcmR3YXJlQ29uY3VycmVuY3k6IG51bWJlcjtcbiAgZGV2aWNlTWVtb3J5OiBudW1iZXI7XG4gIHRpbWV6b25lOiBzdHJpbmc7XG4gIGNvbG9yRGVwdGg6IG51bWJlcjtcbiAgcGl4ZWxSYXRpbzogbnVtYmVyO1xuICBzY3JlZW46IHsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXI7IGF2YWlsV2lkdGg6IG51bWJlcjsgYXZhaWxIZWlnaHQ6IG51bWJlciB9O1xufVxuXG5jb25zdCBVQV9QT09MID0gW1xuICAnTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEyMC4wLjAuMCBTYWZhcmkvNTM3LjM2JyxcbiAgJ01vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xMjEuMC4wLjAgU2FmYXJpLzUzNy4zNiBFZGcvMTIxLjAuMC4wJyxcbiAgJ01vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzE1XzcpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xMjAuMC4wLjAgU2FmYXJpLzUzNy4zNicsXG4gICdNb3ppbGxhLzUuMCAoWDExOyBMaW51eCB4ODZfNjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xMTkuMC4wLjAgU2FmYXJpLzUzNy4zNicsXG4gICdNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0OyBydjoxMjIuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC8xMjIuMCcsXG5dO1xuXG5mdW5jdGlvbiBwaWNrPFQ+KGFycjogVFtdKTogVCB7XG4gIHJldHVybiBhcnJbcmFuZG9tSW50KGFyci5sZW5ndGgpXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJhbmRvbUJyb3dzZXJMaWtlUHJvZmlsZSgpOiBTeW50aGV0aWNCcm93c2VyUHJvZmlsZSB7XG4gIGNvbnN0IHcgPSBwaWNrKFsxOTIwLCAyNTYwLCAxNjgwLCAxNTM2LCAxMzY2XSkgKyByYW5kb21JbnQoMCwgODApO1xuICBjb25zdCBoID0gcGljayhbMTA4MCwgMTQ0MCwgMTA1MCwgODY0LCA3NjhdKSArIHJhbmRvbUludCgwLCA0MCk7XG4gIHJldHVybiB7XG4gICAgdXNlckFnZW50OiBwaWNrKFVBX1BPT0wpLFxuICAgIHBsYXRmb3JtOiBwaWNrKFsnV2luMzInLCAnTWFjSW50ZWwnLCAnTGludXggeDg2XzY0J10pLFxuICAgIGxhbmd1YWdlOiBwaWNrKFsnemgtQ04nLCAnZW4tVVMnLCAnZW4tR0InLCAnamEtSlAnXSksXG4gICAgbGFuZ3VhZ2VzOiBwaWNrKFsnemgtQ04semgsZW4nLCAnZW4tVVMsZW4nLCAnamEtSlAsamEsZW4nXSksXG4gICAgaGFyZHdhcmVDb25jdXJyZW5jeTogcmFuZG9tSW50KDQsIDMzKSxcbiAgICBkZXZpY2VNZW1vcnk6IHBpY2soWzQsIDgsIDE2XSksXG4gICAgdGltZXpvbmU6IHBpY2soWydBc2lhL1NoYW5naGFpJywgJ0FtZXJpY2EvTmV3X1lvcmsnLCAnRXVyb3BlL0xvbmRvbicsICdVVEMnXSksXG4gICAgY29sb3JEZXB0aDogcGljayhbMjQsIDMwXSksXG4gICAgcGl4ZWxSYXRpbzogcGljayhbMSwgMS4yNSwgMS41LCAyXSksXG4gICAgc2NyZWVuOiB7XG4gICAgICB3aWR0aDogdyxcbiAgICAgIGhlaWdodDogaCxcbiAgICAgIGF2YWlsV2lkdGg6IHcsXG4gICAgICBhdmFpbEhlaWdodDogaCAtIHJhbmRvbUludCgyNCwgMTIwKSxcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3ludGhldGljVmlzaXRvcklkRnJvbVByb2ZpbGUoXG4gIHByb2ZpbGU6IFN5bnRoZXRpY0Jyb3dzZXJQcm9maWxlLFxuICBzYWx0OiBCdWZmZXIgPSByYW5kb21CeXRlcygxNiksXG4pOiBzdHJpbmcge1xuICBjb25zdCBwYXlsb2FkID0gSlNPTi5zdHJpbmdpZnkocHJvZmlsZSwgT2JqZWN0LmtleXMocHJvZmlsZSkuc29ydCgpKTtcbiAgcmV0dXJuIGNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZShwYXlsb2FkKS51cGRhdGUoc2FsdCkuZGlnZXN0KCdoZXgnKS5zbGljZSgwLCAzMik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByYW5kb21TeW50aGV0aWNMaW5zaGlLZXkoKToge1xuICBwcm9maWxlOiBTeW50aGV0aWNCcm93c2VyUHJvZmlsZTtcbiAgdmlzaXRvcklkOiBzdHJpbmc7XG4gIGFwaVBhdGhLZXk6IHN0cmluZztcbn0ge1xuICBjb25zdCBwcm9maWxlID0gcmFuZG9tQnJvd3Nlckxpa2VQcm9maWxlKCk7XG4gIGNvbnN0IHZpc2l0b3JJZCA9IHN5bnRoZXRpY1Zpc2l0b3JJZEZyb21Qcm9maWxlKHByb2ZpbGUpO1xuICBjb25zdCBhcGlQYXRoS2V5ID0gZGVyaXZlTGluc2hpQXBpUGF0aEtleSh2aXNpdG9ySWQpO1xuICByZXR1cm4geyBwcm9maWxlLCB2aXNpdG9ySWQsIGFwaVBhdGhLZXkgfTtcbn1cbiJdfQ==
|
|
@@ -3,12 +3,40 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.generateEmail = generateEmail;
|
|
4
4
|
exports.getEmails = getEmails;
|
|
5
5
|
const normalize_1 = require("../normalize");
|
|
6
|
+
const retry_1 = require("../retry");
|
|
6
7
|
const CHANNEL = 'mail-tm';
|
|
7
8
|
const BASE_URL = 'https://api.mail.tm';
|
|
9
|
+
/**
|
|
10
|
+
* 与 Internxt 临时邮箱页(https://internxt.com/temporary-email)前端一致:
|
|
11
|
+
* 同源 cross-site 请求 api.mail.tm 时常带 Origin/Referer;domains 可为空 Bearer。
|
|
12
|
+
*/
|
|
8
13
|
const DEFAULT_HEADERS = {
|
|
9
|
-
'Content-Type': 'application/json',
|
|
10
14
|
'Accept': 'application/json',
|
|
15
|
+
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
|
|
16
|
+
'Cache-Control': 'no-cache',
|
|
17
|
+
'Pragma': 'no-cache',
|
|
18
|
+
'Origin': 'https://internxt.com',
|
|
19
|
+
'Referer': 'https://internxt.com/',
|
|
20
|
+
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36 Edg/146.0.0.0',
|
|
11
21
|
};
|
|
22
|
+
function jsonHeaders(extra) {
|
|
23
|
+
return { ...DEFAULT_HEADERS, 'Content-Type': 'application/json', ...extra };
|
|
24
|
+
}
|
|
25
|
+
function bearerHeaders(token, extra) {
|
|
26
|
+
return { ...jsonHeaders(extra), Authorization: `Bearer ${token}` };
|
|
27
|
+
}
|
|
28
|
+
function parseHydraMember(data) {
|
|
29
|
+
if (Array.isArray(data))
|
|
30
|
+
return data;
|
|
31
|
+
if (data && typeof data === 'object') {
|
|
32
|
+
const o = data;
|
|
33
|
+
if (Array.isArray(o['hydra:member']))
|
|
34
|
+
return o['hydra:member'];
|
|
35
|
+
if (Array.isArray(o['data']))
|
|
36
|
+
return o['data'];
|
|
37
|
+
}
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
12
40
|
/**
|
|
13
41
|
* 生成随机字符串
|
|
14
42
|
*/
|
|
@@ -25,7 +53,7 @@ function randomString(length) {
|
|
|
25
53
|
* API: GET /domains
|
|
26
54
|
*/
|
|
27
55
|
async function getDomains() {
|
|
28
|
-
const response = await
|
|
56
|
+
const response = await (0, retry_1.fetchWithTimeout)(`${BASE_URL}/domains?page=1`, {
|
|
29
57
|
method: 'GET',
|
|
30
58
|
headers: DEFAULT_HEADERS,
|
|
31
59
|
});
|
|
@@ -33,21 +61,18 @@ async function getDomains() {
|
|
|
33
61
|
throw new Error(`Failed to get domains: ${response.status}`);
|
|
34
62
|
}
|
|
35
63
|
const data = await response.json();
|
|
36
|
-
|
|
37
|
-
* - Accept: application/ld+json → Hydra 格式 { "hydra:member": [...] }
|
|
38
|
-
* - Accept: application/json → 纯数组 [...]
|
|
39
|
-
*/
|
|
40
|
-
const members = Array.isArray(data) ? data : (data['hydra:member'] || []);
|
|
64
|
+
const members = parseHydraMember(data);
|
|
41
65
|
return members
|
|
42
|
-
.filter((d) => d.isActive)
|
|
43
|
-
.map((d) => d.domain)
|
|
66
|
+
.filter((d) => d && d.isActive !== false)
|
|
67
|
+
.map((d) => d.domain)
|
|
68
|
+
.filter(Boolean);
|
|
44
69
|
}
|
|
45
70
|
/**
|
|
46
71
|
* 创建账号
|
|
47
72
|
* API: POST /accounts
|
|
48
73
|
*/
|
|
49
74
|
async function createAccount(address, password) {
|
|
50
|
-
const response = await
|
|
75
|
+
const response = await (0, retry_1.fetchWithTimeout)(`${BASE_URL}/accounts`, {
|
|
51
76
|
method: 'POST',
|
|
52
77
|
headers: { ...DEFAULT_HEADERS, 'Content-Type': 'application/ld+json' },
|
|
53
78
|
body: JSON.stringify({ address, password }),
|
|
@@ -63,9 +88,9 @@ async function createAccount(address, password) {
|
|
|
63
88
|
* API: POST /token
|
|
64
89
|
*/
|
|
65
90
|
async function getToken(address, password) {
|
|
66
|
-
const response = await
|
|
91
|
+
const response = await (0, retry_1.fetchWithTimeout)(`${BASE_URL}/token`, {
|
|
67
92
|
method: 'POST',
|
|
68
|
-
headers:
|
|
93
|
+
headers: jsonHeaders(),
|
|
69
94
|
body: JSON.stringify({ address, password }),
|
|
70
95
|
});
|
|
71
96
|
if (!response.ok) {
|
|
@@ -128,31 +153,24 @@ function flattenMessage(msg, recipientEmail) {
|
|
|
128
153
|
*/
|
|
129
154
|
async function getEmails(token, email) {
|
|
130
155
|
// 1. 获取邮件列表
|
|
131
|
-
const listResponse = await
|
|
156
|
+
const listResponse = await (0, retry_1.fetchWithTimeout)(`${BASE_URL}/messages?page=1`, {
|
|
132
157
|
method: 'GET',
|
|
133
|
-
headers:
|
|
134
|
-
...DEFAULT_HEADERS,
|
|
135
|
-
'Authorization': `Bearer ${token}`,
|
|
136
|
-
},
|
|
158
|
+
headers: bearerHeaders(token),
|
|
137
159
|
});
|
|
138
160
|
if (!listResponse.ok) {
|
|
139
161
|
throw new Error(`Failed to get emails: ${listResponse.status}`);
|
|
140
162
|
}
|
|
141
163
|
const listData = await listResponse.json();
|
|
142
|
-
|
|
143
|
-
const messages = Array.isArray(listData) ? listData : (listData['hydra:member'] || []);
|
|
164
|
+
const messages = parseHydraMember(listData);
|
|
144
165
|
if (messages.length === 0) {
|
|
145
166
|
return [];
|
|
146
167
|
}
|
|
147
168
|
// 2. 并行获取每封邮件的详情(含 text/html/attachments)
|
|
148
169
|
const detailPromises = messages.map(async (msg) => {
|
|
149
170
|
try {
|
|
150
|
-
const detailResponse = await
|
|
171
|
+
const detailResponse = await (0, retry_1.fetchWithTimeout)(`${BASE_URL}/messages/${msg.id}`, {
|
|
151
172
|
method: 'GET',
|
|
152
|
-
headers:
|
|
153
|
-
...DEFAULT_HEADERS,
|
|
154
|
-
'Authorization': `Bearer ${token}`,
|
|
155
|
-
},
|
|
173
|
+
headers: bearerHeaders(token),
|
|
156
174
|
});
|
|
157
175
|
if (!detailResponse.ok) {
|
|
158
176
|
// 如果详情获取失败,退回使用列表数据
|
|
@@ -169,4 +187,4 @@ async function getEmails(token, email) {
|
|
|
169
187
|
const flatMessages = await Promise.all(detailPromises);
|
|
170
188
|
return flatMessages.map((raw) => (0, normalize_1.normalizeEmail)(raw, email));
|
|
171
189
|
}
|
|
172
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbC10bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92aWRlcnMvbWFpbC10bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQTBGQSxzQ0F5QkM7QUE2QkQsOEJBZ0RDO0FBL0xELDRDQUE4QztBQUU5QyxNQUFNLE9BQU8sR0FBWSxTQUFTLENBQUM7QUFDbkMsTUFBTSxRQUFRLEdBQUcscUJBQXFCLENBQUM7QUFFdkMsTUFBTSxlQUFlLEdBQTJCO0lBQzlDLGNBQWMsRUFBRSxrQkFBa0I7SUFDbEMsUUFBUSxFQUFFLGtCQUFrQjtDQUM3QixDQUFDO0FBRUY7O0dBRUc7QUFDSCxTQUFTLFlBQVksQ0FBQyxNQUFjO0lBQ2xDLE1BQU0sS0FBSyxHQUFHLHNDQUFzQyxDQUFDO0lBQ3JELElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNoQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7R0FHRztBQUNILEtBQUssVUFBVSxVQUFVO0lBQ3ZCLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsUUFBUSxVQUFVLEVBQUU7UUFDbEQsTUFBTSxFQUFFLEtBQUs7UUFDYixPQUFPLEVBQUUsZUFBZTtLQUN6QixDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxN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QUFHLFFBQVEsYUFBYSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUU7Z0JBQ25FLE1BQU0sRUFBRSxLQUFLO2dCQUNiLE9BQU8sRUFBRTtvQkFDUCxHQUFHLGVBQWU7b0JBQ2xCLGVBQWUsRUFBRSxVQUFVLEtBQUssRUFBRTtpQkFDbkM7YUFDRixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUN2QixvQkFBb0I7Z0JBQ3BCLE9BQU8sY0FBYyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNwQyxDQUFDO1lBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDM0MsT0FBTyxjQUFjLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxjQUFjO1lBQ2QsT0FBTyxjQUFjLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sWUFBWSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN2RCxPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLElBQUEsMEJBQWMsRUFBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNwRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJuYWxFbWFpbEluZm8sIEVtYWlsLCBDaGFubmVsIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgbm9ybWFsaXplRW1haWwgfSBmcm9tICcuLi9ub3JtYWxpemUnO1xuXG5jb25zdCBDSEFOTkVMOiBDaGFubmVsID0gJ21haWwtdG0nO1xuY29uc3QgQkFTRV9VUkwgPSAnaHR0cHM6Ly9hcGkubWFpbC50bSc7XG5cbmNvbnN0IERFRkFVTFRfSEVBREVSUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbn07XG5cbi8qKlxuICog55Sf5oiQ6ZqP5py65a2X56ym5LiyXG4gKi9cbmZ1bmN0aW9uIHJhbmRvbVN0cmluZyhsZW5ndGg6IG51bWJlcik6IHN0cmluZyB7XG4gIGNvbnN0IGNoYXJzID0gJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSc7XG4gIGxldCByZXN1bHQgPSAnJztcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgIHJlc3VsdCArPSBjaGFyc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFycy5sZW5ndGgpXTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIOiOt+WPluWPr+eUqOWfn+WQjeWIl+ihqFxuICogQVBJOiBHRVQgL2RvbWFpbnNcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0RG9tYWlucygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7QkFTRV9VUkx9L2RvbWFpbnNgLCB7XG4gICAgbWV0aG9kOiAnR0VUJyxcbiAgICBoZWFkZXJzOiBERUZBVUxUX0hFQURFUlMsXG4gIH0pO1xuXG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBnZXQgZG9tYWluczogJHtyZXNwb25zZS5zdGF0dXN9YCk7XG4gIH1cblxuICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAvKiDlhbzlrrnkuKTnp43lk43lupTmoLzlvI/vvJpcbiAgICogLSBBY2NlcHQ6IGFwcGxpY2F0aW9uL2xkK2pzb24g4oaSIEh5ZHJhIOagvOW8jyB7IFwiaHlkcmE6bWVtYmVyXCI6IFsuLi5dIH1cbiAgICogLSBBY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24gICDihpIg57qv5pWw57uEIFsuLi5dXG4gICAqL1xuICBjb25zdCBtZW1iZXJzID0gQXJyYXkuaXNBcnJheShkYXRhKSA/IGRhdGEgOiAoZGF0YVsnaHlkcmE6bWVtYmVyJ10gfHwgW10pO1xuICByZXR1cm4gbWVtYmVyc1xuICAgIC5maWx0ZXIoKGQ6IGFueSkgPT4gZC5pc0FjdGl2ZSlcbiAgICAubWFwKChkOiBhbnkpID0+IGQuZG9tYWluKTtcbn1cblxuLyoqXG4gKiDliJvlu7rotKblj7dcbiAqIEFQSTogUE9TVCAvYWNjb3VudHNcbiAqL1xuYXN5bmMgZnVuY3Rpb24gY3JlYXRlQWNjb3VudChhZGRyZXNzOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke0JBU0VfVVJMfS9hY2NvdW50c2AsIHtcbiAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICBoZWFkZXJzOiB7IC4uLkRFRkFVTFRfSEVBREVSUywgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9sZCtqc29uJyB9LFxuICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgYWRkcmVzcywgcGFzc3dvcmQgfSksXG4gIH0pO1xuXG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICBjb25zdCB0ZXh0ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGNyZWF0ZSBhY2NvdW50OiAke3Jlc3BvbnNlLnN0YXR1c30gJHt0ZXh0fWApO1xuICB9XG5cbiAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKTtcbn1cblxuLyoqXG4gKiDojrflj5YgQmVhcmVyIFRva2VuXG4gKiBBUEk6IFBPU1QgL3Rva2VuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldFRva2VuKGFkZHJlc3M6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7QkFTRV9VUkx9L3Rva2VuYCwge1xuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGhlYWRlcnM6IERFRkFVTFRfSEVBREVSUyxcbiAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IGFkZHJlc3MsIHBhc3N3b3JkIH0pLFxuICB9KTtcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZ2V0IHRva2VuOiAke3Jlc3BvbnNlLnN0YXR1c31gKTtcbiAgfVxuXG4gIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gIHJldHVybiBkYXRhLnRva2VuO1xufVxuXG4vKipcbiAqIOWIm+W7uuS4tOaXtumCrueusVxuICog5rWB56iLOiDojrflj5bln5/lkI0g4oaSIOeUn+aIkOmaj+acuumCrueusS/lr4bnoIEg4oaSIOWIm+W7uui0puWPtyDihpIg6I635Y+WIFRva2VuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZUVtYWlsKCk6IFByb21pc2U8SW50ZXJuYWxFbWFpbEluZm8+IHtcbiAgLy8gMS4g6I635Y+W5Y+v55So5Z+f5ZCNXG4gIGNvbnN0IGRvbWFpbnMgPSBhd2FpdCBnZXREb21haW5zKCk7XG4gIGlmIChkb21haW5zLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignTm8gYXZhaWxhYmxlIGRvbWFpbnMnKTtcbiAgfVxuXG4gIC8vIDIuIOeUn+aIkOmaj+acuumCrueuseWSjOWvhueggVxuICBjb25zdCBkb21haW4gPSBkb21haW5zW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGRvbWFpbnMubGVuZ3RoKV07XG4gIGNvbnN0IHVzZXJuYW1lID0gcmFuZG9tU3RyaW5nKDEyKTtcbiAgY29uc3QgYWRkcmVzcyA9IGAke3VzZXJuYW1lfUAke2RvbWFpbn1gO1xuICBjb25zdCBwYXNzd29yZCA9IHJhbmRvbVN0cmluZygxNik7XG5cbiAgLy8gMy4g5Yib5bu66LSm5Y+3XG4gIGNvbnN0IGFjY291bnQgPSBhd2FpdCBjcmVhdGVBY2NvdW50KGFkZHJlc3MsIHBhc3N3b3JkKTtcblxuICAvLyA0LiDojrflj5YgQmVhcmVyIFRva2VuXG4gIGNvbnN0IHRva2VuID0gYXdhaXQgZ2V0VG9rZW4oYWRkcmVzcywgcGFzc3dvcmQpO1xuXG4gIHJldHVybiB7XG4gICAgY2hhbm5lbDogQ0hBTk5FTCxcbiAgICBlbWFpbDogYWRkcmVzcyxcbiAgICB0b2tlbjogdG9rZW4sXG4gICAgY3JlYXRlZEF0OiBhY2NvdW50LmNyZWF0ZWRBdCxcbiAgfTtcbn1cblxuLyoqXG4gKiDlsIYgbWFpbC50bSDnmoTmtojmga/moLzlvI/miYHlubPljJbkuLogbm9ybWFsaXplRW1haWwg5Y+v5aSE55CG55qE5qC85byPXG4gKiBtYWlsLnRtIOeahCBmcm9tIOaYryB7bmFtZSwgYWRkcmVzc30g5a+56LGh77yMdG8g5piv5pWw57uE77yMaHRtbCDmmK/lrZfnrKbkuLLmlbDnu4RcbiAqL1xuZnVuY3Rpb24gZmxhdHRlbk1lc3NhZ2UobXNnOiBhbnksIHJlY2lwaWVudEVtYWlsOiBzdHJpbmcpOiBhbnkge1xuICByZXR1cm4ge1xuICAgIGlkOiBtc2cuaWQgfHwgJycsXG4gICAgZnJvbTogbXNnLmZyb20/LmFkZHJlc3MgfHwgJycsXG4gICAgdG86IG1zZy50bz8uWzBdPy5hZGRyZXNzIHx8IHJlY2lwaWVudEVtYWlsLFxuICAgIHN1YmplY3Q6IG1zZy5zdWJqZWN0IHx8ICcnLFxuICAgIHRleHQ6IG1zZy50ZXh0IHx8ICcnLFxuICAgIGh0bWw6IEFycmF5LmlzQXJyYXkobXNnLmh0bWwpID8gbXNnLmh0bWwuam9pbignJykgOiAobXNnLmh0bWwgfHwgJycpLFxuICAgIGNyZWF0ZWRBdDogbXNnLmNyZWF0ZWRBdCB8fCAnJyxcbiAgICBzZWVuOiBtc2cuc2VlbiA/PyBmYWxzZSxcbiAgICBhdHRhY2htZW50czogKG1zZy5hdHRhY2htZW50cyB8fCBbXSkubWFwKChhOiBhbnkpID0+ICh7XG4gICAgICBmaWxlbmFtZTogYS5maWxlbmFtZSB8fCAnJyxcbiAgICAgIHNpemU6IGEuc2l6ZSB8fCB1bmRlZmluZWQsXG4gICAgICBjb250ZW50VHlwZTogYS5jb250ZW50VHlwZSB8fCB1bmRlZmluZWQsXG4gICAgICBkb3dubG9hZFVybDogYS5kb3dubG9hZFVybCA/IGAke0JBU0VfVVJMfSR7YS5kb3dubG9hZFVybH1gIDogdW5kZWZpbmVkLFxuICAgIH0pKSxcbiAgfTtcbn1cblxuLyoqXG4gKiDojrflj5bpgq7ku7bliJfooahcbiAqIOa1geeoizogR0VUIC9tZXNzYWdlcyDojrflj5bliJfooagg4oaSIOWvueavj+WwgemCruS7tiBHRVQgL21lc3NhZ2VzL3tpZH0g6I635Y+W6K+m5oOF77yI5ZCrIHRleHQvaHRtbO+8iVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RW1haWxzKHRva2VuOiBzdHJpbmcsIGVtYWlsOiBzdHJpbmcpOiBQcm9taXNlPEVtYWlsW10+IHtcbiAgLy8gMS4g6I635Y+W6YKu5Lu25YiX6KGoXG4gIGNvbnN0IGxpc3RSZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke0JBU0VfVVJMfS9tZXNzYWdlc2AsIHtcbiAgICBtZXRob2Q6ICdHRVQnLFxuICAgIGhlYWRlcnM6IHtcbiAgICAgIC4uLkRFRkFVTFRfSEVBREVSUyxcbiAgICAgICdBdXRob3JpemF0aW9uJzogYEJlYXJlciAke3Rva2VufWAsXG4gICAgfSxcbiAgfSk7XG5cbiAgaWYgKCFsaXN0UmVzcG9uc2Uub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBnZXQgZW1haWxzOiAke2xpc3RSZXNwb25zZS5zdGF0dXN9YCk7XG4gIH1cblxuICBjb25zdCBsaXN0RGF0YSA9IGF3YWl0IGxpc3RSZXNwb25zZS5qc29uKCk7XG4gIC8qIOWFvOWuuSBIeWRyYSDmoLzlvI/lkoznuq/mlbDnu4TmoLzlvI8gKi9cbiAgY29uc3QgbWVzc2FnZXMgPSBBcnJheS5pc0FycmF5KGxpc3REYXRhKSA/IGxpc3REYXRhIDogKGxpc3REYXRhWydoeWRyYTptZW1iZXInXSB8fCBbXSk7XG5cbiAgaWYgKG1lc3NhZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIC8vIDIuIOW5tuihjOiOt+WPluavj+WwgemCruS7tueahOivpuaDhe+8iOWQqyB0ZXh0L2h0bWwvYXR0YWNobWVudHPvvIlcbiAgY29uc3QgZGV0YWlsUHJvbWlzZXMgPSBtZXNzYWdlcy5tYXAoYXN5bmMgKG1zZzogYW55KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRldGFpbFJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7QkFTRV9VUkx9L21lc3NhZ2VzLyR7bXNnLmlkfWAsIHtcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgIC4uLkRFRkFVTFRfSEVBREVSUyxcbiAgICAgICAgICAnQXV0aG9yaXphdGlvbic6IGBCZWFyZXIgJHt0b2tlbn1gLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIGlmICghZGV0YWlsUmVzcG9uc2Uub2spIHtcbiAgICAgICAgLy8g5aaC5p6c6K+m5oOF6I635Y+W5aSx6LSl77yM6YCA5Zue5L2/55So5YiX6KGo5pWw5o2uXG4gICAgICAgIHJldHVybiBmbGF0dGVuTWVzc2FnZShtc2csIGVtYWlsKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGV0YWlsID0gYXdhaXQgZGV0YWlsUmVzcG9uc2UuanNvbigpO1xuICAgICAgcmV0dXJuIGZsYXR0ZW5NZXNzYWdlKGRldGFpbCwgZW1haWwpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8g5Ye66ZSZ5pe26YCA5Zue5L2/55So5YiX6KGo5pWw5o2uXG4gICAgICByZXR1cm4gZmxhdHRlbk1lc3NhZ2UobXNnLCBlbWFpbCk7XG4gICAgfVxuICB9KTtcblxuICBjb25zdCBmbGF0TWVzc2FnZXMgPSBhd2FpdCBQcm9taXNlLmFsbChkZXRhaWxQcm9taXNlcyk7XG4gIHJldHVybiBmbGF0TWVzc2FnZXMubWFwKChyYXc6IGFueSkgPT4gbm9ybWFsaXplRW1haWwocmF3LCBlbWFpbCkpO1xufVxuIl19
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbC10bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92aWRlcnMvbWFpbC10bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW9IQSxzQ0F5QkM7QUE2QkQsOEJBeUNDO0FBbE5ELDRDQUE4QztBQUM5QyxvQ0FBNEM7QUFFNUMsTUFBTSxPQUFPLEdBQVksU0FBUyxDQUFDO0FBQ25DLE1BQU0sUUFBUSxHQUFHLHFCQUFxQixDQUFDO0FBRXZDOzs7R0FHRztBQUNILE1BQU0sZUFBZSxHQUEyQjtJQUM5QyxRQUFRLEVBQUUsa0JBQWtCO0lBQzVCLGlCQUFpQixFQUFFLGlEQUFpRDtJQUNwRSxlQUFlLEVBQUUsVUFBVTtJQUMzQixRQUFRLEVBQUUsVUFBVTtJQUNwQixRQUFRLEVBQUUsc0JBQXNCO0lBQ2hDLFNBQVMsRUFBRSx1QkFBdUI7SUFDbEMsWUFBWSxFQUNWLCtIQUErSDtDQUNsSSxDQUFDO0FBRUYsU0FBUyxXQUFXLENBQUMsS0FBOEI7SUFDakQsT0FBTyxFQUFFLEdBQUcsZUFBZSxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDO0FBQzlFLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxLQUFhLEVBQUUsS0FBOEI7SUFDbEUsT0FBTyxFQUFFLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLGFBQWEsRUFBRSxVQUFVLEtBQUssRUFBRSxFQUFFLENBQUM7QUFDckUsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQUMsSUFBYTtJQUNyQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDckMsSUFBSSxJQUFJLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDckMsTUFBTSxDQUFDLEdBQUcsSUFBK0IsQ0FBQztRQUMxQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxD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QUksRUFBRSxDQUFDO1lBQzNDLE9BQU8sY0FBYyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsY0FBYztZQUNkLE9BQU8sY0FBYyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkQsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxJQUFBLDBCQUFjLEVBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDcEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEludGVybmFsRW1haWxJbmZvLCBFbWFpbCwgQ2hhbm5lbCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IG5vcm1hbGl6ZUVtYWlsIH0gZnJvbSAnLi4vbm9ybWFsaXplJztcbmltcG9ydCB7IGZldGNoV2l0aFRpbWVvdXQgfSBmcm9tICcuLi9yZXRyeSc7XG5cbmNvbnN0IENIQU5ORUw6IENoYW5uZWwgPSAnbWFpbC10bSc7XG5jb25zdCBCQVNFX1VSTCA9ICdodHRwczovL2FwaS5tYWlsLnRtJztcblxuLyoqXG4gKiDkuI4gSW50ZXJueHQg5Li05pe26YKu566x6aG177yIaHR0cHM6Ly9pbnRlcm54dC5jb20vdGVtcG9yYXJ5LWVtYWls77yJ5YmN56uv5LiA6Ie077yaXG4gKiDlkIzmupAgY3Jvc3Mtc2l0ZSDor7fmsYIgYXBpLm1haWwudG0g5pe25bi45bimIE9yaWdpbi9SZWZlcmVy77ybZG9tYWlucyDlj6/kuLrnqbogQmVhcmVy44CCXG4gKi9cbmNvbnN0IERFRkFVTFRfSEVBREVSUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgJ0FjY2VwdC1MYW5ndWFnZSc6ICd6aC1DTix6aDtxPTAuOSxlbjtxPTAuOCxlbi1HQjtxPTAuNyxlbi1VUztxPTAuNicsXG4gICdDYWNoZS1Db250cm9sJzogJ25vLWNhY2hlJyxcbiAgJ1ByYWdtYSc6ICduby1jYWNoZScsXG4gICdPcmlnaW4nOiAnaHR0cHM6Ly9pbnRlcm54dC5jb20nLFxuICAnUmVmZXJlcic6ICdodHRwczovL2ludGVybnh0LmNvbS8nLFxuICAnVXNlci1BZ2VudCc6XG4gICAgJ01vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xNDYuMC4wLjAgU2FmYXJpLzUzNy4zNiBFZGcvMTQ2LjAuMC4wJyxcbn07XG5cbmZ1bmN0aW9uIGpzb25IZWFkZXJzKGV4dHJhPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICByZXR1cm4geyAuLi5ERUZBVUxUX0hFQURFUlMsICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsIC4uLmV4dHJhIH07XG59XG5cbmZ1bmN0aW9uIGJlYXJlckhlYWRlcnModG9rZW46IHN0cmluZywgZXh0cmE/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gIHJldHVybiB7IC4uLmpzb25IZWFkZXJzKGV4dHJhKSwgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3Rva2VufWAgfTtcbn1cblxuZnVuY3Rpb24gcGFyc2VIeWRyYU1lbWJlcihkYXRhOiB1bmtub3duKTogYW55W10ge1xuICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkgcmV0dXJuIGRhdGE7XG4gIGlmIChkYXRhICYmIHR5cGVvZiBkYXRhID09PSAnb2JqZWN0Jykge1xuICAgIGNvbnN0IG8gPSBkYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIGlmIChBcnJheS5pc0FycmF5KG9bJ2h5ZHJhOm1lbWJlciddKSkgcmV0dXJuIG9bJ2h5ZHJhOm1lbWJlciddO1xuICAgIGlmIChBcnJheS5pc0FycmF5KG9bJ2RhdGEnXSkpIHJldHVybiBvWydkYXRhJ107XG4gIH1cbiAgcmV0dXJuIFtdO1xufVxuXG4vKipcbiAqIOeUn+aIkOmaj+acuuWtl+espuS4slxuICovXG5mdW5jdGlvbiByYW5kb21TdHJpbmcobGVuZ3RoOiBudW1iZXIpOiBzdHJpbmcge1xuICBjb25zdCBjaGFycyA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODknO1xuICBsZXQgcmVzdWx0ID0gJyc7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICByZXN1bHQgKz0gY2hhcnNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhcnMubGVuZ3RoKV07XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiDojrflj5blj6/nlKjln5/lkI3liJfooahcbiAqIEFQSTogR0VUIC9kb21haW5zXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldERvbWFpbnMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoV2l0aFRpbWVvdXQoYCR7QkFTRV9VUkx9L2RvbWFpbnM/cGFnZT0xYCwge1xuICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgaGVhZGVyczogREVGQVVMVF9IRUFERVJTLFxuICB9KTtcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZ2V0IGRvbWFpbnM6ICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICB9XG5cbiAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgY29uc3QgbWVtYmVycyA9IHBhcnNlSHlkcmFNZW1iZXIoZGF0YSk7XG4gIHJldHVybiBtZW1iZXJzXG4gICAgLmZpbHRlcigoZDogYW55KSA9PiBkICYmIGQuaXNBY3RpdmUgIT09IGZhbHNlKVxuICAgIC5tYXAoKGQ6IGFueSkgPT4gZC5kb21haW4pXG4gICAgLmZpbHRlcihCb29sZWFuKTtcbn1cblxuLyoqXG4gKiDliJvlu7rotKblj7dcbiAqIEFQSTogUE9TVCAvYWNjb3VudHNcbiAqL1xuYXN5bmMgZnVuY3Rpb24gY3JlYXRlQWNjb3VudChhZGRyZXNzOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoV2l0aFRpbWVvdXQoYCR7QkFTRV9VUkx9L2FjY291bnRzYCwge1xuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGhlYWRlcnM6IHsgLi4uREVGQVVMVF9IRUFERVJTLCAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2xkK2pzb24nIH0sXG4gICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBhZGRyZXNzLCBwYXNzd29yZCB9KSxcbiAgfSk7XG5cbiAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgIGNvbnN0IHRleHQgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gY3JlYXRlIGFjY291bnQ6ICR7cmVzcG9uc2Uuc3RhdHVzfSAke3RleHR9YCk7XG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2UuanNvbigpO1xufVxuXG4vKipcbiAqIOiOt+WPliBCZWFyZXIgVG9rZW5cbiAqIEFQSTogUE9TVCAvdG9rZW5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0VG9rZW4oYWRkcmVzczogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaFdpdGhUaW1lb3V0KGAke0JBU0VfVVJMfS90b2tlbmAsIHtcbiAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICBoZWFkZXJzOiBqc29uSGVhZGVycygpLFxuICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgYWRkcmVzcywgcGFzc3dvcmQgfSksXG4gIH0pO1xuXG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBnZXQgdG9rZW46ICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICB9XG5cbiAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgcmV0dXJuIGRhdGEudG9rZW47XG59XG5cbi8qKlxuICog5Yib5bu65Li05pe26YKu566xXG4gKiDmtYHnqIs6IOiOt+WPluWfn+WQjSDihpIg55Sf5oiQ6ZqP5py66YKu566xL+WvhueggSDihpIg5Yib5bu66LSm5Y+3IOKGkiDojrflj5YgVG9rZW5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlRW1haWwoKTogUHJvbWlzZTxJbnRlcm5hbEVtYWlsSW5mbz4ge1xuICAvLyAxLiDojrflj5blj6/nlKjln5/lkI1cbiAgY29uc3QgZG9tYWlucyA9IGF3YWl0IGdldERvbWFpbnMoKTtcbiAgaWYgKGRvbWFpbnMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdObyBhdmFpbGFibGUgZG9tYWlucycpO1xuICB9XG5cbiAgLy8gMi4g55Sf5oiQ6ZqP5py66YKu566x5ZKM5a+G56CBXG4gIGNvbnN0IGRvbWFpbiA9IGRvbWFpbnNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogZG9tYWlucy5sZW5ndGgpXTtcbiAgY29uc3QgdXNlcm5hbWUgPSByYW5kb21TdHJpbmcoMTIpO1xuICBjb25zdCBhZGRyZXNzID0gYCR7dXNlcm5hbWV9QCR7ZG9tYWlufWA7XG4gIGNvbnN0IHBhc3N3b3JkID0gcmFuZG9tU3RyaW5nKDE2KTtcblxuICAvLyAzLiDliJvlu7rotKblj7dcbiAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGNyZWF0ZUFjY291bnQoYWRkcmVzcywgcGFzc3dvcmQpO1xuXG4gIC8vIDQuIOiOt+WPliBCZWFyZXIgVG9rZW5cbiAgY29uc3QgdG9rZW4gPSBhd2FpdCBnZXRUb2tlbihhZGRyZXNzLCBwYXNzd29yZCk7XG5cbiAgcmV0dXJuIHtcbiAgICBjaGFubmVsOiBDSEFOTkVMLFxuICAgIGVtYWlsOiBhZGRyZXNzLFxuICAgIHRva2VuOiB0b2tlbixcbiAgICBjcmVhdGVkQXQ6IGFjY291bnQuY3JlYXRlZEF0LFxuICB9O1xufVxuXG4vKipcbiAqIOWwhiBtYWlsLnRtIOeahOa2iOaBr+agvOW8j+aJgeW5s+WMluS4uiBub3JtYWxpemVFbWFpbCDlj6/lpITnkIbnmoTmoLzlvI9cbiAqIG1haWwudG0g55qEIGZyb20g5pivIHtuYW1lLCBhZGRyZXNzfSDlr7nosaHvvIx0byDmmK/mlbDnu4TvvIxodG1sIOaYr+Wtl+espuS4suaVsOe7hFxuICovXG5mdW5jdGlvbiBmbGF0dGVuTWVzc2FnZShtc2c6IGFueSwgcmVjaXBpZW50RW1haWw6IHN0cmluZyk6IGFueSB7XG4gIHJldHVybiB7XG4gICAgaWQ6IG1zZy5pZCB8fCAnJyxcbiAgICBmcm9tOiBtc2cuZnJvbT8uYWRkcmVzcyB8fCAnJyxcbiAgICB0bzogbXNnLnRvPy5bMF0/LmFkZHJlc3MgfHwgcmVjaXBpZW50RW1haWwsXG4gICAgc3ViamVjdDogbXNnLnN1YmplY3QgfHwgJycsXG4gICAgdGV4dDogbXNnLnRleHQgfHwgJycsXG4gICAgaHRtbDogQXJyYXkuaXNBcnJheShtc2cuaHRtbCkgPyBtc2cuaHRtbC5qb2luKCcnKSA6IChtc2cuaHRtbCB8fCAnJyksXG4gICAgY3JlYXRlZEF0OiBtc2cuY3JlYXRlZEF0IHx8ICcnLFxuICAgIHNlZW46IG1zZy5zZWVuID8/IGZhbHNlLFxuICAgIGF0dGFjaG1lbnRzOiAobXNnLmF0dGFjaG1lbnRzIHx8IFtdKS5tYXAoKGE6IGFueSkgPT4gKHtcbiAgICAgIGZpbGVuYW1lOiBhLmZpbGVuYW1lIHx8ICcnLFxuICAgICAgc2l6ZTogYS5zaXplIHx8IHVuZGVmaW5lZCxcbiAgICAgIGNvbnRlbnRUeXBlOiBhLmNvbnRlbnRUeXBlIHx8IHVuZGVmaW5lZCxcbiAgICAgIGRvd25sb2FkVXJsOiBhLmRvd25sb2FkVXJsID8gYCR7QkFTRV9VUkx9JHthLmRvd25sb2FkVXJsfWAgOiB1bmRlZmluZWQsXG4gICAgfSkpLFxuICB9O1xufVxuXG4vKipcbiAqIOiOt+WPlumCruS7tuWIl+ihqFxuICog5rWB56iLOiBHRVQgL21lc3NhZ2VzIOiOt+WPluWIl+ihqCDihpIg5a+55q+P5bCB6YKu5Lu2IEdFVCAvbWVzc2FnZXMve2lkfSDojrflj5bor6bmg4XvvIjlkKsgdGV4dC9odG1s77yJXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRFbWFpbHModG9rZW46IHN0cmluZywgZW1haWw6IHN0cmluZyk6IFByb21pc2U8RW1haWxbXT4ge1xuICAvLyAxLiDojrflj5bpgq7ku7bliJfooahcbiAgY29uc3QgbGlzdFJlc3BvbnNlID0gYXdhaXQgZmV0Y2hXaXRoVGltZW91dChgJHtCQVNFX1VSTH0vbWVzc2FnZXM/cGFnZT0xYCwge1xuICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgaGVhZGVyczogYmVhcmVySGVhZGVycyh0b2tlbiksXG4gIH0pO1xuXG4gIGlmICghbGlzdFJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZ2V0IGVtYWlsczogJHtsaXN0UmVzcG9uc2Uuc3RhdHVzfWApO1xuICB9XG5cbiAgY29uc3QgbGlzdERhdGEgPSBhd2FpdCBsaXN0UmVzcG9uc2UuanNvbigpO1xuICBjb25zdCBtZXNzYWdlcyA9IHBhcnNlSHlkcmFNZW1iZXIobGlzdERhdGEpO1xuXG4gIGlmIChtZXNzYWdlcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICAvLyAyLiDlubbooYzojrflj5bmr4/lsIHpgq7ku7bnmoTor6bmg4XvvIjlkKsgdGV4dC9odG1sL2F0dGFjaG1lbnRz77yJXG4gIGNvbnN0IGRldGFpbFByb21pc2VzID0gbWVzc2FnZXMubWFwKGFzeW5jIChtc2c6IGFueSkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkZXRhaWxSZXNwb25zZSA9IGF3YWl0IGZldGNoV2l0aFRpbWVvdXQoYCR7QkFTRV9VUkx9L21lc3NhZ2VzLyR7bXNnLmlkfWAsIHtcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgaGVhZGVyczogYmVhcmVySGVhZGVycyh0b2tlbiksXG4gICAgICB9KTtcblxuICAgICAgaWYgKCFkZXRhaWxSZXNwb25zZS5vaykge1xuICAgICAgICAvLyDlpoLmnpzor6bmg4Xojrflj5blpLHotKXvvIzpgIDlm57kvb/nlKjliJfooajmlbDmja5cbiAgICAgICAgcmV0dXJuIGZsYXR0ZW5NZXNzYWdlKG1zZywgZW1haWwpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBkZXRhaWwgPSBhd2FpdCBkZXRhaWxSZXNwb25zZS5qc29uKCk7XG4gICAgICByZXR1cm4gZmxhdHRlbk1lc3NhZ2UoZGV0YWlsLCBlbWFpbCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyDlh7rplJnml7bpgIDlm57kvb/nlKjliJfooajmlbDmja5cbiAgICAgIHJldHVybiBmbGF0dGVuTWVzc2FnZShtc2csIGVtYWlsKTtcbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IGZsYXRNZXNzYWdlcyA9IGF3YWl0IFByb21pc2UuYWxsKGRldGFpbFByb21pc2VzKTtcbiAgcmV0dXJuIGZsYXRNZXNzYWdlcy5tYXAoKHJhdzogYW55KSA9PiBub3JtYWxpemVFbWFpbChyYXcsIGVtYWlsKSk7XG59XG4iXX0=
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
exports.generateEmail = generateEmail;
|
|
14
14
|
exports.getEmails = getEmails;
|
|
15
|
+
const retry_1 = require("../retry");
|
|
15
16
|
const CHANNEL = 'maildrop';
|
|
16
17
|
const GRAPHQL_URL = 'https://api.maildrop.cc/graphql';
|
|
17
18
|
const DOMAIN = 'maildrop.cc';
|
|
@@ -105,7 +106,7 @@ function randomUsername(length = 10) {
|
|
|
105
106
|
* 使用 operationName + variables 的标准 GraphQL 格式
|
|
106
107
|
*/
|
|
107
108
|
async function graphqlRequest(operationName, query, variables = {}) {
|
|
108
|
-
const response = await
|
|
109
|
+
const response = await (0, retry_1.fetchWithTimeout)(GRAPHQL_URL, {
|
|
109
110
|
method: 'POST',
|
|
110
111
|
headers: {
|
|
111
112
|
'Content-Type': 'application/json',
|
|
@@ -177,4 +178,4 @@ async function getEmails(token, email) {
|
|
|
177
178
|
}
|
|
178
179
|
return emails;
|
|
179
180
|
}
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbGRyb3AuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmlkZXJzL21haWxkcm9wLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7O0dBU0c7O0FBcUlILHNDQWdCQztBQU1ELDhCQTZDQztBQXBNRCxNQUFNLE9BQU8sR0FBWSxVQUFVLENBQUM7QUFDcEMsTUFBTSxXQUFXLEdBQUcsaUNBQWlDLENBQUM7QUFDdEQsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDO0FBRTdCOzs7R0FHRztBQUNILFNBQVMsYUFBYSxDQUFDLEdBQVc7SUFDaEMsSUFBSSxDQUFDLEdBQUc7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNwQixPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsaUNBQWlDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUN0RixJQUFJLENBQUM7WUFDSCxJQUFJLFFBQVEsQ0FBQyxXQUFXLEVBQUUsS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDbkMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUQsQ0FBQztZQUNELHVDQUF1QztZQUN2QyxNQUFNLE9BQU8sR0FBRyxPQUFPO2lCQUNwQixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztpQkFDbEIsT0FBTyxDQUFDLG9CQUFvQixFQUFFLENBQUMsRUFBVSxFQUFFLEdBQVcsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0RyxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FB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gZPlrp7njrBcbiAqIEFQSTogR3JhcGhRTCBlbmRwb2ludCBodHRwczovL2FwaS5tYWlsZHJvcC5jYy9ncmFwaHFsXG4gKiBcbiAqIOeJueeCuTpcbiAqIC0g5peg6ZyA6K6k6K+B77yM5YWs5byAIEdyYXBoUUwgQVBJXG4gKiAtIOiHquW4puWPjeWeg+Wcvui/h+a7pFxuICogLSDpgq7nrrHlkI3ljbPnlKjmiLflkI3vvIjku7vmhI/lrZfnrKbkuLJAbWFpbGRyb3AuY2PvvIlcbiAqIC0g5peg6L+H5pyf5pe26Ze06ZmQ5Yi2XG4gKi9cblxuaW1wb3J0IHsgSW50ZXJuYWxFbWFpbEluZm8sIEVtYWlsLCBDaGFubmVsIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5jb25zdCBDSEFOTkVMOiBDaGFubmVsID0gJ21haWxkcm9wJztcbmNvbnN0IEdSQVBIUUxfVVJMID0gJ2h0dHBzOi8vYXBpLm1haWxkcm9wLmNjL2dyYXBocWwnO1xuY29uc3QgRE9NQUlOID0gJ21haWxkcm9wLmNjJztcblxuLyoqXG4gKiDop6PnoIEgUkZDIDIwNDcg57yW56CB55qE6YKu5Lu25aS077yI5aaC5Y+R5Lu25Lq644CB5Li76aKY77yJXG4gKiDmlK/mjIEgQmFzZTY0IChCKSDlkowgUXVvdGVkLVByaW50YWJsZSAoUSkg57yW56CBXG4gKi9cbmZ1bmN0aW9uIGRlY29kZVJmYzIwNDcoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIXN0cikgcmV0dXJuICcnO1xuICByZXR1cm4gc3RyLnJlcGxhY2UoLz1cXD8oW14/XSspXFw/KEJ8USlcXD8oW14/XSopXFw/PS9naSwgKF8sIGNoYXJzZXQsIGVuY29kaW5nLCBlbmNvZGVkKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChlbmNvZGluZy50b1VwcGVyQ2FzZSgpID09PSAnQicpIHtcbiAgICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKGVuY29kZWQsICdiYXNlNjQnKS50b1N0cmluZygndXRmLTgnKTtcbiAgICAgIH1cbiAgICAgIC8qIFF1b3RlZC1QcmludGFibGU6IF8956m65qC877yMPVhYPeWNgeWFrei/m+WItuWtl+iKgiAqL1xuICAgICAgY29uc3QgZGVjb2RlZCA9IGVuY29kZWRcbiAgICAgICAgLnJlcGxhY2UoL18vZywgJyAnKVxuICAgICAgICAucmVwbGFjZSgvPShbMC05QS1GYS1mXXsyfSkvZywgKF9tOiBzdHJpbmcsIGhleDogc3RyaW5nKSA9PiBTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGhleCwgMTYpKSk7XG4gICAgICByZXR1cm4gZGVjb2RlZDtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBlbmNvZGVkO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICog5LuO5Y6f5aeLIE1JTUUg6YKu5Lu25rqQ56CB5Lit5o+Q5Y+W57qv5paH5pys5q2j5paHXG4gKiBtYWlsZHJvcCDnmoQgZGF0YSDlrZfmrrXov5Tlm57lrozmlbQgTUlNRSDmupDnoIHvvIzpnIDopoHop6PmnpDlh7ogdGV4dC9wbGFpbiDpg6jliIZcbiAqL1xuZnVuY3Rpb24gZXh0cmFjdFRleHRGcm9tTWltZShyYXc6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghcmF3KSByZXR1cm4gJyc7XG5cbiAgLyog5YiG56a76YKu5Lu25aS05ZKM5q2j5paH77yI5Y+M5o2i6KGM5YiG6ZqU77yJICovXG4gIGNvbnN0IGhlYWRlckJvZHlTcGxpdCA9IHJhdy5pbmRleE9mKCdcXHJcXG5cXHJcXG4nKTtcbiAgaWYgKGhlYWRlckJvZHlTcGxpdCA9PT0gLTEpIHJldHVybiByYXc7XG5cbiAgY29uc3QgaGVhZGVycyA9IHJhdy5zdWJzdHJpbmcoMCwgaGVhZGVyQm9keVNwbGl0KTtcbiAgY29uc3QgYm9keSA9IHJhdy5zdWJzdHJpbmcoaGVhZGVyQm9keVNwbGl0ICsgNCk7XG5cbiAgLyog5qOA5p+l5piv5ZCm5Li6IG11bHRpcGFydCDpgq7ku7YgKi9cbiAgY29uc3QgYm91bmRhcnlNYXRjaCA9IGhlYWRlcnMubWF0Y2goL2JvdW5kYXJ5PVwiPyhbXlwiO1xcclxcbl0rKVwiPy9pKTtcbiAgaWYgKGJvdW5kYXJ5TWF0Y2gpIHtcbiAgICBjb25zdCBib3VuZGFyeSA9IGJvdW5kYXJ5TWF0Y2hbMV07XG4gICAgY29uc3QgcGFydHMgPSBib2R5LnNwbGl0KCctLScgKyBib3VuZGFyeSk7XG5cbiAgICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFydHMpIHtcbiAgICAgIC8qIOafpeaJviB0ZXh0L3BsYWluIOmDqOWIhiAqL1xuICAgICAgaWYgKHBhcnQubWF0Y2goL0NvbnRlbnQtVHlwZTpcXHMqdGV4dFxcL3BsYWluL2kpKSB7XG4gICAgICAgIGNvbnN0IHBhcnRIZWFkZXJFbmQgPSBwYXJ0LmluZGV4T2YoJ1xcclxcblxcclxcbicpO1xuICAgICAgICBpZiAocGFydEhlYWRlckVuZCA9PT0gLTEpIGNvbnRpbnVlO1xuXG4gICAgICAgIGNvbnN0IHBhcnRIZWFkZXJzID0gcGFydC5zdWJzdHJpbmcoMCwgcGFydEhlYWRlckVuZCk7XG4gICAgICAgIGxldCBjb250ZW50ID0gcGFydC5zdWJzdHJpbmcocGFydEhlYWRlckVuZCArIDQpLnJlcGxhY2UoL1xcclxcbiQvLCAnJykucmVwbGFjZSgvLS0kLywgJycpLnRyaW0oKTtcblxuICAgICAgICAvKiDlpITnkIYgQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZyAqL1xuICAgICAgICBpZiAocGFydEhlYWRlcnMubWF0Y2goL0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6XFxzKmJhc2U2NC9pKSkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb250ZW50ID0gQnVmZmVyLmZyb20oY29udGVudC5yZXBsYWNlKC9cXHMvZywgJycpLCAnYmFzZTY0JykudG9TdHJpbmcoJ3V0Zi04Jyk7XG4gICAgICAgICAgfSBjYXRjaCB7IC8qIOino+eggeWksei0peWImeS/neeVmeWOn+aWhyAqLyB9XG4gICAgICAgIH0gZWxzZSBpZiAocGFydEhlYWRlcnMubWF0Y2goL0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6XFxzKnF1b3RlZC1wcmludGFibGUvaSkpIHtcbiAgICAgICAgICBjb250ZW50ID0gY29udGVudFxuICAgICAgICAgICAgLnJlcGxhY2UoLz1cXHI/XFxuL2csICcnKVxuICAgICAgICAgICAgLnJlcGxhY2UoLz0oWzAtOUEtRmEtZl17Mn0pL2csIChfLCBoZXg6IHN0cmluZykgPT4gU3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChoZXgsIDE2KSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbnRlbnQudHJpbSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qIOmdniBtdWx0aXBhcnTvvJrmo4Dmn6XmlbTkvZPnvJbnoIEgKi9cbiAgaWYgKGhlYWRlcnMubWF0Y2goL0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6XFxzKmJhc2U2NC9pKSkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gQnVmZmVyLmZyb20oYm9keS5yZXBsYWNlKC9cXHMvZywgJycpLCAnYmFzZTY0JykudG9TdHJpbmcoJ3V0Zi04JykudHJpbSgpO1xuICAgIH0gY2F0Y2ggeyAvKiDop6PnoIHlpLHotKUgKi8gfVxuICB9XG5cbiAgcmV0dXJuIGJvZHkudHJpbSgpO1xufVxuXG4vKipcbiAqIOeUn+aIkOmaj+acuueUqOaIt+WQjVxuICovXG5mdW5jdGlvbiByYW5kb21Vc2VybmFtZShsZW5ndGg6IG51bWJlciA9IDEwKTogc3RyaW5nIHtcbiAgY29uc3QgY2hhcnMgPSAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5JztcbiAgbGV0IHJlc3VsdCA9ICcnO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgcmVzdWx0ICs9IGNoYXJzLmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFycy5sZW5ndGgpKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIOWPkemAgSBHcmFwaFFMIOivt+axglxuICog5L2/55SoIG9wZXJhdGlvbk5hbWUgKyB2YXJpYWJsZXMg55qE5qCH5YeGIEdyYXBoUUwg5qC85byPXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdyYXBocWxSZXF1ZXN0KFxuICBvcGVyYXRpb25OYW1lOiBzdHJpbmcsXG4gIHF1ZXJ5OiBzdHJpbmcsXG4gIHZhcmlhYmxlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9LFxuKTogUHJvbWlzZTxhbnk+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChHUkFQSFFMX1VSTCwge1xuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGhlYWRlcnM6IHtcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAnT3JpZ2luJzogJ2h0dHBzOi8vbWFpbGRyb3AuY2MnLFxuICAgICAgJ1JlZmVyZXInOiAnaHR0cHM6Ly9tYWlsZHJvcC5jYy8nLFxuICAgICAgJ1VzZXItQWdlbnQnOiAnTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2JyxcbiAgICB9LFxuICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgb3BlcmF0aW9uTmFtZSwgdmFyaWFibGVzLCBxdWVyeSB9KSxcbiAgfSk7XG5cbiAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgIHRocm93IG5ldyBFcnJvcihgTWFpbGRyb3AgR3JhcGhRTCByZXF1ZXN0IGZhaWxlZDogJHtyZXNwb25zZS5zdGF0dXN9YCk7XG4gIH1cblxuICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICBpZiAoZGF0YS5lcnJvcnMgJiYgZGF0YS5lcnJvcnMubGVuZ3RoID4gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTWFpbGRyb3AgR3JhcGhRTCBlcnJvcjogJHtkYXRhLmVycm9yc1swXS5tZXNzYWdlfWApO1xuICB9XG5cbiAgcmV0dXJuIGRhdGEuZGF0YTtcbn1cblxuLyoqXG4gKiDliJvlu7rkuLTml7bpgq7nrrFcbiAqIE1haWxkcm9wIOaXoOmcgOazqOWGjO+8jOS7u+aEj+eUqOaIt+WQjeWNs+WPr+aOpeaUtumCruS7tlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVFbWFpbCgpOiBQcm9taXNlPEludGVybmFsRW1haWxJbmZvPiB7XG4gIGNvbnN0IHVzZXJuYW1lID0gcmFuZG9tVXNlcm5hbWUoKTtcbiAgY29uc3QgZW1haWwgPSBgJHt1c2VybmFtZX1AJHtET01BSU59YDtcblxuICAvKiDpqozor4Hpgq7nrrHlj6/nlKjvvJrmn6Xor6LkuIDmrKEgaW5ib3gg56Gu6K6kIEFQSSDmraPluLggKi9cbiAgYXdhaXQgZ3JhcGhxbFJlcXVlc3QoXG4gICAgJ0dldEluYm94JyxcbiAgICAncXVlcnkgR2V0SW5ib3goJG1haWxib3g6IFN0cmluZyEpIHsgaW5ib3gobWFpbGJveDogJG1haWxib3gpIHsgaWQgfSB9JyxcbiAgICB7IG1haWxib3g6IHVzZXJuYW1lIH0sXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICBjaGFubmVsOiBDSEFOTkVMLFxuICAgIGVtYWlsLFxuICAgIHRva2VuOiB1c2VybmFtZSxcbiAgfTtcbn1cblxuLyoqXG4gKiDojrflj5bpgq7ku7bliJfooahcbiAqIOWFiOafpSBpbmJveCDojrflj5bpgq7ku7YgSUQg5YiX6KGo77yM5YaN6YCQ5bCB6I635Y+W5a6M5pW05YaF5a65XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRFbWFpbHModG9rZW46IHN0cmluZywgZW1haWw6IHN0cmluZyk6IFByb21pc2U8RW1haWxbXT4ge1xuICBjb25zdCBtYWlsYm94ID0gdG9rZW4gfHwgZW1haWwuc3BsaXQoJ0AnKVswXTtcblxuICAvKiDmn6Xor6LmlLbku7bnrrHliJfooaggKi9cbiAgY29uc3QgaW5ib3hEYXRhID0gYXdhaXQgZ3JhcGhxbFJlcXVlc3QoXG4gICAgJ0dldEluYm94JyxcbiAgICAncXVlcnkgR2V0SW5ib3goJG1haWxib3g6IFN0cmluZyEpIHsgaW5ib3gobWFpbGJveDogJG1haWxib3gpIHsgaWQgaGVhZGVyZnJvbSBzdWJqZWN0IGRhdGUgfSB9JyxcbiAgICB7IG1haWxib3ggfSxcbiAgKTtcblxuICBjb25zdCBpbmJveCA9IGluYm94RGF0YT8uaW5ib3g7XG4gIGlmICghQXJyYXkuaXNBcnJheShpbmJveCkgfHwgaW5ib3gubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgLyog6YCQ5bCB6I635Y+W5a6M5pW06YKu5Lu25YaF5a65ICovXG4gIGNvbnN0IGVtYWlsczogRW1haWxbXSA9IFtdO1xuICBmb3IgKGNvbnN0IGl0ZW0gb2YgaW5ib3gpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbXNnRGF0YSA9IGF3YWl0IGdyYXBocWxSZXF1ZXN0KFxuICAgICAgICAnR2V0TWVzc2FnZScsXG4gICAgICAgICdxdWVyeSBHZXRNZXNzYWdlKCRtYWlsYm94OiBTdHJpbmchLCAkaWQ6IFN0cmluZyEpIHsgbWVzc2FnZShtYWlsYm94OiAkbWFpbGJveCwgaWQ6ICRpZCkgeyBpZCBoZWFkZXJmcm9tIHN1YmplY3QgZGF0ZSBkYXRhIGh0bWwgfSB9JyxcbiAgICAgICAgeyBtYWlsYm94LCBpZDogaXRlbS5pZCB9LFxuICAgICAgKTtcblxuICAgICAgY29uc3QgbXNnID0gbXNnRGF0YT8ubWVzc2FnZTtcbiAgICAgIGlmIChtc2cpIHtcbiAgICAgICAgZW1haWxzLnB1c2goe1xuICAgICAgICAgIGlkOiBtc2cuaWQgfHwgaXRlbS5pZCxcbiAgICAgICAgICBmcm9tOiBkZWNvZGVSZmMyMDQ3KG1zZy5oZWFkZXJmcm9tIHx8IGl0ZW0uaGVhZGVyZnJvbSB8fCAnJyksXG4gICAgICAgICAgdG86IGVtYWlsLFxuICAgICAgICAgIHN1YmplY3Q6IGRlY29kZVJmYzIwNDcobXNnLnN1YmplY3QgfHwgaXRlbS5zdWJqZWN0IHx8ICcnKSxcbiAgICAgICAgICB0ZXh0OiBleHRyYWN0VGV4dEZyb21NaW1lKG1zZy5kYXRhIHx8ICcnKSxcbiAgICAgICAgICBodG1sOiBtc2cuaHRtbCB8fCAnJyxcbiAgICAgICAgICBkYXRlOiBtc2cuZGF0ZSB8fCBpdGVtLmRhdGUgfHwgJycsXG4gICAgICAgICAgaXNSZWFkOiBmYWxzZSxcbiAgICAgICAgICBhdHRhY2htZW50czogW10sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gY2F0Y2gge1xuICAgICAgLyog5Y2V5bCB6YKu5Lu26I635Y+W5aSx6LSl5LiN5b2x5ZON5pW05L2TICovXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGVtYWlscztcbn1cbiJdfQ==
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbGRyb3AuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmlkZXJzL21haWxkcm9wLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7O0dBU0c7O0FBc0lILHNDQWdCQztBQU1ELDhCQTZDQztBQXRNRCxvQ0FBNEM7QUFFNUMsTUFBTSxPQUFPLEdBQVksVUFBVSxDQUFDO0FBQ3BDLE1BQU0sV0FBVyxHQUFHLGlDQUFpQyxDQUFDO0FBQ3RELE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQztBQUU3Qjs7O0dBR0c7QUFDSCxTQUFTLGFBQWEsQ0FBQyxHQUFXO0lBQ2hDLElBQUksQ0FBQyxHQUFHO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDcEIsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLGlDQUFpQyxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDdEYsSUFBSSxDQUFDO1lBQ0gsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ25DLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFELENBQUM7WUFDRCx1Q0FBdUM7WUFDdkMsTUFBTSxPQUFPLEdBQUcsT0FBTztpQkFDcEIsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUM7aUJBQ2xCLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLEVBQVUsRUFBRSxHQUFXLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEcsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7SUFDSCxDQUFDLENBQUMs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KipcbiAqIE1haWxkcm9wIOa4oOmBk+WunueOsFxuICogQVBJOiBHcmFwaFFMIGVuZHBvaW50IGh0dHBzOi8vYXBpLm1haWxkcm9wLmNjL2dyYXBocWxcbiAqIFxuICog54m554K5OlxuICogLSDml6DpnIDorqTor4HvvIzlhazlvIAgR3JhcGhRTCBBUElcbiAqIC0g6Ieq5bim5Y+N5Z6D5Zy+6L+H5rukXG4gKiAtIOmCrueuseWQjeWNs+eUqOaIt+WQje+8iOS7u+aEj+Wtl+espuS4skBtYWlsZHJvcC5jY++8iVxuICogLSDml6Dov4fmnJ/ml7bpl7TpmZDliLZcbiAqL1xuXG5pbXBvcnQgeyBJbnRlcm5hbEVtYWlsSW5mbywgRW1haWwsIENoYW5uZWwgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBmZXRjaFdpdGhUaW1lb3V0IH0gZnJvbSAnLi4vcmV0cnknO1xuXG5jb25zdCBDSEFOTkVMOiBDaGFubmVsID0gJ21haWxkcm9wJztcbmNvbnN0IEdSQVBIUUxfVVJMID0gJ2h0dHBzOi8vYXBpLm1haWxkcm9wLmNjL2dyYXBocWwnO1xuY29uc3QgRE9NQUlOID0gJ21haWxkcm9wLmNjJztcblxuLyoqXG4gKiDop6PnoIEgUkZDIDIwNDcg57yW56CB55qE6YKu5Lu25aS077yI5aaC5Y+R5Lu25Lq644CB5Li76aKY77yJXG4gKiDmlK/mjIEgQmFzZTY0IChCKSDlkowgUXVvdGVkLVByaW50YWJsZSAoUSkg57yW56CBXG4gKi9cbmZ1bmN0aW9uIGRlY29kZVJmYzIwNDcoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIXN0cikgcmV0dXJuICcnO1xuICByZXR1cm4gc3RyLnJlcGxhY2UoLz1cXD8oW14/XSspXFw/KEJ8USlcXD8oW14/XSopXFw/PS9naSwgKF8sIGNoYXJzZXQsIGVuY29kaW5nLCBlbmNvZGVkKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChlbmNvZGluZy50b1VwcGVyQ2FzZSgpID09PSAnQicpIHtcbiAgICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKGVuY29kZWQsICdiYXNlNjQnKS50b1N0cmluZygndXRmLTgnKTtcbiAgICAgIH1cbiAgICAgIC8qIFF1b3RlZC1QcmludGFibGU6IF8956m65qC877yMPVhYPeWNgeWFrei/m+WItuWtl+iKgiAqL1xuICAgICAgY29uc3QgZGVjb2RlZCA9IGVuY29kZWRcbiAgICAgICAgLnJlcGxhY2UoL18vZywgJyAnKVxuICAgICAgICAucmVwbGFjZSgvPShbMC05QS1GYS1mXXsyfSkvZywgKF9tOiBzdHJpbmcsIGhleDogc3RyaW5nKSA9PiBTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGhleCwgMTYpKSk7XG4gICAgICByZXR1cm4gZGVjb2RlZDtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBlbmNvZGVkO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICog5LuO5Y6f5aeLIE1JTUUg6YKu5Lu25rqQ56CB5Lit5o+Q5Y+W57qv5paH5pys5q2j5paHXG4gKiBtYWlsZHJvcCDnmoQgZGF0YSDlrZfmrrXov5Tlm57lrozmlbQgTUlNRSDmupDnoIHvvIzpnIDopoHop6PmnpDlh7ogdGV4dC9wbGFpbiDpg6jliIZcbiAqL1xuZnVuY3Rpb24gZXh0cmFjdFRleHRGcm9tTWltZShyYXc6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghcmF3KSByZXR1cm4gJyc7XG5cbiAgLyog5YiG56a76YKu5Lu25aS05ZKM5q2j5paH77yI5Y+M5o2i6KGM5YiG6ZqU77yJICovXG4gIGNvbnN0IGhlYWRlckJvZHlTcGxpdCA9IHJhdy5pbmRleE9mKCdcXHJcXG5cXHJcXG4nKTtcbiAgaWYgKGhlYWRlckJvZHlTcGxpdCA9PT0gLTEpIHJldHVybiByYXc7XG5cbiAgY29uc3QgaGVhZGVycyA9IHJhdy5zdWJzdHJpbmcoMCwgaGVhZGVyQm9keVNwbGl0KTtcbiAgY29uc3QgYm9keSA9IHJhdy5zdWJzdHJpbmcoaGVhZGVyQm9keVNwbGl0ICsgNCk7XG5cbiAgLyog5qOA5p+l5piv5ZCm5Li6IG11bHRpcGFydCDpgq7ku7YgKi9cbiAgY29uc3QgYm91bmRhcnlNYXRjaCA9IGhlYWRlcnMubWF0Y2goL2JvdW5kYXJ5PVwiPyhbXlwiO1xcclxcbl0rKVwiPy9pKTtcbiAgaWYgKGJvdW5kYXJ5TWF0Y2gpIHtcbiAgICBjb25zdCBib3VuZGFyeSA9IGJvdW5kYXJ5TWF0Y2hbMV07XG4gICAgY29uc3QgcGFydHMgPSBib2R5LnNwbGl0KCctLScgKyBib3VuZGFyeSk7XG5cbiAgICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFydHMpIHtcbiAgICAgIC8qIOafpeaJviB0ZXh0L3BsYWluIOmDqOWIhiAqL1xuICAgICAgaWYgKHBhcnQubWF0Y2goL0NvbnRlbnQtVHlwZTpcXHMqdGV4dFxcL3BsYWluL2kpKSB7XG4gICAgICAgIGNvbnN0IHBhcnRIZWFkZXJFbmQgPSBwYXJ0LmluZGV4T2YoJ1xcclxcblxcclxcbicpO1xuICAgICAgICBpZiAocGFydEhlYWRlckVuZCA9PT0gLTEpIGNvbnRpbnVlO1xuXG4gICAgICAgIGNvbnN0IHBhcnRIZWFkZXJzID0gcGFydC5zdWJzdHJpbmcoMCwgcGFydEhlYWRlckVuZCk7XG4gICAgICAgIGxldCBjb250ZW50ID0gcGFydC5zdWJzdHJpbmcocGFydEhlYWRlckVuZCArIDQpLnJlcGxhY2UoL1xcclxcbiQvLCAnJykucmVwbGFjZSgvLS0kLywgJycpLnRyaW0oKTtcblxuICAgICAgICAvKiDlpITnkIYgQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZyAqL1xuICAgICAgICBpZiAocGFydEhlYWRlcnMubWF0Y2goL0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6XFxzKmJhc2U2NC9pKSkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb250ZW50ID0gQnVmZmVyLmZyb20oY29udGVudC5yZXBsYWNlKC9cXHMvZywgJycpLCAnYmFzZTY0JykudG9TdHJpbmcoJ3V0Zi04Jyk7XG4gICAgICAgICAgfSBjYXRjaCB7IC8qIOino+eggeWksei0peWImeS/neeVmeWOn+aWhyAqLyB9XG4gICAgICAgIH0gZWxzZSBpZiAocGFydEhlYWRlcnMubWF0Y2goL0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6XFxzKnF1b3RlZC1wcmludGFibGUvaSkpIHtcbiAgICAgICAgICBjb250ZW50ID0gY29udGVudFxuICAgICAgICAgICAgLnJlcGxhY2UoLz1cXHI/XFxuL2csICcnKVxuICAgICAgICAgICAgLnJlcGxhY2UoLz0oWzAtOUEtRmEtZl17Mn0pL2csIChfLCBoZXg6IHN0cmluZykgPT4gU3RyaW5nLmZyb21DaGFyQ29kZShwYXJzZUludChoZXgsIDE2KSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbnRlbnQudHJpbSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qIOmdniBtdWx0aXBhcnTvvJrmo4Dmn6XmlbTkvZPnvJbnoIEgKi9cbiAgaWYgKGhlYWRlcnMubWF0Y2goL0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6XFxzKmJhc2U2NC9pKSkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gQnVmZmVyLmZyb20oYm9keS5yZXBsYWNlKC9cXHMvZywgJycpLCAnYmFzZTY0JykudG9TdHJpbmcoJ3V0Zi04JykudHJpbSgpO1xuICAgIH0gY2F0Y2ggeyAvKiDop6PnoIHlpLHotKUgKi8gfVxuICB9XG5cbiAgcmV0dXJuIGJvZHkudHJpbSgpO1xufVxuXG4vKipcbiAqIOeUn+aIkOmaj+acuueUqOaIt+WQjVxuICovXG5mdW5jdGlvbiByYW5kb21Vc2VybmFtZShsZW5ndGg6IG51bWJlciA9IDEwKTogc3RyaW5nIHtcbiAgY29uc3QgY2hhcnMgPSAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5JztcbiAgbGV0IHJlc3VsdCA9ICcnO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgcmVzdWx0ICs9IGNoYXJzLmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFycy5sZW5ndGgpKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIOWPkemAgSBHcmFwaFFMIOivt+axglxuICog5L2/55SoIG9wZXJhdGlvbk5hbWUgKyB2YXJpYWJsZXMg55qE5qCH5YeGIEdyYXBoUUwg5qC85byPXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdyYXBocWxSZXF1ZXN0KFxuICBvcGVyYXRpb25OYW1lOiBzdHJpbmcsXG4gIHF1ZXJ5OiBzdHJpbmcsXG4gIHZhcmlhYmxlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9LFxuKTogUHJvbWlzZTxhbnk+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaFdpdGhUaW1lb3V0KEdSQVBIUUxfVVJMLCB7XG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgaGVhZGVyczoge1xuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICdPcmlnaW4nOiAnaHR0cHM6Ly9tYWlsZHJvcC5jYycsXG4gICAgICAnUmVmZXJlcic6ICdodHRwczovL21haWxkcm9wLmNjLycsXG4gICAgICAnVXNlci1BZ2VudCc6ICdNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYnLFxuICAgIH0sXG4gICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBvcGVyYXRpb25OYW1lLCB2YXJpYWJsZXMsIHF1ZXJ5IH0pLFxuICB9KTtcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBNYWlsZHJvcCBHcmFwaFFMIHJlcXVlc3QgZmFpbGVkOiAke3Jlc3BvbnNlLnN0YXR1c31gKTtcbiAgfVxuXG4gIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gIGlmIChkYXRhLmVycm9ycyAmJiBkYXRhLmVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBNYWlsZHJvcCBHcmFwaFFMIGVycm9yOiAke2RhdGEuZXJyb3JzWzBdLm1lc3NhZ2V9YCk7XG4gIH1cblxuICByZXR1cm4gZGF0YS5kYXRhO1xufVxuXG4vKipcbiAqIOWIm+W7uuS4tOaXtumCrueusVxuICogTWFpbGRyb3Ag5peg6ZyA5rOo5YaM77yM5Lu75oSP55So5oi35ZCN5Y2z5Y+v5o6l5pS26YKu5Lu2XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZUVtYWlsKCk6IFByb21pc2U8SW50ZXJuYWxFbWFpbEluZm8+IHtcbiAgY29uc3QgdXNlcm5hbWUgPSByYW5kb21Vc2VybmFtZSgpO1xuICBjb25zdCBlbWFpbCA9IGAke3VzZXJuYW1lfUAke0RPTUFJTn1gO1xuXG4gIC8qIOmqjOivgemCrueuseWPr+eUqO+8muafpeivouS4gOasoSBpbmJveCDnoa7orqQgQVBJIOato+W4uCAqL1xuICBhd2FpdCBncmFwaHFsUmVxdWVzdChcbiAgICAnR2V0SW5ib3gnLFxuICAgICdxdWVyeSBHZXRJbmJveCgkbWFpbGJveDogU3RyaW5nISkgeyBpbmJveChtYWlsYm94OiAkbWFpbGJveCkgeyBpZCB9IH0nLFxuICAgIHsgbWFpbGJveDogdXNlcm5hbWUgfSxcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIGNoYW5uZWw6IENIQU5ORUwsXG4gICAgZW1haWwsXG4gICAgdG9rZW46IHVzZXJuYW1lLFxuICB9O1xufVxuXG4vKipcbiAqIOiOt+WPlumCruS7tuWIl+ihqFxuICog5YWI5p+lIGluYm94IOiOt+WPlumCruS7tiBJRCDliJfooajvvIzlho3pgJDlsIHojrflj5blrozmlbTlhoXlrrlcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEVtYWlscyh0b2tlbjogc3RyaW5nLCBlbWFpbDogc3RyaW5nKTogUHJvbWlzZTxFbWFpbFtdPiB7XG4gIGNvbnN0IG1haWxib3ggPSB0b2tlbiB8fCBlbWFpbC5zcGxpdCgnQCcpWzBdO1xuXG4gIC8qIOafpeivouaUtuS7tueuseWIl+ihqCAqL1xuICBjb25zdCBpbmJveERhdGEgPSBhd2FpdCBncmFwaHFsUmVxdWVzdChcbiAgICAnR2V0SW5ib3gnLFxuICAgICdxdWVyeSBHZXRJbmJveCgkbWFpbGJveDogU3RyaW5nISkgeyBpbmJveChtYWlsYm94OiAkbWFpbGJveCkgeyBpZCBoZWFkZXJmcm9tIHN1YmplY3QgZGF0ZSB9IH0nLFxuICAgIHsgbWFpbGJveCB9LFxuICApO1xuXG4gIGNvbnN0IGluYm94ID0gaW5ib3hEYXRhPy5pbmJveDtcbiAgaWYgKCFBcnJheS5pc0FycmF5KGluYm94KSB8fCBpbmJveC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICAvKiDpgJDlsIHojrflj5blrozmlbTpgq7ku7blhoXlrrkgKi9cbiAgY29uc3QgZW1haWxzOiBFbWFpbFtdID0gW107XG4gIGZvciAoY29uc3QgaXRlbSBvZiBpbmJveCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtc2dEYXRhID0gYXdhaXQgZ3JhcGhxbFJlcXVlc3QoXG4gICAgICAgICdHZXRNZXNzYWdlJyxcbiAgICAgICAgJ3F1ZXJ5IEdldE1lc3NhZ2UoJG1haWxib3g6IFN0cmluZyEsICRpZDogU3RyaW5nISkgeyBtZXNzYWdlKG1haWxib3g6ICRtYWlsYm94LCBpZDogJGlkKSB7IGlkIGhlYWRlcmZyb20gc3ViamVjdCBkYXRlIGRhdGEgaHRtbCB9IH0nLFxuICAgICAgICB7IG1haWxib3gsIGlkOiBpdGVtLmlkIH0sXG4gICAgICApO1xuXG4gICAgICBjb25zdCBtc2cgPSBtc2dEYXRhPy5tZXNzYWdlO1xuICAgICAgaWYgKG1zZykge1xuICAgICAgICBlbWFpbHMucHVzaCh7XG4gICAgICAgICAgaWQ6IG1zZy5pZCB8fCBpdGVtLmlkLFxuICAgICAgICAgIGZyb206IGRlY29kZVJmYzIwNDcobXNnLmhlYWRlcmZyb20gfHwgaXRlbS5oZWFkZXJmcm9tIHx8ICcnKSxcbiAgICAgICAgICB0bzogZW1haWwsXG4gICAgICAgICAgc3ViamVjdDogZGVjb2RlUmZjMjA0Nyhtc2cuc3ViamVjdCB8fCBpdGVtLnN1YmplY3QgfHwgJycpLFxuICAgICAgICAgIHRleHQ6IGV4dHJhY3RUZXh0RnJvbU1pbWUobXNnLmRhdGEgfHwgJycpLFxuICAgICAgICAgIGh0bWw6IG1zZy5odG1sIHx8ICcnLFxuICAgICAgICAgIGRhdGU6IG1zZy5kYXRlIHx8IGl0ZW0uZGF0ZSB8fCAnJyxcbiAgICAgICAgICBpc1JlYWQ6IGZhbHNlLFxuICAgICAgICAgIGF0dGFjaG1lbnRzOiBbXSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICAvKiDljZXlsIHpgq7ku7bojrflj5blpLHotKXkuI3lvbHlk43mlbTkvZMgKi9cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZW1haWxzO1xufVxuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { InternalEmailInfo, Email } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* POST intent=generate,保存 Set-Cookie __session,从 RSC 响应中解析邮箱
|
|
4
|
+
*/
|
|
5
|
+
export declare function generateEmail(): Promise<InternalEmailInfo>;
|
|
6
|
+
/**
|
|
7
|
+
* GET _root.data,携带 __session Cookie,解析邮件列表
|
|
8
|
+
*/
|
|
9
|
+
export declare function getEmails(token: string, email: string): Promise<Email[]>;
|