tempmail-sdk 1.0.3 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +51 -3
- package/bun.lock +60 -0
- package/demo/poll-emails.ts +7 -8
- package/dist/config.d.ts +47 -0
- package/dist/config.js +68 -0
- package/dist/index.d.ts +21 -20
- package/dist/index.js +101 -37
- package/dist/normalize.js +28 -3
- package/dist/providers/awamail.d.ts +2 -2
- package/dist/providers/awamail.js +1 -1
- package/dist/providers/chatgpt-org-uk.d.ts +2 -2
- package/dist/providers/chatgpt-org-uk.js +1 -1
- package/dist/providers/dropmail.d.ts +2 -2
- package/dist/providers/dropmail.js +1 -1
- package/dist/providers/guerrillamail.d.ts +22 -0
- package/dist/providers/guerrillamail.js +71 -0
- package/dist/providers/linshi-email.d.ts +2 -2
- package/dist/providers/linshi-email.js +1 -1
- package/dist/providers/mail-tm.d.ts +2 -2
- package/dist/providers/mail-tm.js +1 -1
- package/dist/providers/maildrop.d.ts +21 -0
- package/dist/providers/maildrop.js +180 -0
- package/dist/providers/temp-mail-io.d.ts +2 -2
- package/dist/providers/temp-mail-io.js +1 -1
- package/dist/providers/tempmail-la.d.ts +2 -2
- package/dist/providers/tempmail-la.js +1 -1
- package/dist/providers/tempmail-lol.d.ts +2 -2
- package/dist/providers/tempmail-lol.js +1 -1
- package/dist/providers/tempmail.d.ts +2 -2
- package/dist/providers/tempmail.js +1 -1
- package/dist/retry.js +14 -5
- package/dist/types.d.ts +14 -15
- package/dist/types.js +1 -1
- package/package.json +1 -1
- package/src/config.ts +82 -0
- package/src/index.ts +102 -39
- package/src/normalize.ts +30 -2
- package/src/providers/awamail.ts +2 -2
- package/src/providers/chatgpt-org-uk.ts +2 -2
- package/src/providers/dropmail.ts +2 -2
- package/src/providers/guerrillamail.ts +78 -0
- package/src/providers/linshi-email.ts +2 -2
- package/src/providers/mail-tm.ts +2 -2
- package/src/providers/maildrop.ts +210 -0
- package/src/providers/temp-mail-io.ts +2 -2
- package/src/providers/tempmail-la.ts +2 -2
- package/src/providers/tempmail-lol.ts +2 -2
- package/src/providers/tempmail.ts +2 -2
- package/src/retry.ts +15 -4
- package/src/types.ts +15 -15
package/dist/index.js
CHANGED
|
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.TempEmailClient = exports.logger = exports.setLogger = exports.getLogLevel = exports.setLogLevel = exports.LogLevel = exports.fetchWithTimeout = exports.withRetry = exports.normalizeEmail = void 0;
|
|
36
|
+
exports.TempEmailClient = exports.getConfig = exports.setConfig = exports.logger = exports.setLogger = exports.getLogLevel = exports.setLogLevel = exports.LogLevel = exports.fetchWithTimeout = exports.withRetry = exports.normalizeEmail = void 0;
|
|
37
37
|
exports.listChannels = listChannels;
|
|
38
38
|
exports.getChannelInfo = getChannelInfo;
|
|
39
39
|
exports.generateEmail = generateEmail;
|
|
@@ -47,8 +47,18 @@ const tempMailIO = __importStar(require("./providers/temp-mail-io"));
|
|
|
47
47
|
const awamail = __importStar(require("./providers/awamail"));
|
|
48
48
|
const mailTm = __importStar(require("./providers/mail-tm"));
|
|
49
49
|
const dropmail = __importStar(require("./providers/dropmail"));
|
|
50
|
+
const guerrillamail = __importStar(require("./providers/guerrillamail"));
|
|
51
|
+
const maildropProvider = __importStar(require("./providers/maildrop"));
|
|
50
52
|
const retry_1 = require("./retry");
|
|
51
53
|
const logger_1 = require("./logger");
|
|
54
|
+
const config_1 = require("./config");
|
|
55
|
+
/**
|
|
56
|
+
* SDK 内部 token 存储
|
|
57
|
+
* 使用 WeakMap 将 EmailInfo 对象映射到对应的 token
|
|
58
|
+
* 用户无法直接访问 token,由 SDK 自动管理
|
|
59
|
+
* @internal
|
|
60
|
+
*/
|
|
61
|
+
const tokenStore = new WeakMap();
|
|
52
62
|
var normalize_1 = require("./normalize");
|
|
53
63
|
Object.defineProperty(exports, "normalizeEmail", { enumerable: true, get: function () { return normalize_1.normalizeEmail; } });
|
|
54
64
|
var retry_2 = require("./retry");
|
|
@@ -60,6 +70,9 @@ Object.defineProperty(exports, "setLogLevel", { enumerable: true, get: function
|
|
|
60
70
|
Object.defineProperty(exports, "getLogLevel", { enumerable: true, get: function () { return logger_2.getLogLevel; } });
|
|
61
71
|
Object.defineProperty(exports, "setLogger", { enumerable: true, get: function () { return logger_2.setLogger; } });
|
|
62
72
|
Object.defineProperty(exports, "logger", { enumerable: true, get: function () { return logger_2.logger; } });
|
|
73
|
+
var config_2 = require("./config");
|
|
74
|
+
Object.defineProperty(exports, "setConfig", { enumerable: true, get: function () { return config_2.setConfig; } });
|
|
75
|
+
Object.defineProperty(exports, "getConfig", { enumerable: true, get: function () { return config_2.getConfig; } });
|
|
63
76
|
/** 渠道名称到 provider 实现的映射表 */
|
|
64
77
|
const providers = {
|
|
65
78
|
'tempmail': tempmail,
|
|
@@ -71,9 +84,11 @@ const providers = {
|
|
|
71
84
|
'awamail': awamail,
|
|
72
85
|
'mail-tm': mailTm,
|
|
73
86
|
'dropmail': dropmail,
|
|
87
|
+
'guerrillamail': guerrillamail,
|
|
88
|
+
'maildrop': maildropProvider,
|
|
74
89
|
};
|
|
75
90
|
/** 所有支持的渠道列表,用于随机选择和遍历 */
|
|
76
|
-
const allChannels = ['tempmail', 'linshi-email', 'tempmail-lol', 'chatgpt-org-uk', 'tempmail-la', 'temp-mail-io', 'awamail', 'mail-tm', 'dropmail'];
|
|
91
|
+
const allChannels = ['tempmail', 'linshi-email', 'tempmail-lol', 'chatgpt-org-uk', 'tempmail-la', 'temp-mail-io', 'awamail', 'mail-tm', 'dropmail', 'guerrillamail', 'maildrop'];
|
|
77
92
|
/** 渠道信息映射表 */
|
|
78
93
|
const channelInfoMap = {
|
|
79
94
|
'tempmail': { channel: 'tempmail', name: 'TempMail', website: 'tempmail.ing' },
|
|
@@ -85,6 +100,8 @@ const channelInfoMap = {
|
|
|
85
100
|
'awamail': { channel: 'awamail', name: 'AwaMail', website: 'awamail.com' },
|
|
86
101
|
'mail-tm': { channel: 'mail-tm', name: 'Mail.tm', website: 'mail.tm' },
|
|
87
102
|
'dropmail': { channel: 'dropmail', name: 'DropMail', website: 'dropmail.me' },
|
|
103
|
+
'guerrillamail': { channel: 'guerrillamail', name: 'Guerrilla Mail', website: 'guerrillamail.com' },
|
|
104
|
+
'maildrop': { channel: 'maildrop', name: 'Maildrop', website: 'maildrop.cc' },
|
|
88
105
|
};
|
|
89
106
|
/**
|
|
90
107
|
* 获取所有支持的渠道列表
|
|
@@ -113,25 +130,61 @@ function getChannelInfo(channel) {
|
|
|
113
130
|
* 创建临时邮箱
|
|
114
131
|
*
|
|
115
132
|
* 错误处理策略:
|
|
116
|
-
* -
|
|
117
|
-
* -
|
|
133
|
+
* - 指定渠道失败时,自动尝试其他可用渠道(打乱顺序逐个尝试)
|
|
134
|
+
* - 未指定渠道时,打乱全部渠道逐个尝试,直到成功
|
|
135
|
+
* - 所有渠道均不可用时返回 null(不抛出异常)
|
|
118
136
|
*
|
|
119
137
|
* @param options - 创建选项,可指定渠道、有效时长、域名等
|
|
120
|
-
* @returns
|
|
121
|
-
* @throws 重试耗尽后仍失败时抛出异常
|
|
138
|
+
* @returns 邮箱信息,所有渠道均不可用时返回 null
|
|
122
139
|
*
|
|
123
140
|
* @example
|
|
124
141
|
* ```ts
|
|
125
142
|
* const emailInfo = await generateEmail({ channel: 'temp-mail-io' });
|
|
126
|
-
* console.log(emailInfo.email);
|
|
143
|
+
* if (emailInfo) console.log(emailInfo.email);
|
|
127
144
|
* ```
|
|
128
145
|
*/
|
|
129
146
|
async function generateEmail(options = {}) {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
147
|
+
/*
|
|
148
|
+
* 构建尝试顺序:
|
|
149
|
+
* - 指定渠道 → 优先尝试该渠道,失败后随机尝试其他渠道
|
|
150
|
+
* - 未指定 → 打乱全部渠道逐个尝试
|
|
151
|
+
*/
|
|
152
|
+
const tryOrder = buildChannelOrder(options.channel);
|
|
153
|
+
for (const ch of tryOrder) {
|
|
154
|
+
logger_1.logger.info(`创建临时邮箱, 渠道: ${ch}`);
|
|
155
|
+
try {
|
|
156
|
+
const internal = await (0, retry_1.withRetry)(() => generateEmailOnce(ch, options), options.retry);
|
|
157
|
+
logger_1.logger.info(`邮箱创建成功: ${internal.email} (渠道: ${ch})`);
|
|
158
|
+
/* 将 token 存入内部存储,不暴露给用户 */
|
|
159
|
+
const publicInfo = {
|
|
160
|
+
channel: internal.channel,
|
|
161
|
+
email: internal.email,
|
|
162
|
+
expiresAt: internal.expiresAt,
|
|
163
|
+
createdAt: internal.createdAt,
|
|
164
|
+
};
|
|
165
|
+
if (internal.token) {
|
|
166
|
+
tokenStore.set(publicInfo, internal.token);
|
|
167
|
+
}
|
|
168
|
+
return publicInfo;
|
|
169
|
+
}
|
|
170
|
+
catch (err) {
|
|
171
|
+
logger_1.logger.warn(`渠道 ${ch} 不可用: ${err.message || err},尝试下一个渠道`);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
logger_1.logger.error('所有渠道均不可用,创建邮箱失败');
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* 构建渠道尝试顺序
|
|
179
|
+
* 指定渠道时优先尝试该渠道,其余渠道打乱追加
|
|
180
|
+
* 未指定时打乱全部渠道
|
|
181
|
+
*/
|
|
182
|
+
function buildChannelOrder(preferred) {
|
|
183
|
+
const shuffled = [...allChannels].sort(() => Math.random() - 0.5);
|
|
184
|
+
if (!preferred)
|
|
185
|
+
return shuffled;
|
|
186
|
+
const rest = shuffled.filter(ch => ch !== preferred);
|
|
187
|
+
return [preferred, ...rest];
|
|
135
188
|
}
|
|
136
189
|
/**
|
|
137
190
|
* 单次创建邮箱(不含重试逻辑)
|
|
@@ -157,38 +210,42 @@ async function generateEmailOnce(channel, options) {
|
|
|
157
210
|
return mailTm.generateEmail();
|
|
158
211
|
case 'dropmail':
|
|
159
212
|
return dropmail.generateEmail();
|
|
213
|
+
case 'guerrillamail':
|
|
214
|
+
return guerrillamail.generateEmail();
|
|
215
|
+
case 'maildrop':
|
|
216
|
+
return maildropProvider.generateEmail();
|
|
160
217
|
default:
|
|
161
218
|
throw new Error(`Unknown channel: ${channel}`);
|
|
162
219
|
}
|
|
163
220
|
}
|
|
164
221
|
/**
|
|
165
222
|
* 获取邮件列表
|
|
223
|
+
* Channel/Email/Token 等由 SDK 从 EmailInfo 中自动获取,用户无需手动传递
|
|
166
224
|
*
|
|
167
225
|
* 错误处理策略:
|
|
168
|
-
* -
|
|
226
|
+
* - 网络错误、超时、429、服务端 5xx 错误 → 自动重试(默认 2 次)
|
|
169
227
|
* - 重试耗尽后返回 { success: false, emails: [] },不抛异常
|
|
170
|
-
* - 参数校验错误(缺少
|
|
171
|
-
*
|
|
172
|
-
* 这种设计让调用方在轮询场景下不会因网络波动而中断整个流程,
|
|
173
|
-
* 只需检查 success 字段即可判断本次请求是否成功。
|
|
228
|
+
* - 参数校验错误(缺少 EmailInfo)直接抛出
|
|
174
229
|
*
|
|
175
|
-
* @param
|
|
230
|
+
* @param info - GenerateEmail() 返回的邮箱信息
|
|
231
|
+
* @param options - 可选配置(重试等)
|
|
176
232
|
* @returns 邮件结果,包含 success 标记和邮件列表
|
|
177
233
|
*
|
|
178
234
|
* @example
|
|
179
235
|
* ```ts
|
|
180
|
-
* const
|
|
181
|
-
*
|
|
182
|
-
* email: emailInfo.email,
|
|
183
|
-
* token: emailInfo.token,
|
|
184
|
-
* });
|
|
236
|
+
* const info = await generateEmail({ channel: 'mail-tm' });
|
|
237
|
+
* const result = await getEmails(info);
|
|
185
238
|
* if (result.success && result.emails.length > 0) {
|
|
186
239
|
* console.log('收到邮件:', result.emails[0].subject);
|
|
187
240
|
* }
|
|
188
241
|
* ```
|
|
189
242
|
*/
|
|
190
|
-
async function getEmails(options) {
|
|
191
|
-
|
|
243
|
+
async function getEmails(info, options) {
|
|
244
|
+
if (!info) {
|
|
245
|
+
throw new Error('EmailInfo is required, call generateEmail() first');
|
|
246
|
+
}
|
|
247
|
+
const { channel, email } = info;
|
|
248
|
+
const token = tokenStore.get(info);
|
|
192
249
|
if (!channel) {
|
|
193
250
|
throw new Error('Channel is required');
|
|
194
251
|
}
|
|
@@ -197,7 +254,7 @@ async function getEmails(options) {
|
|
|
197
254
|
}
|
|
198
255
|
logger_1.logger.debug(`获取邮件, 渠道: ${channel}, 邮箱: ${email}`);
|
|
199
256
|
try {
|
|
200
|
-
const emails = await (0, retry_1.withRetry)(() => getEmailsOnce(channel, email, token), options
|
|
257
|
+
const emails = await (0, retry_1.withRetry)(() => getEmailsOnce(channel, email, token), options?.retry);
|
|
201
258
|
if (emails.length > 0) {
|
|
202
259
|
logger_1.logger.info(`获取到 ${emails.length} 封邮件, 渠道: ${channel}`);
|
|
203
260
|
}
|
|
@@ -227,7 +284,7 @@ async function getEmailsOnce(channel, email, token) {
|
|
|
227
284
|
return linshiEmail.getEmails(email);
|
|
228
285
|
case 'tempmail-lol':
|
|
229
286
|
if (!token)
|
|
230
|
-
throw new Error('
|
|
287
|
+
throw new Error('internal error: token missing for tempmail-lol');
|
|
231
288
|
return tempmailLol.getEmails(token, email);
|
|
232
289
|
case 'chatgpt-org-uk':
|
|
233
290
|
return chatgptOrgUk.getEmails(email);
|
|
@@ -237,16 +294,24 @@ async function getEmailsOnce(channel, email, token) {
|
|
|
237
294
|
return tempMailIO.getEmails(email);
|
|
238
295
|
case 'awamail':
|
|
239
296
|
if (!token)
|
|
240
|
-
throw new Error('
|
|
297
|
+
throw new Error('internal error: token missing for awamail');
|
|
241
298
|
return awamail.getEmails(token, email);
|
|
242
299
|
case 'mail-tm':
|
|
243
300
|
if (!token)
|
|
244
|
-
throw new Error('
|
|
301
|
+
throw new Error('internal error: token missing for mail-tm');
|
|
245
302
|
return mailTm.getEmails(token, email);
|
|
246
303
|
case 'dropmail':
|
|
247
304
|
if (!token)
|
|
248
|
-
throw new Error('
|
|
305
|
+
throw new Error('internal error: token missing for dropmail');
|
|
249
306
|
return dropmail.getEmails(token, email);
|
|
307
|
+
case 'guerrillamail':
|
|
308
|
+
if (!token)
|
|
309
|
+
throw new Error('internal error: token missing for guerrillamail');
|
|
310
|
+
return guerrillamail.getEmails(token, email);
|
|
311
|
+
case 'maildrop':
|
|
312
|
+
if (!token)
|
|
313
|
+
throw new Error('internal error: token missing for maildrop');
|
|
314
|
+
return maildropProvider.getEmails(token, email);
|
|
250
315
|
default:
|
|
251
316
|
throw new Error(`Unknown channel: ${channel}`);
|
|
252
317
|
}
|
|
@@ -275,6 +340,7 @@ class TempEmailClient {
|
|
|
275
340
|
/**
|
|
276
341
|
* 创建临时邮箱并缓存邮箱信息
|
|
277
342
|
* 后续调用 getEmails() 时自动使用此邮箱的渠道、地址和令牌
|
|
343
|
+
* 所有渠道均不可用时返回 null
|
|
278
344
|
*/
|
|
279
345
|
async generate(options = {}) {
|
|
280
346
|
this.emailInfo = await generateEmail(options);
|
|
@@ -286,15 +352,11 @@ class TempEmailClient {
|
|
|
286
352
|
*
|
|
287
353
|
* @throws 未调用 generate() 时抛出异常
|
|
288
354
|
*/
|
|
289
|
-
async getEmails() {
|
|
355
|
+
async getEmails(options) {
|
|
290
356
|
if (!this.emailInfo) {
|
|
291
357
|
throw new Error('No email generated. Call generate() first.');
|
|
292
358
|
}
|
|
293
|
-
return getEmails(
|
|
294
|
-
channel: this.emailInfo.channel,
|
|
295
|
-
email: this.emailInfo.email,
|
|
296
|
-
token: this.emailInfo.token,
|
|
297
|
-
});
|
|
359
|
+
return getEmails(this.emailInfo, options);
|
|
298
360
|
}
|
|
299
361
|
/**
|
|
300
362
|
* 获取当前缓存的邮箱信息
|
|
@@ -311,5 +373,7 @@ exports.default = {
|
|
|
311
373
|
generateEmail,
|
|
312
374
|
getEmails,
|
|
313
375
|
TempEmailClient,
|
|
376
|
+
setConfig: config_1.setConfig,
|
|
377
|
+
getConfig: config_1.getConfig,
|
|
314
378
|
};
|
|
315
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBc0VBLG9DQUVDO0FBUUQsd0NBRUM7QUFtQkQsc0NBT0M7QUF5REQsOEJBMkJDO0FBaE1ELCtEQUFpRDtBQUNqRCxzRUFBd0Q7QUFDeEQsc0VBQXdEO0FBQ3hELHlFQUEyRDtBQUMzRCxvRUFBc0Q7QUFDdEQscUVBQXVEO0FBQ3ZELDZEQUErQztBQUMvQyw0REFBOEM7QUFDOUMsK0RBQWlEO0FBRWpELG1DQUFrRDtBQUNsRCxxQ0FBa0M7QUFHbEMseUNBQTZDO0FBQXBDLDJHQUFBLGNBQWMsT0FBQTtBQUN2QixpQ0FBb0U7QUFBM0Qsa0dBQUEsU0FBUyxPQUFBO0FBQUUseUdBQUEsZ0JBQWdCLE9BQUE7QUFDcEMsbUNBQTZGO0FBQXBGLGtHQUFBLFFBQVEsT0FBQTtBQUFjLHFHQUFBLFdBQVcsT0FBQTtBQUFFLHFHQUFBLFdBQVcsT0FBQTtBQUFFLG1HQUFBLFNBQVMsT0FBQTtBQUFFLGdHQUFBLE1BQU0sT0FBQTtBQUUxRSw0QkFBNEI7QUFDNUIsTUFBTSxTQUFTLEdBQUc7SUFDaEIsVUFBVSxFQUFFLFFBQVE7SUFDcEIsY0FBYyxFQUFFLFdBQVc7SUFDM0IsY0FBYyxFQUFFLFdBQVc7SUFDM0IsZ0JBQWdCLEVBQUUsWUFBWTtJQUM5QixhQUFhLEVBQUUsVUFBVTtJQUN6QixjQUFjLEVBQUUsVUFBVTtJQUMxQixTQUFTLEVBQUUsT0FBTztJQUNsQixTQUFTLEVBQUUsTUFBTTtJQUNqQixVQUFVLEVBQUUsUUFBUTtDQUNyQixDQUFDO0FBRUYsMEJBQTBCO0FBQzFCLE1BQU0sV0FBVyxHQUFjLENBQUMsVUFBVSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUs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SSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7WUFDZixPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPO1lBQy9CLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUs7WUFDM0IsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSztTQUM1QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0NBQ0Y7QUFyQ0QsMENBcUNDO0FBRUQsa0JBQWU7SUFDYixZQUFZO0lBQ1osY0FBYztJQUNkLGFBQWE7SUFDYixTQUFTO0lBQ1QsZUFBZTtDQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdGVtcG1haWwgZnJvbSAnLi9wcm92aWRlcnMvdGVtcG1haWwnO1xuaW1wb3J0ICogYXMgbGluc2hpRW1haWwgZnJvbSAnLi9wcm92aWRlcnMvbGluc2hpLWVtYWlsJztcbmltcG9ydCAqIGFzIHRlbXBtYWlsTG9sIGZyb20gJy4vcHJvdmlkZXJzL3RlbXBtYWlsLWxvbCc7XG5pbXBvcnQgKiBhcyBjaGF0Z3B0T3JnVWsgZnJvbSAnLi9wcm92aWRlcnMvY2hhdGdwdC1vcmctdWsnO1xuaW1wb3J0ICogYXMgdGVtcG1haWxMYSBmcm9tICcuL3Byb3ZpZGVycy90ZW1wbWFpbC1sYSc7XG5pbXBvcnQgKiBhcyB0ZW1wTWFpbElPIGZyb20gJy4vcHJvdmlkZXJzL3RlbXAtbWFpbC1pbyc7XG5pbXBvcnQgKiBhcyBhd2FtYWlsIGZyb20gJy4vcHJvdmlkZXJzL2F3YW1haWwnO1xuaW1wb3J0ICogYXMgbWFpbFRtIGZyb20gJy4vcHJvdmlkZXJzL21haWwtdG0nO1xuaW1wb3J0ICogYXMgZHJvcG1haWwgZnJvbSAnLi9wcm92aWRlcnMvZHJvcG1haWwnO1xuaW1wb3J0IHsgQ2hhbm5lbCwgRW1haWxJbmZvLCBFbWFpbCwgRW1haWxBdHRhY2htZW50LCBHZXRFbWFpbHNSZXN1bHQsIEdlbmVyYXRlRW1haWxPcHRpb25zLCBHZXRFbWFpbHNPcHRpb25zIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyB3aXRoUmV0cnksIFJldHJ5T3B0aW9ucyB9IGZyb20gJy4vcmV0cnknO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi9sb2dnZXInO1xuXG5leHBvcnQgeyBDaGFubmVsLCBFbWFpbEluZm8sIEVtYWlsLCBFbWFpbEF0dGFjaG1lbnQsIEdldEVtYWlsc1Jlc3VsdCwgR2VuZXJhdGVFbWFpbE9wdGlvbnMsIEdldEVtYWlsc09wdGlvbnMgfSBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCB7IG5vcm1hbGl6ZUVtYWlsIH0gZnJvbSAnLi9ub3JtYWxpemUnO1xuZXhwb3J0IHsgd2l0aFJldHJ5LCBmZXRjaFdpdGhUaW1lb3V0LCBSZXRyeU9wdGlvbnMgfSBmcm9tICcuL3JldHJ5JztcbmV4cG9ydCB7IExvZ0xldmVsLCBMb2dIYW5kbGVyLCBzZXRMb2dMZXZlbCwgZ2V0TG9nTGV2ZWwsIHNldExvZ2dlciwgbG9nZ2VyIH0gZnJvbSAnLi9sb2dnZXInO1xuXG4vKiog5rig6YGT5ZCN56ew5YiwIHByb3ZpZGVyIOWunueOsOeahOaYoOWwhOihqCAqL1xuY29uc3QgcHJvdmlkZXJzID0ge1xuICAndGVtcG1haWwnOiB0ZW1wbWFpbCxcbiAgJ2xpbnNoaS1lbWFpbCc6IGxpbnNoaUVtYWlsLFxuICAndGVtcG1haWwtbG9sJzogdGVtcG1haWxMb2wsXG4gICdjaGF0Z3B0LW9yZy11ayc6IGNoYXRncHRPcmdVayxcbiAgJ3RlbXBtYWlsLWxhJzogdGVtcG1haWxMYSxcbiAgJ3RlbXAtbWFpbC1pbyc6IHRlbXBNYWlsSU8sXG4gICdhd2FtYWlsJzogYXdhbWFpbCxcbiAgJ21haWwtdG0nOiBtYWlsVG0sXG4gICdkcm9wbWFpbCc6IGRyb3BtYWlsLFxufTtcblxuLyoqIOaJgOacieaUr+aMgeeahOa4oOmBk+WIl+ihqO+8jOeUqOS6jumaj+acuumAieaLqeWSjOmBjeWOhiAqL1xuY29uc3QgYWxsQ2hhbm5lbHM6IENoYW5uZWxbXSA9IFsndGVtcG1haWwnLCAnbGluc2hpLWVtYWlsJywgJ3RlbXBtYWlsLWxvbCcsICdjaGF0Z3B0LW9yZy11aycsICd0ZW1wbWFpbC1sYScsICd0ZW1wLW1haWwtaW8nLCAnYXdhbWFpbCcsICdtYWlsLXRtJywgJ2Ryb3BtYWlsJ107XG5cbi8qKlxuICog5rig6YGT5L+h5oGv77yM5YyF5ZCr5rig6YGT5qCH6K+G44CB5pi+56S65ZCN56ew5ZKM5a+55bqU572R56uZXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbm5lbEluZm8ge1xuICAvKiog5rig6YGT5qCH6K+GICovXG4gIGNoYW5uZWw6IENoYW5uZWw7XG4gIC8qKiDmuKDpgZPmmL7npLrlkI3np7AgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiog5a+55bqU55qE5Li05pe26YKu566x5pyN5Yqh572R56uZICovXG4gIHdlYnNpdGU6IHN0cmluZztcbn1cblxuLyoqIOa4oOmBk+S/oeaBr+aYoOWwhOihqCAqL1xuY29uc3QgY2hhbm5lbEluZm9NYXA6IFJlY29yZDxDaGFubmVsLCBDaGFubmVsSW5mbz4gPSB7XG4gICd0ZW1wbWFpbCc6IHsgY2hhbm5lbDogJ3RlbXBtYWlsJywgbmFtZTogJ1RlbXBNYWlsJywgd2Vic2l0ZTogJ3RlbXBtYWlsLmluZycgfSxcbiAgJ2xpbnNoaS1lbWFpbCc6IHsgY2hhbm5lbDogJ2xpbnNoaS1lbWFpbCcsIG5hbWU6ICfkuLTml7bpgq7nrrEnLCB3ZWJzaXRlOiAnbGluc2hpLWVtYWlsLmNvbScgfSxcbiAgJ3RlbXBtYWlsLWxvbCc6IHsgY2hhbm5lbDogJ3RlbXBtYWlsLWxvbCcsIG5hbWU6ICdUZW1wTWFpbCBMT0wnLCB3ZWJzaXRlOiAndGVtcG1haWwubG9sJyB9LFxuICAnY2hhdGdwdC1vcmctdWsnOiB7IGNoYW5uZWw6ICdjaGF0Z3B0LW9yZy11aycsIG5hbWU6ICdDaGF0R1BUIE1haWwnLCB3ZWJzaXRlOiAnbWFpbC5jaGF0Z3B0Lm9yZy51aycgfSxcbiAgJ3RlbXBtYWlsLWxhJzogeyBjaGFubmVsOiAndGVtcG1haWwtbGEnLCBuYW1lOiAnVGVtcE1haWwgTEEnLCB3ZWJzaXRlOiAndGVtcG1haWwubGEnIH0sXG4gICd0ZW1wLW1haWwtaW8nOiB7IGNoYW5uZWw6ICd0ZW1wLW1haWwtaW8nLCBuYW1lOiAnVGVtcCBNYWlsIElPJywgd2Vic2l0ZTogJ3RlbXAtbWFpbC5pbycgfSxcbiAgJ2F3YW1haWwnOiB7IGNoYW5uZWw6ICdhd2FtYWlsJywgbmFtZTogJ0F3YU1haWwnLCB3ZWJzaXRlOiAnYXdhbWFpbC5jb20nIH0sXG4gICdtYWlsLXRtJzogeyBjaGFubmVsOiAnbWFpbC10bScsIG5hbWU6ICdNYWlsLnRtJywgd2Vic2l0ZTogJ21haWwudG0nIH0sXG4gICdkcm9wbWFpbCc6IHsgY2hhbm5lbDogJ2Ryb3BtYWlsJywgbmFtZTogJ0Ryb3BNYWlsJywgd2Vic2l0ZTogJ2Ryb3BtYWlsLm1lJyB9LFxufTtcblxuLyoqXG4gKiDojrflj5bmiYDmnInmlK/mjIHnmoTmuKDpgZPliJfooahcbiAqXG4gKiBAcmV0dXJucyDmiYDmnInmuKDpgZPnmoTkv6Hmga/mlbDnu4RcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGNvbnN0IGNoYW5uZWxzID0gbGlzdENoYW5uZWxzKCk7XG4gKiBjaGFubmVscy5mb3JFYWNoKGNoID0+IGNvbnNvbGUubG9nKGAke2NoLm5hbWV9ICgke2NoLndlYnNpdGV9KWApKTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gbGlzdENoYW5uZWxzKCk6IENoYW5uZWxJbmZvW10ge1xuICByZXR1cm4gYWxsQ2hhbm5lbHMubWFwKGNoID0+IGNoYW5uZWxJbmZvTWFwW2NoXSk7XG59XG5cbi8qKlxuICog6I635Y+W5oyH5a6a5rig6YGT55qE6K+m57uG5L+h5oGvXG4gKlxuICogQHBhcmFtIGNoYW5uZWwgLSDmuKDpgZPmoIfor4ZcbiAqIEByZXR1cm5zIOa4oOmBk+S/oeaBr++8jOS4jeWtmOWcqOaXtui/lOWbniB1bmRlZmluZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENoYW5uZWxJbmZvKGNoYW5uZWw6IENoYW5uZWwpOiBDaGFubmVsSW5mbyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBjaGFubmVsSW5mb01hcFtjaGFubmVsXTtcbn1cblxuLyoqXG4gKiDliJvlu7rkuLTml7bpgq7nrrFcbiAqXG4gKiDplJnor6/lpITnkIbnrZbnlaXvvJpcbiAqIC0g572R57uc6ZSZ6K+v44CB6LaF5pe244CB5pyN5Yqh56uvIDV4eCDplJnor68g4oaSIOiHquWKqOmHjeivle+8iOm7mOiupCAyIOasoe+8jOaMh+aVsOmAgOmBv++8iVxuICogLSA0eHgg5a6i5oi356uv6ZSZ6K+v44CB5Y+C5pWw6ZSZ6K+vIOKGkiDnm7TmjqXmipvlh7rlvILluLhcbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIOWIm+W7uumAiemhue+8jOWPr+aMh+Wumua4oOmBk+OAgeacieaViOaXtumVv+OAgeWfn+WQjeetiVxuICogQHJldHVybnMg6YKu566x5L+h5oGv77yM5YyF5ZCr5Zyw5Z2A44CB5Luk54mM562JXG4gKiBAdGhyb3dzIOmHjeivleiAl+WwveWQjuS7jeWksei0peaXtuaKm+WHuuW8guW4uFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogY29uc3QgZW1haWxJbmZvID0gYXdhaXQgZ2VuZXJhdGVFbWFpbCh7IGNoYW5uZWw6ICd0ZW1wLW1haWwtaW8nIH0pO1xuICogY29uc29sZS5sb2coZW1haWxJbmZvLmVtYWlsKTsgLy8g5Li05pe26YKu566x5Zyw5Z2AXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlRW1haWwob3B0aW9uczogR2VuZXJhdGVFbWFpbE9wdGlvbnMgPSB7fSk6IFByb21pc2U8RW1haWxJbmZvPiB7XG4gIGNvbnN0IGNoYW5uZWwgPSBvcHRpb25zLmNoYW5uZWwgfHwgYWxsQ2hhbm5lbHNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogYWxsQ2hhbm5lbHMubGVuZ3RoKV07XG5cbiAgbG9nZ2VyLmluZm8oYOWIm+W7uuS4tOaXtumCrueusSwg5rig6YGTOiAke2NoYW5uZWx9YCk7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHdpdGhSZXRyeSgoKSA9PiBnZW5lcmF0ZUVtYWlsT25jZShjaGFubmVsLCBvcHRpb25zKSwgb3B0aW9ucy5yZXRyeSk7XG4gIGxvZ2dlci5pbmZvKGDpgq7nrrHliJvlu7rmiJDlip86ICR7cmVzdWx0LmVtYWlsfWApO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIOWNleasoeWIm+W7uumCrueuse+8iOS4jeWQq+mHjeivlemAu+i+ke+8iVxuICog5qC55o2u5rig6YGT57G75Z6L5YiG5Y+R5Yiw5a+55bqU55qEIHByb3ZpZGVyIOWunueOsFxuICovXG5hc3luYyBmdW5jdGlvbiBnZW5lcmF0ZUVtYWlsT25jZShjaGFubmVsOiBDaGFubmVsLCBvcHRpb25zOiBHZW5lcmF0ZUVtYWlsT3B0aW9ucyk6IFByb21pc2U8RW1haWxJbmZvPiB7XG4gIHN3aXRjaCAoY2hhbm5lbCkge1xuICAgIGNhc2UgJ3RlbXBtYWlsJzpcbiAgICAgIHJldHVybiB0ZW1wbWFpbC5nZW5lcmF0ZUVtYWlsKG9wdGlvbnMuZHVyYXRpb24gfHwgMzApO1xuICAgIGNhc2UgJ2xpbnNoaS1lbWFpbCc6XG4gICAgICByZXR1cm4gbGluc2hpRW1haWwuZ2VuZXJhdGVFbWFpbCgpO1xuICAgIGNhc2UgJ3RlbXBtYWlsLWxvbCc6XG4gICAgICByZXR1cm4gdGVtcG1haWxMb2wuZ2VuZXJhdGVFbWFpbChvcHRpb25zLmRvbWFpbiB8fCBudWxsKTtcbiAgICBjYXNlICdjaGF0Z3B0LW9yZy11ayc6XG4gICAgICByZXR1cm4gY2hhdGdwdE9yZ1VrLmdlbmVyYXRlRW1haWwoKTtcbiAgICBjYXNlICd0ZW1wbWFpbC1sYSc6XG4gICAgICByZXR1cm4gdGVtcG1haWxMYS5nZW5lcmF0ZUVtYWlsKCk7XG4gICAgY2FzZSAndGVtcC1tYWlsLWlvJzpcbiAgICAgIHJldHVybiB0ZW1wTWFpbElPLmdlbmVyYXRlRW1haWwoKTtcbiAgICBjYXNlICdhd2FtYWlsJzpcbiAgICAgIHJldHVybiBhd2FtYWlsLmdlbmVyYXRlRW1haWwoKTtcbiAgICBjYXNlICdtYWlsLXRtJzpcbiAgICAgIHJldHVybiBtYWlsVG0uZ2VuZXJhdGVFbWFpbCgpO1xuICAgIGNhc2UgJ2Ryb3BtYWlsJzpcbiAgICAgIHJldHVybiBkcm9wbWFpbC5nZW5lcmF0ZUVtYWlsKCk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBjaGFubmVsOiAke2NoYW5uZWx9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiDojrflj5bpgq7ku7bliJfooahcbiAqXG4gKiDplJnor6/lpITnkIbnrZbnlaXvvJpcbiAqIC0g572R57uc6ZSZ6K+v44CB6LaF5pe244CB5pyN5Yqh56uvIDV4eCDplJnor68g4oaSIOiHquWKqOmHjeivle+8iOm7mOiupCAyIOasoe+8iVxuICogLSDph43or5XogJflsL3lkI7ov5Tlm54geyBzdWNjZXNzOiBmYWxzZSwgZW1haWxzOiBbXSB977yM5LiN5oqb5byC5bi4XG4gKiAtIOWPguaVsOagoemqjOmUmeivr++8iOe8uuWwkSBjaGFubmVsIC8gdG9rZW7vvInnm7TmjqXmipvlh7pcbiAqXG4gKiDov5nnp43orr7orqHorqnosIPnlKjmlrnlnKjova7or6LlnLrmma/kuIvkuI3kvJrlm6DnvZHnu5zms6LliqjogIzkuK3mlq3mlbTkuKrmtYHnqIvvvIxcbiAqIOWPqumcgOajgOafpSBzdWNjZXNzIOWtl+auteWNs+WPr+WIpOaWreacrOasoeivt+axguaYr+WQpuaIkOWKn+OAglxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0g6I635Y+W6YCJ6aG577yM5YyF5ZCr5rig6YGT44CB6YKu566x5Zyw5Z2A44CB5Luk54mMXG4gKiBAcmV0dXJucyDpgq7ku7bnu5PmnpzvvIzljIXlkKsgc3VjY2VzcyDmoIforrDlkozpgq7ku7bliJfooahcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGdldEVtYWlscyh7XG4gKiAgIGNoYW5uZWw6IGVtYWlsSW5mby5jaGFubmVsLFxuICogICBlbWFpbDogZW1haWxJbmZvLmVtYWlsLFxuICogICB0b2tlbjogZW1haWxJbmZvLnRva2VuLFxuICogfSk7XG4gKiBpZiAocmVzdWx0LnN1Y2Nlc3MgJiYgcmVzdWx0LmVtYWlscy5sZW5ndGggPiAwKSB7XG4gKiAgIGNvbnNvbGUubG9nKCfmlLbliLDpgq7ku7Y6JywgcmVzdWx0LmVtYWlsc1swXS5zdWJqZWN0KTtcbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RW1haWxzKG9wdGlvbnM6IEdldEVtYWlsc09wdGlvbnMpOiBQcm9taXNlPEdldEVtYWlsc1Jlc3VsdD4ge1xuICBjb25zdCB7IGNoYW5uZWwsIGVtYWlsLCB0b2tlbiB9ID0gb3B0aW9ucztcblxuICBpZiAoIWNoYW5uZWwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NoYW5uZWwgaXMgcmVxdWlyZWQnKTtcbiAgfVxuICBpZiAoIWVtYWlsICYmIGNoYW5uZWwgIT09ICd0ZW1wbWFpbC1sb2wnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFbWFpbCBpcyByZXF1aXJlZCcpO1xuICB9XG5cbiAgbG9nZ2VyLmRlYnVnKGDojrflj5bpgq7ku7YsIOa4oOmBkzogJHtjaGFubmVsfSwg6YKu566xOiAke2VtYWlsfWApO1xuICB0cnkge1xuICAgIGNvbnN0IGVtYWlscyA9IGF3YWl0IHdpdGhSZXRyeSgoKSA9PiBnZXRFbWFpbHNPbmNlKGNoYW5uZWwsIGVtYWlsLCB0b2tlbiksIG9wdGlvbnMucmV0cnkpO1xuICAgIGlmIChlbWFpbHMubGVuZ3RoID4gMCkge1xuICAgICAgbG9nZ2VyLmluZm8oYOiOt+WPluWIsCAke2VtYWlscy5sZW5ndGh9IOWwgemCruS7tiwg5rig6YGTOiAke2NoYW5uZWx9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvZ2dlci5kZWJ1Zyhg5pqC5peg6YKu5Lu2LCDmuKDpgZM6ICR7Y2hhbm5lbH1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgY2hhbm5lbCwgZW1haWwsIGVtYWlscywgc3VjY2VzczogdHJ1ZSB9O1xuICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgIC8qXG4gICAgICog6YeN6K+V6ICX5bC95ZCO5LuN54S25aSx6LSlIOKGkiDov5Tlm57nqbrnu5PmnpzogIzpnZ7mipvlvILluLhcbiAgICAgKiDov5nmoLfosIPnlKjmlrnlnKjova7or6LlnLrmma/kuIvkuI3kvJrlm6DkuLrkuIDmrKHnvZHnu5zms6LliqjogIzkuK3mlq3mlbTkuKrmtYHnqItcbiAgICAgKi9cbiAgICBsb2dnZXIuZXJyb3IoYOiOt+WPlumCruS7tuWksei0pSwg5rig6YGTOiAke2NoYW5uZWx9LCDplJnor686ICR7ZXJyLm1lc3NhZ2UgfHwgZXJyfWApO1xuICAgIHJldHVybiB7IGNoYW5uZWwsIGVtYWlsLCBlbWFpbHM6IFtdLCBzdWNjZXNzOiBmYWxzZSB9O1xuICB9XG59XG5cbi8qKlxuICog5Y2V5qyh6I635Y+W6YKu5Lu277yI5LiN5ZCr6YeN6K+V6YC76L6R77yJXG4gKiDmoLnmja7muKDpgZPnsbvlnovliIblj5HliLDlr7nlupTnmoQgcHJvdmlkZXIg5a6e546w77yM5bm25qCh6aqM5b+F6ZyA55qEIHRva2VuIOWPguaVsFxuICovXG5hc3luYyBmdW5jdGlvbiBnZXRFbWFpbHNPbmNlKGNoYW5uZWw6IENoYW5uZWwsIGVtYWlsOiBzdHJpbmcsIHRva2VuPzogc3RyaW5nKTogUHJvbWlzZTxFbWFpbFtdPiB7XG4gIHN3aXRjaCAoY2hhbm5lbCkge1xuICAgIGNhc2UgJ3RlbXBtYWlsJzpcbiAgICAgIHJldHVybiB0ZW1wbWFpbC5nZXRFbWFpbHMoZW1haWwpO1xuICAgIGNhc2UgJ2xpbnNoaS1lbWFpbCc6XG4gICAgICByZXR1cm4gbGluc2hpRW1haWwuZ2V0RW1haWxzKGVtYWlsKTtcbiAgICBjYXNlICd0ZW1wbWFpbC1sb2wnOlxuICAgICAgaWYgKCF0b2tlbikgdGhyb3cgbmV3IEVycm9yKCdUb2tlbiBpcyByZXF1aXJlZCBmb3IgdGVtcG1haWwtbG9sIGNoYW5uZWwnKTtcbiAgICAgIHJldHVybiB0ZW1wbWFpbExvbC5nZXRFbWFpbHModG9rZW4sIGVtYWlsKTtcbiAgICBjYXNlICdjaGF0Z3B0LW9yZy11ayc6XG4gICAgICByZXR1cm4gY2hhdGdwdE9yZ1VrLmdldEVtYWlscyhlbWFpbCk7XG4gICAgY2FzZSAndGVtcG1haWwtbGEnOlxuICAgICAgcmV0dXJuIHRlbXBtYWlsTGEuZ2V0RW1haWxzKGVtYWlsKTtcbiAgICBjYXNlICd0ZW1wLW1haWwtaW8nOlxuICAgICAgcmV0dXJuIHRlbXBNYWlsSU8uZ2V0RW1haWxzKGVtYWlsKTtcbiAgICBjYXNlICdhd2FtYWlsJzpcbiAgICAgIGlmICghdG9rZW4pIHRocm93IG5ldyBFcnJvcignVG9rZW4gaXMgcmVxdWlyZWQgZm9yIGF3YW1haWwgY2hhbm5lbCcpO1xuICAgICAgcmV0dXJuIGF3YW1haWwuZ2V0RW1haWxzKHRva2VuLCBlbWFpbCk7XG4gICAgY2FzZSAnbWFpbC10bSc6XG4gICAgICBpZiAoIXRva2VuKSB0aHJvdyBuZXcgRXJyb3IoJ1Rva2VuIGlzIHJlcXVpcmVkIGZvciBtYWlsLXRtIGNoYW5uZWwnKTtcbiAgICAgIHJldHVybiBtYWlsVG0uZ2V0RW1haWxzKHRva2VuLCBlbWFpbCk7XG4gICAgY2FzZSAnZHJvcG1haWwnOlxuICAgICAgaWYgKCF0b2tlbikgdGhyb3cgbmV3IEVycm9yKCdUb2tlbiBpcyByZXF1aXJlZCBmb3IgZHJvcG1haWwgY2hhbm5lbCcpO1xuICAgICAgcmV0dXJuIGRyb3BtYWlsLmdldEVtYWlscyh0b2tlbiwgZW1haWwpO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gY2hhbm5lbDogJHtjaGFubmVsfWApO1xuICB9XG59XG5cbi8qKlxuICog5Li05pe26YKu566x5a6i5oi356uvXG4gKiDlsIHoo4Xkuobpgq7nrrHliJvlu7rlkozpgq7ku7bojrflj5bnmoTlrozmlbTmtYHnqIvvvIzoh6rliqjnrqHnkIbpgq7nrrHkv6Hmga/lkozorqTor4Hku6TniYxcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGNvbnN0IGNsaWVudCA9IG5ldyBUZW1wRW1haWxDbGllbnQoKTtcbiAqIGNvbnN0IGVtYWlsSW5mbyA9IGF3YWl0IGNsaWVudC5nZW5lcmF0ZSh7IGNoYW5uZWw6ICdtYWlsLXRtJyB9KTtcbiAqIGNvbnNvbGUubG9nKCfpgq7nrrE6JywgZW1haWxJbmZvLmVtYWlsKTtcbiAqXG4gKiAvLyDova7or6Lojrflj5bpgq7ku7ZcbiAqIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNsaWVudC5nZXRFbWFpbHMoKTtcbiAqIGlmIChyZXN1bHQuc3VjY2Vzcykge1xuICogICBjb25zb2xlLmxvZygn6YKu5Lu25pWwOicsIHJlc3VsdC5lbWFpbHMubGVuZ3RoKTtcbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgVGVtcEVtYWlsQ2xpZW50IHtcbiAgcHJpdmF0ZSBlbWFpbEluZm86IEVtYWlsSW5mbyB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiDliJvlu7rkuLTml7bpgq7nrrHlubbnvJPlrZjpgq7nrrHkv6Hmga9cbiAgICog5ZCO57ut6LCD55SoIGdldEVtYWlscygpIOaXtuiHquWKqOS9v+eUqOatpOmCrueuseeahOa4oOmBk+OAgeWcsOWdgOWSjOS7pOeJjFxuICAgKi9cbiAgYXN5bmMgZ2VuZXJhdGUob3B0aW9uczogR2VuZXJhdGVFbWFpbE9wdGlvbnMgPSB7fSk6IFByb21pc2U8RW1haWxJbmZvPiB7XG4gICAgdGhpcy5lbWFpbEluZm8gPSBhd2FpdCBnZW5lcmF0ZUVtYWlsKG9wdGlvbnMpO1xuICAgIHJldHVybiB0aGlzLmVtYWlsSW5mbztcbiAgfVxuXG4gIC8qKlxuICAgKiDojrflj5blvZPliY3pgq7nrrHnmoTpgq7ku7bliJfooahcbiAgICog5b+F6aG75YWI6LCD55SoIGdlbmVyYXRlKCkg5Yib5bu66YKu566xXG4gICAqXG4gICAqIEB0aHJvd3Mg5pyq6LCD55SoIGdlbmVyYXRlKCkg5pe25oqb5Ye65byC5bi4XG4gICAqL1xuICBhc3luYyBnZXRFbWFpbHMoKTogUHJvbWlzZTxHZXRFbWFpbHNSZXN1bHQ+IHtcbiAgICBpZiAoIXRoaXMuZW1haWxJbmZvKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGVtYWlsIGdlbmVyYXRlZC4gQ2FsbCBnZW5lcmF0ZSgpIGZpcnN0LicpO1xuICAgIH1cblxuICAgIHJldHVybiBnZXRFbWFpbHMoe1xuICAgICAgY2hhbm5lbDogdGhpcy5lbWFpbEluZm8uY2hhbm5lbCxcbiAgICAgIGVtYWlsOiB0aGlzLmVtYWlsSW5mby5lbWFpbCxcbiAgICAgIHRva2VuOiB0aGlzLmVtYWlsSW5mby50b2tlbixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiDojrflj5blvZPliY3nvJPlrZjnmoTpgq7nrrHkv6Hmga9cbiAgICog5pyq6LCD55SoIGdlbmVyYXRlKCkg5pe26L+U5ZueIG51bGxcbiAgICovXG4gIGdldEVtYWlsSW5mbygpOiBFbWFpbEluZm8gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5lbWFpbEluZm87XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBsaXN0Q2hhbm5lbHMsXG4gIGdldENoYW5uZWxJbmZvLFxuICBnZW5lcmF0ZUVtYWlsLFxuICBnZXRFbWFpbHMsXG4gIFRlbXBFbWFpbENsaWVudCxcbn07XG4iXX0=
|
|
379
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBc0ZBLG9DQUVDO0FBUUQsd0NBRUM7QUFtQkQsc0NBZ0NDO0FBcUVELDhCQWdDQztBQTFQRCwrREFBaUQ7QUFDakQsc0VBQXdEO0FBQ3hELHNFQUF3RDtBQUN4RCx5RUFBMkQ7QUFDM0Qsb0VBQXNEO0FBQ3RELHFFQUF1RDtBQUN2RCw2REFBK0M7QUFDL0MsNERBQThDO0FBQzlDLCtEQUFpRDtBQUNqRCx5RUFBMkQ7QUFDM0QsdUVBQXlEO0FBRXpELG1DQUFrRDtBQUNsRCxxQ0FBa0M7QUFDbEMscUNBQWdEO0FBSWhEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLEdBQUcsSUFBSSxPQUFPLEVBQXFCLENBQUM7QUFDcEQseUNBQTZDO0FBQXBDLDJHQUFBLGNBQWMsT0FBQTtBQUN2QixpQ0FBb0U7QUFBM0Qsa0dBQUEsU0FBUyxPQUFBO0FBQUUseUdBQUEsZ0JBQWdCLE9BQUE7QUFDcEMsbUNBQTZGO0FBQXBGLGtHQUFBLFFBQVEsT0FBQTtBQUFjLHFHQUFBLFdBQVcsT0FBQTtBQUFFLHFHQUFBLFdBQVcsT0FBQTtBQUFFLG1HQUFBLFNBQVMsT0FBQTtBQUFFLGdHQUFBLE1BQU0sT0FBQTtBQUMxRSxtQ0FBMkQ7QUFBdkMsbUdBQUEsU0FBUyxPQUFBO0FBQUUsbUdBQUEsU0FBUyxPQUFBO0FBRXhDLDRCQUE0QjtBQUM1QixNQUFNLFNBQVMsR0FBRztJQUNoQixVQUFVLEVBQUUsUUFBUTtJQUNwQixjQUFjLEVBQUUsV0FBVztJQUMzQixjQUFjLEVBQUUsV0FBVztJQUMzQixnQkFBZ0IsRUFBRSxZQUFZO0lBQzlCLGFBQWEsRUFBRSxVQUFVO0lBQ3pCLGNBQWMsRUFBRSxVQUFVO0lBQzFCLFNBQVMsRUFBRSxPQUFPO0lBQ2xCLFNBQVMsRUFBRSxNQUFNO0lBQ2pC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LENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7Q0FDRjtBQWxDRCwwQ0FrQ0M7QUFFRCxrQkFBZTtJQUNiLFlBQVk7SUFDWixjQUFjO0lBQ2QsYUFBYTtJQUNiLFNBQVM7SUFDVCxlQUFlO0lBQ2YsU0FBUyxFQUFULGtCQUFTO0lBQ1QsU0FBUyxFQUFULGtCQUFTO0NBQ1YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHRlbXBtYWlsIGZyb20gJy4vcHJvdmlkZXJzL3RlbXBtYWlsJztcbmltcG9ydCAqIGFzIGxpbnNoaUVtYWlsIGZyb20gJy4vcHJvdmlkZXJzL2xpbnNoaS1lbWFpbCc7XG5pbXBvcnQgKiBhcyB0ZW1wbWFpbExvbCBmcm9tICcuL3Byb3ZpZGVycy90ZW1wbWFpbC1sb2wnO1xuaW1wb3J0ICogYXMgY2hhdGdwdE9yZ1VrIGZyb20gJy4vcHJvdmlkZXJzL2NoYXRncHQtb3JnLXVrJztcbmltcG9ydCAqIGFzIHRlbXBtYWlsTGEgZnJvbSAnLi9wcm92aWRlcnMvdGVtcG1haWwtbGEnO1xuaW1wb3J0ICogYXMgdGVtcE1haWxJTyBmcm9tICcuL3Byb3ZpZGVycy90ZW1wLW1haWwtaW8nO1xuaW1wb3J0ICogYXMgYXdhbWFpbCBmcm9tICcuL3Byb3ZpZGVycy9hd2FtYWlsJztcbmltcG9ydCAqIGFzIG1haWxUbSBmcm9tICcuL3Byb3ZpZGVycy9tYWlsLXRtJztcbmltcG9ydCAqIGFzIGRyb3BtYWlsIGZyb20gJy4vcHJvdmlkZXJzL2Ryb3BtYWlsJztcbmltcG9ydCAqIGFzIGd1ZXJyaWxsYW1haWwgZnJvbSAnLi9wcm92aWRlcnMvZ3VlcnJpbGxhbWFpbCc7XG5pbXBvcnQgKiBhcyBtYWlsZHJvcFByb3ZpZGVyIGZyb20gJy4vcHJvdmlkZXJzL21haWxkcm9wJztcbmltcG9ydCB7IENoYW5uZWwsIEVtYWlsSW5mbywgSW50ZXJuYWxFbWFpbEluZm8sIEVtYWlsLCBFbWFpbEF0dGFjaG1lbnQsIEdldEVtYWlsc1Jlc3VsdCwgR2VuZXJhdGVFbWFpbE9wdGlvbnMsIEdldEVtYWlsc09wdGlvbnMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IHdpdGhSZXRyeSwgUmV0cnlPcHRpb25zIH0gZnJvbSAnLi9yZXRyeSc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgeyBzZXRDb25maWcsIGdldENvbmZpZyB9IGZyb20gJy4vY29uZmlnJztcblxuZXhwb3J0IHsgQ2hhbm5lbCwgRW1haWxJbmZvLCBFbWFpbCwgRW1haWxBdHRhY2htZW50LCBHZXRFbWFpbHNSZXN1bHQsIEdlbmVyYXRlRW1haWxPcHRpb25zLCBHZXRFbWFpbHNPcHRpb25zIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogU0RLIOWGhemDqCB0b2tlbiDlrZjlgqhcbiAqIOS9v+eUqCBXZWFrTWFwIOWwhiBFbWFpbEluZm8g5a+56LGh5pig5bCE5Yiw5a+55bqU55qEIHRva2VuXG4gKiDnlKjmiLfml6Dms5Xnm7TmjqXorr/pl64gdG9rZW7vvIznlLEgU0RLIOiHquWKqOeuoeeQhlxuICogQGludGVybmFsXG4gKi9cbmNvbnN0IHRva2VuU3RvcmUgPSBuZXcgV2Vha01hcDxFbWFpbEluZm8sIHN0cmluZz4oKTtcbmV4cG9ydCB7IG5vcm1hbGl6ZUVtYWlsIH0gZnJvbSAnLi9ub3JtYWxpemUnO1xuZXhwb3J0IHsgd2l0aFJldHJ5LCBmZXRjaFdpdGhUaW1lb3V0LCBSZXRyeU9wdGlvbnMgfSBmcm9tICcuL3JldHJ5JztcbmV4cG9ydCB7IExvZ0xldmVsLCBMb2dIYW5kbGVyLCBzZXRMb2dMZXZlbCwgZ2V0TG9nTGV2ZWwsIHNldExvZ2dlciwgbG9nZ2VyIH0gZnJvbSAnLi9sb2dnZXInO1xuZXhwb3J0IHsgU0RLQ29uZmlnLCBzZXRDb25maWcsIGdldENvbmZpZyB9IGZyb20gJy4vY29uZmlnJztcblxuLyoqIOa4oOmBk+WQjeensOWIsCBwcm92aWRlciDlrp7njrDnmoTmmKDlsITooaggKi9cbmNvbnN0IHByb3ZpZGVycyA9IHtcbiAgJ3RlbXBtYWlsJzogdGVtcG1haWwsXG4gICdsaW5zaGktZW1haWwnOiBsaW5zaGlFbWFpbCxcbiAgJ3RlbXBtYWlsLWxvbCc6IHRlbXBtYWlsTG9sLFxuICAnY2hhdGdwdC1vcmctdWsnOiBjaGF0Z3B0T3JnVWssXG4gICd0ZW1wbWFpbC1sYSc6IHRlbXBtYWlsTGEsXG4gICd0ZW1wLW1haWwtaW8nOiB0ZW1wTWFpbElPLFxuICAnYXdhbWFpbCc6IGF3YW1haWwsXG4gICdtYWlsLXRtJzogbWFpbFRtLFxuICAnZHJvcG1haWwnOiBkcm9wbWFpbCxcbiAgJ2d1ZXJyaWxsYW1haWwnOiBndWVycmlsbGFtYWlsLFxuICAnbWFpbGRyb3AnOiBtYWlsZHJvcFByb3ZpZGVyLFxufTtcblxuLyoqIOaJgOacieaUr+aMgeeahOa4oOmBk+WIl+ihqO+8jOeUqOS6jumaj+acuumAieaLqeWSjOmBjeWOhiAqL1xuY29uc3QgYWxsQ2hhbm5lbHM6IENoYW5uZWxbXSA9IFsndGVtcG1haWwnLCAnbGluc2hpLWVtYWlsJywgJ3RlbXBtYWlsLWxvbCcsICdjaGF0Z3B0LW9yZy11aycsICd0ZW1wbWFpbC1sYScsICd0ZW1wLW1haWwtaW8nLCAnYXdhbWFpbCcsICdtYWlsLXRtJywgJ2Ryb3BtYWlsJywgJ2d1ZXJyaWxsYW1haWwnLCAnbWFpbGRyb3AnXTtcblxuLyoqXG4gKiDmuKDpgZPkv6Hmga/vvIzljIXlkKvmuKDpgZPmoIfor4bjgIHmmL7npLrlkI3np7Dlkozlr7nlupTnvZHnq5lcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGFubmVsSW5mbyB7XG4gIC8qKiDmuKDpgZPmoIfor4YgKi9cbiAgY2hhbm5lbDogQ2hhbm5lbDtcbiAgLyoqIOa4oOmBk+aYvuekuuWQjeensCAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiDlr7nlupTnmoTkuLTml7bpgq7nrrHmnI3liqHnvZHnq5kgKi9cbiAgd2Vic2l0ZTogc3RyaW5nO1xufVxuXG4vKiog5rig6YGT5L+h5oGv5pig5bCE6KGoICovXG5jb25zdCBjaGFubmVsSW5mb01hcDogUmVjb3JkPENoYW5uZWwsIENoYW5uZWxJbmZvPiA9IHtcbiAgJ3RlbXBtYWlsJzogeyBjaGFubmVsOiAndGVtcG1haWwnLCBuYW1lOiAnVGVtcE1haWwnLCB3ZWJzaXRlOiAndGVtcG1haWwuaW5nJyB9LFxuICAnbGluc2hpLWVtYWlsJzogeyBjaGFubmVsOiAnbGluc2hpLWVtYWlsJywgbmFtZTogJ+S4tOaXtumCrueusScsIHdlYnNpdGU6ICdsaW5zaGktZW1haWwuY29tJyB9LFxuICAndGVtcG1haWwtbG9sJzogeyBjaGFubmVsOiAndGVtcG1haWwtbG9sJywgbmFtZTogJ1RlbXBNYWlsIExPTCcsIHdlYnNpdGU6ICd0ZW1wbWFpbC5sb2wnIH0sXG4gICdjaGF0Z3B0LW9yZy11ayc6IHsgY2hhbm5lbDogJ2NoYXRncHQtb3JnLXVrJywgbmFtZTogJ0NoYXRHUFQgTWFpbCcsIHdlYnNpdGU6ICdtYWlsLmNoYXRncHQub3JnLnVrJyB9LFxuICAndGVtcG1haWwtbGEnOiB7IGNoYW5uZWw6ICd0ZW1wbWFpbC1sYScsIG5hbWU6ICdUZW1wTWFpbCBMQScsIHdlYnNpdGU6ICd0ZW1wbWFpbC5sYScgfSxcbiAgJ3RlbXAtbWFpbC1pbyc6IHsgY2hhbm5lbDogJ3RlbXAtbWFpbC1pbycsIG5hbWU6ICdUZW1wIE1haWwgSU8nLCB3ZWJzaXRlOiAndGVtcC1tYWlsLmlvJyB9LFxuICAnYXdhbWFpbCc6IHsgY2hhbm5lbDogJ2F3YW1haWwnLCBuYW1lOiAnQXdhTWFpbCcsIHdlYnNpdGU6ICdhd2FtYWlsLmNvbScgfSxcbiAgJ21haWwtdG0nOiB7IGNoYW5uZWw6ICdtYWlsLXRtJywgbmFtZTogJ01haWwudG0nLCB3ZWJzaXRlOiAnbWFpbC50bScgfSxcbiAgJ2Ryb3BtYWlsJzogeyBjaGFubmVsOiAnZHJvcG1haWwnLCBuYW1lOiAnRHJvcE1haWwnLCB3ZWJzaXRlOiAnZHJvcG1haWwubWUnIH0sXG4gICdndWVycmlsbGFtYWlsJzogeyBjaGFubmVsOiAnZ3VlcnJpbGxhbWFpbCcsIG5hbWU6ICdHdWVycmlsbGEgTWFpbCcsIHdlYnNpdGU6ICdndWVycmlsbGFtYWlsLmNvbScgfSxcbiAgJ21haWxkcm9wJzogeyBjaGFubmVsOiAnbWFpbGRyb3AnLCBuYW1lOiAnTWFpbGRyb3AnLCB3ZWJzaXRlOiAnbWFpbGRyb3AuY2MnIH0sXG59O1xuXG4vKipcbiAqIOiOt+WPluaJgOacieaUr+aMgeeahOa4oOmBk+WIl+ihqFxuICpcbiAqIEByZXR1cm5zIOaJgOaciea4oOmBk+eahOS/oeaBr+aVsOe7hFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogY29uc3QgY2hhbm5lbHMgPSBsaXN0Q2hhbm5lbHMoKTtcbiAqIGNoYW5uZWxzLmZvckVhY2goY2ggPT4gY29uc29sZS5sb2coYCR7Y2gubmFtZX0gKCR7Y2gud2Vic2l0ZX0pYCkpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsaXN0Q2hhbm5lbHMoKTogQ2hhbm5lbEluZm9bXSB7XG4gIHJldHVybiBhbGxDaGFubmVscy5tYXAoY2ggPT4gY2hhbm5lbEluZm9NYXBbY2hdKTtcbn1cblxuLyoqXG4gKiDojrflj5bmjIflrprmuKDpgZPnmoTor6bnu4bkv6Hmga9cbiAqXG4gKiBAcGFyYW0gY2hhbm5lbCAtIOa4oOmBk+agh+ivhlxuICogQHJldHVybnMg5rig6YGT5L+h5oGv77yM5LiN5a2Y5Zyo5pe26L+U5ZueIHVuZGVmaW5lZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2hhbm5lbEluZm8oY2hhbm5lbDogQ2hhbm5lbCk6IENoYW5uZWxJbmZvIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGNoYW5uZWxJbmZvTWFwW2NoYW5uZWxdO1xufVxuXG4vKipcbiAqIOWIm+W7uuS4tOaXtumCrueusVxuICpcbiAqIOmUmeivr+WkhOeQhuetlueVpe+8mlxuICogLSDmjIflrprmuKDpgZPlpLHotKXml7bvvIzoh6rliqjlsJ3or5Xlhbbku5blj6/nlKjmuKDpgZPvvIjmiZPkubHpobrluo/pgJDkuKrlsJ3or5XvvIlcbiAqIC0g5pyq5oyH5a6a5rig6YGT5pe277yM5omT5Lmx5YWo6YOo5rig6YGT6YCQ5Liq5bCd6K+V77yM55u05Yiw5oiQ5YqfXG4gKiAtIOaJgOaciea4oOmBk+Wdh+S4jeWPr+eUqOaXtui/lOWbniBudWxs77yI5LiN5oqb5Ye65byC5bi477yJXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSDliJvlu7rpgInpobnvvIzlj6/mjIflrprmuKDpgZPjgIHmnInmlYjml7bplb/jgIHln5/lkI3nrYlcbiAqIEByZXR1cm5zIOmCrueuseS/oeaBr++8jOaJgOaciea4oOmBk+Wdh+S4jeWPr+eUqOaXtui/lOWbniBudWxsXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBjb25zdCBlbWFpbEluZm8gPSBhd2FpdCBnZW5lcmF0ZUVtYWlsKHsgY2hhbm5lbDogJ3RlbXAtbWFpbC1pbycgfSk7XG4gKiBpZiAoZW1haWxJbmZvKSBjb25zb2xlLmxvZyhlbWFpbEluZm8uZW1haWwpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZUVtYWlsKG9wdGlvbnM6IEdlbmVyYXRlRW1haWxPcHRpb25zID0ge30pOiBQcm9taXNlPEVtYWlsSW5mbyB8IG51bGw+IHtcbiAgLypcbiAgICog5p6E5bu65bCd6K+V6aG65bqP77yaXG4gICAqIC0g5oyH5a6a5rig6YGTIOKGkiDkvJjlhYjlsJ3or5Xor6XmuKDpgZPvvIzlpLHotKXlkI7pmo/mnLrlsJ3or5Xlhbbku5bmuKDpgZNcbiAgICogLSDmnKrmjIflrpog4oaSIOaJk+S5seWFqOmDqOa4oOmBk+mAkOS4quWwneivlVxuICAgKi9cbiAgY29uc3QgdHJ5T3JkZXIgPSBidWlsZENoYW5uZWxPcmRlcihvcHRpb25zLmNoYW5uZWwpO1xuXG4gIGZvciAoY29uc3QgY2ggb2YgdHJ5T3JkZXIpIHtcbiAgICBsb2dnZXIuaW5mbyhg5Yib5bu65Li05pe26YKu566xLCDmuKDpgZM6ICR7Y2h9YCk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGludGVybmFsOiBJbnRlcm5hbEVtYWlsSW5mbyA9IGF3YWl0IHdpdGhSZXRyeSgoKSA9PiBnZW5lcmF0ZUVtYWlsT25jZShjaCwgb3B0aW9ucyksIG9wdGlvbnMucmV0cnkpO1xuICAgICAgbG9nZ2VyLmluZm8oYOmCrueuseWIm+W7uuaIkOWKnzogJHtpbnRlcm5hbC5lbWFpbH0gKOa4oOmBkzogJHtjaH0pYCk7XG5cbiAgICAgIC8qIOWwhiB0b2tlbiDlrZjlhaXlhoXpg6jlrZjlgqjvvIzkuI3mmrTpnLLnu5nnlKjmiLcgKi9cbiAgICAgIGNvbnN0IHB1YmxpY0luZm86IEVtYWlsSW5mbyA9IHtcbiAgICAgICAgY2hhbm5lbDogaW50ZXJuYWwuY2hhbm5lbCxcbiAgICAgICAgZW1haWw6IGludGVybmFsLmVtYWlsLFxuICAgICAgICBleHBpcmVzQXQ6IGludGVybmFsLmV4cGlyZXNBdCxcbiAgICAgICAgY3JlYXRlZEF0OiBpbnRlcm5hbC5jcmVhdGVkQXQsXG4gICAgICB9O1xuICAgICAgaWYgKGludGVybmFsLnRva2VuKSB7XG4gICAgICAgIHRva2VuU3RvcmUuc2V0KHB1YmxpY0luZm8sIGludGVybmFsLnRva2VuKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwdWJsaWNJbmZvO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBsb2dnZXIud2Fybihg5rig6YGTICR7Y2h9IOS4jeWPr+eUqDogJHtlcnIubWVzc2FnZSB8fCBlcnJ977yM5bCd6K+V5LiL5LiA5Liq5rig6YGTYCk7XG4gICAgfVxuICB9XG5cbiAgbG9nZ2VyLmVycm9yKCfmiYDmnInmuKDpgZPlnYfkuI3lj6/nlKjvvIzliJvlu7rpgq7nrrHlpLHotKUnKTtcbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICog5p6E5bu65rig6YGT5bCd6K+V6aG65bqPXG4gKiDmjIflrprmuKDpgZPml7bkvJjlhYjlsJ3or5Xor6XmuKDpgZPvvIzlhbbkvZnmuKDpgZPmiZPkubHov73liqBcbiAqIOacquaMh+WumuaXtuaJk+S5seWFqOmDqOa4oOmBk1xuICovXG5mdW5jdGlvbiBidWlsZENoYW5uZWxPcmRlcihwcmVmZXJyZWQ/OiBDaGFubmVsKTogQ2hhbm5lbFtdIHtcbiAgY29uc3Qgc2h1ZmZsZWQgPSBbLi4uYWxsQ2hhbm5lbHNdLnNvcnQoKCkgPT4gTWF0aC5yYW5kb20oKSAtIDAuNSk7XG4gIGlmICghcHJlZmVycmVkKSByZXR1cm4gc2h1ZmZsZWQ7XG4gIGNvbnN0IHJlc3QgPSBzaHVmZmxlZC5maWx0ZXIoY2ggPT4gY2ggIT09IHByZWZlcnJlZCk7XG4gIHJldHVybiBbcHJlZmVycmVkLCAuLi5yZXN0XTtcbn1cblxuLyoqXG4gKiDljZXmrKHliJvlu7rpgq7nrrHvvIjkuI3lkKvph43or5XpgLvovpHvvIlcbiAqIOagueaNrua4oOmBk+exu+Wei+WIhuWPkeWIsOWvueW6lOeahCBwcm92aWRlciDlrp7njrBcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVFbWFpbE9uY2UoY2hhbm5lbDogQ2hhbm5lbCwgb3B0aW9uczogR2VuZXJhdGVFbWFpbE9wdGlvbnMpOiBQcm9taXNlPEludGVybmFsRW1haWxJbmZvPiB7XG4gIHN3aXRjaCAoY2hhbm5lbCkge1xuICAgIGNhc2UgJ3RlbXBtYWlsJzpcbiAgICAgIHJldHVybiB0ZW1wbWFpbC5nZW5lcmF0ZUVtYWlsKG9wdGlvbnMuZHVyYXRpb24gfHwgMzApO1xuICAgIGNhc2UgJ2xpbnNoaS1lbWFpbCc6XG4gICAgICByZXR1cm4gbGluc2hpRW1haWwuZ2VuZXJhdGVFbWFpbCgpO1xuICAgIGNhc2UgJ3RlbXBtYWlsLWxvbCc6XG4gICAgICByZXR1cm4gdGVtcG1haWxMb2wuZ2VuZXJhdGVFbWFpbChvcHRpb25zLmRvbWFpbiB8fCBudWxsKTtcbiAgICBjYXNlICdjaGF0Z3B0LW9yZy11ayc6XG4gICAgICByZXR1cm4gY2hhdGdwdE9yZ1VrLmdlbmVyYXRlRW1haWwoKTtcbiAgICBjYXNlICd0ZW1wbWFpbC1sYSc6XG4gICAgICByZXR1cm4gdGVtcG1haWxMYS5nZW5lcmF0ZUVtYWlsKCk7XG4gICAgY2FzZSAndGVtcC1tYWlsLWlvJzpcbiAgICAgIHJldHVybiB0ZW1wTWFpbElPLmdlbmVyYXRlRW1haWwoKTtcbiAgICBjYXNlICdhd2FtYWlsJzpcbiAgICAgIHJldHVybiBhd2FtYWlsLmdlbmVyYXRlRW1haWwoKTtcbiAgICBjYXNlICdtYWlsLXRtJzpcbiAgICAgIHJldHVybiBtYWlsVG0uZ2VuZXJhdGVFbWFpbCgpO1xuICAgIGNhc2UgJ2Ryb3BtYWlsJzpcbiAgICAgIHJldHVybiBkcm9wbWFpbC5nZW5lcmF0ZUVtYWlsKCk7XG4gICAgY2FzZSAnZ3VlcnJpbGxhbWFpbCc6XG4gICAgICByZXR1cm4gZ3VlcnJpbGxhbWFpbC5nZW5lcmF0ZUVtYWlsKCk7XG4gICAgY2FzZSAnbWFpbGRyb3AnOlxuICAgICAgcmV0dXJuIG1haWxkcm9wUHJvdmlkZXIuZ2VuZXJhdGVFbWFpbCgpO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gY2hhbm5lbDogJHtjaGFubmVsfWApO1xuICB9XG59XG5cbi8qKlxuICog6I635Y+W6YKu5Lu25YiX6KGoXG4gKiBDaGFubmVsL0VtYWlsL1Rva2VuIOetieeUsSBTREsg5LuOIEVtYWlsSW5mbyDkuK3oh6rliqjojrflj5bvvIznlKjmiLfml6DpnIDmiYvliqjkvKDpgJJcbiAqXG4gKiDplJnor6/lpITnkIbnrZbnlaXvvJpcbiAqIC0g572R57uc6ZSZ6K+v44CB6LaF5pe244CBNDI544CB5pyN5Yqh56uvIDV4eCDplJnor68g4oaSIOiHquWKqOmHjeivle+8iOm7mOiupCAyIOasoe+8iVxuICogLSDph43or5XogJflsL3lkI7ov5Tlm54geyBzdWNjZXNzOiBmYWxzZSwgZW1haWxzOiBbXSB977yM5LiN5oqb5byC5bi4XG4gKiAtIOWPguaVsOagoemqjOmUmeivr++8iOe8uuWwkSBFbWFpbEluZm/vvInnm7TmjqXmipvlh7pcbiAqXG4gKiBAcGFyYW0gaW5mbyAtIEdlbmVyYXRlRW1haWwoKSDov5Tlm57nmoTpgq7nrrHkv6Hmga9cbiAqIEBwYXJhbSBvcHRpb25zIC0g5Y+v6YCJ6YWN572u77yI6YeN6K+V562J77yJXG4gKiBAcmV0dXJucyDpgq7ku7bnu5PmnpzvvIzljIXlkKsgc3VjY2VzcyDmoIforrDlkozpgq7ku7bliJfooahcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGNvbnN0IGluZm8gPSBhd2FpdCBnZW5lcmF0ZUVtYWlsKHsgY2hhbm5lbDogJ21haWwtdG0nIH0pO1xuICogY29uc3QgcmVzdWx0ID0gYXdhaXQgZ2V0RW1haWxzKGluZm8pO1xuICogaWYgKHJlc3VsdC5zdWNjZXNzICYmIHJlc3VsdC5lbWFpbHMubGVuZ3RoID4gMCkge1xuICogICBjb25zb2xlLmxvZygn5pS25Yiw6YKu5Lu2OicsIHJlc3VsdC5lbWFpbHNbMF0uc3ViamVjdCk7XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEVtYWlscyhpbmZvOiBFbWFpbEluZm8sIG9wdGlvbnM/OiBHZXRFbWFpbHNPcHRpb25zKTogUHJvbWlzZTxHZXRFbWFpbHNSZXN1bHQ+IHtcbiAgaWYgKCFpbmZvKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFbWFpbEluZm8gaXMgcmVxdWlyZWQsIGNhbGwgZ2VuZXJhdGVFbWFpbCgpIGZpcnN0Jyk7XG4gIH1cblxuICBjb25zdCB7IGNoYW5uZWwsIGVtYWlsIH0gPSBpbmZvO1xuICBjb25zdCB0b2tlbiA9IHRva2VuU3RvcmUuZ2V0KGluZm8pO1xuXG4gIGlmICghY2hhbm5lbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ2hhbm5lbCBpcyByZXF1aXJlZCcpO1xuICB9XG4gIGlmICghZW1haWwgJiYgY2hhbm5lbCAhPT0gJ3RlbXBtYWlsLWxvbCcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0VtYWlsIGlzIHJlcXVpcmVkJyk7XG4gIH1cblxuICBsb2dnZXIuZGVidWcoYOiOt+WPlumCruS7tiwg5rig6YGTOiAke2NoYW5uZWx9LCDpgq7nrrE6ICR7ZW1haWx9YCk7XG4gIHRyeSB7XG4gICAgY29uc3QgZW1haWxzID0gYXdhaXQgd2l0aFJldHJ5KCgpID0+IGdldEVtYWlsc09uY2UoY2hhbm5lbCwgZW1haWwsIHRva2VuKSwgb3B0aW9ucz8ucmV0cnkpO1xuICAgIGlmIChlbWFpbHMubGVuZ3RoID4gMCkge1xuICAgICAgbG9nZ2VyLmluZm8oYOiOt+WPluWIsCAke2VtYWlscy5sZW5ndGh9IOWwgemCruS7tiwg5rig6YGTOiAke2NoYW5uZWx9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvZ2dlci5kZWJ1Zyhg5pqC5peg6YKu5Lu2LCDmuKDpgZM6ICR7Y2hhbm5lbH1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgY2hhbm5lbCwgZW1haWwsIGVtYWlscywgc3VjY2VzczogdHJ1ZSB9O1xuICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgIC8qXG4gICAgICog6YeN6K+V6ICX5bC95ZCO5LuN54S25aSx6LSlIOKGkiDov5Tlm57nqbrnu5PmnpzogIzpnZ7mipvlvILluLhcbiAgICAgKiDov5nmoLfosIPnlKjmlrnlnKjova7or6LlnLrmma/kuIvkuI3kvJrlm6DkuLrkuIDmrKHnvZHnu5zms6LliqjogIzkuK3mlq3mlbTkuKrmtYHnqItcbiAgICAgKi9cbiAgICBsb2dnZXIuZXJyb3IoYOiOt+WPlumCruS7tuWksei0pSwg5rig6YGTOiAke2NoYW5uZWx9LCDplJnor686ICR7ZXJyLm1lc3NhZ2UgfHwgZXJyfWApO1xuICAgIHJldHVybiB7IGNoYW5uZWwsIGVtYWlsLCBlbWFpbHM6IFtdLCBzdWNjZXNzOiBmYWxzZSB9O1xuICB9XG59XG5cbi8qKlxuICog5Y2V5qyh6I635Y+W6YKu5Lu277yI5LiN5ZCr6YeN6K+V6YC76L6R77yJXG4gKiDmoLnmja7muKDpgZPnsbvlnovliIblj5HliLDlr7nlupTnmoQgcHJvdmlkZXIg5a6e546w77yM5bm25qCh6aqM5b+F6ZyA55qEIHRva2VuIOWPguaVsFxuICovXG5hc3luYyBmdW5jdGlvbiBnZXRFbWFpbHNPbmNlKGNoYW5uZWw6IENoYW5uZWwsIGVtYWlsOiBzdHJpbmcsIHRva2VuPzogc3RyaW5nKTogUHJvbWlzZTxFbWFpbFtdPiB7XG4gIHN3aXRjaCAoY2hhbm5lbCkge1xuICAgIGNhc2UgJ3RlbXBtYWlsJzpcbiAgICAgIHJldHVybiB0ZW1wbWFpbC5nZXRFbWFpbHMoZW1haWwpO1xuICAgIGNhc2UgJ2xpbnNoaS1lbWFpbCc6XG4gICAgICByZXR1cm4gbGluc2hpRW1haWwuZ2V0RW1haWxzKGVtYWlsKTtcbiAgICBjYXNlICd0ZW1wbWFpbC1sb2wnOlxuICAgICAgaWYgKCF0b2tlbikgdGhyb3cgbmV3IEVycm9yKCdpbnRlcm5hbCBlcnJvcjogdG9rZW4gbWlzc2luZyBmb3IgdGVtcG1haWwtbG9sJyk7XG4gICAgICByZXR1cm4gdGVtcG1haWxMb2wuZ2V0RW1haWxzKHRva2VuLCBlbWFpbCk7XG4gICAgY2FzZSAnY2hhdGdwdC1vcmctdWsnOlxuICAgICAgcmV0dXJuIGNoYXRncHRPcmdVay5nZXRFbWFpbHMoZW1haWwpO1xuICAgIGNhc2UgJ3RlbXBtYWlsLWxhJzpcbiAgICAgIHJldHVybiB0ZW1wbWFpbExhLmdldEVtYWlscyhlbWFpbCk7XG4gICAgY2FzZSAndGVtcC1tYWlsLWlvJzpcbiAgICAgIHJldHVybiB0ZW1wTWFpbElPLmdldEVtYWlscyhlbWFpbCk7XG4gICAgY2FzZSAnYXdhbWFpbCc6XG4gICAgICBpZiAoIXRva2VuKSB0aHJvdyBuZXcgRXJyb3IoJ2ludGVybmFsIGVycm9yOiB0b2tlbiBtaXNzaW5nIGZvciBhd2FtYWlsJyk7XG4gICAgICByZXR1cm4gYXdhbWFpbC5nZXRFbWFpbHModG9rZW4sIGVtYWlsKTtcbiAgICBjYXNlICdtYWlsLXRtJzpcbiAgICAgIGlmICghdG9rZW4pIHRocm93IG5ldyBFcnJvcignaW50ZXJuYWwgZXJyb3I6IHRva2VuIG1pc3NpbmcgZm9yIG1haWwtdG0nKTtcbiAgICAgIHJldHVybiBtYWlsVG0uZ2V0RW1haWxzKHRva2VuLCBlbWFpbCk7XG4gICAgY2FzZSAnZHJvcG1haWwnOlxuICAgICAgaWYgKCF0b2tlbikgdGhyb3cgbmV3IEVycm9yKCdpbnRlcm5hbCBlcnJvcjogdG9rZW4gbWlzc2luZyBmb3IgZHJvcG1haWwnKTtcbiAgICAgIHJldHVybiBkcm9wbWFpbC5nZXRFbWFpbHModG9rZW4sIGVtYWlsKTtcbiAgICBjYXNlICdndWVycmlsbGFtYWlsJzpcbiAgICAgIGlmICghdG9rZW4pIHRocm93IG5ldyBFcnJvcignaW50ZXJuYWwgZXJyb3I6IHRva2VuIG1pc3NpbmcgZm9yIGd1ZXJyaWxsYW1haWwnKTtcbiAgICAgIHJldHVybiBndWVycmlsbGFtYWlsLmdldEVtYWlscyh0b2tlbiwgZW1haWwpO1xuICAgIGNhc2UgJ21haWxkcm9wJzpcbiAgICAgIGlmICghdG9rZW4pIHRocm93IG5ldyBFcnJvcignaW50ZXJuYWwgZXJyb3I6IHRva2VuIG1pc3NpbmcgZm9yIG1haWxkcm9wJyk7XG4gICAgICByZXR1cm4gbWFpbGRyb3BQcm92aWRlci5nZXRFbWFpbHModG9rZW4sIGVtYWlsKTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGNoYW5uZWw6ICR7Y2hhbm5lbH1gKTtcbiAgfVxufVxuXG4vKipcbiAqIOS4tOaXtumCrueuseWuouaIt+err1xuICog5bCB6KOF5LqG6YKu566x5Yib5bu65ZKM6YKu5Lu26I635Y+W55qE5a6M5pW05rWB56iL77yM6Ieq5Yqo566h55CG6YKu566x5L+h5oGv5ZKM6K6k6K+B5Luk54mMXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBjb25zdCBjbGllbnQgPSBuZXcgVGVtcEVtYWlsQ2xpZW50KCk7XG4gKiBjb25zdCBlbWFpbEluZm8gPSBhd2FpdCBjbGllbnQuZ2VuZXJhdGUoeyBjaGFubmVsOiAnbWFpbC10bScgfSk7XG4gKiBjb25zb2xlLmxvZygn6YKu566xOicsIGVtYWlsSW5mby5lbWFpbCk7XG4gKlxuICogLy8g6L2u6K+i6I635Y+W6YKu5Lu2XG4gKiBjb25zdCByZXN1bHQgPSBhd2FpdCBjbGllbnQuZ2V0RW1haWxzKCk7XG4gKiBpZiAocmVzdWx0LnN1Y2Nlc3MpIHtcbiAqICAgY29uc29sZS5sb2coJ+mCruS7tuaVsDonLCByZXN1bHQuZW1haWxzLmxlbmd0aCk7XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFRlbXBFbWFpbENsaWVudCB7XG4gIHByaXZhdGUgZW1haWxJbmZvOiBFbWFpbEluZm8gfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICog5Yib5bu65Li05pe26YKu566x5bm257yT5a2Y6YKu566x5L+h5oGvXG4gICAqIOWQjue7reiwg+eUqCBnZXRFbWFpbHMoKSDml7boh6rliqjkvb/nlKjmraTpgq7nrrHnmoTmuKDpgZPjgIHlnLDlnYDlkozku6TniYxcbiAgICog5omA5pyJ5rig6YGT5Z2H5LiN5Y+v55So5pe26L+U5ZueIG51bGxcbiAgICovXG4gIGFzeW5jIGdlbmVyYXRlKG9wdGlvbnM6IEdlbmVyYXRlRW1haWxPcHRpb25zID0ge30pOiBQcm9taXNlPEVtYWlsSW5mbyB8IG51bGw+IHtcbiAgICB0aGlzLmVtYWlsSW5mbyA9IGF3YWl0IGdlbmVyYXRlRW1haWwob3B0aW9ucyk7XG4gICAgcmV0dXJuIHRoaXMuZW1haWxJbmZvO1xuICB9XG5cbiAgLyoqXG4gICAqIOiOt+WPluW9k+WJjemCrueuseeahOmCruS7tuWIl+ihqFxuICAgKiDlv4XpobvlhYjosIPnlKggZ2VuZXJhdGUoKSDliJvlu7rpgq7nrrFcbiAgICpcbiAgICogQHRocm93cyDmnKrosIPnlKggZ2VuZXJhdGUoKSDml7bmipvlh7rlvILluLhcbiAgICovXG4gIGFzeW5jIGdldEVtYWlscyhvcHRpb25zPzogR2V0RW1haWxzT3B0aW9ucyk6IFByb21pc2U8R2V0RW1haWxzUmVzdWx0PiB7XG4gICAgaWYgKCF0aGlzLmVtYWlsSW5mbykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBlbWFpbCBnZW5lcmF0ZWQuIENhbGwgZ2VuZXJhdGUoKSBmaXJzdC4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZ2V0RW1haWxzKHRoaXMuZW1haWxJbmZvLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDojrflj5blvZPliY3nvJPlrZjnmoTpgq7nrrHkv6Hmga9cbiAgICog5pyq6LCD55SoIGdlbmVyYXRlKCkg5pe26L+U5ZueIG51bGxcbiAgICovXG4gIGdldEVtYWlsSW5mbygpOiBFbWFpbEluZm8gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5lbWFpbEluZm87XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBsaXN0Q2hhbm5lbHMsXG4gIGdldENoYW5uZWxJbmZvLFxuICBnZW5lcmF0ZUVtYWlsLFxuICBnZXRFbWFpbHMsXG4gIFRlbXBFbWFpbENsaWVudCxcbiAgc2V0Q29uZmlnLFxuICBnZXRDb25maWcsXG59O1xuIl19
|
package/dist/normalize.js
CHANGED
|
@@ -12,18 +12,43 @@ exports.normalizeEmail = normalizeEmail;
|
|
|
12
12
|
* @returns 标准化的 Email 对象
|
|
13
13
|
*/
|
|
14
14
|
function normalizeEmail(raw, recipientEmail = '') {
|
|
15
|
+
let text = normalizeText(raw);
|
|
16
|
+
let html = normalizeHtml(raw);
|
|
17
|
+
/*
|
|
18
|
+
* 修正 text/html 错配:
|
|
19
|
+
* 部分渠道将 HTML 内容放在 body/text 等字段中,
|
|
20
|
+
* 导致 normalizeText 提取到 HTML 内容而 normalizeHtml 为空。
|
|
21
|
+
* 检测 text 中是否包含 HTML 标签,如果是则移动到 html 字段。
|
|
22
|
+
*/
|
|
23
|
+
if (text && !html && isHtmlContent(text)) {
|
|
24
|
+
html = text;
|
|
25
|
+
text = '';
|
|
26
|
+
}
|
|
15
27
|
return {
|
|
16
28
|
id: normalizeId(raw),
|
|
17
29
|
from: normalizeFrom(raw),
|
|
18
30
|
to: normalizeTo(raw, recipientEmail),
|
|
19
31
|
subject: normalizeSubject(raw),
|
|
20
|
-
text
|
|
21
|
-
html
|
|
32
|
+
text,
|
|
33
|
+
html,
|
|
22
34
|
date: normalizeDate(raw),
|
|
23
35
|
isRead: normalizeIsRead(raw),
|
|
24
36
|
attachments: normalizeAttachments(raw.attachments),
|
|
25
37
|
};
|
|
26
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* 检测内容是否为 HTML
|
|
41
|
+
* 通过检查是否包含常见的 HTML 标签来判断
|
|
42
|
+
*/
|
|
43
|
+
function isHtmlContent(content) {
|
|
44
|
+
const trimmed = content.trim().toLowerCase();
|
|
45
|
+
return trimmed.startsWith('<!doctype html') ||
|
|
46
|
+
trimmed.startsWith('<html') ||
|
|
47
|
+
trimmed.startsWith('<body') ||
|
|
48
|
+
(trimmed.includes('<div') && trimmed.includes('</div>')) ||
|
|
49
|
+
(trimmed.includes('<table') && trimmed.includes('</table>')) ||
|
|
50
|
+
(trimmed.includes('<p') && trimmed.includes('</p>') && trimmed.includes('<'));
|
|
51
|
+
}
|
|
27
52
|
/**
|
|
28
53
|
* 提取邮件 ID
|
|
29
54
|
* 候选字段: id, eid, _id, mailboxId, messageId, mail_id
|
|
@@ -129,4 +154,4 @@ function normalizeAttachments(attachments) {
|
|
|
129
154
|
url: a.url || a.download_url || a.downloadUrl || undefined,
|
|
130
155
|
}));
|
|
131
156
|
}
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25vcm1hbGl6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVlBLHdDQVlDO0FBdEJEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxHQUFRLEVBQUUsaUJBQXlCLEVBQUU7SUFDbEUsT0FBTztRQUNMLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDO1FBQ3BCLElBQUksRUFBRSxhQUFhLENBQUMsR0FBRyxDQUFDO1FBQ3hCLEVBQUUsRUFBRSxXQUFXLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQztRQUNwQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDO1FBQzlCLElBQUksRUFBRSxhQUFhLENBQUMsR0FBRyxDQUFDO1FBQ3hCLElBQUksRUFBRSxhQUFhLENBQUMsR0FBRyxDQUFDO1FBQ3hCLElBQUksRUFBRSxhQUFhLENBQUMsR0FBRyxDQUFDO1FBQ3hCLE1BQU0sRUFBRSxlQUFlLENBQUMsR0FBRyxDQUFDO1FBQzVCLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO0tBQ25ELENBQUM7QUFDSixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxXQUFXLENBQUMsR0FBUTtJQUMzQixNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsU0FBUyxJQUFJLEdBQUcsQ0FBQyxTQUFTLElBQUksR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7SUFDL0YsT0FBTyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDcEIsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQVMsYUFBYSxDQUFDLEdBQVE7SUFDN0IsT0FBTyxHQUFHLENBQUMsWUFBWSxJQUFJLEdBQUcsQ0FBQyxZQUFZLElBQUksR0FBRyxDQUFDLElBQUks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SyxDQUFDLENBQUM7SUFDOUQsSUFBSSxPQUFPLEdBQUcsQ0FBQyxPQUFPLEtBQUssUUFBUTtRQUFFLE9BQU8sR0FBRyxDQUFDLE9BQU8sS0FBSyxHQUFHLENBQUM7SUFDaEUsSUFBSSxPQUFPLEdBQUcsQ0FBQyxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQztJQUN6RCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLG9CQUFvQixDQUFDLFdBQWdCO0lBQzVDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzNELE9BQU8sV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNsQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUU7UUFDcEMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLFFBQVEsSUFBSSxTQUFTO1FBQ3ZDLFdBQVcsRUFBRSxDQUFDLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsU0FBUyxJQUFJLFNBQVM7UUFDdEYsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUMsV0FBVyxJQUFJLFNBQVM7S0FDM0QsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW1haWwsIEVtYWlsQXR0YWNobWVudCB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIOWwhuWQhOaPkOS+m+WVhui/lOWbnueahOWOn+Wni+mCruS7tuaVsOaNruagh+WHhuWMluS4uue7n+S4gOeahCBFbWFpbCDmoLzlvI9cbiAqXG4gKiDkuI3lkIzmuKDpgZPnmoQgQVBJIOi/lOWbnuWtl+auteWQjeWQhOS4jeebuOWQjO+8jOatpOWHveaVsOmAmui/h+WkmuWtl+auteWAmemAieetlueVpVxuICog5bCG5a6D5Lus57uf5LiA5pig5bCE5Li65qCH5YeG55qEIEVtYWlsIOe7k+aehO+8jOS/neivgSBTREsg6L6T5Ye65LiA6Ie05oCn44CCXG4gKlxuICogQHBhcmFtIHJhdyAtIOWOn+Wni+mCruS7tuaVsOaNru+8iOadpeiHquS4jeWQjOaPkOS+m+WVhueahCBBUEkg5ZON5bqU77yJXG4gKiBAcGFyYW0gcmVjaXBpZW50RW1haWwgLSDmlLbku7bkurrpgq7nrrHlnLDlnYDvvIzlvZPljp/lp4vmlbDmja7kuK3ml6DmlLbku7bkurrlrZfmrrXml7bnlKjkvZzlm57pgIDlgLxcbiAqIEByZXR1cm5zIOagh+WHhuWMlueahCBFbWFpbCDlr7nosaFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUVtYWlsKHJhdzogYW55LCByZWNpcGllbnRFbWFpbDogc3RyaW5nID0gJycpOiBFbWFpbCB7XG4gIHJldHVybiB7XG4gICAgaWQ6IG5vcm1hbGl6ZUlkKHJhdyksXG4gICAgZnJvbTogbm9ybWFsaXplRnJvbShyYXcpLFxuICAgIHRvOiBub3JtYWxpemVUbyhyYXcsIHJlY2lwaWVudEVtYWlsKSxcbiAgICBzdWJqZWN0OiBub3JtYWxpemVTdWJqZWN0KHJhdyksXG4gICAgdGV4dDogbm9ybWFsaXplVGV4dChyYXcpLFxuICAgIGh0bWw6IG5vcm1hbGl6ZUh0bWwocmF3KSxcbiAgICBkYXRlOiBub3JtYWxpemVEYXRlKHJhdyksXG4gICAgaXNSZWFkOiBub3JtYWxpemVJc1JlYWQocmF3KSxcbiAgICBhdHRhY2htZW50czogbm9ybWFsaXplQXR0YWNobWVudHMocmF3LmF0dGFjaG1lbnRzKSxcbiAgfTtcbn1cblxuLyoqXG4gKiDmj5Dlj5bpgq7ku7YgSURcbiAqIOWAmemAieWtl+autTogaWQsIGVpZCwgX2lkLCBtYWlsYm94SWQsIG1lc3NhZ2VJZCwgbWFpbF9pZFxuICovXG5mdW5jdGlvbiBub3JtYWxpemVJZChyYXc6IGFueSk6IHN0cmluZyB7XG4gIGNvbnN0IGlkID0gcmF3LmlkID8/IHJhdy5laWQgPz8gcmF3Ll9pZCA/PyByYXcubWFpbGJveElkID8/IHJhdy5tZXNzYWdlSWQgPz8gcmF3Lm1haWxfaWQgPz8gJyc7XG4gIHJldHVybiBTdHJpbmcoaWQpO1xufVxuXG4vKipcbiAqIOaPkOWPluWPkeS7tuS6uuWcsOWdgFxuICog5YCZ6YCJ5a2X5q61OiBmcm9tX2FkZHJlc3MsIGFkZHJlc3NfZnJvbSwgZnJvbSwgbWVzc2FnZUZyb20sIHNlbmRlclxuICovXG5mdW5jdGlvbiBub3JtYWxpemVGcm9tKHJhdzogYW55KTogc3RyaW5nIHtcbiAgcmV0dXJuIHJhdy5mcm9tX2FkZHJlc3MgfHwgcmF3LmFkZHJlc3NfZnJvbSB8fCByYXcuZnJvbSB8fCByYXcubWVzc2FnZUZyb20gfHwgcmF3LnNlbmRlciB8fCAnJztcbn1cblxuLyoqXG4gKiDmj5Dlj5bmlLbku7bkurrlnLDlnYDvvIzml6DljLnphY3lrZfmrrXml7blm57pgIDkuLogcmVjaXBpZW50RW1haWxcbiAqIOWAmemAieWtl+autTogdG8sIHRvX2FkZHJlc3MsIG5hbWVfdG8sIGVtYWlsX2FkZHJlc3MsIGFkZHJlc3NcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplVG8ocmF3OiBhbnksIHJlY2lwaWVudEVtYWlsOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcmF3LnRvIHx8IHJhdy50b19hZGRyZXNzIHx8IHJhdy5uYW1lX3RvIHx8IHJhdy5lbWFpbF9hZGRyZXNzIHx8IHJhdy5hZGRyZXNzIHx8IHJlY2lwaWVudEVtYWlsIHx8ICcnO1xufVxuXG4vKipcbiAqIOaPkOWPlumCruS7tuS4u+mimFxuICog5YCZ6YCJ5a2X5q61OiBzdWJqZWN0LCBlX3N1YmplY3RcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplU3ViamVjdChyYXc6IGFueSk6IHN0cmluZyB7XG4gIHJldHVybiByYXcuc3ViamVjdCB8fCByYXcuZV9zdWJqZWN0IHx8ICcnO1xufVxuXG4vKipcbiAqIOaPkOWPlue6r+aWh+acrOWGheWuuVxuICog5YCZ6YCJ5a2X5q61OiB0ZXh0LCBib2R5LCBjb250ZW50LCBib2R5X3RleHQsIHRleHRfY29udGVudFxuICovXG5mdW5jdGlvbiBub3JtYWxpemVUZXh0KHJhdzogYW55KTogc3RyaW5nIHtcbiAgcmV0dXJuIHJhdy50ZXh0IHx8IHJhdy5ib2R5IHx8IHJhdy5jb250ZW50IHx8IHJhdy5ib2R5X3RleHQgfHwgcmF3LnRleHRfY29udGVudCB8fCAnJztcbn1cblxuLyoqXG4gKiDmj5Dlj5YgSFRNTCDlhoXlrrlcbiAqIOWAmemAieWtl+autTogaHRtbCwgaHRtbF9jb250ZW50LCBib2R5X2h0bWxcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplSHRtbChyYXc6IGFueSk6IHN0cmluZyB7XG4gIHJldHVybiByYXcuaHRtbCB8fCByYXcuaHRtbF9jb250ZW50IHx8IHJhdy5ib2R5X2h0bWwgfHwgJyc7XG59XG5cbi8qKlxuICog5o+Q5Y+W5bm257uf5LiA5pel5pyf5qC85byP5Li6IElTTyA4NjAxXG4gKiDlgJnpgInlrZfmrrU6IHJlY2VpdmVkX2F0LCBjcmVhdGVkX2F0LCBjcmVhdGVkQXQsIGRhdGUsIHRpbWVzdGFtcCwgZV9kYXRlXG4gKiDlhbbkuK0gdGltZXN0YW1wIOS4uiBVbml4IOenkue6p+aXtumXtOaIs++8jOmcgOS5mOS7pSAxMDAwIOi9rOS4uuavq+enklxuICovXG5mdW5jdGlvbiBub3JtYWxpemVEYXRlKHJhdzogYW55KTogc3RyaW5nIHtcbiAgdHJ5IHtcbiAgICBpZiAocmF3LnJlY2VpdmVkX2F0KSByZXR1cm4gbmV3IERhdGUocmF3LnJlY2VpdmVkX2F0KS50b0lTT1N0cmluZygpO1xuICAgIGlmIChyYXcuY3JlYXRlZF9hdCkgcmV0dXJuIG5ldyBEYXRlKHJhdy5jcmVhdGVkX2F0KS50b0lTT1N0cmluZygpO1xuICAgIGlmIChyYXcuY3JlYXRlZEF0KSByZXR1cm4gbmV3IERhdGUocmF3LmNyZWF0ZWRBdCkudG9JU09TdHJpbmcoKTtcbiAgICBpZiAocmF3LmRhdGUpIHtcbiAgICAgIGlmICh0eXBlb2YgcmF3LmRhdGUgPT09ICdudW1iZXInKSByZXR1cm4gbmV3IERhdGUocmF3LmRhdGUpLnRvSVNPU3RyaW5nKCk7XG4gICAgICByZXR1cm4gbmV3IERhdGUocmF3LmRhdGUpLnRvSVNPU3RyaW5nKCk7XG4gICAgfVxuICAgIGlmIChyYXcudGltZXN0YW1wKSByZXR1cm4gbmV3IERhdGUocmF3LnRpbWVzdGFtcCAqIDEwMDApLnRvSVNPU3RyaW5nKCk7XG4gICAgaWYgKHJhdy5lX2RhdGUpIHJldHVybiBuZXcgRGF0ZShyYXcuZV9kYXRlKS50b0lTT1N0cmluZygpO1xuICB9IGNhdGNoIHtcbiAgICAvKiDml6XmnJ/op6PmnpDlpLHotKXvvIzov5Tlm57nqbrlrZfnrKbkuLIgKi9cbiAgfVxuICByZXR1cm4gJyc7XG59XG5cbi8qKlxuICog5o+Q5Y+W5bey6K+754q25oCBXG4gKiDlgJnpgInlrZfmrrU6IHNlZW4sIHJlYWQsIGlzUmVhZCwgaXNfcmVhZFxuICog5pSv5oyBIGJvb2xlYW4gLyBudW1iZXIoMHwxKSAvIHN0cmluZygnMCd8JzEnKSDlpJrnp43nsbvlnotcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplSXNSZWFkKHJhdzogYW55KTogYm9vbGVhbiB7XG4gIGlmICh0eXBlb2YgcmF3LnNlZW4gPT09ICdib29sZWFuJykgcmV0dXJuIHJhdy5zZWVuO1xuICBpZiAodHlwZW9mIHJhdy5yZWFkID09PSAnYm9vbGVhbicpIHJldHVybiByYXcucmVhZDtcbiAgaWYgKHR5cGVvZiByYXcuaXNSZWFkID09PSAnYm9vbGVhbicpIHJldHVybiByYXcuaXNSZWFkO1xuICBpZiAodHlwZW9mIHJhdy5pc19yZWFkID09PSAnbnVtYmVyJykgcmV0dXJuIHJhdy5pc19yZWFkID09PSAxO1xuICBpZiAodHlwZW9mIHJhdy5pc19yZWFkID09PSAnc3RyaW5nJykgcmV0dXJuIHJhdy5pc19yZWFkID09PSAnMSc7XG4gIGlmICh0eXBlb2YgcmF3LmlzX3JlYWQgPT09ICdib29sZWFuJykgcmV0dXJuIHJhdy5pc19yZWFkO1xuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICog5o+Q5Y+W5bm25qCH5YeG5YyW6ZmE5Lu25YiX6KGoXG4gKiDmr4/kuKrpmYTku7bnmoTlrZfmrrXkuZ/ph4fnlKjlpJrlgJnpgInnrZbnlaXmmKDlsIRcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplQXR0YWNobWVudHMoYXR0YWNobWVudHM6IGFueSk6IEVtYWlsQXR0YWNobWVudFtdIHtcbiAgaWYgKCFhdHRhY2htZW50cyB8fCAhQXJyYXkuaXNBcnJheShhdHRhY2htZW50cykpIHJldHVybiBbXTtcbiAgcmV0dXJuIGF0dGFjaG1lbnRzLm1hcCgoYTogYW55KSA9PiAoe1xuICAgIGZpbGVuYW1lOiBhLmZpbGVuYW1lIHx8IGEubmFtZSB8fCAnJyxcbiAgICBzaXplOiBhLnNpemUgfHwgYS5maWxlc2l6ZSB8fCB1bmRlZmluZWQsXG4gICAgY29udGVudFR5cGU6IGEuY29udGVudFR5cGUgfHwgYS5jb250ZW50X3R5cGUgfHwgYS5taW1lVHlwZSB8fCBhLm1pbWVfdHlwZSB8fCB1bmRlZmluZWQsXG4gICAgdXJsOiBhLnVybCB8fCBhLmRvd25sb2FkX3VybCB8fCBhLmRvd25sb2FkVXJsIHx8IHVuZGVmaW5lZCxcbiAgfSkpO1xufVxuIl19
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25vcm1hbGl6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVlBLHdDQTBCQztBQXBDRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixjQUFjLENBQUMsR0FBUSxFQUFFLGlCQUF5QixFQUFFO0lBQ2xFLElBQUksSUFBSSxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QixJQUFJLElBQUksR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFOUI7Ozs7O09BS0c7SUFDSCxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN6QyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxPQUFPO1FBQ0wsRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUM7UUFDcEIsSUFBSSxFQUFFLGFBQWEsQ0FBQyxHQUFHLENBQUM7UUFDeEIsRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDO1FBQ3BDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUM7UUFDOUIsSUFBSTtRQUNKLElBQUk7UUFDSixJQUFJLEVBQUUsYUFBYSxDQUFDLEdBQUcsQ0FBQztRQUN4QixNQUFNLEVBQUUsZUFBZSxDQUFDLEdBQUcsQ0FBQztRQUM1QixXQUFXLEVBQUUsb0JBQW9CLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQztLQUNuRCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQVMsYUFBYSxDQUFDLE9BQWU7SUFDcEMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzdDLE9BQU8sT0FBTyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUN6QyxPQUFPLENBQUMs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U0FBUyxvQkFBb0IsQ0FBQyxXQUFnQjtJQUM1QyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUMzRCxPQUFPLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbEMsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFO1FBQ3BDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksU0FBUztRQUN2QyxXQUFXLEVBQUUsQ0FBQyxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLFNBQVMsSUFBSSxTQUFTO1FBQ3RGLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLFdBQVcsSUFBSSxTQUFTO0tBQzNELENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVtYWlsLCBFbWFpbEF0dGFjaG1lbnQgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiDlsIblkITmj5DkvpvllYbov5Tlm57nmoTljp/lp4vpgq7ku7bmlbDmja7moIflh4bljJbkuLrnu5/kuIDnmoQgRW1haWwg5qC85byPXG4gKlxuICog5LiN5ZCM5rig6YGT55qEIEFQSSDov5Tlm57lrZfmrrXlkI3lkITkuI3nm7jlkIzvvIzmraTlh73mlbDpgJrov4flpJrlrZfmrrXlgJnpgInnrZbnlaVcbiAqIOWwhuWug+S7rOe7n+S4gOaYoOWwhOS4uuagh+WHhueahCBFbWFpbCDnu5PmnoTvvIzkv53or4EgU0RLIOi+k+WHuuS4gOiHtOaAp+OAglxuICpcbiAqIEBwYXJhbSByYXcgLSDljp/lp4vpgq7ku7bmlbDmja7vvIjmnaXoh6rkuI3lkIzmj5DkvpvllYbnmoQgQVBJIOWTjeW6lO+8iVxuICogQHBhcmFtIHJlY2lwaWVudEVtYWlsIC0g5pS25Lu25Lq66YKu566x5Zyw5Z2A77yM5b2T5Y6f5aeL5pWw5o2u5Lit5peg5pS25Lu25Lq65a2X5q615pe255So5L2c5Zue6YCA5YC8XG4gKiBAcmV0dXJucyDmoIflh4bljJbnmoQgRW1haWwg5a+56LGhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVFbWFpbChyYXc6IGFueSwgcmVjaXBpZW50RW1haWw6IHN0cmluZyA9ICcnKTogRW1haWwge1xuICBsZXQgdGV4dCA9IG5vcm1hbGl6ZVRleHQocmF3KTtcbiAgbGV0IGh0bWwgPSBub3JtYWxpemVIdG1sKHJhdyk7XG5cbiAgLypcbiAgICog5L+u5q2jIHRleHQvaHRtbCDplJnphY3vvJpcbiAgICog6YOo5YiG5rig6YGT5bCGIEhUTUwg5YaF5a655pS+5ZyoIGJvZHkvdGV4dCDnrYnlrZfmrrXkuK3vvIxcbiAgICog5a+86Ie0IG5vcm1hbGl6ZVRleHQg5o+Q5Y+W5YiwIEhUTUwg5YaF5a656ICMIG5vcm1hbGl6ZUh0bWwg5Li656m644CCXG4gICAqIOajgOa1iyB0ZXh0IOS4reaYr+WQpuWMheWQqyBIVE1MIOagh+etvu+8jOWmguaenOaYr+WImeenu+WKqOWIsCBodG1sIOWtl+auteOAglxuICAgKi9cbiAgaWYgKHRleHQgJiYgIWh0bWwgJiYgaXNIdG1sQ29udGVudCh0ZXh0KSkge1xuICAgIGh0bWwgPSB0ZXh0O1xuICAgIHRleHQgPSAnJztcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgaWQ6IG5vcm1hbGl6ZUlkKHJhdyksXG4gICAgZnJvbTogbm9ybWFsaXplRnJvbShyYXcpLFxuICAgIHRvOiBub3JtYWxpemVUbyhyYXcsIHJlY2lwaWVudEVtYWlsKSxcbiAgICBzdWJqZWN0OiBub3JtYWxpemVTdWJqZWN0KHJhdyksXG4gICAgdGV4dCxcbiAgICBodG1sLFxuICAgIGRhdGU6IG5vcm1hbGl6ZURhdGUocmF3KSxcbiAgICBpc1JlYWQ6IG5vcm1hbGl6ZUlzUmVhZChyYXcpLFxuICAgIGF0dGFjaG1lbnRzOiBub3JtYWxpemVBdHRhY2htZW50cyhyYXcuYXR0YWNobWVudHMpLFxuICB9O1xufVxuXG4vKipcbiAqIOajgOa1i+WGheWuueaYr+WQpuS4uiBIVE1MXG4gKiDpgJrov4fmo4Dmn6XmmK/lkKbljIXlkKvluLjop4HnmoQgSFRNTCDmoIfnrb7mnaXliKTmlq1cbiAqL1xuZnVuY3Rpb24gaXNIdG1sQ29udGVudChjb250ZW50OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgdHJpbW1lZCA9IGNvbnRlbnQudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiB0cmltbWVkLnN0YXJ0c1dpdGgoJzwhZG9jdHlwZSBodG1sJykgfHxcbiAgICB0cmltbWVkLnN0YXJ0c1dpdGgoJzxodG1sJykgfHxcbiAgICB0cmltbWVkLnN0YXJ0c1dpdGgoJzxib2R5JykgfHxcbiAgICAodHJpbW1lZC5pbmNsdWRlcygnPGRpdicpICYmIHRyaW1tZWQuaW5jbHVkZXMoJzwvZGl2PicpKSB8fFxuICAgICh0cmltbWVkLmluY2x1ZGVzKCc8dGFibGUnKSAmJiB0cmltbWVkLmluY2x1ZGVzKCc8L3RhYmxlPicpKSB8fFxuICAgICh0cmltbWVkLmluY2x1ZGVzKCc8cCcpICYmIHRyaW1tZWQuaW5jbHVkZXMoJzwvcD4nKSAmJiB0cmltbWVkLmluY2x1ZGVzKCc8JykpO1xufVxuXG4vKipcbiAqIOaPkOWPlumCruS7tiBJRFxuICog5YCZ6YCJ5a2X5q61OiBpZCwgZWlkLCBfaWQsIG1haWxib3hJZCwgbWVzc2FnZUlkLCBtYWlsX2lkXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZUlkKHJhdzogYW55KTogc3RyaW5nIHtcbiAgY29uc3QgaWQgPSByYXcuaWQgPz8gcmF3LmVpZCA/PyByYXcuX2lkID8/IHJhdy5tYWlsYm94SWQgPz8gcmF3Lm1lc3NhZ2VJZCA/PyByYXcubWFpbF9pZCA/PyAnJztcbiAgcmV0dXJuIFN0cmluZyhpZCk7XG59XG5cbi8qKlxuICog5o+Q5Y+W5Y+R5Lu25Lq65Zyw5Z2AXG4gKiDlgJnpgInlrZfmrrU6IGZyb21fYWRkcmVzcywgYWRkcmVzc19mcm9tLCBmcm9tLCBtZXNzYWdlRnJvbSwgc2VuZGVyXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZUZyb20ocmF3OiBhbnkpOiBzdHJpbmcge1xuICByZXR1cm4gcmF3LmZyb21fYWRkcmVzcyB8fCByYXcuYWRkcmVzc19mcm9tIHx8IHJhdy5mcm9tIHx8IHJhdy5tZXNzYWdlRnJvbSB8fCByYXcuc2VuZGVyIHx8ICcnO1xufVxuXG4vKipcbiAqIOaPkOWPluaUtuS7tuS6uuWcsOWdgO+8jOaXoOWMuemFjeWtl+auteaXtuWbnumAgOS4uiByZWNpcGllbnRFbWFpbFxuICog5YCZ6YCJ5a2X5q61OiB0bywgdG9fYWRkcmVzcywgbmFtZV90bywgZW1haWxfYWRkcmVzcywgYWRkcmVzc1xuICovXG5mdW5jdGlvbiBub3JtYWxpemVUbyhyYXc6IGFueSwgcmVjaXBpZW50RW1haWw6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiByYXcudG8gfHwgcmF3LnRvX2FkZHJlc3MgfHwgcmF3Lm5hbWVfdG8gfHwgcmF3LmVtYWlsX2FkZHJlc3MgfHwgcmF3LmFkZHJlc3MgfHwgcmVjaXBpZW50RW1haWwgfHwgJyc7XG59XG5cbi8qKlxuICog5o+Q5Y+W6YKu5Lu25Li76aKYXG4gKiDlgJnpgInlrZfmrrU6IHN1YmplY3QsIGVfc3ViamVjdFxuICovXG5mdW5jdGlvbiBub3JtYWxpemVTdWJqZWN0KHJhdzogYW55KTogc3RyaW5nIHtcbiAgcmV0dXJuIHJhdy5zdWJqZWN0IHx8IHJhdy5lX3N1YmplY3QgfHwgJyc7XG59XG5cbi8qKlxuICog5o+Q5Y+W57qv5paH5pys5YaF5a65XG4gKiDlgJnpgInlrZfmrrU6IHRleHQsIGJvZHksIGNvbnRlbnQsIGJvZHlfdGV4dCwgdGV4dF9jb250ZW50XG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVRleHQocmF3OiBhbnkpOiBzdHJpbmcge1xuICByZXR1cm4gcmF3LnRleHQgfHwgcmF3LmJvZHkgfHwgcmF3LmNvbnRlbnQgfHwgcmF3LmJvZHlfdGV4dCB8fCByYXcudGV4dF9jb250ZW50IHx8ICcnO1xufVxuXG4vKipcbiAqIOaPkOWPliBIVE1MIOWGheWuuVxuICog5YCZ6YCJ5a2X5q61OiBodG1sLCBodG1sX2NvbnRlbnQsIGJvZHlfaHRtbFxuICovXG5mdW5jdGlvbiBub3JtYWxpemVIdG1sKHJhdzogYW55KTogc3RyaW5nIHtcbiAgcmV0dXJuIHJhdy5odG1sIHx8IHJhdy5odG1sX2NvbnRlbnQgfHwgcmF3LmJvZHlfaHRtbCB8fCAnJztcbn1cblxuLyoqXG4gKiDmj5Dlj5blubbnu5/kuIDml6XmnJ/moLzlvI/kuLogSVNPIDg2MDFcbiAqIOWAmemAieWtl+autTogcmVjZWl2ZWRfYXQsIGNyZWF0ZWRfYXQsIGNyZWF0ZWRBdCwgZGF0ZSwgdGltZXN0YW1wLCBlX2RhdGVcbiAqIOWFtuS4rSB0aW1lc3RhbXAg5Li6IFVuaXgg56eS57qn5pe26Ze05oiz77yM6ZyA5LmY5LulIDEwMDAg6L2s5Li65q+r56eSXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZURhdGUocmF3OiBhbnkpOiBzdHJpbmcge1xuICB0cnkge1xuICAgIGlmIChyYXcucmVjZWl2ZWRfYXQpIHJldHVybiBuZXcgRGF0ZShyYXcucmVjZWl2ZWRfYXQpLnRvSVNPU3RyaW5nKCk7XG4gICAgaWYgKHJhdy5jcmVhdGVkX2F0KSByZXR1cm4gbmV3IERhdGUocmF3LmNyZWF0ZWRfYXQpLnRvSVNPU3RyaW5nKCk7XG4gICAgaWYgKHJhdy5jcmVhdGVkQXQpIHJldHVybiBuZXcgRGF0ZShyYXcuY3JlYXRlZEF0KS50b0lTT1N0cmluZygpO1xuICAgIGlmIChyYXcuZGF0ZSkge1xuICAgICAgaWYgKHR5cGVvZiByYXcuZGF0ZSA9PT0gJ251bWJlcicpIHJldHVybiBuZXcgRGF0ZShyYXcuZGF0ZSkudG9JU09TdHJpbmcoKTtcbiAgICAgIHJldHVybiBuZXcgRGF0ZShyYXcuZGF0ZSkudG9JU09TdHJpbmcoKTtcbiAgICB9XG4gICAgaWYgKHJhdy50aW1lc3RhbXApIHJldHVybiBuZXcgRGF0ZShyYXcudGltZXN0YW1wICogMTAwMCkudG9JU09TdHJpbmcoKTtcbiAgICBpZiAocmF3LmVfZGF0ZSkgcmV0dXJuIG5ldyBEYXRlKHJhdy5lX2RhdGUpLnRvSVNPU3RyaW5nKCk7XG4gIH0gY2F0Y2gge1xuICAgIC8qIOaXpeacn+ino+aekOWksei0pe+8jOi/lOWbnuepuuWtl+espuS4siAqL1xuICB9XG4gIHJldHVybiAnJztcbn1cblxuLyoqXG4gKiDmj5Dlj5blt7Lor7vnirbmgIFcbiAqIOWAmemAieWtl+autTogc2VlbiwgcmVhZCwgaXNSZWFkLCBpc19yZWFkXG4gKiDmlK/mjIEgYm9vbGVhbiAvIG51bWJlcigwfDEpIC8gc3RyaW5nKCcwJ3wnMScpIOWkmuenjeexu+Wei1xuICovXG5mdW5jdGlvbiBub3JtYWxpemVJc1JlYWQocmF3OiBhbnkpOiBib29sZWFuIHtcbiAgaWYgKHR5cGVvZiByYXcuc2VlbiA9PT0gJ2Jvb2xlYW4nKSByZXR1cm4gcmF3LnNlZW47XG4gIGlmICh0eXBlb2YgcmF3LnJlYWQgPT09ICdib29sZWFuJykgcmV0dXJuIHJhdy5yZWFkO1xuICBpZiAodHlwZW9mIHJhdy5pc1JlYWQgPT09ICdib29sZWFuJykgcmV0dXJuIHJhdy5pc1JlYWQ7XG4gIGlmICh0eXBlb2YgcmF3LmlzX3JlYWQgPT09ICdudW1iZXInKSByZXR1cm4gcmF3LmlzX3JlYWQgPT09IDE7XG4gIGlmICh0eXBlb2YgcmF3LmlzX3JlYWQgPT09ICdzdHJpbmcnKSByZXR1cm4gcmF3LmlzX3JlYWQgPT09ICcxJztcbiAgaWYgKHR5cGVvZiByYXcuaXNfcmVhZCA9PT0gJ2Jvb2xlYW4nKSByZXR1cm4gcmF3LmlzX3JlYWQ7XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiDmj5Dlj5blubbmoIflh4bljJbpmYTku7bliJfooahcbiAqIOavj+S4qumZhOS7tueahOWtl+auteS5n+mHh+eUqOWkmuWAmemAieetlueVpeaYoOWwhFxuICovXG5mdW5jdGlvbiBub3JtYWxpemVBdHRhY2htZW50cyhhdHRhY2htZW50czogYW55KTogRW1haWxBdHRhY2htZW50W10ge1xuICBpZiAoIWF0dGFjaG1lbnRzIHx8ICFBcnJheS5pc0FycmF5KGF0dGFjaG1lbnRzKSkgcmV0dXJuIFtdO1xuICByZXR1cm4gYXR0YWNobWVudHMubWFwKChhOiBhbnkpID0+ICh7XG4gICAgZmlsZW5hbWU6IGEuZmlsZW5hbWUgfHwgYS5uYW1lIHx8ICcnLFxuICAgIHNpemU6IGEuc2l6ZSB8fCBhLmZpbGVzaXplIHx8IHVuZGVmaW5lZCxcbiAgICBjb250ZW50VHlwZTogYS5jb250ZW50VHlwZSB8fCBhLmNvbnRlbnRfdHlwZSB8fCBhLm1pbWVUeXBlIHx8IGEubWltZV90eXBlIHx8IHVuZGVmaW5lZCxcbiAgICB1cmw6IGEudXJsIHx8IGEuZG93bmxvYWRfdXJsIHx8IGEuZG93bmxvYWRVcmwgfHwgdW5kZWZpbmVkLFxuICB9KSk7XG59XG4iXX0=
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InternalEmailInfo, Email } from '../types';
|
|
2
2
|
/**
|
|
3
3
|
* 创建临时邮箱
|
|
4
4
|
* API: POST /welcome/change_mailbox (空 body)
|
|
5
5
|
* 返回: { success, data: { email_address, expired_at, created_at, ... } }
|
|
6
6
|
* 需要保存响应中的 Set-Cookie (awamail_session) 用于后续获取邮件
|
|
7
7
|
*/
|
|
8
|
-
export declare function generateEmail(): Promise<
|
|
8
|
+
export declare function generateEmail(): Promise<InternalEmailInfo>;
|
|
9
9
|
/**
|
|
10
10
|
* 获取邮件列表
|
|
11
11
|
* API: GET /welcome/get_emails
|
|
@@ -88,4 +88,4 @@ async function getEmails(token, email) {
|
|
|
88
88
|
const rawEmails = data.data.emails || [];
|
|
89
89
|
return rawEmails.map((raw) => (0, normalize_1.normalizeEmail)(raw, email));
|
|
90
90
|
}
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdhbWFpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92aWRlcnMvYXdhbWFpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXNDQSxzQ0FnQ0M7QUFRRCw4QkFzQkM7QUFuR0QsNENBQThDO0FBRTlDLE1BQU0sT0FBTyxHQUFZLFNBQVMsQ0FBQztBQUNuQyxNQUFNLFFBQVEsR0FBRyw2QkFBNkIsQ0FBQztBQUUvQyxNQUFNLGVBQWUsR0FBMkI7SUFDOUMsWUFBWSxFQUFFLCtIQUErSDtJQUM3SSxRQUFRLEVBQUUsZ0RBQWdEO0lBQzFELGlCQUFpQixFQUFFLGlEQUFpRDtJQUNwRSxlQUFlLEVBQUUsVUFBVTtJQUMzQixLQUFLLEVBQUUsR0FBRztJQUNWLFFBQVEsRUFBRSxxQkFBcUI7SUFDL0IsUUFBUSxFQUFFLFVBQVU7SUFDcEIsU0FBUyxFQUFFLDhCQUE4QjtJQUN6QyxXQUFXLEVBQUUsbUVBQW1FO0lBQ2hGLGtCQUFrQixFQUFFLElBQUk7SUFDeEIsb0JBQW9CLEVBQUUsV0FBVztJQUNqQyxnQkFBZ0IsRUFBRSxPQUFPO0lBQ3pCLGdCQUFnQixFQUFFLE1BQU07SUFDeEIsZ0JBQWdCLEVBQUUsYUFBYTtDQUNoQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxTQUFTLG9CQUFvQixDQUFDLFFBQWtCO0lBQzlDLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzRCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDekQsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3BELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNJLEtBQUssVUFBVSxhQUFhO0lBQ2pDLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsUUFBUSxpQkFBaUIsRUFBRTtRQUN6RCxNQUFNLEVBQUUsTUFBTTtRQUNkLE9BQU8sRUFBRTtZQUNQLEdBQUcsZUFBZTtZQUNsQixnQkFBZ0IsRUFBRSxHQUFHO1NBQ3RCO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsb0JBQW9CO0lBQ3BCLE1BQU0sYUFBYSxHQUFHLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBRW5DLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWE7UUFDOUIsS0FBSyxFQUFFLGFBQWE7UUFDcEIsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTtRQUMvQixTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVO0tBQ2hDLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSSxLQUFLLFVBQVUsU0FBUyxDQUFDLEtBQWEsRUFBRSxLQUFhO0lBQzFELE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsUUFBUSxhQUFhLEVBQUU7UUFDckQsTUFBTSxFQUFFLEtBQUs7UUFDYixPQUFPLEVBQUU7WUFDUCxHQUFHLGVBQWU7WUFDbEIsUUFBUSxFQUFFLEtBQUs7WUFDZixrQkFBa0IsRUFBRSxnQkFBZ0I7U0FDckM7S0FDRixDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUVuQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUN6QyxPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLElBQUEsMEJBQWMsRUFBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNqRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJuYWxFbWFpbEluZm8sIEVtYWlsLCBDaGFubmVsIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgbm9ybWFsaXplRW1haWwgfSBmcm9tICcuLi9ub3JtYWxpemUnO1xuXG5jb25zdCBDSEFOTkVMOiBDaGFubmVsID0gJ2F3YW1haWwnO1xuY29uc3QgQkFTRV9VUkwgPSAnaHR0cHM6Ly9hd2FtYWlsLmNvbS93ZWxjb21lJztcblxuY29uc3QgREVGQVVMVF9IRUFERVJTOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAnVXNlci1BZ2VudCc6ICdNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTQ0LjAuMC4wIFNhZmFyaS81MzcuMzYgRWRnLzE0NC4wLjAuMCcsXG4gICdBY2NlcHQnOiAnYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0LCAqLyo7IHE9MC4wMScsXG4gICdhY2NlcHQtbGFuZ3VhZ2UnOiAnemgtQ04semg7cT0wLjksZW47cT0wLjgsZW4tR0I7cT0wLjcsZW4tVVM7cT0wLjYnLFxuICAnY2FjaGUtY29udHJvbCc6ICduby1jYWNoZScsXG4gICdkbnQnOiAnMScsXG4gICdvcmlnaW4nOiAnaHR0cHM6Ly9hd2FtYWlsLmNvbScsXG4gICdwcmFnbWEnOiAnbm8tY2FjaGUnLFxuICAncmVmZXJlcic6ICdodHRwczovL2F3YW1haWwuY29tLz9sYW5nPXpoJyxcbiAgJ3NlYy1jaC11YSc6ICdcIk5vdChBOkJyYW5kXCI7dj1cIjhcIiwgXCJDaHJvbWl1bVwiO3Y9XCIxNDRcIiwgXCJNaWNyb3NvZnQgRWRnZVwiO3Y9XCIxNDRcIicsXG4gICdzZWMtY2gtdWEtbW9iaWxlJzogJz8wJyxcbiAgJ3NlYy1jaC11YS1wbGF0Zm9ybSc6ICdcIldpbmRvd3NcIicsXG4gICdzZWMtZmV0Y2gtZGVzdCc6ICdlbXB0eScsXG4gICdzZWMtZmV0Y2gtbW9kZSc6ICdjb3JzJyxcbiAgJ3NlYy1mZXRjaC1zaXRlJzogJ3NhbWUtb3JpZ2luJyxcbn07XG5cbi8qKlxuICog5LuOIFNldC1Db29raWUg5ZON5bqU5aS05Lit5o+Q5Y+WIGF3YW1haWxfc2Vzc2lvbiDlgLxcbiAqL1xuZnVuY3Rpb24gZXh0cmFjdFNlc3Npb25Db29raWUocmVzcG9uc2U6IFJlc3BvbnNlKTogc3RyaW5nIHtcbiAgY29uc3Qgc2V0Q29va2llID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ3NldC1jb29raWUnKSB8fCAnJztcbiAgY29uc3QgbWF0Y2ggPSBzZXRDb29raWUubWF0Y2goL2F3YW1haWxfc2Vzc2lvbj0oW147XSspLyk7XG4gIHJldHVybiBtYXRjaCA/IGBhd2FtYWlsX3Nlc3Npb249JHttYXRjaFsxXX1gIDogJyc7XG59XG5cbi8qKlxuICog5Yib5bu65Li05pe26YKu566xXG4gKiBBUEk6IFBPU1QgL3dlbGNvbWUvY2hhbmdlX21haWxib3ggKOepuiBib2R5KVxuICog6L+U5ZueOiB7IHN1Y2Nlc3MsIGRhdGE6IHsgZW1haWxfYWRkcmVzcywgZXhwaXJlZF9hdCwgY3JlYXRlZF9hdCwgLi4uIH0gfVxuICog6ZyA6KaB5L+d5a2Y5ZON5bqU5Lit55qEIFNldC1Db29raWUgKGF3YW1haWxfc2Vzc2lvbikg55So5LqO5ZCO57ut6I635Y+W6YKu5Lu2XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZUVtYWlsKCk6IFByb21pc2U8SW50ZXJuYWxFbWFpbEluZm8+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtCQVNFX1VSTH0vY2hhbmdlX21haWxib3hgLCB7XG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgaGVhZGVyczoge1xuICAgICAgLi4uREVGQVVMVF9IRUFERVJTLFxuICAgICAgJ0NvbnRlbnQtTGVuZ3RoJzogJzAnLFxuICAgIH0sXG4gIH0pO1xuXG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBnZW5lcmF0ZSBlbWFpbDogJHtyZXNwb25zZS5zdGF0dXN9YCk7XG4gIH1cblxuICAvLyDmj5Dlj5Ygc2Vzc2lvbiBjb29raWVcbiAgY29uc3Qgc2Vzc2lvbkNvb2tpZSA9IGV4dHJhY3RTZXNzaW9uQ29va2llKHJlc3BvbnNlKTtcbiAgaWYgKCFzZXNzaW9uQ29va2llKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZXh0cmFjdCBzZXNzaW9uIGNvb2tpZScpO1xuICB9XG5cbiAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcblxuICBpZiAoIWRhdGEuc3VjY2VzcyB8fCAhZGF0YS5kYXRhKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZ2VuZXJhdGUgZW1haWwnKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgY2hhbm5lbDogQ0hBTk5FTCxcbiAgICBlbWFpbDogZGF0YS5kYXRhLmVtYWlsX2FkZHJlc3MsXG4gICAgdG9rZW46IHNlc3Npb25Db29raWUsXG4gICAgZXhwaXJlc0F0OiBkYXRhLmRhdGEuZXhwaXJlZF9hdCxcbiAgICBjcmVhdGVkQXQ6IGRhdGEuZGF0YS5jcmVhdGVkX2F0LFxuICB9O1xufVxuXG4vKipcbiAqIOiOt+WPlumCruS7tuWIl+ihqFxuICogQVBJOiBHRVQgL3dlbGNvbWUvZ2V0X2VtYWlsc1xuICog6ZyA6KaB5Lyg5YWlIENvb2tpZSAoYXdhbWFpbF9zZXNzaW9uKSDlkowgeC1yZXF1ZXN0ZWQtd2l0aCDlpLRcbiAqIOi/lOWbnjogeyBzdWNjZXNzLCBkYXRhOiB7IGVtYWlsczogWy4uLl0sIGxhdGVzdDogey4uLn0gfSB9XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRFbWFpbHModG9rZW46IHN0cmluZywgZW1haWw6IHN0cmluZyk6IFByb21pc2U8RW1haWxbXT4ge1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke0JBU0VfVVJMfS9nZXRfZW1haWxzYCwge1xuICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgaGVhZGVyczoge1xuICAgICAgLi4uREVGQVVMVF9IRUFERVJTLFxuICAgICAgJ0Nvb2tpZSc6IHRva2VuLFxuICAgICAgJ3gtcmVxdWVzdGVkLXdpdGgnOiAnWE1MSHR0cFJlcXVlc3QnLFxuICAgIH0sXG4gIH0pO1xuXG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBnZXQgZW1haWxzOiAke3Jlc3BvbnNlLnN0YXR1c31gKTtcbiAgfVxuXG4gIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG5cbiAgaWYgKCFkYXRhLnN1Y2Nlc3MgfHwgIWRhdGEuZGF0YSkge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGdldCBlbWFpbHMnKTtcbiAgfVxuXG4gIGNvbnN0IHJhd0VtYWlscyA9IGRhdGEuZGF0YS5lbWFpbHMgfHwgW107XG4gIHJldHVybiByYXdFbWFpbHMubWFwKChyYXc6IGFueSkgPT4gbm9ybWFsaXplRW1haWwocmF3LCBlbWFpbCkpO1xufVxuIl19
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function generateEmail(): Promise<
|
|
1
|
+
import { InternalEmailInfo, Email } from '../types';
|
|
2
|
+
export declare function generateEmail(): Promise<InternalEmailInfo>;
|
|
3
3
|
export declare function getEmails(email: string): Promise<Email[]>;
|
|
@@ -48,4 +48,4 @@ async function getEmails(email) {
|
|
|
48
48
|
const rawEmails = data.data?.emails || [];
|
|
49
49
|
return rawEmails.map((raw) => (0, normalize_1.normalizeEmail)(raw, email));
|
|
50
50
|
}
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdGdwdC1vcmctdWsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmlkZXJzL2NoYXRncHQtb3JnLXVrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBaUJBLHNDQW9CQztBQUVELDhCQW1CQztBQXpERCw0Q0FBOEM7QUFFOUMsTUFBTSxPQUFPLEdBQVksZ0JBQWdCLENBQUM7QUFDMUMsTUFBTSxRQUFRLEdBQUcsaUNBQWlDLENBQUM7QUFFbkQsTUFBTSxlQUFlLEdBQUc7SUFDdEIsWUFBWSxFQUFFLGlIQUFpSDtJQUMvSCxjQUFjLEVBQUUsa0JBQWtCO0lBQ2xDLFFBQVEsRUFBRSxLQUFLO0lBQ2YsU0FBUyxFQUFFLDhCQUE4QjtJQUN6QyxXQUFXLEVBQUUsb0VBQW9FO0lBQ2pGLGtCQUFrQixFQUFFLElBQUk7SUFDeEIsb0JBQW9CLEVBQUUsV0FBVztJQUNqQyxLQUFLLEVBQUUsR0FBRztDQUNYLENBQUM7QUFFSyxLQUFLLFVBQVUsYUFBYTtJQUNqQyxNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxHQUFHLFFBQVEsaUJBQWlCLEVBQUU7UUFDekQsTUFBTSxFQUFFLEtBQUs7UUFDYixPQUFPLEVBQUUsZUFBZTtLQUN6QixDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUVuQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7S0FDdkIsQ0FBQztBQUNKLENBQUM7QUFFTSxLQUFLLFVBQVUsU0FBUyxDQUFDLEtBQWE7SUFDM0MsTUFBTSxZQUFZLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsR0FBRyxRQUFRLGlCQUFpQixZQUFZLEVBQUUsRUFBRTtRQUN2RSxNQUFNLEVBQUUsS0FBSztRQUNiLE9BQU8sRUFBRSxlQUFlO0tBQ3pCLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBRW5DLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFDMUMsT0FBTyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxJQUFBLDBCQUFjLEVBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDakUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEludGVybmFsRW1haWxJbmZvLCBFbWFpbCwgQ2hhbm5lbCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IG5vcm1hbGl6ZUVtYWlsIH0gZnJvbSAnLi4vbm9ybWFsaXplJztcblxuY29uc3QgQ0hBTk5FTDogQ2hhbm5lbCA9ICdjaGF0Z3B0LW9yZy11ayc7XG5jb25zdCBCQVNFX1VSTCA9ICdodHRwczovL21haWwuY2hhdGdwdC5vcmcudWsvYXBpJztcblxuY29uc3QgREVGQVVMVF9IRUFERVJTID0ge1xuICAnVXNlci1BZ2VudCc6ICdNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTQzLjAuMC4wIFNhZmFyaS81MzcuMzYnLFxuICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAnQWNjZXB0JzogJyovKicsXG4gICdSZWZlcmVyJzogJ2h0dHBzOi8vbWFpbC5jaGF0Z3B0Lm9yZy51ay8nLFxuICAnc2VjLWNoLXVhJzogJ1wiTWljcm9zb2Z0IEVkZ2VcIjt2PVwiMTQzXCIsIFwiQ2hyb21pdW1cIjt2PVwiMTQzXCIsIFwiTm90IEEoQnJhbmRcIjt2PVwiMjRcIicsXG4gICdzZWMtY2gtdWEtbW9iaWxlJzogJz8wJyxcbiAgJ3NlYy1jaC11YS1wbGF0Zm9ybSc6ICdcIldpbmRvd3NcIicsXG4gICdETlQnOiAnMScsXG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVFbWFpbCgpOiBQcm9taXNlPEludGVybmFsRW1haWxJbmZvPiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7QkFTRV9VUkx9L2dlbmVyYXRlLWVtYWlsYCwge1xuICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgaGVhZGVyczogREVGQVVMVF9IRUFERVJTLFxuICB9KTtcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZ2VuZXJhdGUgZW1haWw6ICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICB9XG5cbiAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgXG4gIGlmICghZGF0YS5zdWNjZXNzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZ2VuZXJhdGUgZW1haWwnKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgY2hhbm5lbDogQ0hBTk5FTCxcbiAgICBlbWFpbDogZGF0YS5kYXRhLmVtYWlsLFxuICB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RW1haWxzKGVtYWlsOiBzdHJpbmcpOiBQcm9taXNlPEVtYWlsW10+IHtcbiAgY29uc3QgZW5jb2RlZEVtYWlsID0gZW5jb2RlVVJJQ29tcG9uZW50KGVtYWlsKTtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtCQVNFX1VSTH0vZW1haWxzP2VtYWlsPSR7ZW5jb2RlZEVtYWlsfWAsIHtcbiAgICBtZXRob2Q6ICdHRVQnLFxuICAgIGhlYWRlcnM6IERFRkFVTFRfSEVBREVSUyxcbiAgfSk7XG5cbiAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGdldCBlbWFpbHM6ICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICB9XG5cbiAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgXG4gIGlmICghZGF0YS5zdWNjZXNzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZ2V0IGVtYWlscycpO1xuICB9XG5cbiAgY29uc3QgcmF3RW1haWxzID0gZGF0YS5kYXRhPy5lbWFpbHMgfHwgW107XG4gIHJldHVybiByYXdFbWFpbHMubWFwKChyYXc6IGFueSkgPT4gbm9ybWFsaXplRW1haWwocmF3LCBlbWFpbCkpO1xufVxuIl19
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InternalEmailInfo, Email } from '../types';
|
|
2
2
|
/**
|
|
3
3
|
* 创建临时邮箱
|
|
4
4
|
* GraphQL mutation: introduceSession
|
|
5
5
|
* 返回 session ID (存入 token) 和邮箱地址
|
|
6
6
|
*/
|
|
7
|
-
export declare function generateEmail(): Promise<
|
|
7
|
+
export declare function generateEmail(): Promise<InternalEmailInfo>;
|
|
8
8
|
/**
|
|
9
9
|
* 获取邮件列表
|
|
10
10
|
* GraphQL query: session(id) { mails {...} }
|
|
@@ -83,4 +83,4 @@ async function getEmails(token, email) {
|
|
|
83
83
|
const mails = data?.session?.mails || [];
|
|
84
84
|
return mails.map((mail) => (0, normalize_1.normalizeEmail)(flattenMessage(mail, email), email));
|
|
85
85
|
}
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcG1haWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmlkZXJzL2Ryb3BtYWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBdURBLHNDQWNDO0FBdUJELDhCQUtDO0FBaEdELDRDQUE4QztBQUU5QyxNQUFNLE9BQU8sR0FBWSxVQUFVLENBQUM7QUFDcEMsTUFBTSxRQUFRLEdBQUcsMENBQTBDLENBQUM7QUFFNUQsTUFBTSxlQUFlLEdBQTJCO0lBQzlDLGNBQWMsRUFBRSxtQ0FBbUM7Q0FDcEQsQ0FBQztBQUVGLE1BQU0sb0JBQW9CLEdBQUcscUVBQXFFLENBQUM7QUFFbkcsTUFBTSxlQUFlLEdBQUc7Ozs7Ozs7RUFPdEIsQ0FBQztBQUVIOztHQUVHO0FBQ0gsS0FBSyxVQUFVLGNBQWMsQ0FBQyxLQUFhLEVBQUUsU0FBK0I7SUFDMUUsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztJQUNyQyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMzQixJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2QsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxRQUFRLEVBQUU7UUFDckMsTUFBTSxFQUFFLE1BQU07UUFDZCxPQUFPLEVBQUUsZUFBZTtRQUN4QixJQUFJLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtLQUN4QixDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUVuQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sSUFBSSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7QUFDbkIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSSxLQUFLLFVBQVUsYUFBYTtJQUNqQyxNQUFNLElBQUksR0FBRyxNQUFNLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBRXhELE1BQU0sT0FBTyxHQUFHLElBQUksRUFBRSxnQkFBZ0IsQ0FBQztJQUN2QyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNyRSxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLEVBQUUsT0FBTztRQUNoQixLQUFLLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPO1FBQ25DLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRTtRQUNqQixTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVM7S0FDN0IsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsY0FBYyxDQUFDLElBQVMsRUFBRSxjQUFzQjtJQUN2RCxPQUFPO1FBQ0wsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRTtRQUNqQixJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFO1FBQ3pCLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxJQUFJLGNBQWM7UUFDakMsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLElBQUksRUFBRTtRQUNqQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFO1FBQ3JCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUU7UUFDckIsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRTtRQUNsQyxXQUFXLEVBQUUsRUFBRTtLQUNoQixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7O0dBSUc7QUFDSSxLQUFLLFVBQVUsU0FBUyxDQUFDLEtBQWEsRUFBRSxLQUFhO0lBQzFELE1BQU0sSUFBSSxHQUFHLE1BQU0sY0FBYyxDQUFDLGVBQWUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBRWxFLE1BQU0sS0FBSyxHQUFHLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUN6QyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUEsMEJBQWMsRUFBQyxjQUFjLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDdEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEludGVybmFsRW1haWxJbmZvLCBFbWFpbCwgQ2hhbm5lbCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IG5vcm1hbGl6ZUVtYWlsIH0gZnJvbSAnLi4vbm9ybWFsaXplJztcblxuY29uc3QgQ0hBTk5FTDogQ2hhbm5lbCA9ICdkcm9wbWFpbCc7XG5jb25zdCBCQVNFX1VSTCA9ICdodHRwczovL2Ryb3BtYWlsLm1lL2FwaS9ncmFwaHFsL01ZX1RPS0VOJztcblxuY29uc3QgREVGQVVMVF9IRUFERVJTOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsXG59O1xuXG5jb25zdCBDUkVBVEVfU0VTU0lPTl9RVUVSWSA9ICdtdXRhdGlvbiB7aW50cm9kdWNlU2Vzc2lvbiB7aWQsIGV4cGlyZXNBdCwgYWRkcmVzc2Vze2lkLCBhZGRyZXNzfX19JztcblxuY29uc3QgR0VUX01BSUxTX1FVRVJZID0gYHF1ZXJ5ICgkaWQ6IElEISkge1xuICBzZXNzaW9uKGlkOiRpZCkge1xuICAgIG1haWxzIHtcbiAgICAgIGlkLCByYXdTaXplLCBmcm9tQWRkciwgdG9BZGRyLCByZWNlaXZlZEF0LFxuICAgICAgdGV4dCwgaGVhZGVyRnJvbSwgaGVhZGVyU3ViamVjdCwgaHRtbFxuICAgIH1cbiAgfVxufWA7XG5cbi8qKlxuICog5omn6KGMIEdyYXBoUUwg6K+35rGCXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdyYXBocWxSZXF1ZXN0KHF1ZXJ5OiBzdHJpbmcsIHZhcmlhYmxlcz86IFJlY29yZDxzdHJpbmcsIGFueT4pOiBQcm9taXNlPGFueT4ge1xuICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gIHBhcmFtcy5zZXQoJ3F1ZXJ5JywgcXVlcnkpO1xuICBpZiAodmFyaWFibGVzKSB7XG4gICAgcGFyYW1zLnNldCgndmFyaWFibGVzJywgSlNPTi5zdHJpbmdpZnkodmFyaWFibGVzKSk7XG4gIH1cblxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKEJBU0VfVVJMLCB7XG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgaGVhZGVyczogREVGQVVMVF9IRUFERVJTLFxuICAgIGJvZHk6IHBhcmFtcy50b1N0cmluZygpLFxuICB9KTtcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBHcmFwaFFMIHJlcXVlc3QgZmFpbGVkOiAke3Jlc3BvbnNlLnN0YXR1c31gKTtcbiAgfVxuXG4gIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG5cbiAgaWYgKGRhdGEuZXJyb3JzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBHcmFwaFFMIGVycm9yOiAke2RhdGEuZXJyb3JzWzBdPy5tZXNzYWdlIHx8ICdVbmtub3duIGVycm9yJ31gKTtcbiAgfVxuXG4gIHJldHVybiBkYXRhLmRhdGE7XG59XG5cbi8qKlxuICog5Yib5bu65Li05pe26YKu566xXG4gKiBHcmFwaFFMIG11dGF0aW9uOiBpbnRyb2R1Y2VTZXNzaW9uXG4gKiDov5Tlm54gc2Vzc2lvbiBJRCAo5a2Y5YWlIHRva2VuKSDlkozpgq7nrrHlnLDlnYBcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlRW1haWwoKTogUHJvbWlzZTxJbnRlcm5hbEVtYWlsSW5mbz4ge1xuICBjb25zdCBkYXRhID0gYXdhaXQgZ3JhcGhxbFJlcXVlc3QoQ1JFQVRFX1NFU1NJT05fUVVFUlkpO1xuXG4gIGNvbnN0IHNlc3Npb24gPSBkYXRhPy5pbnRyb2R1Y2VTZXNzaW9uO1xuICBpZiAoIXNlc3Npb24gfHwgIXNlc3Npb24uYWRkcmVzc2VzIHx8IHNlc3Npb24uYWRkcmVzc2VzLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGdlbmVyYXRlIGVtYWlsJyk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGNoYW5uZWw6IENIQU5ORUwsXG4gICAgZW1haWw6IHNlc3Npb24uYWRkcmVzc2VzWzBdLmFkZHJlc3MsXG4gICAgdG9rZW46IHNlc3Npb24uaWQsXG4gICAgZXhwaXJlc0F0OiBzZXNzaW9uLmV4cGlyZXNBdCxcbiAgfTtcbn1cblxuLyoqXG4gKiDlsIYgZHJvcG1haWwg55qE6YKu5Lu25qC85byP5omB5bmz5YyW5Li6IG5vcm1hbGl6ZUVtYWlsIOWPr+WkhOeQhueahOagvOW8j1xuICovXG5mdW5jdGlvbiBmbGF0dGVuTWVzc2FnZShtYWlsOiBhbnksIHJlY2lwaWVudEVtYWlsOiBzdHJpbmcpOiBhbnkge1xuICByZXR1cm4ge1xuICAgIGlkOiBtYWlsLmlkIHx8ICcnLFxuICAgIGZyb206IG1haWwuZnJvbUFkZHIgfHwgJycsXG4gICAgdG86IG1haWwudG9BZGRyIHx8IHJlY2lwaWVudEVtYWlsLFxuICAgIHN1YmplY3Q6IG1haWwuaGVhZGVyU3ViamVjdCB8fCAnJyxcbiAgICB0ZXh0OiBtYWlsLnRleHQgfHwgJycsXG4gICAgaHRtbDogbWFpbC5odG1sIHx8ICcnLFxuICAgIHJlY2VpdmVkX2F0OiBtYWlsLnJlY2VpdmVkQXQgfHwgJycsXG4gICAgYXR0YWNobWVudHM6IFtdLFxuICB9O1xufVxuXG4vKipcbiAqIOiOt+WPlumCruS7tuWIl+ihqFxuICogR3JhcGhRTCBxdWVyeTogc2Vzc2lvbihpZCkgeyBtYWlscyB7Li4ufSB9XG4gKiB0b2tlbiDkuK3lrZjlgqjnmoTmmK8gc2Vzc2lvbiBJRFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RW1haWxzKHRva2VuOiBzdHJpbmcsIGVtYWlsOiBzdHJpbmcpOiBQcm9taXNlPEVtYWlsW10+IHtcbiAgY29uc3QgZGF0YSA9IGF3YWl0IGdyYXBocWxSZXF1ZXN0KEdFVF9NQUlMU19RVUVSWSwgeyBpZDogdG9rZW4gfSk7XG5cbiAgY29uc3QgbWFpbHMgPSBkYXRhPy5zZXNzaW9uPy5tYWlscyB8fCBbXTtcbiAgcmV0dXJuIG1haWxzLm1hcCgobWFpbDogYW55KSA9PiBub3JtYWxpemVFbWFpbChmbGF0dGVuTWVzc2FnZShtYWlsLCBlbWFpbCksIGVtYWlsKSk7XG59XG4iXX0=
|