tempmail-sdk 1.1.9 → 1.2.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 +19 -3
- package/dist/config.d.ts +6 -0
- package/dist/config.js +13 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +79 -18
- package/dist/normalize.js +5 -3
- package/dist/providers/10mail-wangtz.d.ts +3 -0
- package/dist/providers/10mail-wangtz.js +117 -0
- package/dist/providers/10minute-one.d.ts +3 -0
- package/dist/providers/10minute-one.js +264 -0
- package/dist/providers/moakt.d.ts +3 -0
- package/dist/providers/moakt.js +214 -0
- package/dist/providers/ta-easy.d.ts +5 -0
- package/dist/providers/ta-easy.js +55 -0
- package/dist/providers/tempmail-cn.d.ts +3 -0
- package/dist/providers/tempmail-cn.js +341 -0
- package/dist/providers/tmpmails.d.ts +3 -0
- package/dist/providers/tmpmails.js +169 -0
- package/dist/retry.d.ts +18 -1
- package/dist/retry.js +38 -14
- package/dist/telemetry.d.ts +1 -0
- package/dist/telemetry.js +110 -0
- package/dist/types.d.ts +2 -2
- package/dist/types.js +1 -1
- package/dist/version.d.ts +1 -0
- package/dist/version.js +22 -0
- package/package.json +2 -2
- package/src/config.ts +15 -0
- package/src/index.ts +74 -16
- package/src/normalize.ts +4 -2
- package/src/providers/10mail-wangtz.ts +128 -0
- package/src/providers/10minute-one.ts +258 -0
- package/src/providers/moakt.ts +215 -0
- package/src/providers/ta-easy.ts +56 -0
- package/src/providers/tempmail-cn.ts +376 -0
- package/src/providers/tmpmails.ts +168 -0
- package/src/retry.ts +57 -5
- package/src/telemetry.ts +138 -0
- package/src/types.ts +2 -2
- package/src/version.ts +19 -0
package/dist/normalize.js
CHANGED
|
@@ -65,6 +65,7 @@ function normalizeFrom(raw) {
|
|
|
65
65
|
return (raw.from_addr ||
|
|
66
66
|
raw.from_address ||
|
|
67
67
|
raw.fromAddress ||
|
|
68
|
+
raw.mail_sender ||
|
|
68
69
|
raw.sender ||
|
|
69
70
|
raw.address_from ||
|
|
70
71
|
raw.from_email ||
|
|
@@ -84,7 +85,7 @@ function normalizeTo(raw, recipientEmail) {
|
|
|
84
85
|
* 候选字段: subject, e_subject
|
|
85
86
|
*/
|
|
86
87
|
function normalizeSubject(raw) {
|
|
87
|
-
return raw.subject || raw.e_subject || '';
|
|
88
|
+
return raw.subject || raw.e_subject || raw.mail_title || '';
|
|
88
89
|
}
|
|
89
90
|
/**
|
|
90
91
|
* 提取纯文本内容
|
|
@@ -94,6 +95,7 @@ function normalizeText(raw) {
|
|
|
94
95
|
return (raw.text ||
|
|
95
96
|
raw.text_body ||
|
|
96
97
|
raw.preview_text ||
|
|
98
|
+
raw.mail_body_text ||
|
|
97
99
|
raw.body ||
|
|
98
100
|
raw.content ||
|
|
99
101
|
raw.body_text ||
|
|
@@ -106,7 +108,7 @@ function normalizeText(raw) {
|
|
|
106
108
|
* 候选字段: html, html_content, body_html
|
|
107
109
|
*/
|
|
108
110
|
function normalizeHtml(raw) {
|
|
109
|
-
return raw.html || raw.html_body || raw.html_content || raw.body_html || '';
|
|
111
|
+
return raw.html || raw.html_body || raw.html_content || raw.body_html || raw.mail_body_html || '';
|
|
110
112
|
}
|
|
111
113
|
/**
|
|
112
114
|
* 提取并统一日期格式为 ISO 8601
|
|
@@ -176,4 +178,4 @@ function normalizeAttachments(attachments) {
|
|
|
176
178
|
url: a.url || a.download_url || a.downloadUrl || undefined,
|
|
177
179
|
}));
|
|
178
180
|
}
|
|
179
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25vcm1hbGl6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVlBLHdDQTBCQztBQXBDRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixjQUFjLENBQUMsR0FBUSxFQUFFLGlCQUF5QixFQUFFO0lBQ2xFLElBQUksSUFBSSxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QixJQUFJLElBQUksR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFOUI7Ozs7O09BS0c7SUFDSCxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN6QyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxPQUFPO1FBQ0wsRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUM7UUFDcEIsSUFBSSxFQUFFLGFBQWEsQ0FBQyxHQUFHLENBQUM7UUFDeEIsRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDO1FBQ3BDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUM7UUFDOUIsSUFBSTtRQUNKLElBQUk7UUFDSixJQUFJLEVBQUUsYUFBYSxDQUFDLEdBQUcsQ0FBQztRQUN4QixNQUFNLEVBQUUsZUFBZSxDQUFDLEdBQUcsQ0FBQztRQUM1QixXQUFXLEVBQUUsb0JBQW9CLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQztLQUNuRCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQVMsYUFBYSxDQUFDLE9BQWU7SUFDcEMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzdDLE9BQU8sT0FBTyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUN6QyxPQUFPLENBQUMs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QUFHLElBQUksQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUMsV0FBVyxJQUFJLFNBQVM7S0FDM0QsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW1haWwsIEVtYWlsQXR0YWNobWVudCB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIOWwhuWQhOaPkOS+m+WVhui/lOWbnueahOWOn+Wni+mCruS7tuaVsOaNruagh+WHhuWMluS4uue7n+S4gOeahCBFbWFpbCDmoLzlvI9cbiAqXG4gKiDkuI3lkIzmuKDpgZPnmoQgQVBJIOi/lOWbnuWtl+auteWQjeWQhOS4jeebuOWQjO+8jOatpOWHveaVsOmAmui/h+WkmuWtl+auteWAmemAieetlueVpVxuICog5bCG5a6D5Lus57uf5LiA5pig5bCE5Li65qCH5YeG55qEIEVtYWlsIOe7k+aehO+8jOS/neivgSBTREsg6L6T5Ye65LiA6Ie05oCn44CCXG4gKlxuICogQHBhcmFtIHJhdyAtIOWOn+Wni+mCruS7tuaVsOaNru+8iOadpeiHquS4jeWQjOaPkOS+m+WVhueahCBBUEkg5ZON5bqU77yJXG4gKiBAcGFyYW0gcmVjaXBpZW50RW1haWwgLSDmlLbku7bkurrpgq7nrrHlnLDlnYDvvIzlvZPljp/lp4vmlbDmja7kuK3ml6DmlLbku7bkurrlrZfmrrXml7bnlKjkvZzlm57pgIDlgLxcbiAqIEByZXR1cm5zIOagh+WHhuWMlueahCBFbWFpbCDlr7nosaFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUVtYWlsKHJhdzogYW55LCByZWNpcGllbnRFbWFpbDogc3RyaW5nID0gJycpOiBFbWFpbCB7XG4gIGxldCB0ZXh0ID0gbm9ybWFsaXplVGV4dChyYXcpO1xuICBsZXQgaHRtbCA9IG5vcm1hbGl6ZUh0bWwocmF3KTtcblxuICAvKlxuICAgKiDkv67mraMgdGV4dC9odG1sIOmUmemFje+8mlxuICAgKiDpg6jliIbmuKDpgZPlsIYgSFRNTCDlhoXlrrnmlL7lnKggYm9keS90ZXh0IOetieWtl+auteS4re+8jFxuICAgKiDlr7zoh7Qgbm9ybWFsaXplVGV4dCDmj5Dlj5bliLAgSFRNTCDlhoXlrrnogIwgbm9ybWFsaXplSHRtbCDkuLrnqbrjgIJcbiAgICog5qOA5rWLIHRleHQg5Lit5piv5ZCm5YyF5ZCrIEhUTUwg5qCH562+77yM5aaC5p6c5piv5YiZ56e75Yqo5YiwIGh0bWwg5a2X5q6144CCXG4gICAqL1xuICBpZiAodGV4dCAmJiAhaHRtbCAmJiBpc0h0bWxDb250ZW50KHRleHQpKSB7XG4gICAgaHRtbCA9IHRleHQ7XG4gICAgdGV4dCA9ICcnO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBpZDogbm9ybWFsaXplSWQocmF3KSxcbiAgICBmcm9tOiBub3JtYWxpemVGcm9tKHJhdyksXG4gICAgdG86IG5vcm1hbGl6ZVRvKHJhdywgcmVjaXBpZW50RW1haWwpLFxuICAgIHN1YmplY3Q6IG5vcm1hbGl6ZVN1YmplY3QocmF3KSxcbiAgICB0ZXh0LFxuICAgIGh0bWwsXG4gICAgZGF0ZTogbm9ybWFsaXplRGF0ZShyYXcpLFxuICAgIGlzUmVhZDogbm9ybWFsaXplSXNSZWFkKHJhdyksXG4gICAgYXR0YWNobWVudHM6IG5vcm1hbGl6ZUF0dGFjaG1lbnRzKHJhdy5hdHRhY2htZW50cyksXG4gIH07XG59XG5cbi8qKlxuICog5qOA5rWL5YaF5a655piv5ZCm5Li6IEhUTUxcbiAqIOmAmui/h+ajgOafpeaYr+WQpuWMheWQq+W4uOingeeahCBIVE1MIOagh+etvuadpeWIpOaWrVxuICovXG5mdW5jdGlvbiBpc0h0bWxDb250ZW50KGNvbnRlbnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCB0cmltbWVkID0gY29udGVudC50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgcmV0dXJuIHRyaW1tZWQuc3RhcnRzV2l0aCgnPCFkb2N0eXBlIGh0bWwnKSB8fFxuICAgIHRyaW1tZWQuc3RhcnRzV2l0aCgnPGh0bWwnKSB8fFxuICAgIHRyaW1tZWQuc3RhcnRzV2l0aCgnPGJvZHknKSB8fFxuICAgICh0cmltbWVkLmluY2x1ZGVzKCc8ZGl2JykgJiYgdHJpbW1lZC5pbmNsdWRlcygnPC9kaXY+JykpIHx8XG4gICAgKHRyaW1tZWQuaW5jbHVkZXMoJzx0YWJsZScpICYmIHRyaW1tZWQuaW5jbHVkZXMoJzwvdGFibGU+JykpIHx8XG4gICAgKHRyaW1tZWQuaW5jbHVkZXMoJzxwJykgJiYgdHJpbW1lZC5pbmNsdWRlcygnPC9wPicpICYmIHRyaW1tZWQuaW5jbHVkZXMoJzwnKSk7XG59XG5cbi8qKlxuICog5o+Q5Y+W6YKu5Lu2IElEXG4gKiDlgJnpgInlrZfmrrU6IGlkLCBlaWQsIF9pZCwgbWFpbGJveElkLCBtZXNzYWdlSWQsIG1haWxfaWRcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplSWQocmF3OiBhbnkpOiBzdHJpbmcge1xuICBjb25zdCBpZCA9IHJhdy5pZCA/PyByYXcuZWlkID8/IHJhdy5faWQgPz8gcmF3Lm1haWxib3hJZCA/PyByYXcubWVzc2FnZUlkID8/IHJhdy5tYWlsX2lkID8/ICcnO1xuICByZXR1cm4gU3RyaW5nKGlkKTtcbn1cblxuLyoqXG4gKiDmj5Dlj5blj5Hku7bkurrlnLDlnYBcbiAqIOWAmemAieWtl+autTogZnJvbV9hZGRyZXNzLCBhZGRyZXNzX2Zyb20sIGZyb20sIG1lc3NhZ2VGcm9tLCBzZW5kZXJcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplRnJvbShyYXc6IGFueSk6IHN0cmluZyB7XG4gIHJldHVybiAoXG4gICAgcmF3LmZyb21fYWRkciB8fFxuICAgIHJhdy5mcm9tX2FkZHJlc3MgfHxcbiAgICByYXcuZnJvbUFkZHJlc3MgfHxcbiAgICByYXcuc2VuZGVyIHx8XG4gICAgcmF3LmFkZHJlc3NfZnJvbSB8fFxuICAgIHJhdy5mcm9tX2VtYWlsIHx8XG4gICAgcmF3LmZyb20gfHxcbiAgICByYXcubWVzc2FnZUZyb20gfHxcbiAgICAnJ1xuICApO1xufVxuXG4vKipcbiAqIOaPkOWPluaUtuS7tuS6uuWcsOWdgO+8jOaXoOWMuemFjeWtl+auteaXtuWbnumAgOS4uiByZWNpcGllbnRFbWFpbFxuICog5YCZ6YCJ5a2X5q61OiB0bywgdG9fYWRkcmVzcywgbmFtZV90bywgZW1haWxfYWRkcmVzcywgYWRkcmVzc1xuICovXG5mdW5jdGlvbiBub3JtYWxpemVUbyhyYXc6IGFueSwgcmVjaXBpZW50RW1haWw6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiByYXcudG8gfHwgcmF3LnRvX2FkZHJlc3MgfHwgcmF3LnRvQWRkcmVzcyB8fCByYXcubmFtZV90byB8fCByYXcuZW1haWxfYWRkcmVzcyB8fCByYXcuYWRkcmVzcyB8fCByZWNpcGllbnRFbWFpbCB8fCAnJztcbn1cblxuLyoqXG4gKiDmj5Dlj5bpgq7ku7bkuLvpophcbiAqIOWAmemAieWtl+autTogc3ViamVjdCwgZV9zdWJqZWN0XG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVN1YmplY3QocmF3OiBhbnkpOiBzdHJpbmcge1xuICByZXR1cm4gcmF3LnN1YmplY3QgfHwgcmF3LmVfc3ViamVjdCB8fCAnJztcbn1cblxuLyoqXG4gKiDmj5Dlj5bnuq/mlofmnKzlhoXlrrlcbiAqIOWAmemAieWtl+autTogdGV4dCwgYm9keSwgY29udGVudCwgYm9keV90ZXh0LCB0ZXh0X2NvbnRlbnRcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplVGV4dChyYXc6IGFueSk6IHN0cmluZyB7XG4gIHJldHVybiAoXG4gICAgcmF3LnRleHQgfHxcbiAgICByYXcudGV4dF9ib2R5IHx8XG4gICAgcmF3LnByZXZpZXdfdGV4dCB8fFxuICAgIHJhdy5ib2R5IHx8XG4gICAgcmF3LmNvbnRlbnQgfHxcbiAgICByYXcuYm9keV90ZXh0IHx8XG4gICAgcmF3LnRleHRfY29udGVudCB8fFxuICAgIHJhdy5kZXNjcmlwdGlvbiB8fFxuICAgICcnXG4gICk7XG59XG5cbi8qKlxuICog5o+Q5Y+WIEhUTUwg5YaF5a65XG4gKiDlgJnpgInlrZfmrrU6IGh0bWwsIGh0bWxfY29udGVudCwgYm9keV9odG1sXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZUh0bWwocmF3OiBhbnkpOiBzdHJpbmcge1xuICByZXR1cm4gcmF3Lmh0bWwgfHwgcmF3Lmh0bWxfYm9keSB8fCByYXcuaHRtbF9jb250ZW50IHx8IHJhdy5ib2R5X2h0bWwgfHwgJyc7XG59XG5cbi8qKlxuICog5o+Q5Y+W5bm257uf5LiA5pel5pyf5qC85byP5Li6IElTTyA4NjAxXG4gKiDlgJnpgInlrZfmrrU6IHJlY2VpdmVkX2F0LCBjcmVhdGVkX2F0LCBjcmVhdGVkQXQsIGRhdGUsIHRpbWVzdGFtcCwgZV9kYXRlXG4gKiDlhbbkuK0gdGltZXN0YW1wIOS4uiBVbml4IOenkue6p+aXtumXtOaIs++8jOmcgOS5mOS7pSAxMDAwIOi9rOS4uuavq+enklxuICovXG5mdW5jdGlvbiBub3JtYWxpemVEYXRlKHJhdzogYW55KTogc3RyaW5nIHtcbiAgdHJ5IHtcbiAgICBpZiAocmF3LnJlY2VpdmVkX2F0KSByZXR1cm4gbmV3IERhdGUocmF3LnJlY2VpdmVkX2F0KS50b0lTT1N0cmluZygpO1xuICAgIGlmIChyYXcucmVjZWl2ZWRBdCkgcmV0dXJuIG5ldyBEYXRlKFN0cmluZyhyYXcucmVjZWl2ZWRBdCkucmVwbGFjZSgnICcsICdUJykpLnRvSVNPU3RyaW5nKCk7XG4gICAgaWYgKHJhdy5jcmVhdGVkX2F0KSByZXR1cm4gbmV3IERhdGUocmF3LmNyZWF0ZWRfYXQpLnRvSVNPU3RyaW5nKCk7XG4gICAgaWYgKHJhdy5jcmVhdGVkQXQpIHJldHVybiBuZXcgRGF0ZShyYXcuY3JlYXRlZEF0KS50b0lTT1N0cmluZygpO1xuICAgIGlmIChyYXcuZGF0ZSkge1xuICAgICAgaWYgKHR5cGVvZiByYXcuZGF0ZSA9PT0gJ251bWJlcicpIHJldHVybiBuZXcgRGF0ZShyYXcuZGF0ZSkudG9JU09TdHJpbmcoKTtcbiAgICAgIHJldHVybiBuZXcgRGF0ZShyYXcuZGF0ZSkudG9JU09TdHJpbmcoKTtcbiAgICB9XG4gICAgaWYgKHJhdy50aW1lc3RhbXApIHJldHVybiBuZXcgRGF0ZShyYXcudGltZXN0YW1wICogMTAwMCkudG9JU09TdHJpbmcoKTtcbiAgICBpZiAocmF3LmVfZGF0ZSkgcmV0dXJuIG5ldyBEYXRlKHJhdy5lX2RhdGUpLnRvSVNPU3RyaW5nKCk7XG4gIH0gY2F0Y2gge1xuICAgIC8qIOaXpeacn+ino+aekOWksei0pe+8jOi/lOWbnuepuuWtl+espuS4siAqL1xuICB9XG4gIHJldHVybiAnJztcbn1cblxuLyoqXG4gKiDmj5Dlj5blt7Lor7vnirbmgIFcbiAqIOWAmemAieWtl+autTogc2VlbiwgcmVhZCwgaXNSZWFkLCBpc19yZWFkXG4gKiDmlK/mjIEgYm9vbGVhbiAvIG51bWJlcigwfDEpIC8gc3RyaW5nKCcwJ3wnMScpIOWkmuenjeexu+Wei1xuICovXG5mdW5jdGlvbiBub3JtYWxpemVJc1JlYWQocmF3OiBhbnkpOiBib29sZWFuIHtcbiAgaWYgKHR5cGVvZiByYXcuc2VlbiA9PT0gJ2Jvb2xlYW4nKSByZXR1cm4gcmF3LnNlZW47XG4gIGlmICh0eXBlb2YgcmF3LnJlYWQgPT09ICdib29sZWFuJykgcmV0dXJuIHJhdy5yZWFkO1xuICBpZiAodHlwZW9mIHJhdy5pc1JlYWQgPT09ICdib29sZWFuJykgcmV0dXJuIHJhdy5pc1JlYWQ7XG4gIGlmICh0eXBlb2YgcmF3LmlzX3NlZW4gPT09ICdudW1iZXInKSByZXR1cm4gcmF3LmlzX3NlZW4gPT09IDE7XG4gIGlmICh0eXBlb2YgcmF3LmlzX3NlZW4gPT09ICdzdHJpbmcnKSByZXR1cm4gcmF3LmlzX3NlZW4gPT09ICcxJztcbiAgaWYgKHR5cGVvZiByYXcuaXNfcmVhZCA9PT0gJ251bWJlcicpIHJldHVybiByYXcuaXNfcmVhZCA9PT0gMTtcbiAgaWYgKHR5cGVvZiByYXcuaXNfcmVhZCA9PT0gJ3N0cmluZycpIHJldHVybiByYXcuaXNfcmVhZCA9PT0gJzEnO1xuICBpZiAodHlwZW9mIHJhdy5pc19yZWFkID09PSAnYm9vbGVhbicpIHJldHVybiByYXcuaXNfcmVhZDtcbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIOaPkOWPluW5tuagh+WHhuWMlumZhOS7tuWIl+ihqFxuICog5q+P5Liq6ZmE5Lu255qE5a2X5q615Lmf6YeH55So5aSa5YCZ6YCJ562W55Wl5pig5bCEXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZUF0dGFjaG1lbnRzKGF0dGFjaG1lbnRzOiBhbnkpOiBFbWFpbEF0dGFjaG1lbnRbXSB7XG4gIGlmICghYXR0YWNobWVudHMgfHwgIUFycmF5LmlzQXJyYXkoYXR0YWNobWVudHMpKSByZXR1cm4gW107XG4gIHJldHVybiBhdHRhY2htZW50cy5tYXAoKGE6IGFueSkgPT4gKHtcbiAgICBmaWxlbmFtZTogYS5maWxlbmFtZSB8fCBhLm5hbWUgfHwgJycsXG4gICAgc2l6ZTogYS5zaXplIHx8IGEuZmlsZXNpemUgfHwgdW5kZWZpbmVkLFxuICAgIGNvbnRlbnRUeXBlOiBhLmNvbnRlbnRUeXBlIHx8IGEuY29udGVudF90eXBlIHx8IGEubWltZVR5cGUgfHwgYS5taW1lX3R5cGUgfHwgdW5kZWZpbmVkLFxuICAgIHVybDogYS51cmwgfHwgYS5kb3dubG9hZF91cmwgfHwgYS5kb3dubG9hZFVybCB8fCB1bmRlZmluZWQsXG4gIH0pKTtcbn1cbiJdfQ==
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25vcm1hbGl6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVlBLHdDQTBCQztBQXBDRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixjQUFjLENBQUMsR0FBUSxFQUFFLGlCQUF5QixFQUFFO0lBQ2xFLElBQUksSUFBSSxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QixJQUFJLElBQUksR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFOUI7Ozs7O09BS0c7SUFDSCxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN6QyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxPQUFPO1FBQ0wsRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUM7UUFDcEIsSUFBSSxFQUFFLGFBQWEsQ0FBQyxHQUFHLENBQUM7UUFDeEIsRUFBRSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDO1FBQ3BDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUM7UUFDOUIsSUFBSTtRQUNKLElBQUk7UUFDSixJQUFJLEVBQUUsYUFBYSxDQUFDLEdBQUcsQ0FBQztRQUN4QixNQUFNLEVBQUUsZUFBZSxDQUFDLEdBQUcsQ0FBQztRQUM1QixXQUFXLEVBQUUsb0JBQW9CLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQztLQUNuRCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQVMsYUFBYSxDQUFDLE9BQWU7SUFDcEMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzdDLE9BQU8sT0FBTyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUN6QyxPQUFPLENBQUMs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QUFZLElBQUksQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsU0FBUyxJQUFJLFNBQVM7UUFDdEYsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUMsV0FBVyxJQUFJLFNBQVM7S0FDM0QsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW1haWwsIEVtYWlsQXR0YWNobWVudCB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIOWwhuWQhOaPkOS+m+WVhui/lOWbnueahOWOn+Wni+mCruS7tuaVsOaNruagh+WHhuWMluS4uue7n+S4gOeahCBFbWFpbCDmoLzlvI9cbiAqXG4gKiDkuI3lkIzmuKDpgZPnmoQgQVBJIOi/lOWbnuWtl+auteWQjeWQhOS4jeebuOWQjO+8jOatpOWHveaVsOmAmui/h+WkmuWtl+auteWAmemAieetlueVpVxuICog5bCG5a6D5Lus57uf5LiA5pig5bCE5Li65qCH5YeG55qEIEVtYWlsIOe7k+aehO+8jOS/neivgSBTREsg6L6T5Ye65LiA6Ie05oCn44CCXG4gKlxuICogQHBhcmFtIHJhdyAtIOWOn+Wni+mCruS7tuaVsOaNru+8iOadpeiHquS4jeWQjOaPkOS+m+WVhueahCBBUEkg5ZON5bqU77yJXG4gKiBAcGFyYW0gcmVjaXBpZW50RW1haWwgLSDmlLbku7bkurrpgq7nrrHlnLDlnYDvvIzlvZPljp/lp4vmlbDmja7kuK3ml6DmlLbku7bkurrlrZfmrrXml7bnlKjkvZzlm57pgIDlgLxcbiAqIEByZXR1cm5zIOagh+WHhuWMlueahCBFbWFpbCDlr7nosaFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUVtYWlsKHJhdzogYW55LCByZWNpcGllbnRFbWFpbDogc3RyaW5nID0gJycpOiBFbWFpbCB7XG4gIGxldCB0ZXh0ID0gbm9ybWFsaXplVGV4dChyYXcpO1xuICBsZXQgaHRtbCA9IG5vcm1hbGl6ZUh0bWwocmF3KTtcblxuICAvKlxuICAgKiDkv67mraMgdGV4dC9odG1sIOmUmemFje+8mlxuICAgKiDpg6jliIbmuKDpgZPlsIYgSFRNTCDlhoXlrrnmlL7lnKggYm9keS90ZXh0IOetieWtl+auteS4re+8jFxuICAgKiDlr7zoh7Qgbm9ybWFsaXplVGV4dCDmj5Dlj5bliLAgSFRNTCDlhoXlrrnogIwgbm9ybWFsaXplSHRtbCDkuLrnqbrjgIJcbiAgICog5qOA5rWLIHRleHQg5Lit5piv5ZCm5YyF5ZCrIEhUTUwg5qCH562+77yM5aaC5p6c5piv5YiZ56e75Yqo5YiwIGh0bWwg5a2X5q6144CCXG4gICAqL1xuICBpZiAodGV4dCAmJiAhaHRtbCAmJiBpc0h0bWxDb250ZW50KHRleHQpKSB7XG4gICAgaHRtbCA9IHRleHQ7XG4gICAgdGV4dCA9ICcnO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBpZDogbm9ybWFsaXplSWQocmF3KSxcbiAgICBmcm9tOiBub3JtYWxpemVGcm9tKHJhdyksXG4gICAgdG86IG5vcm1hbGl6ZVRvKHJhdywgcmVjaXBpZW50RW1haWwpLFxuICAgIHN1YmplY3Q6IG5vcm1hbGl6ZVN1YmplY3QocmF3KSxcbiAgICB0ZXh0LFxuICAgIGh0bWwsXG4gICAgZGF0ZTogbm9ybWFsaXplRGF0ZShyYXcpLFxuICAgIGlzUmVhZDogbm9ybWFsaXplSXNSZWFkKHJhdyksXG4gICAgYXR0YWNobWVudHM6IG5vcm1hbGl6ZUF0dGFjaG1lbnRzKHJhdy5hdHRhY2htZW50cyksXG4gIH07XG59XG5cbi8qKlxuICog5qOA5rWL5YaF5a655piv5ZCm5Li6IEhUTUxcbiAqIOmAmui/h+ajgOafpeaYr+WQpuWMheWQq+W4uOingeeahCBIVE1MIOagh+etvuadpeWIpOaWrVxuICovXG5mdW5jdGlvbiBpc0h0bWxDb250ZW50KGNvbnRlbnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCB0cmltbWVkID0gY29udGVudC50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgcmV0dXJuIHRyaW1tZWQuc3RhcnRzV2l0aCgnPCFkb2N0eXBlIGh0bWwnKSB8fFxuICAgIHRyaW1tZWQuc3RhcnRzV2l0aCgnPGh0bWwnKSB8fFxuICAgIHRyaW1tZWQuc3RhcnRzV2l0aCgnPGJvZHknKSB8fFxuICAgICh0cmltbWVkLmluY2x1ZGVzKCc8ZGl2JykgJiYgdHJpbW1lZC5pbmNsdWRlcygnPC9kaXY+JykpIHx8XG4gICAgKHRyaW1tZWQuaW5jbHVkZXMoJzx0YWJsZScpICYmIHRyaW1tZWQuaW5jbHVkZXMoJzwvdGFibGU+JykpIHx8XG4gICAgKHRyaW1tZWQuaW5jbHVkZXMoJzxwJykgJiYgdHJpbW1lZC5pbmNsdWRlcygnPC9wPicpICYmIHRyaW1tZWQuaW5jbHVkZXMoJzwnKSk7XG59XG5cbi8qKlxuICog5o+Q5Y+W6YKu5Lu2IElEXG4gKiDlgJnpgInlrZfmrrU6IGlkLCBlaWQsIF9pZCwgbWFpbGJveElkLCBtZXNzYWdlSWQsIG1haWxfaWRcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplSWQocmF3OiBhbnkpOiBzdHJpbmcge1xuICBjb25zdCBpZCA9IHJhdy5pZCA/PyByYXcuZWlkID8/IHJhdy5faWQgPz8gcmF3Lm1haWxib3hJZCA/PyByYXcubWVzc2FnZUlkID8/IHJhdy5tYWlsX2lkID8/ICcnO1xuICByZXR1cm4gU3RyaW5nKGlkKTtcbn1cblxuLyoqXG4gKiDmj5Dlj5blj5Hku7bkurrlnLDlnYBcbiAqIOWAmemAieWtl+autTogZnJvbV9hZGRyZXNzLCBhZGRyZXNzX2Zyb20sIGZyb20sIG1lc3NhZ2VGcm9tLCBzZW5kZXJcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplRnJvbShyYXc6IGFueSk6IHN0cmluZyB7XG4gIHJldHVybiAoXG4gICAgcmF3LmZyb21fYWRkciB8fFxuICAgIHJhdy5mcm9tX2FkZHJlc3MgfHxcbiAgICByYXcuZnJvbUFkZHJlc3MgfHxcbiAgICByYXcubWFpbF9zZW5kZXIgfHxcbiAgICByYXcuc2VuZGVyIHx8XG4gICAgcmF3LmFkZHJlc3NfZnJvbSB8fFxuICAgIHJhdy5mcm9tX2VtYWlsIHx8XG4gICAgcmF3LmZyb20gfHxcbiAgICByYXcubWVzc2FnZUZyb20gfHxcbiAgICAnJ1xuICApO1xufVxuXG4vKipcbiAqIOaPkOWPluaUtuS7tuS6uuWcsOWdgO+8jOaXoOWMuemFjeWtl+auteaXtuWbnumAgOS4uiByZWNpcGllbnRFbWFpbFxuICog5YCZ6YCJ5a2X5q61OiB0bywgdG9fYWRkcmVzcywgbmFtZV90bywgZW1haWxfYWRkcmVzcywgYWRkcmVzc1xuICovXG5mdW5jdGlvbiBub3JtYWxpemVUbyhyYXc6IGFueSwgcmVjaXBpZW50RW1haWw6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiByYXcudG8gfHwgcmF3LnRvX2FkZHJlc3MgfHwgcmF3LnRvQWRkcmVzcyB8fCByYXcubmFtZV90byB8fCByYXcuZW1haWxfYWRkcmVzcyB8fCByYXcuYWRkcmVzcyB8fCByZWNpcGllbnRFbWFpbCB8fCAnJztcbn1cblxuLyoqXG4gKiDmj5Dlj5bpgq7ku7bkuLvpophcbiAqIOWAmemAieWtl+autTogc3ViamVjdCwgZV9zdWJqZWN0XG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVN1YmplY3QocmF3OiBhbnkpOiBzdHJpbmcge1xuICByZXR1cm4gcmF3LnN1YmplY3QgfHwgcmF3LmVfc3ViamVjdCB8fCByYXcubWFpbF90aXRsZSB8fCAnJztcbn1cblxuLyoqXG4gKiDmj5Dlj5bnuq/mlofmnKzlhoXlrrlcbiAqIOWAmemAieWtl+autTogdGV4dCwgYm9keSwgY29udGVudCwgYm9keV90ZXh0LCB0ZXh0X2NvbnRlbnRcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplVGV4dChyYXc6IGFueSk6IHN0cmluZyB7XG4gIHJldHVybiAoXG4gICAgcmF3LnRleHQgfHxcbiAgICByYXcudGV4dF9ib2R5IHx8XG4gICAgcmF3LnByZXZpZXdfdGV4dCB8fFxuICAgIHJhdy5tYWlsX2JvZHlfdGV4dCB8fFxuICAgIHJhdy5ib2R5IHx8XG4gICAgcmF3LmNvbnRlbnQgfHxcbiAgICByYXcuYm9keV90ZXh0IHx8XG4gICAgcmF3LnRleHRfY29udGVudCB8fFxuICAgIHJhdy5kZXNjcmlwdGlvbiB8fFxuICAgICcnXG4gICk7XG59XG5cbi8qKlxuICog5o+Q5Y+WIEhUTUwg5YaF5a65XG4gKiDlgJnpgInlrZfmrrU6IGh0bWwsIGh0bWxfY29udGVudCwgYm9keV9odG1sXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZUh0bWwocmF3OiBhbnkpOiBzdHJpbmcge1xuICByZXR1cm4gcmF3Lmh0bWwgfHwgcmF3Lmh0bWxfYm9keSB8fCByYXcuaHRtbF9jb250ZW50IHx8IHJhdy5ib2R5X2h0bWwgfHwgcmF3Lm1haWxfYm9keV9odG1sIHx8ICcnO1xufVxuXG4vKipcbiAqIOaPkOWPluW5tue7n+S4gOaXpeacn+agvOW8j+S4uiBJU08gODYwMVxuICog5YCZ6YCJ5a2X5q61OiByZWNlaXZlZF9hdCwgY3JlYXRlZF9hdCwgY3JlYXRlZEF0LCBkYXRlLCB0aW1lc3RhbXAsIGVfZGF0ZVxuICog5YW25LitIHRpbWVzdGFtcCDkuLogVW5peCDnp5Lnuqfml7bpl7TmiLPvvIzpnIDkuZjku6UgMTAwMCDovazkuLrmr6vnp5JcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplRGF0ZShyYXc6IGFueSk6IHN0cmluZyB7XG4gIHRyeSB7XG4gICAgaWYgKHJhdy5yZWNlaXZlZF9hdCkgcmV0dXJuIG5ldyBEYXRlKHJhdy5yZWNlaXZlZF9hdCkudG9JU09TdHJpbmcoKTtcbiAgICBpZiAocmF3LnJlY2VpdmVkQXQpIHJldHVybiBuZXcgRGF0ZShTdHJpbmcocmF3LnJlY2VpdmVkQXQpLnJlcGxhY2UoJyAnLCAnVCcpKS50b0lTT1N0cmluZygpO1xuICAgIGlmIChyYXcuY3JlYXRlZF9hdCkgcmV0dXJuIG5ldyBEYXRlKHJhdy5jcmVhdGVkX2F0KS50b0lTT1N0cmluZygpO1xuICAgIGlmIChyYXcuY3JlYXRlZEF0KSByZXR1cm4gbmV3IERhdGUocmF3LmNyZWF0ZWRBdCkudG9JU09TdHJpbmcoKTtcbiAgICBpZiAocmF3LmRhdGUpIHtcbiAgICAgIGlmICh0eXBlb2YgcmF3LmRhdGUgPT09ICdudW1iZXInKSByZXR1cm4gbmV3IERhdGUocmF3LmRhdGUpLnRvSVNPU3RyaW5nKCk7XG4gICAgICByZXR1cm4gbmV3IERhdGUocmF3LmRhdGUpLnRvSVNPU3RyaW5nKCk7XG4gICAgfVxuICAgIGlmIChyYXcudGltZXN0YW1wKSByZXR1cm4gbmV3IERhdGUocmF3LnRpbWVzdGFtcCAqIDEwMDApLnRvSVNPU3RyaW5nKCk7XG4gICAgaWYgKHJhdy5lX2RhdGUpIHJldHVybiBuZXcgRGF0ZShyYXcuZV9kYXRlKS50b0lTT1N0cmluZygpO1xuICB9IGNhdGNoIHtcbiAgICAvKiDml6XmnJ/op6PmnpDlpLHotKXvvIzov5Tlm57nqbrlrZfnrKbkuLIgKi9cbiAgfVxuICByZXR1cm4gJyc7XG59XG5cbi8qKlxuICog5o+Q5Y+W5bey6K+754q25oCBXG4gKiDlgJnpgInlrZfmrrU6IHNlZW4sIHJlYWQsIGlzUmVhZCwgaXNfcmVhZFxuICog5pSv5oyBIGJvb2xlYW4gLyBudW1iZXIoMHwxKSAvIHN0cmluZygnMCd8JzEnKSDlpJrnp43nsbvlnotcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplSXNSZWFkKHJhdzogYW55KTogYm9vbGVhbiB7XG4gIGlmICh0eXBlb2YgcmF3LnNlZW4gPT09ICdib29sZWFuJykgcmV0dXJuIHJhdy5zZWVuO1xuICBpZiAodHlwZW9mIHJhdy5yZWFkID09PSAnYm9vbGVhbicpIHJldHVybiByYXcucmVhZDtcbiAgaWYgKHR5cGVvZiByYXcuaXNSZWFkID09PSAnYm9vbGVhbicpIHJldHVybiByYXcuaXNSZWFkO1xuICBpZiAodHlwZW9mIHJhdy5pc19zZWVuID09PSAnbnVtYmVyJykgcmV0dXJuIHJhdy5pc19zZWVuID09PSAxO1xuICBpZiAodHlwZW9mIHJhdy5pc19zZWVuID09PSAnc3RyaW5nJykgcmV0dXJuIHJhdy5pc19zZWVuID09PSAnMSc7XG4gIGlmICh0eXBlb2YgcmF3LmlzX3JlYWQgPT09ICdudW1iZXInKSByZXR1cm4gcmF3LmlzX3JlYWQgPT09IDE7XG4gIGlmICh0eXBlb2YgcmF3LmlzX3JlYWQgPT09ICdzdHJpbmcnKSByZXR1cm4gcmF3LmlzX3JlYWQgPT09ICcxJztcbiAgaWYgKHR5cGVvZiByYXcuaXNfcmVhZCA9PT0gJ2Jvb2xlYW4nKSByZXR1cm4gcmF3LmlzX3JlYWQ7XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiDmj5Dlj5blubbmoIflh4bljJbpmYTku7bliJfooahcbiAqIOavj+S4qumZhOS7tueahOWtl+auteS5n+mHh+eUqOWkmuWAmemAieetlueVpeaYoOWwhFxuICovXG5mdW5jdGlvbiBub3JtYWxpemVBdHRhY2htZW50cyhhdHRhY2htZW50czogYW55KTogRW1haWxBdHRhY2htZW50W10ge1xuICBpZiAoIWF0dGFjaG1lbnRzIHx8ICFBcnJheS5pc0FycmF5KGF0dGFjaG1lbnRzKSkgcmV0dXJuIFtdO1xuICByZXR1cm4gYXR0YWNobWVudHMubWFwKChhOiBhbnkpID0+ICh7XG4gICAgZmlsZW5hbWU6IGEuZmlsZW5hbWUgfHwgYS5uYW1lIHx8ICcnLFxuICAgIHNpemU6IGEuc2l6ZSB8fCBhLmZpbGVzaXplIHx8IHVuZGVmaW5lZCxcbiAgICBjb250ZW50VHlwZTogYS5jb250ZW50VHlwZSB8fCBhLmNvbnRlbnRfdHlwZSB8fCBhLm1pbWVUeXBlIHx8IGEubWltZV90eXBlIHx8IHVuZGVmaW5lZCxcbiAgICB1cmw6IGEudXJsIHx8IGEuZG93bmxvYWRfdXJsIHx8IGEuZG93bmxvYWRVcmwgfHwgdW5kZWZpbmVkLFxuICB9KSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateEmail = generateEmail;
|
|
4
|
+
exports.getEmails = getEmails;
|
|
5
|
+
const normalize_1 = require("../normalize");
|
|
6
|
+
const retry_1 = require("../retry");
|
|
7
|
+
const CHANNEL = '10mail-wangtz';
|
|
8
|
+
const ORIGIN = 'https://10mail.wangtz.cn';
|
|
9
|
+
const MAIL_DOMAIN = 'wangtz.cn';
|
|
10
|
+
const JSON_HEADERS = {
|
|
11
|
+
Accept: '*/*',
|
|
12
|
+
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
|
|
13
|
+
'Content-Type': 'application/json; charset=utf-8',
|
|
14
|
+
Origin: ORIGIN,
|
|
15
|
+
Referer: `${ORIGIN}/`,
|
|
16
|
+
token: 'null',
|
|
17
|
+
Authorization: 'null',
|
|
18
|
+
};
|
|
19
|
+
function localPartFromDomainOption(domain) {
|
|
20
|
+
const s = String(domain ?? '').trim();
|
|
21
|
+
if (!s)
|
|
22
|
+
return '';
|
|
23
|
+
const at = s.indexOf('@');
|
|
24
|
+
return at >= 0 ? s.slice(0, at).trim() : s;
|
|
25
|
+
}
|
|
26
|
+
/** emailList 返回 mailparser 风格:{ text?, value?: [{ address, name }] } */
|
|
27
|
+
function formatAddrField(v) {
|
|
28
|
+
if (!v || typeof v !== 'object')
|
|
29
|
+
return '';
|
|
30
|
+
const o = v;
|
|
31
|
+
const text = o.text;
|
|
32
|
+
if (text != null && String(text).trim())
|
|
33
|
+
return String(text);
|
|
34
|
+
const value = o.value;
|
|
35
|
+
if (!Array.isArray(value) || value.length === 0)
|
|
36
|
+
return '';
|
|
37
|
+
const first = value[0];
|
|
38
|
+
if (!first || typeof first !== 'object')
|
|
39
|
+
return '';
|
|
40
|
+
const addr = String(first.address ?? '').trim();
|
|
41
|
+
if (!addr)
|
|
42
|
+
return '';
|
|
43
|
+
const name = String(first.name ?? '').trim();
|
|
44
|
+
if (name && name.toLowerCase() !== addr.toLowerCase())
|
|
45
|
+
return `${name} <${addr}>`;
|
|
46
|
+
return addr;
|
|
47
|
+
}
|
|
48
|
+
function flattenMessage(raw) {
|
|
49
|
+
const out = { ...raw };
|
|
50
|
+
const mid = raw.messageId;
|
|
51
|
+
if (mid != null)
|
|
52
|
+
out.id = mid;
|
|
53
|
+
const fromStr = formatAddrField(raw.from);
|
|
54
|
+
if (fromStr)
|
|
55
|
+
out.from = fromStr;
|
|
56
|
+
const toStr = formatAddrField(raw.to);
|
|
57
|
+
if (toStr)
|
|
58
|
+
out.to = toStr;
|
|
59
|
+
return out;
|
|
60
|
+
}
|
|
61
|
+
async function generateEmail(domain) {
|
|
62
|
+
const emailName = localPartFromDomainOption(domain ?? null);
|
|
63
|
+
const res = await (0, retry_1.fetchWithTimeout)(`${ORIGIN}/api/tempMail`, {
|
|
64
|
+
method: 'POST',
|
|
65
|
+
headers: {
|
|
66
|
+
...JSON_HEADERS,
|
|
67
|
+
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36 Edg/146.0.0.0',
|
|
68
|
+
},
|
|
69
|
+
body: JSON.stringify({ emailName }),
|
|
70
|
+
}, undefined, { skipTlsVerify: true });
|
|
71
|
+
if (!res.ok) {
|
|
72
|
+
throw new Error(`10mail-wangtz generate: ${res.status}`);
|
|
73
|
+
}
|
|
74
|
+
const parsed = (await res.json());
|
|
75
|
+
if (parsed.code !== 0 || !parsed.data?.mailName) {
|
|
76
|
+
throw new Error(`10mail-wangtz: ${String(parsed.msg ?? 'create failed')}`);
|
|
77
|
+
}
|
|
78
|
+
const local = String(parsed.data.mailName).trim();
|
|
79
|
+
if (!local) {
|
|
80
|
+
throw new Error('10mail-wangtz: empty mailName');
|
|
81
|
+
}
|
|
82
|
+
const email = `${local}@${MAIL_DOMAIN}`;
|
|
83
|
+
let expiresAt;
|
|
84
|
+
if (parsed.data.endTime != null && Number.isFinite(parsed.data.endTime)) {
|
|
85
|
+
expiresAt = new Date(parsed.data.endTime).toISOString();
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
channel: CHANNEL,
|
|
89
|
+
email,
|
|
90
|
+
token: '',
|
|
91
|
+
expiresAt,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
async function getEmails(email) {
|
|
95
|
+
const res = await (0, retry_1.fetchWithTimeout)(`${ORIGIN}/api/emailList`, {
|
|
96
|
+
method: 'POST',
|
|
97
|
+
headers: {
|
|
98
|
+
...JSON_HEADERS,
|
|
99
|
+
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36 Edg/146.0.0.0',
|
|
100
|
+
},
|
|
101
|
+
body: JSON.stringify({ emailName: email.trim() }),
|
|
102
|
+
}, undefined, { skipTlsVerify: true });
|
|
103
|
+
if (!res.ok) {
|
|
104
|
+
throw new Error(`10mail-wangtz inbox: ${res.status}`);
|
|
105
|
+
}
|
|
106
|
+
const list = (await res.json());
|
|
107
|
+
if (!Array.isArray(list)) {
|
|
108
|
+
throw new Error('10mail-wangtz: inbox response is not an array');
|
|
109
|
+
}
|
|
110
|
+
return list.map(item => {
|
|
111
|
+
if (!item || typeof item !== 'object') {
|
|
112
|
+
return (0, normalize_1.normalizeEmail)({}, email);
|
|
113
|
+
}
|
|
114
|
+
return (0, normalize_1.normalizeEmail)(flattenMessage(item), email);
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTBtYWlsLXdhbmd0ei5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92aWRlcnMvMTBtYWlsLXdhbmd0ei50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQTJEQSxzQ0FzQ0M7QUFFRCw4QkE0QkM7QUE5SEQsNENBQThDO0FBQzlDLG9DQUE0QztBQUU1QyxNQUFNLE9BQU8sR0FBWSxlQUFlLENBQUM7QUFDekMsTUFBTSxNQUFNLEdBQUcsMEJBQTBCLENBQUM7QUFDMUMsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDO0FBRWhDLE1BQU0sWUFBWSxHQUEyQjtJQUMzQyxNQUFNLEVBQUUsS0FBSztJQUNiLGlCQUFpQixFQUFFLGlEQUFpRDtJQUNwRSxjQUFjLEVBQUUsaUNBQWlDO0lBQ2pELE1BQU0sRUFBRSxNQUFNO0lBQ2QsT0FBTyxFQUFFLEdBQUcsTUFBTSxHQUFHO0lBQ3JCLEtBQUssRUFBRSxNQUFNO0lBQ2IsYUFBYSxFQUFFLE1BQU07Q0FDdEIsQ0FBQztBQUVGLFNBQVMseUJBQXlCLENBQUMsTUFBc0I7SUFDdkQsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QyxJQUFJLENBQUMsQ0FBQztRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ2xCLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFFRCx3RUFBd0U7QUFDeEUsU0FBUyxlQUFlLENBQUMsQ0FBVTtJQUNqQyxJQUFJLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVE7UUFBRSxPQUFPLEVBQUUsQ0FB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LEVBQUUsSUFBSSxFQUFFLENBQ3hCLENBQUM7SUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUNELE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQVksQ0FBQztJQUMzQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3JCLElBQUksQ0FBQyxJQUFJLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDdEMsT0FBTyxJQUFBLDBCQUFjLEVBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFDRCxPQUFPLElBQUEsMEJBQWMsRUFBQyxjQUFjLENBQUMsSUFBK0IsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2hGLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEludGVybmFsRW1haWxJbmZvLCBFbWFpbCwgQ2hhbm5lbCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IG5vcm1hbGl6ZUVtYWlsIH0gZnJvbSAnLi4vbm9ybWFsaXplJztcbmltcG9ydCB7IGZldGNoV2l0aFRpbWVvdXQgfSBmcm9tICcuLi9yZXRyeSc7XG5cbmNvbnN0IENIQU5ORUw6IENoYW5uZWwgPSAnMTBtYWlsLXdhbmd0eic7XG5jb25zdCBPUklHSU4gPSAnaHR0cHM6Ly8xMG1haWwud2FuZ3R6LmNuJztcbmNvbnN0IE1BSUxfRE9NQUlOID0gJ3dhbmd0ei5jbic7XG5cbmNvbnN0IEpTT05fSEVBREVSUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgQWNjZXB0OiAnKi8qJyxcbiAgJ0FjY2VwdC1MYW5ndWFnZSc6ICd6aC1DTix6aDtxPTAuOSxlbjtxPTAuOCxlbi1HQjtxPTAuNyxlbi1VUztxPTAuNicsXG4gICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCcsXG4gIE9yaWdpbjogT1JJR0lOLFxuICBSZWZlcmVyOiBgJHtPUklHSU59L2AsXG4gIHRva2VuOiAnbnVsbCcsXG4gIEF1dGhvcml6YXRpb246ICdudWxsJyxcbn07XG5cbmZ1bmN0aW9uIGxvY2FsUGFydEZyb21Eb21haW5PcHRpb24oZG9tYWluPzogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB7XG4gIGNvbnN0IHMgPSBTdHJpbmcoZG9tYWluID8/ICcnKS50cmltKCk7XG4gIGlmICghcykgcmV0dXJuICcnO1xuICBjb25zdCBhdCA9IHMuaW5kZXhPZignQCcpO1xuICByZXR1cm4gYXQgPj0gMCA/IHMuc2xpY2UoMCwgYXQpLnRyaW0oKSA6IHM7XG59XG5cbi8qKiBlbWFpbExpc3Qg6L+U5ZueIG1haWxwYXJzZXIg6aOO5qC877yaeyB0ZXh0PywgdmFsdWU/OiBbeyBhZGRyZXNzLCBuYW1lIH1dIH0gKi9cbmZ1bmN0aW9uIGZvcm1hdEFkZHJGaWVsZCh2OiB1bmtub3duKTogc3RyaW5nIHtcbiAgaWYgKCF2IHx8IHR5cGVvZiB2ICE9PSAnb2JqZWN0JykgcmV0dXJuICcnO1xuICBjb25zdCBvID0gdiBhcyB7IHRleHQ/OiB1bmtub3duOyB2YWx1ZT86IHVua25vd24gfTtcbiAgY29uc3QgdGV4dCA9IG8udGV4dDtcbiAgaWYgKHRleHQgIT0gbnVsbCAmJiBTdHJpbmcodGV4dCkudHJpbSgpKSByZXR1cm4gU3RyaW5nKHRleHQpO1xuICBjb25zdCB2YWx1ZSA9IG8udmFsdWU7XG4gIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkgfHwgdmFsdWUubGVuZ3RoID09PSAwKSByZXR1cm4gJyc7XG4gIGNvbnN0IGZpcnN0ID0gdmFsdWVbMF07XG4gIGlmICghZmlyc3QgfHwgdHlwZW9mIGZpcnN0ICE9PSAnb2JqZWN0JykgcmV0dXJuICcnO1xuICBjb25zdCBhZGRyID0gU3RyaW5nKChmaXJzdCBhcyB7IGFkZHJlc3M/OiBzdHJpbmcgfSkuYWRkcmVzcyA/PyAnJykudHJpbSgpO1xuICBpZiAoIWFkZHIpIHJldHVybiAnJztcbiAgY29uc3QgbmFtZSA9IFN0cmluZygoZmlyc3QgYXMgeyBuYW1lPzogc3RyaW5nIH0pLm5hbWUgPz8gJycpLnRyaW0oKTtcbiAgaWYgKG5hbWUgJiYgbmFtZS50b0xvd2VyQ2FzZSgpICE9PSBhZGRyLnRvTG93ZXJDYXNlKCkpIHJldHVybiBgJHtuYW1lfSA8JHthZGRyfT5gO1xuICByZXR1cm4gYWRkcjtcbn1cblxuZnVuY3Rpb24gZmxhdHRlbk1lc3NhZ2UocmF3OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgY29uc3Qgb3V0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHsgLi4ucmF3IH07XG4gIGNvbnN0IG1pZCA9IHJhdy5tZXNzYWdlSWQ7XG4gIGlmIChtaWQgIT0gbnVsbCkgb3V0LmlkID0gbWlkO1xuICBjb25zdCBmcm9tU3RyID0gZm9ybWF0QWRkckZpZWxkKHJhdy5mcm9tKTtcbiAgaWYgKGZyb21TdHIpIG91dC5mcm9tID0gZnJvbVN0cjtcbiAgY29uc3QgdG9TdHIgPSBmb3JtYXRBZGRyRmllbGQocmF3LnRvKTtcbiAgaWYgKHRvU3RyKSBvdXQudG8gPSB0b1N0cjtcbiAgcmV0dXJuIG91dDtcbn1cblxuaW50ZXJmYWNlIFRlbXBNYWlsUmVzcG9uc2Uge1xuICBjb2RlPzogbnVtYmVyO1xuICBtc2c/OiBzdHJpbmc7XG4gIGRhdGE/OiB7IG1haWxOYW1lPzogc3RyaW5nOyBlbmRUaW1lPzogbnVtYmVyIH07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZUVtYWlsKGRvbWFpbj86IHN0cmluZyB8IG51bGwpOiBQcm9taXNlPEludGVybmFsRW1haWxJbmZvPiB7XG4gIGNvbnN0IGVtYWlsTmFtZSA9IGxvY2FsUGFydEZyb21Eb21haW5PcHRpb24oZG9tYWluID8/IG51bGwpO1xuICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaFdpdGhUaW1lb3V0KFxuICAgIGAke09SSUdJTn0vYXBpL3RlbXBNYWlsYCxcbiAgICB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgLi4uSlNPTl9IRUFERVJTLFxuICAgICAgICAnVXNlci1BZ2VudCc6XG4gICAgICAgICAgJ01vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xNDYuMC4wLjAgU2FmYXJpLzUzNy4zNiBFZGcvMTQ2LjAuMC4wJyxcbiAgICAgIH0sXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IGVtYWlsTmFtZSB9KSxcbiAgICB9LFxuICAgIHVuZGVmaW5lZCxcbiAgICB7IHNraXBUbHNWZXJpZnk6IHRydWUgfSxcbiAgKTtcbiAgaWYgKCFyZXMub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYDEwbWFpbC13YW5ndHogZ2VuZXJhdGU6ICR7cmVzLnN0YXR1c31gKTtcbiAgfVxuICBjb25zdCBwYXJzZWQgPSAoYXdhaXQgcmVzLmpzb24oKSkgYXMgVGVtcE1haWxSZXNwb25zZTtcbiAgaWYgKHBhcnNlZC5jb2RlICE9PSAwIHx8ICFwYXJzZWQuZGF0YT8ubWFpbE5hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYDEwbWFpbC13YW5ndHo6ICR7U3RyaW5nKHBhcnNlZC5tc2cgPz8gJ2NyZWF0ZSBmYWlsZWQnKX1gKTtcbiAgfVxuICBjb25zdCBsb2NhbCA9IFN0cmluZyhwYXJzZWQuZGF0YS5tYWlsTmFtZSkudHJpbSgpO1xuICBpZiAoIWxvY2FsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCcxMG1haWwtd2FuZ3R6OiBlbXB0eSBtYWlsTmFtZScpO1xuICB9XG4gIGNvbnN0IGVtYWlsID0gYCR7bG9jYWx9QCR7TUFJTF9ET01BSU59YDtcbiAgbGV0IGV4cGlyZXNBdDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBpZiAocGFyc2VkLmRhdGEuZW5kVGltZSAhPSBudWxsICYmIE51bWJlci5pc0Zpbml0ZShwYXJzZWQuZGF0YS5lbmRUaW1lKSkge1xuICAgIGV4cGlyZXNBdCA9IG5ldyBEYXRlKHBhcnNlZC5kYXRhLmVuZFRpbWUpLnRvSVNPU3RyaW5nKCk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBjaGFubmVsOiBDSEFOTkVMLFxuICAgIGVtYWlsLFxuICAgIHRva2VuOiAnJyxcbiAgICBleHBpcmVzQXQsXG4gIH07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRFbWFpbHMoZW1haWw6IHN0cmluZyk6IFByb21pc2U8RW1haWxbXT4ge1xuICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaFdpdGhUaW1lb3V0KFxuICAgIGAke09SSUdJTn0vYXBpL2VtYWlsTGlzdGAsXG4gICAge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIC4uLkpTT05fSEVBREVSUyxcbiAgICAgICAgJ1VzZXItQWdlbnQnOlxuICAgICAgICAgICdNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTQ2LjAuMC4wIFNhZmFyaS81MzcuMzYgRWRnLzE0Ni4wLjAuMCcsXG4gICAgICB9LFxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBlbWFpbE5hbWU6IGVtYWlsLnRyaW0oKSB9KSxcbiAgICB9LFxuICAgIHVuZGVmaW5lZCxcbiAgICB7IHNraXBUbHNWZXJpZnk6IHRydWUgfSxcbiAgKTtcbiAgaWYgKCFyZXMub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYDEwbWFpbC13YW5ndHogaW5ib3g6ICR7cmVzLnN0YXR1c31gKTtcbiAgfVxuICBjb25zdCBsaXN0ID0gKGF3YWl0IHJlcy5qc29uKCkpIGFzIHVua25vd247XG4gIGlmICghQXJyYXkuaXNBcnJheShsaXN0KSkge1xuICAgIHRocm93IG5ldyBFcnJvcignMTBtYWlsLXdhbmd0ejogaW5ib3ggcmVzcG9uc2UgaXMgbm90IGFuIGFycmF5Jyk7XG4gIH1cbiAgcmV0dXJuIGxpc3QubWFwKGl0ZW0gPT4ge1xuICAgIGlmICghaXRlbSB8fCB0eXBlb2YgaXRlbSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiBub3JtYWxpemVFbWFpbCh7fSwgZW1haWwpO1xuICAgIH1cbiAgICByZXR1cm4gbm9ybWFsaXplRW1haWwoZmxhdHRlbk1lc3NhZ2UoaXRlbSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiksIGVtYWlsKTtcbiAgfSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateEmail = generateEmail;
|
|
4
|
+
exports.getEmails = getEmails;
|
|
5
|
+
const normalize_1 = require("../normalize");
|
|
6
|
+
const retry_1 = require("../retry");
|
|
7
|
+
const CHANNEL = '10minute-one';
|
|
8
|
+
const SITE_ORIGIN = 'https://10minutemail.one';
|
|
9
|
+
const API_BASE = 'https://web.10minutemail.one/api/v1';
|
|
10
|
+
const JWT_RE = /^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/;
|
|
11
|
+
const DEFAULT_PAGE_HEADERS = {
|
|
12
|
+
Accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
|
|
13
|
+
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
|
|
14
|
+
'Cache-Control': 'no-cache',
|
|
15
|
+
Pragma: 'no-cache',
|
|
16
|
+
DNT: '1',
|
|
17
|
+
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
|
|
18
|
+
};
|
|
19
|
+
function extractNuxtDataArray(html) {
|
|
20
|
+
const m = html.match(/<script[^>]*\bid="__NUXT_DATA__"[^>]*>([\s\S]*?)<\/script>/i);
|
|
21
|
+
if (!m)
|
|
22
|
+
throw new Error('10minute-one: __NUXT_DATA__ not found');
|
|
23
|
+
return JSON.parse(m[1].trim());
|
|
24
|
+
}
|
|
25
|
+
function resolveRef(arr, value, depth = 0) {
|
|
26
|
+
if (depth > 64)
|
|
27
|
+
throw new Error('10minute-one: resolveRef too deep');
|
|
28
|
+
if (value == null)
|
|
29
|
+
return value;
|
|
30
|
+
if (typeof value === 'number' && Number.isInteger(value) && value >= 0) {
|
|
31
|
+
if (value >= arr.length)
|
|
32
|
+
return undefined;
|
|
33
|
+
return resolveRef(arr, arr[value], depth + 1);
|
|
34
|
+
}
|
|
35
|
+
return value;
|
|
36
|
+
}
|
|
37
|
+
function parseMailServiceTokenFromPayload(arr) {
|
|
38
|
+
if (!Array.isArray(arr))
|
|
39
|
+
throw new Error('10minute-one: invalid __NUXT_DATA__');
|
|
40
|
+
for (let i = 0; i < Math.min(arr.length, 48); i++) {
|
|
41
|
+
const el = arr[i];
|
|
42
|
+
if (el && typeof el === 'object' && !Array.isArray(el) && 'mailServiceToken' in el) {
|
|
43
|
+
const t = resolveRef(arr, el.mailServiceToken);
|
|
44
|
+
if (typeof t === 'string' && JWT_RE.test(t))
|
|
45
|
+
return t;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
for (const el of arr) {
|
|
49
|
+
if (el && typeof el === 'object' && !Array.isArray(el) && 'mailServiceToken' in el) {
|
|
50
|
+
const t = resolveRef(arr, el.mailServiceToken);
|
|
51
|
+
if (typeof t === 'string' && JWT_RE.test(t))
|
|
52
|
+
return t;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
for (const el of arr) {
|
|
56
|
+
if (typeof el === 'string' && JWT_RE.test(el))
|
|
57
|
+
return el;
|
|
58
|
+
}
|
|
59
|
+
throw new Error('10minute-one: mailServiceToken not found');
|
|
60
|
+
}
|
|
61
|
+
function parseQuotedJsonArrayField(html, field) {
|
|
62
|
+
const key = `${field}:"`;
|
|
63
|
+
const start = html.indexOf(key);
|
|
64
|
+
if (start < 0)
|
|
65
|
+
return [];
|
|
66
|
+
const sliceStart = start + key.length;
|
|
67
|
+
if (html[sliceStart] !== '[')
|
|
68
|
+
return [];
|
|
69
|
+
let depth = 0;
|
|
70
|
+
let j = sliceStart;
|
|
71
|
+
for (; j < html.length; j++) {
|
|
72
|
+
const c = html[j];
|
|
73
|
+
if (c === '[')
|
|
74
|
+
depth++;
|
|
75
|
+
else if (c === ']') {
|
|
76
|
+
depth--;
|
|
77
|
+
if (depth === 0) {
|
|
78
|
+
j++;
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
const raw = html.slice(sliceStart, j);
|
|
84
|
+
const unesc = raw.replace(/\\"/g, '"');
|
|
85
|
+
try {
|
|
86
|
+
const v = JSON.parse(unesc);
|
|
87
|
+
return Array.isArray(v) ? v.map(x => String(x)) : [];
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return [];
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
function parseEmailDomains(html) {
|
|
94
|
+
const d = parseQuotedJsonArrayField(html, 'emailDomains');
|
|
95
|
+
return d.filter(Boolean);
|
|
96
|
+
}
|
|
97
|
+
function parseBlockedUsernames(html) {
|
|
98
|
+
const list = parseQuotedJsonArrayField(html, 'blockedUsernames');
|
|
99
|
+
return new Set(list.map(s => s.toLowerCase()));
|
|
100
|
+
}
|
|
101
|
+
function randomRequestId() {
|
|
102
|
+
const a = new Uint8Array(16);
|
|
103
|
+
crypto.getRandomValues(a);
|
|
104
|
+
return [...a].map(b => b.toString(16).padStart(2, '0')).join('');
|
|
105
|
+
}
|
|
106
|
+
function b64DecodeUtf8(b64) {
|
|
107
|
+
if (typeof Buffer !== 'undefined') {
|
|
108
|
+
return Buffer.from(b64, 'base64').toString('utf8');
|
|
109
|
+
}
|
|
110
|
+
const bin = atob(b64);
|
|
111
|
+
const bytes = new Uint8Array(bin.length);
|
|
112
|
+
for (let i = 0; i < bin.length; i++)
|
|
113
|
+
bytes[i] = bin.charCodeAt(i);
|
|
114
|
+
return new TextDecoder('utf-8').decode(bytes);
|
|
115
|
+
}
|
|
116
|
+
function b64UrlPayload(jwt) {
|
|
117
|
+
const parts = jwt.split('.');
|
|
118
|
+
if (parts.length < 2)
|
|
119
|
+
return null;
|
|
120
|
+
let b = parts[1].replace(/-/g, '+').replace(/_/g, '/');
|
|
121
|
+
const pad = b.length % 4 ? '='.repeat(4 - (b.length % 4)) : '';
|
|
122
|
+
b += pad;
|
|
123
|
+
try {
|
|
124
|
+
return JSON.parse(b64DecodeUtf8(b));
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
return null;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
function jwtExpMs(jwt) {
|
|
131
|
+
const p = b64UrlPayload(jwt);
|
|
132
|
+
const exp = p?.exp;
|
|
133
|
+
if (typeof exp === 'number' && Number.isFinite(exp))
|
|
134
|
+
return Math.floor(exp * 1000);
|
|
135
|
+
return undefined;
|
|
136
|
+
}
|
|
137
|
+
function randomLocal(len) {
|
|
138
|
+
const chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
|
|
139
|
+
const a = new Uint8Array(len);
|
|
140
|
+
crypto.getRandomValues(a);
|
|
141
|
+
let s = '';
|
|
142
|
+
for (let i = 0; i < len; i++)
|
|
143
|
+
s += chars[a[i] % chars.length];
|
|
144
|
+
return s;
|
|
145
|
+
}
|
|
146
|
+
function pickLocale(domain) {
|
|
147
|
+
const s = String(domain ?? '').trim();
|
|
148
|
+
if (!s)
|
|
149
|
+
return 'zh';
|
|
150
|
+
if (s.includes('.') && !s.includes('/'))
|
|
151
|
+
return 'zh';
|
|
152
|
+
return s;
|
|
153
|
+
}
|
|
154
|
+
function pickMailboxDomain(domainHint, available) {
|
|
155
|
+
if (!available.length)
|
|
156
|
+
throw new Error('10minute-one: no email domains in page');
|
|
157
|
+
const h = (domainHint ?? '').trim().toLowerCase();
|
|
158
|
+
if (h.includes('.')) {
|
|
159
|
+
for (const d of available) {
|
|
160
|
+
if (d.toLowerCase() === h)
|
|
161
|
+
return d;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return available[Math.floor(Math.random() * available.length)];
|
|
165
|
+
}
|
|
166
|
+
function apiHeaders(token, extra) {
|
|
167
|
+
const ts = String(Math.floor(Date.now() / 1000));
|
|
168
|
+
return {
|
|
169
|
+
Accept: '*/*',
|
|
170
|
+
'Accept-Language': DEFAULT_PAGE_HEADERS['Accept-Language'],
|
|
171
|
+
Authorization: `Bearer ${token}`,
|
|
172
|
+
'Cache-Control': 'no-cache',
|
|
173
|
+
'Content-Type': 'application/json',
|
|
174
|
+
DNT: '1',
|
|
175
|
+
Origin: SITE_ORIGIN,
|
|
176
|
+
Pragma: 'no-cache',
|
|
177
|
+
Referer: `${SITE_ORIGIN}/`,
|
|
178
|
+
'Sec-Fetch-Dest': 'empty',
|
|
179
|
+
'Sec-Fetch-Mode': 'cors',
|
|
180
|
+
'Sec-Fetch-Site': 'same-site',
|
|
181
|
+
'User-Agent': DEFAULT_PAGE_HEADERS['User-Agent'],
|
|
182
|
+
'X-Request-ID': randomRequestId(),
|
|
183
|
+
'X-Timestamp': ts,
|
|
184
|
+
...extra,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
function encMailboxPath(email) {
|
|
188
|
+
return encodeURIComponent(email);
|
|
189
|
+
}
|
|
190
|
+
function itemNeedsDetail(item) {
|
|
191
|
+
const id = item.id;
|
|
192
|
+
if (id == null || String(id).trim() === '')
|
|
193
|
+
return false;
|
|
194
|
+
const subj = String(item.subject ?? item.mail_title ?? '').trim();
|
|
195
|
+
const body = String(item.text ?? item.body ?? item.html ?? item.mail_text ?? '').trim();
|
|
196
|
+
return subj === '' && body === '';
|
|
197
|
+
}
|
|
198
|
+
async function generateEmail(domain) {
|
|
199
|
+
const locale = pickLocale(domain ?? undefined);
|
|
200
|
+
const pageUrl = `${SITE_ORIGIN}/${encodeURIComponent(locale)}`;
|
|
201
|
+
const res = await (0, retry_1.fetchWithTimeout)(pageUrl, { headers: { ...DEFAULT_PAGE_HEADERS, Referer: pageUrl } });
|
|
202
|
+
if (!res.ok)
|
|
203
|
+
throw new Error(`10minute-one generate: ${res.status}`);
|
|
204
|
+
const html = await res.text();
|
|
205
|
+
const arr = extractNuxtDataArray(html);
|
|
206
|
+
const token = parseMailServiceTokenFromPayload(arr);
|
|
207
|
+
let domains = parseEmailDomains(html);
|
|
208
|
+
if (domains.length === 0) {
|
|
209
|
+
domains = ['xghff.com', 'oqqaj.com', 'psovv.com'];
|
|
210
|
+
}
|
|
211
|
+
const blocked = parseBlockedUsernames(html);
|
|
212
|
+
const domainHint = (domain ?? '').trim().includes('.') ? (domain ?? '').trim() : undefined;
|
|
213
|
+
const mailDomain = pickMailboxDomain(domainHint, domains);
|
|
214
|
+
let local = '';
|
|
215
|
+
for (let attempt = 0; attempt < 32; attempt++) {
|
|
216
|
+
const cand = randomLocal(10);
|
|
217
|
+
if (!blocked.has(cand.toLowerCase())) {
|
|
218
|
+
local = cand;
|
|
219
|
+
break;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
if (!local)
|
|
223
|
+
throw new Error('10minute-one: could not pick username');
|
|
224
|
+
const address = `${local}@${mailDomain}`;
|
|
225
|
+
const expMs = jwtExpMs(token);
|
|
226
|
+
return {
|
|
227
|
+
channel: CHANNEL,
|
|
228
|
+
email: address,
|
|
229
|
+
token,
|
|
230
|
+
expiresAt: expMs,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
async function getEmails(email, token) {
|
|
234
|
+
const url = `${API_BASE}/mailbox/${encMailboxPath(email)}`;
|
|
235
|
+
const res = await (0, retry_1.fetchWithTimeout)(url, { headers: apiHeaders(token) });
|
|
236
|
+
if (!res.ok)
|
|
237
|
+
throw new Error(`10minute-one inbox: ${res.status}`);
|
|
238
|
+
const list = (await res.json());
|
|
239
|
+
if (!Array.isArray(list))
|
|
240
|
+
throw new Error('10minute-one: invalid inbox JSON');
|
|
241
|
+
const out = [];
|
|
242
|
+
for (const raw of list) {
|
|
243
|
+
if (!raw || typeof raw !== 'object')
|
|
244
|
+
continue;
|
|
245
|
+
let row = raw;
|
|
246
|
+
if (itemNeedsDetail(row)) {
|
|
247
|
+
const id = encodeURIComponent(String(row.id));
|
|
248
|
+
const du = `${API_BASE}/mailbox/${encMailboxPath(email)}/${id}`;
|
|
249
|
+
const dr = await (0, retry_1.fetchWithTimeout)(du, { headers: apiHeaders(token) });
|
|
250
|
+
if (dr.ok) {
|
|
251
|
+
try {
|
|
252
|
+
const detail = (await dr.json());
|
|
253
|
+
row = { ...row, ...detail };
|
|
254
|
+
}
|
|
255
|
+
catch {
|
|
256
|
+
/* keep row */
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
out.push((0, normalize_1.normalizeEmail)(row, email));
|
|
261
|
+
}
|
|
262
|
+
return out;
|
|
263
|
+
}
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTBtaW51dGUtb25lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpZGVycy8xMG1pbnV0ZS1vbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFrTUEsc0NBa0NDO0FBRUQsOEJBMkJDO0FBaFFELDRDQUE4QztBQUM5QyxvQ0FBNEM7QUFFNUMsTUFBTSxPQUFPLEdBQVksY0FBYyxDQUFDO0FBQ3hDLE1BQU0sV0FBVyxHQUFHLDBCQUEwQixDQUFDO0FBQy9DLE1BQU0sUUFBUSxHQUFHLHFDQUFxQyxDQUFDO0FBRXZELE1BQU0sTUFBTSxHQUFHLGtEQUFrRCxDQUFDO0FBRWxFLE1BQU0sb0JBQW9CLEdBQTJCO0lBQ25ELE1BQU0sRUFBRSxpRUFBaUU7SUFDekUsaUJBQWlCLEVBQUUseUJBQXlCO0lBQzVDLGVBQWUsRUFBRSxVQUFVO0lBQzNCLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLEdBQUcsRUFBRSxHQUFHO0lBQ1IsWUFBWSxFQUNWLGlIQUFpSDtDQUNwSCxDQUFDO0FBRUYsU0FBUyxvQkFBb0IsQ0FBQyxJQUFZO0lBQ3hDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsNkRBQTZELENBQUMsQ0FBQztJQUNwRixJQUFJLENBQUMsQ0FBQztRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztJQUNqRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFjLENBQUM7QUFDOUMsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEdBQWMsRUFBRSxLQUFjLEVBQUUsS0FBSyxHQUFHLENBQUM7SUFDM0QsSUFBSSxLQUFLLEdBQUcsRUFBRTtRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztJQUNyRSxJQUFJLEtBQUssSUFBSSxJQUFJO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDaEMsSUFBSSxPQUFPLEtB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QUFDO2dCQUNWLElBQUksQ0FBQztvQkFDSCxNQUFNLE1BQU0sR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUE0QixDQUFDO29CQUM1RCxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDO2dCQUM5QixDQUFDO2dCQUFDLE1BQU0sQ0FBQztvQkFDUCxjQUFjO2dCQUNoQixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUEsMEJBQWMsRUFBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJuYWxFbWFpbEluZm8sIEVtYWlsLCBDaGFubmVsIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgbm9ybWFsaXplRW1haWwgfSBmcm9tICcuLi9ub3JtYWxpemUnO1xuaW1wb3J0IHsgZmV0Y2hXaXRoVGltZW91dCB9IGZyb20gJy4uL3JldHJ5JztcblxuY29uc3QgQ0hBTk5FTDogQ2hhbm5lbCA9ICcxMG1pbnV0ZS1vbmUnO1xuY29uc3QgU0lURV9PUklHSU4gPSAnaHR0cHM6Ly8xMG1pbnV0ZW1haWwub25lJztcbmNvbnN0IEFQSV9CQVNFID0gJ2h0dHBzOi8vd2ViLjEwbWludXRlbWFpbC5vbmUvYXBpL3YxJztcblxuY29uc3QgSldUX1JFID0gL15bQS1aYS16MC05Xy1dK1xcLltBLVphLXowLTlfLV0rXFwuW0EtWmEtejAtOV8tXSskLztcblxuY29uc3QgREVGQVVMVF9QQUdFX0hFQURFUlM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIEFjY2VwdDogJ3RleHQvaHRtbCxhcHBsaWNhdGlvbi94aHRtbCt4bWwsYXBwbGljYXRpb24veG1sO3E9MC45LCovKjtxPTAuOCcsXG4gICdBY2NlcHQtTGFuZ3VhZ2UnOiAnemgtQ04semg7cT0wLjksZW47cT0wLjgnLFxuICAnQ2FjaGUtQ29udHJvbCc6ICduby1jYWNoZScsXG4gIFByYWdtYTogJ25vLWNhY2hlJyxcbiAgRE5UOiAnMScsXG4gICdVc2VyLUFnZW50JzpcbiAgICAnTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEyMC4wLjAuMCBTYWZhcmkvNTM3LjM2Jyxcbn07XG5cbmZ1bmN0aW9uIGV4dHJhY3ROdXh0RGF0YUFycmF5KGh0bWw6IHN0cmluZyk6IHVua25vd25bXSB7XG4gIGNvbnN0IG0gPSBodG1sLm1hdGNoKC88c2NyaXB0W14+XSpcXGJpZD1cIl9fTlVYVF9EQVRBX19cIltePl0qPihbXFxzXFxTXSo/KTxcXC9zY3JpcHQ+L2kpO1xuICBpZiAoIW0pIHRocm93IG5ldyBFcnJvcignMTBtaW51dGUtb25lOiBfX05VWFRfREFUQV9fIG5vdCBmb3VuZCcpO1xuICByZXR1cm4gSlNPTi5wYXJzZShtWzFdLnRyaW0oKSkgYXMgdW5rbm93bltdO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlUmVmKGFycjogdW5rbm93bltdLCB2YWx1ZTogdW5rbm93biwgZGVwdGggPSAwKTogdW5rbm93biB7XG4gIGlmIChkZXB0aCA+IDY0KSB0aHJvdyBuZXcgRXJyb3IoJzEwbWludXRlLW9uZTogcmVzb2x2ZVJlZiB0b28gZGVlcCcpO1xuICBpZiAodmFsdWUgPT0gbnVsbCkgcmV0dXJuIHZhbHVlO1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiBOdW1iZXIuaXNJbnRlZ2VyKHZhbHVlKSAmJiB2YWx1ZSA+PSAwKSB7XG4gICAgaWYgKHZhbHVlID49IGFyci5sZW5ndGgpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHJlc29sdmVSZWYoYXJyLCBhcnJbdmFsdWVdLCBkZXB0aCArIDEpO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gcGFyc2VNYWlsU2VydmljZVRva2VuRnJvbVBheWxvYWQoYXJyOiB1bmtub3duW10pOiBzdHJpbmcge1xuICBpZiAoIUFycmF5LmlzQXJyYXkoYXJyKSkgdGhyb3cgbmV3IEVycm9yKCcxMG1pbnV0ZS1vbmU6IGludmFsaWQgX19OVVhUX0RBVEFfXycpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgTWF0aC5taW4oYXJyLmxlbmd0aCwgNDgpOyBpKyspIHtcbiAgICBjb25zdCBlbCA9IGFycltpXTtcbiAgICBpZiAoZWwgJiYgdHlwZW9mIGVsID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShlbCkgJiYgJ21haWxTZXJ2aWNlVG9rZW4nIGluIGVsKSB7XG4gICAgICBjb25zdCB0ID0gcmVzb2x2ZVJlZihhcnIsIChlbCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikubWFpbFNlcnZpY2VUb2tlbik7XG4gICAgICBpZiAodHlwZW9mIHQgPT09ICdzdHJpbmcnICYmIEpXVF9SRS50ZXN0KHQpKSByZXR1cm4gdDtcbiAgICB9XG4gIH1cbiAgZm9yIChjb25zdCBlbCBvZiBhcnIpIHtcbiAgICBpZiAoZWwgJiYgdHlwZW9mIGVsID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShlbCkgJiYgJ21haWxTZXJ2aWNlVG9rZW4nIGluIGVsKSB7XG4gICAgICBjb25zdCB0ID0gcmVzb2x2ZVJlZihhcnIsIChlbCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikubWFpbFNlcnZpY2VUb2tlbik7XG4gICAgICBpZiAodHlwZW9mIHQgPT09ICdzdHJpbmcnICYmIEpXVF9SRS50ZXN0KHQpKSByZXR1cm4gdDtcbiAgICB9XG4gIH1cbiAgZm9yIChjb25zdCBlbCBvZiBhcnIpIHtcbiAgICBpZiAodHlwZW9mIGVsID09PSAnc3RyaW5nJyAmJiBKV1RfUkUudGVzdChlbCkpIHJldHVybiBlbDtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoJzEwbWludXRlLW9uZTogbWFpbFNlcnZpY2VUb2tlbiBub3QgZm91bmQnKTtcbn1cblxuZnVuY3Rpb24gcGFyc2VRdW90ZWRKc29uQXJyYXlGaWVsZChodG1sOiBzdHJpbmcsIGZpZWxkOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGtleSA9IGAke2ZpZWxkfTpcImA7XG4gIGNvbnN0IHN0YXJ0ID0gaHRtbC5pbmRleE9mKGtleSk7XG4gIGlmIChzdGFydCA8IDApIHJldHVybiBbXTtcbiAgY29uc3Qgc2xpY2VTdGFydCA9IHN0YXJ0ICsga2V5Lmxlbmd0aDtcbiAgaWYgKGh0bWxbc2xpY2VTdGFydF0gIT09ICdbJykgcmV0dXJuIFtdO1xuICBsZXQgZGVwdGggPSAwO1xuICBsZXQgaiA9IHNsaWNlU3RhcnQ7XG4gIGZvciAoOyBqIDwgaHRtbC5sZW5ndGg7IGorKykge1xuICAgIGNvbnN0IGMgPSBodG1sW2pdO1xuICAgIGlmIChjID09PSAnWycpIGRlcHRoKys7XG4gICAgZWxzZSBpZiAoYyA9PT0gJ10nKSB7XG4gICAgICBkZXB0aC0tO1xuICAgICAgaWYgKGRlcHRoID09PSAwKSB7XG4gICAgICAgIGorKztcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNvbnN0IHJhdyA9IGh0bWwuc2xpY2Uoc2xpY2VTdGFydCwgaik7XG4gIGNvbnN0IHVuZXNjID0gcmF3LnJlcGxhY2UoL1xcXFxcIi9nLCAnXCInKTtcbiAgdHJ5IHtcbiAgICBjb25zdCB2ID0gSlNPTi5wYXJzZSh1bmVzYyk7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodikgPyB2Lm1hcCh4ID0+IFN0cmluZyh4KSkgOiBbXTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlRW1haWxEb21haW5zKGh0bWw6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgY29uc3QgZCA9IHBhcnNlUXVvdGVkSnNvbkFycmF5RmllbGQoaHRtbCwgJ2VtYWlsRG9tYWlucycpO1xuICByZXR1cm4gZC5maWx0ZXIoQm9vbGVhbik7XG59XG5cbmZ1bmN0aW9uIHBhcnNlQmxvY2tlZFVzZXJuYW1lcyhodG1sOiBzdHJpbmcpOiBTZXQ8c3RyaW5nPiB7XG4gIGNvbnN0IGxpc3QgPSBwYXJzZVF1b3RlZEpzb25BcnJheUZpZWxkKGh0bWwsICdibG9ja2VkVXNlcm5hbWVzJyk7XG4gIHJldHVybiBuZXcgU2V0KGxpc3QubWFwKHMgPT4gcy50b0xvd2VyQ2FzZSgpKSk7XG59XG5cbmZ1bmN0aW9uIHJhbmRvbVJlcXVlc3RJZCgpOiBzdHJpbmcge1xuICBjb25zdCBhID0gbmV3IFVpbnQ4QXJyYXkoMTYpO1xuICBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGEpO1xuICByZXR1cm4gWy4uLmFdLm1hcChiID0+IGIudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsICcwJykpLmpvaW4oJycpO1xufVxuXG5mdW5jdGlvbiBiNjREZWNvZGVVdGY4KGI2NDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHR5cGVvZiBCdWZmZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKGI2NCwgJ2Jhc2U2NCcpLnRvU3RyaW5nKCd1dGY4Jyk7XG4gIH1cbiAgY29uc3QgYmluID0gYXRvYihiNjQpO1xuICBjb25zdCBieXRlcyA9IG5ldyBVaW50OEFycmF5KGJpbi5sZW5ndGgpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGJpbi5sZW5ndGg7IGkrKykgYnl0ZXNbaV0gPSBiaW4uY2hhckNvZGVBdChpKTtcbiAgcmV0dXJuIG5ldyBUZXh0RGVjb2RlcigndXRmLTgnKS5kZWNvZGUoYnl0ZXMpO1xufVxuXG5mdW5jdGlvbiBiNjRVcmxQYXlsb2FkKGp3dDogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsIHtcbiAgY29uc3QgcGFydHMgPSBqd3Quc3BsaXQoJy4nKTtcbiAgaWYgKHBhcnRzLmxlbmd0aCA8IDIpIHJldHVybiBudWxsO1xuICBsZXQgYiA9IHBhcnRzWzFdLnJlcGxhY2UoLy0vZywgJysnKS5yZXBsYWNlKC9fL2csICcvJyk7XG4gIGNvbnN0IHBhZCA9IGIubGVuZ3RoICUgNCA/ICc9Jy5yZXBlYXQoNCAtIChiLmxlbmd0aCAlIDQpKSA6ICcnO1xuICBiICs9IHBhZDtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShiNjREZWNvZGVVdGY4KGIpKSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuZnVuY3Rpb24gand0RXhwTXMoand0OiBzdHJpbmcpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICBjb25zdCBwID0gYjY0VXJsUGF5bG9hZChqd3QpO1xuICBjb25zdCBleHAgPSBwPy5leHA7XG4gIGlmICh0eXBlb2YgZXhwID09PSAnbnVtYmVyJyAmJiBOdW1iZXIuaXNGaW5pdGUoZXhwKSkgcmV0dXJuIE1hdGguZmxvb3IoZXhwICogMTAwMCk7XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIHJhbmRvbUxvY2FsKGxlbjogbnVtYmVyKTogc3RyaW5nIHtcbiAgY29uc3QgY2hhcnMgPSAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5JztcbiAgY29uc3QgYSA9IG5ldyBVaW50OEFycmF5KGxlbik7XG4gIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMoYSk7XG4gIGxldCBzID0gJyc7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHMgKz0gY2hhcnNbYVtpXSAlIGNoYXJzLmxlbmd0aF07XG4gIHJldHVybiBzO1xufVxuXG5mdW5jdGlvbiBwaWNrTG9jYWxlKGRvbWFpbj86IHN0cmluZyB8IG51bGwpOiBzdHJpbmcge1xuICBjb25zdCBzID0gU3RyaW5nKGRvbWFpbiA/PyAnJykudHJpbSgpO1xuICBpZiAoIXMpIHJldHVybiAnemgnO1xuICBpZiAocy5pbmNsdWRlcygnLicpICYmICFzLmluY2x1ZGVzKCcvJykpIHJldHVybiAnemgnO1xuICByZXR1cm4gcztcbn1cblxuZnVuY3Rpb24gcGlja01haWxib3hEb21haW4oZG9tYWluSGludDogc3RyaW5nIHwgdW5kZWZpbmVkLCBhdmFpbGFibGU6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgaWYgKCFhdmFpbGFibGUubGVuZ3RoKSB0aHJvdyBuZXcgRXJyb3IoJzEwbWludXRlLW9uZTogbm8gZW1haWwgZG9tYWlucyBpbiBwYWdlJyk7XG4gIGNvbnN0IGggPSAoZG9tYWluSGludCA/PyAnJykudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gIGlmIChoLmluY2x1ZGVzKCcuJykpIHtcbiAgICBmb3IgKGNvbnN0IGQgb2YgYXZhaWxhYmxlKSB7XG4gICAgICBpZiAoZC50b0xvd2VyQ2FzZSgpID09PSBoKSByZXR1cm4gZDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGF2YWlsYWJsZVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBhdmFpbGFibGUubGVuZ3RoKV0hO1xufVxuXG5mdW5jdGlvbiBhcGlIZWFkZXJzKHRva2VuOiBzdHJpbmcsIGV4dHJhPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICBjb25zdCB0cyA9IFN0cmluZyhNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKSk7XG4gIHJldHVybiB7XG4gICAgQWNjZXB0OiAnKi8qJyxcbiAgICAnQWNjZXB0LUxhbmd1YWdlJzogREVGQVVMVF9QQUdFX0hFQURFUlNbJ0FjY2VwdC1MYW5ndWFnZSddISxcbiAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dG9rZW59YCxcbiAgICAnQ2FjaGUtQ29udHJvbCc6ICduby1jYWNoZScsXG4gICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICBETlQ6ICcxJyxcbiAgICBPcmlnaW46IFNJVEVfT1JJR0lOLFxuICAgIFByYWdtYTogJ25vLWNhY2hlJyxcbiAgICBSZWZlcmVyOiBgJHtTSVRFX09SSUdJTn0vYCxcbiAgICAnU2VjLUZldGNoLURlc3QnOiAnZW1wdHknLFxuICAgICdTZWMtRmV0Y2gtTW9kZSc6ICdjb3JzJyxcbiAgICAnU2VjLUZldGNoLVNpdGUnOiAnc2FtZS1zaXRlJyxcbiAgICAnVXNlci1BZ2VudCc6IERFRkFVTFRfUEFHRV9IRUFERVJTWydVc2VyLUFnZW50J10hLFxuICAgICdYLVJlcXVlc3QtSUQnOiByYW5kb21SZXF1ZXN0SWQoKSxcbiAgICAnWC1UaW1lc3RhbXAnOiB0cyxcbiAgICAuLi5leHRyYSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZW5jTWFpbGJveFBhdGgoZW1haWw6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQoZW1haWwpO1xufVxuXG5mdW5jdGlvbiBpdGVtTmVlZHNEZXRhaWwoaXRlbTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBib29sZWFuIHtcbiAgY29uc3QgaWQgPSBpdGVtLmlkO1xuICBpZiAoaWQgPT0gbnVsbCB8fCBTdHJpbmcoaWQpLnRyaW0oKSA9PT0gJycpIHJldHVybiBmYWxzZTtcbiAgY29uc3Qgc3ViaiA9IFN0cmluZyhpdGVtLnN1YmplY3QgPz8gaXRlbS5tYWlsX3RpdGxlID8/ICcnKS50cmltKCk7XG4gIGNvbnN0IGJvZHkgPSBTdHJpbmcoaXRlbS50ZXh0ID8/IGl0ZW0uYm9keSA/PyBpdGVtLmh0bWwgPz8gaXRlbS5tYWlsX3RleHQgPz8gJycpLnRyaW0oKTtcbiAgcmV0dXJuIHN1YmogPT09ICcnICYmIGJvZHkgPT09ICcnO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVFbWFpbChkb21haW4/OiBzdHJpbmcgfCBudWxsKTogUHJvbWlzZTxJbnRlcm5hbEVtYWlsSW5mbz4ge1xuICBjb25zdCBsb2NhbGUgPSBwaWNrTG9jYWxlKGRvbWFpbiA/PyB1bmRlZmluZWQpO1xuICBjb25zdCBwYWdlVXJsID0gYCR7U0lURV9PUklHSU59LyR7ZW5jb2RlVVJJQ29tcG9uZW50KGxvY2FsZSl9YDtcbiAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2hXaXRoVGltZW91dChwYWdlVXJsLCB7IGhlYWRlcnM6IHsgLi4uREVGQVVMVF9QQUdFX0hFQURFUlMsIFJlZmVyZXI6IHBhZ2VVcmwgfSB9KTtcbiAgaWYgKCFyZXMub2spIHRocm93IG5ldyBFcnJvcihgMTBtaW51dGUtb25lIGdlbmVyYXRlOiAke3Jlcy5zdGF0dXN9YCk7XG4gIGNvbnN0IGh0bWwgPSBhd2FpdCByZXMudGV4dCgpO1xuICBjb25zdCBhcnIgPSBleHRyYWN0TnV4dERhdGFBcnJheShodG1sKTtcbiAgY29uc3QgdG9rZW4gPSBwYXJzZU1haWxTZXJ2aWNlVG9rZW5Gcm9tUGF5bG9hZChhcnIpO1xuICBsZXQgZG9tYWlucyA9IHBhcnNlRW1haWxEb21haW5zKGh0bWwpO1xuICBpZiAoZG9tYWlucy5sZW5ndGggPT09IDApIHtcbiAgICBkb21haW5zID0gWyd4Z2hmZi5jb20nLCAnb3FxYWouY29tJywgJ3Bzb3Z2LmNvbSddO1xuICB9XG4gIGNvbnN0IGJsb2NrZWQgPSBwYXJzZUJsb2NrZWRVc2VybmFtZXMoaHRtbCk7XG4gIGNvbnN0IGRvbWFpbkhpbnQgPSAoZG9tYWluID8/ICcnKS50cmltKCkuaW5jbHVkZXMoJy4nKSA/IChkb21haW4gPz8gJycpLnRyaW0oKSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgbWFpbERvbWFpbiA9IHBpY2tNYWlsYm94RG9tYWluKGRvbWFpbkhpbnQsIGRvbWFpbnMpO1xuXG4gIGxldCBsb2NhbCA9ICcnO1xuICBmb3IgKGxldCBhdHRlbXB0ID0gMDsgYXR0ZW1wdCA8IDMyOyBhdHRlbXB0KyspIHtcbiAgICBjb25zdCBjYW5kID0gcmFuZG9tTG9jYWwoMTApO1xuICAgIGlmICghYmxvY2tlZC5oYXMoY2FuZC50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgbG9jYWwgPSBjYW5kO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIGlmICghbG9jYWwpIHRocm93IG5ldyBFcnJvcignMTBtaW51dGUtb25lOiBjb3VsZCBub3QgcGljayB1c2VybmFtZScpO1xuXG4gIGNvbnN0IGFkZHJlc3MgPSBgJHtsb2NhbH1AJHttYWlsRG9tYWlufWA7XG4gIGNvbnN0IGV4cE1zID0gand0RXhwTXModG9rZW4pO1xuICByZXR1cm4ge1xuICAgIGNoYW5uZWw6IENIQU5ORUwsXG4gICAgZW1haWw6IGFkZHJlc3MsXG4gICAgdG9rZW4sXG4gICAgZXhwaXJlc0F0OiBleHBNcyxcbiAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEVtYWlscyhlbWFpbDogc3RyaW5nLCB0b2tlbjogc3RyaW5nKTogUHJvbWlzZTxFbWFpbFtdPiB7XG4gIGNvbnN0IHVybCA9IGAke0FQSV9CQVNFfS9tYWlsYm94LyR7ZW5jTWFpbGJveFBhdGgoZW1haWwpfWA7XG4gIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoV2l0aFRpbWVvdXQodXJsLCB7IGhlYWRlcnM6IGFwaUhlYWRlcnModG9rZW4pIH0pO1xuICBpZiAoIXJlcy5vaykgdGhyb3cgbmV3IEVycm9yKGAxMG1pbnV0ZS1vbmUgaW5ib3g6ICR7cmVzLnN0YXR1c31gKTtcbiAgY29uc3QgbGlzdCA9IChhd2FpdCByZXMuanNvbigpKSBhcyB1bmtub3duO1xuICBpZiAoIUFycmF5LmlzQXJyYXkobGlzdCkpIHRocm93IG5ldyBFcnJvcignMTBtaW51dGUtb25lOiBpbnZhbGlkIGluYm94IEpTT04nKTtcblxuICBjb25zdCBvdXQ6IEVtYWlsW10gPSBbXTtcbiAgZm9yIChjb25zdCByYXcgb2YgbGlzdCkge1xuICAgIGlmICghcmF3IHx8IHR5cGVvZiByYXcgIT09ICdvYmplY3QnKSBjb250aW51ZTtcbiAgICBsZXQgcm93ID0gcmF3IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIGlmIChpdGVtTmVlZHNEZXRhaWwocm93KSkge1xuICAgICAgY29uc3QgaWQgPSBlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKHJvdy5pZCkpO1xuICAgICAgY29uc3QgZHUgPSBgJHtBUElfQkFTRX0vbWFpbGJveC8ke2VuY01haWxib3hQYXRoKGVtYWlsKX0vJHtpZH1gO1xuICAgICAgY29uc3QgZHIgPSBhd2FpdCBmZXRjaFdpdGhUaW1lb3V0KGR1LCB7IGhlYWRlcnM6IGFwaUhlYWRlcnModG9rZW4pIH0pO1xuICAgICAgaWYgKGRyLm9rKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgZGV0YWlsID0gKGF3YWl0IGRyLmpzb24oKSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICAgICAgcm93ID0geyAuLi5yb3csIC4uLmRldGFpbCB9O1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAvKiBrZWVwIHJvdyAqL1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIG91dC5wdXNoKG5vcm1hbGl6ZUVtYWlsKHJvdywgZW1haWwpKTtcbiAgfVxuICByZXR1cm4gb3V0O1xufVxuIl19
|