tempmail-sdk 1.1.3 → 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 +30 -15
- package/dist/providers/chatgpt-org-uk.js +120 -54
- package/dist/providers/dropmail.js +134 -3
- package/dist/providers/linshi-email.d.ts +1 -1
- package/dist/providers/linshi-email.js +18 -7
- package/dist/providers/linshi-token.d.ts +25 -0
- package/dist/providers/linshi-token.js +69 -0
- package/dist/providers/mail-tm.js +39 -22
- package/dist/providers/smail-pw.d.ts +9 -0
- package/dist/providers/smail-pw.js +356 -0
- 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 +29 -13
- package/src/providers/chatgpt-org-uk.ts +131 -53
- package/src/providers/dropmail.ts +161 -2
- package/src/providers/linshi-email.ts +23 -7
- package/src/providers/linshi-token.ts +86 -0
- package/src/providers/mail-tm.ts +39 -21
- package/src/providers/smail-pw.ts +382 -0
- package/src/types.ts +6 -1
- package/test/example.ts +174 -3
- package/dist/providers/tempmail-la.d.ts +0 -15
- package/dist/providers/tempmail-la.js +0 -90
- package/src/providers/tempmail-la.ts +0 -100
|
@@ -4,8 +4,139 @@ exports.generateEmail = generateEmail;
|
|
|
4
4
|
exports.getEmails = getEmails;
|
|
5
5
|
const normalize_1 = require("../normalize");
|
|
6
6
|
const retry_1 = require("../retry");
|
|
7
|
+
const config_1 = require("../config");
|
|
7
8
|
const CHANNEL = 'dropmail';
|
|
8
|
-
const
|
|
9
|
+
const TOKEN_GENERATE_URL = 'https://dropmail.me/api/token/generate';
|
|
10
|
+
const TOKEN_RENEW_URL = 'https://dropmail.me/api/token/renew';
|
|
11
|
+
/** 申请 1h 令牌,缓存略短于 1h,避免边界过期 */
|
|
12
|
+
const AUTO_TOKEN_CACHE_MS = 50 * 60 * 1000;
|
|
13
|
+
/** 距缓存过期前多久触发 renew(毫秒) */
|
|
14
|
+
const RENEW_BEFORE_EXPIRY_MS = 10 * 60 * 1000;
|
|
15
|
+
function cacheMsForLifetime(lifetime) {
|
|
16
|
+
const s = lifetime.trim().toLowerCase();
|
|
17
|
+
if (s === '1h')
|
|
18
|
+
return 50 * 60 * 1000;
|
|
19
|
+
if (s === '1d')
|
|
20
|
+
return 23 * 60 * 60 * 1000;
|
|
21
|
+
if (s === '7d' || s === '30d' || s === '90d') {
|
|
22
|
+
const days = parseInt(s, 10);
|
|
23
|
+
return Math.max(0, days - 1) * 24 * 60 * 60 * 1000;
|
|
24
|
+
}
|
|
25
|
+
return AUTO_TOKEN_CACHE_MS;
|
|
26
|
+
}
|
|
27
|
+
function dropmailRenewLifetime() {
|
|
28
|
+
const c = (0, config_1.getConfig)().dropmailRenewLifetime?.trim();
|
|
29
|
+
if (c)
|
|
30
|
+
return c;
|
|
31
|
+
const e = typeof process !== 'undefined' && process.env?.DROPMAIL_RENEW_LIFETIME?.trim();
|
|
32
|
+
return e || '1d';
|
|
33
|
+
}
|
|
34
|
+
const TOKEN_HEADERS = {
|
|
35
|
+
Accept: 'application/json',
|
|
36
|
+
'Content-Type': 'application/json',
|
|
37
|
+
Origin: 'https://dropmail.me',
|
|
38
|
+
Referer: 'https://dropmail.me/api/',
|
|
39
|
+
};
|
|
40
|
+
let cachedAfToken = null;
|
|
41
|
+
let tokenFetchInFlight = null;
|
|
42
|
+
function explicitDropmailAuthToken() {
|
|
43
|
+
const fromConfig = (0, config_1.getConfig)().dropmailAuthToken?.trim();
|
|
44
|
+
const fromEnv = typeof process !== 'undefined' && process.env
|
|
45
|
+
? process.env.DROPMAIL_AUTH_TOKEN?.trim() || process.env.DROPMAIL_API_TOKEN?.trim()
|
|
46
|
+
: undefined;
|
|
47
|
+
return fromConfig || fromEnv;
|
|
48
|
+
}
|
|
49
|
+
function dropmailAutoTokenDisabled() {
|
|
50
|
+
if ((0, config_1.getConfig)().dropmailDisableAutoToken) {
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
const v = typeof process !== 'undefined' && process.env?.DROPMAIL_NO_AUTO_TOKEN?.trim().toLowerCase();
|
|
54
|
+
return v === '1' || v === 'true' || v === 'yes';
|
|
55
|
+
}
|
|
56
|
+
async function fetchAfTokenFromApi() {
|
|
57
|
+
const response = await (0, retry_1.fetchWithTimeout)(TOKEN_GENERATE_URL, {
|
|
58
|
+
method: 'POST',
|
|
59
|
+
headers: TOKEN_HEADERS,
|
|
60
|
+
body: JSON.stringify({ type: 'af', lifetime: '1h' }),
|
|
61
|
+
});
|
|
62
|
+
if (!response.ok) {
|
|
63
|
+
throw new Error(`DropMail token/generate HTTP ${response.status}`);
|
|
64
|
+
}
|
|
65
|
+
const body = (await response.json());
|
|
66
|
+
const token = typeof body.token === 'string' ? body.token.trim() : '';
|
|
67
|
+
if (!token || !token.startsWith('af_')) {
|
|
68
|
+
throw new Error(body.error || 'DropMail token/generate 未返回有效 af_ 令牌');
|
|
69
|
+
}
|
|
70
|
+
return token;
|
|
71
|
+
}
|
|
72
|
+
async function renewAfTokenFromApi(currentToken, lifetime) {
|
|
73
|
+
const response = await (0, retry_1.fetchWithTimeout)(TOKEN_RENEW_URL, {
|
|
74
|
+
method: 'POST',
|
|
75
|
+
headers: TOKEN_HEADERS,
|
|
76
|
+
body: JSON.stringify({ token: currentToken, lifetime }),
|
|
77
|
+
});
|
|
78
|
+
if (!response.ok) {
|
|
79
|
+
throw new Error(`DropMail token/renew HTTP ${response.status}`);
|
|
80
|
+
}
|
|
81
|
+
const body = (await response.json());
|
|
82
|
+
const token = typeof body.token === 'string' ? body.token.trim() : '';
|
|
83
|
+
if (!token || !token.startsWith('af_')) {
|
|
84
|
+
throw new Error(body.error || 'DropMail token/renew 未返回有效 af_ 令牌');
|
|
85
|
+
}
|
|
86
|
+
return token;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* 解析 GraphQL 用的 af_ 令牌:优先配置/环境变量,否则 generate + 缓存,将过期时 renew。
|
|
90
|
+
*/
|
|
91
|
+
async function resolveDropmailAuthToken() {
|
|
92
|
+
const explicit = explicitDropmailAuthToken();
|
|
93
|
+
if (explicit) {
|
|
94
|
+
return explicit;
|
|
95
|
+
}
|
|
96
|
+
if (dropmailAutoTokenDisabled()) {
|
|
97
|
+
throw new Error('DropMail 已禁用自动令牌:请设置 DROPMAIL_AUTH_TOKEN,或 setConfig({ dropmailAuthToken: "af_..." }),见 https://dropmail.me/api/');
|
|
98
|
+
}
|
|
99
|
+
const now = Date.now();
|
|
100
|
+
if (cachedAfToken &&
|
|
101
|
+
now < cachedAfToken.expiresAt - RENEW_BEFORE_EXPIRY_MS) {
|
|
102
|
+
return cachedAfToken.value;
|
|
103
|
+
}
|
|
104
|
+
if (tokenFetchInFlight) {
|
|
105
|
+
return tokenFetchInFlight;
|
|
106
|
+
}
|
|
107
|
+
const renewLifetime = dropmailRenewLifetime();
|
|
108
|
+
tokenFetchInFlight = (async () => {
|
|
109
|
+
try {
|
|
110
|
+
if (cachedAfToken?.value) {
|
|
111
|
+
try {
|
|
112
|
+
const renewed = await renewAfTokenFromApi(cachedAfToken.value, renewLifetime);
|
|
113
|
+
cachedAfToken = {
|
|
114
|
+
value: renewed,
|
|
115
|
+
expiresAt: Date.now() + cacheMsForLifetime(renewLifetime),
|
|
116
|
+
};
|
|
117
|
+
return renewed;
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
/* 续期失败则重新申请 */
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
const token = await fetchAfTokenFromApi();
|
|
124
|
+
cachedAfToken = {
|
|
125
|
+
value: token,
|
|
126
|
+
expiresAt: Date.now() + AUTO_TOKEN_CACHE_MS,
|
|
127
|
+
};
|
|
128
|
+
return token;
|
|
129
|
+
}
|
|
130
|
+
finally {
|
|
131
|
+
tokenFetchInFlight = null;
|
|
132
|
+
}
|
|
133
|
+
})();
|
|
134
|
+
return tokenFetchInFlight;
|
|
135
|
+
}
|
|
136
|
+
async function dropmailGraphqlUrl() {
|
|
137
|
+
const token = await resolveDropmailAuthToken();
|
|
138
|
+
return `https://dropmail.me/api/graphql/${encodeURIComponent(token)}`;
|
|
139
|
+
}
|
|
9
140
|
const DEFAULT_HEADERS = {
|
|
10
141
|
'Content-Type': 'application/x-www-form-urlencoded',
|
|
11
142
|
};
|
|
@@ -27,7 +158,7 @@ async function graphqlRequest(query, variables) {
|
|
|
27
158
|
if (variables) {
|
|
28
159
|
params.set('variables', JSON.stringify(variables));
|
|
29
160
|
}
|
|
30
|
-
const response = await (0, retry_1.fetchWithTimeout)(
|
|
161
|
+
const response = await (0, retry_1.fetchWithTimeout)(await dropmailGraphqlUrl(), {
|
|
31
162
|
method: 'POST',
|
|
32
163
|
headers: DEFAULT_HEADERS,
|
|
33
164
|
body: params.toString(),
|
|
@@ -84,4 +215,4 @@ async function getEmails(token, email) {
|
|
|
84
215
|
const mails = data?.session?.mails || [];
|
|
85
216
|
return mails.map((mail) => (0, normalize_1.normalizeEmail)(flattenMessage(mail, email), email));
|
|
86
217
|
}
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcG1haWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmlkZXJzL2Ryb3BtYWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBd0RBLHNDQWNDO0FBdUJELDhCQUtDO0FBakdELDRDQUE4QztBQUM5QyxvQ0FBNEM7QUFFNUMsTUFBTSxPQUFPLEdBQVksVUFBVSxDQUFDO0FBQ3BDLE1BQU0sUUFBUSxHQUFHLDBDQUEwQyxDQUFDO0FBRTVELE1BQU0sZUFBZSxHQUEyQjtJQUM5QyxjQUFjLEVBQUUsbUNBQW1DO0NBQ3BELENBQUM7QUFFRixNQUFNLG9CQUFvQixHQUFHLHFFQUFxRSxDQUFDO0FBRW5HLE1BQU0sZUFBZSxHQUFHOzs7Ozs7O0VBT3RCLENBQUM7QUFFSDs7R0FFRztBQUNILEtBQUssVUFBVSxjQUFjLENBQUMsS0FBYSxFQUFFLFNBQStCO0lBQzFFLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7SUFDckMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0IsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNkLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFBLHdCQUFnQixFQUFDLFFBQVEsRUFBRTtRQUNoRCxNQUFNLEVBQUUsTUFBTTtRQUNkLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLElBQUksRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO0tBQ3hCLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBRW5DLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxJQUFJLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztBQUNuQixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxhQUFhO0lBQ2pDLE1BQU0sSUFBSSxHQUFHLE1BQU0sY0FBYyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFeEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxFQUFFLGdCQUFnQixDQUFDO0lBQ3ZDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3JFLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLEtBQUssRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU87UUFDbkMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFFO1FBQ2pCLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztLQUM3QixDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxjQUFjLENBQUMsSUFBUyxFQUFFLGNBQXNCO0lBQ3ZELE9BQU87UUFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFO1FBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUU7UUFDekIsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLElBQUksY0FBYztRQUNqQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGFBQWEsSUFBSSxFQUFFO1FBQ2pDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUU7UUFDckIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRTtRQUNyQixXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFO1FBQ2xDLFdBQVcsRUFBRSxFQUFFO0tBQ2hCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxTQUFTLENBQUMsS0FBYSxFQUFFLEtBQWE7SUFDMUQsTUFBTSxJQUFJLEdBQUcsTUFBTSxjQUFjLENBQUMsZUFBZSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFFbEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO0lBQ3pDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBQSwwQkFBYyxFQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUN0RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJuYWxFbWFpbEluZm8sIEVtYWlsLCBDaGFubmVsIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgbm9ybWFsaXplRW1haWwgfSBmcm9tICcuLi9ub3JtYWxpemUnO1xuaW1wb3J0IHsgZmV0Y2hXaXRoVGltZW91dCB9IGZyb20gJy4uL3JldHJ5JztcblxuY29uc3QgQ0hBTk5FTDogQ2hhbm5lbCA9ICdkcm9wbWFpbCc7XG5jb25zdCBCQVNFX1VSTCA9ICdodHRwczovL2Ryb3BtYWlsLm1lL2FwaS9ncmFwaHFsL01ZX1RPS0VOJztcblxuY29uc3QgREVGQVVMVF9IRUFERVJTOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsXG59O1xuXG5jb25zdCBDUkVBVEVfU0VTU0lPTl9RVUVSWSA9ICdtdXRhdGlvbiB7aW50cm9kdWNlU2Vzc2lvbiB7aWQsIGV4cGlyZXNBdCwgYWRkcmVzc2Vze2lkLCBhZGRyZXNzfX19JztcblxuY29uc3QgR0VUX01BSUxTX1FVRVJZID0gYHF1ZXJ5ICgkaWQ6IElEISkge1xuICBzZXNzaW9uKGlkOiRpZCkge1xuICAgIG1haWxzIHtcbiAgICAgIGlkLCByYXdTaXplLCBmcm9tQWRkciwgdG9BZGRyLCByZWNlaXZlZEF0LFxuICAgICAgdGV4dCwgaGVhZGVyRnJvbSwgaGVhZGVyU3ViamVjdCwgaHRtbFxuICAgIH1cbiAgfVxufWA7XG5cbi8qKlxuICog5omn6KGMIEdyYXBoUUwg6K+35rGCXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdyYXBocWxSZXF1ZXN0KHF1ZXJ5OiBzdHJpbmcsIHZhcmlhYmxlcz86IFJlY29yZDxzdHJpbmcsIGFueT4pOiBQcm9taXNlPGFueT4ge1xuICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gIHBhcmFtcy5zZXQoJ3F1ZXJ5JywgcXVlcnkpO1xuICBpZiAodmFyaWFibGVzKSB7XG4gICAgcGFyYW1zLnNldCgndmFyaWFibGVzJywgSlNPTi5zdHJpbmdpZnkodmFyaWFibGVzKSk7XG4gIH1cblxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoV2l0aFRpbWVvdXQoQkFTRV9VUkwsIHtcbiAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICBoZWFkZXJzOiBERUZBVUxUX0hFQURFUlMsXG4gICAgYm9keTogcGFyYW1zLnRvU3RyaW5nKCksXG4gIH0pO1xuXG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEdyYXBoUUwgcmVxdWVzdCBmYWlsZWQ6ICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICB9XG5cbiAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcblxuICBpZiAoZGF0YS5lcnJvcnMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEdyYXBoUUwgZXJyb3I6ICR7ZGF0YS5lcnJvcnNbMF0/Lm1lc3NhZ2UgfHwgJ1Vua25vd24gZXJyb3InfWApO1xuICB9XG5cbiAgcmV0dXJuIGRhdGEuZGF0YTtcbn1cblxuLyoqXG4gKiDliJvlu7rkuLTml7bpgq7nrrFcbiAqIEdyYXBoUUwgbXV0YXRpb246IGludHJvZHVjZVNlc3Npb25cbiAqIOi/lOWbniBzZXNzaW9uIElEICjlrZjlhaUgdG9rZW4pIOWSjOmCrueuseWcsOWdgFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVFbWFpbCgpOiBQcm9taXNlPEludGVybmFsRW1haWxJbmZvPiB7XG4gIGNvbnN0IGRhdGEgPSBhd2FpdCBncmFwaHFsUmVxdWVzdChDUkVBVEVfU0VTU0lPTl9RVUVSWSk7XG5cbiAgY29uc3Qgc2Vzc2lvbiA9IGRhdGE/LmludHJvZHVjZVNlc3Npb247XG4gIGlmICghc2Vzc2lvbiB8fCAhc2Vzc2lvbi5hZGRyZXNzZXMgfHwgc2Vzc2lvbi5hZGRyZXNzZXMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZ2VuZXJhdGUgZW1haWwnKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgY2hhbm5lbDogQ0hBTk5FTCxcbiAgICBlbWFpbDogc2Vzc2lvbi5hZGRyZXNzZXNbMF0uYWRkcmVzcyxcbiAgICB0b2tlbjogc2Vzc2lvbi5pZCxcbiAgICBleHBpcmVzQXQ6IHNlc3Npb24uZXhwaXJlc0F0LFxuICB9O1xufVxuXG4vKipcbiAqIOWwhiBkcm9wbWFpbCDnmoTpgq7ku7bmoLzlvI/miYHlubPljJbkuLogbm9ybWFsaXplRW1haWwg5Y+v5aSE55CG55qE5qC85byPXG4gKi9cbmZ1bmN0aW9uIGZsYXR0ZW5NZXNzYWdlKG1haWw6IGFueSwgcmVjaXBpZW50RW1haWw6IHN0cmluZyk6IGFueSB7XG4gIHJldHVybiB7XG4gICAgaWQ6IG1haWwuaWQgfHwgJycsXG4gICAgZnJvbTogbWFpbC5mcm9tQWRkciB8fCAnJyxcbiAgICB0bzogbWFpbC50b0FkZHIgfHwgcmVjaXBpZW50RW1haWwsXG4gICAgc3ViamVjdDogbWFpbC5oZWFkZXJTdWJqZWN0IHx8ICcnLFxuICAgIHRleHQ6IG1haWwudGV4dCB8fCAnJyxcbiAgICBodG1sOiBtYWlsLmh0bWwgfHwgJycsXG4gICAgcmVjZWl2ZWRfYXQ6IG1haWwucmVjZWl2ZWRBdCB8fCAnJyxcbiAgICBhdHRhY2htZW50czogW10sXG4gIH07XG59XG5cbi8qKlxuICog6I635Y+W6YKu5Lu25YiX6KGoXG4gKiBHcmFwaFFMIHF1ZXJ5OiBzZXNzaW9uKGlkKSB7IG1haWxzIHsuLi59IH1cbiAqIHRva2VuIOS4reWtmOWCqOeahOaYryBzZXNzaW9uIElEXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRFbWFpbHModG9rZW46IHN0cmluZywgZW1haWw6IHN0cmluZyk6IFByb21pc2U8RW1haWxbXT4ge1xuICBjb25zdCBkYXRhID0gYXdhaXQgZ3JhcGhxbFJlcXVlc3QoR0VUX01BSUxTX1FVRVJZLCB7IGlkOiB0b2tlbiB9KTtcblxuICBjb25zdCBtYWlscyA9IGRhdGE/LnNlc3Npb24/Lm1haWxzIHx8IFtdO1xuICByZXR1cm4gbWFpbHMubWFwKChtYWlsOiBhbnkpID0+IG5vcm1hbGl6ZUVtYWlsKGZsYXR0ZW5NZXNzYWdlKG1haWwsIGVtYWlsKSwgZW1haWwpKTtcbn1cbiJdfQ==
|
|
218
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcG1haWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmlkZXJzL2Ryb3BtYWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBdU5BLHNDQWNDO0FBdUJELDhCQUtDO0FBaFFELDRDQUE4QztBQUM5QyxvQ0FBNEM7QUFDNUMsc0NBQXNDO0FBRXRDLE1BQU0sT0FBTyxHQUFZLFVBQVUsQ0FBQztBQUVwQyxNQUFNLGtCQUFrQixHQUFHLHdDQUF3QyxDQUFDO0FBQ3BFLE1BQU0sZUFBZSxHQUFHLHFDQUFxQyxDQUFDO0FBQzlELCtCQUErQjtBQUMvQixNQUFNLG1CQUFtQixHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBQzNDLDJCQUEyQjtBQUMzQixNQUFNLHNCQUFzQixHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBRTlDLFNBQVMsa0JBQWtCLENBQUMsUUFBZ0I7SUFDMUMsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hDLElBQUksQ0FBQyxLQUFLLElBQUk7UUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0lBQ3RDLElBQUksQ0FBQyxLQUFLLElBQUk7UUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztJQUMzQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDN0MsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDckQsQ0FBQztJQUNE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QUNsQyxXQUFXLEVBQUUsRUFBRTtLQUNoQixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7O0dBSUc7QUFDSSxLQUFLLFVBQVUsU0FBUyxDQUFDLEtBQWEsRUFBRSxLQUFhO0lBQzFELE1BQU0sSUFBSSxHQUFHLE1BQU0sY0FBYyxDQUFDLGVBQWUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBRWxFLE1BQU0sS0FBSyxHQUFHLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUN6QyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUEsMEJBQWMsRUFBQyxjQUFjLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDdEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEludGVybmFsRW1haWxJbmZvLCBFbWFpbCwgQ2hhbm5lbCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IG5vcm1hbGl6ZUVtYWlsIH0gZnJvbSAnLi4vbm9ybWFsaXplJztcbmltcG9ydCB7IGZldGNoV2l0aFRpbWVvdXQgfSBmcm9tICcuLi9yZXRyeSc7XG5pbXBvcnQgeyBnZXRDb25maWcgfSBmcm9tICcuLi9jb25maWcnO1xuXG5jb25zdCBDSEFOTkVMOiBDaGFubmVsID0gJ2Ryb3BtYWlsJztcblxuY29uc3QgVE9LRU5fR0VORVJBVEVfVVJMID0gJ2h0dHBzOi8vZHJvcG1haWwubWUvYXBpL3Rva2VuL2dlbmVyYXRlJztcbmNvbnN0IFRPS0VOX1JFTkVXX1VSTCA9ICdodHRwczovL2Ryb3BtYWlsLm1lL2FwaS90b2tlbi9yZW5ldyc7XG4vKiog55Sz6K+3IDFoIOS7pOeJjO+8jOe8k+WtmOeVpeefreS6jiAxaO+8jOmBv+WFjei+ueeVjOi/h+acnyAqL1xuY29uc3QgQVVUT19UT0tFTl9DQUNIRV9NUyA9IDUwICogNjAgKiAxMDAwO1xuLyoqIOi3nee8k+WtmOi/h+acn+WJjeWkmuS5heinpuWPkSByZW5ld++8iOavq+enku+8iSAqL1xuY29uc3QgUkVORVdfQkVGT1JFX0VYUElSWV9NUyA9IDEwICogNjAgKiAxMDAwO1xuXG5mdW5jdGlvbiBjYWNoZU1zRm9yTGlmZXRpbWUobGlmZXRpbWU6IHN0cmluZyk6IG51bWJlciB7XG4gIGNvbnN0IHMgPSBsaWZldGltZS50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgaWYgKHMgPT09ICcxaCcpIHJldHVybiA1MCAqIDYwICogMTAwMDtcbiAgaWYgKHMgPT09ICcxZCcpIHJldHVybiAyMyAqIDYwICogNjAgKiAxMDAwO1xuICBpZiAocyA9PT0gJzdkJyB8fCBzID09PSAnMzBkJyB8fCBzID09PSAnOTBkJykge1xuICAgIGNvbnN0IGRheXMgPSBwYXJzZUludChzLCAxMCk7XG4gICAgcmV0dXJuIE1hdGgubWF4KDAsIGRheXMgLSAxKSAqIDI0ICogNjAgKiA2MCAqIDEwMDA7XG4gIH1cbiAgcmV0dXJuIEFVVE9fVE9LRU5fQ0FDSEVfTVM7XG59XG5cbmZ1bmN0aW9uIGRyb3BtYWlsUmVuZXdMaWZldGltZSgpOiBzdHJpbmcge1xuICBjb25zdCBjID0gZ2V0Q29uZmlnKCkuZHJvcG1haWxSZW5ld0xpZmV0aW1lPy50cmltKCk7XG4gIGlmIChjKSByZXR1cm4gYztcbiAgY29uc3QgZSA9XG4gICAgdHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmIHByb2Nlc3MuZW52Py5EUk9QTUFJTF9SRU5FV19MSUZFVElNRT8udHJpbSgpO1xuICByZXR1cm4gZSB8fCAnMWQnO1xufVxuXG5jb25zdCBUT0tFTl9IRUFERVJTOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBBY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgT3JpZ2luOiAnaHR0cHM6Ly9kcm9wbWFpbC5tZScsXG4gIFJlZmVyZXI6ICdodHRwczovL2Ryb3BtYWlsLm1lL2FwaS8nLFxufTtcblxubGV0IGNhY2hlZEFmVG9rZW46IHsgdmFsdWU6IHN0cmluZzsgZXhwaXJlc0F0OiBudW1iZXIgfSB8IG51bGwgPSBudWxsO1xubGV0IHRva2VuRmV0Y2hJbkZsaWdodDogUHJvbWlzZTxzdHJpbmc+IHwgbnVsbCA9IG51bGw7XG5cbmZ1bmN0aW9uIGV4cGxpY2l0RHJvcG1haWxBdXRoVG9rZW4oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZnJvbUNvbmZpZyA9IGdldENvbmZpZygpLmRyb3BtYWlsQXV0aFRva2VuPy50cmltKCk7XG4gIGNvbnN0IGZyb21FbnYgPVxuICAgIHR5cGVvZiBwcm9jZXNzICE9PSAndW5kZWZpbmVkJyAmJiBwcm9jZXNzLmVudlxuICAgICAgPyBwcm9jZXNzLmVudi5EUk9QTUFJTF9BVVRIX1RPS0VOPy50cmltKCkgfHwgcHJvY2Vzcy5lbnYuRFJPUE1BSUxfQVBJX1RPS0VOPy50cmltKClcbiAgICAgIDogdW5kZWZpbmVkO1xuICByZXR1cm4gZnJvbUNvbmZpZyB8fCBmcm9tRW52O1xufVxuXG5mdW5jdGlvbiBkcm9wbWFpbEF1dG9Ub2tlbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICBpZiAoZ2V0Q29uZmlnKCkuZHJvcG1haWxEaXNhYmxlQXV0b1Rva2VuKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgY29uc3QgdiA9IHR5cGVvZiBwcm9jZXNzICE9PSAndW5kZWZpbmVkJyAmJiBwcm9jZXNzLmVudj8uRFJPUE1BSUxfTk9fQVVUT19UT0tFTj8udHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiB2ID09PSAnMScgfHwgdiA9PT0gJ3RydWUnIHx8IHYgPT09ICd5ZXMnO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaEFmVG9rZW5Gcm9tQXBpKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hXaXRoVGltZW91dChUT0tFTl9HRU5FUkFURV9VUkwsIHtcbiAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICBoZWFkZXJzOiBUT0tFTl9IRUFERVJTLFxuICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgdHlwZTogJ2FmJywgbGlmZXRpbWU6ICcxaCcgfSksXG4gIH0pO1xuXG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYERyb3BNYWlsIHRva2VuL2dlbmVyYXRlIEhUVFAgJHtyZXNwb25zZS5zdGF0dXN9YCk7XG4gIH1cblxuICBjb25zdCBib2R5ID0gKGF3YWl0IHJlc3BvbnNlLmpzb24oKSkgYXMgeyB0b2tlbj86IHN0cmluZzsgZXJyb3I/OiBzdHJpbmcgfTtcbiAgY29uc3QgdG9rZW4gPSB0eXBlb2YgYm9keS50b2tlbiA9PT0gJ3N0cmluZycgPyBib2R5LnRva2VuLnRyaW0oKSA6ICcnO1xuICBpZiAoIXRva2VuIHx8ICF0b2tlbi5zdGFydHNXaXRoKCdhZl8nKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGJvZHkuZXJyb3IgfHwgJ0Ryb3BNYWlsIHRva2VuL2dlbmVyYXRlIOacqui/lOWbnuacieaViCBhZl8g5Luk54mMJyxcbiAgICApO1xuICB9XG4gIHJldHVybiB0b2tlbjtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVuZXdBZlRva2VuRnJvbUFwaShjdXJyZW50VG9rZW46IHN0cmluZywgbGlmZXRpbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hXaXRoVGltZW91dChUT0tFTl9SRU5FV19VUkwsIHtcbiAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICBoZWFkZXJzOiBUT0tFTl9IRUFERVJTLFxuICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgdG9rZW46IGN1cnJlbnRUb2tlbiwgbGlmZXRpbWUgfSksXG4gIH0pO1xuXG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYERyb3BNYWlsIHRva2VuL3JlbmV3IEhUVFAgJHtyZXNwb25zZS5zdGF0dXN9YCk7XG4gIH1cblxuICBjb25zdCBib2R5ID0gKGF3YWl0IHJlc3BvbnNlLmpzb24oKSkgYXMgeyB0b2tlbj86IHN0cmluZzsgZXJyb3I/OiBzdHJpbmcgfTtcbiAgY29uc3QgdG9rZW4gPSB0eXBlb2YgYm9keS50b2tlbiA9PT0gJ3N0cmluZycgPyBib2R5LnRva2VuLnRyaW0oKSA6ICcnO1xuICBpZiAoIXRva2VuIHx8ICF0b2tlbi5zdGFydHNXaXRoKCdhZl8nKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihib2R5LmVycm9yIHx8ICdEcm9wTWFpbCB0b2tlbi9yZW5ldyDmnKrov5Tlm57mnInmlYggYWZfIOS7pOeJjCcpO1xuICB9XG4gIHJldHVybiB0b2tlbjtcbn1cblxuLyoqXG4gKiDop6PmnpAgR3JhcGhRTCDnlKjnmoQgYWZfIOS7pOeJjO+8muS8mOWFiOmFjee9ri/njq/looPlj5jph4/vvIzlkKbliJkgZ2VuZXJhdGUgKyDnvJPlrZjvvIzlsIbov4fmnJ/ml7YgcmVuZXfjgIJcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZURyb3BtYWlsQXV0aFRva2VuKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IGV4cGxpY2l0ID0gZXhwbGljaXREcm9wbWFpbEF1dGhUb2tlbigpO1xuICBpZiAoZXhwbGljaXQpIHtcbiAgICByZXR1cm4gZXhwbGljaXQ7XG4gIH1cblxuICBpZiAoZHJvcG1haWxBdXRvVG9rZW5EaXNhYmxlZCgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0Ryb3BNYWlsIOW3suemgeeUqOiHquWKqOS7pOeJjO+8muivt+iuvue9riBEUk9QTUFJTF9BVVRIX1RPS0VO77yM5oiWIHNldENvbmZpZyh7IGRyb3BtYWlsQXV0aFRva2VuOiBcImFmXy4uLlwiIH0p77yM6KeBIGh0dHBzOi8vZHJvcG1haWwubWUvYXBpLycsXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gIGlmIChcbiAgICBjYWNoZWRBZlRva2VuICYmXG4gICAgbm93IDwgY2FjaGVkQWZUb2tlbi5leHBpcmVzQXQgLSBSRU5FV19CRUZPUkVfRVhQSVJZX01TXG4gICkge1xuICAgIHJldHVybiBjYWNoZWRBZlRva2VuLnZhbHVlO1xuICB9XG5cbiAgaWYgKHRva2VuRmV0Y2hJbkZsaWdodCkge1xuICAgIHJldHVybiB0b2tlbkZldGNoSW5GbGlnaHQ7XG4gIH1cblxuICBjb25zdCByZW5ld0xpZmV0aW1lID0gZHJvcG1haWxSZW5ld0xpZmV0aW1lKCk7XG5cbiAgdG9rZW5GZXRjaEluRmxpZ2h0ID0gKGFzeW5jICgpID0+IHtcbiAgICB0cnkge1xuICAgICAgaWYgKGNhY2hlZEFmVG9rZW4/LnZhbHVlKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgcmVuZXdlZCA9IGF3YWl0IHJlbmV3QWZUb2tlbkZyb21BcGkoXG4gICAgICAgICAgICBjYWNoZWRBZlRva2VuLnZhbHVlLFxuICAgICAgICAgICAgcmVuZXdMaWZldGltZSxcbiAgICAgICAgICApO1xuICAgICAgICAgIGNhY2hlZEFmVG9rZW4gPSB7XG4gICAgICAgICAgICB2YWx1ZTogcmVuZXdlZCxcbiAgICAgICAgICAgIGV4cGlyZXNBdDogRGF0ZS5ub3coKSArIGNhY2hlTXNGb3JMaWZldGltZShyZW5ld0xpZmV0aW1lKSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHJldHVybiByZW5ld2VkO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAvKiDnu63mnJ/lpLHotKXliJnph43mlrDnlLPor7cgKi9cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCB0b2tlbiA9IGF3YWl0IGZldGNoQWZUb2tlbkZyb21BcGkoKTtcbiAgICAgIGNhY2hlZEFmVG9rZW4gPSB7XG4gICAgICAgIHZhbHVlOiB0b2tlbixcbiAgICAgICAgZXhwaXJlc0F0OiBEYXRlLm5vdygpICsgQVVUT19UT0tFTl9DQUNIRV9NUyxcbiAgICAgIH07XG4gICAgICByZXR1cm4gdG9rZW47XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRva2VuRmV0Y2hJbkZsaWdodCA9IG51bGw7XG4gICAgfVxuICB9KSgpO1xuXG4gIHJldHVybiB0b2tlbkZldGNoSW5GbGlnaHQ7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGRyb3BtYWlsR3JhcGhxbFVybCgpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCB0b2tlbiA9IGF3YWl0IHJlc29sdmVEcm9wbWFpbEF1dGhUb2tlbigpO1xuICByZXR1cm4gYGh0dHBzOi8vZHJvcG1haWwubWUvYXBpL2dyYXBocWwvJHtlbmNvZGVVUklDb21wb25lbnQodG9rZW4pfWA7XG59XG5cbmNvbnN0IERFRkFVTFRfSEVBREVSUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxufTtcblxuY29uc3QgQ1JFQVRFX1NFU1NJT05fUVVFUlkgPSAnbXV0YXRpb24ge2ludHJvZHVjZVNlc3Npb24ge2lkLCBleHBpcmVzQXQsIGFkZHJlc3Nlc3tpZCwgYWRkcmVzc319fSc7XG5cbmNvbnN0IEdFVF9NQUlMU19RVUVSWSA9IGBxdWVyeSAoJGlkOiBJRCEpIHtcbiAgc2Vzc2lvbihpZDokaWQpIHtcbiAgICBtYWlscyB7XG4gICAgICBpZCwgcmF3U2l6ZSwgZnJvbUFkZHIsIHRvQWRkciwgcmVjZWl2ZWRBdCxcbiAgICAgIHRleHQsIGhlYWRlckZyb20sIGhlYWRlclN1YmplY3QsIGh0bWxcbiAgICB9XG4gIH1cbn1gO1xuXG4vKipcbiAqIOaJp+ihjCBHcmFwaFFMIOivt+axglxuICovXG5hc3luYyBmdW5jdGlvbiBncmFwaHFsUmVxdWVzdChxdWVyeTogc3RyaW5nLCB2YXJpYWJsZXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogUHJvbWlzZTxhbnk+IHtcbiAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICBwYXJhbXMuc2V0KCdxdWVyeScsIHF1ZXJ5KTtcbiAgaWYgKHZhcmlhYmxlcykge1xuICAgIHBhcmFtcy5zZXQoJ3ZhcmlhYmxlcycsIEpTT04uc3RyaW5naWZ5KHZhcmlhYmxlcykpO1xuICB9XG5cbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaFdpdGhUaW1lb3V0KGF3YWl0IGRyb3BtYWlsR3JhcGhxbFVybCgpLCB7XG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgaGVhZGVyczogREVGQVVMVF9IRUFERVJTLFxuICAgIGJvZHk6IHBhcmFtcy50b1N0cmluZygpLFxuICB9KTtcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBHcmFwaFFMIHJlcXVlc3QgZmFpbGVkOiAke3Jlc3BvbnNlLnN0YXR1c31gKTtcbiAgfVxuXG4gIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG5cbiAgaWYgKGRhdGEuZXJyb3JzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBHcmFwaFFMIGVycm9yOiAke2RhdGEuZXJyb3JzWzBdPy5tZXNzYWdlIHx8ICdVbmtub3duIGVycm9yJ31gKTtcbiAgfVxuXG4gIHJldHVybiBkYXRhLmRhdGE7XG59XG5cbi8qKlxuICog5Yib5bu65Li05pe26YKu566xXG4gKiBHcmFwaFFMIG11dGF0aW9uOiBpbnRyb2R1Y2VTZXNzaW9uXG4gKiDov5Tlm54gc2Vzc2lvbiBJRCAo5a2Y5YWlIHRva2VuKSDlkozpgq7nrrHlnLDlnYBcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlRW1haWwoKTogUHJvbWlzZTxJbnRlcm5hbEVtYWlsSW5mbz4ge1xuICBjb25zdCBkYXRhID0gYXdhaXQgZ3JhcGhxbFJlcXVlc3QoQ1JFQVRFX1NFU1NJT05fUVVFUlkpO1xuXG4gIGNvbnN0IHNlc3Npb24gPSBkYXRhPy5pbnRyb2R1Y2VTZXNzaW9uO1xuICBpZiAoIXNlc3Npb24gfHwgIXNlc3Npb24uYWRkcmVzc2VzIHx8IHNlc3Npb24uYWRkcmVzc2VzLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGdlbmVyYXRlIGVtYWlsJyk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGNoYW5uZWw6IENIQU5ORUwsXG4gICAgZW1haWw6IHNlc3Npb24uYWRkcmVzc2VzWzBdLmFkZHJlc3MsXG4gICAgdG9rZW46IHNlc3Npb24uaWQsXG4gICAgZXhwaXJlc0F0OiBzZXNzaW9uLmV4cGlyZXNBdCxcbiAgfTtcbn1cblxuLyoqXG4gKiDlsIYgZHJvcG1haWwg55qE6YKu5Lu25qC85byP5omB5bmz5YyW5Li6IG5vcm1hbGl6ZUVtYWlsIOWPr+WkhOeQhueahOagvOW8j1xuICovXG5mdW5jdGlvbiBmbGF0dGVuTWVzc2FnZShtYWlsOiBhbnksIHJlY2lwaWVudEVtYWlsOiBzdHJpbmcpOiBhbnkge1xuICByZXR1cm4ge1xuICAgIGlkOiBtYWlsLmlkIHx8ICcnLFxuICAgIGZyb206IG1haWwuZnJvbUFkZHIgfHwgJycsXG4gICAgdG86IG1haWwudG9BZGRyIHx8IHJlY2lwaWVudEVtYWlsLFxuICAgIHN1YmplY3Q6IG1haWwuaGVhZGVyU3ViamVjdCB8fCAnJyxcbiAgICB0ZXh0OiBtYWlsLnRleHQgfHwgJycsXG4gICAgaHRtbDogbWFpbC5odG1sIHx8ICcnLFxuICAgIHJlY2VpdmVkX2F0OiBtYWlsLnJlY2VpdmVkQXQgfHwgJycsXG4gICAgYXR0YWNobWVudHM6IFtdLFxuICB9O1xufVxuXG4vKipcbiAqIOiOt+WPlumCruS7tuWIl+ihqFxuICogR3JhcGhRTCBxdWVyeTogc2Vzc2lvbihpZCkgeyBtYWlscyB7Li4ufSB9XG4gKiB0b2tlbiDkuK3lrZjlgqjnmoTmmK8gc2Vzc2lvbiBJRFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RW1haWxzKHRva2VuOiBzdHJpbmcsIGVtYWlsOiBzdHJpbmcpOiBQcm9taXNlPEVtYWlsW10+IHtcbiAgY29uc3QgZGF0YSA9IGF3YWl0IGdyYXBocWxSZXF1ZXN0KEdFVF9NQUlMU19RVUVSWSwgeyBpZDogdG9rZW4gfSk7XG5cbiAgY29uc3QgbWFpbHMgPSBkYXRhPy5zZXNzaW9uPy5tYWlscyB8fCBbXTtcbiAgcmV0dXJuIG1haWxzLm1hcCgobWFpbDogYW55KSA9PiBub3JtYWxpemVFbWFpbChmbGF0dGVuTWVzc2FnZShtYWlsLCBlbWFpbCksIGVtYWlsKSk7XG59XG4iXX0=
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { InternalEmailInfo, Email } from '../types';
|
|
2
2
|
export declare function generateEmail(): Promise<InternalEmailInfo>;
|
|
3
|
-
export declare function getEmails(email: string): Promise<Email[]>;
|
|
3
|
+
export declare function getEmails(email: string, apiPathKey: string): Promise<Email[]>;
|
|
@@ -4,9 +4,9 @@ exports.generateEmail = generateEmail;
|
|
|
4
4
|
exports.getEmails = getEmails;
|
|
5
5
|
const normalize_1 = require("../normalize");
|
|
6
6
|
const retry_1 = require("../retry");
|
|
7
|
+
const linshi_token_1 = require("./linshi-token");
|
|
7
8
|
const CHANNEL = 'linshi-email';
|
|
8
9
|
const BASE_URL = 'https://www.linshi-email.com/api/v1';
|
|
9
|
-
const API_KEY = '552562b8524879814776e52bc8de5c9f';
|
|
10
10
|
const DEFAULT_HEADERS = {
|
|
11
11
|
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
|
|
12
12
|
'Content-Type': 'application/json',
|
|
@@ -18,7 +18,8 @@ const DEFAULT_HEADERS = {
|
|
|
18
18
|
'DNT': '1',
|
|
19
19
|
};
|
|
20
20
|
async function generateEmail() {
|
|
21
|
-
const
|
|
21
|
+
const { apiPathKey } = (0, linshi_token_1.randomSyntheticLinshiKey)();
|
|
22
|
+
const response = await (0, retry_1.fetchWithTimeout)(`${BASE_URL}/email/${apiPathKey}`, {
|
|
22
23
|
method: 'POST',
|
|
23
24
|
headers: DEFAULT_HEADERS,
|
|
24
25
|
body: JSON.stringify({}),
|
|
@@ -30,16 +31,26 @@ async function generateEmail() {
|
|
|
30
31
|
if (data.status !== 'ok') {
|
|
31
32
|
throw new Error('Failed to generate email');
|
|
32
33
|
}
|
|
34
|
+
const d = data.data;
|
|
35
|
+
const raw = (typeof d?.email === 'string' && d.email) ||
|
|
36
|
+
(typeof d?.mail === 'string' && d.mail) ||
|
|
37
|
+
(typeof d?.address === 'string' && d.address) ||
|
|
38
|
+
'';
|
|
39
|
+
const email = String(raw).trim();
|
|
40
|
+
if (!email || !email.includes('@')) {
|
|
41
|
+
throw new Error('linshi-email: API 未返回有效邮箱地址(data 为空或缺 email 字段,常见于频率限制:每小时约 10 个 / 每天约 20 个)');
|
|
42
|
+
}
|
|
33
43
|
return {
|
|
34
44
|
channel: CHANNEL,
|
|
35
|
-
email
|
|
36
|
-
expiresAt:
|
|
45
|
+
email,
|
|
46
|
+
expiresAt: d?.expired,
|
|
47
|
+
token: apiPathKey,
|
|
37
48
|
};
|
|
38
49
|
}
|
|
39
|
-
async function getEmails(email) {
|
|
50
|
+
async function getEmails(email, apiPathKey) {
|
|
40
51
|
const encodedEmail = encodeURIComponent(email);
|
|
41
52
|
const timestamp = Date.now();
|
|
42
|
-
const response = await (0, retry_1.fetchWithTimeout)(`${BASE_URL}/refreshmessage/${
|
|
53
|
+
const response = await (0, retry_1.fetchWithTimeout)(`${BASE_URL}/refreshmessage/${apiPathKey}/${encodedEmail}?t=${timestamp}`, {
|
|
43
54
|
method: 'GET',
|
|
44
55
|
headers: DEFAULT_HEADERS,
|
|
45
56
|
});
|
|
@@ -53,4 +64,4 @@ async function getEmails(email) {
|
|
|
53
64
|
const rawEmails = data.list || [];
|
|
54
65
|
return rawEmails.map((raw) => (0, normalize_1.normalizeEmail)(raw, email));
|
|
55
66
|
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluc2hpLWVtYWlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpZGVycy9saW5zaGktZW1haWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFtQkEsc0NBc0NDO0FBRUQsOEJBb0JDO0FBOUVELDRDQUE4QztBQUM5QyxvQ0FBNEM7QUFDNUMsaURBQTBEO0FBRTFELE1BQU0sT0FBTyxHQUFZLGNBQWMsQ0FBQztBQUN4QyxNQUFNLFFBQVEsR0FBRyxxQ0FBcUMsQ0FBQztBQUV2RCxNQUFNLGVBQWUsR0FBRztJQUN0QixZQUFZLEVBQUUsaUhBQWlIO0lBQy9ILGNBQWMsRUFBRSxrQkFBa0I7SUFDbEMsUUFBUSxFQUFFLDhCQUE4QjtJQUN4QyxTQUFTLEVBQUUsK0JBQStCO0lBQzFDLFdBQVcsRUFBRSxvRUFBb0U7SUFDakYsa0JBQWtCLEVBQUUsSUFBSTtJQUN4QixvQkFBb0IsRUFBRSxXQUFXO0lBQ2pDLEtBQUssRUFBRSxHQUFHO0NBQ1gsQ0FBQztBQUVLLEtBQUssVUFBVSxhQUFhO0lBQ2pDLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUFBLHVDQUF3QixHQUFFLENBQUM7SUFDbEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFBLHdCQUFnQixFQUFDLEdBQUcsUUFBUSxVQUFVLFVBQVUsRUFBRSxFQUFFO1FBQ3pFLE1BQU0sRUFBRSxNQUFNO1FBQ2QsT0FBTyxFQUFFLGVBQWU7UUFDeEIsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO0tBQ3pCLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBRW5DLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDcEIsTUFBTSxHQUFHLEdBQ1AsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDekMsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDdkMsQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDN0MsRUFBRSxDQUFDO0lBQ0wsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBRWpDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FDYiw4RUFBOEUsQ0FDL0UsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxFQUFFLE9BQU87UUFDaEIsS0FBSztRQUNMLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTztRQUNyQixLQUFLLEVBQUUsVUFBVTtLQUNsQixDQUFDO0FBQ0osQ0FBQztBQUVNLEtBQUssVUFBVSxTQUFTLENBQUMsS0FBYSxFQUFFLFVBQWtCO0lBQy9ELE1BQU0sWUFBWSxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUM3QixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsd0JBQWdCLEVBQUMsR0FBRyxRQUFRLG1CQUFtQixVQUFVLElBQUksWUFBWSxNQUFNLFNBQVMsRUFBRSxFQUFFO1FBQ2pILE1BQU0sRUFBRSxLQUFLO1FBQ2IsT0FBTyxFQUFFLGVBQWU7S0FDekIsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFbkMsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7SUFDbEMsT0FBTyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxJQUFBLDBCQUFjLEVBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDakUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEludGVybmFsRW1haWxJbmZvLCBFbWFpbCwgQ2hhbm5lbCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IG5vcm1hbGl6ZUVtYWlsIH0gZnJvbSAnLi4vbm9ybWFsaXplJztcbmltcG9ydCB7IGZldGNoV2l0aFRpbWVvdXQgfSBmcm9tICcuLi9yZXRyeSc7XG5pbXBvcnQgeyByYW5kb21TeW50aGV0aWNMaW5zaGlLZXkgfSBmcm9tICcuL2xpbnNoaS10b2tlbic7XG5cbmNvbnN0IENIQU5ORUw6IENoYW5uZWwgPSAnbGluc2hpLWVtYWlsJztcbmNvbnN0IEJBU0VfVVJMID0gJ2h0dHBzOi8vd3d3LmxpbnNoaS1lbWFpbC5jb20vYXBpL3YxJztcblxuY29uc3QgREVGQVVMVF9IRUFERVJTID0ge1xuICAnVXNlci1BZ2VudCc6ICdNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTQzLjAuMC4wIFNhZmFyaS81MzcuMzYnLFxuICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAnT3JpZ2luJzogJ2h0dHBzOi8vd3d3LmxpbnNoaS1lbWFpbC5jb20nLFxuICAnUmVmZXJlcic6ICdodHRwczovL3d3dy5saW5zaGktZW1haWwuY29tLycsXG4gICdzZWMtY2gtdWEnOiAnXCJNaWNyb3NvZnQgRWRnZVwiO3Y9XCIxNDNcIiwgXCJDaHJvbWl1bVwiO3Y9XCIxNDNcIiwgXCJOb3QgQShCcmFuZFwiO3Y9XCIyNFwiJyxcbiAgJ3NlYy1jaC11YS1tb2JpbGUnOiAnPzAnLFxuICAnc2VjLWNoLXVhLXBsYXRmb3JtJzogJ1wiV2luZG93c1wiJyxcbiAgJ0ROVCc6ICcxJyxcbn07XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZUVtYWlsKCk6IFByb21pc2U8SW50ZXJuYWxFbWFpbEluZm8+IHtcbiAgY29uc3QgeyBhcGlQYXRoS2V5IH0gPSByYW5kb21TeW50aGV0aWNMaW5zaGlLZXkoKTtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaFdpdGhUaW1lb3V0KGAke0JBU0VfVVJMfS9lbWFpbC8ke2FwaVBhdGhLZXl9YCwge1xuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGhlYWRlcnM6IERFRkFVTFRfSEVBREVSUyxcbiAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7fSksXG4gIH0pO1xuXG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBnZW5lcmF0ZSBlbWFpbDogJHtyZXNwb25zZS5zdGF0dXN9YCk7XG4gIH1cblxuICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuXG4gIGlmIChkYXRhLnN0YXR1cyAhPT0gJ29rJykge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGdlbmVyYXRlIGVtYWlsJyk7XG4gIH1cblxuICBjb25zdCBkID0gZGF0YS5kYXRhO1xuICBjb25zdCByYXcgPVxuICAgICh0eXBlb2YgZD8uZW1haWwgPT09ICdzdHJpbmcnICYmIGQuZW1haWwpIHx8XG4gICAgKHR5cGVvZiBkPy5tYWlsID09PSAnc3RyaW5nJyAmJiBkLm1haWwpIHx8XG4gICAgKHR5cGVvZiBkPy5hZGRyZXNzID09PSAnc3RyaW5nJyAmJiBkLmFkZHJlc3MpIHx8XG4gICAgJyc7XG4gIGNvbnN0IGVtYWlsID0gU3RyaW5nKHJhdykudHJpbSgpO1xuXG4gIGlmICghZW1haWwgfHwgIWVtYWlsLmluY2x1ZGVzKCdAJykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnbGluc2hpLWVtYWlsOiBBUEkg5pyq6L+U5Zue5pyJ5pWI6YKu566x5Zyw5Z2A77yIZGF0YSDkuLrnqbrmiJbnvLogZW1haWwg5a2X5q6177yM5bi46KeB5LqO6aKR546H6ZmQ5Yi277ya5q+P5bCP5pe257qmIDEwIOS4qiAvIOavj+Wkqee6piAyMCDkuKrvvIknLFxuICAgICk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGNoYW5uZWw6IENIQU5ORUwsXG4gICAgZW1haWwsXG4gICAgZXhwaXJlc0F0OiBkPy5leHBpcmVkLFxuICAgIHRva2VuOiBhcGlQYXRoS2V5LFxuICB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RW1haWxzKGVtYWlsOiBzdHJpbmcsIGFwaVBhdGhLZXk6IHN0cmluZyk6IFByb21pc2U8RW1haWxbXT4ge1xuICBjb25zdCBlbmNvZGVkRW1haWwgPSBlbmNvZGVVUklDb21wb25lbnQoZW1haWwpO1xuICBjb25zdCB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoV2l0aFRpbWVvdXQoYCR7QkFTRV9VUkx9L3JlZnJlc2htZXNzYWdlLyR7YXBpUGF0aEtleX0vJHtlbmNvZGVkRW1haWx9P3Q9JHt0aW1lc3RhbXB9YCwge1xuICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgaGVhZGVyczogREVGQVVMVF9IRUFERVJTLFxuICB9KTtcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZ2V0IGVtYWlsczogJHtyZXNwb25zZS5zdGF0dXN9YCk7XG4gIH1cblxuICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICBcbiAgaWYgKGRhdGEuc3RhdHVzICE9PSAnb2snKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZ2V0IGVtYWlscycpO1xuICB9XG5cbiAgY29uc3QgcmF3RW1haWxzID0gZGF0YS5saXN0IHx8IFtdO1xuICByZXR1cm4gcmF3RW1haWxzLm1hcCgocmF3OiBhbnkpID0+IG5vcm1hbGl6ZUVtYWlsKHJhdywgZW1haWwpKTtcbn1cbiJdfQ==
|
|
@@ -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==
|
|
@@ -6,10 +6,37 @@ const normalize_1 = require("../normalize");
|
|
|
6
6
|
const retry_1 = require("../retry");
|
|
7
7
|
const CHANNEL = 'mail-tm';
|
|
8
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
|
+
*/
|
|
9
13
|
const DEFAULT_HEADERS = {
|
|
10
|
-
'Content-Type': 'application/json',
|
|
11
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',
|
|
12
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
|
+
}
|
|
13
40
|
/**
|
|
14
41
|
* 生成随机字符串
|
|
15
42
|
*/
|
|
@@ -26,7 +53,7 @@ function randomString(length) {
|
|
|
26
53
|
* API: GET /domains
|
|
27
54
|
*/
|
|
28
55
|
async function getDomains() {
|
|
29
|
-
const response = await (0, retry_1.fetchWithTimeout)(`${BASE_URL}/domains`, {
|
|
56
|
+
const response = await (0, retry_1.fetchWithTimeout)(`${BASE_URL}/domains?page=1`, {
|
|
30
57
|
method: 'GET',
|
|
31
58
|
headers: DEFAULT_HEADERS,
|
|
32
59
|
});
|
|
@@ -34,14 +61,11 @@ async function getDomains() {
|
|
|
34
61
|
throw new Error(`Failed to get domains: ${response.status}`);
|
|
35
62
|
}
|
|
36
63
|
const data = await response.json();
|
|
37
|
-
|
|
38
|
-
* - Accept: application/ld+json → Hydra 格式 { "hydra:member": [...] }
|
|
39
|
-
* - Accept: application/json → 纯数组 [...]
|
|
40
|
-
*/
|
|
41
|
-
const members = Array.isArray(data) ? data : (data['hydra:member'] || []);
|
|
64
|
+
const members = parseHydraMember(data);
|
|
42
65
|
return members
|
|
43
|
-
.filter((d) => d.isActive)
|
|
44
|
-
.map((d) => d.domain)
|
|
66
|
+
.filter((d) => d && d.isActive !== false)
|
|
67
|
+
.map((d) => d.domain)
|
|
68
|
+
.filter(Boolean);
|
|
45
69
|
}
|
|
46
70
|
/**
|
|
47
71
|
* 创建账号
|
|
@@ -66,7 +90,7 @@ async function createAccount(address, password) {
|
|
|
66
90
|
async function getToken(address, password) {
|
|
67
91
|
const response = await (0, retry_1.fetchWithTimeout)(`${BASE_URL}/token`, {
|
|
68
92
|
method: 'POST',
|
|
69
|
-
headers:
|
|
93
|
+
headers: jsonHeaders(),
|
|
70
94
|
body: JSON.stringify({ address, password }),
|
|
71
95
|
});
|
|
72
96
|
if (!response.ok) {
|
|
@@ -129,19 +153,15 @@ function flattenMessage(msg, recipientEmail) {
|
|
|
129
153
|
*/
|
|
130
154
|
async function getEmails(token, email) {
|
|
131
155
|
// 1. 获取邮件列表
|
|
132
|
-
const listResponse = await (0, retry_1.fetchWithTimeout)(`${BASE_URL}/messages`, {
|
|
156
|
+
const listResponse = await (0, retry_1.fetchWithTimeout)(`${BASE_URL}/messages?page=1`, {
|
|
133
157
|
method: 'GET',
|
|
134
|
-
headers:
|
|
135
|
-
...DEFAULT_HEADERS,
|
|
136
|
-
'Authorization': `Bearer ${token}`,
|
|
137
|
-
},
|
|
158
|
+
headers: bearerHeaders(token),
|
|
138
159
|
});
|
|
139
160
|
if (!listResponse.ok) {
|
|
140
161
|
throw new Error(`Failed to get emails: ${listResponse.status}`);
|
|
141
162
|
}
|
|
142
163
|
const listData = await listResponse.json();
|
|
143
|
-
|
|
144
|
-
const messages = Array.isArray(listData) ? listData : (listData['hydra:member'] || []);
|
|
164
|
+
const messages = parseHydraMember(listData);
|
|
145
165
|
if (messages.length === 0) {
|
|
146
166
|
return [];
|
|
147
167
|
}
|
|
@@ -150,10 +170,7 @@ async function getEmails(token, email) {
|
|
|
150
170
|
try {
|
|
151
171
|
const detailResponse = await (0, retry_1.fetchWithTimeout)(`${BASE_URL}/messages/${msg.id}`, {
|
|
152
172
|
method: 'GET',
|
|
153
|
-
headers:
|
|
154
|
-
...DEFAULT_HEADERS,
|
|
155
|
-
'Authorization': `Bearer ${token}`,
|
|
156
|
-
},
|
|
173
|
+
headers: bearerHeaders(token),
|
|
157
174
|
});
|
|
158
175
|
if (!detailResponse.ok) {
|
|
159
176
|
// 如果详情获取失败,退回使用列表数据
|
|
@@ -170,4 +187,4 @@ async function getEmails(token, email) {
|
|
|
170
187
|
const flatMessages = await Promise.all(detailPromises);
|
|
171
188
|
return flatMessages.map((raw) => (0, normalize_1.normalizeEmail)(raw, email));
|
|
172
189
|
}
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbC10bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92aWRlcnMvbWFpbC10bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQTJGQSxzQ0F5QkM7QUE2QkQsOEJBZ0RDO0FBaE1ELDRDQUE4QztBQUM5QyxvQ0FBNEM7QUFFNUMsTUFBTSxPQUFPLEdBQVksU0FBUyxDQUFDO0FBQ25DLE1BQU0sUUFBUSxHQUFHLHFCQUFxQixDQUFDO0FBRXZDLE1BQU0sZUFBZSxHQUEyQjtJQUM5QyxjQUFjLEVBQUUsa0JBQWtCO0lBQ2xDLFFBQVEsRUFBRSxrQkFBa0I7Q0FDN0IsQ0FBQztBQUVGOztHQUVHO0FBQ0gsU0FBUyxZQUFZLENBQUMsTUFBYztJQUNsQyxNQUFNLEtBQUssR0FBRyxzQ0FBc0MsQ0FBQztJQUNyRCxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDaEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxLQUFLLFVBQVUsVUFBVTtJQUN2QixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsd0JBQWdCLEVBQUMsR0FBRyxRQUFRLFVBQVUsRUFBRTtRQUM3RCxNQUFNLEVBQUUsS0FBSztRQUNiLE9BQU8sRUFBRSxlQUFlO0tBQ3pCLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJ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Q0FBQztZQUNILE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBQSx3QkFBZ0IsRUFBQyxHQUFHLFFBQVEsYUFBYSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUU7Z0JBQzlFLE1BQU0sRUFBRSxLQUFLO2dCQUNiLE9BQU8sRUFBRTtvQkFDUCxHQUFHLGVBQWU7b0JBQ2xCLGVBQWUsRUFBRSxVQUFVLEtBQUssRUFBRTtpQkFDbkM7YUFDRixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUN2QixvQkFBb0I7Z0JBQ3BCLE9BQU8sY0FBYyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNwQyxDQUFDO1lBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDM0MsT0FBTyxjQUFjLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxjQUFjO1lBQ2QsT0FBTyxjQUFjLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sWUFBWSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN2RCxPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLElBQUEsMEJBQWMsRUFBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNwRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJuYWxFbWFpbEluZm8sIEVtYWlsLCBDaGFubmVsIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgbm9ybWFsaXplRW1haWwgfSBmcm9tICcuLi9ub3JtYWxpemUnO1xuaW1wb3J0IHsgZmV0Y2hXaXRoVGltZW91dCB9IGZyb20gJy4uL3JldHJ5JztcblxuY29uc3QgQ0hBTk5FTDogQ2hhbm5lbCA9ICdtYWlsLXRtJztcbmNvbnN0IEJBU0VfVVJMID0gJ2h0dHBzOi8vYXBpLm1haWwudG0nO1xuXG5jb25zdCBERUZBVUxUX0hFQURFUlM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICdBY2NlcHQnOiAnYXBwbGljYXRpb24vanNvbicsXG59O1xuXG4vKipcbiAqIOeUn+aIkOmaj+acuuWtl+espuS4slxuICovXG5mdW5jdGlvbiByYW5kb21TdHJpbmcobGVuZ3RoOiBudW1iZXIpOiBzdHJpbmcge1xuICBjb25zdCBjaGFycyA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODknO1xuICBsZXQgcmVzdWx0ID0gJyc7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICByZXN1bHQgKz0gY2hhcnNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhcnMubGVuZ3RoKV07XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiDojrflj5blj6/nlKjln5/lkI3liJfooahcbiAqIEFQSTogR0VUIC9kb21haW5zXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldERvbWFpbnMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoV2l0aFRpbWVvdXQoYCR7QkFTRV9VUkx9L2RvbWFpbnNgLCB7XG4gICAgbWV0aG9kOiAnR0VUJyxcbiAgICBoZWFkZXJzOiBERUZBVUxUX0hFQURFUlMsXG4gIH0pO1xuXG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBnZXQgZG9tYWluczogJHtyZXNwb25zZS5zdGF0dXN9YCk7XG4gIH1cblxuICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAvKiDlhbzlrrnkuKTnp43lk43lupTmoLzlvI/vvJpcbiAgICogLSBBY2NlcHQ6IGFwcGxpY2F0aW9uL2xkK2pzb24g4oaSIEh5ZHJhIOagvOW8jyB7IFwiaHlkcmE6bWVtYmVyXCI6IFsuLi5dIH1cbiAgICogLSBBY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24gICDihpIg57qv5pWw57uEIFsuLi5dXG4gICAqL1xuICBjb25zdCBtZW1iZXJzID0gQXJyYXkuaXNBcnJheShkYXRhKSA/IGRhdGEgOiAoZGF0YVsnaHlkcmE6bWVtYmVyJ10gfHwgW10pO1xuICByZXR1cm4gbWVtYmVyc1xuICAgIC5maWx0ZXIoKGQ6IGFueSkgPT4gZC5pc0FjdGl2ZSlcbiAgICAubWFwKChkOiBhbnkpID0+IGQuZG9tYWluKTtcbn1cblxuLyoqXG4gKiDliJvlu7rotKblj7dcbiAqIEFQSTogUE9TVCAvYWNjb3VudHNcbiAqL1xuYXN5bmMgZnVuY3Rpb24gY3JlYXRlQWNjb3VudChhZGRyZXNzOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoV2l0aFRpbWVvdXQoYCR7QkFTRV9VUkx9L2FjY291bnRzYCwge1xuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGhlYWRlcnM6IHsgLi4uREVGQVVMVF9IRUFERVJTLCAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2xkK2pzb24nIH0sXG4gICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBhZGRyZXNzLCBwYXNzd29yZCB9KSxcbiAgfSk7XG5cbiAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgIGNvbnN0IHRleHQgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gY3JlYXRlIGFjY291bnQ6ICR7cmVzcG9uc2Uuc3RhdHVzfSAke3RleHR9YCk7XG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2UuanNvbigpO1xufVxuXG4vKipcbiAqIOiOt+WPliBCZWFyZXIgVG9rZW5cbiAqIEFQSTogUE9TVCAvdG9rZW5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0VG9rZW4oYWRkcmVzczogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaFdpdGhUaW1lb3V0KGAke0JBU0VfVVJMfS90b2tlbmAsIHtcbiAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICBoZWFkZXJzOiBERUZBVUxUX0hFQURFUlMsXG4gICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBhZGRyZXNzLCBwYXNzd29yZCB9KSxcbiAgfSk7XG5cbiAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGdldCB0b2tlbjogJHtyZXNwb25zZS5zdGF0dXN9YCk7XG4gIH1cblxuICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICByZXR1cm4gZGF0YS50b2tlbjtcbn1cblxuLyoqXG4gKiDliJvlu7rkuLTml7bpgq7nrrFcbiAqIOa1geeoizog6I635Y+W5Z+f5ZCNIOKGkiDnlJ/miJDpmo/mnLrpgq7nrrEv5a+G56CBIOKGkiDliJvlu7rotKblj7cg4oaSIOiOt+WPliBUb2tlblxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVFbWFpbCgpOiBQcm9taXNlPEludGVybmFsRW1haWxJbmZvPiB7XG4gIC8vIDEuIOiOt+WPluWPr+eUqOWfn+WQjVxuICBjb25zdCBkb21haW5zID0gYXdhaXQgZ2V0RG9tYWlucygpO1xuICBpZiAoZG9tYWlucy5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGF2YWlsYWJsZSBkb21haW5zJyk7XG4gIH1cblxuICAvLyAyLiDnlJ/miJDpmo/mnLrpgq7nrrHlkozlr4bnoIFcbiAgY29uc3QgZG9tYWluID0gZG9tYWluc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBkb21haW5zLmxlbmd0aCldO1xuICBjb25zdCB1c2VybmFtZSA9IHJhbmRvbVN0cmluZygxMik7XG4gIGNvbnN0IGFkZHJlc3MgPSBgJHt1c2VybmFtZX1AJHtkb21haW59YDtcbiAgY29uc3QgcGFzc3dvcmQgPSByYW5kb21TdHJpbmcoMTYpO1xuXG4gIC8vIDMuIOWIm+W7uui0puWPt1xuICBjb25zdCBhY2NvdW50ID0gYXdhaXQgY3JlYXRlQWNjb3VudChhZGRyZXNzLCBwYXNzd29yZCk7XG5cbiAgLy8gNC4g6I635Y+WIEJlYXJlciBUb2tlblxuICBjb25zdCB0b2tlbiA9IGF3YWl0IGdldFRva2VuKGFkZHJlc3MsIHBhc3N3b3JkKTtcblxuICByZXR1cm4ge1xuICAgIGNoYW5uZWw6IENIQU5ORUwsXG4gICAgZW1haWw6IGFkZHJlc3MsXG4gICAgdG9rZW46IHRva2VuLFxuICAgIGNyZWF0ZWRBdDogYWNjb3VudC5jcmVhdGVkQXQsXG4gIH07XG59XG5cbi8qKlxuICog5bCGIG1haWwudG0g55qE5raI5oGv5qC85byP5omB5bmz5YyW5Li6IG5vcm1hbGl6ZUVtYWlsIOWPr+WkhOeQhueahOagvOW8j1xuICogbWFpbC50bSDnmoQgZnJvbSDmmK8ge25hbWUsIGFkZHJlc3N9IOWvueixoe+8jHRvIOaYr+aVsOe7hO+8jGh0bWwg5piv5a2X56ym5Liy5pWw57uEXG4gKi9cbmZ1bmN0aW9uIGZsYXR0ZW5NZXNzYWdlKG1zZzogYW55LCByZWNpcGllbnRFbWFpbDogc3RyaW5nKTogYW55IHtcbiAgcmV0dXJuIHtcbiAgICBpZDogbXNnLmlkIHx8ICcnLFxuICAgIGZyb206IG1zZy5mcm9tPy5hZGRyZXNzIHx8ICcnLFxuICAgIHRvOiBtc2cudG8/LlswXT8uYWRkcmVzcyB8fCByZWNpcGllbnRFbWFpbCxcbiAgICBzdWJqZWN0OiBtc2cuc3ViamVjdCB8fCAnJyxcbiAgICB0ZXh0OiBtc2cudGV4dCB8fCAnJyxcbiAgICBodG1sOiBBcnJheS5pc0FycmF5KG1zZy5odG1sKSA/IG1zZy5odG1sLmpvaW4oJycpIDogKG1zZy5odG1sIHx8ICcnKSxcbiAgICBjcmVhdGVkQXQ6IG1zZy5jcmVhdGVkQXQgfHwgJycsXG4gICAgc2VlbjogbXNnLnNlZW4gPz8gZmFsc2UsXG4gICAgYXR0YWNobWVudHM6IChtc2cuYXR0YWNobWVudHMgfHwgW10pLm1hcCgoYTogYW55KSA9PiAoe1xuICAgICAgZmlsZW5hbWU6IGEuZmlsZW5hbWUgfHwgJycsXG4gICAgICBzaXplOiBhLnNpemUgfHwgdW5kZWZpbmVkLFxuICAgICAgY29udGVudFR5cGU6IGEuY29udGVudFR5cGUgfHwgdW5kZWZpbmVkLFxuICAgICAgZG93bmxvYWRVcmw6IGEuZG93bmxvYWRVcmwgPyBgJHtCQVNFX1VSTH0ke2EuZG93bmxvYWRVcmx9YCA6IHVuZGVmaW5lZCxcbiAgICB9KSksXG4gIH07XG59XG5cbi8qKlxuICog6I635Y+W6YKu5Lu25YiX6KGoXG4gKiDmtYHnqIs6IEdFVCAvbWVzc2FnZXMg6I635Y+W5YiX6KGoIOKGkiDlr7nmr4/lsIHpgq7ku7YgR0VUIC9tZXNzYWdlcy97aWR9IOiOt+WPluivpuaDhe+8iOWQqyB0ZXh0L2h0bWzvvIlcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEVtYWlscyh0b2tlbjogc3RyaW5nLCBlbWFpbDogc3RyaW5nKTogUHJvbWlzZTxFbWFpbFtdPiB7XG4gIC8vIDEuIOiOt+WPlumCruS7tuWIl+ihqFxuICBjb25zdCBsaXN0UmVzcG9uc2UgPSBhd2FpdCBmZXRjaFdpdGhUaW1lb3V0KGAke0JBU0VfVVJMfS9tZXNzYWdlc2AsIHtcbiAgICBtZXRob2Q6ICdHRVQnLFxuICAgIGhlYWRlcnM6IHtcbiAgICAgIC4uLkRFRkFVTFRfSEVBREVSUyxcbiAgICAgICdBdXRob3JpemF0aW9uJzogYEJlYXJlciAke3Rva2VufWAsXG4gICAgfSxcbiAgfSk7XG5cbiAgaWYgKCFsaXN0UmVzcG9uc2Uub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBnZXQgZW1haWxzOiAke2xpc3RSZXNwb25zZS5zdGF0dXN9YCk7XG4gIH1cblxuICBjb25zdCBsaXN0RGF0YSA9IGF3YWl0IGxpc3RSZXNwb25zZS5qc29uKCk7XG4gIC8qIOWFvOWuuSBIeWRyYSDmoLzlvI/lkoznuq/mlbDnu4TmoLzlvI8gKi9cbiAgY29uc3QgbWVzc2FnZXMgPSBBcnJheS5pc0FycmF5KGxpc3REYXRhKSA/IGxpc3REYXRhIDogKGxpc3REYXRhWydoeWRyYTptZW1iZXInXSB8fCBbXSk7XG5cbiAgaWYgKG1lc3NhZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIC8vIDIuIOW5tuihjOiOt+WPluavj+WwgemCruS7tueahOivpuaDhe+8iOWQqyB0ZXh0L2h0bWwvYXR0YWNobWVudHPvvIlcbiAgY29uc3QgZGV0YWlsUHJvbWlzZXMgPSBtZXNzYWdlcy5tYXAoYXN5bmMgKG1zZzogYW55KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRldGFpbFJlc3BvbnNlID0gYXdhaXQgZmV0Y2hXaXRoVGltZW91dChgJHtCQVNFX1VSTH0vbWVzc2FnZXMvJHttc2cuaWR9YCwge1xuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgLi4uREVGQVVMVF9IRUFERVJTLFxuICAgICAgICAgICdBdXRob3JpemF0aW9uJzogYEJlYXJlciAke3Rva2VufWAsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgaWYgKCFkZXRhaWxSZXNwb25zZS5vaykge1xuICAgICAgICAvLyDlpoLmnpzor6bmg4Xojrflj5blpLHotKXvvIzpgIDlm57kvb/nlKjliJfooajmlbDmja5cbiAgICAgICAgcmV0dXJuIGZsYXR0ZW5NZXNzYWdlKG1zZywgZW1haWwpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBkZXRhaWwgPSBhd2FpdCBkZXRhaWxSZXNwb25zZS5qc29uKCk7XG4gICAgICByZXR1cm4gZmxhdHRlbk1lc3NhZ2UoZGV0YWlsLCBlbWFpbCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyDlh7rplJnml7bpgIDlm57kvb/nlKjliJfooajmlbDmja5cbiAgICAgIHJldHVybiBmbGF0dGVuTWVzc2FnZShtc2csIGVtYWlsKTtcbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IGZsYXRNZXNzYWdlcyA9IGF3YWl0IFByb21pc2UuYWxsKGRldGFpbFByb21pc2VzKTtcbiAgcmV0dXJuIGZsYXRNZXNzYWdlcy5tYXAoKHJhdzogYW55KSA9PiBub3JtYWxpemVFbWFpbChyYXcsIGVtYWlsKSk7XG59XG4iXX0=
|
|
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=
|
|
@@ -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[]>;
|