tempmail-sdk 1.0.2 → 1.1.0
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 +7 -3
- package/dist/index.d.ts +94 -1
- package/dist/index.js +169 -37
- package/dist/logger.d.ts +73 -0
- package/dist/logger.js +100 -0
- package/dist/normalize.d.ts +7 -0
- package/dist/normalize.js +47 -2
- package/dist/providers/guerrillamail.d.ts +22 -0
- package/dist/providers/guerrillamail.js +71 -0
- package/dist/providers/mail-tm.js +8 -3
- package/dist/providers/maildrop.d.ts +21 -0
- package/dist/providers/maildrop.js +180 -0
- package/dist/providers/temp-mail-io.js +54 -24
- package/dist/retry.d.ts +38 -0
- package/dist/retry.js +121 -0
- package/dist/types.d.ts +88 -1
- package/dist/types.js +1 -1
- package/package.json +1 -1
- package/src/index.ts +165 -42
- package/src/logger.ts +106 -0
- package/src/normalize.ts +46 -1
- package/src/providers/guerrillamail.ts +78 -0
- package/src/providers/mail-tm.ts +7 -2
- package/src/providers/maildrop.ts +210 -0
- package/src/providers/temp-mail-io.ts +55 -23
- package/src/retry.ts +146 -0
- package/src/types.ts +89 -1
package/dist/logger.js
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* SDK 日志模块
|
|
4
|
+
* 提供分级日志能力,支持自定义日志处理器
|
|
5
|
+
* 默认静默不输出,用户可通过 setLogLevel / setLogger 启用
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.logger = exports.LogLevel = void 0;
|
|
9
|
+
exports.setLogLevel = setLogLevel;
|
|
10
|
+
exports.getLogLevel = getLogLevel;
|
|
11
|
+
exports.setLogger = setLogger;
|
|
12
|
+
/**
|
|
13
|
+
* 日志级别枚举
|
|
14
|
+
* 数值越小级别越高,设置某级别后只输出该级别及以上的日志
|
|
15
|
+
*/
|
|
16
|
+
var LogLevel;
|
|
17
|
+
(function (LogLevel) {
|
|
18
|
+
/** 关闭所有日志 */
|
|
19
|
+
LogLevel[LogLevel["SILENT"] = 0] = "SILENT";
|
|
20
|
+
/** 错误日志:请求失败、重试耗尽等 */
|
|
21
|
+
LogLevel[LogLevel["ERROR"] = 1] = "ERROR";
|
|
22
|
+
/** 警告日志:重试中、降级处理等 */
|
|
23
|
+
LogLevel[LogLevel["WARN"] = 2] = "WARN";
|
|
24
|
+
/** 信息日志:请求开始、完成等关键流程 */
|
|
25
|
+
LogLevel[LogLevel["INFO"] = 3] = "INFO";
|
|
26
|
+
/** 调试日志:请求详情、响应内容等 */
|
|
27
|
+
LogLevel[LogLevel["DEBUG"] = 4] = "DEBUG";
|
|
28
|
+
})(LogLevel || (exports.LogLevel = LogLevel = {}));
|
|
29
|
+
/**
|
|
30
|
+
* 默认日志处理器,直接输出到 console
|
|
31
|
+
*/
|
|
32
|
+
const defaultHandler = {
|
|
33
|
+
error: (msg, ...args) => console.error(msg, ...args),
|
|
34
|
+
warn: (msg, ...args) => console.warn(msg, ...args),
|
|
35
|
+
info: (msg, ...args) => console.info(msg, ...args),
|
|
36
|
+
debug: (msg, ...args) => console.debug(msg, ...args),
|
|
37
|
+
};
|
|
38
|
+
let currentLevel = LogLevel.SILENT;
|
|
39
|
+
let currentHandler = defaultHandler;
|
|
40
|
+
/**
|
|
41
|
+
* 设置日志级别
|
|
42
|
+
* 默认 SILENT(不输出任何日志)
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* import { setLogLevel, LogLevel } from 'tempmail-sdk';
|
|
47
|
+
* setLogLevel(LogLevel.DEBUG); // 开启所有日志
|
|
48
|
+
* setLogLevel(LogLevel.INFO); // 只输出 INFO 及以上
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
function setLogLevel(level) {
|
|
52
|
+
currentLevel = level;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* 获取当前日志级别
|
|
56
|
+
*/
|
|
57
|
+
function getLogLevel() {
|
|
58
|
+
return currentLevel;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* 设置自定义日志处理器
|
|
62
|
+
* 替换默认的 console 输出
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```ts
|
|
66
|
+
* import { setLogger } from 'tempmail-sdk';
|
|
67
|
+
* setLogger({
|
|
68
|
+
* error: (msg, ...args) => myLogger.error(msg, ...args),
|
|
69
|
+
* warn: (msg, ...args) => myLogger.warn(msg, ...args),
|
|
70
|
+
* info: (msg, ...args) => myLogger.info(msg, ...args),
|
|
71
|
+
* debug: (msg, ...args) => myLogger.debug(msg, ...args),
|
|
72
|
+
* });
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
function setLogger(handler) {
|
|
76
|
+
currentHandler = handler;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* SDK 内部日志工具
|
|
80
|
+
* 根据当前日志级别过滤输出
|
|
81
|
+
*/
|
|
82
|
+
exports.logger = {
|
|
83
|
+
error(msg, ...args) {
|
|
84
|
+
if (currentLevel >= LogLevel.ERROR)
|
|
85
|
+
currentHandler.error(msg, ...args);
|
|
86
|
+
},
|
|
87
|
+
warn(msg, ...args) {
|
|
88
|
+
if (currentLevel >= LogLevel.WARN)
|
|
89
|
+
currentHandler.warn(msg, ...args);
|
|
90
|
+
},
|
|
91
|
+
info(msg, ...args) {
|
|
92
|
+
if (currentLevel >= LogLevel.INFO)
|
|
93
|
+
currentHandler.info(msg, ...args);
|
|
94
|
+
},
|
|
95
|
+
debug(msg, ...args) {
|
|
96
|
+
if (currentLevel >= LogLevel.DEBUG)
|
|
97
|
+
currentHandler.debug(msg, ...args);
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7O0FBc0RILGtDQUVDO0FBS0Qsa0NBRUM7QUFpQkQsOEJBRUM7QUFoRkQ7OztHQUdHO0FBQ0gsSUFBWSxRQVdYO0FBWEQsV0FBWSxRQUFRO0lBQ2xCLGFBQWE7SUFDYiwyQ0FBVSxDQUFBO0lBQ1Ysc0JBQXNCO0lBQ3RCLHlDQUFTLENBQUE7SUFDVCxxQkFBcUI7SUFDckIsdUNBQVEsQ0FBQTtJQUNSLHdCQUF3QjtJQUN4Qix1Q0FBUSxDQUFBO0lBQ1Isc0JBQXNCO0lBQ3RCLHlDQUFTLENBQUE7QUFDWCxDQUFDLEVBWFcsUUFBUSx3QkFBUixRQUFRLFFBV25CO0FBYUQ7O0dBRUc7QUFDSCxNQUFNLGNBQWMsR0FBZTtJQUNqQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0lBQ3BELElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDbEQsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztJQUNsRCxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0NBQ3JELENBQUM7QUFFRixJQUFJLFlBQVksR0FBYSxRQUFRLENBQUMsTUFBTSxDQUFDO0FBQzdDLElBQUksY0FBYyxHQUFlLGNBQWMsQ0FBQztBQUVoRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBZ0IsV0FBVyxDQUFDLEtBQWU7SUFDekMsWUFBWSxHQUFHLEtBQUssQ0FBQztBQUN2QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixXQUFXO0lBQ3pCLE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILFNBQWdCLFNBQVMsQ0FBQyxPQUFtQjtJQUMzQyxjQUFjLEdBQUcsT0FBTyxDQUFDO0FBQzNCLENBQUM7QUFFRDs7O0dBR0c7QUFDVSxRQUFBLE1BQU0sR0FBRztJQUNwQixLQUFLLENBQUMsR0FBVyxFQUFFLEdBQUcsSUFBVztRQUMvQixJQUFJLFlBQVksSUFBSSxRQUFRLENBQUMsS0FBSztZQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUNELElBQUksQ0FBQyxHQUFXLEVBQUUsR0FBRyxJQUFXO1FBQzlCLElBQUksWUFBWSxJQUFJLFFBQVEsQ0FBQyxJQUFJO1lBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBQ0QsSUFBSSxDQUFDLEdBQVcsRUFBRSxHQUFHLElBQVc7UUFDOUIsSUFBSSxZQUFZLElBQUksUUFBUSxDQUFDLElBQUk7WUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFDRCxLQUFLLENBQUMsR0FBVyxFQUFFLEdBQUcsSUFBVztRQUMvQixJQUFJLFlBQVksSUFBSSxRQUFRLENBQUMsS0FBSztZQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDekUsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNESyDml6Xlv5fmqKHlnZdcbiAqIOaPkOS+m+WIhue6p+aXpeW/l+iDveWKm++8jOaUr+aMgeiHquWumuS5ieaXpeW/l+WkhOeQhuWZqFxuICog6buY6K6k6Z2Z6buY5LiN6L6T5Ye677yM55So5oi35Y+v6YCa6L+HIHNldExvZ0xldmVsIC8gc2V0TG9nZ2VyIOWQr+eUqFxuICovXG5cbi8qKlxuICog5pel5b+X57qn5Yir5p6a5Li+XG4gKiDmlbDlgLzotorlsI/nuqfliKvotorpq5jvvIzorr7nva7mn5DnuqfliKvlkI7lj6rovpPlh7ror6XnuqfliKvlj4rku6XkuIrnmoTml6Xlv5dcbiAqL1xuZXhwb3J0IGVudW0gTG9nTGV2ZWwge1xuICAvKiog5YWz6Zet5omA5pyJ5pel5b+XICovXG4gIFNJTEVOVCA9IDAsXG4gIC8qKiDplJnor6/ml6Xlv5fvvJror7fmsYLlpLHotKXjgIHph43or5XogJflsL3nrYkgKi9cbiAgRVJST1IgPSAxLFxuICAvKiog6K2m5ZGK5pel5b+X77ya6YeN6K+V5Lit44CB6ZmN57qn5aSE55CG562JICovXG4gIFdBUk4gPSAyLFxuICAvKiog5L+h5oGv5pel5b+X77ya6K+35rGC5byA5aeL44CB5a6M5oiQ562J5YWz6ZSu5rWB56iLICovXG4gIElORk8gPSAzLFxuICAvKiog6LCD6K+V5pel5b+X77ya6K+35rGC6K+m5oOF44CB5ZON5bqU5YaF5a65562JICovXG4gIERFQlVHID0gNCxcbn1cblxuLyoqXG4gKiDml6Xlv5flpITnkIblmajmjqXlj6NcbiAqIOeUqOaIt+WPr+WunueOsOatpOaOpeWPo+adpeiHquWumuS5ieaXpeW/l+i+k+WHuuaWueW8j++8iOWmguWGmeaWh+S7tuOAgeWPkemAgeWIsOi/nOeoi+etie+8iVxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ0hhbmRsZXIge1xuICBlcnJvcihtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogdm9pZDtcbiAgd2FybihtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogdm9pZDtcbiAgaW5mbyhtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogdm9pZDtcbiAgZGVidWcobWVzc2FnZTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IHZvaWQ7XG59XG5cbi8qKlxuICog6buY6K6k5pel5b+X5aSE55CG5Zmo77yM55u05o6l6L6T5Ye65YiwIGNvbnNvbGVcbiAqL1xuY29uc3QgZGVmYXVsdEhhbmRsZXI6IExvZ0hhbmRsZXIgPSB7XG4gIGVycm9yOiAobXNnLCAuLi5hcmdzKSA9PiBjb25zb2xlLmVycm9yKG1zZywgLi4uYXJncyksXG4gIHdhcm46IChtc2csIC4uLmFyZ3MpID0+IGNvbnNvbGUud2Fybihtc2csIC4uLmFyZ3MpLFxuICBpbmZvOiAobXNnLCAuLi5hcmdzKSA9PiBjb25zb2xlLmluZm8obXNnLCAuLi5hcmdzKSxcbiAgZGVidWc6IChtc2csIC4uLmFyZ3MpID0+IGNvbnNvbGUuZGVidWcobXNnLCAuLi5hcmdzKSxcbn07XG5cbmxldCBjdXJyZW50TGV2ZWw6IExvZ0xldmVsID0gTG9nTGV2ZWwuU0lMRU5UO1xubGV0IGN1cnJlbnRIYW5kbGVyOiBMb2dIYW5kbGVyID0gZGVmYXVsdEhhbmRsZXI7XG5cbi8qKlxuICog6K6+572u5pel5b+X57qn5YirXG4gKiDpu5jorqQgU0lMRU5U77yI5LiN6L6T5Ye65Lu75L2V5pel5b+X77yJXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBzZXRMb2dMZXZlbCwgTG9nTGV2ZWwgfSBmcm9tICd0ZW1wbWFpbC1zZGsnO1xuICogc2V0TG9nTGV2ZWwoTG9nTGV2ZWwuREVCVUcpOyAvLyDlvIDlkK/miYDmnInml6Xlv5dcbiAqIHNldExvZ0xldmVsKExvZ0xldmVsLklORk8pOyAgLy8g5Y+q6L6T5Ye6IElORk8g5Y+K5Lul5LiKXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldExvZ0xldmVsKGxldmVsOiBMb2dMZXZlbCk6IHZvaWQge1xuICBjdXJyZW50TGV2ZWwgPSBsZXZlbDtcbn1cblxuLyoqXG4gKiDojrflj5blvZPliY3ml6Xlv5fnuqfliKtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExvZ0xldmVsKCk6IExvZ0xldmVsIHtcbiAgcmV0dXJuIGN1cnJlbnRMZXZlbDtcbn1cblxuLyoqXG4gKiDorr7nva7oh6rlrprkuYnml6Xlv5flpITnkIblmahcbiAqIOabv+aNoum7mOiupOeahCBjb25zb2xlIOi+k+WHulxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgc2V0TG9nZ2VyIH0gZnJvbSAndGVtcG1haWwtc2RrJztcbiAqIHNldExvZ2dlcih7XG4gKiAgIGVycm9yOiAobXNnLCAuLi5hcmdzKSA9PiBteUxvZ2dlci5lcnJvcihtc2csIC4uLmFyZ3MpLFxuICogICB3YXJuOiAgKG1zZywgLi4uYXJncykgPT4gbXlMb2dnZXIud2Fybihtc2csIC4uLmFyZ3MpLFxuICogICBpbmZvOiAgKG1zZywgLi4uYXJncykgPT4gbXlMb2dnZXIuaW5mbyhtc2csIC4uLmFyZ3MpLFxuICogICBkZWJ1ZzogKG1zZywgLi4uYXJncykgPT4gbXlMb2dnZXIuZGVidWcobXNnLCAuLi5hcmdzKSxcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRMb2dnZXIoaGFuZGxlcjogTG9nSGFuZGxlcik6IHZvaWQge1xuICBjdXJyZW50SGFuZGxlciA9IGhhbmRsZXI7XG59XG5cbi8qKlxuICogU0RLIOWGhemDqOaXpeW/l+W3peWFt1xuICog5qC55o2u5b2T5YmN5pel5b+X57qn5Yir6L+H5ruk6L6T5Ye6XG4gKi9cbmV4cG9ydCBjb25zdCBsb2dnZXIgPSB7XG4gIGVycm9yKG1zZzogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IHZvaWQge1xuICAgIGlmIChjdXJyZW50TGV2ZWwgPj0gTG9nTGV2ZWwuRVJST1IpIGN1cnJlbnRIYW5kbGVyLmVycm9yKG1zZywgLi4uYXJncyk7XG4gIH0sXG4gIHdhcm4obXNnOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogdm9pZCB7XG4gICAgaWYgKGN1cnJlbnRMZXZlbCA+PSBMb2dMZXZlbC5XQVJOKSBjdXJyZW50SGFuZGxlci53YXJuKG1zZywgLi4uYXJncyk7XG4gIH0sXG4gIGluZm8obXNnOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogdm9pZCB7XG4gICAgaWYgKGN1cnJlbnRMZXZlbCA+PSBMb2dMZXZlbC5JTkZPKSBjdXJyZW50SGFuZGxlci5pbmZvKG1zZywgLi4uYXJncyk7XG4gIH0sXG4gIGRlYnVnKG1zZzogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IHZvaWQge1xuICAgIGlmIChjdXJyZW50TGV2ZWwgPj0gTG9nTGV2ZWwuREVCVUcpIGN1cnJlbnRIYW5kbGVyLmRlYnVnKG1zZywgLi4uYXJncyk7XG4gIH0sXG59O1xuIl19
|
package/dist/normalize.d.ts
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { Email } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* 将各提供商返回的原始邮件数据标准化为统一的 Email 格式
|
|
4
|
+
*
|
|
5
|
+
* 不同渠道的 API 返回字段名各不相同,此函数通过多字段候选策略
|
|
6
|
+
* 将它们统一映射为标准的 Email 结构,保证 SDK 输出一致性。
|
|
7
|
+
*
|
|
8
|
+
* @param raw - 原始邮件数据(来自不同提供商的 API 响应)
|
|
9
|
+
* @param recipientEmail - 收件人邮箱地址,当原始数据中无收件人字段时用作回退值
|
|
10
|
+
* @returns 标准化的 Email 对象
|
|
4
11
|
*/
|
|
5
12
|
export declare function normalizeEmail(raw: any, recipientEmail?: string): Email;
|
package/dist/normalize.js
CHANGED
|
@@ -3,6 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.normalizeEmail = normalizeEmail;
|
|
4
4
|
/**
|
|
5
5
|
* 将各提供商返回的原始邮件数据标准化为统一的 Email 格式
|
|
6
|
+
*
|
|
7
|
+
* 不同渠道的 API 返回字段名各不相同,此函数通过多字段候选策略
|
|
8
|
+
* 将它们统一映射为标准的 Email 结构,保证 SDK 输出一致性。
|
|
9
|
+
*
|
|
10
|
+
* @param raw - 原始邮件数据(来自不同提供商的 API 响应)
|
|
11
|
+
* @param recipientEmail - 收件人邮箱地址,当原始数据中无收件人字段时用作回退值
|
|
12
|
+
* @returns 标准化的 Email 对象
|
|
6
13
|
*/
|
|
7
14
|
function normalizeEmail(raw, recipientEmail = '') {
|
|
8
15
|
return {
|
|
@@ -17,25 +24,54 @@ function normalizeEmail(raw, recipientEmail = '') {
|
|
|
17
24
|
attachments: normalizeAttachments(raw.attachments),
|
|
18
25
|
};
|
|
19
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* 提取邮件 ID
|
|
29
|
+
* 候选字段: id, eid, _id, mailboxId, messageId, mail_id
|
|
30
|
+
*/
|
|
20
31
|
function normalizeId(raw) {
|
|
21
32
|
const id = raw.id ?? raw.eid ?? raw._id ?? raw.mailboxId ?? raw.messageId ?? raw.mail_id ?? '';
|
|
22
33
|
return String(id);
|
|
23
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* 提取发件人地址
|
|
37
|
+
* 候选字段: from_address, address_from, from, messageFrom, sender
|
|
38
|
+
*/
|
|
24
39
|
function normalizeFrom(raw) {
|
|
25
40
|
return raw.from_address || raw.address_from || raw.from || raw.messageFrom || raw.sender || '';
|
|
26
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* 提取收件人地址,无匹配字段时回退为 recipientEmail
|
|
44
|
+
* 候选字段: to, to_address, name_to, email_address, address
|
|
45
|
+
*/
|
|
27
46
|
function normalizeTo(raw, recipientEmail) {
|
|
28
47
|
return raw.to || raw.to_address || raw.name_to || raw.email_address || raw.address || recipientEmail || '';
|
|
29
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* 提取邮件主题
|
|
51
|
+
* 候选字段: subject, e_subject
|
|
52
|
+
*/
|
|
30
53
|
function normalizeSubject(raw) {
|
|
31
54
|
return raw.subject || raw.e_subject || '';
|
|
32
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* 提取纯文本内容
|
|
58
|
+
* 候选字段: text, body, content, body_text, text_content
|
|
59
|
+
*/
|
|
33
60
|
function normalizeText(raw) {
|
|
34
61
|
return raw.text || raw.body || raw.content || raw.body_text || raw.text_content || '';
|
|
35
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* 提取 HTML 内容
|
|
65
|
+
* 候选字段: html, html_content, body_html
|
|
66
|
+
*/
|
|
36
67
|
function normalizeHtml(raw) {
|
|
37
68
|
return raw.html || raw.html_content || raw.body_html || '';
|
|
38
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* 提取并统一日期格式为 ISO 8601
|
|
72
|
+
* 候选字段: received_at, created_at, createdAt, date, timestamp, e_date
|
|
73
|
+
* 其中 timestamp 为 Unix 秒级时间戳,需乘以 1000 转为毫秒
|
|
74
|
+
*/
|
|
39
75
|
function normalizeDate(raw) {
|
|
40
76
|
try {
|
|
41
77
|
if (raw.received_at)
|
|
@@ -55,10 +91,15 @@ function normalizeDate(raw) {
|
|
|
55
91
|
return new Date(raw.e_date).toISOString();
|
|
56
92
|
}
|
|
57
93
|
catch {
|
|
58
|
-
|
|
94
|
+
/* 日期解析失败,返回空字符串 */
|
|
59
95
|
}
|
|
60
96
|
return '';
|
|
61
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* 提取已读状态
|
|
100
|
+
* 候选字段: seen, read, isRead, is_read
|
|
101
|
+
* 支持 boolean / number(0|1) / string('0'|'1') 多种类型
|
|
102
|
+
*/
|
|
62
103
|
function normalizeIsRead(raw) {
|
|
63
104
|
if (typeof raw.seen === 'boolean')
|
|
64
105
|
return raw.seen;
|
|
@@ -74,6 +115,10 @@ function normalizeIsRead(raw) {
|
|
|
74
115
|
return raw.is_read;
|
|
75
116
|
return false;
|
|
76
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* 提取并标准化附件列表
|
|
120
|
+
* 每个附件的字段也采用多候选策略映射
|
|
121
|
+
*/
|
|
77
122
|
function normalizeAttachments(attachments) {
|
|
78
123
|
if (!attachments || !Array.isArray(attachments))
|
|
79
124
|
return [];
|
|
@@ -84,4 +129,4 @@ function normalizeAttachments(attachments) {
|
|
|
84
129
|
url: a.url || a.download_url || a.downloadUrl || undefined,
|
|
85
130
|
}));
|
|
86
131
|
}
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25vcm1hbGl6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUtBLHdDQVlDO0FBZkQ7O0dBRUc7QUFDSCxTQUFnQixjQUFjLENBQUMsR0FBUSxFQUFFLGlCQUF5QixFQUFFO0lBQ2xFLE9BQU87UUFDTCxFQUFFLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQztRQUNwQixJQUFJLEVBQUUsYUFBYSxDQUFDLEdBQUcsQ0FBQztRQUN4QixFQUFFLEVBQUUsV0FBVyxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUM7UUFDcEMsT0FBTyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQztRQUM5QixJQUFJLEVBQUUsYUFBYSxDQUFDLEdBQUcsQ0FBQztRQUN4QixJQUFJLEVBQUUsYUFBYSxDQUFDLEdBQUcsQ0FBQztRQUN4QixJQUFJLEVBQUUsYUFBYSxDQUFDLEdBQUcsQ0FBQztRQUN4QixNQUFNLEVBQUUsZUFBZSxDQUFDLEdBQUcsQ0FBQztRQUM1QixXQUFXLEVBQUUsb0JBQW9CLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQztLQUNuRCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEdBQVE7SUFDM0IsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLFNBQVMsSUFBSSxHQUFHLENBQUMsU0FBUyxJQUFJLEdBQUcsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO0lBQy9GLE9BQU8sTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3BCLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxHQUFRO0lBQzdCLE9BQU8sR0FBRyxDQUFDLFlBQVksSUFBSSxHQUFHLENBQUMsWUFBWSxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLFdBQVcsSUFBSSxHQUFHLENB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QU8sR0FBRyxDQUFDLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDO0lBQ3pELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELFNBQVMsb0JBQW9CLENBQUMsV0FBZ0I7SUFDNUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDM0QsT0FBTyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRTtRQUNwQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsUUFBUSxJQUFJLFNBQVM7UUFDdkMsV0FBVyxFQUFFLENBQUMsQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxTQUFTLElBQUksU0FBUztRQUN0RixHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxXQUFXLElBQUksU0FBUztLQUMzRCxDQUFDLENBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbWFpbCwgRW1haWxBdHRhY2htZW50IH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICog5bCG5ZCE5o+Q5L6b5ZWG6L+U5Zue55qE5Y6f5aeL6YKu5Lu25pWw5o2u5qCH5YeG5YyW5Li657uf5LiA55qEIEVtYWlsIOagvOW8j1xuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplRW1haWwocmF3OiBhbnksIHJlY2lwaWVudEVtYWlsOiBzdHJpbmcgPSAnJyk6IEVtYWlsIHtcbiAgcmV0dXJuIHtcbiAgICBpZDogbm9ybWFsaXplSWQocmF3KSxcbiAgICBmcm9tOiBub3JtYWxpemVGcm9tKHJhdyksXG4gICAgdG86IG5vcm1hbGl6ZVRvKHJhdywgcmVjaXBpZW50RW1haWwpLFxuICAgIHN1YmplY3Q6IG5vcm1hbGl6ZVN1YmplY3QocmF3KSxcbiAgICB0ZXh0OiBub3JtYWxpemVUZXh0KHJhdyksXG4gICAgaHRtbDogbm9ybWFsaXplSHRtbChyYXcpLFxuICAgIGRhdGU6IG5vcm1hbGl6ZURhdGUocmF3KSxcbiAgICBpc1JlYWQ6IG5vcm1hbGl6ZUlzUmVhZChyYXcpLFxuICAgIGF0dGFjaG1lbnRzOiBub3JtYWxpemVBdHRhY2htZW50cyhyYXcuYXR0YWNobWVudHMpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVJZChyYXc6IGFueSk6IHN0cmluZyB7XG4gIGNvbnN0IGlkID0gcmF3LmlkID8/IHJhdy5laWQgPz8gcmF3Ll9pZCA/PyByYXcubWFpbGJveElkID8/IHJhdy5tZXNzYWdlSWQgPz8gcmF3Lm1haWxfaWQgPz8gJyc7XG4gIHJldHVybiBTdHJpbmcoaWQpO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVGcm9tKHJhdzogYW55KTogc3RyaW5nIHtcbiAgcmV0dXJuIHJhdy5mcm9tX2FkZHJlc3MgfHwgcmF3LmFkZHJlc3NfZnJvbSB8fCByYXcuZnJvbSB8fCByYXcubWVzc2FnZUZyb20gfHwgcmF3LnNlbmRlciB8fCAnJztcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplVG8ocmF3OiBhbnksIHJlY2lwaWVudEVtYWlsOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcmF3LnRvIHx8IHJhdy50b19hZGRyZXNzIHx8IHJhdy5uYW1lX3RvIHx8IHJhdy5lbWFpbF9hZGRyZXNzIHx8IHJhdy5hZGRyZXNzIHx8IHJlY2lwaWVudEVtYWlsIHx8ICcnO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVTdWJqZWN0KHJhdzogYW55KTogc3RyaW5nIHtcbiAgcmV0dXJuIHJhdy5zdWJqZWN0IHx8IHJhdy5lX3N1YmplY3QgfHwgJyc7XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZVRleHQocmF3OiBhbnkpOiBzdHJpbmcge1xuICByZXR1cm4gcmF3LnRleHQgfHwgcmF3LmJvZHkgfHwgcmF3LmNvbnRlbnQgfHwgcmF3LmJvZHlfdGV4dCB8fCByYXcudGV4dF9jb250ZW50IHx8ICcnO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVIdG1sKHJhdzogYW55KTogc3RyaW5nIHtcbiAgcmV0dXJuIHJhdy5odG1sIHx8IHJhdy5odG1sX2NvbnRlbnQgfHwgcmF3LmJvZHlfaHRtbCB8fCAnJztcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplRGF0ZShyYXc6IGFueSk6IHN0cmluZyB7XG4gIHRyeSB7XG4gICAgaWYgKHJhdy5yZWNlaXZlZF9hdCkgcmV0dXJuIG5ldyBEYXRlKHJhdy5yZWNlaXZlZF9hdCkudG9JU09TdHJpbmcoKTtcbiAgICBpZiAocmF3LmNyZWF0ZWRfYXQpIHJldHVybiBuZXcgRGF0ZShyYXcuY3JlYXRlZF9hdCkudG9JU09TdHJpbmcoKTtcbiAgICBpZiAocmF3LmNyZWF0ZWRBdCkgcmV0dXJuIG5ldyBEYXRlKHJhdy5jcmVhdGVkQXQpLnRvSVNPU3RyaW5nKCk7XG4gICAgaWYgKHJhdy5kYXRlKSB7XG4gICAgICBpZiAodHlwZW9mIHJhdy5kYXRlID09PSAnbnVtYmVyJykgcmV0dXJuIG5ldyBEYXRlKHJhdy5kYXRlKS50b0lTT1N0cmluZygpO1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKHJhdy5kYXRlKS50b0lTT1N0cmluZygpO1xuICAgIH1cbiAgICBpZiAocmF3LnRpbWVzdGFtcCkgcmV0dXJuIG5ldyBEYXRlKHJhdy50aW1lc3RhbXAgKiAxMDAwKS50b0lTT1N0cmluZygpO1xuICAgIGlmIChyYXcuZV9kYXRlKSByZXR1cm4gbmV3IERhdGUocmF3LmVfZGF0ZSkudG9JU09TdHJpbmcoKTtcbiAgfSBjYXRjaCB7XG4gICAgLy8g5pel5pyf6Kej5p6Q5aSx6LSl77yM6L+U5Zue56m65a2X56ym5LiyXG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVJc1JlYWQocmF3OiBhbnkpOiBib29sZWFuIHtcbiAgaWYgKHR5cGVvZiByYXcuc2VlbiA9PT0gJ2Jvb2xlYW4nKSByZXR1cm4gcmF3LnNlZW47XG4gIGlmICh0eXBlb2YgcmF3LnJlYWQgPT09ICdib29sZWFuJykgcmV0dXJuIHJhdy5yZWFkO1xuICBpZiAodHlwZW9mIHJhdy5pc1JlYWQgPT09ICdib29sZWFuJykgcmV0dXJuIHJhdy5pc1JlYWQ7XG4gIGlmICh0eXBlb2YgcmF3LmlzX3JlYWQgPT09ICdudW1iZXInKSByZXR1cm4gcmF3LmlzX3JlYWQgPT09IDE7XG4gIGlmICh0eXBlb2YgcmF3LmlzX3JlYWQgPT09ICdzdHJpbmcnKSByZXR1cm4gcmF3LmlzX3JlYWQgPT09ICcxJztcbiAgaWYgKHR5cGVvZiByYXcuaXNfcmVhZCA9PT0gJ2Jvb2xlYW4nKSByZXR1cm4gcmF3LmlzX3JlYWQ7XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplQXR0YWNobWVudHMoYXR0YWNobWVudHM6IGFueSk6IEVtYWlsQXR0YWNobWVudFtdIHtcbiAgaWYgKCFhdHRhY2htZW50cyB8fCAhQXJyYXkuaXNBcnJheShhdHRhY2htZW50cykpIHJldHVybiBbXTtcbiAgcmV0dXJuIGF0dGFjaG1lbnRzLm1hcCgoYTogYW55KSA9PiAoe1xuICAgIGZpbGVuYW1lOiBhLmZpbGVuYW1lIHx8IGEubmFtZSB8fCAnJyxcbiAgICBzaXplOiBhLnNpemUgfHwgYS5maWxlc2l6ZSB8fCB1bmRlZmluZWQsXG4gICAgY29udGVudFR5cGU6IGEuY29udGVudFR5cGUgfHwgYS5jb250ZW50X3R5cGUgfHwgYS5taW1lVHlwZSB8fCBhLm1pbWVfdHlwZSB8fCB1bmRlZmluZWQsXG4gICAgdXJsOiBhLnVybCB8fCBhLmRvd25sb2FkX3VybCB8fCBhLmRvd25sb2FkVXJsIHx8IHVuZGVmaW5lZCxcbiAgfSkpO1xufVxuIl19
|
|
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
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Guerrilla Mail 渠道实现
|
|
3
|
+
* API 文档: https://www.guerrillamail.com/GuerrillaMailAPI.html
|
|
4
|
+
*
|
|
5
|
+
* 特点:
|
|
6
|
+
* - 无需认证,公开 JSON API
|
|
7
|
+
* - 通过 sid_token 维持会话
|
|
8
|
+
* - 邮箱有效期 60 分钟
|
|
9
|
+
*/
|
|
10
|
+
import { EmailInfo, Email } from '../types';
|
|
11
|
+
/**
|
|
12
|
+
* 创建临时邮箱
|
|
13
|
+
* API: GET ajax.php?f=get_email_address
|
|
14
|
+
* 返回 email_addr + sid_token(用于后续获取邮件)
|
|
15
|
+
*/
|
|
16
|
+
export declare function generateEmail(): Promise<EmailInfo>;
|
|
17
|
+
/**
|
|
18
|
+
* 获取邮件列表
|
|
19
|
+
* API: GET ajax.php?f=check_email&seq=0&sid_token=xxx
|
|
20
|
+
* 返回 list 数组,每个元素包含 mail_id, mail_from, mail_subject, mail_body 等
|
|
21
|
+
*/
|
|
22
|
+
export declare function getEmails(token: string, email: string): Promise<Email[]>;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Guerrilla Mail 渠道实现
|
|
4
|
+
* API 文档: https://www.guerrillamail.com/GuerrillaMailAPI.html
|
|
5
|
+
*
|
|
6
|
+
* 特点:
|
|
7
|
+
* - 无需认证,公开 JSON API
|
|
8
|
+
* - 通过 sid_token 维持会话
|
|
9
|
+
* - 邮箱有效期 60 分钟
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.generateEmail = generateEmail;
|
|
13
|
+
exports.getEmails = getEmails;
|
|
14
|
+
const normalize_1 = require("../normalize");
|
|
15
|
+
const CHANNEL = 'guerrillamail';
|
|
16
|
+
const BASE_URL = 'https://api.guerrillamail.com/ajax.php';
|
|
17
|
+
/**
|
|
18
|
+
* 创建临时邮箱
|
|
19
|
+
* API: GET ajax.php?f=get_email_address
|
|
20
|
+
* 返回 email_addr + sid_token(用于后续获取邮件)
|
|
21
|
+
*/
|
|
22
|
+
async function generateEmail() {
|
|
23
|
+
const response = await fetch(`${BASE_URL}?f=get_email_address&lang=en`, {
|
|
24
|
+
method: 'GET',
|
|
25
|
+
headers: {
|
|
26
|
+
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
if (!response.ok) {
|
|
30
|
+
throw new Error(`Failed to generate email: ${response.status}`);
|
|
31
|
+
}
|
|
32
|
+
const data = await response.json();
|
|
33
|
+
if (!data.email_addr || !data.sid_token) {
|
|
34
|
+
throw new Error('Failed to generate email: missing email_addr or sid_token');
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
channel: CHANNEL,
|
|
38
|
+
email: data.email_addr,
|
|
39
|
+
token: data.sid_token,
|
|
40
|
+
expiresAt: data.email_timestamp ? (data.email_timestamp + 3600) * 1000 : undefined,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* 获取邮件列表
|
|
45
|
+
* API: GET ajax.php?f=check_email&seq=0&sid_token=xxx
|
|
46
|
+
* 返回 list 数组,每个元素包含 mail_id, mail_from, mail_subject, mail_body 等
|
|
47
|
+
*/
|
|
48
|
+
async function getEmails(token, email) {
|
|
49
|
+
const response = await fetch(`${BASE_URL}?f=check_email&seq=0&sid_token=${encodeURIComponent(token)}`, {
|
|
50
|
+
method: 'GET',
|
|
51
|
+
headers: {
|
|
52
|
+
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
if (!response.ok) {
|
|
56
|
+
throw new Error(`Failed to get emails: ${response.status}`);
|
|
57
|
+
}
|
|
58
|
+
const data = await response.json();
|
|
59
|
+
const list = Array.isArray(data.list) ? data.list : [];
|
|
60
|
+
return list.map((item) => (0, normalize_1.normalizeEmail)({
|
|
61
|
+
id: item.mail_id,
|
|
62
|
+
from: item.mail_from,
|
|
63
|
+
to: email,
|
|
64
|
+
subject: item.mail_subject,
|
|
65
|
+
text: item.mail_body || item.mail_excerpt || '',
|
|
66
|
+
html: item.mail_body || '',
|
|
67
|
+
date: item.mail_date || '',
|
|
68
|
+
isRead: item.mail_read === 1,
|
|
69
|
+
}, email));
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VlcnJpbGxhbWFpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92aWRlcnMvZ3VlcnJpbGxhbWFpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7O0dBUUc7O0FBYUgsc0NBd0JDO0FBT0QsOEJBeUJDO0FBbEVELDRDQUE4QztBQUU5QyxNQUFNLE9BQU8sR0FBWSxlQUFlLENBQUM7QUFDekMsTUFBTSxRQUFRLEdBQUcsd0NBQXdDLENBQUM7QUFFMUQ7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxhQUFhO0lBQ2pDLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsUUFBUSw4QkFBOEIsRUFBRTtRQUN0RSxNQUFNLEVBQUUsS0FBSztRQUNiLE9BQU8sRUFBRTtZQUNQLFlBQVksRUFBRSw4REFBOEQ7U0FDN0U7S0FDRixDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUVuQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN4QyxNQUFNLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLEVBQUUsT0FBTztRQUNoQixLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVU7UUFDdEIsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTO1FBQ3JCLFNBQVMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTO0tBQ25GLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxTQUFTLENBQUMsS0FBYSxFQUFFLEtBQWE7SUFDMUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsR0FBRyxRQUFRLGtDQUFrQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFO1FBQ3JHLE1BQU0sRUFBRSxLQUFLO1FBQ2IsT0FBTyxFQUFFO1lBQ1AsWUFBWSxFQUFFLDhEQUE4RDtTQUM3RTtLQUNGLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25DLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFFdkQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFBLDBCQUFjLEVBQUM7UUFDNUMsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPO1FBQ2hCLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUztRQUNwQixFQUFFLEVBQUUsS0FBSztRQUNULE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWTtRQUMxQixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLEVBQUU7UUFDL0MsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRTtRQUMxQixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFO1FBQzFCLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxLQUFLLENBQUM7S0FDN0IsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR3VlcnJpbGxhIE1haWwg5rig6YGT5a6e546wXG4gKiBBUEkg5paH5qGjOiBodHRwczovL3d3dy5ndWVycmlsbGFtYWlsLmNvbS9HdWVycmlsbGFNYWlsQVBJLmh0bWxcbiAqIFxuICog54m554K5OlxuICogLSDml6DpnIDorqTor4HvvIzlhazlvIAgSlNPTiBBUElcbiAqIC0g6YCa6L+HIHNpZF90b2tlbiDnu7TmjIHkvJror51cbiAqIC0g6YKu566x5pyJ5pWI5pyfIDYwIOWIhumSn1xuICovXG5cbmltcG9ydCB7IEVtYWlsSW5mbywgRW1haWwsIENoYW5uZWwgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBub3JtYWxpemVFbWFpbCB9IGZyb20gJy4uL25vcm1hbGl6ZSc7XG5cbmNvbnN0IENIQU5ORUw6IENoYW5uZWwgPSAnZ3VlcnJpbGxhbWFpbCc7XG5jb25zdCBCQVNFX1VSTCA9ICdodHRwczovL2FwaS5ndWVycmlsbGFtYWlsLmNvbS9hamF4LnBocCc7XG5cbi8qKlxuICog5Yib5bu65Li05pe26YKu566xXG4gKiBBUEk6IEdFVCBhamF4LnBocD9mPWdldF9lbWFpbF9hZGRyZXNzXG4gKiDov5Tlm54gZW1haWxfYWRkciArIHNpZF90b2tlbu+8iOeUqOS6juWQjue7reiOt+WPlumCruS7tu+8iVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVFbWFpbCgpOiBQcm9taXNlPEVtYWlsSW5mbz4ge1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke0JBU0VfVVJMfT9mPWdldF9lbWFpbF9hZGRyZXNzJmxhbmc9ZW5gLCB7XG4gICAgbWV0aG9kOiAnR0VUJyxcbiAgICBoZWFkZXJzOiB7XG4gICAgICAnVXNlci1BZ2VudCc6ICdNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYnLFxuICAgIH0sXG4gIH0pO1xuXG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBnZW5lcmF0ZSBlbWFpbDogJHtyZXNwb25zZS5zdGF0dXN9YCk7XG4gIH1cblxuICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuXG4gIGlmICghZGF0YS5lbWFpbF9hZGRyIHx8ICFkYXRhLnNpZF90b2tlbikge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGdlbmVyYXRlIGVtYWlsOiBtaXNzaW5nIGVtYWlsX2FkZHIgb3Igc2lkX3Rva2VuJyk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGNoYW5uZWw6IENIQU5ORUwsXG4gICAgZW1haWw6IGRhdGEuZW1haWxfYWRkcixcbiAgICB0b2tlbjogZGF0YS5zaWRfdG9rZW4sXG4gICAgZXhwaXJlc0F0OiBkYXRhLmVtYWlsX3RpbWVzdGFtcCA/IChkYXRhLmVtYWlsX3RpbWVzdGFtcCArIDM2MDApICogMTAwMCA6IHVuZGVmaW5lZCxcbiAgfTtcbn1cblxuLyoqXG4gKiDojrflj5bpgq7ku7bliJfooahcbiAqIEFQSTogR0VUIGFqYXgucGhwP2Y9Y2hlY2tfZW1haWwmc2VxPTAmc2lkX3Rva2VuPXh4eFxuICog6L+U5ZueIGxpc3Qg5pWw57uE77yM5q+P5Liq5YWD57Sg5YyF5ZCrIG1haWxfaWQsIG1haWxfZnJvbSwgbWFpbF9zdWJqZWN0LCBtYWlsX2JvZHkg562JXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRFbWFpbHModG9rZW46IHN0cmluZywgZW1haWw6IHN0cmluZyk6IFByb21pc2U8RW1haWxbXT4ge1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke0JBU0VfVVJMfT9mPWNoZWNrX2VtYWlsJnNlcT0wJnNpZF90b2tlbj0ke2VuY29kZVVSSUNvbXBvbmVudCh0b2tlbil9YCwge1xuICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgaGVhZGVyczoge1xuICAgICAgJ1VzZXItQWdlbnQnOiAnTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2JyxcbiAgICB9LFxuICB9KTtcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZ2V0IGVtYWlsczogJHtyZXNwb25zZS5zdGF0dXN9YCk7XG4gIH1cblxuICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICBjb25zdCBsaXN0ID0gQXJyYXkuaXNBcnJheShkYXRhLmxpc3QpID8gZGF0YS5saXN0IDogW107XG5cbiAgcmV0dXJuIGxpc3QubWFwKChpdGVtOiBhbnkpID0+IG5vcm1hbGl6ZUVtYWlsKHtcbiAgICBpZDogaXRlbS5tYWlsX2lkLFxuICAgIGZyb206IGl0ZW0ubWFpbF9mcm9tLFxuICAgIHRvOiBlbWFpbCxcbiAgICBzdWJqZWN0OiBpdGVtLm1haWxfc3ViamVjdCxcbiAgICB0ZXh0OiBpdGVtLm1haWxfYm9keSB8fCBpdGVtLm1haWxfZXhjZXJwdCB8fCAnJyxcbiAgICBodG1sOiBpdGVtLm1haWxfYm9keSB8fCAnJyxcbiAgICBkYXRlOiBpdGVtLm1haWxfZGF0ZSB8fCAnJyxcbiAgICBpc1JlYWQ6IGl0ZW0ubWFpbF9yZWFkID09PSAxLFxuICB9LCBlbWFpbCkpO1xufVxuIl19
|
|
@@ -33,7 +33,11 @@ async function getDomains() {
|
|
|
33
33
|
throw new Error(`Failed to get domains: ${response.status}`);
|
|
34
34
|
}
|
|
35
35
|
const data = await response.json();
|
|
36
|
-
|
|
36
|
+
/* 兼容两种响应格式:
|
|
37
|
+
* - Accept: application/ld+json → Hydra 格式 { "hydra:member": [...] }
|
|
38
|
+
* - Accept: application/json → 纯数组 [...]
|
|
39
|
+
*/
|
|
40
|
+
const members = Array.isArray(data) ? data : (data['hydra:member'] || []);
|
|
37
41
|
return members
|
|
38
42
|
.filter((d) => d.isActive)
|
|
39
43
|
.map((d) => d.domain);
|
|
@@ -135,7 +139,8 @@ async function getEmails(token, email) {
|
|
|
135
139
|
throw new Error(`Failed to get emails: ${listResponse.status}`);
|
|
136
140
|
}
|
|
137
141
|
const listData = await listResponse.json();
|
|
138
|
-
|
|
142
|
+
/* 兼容 Hydra 格式和纯数组格式 */
|
|
143
|
+
const messages = Array.isArray(listData) ? listData : (listData['hydra:member'] || []);
|
|
139
144
|
if (messages.length === 0) {
|
|
140
145
|
return [];
|
|
141
146
|
}
|
|
@@ -164,4 +169,4 @@ async function getEmails(token, email) {
|
|
|
164
169
|
const flatMessages = await Promise.all(detailPromises);
|
|
165
170
|
return flatMessages.map((raw) => (0, normalize_1.normalizeEmail)(raw, email));
|
|
166
171
|
}
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbC10bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92aWRlcnMvbWFpbC10bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXNGQSxzQ0F5QkM7QUE2QkQsOEJBK0NDO0FBMUxELDRDQUE4QztBQUU5QyxNQUFNLE9BQU8sR0FBWSxTQUFTLENBQUM7QUFDbkMsTUFBTSxRQUFRLEdBQUcscUJBQXFCLENBQUM7QUFFdkMsTUFBTSxlQUFlLEdBQTJCO0lBQzlDLGNBQWMsRUFBRSxrQkFBa0I7SUFDbEMsUUFBUSxFQUFFLGtCQUFrQjtDQUM3QixDQUFDO0FBRUY7O0dBRUc7QUFDSCxTQUFTLFlBQVksQ0FBQyxNQUFjO0lBQ2xDLE1BQU0sS0FBSyxHQUFHLHNDQUFzQyxDQUFDO0lBQ3JELElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNoQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7R0FHRztBQUNILEtBQUssVUFBVSxVQUFVO0lBQ3ZCLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsUUFBUSxVQUFVLEVBQUU7UUFDbEQsTUFBTSxFQUFFLEtBQUs7UUFDYixPQUFPLEVBQUUsZUFBZTtLQUN6QixDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxN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RSxFQUFFLENBQUM7Z0JBQ3ZCLG9CQUFvQjtnQkFDcEIsT0FBTyxjQUFjLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3BDLENBQUM7WUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMzQyxPQUFPLGNBQWMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLGNBQWM7WUFDZCxPQUFPLGNBQWMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxZQUFZLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3ZELE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsSUFBQSwwQkFBYyxFQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3BFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbWFpbEluZm8sIEVtYWlsLCBDaGFubmVsIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgbm9ybWFsaXplRW1haWwgfSBmcm9tICcuLi9ub3JtYWxpemUnO1xuXG5jb25zdCBDSEFOTkVMOiBDaGFubmVsID0gJ21haWwtdG0nO1xuY29uc3QgQkFTRV9VUkwgPSAnaHR0cHM6Ly9hcGkubWFpbC50bSc7XG5cbmNvbnN0IERFRkFVTFRfSEVBREVSUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbn07XG5cbi8qKlxuICog55Sf5oiQ6ZqP5py65a2X56ym5LiyXG4gKi9cbmZ1bmN0aW9uIHJhbmRvbVN0cmluZyhsZW5ndGg6IG51bWJlcik6IHN0cmluZyB7XG4gIGNvbnN0IGNoYXJzID0gJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSc7XG4gIGxldCByZXN1bHQgPSAnJztcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgIHJlc3VsdCArPSBjaGFyc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFycy5sZW5ndGgpXTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIOiOt+WPluWPr+eUqOWfn+WQjeWIl+ihqFxuICogQVBJOiBHRVQgL2RvbWFpbnNcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0RG9tYWlucygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7QkFTRV9VUkx9L2RvbWFpbnNgLCB7XG4gICAgbWV0aG9kOiAnR0VUJyxcbiAgICBoZWFkZXJzOiBERUZBVUxUX0hFQURFUlMsXG4gIH0pO1xuXG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBnZXQgZG9tYWluczogJHtyZXNwb25zZS5zdGF0dXN9YCk7XG4gIH1cblxuICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICBjb25zdCBtZW1iZXJzID0gZGF0YVsnaHlkcmE6bWVtYmVyJ10gfHwgW107XG4gIHJldHVybiBtZW1iZXJzXG4gICAgLmZpbHRlcigoZDogYW55KSA9PiBkLmlzQWN0aXZlKVxuICAgIC5tYXAoKGQ6IGFueSkgPT4gZC5kb21haW4pO1xufVxuXG4vKipcbiAqIOWIm+W7uui0puWPt1xuICogQVBJOiBQT1NUIC9hY2NvdW50c1xuICovXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVBY2NvdW50KGFkZHJlc3M6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7QkFTRV9VUkx9L2FjY291bnRzYCwge1xuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGhlYWRlcnM6IHsgLi4uREVGQVVMVF9IRUFERVJTLCAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2xkK2pzb24nIH0sXG4gICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBhZGRyZXNzLCBwYXNzd29yZCB9KSxcbiAgfSk7XG5cbiAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgIGNvbnN0IHRleHQgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gY3JlYXRlIGFjY291bnQ6ICR7cmVzcG9uc2Uuc3RhdHVzfSAke3RleHR9YCk7XG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2UuanNvbigpO1xufVxuXG4vKipcbiAqIOiOt+WPliBCZWFyZXIgVG9rZW5cbiAqIEFQSTogUE9TVCAvdG9rZW5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0VG9rZW4oYWRkcmVzczogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtCQVNFX1VSTH0vdG9rZW5gLCB7XG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgaGVhZGVyczogREVGQVVMVF9IRUFERVJTLFxuICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgYWRkcmVzcywgcGFzc3dvcmQgfSksXG4gIH0pO1xuXG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBnZXQgdG9rZW46ICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICB9XG5cbiAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgcmV0dXJuIGRhdGEudG9rZW47XG59XG5cbi8qKlxuICog5Yib5bu65Li05pe26YKu566xXG4gKiDmtYHnqIs6IOiOt+WPluWfn+WQjSDihpIg55Sf5oiQ6ZqP5py66YKu566xL+WvhueggSDihpIg5Yib5bu66LSm5Y+3IOKGkiDojrflj5YgVG9rZW5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlRW1haWwoKTogUHJvbWlzZTxFbWFpbEluZm8+IHtcbiAgLy8gMS4g6I635Y+W5Y+v55So5Z+f5ZCNXG4gIGNvbnN0IGRvbWFpbnMgPSBhd2FpdCBnZXREb21haW5zKCk7XG4gIGlmIChkb21haW5zLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignTm8gYXZhaWxhYmxlIGRvbWFpbnMnKTtcbiAgfVxuXG4gIC8vIDIuIOeUn+aIkOmaj+acuumCrueuseWSjOWvhueggVxuICBjb25zdCBkb21haW4gPSBkb21haW5zW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGRvbWFpbnMubGVuZ3RoKV07XG4gIGNvbnN0IHVzZXJuYW1lID0gcmFuZG9tU3RyaW5nKDEyKTtcbiAgY29uc3QgYWRkcmVzcyA9IGAke3VzZXJuYW1lfUAke2RvbWFpbn1gO1xuICBjb25zdCBwYXNzd29yZCA9IHJhbmRvbVN0cmluZygxNik7XG5cbiAgLy8gMy4g5Yib5bu66LSm5Y+3XG4gIGNvbnN0IGFjY291bnQgPSBhd2FpdCBjcmVhdGVBY2NvdW50KGFkZHJlc3MsIHBhc3N3b3JkKTtcblxuICAvLyA0LiDojrflj5YgQmVhcmVyIFRva2VuXG4gIGNvbnN0IHRva2VuID0gYXdhaXQgZ2V0VG9rZW4oYWRkcmVzcywgcGFzc3dvcmQpO1xuXG4gIHJldHVybiB7XG4gICAgY2hhbm5lbDogQ0hBTk5FTCxcbiAgICBlbWFpbDogYWRkcmVzcyxcbiAgICB0b2tlbjogdG9rZW4sXG4gICAgY3JlYXRlZEF0OiBhY2NvdW50LmNyZWF0ZWRBdCxcbiAgfTtcbn1cblxuLyoqXG4gKiDlsIYgbWFpbC50bSDnmoTmtojmga/moLzlvI/miYHlubPljJbkuLogbm9ybWFsaXplRW1haWwg5Y+v5aSE55CG55qE5qC85byPXG4gKiBtYWlsLnRtIOeahCBmcm9tIOaYryB7bmFtZSwgYWRkcmVzc30g5a+56LGh77yMdG8g5piv5pWw57uE77yMaHRtbCDmmK/lrZfnrKbkuLLmlbDnu4RcbiAqL1xuZnVuY3Rpb24gZmxhdHRlbk1lc3NhZ2UobXNnOiBhbnksIHJlY2lwaWVudEVtYWlsOiBzdHJpbmcpOiBhbnkge1xuICByZXR1cm4ge1xuICAgIGlkOiBtc2cuaWQgfHwgJycsXG4gICAgZnJvbTogbXNnLmZyb20/LmFkZHJlc3MgfHwgJycsXG4gICAgdG86IG1zZy50bz8uWzBdPy5hZGRyZXNzIHx8IHJlY2lwaWVudEVtYWlsLFxuICAgIHN1YmplY3Q6IG1zZy5zdWJqZWN0IHx8ICcnLFxuICAgIHRleHQ6IG1zZy50ZXh0IHx8ICcnLFxuICAgIGh0bWw6IEFycmF5LmlzQXJyYXkobXNnLmh0bWwpID8gbXNnLmh0bWwuam9pbignJykgOiAobXNnLmh0bWwgfHwgJycpLFxuICAgIGNyZWF0ZWRBdDogbXNnLmNyZWF0ZWRBdCB8fCAnJyxcbiAgICBzZWVuOiBtc2cuc2VlbiA/PyBmYWxzZSxcbiAgICBhdHRhY2htZW50czogKG1zZy5hdHRhY2htZW50cyB8fCBbXSkubWFwKChhOiBhbnkpID0+ICh7XG4gICAgICBmaWxlbmFtZTogYS5maWxlbmFtZSB8fCAnJyxcbiAgICAgIHNpemU6IGEuc2l6ZSB8fCB1bmRlZmluZWQsXG4gICAgICBjb250ZW50VHlwZTogYS5jb250ZW50VHlwZSB8fCB1bmRlZmluZWQsXG4gICAgICBkb3dubG9hZFVybDogYS5kb3dubG9hZFVybCA/IGAke0JBU0VfVVJMfSR7YS5kb3dubG9hZFVybH1gIDogdW5kZWZpbmVkLFxuICAgIH0pKSxcbiAgfTtcbn1cblxuLyoqXG4gKiDojrflj5bpgq7ku7bliJfooahcbiAqIOa1geeoizogR0VUIC9tZXNzYWdlcyDojrflj5bliJfooagg4oaSIOWvueavj+WwgemCruS7tiBHRVQgL21lc3NhZ2VzL3tpZH0g6I635Y+W6K+m5oOF77yI5ZCrIHRleHQvaHRtbO+8iVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RW1haWxzKHRva2VuOiBzdHJpbmcsIGVtYWlsOiBzdHJpbmcpOiBQcm9taXNlPEVtYWlsW10+IHtcbiAgLy8gMS4g6I635Y+W6YKu5Lu25YiX6KGoXG4gIGNvbnN0IGxpc3RSZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke0JBU0VfVVJMfS9tZXNzYWdlc2AsIHtcbiAgICBtZXRob2Q6ICdHRVQnLFxuICAgIGhlYWRlcnM6IHtcbiAgICAgIC4uLkRFRkFVTFRfSEVBREVSUyxcbiAgICAgICdBdXRob3JpemF0aW9uJzogYEJlYXJlciAke3Rva2VufWAsXG4gICAgfSxcbiAgfSk7XG5cbiAgaWYgKCFsaXN0UmVzcG9uc2Uub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBnZXQgZW1haWxzOiAke2xpc3RSZXNwb25zZS5zdGF0dXN9YCk7XG4gIH1cblxuICBjb25zdCBsaXN0RGF0YSA9IGF3YWl0IGxpc3RSZXNwb25zZS5qc29uKCk7XG4gIGNvbnN0IG1lc3NhZ2VzID0gbGlzdERhdGFbJ2h5ZHJhOm1lbWJlciddIHx8IFtdO1xuXG4gIGlmIChtZXNzYWdlcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICAvLyAyLiDlubbooYzojrflj5bmr4/lsIHpgq7ku7bnmoTor6bmg4XvvIjlkKsgdGV4dC9odG1sL2F0dGFjaG1lbnRz77yJXG4gIGNvbnN0IGRldGFpbFByb21pc2VzID0gbWVzc2FnZXMubWFwKGFzeW5jIChtc2c6IGFueSkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkZXRhaWxSZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke0JBU0VfVVJMfS9tZXNzYWdlcy8ke21zZy5pZH1gLCB7XG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAuLi5ERUZBVUxUX0hFQURFUlMsXG4gICAgICAgICAgJ0F1dGhvcml6YXRpb24nOiBgQmVhcmVyICR7dG9rZW59YCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoIWRldGFpbFJlc3BvbnNlLm9rKSB7XG4gICAgICAgIC8vIOWmguaenOivpuaDheiOt+WPluWksei0pe+8jOmAgOWbnuS9v+eUqOWIl+ihqOaVsOaNrlxuICAgICAgICByZXR1cm4gZmxhdHRlbk1lc3NhZ2UobXNnLCBlbWFpbCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRldGFpbCA9IGF3YWl0IGRldGFpbFJlc3BvbnNlLmpzb24oKTtcbiAgICAgIHJldHVybiBmbGF0dGVuTWVzc2FnZShkZXRhaWwsIGVtYWlsKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIOWHuumUmeaXtumAgOWbnuS9v+eUqOWIl+ihqOaVsOaNrlxuICAgICAgcmV0dXJuIGZsYXR0ZW5NZXNzYWdlKG1zZywgZW1haWwpO1xuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgZmxhdE1lc3NhZ2VzID0gYXdhaXQgUHJvbWlzZS5hbGwoZGV0YWlsUHJvbWlzZXMpO1xuICByZXR1cm4gZmxhdE1lc3NhZ2VzLm1hcCgocmF3OiBhbnkpID0+IG5vcm1hbGl6ZUVtYWlsKHJhdywgZW1haWwpKTtcbn1cbiJdfQ==
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbC10bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92aWRlcnMvbWFpbC10bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQTBGQSxzQ0F5QkM7QUE2QkQsOEJBZ0RDO0FBL0xELDRDQUE4QztBQUU5QyxNQUFNLE9BQU8sR0FBWSxTQUFTLENBQUM7QUFDbkMsTUFBTSxRQUFRLEdBQUcscUJBQXFCLENBQUM7QUFFdkMsTUFBTSxlQUFlLEdBQTJCO0lBQzlDLGNBQWMsRUFBRSxrQkFBa0I7SUFDbEMsUUFBUSxFQUFFLGtCQUFrQjtDQUM3QixDQUFDO0FBRUY7O0dBRUc7QUFDSCxTQUFTLFlBQVksQ0FBQyxNQUFjO0lBQ2xDLE1BQU0sS0FBSyxHQUFHLHNDQUFzQyxDQUFDO0lBQ3JELElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNoQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7R0FHRztBQUNILEtBQUssVUFBVSxVQUFVO0lBQ3ZCLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsUUFBUSxVQUFVLEVBQUU7UUFDbEQsTUFBTSxFQUFFLEtBQUs7UUFDYixPQUFPLEVBQUUsZUFBZTtLQUN6QixDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNuQzs7O09BR0c7SUFDSCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLE9BQU8sT0FBTztTQUNYLE1BQU0sQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztTQUM5QixHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsS0FBSyxVQUFVLGFBQWEsQ0FBQyxPQUFlLEVBQUUsUUFBZ0I7SUFDNUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsR0FBRyxRQUFRLFdBQVcsRUFBRTtRQUNuRCxNQUFNLEVBQUUsTUFBTTtRQUNkLE9BQU8sRUFBRSxFQUFFLEdBQUcsZUFBZSxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRTtRQUN0RSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQztLQUM1QyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLFFBQVEsQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDekIsQ0FBQztBQUVEOzs7R0FHRztBQUNILEtBQUssVUFBVSxRQUFRLENBQUMsT0FBZSxFQUFFLFFBQWdCO0lBQ3ZELE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsUUFBUSxRQUFRLEVBQUU7UUFDaEQsTUFBTSxFQUFFLE1BQU07UUFDZCxPQUFPLEVBQUUsZUFBZTtRQUN4QixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQztLQUM1QyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNuQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7QUFDcEIsQ0FBQztBQUVEOzs7R0FHRztBQUNJLEtBQUssVUFBVSxhQUFhO0lBQ2pDLFlBQVk7SUFDWixNQUFNLE9BQU8sR0FBRyxNQUFNLFVBQVUsRUFBRSxDQUFDO0lBQ25DLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELGVBQWU7SUFDZixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDbkUsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sT0FBTyxHQUFHLEdBQUcsUUFBUSxJQUFJLE1BQU0sRUFBRSxDQUFDO0lBQ3hDLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUVsQyxVQUFVO0lBQ1YsTUFBTSxPQUFPLEdBQUcsTUFBTSxhQUFhLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBRXZELHFCQUFxQjtJQUNyQixNQUFNLEtBQUssR0FBRyxNQUFNLFFBQVEsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFFaEQsT0FBTztRQUNMLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLEtBQUssRUFBRSxPQUFPO1FBQ2QsS0FBSyxFQUFFLEtBQUs7UUFDWixTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVM7S0FDN0IsQ0FBQztBQUNKLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLGNBQWMsQ0FBQyxHQUFRLEVBQUUsY0FBc0I7SUFDdEQsT0FBTztRQUNMLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUU7UUFDaEIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxJQUFJLEVBQUU7UUFDN0IsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLElBQUksY0FBYztRQUMxQyxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFO1FBQzFCLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUU7UUFDcEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNwRSxTQUFTLEVBQUUsR0FBRyxDQUFDLFNBQVMsSUFBSSxFQUFFO1FBQzlCLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxJQUFJLEtBQUs7UUFDdkIsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDcEQsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRTtZQUMxQixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxTQUFTO1lBQ3pCLFdBQVcsRUFBRSxDQUFDLENBQUMsV0FBVyxJQUFJLFNBQVM7WUFDdkMsV0FBVyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztTQUN2RSxDQUFDLENBQUM7S0FDSixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNJLEtBQUssVUFBVSxTQUFTLENBQUMsS0FBYSxFQUFFLEtBQWE7SUFDMUQsWUFBWTtJQUNaLE1BQU0sWUFBWSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsUUFBUSxXQUFXLEVBQUU7UUFDdkQsTUFBTSxFQUFFLEtBQUs7UUFDYixPQUFPLEVBQUU7WUFDUCxHQUFHLGVBQWU7WUFDbEIsZUFBZSxFQUFFLFVBQVUsS0FBSyxFQUFFO1NBQ25DO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0MsdUJBQXVCO0lBQ3ZCLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFFdkYsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzFCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELDBDQUEwQztJQUMxQyxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFRLEVBQUUsRUFBRTtRQUNyRCxJQUFJLENBQUM7WUFDSCxNQUFNLGNBQWMsR0FBRyxNQUFNLEtBQUssQ0FBQyxHQUFHLFFBQVEsYUFBYSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUU7Z0JBQ25FLE1BQU0sRUFBRSxLQUFLO2dCQUNiLE9BQU8sRUFBRTtvQkFDUCxHQUFHLGVBQWU7b0JBQ2xCLGVBQWUsRUFBRSxVQUFVLEtBQUssRUFBRTtpQkFDbkM7YUFDRixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUN2QixvQkFBb0I7Z0JBQ3BCLE9BQU8sY0FBYyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNwQyxDQUFDO1lBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDM0MsT0FBTyxjQUFjLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxjQUFjO1lBQ2QsT0FBTyxjQUFjLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sWUFBWSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN2RCxPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLElBQUEsMEJBQWMsRUFBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNwRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW1haWxJbmZvLCBFbWFpbCwgQ2hhbm5lbCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IG5vcm1hbGl6ZUVtYWlsIH0gZnJvbSAnLi4vbm9ybWFsaXplJztcblxuY29uc3QgQ0hBTk5FTDogQ2hhbm5lbCA9ICdtYWlsLXRtJztcbmNvbnN0IEJBU0VfVVJMID0gJ2h0dHBzOi8vYXBpLm1haWwudG0nO1xuXG5jb25zdCBERUZBVUxUX0hFQURFUlM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICdBY2NlcHQnOiAnYXBwbGljYXRpb24vanNvbicsXG59O1xuXG4vKipcbiAqIOeUn+aIkOmaj+acuuWtl+espuS4slxuICovXG5mdW5jdGlvbiByYW5kb21TdHJpbmcobGVuZ3RoOiBudW1iZXIpOiBzdHJpbmcge1xuICBjb25zdCBjaGFycyA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODknO1xuICBsZXQgcmVzdWx0ID0gJyc7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICByZXN1bHQgKz0gY2hhcnNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhcnMubGVuZ3RoKV07XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiDojrflj5blj6/nlKjln5/lkI3liJfooahcbiAqIEFQSTogR0VUIC9kb21haW5zXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldERvbWFpbnMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke0JBU0VfVVJMfS9kb21haW5zYCwge1xuICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgaGVhZGVyczogREVGQVVMVF9IRUFERVJTLFxuICB9KTtcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZ2V0IGRvbWFpbnM6ICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICB9XG5cbiAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgLyog5YW85a655Lik56eN5ZON5bqU5qC85byP77yaXG4gICAqIC0gQWNjZXB0OiBhcHBsaWNhdGlvbi9sZCtqc29uIOKGkiBIeWRyYSDmoLzlvI8geyBcImh5ZHJhOm1lbWJlclwiOiBbLi4uXSB9XG4gICAqIC0gQWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uICAg4oaSIOe6r+aVsOe7hCBbLi4uXVxuICAgKi9cbiAgY29uc3QgbWVtYmVycyA9IEFycmF5LmlzQXJyYXkoZGF0YSkgPyBkYXRhIDogKGRhdGFbJ2h5ZHJhOm1lbWJlciddIHx8IFtdKTtcbiAgcmV0dXJuIG1lbWJlcnNcbiAgICAuZmlsdGVyKChkOiBhbnkpID0+IGQuaXNBY3RpdmUpXG4gICAgLm1hcCgoZDogYW55KSA9PiBkLmRvbWFpbik7XG59XG5cbi8qKlxuICog5Yib5bu66LSm5Y+3XG4gKiBBUEk6IFBPU1QgL2FjY291bnRzXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUFjY291bnQoYWRkcmVzczogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtCQVNFX1VSTH0vYWNjb3VudHNgLCB7XG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgaGVhZGVyczogeyAuLi5ERUZBVUxUX0hFQURFUlMsICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vbGQranNvbicgfSxcbiAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IGFkZHJlc3MsIHBhc3N3b3JkIH0pLFxuICB9KTtcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgY29uc3QgdGV4dCA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBjcmVhdGUgYWNjb3VudDogJHtyZXNwb25zZS5zdGF0dXN9ICR7dGV4dH1gKTtcbiAgfVxuXG4gIHJldHVybiByZXNwb25zZS5qc29uKCk7XG59XG5cbi8qKlxuICog6I635Y+WIEJlYXJlciBUb2tlblxuICogQVBJOiBQT1NUIC90b2tlblxuICovXG5hc3luYyBmdW5jdGlvbiBnZXRUb2tlbihhZGRyZXNzOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke0JBU0VfVVJMfS90b2tlbmAsIHtcbiAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICBoZWFkZXJzOiBERUZBVUxUX0hFQURFUlMsXG4gICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBhZGRyZXNzLCBwYXNzd29yZCB9KSxcbiAgfSk7XG5cbiAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGdldCB0b2tlbjogJHtyZXNwb25zZS5zdGF0dXN9YCk7XG4gIH1cblxuICBjb25zdCBkYXRhID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICByZXR1cm4gZGF0YS50b2tlbjtcbn1cblxuLyoqXG4gKiDliJvlu7rkuLTml7bpgq7nrrFcbiAqIOa1geeoizog6I635Y+W5Z+f5ZCNIOKGkiDnlJ/miJDpmo/mnLrpgq7nrrEv5a+G56CBIOKGkiDliJvlu7rotKblj7cg4oaSIOiOt+WPliBUb2tlblxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVFbWFpbCgpOiBQcm9taXNlPEVtYWlsSW5mbz4ge1xuICAvLyAxLiDojrflj5blj6/nlKjln5/lkI1cbiAgY29uc3QgZG9tYWlucyA9IGF3YWl0IGdldERvbWFpbnMoKTtcbiAgaWYgKGRvbWFpbnMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdObyBhdmFpbGFibGUgZG9tYWlucycpO1xuICB9XG5cbiAgLy8gMi4g55Sf5oiQ6ZqP5py66YKu566x5ZKM5a+G56CBXG4gIGNvbnN0IGRvbWFpbiA9IGRvbWFpbnNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogZG9tYWlucy5sZW5ndGgpXTtcbiAgY29uc3QgdXNlcm5hbWUgPSByYW5kb21TdHJpbmcoMTIpO1xuICBjb25zdCBhZGRyZXNzID0gYCR7dXNlcm5hbWV9QCR7ZG9tYWlufWA7XG4gIGNvbnN0IHBhc3N3b3JkID0gcmFuZG9tU3RyaW5nKDE2KTtcblxuICAvLyAzLiDliJvlu7rotKblj7dcbiAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGNyZWF0ZUFjY291bnQoYWRkcmVzcywgcGFzc3dvcmQpO1xuXG4gIC8vIDQuIOiOt+WPliBCZWFyZXIgVG9rZW5cbiAgY29uc3QgdG9rZW4gPSBhd2FpdCBnZXRUb2tlbihhZGRyZXNzLCBwYXNzd29yZCk7XG5cbiAgcmV0dXJuIHtcbiAgICBjaGFubmVsOiBDSEFOTkVMLFxuICAgIGVtYWlsOiBhZGRyZXNzLFxuICAgIHRva2VuOiB0b2tlbixcbiAgICBjcmVhdGVkQXQ6IGFjY291bnQuY3JlYXRlZEF0LFxuICB9O1xufVxuXG4vKipcbiAqIOWwhiBtYWlsLnRtIOeahOa2iOaBr+agvOW8j+aJgeW5s+WMluS4uiBub3JtYWxpemVFbWFpbCDlj6/lpITnkIbnmoTmoLzlvI9cbiAqIG1haWwudG0g55qEIGZyb20g5pivIHtuYW1lLCBhZGRyZXNzfSDlr7nosaHvvIx0byDmmK/mlbDnu4TvvIxodG1sIOaYr+Wtl+espuS4suaVsOe7hFxuICovXG5mdW5jdGlvbiBmbGF0dGVuTWVzc2FnZShtc2c6IGFueSwgcmVjaXBpZW50RW1haWw6IHN0cmluZyk6IGFueSB7XG4gIHJldHVybiB7XG4gICAgaWQ6IG1zZy5pZCB8fCAnJyxcbiAgICBmcm9tOiBtc2cuZnJvbT8uYWRkcmVzcyB8fCAnJyxcbiAgICB0bzogbXNnLnRvPy5bMF0/LmFkZHJlc3MgfHwgcmVjaXBpZW50RW1haWwsXG4gICAgc3ViamVjdDogbXNnLnN1YmplY3QgfHwgJycsXG4gICAgdGV4dDogbXNnLnRleHQgfHwgJycsXG4gICAgaHRtbDogQXJyYXkuaXNBcnJheShtc2cuaHRtbCkgPyBtc2cuaHRtbC5qb2luKCcnKSA6IChtc2cuaHRtbCB8fCAnJyksXG4gICAgY3JlYXRlZEF0OiBtc2cuY3JlYXRlZEF0IHx8ICcnLFxuICAgIHNlZW46IG1zZy5zZWVuID8/IGZhbHNlLFxuICAgIGF0dGFjaG1lbnRzOiAobXNnLmF0dGFjaG1lbnRzIHx8IFtdKS5tYXAoKGE6IGFueSkgPT4gKHtcbiAgICAgIGZpbGVuYW1lOiBhLmZpbGVuYW1lIHx8ICcnLFxuICAgICAgc2l6ZTogYS5zaXplIHx8IHVuZGVmaW5lZCxcbiAgICAgIGNvbnRlbnRUeXBlOiBhLmNvbnRlbnRUeXBlIHx8IHVuZGVmaW5lZCxcbiAgICAgIGRvd25sb2FkVXJsOiBhLmRvd25sb2FkVXJsID8gYCR7QkFTRV9VUkx9JHthLmRvd25sb2FkVXJsfWAgOiB1bmRlZmluZWQsXG4gICAgfSkpLFxuICB9O1xufVxuXG4vKipcbiAqIOiOt+WPlumCruS7tuWIl+ihqFxuICog5rWB56iLOiBHRVQgL21lc3NhZ2VzIOiOt+WPluWIl+ihqCDihpIg5a+55q+P5bCB6YKu5Lu2IEdFVCAvbWVzc2FnZXMve2lkfSDojrflj5bor6bmg4XvvIjlkKsgdGV4dC9odG1s77yJXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRFbWFpbHModG9rZW46IHN0cmluZywgZW1haWw6IHN0cmluZyk6IFByb21pc2U8RW1haWxbXT4ge1xuICAvLyAxLiDojrflj5bpgq7ku7bliJfooahcbiAgY29uc3QgbGlzdFJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7QkFTRV9VUkx9L21lc3NhZ2VzYCwge1xuICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgaGVhZGVyczoge1xuICAgICAgLi4uREVGQVVMVF9IRUFERVJTLFxuICAgICAgJ0F1dGhvcml6YXRpb24nOiBgQmVhcmVyICR7dG9rZW59YCxcbiAgICB9LFxuICB9KTtcblxuICBpZiAoIWxpc3RSZXNwb25zZS5vaykge1xuICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGdldCBlbWFpbHM6ICR7bGlzdFJlc3BvbnNlLnN0YXR1c31gKTtcbiAgfVxuXG4gIGNvbnN0IGxpc3REYXRhID0gYXdhaXQgbGlzdFJlc3BvbnNlLmpzb24oKTtcbiAgLyog5YW85a65IEh5ZHJhIOagvOW8j+WSjOe6r+aVsOe7hOagvOW8jyAqL1xuICBjb25zdCBtZXNzYWdlcyA9IEFycmF5LmlzQXJyYXkobGlzdERhdGEpID8gbGlzdERhdGEgOiAobGlzdERhdGFbJ2h5ZHJhOm1lbWJlciddIHx8IFtdKTtcblxuICBpZiAobWVzc2FnZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgLy8gMi4g5bm26KGM6I635Y+W5q+P5bCB6YKu5Lu255qE6K+m5oOF77yI5ZCrIHRleHQvaHRtbC9hdHRhY2htZW50c++8iVxuICBjb25zdCBkZXRhaWxQcm9taXNlcyA9IG1lc3NhZ2VzLm1hcChhc3luYyAobXNnOiBhbnkpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZGV0YWlsUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtCQVNFX1VSTH0vbWVzc2FnZXMvJHttc2cuaWR9YCwge1xuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgLi4uREVGQVVMVF9IRUFERVJTLFxuICAgICAgICAgICdBdXRob3JpemF0aW9uJzogYEJlYXJlciAke3Rva2VufWAsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgaWYgKCFkZXRhaWxSZXNwb25zZS5vaykge1xuICAgICAgICAvLyDlpoLmnpzor6bmg4Xojrflj5blpLHotKXvvIzpgIDlm57kvb/nlKjliJfooajmlbDmja5cbiAgICAgICAgcmV0dXJuIGZsYXR0ZW5NZXNzYWdlKG1zZywgZW1haWwpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBkZXRhaWwgPSBhd2FpdCBkZXRhaWxSZXNwb25zZS5qc29uKCk7XG4gICAgICByZXR1cm4gZmxhdHRlbk1lc3NhZ2UoZGV0YWlsLCBlbWFpbCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyDlh7rplJnml7bpgIDlm57kvb/nlKjliJfooajmlbDmja5cbiAgICAgIHJldHVybiBmbGF0dGVuTWVzc2FnZShtc2csIGVtYWlsKTtcbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IGZsYXRNZXNzYWdlcyA9IGF3YWl0IFByb21pc2UuYWxsKGRldGFpbFByb21pc2VzKTtcbiAgcmV0dXJuIGZsYXRNZXNzYWdlcy5tYXAoKHJhdzogYW55KSA9PiBub3JtYWxpemVFbWFpbChyYXcsIGVtYWlsKSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maildrop 渠道实现
|
|
3
|
+
* API: GraphQL endpoint https://api.maildrop.cc/graphql
|
|
4
|
+
*
|
|
5
|
+
* 特点:
|
|
6
|
+
* - 无需认证,公开 GraphQL API
|
|
7
|
+
* - 自带反垃圾过滤
|
|
8
|
+
* - 邮箱名即用户名(任意字符串@maildrop.cc)
|
|
9
|
+
* - 无过期时间限制
|
|
10
|
+
*/
|
|
11
|
+
import { EmailInfo, Email } from '../types';
|
|
12
|
+
/**
|
|
13
|
+
* 创建临时邮箱
|
|
14
|
+
* Maildrop 无需注册,任意用户名即可接收邮件
|
|
15
|
+
*/
|
|
16
|
+
export declare function generateEmail(): Promise<EmailInfo>;
|
|
17
|
+
/**
|
|
18
|
+
* 获取邮件列表
|
|
19
|
+
* 先查 inbox 获取邮件 ID 列表,再逐封获取完整内容
|
|
20
|
+
*/
|
|
21
|
+
export declare function getEmails(token: string, email: string): Promise<Email[]>;
|